Browse Source

修复派工时 往队列里面放置任务需要根据配置进行时间判断

temp
zhangxin 2 years ago
parent
commit
e83fad46b5
1 changed files with 22 additions and 0 deletions
  1. +22
    -0
      services/pln/implments/CustOrderLogic.service.impl.go

+ 22
- 0
services/pln/implments/CustOrderLogic.service.impl.go View File

@ -1250,6 +1250,8 @@ func (impl *CustOrderServiceImplement) RepairReleaseFailedTask(user *global.User
custOrderStatusDao := dal.NewCustOrderStatusDAO(session, user.PlantNr, user.UserId) custOrderStatusDao := dal.NewCustOrderStatusDAO(session, user.PlantNr, user.UserId)
statusHistoryDao := dal.NewCustOrderStatusHistoryDAO(session, user.PlantNr, user.UserId) statusHistoryDao := dal.NewCustOrderStatusHistoryDAO(session, user.PlantNr, user.UserId)
custOrderDao := dal.NewCustOrderDAO(session, user.PlantNr, user.UserId) custOrderDao := dal.NewCustOrderDAO(session, user.PlantNr, user.UserId)
configDao := dal.NewReleaseTaskConfigDAO(session, user.PlantNr, user.UserId)
configMap := make(map[string]model.ReleaseTaskConfig)
statusLi, err := custOrderStatusDao.Select([]grmi.Predicate{ statusLi, err := custOrderStatusDao.Select([]grmi.Predicate{
meta.CustOrderStatus_Status.NewPredicate(grmi.Equal, baseModel.WO_STATUS_RELEASE_FAILED), meta.CustOrderStatus_Status.NewPredicate(grmi.Equal, baseModel.WO_STATUS_RELEASE_FAILED),
}, nil) }, nil)
@ -1298,7 +1300,27 @@ func (impl *CustOrderServiceImplement) RepairReleaseFailedTask(user *global.User
_ = session.Rollback() _ = session.Rollback()
return grmi.NewBusinessError("查询需要派工的客户订单失败, 错误:" + err.Error()) return grmi.NewBusinessError("查询需要派工的客户订单失败, 错误:" + err.Error())
} }
configLi, err := configDao.Select([]grmi.Predicate{meta.ReleaseTaskConfig_BusinessObjType.NewPredicate(grmi.Equal, model.CONFIG_TYPE_WORK_LINE)}, nil)
if err != nil {
return err
}
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("查询派工配置失败, 错误:" + err.Error())
}
for _, config := range configLi {
configMap[config.BusinessObjId] = config
}
for _, custOrder := range custOrderLi { for _, custOrder := range custOrderLi {
config, exist := configMap[custOrder.WorkLineId]
if !exist {
_ = session.Rollback()
return grmi.NewBusinessError(fmt.Sprintf("客户订单%s的产线%s的派工配置不存在", custOrder.CustOrderId, custOrder.WorkLineId))
}
duration := utils.CalcDurationByUom(float64(config.LeadTime), config.TimeUomId)
if custOrder.PlanStartTime.Restore().Add(-duration*time.Second).Unix() > time.Now().Unix() {
continue
}
mk := fmt.Sprintf("%d-%s", custOrder.PlantNr, custOrder.CustOrderId) mk := fmt.Sprintf("%d-%s", custOrder.PlantNr, custOrder.CustOrderId)
common.ReleasingTaskMap.Store(mk, nil) common.ReleasingTaskMap.Store(mk, nil)
err = channel.SendData(custOrder) err = channel.SendData(custOrder)


Loading…
Cancel
Save