diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentVariableService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentVariableService.java index deac71b..efde2cb 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentVariableService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentVariableService.java @@ -16,6 +16,6 @@ import java.util.Map; public interface IMesEquipmentVariableService extends IBaseMesService { @ApiModelProperty("设备变量导入") - void addMesEquipmentVariable(List> mapList, String equipmentCode, String userName, String organizeCode); + void addMesEquipmentVariable(List> mapList, String equipmentCode, String userName, String organizeCode, String device); } diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java index 95eeb28..68b8cb1 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java @@ -28,7 +28,7 @@ public interface IMesWorkOrderService extends IBaseMesService { void doProductReportExt(MesWorkOrder mesWorkOrder); @ApiOperation("非排序工单导入前删除") - void deleteUnSortOrder(String organizeCode, List partNoList,String userName); + void doCloseUnSortOrder(String organizeCode,String userName); @ApiOperation("汇总工单给SAP") List sumMesWorkOrderQtyToSap(String organizeCode); diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductSn.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductSn.groovy index 01efd03..04b330f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductSn.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductSn.groovy @@ -1,3 +1,4 @@ +import cn.estsh.i3plus.mes.apiservice.util.DateUtil import cn.estsh.i3plus.platform.common.tool.TimeTool import cn.estsh.i3plus.platform.plugin.datasource.DynamicDataSourceProxy import cn.estsh.i3plus.pojo.base.bean.DdlPackBean @@ -48,6 +49,8 @@ class MesToPiscesProductSn { LOGGER.info("未查询到跨工厂配置"); return new ArrayList<>(); } + LOGGER.info("跨工厂配置个数{}",crossOrganizeCfgList.size()); + List> srcData = new ArrayList<>(); List updateList = new ArrayList<>(); //循环处理数据 @@ -62,15 +65,19 @@ class MesToPiscesProductSn { } String sql = "select * from " + mapper.getSrcTableName() + " where organize_code = :srcOrganizeCode and part_no = :partNo and create_date_time >= :createDateTime and " + mapper.getSrcWhere() + " order by " + mapper.getSrcOrderBy() + " limit " + mapper.getSrcGetLimit() + LOGGER.info("工厂:{},物料:{},时间:{},查询sql:{}",crossOrganizeCfg.getOrganizeCode(),crossOrganizeCfg.getPartNo(),params.get("createDateTime"),sql); //查询待同步的数据 List> dataList = queryDataTable(sql, params); if (!CollectionUtils.isEmpty(dataList)) { + LOGGER.info("工厂:{},物料:{},查询行数:{}",crossOrganizeCfg.getSrcOrganizeCode(),crossOrganizeCfg.getPartNo(),dataList.size()); + //目标工厂 for (Map rowMap : dataList) { rowMap.put("DEST_ORGANIZE_CODE", crossOrganizeCfg.getSrcOrganizeCode()) } srcData.addAll(dataList); - String createDateTime = dataList.iterator().next().get("create_date_time") + + String createDateTime = TimeTool.pareDateToString(DateUtil.addMinutes(TimeTool.parseDate(dataList.iterator().next().get("create_date_time")), -5)); //更新配置 updateList.add("update mes_cross_organize_cfg set last_create_date_time = '"+createDateTime+"',last_exe_time = '"+ TimeTool.getNowTime(true)+"' where id= " + crossOrganizeCfg.getId() + " ;") } diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy index f5c2f33..1f08b4d 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy @@ -73,7 +73,7 @@ class MesToPiscesProductionAssembly { if (!Objects.isNull(mesProductionRecord)) { rowMap.put("PRODUCTION_LOG_FID", mesProductionRecord.getFid()) } else { - LOGGER.info("原材料容器id:{},信息不存在", String.valueOf(rowMap.get("production_record_id"))) + LOGGER.info("加工记录id:{},信息不存在", String.valueOf(rowMap.get("production_record_id"))) } }else{ rowMap.put("PRODUCTION_LOG_FID", null) diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesProductSn.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesProductSn.groovy index 37e54f0..b1b548b 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesProductSn.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesProductSn.groovy @@ -39,6 +39,7 @@ class PiscesToMesProductSn { LOGGER.info("未查询到跨工厂配置"); return new ArrayList<>(); } + LOGGER.info("跨工厂配置个数{}",crossOrganizeCfgList.size()); List> srcData = new ArrayList<>(); //循环处理数据 for (MesCrossOrganizeCfg crossOrganizeCfg : crossOrganizeCfgList) { @@ -46,9 +47,11 @@ class PiscesToMesProductSn { params.put("srcOrganizeCode", crossOrganizeCfg.getSrcOrganizeCode()) params.put("partNo", crossOrganizeCfg.getPartNo()) String sql = "select top "+mapper.getSrcGetLimit()+" * from " + mapper.getSrcTableName() + " where PLANT = :srcOrganizeCode and PART_NO = :partNo and " + mapper.getSrcWhere() + " order by "+mapper.getSrcOrderBy() + LOGGER.info("工厂:{},物料:{},查询sql:{}",crossOrganizeCfg.getSrcOrganizeCode(),crossOrganizeCfg.getPartNo(),sql); //查询待同步的数据 List> dataList = queryDataTable(sql, params); if (!CollectionUtils.isEmpty(dataList)) { + LOGGER.info("工厂:{},物料:{},查询行数:{}",crossOrganizeCfg.getSrcOrganizeCode(),crossOrganizeCfg.getPartNo(),dataList.size()); srcData.addAll(dataList); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/aspect/MesRepositoryAspect.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/aspect/MesRepositoryAspect.java index ba27a9e..8985545 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/aspect/MesRepositoryAspect.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/aspect/MesRepositoryAspect.java @@ -24,7 +24,7 @@ import java.util.List; * @CreateDate 2024/6/27 10:10 * @Modify: **/ -@ConditionalOnExpression("'${mes.aspect.repository:false}' == 'true'") +@ConditionalOnExpression("'${mes.aspect.repository:true}' == 'true'") @Aspect @Configuration public class MesRepositoryAspect { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentVariableController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentVariableController.java index 6532802..0a62003 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentVariableController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentVariableController.java @@ -33,7 +33,7 @@ public class MesEquipmentVariableController extends BaseMesController> mapList = CsvImportUtil.csvImports(file); @@ -42,7 +42,7 @@ public class MesEquipmentVariableController extends BaseMesController sumMesWorkOrderQtyToSap(String organizeCode) { StringBuffer hql = new StringBuffer("select organize_code as organizeCode,part_no as partNo, date_format(plan_start_time, '%Y-%m-%d' ) as planStartTime, product_version as productVersion, " + - " sum(case when work_order_status = 40 then complete_qty else qty end ) as qty " + + " sum(case when work_order_status = 40 then reported_qty else qty end ) as qty " + " from mes_work_order where is_deleted=:isDeleted and is_valid = :isValid and organize_code = :organizeCode " + - " and work_order_type = 20 and order_flag !='P' and work_order_status != 10 and plan_start_time >= :today" + + " and work_order_type = :workOrderType and order_flag != :orderFlag and work_order_status in (20,30,40,50) and plan_start_time >= :today" + " group by organize_code,part_no, date_format(plan_start_time, '%Y-%m-%d' ), product_version "); Query query = entityManager.createNativeQuery(hql.toString()); query.setParameter("organizeCode", organizeCode); query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); query.setParameter("today", TimeTool.getToday()); + query.setParameter("workOrderType", MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()); + query.setParameter("orderFlag", MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue()); query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); List> hashMaps = query.getResultList(); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesQmsSuspiciousJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesQmsSuspiciousJob.java index 9774280..9ef53e6 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesQmsSuspiciousJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesQmsSuspiciousJob.java @@ -10,6 +10,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspection; import cn.estsh.i3plus.pojo.mes.repository.MesPartInspectionRepository; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.init.ApplicationProperties; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; @@ -93,7 +94,7 @@ public class MesQmsSuspiciousJob extends BaseMesScheduleJob { List partInspectionList = new ArrayList<>(); //排序取单件逻辑未同步的一条最新的 Map> partSnMap = mesPartInspectionList.stream() - .filter(p -> p.getSourceType() == 10) + .filter(p -> p.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) .collect(Collectors.groupingBy(p -> p.getSn() + "-" + p.getPartNo())); for (Map.Entry> stringListEntry : partSnMap.entrySet()) { List value = stringListEntry.getValue(); @@ -103,7 +104,7 @@ public class MesQmsSuspiciousJob extends BaseMesScheduleJob { } //批次逻辑的全部汇总数量 42692 MES:可疑品汇总逻辑更新 Map> partMap = mesPartInspectionList.stream() - .filter(p -> p.getSourceType() == 20) + .filter(p -> p.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.LOT.getValue()) .collect(Collectors.groupingBy(MesPartInspection::getPartNo)); for (Map.Entry> stringListEntry : partMap.entrySet()) { partInspectionList.addAll(stringListEntry.getValue()); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderCloseOrderJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderCloseOrderJob.java index 104981e..6fc859a 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderCloseOrderJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderCloseOrderJob.java @@ -45,7 +45,7 @@ public class MesWorkOrderCloseOrderJob extends BaseMesScheduleJob { String userName = "CLOSE_JOB"; for (String organizeCode : organizeCodeList) { - mesWorkOrderService.deleteUnSortOrder(organizeCode, null, userName); + mesWorkOrderService.doCloseUnSortOrder(organizeCode, userName); } LOGGER.info("工单关闭开始结束 ----- end"); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentVariableService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentVariableService.java index 63e0386..f851067 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentVariableService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentVariableService.java @@ -81,7 +81,7 @@ public class MesEquipmentVariableService extends BaseMesService> mapList,String equipmentCode, String userName, String organizeCode) { + public void addMesEquipmentVariable(List> mapList,String equipmentCode, String userName, String organizeCode, String device) { MesEquipment mesEquipment = getMesEquipment(organizeCode,equipmentCode); MesEquipmentChannel mesEquipmentChannel = getMesEquipmentChannel(organizeCode,equipmentCode); @@ -93,15 +93,51 @@ public class MesEquipmentVariableService extends BaseMesService implements IMesOrg @Override protected void setPackQueryBean(MesOrg bean, DdlPackBean packBean) { DdlPreparedPack.getStringEqualPack(bean.getInventoryLocationCode(), "inventoryLocationCode", packBean); - if(StringUtil.isEmpty(bean.getResponsibleParty())){ - DdlPreparedPack.getIsNotNull( "responsibleParty", packBean); - }else { - DdlPreparedPack.getStringEqualPack(bean.getResponsibleParty(), "responsibleParty", packBean); - } + DdlPreparedPack.getStringEqualPack(bean.getResponsibleParty(), "responsibleParty", packBean); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsSuspiciousService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsSuspiciousService.java index 71b03b4..b067db4 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsSuspiciousService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesQmsSuspiciousService.java @@ -104,7 +104,7 @@ public class MesQmsSuspiciousService extends BaseMesService im BeanUtils.copyProperties(mesPartInspection, partInspectionNew2); qmsTime = mesPartInspection.getCreateDatetime().substring(0, 13) + ":00:00"; partInspectionNew2.setInspectionDate(qmsTime); - if (mesPartInspection.getSourceType()==10){ + if (mesPartInspection.getSourceType()==MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()){ //如果条码重复出现时,对应最早时间段的零件不是最早,则不统计在汇总数据中 DdlPackBean packBeanSn = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(mesPartInspection.getSn(), "sn", packBeanSn); @@ -155,16 +155,18 @@ public class MesQmsSuspiciousService extends BaseMesService im double sumQty = mesPartInspections.stream().mapToDouble(MesPartInspection::getQty).sum(); mesQmsSuspicious.setInspectionQty((int) sumQty); //一次合格数 nc_status=10 inspection_status=10 - double qualifiedQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == 10 && m.getInspectionStatus() == 10).mapToDouble(MesPartInspection::getQty).sum(); + double qualifiedQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == MesExtEnumUtil.PART_INSPECTION_NC_STATUS.CREATE.getValue() + && m.getInspectionStatus() == MesExtEnumUtil.PART_INSPECTION_STATUS.QUALIFIED.getValue()).mapToDouble(MesPartInspection::getQty).sum(); mesQmsSuspicious.setQualifiedQty((int) qualifiedQty); //不合格数 nc_status=10 inspection_status=20 - double unqualifiedQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == 10 && m.getInspectionStatus() == 20).mapToDouble(MesPartInspection::getQty).sum(); + double unqualifiedQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == MesExtEnumUtil.PART_INSPECTION_NC_STATUS.CREATE.getValue() + && m.getInspectionStatus() == MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue()).mapToDouble(MesPartInspection::getQty).sum(); mesQmsSuspicious.setUnqualifiedQty((int) unqualifiedQty); //误判数量 nc_status=30 inspection_status=20 - double misjudgmentQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == 30).mapToDouble(MesPartInspection::getQty).sum(); + double misjudgmentQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == MesExtEnumUtil.PART_INSPECTION_NC_STATUS.RELEASE.getValue()).mapToDouble(MesPartInspection::getQty).sum(); mesQmsSuspicious.setMisjudgmentQty((int) misjudgmentQty); //一次报废数 nc_status=40 inspection_status=20 - double scrappedQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == 40 && m.getInspectionStatus() == 20).mapToDouble(MesPartInspection::getQty).sum(); + double scrappedQty = mesPartInspections.stream().filter(m -> m.getNcStatus() == MesExtEnumUtil.PART_INSPECTION_NC_STATUS.SCRAP.getValue() && m.getInspectionStatus() == MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue()).mapToDouble(MesPartInspection::getQty).sum(); mesQmsSuspicious.setScrappedQty((int) scrappedQty); //返工合格数 nc_status=50 返工单 status=20 diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderLogService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderLogService.java index 489a775..ae268d0 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderLogService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderLogService.java @@ -75,8 +75,8 @@ public class MesWorkOrderLogService extends BaseMesService impl String sql = " from mes_work_order_log wol" + " where 1=1 " + " and wol.organize_code =:organizeCode " + - " and wol.work_order_type = '20' " + - " and wol.adjust_qty > 0 " + +// " and wol.work_order_type = '20' " + +// " and wol.adjust_qty > 0 " + " and wol.is_deleted ='2' " + " and wol.is_valid ='1' "; if (!StringUtil.isEmpty(startTime)) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 2c38ce1..30d65f3 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -118,6 +118,9 @@ public class MesWorkOrderService extends BaseMesService implements @Autowired private IMesCcscTaskService mesCcscTaskService; + @Autowired + private MesWorkOrderToSapRepository mesWorkOrderToSapRepository; + @Override public MesWorkOrder insert(MesWorkOrder bean) { //校验产线与工位的关系 @@ -1034,14 +1037,28 @@ public class MesWorkOrderService extends BaseMesService implements } @Override - public void deleteUnSortOrder(String organizeCode, List partNoList,String userName) { + public void doCloseUnSortOrder(String organizeCode,String userName) { 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); - baseRDao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderStatus"}, - new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()}, ddlPackBean); + List mesWorkOrderList = baseRDao.findByHqlWhere(ddlPackBean); + if(CollectionUtils.isEmpty(mesWorkOrderList)){ + return; + } + log.info("关闭工单个数{},工单:{}",mesWorkOrderList.size(),mesWorkOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList())); + //关闭工单回传 + List partNoAndDataKey = mesWorkOrderList.stream().map(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getPartNo()).add(t.getProductVersion()).add(t.getPlanStartTime().substring(0, 10)).toString()).distinct().collect(Collectors.toList()); + List mesWorkOrderToSapList = new ArrayList<>(); + for (String partNoAndData : partNoAndDataKey) { + MesWorkOrderToSap orderToSap = new MesWorkOrderToSap(organizeCode, partNoAndData.split(MesExtConstWords.COMMA)[0], partNoAndData.split(MesExtConstWords.COMMA)[1], 0d, partNoAndData.split(MesExtConstWords.COMMA)[2]); + ConvertBean.serviceModelInitialize(orderToSap,userName); + mesWorkOrderToSapList.add(orderToSap); + } + mesWorkOrderToSapRepository.saveAll(mesWorkOrderToSapList); + //关闭工单 + baseRDao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderStatus","systemSyncStatus"}, + new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(),CommonEnumUtil.FALSE}, ddlPackBean); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java index fa23a7e..7b2e5ff 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java @@ -24,7 +24,7 @@ public class MesWorkOrderToSapServiceImpl extends BaseMesService MesSpotCheckOrderPart spotCheckOrderPart = new MesSpotCheckOrderPart(); spotCheckOrderPart.setSpotCheckOrderId(spotCheckOrderId); BeanUtils.copyProperties(k, spotCheckOrderPart, "id"); + spotCheckOrderPart.setSystemSyncStatus(CommonEnumUtil.FALSE); ConvertBean.serviceModelInitialize(spotCheckOrderPart, userName); spotCheckOrderPartList.add(spotCheckOrderPart); }); @@ -541,6 +542,7 @@ public class MesSpotCheckOrderService extends BaseMesService result.setSpotCheckItemId(k.getId()); result.setTaskItemName(k.getSpotCheckItemName()); result.setSpotCheckStandardValue(k.getStandardValue()); + result.setSystemSyncStatus(CommonEnumUtil.FALSE); ConvertBean.serviceModelInitialize(result, userName); spotCheckOrderResults.add(result); });