From a7e53047ab42b15feeae38fe2cc440140c56943f Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Mon, 11 Nov 2024 10:03:38 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=8A=A5=E5=B7=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesWorkOrderService.java | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 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 94b2946..26b53e4 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 @@ -648,16 +648,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { oldMesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); } } - LOGGER.info("工单报工后数量【{}】", oldMesWorkOrder.getReportedQty()); - ConvertBean.serviceModelUpdate(oldMesWorkOrder, userName); - oldMesWorkOrder.setModifyDatetime((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date())); - workOrderExtService.update(oldMesWorkOrder); - //查询工作中心 - DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(oldMesWorkOrder.getId(), "id", orderPackBean); - workOrderRepository.updateByProperties(new String[]{"systemSyncStatus"}, - new Object[]{CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()}, orderPackBean); //保存数据 List mesProductOffLineList = new ArrayList<>(); @@ -717,6 +708,17 @@ public class MesWorkOrderService implements IMesWorkOrderService { } mesProductOffLineRDao.saveAll(mesProductOffLineList); + LOGGER.info("工单报工后数量【{}】", oldMesWorkOrder.getReportedQty()); + ConvertBean.serviceModelUpdate(oldMesWorkOrder, userName); + oldMesWorkOrder.setModifyDatetime((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date())); + workOrderExtService.update(oldMesWorkOrder); + + //查询工作中心 + DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(oldMesWorkOrder.getId(), "id", orderPackBean); + workOrderRepository.updateByProperties(new String[]{"systemSyncStatus"}, + new Object[]{CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()}, orderPackBean); + // 同步工单信息给加工记录、条码信息 DdlPackBean snDdlPackBean = DdlPackBean.getDdlPackBean(); DdlPreparedPack.getNumEqualPack(productionRecord.getId(), "id", snDdlPackBean); From 1d1911a8ad25674255e5948317bba8565513cf19 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Tue, 12 Nov 2024 16:29:09 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E9=A6=96=E6=A3=80=EF=BC=8C=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E6=9D=A1=E7=A0=81=E4=B9=9F=E8=83=BD=E9=A6=96=E6=A3=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java index 0bb540d..3fcf895 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java @@ -626,10 +626,11 @@ public class MesSpotCheckOrderService implements IMesSpotCheckOrderService { //根据条码状态判断 是不是已下线条码 //若不是已下线的条码则提示 条码状态 请选择已下线的条码 - if (produceSn.getSnStatus() != MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()) { + // 2024-11-12 激光打码和打印条码,也能够执行 + /*if (produceSn.getSnStatus() != MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()) { throw new ImppBusiException(String.format("【%s】此条码状态为【%s】,请选择状态为【%s】状态的条码", serialNumber, MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(produceSn.getSnStatus()), MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getDescription())); - } + }*/ //是否需要判断条码质量状态 if (produceSn.getQcStatus() != MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()) { From 77c351c23d842705b8ea8608f6a9ad61407e8904 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Tue, 12 Nov 2024 19:25:24 +0800 Subject: [PATCH 03/12] =?UTF-8?q?BTO=E5=B7=A5=E5=8D=95=E6=8A=A5=E5=B7=A5?= =?UTF-8?q?=EF=BC=8C=E5=B7=A5=E4=BD=9C=E4=B8=AD=E5=BF=83=E7=94=A8=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E7=89=88=E6=9C=AC=E7=9A=84=E5=B7=A5=E4=BD=9C=E4=B8=AD?= =?UTF-8?q?=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.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/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 26b53e4..c1ff065 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 @@ -695,7 +695,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { newMesProductOffLine.setWorkOrderType(oldMesWorkOrder.getWorkOrderType()); newMesProductOffLine.setWorkCenterCode(oldMesWorkOrder.getWorkCenterCode()); if (Objects.equals(MesExtEnumUtil.ORDER_TYPE.BTO.getValue(), oldMesWorkOrder.getWorkOrderType())) { - newMesProductOffLine.setWorkCenterCode(oldMesWorkOrder.getErpWorkCenter()); + newMesProductOffLine.setWorkCenterCode(mesProductVersion.getWorkCenterCode()); } newMesProductOffLine.setWorkCellCode(oldMesWorkOrder.getWorkCellCode()); newMesProductOffLine.setReportType(oldMesWorkOrder.getReportType()); From 4051f5889f62733c7e0732dada7e31ea4cb2d6ba Mon Sep 17 00:00:00 2001 From: jun Date: Thu, 14 Nov 2024 10:38:42 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=20=E7=94=9F=E4=BA=A7=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E5=B7=A5=E5=8D=95=E6=97=B6=EF=BC=8C=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E9=9B=B6=E4=BB=B6=E6=9D=A1=E4=BB=B6=E6=97=A0=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesWorkOrderService.java | 56 +--------------------- 1 file changed, 2 insertions(+), 54 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 7edf508..a575b06 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 @@ -25,7 +25,6 @@ import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.repository.*; -import cn.estsh.i3plus.pojo.mes.repository.shipping.MesWorkOrderToWmsRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.hutool.core.date.DatePattern; @@ -33,7 +32,6 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.format.DateParser; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang3.exception.ExceptionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -94,8 +92,6 @@ public class MesWorkOrderService implements IMesWorkOrderService { @Autowired private MesWorkOrderLogRepository mesWorkOrderLogRepository; @Autowired - private MesWorkOrderToWmsRepository mesWorkOrderToWmsRDao; - @Autowired private MesShiftRepository mesShiftRepository; @Autowired private IMesConfigService configService; @@ -190,6 +186,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { DdlPreparedPack.getStringLikerPack(workOrder.getWorkCenterCode(), "workCenterCode", packBean); DdlPreparedPack.getStringLikerPack(workOrder.getWorkCellCode(), "workCellCode", packBean); DdlPreparedPack.getStringLikerPack(workOrder.getWorkOrderNo(), "workOrderNo", packBean); + DdlPreparedPack.getStringLikerPack(workOrder.getPartNo(), "partNo", packBean); if (!StringUtils.isEmpty(workOrder.getWorkOrderStatus())) DdlPreparedPack.getNumEqualPack(workOrder.getWorkOrderStatus(), "workOrderStatus", packBean); @@ -815,20 +812,6 @@ public class MesWorkOrderService implements IMesWorkOrderService { return df.format(cal.getTime()).substring(0, 10); } - private MesProductVersion getMesProductVersion(MesWorkOrder item, MesWorkCenter mesWorkCenter) { - DdlPackBean ddlPackBean; - ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", ddlPackBean); - DdlPreparedPack.getStringEqualPack(mesWorkCenter.getErpWorkCenter(), "workCenterCode", ddlPackBean); - ddlPackBean.setOrderByStr(" order by createDatetime desc "); - MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean); - if (Objects.isNull(mesProductVersion)) { - MesPcnException.throwMesBusiException("物料【%s】工作中心【%s】对应的生产版本信息不存在", item.getPartNo(), - mesWorkCenter.getErpWorkCenter()); - } - return mesProductVersion; - } - @Override public List getUnReportMesProduceSn(String organizeCode) { @@ -1211,7 +1194,6 @@ public class MesWorkOrderService implements IMesWorkOrderService { //校验标识 //若工单类型为排序 - List saveMesWorkOrderToWms = new ArrayList<>(); if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) { //校验产线类型和工单类型是否匹配 if (!Objects.equals(mesWorkCenter.getCenterType(), MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue())) { @@ -1230,18 +1212,12 @@ public class MesWorkOrderService implements IMesWorkOrderService { if (org.springframework.util.CollectionUtils.isEmpty(bomList)) { continue; } - //发送工单信息给WMS - saveMesWorkOrderToWms.addAll(saveMesWorkOrderToWms(item, bomList)); } item.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); item.setFid(UUID.randomUUID().toString()); ConvertBean.serviceModelInitialize(item, userName); MesWorkOrder mesWorkOrder = workOrderRepository.insert(item); - //保存发送WMS数据 - if (CollectionUtils.isNotEmpty(saveMesWorkOrderToWms)) { - mesWorkOrderToWmsRDao.saveAll(saveMesWorkOrderToWms); - } saveMesWorkOrderLog(mesWorkOrder,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.INSERT.getValue(),item.getQty()); mesWorkOrderList.add(mesWorkOrder); } @@ -1249,36 +1225,8 @@ public class MesWorkOrderService implements IMesWorkOrderService { return mesWorkOrderList; } - public void deleteUnSortOrder(String organizeCode, List partNoList) { - DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(partNoList, "partNo", ddlPackBean); - DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue(), "workOrderType", ddlPackBean); - DdlPreparedPack.getStringSmallerNotEqualPack(TimeTool.getToday(), "planStartTime", ddlPackBean); - DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(), "workOrderStatus", ddlPackBean); - workOrderRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderStatus"}, - new Object[]{"CLOSE_JOB", TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()}, ddlPackBean); - } - - public List saveMesWorkOrderToWms(MesWorkOrder mesWorkOrder, List mesBomList) { - List mesWorkOrderToWmsList = new ArrayList<>(); - MesWorkOrderToWms mesWorkOrderToWms = null; - for (MesBom mesBom : mesBomList) { - mesWorkOrderToWms = new MesWorkOrderToWms(); - BeanUtils.copyProperties(mesWorkOrder, mesWorkOrderToWms, "id"); - mesWorkOrderToWms.setUnit(mesBom.getUnit()); - mesWorkOrderToWms.setItemPartNo(mesBom.getItemPartNo()); - mesWorkOrderToWms.setItemPartName(mesBom.getItemPartName()); - mesWorkOrderToWms.setItemUnit(mesBom.getItemUnit()); - mesWorkOrderToWms.setItemQty(MathOperation.mul(mesWorkOrder.getQty(), mesBom.getItemQty())); - ConvertBean.serviceModelInitialize(mesWorkOrderToWms, mesWorkOrderToWms.getCreateUser()); - mesWorkOrderToWmsList.add(mesWorkOrderToWms); - } - return mesWorkOrderToWmsList; - } - private MesProductVersion checkMesProductVersion(MesWorkOrder item) { - DdlPackBean ddlPackBean; - ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(item.getErpWorkCenter(), "workCenterCode", ddlPackBean); MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean); From 63bf8258758fe1d9c68a2bee9976c663ab9eab5b Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Thu, 14 Nov 2024 18:49:36 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E7=82=B9=E6=A3=80=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E8=AE=BE=E5=A4=87id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesSpotCheckOrderService.java | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java index 3fcf895..8df4a72 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java @@ -28,6 +28,7 @@ import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.map.HashedMap; import org.apache.commons.collections4.ListUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -81,6 +82,8 @@ public class MesSpotCheckOrderService implements IMesSpotCheckOrderService { @Autowired private IMesEquipmentExtService mesEquipmentExtService; + @Autowired + private MesEquipmentRepository mesEquipmentRepository; @Override public ListPager querySpotCheckOrder(MesSpotCheckOrder spotCheckOrder, Pager pager) { @@ -90,6 +93,19 @@ public class MesSpotCheckOrderService implements IMesSpotCheckOrderService { pager = PagerHelper.getPager(pager, spotCheckOrderRepository.findByHqlWhereCount(packBean)); List resultList = spotCheckOrderRepository.findByHqlWherePage(packBean, pager); + if (CollectionUtils.isEmpty(resultList)) { + return new ListPager<>(resultList, pager); + } + List equipmentlist = resultList.stream().map(MesSpotCheckOrder::getEquipCode).collect(Collectors.toList()); + + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(spotCheckOrder.getOrganizeCode()); + DdlPreparedPack.getInPackList(equipmentlist, "equipmentCode", ddlPackBean); + List mesEquipments = mesEquipmentRepository.findByHqlWhere(ddlPackBean); + Map> map = mesEquipments.stream().collect(Collectors.groupingBy(MesEquipment::getEquipmentCode)); + + resultList.forEach(mesSpotCheckOrder -> { + mesSpotCheckOrder.setEquipId(map.get(mesSpotCheckOrder.getEquipCode()).get(0).getEquipId()); + }); return new ListPager<>(resultList, pager); @@ -297,13 +313,14 @@ public class MesSpotCheckOrderService implements IMesSpotCheckOrderService { spotCheckOrderPartRepository.saveAll(model.getOrderPartList()); Integer orderResult = MesExtEnumUtil.SPOT_CHECK_ORDER_RESULT_TYPE.OK.getValue(); + // 点检单的结果 for (MesSpotCheckOrderResult result : model.getOrderResultList()) { if (StringUtils.isEmpty(result.getSpotCheckRealValue())) { throw new ImppBusiException(String.format("点检单明细未填写完成,请继续质检", result.getSpotCheckRealValue())); } - - if (result.getIsTolerance() == MesCommonConstant.TRUE_INTEGER && orderResult == MesExtEnumUtil.SPOT_CHECK_ORDER_RESULT_TYPE.OK.getValue()) { + if (Objects.equals(result.getSpotCheckResult(), "NOK") && Objects.equals(MesExtEnumUtil.SPOT_CHECK_ORDER_RESULT_TYPE.OK.getValue(), orderResult)) { + // 如果有NOK的则不用管,全OK才是OK,否则就是NOK orderResult = MesExtEnumUtil.SPOT_CHECK_ORDER_RESULT_TYPE.NOK.getValue(); } result.setSpotCheckTime(TimeTool.getNowTime(true)); @@ -568,6 +585,8 @@ public class MesSpotCheckOrderService implements IMesSpotCheckOrderService { //查询点检明细 DdlPackBean packBean = DdlPackBean.getDdlPackBean(spotCheckOrder.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(spotCheckOrder.getId(), "pid", packBean); + DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"seqCode"}, packBean); + List orderResultList = spotCheckOrderResultRepository.findByHqlWhere(packBean); //查询点检零件 From f95fbb750d118bcef354d3d4ad4a0033d5cc4d71 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Thu, 14 Nov 2024 19:45:36 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E8=A3=85=E9=85=8D=E4=BB=B6=E5=89=8D?= =?UTF-8?q?=E9=81=93=E9=98=B2=E9=94=99=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/step/MesAssemblyGeneratePartNoStepService.java | 4 ++-- .../serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java | 4 ++-- .../serviceimpl/step/MesAssemblyMatchNosortStepService.java | 4 ++-- .../apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java | 4 ++-- .../serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java | 1 + 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java index 47e8d20..962be3d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java @@ -276,9 +276,9 @@ public class MesAssemblyGeneratePartNoStepService extends BaseStepService { //前道防错 if (!StringUtils.isEmpty(filter.getProductSnId()) && !StringUtils.isEmpty(productionAssemblyNosortContext.getPreCraftCode())) { - if (CollectionUtils.isEmpty(productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getPartNo(), productionAssemblyNosortContext.getPreCraftCode()))) { + if (CollectionUtils.isEmpty(productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getAssemblyPartNo(), productionAssemblyNosortContext.getPreCraftCode()))) { stepResult.msg(String.format("%s%s", StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), - String.format("零件条码[%s]前道防错零件号[%s]工艺[%s]验证失败,未查询到加工记录信息!", equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getPartNo(), productionAssemblyNosortContext.getPreCraftCode()))); + String.format("零件条码[%s]前道防错零件号[%s]工艺[%s]验证失败,未查询到加工记录信息!", equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getAssemblyPartNo(), productionAssemblyNosortContext.getPreCraftCode()))); continue; } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java index 3e5011d..02bae7e 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java @@ -277,9 +277,9 @@ public class MesAssemblyMatchNosortRetrodictStepService extends BaseStepService //前道防错 if (!StringUtils.isEmpty(filter.getProductSnId()) && !StringUtils.isEmpty(productionAssemblyNosortContext.getPreCraftCode())) { - if (CollectionUtils.isEmpty(productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getPartNo(), productionAssemblyNosortContext.getPreCraftCode()))) { + if (CollectionUtils.isEmpty(productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getAssemblyPartNo(), productionAssemblyNosortContext.getPreCraftCode()))) { stepResult.msg(String.format("%s%s", StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), - String.format("零件条码[%s]前道防错零件号[%s]工艺[%s]验证失败,未查询到加工记录信息!", equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getPartNo(), productionAssemblyNosortContext.getPreCraftCode()))); + String.format("零件条码[%s]前道防错零件号[%s]工艺[%s]验证失败,未查询到加工记录信息!", equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getAssemblyPartNo(), productionAssemblyNosortContext.getPreCraftCode()))); continue; } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java index 66e4e59..c1ea8f5 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java @@ -280,9 +280,9 @@ public class MesAssemblyMatchNosortStepService extends BaseStepService { //前道防错 if (!StringUtils.isEmpty(filter.getProductSnId()) && !StringUtils.isEmpty(productionAssemblyNosortContext.getPreCraftCode())) { - if (CollectionUtils.isEmpty(productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getPartNo(), productionAssemblyNosortContext.getPreCraftCode()))) { + if (CollectionUtils.isEmpty(productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getAssemblyPartNo(), productionAssemblyNosortContext.getPreCraftCode()))) { stepResult.msg(String.format("%s%s", StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), - String.format("零件条码[%s]前道防错零件号[%s]工艺[%s]验证失败,未查询到加工记录信息!", equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getPartNo(), productionAssemblyNosortContext.getPreCraftCode()))); + String.format("零件条码[%s]前道防错零件号[%s]工艺[%s]验证失败,未查询到加工记录信息!", equipVariableCollectContext.getEquipVariableValue(), productionAssemblyNosortContext.getAssemblyPartNo(), productionAssemblyNosortContext.getPreCraftCode()))); continue; } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java index 7f10e72..410257e 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java @@ -249,9 +249,9 @@ public class MesAssemblyMatchSortStepService extends BaseStepService { //前道防错 if (!filter.getIsClosedCheck() && !StringUtils.isEmpty(filter.getProductSnId()) && !StringUtils.isEmpty(productionAssemblySortContext.getPreCraftCode())) { - if (CollectionUtils.isEmpty(productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblySortContext.getPartNo(), productionAssemblySortContext.getPreCraftCode()))) { + if (CollectionUtils.isEmpty(productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblySortContext.getAssemblyPartNo(), productionAssemblySortContext.getPreCraftCode()))) { stepResult.msg(String.format("%s%s", StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), - String.format("零件条码[%s]前道防错零件号[%s]工艺[%s]验证失败,未查询到加工记录信息!", equipVariableCollectContext.getEquipVariableValue(), productionAssemblySortContext.getPartNo(), productionAssemblySortContext.getPreCraftCode()))); + String.format("零件条码[%s]前道防错零件号[%s]工艺[%s]验证失败,未查询到加工记录信息!", equipVariableCollectContext.getEquipVariableValue(), productionAssemblySortContext.getAssemblyPartNo(), productionAssemblySortContext.getPreCraftCode()))); continue; } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java index 2c4ef82..2349450 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java @@ -179,6 +179,7 @@ public class MesProdCraftRouteCheckNosortStepService extends MesProdCraftRouteCh List productionRecordList = null; //验证已完成工序最大重复次数: 如果当前工位的工序与主条码的当前工序一致的情况下, 根据条码+物料+工序+工艺查询加工记录, 判断加工记录条数 + //[已完成工序最大重复次数这里判断必须大于1才进行验证的原因: 1.假如每次都进行验证会影响效率 2.即使不验证,只要当前没有配置自进自出的加工规则的情况下,后面也会拦截报错的 3.如果配置了自进自出,看实际业务是否需要自进自出,如果不需要就是配置错误,需要的话那就是允许重复扫描,那这边就应该设置大于1的值,此时就会进行重做次数验证] if (null != optionalPs && optionalPs.isPresent() && optionalPs.get().getRepeatTimes().compareTo(MesPcnExtConstWords.ONE) > 0 && reqBean.getProcessCode().equals(productionPsInContext.getProcessCode())) { //根据零件条码查询加工记录信息 productionRecordList = productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), productionPsInContext.getProductSn()); From 3509bc88d24222eb768d913aecf0bbb108a230b2 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Fri, 15 Nov 2024 15:08:41 +0800 Subject: [PATCH 07/12] =?UTF-8?q?MesJisShipping=20carNo=20=E8=B5=8B?= =?UTF-8?q?=E5=80=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/pcn/apiservice/serviceimpl/busi/MesJisShippingServiceImpl.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/MesJisShippingServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesJisShippingServiceImpl.java index 94cc0b0..211ff66 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesJisShippingServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesJisShippingServiceImpl.java @@ -54,6 +54,8 @@ public class MesJisShippingServiceImpl implements IMesJisShippingService { jisShipping.setCusCode(orderManagement.getCustCode()); jisShipping.setCusDock(orderManagement.getCustDockCode()); jisShipping.setCustOrderNo(orderManagement.getOrderCode()); + // 20241115 没有给carNo赋值 + jisShipping.setCarNo(k.getVin()); jisShipping.setSerialNumber(k.getBarcode()); jisShipping.setQuantityPerCar(1); jisShipping.setOffTime(TimeTool.getNowTime(true)); From a25c3993c5bc0fb22db6d453e0fecff717a392c7 Mon Sep 17 00:00:00 2001 From: jun Date: Fri, 15 Nov 2024 16:59:17 +0800 Subject: [PATCH 08/12] =?UTF-8?q?SPS=E5=8D=95=E6=8D=AE=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E8=BD=A6=E5=9E=8B=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesPullingOrderInfoService.java | 30 ++++++++++++++-------- 1 file changed, 20 insertions(+), 10 deletions(-) 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 2a16966..5b97c77 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 @@ -39,19 +39,12 @@ public class MesPullingOrderInfoService implements IMesPullingOrderInfoService { public static final Logger LOGGER = LoggerFactory.getLogger(MesPullingOrderInfoService.class); @Autowired private MesPullingOrderInfoRepository mesPullingOrderInfoRepository; + @Autowired private MesPullingOrderPartInfoRepository mesPullingOrderPartInfoRepository; - @Autowired - private MesPartPullRepository mesPartPullRDao; - @Autowired - private MesPartPullDetailRepository mesPartPullDetailRDao; - @Autowired - private MesWorkOrderPartRepository workOrderPartRepository; @Autowired - private MesWorkCenterRepository mesWorkCenterRepository; - @Autowired - private MesPullingOrderExtendsRepository mesPullingOrderExtendsRepository; + private MesPartPullDetailRepository mesPartPullDetailRDao; @Autowired private IMesProduceSnExtService mesProduceSnExtService; @@ -65,6 +58,9 @@ public class MesPullingOrderInfoService implements IMesPullingOrderInfoService { @Autowired private MesConfigRepository configRao; + @Autowired + private MesCustomerCarModelRepository carModelRepository; + @Override public ListPager queryMesPullingOrderInfoByPager(MesPullingOrderInfo bean, Pager pager) { @@ -186,6 +182,8 @@ public class MesPullingOrderInfoService implements IMesPullingOrderInfoService { DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); List pullingOrderInfos = mesPullingOrderInfoRepository.findByHqlWhere(packBean); if (!CollectionUtils.isEmpty(pullingOrderInfos)) { + //根据车型代码查询车型信息 + Map> mesCustomerCarModelMap = getMesCustomerCarModelMap(bean.getOrganizeCode(), pullingOrderInfos.stream().map(MesPullingOrderInfo::getCarModelCode).distinct().collect(Collectors.toList())); //把查出来的拉动单打印并修改打印状态为已打印 List snLogList = new ArrayList<>(); for (MesPullingOrderInfo pullingOrderInfo : pullingOrderInfos) { @@ -206,7 +204,7 @@ public class MesPullingOrderInfoService implements IMesPullingOrderInfoService { pullingOrderInfo.setWorkOrderNoLast(!StringUtil.isEmpty(pullingOrderInfo.getWorkOrderNo())?pullingOrderInfo.getWorkOrderNo().substring(pullingOrderInfo.getWorkOrderNo().length() - MesPcnExtConstWords.THREE):""); pullingOrderInfo.setWorkOrderNoPre(!StringUtil.isEmpty(pullingOrderInfo.getWorkOrderNo())?pullingOrderInfo.getWorkOrderNo().substring(MesPcnExtConstWords.ZERO,pullingOrderInfo.getWorkOrderNo().length() - MesPcnExtConstWords.THREE):""); pullingOrderInfo.setCustOrderNoLast(!StringUtil.isEmpty(pullingOrderInfo.getCustOrderNo())?pullingOrderInfo.getCustOrderNo().substring(pullingOrderInfo.getCustOrderNo().length() - MesPcnExtConstWords.FOUR):""); - pullingOrderInfo.setPartNamePrint("车型:"+pullingOrderInfo.getPartName()); + pullingOrderInfo.setCarModelName("车型:" + (Objects.isNull(mesCustomerCarModelMap) || StringUtil.isEmpty(pullingOrderInfo.getCarModelCode()) || !mesCustomerCarModelMap.containsKey(pullingOrderInfo.getCarModelCode()) ? "" : mesCustomerCarModelMap.get(pullingOrderInfo.getCarModelCode()).iterator().next().getCarModelName())); pullingOrderInfo.setPrintTime(TimeTool.getNowTime(true)); pullingOrderInfo.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue()); @@ -557,4 +555,16 @@ public class MesPullingOrderInfoService implements IMesPullingOrderInfoService { return mesPullingOrder; } + + public Map> getMesCustomerCarModelMap(String organizeCode, List carModelCodeList) { + if (StringUtil.isEmpty(organizeCode) || CollectionUtils.isEmpty(carModelCodeList)) return null; + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + if (carModelCodeList.size() == MesPcnExtConstWords.ONE) { + DdlPreparedPack.getStringEqualPack(carModelCodeList.get(MesPcnExtConstWords.ZERO), MesPcnExtConstWords.CAR_MODEL_CODE, packBean); + } else { + DdlPreparedPack.getInPackList(carModelCodeList, MesPcnExtConstWords.CAR_MODEL_CODE, packBean); + } + List customerCarModelList = carModelRepository.findByHqlWhere(packBean); + return CollectionUtils.isEmpty(customerCarModelList) ? null : customerCarModelList.stream().collect(Collectors.groupingBy(MesCustomerCarModel::getCarModelCode)); + } } From 21b501f5fd278f0dfdbccc10fa9f8d88092b701e Mon Sep 17 00:00:00 2001 From: jun Date: Fri, 15 Nov 2024 17:36:15 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E5=90=88=E5=B9=B6=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesWorkOrderService.java | 24 +++++++++++++--------- 1 file changed, 14 insertions(+), 10 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 a575b06..ea808db 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 @@ -546,16 +546,6 @@ public class MesWorkOrderService implements IMesWorkOrderService { oldMesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); } } - LOGGER.info("工单报工后数量【{}】", oldMesWorkOrder.getReportedQty()); - ConvertBean.serviceModelUpdate(oldMesWorkOrder, userName); - oldMesWorkOrder.setModifyDatetime((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date())); - workOrderExtService.update(oldMesWorkOrder); - - //查询工作中心 - DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(oldMesWorkOrder.getId(), "id", orderPackBean); - workOrderRepository.updateByProperties(new String[]{"systemSyncStatus"}, - new Object[]{CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()}, orderPackBean); //保存数据 List mesProductOffLineList = new ArrayList<>(); @@ -578,6 +568,17 @@ public class MesWorkOrderService implements IMesWorkOrderService { return; } + LOGGER.info("工单报工后数量【{}】", oldMesWorkOrder.getReportedQty()); + ConvertBean.serviceModelUpdate(oldMesWorkOrder, userName); + oldMesWorkOrder.setModifyDatetime((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date())); + workOrderExtService.update(oldMesWorkOrder); + + //查询工作中心 + DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(oldMesWorkOrder.getId(), "id", orderPackBean); + workOrderRepository.updateByProperties(new String[]{"systemSyncStatus"}, + new Object[]{CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()}, orderPackBean); + if(!CollectionUtils.isEmpty(mesProductOffLineList)){ mesProductOffLineRDao.saveAll(mesProductOffLineList); } @@ -648,6 +649,9 @@ public class MesWorkOrderService implements IMesWorkOrderService { newMesProductOffLine.setWorkCenterCode(oldMesWorkOrder.getWorkCenterCode()); newMesProductOffLine.setWorkCellCode(oldMesWorkOrder.getWorkCellCode()); newMesProductOffLine.setReportType(oldMesWorkOrder.getReportType()); + if (Objects.equals(MesExtEnumUtil.ORDER_TYPE.BTO.getValue(), oldMesWorkOrder.getWorkOrderType())){ + newMesProductOffLine.setWorkCenterCode(mesProductVersion.getWorkCenterCode()); + } newMesProductOffLine.setSapWorkCenter(mesProductVersion.getWorkCenterCode()); newMesProductOffLine.setOrganizeCode(oldMesWorkOrder.getOrganizeCode()); newMesProductOffLine.setDescription(productionRecord.getCompleteDateTime()); From 872f8e9413fa25dd5a8175c83b6f4a5c86041fef Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Sat, 16 Nov 2024 11:11:02 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/api/job/IMesOffLineDataSyncJobService.java | 9 - .../pcn/api/job/IMesOffLineDataSyncService.java | 21 -- .../pcn/apiservice/config/MesOffLineConfig.java | 57 ------ .../busi/MesOffLineDataSyncController.java | 72 ------- .../schedulejob/MesOffLineDataSyncJob.java | 78 -------- .../serviceimpl/busi/MesAssemblyExtService.java | 15 +- .../job/MesOffLineDataSyncJobService.java | 218 --------------------- .../serviceimpl/job/MesOffLineDataSyncService.java | 136 ------------- .../MesNumberRuleMatchAndUniqueService.java | 4 - .../rulematch/MesNumberRuleMatchSnService.java | 2 - .../MesNumberRuleMatchSortDoubleCheckService.java | 3 - .../MesNumberRuleMatchSortSnGmService.java | 4 - .../function/MesFunctionEquDowntimeService.java | 2 - .../step/MesAssemblyMatchSortStepService.java | 4 +- .../step/MesAssemblyReadStepService.java | 3 - .../MesAssemblyShowSortPreCraftStepService.java | 3 +- .../step/MesAssemblyShowSortStepService.java | 8 +- .../step/MesEquipByPassReadStepService.java | 5 - .../step/MesFirstMouldNoReadStepService.java | 3 - .../step/MesMembraneSignalReadStepService.java | 3 - .../step/MesMouldNoReadStepService.java | 3 - .../step/MesProductResultReadStepService.java | 3 - .../step/MesProductSnReadStepService.java | 3 - .../step/MesReadySignalReadStepService.java | 3 - .../step/MesRecyclablePackageReadStepService.java | 3 - .../step/MesSendEquipParamsCmdStepService.java | 3 - .../step/MesSendEquipParamsCmdStepService2.java | 3 - .../step/MesSendInitializationCmdStepService.java | 3 - .../step/MesSendProcessCmdStepService.java | 3 - .../MesVariableWhenFinishedReadStepService.java | 3 - .../step/MesWorkOrderCheckSortStepService.java | 4 +- .../step/MesWorkOrderReadStepService.java | 3 - .../MesProductionProcessContextStepService.java | 7 - .../MesProductionProcessMonitorService.java | 6 +- .../method/MesAssemblySaveSortStepService.java | 1 - .../resources/application-offline-bak.properties | 35 ---- .../main/resources/application-offline.properties | 81 -------- .../mes/pcn/pojo/context/MesProdRuleContext.java | 10 - .../pojo/context/MesProductionAssemblyContext.java | 4 - .../context/MesProductionAssemblySortContext.java | 6 - .../pcn/pojo/context/MesProductionPartContext.java | 11 -- .../pcn/pojo/context/MesProductionPsInContext.java | 11 -- 42 files changed, 17 insertions(+), 842 deletions(-) delete mode 100644 modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesOffLineDataSyncJobService.java delete mode 100644 modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesOffLineDataSyncService.java delete mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/config/MesOffLineConfig.java delete mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesOffLineDataSyncController.java delete mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesOffLineDataSyncJob.java delete mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesOffLineDataSyncJobService.java delete mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesOffLineDataSyncService.java delete mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-offline-bak.properties delete mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-offline.properties diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesOffLineDataSyncJobService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesOffLineDataSyncJobService.java deleted file mode 100644 index 67fb6f4..0000000 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesOffLineDataSyncJobService.java +++ /dev/null @@ -1,9 +0,0 @@ -package cn.estsh.i3plus.ext.mes.pcn.api.job; - -import cn.estsh.i3plus.pojo.mes.bean.MesPcnSyncOfflineLog; - -public interface IMesOffLineDataSyncJobService { - - String doOffLineDataSync(MesPcnSyncOfflineLog pcnSyncOfflineLog); - -} diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesOffLineDataSyncService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesOffLineDataSyncService.java deleted file mode 100644 index 718a584..0000000 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesOffLineDataSyncService.java +++ /dev/null @@ -1,21 +0,0 @@ -package cn.estsh.i3plus.ext.mes.pcn.api.job; - -import cn.estsh.i3plus.pojo.mes.bean.MesDatasource; -import cn.estsh.i3plus.pojo.mes.bean.MesPcnSyncOfflineLog; - -import java.util.List; -import java.util.Map; - -public interface IMesOffLineDataSyncService { - - List getPcnSyncOfflineLogList(String organizeCode); - - List filterPcnSyncOfflineLogList(List pcnSyncOfflineLogList, Boolean flag); - - Map filterFaulurePcnSyncOfflineLog(List pcnSyncOfflineLogList); - - MesPcnSyncOfflineLog insertPcnSyncOfflineLog(MesPcnSyncOfflineLog pcnSyncOfflineLog, String tableName); - - void insertBaseBeanData(MesPcnSyncOfflineLog pcnSyncOfflineLog, List> resultList, String objectCode, String tableName) throws Exception; - -} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/config/MesOffLineConfig.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/config/MesOffLineConfig.java deleted file mode 100644 index 907b775..0000000 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/config/MesOffLineConfig.java +++ /dev/null @@ -1,57 +0,0 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.config; - -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.mes.bean.MesDatasource; -import cn.estsh.i3plus.pojo.mes.bean.MesPcnTask; -import io.swagger.annotations.ApiParam; -import lombok.Data; -import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; -import org.springframework.util.StringUtils; - -import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; - -@ConditionalOnExpression("'${mes.offline.sync.open:false}' == 'true'") -@Data -@Configuration -@ConfigurationProperties(prefix = "mes.offline.sync") -public class MesOffLineConfig { - - //离线数据源配置 - private MesDatasourceModel dataSource = new MesDatasourceModel(); - - //离线数据同步JOB配置 - private MesPcnTaskModel pcnTask = new MesPcnTaskModel(); - - //sql参数注入值 - private Map sqlParameter = new HashMap<>(); - - //同步sql - private Map sql = new HashMap<>(); - - public class MesDatasourceModel extends MesDatasource implements Serializable { - - private static final long serialVersionUID = 7825562788566047534L; - - @ApiParam("主机端口") - private String dsHostPort; - - public void setDsHostPort(String dsHostPort) { - this.dsHostPort = dsHostPort; - if (!StringUtils.isEmpty(this.dsHostPort)) setDsPort(Integer.valueOf(this.dsHostPort)); - } - } - - public class MesPcnTaskModel extends MesPcnTask implements Serializable { - - private static final long serialVersionUID = -521750700257233487L; - - public MesPcnTaskModel() { - this.isDeleted = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); - this.isValid = CommonEnumUtil.IS_VAILD.VAILD.getValue(); - } - } -} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesOffLineDataSyncController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesOffLineDataSyncController.java deleted file mode 100644 index f978b46..0000000 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesOffLineDataSyncController.java +++ /dev/null @@ -1,72 +0,0 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.busi; - -import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesOffLineDataSyncJobService; -import cn.estsh.i3plus.ext.mes.pcn.apiservice.config.MesOffLineConfig; -import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; -import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; -import cn.estsh.i3plus.pojo.mes.bean.MesPcnSyncOfflineLog; -import cn.estsh.impp.framework.boot.exception.ImppBusiException; -import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.impp.framework.boot.util.ResultBean; -import cn.estsh.impp.framework.boot.util.SpringContextsUtil; -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.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.net.InetAddress; -import java.util.HashMap; -import java.util.Map; - -@RestController -@RequestMapping(MesCommonConstant.MES_YANFEN + "/offline-data-sync") -public class MesOffLineDataSyncController { - - @Autowired - private IMesOffLineDataSyncJobService offLineDataSyncJobService; - - @GetMapping("/cfg/get") - @ApiOperation(value = "获取离线配置") - public ResultBean getOffLineCfg() { - try { - MesOffLineConfig offLineConfig = (MesOffLineConfig) SpringContextsUtil.getBean("mesOffLineConfig"); - Map resultMap = new HashMap<>(); - resultMap.put("dataSource", offLineConfig.getDataSource()); - resultMap.put("pcnTask", offLineConfig.getPcnTask()); - resultMap.put("sqlParameter", offLineConfig.getSqlParameter()); - resultMap.put("sql", offLineConfig.getSql()); - return ResultBean.success("查询成功").setResultMap(resultMap); - } catch (ImppBusiException imppException) { - return ResultBean.fail(imppException); - } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @GetMapping("/do") - @ApiOperation(value = "执行离线同步") - public ResultBean doOffLineDataSync() { - try { - - MesOffLineConfig offLineConfig = (MesOffLineConfig) SpringContextsUtil.getBean("mesOffLineConfig"); - - String param = offLineConfig.getPcnTask().getTaskParam(); - - String[] params = StringUtils.isEmpty(param) ? null : param.split(MesPcnExtConstWords.COLON); - - if (null == params || params.length != 4) return ResultBean.fail("参数配置错误,参数正确格式[ mes.offline.sync.pcnTask.taskParam = 工厂:区域:生产线:工位 ]"); - - MesPcnSyncOfflineLog pcnSyncOfflineLog = new MesPcnSyncOfflineLog(params[0], params[1], params[2], params[3]); - pcnSyncOfflineLog.setSyncTarget(InetAddress.getLocalHost().getHostAddress()); - - return ResultBean.success(offLineDataSyncJobService.doOffLineDataSync(pcnSyncOfflineLog)); - } catch (ImppBusiException imppException) { - return ResultBean.fail(imppException); - } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - -} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesOffLineDataSyncJob.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesOffLineDataSyncJob.java deleted file mode 100644 index ce2e4fe..0000000 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesOffLineDataSyncJob.java +++ /dev/null @@ -1,78 +0,0 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob; - - -import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesOffLineDataSyncJobService; -import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; -import cn.estsh.i3plus.pojo.mes.bean.MesPcnSyncOfflineLog; -import com.alibaba.fastjson.JSONObject; -import io.swagger.annotations.ApiOperation; -import lombok.extern.slf4j.Slf4j; -import org.quartz.DisallowConcurrentExecution; -import org.quartz.Job; -import org.quartz.JobExecutionContext; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.StopWatch; - -import java.net.InetAddress; - -/** - * @Author: Wynne.Lu - * @CreateDate: 2019/12/17 1:18 下午 - * @Description: - **/ -@Slf4j -@ApiOperation("MES同步离线数据JOB") -@DisallowConcurrentExecution -public class MesOffLineDataSyncJob implements Job { - - @Autowired - private IMesOffLineDataSyncJobService offLineDataSyncJobService; - - public MesOffLineDataSyncJob() {} - - @Override - public void execute(JobExecutionContext jobExecutionContext) { - - log.info("MES同步离线数据JOB --- START ---"); - - StopWatch stopWatch = new StopWatch(); - - stopWatch.start(); - - try { - - Object param = jobExecutionContext.getJobDetail().getJobDataMap().get("param"); - - if (null == param) { - log.info("MES同步离线数据JOB --- ERROR --- 未配置参数 ---"); - return; - } - - String[] params = param.toString().split(MesPcnExtConstWords.COLON); - - if (null == params || params.length != 4) { - log.info("MES同步离线数据JOB --- ERROR --- 参数配置错误,参数正确格式[ mes.offline.sync.pcnTask.taskParam = 工厂:区域:生产线:工位 ] ---"); - return; - } - - MesPcnSyncOfflineLog pcnSyncOfflineLog = new MesPcnSyncOfflineLog(params[0], params[1], params[2], params[3]); - pcnSyncOfflineLog.setSyncTarget(InetAddress.getLocalHost().getHostAddress()); - - String success = offLineDataSyncJobService.doOffLineDataSync(pcnSyncOfflineLog); - - log.info("MES同步离线数据JOB --- EXEC --- {} ---", success); - - } catch (Exception e) { - - log.info("MES同步离线数据JOB --- ERROR --- {} ---", JSONObject.toJSONString(e)); - - } finally { - - stopWatch.stop(); - - log.info("MES同步离线数据JOB --- END --- 耗时:{} ms ---", stopWatch.getTotalTimeMillis()); - - } - - } -} 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 889f8cf..fe9bf75 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 @@ -67,12 +67,12 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { if (CollectionUtils.isEmpty(workOrderAssemblyList)) return null; - //获取排序FILE文件URL 【离线生产不需要获取文件】 - Map fileMap = !prodRuleContext.getIsClosedCheck() ? getFileMap(prodRuleContext.getOrganizeCode(), filterSortFileIdList(workOrderAssemblyList)) : null; + //获取排序FILE文件URL + Map fileMap = getFileMap(prodRuleContext.getOrganizeCode(), filterSortFileIdList(workOrderAssemblyList)); List productionAssemblySortContextList = new ArrayList<>(); - workOrderAssemblyList.forEach(o -> productionAssemblySortContextList.add(new MesProductionAssemblySortContext().copy(o).fileUrl(fileMap).foreignKey(prodRuleContext.getForeignKey()).isClosedCheck(prodRuleContext.getIsClosedCheck()))); + workOrderAssemblyList.forEach(o -> productionAssemblySortContextList.add(new MesProductionAssemblySortContext().copy(o).fileUrl(fileMap).foreignKey(prodRuleContext.getForeignKey()))); return productionAssemblySortContextList; } @@ -101,17 +101,16 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { workOrderAssemblyList.forEach(o -> productionAssemblySortContextList.add( new MesProductionAssemblySortContext() - .copy(o, getProductionAssembly(productionAssemblyMap, o.getId()), getIsCheckBindSeq(getWorkCell(workCellMap, o.getWorkCellCode()), prodRuleContext.getIsClosedCheck())) - .foreignKey(prodRuleContext.getForeignKey()).isClosedCheck(prodRuleContext.getIsClosedCheck()) + .copy(o, getProductionAssembly(productionAssemblyMap, o.getId()), getIsCheckBindSeq(getWorkCell(workCellMap, o.getWorkCellCode()))) + .foreignKey(prodRuleContext.getForeignKey()) ) ); return productionAssemblySortContextList; } - //判断是否按序扫描【离线默认有序】 - private Integer getIsCheckBindSeq(MesWorkCell workCell, Boolean isClosedCheck) { - if (isClosedCheck) return CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(); + //判断是否按序扫描 + private Integer getIsCheckBindSeq(MesWorkCell workCell) { return (null != workCell && !StringUtils.isEmpty(workCell.getIsSeqScan())) ? workCell.getIsSeqScan() : CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesOffLineDataSyncJobService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesOffLineDataSyncJobService.java deleted file mode 100644 index a85e38e..0000000 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesOffLineDataSyncJobService.java +++ /dev/null @@ -1,218 +0,0 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.job; - -import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesOffLineDataSyncJobService; -import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesOffLineDataSyncService; -import cn.estsh.i3plus.ext.mes.pcn.apiservice.config.MesOffLineConfig; -import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; -import cn.estsh.i3plus.mes.pcn.serviceimpl.base.PcnJobService; -import cn.estsh.i3plus.mes.pcn.util.BsJdbcTemplate; -import cn.estsh.i3plus.mes.pcn.util.BsJdbcTemplateConfig; -import cn.estsh.i3plus.platform.common.convert.ConvertBean; -import cn.estsh.i3plus.platform.common.tool.TimeTool; -import cn.estsh.i3plus.pojo.mes.bean.MesDatasource; -import cn.estsh.i3plus.pojo.mes.bean.MesPcnSyncOfflineLog; -import cn.estsh.i3plus.pojo.mes.bean.MesPcnTask; -import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; -import cn.estsh.impp.framework.boot.util.SpringContextsUtil; -import com.alibaba.fastjson.JSONObject; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Primary; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -import java.util.*; - -@Slf4j -@Primary -@Service -public class MesOffLineDataSyncJobService extends PcnJobService implements IMesOffLineDataSyncJobService { - - private MesOffLineConfig offLineConfig; - - private BsJdbcTemplateConfig jdbcTemplateConfig; - - @Autowired - private IMesOffLineDataSyncService offLineDataSyncService; - - @Override - public List loadJobs(Boolean pcnScheduleJob, Boolean mesOffLineSyncOpen) { - List list = super.loadJobs(pcnScheduleJob, mesOffLineSyncOpen); - if (!mesOffLineSyncOpen) return list; - try { - offLineConfig = (MesOffLineConfig) SpringContextsUtil.getBean("mesOffLineConfig"); - jdbcTemplateConfig = (BsJdbcTemplateConfig) SpringContextsUtil.getBean("bsJdbcTemplateConfig"); - list.add(offLineConfig.getPcnTask()); - } catch (Exception e) { - } - return list; - } - - @Override - public String doOffLineDataSync(MesPcnSyncOfflineLog pcnSyncOfflineLog) { - - if (null == offLineConfig) offLineConfig = (MesOffLineConfig) SpringContextsUtil.getBean("mesOffLineConfig"); - - if (null == offLineConfig) return "MesOffLineConfig IS NULL"; - - MesDatasource datasource = offLineConfig.getDataSource(); - pcnSyncOfflineLog.setSyncSource(String.format("mysql://%s:%s/%s", datasource.getDsHost(), datasource.getDsPort(), datasource.getDsDbName())); - pcnSyncOfflineLog.setSyncPattern("全量同步"); - pcnSyncOfflineLog.setSyncDate(TimeTool.getToday()); - ConvertBean.serviceModelInitialize(pcnSyncOfflineLog, MesPcnExtConstWords.JOB); - pcnSyncOfflineLog.setSystemSyncDatetime(pcnSyncOfflineLog.getModifyDatetime()); - - String error = checkDataSourceIsValid(datasource); - if (!StringUtils.isEmpty(error)) return error; - - Map sqlMap = offLineConfig.getSql(); - Map sqlParameterMap = offLineConfig.getSqlParameter(); - - if (CollectionUtils.isEmpty(sqlMap) || CollectionUtils.isEmpty(sqlParameterMap)) return "SQL CFG IS NULL"; - - List pcnSyncOfflineLogList = offLineDataSyncService.getPcnSyncOfflineLogList(pcnSyncOfflineLog.getOrganizeCode()); - - List successedList = offLineDataSyncService.filterPcnSyncOfflineLogList(pcnSyncOfflineLogList, true); - - if (!CollectionUtils.isEmpty(successedList) && successedList.containsAll(sqlMap.keySet())) return String.format("%s已同步成功,无需重复执行!", sqlMap.keySet().toString()); - - Map failuredMap = offLineDataSyncService.filterFaulurePcnSyncOfflineLog(pcnSyncOfflineLogList); - - if (null == jdbcTemplateConfig) jdbcTemplateConfig = (BsJdbcTemplateConfig) SpringContextsUtil.getBean("bsJdbcTemplateConfig"); - - BsJdbcTemplate bsJdbcTemplate = null != jdbcTemplateConfig ? jdbcTemplateConfig.getJdbcTemplate(datasource) : null; - - Boolean isConn = null != jdbcTemplateConfig ? jdbcTemplateConfig.checkDbConn(datasource) : false; - - String tableName; - Boolean success = true; - List successTableNameList = new ArrayList<>(); - List failureTableNameList = new ArrayList<>(); - - for (String objectCode : sqlMap.keySet()) { - - if (StringUtils.isEmpty(objectCode)) continue; - - if (!objectCode.contains(MesPcnExtConstWords.DECIMAL_POINT)) { - tableName = objectCode; - } else { - //如果pojo在 DEFAULT_POJO_ROUTE 下面还有包, 配置的时候需带上除去 DEFAULT_POJO_ROUTE 以外的包 - String[] suffix = objectCode.split(MesPcnExtConstWords.DECIMAL_POINT_ESCAPE); - tableName = suffix[suffix.length - 1]; - } - - if (!CollectionUtils.isEmpty(successedList) && successedList.contains(tableName)) continue; - - Boolean status = false; - String remark = null; - - try { - - String sql = sqlMap.get(objectCode); - if (StringUtils.isEmpty(sql)) { - remark = "SQL IS NULL"; - continue; - } - if (null == jdbcTemplateConfig) { - remark = "BsJdbcTemplateConfig IS NULL"; - continue; - } - if (null == bsJdbcTemplate) { - remark = "BsJdbcTemplate IS NULL"; - continue; - } - if (!isConn) { - remark = "checkDbConn IS FALSE"; - continue; - } - - Map paramMap = new HashMap<>(); - - for (Map.Entry sqlParameter : sqlParameterMap.entrySet()) { - - if (null == sqlParameter || StringUtils.isEmpty(sqlParameter.getValue())) continue; - - if (!sql.contains(MesPcnExtConstWords.COLON + sqlParameter.getKey())) continue; - - if (sqlParameter.getKey().contains("_int")) paramMap.put(sqlParameter.getKey(), Integer.valueOf(sqlParameter.getValue())); - else if (sqlParameter.getKey().contains("_list")) paramMap.put(sqlParameter.getKey(), Arrays.asList(sqlParameter.getValue().split(MesPcnExtConstWords.COMMA))); - // TODO else if - else paramMap.put(sqlParameter.getKey(), sqlParameter.getValue()); - - } - - List> resultList = bsJdbcTemplate.getJdbcTemplate().queryForList(sql, paramMap); - - if (CollectionUtils.isEmpty(resultList)) remark = "未查询到数据"; - else { - offLineDataSyncService.insertBaseBeanData(pcnSyncOfflineLog, resultList, objectCode, tableName); - successTableNameList.add(tableName); - status = true; - } - - } catch (Exception e) { - - remark = e.toString(); - - success = false; - - log.info("MES同步离线数据JOB --- ERROR --- {} ---", JSONObject.toJSONString(e)); - - } finally { - if (!status) { - insertPcnSyncOfflineLog2Failure(pcnSyncOfflineLog, tableName, failuredMap, remark); - failureTableNameList.add(String.format("[%s]同步失败原因[%s]", tableName, remark)); - success = false; - } - } - - } - - if (!CollectionUtils.isEmpty(successTableNameList) && success) { - - StringBuilder builder = new StringBuilder(); - builder.append(" insert into mes_pcn_sync_offline_log "); - builder.append("( id, organize_code, is_valid, is_deleted, create_user, create_date_time, modify_user, modify_date_time, system_sync_date_time, system_sync_status,"); - builder.append(" area_code, work_center_code, work_cell_code, object_code, effect_num, sync_date, sync_pattern, sync_source, sync_target, sync_result )"); - builder.append(" values ( :id , :organizeCode , :isValid , :isDeleted , :createUser , :createDatetime , :modifyUser , :modifyDatetime , :systemSyncDatetime , :systemSyncStatus ,"); - builder.append(" :areaCode , :workCenterCode , :workCellCode , :objectCode , :effectNum , :syncDate , :syncPattern , :syncSource , :syncTarget , :syncResult ); "); - - Map paramMap = JSONObject.parseObject(JSONObject.toJSONString(pcnSyncOfflineLog), Map.class); - paramMap.put(MesPcnExtConstWords.OBJECT_CODE, sqlMap.keySet().toString()); - paramMap.put(MesPcnExtConstWords.EFFECT_NUM, MesPcnExtConstWords.ZERO); - - bsJdbcTemplate.getJdbcTemplate().update(builder.toString(), paramMap); - - } - - return (CollectionUtils.isEmpty(successTableNameList) ? MesPcnExtConstWords.EMPTY : String.format("%s同步成功!", successTableNameList.toString())) + - (CollectionUtils.isEmpty(failureTableNameList) ? MesPcnExtConstWords.EMPTY : failureTableNameList.toString()); - - } - - private String checkDataSourceIsValid(MesDatasource datasource) { - - if (null == datasource) return "MesDatasource IS NULL"; - - if (StringUtils.isEmpty(datasource.getDsCode())) return "离线边端数据库[dsCode]未配置!"; - if (StringUtils.isEmpty(datasource.getDsName())) return "离线边端数据库[dsName]未配置!"; - if (StringUtils.isEmpty(datasource.getDsType())) return "离线边端数据库[dsType]未配置!"; - if (StringUtils.isEmpty(datasource.getDsHost())) return "离线边端数据库[dsHost]未配置!"; - if (StringUtils.isEmpty(datasource.getDsPort())) return "离线边端数据库[dsHostPort]未配置!"; - if (StringUtils.isEmpty(datasource.getDsUser())) return "离线边端数据库[dsUser]未配置!"; - if (StringUtils.isEmpty(datasource.getDsPassword())) return "离线边端数据库[dsPassword]未配置!"; - if (StringUtils.isEmpty(datasource.getDsDbName())) return "离线边端数据库[dsDbName]未配置!"; - - return null; - } - - private void insertPcnSyncOfflineLog2Failure(MesPcnSyncOfflineLog pcnSyncOfflineLog, String objectCode, Map failuredMap, String remark) { - - if (!CollectionUtils.isEmpty(failuredMap) && failuredMap.containsKey(objectCode) && failuredMap.get(objectCode).equals(remark)) return; - - offLineDataSyncService.insertPcnSyncOfflineLog(pcnSyncOfflineLog.syncResult(MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_FAILURE.getValue()).remark(remark), objectCode); - - } - -} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesOffLineDataSyncService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesOffLineDataSyncService.java deleted file mode 100644 index 610c422..0000000 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesOffLineDataSyncService.java +++ /dev/null @@ -1,136 +0,0 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.job; - -import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesOffLineDataSyncService; -import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; -import cn.estsh.i3plus.mes.pcn.util.StringUtil; -import cn.estsh.i3plus.platform.common.tool.ReflectTool; -import cn.estsh.i3plus.platform.common.tool.TimeTool; -import cn.estsh.i3plus.pojo.base.bean.BaseBean; -import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; -import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.MesPcnSyncOfflineLog; -import cn.estsh.i3plus.pojo.mes.repository.MesPcnSyncOfflineLogRepository; -import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; -import cn.estsh.impp.framework.boot.exception.ImppBusiException; -import cn.estsh.impp.framework.boot.util.SpringContextsUtil; -import com.alibaba.fastjson.JSONObject; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.ArrayUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Propagation; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; - -import javax.persistence.Column; -import java.lang.reflect.Field; -import java.util.*; -import java.util.stream.Collectors; - -@Slf4j -@Service -public class MesOffLineDataSyncService implements IMesOffLineDataSyncService { - - @Autowired - private MesPcnSyncOfflineLogRepository pcnSyncOfflineLogRepository; - - private static String DEFAULT_POJO_ROUTE = "cn.estsh.i3plus.pojo.mes.bean."; - - @Override - public List getPcnSyncOfflineLogList(String organizeCode) { - return pcnSyncOfflineLogRepository.findByProperty( - new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.SYNC_DATE}, - new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), TimeTool.getToday()}); - } - - @Override - public List filterPcnSyncOfflineLogList(List pcnSyncOfflineLogList, Boolean flag) { - return CollectionUtils.isEmpty(pcnSyncOfflineLogList) ? null : pcnSyncOfflineLogList.stream().filter(o -> ( - null != o && o.getSyncResult().compareTo(MesExtEnumUtil.MES_LOG_DEAL_STATUS.getValueByFlag(flag)) == 0)).map(MesPcnSyncOfflineLog::getObjectCode).collect(Collectors.toList()); - } - - @Override - public Map filterFaulurePcnSyncOfflineLog(List pcnSyncOfflineLogList) { - List filterList = CollectionUtils.isEmpty(pcnSyncOfflineLogList) ? null : - pcnSyncOfflineLogList.stream().filter(o -> (null != o && o.getSyncResult().compareTo(MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_FAILURE.getValue()) == 0)).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(filterList)) return null; - filterList = filterList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesPcnSyncOfflineLog::getCreateDatetime).reversed()).collect(Collectors.toList()); - filterList = filterList.stream().filter(o -> null != o).distinct().collect(Collectors.collectingAndThen( - Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MesPcnSyncOfflineLog::getObjectCode))), ArrayList::new)); - return filterList.stream().filter(o -> null != o).collect(Collectors.toMap(MesPcnSyncOfflineLog::getObjectCode, MesPcnSyncOfflineLog::getRemark)); - } - - @Override - @Transactional(propagation = Propagation.REQUIRES_NEW, noRollbackFor = {ImppBusiException.class, Exception.class}) - public MesPcnSyncOfflineLog insertPcnSyncOfflineLog(MesPcnSyncOfflineLog pcnSyncOfflineLog, String tableName) { - pcnSyncOfflineLog.setObjectCode(tableName); - pcnSyncOfflineLog.setId(null); - pcnSyncOfflineLog = pcnSyncOfflineLogRepository.insert(pcnSyncOfflineLog); - log.info("MES同步离线数据JOB --- EXEC --- TABLE_NAME: {} --- {} ---", tableName, JSONObject.toJSONString(pcnSyncOfflineLog)); - return pcnSyncOfflineLog; - } - - @Override - @Transactional(propagation = Propagation.REQUIRES_NEW, noRollbackFor = {ImppBusiException.class, Exception.class}) - public void insertBaseBeanData(MesPcnSyncOfflineLog pcnSyncOfflineLog, List> resultList, String objectCode, String tableName) throws Exception { - - String daoName = StringUtil.lineToHump(tableName); - String pojoName = StringUtil.toUpperCaseFirst(daoName); - String pojoRoute = DEFAULT_POJO_ROUTE + (!objectCode.contains(MesPcnExtConstWords.DECIMAL_POINT) ? pojoName : objectCode.replace(tableName, pojoName)); - - BaseRepository baseRepository = (BaseRepository) SpringContextsUtil.getBean(daoName + MesPcnExtConstWords.Repository); - - List historyList = baseRepository.findAll(); - Map historyMap = CollectionUtils.isEmpty(historyList) ? null : historyList.stream().filter(o -> null != o).collect(Collectors.toMap(BaseBean::getId, o -> o)); - - Class clazz = Class.forName(pojoRoute); - - Field[] fields = ArrayUtils.addAll(clazz.getFields(), clazz.getDeclaredFields()); - - String fieldName; - for (Map map : resultList) { - - BaseBean baseBean = (BaseBean) clazz.newInstance(); - - for (Field field : fields) { - - if (null == field) continue; - - Column column = field.getAnnotation(Column.class); - - if (null == column) continue; - - fieldName = column.name().toLowerCase(); - - if (!map.containsKey(fieldName)) continue; - - ReflectTool.setFieldValue(baseBean, field, map.get(fieldName)); - - } - - baseBean.setSystemSyncDatetime(pcnSyncOfflineLog.getSystemSyncDatetime()); - if (!CollectionUtils.isEmpty(historyMap) && historyMap.containsKey(baseBean.getId())) { - baseRepository.updateNoSync(baseBean); - historyMap.remove(baseBean.getId()); - } else { - baseRepository.insert(baseBean); - } - - } - - historyList = CollectionUtils.isEmpty(historyMap) ? null : - historyMap.values().stream().filter(o -> (null != o && o.getIsDeleted().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0)).collect(Collectors.toList()); - - if (!CollectionUtils.isEmpty(historyList)) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(pcnSyncOfflineLog.getOrganizeCode()); - DdlPreparedPack.getInPackList(historyList.stream().filter(o -> null != o).map(BaseBean::getId).collect(Collectors.toList()), MesPcnExtConstWords.ID, packBean); - baseRepository.updateByProperties(MesPcnExtConstWords.IS_DELETED, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), packBean); - } - - insertPcnSyncOfflineLog(pcnSyncOfflineLog.syncResult(MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_SUCCESS.getValue()).effectNum(CollectionUtils.isEmpty(resultList) ? 0 : resultList.size()).remark(null), tableName); - - } - -} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchAndUniqueService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchAndUniqueService.java index 0c138c7..d7c019f 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchAndUniqueService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchAndUniqueService.java @@ -39,10 +39,6 @@ public class MesNumberRuleMatchAndUniqueService implements IMesNumberRuleMatchDi return result; } - //验证是否离线 - MesProductionAssemblyContext context = (MesProductionAssemblyContext) params[0]; - if (context.getIsClosedCheck()) return result; - List productionAssemblyUniqueList = assemblyExtService.getProductionAssemblyUniqueList(organizeCode, sn); Optional optional = CollectionUtils.isEmpty(productionAssemblyUniqueList) ? null : diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSnService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSnService.java index 573fd61..79be7c9 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSnService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSnService.java @@ -39,9 +39,7 @@ public class MesNumberRuleMatchSnService implements IMesNumberRuleMatchDispatchS return result; } - //验证是否离线 MesProductionAssemblyContext context = (MesProductionAssemblyContext) params[0]; - if (context.getIsClosedCheck()) return result; List produceSnList = produceSnExtService.getProduceSnList(organizeCode, sn); if (CollectionUtils.isEmpty(produceSnList)) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSortDoubleCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSortDoubleCheckService.java index a6b01fa..7d677d5 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSortDoubleCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSortDoubleCheckService.java @@ -58,9 +58,6 @@ public class MesNumberRuleMatchSortDoubleCheckService implements IMesNumberRuleM if (!(Boolean) result.get(MesPcnExtConstWords.RESULT)) return result; } - //验证是否离线 - if (context.getIsClosedCheck()) return result; - result.put(MesPcnExtConstWords.RESULT, false); //验证零件号 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSortSnGmService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSortSnGmService.java index 5d9ea70..0161748 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSortSnGmService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSortSnGmService.java @@ -40,10 +40,6 @@ public class MesNumberRuleMatchSortSnGmService implements IMesNumberRuleMatchDis return result; } - //验证是否离线 - MesProductionAssemblyContext context = (MesProductionAssemblyContext) params[0]; - if (context.getIsClosedCheck()) return result; - String productSn = customerSnTransformService.transformBarCodeGm(sn); if (productSn.length() == sn.length()) { result.put(MesPcnExtConstWords.MESSAGE, String.format("通用自制件条码固定长度为58位,零件条码[%s]长度[%s]位!", sn, sn.length())); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionEquDowntimeService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionEquDowntimeService.java index 730744f..126ee40 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionEquDowntimeService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionEquDowntimeService.java @@ -1,6 +1,5 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService; @@ -24,7 +23,6 @@ import org.springframework.util.CollectionUtils; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.stream.Collectors; /** diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java index 410257e..74a0d9a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java @@ -248,7 +248,7 @@ public class MesAssemblyMatchSortStepService extends BaseStepService { MesProductionAssemblySortContext filter = (MesProductionAssemblySortContext) result.get(MesPcnExtConstWords.DATA); //前道防错 - if (!filter.getIsClosedCheck() && !StringUtils.isEmpty(filter.getProductSnId()) && !StringUtils.isEmpty(productionAssemblySortContext.getPreCraftCode())) { + if (!StringUtils.isEmpty(filter.getProductSnId()) && !StringUtils.isEmpty(productionAssemblySortContext.getPreCraftCode())) { if (CollectionUtils.isEmpty(productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), productionAssemblySortContext.getAssemblyPartNo(), productionAssemblySortContext.getPreCraftCode()))) { stepResult.msg(String.format("%s%s", StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), String.format("零件条码[%s]前道防错零件号[%s]工艺[%s]验证失败,未查询到加工记录信息!", equipVariableCollectContext.getEquipVariableValue(), productionAssemblySortContext.getAssemblyPartNo(), productionAssemblySortContext.getPreCraftCode()))); @@ -257,7 +257,7 @@ public class MesAssemblyMatchSortStepService extends BaseStepService { } //时效性验证 - if (!filter.getIsClosedCheck() && !StringUtils.isEmpty(filter.getProductSnId())) { + if (!StringUtils.isEmpty(filter.getProductSnId())) { result = timeEfficientCfgMatchService.checkSnTimeliness(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue(), filter.getSourceId(), MesExtEnumUtil.TIME_DATA_SOURCE.DATA_SOURCE10.getValue()); if (!(Boolean)result.get(MesPcnExtConstWords.RESULT)) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyReadStepService.java index 80c3d62..87756d6 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyReadStepService.java @@ -63,9 +63,6 @@ public class MesAssemblyReadStepService extends BaseStepService { @Override public StepResult init(StationRequestBean reqBean) { - //离线生产 - if (mesOffLineOpen) stepExpSendMsgAndThrowEx(reqBean, new StationResultBean().writeDbLog(), "离线生产当前设备不可用!"); - StepResult stepResult = StepResult.getSuccessComplete(); String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortPreCraftStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortPreCraftStepService.java index 18957d3..35cc9cb 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortPreCraftStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortPreCraftStepService.java @@ -31,8 +31,7 @@ public class MesAssemblyShowSortPreCraftStepService extends MesAssemblyShowSortS public MesProdRuleContext getProdRuleSortContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, MesProductionPsInContext productionPsInContext) { Map workCellMap = productionProcessContextStepService.dispatchWorkCellMap(reqBean); MesProdRuleContext prodRuleContext = new MesProdRuleContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode(), productionProcessContext.getCraftCode()) - .equipmentCode(cellEquipContext.getEquipmentCode()).workOrderNo(productionPsInContext.getWorkOrderNo()).productSn(productionPsInContext.getProductSn()).foreignKey(productionPsInContext.getForeignKey()) - .isClosedCheck(mesOffLineOpen); + .equipmentCode(cellEquipContext.getEquipmentCode()).workOrderNo(productionPsInContext.getWorkOrderNo()).productSn(productionPsInContext.getProductSn()).foreignKey(productionPsInContext.getForeignKey()); return prodRuleCfgExtService.getProdRuleSortPreCraftContext(prodRuleContext, workCellMap); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java index 35bceec..44fdcb2 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java @@ -115,15 +115,13 @@ public class MesAssemblyShowSortStepService extends BaseStepService { public MesProdRuleContext getProdRuleSortContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, MesProductionPsInContext productionPsInContext) { MesProdRuleContext prodRuleContext = new MesProdRuleContext( reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode(), productionProcessContext.getCraftCode()).isCheckBindSeq(getIsCheckBindSeq(productionProcessContext.getWorkCell())) - .equipmentCode(cellEquipContext.getEquipmentCode()).workOrderNo(productionPsInContext.getWorkOrderNo()).productSn(productionPsInContext.getProductSn()).foreignKey(productionPsInContext.getForeignKey()) - .isClosedCheck(mesOffLineOpen); + .equipmentCode(cellEquipContext.getEquipmentCode()).workOrderNo(productionPsInContext.getWorkOrderNo()).productSn(productionPsInContext.getProductSn()).foreignKey(productionPsInContext.getForeignKey()); return prodRuleCfgExtService.getProdRuleSortContext(prodRuleContext); } - //判断是否按序扫描【离线默认有序】 + //判断是否按序扫描 private Integer getIsCheckBindSeq(MesWorkCell workCell) { - if (!mesOffLineOpen) return (null != workCell && !StringUtils.isEmpty(workCell.getIsSeqScan())) ? workCell.getIsSeqScan() : CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); - return CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(); + return (null != workCell && !StringUtils.isEmpty(workCell.getIsSeqScan())) ? workCell.getIsSeqScan() : CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); } //装配件清单列表标题 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesEquipByPassReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesEquipByPassReadStepService.java index 5be72ee..453a499 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesEquipByPassReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesEquipByPassReadStepService.java @@ -8,7 +8,6 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipLogDispatchContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariableCfg; @@ -20,7 +19,6 @@ import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; import java.util.List; @@ -55,9 +53,6 @@ public class MesEquipByPassReadStepService extends BaseStepService { MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getProductionProcessContext(reqBean); if (!productionProcessContext.getSuccess()) return stepResult.isCompleted(false); - //离线生产 - if (mesOffLineOpen) return stepResult.isCompleted(false); - //当前工位使用的设备 MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip(); if (null == cellEquipContext) return stepResult.isCompleted(false); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java index a0e36ff..4c627e0 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java @@ -67,9 +67,6 @@ public class MesFirstMouldNoReadStepService extends BaseStepService { @Override public StepResult init(StationRequestBean reqBean) { - //离线生产 - if (mesOffLineOpen) stepExpSendMsgAndThrowEx(reqBean, new StationResultBean().writeDbLog(), "离线生产当前设备不可用!"); - //发送工步内容 productionCustomContextStepService.sendStepContextMessage(reqBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMembraneSignalReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMembraneSignalReadStepService.java index 27b7623..e5712e4 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMembraneSignalReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMembraneSignalReadStepService.java @@ -55,9 +55,6 @@ public class MesMembraneSignalReadStepService extends BaseStepService { @Override public StepResult init(StationRequestBean reqBean) { - //离线生产 - if (mesOffLineOpen) stepExpSendMsgAndThrowEx(reqBean, new StationResultBean().writeDbLog(), "离线生产当前设备不可用!"); - //发送工步内容 productionCustomContextStepService.sendStepContextMessage(reqBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java index b5e7cff..4eedf6d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java @@ -69,9 +69,6 @@ public class MesMouldNoReadStepService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); - //离线生产不读模具号 - if (mesOffLineOpen) return stepResult; - StationResultBean resultBean = new StationResultBean(); //获取工步参数 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultReadStepService.java index 37c4717..12af97e 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductResultReadStepService.java @@ -71,9 +71,6 @@ public class MesProductResultReadStepService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); - //离线生产不读加工结果 - if (mesOffLineOpen) return stepResult; - StationResultBean resultBean = new StationResultBean(); //获取工步参数 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnReadStepService.java index 7be2c93..8d4e0e9 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnReadStepService.java @@ -65,9 +65,6 @@ public class MesProductSnReadStepService extends BaseStepService { @Override public StepResult init(StationRequestBean reqBean) { - //离线生产 - if (mesOffLineOpen) stepExpSendMsgAndThrowEx(reqBean, new StationResultBean().writeDbLog(), "离线生产当前设备不可用!"); - StepResult stepResult = StepResult.getSuccessComplete(); String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReadySignalReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReadySignalReadStepService.java index 7e85f94..b71fe25 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReadySignalReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesReadySignalReadStepService.java @@ -55,9 +55,6 @@ public class MesReadySignalReadStepService extends BaseStepService { @Override public StepResult init(StationRequestBean reqBean) { - //离线生产 - if (mesOffLineOpen) stepExpSendMsgAndThrowEx(reqBean, new StationResultBean().writeDbLog(), "离线生产当前设备不可用!"); - //发送工步内容 productionCustomContextStepService.sendStepContextMessage(reqBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageReadStepService.java index 912a5e1..714f1fc 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageReadStepService.java @@ -66,9 +66,6 @@ public class MesRecyclablePackageReadStepService extends BaseStepService { @Override public StepResult init(StationRequestBean reqBean) { - //离线生产 - if (mesOffLineOpen) stepExpSendMsgAndThrowEx(reqBean, new StationResultBean().writeDbLog(), "离线生产当前设备不可用!"); - StepResult stepResult = StepResult.getSuccessComplete(); String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendEquipParamsCmdStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendEquipParamsCmdStepService.java index 4119a95..d8cd1f7 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendEquipParamsCmdStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendEquipParamsCmdStepService.java @@ -62,9 +62,6 @@ public class MesSendEquipParamsCmdStepService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); - //离线生产不发送设备加工参数 - if (mesOffLineOpen) return stepResult; - StationResultBean resultBean = new StationResultBean(); //获取上下文加工规则数据信息集合 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendEquipParamsCmdStepService2.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendEquipParamsCmdStepService2.java index 2d618fe..1287d9a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendEquipParamsCmdStepService2.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendEquipParamsCmdStepService2.java @@ -62,9 +62,6 @@ public class MesSendEquipParamsCmdStepService2 extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); - //离线生产不发送设备加工参数 - if (mesOffLineOpen) return stepResult; - StationResultBean resultBean = new StationResultBean(); //获取上下文加工规则数据信息集合 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendInitializationCmdStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendInitializationCmdStepService.java index 18a1283..553e058 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendInitializationCmdStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendInitializationCmdStepService.java @@ -49,9 +49,6 @@ public class MesSendInitializationCmdStepService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); - //离线生产不发送初始化指令 - if (mesOffLineOpen) return stepResult; - StationResultBean resultBean = new StationResultBean(); //获取工步参数 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendProcessCmdStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendProcessCmdStepService.java index fe85b36..8a2b493 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendProcessCmdStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendProcessCmdStepService.java @@ -49,9 +49,6 @@ public class MesSendProcessCmdStepService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); - //离线生产不发送允许加工指令 - if (mesOffLineOpen) return stepResult; - StationResultBean resultBean = new StationResultBean(); //获取工步参数 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesVariableWhenFinishedReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesVariableWhenFinishedReadStepService.java index 6e5378a..aa01e29 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesVariableWhenFinishedReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesVariableWhenFinishedReadStepService.java @@ -59,9 +59,6 @@ public class MesVariableWhenFinishedReadStepService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); - //离线生产不保存工艺参数 - if (mesOffLineOpen) return stepResult; - StationResultBean resultBean = new StationResultBean(); // 获取上下文信息 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java index 4a25b15..b2981fe 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java @@ -207,11 +207,11 @@ public class MesWorkOrderCheckSortStepService extends MesWorkOrderCheckStepServi return stepResult.isCompleted(false).msg(String.format("请检查工单工位队列信息,加工单[%s]工位队列状态[%s]", workOrderNo, MesExtEnumUtil.QUEUE_ORDER_STATUS.valueOfDescription(queueOrder.getStatus()))); //封装产成零件 - MesProductionPartContext productionPartContext = new MesProductionPartContext().copyPartNo(workOrder, equipVariableCollectContextList.get(0).getMessageSource()).isClosedCheck(mesOffLineOpen).isCheck(productionProcessContext.getWorkCell()); + MesProductionPartContext productionPartContext = new MesProductionPartContext().copyPartNo(workOrder, equipVariableCollectContextList.get(0).getMessageSource()).isCheck(productionProcessContext.getWorkCell()); productionPartContextList.add(productionPartContext); //封装产品条码 - productionPsInContextList.add(new MesProductionPsInContext(produceSn).isClosedCheck(mesOffLineOpen).isCheck(productionProcessContext.getWorkCell()).messageSource(equipVariableCollectContextList.get(0).getMessageSource()).relateId(queueOrder.getId())); + productionPsInContextList.add(new MesProductionPsInContext(produceSn).isCheck(productionProcessContext.getWorkCell()).messageSource(equipVariableCollectContextList.get(0).getMessageSource()).relateId(queueOrder.getId())); //封装产出条码 productionPsOutContextList.add(new MesProductionPsOutContext().copy(produceSn)); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderReadStepService.java index 0923986..01b64ba 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderReadStepService.java @@ -62,9 +62,6 @@ public class MesWorkOrderReadStepService extends BaseStepService { @Override public StepResult init(StationRequestBean reqBean) { - //离线生产 - if (mesOffLineOpen) stepExpSendMsgAndThrowEx(reqBean, new StationResultBean().writeDbLog(), "离线生产当前设备不可用!"); - StepResult stepResult = StepResult.getSuccessComplete(); String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java index 4ac6992..506a828 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java @@ -10,7 +10,6 @@ import cn.estsh.i3plus.mes.pcn.api.iservice.base.IConfigService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; -import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.model.StationKvBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; @@ -168,12 +167,6 @@ public class MesProductionProcessContextStepService extends BaseStepService impl if (isCheckProcess && StringUtils.isEmpty(productionProcessContext.getProcessCode())) return productionProcessContext.message(String.format("请检查工序信息,生产线[%s]工位[%s]对应工序代码[%s]的有效性!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode())); - if (mesOffLineOpen) { - //离线生产发送设备质量信息[BAD=Red] - this.sendMessage(reqBean, new StationResultBean().busiType(MesPcnEnumUtil.STATION_BUSI_TYPE.QUALITY_MODULE.getValue()).dataType(MesPcnEnumUtil.STATION_DATA_TYPE.COLOR.getValue()).resultObj(MesExtEnumUtil.COLOR.RED.getValue())); - if (productionProcessContext.getWorkCenter().getCenterType().compareTo(MesExtEnumUtil.WORK_CENTER_TYPE.NOSORT.getValue()) == 0) return productionProcessContext.message("离线生产仅支持排序生产线!"); - } - return productionProcessContext; } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessMonitorService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessMonitorService.java index ed8d7f4..b7f4b90 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessMonitorService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessMonitorService.java @@ -36,10 +36,8 @@ public class MesProductionProcessMonitorService extends BaseProcessMonitorServic @Override public Boolean doProcessComplete(StationRequestBean requestBean) { //补DB日志 [获取开模ID赋值scanInfo] [获取上下文产出条码数据信息集合赋值resultList] - if (!mesOffLineOpen) { - writeDbLogService.doRestoreDbLog(requestBean, new StationResultBean() - .restoreDbLog().scanInfo(productionProcessContextStepService.getScanMonitorContextMouldRecordId(requestBean)).resultList(productionDispatchContextStepService.getProductionPsOutContext(requestBean))); - } + writeDbLogService.doRestoreDbLog(requestBean, new StationResultBean() + .restoreDbLog().scanInfo(productionProcessContextStepService.getScanMonitorContextMouldRecordId(requestBean)).resultList(productionDispatchContextStepService.getProductionPsOutContext(requestBean))); //清除上下文中的所有业务数据 productionDispatchContextStepService.flushProductionDispatchContext(requestBean); //父类发送工序完成音 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesAssemblySaveSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesAssemblySaveSortStepService.java index 38f5533..8bd8448 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesAssemblySaveSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesAssemblySaveSortStepService.java @@ -154,7 +154,6 @@ public class MesAssemblySaveSortStepService extends BaseStepService { private void saveProductionAssemblyUnique(StationRequestBean reqBean, MesProductionAssemblySortContext productionAssemblySortContext) { if (!MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.checkUniqueRuleInDb(productionAssemblySortContext.getMatchType()) || StringUtils.isEmpty(productionAssemblySortContext.getAssemblySn())) return; - if (productionAssemblySortContext.getIsClosedCheck()) return;//离线生产不写[装配件规则唯一绑定记录表] MesProductionAssemblyUnique productionAssemblyUnique = new MesProductionAssemblyUnique(); BeanUtils.copyProperties(productionAssemblySortContext, productionAssemblyUnique, MesPcnExtConstWords.ID); productionAssemblyUnique.setPid(productionAssemblySortContext.getId()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-offline-bak.properties b/modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-offline-bak.properties deleted file mode 100644 index d840eb7..0000000 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-offline-bak.properties +++ /dev/null @@ -1,35 +0,0 @@ -##\u79BB\u7EBF\u5F00\u5173 -mes.offline.open = false -##\u79BB\u7EBF\u540C\u6B65\u5F00\u5173 -mes.offline.sync.open = true - -##\u79BB\u7EBF\u540C\u6B65\u8FB9\u7AEF\u6570\u636E\u5E93JOB -mes.offline.sync.pcnTask.taskCode = OFFLINE_DATA_SYNC_JOB -mes.offline.sync.pcnTask.taskName = OFFLINE_DATA_SYNC_JOB -mes.offline.sync.pcnTask.taskGroupName = OFFLINE_DATA_SYNC_JOB -mes.offline.sync.pcnTask.taskDescription = OFFLINE_DATA_SYNC_JOB -mes.offline.sync.pcnTask.taskClass = MesOffLineDataSyncJob -mes.offline.sync.pcnTask.taskPackage = cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob -mes.offline.sync.pcnTask.pcnCode = PCN001 -mes.offline.sync.pcnTask.taskCycleExps = 0 0/2 * * * ? -mes.offline.sync.pcnTask.taskCycleDescription = \u6BCF2\u5206\u949F\u6267\u884C\u4E00\u6B21 -mes.offline.sync.pcnTask.taskParam = CR01:CH218:CH218-B - -##\u79BB\u7EBF\u8FB9\u7AEF\u6570\u636E\u5E93\u914D\u7F6E -mes.offline.sync.dataSource.dsCode = impp_i3_mes_offline -mes.offline.sync.dataSource.dsName = impp_i3_mes_offline -mes.offline.sync.dataSource.dsType = SOURCE_MARIA_DB -mes.offline.sync.dataSource.dsHost = 10.193.30.20 -mes.offline.sync.dataSource.dsHostPort = 3306 -mes.offline.sync.dataSource.dsUser = root -mes.offline.sync.dataSource.dsPassword = (mfLEu7@9kmfdsTy -mes.offline.sync.dataSource.dsDbName = impp_i3_mes_offline - -##\u79BB\u7EBF\u8BBF\u95EE\u8FB9\u7AEF\u6570\u636E\u5E93SQL\u8BED\u53E5\u5360\u4F4D\u7B26\u5BF9\u5E94\u503C -mes.offline.sync.sqlParameter.organize_code = CR01 - - -##\u79BB\u7EBF\u8BBF\u95EE\u8FB9\u7AEF\u6570\u636E\u5E93SQL\u8BED\u53E5 -##\u7EC4\u7EC7\u6A21\u578B -mes.offline.sync.sql.mes_datasource = select * from mes_datasource where organize_code = :organize_code ; - diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-offline.properties b/modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-offline.properties deleted file mode 100644 index 8242b32..0000000 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-offline.properties +++ /dev/null @@ -1,81 +0,0 @@ -##\u79BB\u7EBF\u5F00\u5173 -mes.offline.open = false -##\u79BB\u7EBF\u540C\u6B65\u5F00\u5173 -mes.offline.sync.open = true - -##\u79BB\u7EBF\u540C\u6B65\u8FB9\u7AEF\u6570\u636E\u5E93JOB -mes.offline.sync.pcnTask.taskCode = OFFLINE_DATA_SYNC_JOB -mes.offline.sync.pcnTask.taskName = OFFLINE_DATA_SYNC_JOB -mes.offline.sync.pcnTask.taskGroupName = OFFLINE_DATA_SYNC_JOB -mes.offline.sync.pcnTask.taskDescription = OFFLINE_DATA_SYNC_JOB -mes.offline.sync.pcnTask.taskClass = MesOffLineDataSyncJob -mes.offline.sync.pcnTask.taskPackage = cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob -mes.offline.sync.pcnTask.pcnCode = PCN001 -#mes.offline.sync.pcnTask.taskCycleExps = 0 0 */1 * * ? -mes.offline.sync.pcnTask.taskCycleExps = 0 0/10 * * * ? -mes.offline.sync.pcnTask.taskCycleDescription = \u6BCF\u5C0F\u65F6\u6267\u884C\u4E00\u6B21 -mes.offline.sync.pcnTask.taskParam = CR01:CH218:CH218-B - -##\u79BB\u7EBF\u8FB9\u7AEF\u6570\u636E\u5E93\u914D\u7F6E -mes.offline.sync.dataSource.dsCode = impp_i3_mes -mes.offline.sync.dataSource.dsName = impp_i3_mes -mes.offline.sync.dataSource.dsType = SOURCE_MARIA_DB -mes.offline.sync.dataSource.dsHost = 10.193.30.20 -mes.offline.sync.dataSource.dsHostPort = 3306 -mes.offline.sync.dataSource.dsUser = root -mes.offline.sync.dataSource.dsPassword = (mfLEu7@9kmfdsTy -mes.offline.sync.dataSource.dsDbName = impp_i3_mes - -##\u79BB\u7EBF\u8BBF\u95EE\u8FB9\u7AEF\u6570\u636E\u5E93SQL\u8BED\u53E5\u5360\u4F4D\u7B26\u5BF9\u5E94\u503C -mes.offline.sync.sqlParameter.organize_code = CR01 -mes.offline.sync.sqlParameter.work_center_code = CH218 -mes.offline.sync.sqlParameter.work_cell_code = CH218-B -##mes.offline.sync.sqlParameter.part_no_list = abc,def,ghi... -##mes.offline.sync.sqlParameter.field_int = 10 - -##\u79BB\u7EBF\u8BBF\u95EE\u8FB9\u7AEF\u6570\u636E\u5E93SQL\u8BED\u53E5 -##\u7EC4\u7EC7\u6A21\u578B -mes.offline.sync.sql.mes_area = select * from mes_area where organize_code = :organize_code ; -mes.offline.sync.sql.mes_work_center = select * from mes_work_center where organize_code = :organize_code and work_center_code = :work_center_code ; -mes.offline.sync.sql.mes_work_cell = select * from mes_work_cell where organize_code = :organize_code and work_center_code = :work_center_code ; - -##\u5DE5\u827A\u6D41\u7A0B -mes.offline.sync.sql.mes_state_machine = select * from mes_state_machine where organize_code = :organize_code and is_deleted = 2 and sm_code in (select sm_code from mes_route_process where organize_code = :organize_code and is_deleted = 2 and route_code in (select route_code from mes_route_process_cell where organize_code = :organize_code and is_deleted = 2 and work_center_code = :work_center_code and work_cell_code = :work_cell_code) and process_code in (select process_code from mes_route_process_cell where organize_code = :organize_code and is_deleted = 2 and work_center_code = :work_center_code and work_cell_code = :work_cell_code )) ; -mes.offline.sync.sql.mes_state_machine_status = select * from mes_state_machine_status where organize_code = :organize_code and is_deleted = 2 and sm_code in (select sm_code from mes_route_process where organize_code = :organize_code and is_deleted = 2 and route_code in (select route_code from mes_route_process_cell where organize_code = :organize_code and is_deleted = 2 and work_center_code = :work_center_code and work_cell_code = :work_cell_code) and process_code in (select process_code from mes_route_process_cell where organize_code = :organize_code and is_deleted = 2 and work_center_code = :work_center_code and work_cell_code = :work_cell_code )) ; -mes.offline.sync.sql.mes_step_group = select * from mes_step_group where organize_code = :organize_code and amg_id in (select trigger_amg_id from mes_state_machine_status where organize_code = :organize_code and is_deleted = 2 and sm_code in (select sm_code from mes_route_process where organize_code = :organize_code and is_deleted = 2 and route_code in (select route_code from mes_route_process_cell where organize_code = :organize_code and is_deleted = 2 and work_center_code = :work_center_code and work_cell_code = :work_cell_code) and process_code in (select process_code from mes_route_process_cell where organize_code = :organize_code and is_deleted = 2 and work_center_code = :work_center_code and work_cell_code = :work_cell_code ))) ; -mes.offline.sync.sql.mes_step = select * from mes_step where organize_code = :organize_code ; -mes.offline.sync.sql.mes_step_param = select * from mes_step_param where organize_code = :organize_code ; -mes.offline.sync.sql.mes_route = select * from mes_route where organize_code = :organize_code and is_deleted = 2 and route_code in (select route_code from mes_route_process_cell where organize_code = :organize_code and is_deleted = 2 and work_center_code = :work_center_code and work_cell_code = :work_cell_code ) ; -mes.offline.sync.sql.mes_route_process = select * from mes_route_process where organize_code = :organize_code and is_deleted = 2 and route_code in (select route_code from mes_route_process_cell where organize_code = :organize_code and is_deleted = 2 and work_center_code = :work_center_code and work_cell_code = :work_cell_code ) ; -mes.offline.sync.sql.mes_route_process_cell = select * from mes_route_process_cell where organize_code = :organize_code and is_deleted = 2 and work_center_code = :work_center_code and work_cell_code = :work_cell_code ; -mes.offline.sync.sql.mes_prod_route_cfg = select * from mes_prod_route_cfg where organize_code = :organize_code and is_deleted = 2 and work_center_code = :work_center_code ; -mes.offline.sync.sql.mes_prod_route_opt_param = select * from mes_prod_route_opt_param where organize_code = :organize_code and is_deleted = 2 and prod_route_cfg_id in (select id from mes_prod_route_cfg where organize_code = :organize_code and is_deleted = 2 and work_center_code = :work_center_code ) ; -mes.offline.sync.sql.mes_process = select * from mes_process where organize_code = :organize_code and is_deleted = 2 and process_code in (select process_code from mes_route_process_cell where organize_code = :organize_code and is_deleted = 2 and work_center_code = :work_center_code and work_cell_code = :work_cell_code ) ; -mes.offline.sync.sql.mes_craft = select * from mes_craft where organize_code = :organize_code and is_deleted = 2 and craft_code in (select craft_code from mes_process_craft_cfg where organize_code = :organize_code and is_deleted = 2 and process_code in (select process_code from mes_process where organize_code = :organize_code and is_deleted = 2 and process_code in (select process_code from mes_route_process_cell where organize_code = :organize_code and is_deleted = 2 and work_center_code = :work_center_code and work_cell_code = :work_cell_code ))) ; -mes.offline.sync.sql.mes_process_craft_cfg = select * from mes_process_craft_cfg where organize_code = :organize_code and is_deleted = 2 and process_code in (select process_code from mes_process where organize_code = :organize_code and is_deleted = 2 and process_code in (select process_code from mes_route_process_cell where organize_code = :organize_code and is_deleted = 2 and work_center_code = :work_center_code and work_cell_code = :work_cell_code )) ; - -##\u7CFB\u7EDF\u914D\u7F6E -mes.offline.sync.sql.mes_config = select * from mes_config ; - -##\u5DE5\u4F4D\u6309\u94AE -mes.offline.sync.sql.mes_window = select * from mes_window where organize_code = :organize_code ; -mes.offline.sync.sql.mes_window_module = select * from mes_window_module where organize_code = :organize_code ; -mes.offline.sync.sql.mes_window_module_param = select * from mes_window_module_param where organize_code = :organize_code ; -mes.offline.sync.sql.mes_work_module = select * from mes_work_module where organize_code = :organize_code ; -mes.offline.sync.sql.mes_work_module_param = select * from mes_work_module_param where organize_code = :organize_code ; -mes.offline.sync.sql.mes_work_cell_module = select * from mes_work_cell_module where organize_code = :organize_code and is_deleted = 2 and is_valid = 1 and work_center_code = :work_center_code and work_cell_code = :work_cell_code ; - -##\u7269\u6599\u4FE1\u606F -mes.offline.sync.sql.mes_part = select * from mes_part where organize_code = :organize_code ; -mes.offline.sync.sql.mes_part_sap = select * from mes_part_sap where organize_code = :organize_code ; -mes.offline.sync.sql.mes_customer_part = select * from mes_customer_part where organize_code = :organize_code ; - -##\u6253\u5370\u6A21\u7248 -mes.offline.sync.sql.mes_label_template = select * from mes_label_template where organize_code = :organize_code and is_deleted = 2 and is_valid = 1 ; -mes.offline.sync.sql.mes_label_template_param = select * from mes_label_template_param where organize_code = :organize_code and is_deleted = 2 and is_valid = 1 ; - -##\u7F16\u7801\u89C4\u5219 -mes.offline.sync.sql.mes_number_rule = select * from mes_number_rule where organize_code = :organize_code and is_deleted = 2 and is_valid = 1 ; - -##\u6392\u5E8F\u4EA7\u54C1\u52A0\u5DE5\u89C4\u5219 -mes.offline.sync.sql.mes_prod_rule_sort_cfg = select * from mes_prod_rule_sort_cfg where organize_code = :organize_code and work_center_code = :work_center_code and work_cell_code = :work_cell_code ; \ No newline at end of file diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java index 94abe1f..04e674e 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java @@ -60,10 +60,6 @@ public class MesProdRuleContext implements Serializable { @ApiParam(name = "是否验证装配件扫描顺序") private Integer isCheckBindSeq; - //默认开启防错, true代表关闭防错 - @ApiParam(name = "是否关闭防错") - private Boolean isClosedCheck = false; - //-------以下非排序属性------------- @ApiParam("非排序产品加工规则ID") @@ -134,12 +130,6 @@ public class MesProdRuleContext implements Serializable { return this; } - //赋值系统配置【离线开关】 - public MesProdRuleContext isClosedCheck(Boolean isClosedCheck) { - this.isClosedCheck = isClosedCheck; - return this; - } - //非排序无须使用工位的字段,直接使用非排序产品加工规则的字段; //排序使用工位的字段, 如果是显示前道所有装配件场景下在装配件清单中单独标记各个工位的装配件是否需要顺序扫描 public MesProdRuleContext isCheckBindSeq(Integer isSeqScan) { diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java index 3b7687d..e6463bb 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java @@ -124,10 +124,6 @@ public class MesProductionAssemblyContext implements Serializable { @ApiParam("匹配时间") public String matchDatetime; - //默认开启防错, true代表关闭防错 - @ApiParam(name = "是否关闭防错") - public Boolean isClosedCheck = false; - public String repeatKeyToString() { if (StringUtils.isEmpty(this.equipmentCode) || StringUtils.isEmpty(this.matchType) || (StringUtils.isEmpty(this.matchRule) && StringUtils.isEmpty(this.assemblyPartNo))) return null; return String.format("%s:%s&%s:%s&%s:%s&%s:%s", diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java index 7ff9499..7f3b4f8 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java @@ -247,10 +247,4 @@ public class MesProductionAssemblySortContext extends MesProductionAssemblyConte private void matchDatetime() { this.matchDatetime = (new SimpleDateFormat(MesPcnExtConstWords.DATE_FORMAT_SSS)).format(new Date()); } - //赋值系统配置【离线开关】 - public MesProductionAssemblySortContext isClosedCheck(Boolean isClosedCheck) { - this.isClosedCheck = isClosedCheck; - return this; - } - } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPartContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPartContext.java index fddec94..0f14096 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPartContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPartContext.java @@ -106,10 +106,6 @@ public class MesProductionPartContext implements Serializable { @ApiParam("工艺强过码") private String craftJumpCode; - //默认开启防错, true代表关闭防错 - @ApiParam(name = "是否关闭防错") - private Boolean isClosedCheck = false; - //默认否 @ApiParam("是否顺序防错") private Integer isCheckSeq = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); @@ -188,14 +184,7 @@ public class MesProductionPartContext implements Serializable { return this; } - //赋值系统配置【离线开关】 - public MesProductionPartContext isClosedCheck(Boolean isClosedCheck) { - this.isClosedCheck = isClosedCheck; - return this; - } - public MesProductionPartContext isCheck(MesWorkCell workCell) { - if (isClosedCheck) return this; if(!StringUtils.isEmpty(workCell.getIsCheckSeq()) && workCell.getIsCheckSeq().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) this.isCheckSeq = workCell.getIsCheckSeq(); return this; } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPsInContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPsInContext.java index 816c65d..6060f9f 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPsInContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPsInContext.java @@ -80,10 +80,6 @@ public class MesProductionPsInContext implements Serializable { @ApiParam("是否空腔") private Integer isFinishCode = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); - //默认开启防错, true代表关闭防错 - @ApiParam(name = "是否关闭防错") - private Boolean isClosedCheck = false; - //默认否 @ApiParam(name = "是否前道工艺防错") private Integer isCheckCraft = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); @@ -115,14 +111,7 @@ public class MesProductionPsInContext implements Serializable { return this; } - //赋值系统配置【离线开关】 - public MesProductionPsInContext isClosedCheck(Boolean isClosedCheck) { - this.isClosedCheck = isClosedCheck; - return this; - } - public MesProductionPsInContext isCheck(MesWorkCell workCell) { - if (isClosedCheck) return this; if(!StringUtils.isEmpty(workCell.getIsCheckCraft()) && workCell.getIsCheckCraft().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) this.isCheckCraft = workCell.getIsCheckCraft(); return this; } From c31a240bbc03e36adfc8f86daf1defb8fd027533 Mon Sep 17 00:00:00 2001 From: jun Date: Sat, 16 Nov 2024 15:48:15 +0800 Subject: [PATCH 11/12] =?UTF-8?q?SPS=E5=8D=95=E6=8D=AE=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=AF=8F=E6=AC=A1?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=9D=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesPullingOrderInfoController.java | 1 + .../busi/MesPullingOrderInfoService.java | 2 +- .../MesNoSortCustSnNumberRuleStrategyService.java | 50 ++++++++++++++++++++++ .../print/strategy/WuhanSnPrintStrategy.java | 20 ++++++--- 4 files changed, 66 insertions(+), 7 deletions(-) create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/numberrule/MesNoSortCustSnNumberRuleStrategyService.java diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesPullingOrderInfoController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesPullingOrderInfoController.java index 8fcbd00..a0795c0 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesPullingOrderInfoController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesPullingOrderInfoController.java @@ -72,6 +72,7 @@ public class MesPullingOrderInfoController { if (StringUtils.isEmpty(mesPullingOrderInfo.getWorkCenterCode())) { throw new ImppBusiException("产线不能为空"); } + mesPullingOrderInfo.setOrganizeCode(StringUtil.isEmpty(mesPullingOrderInfo.getOrganizeCode()) ? AuthUtil.getOrganizeCode() : mesPullingOrderInfo.getOrganizeCode()); List pullingOrderInfos = mesPullingOrderInfoService.doMesPullingOrderInfoPrint(mesPullingOrderInfo, AuthUtil.getSessionUser().getUserName()); return ResultBean.success("拉动单打印成功") .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) 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 5b97c77..6b17692 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 @@ -180,7 +180,7 @@ public class MesPullingOrderInfoService implements IMesPullingOrderInfoService { DdlPreparedPack.getStringEqualPack(bean.getPullingOrderNo(), "pullingOrderNo", packBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue(), "printStatus", packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); - List pullingOrderInfos = mesPullingOrderInfoRepository.findByHqlWhere(packBean); + List pullingOrderInfos = mesPullingOrderInfoRepository.findByHqlTopWhere(packBean, MesPcnExtConstWords.THREE); if (!CollectionUtils.isEmpty(pullingOrderInfos)) { //根据车型代码查询车型信息 Map> mesCustomerCarModelMap = getMesCustomerCarModelMap(bean.getOrganizeCode(), pullingOrderInfos.stream().map(MesPullingOrderInfo::getCarModelCode).distinct().collect(Collectors.toList())); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/numberrule/MesNoSortCustSnNumberRuleStrategyService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/numberrule/MesNoSortCustSnNumberRuleStrategyService.java new file mode 100644 index 0000000..6f9e8ab --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/numberrule/MesNoSortCustSnNumberRuleStrategyService.java @@ -0,0 +1,50 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.numberrule; + +import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; +import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService; +import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart; +import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.Calendar; +import java.util.Date; +import java.util.Map; + +/** + * @Description : 非排序客户条码打印 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/11/16 10:56 + * @Modify: + **/ +@Component +public class MesNoSortCustSnNumberRuleStrategyService implements INumberRulePackAttributeStrategyService { + + @Autowired + private IMesCustomerPartService mesCustomerPartService; + + @Override + public GenSerialNoModel execute(GenSerialNoModel genSerialNoModel) { + Map dataMap = genSerialNoModel.getDataMap(); + MesCustomerPart customerPart = (!CollectionUtils.isEmpty(dataMap) && dataMap.containsKey(MesCustomerPart.class.getSimpleName())) ? + (MesCustomerPart)dataMap.get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo()); + if (null != customerPart) { + genSerialNoModel.setCustPartNo(customerPart.getCustPartNo()); + }else { + MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", genSerialNoModel.getPartNo()); + } + Calendar custCalendar = Calendar.getInstance(); + custCalendar.setTime(new Date()); + String partNo = customerPart.getCustPartNo(); + String prefix = partNo.substring(0, partNo.length() - 4); + String partNo4 = partNo.substring(partNo.length() - 4).toUpperCase(); + genSerialNoModel.setPartNo(prefix+partNo4); + String year = custCalendar.get(Calendar.YEAR)+""; + genSerialNoModel.setYear(year.substring(2)); + genSerialNoModel.setDay(String.format("%03d",custCalendar.get(Calendar.DAY_OF_YEAR))); + return genSerialNoModel; + } +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/WuhanSnPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/WuhanSnPrintStrategy.java index d33666f..0c4cb87 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/WuhanSnPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/WuhanSnPrintStrategy.java @@ -1,8 +1,10 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy; +import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.BarCodeUtils; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintDataModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; @@ -12,10 +14,7 @@ import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; -import cn.estsh.i3plus.pojo.mes.bean.MesPart; -import cn.estsh.i3plus.pojo.mes.bean.MesPrintedSnLog; -import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StepResult; @@ -27,6 +26,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.io.ByteArrayOutputStream; @@ -56,14 +56,21 @@ public class WuhanSnPrintStrategy implements IPrintTemplateStrategyService { @Autowired private ISyncFuncService syncFuncService; + @Autowired + private IMesCustomerPartService mesCustomerPartService; + @Override public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel model, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep) { //物料信息 MesPart mesPart = mesPartService.getMesPartByPartNo(model.getPartNo(), model.getOrganizeCode()); + MesCustomerPart customerPart = (!Objects.isNull(genSerialNoModel) && !CollectionUtils.isEmpty(genSerialNoModel.getDataMap()) && genSerialNoModel.getDataMap().containsKey(MesCustomerPart.class.getSimpleName())) ? (MesCustomerPart) genSerialNoModel.getDataMap().get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(model.getOrganizeCode(),model.getPartNo()); + if(Objects.isNull(customerPart)){ + MesPcnException.throwMesBusiException("零件号:%s客户物料信息不存在",model.getPartNo()); + } // 客户零件号 - String custPartNo = model.getCustPartNo(); + String custPartNo = customerPart.getCustPartNo(); // 客户零件号 前缀 排除后四位 String custPartNoPrefix = StringUtils.isEmpty(custPartNo) ? "" : custPartNo.substring(0, custPartNo.length() - 4); // 客户零件号 后四位 @@ -73,6 +80,7 @@ public class WuhanSnPrintStrategy implements IPrintTemplateStrategyService { // 返回的结果集合 List> printDataMapList = new ArrayList<>(); if (!isStep) { + genSerialNoModel.putDataMap(MesCustomerPart.class.getSimpleName(),customerPart); for (int i = 0; i < model.getPrintQty(); i++) { //保存条码信息 MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel, model.getUserName(), model.getOrganizeCode(), 1).getResultList().get(0).toString(), model.getUserName(), model.getQty()); @@ -97,7 +105,7 @@ public class WuhanSnPrintStrategy implements IPrintTemplateStrategyService { } private MesNumberRule getMesNumberRule(MesPart mesPart) { - String custMatchRule = StringUtils.isEmpty(mesPart.getCustMatchRule()) ? "WH_CUST_SN_RULE" : mesPart.getCustMatchRule(); + String custMatchRule = StringUtils.isEmpty(mesPart.getCustMatchRule()) ? "WH_NO_SORT_CUST_SN_RULE" : mesPart.getCustMatchRule(); DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesPart.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(custMatchRule, MesPcnExtConstWords.RULE_CODE, packBean); return numberRuleRepository.getByProperty(packBean); From bb78d98afc715f39a7700e2e74121ab539b4c0d2 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Sat, 16 Nov 2024 22:23:21 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../job/IMesWorkOrderOfflineRestoreService.java | 13 ++++ .../schedulejob/MesWorkOrderOfflineRestoreJob.java | 77 ++++++++++++++++++++++ .../job/MesWorkOrderOfflineRestoreService.java | 52 +++++++++++++++ 3 files changed, 142 insertions(+) create mode 100644 modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesWorkOrderOfflineRestoreService.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesWorkOrderOfflineRestoreJob.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderOfflineRestoreService.java diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesWorkOrderOfflineRestoreService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesWorkOrderOfflineRestoreService.java new file mode 100644 index 0000000..7549045 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesWorkOrderOfflineRestoreService.java @@ -0,0 +1,13 @@ +//package cn.estsh.i3plus.ext.mes.pcn.api.job; +// +//import java.util.Map; +// +//public interface IMesWorkOrderOfflineRestoreService { +// +// /** +// * 补录离线生产数据JOB +// * @param paramMap +// */ +// void doRestoreWorkOrderOfflineData(Map paramMap); +// +//} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesWorkOrderOfflineRestoreJob.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesWorkOrderOfflineRestoreJob.java new file mode 100644 index 0000000..02794df --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesWorkOrderOfflineRestoreJob.java @@ -0,0 +1,77 @@ +//package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob; +// +// +//import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesWorkOrderOfflineRestoreService; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +//import cn.estsh.impp.framework.boot.init.ApplicationProperties; +//import com.alibaba.fastjson.JSONObject; +//import io.swagger.annotations.ApiOperation; +//import lombok.extern.slf4j.Slf4j; +//import org.quartz.DisallowConcurrentExecution; +//import org.quartz.JobExecutionContext; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Component; +//import org.springframework.util.CollectionUtils; +//import org.springframework.util.StopWatch; +//import org.springframework.util.StringUtils; +// +//import java.util.Map; +// +///** +// * @author wangjie +// * @Description 补录离线生产数据JOB +// * @version 1.0 +// * @date 2021/2/2 16:44 +// **/ +//@Slf4j +//@DisallowConcurrentExecution +//@Component +//@ApiOperation("补录离线生产数据JOB") +//public class MesWorkOrderOfflineRestoreJob extends BaseMesScheduleJob { +// +// public MesWorkOrderOfflineRestoreJob() { +// super(MesWorkOrderOfflineRestoreJob.class, "补录离线生产数据JOB"); +// } +// +// @Autowired +// private IMesWorkOrderOfflineRestoreService workOrderOfflineRestoreService; +// +// @Override +// public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) { +// +// String jobParam = this.getJobParam(); +// if (StringUtils.isEmpty(jobParam)) { +// log.info("补录离线生产数据JOB --- 参数为空 ---"); +// return; +// } +// +// Map paramMap = JSONObject.parseObject(jobParam, Map.class); +// +// if (CollectionUtils.isEmpty(paramMap) || !paramMap.containsKey(MesPcnExtConstWords.ORGANIZE_CODE)) { +// log.info("补录离线生产数据JOB --- 参数未配置:工厂代码[organizeCode] ---"); +// return; +// } +// +// StopWatch stopWatch = new StopWatch(); +// +// try { +// +// stopWatch.start(); +// +// workOrderOfflineRestoreService.doRestoreWorkOrderOfflineData(paramMap); +// +// } catch (Exception e) { +// +// log.info("补录离线生产数据JOB --- ERROR --- {} ---", e.toString()); +// +// } finally { +// +// stopWatch.stop(); +// +// log.info("补录离线生产数据JOB --- END --- 耗时: {} ms ---", stopWatch.getTotalTimeMillis()); +// +// } +// +// } +// +//} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderOfflineRestoreService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderOfflineRestoreService.java new file mode 100644 index 0000000..ccdfc70 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderOfflineRestoreService.java @@ -0,0 +1,52 @@ +//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.job; +// +//import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesWorkOrderOfflineRestoreService; +//import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +//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.offline.MesWorkOrderAssemblyOffline; +//import cn.estsh.i3plus.pojo.mes.repository.offline.MesWorkOrderAssemblyOfflineRepository; +//import cn.estsh.i3plus.pojo.mes.repository.offline.MesWorkOrderOfflineRepository; +//import cn.estsh.i3plus.pojo.mes.repository.offline.MesWorkOrderOfflineRestoreRecordRepository; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Service; +// +//import java.util.List; +//import java.util.Map; +// +//@Slf4j +//@Service +//public class MesWorkOrderOfflineRestoreService implements IMesWorkOrderOfflineRestoreService { +// +// @Autowired +// private MesWorkOrderAssemblyOfflineRepository workOrderAssemblyOfflineRepository; +// +// @Autowired +// private MesWorkOrderOfflineRepository workOrderOfflineRepository; +// +// @Autowired +// private MesWorkOrderOfflineRestoreRecordRepository workOrderOfflineRestoreRecordRepository; +// +// @Override +// public void doRestoreWorkOrderOfflineData(Map paramMap) { +// +// String organizeCode = paramMap.get(MesPcnExtConstWords.ORGANIZE_CODE); +// +// Integer qty = paramMap.containsKey(MesPcnExtConstWords.QTY) ? Integer.valueOf(paramMap.get(MesPcnExtConstWords.QTY)) : MesPcnExtConstWords.ONE_HUNDRED; +// +// Map> workOrderAssemblyOfflineMap = getWorkOrderAssemblyOfflineMap(organizeCode, qty); +// +// +// } +// +// private Map> getWorkOrderAssemblyOfflineMap(String organizeCode, Integer qty) { +// +// DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); +// DdlPreparedPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesPcnExtConstWords.SYSTEM_SYNC_STATUS, packBean); +// List workOrderAssemblyOfflineList = workOrderAssemblyOfflineRepository.findByHqlTopWhere(packBean, qty); +// +// } +// +//}