From e83fad46b5beb4def9f090b0992fcd8cc445f231 Mon Sep 17 00:00:00 2001 From: zhangxin Date: Thu, 28 Jul 2022 17:38:12 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B4=BE=E5=B7=A5?= =?UTF-8?q?=E6=97=B6=20=E5=BE=80=E9=98=9F=E5=88=97=E9=87=8C=E9=9D=A2?= =?UTF-8?q?=E6=94=BE=E7=BD=AE=E4=BB=BB=E5=8A=A1=E9=9C=80=E8=A6=81=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E9=85=8D=E7=BD=AE=E8=BF=9B=E8=A1=8C=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../implments/CustOrderLogic.service.impl.go | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) 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) From af39285a24658e1c4eff6be34a40cf122f361f8a Mon Sep 17 00:00:00 2001 From: zhangxin Date: Thu, 28 Jul 2022 17:39:05 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/pln/implments/CustOrderLogic.service.impl.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/services/pln/implments/CustOrderLogic.service.impl.go b/services/pln/implments/CustOrderLogic.service.impl.go index 041e621..8b559b6 100644 --- a/services/pln/implments/CustOrderLogic.service.impl.go +++ b/services/pln/implments/CustOrderLogic.service.impl.go @@ -1301,9 +1301,6 @@ func (impl *CustOrderServiceImplement) RepairReleaseFailedTask(user *global.User 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()) From 4e597ffbc2498e5b7f702efff48af632ad9ee246 Mon Sep 17 00:00:00 2001 From: zhangxin Date: Thu, 28 Jul 2022 18:36:13 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E6=B4=BE=E5=B7=A5=E6=B2=A1=E6=9C=89=E8=B5=B0=E6=B4=BE=E5=B7=A5?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../implments/CustOrderLogic.service.impl.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/services/pln/implments/CustOrderLogic.service.impl.go b/services/pln/implments/CustOrderLogic.service.impl.go index 8b559b6..9c3707e 100644 --- a/services/pln/implments/CustOrderLogic.service.impl.go +++ b/services/pln/implments/CustOrderLogic.service.impl.go @@ -1208,16 +1208,35 @@ func (impl *CustOrderServiceImplement) ReleaseTask() error { UserId: userId, } custOrderDao := dal.NewCustOrderDAO(session, user.PlantNr, user.UserId) + configDao := dal.NewReleaseTaskConfigDAO(session, user.PlantNr, user.UserId) + configMap := make(map[string]model.ReleaseTaskConfig) custOrderLi, err := custOrderDao.SelectNeedReleaseCustOrder() if err != nil { return err } + configLi, err := configDao.Select([]grmi.Predicate{meta.ReleaseTaskConfig_BusinessObjType.NewPredicate(grmi.Equal, model.CONFIG_TYPE_WORK_LINE)}, nil) + if err != nil { + _ = session.Rollback() + return grmi.NewBusinessError("查询派工配置失败, 错误:" + err.Error()) + } + for _, config := range configLi { + configMap[config.BusinessObjId] = config + } channel, exist := common.ReleaseTaskChannel[user.PlantNr] if !exist { channel = channelModel.NewTaskChannel("ReleaseTask-PlantNr:" + strconv.Itoa(user.PlantNr)) common.ReleaseTaskChannel[user.PlantNr] = channel } 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) From 3e7c7fc6e1a2221f6f4005dcfa1f499c0799df04 Mon Sep 17 00:00:00 2001 From: zhangxin Date: Fri, 29 Jul 2022 09:23:47 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=8B=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/pln/implments/CustOrderLogic.service.impl.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/pln/implments/CustOrderLogic.service.impl.go b/services/pln/implments/CustOrderLogic.service.impl.go index 9c3707e..c1da43c 100644 --- a/services/pln/implments/CustOrderLogic.service.impl.go +++ b/services/pln/implments/CustOrderLogic.service.impl.go @@ -69,11 +69,9 @@ func (impl *CustOrderServiceImplement) LockCustOrder(user *global.User, custOrde meta.ReleaseTaskConfig_BusinessObjId.NewPredicate(grmi.Equal, orderData.WorkLineId), }, nil) if err != nil { - _ = session.Rollback() return grmi.NewBusinessError(fmt.Sprintf("查询产线%s的派工配置失败, 错误:%v", orderData.WorkLineId, err)) } if len(configLi) == 0 { - _ = session.Rollback() return grmi.NewBusinessError(fmt.Sprintf("产线%s的派工配置不存在", orderData.WorkLineId)) } workLineConfigMap[orderData.WorkLineId] = configLi[0] @@ -322,6 +320,9 @@ func (impl *CustOrderServiceImplement) AnalysisPlanFromExcel(user *global.User, custOrderWorkLineMap[workLineId] = append(custOrderWorkLineMap[workLineId], custOrder) } releaseCustOrderLi := make([]model.CustOrder, 0) + if err = session.Begin(); err != nil { + return err + } for workLineId, custOrderLi := range custOrderWorkLineMap { for index, custOrder := range custOrderLi { project := projectMap[custOrder.ProjectId]