diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesWorkOrderCalcQtyRestoreDispatchService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesWorkOrderCalcQtyRestoreDispatchService.java index 8aec42c..f9f934b 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesWorkOrderCalcQtyRestoreDispatchService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesWorkOrderCalcQtyRestoreDispatchService.java @@ -2,8 +2,8 @@ package cn.estsh.i3plus.ext.mes.pcn.api.job; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderCalcQtyRecord; -import cn.estsh.i3plus.pojo.mes.bean.offline.MesWorkOrderOffline; import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import io.swagger.annotations.ApiOperation; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -11,13 +11,18 @@ import java.util.List; public interface IMesWorkOrderCalcQtyRestoreDispatchService { + @ApiOperation(value = "查询生产工单计数记录表") List getWorkOrderCalcQtyRecordList(String organizeCode, Integer qty); + @ApiOperation(value = "查询工单") @Transactional(propagation = Propagation.NOT_SUPPORTED) MesWorkOrder getWorkOrderDb(String organizeCode, Long workOrderId); + @ApiOperation(value = "补录生产工单计数JOB修改数据") @Transactional(propagation = Propagation.REQUIRES_NEW, noRollbackFor = {ImppBusiException.class, Exception.class}) - void doRestoreWorkOrderCalcQty(MesWorkOrderOffline workOrderOffline, Boolean result); + void doRestoreWorkOrderCalcQty(String organizeCode, MesWorkOrder workOrder, List value); + @ApiOperation(value = "修改记录状态") + void saveWorkOrderCalcQtyRecord(String organizeCode, List idList, Integer dealStatus, String remark); } diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesWorkOrderCalcQtyRestoreService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesWorkOrderCalcQtyRestoreService.java index a431157..23ed63a 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesWorkOrderCalcQtyRestoreService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/job/IMesWorkOrderCalcQtyRestoreService.java @@ -1,13 +1,12 @@ package cn.estsh.i3plus.ext.mes.pcn.api.job; +import io.swagger.annotations.ApiOperation; + import java.util.Map; public interface IMesWorkOrderCalcQtyRestoreService { - /** - * 补录离线生产工单数据JOB - * @param paramMap - */ + @ApiOperation(value = "补录离线生产工单数据JOB") void doRestoreWorkOrderCalcQty(Map paramMap); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesWorkOrderCalcQtyRestoreJob.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesWorkOrderCalcQtyRestoreJob.java index f0ef9ee..20a2851 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesWorkOrderCalcQtyRestoreJob.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesWorkOrderCalcQtyRestoreJob.java @@ -2,7 +2,6 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob; import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesWorkOrderCalcQtyRestoreService; -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; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderCalcQtyRestoreDispatchService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderCalcQtyRestoreDispatchService.java index dd6f587..b3c1222 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderCalcQtyRestoreDispatchService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderCalcQtyRestoreDispatchService.java @@ -1,35 +1,28 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.job; import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesWorkOrderCalcQtyRestoreDispatchService; -import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesWorkOrderOfflineRestoreDispatchService; -import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProductionRecordOfflineModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; -import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.tool.MathOperation; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; -import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.*; -import cn.estsh.i3plus.pojo.mes.bean.offline.MesWorkOrderAssemblyOffline; -import cn.estsh.i3plus.pojo.mes.bean.offline.MesWorkOrderOffline; -import cn.estsh.i3plus.pojo.mes.bean.offline.MesWorkOrderPartOffline; -import cn.estsh.i3plus.pojo.mes.repository.*; -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.MesWorkOrderPartOfflineRepository; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderCalcQtyRecord; +import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderCalcQtyRecordRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; -import java.util.ArrayList; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.UUID; import java.util.stream.Collectors; @Slf4j @@ -58,10 +51,138 @@ public class MesWorkOrderCalcQtyRestoreDispatchService implements IMesWorkOrderC } @Override - public void doRestoreWorkOrderCalcQty(MesWorkOrderOffline workOrderOffline, Boolean result) { + public void doRestoreWorkOrderCalcQty(String organizeCode, MesWorkOrder workOrder, List workOrderCalcQtyRecordList) { - } + //搜集记录ID集合 + List idList = workOrderCalcQtyRecordList.stream().filter(o -> null != o).map(MesWorkOrderCalcQtyRecord::getId).collect(Collectors.toList()); + if (null == workOrder) { + //修改记录状态 + saveWorkOrderCalcQtyRecord(organizeCode, idList, MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_FAILURE.getValue(), "工单信息不存在"); + log.info("补录生产工单计数JOB --- 补录: {} --- ID: {} --- END --- {} {} --- MesWorkOrderCalcQtyRecord: {} ---", + workOrderCalcQtyRecordList.get(0).getWorkOrderNo(), workOrderCalcQtyRecordList.get(0).getId(), MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_FAILURE.getDescription(), "工单信息不存在", idList.toString()); + return; + } + + //计数 + Double completeQty = !StringUtils.isEmpty(workOrder.getCompleteQty()) ? workOrder.getCompleteQty() : new Double(MesPcnExtConstWords.ZERO); + Double suspiciousPartQty = !StringUtils.isEmpty(workOrder.getSuspiciousPartQty()) ? workOrder.getSuspiciousPartQty() : new Double(MesPcnExtConstWords.ZERO); + Double scrapPartQty = !StringUtils.isEmpty(workOrder.getScrapPartQty()) ? workOrder.getScrapPartQty() : new Double(MesPcnExtConstWords.ZERO); + for (MesWorkOrderCalcQtyRecord workOrderCalcQtyRecord : workOrderCalcQtyRecordList) { + if (null == workOrderCalcQtyRecord) continue; + if (!StringUtils.isEmpty(workOrderCalcQtyRecord.getCompleteQty())) completeQty = MathOperation.add(completeQty, workOrderCalcQtyRecord.getCompleteQty()); + if (!StringUtils.isEmpty(workOrderCalcQtyRecord.getSuspiciousPartQty())) suspiciousPartQty = MathOperation.add(suspiciousPartQty, workOrderCalcQtyRecord.getSuspiciousPartQty()); + if (!StringUtils.isEmpty(workOrderCalcQtyRecord.getScrapPartQty())) scrapPartQty = MathOperation.add(scrapPartQty, workOrderCalcQtyRecord.getScrapPartQty()); + } + + //未完成数 + Double unCompleteQty = !StringUtils.isEmpty(workOrder.getUnCompleteQty()) ? workOrder.getUnCompleteQty() : workOrder.getQty(); + unCompleteQty = MathOperation.compareTo(unCompleteQty, new Double(MesPcnExtConstWords.ZERO)) <= MesPcnExtConstWords.ZERO ? new Double(MesPcnExtConstWords.ZERO) : MathOperation.sub(workOrder.getQty(), completeQty); + if (MathOperation.compareTo(unCompleteQty, new Double(MesPcnExtConstWords.ZERO)) < MesPcnExtConstWords.ZERO) unCompleteQty = new Double(MesPcnExtConstWords.ZERO); + + //状态 + Integer workOrderStatus = workOrder.getWorkOrderStatus(); + if (workOrderStatus.compareTo(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()) == MesPcnExtConstWords.ZERO || workOrderStatus.compareTo(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()) == MesPcnExtConstWords.ZERO) { + if (MathOperation.compareTo(completeQty, workOrder.getQty()) >= MesPcnExtConstWords.ZERO) workOrderStatus = MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue(); + else workOrderStatus = MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue(); + } + + //添加修改属性 + Map propertyMap = new HashMap<>(); + Map conditionMap = new HashMap<>(); + conditionMap.put(MesPcnExtConstWords.ID, workOrder.getId()); + conditionMap.put(MesPcnExtConstWords.ORGANIZE_CODE, organizeCode); + conditionMap.put(MesPcnExtConstWords.IS_DELETED, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + conditionMap.put(MesPcnExtConstWords.IS_VALID, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + if (MathOperation.compareTo(workOrder.getCompleteQty(), completeQty) != MesPcnExtConstWords.ZERO) { + propertyMap.put(MesPcnExtConstWords.COMPLETE_QTY, completeQty); + conditionMap.put(MesPcnExtConstWords.COMPLETE_QTY, workOrder.getCompleteQty()); + } + if (MathOperation.compareTo(workOrder.getSuspiciousPartQty(), suspiciousPartQty) != MesPcnExtConstWords.ZERO) { + propertyMap.put(MesPcnExtConstWords.SUSPICIOUS_PART_QTY, suspiciousPartQty); + conditionMap.put(MesPcnExtConstWords.SUSPICIOUS_PART_QTY, workOrder.getSuspiciousPartQty()); + } + if (MathOperation.compareTo(workOrder.getScrapPartQty(), scrapPartQty) != MesPcnExtConstWords.ZERO) { + propertyMap.put(MesPcnExtConstWords.SCRAP_PART_QTY, scrapPartQty); + conditionMap.put(MesPcnExtConstWords.SCRAP_PART_QTY, workOrder.getScrapPartQty()); + } + if (MathOperation.compareTo(workOrder.getUnCompleteQty(), unCompleteQty) != MesPcnExtConstWords.ZERO) { + propertyMap.put(MesPcnExtConstWords.UN_COMPLETE_QTY, unCompleteQty); + conditionMap.put(MesPcnExtConstWords.UN_COMPLETE_QTY, workOrder.getUnCompleteQty()); + } + if (workOrder.getWorkOrderStatus().compareTo(workOrderStatus) != MesPcnExtConstWords.ZERO) { + propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, workOrderStatus); + conditionMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, workOrder.getWorkOrderStatus()); + } + + //当前没有任何修改 + if (CollectionUtils.isEmpty(propertyMap)) { + //修改记录状态 + saveWorkOrderCalcQtyRecord(organizeCode, idList, MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_SUCCESS.getValue(), "工单信息无变更"); + log.info("补录生产工单计数JOB --- 补录: {} --- ID: {} --- END --- {} {} --- MesWorkOrderCalcQtyRecord: {} ---", + workOrder.getWorkOrderNo(), workOrder.getId(), MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_SUCCESS.getDescription(), "工单信息无变更", idList.toString()); + return; + } + + //添加常规字段判断是否需要修改 + if (workOrder.getSystemSyncStatus().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) != 0) { + propertyMap.put(MesPcnExtConstWords.SYSTEM_SYNC_STATUS, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + conditionMap.put(MesPcnExtConstWords.SYSTEM_SYNC_STATUS, workOrder.getSystemSyncStatus()); + } + + if (!workOrder.getSystemSyncDatetime().equals(MesPcnExtConstWords.EMPTY)) propertyMap.put(MesPcnExtConstWords.SYSTEM_SYNC_DATE_TIME, MesPcnExtConstWords.EMPTY); + + String userInfo = workOrderCalcQtyRecordList.get(workOrderCalcQtyRecordList.size() - MesPcnExtConstWords.ONE).getCreateUser(); + if (!workOrder.getModifyUser().equals(userInfo)) propertyMap.put(MesPcnExtConstWords.MODIFY_USER, userInfo); + + propertyMap.put(MesPcnExtConstWords.MODIFY_DATE_TIME, (new SimpleDateFormat(MesPcnExtConstWords.DATE_FORMAT_SSS)).format(new Date())); + conditionMap.put(MesPcnExtConstWords.MODIFY_DATE_TIME, workOrder.getModifyDatetime()); + //修改值 + String[] propertyName = new String[propertyMap.size()]; + Object[] propertyValue = new Object[propertyMap.size()]; + Integer index = 0; + for (Map.Entry innerEntry : propertyMap.entrySet()) { + if (null == innerEntry) continue; + propertyName[index] = innerEntry.getKey(); + propertyValue[index] = innerEntry.getValue(); + index ++; + } + + //修改条件 + String[] conditionName = new String[conditionMap.size()]; + Object[] conditionValue = new Object[conditionMap.size()]; + + index = 0; + for (Map.Entry innerEntry : conditionMap.entrySet()) { + if (null == innerEntry) continue; + conditionName[index] = innerEntry.getKey(); + conditionValue[index] = innerEntry.getValue(); + index ++; + } + + //当工单修改成功后, 再修改记录状态 + if (workOrderRepository.updateByPropertiesNoSync(conditionName, conditionValue, propertyName, propertyValue) == 1) { + //修改记录状态 + saveWorkOrderCalcQtyRecord(organizeCode, idList, MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_SUCCESS.getValue(), "工单信息已变更成功"); + + log.info("补录生产工单计数JOB --- 补录: {} --- ID: {} --- END --- conditionMap: {} --- propertyMap: {} --- {} {} --- MesWorkOrderCalcQtyRecord: {} ---", + workOrder.getWorkOrderNo(), workOrder.getId(), JSONObject.toJSONString(conditionMap), JSONObject.toJSONString(propertyMap), + MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_SUCCESS.getDescription(), "工单信息已变更成功", idList.toString()); + } + + } + + //修改记录状态 + @Override + public void saveWorkOrderCalcQtyRecord(String organizeCode, List idList, Integer dealStatus, String remark) { + String[] propertyName = new String[]{MesPcnExtConstWords.DEAL_STATUS, MesPcnExtConstWords.MODIFY_USER, + MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.REMARK}; + Object[] propertyValue = new Object[]{dealStatus, MesPcnExtConstWords.JOB, + (new SimpleDateFormat(MesPcnExtConstWords.DATE_FORMAT_SSS)).format(new Date()), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), remark}; + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(idList, MesPcnExtConstWords.ID, packBean); + workOrderCalcQtyRecordRepository.updateByPropertiesNoSync(propertyName, propertyValue, packBean); + } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderCalcQtyRestoreService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderCalcQtyRestoreService.java index d5cd941..2a6c6f2 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderCalcQtyRestoreService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderCalcQtyRestoreService.java @@ -3,14 +3,8 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.job; import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesWorkOrderCalcQtyRestoreDispatchService; import cn.estsh.i3plus.ext.mes.pcn.api.job.IMesWorkOrderCalcQtyRestoreService; 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.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderCalcQtyRecord; -import cn.estsh.i3plus.pojo.mes.bean.offline.MesWorkOrderOffline; -import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderCalcQtyRecordRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderRepository; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -55,16 +49,17 @@ public class MesWorkOrderCalcQtyRestoreService implements IMesWorkOrderCalcQtyRe //查询工单, 无事务查询 MesWorkOrder workOrder = workOrderCalcQtyRestoreDispatchService.getWorkOrderDb(organizeCode, entry.getValue().get(0).getPid()); - if (null == workOrder) log.info("补录生产工单计数JOB --- 补录 {} START --- ID: {} 信息不存在 ---", entry.getKey(), entry.getValue().get(0).getPid()); - else log.info("补录生产工单计数JOB --- 补录 {} START --- ID: {} --- ---", entry.getKey(), entry.getValue().get(0).getPid()); - - workOrderCalcQtyRestoreDispatchService.doRestoreWorkOrderCalcQty(organizeCode, workOrder, entry.getValue()); - + if (null == workOrder) log.info("补录生产工单计数JOB --- 补录: {} --- ID: {} --- START --- 信息不存在 ---", entry.getKey(), entry.getValue().get(0).getPid()); + else log.info("补录生产工单计数JOB --- 补录: {} --- ID: {} --- START ---", entry.getKey(), entry.getValue().get(0).getPid()); + try { + workOrderCalcQtyRestoreDispatchService.doRestoreWorkOrderCalcQty(organizeCode, workOrder, entry.getValue()); + } catch (Exception e) { + log.info("补录生产工单计数JOB --- 补录: {} --- ID: {} --- EXCEPTION: {} ---", entry.getKey(), entry.getValue().get(0).getPid(), e.toString()); + } } - } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesTimeEfficientCfgMatchService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesTimeEfficientCfgMatchService.java index 1b321aa..a0d855e 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesTimeEfficientCfgMatchService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesTimeEfficientCfgMatchService.java @@ -14,6 +14,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -165,4 +166,41 @@ public class MesTimeEfficientCfgMatchService implements IMesTimeEfficientCfgMatc return true; } + public static void main(String[] args) { + try { + Double minValue = 1d; + Double maxValue = 240d; + SimpleDateFormat sdf = new SimpleDateFormat(MesPcnExtConstWords.DATE_FORMAT); +// Date now = new Date(); + Date now = sdf.parse("2025-03-21 11:19:06"); + Date productDateTime = sdf.parse("2025-03-21 11:15:06"); + int minDiff = (int) ((now.getTime() - productDateTime.getTime())/(60 * 1000)); + Integer matchRule = 40; + if (MesExtEnumUtil.MATCH_RULE.MATCH_RULE_20.getValue().equals(matchRule)) { + //差值 小于最小时差有效 + if (minDiff >= minValue){ + System.out.println(false); + } + } else if (MesExtEnumUtil.MATCH_RULE.MATCH_RULE_30.getValue().equals(matchRule)) { + // 差值 大于最大时差有效 + if (minDiff <= maxValue){ + System.out.println(false); + } + } else if (MesExtEnumUtil.MATCH_RULE.MATCH_RULE_40.getValue().equals(matchRule)) { + // 差值 最大最小时差有效 在 最大值 最小值之间 + if (minDiff <= minValue || minDiff >= maxValue){ + System.out.println(false); + } + } else if (MesExtEnumUtil.MATCH_RULE.MATCH_RULE_50.getValue().equals(matchRule)) { + // 差值 最大外或最小内有效 + if (minDiff >= minValue && minDiff <= maxValue){ + System.out.println(false); + } + } + System.out.println("执行完成"); + } catch (ParseException e) { + e.printStackTrace(); + } + } + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveNosortStepService.java index 5990572..65e10ff 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderSaveNosortStepService.java @@ -157,6 +157,7 @@ public class MesWorkOrderSaveNosortStepService extends BaseStepService { if (null != scanMonitorContext) workOrderCalcQtyRecord.setMouldRecordId(scanMonitorContext.getMouldRecordId()); + workOrderCalcQtyRecord.setDealStatus(MesExtEnumUtil.MES_LOG_DEAL_STATUS.UNDEAL.getValue()); workOrderCalcQtyRecord.setCreateUser(reqBean.getUserInfo()); workOrderCalcQtyRecord.setModifyUser(reqBean.getUserInfo()); workOrderCalcQtyRecord.setCreateDatetime((new SimpleDateFormat(MesPcnExtConstWords.DATE_FORMAT_SSS)).format(new Date()));