diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java index e02aca7..88480c1 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipmentLogExtService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob.MesReportNoSortJob; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderService; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob.MesReportWorkByPreDayJob; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; @@ -36,6 +37,8 @@ public class TestController { @Autowired private MesReportNoSortJob mesReportNoSortJob; + @Autowired + private MesReportWorkByPreDayJob mesReportWorkByPreDayJob; @Autowired private IMesWorkOrderService workOrderService; @@ -109,4 +112,11 @@ public class TestController { mesReportNoSortJob.executeMesJob(null, null); } + + @GetMapping("/reportOrder1") + @ApiOperation(value = "报工") + public void reportOrder1() { + mesReportWorkByPreDayJob.executeMesJob(null, null); + + } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportNoSortJob.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportNoSortJob.java index a1f029b..760bdbd 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportNoSortJob.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportNoSortJob.java @@ -17,6 +17,7 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.quartz.DisallowConcurrentExecution; import org.quartz.JobExecutionContext; import org.springframework.beans.factory.annotation.Autowired; @@ -72,6 +73,10 @@ public class MesReportNoSortJob extends BaseMesScheduleJob { private void handlerNoOrder(String organizeCode, String userName) { List unReportMesProduceSn = workOrderService.getUnReportMesProduceSn(organizeCode); + if (CollectionUtils.isEmpty(unReportMesProduceSn)) { + LOGGER.error("没有加工记录,无需处理"); + return; + } try { Map map = new HashMap<>(); workOrderService.doProductReportByRecord(unReportMesProduceSn.get(0), organizeCode, userName); @@ -84,6 +89,10 @@ public class MesReportNoSortJob extends BaseMesScheduleJob { private void handlerHasOrder(String organizeCode, String userName) { List unReportMesProduceSn = workOrderService.getUnReportHasOrderMesProduceSn(organizeCode); + if (CollectionUtils.isEmpty(unReportMesProduceSn)) { + LOGGER.error("没有加工记录,无需处理"); + return; + } try { Map map = new HashMap<>(); workOrderService.doProductHasOrderReportByRecord(unReportMesProduceSn.get(0), organizeCode, userName); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportWorkByPreDayJob.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportWorkByPreDayJob.java index 1135893..c708c2e 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportWorkByPreDayJob.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportWorkByPreDayJob.java @@ -57,7 +57,7 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob { public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) { String jobParam = this.getJobParam(); JSONObject jsonObject = JSONUtil.parseObj(jobParam); - String organizeCode = jsonObject.getStr("organizeCode"); + String organizeCode = jsonObject.getStr("organizeCode") == null ? "CK01" : jsonObject.getStr("organizeCode"); String userName = "REPORT_PRE_DAY_JOB"; if (null == organizeCode) { log.error("请添加需要报工的工厂代码!"); @@ -87,6 +87,7 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob { List mesWorkOrders = workOrderService.insertMesWorkOrder(unReportMesProduceSn, mesShiftList, organizeCode, userName); if (CollectionUtils.isEmpty(mesWorkOrders)) { continue; + } LOGGER.info("产线:{}报工mesWorkOrders:{}", workCenterCode, mesWorkOrders); //4.根据产线+物料产生的工单报工 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 04b0841..ae83ec3 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 @@ -449,7 +449,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { private void updateProductionRecord(String organizeCode, String userName, String sn) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(sn, "productSn", ddlPackBean); + DdlPreparedPack.getStringEqualPack(sn, "custSn", ddlPackBean); productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime","reportStatus"}, new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_50.getValue()},ddlPackBean); } @@ -461,6 +461,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { MesWorkOrder oldMesWorkOrder = getMesWorkOrder(productionRecord, organizeCode); if (oldMesWorkOrder == null) { updateProductionRecord(organizeCode, userName, productionRecord.getProductSn()); + return; } report(productionRecord, organizeCode, userName, oldMesWorkOrder); @@ -578,6 +579,9 @@ public class MesWorkOrderService implements IMesWorkOrderService { * 根据产线物料获取所有工单 */ List oldMesWorkOrders = getMesWorkOrders(productionRecord, organizeCode, null); + if (CollectionUtils.isEmpty(oldMesWorkOrders)) { + return null; + } // 获取当前班次 String shiftCode = productionRecord.getShiftCode(); String workCenterCode = productionRecord.getWorkCenterCode(); @@ -653,9 +657,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { // 新增班次逻辑 //DdlPreparedPack. List oldMesWorkOrders = workOrderRepository.findByHqlWhere(ddlPackBean); - if(CollectionUtils.isEmpty(oldMesWorkOrders)){ - throw new ImppBusiException(String.format("物料【%s】状态已发布的工单信息不存在", productionRecord.getPartNo())); - } + return oldMesWorkOrders; } @@ -703,9 +705,10 @@ public class MesWorkOrderService implements IMesWorkOrderService { List statusList = Stream.of(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getValue(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue()).collect(Collectors.toList()); DdlPreparedPack.getInPackList( statusList,"reportStatus",ddlPackBean); DdlPreparedPack.getIsNull("workOrderNo",ddlPackBean); - //DdlPreparedPack.getStringEqualPack("B19CK01A", "workCenterCode",ddlPackBean); - + String workCenterCodes = configService.getCfgValue(organizeCode, "MES_PCN_REPORT_CENTER"); + List centerList = Arrays.asList(workCenterCodes.split(",")); + DdlPreparedPack.getInPackList(centerList, "workCenterCode",ddlPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, ddlPackBean); List mesProductionRecordList = productionRecordRao.findByHqlTopWhere(ddlPackBean, 1); @@ -720,6 +723,10 @@ public class MesWorkOrderService implements IMesWorkOrderService { List statusList = Stream.of(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getValue(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue()).collect(Collectors.toList()); DdlPreparedPack.getInPackList( statusList,"reportStatus",ddlPackBean); DdlPreparedPack.getIsNotNull("workOrderNo",ddlPackBean); + String workCenterCodes = configService.getCfgValue(organizeCode, "MES_PCN_REPORT_CENTER"); + + List centerList = Arrays.asList(workCenterCodes.split(",")); + DdlPreparedPack.getInPackList(centerList, "workCenterCode",ddlPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, ddlPackBean); List mesProductionRecordList = productionRecordRao.findByHqlTopWhere(ddlPackBean, 1);