|
@ -763,6 +763,17 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st |
|
|
shipOrderStatusDao := dal.NewShipOrderStatusDAO(session, user.PlantNr, user.UserId) |
|
|
shipOrderStatusDao := dal.NewShipOrderStatusDAO(session, user.PlantNr, user.UserId) |
|
|
shipOrderStatusHistoryDao := dal.NewShipOrderStatusHistoryDAO(session, user.PlantNr, user.UserId) |
|
|
shipOrderStatusHistoryDao := dal.NewShipOrderStatusHistoryDAO(session, user.PlantNr, user.UserId) |
|
|
workPlaceConfigDao := baseDal.NewWorkPlaceConfigDAO(session, user.PlantNr, user.UserId) |
|
|
workPlaceConfigDao := baseDal.NewWorkPlaceConfigDAO(session, user.PlantNr, user.UserId) |
|
|
|
|
|
// 3. 校验发运单数据
|
|
|
|
|
|
shipOrder, err := shipOrderDao.SelectOneWithStatus(shipOrderId) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return nil, grmi.NewBusinessError("查询发运单数据失败, error:" + err.Error()) |
|
|
|
|
|
} |
|
|
|
|
|
if shipOrder == nil { |
|
|
|
|
|
return nil, grmi.NewBusinessError("该发运单不存在, 发运单ID:" + shipOrderId) |
|
|
|
|
|
} |
|
|
|
|
|
if shipOrder.ShipOrderStatus.Status >= model.SHIP_STATUS_CLOSED { |
|
|
|
|
|
return nil, grmi.NewBusinessError("该发运单状态不支持该操作, 发运单ID:" + shipOrderId) |
|
|
|
|
|
} |
|
|
plantDao := baseDal.NewPlantDAO(session, user.UserId) |
|
|
plantDao := baseDal.NewPlantDAO(session, user.UserId) |
|
|
plant, err := plantDao.SelectOne(user.PlantNr) |
|
|
plant, err := plantDao.SelectOne(user.PlantNr) |
|
|
if err != nil { |
|
|
if err != nil { |
|
@ -773,7 +784,7 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st |
|
|
} |
|
|
} |
|
|
plantProject := plant.PlantProject |
|
|
plantProject := plant.PlantProject |
|
|
var workPlaceConfig *baseModel.WorkPlaceConfig |
|
|
var workPlaceConfig *baseModel.WorkPlaceConfig |
|
|
if plantProject == baseModel.PROJECT_ACURA { |
|
|
|
|
|
|
|
|
if plantProject == baseModel.PROJECT_ACURA && shipOrder.ShipOrder.ShipType != model.SHIP_TYPE_SPECIAL { |
|
|
// 获取工位配置
|
|
|
// 获取工位配置
|
|
|
workPlaceConfigLi, err := workPlaceConfigDao.Select([]grmi.Predicate{baseMeta.WorkPlaceConfig_WorkPlaceNr.NewPredicate(grmi.Equal, workPlaceNr)}, nil) |
|
|
workPlaceConfigLi, err := workPlaceConfigDao.Select([]grmi.Predicate{baseMeta.WorkPlaceConfig_WorkPlaceNr.NewPredicate(grmi.Equal, workPlaceNr)}, nil) |
|
|
if err != nil { |
|
|
if err != nil { |
|
@ -879,17 +890,7 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st |
|
|
if len(shipDataLstLi) != 0 { |
|
|
if len(shipDataLstLi) != 0 { |
|
|
return nil, grmi.NewBusinessError("该发运单已经存在于发运单中,包装单ID:" + packOrderId) |
|
|
return nil, grmi.NewBusinessError("该发运单已经存在于发运单中,包装单ID:" + packOrderId) |
|
|
} |
|
|
} |
|
|
// 3. 校验发运单数据
|
|
|
|
|
|
shipOrder, err := shipOrderDao.SelectOneWithStatus(shipOrderId) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return nil, grmi.NewBusinessError("查询发运单数据失败, error:" + err.Error()) |
|
|
|
|
|
} |
|
|
|
|
|
if shipOrder == nil { |
|
|
|
|
|
return nil, grmi.NewBusinessError("该发运单不存在, 发运单ID:" + shipOrderId) |
|
|
|
|
|
} |
|
|
|
|
|
if shipOrder.ShipOrderStatus.Status >= model.SHIP_STATUS_CLOSED { |
|
|
|
|
|
return nil, grmi.NewBusinessError("该发运单状态不支持该操作, 发运单ID:" + shipOrderId) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//if packOrder.PackOrder.ShortPackToggle {
|
|
|
//if packOrder.PackOrder.ShortPackToggle {
|
|
|
// if shipOrder.ShipOrder.ShipType != model.SHIP_TYPE_ADVANCE || shipOrder.ShipOrder.ShipTemplateId != "" {
|
|
|
// if shipOrder.ShipOrder.ShipType != model.SHIP_TYPE_ADVANCE || shipOrder.ShipOrder.ShipTemplateId != "" {
|
|
@ -938,7 +939,7 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st |
|
|
FromStatus: packOrder.PackOrderStatus.ShipStatus, |
|
|
FromStatus: packOrder.PackOrderStatus.ShipStatus, |
|
|
ToStatus: model.PACK_STATUS_CLOSED, |
|
|
ToStatus: model.PACK_STATUS_CLOSED, |
|
|
ChangeTime: grmi.DateTime(time.Now()), |
|
|
ChangeTime: grmi.DateTime(time.Now()), |
|
|
TriggerPara1: model.SHIP_TYPE_FORMAL, |
|
|
|
|
|
|
|
|
TriggerPara1: shipOrder.ShipOrder.ShipType, |
|
|
} |
|
|
} |
|
|
err = packOrderStatusHistoryDao.InsertOne(&packOrderStatusHistory) |
|
|
err = packOrderStatusHistoryDao.InsertOne(&packOrderStatusHistory) |
|
|
if err != nil { |
|
|
if err != nil { |
|
@ -953,10 +954,12 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
// 如果是预发运单, 且没有指定发运模板
|
|
|
// 如果是预发运单, 且没有指定发运模板
|
|
|
if shipOrder.ShipOrder.ShipType == model.SHIP_TYPE_ADVANCE && shipOrder.ShipOrder.ShipTemplateId == "" { |
|
|
|
|
|
if shipOrder.ShipOrder.ProjectId != packOrder.ProjectId { |
|
|
|
|
|
_ = session.Rollback() |
|
|
|
|
|
return nil, grmi.NewBusinessError("包装项目和发运单项目不一致") |
|
|
|
|
|
|
|
|
if (shipOrder.ShipOrder.ShipType == model.SHIP_TYPE_ADVANCE && shipOrder.ShipOrder.ShipTemplateId == "") || shipOrder.ShipOrder.ShipType == model.SHIP_TYPE_SPECIAL { |
|
|
|
|
|
if shipOrder.ShipType != model.SHIP_TYPE_SPECIAL { |
|
|
|
|
|
if shipOrder.ShipOrder.ProjectId != packOrder.ProjectId { |
|
|
|
|
|
_ = session.Rollback() |
|
|
|
|
|
return nil, grmi.NewBusinessError("包装项目和发运单项目不一致") |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
// 如果发运单已经进行扫描且需要校验同一派生
|
|
|
// 如果发运单已经进行扫描且需要校验同一派生
|
|
|
if shipOrder.CheckCarSet && shipOrder.ShipOrderStatus.Status == model.SHIP_STATUS_RUNNING { |
|
|
if shipOrder.CheckCarSet && shipOrder.ShipOrderStatus.Status == model.SHIP_STATUS_RUNNING { |
|
@ -1081,7 +1084,7 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st |
|
|
_ = session.Commit() |
|
|
_ = session.Commit() |
|
|
result.Message = "扫描完成,扫描包装单ID:" + packOrder.PackOrder.PackOrderId + ", 当前发运单ID:" + shipOrderId |
|
|
result.Message = "扫描完成,扫描包装单ID:" + packOrder.PackOrder.PackOrderId + ", 当前发运单ID:" + shipOrderId |
|
|
result.IsClosed = isClosed |
|
|
result.IsClosed = isClosed |
|
|
if plantProject == baseModel.PROJECT_ACURA { |
|
|
|
|
|
|
|
|
if plantProject == baseModel.PROJECT_ACURA && shipOrder.ShipOrder.ShipType != model.SHIP_TYPE_SPECIAL { |
|
|
err = impl.PermitTrough(workPlaceConfig) |
|
|
err = impl.PermitTrough(workPlaceConfig) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
result.PLCResult = false |
|
|
result.PLCResult = false |
|
@ -1090,7 +1093,6 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st |
|
|
result.PLCResult = true |
|
|
result.PLCResult = true |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return result, nil |
|
|
return result, nil |
|
|
} else { |
|
|
} else { |
|
|
shipOrderLstLi, err := shipOrderLstDao.Select([]grmi.Predicate{meta.ShipOrderItemLst_ShipOrderId.NewPredicate(grmi.Equal, shipOrderId), meta.ShipOrderItemLst_Status.NewPredicate(grmi.LessThen, model.SHIP_STATUS_CLOSED)}, []grmi.Field{meta.ShipOrderItemLst_Pos}) |
|
|
shipOrderLstLi, err := shipOrderLstDao.Select([]grmi.Predicate{meta.ShipOrderItemLst_ShipOrderId.NewPredicate(grmi.Equal, shipOrderId), meta.ShipOrderItemLst_Status.NewPredicate(grmi.LessThen, model.SHIP_STATUS_CLOSED)}, []grmi.Field{meta.ShipOrderItemLst_Pos}) |
|
@ -1208,7 +1210,7 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st |
|
|
return nil, grmi.NewBusinessError("更新发运单数据失败, error:" + err.Error()) |
|
|
return nil, grmi.NewBusinessError("更新发运单数据失败, error:" + err.Error()) |
|
|
} |
|
|
} |
|
|
_ = session.Commit() |
|
|
_ = session.Commit() |
|
|
if plantProject == baseModel.PROJECT_ACURA { |
|
|
|
|
|
|
|
|
if plantProject == baseModel.PROJECT_ACURA && shipOrder.ShipOrder.ShipType != model.SHIP_TYPE_SPECIAL { |
|
|
err = impl.PermitTrough(workPlaceConfig) |
|
|
err = impl.PermitTrough(workPlaceConfig) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
result.PLCResult = false |
|
|
result.PLCResult = false |
|
@ -1263,7 +1265,7 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st |
|
|
_ = session.Commit() |
|
|
_ = session.Commit() |
|
|
result.Message = "扫描完成,扫描包装单ID:" + packOrder.PackOrder.PackOrderId + ", 当前发运单ID:" + shipOrderId |
|
|
result.Message = "扫描完成,扫描包装单ID:" + packOrder.PackOrder.PackOrderId + ", 当前发运单ID:" + shipOrderId |
|
|
result.IsClosed = false |
|
|
result.IsClosed = false |
|
|
if plantProject == baseModel.PROJECT_ACURA { |
|
|
|
|
|
|
|
|
if plantProject == baseModel.PROJECT_ACURA && shipOrder.ShipOrder.ShipType != model.SHIP_TYPE_SPECIAL { |
|
|
err = impl.PermitTrough(workPlaceConfig) |
|
|
err = impl.PermitTrough(workPlaceConfig) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
result.PLCResult = false |
|
|
result.PLCResult = false |
|
@ -1579,8 +1581,8 @@ func (impl *ShipOrderServiceImplement) CloseShipOrder(user *global.User, shipOrd |
|
|
if shipOrderData == nil { |
|
|
if shipOrderData == nil { |
|
|
return grmi.NewBusinessError("不存在该发运单, 发运单ID:" + shipOrderId) |
|
|
return grmi.NewBusinessError("不存在该发运单, 发运单ID:" + shipOrderId) |
|
|
} |
|
|
} |
|
|
if shipOrderData.ShipOrder.ShipType != model.SHIP_TYPE_ADVANCE { |
|
|
|
|
|
return grmi.NewBusinessError("该发运单不是预发运单,不允许关闭") |
|
|
|
|
|
|
|
|
if shipOrderData.ShipOrder.ShipType != model.SHIP_TYPE_ADVANCE && shipOrderData.ShipOrder.ShipType != model.SHIP_TYPE_SPECIAL { |
|
|
|
|
|
return grmi.NewBusinessError("该发运单类型,不允许关闭") |
|
|
} |
|
|
} |
|
|
//if shipOrderData.ShipOrder.ShipTemplateId != "" {
|
|
|
//if shipOrderData.ShipOrder.ShipTemplateId != "" {
|
|
|
// return grmi.NewBusinessError("该发运单已经绑定包装模板, 不允许关闭")
|
|
|
// return grmi.NewBusinessError("该发运单已经绑定包装模板, 不允许关闭")
|
|
@ -1889,3 +1891,42 @@ func (impl *ShipOrderServiceImplement) WithdrawShipOrderItem(user *global.User, |
|
|
_ = session.Commit() |
|
|
_ = session.Commit() |
|
|
return nil |
|
|
return nil |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// CreateSpecialShipOrder 创建特殊发运单
|
|
|
|
|
|
func (impl *ShipOrderServiceImplement) CreateSpecialShipOrder(user *global.User) error { |
|
|
|
|
|
engine := db.Eloquent.Master() |
|
|
|
|
|
session := engine.NewSession() |
|
|
|
|
|
defer session.Close() |
|
|
|
|
|
shipOrderDao := dal.NewShipOrderDAO(session, user.PlantNr, user.UserId) |
|
|
|
|
|
shipOrderStatusDao := dal.NewShipOrderStatusDAO(session, user.PlantNr, user.UserId) |
|
|
|
|
|
unix := time.Now().Format("20060102150405") |
|
|
|
|
|
shipOrderId := "SPECIAL" + "-" + unix |
|
|
|
|
|
shipOrder := model.ShipOrder{ |
|
|
|
|
|
ShipOrderId: shipOrderId, |
|
|
|
|
|
ShipType: model.SHIP_TYPE_SPECIAL, |
|
|
|
|
|
OrderInfo: model.SHIP_TYPE_SPECIAL, |
|
|
|
|
|
OpenTime: grmi.DateTime(time.Now()), |
|
|
|
|
|
Operator: user.UserId, |
|
|
|
|
|
} |
|
|
|
|
|
shipOrderStatus := model.ShipOrderStatus{ |
|
|
|
|
|
ShipOrderId: shipOrderId, |
|
|
|
|
|
Status: model.SHIP_STATUS_PLANNED, |
|
|
|
|
|
Status1: model.SHIP_STATUS_PLANNED, |
|
|
|
|
|
Status2: model.SHIP_STATUS_PLANNED, |
|
|
|
|
|
} |
|
|
|
|
|
if err := session.Begin(); err != nil { |
|
|
|
|
|
return grmi.NewBusinessError("开启事务失败, 错误:" + err.Error()) |
|
|
|
|
|
} |
|
|
|
|
|
err := shipOrderDao.InsertOne(&shipOrder) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
_ = session.Rollback() |
|
|
|
|
|
return grmi.NewBusinessError("保存发运单失败, 错误:" + err.Error()) |
|
|
|
|
|
} |
|
|
|
|
|
err = shipOrderStatusDao.InsertOne(&shipOrderStatus) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
_ = session.Rollback() |
|
|
|
|
|
return grmi.NewBusinessError("保存发运单状态失败, 错误:" + err.Error()) |
|
|
|
|
|
} |
|
|
|
|
|
_ = session.Commit() |
|
|
|
|
|
return nil |
|
|
|
|
|
} |