diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnSaveStepService.java index 3f3da92..131d29b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnSaveStepService.java @@ -89,7 +89,7 @@ public class MesProductSnSaveStepService extends BaseStepService { String productResult = productionDispatchContextStepService.getProductResultContext(reqBean); Map partMap = (Map) stepResult.getObj(); - productionPsOutContextList.stream().filter(o -> null != o).forEach(o -> o.copy(saveProduceSnData(reqBean, resultBean, stepResult, productionProcessContext, o, partMap, prodShiftContext, productResult))); + productionPsOutContextList.stream().filter(o -> null != o).forEach(o -> saveProduceSnData(reqBean, resultBean, stepResult, productionProcessContext, o, partMap, prodShiftContext, productResult)); //保存上下文产出条码数据信息集合 productionDispatchContextStepService.dispatchProductionPsOutContext(reqBean, productionPsOutContextList); @@ -98,47 +98,57 @@ public class MesProductSnSaveStepService extends BaseStepService { } - private MesProduceSn saveProduceSnData(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesProductionPsOutContext productionPsOutContext, Map partMap, MesProdShiftContext prodShiftContext, String productResult) { + private MesProductionPsOutContext saveProduceSnData(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesProductionPsOutContext productionPsOutContext, Map partMap, MesProdShiftContext prodShiftContext, String productResult) { //根据零件条码ID查询零件条码信息 MesProduceSn produceSn = produceSnExtService.getProduceSn(reqBean.getOrganizeCode(), productionPsOutContext.getId()); if (null == produceSn) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("请检查零件条码信息,产出零件条码[%s]ID[%s]信息不存在!", productionPsOutContext.getProductSn(), productionPsOutContext.getId())); + log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- PS:{} {} --- ID:{} --- QURERY:{}", + reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), + StringUtil.toLowerCaseFirst(this.getClass().getSimpleName()), produceSn.getProductSn(), produceSn.getPartNo(), produceSn.getId(), JSONObject.toJSONString(produceSn)); + //零件信息 MesPart part = partMap.get(produceSn.getPartNo()); - produceSn.setAreaCode(reqBean.getAreaCode()); - produceSn.setWorkCenterCode(reqBean.getWorkCenterCode()); - produceSn.setWorkCellCode(reqBean.getWorkCellCode()); + productionPsOutContext.setAreaCode(reqBean.getAreaCode()); + productionPsOutContext.setWorkCenterCode(reqBean.getWorkCenterCode()); + productionPsOutContext.setWorkCellCode(reqBean.getWorkCellCode()); - produceSn.setRouteCode(reqBean.getRouteCode()); - produceSn.setProcessCode(reqBean.getProcessCode()); - produceSn.setCraftCode(productionProcessContext.getCraftCode()); - //TODO 获取下个工艺代码 - //produceSn.setNextCraftCode(); + productionPsOutContext.setRouteCode(reqBean.getRouteCode()); + productionPsOutContext.setProcessCode(reqBean.getProcessCode()); + productionPsOutContext.setCraftCode(productionProcessContext.getCraftCode()); - produceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()); - produceSn.setQcStatus(!StringUtils.isEmpty(productResult) ? Integer.valueOf(productResult) : MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()); + productionPsOutContext.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()); + productionPsOutContext.setQcStatus(!StringUtils.isEmpty(productResult) ? Integer.valueOf(productResult) : MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()); - produceSn.setShiftCode(prodShiftContext.getShiftCode()); - produceSn.setShiftGroup(prodShiftContext.getShiftGroup()); + productionPsOutContext.setShiftCode(prodShiftContext.getShiftCode()); + productionPsOutContext.setShiftGroup(prodShiftContext.getShiftGroup()); - produceSn.setProcessLabelTemplate(part.getProcessLabelTemplate()); - produceSn.setProdLabelTemplate(part.getProductLabelTemplate()); - produceSn.setCustLabelTemplate(part.getCustLabelTemplate()); + productionPsOutContext.setProcessLabelTemplate(part.getProcessLabelTemplate()); + productionPsOutContext.setProdLabelTemplate(part.getProductLabelTemplate()); + productionPsOutContext.setCustLabelTemplate(part.getCustLabelTemplate()); - ConvertBean.serviceModelUpdate(produceSn, reqBean.getUserInfo()); - produceSn.setOutWorkCenterTime(produceSn.getModifyDatetime()); - produceSn.setLotNo(produceSn.getModifyDatetime().substring(0, 10)); + ConvertBean.serviceModelUpdate(productionPsOutContext, reqBean.getUserInfo()); + productionPsOutContext.setOutWorkCenterTime(productionPsOutContext.getModifyDatetime()); + productionPsOutContext.setLotNo(productionPsOutContext.getModifyDatetime().substring(0, 10)); - produceSnExtService.update(produceSn); + produceSnRepository.updateByProperties( + new String[]{"id", "organizeCode"}, + new Object[]{produceSn.getId(), reqBean.getOrganizeCode()}, + new String[]{"areaCode", "workCenterCode", "workCellCode", "routeCode", "processCode", "craftCode", + "snStatus", "qcStatus", "shiftCode", "shiftGroup", "processLabelTemplate", "prodLabelTemplate", + "custLabelTemplate", "modifyDatetime", "modifyUser", "outWorkCenterTime", "lotNo"}, + new Object[]{productionPsOutContext.getAreaCode(), productionPsOutContext.getWorkCenterCode(), productionPsOutContext.getWorkCellCode(), productionPsOutContext.getRouteCode(), productionPsOutContext.getProcessCode(), productionPsOutContext.getCraftCode(), + productionPsOutContext.getSnStatus(), productionPsOutContext.getQcStatus(), productionPsOutContext.getShiftCode(), productionPsOutContext.getShiftGroup(), productionPsOutContext.getProcessLabelTemplate(), productionPsOutContext.getProdLabelTemplate(), + productionPsOutContext.getCustLabelTemplate(), productionPsOutContext.getModifyDatetime(), productionPsOutContext.getModifyUser(), productionPsOutContext.getModifyDatetime(), productionPsOutContext.getModifyDatetime().substring(0, 10)}); - log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- MesProductionPsOutContext:{} --- MesProduceSn:{}", + log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- PS:{} {} --- ID:{} --- UPDATE:{}", reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), - StringUtil.toLowerCaseFirst(this.getClass().getSimpleName()), JSONObject.toJSONString(productionPsOutContext), JSONObject.toJSONString(produceSn)); + StringUtil.toLowerCaseFirst(this.getClass().getSimpleName()), productionPsOutContext.getProductSn(), productionPsOutContext.getPartNo(), productionPsOutContext.getId(), JSONObject.toJSONString(productionPsOutContext)); - return produceSn; + return productionPsOutContext; }