From 3de0d5cc2f429764502273b0a84b07fc21065af1 Mon Sep 17 00:00:00 2001 From: zhangxin Date: Mon, 16 Aug 2021 15:02:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9B=B4=E6=96=B0opcBasicMap?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dao/base/implments/Operation.dao.impl.go | 14 ++++++++++++-- services/om/implments/WorkOrder.service.impl.go | 5 ++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/dao/base/implments/Operation.dao.impl.go b/dao/base/implments/Operation.dao.impl.go index 7d890c4..a1dd88e 100644 --- a/dao/base/implments/Operation.dao.impl.go +++ b/dao/base/implments/Operation.dao.impl.go @@ -310,9 +310,19 @@ func (impl *OperationDAOImplement) GetOperationRelData(artIdLi []string, workLin where := fmt.Sprintf("%s = ? and %s = ? and %s = ?", meta.Operation_PlantNr.ColumnName, meta.Process_WorkLineId.ColumnName, meta.Operation_ActivateInStation.ColumnName) data := make([]model.OperationRelData, 0) POCondition := fmt.Sprintf("%s = %s and %s = %s", meta.Operation_PlantNr.ColumnName, meta.Process_PlantNr.ColumnName, meta.Operation_PO.ColumnName, meta.Process_PO.ColumnName) - artCondition := fmt.Sprintf("%s = %s and %s = %s and %s = %s", meta.Operation_PlantNr.ColumnName, meta.ArticleAtcodLst_PlantNr.ColumnName, meta.Operation_AttrCode.ColumnName, meta.Operation_AttrCode.ColumnName, meta.Operation_AttrValue.ColumnName, meta.ArticleAtcodLst_AttrValue.ColumnName) + artCondition := fmt.Sprintf("%s = %s and %s = %s and %s = %s", meta.Operation_PlantNr.ColumnName, meta.ArticleAtcodLst_PlantNr.ColumnName, meta.Operation_AttrCode.ColumnName, meta.ArticleAtcodLst_AttrCode.ColumnName, meta.Operation_AttrValue.ColumnName, meta.ArticleAtcodLst_AttrValue.ColumnName) //stepCondition := fmt.Sprintf("%s = %s and %s = %s", meta.Operation_PlantNr.ColumnName, meta.StepType_PlantNr.ColumnName, meta.Operation_StepType.ColumnName, meta.StepType_StepTypeName.ColumnName) session := impl.session.Table(impl.meta.TableName).Join("LEFT", meta.Process.TableName, POCondition).Join("LEFT", meta.ArticleAtcodLst.TableName, artCondition) - err := session.Where(where, impl.plantNr, workLineId, 1).In(meta.ArticleAtcodLst_ArtId.ColumnName, artIdLi).OrderBy(meta.Process_PO.ColumnName).OrderBy(meta.Operation_StepNo.ColumnName).Find(&data) + artIdStr := "" + for index, artId := range artIdLi { + if index != 0 { + artIdStr += ", " + artIdStr += artId + } + artIdStr += artId + } + where += fmt.Sprintf(" and ( %s in (%s) or %s = ?) ", meta.ArticleAtcodLst_ArtId.ColumnName, artIdStr, meta.Operation_AttrCode.ColumnName) + //err := session.Where(where, impl.plantNr, workLineId, 1).In(meta.ArticleAtcodLst_ArtId.ColumnName, artIdLi).OrderBy(meta.Process_PO.ColumnName).OrderBy(meta.Operation_StepNo.ColumnName).Find(&data) + err := session.Where(where, impl.plantNr, workLineId, 1, -1).OrderBy(meta.Process_PO.ColumnName).OrderBy(meta.Operation_StepNo.ColumnName).Find(&data) return data, err } \ No newline at end of file diff --git a/services/om/implments/WorkOrder.service.impl.go b/services/om/implments/WorkOrder.service.impl.go index 37e7dc1..bb15511 100644 --- a/services/om/implments/WorkOrder.service.impl.go +++ b/services/om/implments/WorkOrder.service.impl.go @@ -1119,6 +1119,7 @@ func (impl *WorkOrderServiceImplement) LockWorkOrder(user *models.Usertab, workO processPos := 1 opPos := 1 for _, op := range opLi { + if PO != op.Process.PO { PO = op.Process.PO serialOrderWorkPlace := model.SerialOrderPOLst{ @@ -1152,6 +1153,7 @@ func (impl *WorkOrderServiceImplement) LockWorkOrder(user *models.Usertab, workO err = stepDao.InsertOne(&serialOrderStep) if err != nil { _ = session.Rollback() + return nil, grmi.NewBusinessError("插入序列工单工艺数据失败, error:" + err.Error()) } if serialOrderStep.StepType == baseModel.STEP_CHECK_RULE { // 生成扫码校验的工艺数据 @@ -1372,6 +1374,7 @@ func (impl *WorkOrderServiceImplement) OPCCommunication(user *models.Usertab, se } opcComLi[index] = opcCom } + opcBasic.OPCComRuleLi = opcComLi opcBasicLi[index] = opcBasic } opcBasicMap[serialOrderStep.OperationId] = make([]baseModel.OPCBasicComInfo, 0) @@ -1756,7 +1759,6 @@ func (impl *WorkOrderServiceImplement) CreateLockWorkOrder(user *models.Usertab, _ = session.Rollback() return grmi.NewBusinessError("获取工艺操作失败,error:" + err.Error()) } - allocateMap := make(map[string][]baseModel.ArtQtyAllocate) checkRuleMap := make(map[string]baseModel.ArtCheckRule) opcBasicMap := make(map[int][]baseModel.OPCBasicComInfo) @@ -1815,6 +1817,7 @@ func (impl *WorkOrderServiceImplement) CreateLockWorkOrder(user *models.Usertab, checkRuleMap = *checkRuleMapPointer allocateMap = *allocateMapPointer } else if serialOrderStep.StepType == baseModel.STEP_OPC_RULE { // 生成OPC通讯的工艺数据 + opcBasicMapPointer, err := impl.OPCCommunication(user, session, opcBasicMap, &serialOrderStep, attributeMap, workOrderId) if err != nil { _ = session.Rollback()