diff --git a/src/main/java/com/xujie/sys/modules/pms/data/EamWorkOrderData.java b/src/main/java/com/xujie/sys/modules/pms/data/EamWorkOrderData.java index e3389983..8e8b01ff 100644 --- a/src/main/java/com/xujie/sys/modules/pms/data/EamWorkOrderData.java +++ b/src/main/java/com/xujie/sys/modules/pms/data/EamWorkOrderData.java @@ -80,6 +80,18 @@ public class EamWorkOrderData extends QueryPage { */ private String buDesc; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date lastExecutionDate; + + public Date getLastExecutionDate() { + return lastExecutionDate; + } + + public void setLastExecutionDate(Date lastExecutionDate) { + this.lastExecutionDate = lastExecutionDate; + } + public String getBu() { return bu; } diff --git a/src/main/java/com/xujie/sys/modules/pms/data/EamWorkPlanInData.java b/src/main/java/com/xujie/sys/modules/pms/data/EamWorkPlanInData.java index 40a71ac7..b6d64812 100644 --- a/src/main/java/com/xujie/sys/modules/pms/data/EamWorkPlanInData.java +++ b/src/main/java/com/xujie/sys/modules/pms/data/EamWorkPlanInData.java @@ -22,6 +22,15 @@ public class EamWorkPlanInData extends EamWorkPlanData{ // 工单号 private String orderNo; private Date orderDate; + private Date lastExecutionDate; + + public Date getLastExecutionDate() { + return lastExecutionDate; + } + + public void setLastExecutionDate(Date lastExecutionDate) { + this.lastExecutionDate = lastExecutionDate; + } public Date getOrderDate() { return orderDate; diff --git a/src/main/java/com/xujie/sys/modules/pms/listener/RedisExpirationListener.java b/src/main/java/com/xujie/sys/modules/pms/listener/RedisExpirationListener.java index 29fcb353..aa0ee026 100644 --- a/src/main/java/com/xujie/sys/modules/pms/listener/RedisExpirationListener.java +++ b/src/main/java/com/xujie/sys/modules/pms/listener/RedisExpirationListener.java @@ -68,7 +68,6 @@ public class RedisExpirationListener extends KeyExpirationEventMessageListener { } // 校验单据状态,如果不是"维修完成" 则发送邮件通知 if (!"维修完成".equals(feedBackList.get(0).getStatus())) { - eamService.sendMail(feedBackList.get(0)); } } diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java index 07752927..459e0c41 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java @@ -1323,7 +1323,6 @@ public class EamServiceImpl implements EamService { throw new RuntimeException("该计划状态不是已计划,请刷新数据!"); } // 开始保存 - if (planData.getPlanPeriod() == 0) { // 点检频率为0 // 获得工单号 if (inData.getFunctionType().equals("A")) { @@ -1372,6 +1371,8 @@ public class EamServiceImpl implements EamService { Map resultMap = resultList.get(0); String orderNo = String.valueOf(resultMap.get("serial_no")); planData.setOrderNo("D" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); + // 设置最晚执行日期,等于计划执行日期 + planData.setLastExecutionDate(orderDate); } else if (inData.getFunctionType().equals("B")) { List params = new ArrayList<>(); params.add("*"); @@ -1382,6 +1383,12 @@ public class EamServiceImpl implements EamService { Map resultMap = resultList.get(0); String orderNo = String.valueOf(resultMap.get("serial_no")); planData.setOrderNo("W" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); + // 设置最晚执行日期,为下一个执行日期的前一天 + calendar.clear(); + calendar.setTime(orderDate); + calendar.add(Calendar.MONTH,planData.getPlanPeriod()); + calendar.add(Calendar.DATE,-1); + planData.setLastExecutionDate(calendar.getTime()); } // 新增工单 eamMapper.forInsertWorkOrder(planData); @@ -1433,6 +1440,7 @@ public class EamServiceImpl implements EamService { Map resultMap = resultList.get(0); String orderNo = String.valueOf(resultMap.get("serial_no")); planData.setOrderNo("D" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); + planData.setLastExecutionDate(orderDate); } else if (inData.getFunctionType().equals("B")) { List params = new ArrayList<>(); params.add("*"); @@ -1443,6 +1451,12 @@ public class EamServiceImpl implements EamService { Map resultMap = resultList.get(0); String orderNo = String.valueOf(resultMap.get("serial_no")); planData.setOrderNo("W" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); + // 设置最晚执行日期,为下一个执行日期的前一天 + calendar.clear(); + calendar.setTime(orderDate); + calendar.add(Calendar.MONTH,planData.getPlanPeriod()); + calendar.add(Calendar.DATE,-1); + planData.setLastExecutionDate(calendar.getTime()); } // 新增工单 eamMapper.forInsertWorkOrder(planData); @@ -1510,6 +1524,7 @@ public class EamServiceImpl implements EamService { Map resultMap = resultList.get(0); String orderNo = String.valueOf(resultMap.get("serial_no")); planData.setOrderNo("D" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); + planData.setLastExecutionDate(orderDate); } else if (inData.getFunctionType().equals("B")) { List params = new ArrayList<>(); params.add("*"); @@ -1520,6 +1535,21 @@ public class EamServiceImpl implements EamService { Map resultMap = resultList.get(0); String orderNo = String.valueOf(resultMap.get("serial_no")); planData.setOrderNo("W" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); + // 设置最晚执行日期,为下一个执行日期的前一天 + calendar.clear(); + calendar.setTime(orderDate); + // 判断计划周期 + if (planData.getPlanCycle().equals("天")) { + calendar.add(Calendar.DATE,planData.getPlanPeriod()); + } else if (planData.getPlanCycle().equals("周")) { + calendar.add(Calendar.DATE,7*planData.getPlanPeriod()); + } else if (planData.getPlanCycle().equals("月")) { + calendar.add(Calendar.MONTH,planData.getPlanPeriod()); + } else if (planData.getPlanCycle().equals("年")) { + calendar.add(Calendar.YEAR,planData.getPlanPeriod()); + } + calendar.add(Calendar.DATE,-1); + planData.setLastExecutionDate(calendar.getTime()); } // 新增工单 eamMapper.forInsertWorkOrder(planData); @@ -3028,7 +3058,7 @@ public class EamServiceImpl implements EamService { MailAddressData tpm = qcMapper.getSendMailAddress(feedBackData.getSite(), "TPM"); if (tpm != null) { //设置邮件内容 - String text = "维修超时辣!" + feedBackData.getFeedBackID(); + String text = "维修超时!" + feedBackData.getFeedBackID(); //发送邮件 JavaMailSenderImpl sender = new JavaMailSenderImpl(); MailSendAddressData mailSendData = qcMapper.getSendMailFromAddress(); diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java index cbd8f16a..41b77704 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java @@ -2378,7 +2378,7 @@ public class QcServiceImpl implements QcService { data.setCollectionDataContent(collectionDataContent); List list = qcMapper.selectFAISubDetailedRecord(data); List sortedRecords = list.stream() - .sorted(Comparator.comparingInt(SubDetailValues::getNum)) + .sorted(Comparator.comparing(SubDetailValues::getNum, Comparator.nullsLast(Comparator.naturalOrder()))) .collect(Collectors.toList()); return sortedRecords; } @@ -2941,7 +2941,7 @@ public class QcServiceImpl implements QcService { data.setCollectionDataContent(collectionDataContent); List list = qcMapper.selectFQCSubDetailedRecord(data); List sortedRecords = list.stream() - .sorted(Comparator.comparingInt(SubDetailValues::getNum)) + .sorted(Comparator.comparing(SubDetailValues::getNum, Comparator.nullsLast(Comparator.naturalOrder()))) .collect(Collectors.toList()); return sortedRecords; } @@ -3562,7 +3562,7 @@ public class QcServiceImpl implements QcService { data.setCollectionDataContent(collectionDataContent); List list = qcMapper.selectIPQCSubDetailedRecord(data); List sortedRecords = list.stream() - .sorted(Comparator.comparingInt(SubDetailValues::getNum)) + .sorted(Comparator.comparing(SubDetailValues::getNum, Comparator.nullsLast(Comparator.naturalOrder()))) .collect(Collectors.toList()); return sortedRecords; } @@ -4135,7 +4135,7 @@ public class QcServiceImpl implements QcService { data.setCollectionDataContent(collectionDataContent); List list = qcMapper.selectIQCSubDetailedRecord(data); List sortedRecords = list.stream() - .sorted(Comparator.comparingInt(SubDetailValues::getNum)) + .sorted(Comparator.comparing(SubDetailValues::getNum, Comparator.nullsLast(Comparator.naturalOrder()))) .collect(Collectors.toList()); return sortedRecords; } diff --git a/src/main/resources/mapper/pms/EamMapper.xml b/src/main/resources/mapper/pms/EamMapper.xml index 95077c72..1ced7eea 100644 --- a/src/main/resources/mapper/pms/EamMapper.xml +++ b/src/main/resources/mapper/pms/EamMapper.xml @@ -723,7 +723,8 @@ dbo.joint_id(a.Site, a.bu_no, a.OrderNo, a.FunctionType) as adminID, dbo.joint_name(a.Site, a.bu_no, a.OrderNo, a.FunctionType) as operator, a.check_remark, - a.document_source + a.document_source, + a.last_execution_date FROM eam_workOrder a LEFT JOIN eam_defect_feedBack b on a.site = b.site and a.PlanID = b.feedBackID and a.bu_no = b.bu_no LEFT JOIN eam_defect c on b.DefectID = c.DefectID @@ -2101,8 +2102,8 @@ INSERT INTO eam_workOrder - (Site, bu_no, OrderNo, PlanID, PlanDesc, PropertiesCode, ObjectID, Status, PlanOperator, PlanDate, FunctionType,CreateDate, CreateBy, checker, PlanOperatorName, checkerName) - VALUES (#{site}, #{buNo}, #{orderNo}, #{planID}, #{planDesc}, #{propertiesCode}, #{objectID}, '未开工', #{operator}, #{orderDate}, #{functionType}, getDate(), #{userId}, #{checker}, #{operatorName}, #{checkerName}) + (Site, bu_no, OrderNo, PlanID, PlanDesc, PropertiesCode, ObjectID, Status, PlanOperator, PlanDate, FunctionType,CreateDate, CreateBy, checker, PlanOperatorName, checkerName, last_execution_date) + VALUES (#{site}, #{buNo}, #{orderNo}, #{planID}, #{planDesc}, #{propertiesCode}, #{objectID}, '未开工', #{operator}, #{orderDate}, #{functionType}, getDate(), #{userId}, #{checker}, #{operatorName}, #{checkerName}, #{lastExecutionDate})