diff --git a/services/pln/implments/CustOrderLogic.service.impl.go b/services/pln/implments/CustOrderLogic.service.impl.go index 782b8f1..041e621 100644 --- a/services/pln/implments/CustOrderLogic.service.impl.go +++ b/services/pln/implments/CustOrderLogic.service.impl.go @@ -1250,6 +1250,8 @@ func (impl *CustOrderServiceImplement) RepairReleaseFailedTask(user *global.User custOrderStatusDao := dal.NewCustOrderStatusDAO(session, user.PlantNr, user.UserId) statusHistoryDao := dal.NewCustOrderStatusHistoryDAO(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{ meta.CustOrderStatus_Status.NewPredicate(grmi.Equal, baseModel.WO_STATUS_RELEASE_FAILED), }, nil) @@ -1298,7 +1300,27 @@ func (impl *CustOrderServiceImplement) RepairReleaseFailedTask(user *global.User _ = session.Rollback() 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 { + 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) common.ReleasingTaskMap.Store(mk, nil) err = channel.SendData(custOrder)