|
|
@ -6,10 +6,12 @@ import ( |
|
|
|
baseDal "LAPP_ACURA_MOM_BACKEND/dao/base" |
|
|
|
dal "LAPP_ACURA_MOM_BACKEND/dao/jit" |
|
|
|
meDal "LAPP_ACURA_MOM_BACKEND/dao/me" |
|
|
|
omDal "LAPP_ACURA_MOM_BACKEND/dao/om" |
|
|
|
"LAPP_ACURA_MOM_BACKEND/db" |
|
|
|
"LAPP_ACURA_MOM_BACKEND/global" |
|
|
|
"LAPP_ACURA_MOM_BACKEND/grmi" |
|
|
|
meta "LAPP_ACURA_MOM_BACKEND/meta/jit" |
|
|
|
baseModel "LAPP_ACURA_MOM_BACKEND/models/base" |
|
|
|
model "LAPP_ACURA_MOM_BACKEND/models/jit" |
|
|
|
"strconv" |
|
|
|
"time" |
|
|
@ -870,6 +872,8 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st |
|
|
|
engine := db.Eloquent.Master() |
|
|
|
session := engine.NewSession() |
|
|
|
defer session.Close() |
|
|
|
serialOrderDao := omDal.NewSerialOrderDAO(session, user.PlantNr, user.UserId) |
|
|
|
serialOrderStatusDao := omDal.NewSerialOrderStatusDAO(session, user.PlantNr, user.UserId) |
|
|
|
shipOrderDao := dal.NewShipOrderDAO(session, user.PlantNr, user.UserId) |
|
|
|
shipOrderLstDao := dal.NewShipOrderItemLstDAO(session, user.PlantNr, user.UserId) |
|
|
|
shipOrderDataLstDao := dal.NewShipOrderDataLstDAO(session, user.PlantNr, user.UserId) |
|
|
@ -897,6 +901,36 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st |
|
|
|
if packOrder.PackOrderStatus.Status != model.PACK_STATUS_CLOSED { |
|
|
|
return nil, grmi.NewBusinessError("该包装单的状态不是已完成, 包装单ID:" + packOrderId) |
|
|
|
} |
|
|
|
// 校验包装单内所有工单的状态
|
|
|
|
packOrderItemLstLi, err = packLstDao.Select([]grmi.Predicate{meta.PackOrderItemLst_PackOrderId.NewPredicate(grmi.Equal, packOrderId)}, nil) |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("查询包装单子项失败, error:" + err.Error()) |
|
|
|
} |
|
|
|
for _, packOrderItem := range packOrderItemLstLi { |
|
|
|
serialOrder, err := serialOrderDao.SelectOne(packOrderItem.SerialOrderId) |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("查询工单数据失败, error:" + err.Error()) |
|
|
|
} |
|
|
|
if serialOrder == nil { |
|
|
|
return nil, grmi.NewBusinessError("工单不存在, 工单ID:" + packOrderItem.SerialOrderId) |
|
|
|
} |
|
|
|
if serialOrder.RepairFlag { |
|
|
|
return nil, grmi.NewBusinessError("工单是线上返修工单, 工单ID:" + packOrderItem.SerialOrderId) |
|
|
|
} |
|
|
|
if serialOrder.GenerateFlag { |
|
|
|
return nil, grmi.NewBusinessError("该工单条码已作废, 工单ID:" + packOrderItem.SerialOrderId) |
|
|
|
} |
|
|
|
serialOrderStatus, err := serialOrderStatusDao.SelectOne(packOrderItem.SerialOrderId) |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("查询工单状态失败, error:" + err.Error()) |
|
|
|
} |
|
|
|
if serialOrderStatus == nil { |
|
|
|
return nil, grmi.NewBusinessError("工单状态数据不存在, 工单ID:" + packOrderItem.SerialOrderId) |
|
|
|
} |
|
|
|
if serialOrderStatus.Status != baseModel.WO_STATUS_FINISHED { |
|
|
|
return nil, grmi.NewBusinessError("工单状态不是已完成, 工单ID:" + packOrderItem.SerialOrderId) |
|
|
|
} |
|
|
|
} |
|
|
|
// 2. 校验该包装单是否已经存在发运单中
|
|
|
|
shipDataLstDao := dal.NewShipOrderDataLstDAO(session, user.PlantNr, user.UserId) |
|
|
|
shipDataLstLi, err := shipDataLstDao.Select([]grmi.Predicate{meta.ShipOrderDataLst_PackOrderId.NewPredicate(grmi.Equal, packOrderId)}, nil) |
|
|
|