From 3b955236e609d7e53ae602f9b1a7c18934d44817 Mon Sep 17 00:00:00 2001 From: gsz Date: Tue, 8 Oct 2024 15:10:03 +0800 Subject: [PATCH 01/17] =?UTF-8?q?43302=20=E5=8A=A0=E6=96=99=E9=98=B2?= =?UTF-8?q?=E9=94=99=E6=89=AB=E7=A0=81=E6=B5=81=E7=A8=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesRawPartChargingServiceImpl.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesRawPartChargingServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesRawPartChargingServiceImpl.java index e23434c..53f0bd9 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesRawPartChargingServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesRawPartChargingServiceImpl.java @@ -128,10 +128,14 @@ public class MesRawPartChargingServiceImpl implements IMesRawPartChargingService if (!CollectionUtils.isEmpty(mesRawPartCharging)) { MesPcnException.throwMesBusiException("料筒条码【%s】与原料条码【%s】已绑定", mesRawPartChargingModel.getPackageSn(), mesRawPartCharging.iterator().next().getSn()); } - //保存生产控制加料 - MesRawPartCharging charging = insertRawPartCharging(mesRawPartChargingModel); - //保存日志 - saveLog(mesRawPartChargingModel, charging, MesExtEnumUtil.CHARGING_LOG_STATUS.FEEDING); + //保存生产控制加料 43302 加料防错扫码流程优化 + String[] split = mesRawPartChargingModel.getSn().split(","); + for (String sn : split) { + mesRawPartChargingModel.setSn(sn); + MesRawPartCharging charging = insertRawPartCharging(mesRawPartChargingModel); + //保存日志 + saveLog(mesRawPartChargingModel, charging, MesExtEnumUtil.CHARGING_LOG_STATUS.FEEDING); + } } From 7343c0e462c7d2cd730e856ee9e4184904bd2209 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Tue, 8 Oct 2024 18:25:26 +0800 Subject: [PATCH 02/17] =?UTF-8?q?=E5=88=A4=E6=96=AD=E5=8F=AF=E7=96=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesInputDefectRecordService.java | 20 +++++++++++++++++++- .../serviceimpl/busi/MesNcProcessingService.java | 11 ++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java index 1ebd00d..d364dba 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java @@ -369,6 +369,14 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService } if (Objects.isNull(srcLocateNo)) { srcLocateNo = configService.getCfgValue(org, "LGORT"); + + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getStringEqualPack(model.getPartNo(), "partNo", ddlPackBean); + + MesProductVersion version = productVersionRepository.getByProperty(ddlPackBean); + if (version != null) { + srcLocateNo = version.getShipInventoryPoint(); + } } if (model.getOptType() != 2) { //移库 @@ -425,7 +433,17 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService //移库 if (model.getOptType() != 2) { - MesMove move = createMove(model, configService.getCfgValue(org, "LGORT"), configService.getCfgValue(org, "UMLGO"), org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode()); + String srcLocateNo = configService.getCfgValue(org, "LGORT"); + + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getStringEqualPack(model.getPartNo(), "partNo", ddlPackBean); + + MesProductVersion version = productVersionRepository.getByProperty(ddlPackBean); + if (version != null) { + srcLocateNo = version.getShipInventoryPoint(); + } + + MesMove move = createMove(model, srcLocateNo, configService.getCfgValue(org, "UMLGO"), org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode()); moveRepository.save(move); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java index 1ea2a41..a4b4fe8 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java @@ -370,8 +370,17 @@ public class MesNcProcessingService implements IMesNcProcessingService { partInspectionRepository.save(model.getPartInspection()); + String target = configService.getCfgValue(org, "LGORT"); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getStringEqualPack(model.getPart().getPartNo(), "partNo", ddlPackBean); + + MesProductVersion version = productVersionRepository.getByProperty(ddlPackBean); + if (version != null) { + target = version.getShipInventoryPoint(); + } + //移库 转正常、放行:8000移至2000 - MesMove move = createMove(model, sourceValue, configService.getCfgValue(org, "LGORT"), org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.NORMAL_MOVE); + MesMove move = createMove(model, sourceValue, target, org, null == sn ? workCenterCode : sn.getWorkCenterCode(), MesExtEnumUtil.MOVE_TYPE.NORMAL_MOVE); ConvertBean.serviceModelInitialize(move,model.getUserName()); moveRepository.save(move); From d708e96d4668200d7c10c0b7f03bad4002e19b6f Mon Sep 17 00:00:00 2001 From: jun Date: Tue, 8 Oct 2024 18:36:36 +0800 Subject: [PATCH 03/17] =?UTF-8?q?=E9=9D=9E=E6=8E=92=E5=BA=8F=E6=8A=A5?= =?UTF-8?q?=E5=B7=A5=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/schedulejob/MesReportNoSortJob.java | 43 +++--- .../apiservice/schedulejob/MesReportSortJob.java | 2 + .../serviceimpl/busi/MesWorkOrderService.java | 151 +++++++++++++++++---- 3 files changed, 143 insertions(+), 53 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportNoSortJob.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportNoSortJob.java index 30ed6f6..463d866 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportNoSortJob.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportNoSortJob.java @@ -3,19 +3,16 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionRecordService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderService; +import cn.estsh.i3plus.platform.common.tool.JsonUtilTool; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord; import cn.estsh.i3plus.pojo.mes.repository.MesProductionRecordRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; -import cn.estsh.impp.framework.base.schedule.BaseImppScheduleJob; +import cn.estsh.i3plus.pojo.model.wms.WmsJobParamModel; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.init.ApplicationProperties; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; @@ -25,7 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -55,25 +51,24 @@ public class MesReportNoSortJob extends BaseMesScheduleJob { @Override @Transactional public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) { - JSONObject jsonObject= new JSONObject(); - - jsonObject.putIfAbsent("organizeCode", "CK01"); - jsonObject.putIfAbsent("userName", "job"); - - String organizeCode = jsonObject.getStr("organizeCode"); - String userName = jsonObject.getStr("userName"); - if (null == organizeCode){ - log.error("请添加需要报工的工厂代码!"); - return; - } - if (null == userName){ - userName = "JOB"; + List wmsJobParamModelList = JsonUtilTool.toList(this.getJobParam(), WmsJobParamModel.class); + if (!CollectionUtils.isEmpty(wmsJobParamModelList)) { + for (WmsJobParamModel wmsJobParamModel : wmsJobParamModelList) { + try { + long startTime = System.currentTimeMillis(); + // 处理无工单 + handlerNoOrder(wmsJobParamModel.getOrganizeCode(), "JOB"); + // 处理有工单 + handlerHasOrder(wmsJobParamModel.getOrganizeCode(), "JOB"); + long endTime = System.currentTimeMillis(); + log.info("工厂{}非排序报工JOB --- END --- 耗时: {} ms", wmsJobParamModel.getOrganizeCode(), endTime - startTime); + } catch (Exception e) { + log.info("工厂{}非排序报工JOB 执行失败{}", wmsJobParamModel.getOrganizeCode(), e); + } + } + }else{ + log.info("非排序报工JOB 参数不能为空"); } - // 处理无工单 - handlerNoOrder(organizeCode, userName); - // 处理有工单 - handlerHasOrder(organizeCode, userName); - // } } private void handlerNoOrder(String organizeCode, String userName) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportSortJob.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportSortJob.java index bfff550..3ea7347 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportSortJob.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportSortJob.java @@ -48,6 +48,8 @@ public class MesReportSortJob extends BaseMesScheduleJob { log.info("工厂{}排序报工job 执行失败{}", wmsJobParamModel.getOrganizeCode(), e); } } + }else{ + log.info("排序报工job 参数不能为空"); } } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java index ecb9751..68d4903 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java @@ -674,7 +674,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { //保存数据 List mesProductOffLineList = new ArrayList<>(); - MesProductOffLine newMesProductOffLine; + List mesMoveList = new ArrayList<>(); // 排除重复的数据 Map> map = mesBoms.stream().collect(Collectors.groupingBy(mesBom -> { MesBom bom = new MesBom(); @@ -682,35 +682,24 @@ public class MesWorkOrderService implements IMesWorkOrderService { bom.setItemPartNo(mesBom.getItemPartNo()); return bom; })); - for (Map.Entry> entry : map.entrySet()) { - MesBom mesBom = entry.getValue().get(0); - newMesProductOffLine = new MesProductOffLine(); - newMesProductOffLine.setReportPartNo(oldMesWorkOrder.getPartNo()); - newMesProductOffLine.setReportPartNameRdd(oldMesWorkOrder.getPartName()); - newMesProductOffLine.setItemPartNo(mesBom.getItemPartNo()); - newMesProductOffLine.setItemPartName(mesBom.getItemPartName()); - newMesProductOffLine.setItemQty(mesBom.getItemQty()); - newMesProductOffLine.setAlort(mesProductVersion.getReceiveInventoryPoint()); - newMesProductOffLine.setStgeLoc(mesProductVersion.getShipInventoryPoint()); - newMesProductOffLine.setQty(1d); - newMesProductOffLine.setReportSn(productionRecord.getProductSn()); - newMesProductOffLine.setBomVersion(oldMesWorkOrder.getProductVersion()); - newMesProductOffLine.setSerialNumber(productionRecord.getSerialNumber()); - newMesProductOffLine.setUnit(mesBom.getUnit()); - newMesProductOffLine.setBomCode(mesBom.getBomCode()); - newMesProductOffLine.setItemUnit(mesBom.getItemUnit()); - newMesProductOffLine.setWorkOrderNo(oldMesWorkOrder.getWorkOrderNo()); - newMesProductOffLine.setWorkOrderType(oldMesWorkOrder.getWorkOrderType()); - newMesProductOffLine.setWorkCenterCode(oldMesWorkOrder.getWorkCenterCode()); - newMesProductOffLine.setWorkCellCode(oldMesWorkOrder.getWorkCellCode()); - newMesProductOffLine.setReportType(oldMesWorkOrder.getReportType()); - newMesProductOffLine.setSapWorkCenter(mesProductVersion.getWorkCenterCode()); - newMesProductOffLine.setOrganizeCode(oldMesWorkOrder.getOrganizeCode()); - newMesProductOffLine.setDescription(productionRecord.getCompleteDateTime()); - ConvertBean.serviceModelInitialize(newMesProductOffLine, userName); - mesProductOffLineList.add(newMesProductOffLine); + if(MesExtEnumUtil.NOSORT_REPORT_TYPE.REPORT.getValue() == productionRecord.getReportType()){ + for (Map.Entry> entry : map.entrySet()) { + mesProductOffLineList.add(getMesProductOffLine(productionRecord, userName, oldMesWorkOrder, mesProductVersion, entry.getValue().get(0))); + } + } else if (MesExtEnumUtil.NOSORT_REPORT_TYPE.CUSTOMER_SUPPLY_MOVE.getValue() == productionRecord.getReportType()) { + customerSupplyMove(productionRecord,oldMesWorkOrder, mesProductVersion, mesBoms, productionRecord.getProductSn(), mesProductOffLineList, mesMoveList,userName); + } else { + LOGGER.info("汇报类型不存在"); + return; + } + + if(!CollectionUtils.isEmpty(mesProductOffLineList)){ + mesProductOffLineRDao.saveAll(mesProductOffLineList); + } + + if(!CollectionUtils.isEmpty(mesMoveList)){ + mesMoveRepository.saveAll(mesMoveList); } - mesProductOffLineRDao.saveAll(mesProductOffLineList); // 同步工单信息给加工记录、条码信息 DdlPackBean snDdlPackBean = DdlPackBean.getDdlPackBean(); @@ -729,6 +718,35 @@ public class MesWorkOrderService implements IMesWorkOrderService { } + private MesProductOffLine getMesProductOffLine(MesProductionRecord productionRecord, String userName, MesWorkOrder oldMesWorkOrder, MesProductVersion mesProductVersion, MesBom mesBom) { + MesProductOffLine newMesProductOffLine; + newMesProductOffLine = new MesProductOffLine(); + newMesProductOffLine.setReportPartNo(oldMesWorkOrder.getPartNo()); + newMesProductOffLine.setReportPartNameRdd(oldMesWorkOrder.getPartName()); + newMesProductOffLine.setItemPartNo(mesBom.getItemPartNo()); + newMesProductOffLine.setItemPartName(mesBom.getItemPartName()); + newMesProductOffLine.setItemQty(mesBom.getItemQty()); + newMesProductOffLine.setAlort(mesProductVersion.getReceiveInventoryPoint()); + newMesProductOffLine.setStgeLoc(mesProductVersion.getShipInventoryPoint()); + newMesProductOffLine.setQty(1d); + newMesProductOffLine.setReportSn(productionRecord.getProductSn()); + newMesProductOffLine.setBomVersion(oldMesWorkOrder.getProductVersion()); + newMesProductOffLine.setSerialNumber(productionRecord.getSerialNumber()); + newMesProductOffLine.setUnit(mesBom.getUnit()); + newMesProductOffLine.setBomCode(mesBom.getBomCode()); + newMesProductOffLine.setItemUnit(mesBom.getItemUnit()); + newMesProductOffLine.setWorkOrderNo(oldMesWorkOrder.getWorkOrderNo()); + newMesProductOffLine.setWorkOrderType(oldMesWorkOrder.getWorkOrderType()); + newMesProductOffLine.setWorkCenterCode(oldMesWorkOrder.getWorkCenterCode()); + newMesProductOffLine.setWorkCellCode(oldMesWorkOrder.getWorkCellCode()); + newMesProductOffLine.setReportType(oldMesWorkOrder.getReportType()); + newMesProductOffLine.setSapWorkCenter(mesProductVersion.getWorkCenterCode()); + newMesProductOffLine.setOrganizeCode(oldMesWorkOrder.getOrganizeCode()); + newMesProductOffLine.setDescription(productionRecord.getCompleteDateTime()); + ConvertBean.serviceModelInitialize(newMesProductOffLine, userName); + return newMesProductOffLine; + } + /** * 获取对应的工单 * @@ -1503,6 +1521,64 @@ public class MesWorkOrderService implements IMesWorkOrderService { } } + private void customerSupplyMove(MesProductionRecord productionRecord,MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion, List mesBoms, String sn, List mesProductOffLineList, List mesMoveList,String userName) { + boolean isItemMove; + boolean isItemReport; + MesMoveRule moveRule; + //查询零件生产组的移库规则 + List moveRules = mesMoveRuleService.findMesMoveRuleByPartProdGroupCode(mesWorkOrder.getPartProdGroupCode(), mesWorkOrder.getOrganizeCode()); + Map> mesMoveRuleMap = moveRules.stream().filter(t -> Objects.nonNull(t.getSrcType())).collect(Collectors.groupingBy(MesMoveRule::getSrcType)); + List itemPartNoList = mesBoms.stream().map(MesBom::getItemPartNo).collect(Collectors.toList()); + //子物料SAP下发信息 + Map> mesPartSapMap = getPartSapMap(mesWorkOrder, itemPartNoList); + //获取物料信息 + Map> itemPartMap = getItemPartMap(mesWorkOrder, itemPartNoList); + for (MesBom mesBom : mesBoms) { + isItemReport = false; + isItemMove = false; + moveRule = null; + if (itemPartMap.containsKey(mesBom.getItemPartNo())) { + MesPart itemPart = itemPartMap.get(mesBom.getItemPartNo()).iterator().next(); + if (!StringUtil.isEmpty(itemPart.getEsd()) && mesMoveRuleMap.containsKey(itemPart.getEsd())) { + moveRule = mesMoveRuleMap.get(itemPart.getEsd()).iterator().next(); + if (MesExtEnumUtil.MOVE_TYPE_REPORT_TYPE.REPORT_MOVE.getValue() == moveRule.getReportType()) { + isItemMove = true; + isItemReport = true; + } else if (MesExtEnumUtil.MOVE_TYPE_REPORT_TYPE.REPORT.getValue() == moveRule.getReportType()) { + isItemReport = true; + } else if (MesExtEnumUtil.MOVE_TYPE_REPORT_TYPE.MOVE.getValue() == moveRule.getReportType()) { + isItemMove = true; + } + } + } + //汇报 + if (isItemReport) { + mesProductOffLineList.add(getMesProductOffLine(productionRecord, userName, mesWorkOrder, mesProductVersion, mesBom)); + } + //移库 + if (isItemMove) { + MesPartSap mesPartSap = null; + if (mesPartSapMap.containsKey(mesBom.getItemPartNo())) { + mesPartSap = mesPartSapMap.get(mesBom.getItemPartNo()).iterator().next(); + } + MesMove move = createMove(mesPartSap, moveRule.getErpSrcLocateNo(), moveRule.getErpDestLocateNo(), mesBom.getOrganizeCode(), mesWorkOrder.getErpWorkCenter(), mesBom.getItemQty(), MesExtEnumUtil.MOVE_TYPE.RAW_MATERIAL_MOVE.getValue()); + move.setMatnr(mesBom.getItemPartNo()); + ConvertBean.serviceModelInitialize(move, userName); + mesMoveList.add(move); + } + } + } + + private Map> getPartSapMap(MesWorkOrder mesWorkOrder, List itemPartNoList) { + List mesPartSapList = iMesPartService.findMesPartSapByPartNo(itemPartNoList, mesWorkOrder.getOrganizeCode()); + return mesPartSapList.stream().filter(t -> Objects.nonNull(t.getPartNo())).collect(Collectors.groupingBy(MesPartSap::getPartNo)); + } + + private Map> getItemPartMap(MesWorkOrder mesWorkOrder, List itemPartNoList) { + List itemPartList = iMesPartService.findMesPartByPartNo(itemPartNoList, mesWorkOrder.getOrganizeCode()); + return itemPartList.stream().filter(t -> Objects.nonNull(t.getPartNo())).collect(Collectors.groupingBy(MesPart::getPartNo)); + } + private MesWorkOrder getMesWorkOrder(Map> workOrderMap, String workOrderNo) { MesWorkOrder workOrder = Objects.isNull(workOrderMap) || StringUtils.isEmpty(workOrderNo) || !workOrderMap.containsKey(workOrderNo) ? null : workOrderMap.get(workOrderNo).iterator().next(); if (Objects.isNull(workOrder)) { @@ -1608,4 +1684,21 @@ public class MesWorkOrderService implements IMesWorkOrderService { ConvertBean.serviceModelInitialize(move, userName); return move; } + + private MesMove createMove(MesPartSap mesPart, String source, String target, String org, String workCenterCode, double qty, Integer moveType) { + MesMove move = new MesMove(); + if (!Objects.isNull(mesPart)) { + move.setMeins(mesPart.getUnit()); + } + move.setOrganizeCode(org); + move.setFactoryCode(org); + move.setLgort(source); + move.setUmlgo(target); + move.setMenge(qty); + move.setPostDate(TimeTool.getToday()); + move.setMoveType(moveType); + move.setPostTime(TimeTool.getTimeShortWithColon()); + move.setWorkCenter(workCenterCode); + return move; + } } From 24d2cd89e66549c7cd960c6d0f3f296beeaead30 Mon Sep 17 00:00:00 2001 From: jun Date: Tue, 8 Oct 2024 18:38:19 +0800 Subject: [PATCH 04/17] =?UTF-8?q?=E9=9D=9E=E6=8E=92=E5=BA=8F=E6=8A=A5?= =?UTF-8?q?=E5=B7=A5=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91=EF=BC=88=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=B0=83=E6=95=B4=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java index 68d4903..c2741b1 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java @@ -719,8 +719,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { } private MesProductOffLine getMesProductOffLine(MesProductionRecord productionRecord, String userName, MesWorkOrder oldMesWorkOrder, MesProductVersion mesProductVersion, MesBom mesBom) { - MesProductOffLine newMesProductOffLine; - newMesProductOffLine = new MesProductOffLine(); + MesProductOffLine newMesProductOffLine = new MesProductOffLine(); newMesProductOffLine.setReportPartNo(oldMesWorkOrder.getPartNo()); newMesProductOffLine.setReportPartNameRdd(oldMesWorkOrder.getPartName()); newMesProductOffLine.setItemPartNo(mesBom.getItemPartNo()); From 893f30728400786785ced39dbf5c86ad37b4e550 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Tue, 8 Oct 2024 22:43:46 +0800 Subject: [PATCH 05/17] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=B7=A5=E6=AD=A5=EF=BC=8C=20=E4=BF=AE=E6=94=B9=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../step/MesWorkOrderSaveStepService.java | 59 +++++++++++----------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveStepService.java index 49c4584..b638607 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveStepService.java @@ -138,8 +138,6 @@ public class MesWorkOrderSaveStepService extends BaseStepService { reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), StringUtil.toLowerCaseFirst(this.getClass().getSimpleName()), workOrder.getWorkOrderNo(), JSONObject.toJSONString(workOrder), calcCompleteQty, prodResult); - entityManager.detach(workOrder); - //工单状态分 排序工单 和非排序工单; 现在必须是非排序工单 if (!MesExtEnumUtil.ORDER_STATUS.checkAllowStatus(workCenter.getCenterType(), workOrder.getWorkOrderStatus())) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("请检查工单信息,加工单[%s]信息工单状态[%s]!", entry.getKey(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()))); @@ -147,17 +145,16 @@ public class MesWorkOrderSaveStepService extends BaseStepService { if (!workOrder.getWorkCenterCode().equals(reqBean.getWorkCenterCode())) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("请检查工单信息,加工单[%s]信息所属生产线[%s]与当前生产线[%s]不一致!", entry.getKey(), workOrder.getWorkCenterCode(), reqBean.getWorkCenterCode())); - List propertyNameList = new ArrayList<>(); + Map propertyMap = new HashMap<>(); + //修改完成数量 if (calcCompleteQty.compareTo(MesPcnExtConstWords.ZERO) > 0) { - workOrder.setCompleteQty(MathOperation.add(workOrder.getCompleteQty(), calcCompleteQty)); - propertyNameList.add("completeQty"); + propertyMap.put(MesPcnExtConstWords.COMPLATED_QTY, MathOperation.add(workOrder.getCompleteQty(), calcCompleteQty)); } //修改未完成数量 if (calcCompleteQty.compareTo(MesPcnExtConstWords.ZERO) > 0 && workOrder.getUnCompleteQty().compareTo(new Double(0)) > 0 && MathOperation.compareTo(MathOperation.sub(workOrder.getUnCompleteQty(), new Double(calcCompleteQty)), new Double(0)) >= 0) { - workOrder.setUnCompleteQty(MathOperation.sub(workOrder.getUnCompleteQty(), new Double(calcCompleteQty))); - propertyNameList.add("unCompleteQty"); + propertyMap.put("unCompleteQty", MathOperation.sub(workOrder.getUnCompleteQty(), new Double(calcCompleteQty))); } /** @@ -167,42 +164,44 @@ public class MesWorkOrderSaveStepService extends BaseStepService { * 上下文中 已经按照工单分组了,因为有一模多腔问题 */ - if (!StringUtils.isEmpty(prodResult)) { //可疑品 - boolean isSuspicious = MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue() == Integer.parseInt(prodResult); - if (isSuspicious && !productionPsOutContextList.isEmpty()){ - int suspiciousQty = productionPsOutContextList.size(); - workOrder.setSuspiciousPartQty(MathOperation.add(workOrder.getSuspiciousPartQty(), new Double(suspiciousQty))); - propertyNameList.add("suspiciousPartQty"); + if (Integer.valueOf(prodResult).compareTo(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue()) == 0 && !CollectionUtils.isEmpty(productionPsOutContextList)){ + propertyMap.put("suspiciousPartQty", MathOperation.add(workOrder.getSuspiciousPartQty(), new Double(productionPsOutContextList.size()))); } //报废数量 - boolean isScrap = MesExtEnumUtil.PRODUCE_QC_STATUS.SCRAP.getValue() == Integer.parseInt(prodResult); - if (isScrap && !productionPsOutContextList.isEmpty()){ - int scrapQty = productionPsOutContextList.size(); - workOrder.setScrapPartQty(MathOperation.add(workOrder.getScrapPartQty(), new Double(scrapQty))); - propertyNameList.add("scrapPartQty"); + if (Integer.valueOf(prodResult).compareTo(MesExtEnumUtil.PRODUCE_QC_STATUS.SCRAP.getValue()) == 0 && !CollectionUtils.isEmpty(productionPsOutContextList)){ + propertyMap.put("scrapPartQty", MathOperation.add(workOrder.getScrapPartQty(), new Double(productionPsOutContextList.size()))); } } if (MathOperation.compareTo(workOrder.getCompleteQty(), workOrder.getQty()) >= 0 && workOrder.getWorkOrderStatus().compareTo(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()) != 0) { - workOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); - propertyNameList.add("workOrderStatus"); + propertyMap.put("workOrderStatus", MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); } else if (workOrder.getCompleteQty() > 0 && workOrder.getWorkOrderStatus() == MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()) { - workOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); - propertyNameList.add("workOrderStatus"); + propertyMap.put("workOrderStatus", MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); } - //如果数量都没有修改,不操作数据库 - if (!propertyNameList.isEmpty()) { - ConvertBean.serviceModelUpdate(workOrder, reqBean.getUserInfo()); - workOrder.setModifyDatetime((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date())); - workOrderExtService.update(workOrder); - log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- ORDER:{} --- UPDATE:{}", - reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), - StringUtil.toLowerCaseFirst(this.getClass().getSimpleName()), workOrder.getWorkOrderNo(), JSONObject.toJSONString(workOrder)); + if (CollectionUtils.isEmpty(propertyMap)) continue; + + propertyMap.put(MesPcnExtConstWords.MODIFY_DATE_TIME, (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date())); + propertyMap.put(MesPcnExtConstWords.MODIFY_USER, reqBean.getUserInfo()); + String[] propertyName = new String[propertyMap.size()]; + Object[] propertyValue = new Object[propertyMap.size()]; + + Integer index = 0; + for (Map.Entry innerEntry : propertyMap.entrySet()) { + if (null == innerEntry) continue; + propertyName[index] = innerEntry.getKey(); + propertyValue[index] = innerEntry.getValue(); + index ++; } + + workOrderRepository.updateByProperties(new String[]{MesPcnExtConstWords.ID, MesPcnExtConstWords.ORGANIZE_CODE}, new Object[]{workOrder.getId(), reqBean.getOrganizeCode()}, propertyName, propertyValue); + + log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- ORDER:{} --- UPDATE:{}", + reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), + StringUtil.toLowerCaseFirst(this.getClass().getSimpleName()), workOrder.getWorkOrderNo(), JSONObject.toJSONString(propertyMap)); } } From 23b774af3aca2a70bca5f30e020684b2edfdea4a Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Wed, 9 Oct 2024 10:55:50 +0800 Subject: [PATCH 06/17] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=B7=A5=E6=AD=A5=20=E4=BF=AE=E6=94=B9=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/apiservice/serviceimpl/step/MesWorkOrderSaveStepService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveStepService.java index b638607..52e7066 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveStepService.java @@ -149,7 +149,7 @@ public class MesWorkOrderSaveStepService extends BaseStepService { //修改完成数量 if (calcCompleteQty.compareTo(MesPcnExtConstWords.ZERO) > 0) { - propertyMap.put(MesPcnExtConstWords.COMPLATED_QTY, MathOperation.add(workOrder.getCompleteQty(), calcCompleteQty)); + propertyMap.put("completeQty", MathOperation.add(workOrder.getCompleteQty(), calcCompleteQty)); } //修改未完成数量 if (calcCompleteQty.compareTo(MesPcnExtConstWords.ZERO) > 0 && workOrder.getUnCompleteQty().compareTo(new Double(0)) > 0 && From 8930187f6f83499eb30ec0144e02d01718589634 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Wed, 9 Oct 2024 12:52:50 +0800 Subject: [PATCH 07/17] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesInputDefectRecordService.java | 17 ++++++++--------- .../serviceimpl/busi/MesProduceSnExtService.java | 6 ++++-- .../step/MesProductResultErrorHandleStepService.java | 2 ++ 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java index d364dba..fd07b33 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java @@ -683,10 +683,10 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService * @return */ private MesMove createMove(MesPartInspectionInputModel model, String source, String target, String org, String workCenterCode) { + if (StringUtils.isEmpty(model.getUserInfo())) model.setUserInfo("系统"); GenSerialNoModel serialNoModel = new GenSerialNoModel("INPUT_DEFECT_ZRSUM"); serialNoModel.setPartNo(model.getPart().getPartNo()); -// ResultBean rb = syncFuncService.syncSerialNo(serialNoModel, AuthUtil.getSessionUser().getUserName(), org, 1); - ResultBean rb = syncFuncService.syncSerialNo(serialNoModel, "系统", org, 1); + ResultBean rb = syncFuncService.syncSerialNo(serialNoModel, model.getUserInfo(), org, 1); String zrsum = ""; if (null != rb && !CollectionUtils.isEmpty(rb.getResultList())) { zrsum = (rb.getResultList().get(0)).toString(); @@ -707,8 +707,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService move.setMoveType(MesExtEnumUtil.MOVE_TYPE.SUSPICIOUS_MOVE.getValue()); move.setProductSn(model.getSn()); move.setWorkCenter(prodOrgExtService.getErpWorkCenterCode(org, workCenterCode)); -// ConvertBean.serviceModelInitialize(move, AuthUtil.getSessionUser().getUserName()); - ConvertBean.serviceModelInitialize(move, "系统"); + ConvertBean.serviceModelInitialize(move, model.getUserInfo()); return move; } @@ -894,7 +893,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService public void saveSusPartInspection(MesPartInspectionInputModel model, String org) { MesPartInspection partInspection = new MesPartInspection(); - BeanUtils.copyProperties(model, partInspection); + BeanUtils.copyProperties(model, partInspection, "id"); partInspection.setInspectionStatus(MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue()); partInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.CREATE.getValue()); partInspection.setOrganizeCode(org); @@ -908,8 +907,8 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService partInspection.setDefectTypeCode(defectType.getDefectTypeCode()); partInspection.setDefectTypeId(defectType.getId()); - - partInspectionRepository.save(partInspection); + ConvertBean.serviceModelInitialize(partInspection, model.getUserInfo()); + partInspection = partInspectionRepository.insert(partInspection); log.info("生成的缺陷记录id ={}", partInspection); MesPartInspectionDetail detail = new MesPartInspectionDetail(); @@ -923,7 +922,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService detail.setDefectTypeName(defectType.getDefectTypeName()); detail.setId(null); detail.setOrganizeCode(org); - ConvertBean.serviceModelInitialize(detail, "系统"); + ConvertBean.serviceModelInitialize(detail, model.getUserInfo()); partInspectionDetailRepository.insert(detail); // String source = configService.getCfgValue(org, "LGORT"); @@ -945,7 +944,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService } } MesMove move = createMove(model, source, configService.getCfgValue(org, "UMLGO"), org, model.getWorkCenterCode()); - moveRepository.save(move); + moveRepository.insert(move); } @ApiOperation(value = "客退品查询") diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java index 3b8585a..54b0c70 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java @@ -123,10 +123,12 @@ public class MesProduceSnExtService implements IMesProduceSnExtService { @Override public void saveProduceSnList(StationRequestBean reqBean, Integer snStatus, List idList) { - + idList = CollectionUtils.isEmpty(idList) ? idList : idList.stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + if (CollectionUtils.isEmpty(idList)) return; DdlPackBean packBean = new DdlPackBean(); DdlPreparedPack.getStringEqualPack(reqBean.getOrganizeCode(), MesPcnExtConstWords.ORGANIZE_CODE, packBean); - DdlPreparedPack.getInPackList(idList, MesPcnExtConstWords.ID, packBean); + if (idList.size() == 1) DdlPreparedPack.getNumEqualPack(idList.get(0), MesPcnExtConstWords.ID, packBean); + else DdlPreparedPack.getInPackList(idList, MesPcnExtConstWords.ID, packBean); produceSnRepository.updateByProperties( new String[]{MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.WORK_CELL_CODE, MesPcnExtConstWords.SN_STATUS}, new Object[]{reqBean.getUserInfo(), TimeTool.getNowTime(true), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), snStatus}, diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultErrorHandleStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultErrorHandleStepService.java index af34618..d49cf0c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultErrorHandleStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultErrorHandleStepService.java @@ -157,6 +157,7 @@ public class MesProductResultErrorHandleStepService extends BaseStepService { model.setPart(mesPartSap); model.setPartInspectionDetailList(Arrays.asList(mesPartInspectionDetail)); if (Objects.equal(MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.PRODUCT_SCRAP.getValue(), result)) { + //TODO 有问题 需要修改条码质量状态 ncProcessingService.saveNc(model, reqBean.getOrganizeCode(), true); } else { MesPartInspectionInputModel inspectModel = new MesPartInspectionInputModel(); @@ -169,6 +170,7 @@ public class MesProductResultErrorHandleStepService extends BaseStepService { inspectModel.setPartInspection(partInspection); inspectModel.setShiftCode(mesProduceSn.getShiftCode()); inspectModel.setProductVersion(productVersion); + inspectModel.setUserInfo(reqBean.getUserInfo()); inputDefectRecordService.saveSusPartInspection(inspectModel, reqBean.getOrganizeCode()); } From 082e83a94a345caa8b19a6ab6419016001f2e61f Mon Sep 17 00:00:00 2001 From: jun Date: Wed, 9 Oct 2024 18:41:28 +0800 Subject: [PATCH 08/17] =?UTF-8?q?=E6=8E=92=E5=BA=8F=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesSortShippingCheckService.java | 46 +++++++------- ...sShippingScanSnAndOrderStrategyServiceImpl.java | 74 +++++++++++++--------- .../MesShippingScanSnStrategyServiceImpl.java | 2 +- 3 files changed, 67 insertions(+), 55 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java index 5ee9b3a..7a73a68 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java @@ -395,14 +395,19 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(orderManagement.getShippingCode(),"shippingCode",packBean); MesLoadingListDetail listDetail = listDetailRepository.getByProperty(packBean); + MesLoadingList loadingList = null; if(!Objects.isNull(listDetail)){ packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(listDetail.getPid(), "id", packBean); - MesLoadingList loadingList = listRepository.getByProperty(packBean); + loadingList = listRepository.getByProperty(packBean); if(!Objects.isNull(loadingList)){ orderManagement.setOrderCode(loadingList.getOrderCode()); orderManagement.setLoadingListId(loadingList.getId()); } + //更新装车单明细对应的发运单状态=发运 + listDetail.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); + ConvertBean.serviceModelUpdate(listDetail, userInfo); + listDetailRepository.update(listDetail); } //发运单状态修改为校验完成 orderManagement.setSystemSyncStatus(CommonEnumUtil.FALSE); @@ -431,9 +436,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService detail.setBarcode(managementDetail.getBarcode()); DdlPreparedPack.getStringEqualPack(detail.getBarcode(), "productSn", packBean); } - detail.setSystemSyncStatus(CommonEnumUtil.FALSE); - detail.setActualQty(1); - ConvertBean.serviceModelUpdate(detail, userInfo); + //更新条码信息,更新目视单信息 if(!StringUtils.isEmpty(detail.getBarcode()) && !Objects.equals(orderManagement.getIsEnableMemory(), MesCommonConstant.TRUE_INTEGER)){ DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); MesProduceSn produceSn = produceSnRepository.getByProperty(packBean); @@ -454,7 +457,13 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService } } } - + //条码格式(扫描目视单,扫描条码) + if(!StringUtil.isEmpty(detail.getVisualOrderNo())){ + detail.setBarcode(new StringJoiner(MesPcnExtConstWords.COMMA).add(detail.getVisualOrderNo()).add(detail.getBarcode()).toString()); + } + detail.setSystemSyncStatus(CommonEnumUtil.FALSE); + detail.setActualQty(MesPcnExtConstWords.ONE); + ConvertBean.serviceModelUpdate(detail, userInfo); } //更新条码 if(!CollectionUtils.isEmpty(produceSnList)){ @@ -467,15 +476,9 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService //更新发运单 ConvertBean.serviceModelUpdate(orderManagement,userInfo); update(orderManagement); - shippingOrderManagementDetailRepository.saveAll(orderManagementDetailList); - //1.更新装车单明细对应的发运单状态=发运 - DdlPackBean vehiclesOrderDetailPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(orderManagement.getShippingCode(), "shippingCode", vehiclesOrderDetailPackBean); - MesLoadingListDetail vehiclesOrderDetail = vehiclesOrderDetailRepository.getByProperty(vehiclesOrderDetailPackBean); - if(!StringUtil.isEmpty(vehiclesOrderDetail)){ - vehiclesOrderDetail.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); - ConvertBean.serviceModelUpdate(vehiclesOrderDetail, userInfo); - vehiclesOrderDetailRepository.save(vehiclesOrderDetail); + //不记忆时更新明细 + if (!StringUtils.isEmpty(orderManagement.getIsEnableMemory()) && !Objects.equals(orderManagement.getIsEnableMemory(), MesCommonConstant.TRUE_INTEGER)){ + shippingOrderManagementDetailRepository.saveAll(orderManagementDetailList); } if(StringUtils.isEmpty(orderManagement.getOrderCode()) || StringUtils.isEmpty(orderManagement.getLoadingListId())){ //发送数据给辊道线 @@ -502,15 +505,12 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService //保存当前发运单明细报工 jisShippingRepository.saveAll(getMesJisShippings(mesShippingOrderManagement,userInfo)); } - - if(!StringUtil.isEmpty(vehiclesOrderDetail)){ - MesLoadingList loadingList = vehiclesOrderRepository.getById(vehiclesOrderDetail.getPid()); - if (!StringUtils.isEmpty(loadingList)) { - loadingList.setSystemSyncStatus(CommonEnumUtil.FALSE); - loadingList.setStatus(MesExtEnumUtil.MES_LOADING_STATUS.ASN.getValue()); - ConvertBean.serviceModelUpdate(loadingList, userInfo); - shippingLoadingCheckService.update(loadingList); - } + //更新装车单 + if (!StringUtils.isEmpty(loadingList)) { + loadingList.setSystemSyncStatus(CommonEnumUtil.FALSE); + loadingList.setStatus(MesExtEnumUtil.MES_LOADING_STATUS.ASN.getValue()); + ConvertBean.serviceModelUpdate(loadingList, userInfo); + shippingLoadingCheckService.update(loadingList); } } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java index 6bccefa..5ad1559 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java @@ -30,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.Comparator; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; /** @@ -70,25 +67,23 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin @Override public MesSortShippingCheckModel doScan(MesSortShippingCheckModel model, MesShippingOrderManagement orderManagement, MesPartShippingGroup shippingGroup) { if (!Objects.isNull(model.getLastShippingDetailId())) { - //校验目视单是否已经扫描 - if (model.getDetailList().stream().anyMatch(t -> !StringUtils.isEmpty(t.getVisualOrderNo()) && t.getVisualOrderNo().equals(model.getSn()))) { - throw new ImppBusiException(String.format("【%s】此目视单已经扫描过,请检查数据!", model.getSn())); - } + //校验条码 + MesProduceSn produceSn = checkSn(model); //更新单据信息 model.getDetailList().stream().filter(t -> t.getId().equals(model.getLastShippingDetailId())).forEach(detail -> { - detail.setVisualOrderNo(model.getSn()); - updateOrderManagementDetails(orderManagement, detail, getWorkOrder(model, detail), model.getUserInfo()); + detail.setBarcode(model.getSn()); + updateOrderManagementDetails(orderManagement, detail, getMesWorkOrder(model, produceSn, detail), produceSn, model.getUserInfo()); }); model.setLastShippingDetailId(null); } else { - //校验条码 - MesProduceSn produceSn = checkSn(model); + //校验目视单 + MesWorkOrder workOrder = getWorkOrder(model); boolean scanFlg = false; for (MesShippingOrderManagementDetail detail : model.getDetailList()) { - if (detail.getPartNo().equals(produceSn.getPartNo()) && StringUtils.isEmpty(detail.getBarcode()) && !Objects.equals(detail.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)) { + if (detail.getPartNo().equals(workOrder.getPartNo()) && StringUtils.isEmpty(detail.getBarcode()) && !Objects.equals(detail.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)) { //校验发运明细 - checkShippingDetails(model, orderManagement, shippingGroup, produceSn, detail); - detail.setBarcode(model.getSn()); + checkShippingDetails(model, orderManagement, shippingGroup, workOrder.getPartNo(), detail); + detail.setVisualOrderNo(model.getSn()); //校验通过的明细ID model.setLastShippingDetailId(detail.getId()); scanFlg = true; @@ -96,16 +91,15 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin } } if (!scanFlg) { - throw new ImppBusiException(String.format("【%s】此条码对应的【%s】物料号与发运单中物料号不匹配,请检查数据!", model.getSn(), produceSn.getPartNo())); + throw new ImppBusiException(String.format("【%s】此目视单对应的【%s】物料号与发运单中物料号不匹配,请检查数据!", model.getSn(), workOrder.getPartNo())); } } return model; } - - private MesWorkOrder getWorkOrder(MesSortShippingCheckModel model, MesShippingOrderManagementDetail detail) { - MesWorkOrder workOrder = mesWorkOrderExtService.getWorkOrder(model.getOrganizeCode(), model.getSn()); + private MesWorkOrder getMesWorkOrder(MesSortShippingCheckModel model, MesProduceSn produceSn, MesShippingOrderManagementDetail detail) { + MesWorkOrder workOrder = mesWorkOrderExtService.getWorkOrder(model.getOrganizeCode(), detail.getVisualOrderNo()); if (Objects.isNull(workOrder)) { throw new ImppBusiException(String.format("目视单【%s】不存在,请检查数据!", model.getSn())); } @@ -114,17 +108,35 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin throw new ImppBusiException(String.format("目视单【%s】状态为【%s】质量状态为【%s】,不允许发运!", model.getSn(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(workOrder.getQcStatus()))); } //校验条码是否匹配 - if (!Objects.equals(detail.getBarcode(), workOrder.getCustSn())) { - throw new ImppBusiException(String.format("目视单【%s】条码【%s】与扫描条码【%s】,不匹配!", model.getSn(), workOrder.getCustSn(), detail.getBarcode())); + if (!Objects.equals(produceSn.getCustSn(), workOrder.getCustSn())) { + throw new ImppBusiException(String.format("目视单【%s】条码【%s】与扫描条码【%s】,不匹配!", detail.getVisualOrderNo(), workOrder.getCustSn(), model.getSn())); } //校验零件是否匹配 - if (!Objects.equals(detail.getPartNo(), workOrder.getPartNo())) { - throw new ImppBusiException(String.format("目视单【%s】零件【%s】与发运单零件【%s】,不匹配!", model.getSn(), workOrder.getPartNo(), detail.getPartNo())); + if (!Objects.equals(produceSn.getPartNo(), workOrder.getPartNo())) { + throw new ImppBusiException(String.format("目视单【%s】零件【%s】与发运单零件【%s】,不匹配!", detail.getVisualOrderNo(), workOrder.getPartNo(), detail.getPartNo())); } return workOrder; } - private void checkShippingDetails(MesSortShippingCheckModel model, MesShippingOrderManagement orderManagement, MesPartShippingGroup shippingGroup, MesProduceSn produceSn, MesShippingOrderManagementDetail detail) { + + private MesWorkOrder getWorkOrder(MesSortShippingCheckModel model) { + //校验目视单是否已经扫描 + if (model.getDetailList().stream().anyMatch(t -> !StringUtils.isEmpty(t.getVisualOrderNo()) && t.getVisualOrderNo().equals(model.getSn()))) { + throw new ImppBusiException(String.format("【%s】此目视单已经扫描过,请检查数据!", model.getSn())); + } + //查询工单 + MesWorkOrder workOrder = mesWorkOrderExtService.getWorkOrder(model.getOrganizeCode(), model.getSn()); + if (Objects.isNull(workOrder)) { + throw new ImppBusiException(String.format("目视单【%s】不存在,请检查数据!", model.getSn())); + } + //校验目视单状态 + if (MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue() != workOrder.getWorkOrderStatus() || MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue() != workOrder.getQcStatus()) { + throw new ImppBusiException(String.format("目视单【%s】状态为【%s】质量状态为【%s】,不允许发运!", model.getSn(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(workOrder.getQcStatus()))); + } + return workOrder; + } + + private void checkShippingDetails(MesSortShippingCheckModel model, MesShippingOrderManagement orderManagement, MesPartShippingGroup shippingGroup, String partNo, MesShippingOrderManagementDetail detail) { //校验发运单明细顺序 if (!Objects.isNull(shippingGroup) && !StringUtils.isEmpty(shippingGroup.getIsEnableShippingFailSafe()) && CommonEnumUtil.VALID == shippingGroup.getIsEnableShippingFailSafe()) { Optional first = model.getDetailList().stream().filter(k -> k.getCustInfoSeq().compareTo(detail.getCustInfoSeq()) < 0 && !Objects.equals(k.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)).findFirst(); @@ -135,10 +147,10 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin //判断是否需要排序校验 默认排序则需要校验 if (!StringUtils.isEmpty(orderManagement.getScanSeqWay()) && orderManagement.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) { //获取明细中最小的 - Optional minPartNo = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getBarcode())) + Optional minPartNo = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getBarcode()) && !Objects.equals(k.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)) .min(Comparator.comparingLong(MesShippingOrderManagementDetail::getCustInfoSeq)).map(MesShippingOrderManagementDetail::getPartNo); //若扫描的不是最小顺序 则报错 - if (minPartNo.isPresent() && !minPartNo.get().equals(produceSn.getPartNo())) { + if (minPartNo.isPresent() && !minPartNo.get().equals(partNo)) { throw new ImppBusiException(String.format("【%s】此条码扫描顺序错误,请检查数据!", model.getSn())); } } @@ -215,7 +227,7 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin return mesShippingOrderManagementDetail; } - private void updateOrderManagementDetails(MesShippingOrderManagement orderManagement, MesShippingOrderManagementDetail detail, MesWorkOrder workOrder, String userInfo) { + private void updateOrderManagementDetails(MesShippingOrderManagement orderManagement, MesShippingOrderManagementDetail detail, MesWorkOrder workOrder,MesProduceSn produceSn, String userInfo) { if (StringUtils.isEmpty(orderManagement.getCheckSeqCode())) { detail.setIsScanFlg(MesCommonConstant.TRUE_INTEGER); detail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); @@ -232,14 +244,14 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin orderManagement.setSystemSyncStatus(CommonEnumUtil.FALSE); ConvertBean.serviceModelUpdate(orderManagement, userInfo); update(orderManagement); - - detail.setActualQty(1); + //条码格式(扫描目视单,扫描条码) + detail.setBarcode(new StringJoiner(MesPcnExtConstWords.COMMA).add(detail.getVisualOrderNo()).add(detail.getBarcode()).toString()); + detail.setActualQty(MesPcnExtConstWords.ONE); detail.setSystemSyncStatus(CommonEnumUtil.FALSE); ConvertBean.serviceModelUpdate(detail, userInfo); updateDetail(detail); - MesProduceSn produceSn = getMesProduceSn(orderManagement.getOrganizeCode(), detail.getBarcode()); //内部条码更新条码状态 - if (!Objects.isNull(produceSn)) { + if (!Objects.isNull(produceSn.getId())) { produceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.SHIPPED.getValue()); produceSn.setSystemSyncStatus(CommonEnumUtil.FALSE); ConvertBean.serviceModelUpdate(produceSn, userInfo); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnStrategyServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnStrategyServiceImpl.java index febefba..f28dcf2 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnStrategyServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnStrategyServiceImpl.java @@ -93,7 +93,7 @@ public class MesShippingScanSnStrategyServiceImpl implements IMesShippingScanStr //判断是否需要排序校验 默认排序则需要校验 if (!StringUtils.isEmpty(orderManagement.getScanSeqWay()) && orderManagement.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) { //获取明细中最小的 - Optional minPartNo = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getBarcode())) + Optional minPartNo = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getBarcode()) && !Objects.equals(k.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)) .min(Comparator.comparingLong(MesShippingOrderManagementDetail::getCustInfoSeq)).map(MesShippingOrderManagementDetail::getPartNo); //若扫描的不是最小顺序 则报错 if (minPartNo.isPresent() && !minPartNo.get().equals(produceSn.getPartNo())) { From 8252c90f03621c927001044adc8b2cc9914ce4ab Mon Sep 17 00:00:00 2001 From: yxw Date: Thu, 10 Oct 2024 10:32:04 +0800 Subject: [PATCH 09/17] =?UTF-8?q?=E8=A3=81=E7=89=87=E5=8E=9F=E6=9D=90?= =?UTF-8?q?=E6=96=99=E9=98=B2=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/busi/MesCutRawErrorProofingController.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesCutRawErrorProofingController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesCutRawErrorProofingController.java index 3a221fa..fe28eb6 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesCutRawErrorProofingController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesCutRawErrorProofingController.java @@ -12,10 +12,7 @@ import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * @Description: 裁片原材料防错 @@ -32,7 +29,8 @@ public class MesCutRawErrorProofingController { @PostMapping("/scan-sn") @ApiOperation(value = "扫描裁片工单/原材料条码") - public ResultBean doScanSn(MesCutRawErrorProofingModel model) { + public ResultBean doScanSn(@RequestBody MesCutRawErrorProofingModel model) { + try { MesCutRawErrorProofingModel result = cutRawErrorProofingService.doScanSn(model); return ResultBean.success(StringUtils.isEmpty(result.getShowInfo()) ? "扫描成功" : result.getShowInfo()).setResultObject(result); @@ -74,7 +72,7 @@ public class MesCutRawErrorProofingController { @PostMapping("/update-raw-length") @ApiOperation(value = "修改原材料条码长度") - public ResultBean doUpdateLengthByScanSn(MesCutUpdateRawLengthModel model) { + public ResultBean doUpdateLengthByScanSn(@RequestBody MesCutUpdateRawLengthModel model) { try { cutRawErrorProofingService.doUpdateLengthByScanSn(model); From ad2a7f8722337db227025f1b771ca63ca6500062 Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Thu, 10 Oct 2024 10:44:05 +0800 Subject: [PATCH 10/17] =?UTF-8?q?=E7=94=B5=E6=B5=8B=E8=AF=95=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/pcn/api/busi/IDcsForEquipmentService.java | 20 +++ modules/i3plus-ext-mes-pcn-apiservice/pom.xml | 5 + .../pcn/apiservice/config/WebServiceConfig.java | 59 +++++++++ .../apiservice/model/MesConsoleItemCodeExt.java | 23 ++++ .../pcn/apiservice/model/MesConsoleResultExt.java | 15 +++ .../busi/DcsForEquipmentServiceImpl.java | 141 +++++++++++++++++++++ .../busi/MesCustomerSnTransformService.java | 1 + ...sShippingScanSnAndOrderStrategyServiceImpl.java | 4 +- .../webservice/DcsForEquipmentServer.java | 50 ++++++++ pom.xml | 13 +- 10 files changed, 328 insertions(+), 3 deletions(-) create mode 100644 modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IDcsForEquipmentService.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/config/WebServiceConfig.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/model/MesConsoleItemCodeExt.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/model/MesConsoleResultExt.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/DcsForEquipmentServiceImpl.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/webservice/DcsForEquipmentServer.java diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IDcsForEquipmentService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IDcsForEquipmentService.java new file mode 100644 index 0000000..c7196d5 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IDcsForEquipmentService.java @@ -0,0 +1,20 @@ +package cn.estsh.i3plus.ext.mes.pcn.api.busi; + +public interface IDcsForEquipmentService { + + String doGetConsoleItemCode(String organizeCode,String barcode,String custCode,String custPlantCode,String workCenterCode, String workCellCode); + + + /** + * + * @param organizeCode + * @param barcode + * @param partNo 客户零件号 + * @param result + * @param workCenterCode + * @param workCellCode + * @param custCode + * @return + */ + String doFillConsoleResultExt(String organizeCode,String barcode,String partNo,String result,String workCenterCode, String workCellCode,String custCode); +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/pom.xml b/modules/i3plus-ext-mes-pcn-apiservice/pom.xml index 37467ed..b7eacef 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/pom.xml +++ b/modules/i3plus-ext-mes-pcn-apiservice/pom.xml @@ -14,6 +14,11 @@ jar + + + org.apache.cxf + cxf-spring-boot-starter-jaxws + com.google.guava guava diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/config/WebServiceConfig.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/config/WebServiceConfig.java new file mode 100644 index 0000000..edfdb17 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/config/WebServiceConfig.java @@ -0,0 +1,59 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache ImppLicense, Version 2.0 (the + * "ImppLicense"); you may not use this file except in compliance + * with the ImppLicense. You may obtain a copy of the ImppLicense at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the ImppLicense is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the ImppLicense for the + * specific language governing permissions and limitations + * under the ImppLicense. + */ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.config; + + + +import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.webservice.DcsForEquipmentServer; +import org.apache.cxf.Bus; +import org.apache.cxf.jaxws.EndpointImpl; +import org.apache.cxf.transport.servlet.CXFServlet; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.web.servlet.ServletRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.xml.ws.Endpoint; + +/** + * @Description : WebService Server 服务配置 + * WSDL URL: /block/softswitch/server/web-service?wsdl + * @Reference : + * @Author : wei.peng + * @CreateDate : 2019/9/10 下午3:13 + * @Modify: + **/ +@Configuration +public class WebServiceConfig { + + @Autowired + private Bus bus; + + @Bean("cxfServletRegistration") + public ServletRegistrationBean dispatcherServlet() { + return new ServletRegistrationBean(new CXFServlet(), "/*"); + } + + @Bean + public Endpoint endpoint() { + EndpointImpl endpoint = new EndpointImpl(bus, new DcsForEquipmentServer()); + endpoint.publish("/DCSForEquipmentService"); + return endpoint; + } +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/model/MesConsoleItemCodeExt.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/model/MesConsoleItemCodeExt.java new file mode 100644 index 0000000..4f55b5d --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/model/MesConsoleItemCodeExt.java @@ -0,0 +1,23 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.model; + +import lombok.Data; + +/** + * 点测试 GetConsoleItemCodeExt + */ +@Data +public class MesConsoleItemCodeExt { + + //条码 + private String barcode; + //客户编码 + private String custCode; + //客户工厂 + private String custPlantCode; + //装配线 + private String assemblyLine; + //工位 + private String location; + //工厂代码 + private String organizeCode; +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/model/MesConsoleResultExt.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/model/MesConsoleResultExt.java new file mode 100644 index 0000000..d58ac93 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/model/MesConsoleResultExt.java @@ -0,0 +1,15 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.model; + +import lombok.Data; + +@Data +public class MesConsoleResultExt { + private String barcode; + private String partNO; + private String result; + private String assemblyLine; + private String location; + private String custCode; + private String organizeCode; + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/DcsForEquipmentServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/DcsForEquipmentServiceImpl.java new file mode 100644 index 0000000..d33d46e --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/DcsForEquipmentServiceImpl.java @@ -0,0 +1,141 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IDcsForEquipmentService; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.repository.*; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class DcsForEquipmentServiceImpl implements IDcsForEquipmentService { + + @Autowired + private MesCustomerSnTransformService mesCustomerSnTransformService; + + @Autowired + private MesProduceSnRepository mesProduceSnRao; + + @Autowired + private MesConfigRepository mesConfigRao; + + @Autowired + private MesPcScanLogRepository scanLogRao; + + + @Autowired + private MesCustomerPartRepository customerPartRao; + + @Override + public String doGetConsoleItemCode(String organizeCode,String barcode, String custCode, String custPlantCode, String workCenterCode, String workCellCode) { + //通用二维码组成部分('RS'为记录分隔符ASCII:30,'GS'为分组符ASCII:29,'EOT'为传输结束符ASCII:04) + //[)>+'RS'+06+'GS'+Y+vpps+'GS'+P+8位客户零件号+'GS'+12V+DUNS+'GS'+T+1位line num+1位班次号+2位年份+3位天数+1位追溯(精确追溯A,批次追溯@)+2工程更改记录+2位自定义+4位流水号+'RS'+'EOT' + //如:[)>+'RS'+06+'GS'+Y+4110000000000X+'GS'+P+12345678+'GS'+12V+545295227+'GS'+T+1A13304A2B4C0001+'RS'+'EOT' + //包含ASCII码的条码 65位,不包含的 58位 + + barcode = mesCustomerSnTransformService.transformBarCodeGm(barcode); + + //todo 读取配置文件 获取工厂 + if (StringUtils.isBlank(organizeCode)) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getStringEqualPack("ORGANIZE_CODE","cfgCode",ddlPackBean); + List organizeConfig = mesConfigRao.findByHqlWhere(ddlPackBean); + if (!organizeConfig.isEmpty()) { + organizeCode = organizeConfig.get(0).getCfgValue(); + } + } + //2.根据条码表查询一条,排序条码表条码唯一 + DdlPackBean producePackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(barcode,"custSn",producePackBean); + DdlPreparedPack.getOrderBy("createDatetime", CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), producePackBean); + List produceSnList = mesProduceSnRao.findByHqlTopWhere(producePackBean, 1); + + + //4.如果在条码表中能查询出数据,插入到scanMonitor一条记录 + if (!produceSnList.isEmpty()) { + MesPcScanLog scanLog = new MesPcScanLog(); + scanLog.setScanTime(TimeTool.getNowTime(true)); + scanLog.setWorkCenterCode(workCenterCode); + scanLog.setWorkCellCode(workCellCode); + scanLog.setCustSn(barcode); + scanLog.setOrganizeCode(organizeCode); + ConvertBean.saveOrUpdate(scanLog,"JOB"); + scanLogRao.insert(scanLog); + //4.返回客户条码 + return produceSnList.get(0).getCustPartNo(); + } + return ""; + } + + @Override + public String doFillConsoleResultExt(String organizeCode, String barcode, String partNo, String result, String workCenterCode, String workCellCode, String custCode) { + barcode = mesCustomerSnTransformService.transformBarCodeGm(barcode); + + if (StringUtils.isBlank(organizeCode)) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getStringEqualPack("ORGANIZE_CODE","cfgCode",ddlPackBean); + List organizeConfig = mesConfigRao.findByHqlWhere(ddlPackBean); + if (!organizeConfig.isEmpty()) { + organizeCode = organizeConfig.get(0).getCfgValue(); + } + } + + MesPcScanLog scanLog = new MesPcScanLog(); + scanLog.setScanTime(TimeTool.getNowTime(true)); + scanLog.setWorkCenterCode(workCenterCode); + scanLog.setWorkCellCode(workCellCode); + scanLog.setCustSn(barcode); + scanLog.setOrganizeCode(organizeCode); + scanLog.setRemark(partNo+":"+result); + ConvertBean.saveOrUpdate(scanLog,"JOB"); + scanLogRao.insert(scanLog); + + String erpPartNo = ""; + //查询erp零件号 根据客户零件号 + DdlPackBean custPartPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(partNo,"custPartNo",custPartPackBean); + DdlPreparedPack.getStringEqualPack(custCode,"custCode",custPartPackBean); + List customerPartList = customerPartRao.findByHqlTopWhere(custPartPackBean, 1); + if (!customerPartList.isEmpty()){ + erpPartNo = customerPartList.get(0).getErpPartNo(); + } + + if (StringUtils.isNotBlank(erpPartNo)){ + //更新条码表的状态 + + //插入生产记录表 + + //插入装配件生产记录表 + } + return "1"; + } + + + private String createBarCode(String barcode){ + String barcodeResult = ""; + if (StringUtils.isEmpty(barcode)){ + return barcodeResult; + } + //缺少了ascii码,根据规则拼接出来 + //正常65 [)>06Y4110000000000XP2656085012V545238347T1A24269A2B4C0003 + //异常58 [)>06Y4110000000000XP2656085012V545238347T1A24269A2B4C0003 + if (barcode.length() == 58){ + String part1 = barcode.substring(0, 3); + String part2 = barcode.substring(3, 5); + String part3 = barcode.substring(5, 20); + String part4 = barcode.substring(20, 29); + String part5 = barcode.substring(29,41); + String part6 = barcode.substring(41); + + barcodeResult = part1 + (char)30 + part2 +(char)29 + part3 + (char)29 + part4 +(char)29 + part5 +(char)29 + part6 + (char)30 + (char)04; + } + return barcodeResult; + } +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCustomerSnTransformService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCustomerSnTransformService.java index 51e69df..b3993dc 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCustomerSnTransformService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCustomerSnTransformService.java @@ -16,6 +16,7 @@ public class MesCustomerSnTransformService implements IMesCustomerSnTransformSer if (StringUtils.isEmpty(barCode)) return barCode; if (barCode.length() != MesPcnExtConstWords.CUSTOMER_SN_LENGTH_GM) return barCode; String a = barCode.substring(0, 3); + //todo 增加3-5截取 String b = barCode.substring(5, 20); String c = barCode.substring(20, 29); String d = barCode.substring(29, 41); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java index e5de1c4..6bccefa 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java @@ -114,8 +114,8 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin throw new ImppBusiException(String.format("目视单【%s】状态为【%s】质量状态为【%s】,不允许发运!", model.getSn(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(workOrder.getQcStatus()))); } //校验条码是否匹配 - if (!Objects.equals(detail.getBarcode(), workOrder.getSn())) { - throw new ImppBusiException(String.format("目视单【%s】条码【%s】与扫描条码【%s】,不匹配!", model.getSn(), workOrder.getSn(), detail.getBarcode())); + if (!Objects.equals(detail.getBarcode(), workOrder.getCustSn())) { + throw new ImppBusiException(String.format("目视单【%s】条码【%s】与扫描条码【%s】,不匹配!", model.getSn(), workOrder.getCustSn(), detail.getBarcode())); } //校验零件是否匹配 if (!Objects.equals(detail.getPartNo(), workOrder.getPartNo())) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/webservice/DcsForEquipmentServer.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/webservice/DcsForEquipmentServer.java new file mode 100644 index 0000000..4867571 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/webservice/DcsForEquipmentServer.java @@ -0,0 +1,50 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.webservice; + +import cn.estsh.i3plus.ext.mes.pcn.apiservice.model.MesConsoleItemCodeExt; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.model.MesConsoleResultExt; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.DcsForEquipmentServiceImpl; +import cn.estsh.impp.framework.boot.util.SpringContextsUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebService; + +@Component +@WebService(targetNamespace = "http://tempuri.org/") +public class DcsForEquipmentServer { + public static final Logger LOGGER = LoggerFactory.getLogger(DcsForEquipmentServer.class); +// @WebMethod(action = "GetConsoleItemCodeExt", operationName = "GetConsoleItemCodeExt") +// public String getConsoleItemCodeExt(@WebParam(name = "GetConsoleItemCodeExt") MesConsoleItemCodeExt mesConsoleItemCodeExt) { +// DcsForEquipmentServiceImpl bean = (DcsForEquipmentServiceImpl) SpringContextsUtil.getBean("DcsForEquipmentServiceImpl"); +// String organizeCode = mesConsoleItemCodeExt.getOrganizeCode(); +// String custCode = mesConsoleItemCodeExt.getCustCode(); +// String assemblyLine = mesConsoleItemCodeExt.getAssemblyLine(); +// String location = mesConsoleItemCodeExt.getLocation(); +// String barcode = mesConsoleItemCodeExt.getBarcode(); +// String custPlantCode = mesConsoleItemCodeExt.getCustPlantCode(); +// return bean.doGetConsoleItemCode(organizeCode,barcode,custCode,custPlantCode,assemblyLine,location); +// } + + @WebMethod(action = "GetConsoleItemCodeExt", operationName = "GetConsoleItemCodeExt") + public String getConsoleItemCodeExt(@WebParam(name = "organizeCode") String organizeCode, @WebParam(name = "custCode") String custCode,@WebParam(name = "assemblyLine")String assemblyLine,@WebParam(name = "location")String location,@WebParam(name = "barcode")String barcode,@WebParam(name = "custPlantCode")String custPlantCode) { + DcsForEquipmentServiceImpl bean = (DcsForEquipmentServiceImpl) SpringContextsUtil.getBean("DcsForEquipmentServiceImpl"); + return bean.doGetConsoleItemCode(organizeCode,barcode,custCode,custPlantCode,assemblyLine,location); + } + + + @WebMethod(action = "FillConsoleResultExt", operationName = "FillConsoleResultExt") + public String getConsoleItemCodeExt(@WebParam(name = "FillConsoleResultExt") MesConsoleResultExt mesConsoleResultExt) { + DcsForEquipmentServiceImpl bean = (DcsForEquipmentServiceImpl) SpringContextsUtil.getBean("DcsForEquipmentServiceImpl"); + String organizeCode = mesConsoleResultExt.getOrganizeCode(); + String custCode = mesConsoleResultExt.getCustCode(); + String assemblyLine = mesConsoleResultExt.getAssemblyLine(); + String location = mesConsoleResultExt.getLocation(); + String barcode = mesConsoleResultExt.getBarcode(); + String result = mesConsoleResultExt.getResult(); + String partNo = mesConsoleResultExt.getPartNO(); + return bean.doFillConsoleResultExt(organizeCode,barcode,partNo,result,assemblyLine,location,custCode); + } +} diff --git a/pom.xml b/pom.xml index 8a4dcfd..77012b8 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,18 @@ - + + + org.apache.cxf + cxf-spring-boot-starter-jaxws + 3.3.6 + + + org.springframework.boot + spring-boot-starter-logging + + + org.springframework spring-web From 31072fac39d39b82536a8bcf0aa2f292ec685021 Mon Sep 17 00:00:00 2001 From: yxw Date: Thu, 10 Oct 2024 10:55:53 +0800 Subject: [PATCH 11/17] =?UTF-8?q?=E6=8E=92=E5=BA=8F=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/serviceimpl/station/MesProductionSortModuleService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionSortModuleService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionSortModuleService.java index d2b9d71..e1786eb 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionSortModuleService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/MesProductionSortModuleService.java @@ -159,7 +159,7 @@ public class MesProductionSortModuleService extends BaseModuleService { } MesQueueOrder queueOrder = getNewQueueOrder(reqBean); - return Stream.of(queueOrder.getPartProdGroupCode()).collect(Collectors.toList()); + return queueOrder == null ? null : Stream.of(queueOrder.getPartProdGroupCode()).collect(Collectors.toList()); } private MesQueueOrder getNewQueueOrder(StationRequestBean reqBean) { From 94c320d2cb50114647771186a53c6b422cd9eb9f Mon Sep 17 00:00:00 2001 From: jun Date: Thu, 10 Oct 2024 11:05:38 +0800 Subject: [PATCH 12/17] =?UTF-8?q?=E6=8E=92=E5=BA=8F=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java index 7a73a68..5becb84 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java @@ -434,6 +434,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService detail.setRemark(managementDetail.getRemark()); detail.setStatus(managementDetail.getStatus()); detail.setBarcode(managementDetail.getBarcode()); + detail.setVisualOrderNo(managementDetail.getVisualOrderNo()); DdlPreparedPack.getStringEqualPack(detail.getBarcode(), "productSn", packBean); } //更新条码信息,更新目视单信息 From 630ac61e319c3ac56d1d47819dec19e7a57378e0 Mon Sep 17 00:00:00 2001 From: gsz Date: Thu, 10 Oct 2024 15:00:18 +0800 Subject: [PATCH 13/17] =?UTF-8?q?SPS=E6=89=93=E5=8D=B0=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/pcn/apiservice/serviceimpl/busi/MesPullingOrderInfoService.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPullingOrderInfoService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPullingOrderInfoService.java index 839cd12..0494fcc 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPullingOrderInfoService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPullingOrderInfoService.java @@ -7,6 +7,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPullingOrderInfoService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -185,6 +186,7 @@ public class MesPullingOrderInfoService implements IMesPullingOrderInfoService { pullingOrderInfo.setPullingOrderPartInfos(pullingOrderPartInfos); } + pullingOrderInfo.setPrintTime(TimeTool.getNowTime(true)); pullingOrderInfo.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue()); ConvertBean.serviceModelUpdate(pullingOrderInfo, userName); } From f3e2254e450e0c9137c6f8b54eb27179b048e3aa Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Thu, 10 Oct 2024 15:20:22 +0800 Subject: [PATCH 14/17] =?UTF-8?q?=E7=94=B5=E6=B5=8B=E8=AF=95=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webservice/DcsForEquipmentServer.java | 26 +++++++++++----------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/webservice/DcsForEquipmentServer.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/webservice/DcsForEquipmentServer.java index 4867571..29a0a60 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/webservice/DcsForEquipmentServer.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/webservice/DcsForEquipmentServer.java @@ -16,24 +16,24 @@ import javax.jws.WebService; @WebService(targetNamespace = "http://tempuri.org/") public class DcsForEquipmentServer { public static final Logger LOGGER = LoggerFactory.getLogger(DcsForEquipmentServer.class); -// @WebMethod(action = "GetConsoleItemCodeExt", operationName = "GetConsoleItemCodeExt") -// public String getConsoleItemCodeExt(@WebParam(name = "GetConsoleItemCodeExt") MesConsoleItemCodeExt mesConsoleItemCodeExt) { -// DcsForEquipmentServiceImpl bean = (DcsForEquipmentServiceImpl) SpringContextsUtil.getBean("DcsForEquipmentServiceImpl"); -// String organizeCode = mesConsoleItemCodeExt.getOrganizeCode(); -// String custCode = mesConsoleItemCodeExt.getCustCode(); -// String assemblyLine = mesConsoleItemCodeExt.getAssemblyLine(); -// String location = mesConsoleItemCodeExt.getLocation(); -// String barcode = mesConsoleItemCodeExt.getBarcode(); -// String custPlantCode = mesConsoleItemCodeExt.getCustPlantCode(); -// return bean.doGetConsoleItemCode(organizeCode,barcode,custCode,custPlantCode,assemblyLine,location); -// } - @WebMethod(action = "GetConsoleItemCodeExt", operationName = "GetConsoleItemCodeExt") - public String getConsoleItemCodeExt(@WebParam(name = "organizeCode") String organizeCode, @WebParam(name = "custCode") String custCode,@WebParam(name = "assemblyLine")String assemblyLine,@WebParam(name = "location")String location,@WebParam(name = "barcode")String barcode,@WebParam(name = "custPlantCode")String custPlantCode) { + public String getConsoleItemCodeExt(@WebParam(name = "GetConsoleItemCodeExt") MesConsoleItemCodeExt mesConsoleItemCodeExt) { DcsForEquipmentServiceImpl bean = (DcsForEquipmentServiceImpl) SpringContextsUtil.getBean("DcsForEquipmentServiceImpl"); + String organizeCode = mesConsoleItemCodeExt.getOrganizeCode(); + String custCode = mesConsoleItemCodeExt.getCustCode(); + String assemblyLine = mesConsoleItemCodeExt.getAssemblyLine(); + String location = mesConsoleItemCodeExt.getLocation(); + String barcode = mesConsoleItemCodeExt.getBarcode(); + String custPlantCode = mesConsoleItemCodeExt.getCustPlantCode(); return bean.doGetConsoleItemCode(organizeCode,barcode,custCode,custPlantCode,assemblyLine,location); } +// @WebMethod(action = "GetConsoleItemCodeExt", operationName = "GetConsoleItemCodeExt") +// public String getConsoleItemCodeExt(@WebParam(name = "organizeCode") String organizeCode, @WebParam(name = "custCode") String custCode,@WebParam(name = "assemblyLine")String assemblyLine,@WebParam(name = "location")String location,@WebParam(name = "barcode")String barcode,@WebParam(name = "custPlantCode")String custPlantCode) { +// DcsForEquipmentServiceImpl bean = (DcsForEquipmentServiceImpl) SpringContextsUtil.getBean("DcsForEquipmentServiceImpl"); +// return bean.doGetConsoleItemCode(organizeCode,barcode,custCode,custPlantCode,assemblyLine,location); +// } + @WebMethod(action = "FillConsoleResultExt", operationName = "FillConsoleResultExt") public String getConsoleItemCodeExt(@WebParam(name = "FillConsoleResultExt") MesConsoleResultExt mesConsoleResultExt) { From c45b5724f6285f0fd6f0c096e5f26ec04a4872e0 Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Thu, 10 Oct 2024 19:35:45 +0800 Subject: [PATCH 15/17] =?UTF-8?q?=E6=9A=82=E6=97=B6=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=E6=8E=89webservice?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/apiservice/config/WebServiceConfig.java | 118 ++++++++++----------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/config/WebServiceConfig.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/config/WebServiceConfig.java index edfdb17..a035b0a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/config/WebServiceConfig.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/config/WebServiceConfig.java @@ -1,59 +1,59 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache ImppLicense, Version 2.0 (the - * "ImppLicense"); you may not use this file except in compliance - * with the ImppLicense. You may obtain a copy of the ImppLicense at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the ImppLicense is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the ImppLicense for the - * specific language governing permissions and limitations - * under the ImppLicense. - */ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.config; - - - -import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.webservice.DcsForEquipmentServer; -import org.apache.cxf.Bus; -import org.apache.cxf.jaxws.EndpointImpl; -import org.apache.cxf.transport.servlet.CXFServlet; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.web.servlet.ServletRegistrationBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import javax.xml.ws.Endpoint; - -/** - * @Description : WebService Server 服务配置 - * WSDL URL: /block/softswitch/server/web-service?wsdl - * @Reference : - * @Author : wei.peng - * @CreateDate : 2019/9/10 下午3:13 - * @Modify: - **/ -@Configuration -public class WebServiceConfig { - - @Autowired - private Bus bus; - - @Bean("cxfServletRegistration") - public ServletRegistrationBean dispatcherServlet() { - return new ServletRegistrationBean(new CXFServlet(), "/*"); - } - - @Bean - public Endpoint endpoint() { - EndpointImpl endpoint = new EndpointImpl(bus, new DcsForEquipmentServer()); - endpoint.publish("/DCSForEquipmentService"); - return endpoint; - } -} +///** +// * Licensed to the Apache Software Foundation (ASF) under one +// * or more contributor license agreements. See the NOTICE file +// * distributed with this work for additional information +// * regarding copyright ownership. The ASF licenses this file +// * to you under the Apache ImppLicense, Version 2.0 (the +// * "ImppLicense"); you may not use this file except in compliance +// * with the ImppLicense. You may obtain a copy of the ImppLicense at +// * +// * http://www.apache.org/licenses/LICENSE-2.0 +// * +// * Unless required by applicable law or agreed to in writing, +// * software distributed under the ImppLicense is distributed on an +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// * KIND, either express or implied. See the ImppLicense for the +// * specific language governing permissions and limitations +// * under the ImppLicense. +// */ +//package cn.estsh.i3plus.ext.mes.pcn.apiservice.config; +// +// +// +//import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.webservice.DcsForEquipmentServer; +//import org.apache.cxf.Bus; +//import org.apache.cxf.jaxws.EndpointImpl; +//import org.apache.cxf.transport.servlet.CXFServlet; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.boot.web.servlet.ServletRegistrationBean; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +// +//import javax.xml.ws.Endpoint; +// +///** +// * @Description : WebService Server 服务配置 +// * WSDL URL: /block/softswitch/server/web-service?wsdl +// * @Reference : +// * @Author : wei.peng +// * @CreateDate : 2019/9/10 下午3:13 +// * @Modify: +// **/ +//@Configuration +//public class WebServiceConfig { +// +// @Autowired +// private Bus bus; +// +// @Bean("cxfServletRegistration") +// public ServletRegistrationBean dispatcherServlet() { +// return new ServletRegistrationBean(new CXFServlet(), "/*"); +// } +// +// @Bean +// public Endpoint endpoint() { +// EndpointImpl endpoint = new EndpointImpl(bus, new DcsForEquipmentServer()); +// endpoint.publish("/DCSForEquipmentService"); +// return endpoint; +// } +//} From c0feb1dde4993eec496b04c76cc927c8d0ea2b15 Mon Sep 17 00:00:00 2001 From: jun Date: Thu, 10 Oct 2024 19:56:29 +0800 Subject: [PATCH 16/17] =?UTF-8?q?=E6=8E=92=E5=BA=8F=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/serviceimpl/busi/MesSortShippingCheckService.java | 7 ++++--- .../mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java index 5becb84..6caad26 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java @@ -179,7 +179,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(org); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue(), "status", orderPackBean); DdlPreparedPack.getStringEqualPack(shippingGroupNo, "shippingGroupCode", orderPackBean); - DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"seq"}, orderPackBean); + DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"seq"}, orderPackBean); return shippingOrderManagementRepository.getByProperty(orderPackBean); } @@ -427,7 +427,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService //根据扫描的条码查询条码是否存在 packBean = DdlPackBean.getDdlPackBean(organizeCode); if (Objects.equals(orderManagement.getIsEnableMemory(), MesCommonConstant.TRUE_INTEGER)) { - DdlPreparedPack.getStringEqualPack(detail.getBarcode(), "productSn", packBean); + DdlPreparedPack.getStringEqualPack(detail.getBarcode(), "custSn", packBean); } else { List mesShippingOrderManagementDetails = custInfoSeqMap.get(detail.getCustInfoSeq()); MesShippingOrderManagementDetail managementDetail = mesShippingOrderManagementDetails.get(0); @@ -435,7 +435,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService detail.setStatus(managementDetail.getStatus()); detail.setBarcode(managementDetail.getBarcode()); detail.setVisualOrderNo(managementDetail.getVisualOrderNo()); - DdlPreparedPack.getStringEqualPack(detail.getBarcode(), "productSn", packBean); + DdlPreparedPack.getStringEqualPack(detail.getBarcode(), "custSn", packBean); } //更新条码信息,更新目视单信息 if(!StringUtils.isEmpty(detail.getBarcode()) && !Objects.equals(orderManagement.getIsEnableMemory(), MesCommonConstant.TRUE_INTEGER)){ @@ -451,6 +451,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService if(!StringUtils.isEmpty(detail.getVisualOrderNo())){ MesWorkOrder workOrder = mesWorkOrderExtService.getWorkOrder(organizeCode, detail.getVisualOrderNo()); if(!Objects.isNull(workOrder)){ + workOrder.setShippingTime(TimeTool.getNowTime(true)); workOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.SHIPPING.getValue()); produceSn.setSystemSyncStatus(CommonEnumUtil.FALSE); ConvertBean.serviceModelUpdate(workOrder, userInfo); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java index c2741b1..2bdb09e 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java @@ -1168,7 +1168,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { } catch (Exception e) { String msg = e.getMessage(); if (e instanceof ImppBusiException) { - msg = ((ImppBusiException) e).getErrorMsg(); + msg = ((ImppBusiException) e).getErrorDetail(); } log.error("工单:{}报工失败{}", orderNo, ExceptionUtils.getStackTrace(e)); productionRecordService.updateProductionRecord(model.getMesProductionRecordMap().get(orderNo), userName, MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue(), msg); From 84436a5b0f95d2a59a8f2aab4bc25cac6aa3c11e Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Fri, 11 Oct 2024 09:37:45 +0800 Subject: [PATCH 17/17] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E5=8A=A0=E5=B7=A5=E8=AE=B0=E5=BD=95=20=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=A6=86=E7=9B=96=20=E6=B2=A1=E6=9C=89=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java | 5 ++--- .../apiservice/serviceimpl/busi/MesProduceSnExtService.java | 3 +-- .../pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java | 5 ++--- .../serviceimpl/step/MesAssemblySaveStepService.java | 4 ++-- .../step/MesProductionRecordGenerateStepService.java | 3 ++- .../step/MesSendCavityGroupParamsCmdStepService.java | 4 ++-- .../serviceimpl/step/MesWorkOrderQueueSaveStepService.java | 4 ++-- .../serviceimpl/step/MesWorkOrderSaveSortStepService.java | 10 +++++----- .../pcn/pojo/context/MesProductionAssemblyNosortContext.java | 2 +- 9 files changed, 19 insertions(+), 21 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java index 3cef6a4..283ebfc 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java @@ -85,9 +85,8 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { //【排序线】获取生产工单装配件清单 List workOrderAssemblyList = filterWorkOrderAssemblyList(getWorkOrderAssemblyList(prodRuleContext), prodRuleContext.getEquipmentCode()); - // 显示前道所有工序装配件工步: 不携带工位 - workOrderAssemblyList = !StringUtils.isEmpty(prodRuleContext.getWorkCellCode()) ? workOrderAssemblyList : - workOrderAssemblyList.stream().filter(o -> (null != o && o.getAssemblyStatus().compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue()) != 0)).collect(Collectors.toList()); + // 搜集非已装配的数据 + workOrderAssemblyList = workOrderAssemblyList.stream().filter(o -> (null != o && o.getAssemblyStatus().compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue()) != 0)).collect(Collectors.toList()); if (CollectionUtils.isEmpty(workOrderAssemblyList)) return null; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java index 9eb8964..dc94dfb 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java @@ -161,8 +161,7 @@ public class MesProduceSnExtService implements IMesProduceSnExtService { public void saveProduceSnList(StationRequestBean reqBean, Integer snStatus, List idList) { idList = CollectionUtils.isEmpty(idList) ? idList : idList.stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); if (CollectionUtils.isEmpty(idList)) return; - DdlPackBean packBean = new DdlPackBean(); - DdlPreparedPack.getStringEqualPack(reqBean.getOrganizeCode(), MesPcnExtConstWords.ORGANIZE_CODE, packBean); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode()); if (idList.size() == 1) DdlPreparedPack.getNumEqualPack(idList.get(0), MesPcnExtConstWords.ID, packBean); else DdlPreparedPack.getInPackList(idList, MesPcnExtConstWords.ID, packBean); produceSnRepository.updateByProperties( diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java index 2bdb09e..c0a68ba 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java @@ -702,14 +702,13 @@ public class MesWorkOrderService implements IMesWorkOrderService { } // 同步工单信息给加工记录、条码信息 - DdlPackBean snDdlPackBean = DdlPackBean.getDdlPackBean(); + DdlPackBean snDdlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(productionRecord.getId(), "id", snDdlPackBean); - DdlPreparedPack.getStringEqualPack(organizeCode, "organizeCode", snDdlPackBean); mesProduceSnRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderNo"}, new Object[]{userName, TimeTool.getNowTime(true), oldMesWorkOrder.getWorkOrderNo()}, snDdlPackBean); - DdlPackBean packBean = DdlPackBean.getDdlPackBean(); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(productionRecord.getId(), "id", packBean); productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderNo", "reportStatus"}, new Object[]{userName, TimeTool.getNowTime(true), oldMesWorkOrder.getWorkOrderNo(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()}, packBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveStepService.java index a6fd965..c2060e0 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveStepService.java @@ -179,8 +179,8 @@ public class MesAssemblySaveStepService extends BaseStepService { private void saveWorkOrderAssembly(StationRequestBean reqBean, MesProductionAssemblyContext productionAssemblyContext) { workOrderAssemblyRepository.updateByProperties( - new String[]{MesPcnExtConstWords.ID}, - new Object[]{productionAssemblyContext.getSourceId()}, + new String[]{MesPcnExtConstWords.ID, MesPcnExtConstWords.ORGANIZE_CODE}, + new Object[]{productionAssemblyContext.getSourceId(), reqBean.getOrganizeCode()}, new String[]{MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.ASSEMBLY_STATUS}, new Object[]{reqBean.getUserInfo(), TimeTool.getNowTime(true), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), productionAssemblyContext.getAssemblyStatus()}); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionRecordGenerateStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionRecordGenerateStepService.java index bc644cc..2dab440 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionRecordGenerateStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionRecordGenerateStepService.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepSer import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionRecordService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; @@ -123,7 +124,7 @@ public class MesProductionRecordGenerateStepService extends BaseStepService { MesProdRuleContext prodRuleContext = CollectionUtils.isEmpty(prMap) ? null : prMap.get(productionPsOutContext.getForeignKey()); MesProductionRecord productionRecord = new MesProductionRecord(); - BeanUtils.copyProperties(productionPsOutContext, productionRecord); + BeanUtils.copyProperties(productionPsOutContext, productionRecord, MesPcnExtConstWords.BASE_BEAN_FIELDS); productionRecord.setMouldNo(mouldNo); productionRecord.setEquipmentCode(cellEquipContext.getEquipmentCode()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendCavityGroupParamsCmdStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendCavityGroupParamsCmdStepService.java index 0d4ca2e..92ca612 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendCavityGroupParamsCmdStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendCavityGroupParamsCmdStepService.java @@ -105,14 +105,14 @@ public class MesSendCavityGroupParamsCmdStepService extends BaseStepService { for (MesCavityGroupDetailCfg mesCavityGroupDetailCfg : mesCavityGroupDetailCfgs) { index ++; // 获取加工参数 - DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(mesCavityGroupDetailCfg.getId(), "sourceId", ddlPackBean); List mesEquipmentProdParamCfgs = mesEquipmentProdParamCfgRepository.findByHqlWhere(ddlPackBean); for (MesEquipmentProdParamCfg mesEquipmentProdParamCfg : mesEquipmentProdParamCfgs) {// String strategyClass = getStrateClass(mesEquipmentProdParamCfg.getMatchRule()); AbstractWriteVariableService equipVariableRwExtService = ((AbstractWriteVariableService) SpringContextsUtil.getBean(strategyClass)); - DdlPackBean paramPackBean = DdlPackBean.getDdlPackBean(); + DdlPackBean paramPackBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(mesEquipmentProdParamCfg.getEquipVariableId(), "id", paramPackBean); MesEquipmentVariable mesEquipmentVariable = mesEquipmentVariableRepository.getByProperty(paramPackBean); if (mesEquipmentVariable == null) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderQueueSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderQueueSaveStepService.java index 741da0a..5098e2d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderQueueSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderQueueSaveStepService.java @@ -67,8 +67,8 @@ public class MesWorkOrderQueueSaveStepService extends BaseStepService { private void saveWorkOrderQueue(StationRequestBean reqBean, MesProductionPsInContext productionPsInContext) { queueOrderRepository.updateByProperties( - new String[]{MesPcnExtConstWords.ID}, - new Object[]{productionPsInContext.getRelateId()}, + new String[]{MesPcnExtConstWords.ID, MesPcnExtConstWords.ORGANIZE_CODE}, + new Object[]{productionPsInContext.getRelateId(), reqBean.getOrganizeCode()}, new String[]{MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.STATUS}, new Object[]{reqBean.getUserInfo(), TimeTool.getNowTime(true), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesExtEnumUtil.QUEUE_ORDER_STATUS.FINISH.getValue()}); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveSortStepService.java index 06989fd..dfee367 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveSortStepService.java @@ -93,20 +93,20 @@ public class MesWorkOrderSaveSortStepService extends BaseStepService { if (null == productionPartContext || StringUtils.isEmpty(productionPartContext.getForeignKey())) continue; - Boolean isEndWorkCell = (StringUtils.isEmpty(workCell.getIsEndWorkCell()) || workCell.getIsEndWorkCell().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0) ? false : true; + Boolean isEndWorkCell = (!StringUtils.isEmpty(workCell.getIsEndWorkCell()) && workCell.getIsEndWorkCell().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) ? true : false; if (!isEndWorkCell && productionPartContext.getWorkOrderStatus().compareTo(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()) == 0) continue; if (!isEndWorkCell) { workOrderRepository.updateByProperties( - new String[]{MesPcnExtConstWords.ID}, - new Object[]{productionPartContext.getId()}, + new String[]{MesPcnExtConstWords.ID, MesPcnExtConstWords.ORGANIZE_CODE}, + new Object[]{productionPartContext.getId(), reqBean.getOrganizeCode()}, new String[]{MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.WORK_ORDER_STATUS, MesPcnExtConstWords.ONLINE_TIME}, new Object[]{reqBean.getUserInfo(), (new SimpleDateFormat(MesPcnExtConstWords.DATE_FORMAT_SSS)).format(new Date()), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue(), TimeTool.getNowTime(true)}); } else { workOrderRepository.updateByProperties( - new String[]{MesPcnExtConstWords.ID}, - new Object[]{productionPartContext.getId()}, + new String[]{MesPcnExtConstWords.ID, MesPcnExtConstWords.ORGANIZE_CODE}, + new Object[]{productionPartContext.getId(), reqBean.getOrganizeCode()}, new String[]{MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.WORK_ORDER_STATUS, MesPcnExtConstWords.COMPLETE_QTY, MesPcnExtConstWords.UN_COMPLETE_QTY, MesPcnExtConstWords.OFFLINE_TIME}, new Object[]{reqBean.getUserInfo(), (new SimpleDateFormat(MesPcnExtConstWords.DATE_FORMAT_SSS)).format(new Date()), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue(), new Double(1), new Double(0), TimeTool.getNowTime(true)}); } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyNosortContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyNosortContext.java index 698ecfe..d48d55e 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyNosortContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyNosortContext.java @@ -53,7 +53,7 @@ public class MesProductionAssemblyNosortContext extends MesProductionAssemblyCon this.partNo = prodRuleContext.getOutPartNo(); if (StringUtils.isEmpty(this.routeSeq)) this.routeSeq = MesPcnExtConstWords.ZERO; - if (StringUtils.isEmpty(this.isRepeat)) this.isRepeat = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); + if (StringUtils.isEmpty(this.isRepeat) || this.isRepeat.compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) != 0) this.isRepeat = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); this.assemblyStatus = MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_30.getValue();