From b1d41a9ffc270c345dacb34f2de18bd0423e2e2c Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Fri, 26 Jan 2024 13:04:56 +0800 Subject: [PATCH] =?UTF-8?q?2024-01-26=20=E7=B3=BB=E7=BB=9F=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/service/Impl/EamServiceImpl.java | 252 ++++++++++++++---- src/main/resources/mapper/pms/EamMapper.xml | 5 +- 2 files changed, 198 insertions(+), 59 deletions(-) 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 fdff531b..749ca2a5 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 @@ -903,11 +903,28 @@ public class EamServiceImpl implements EamService { throw new RuntimeException("设备 " + objectData.getObjectID() + " 已存在计划,请勿重复创建!"); } } - String planId = eamMapper.selectOrderId(inData); + + // 生成计划编码 if (inData.getFunctionType().equals("A")) { - inData.setPlanID("DJ" + planId); + List params = new ArrayList<>(); + params.add("*"); + params.add("workPlanForCheckNo"); + params.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params.add("-126"); + List> resultList = procedureDao.getProcedureData("getWorkPlanNo", params); + Map resultMap = resultList.get(0); + String planNo = String.valueOf(resultMap.get("serial_no")); + inData.setPlanID("DJ" + DateUtil.getStringDate(new Date(),"yyMMdd") + planNo); } else if (inData.getFunctionType().equals("B")) { - inData.setPlanID("WB" + planId); + List params = new ArrayList<>(); + params.add("*"); + params.add("workPlanForMaintenanceNo"); + params.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params.add("-127"); + List> resultList = procedureDao.getProcedureData("getWorkPlanNo", params); + Map resultMap = resultList.get(0); + String planNo = String.valueOf(resultMap.get("serial_no")); + inData.setPlanID("WB" + DateUtil.getStringDate(new Date(),"yyMMdd") + planNo); } // 新增点检计划 eamMapper.saveWorkPlan(inData); @@ -1137,7 +1154,6 @@ public class EamServiceImpl implements EamService { public void createEamWorkOrder(EamWorkPlanInData inData){ Calendar calendar = Calendar.getInstance(); for (int i = 0; i < inData.getObjectList().size(); i++) { - String OrderNoHeader = ""; Date orderDate; Date endDate; inData.setObjectID(inData.getObjectList().get(i).getObjectID()); @@ -1152,16 +1168,30 @@ public class EamServiceImpl implements EamService { throw new RuntimeException("该计划状态不是已计划,请刷新数据!"); } // 开始保存 - if (inData.getFunctionType().equals("A")) { - OrderNoHeader = "D"; - } else if (inData.getFunctionType().equals("B")) { - OrderNoHeader = "W"; - } + if (planData.getPlanPeriod() == 0) { // 点检频率为0 // 获得工单号 - String no = eamMapper.queryPlanOrderNo(inData); - String orderNo = OrderNoHeader + no; - planData.setOrderNo(orderNo); + if (inData.getFunctionType().equals("A")) { + List params = new ArrayList<>(); + params.add("*"); + params.add("workOrderForCheckNo"); + params.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params.add("-128"); + List> resultList = procedureDao.getProcedureData("getWorkOrderNo", params); + Map resultMap = resultList.get(0); + String orderNo = String.valueOf(resultMap.get("serial_no")); + planData.setOrderNo("D" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); + } else if (inData.getFunctionType().equals("B")) { + List params = new ArrayList<>(); + params.add("*"); + params.add("workOrderForMaintenanceNo"); + params.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params.add("-129"); + List> resultList = procedureDao.getProcedureData("getWorkOrderNo", params); + Map resultMap = resultList.get(0); + String orderNo = String.valueOf(resultMap.get("serial_no")); + planData.setOrderNo("W" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); + } // 新增工单 eamMapper.insertWorkOrder(planData); } else { // 频率不为0 @@ -1173,13 +1203,31 @@ public class EamServiceImpl implements EamService { calendar.setTime(orderDate); int day = calendar.get(Calendar.DAY_OF_MONTH); // 如果是按月排单且选中的日期为28号以上 - if (planData.getPlanCycle().equals("月") && day > 28){ - if (day <= 30){ - while (compareTo <= 0){ // 不超过结束日期时 + if (planData.getPlanCycle().equals("月") && day > 28) { + if (day <= 30) { + while (compareTo <= 0) { // 不超过结束日期时 // 获得工单号 - String no = eamMapper.queryPlanOrderNo(inData); - String orderNo = OrderNoHeader + no; - planData.setOrderNo(orderNo); + if (inData.getFunctionType().equals("A")) { + List params = new ArrayList<>(); + params.add("*"); + params.add("workOrderForCheckNo"); + params.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params.add("-128"); + List> resultList = procedureDao.getProcedureData("getWorkOrderNo", params); + Map resultMap = resultList.get(0); + String orderNo = String.valueOf(resultMap.get("serial_no")); + planData.setOrderNo("D" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); + } else if (inData.getFunctionType().equals("B")) { + List params = new ArrayList<>(); + params.add("*"); + params.add("workOrderForMaintenanceNo"); + params.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params.add("-129"); + List> resultList = procedureDao.getProcedureData("getWorkOrderNo", params); + Map resultMap = resultList.get(0); + String orderNo = String.valueOf(resultMap.get("serial_no")); + planData.setOrderNo("W" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); + } // 新增工单 eamMapper.forInsertWorkOrder(planData); // 设置下一次的工单日期 @@ -1220,9 +1268,27 @@ public class EamServiceImpl implements EamService { // 如果日期为31号 while (compareTo <= 0) { // 获得工单号 - String no = eamMapper.queryPlanOrderNo(inData); - String orderNo = OrderNoHeader + no; - planData.setOrderNo(orderNo); + if (inData.getFunctionType().equals("A")) { + List params = new ArrayList<>(); + params.add("*"); + params.add("workOrderForCheckNo"); + params.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params.add("-128"); + List> resultList = procedureDao.getProcedureData("getWorkOrderNo", params); + Map resultMap = resultList.get(0); + String orderNo = String.valueOf(resultMap.get("serial_no")); + planData.setOrderNo("D" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); + } else if (inData.getFunctionType().equals("B")) { + List params = new ArrayList<>(); + params.add("*"); + params.add("workOrderForMaintenanceNo"); + params.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params.add("-129"); + List> resultList = procedureDao.getProcedureData("getWorkOrderNo", params); + Map resultMap = resultList.get(0); + String orderNo = String.valueOf(resultMap.get("serial_no")); + planData.setOrderNo("W" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); + } // 新增工单 eamMapper.forInsertWorkOrder(planData); // 设置下一次的工单日期 @@ -1279,9 +1345,27 @@ public class EamServiceImpl implements EamService { // 其他情况 while (compareTo <= 0){ // 获得工单号 - String no = eamMapper.queryPlanOrderNo(inData); - String orderNo = OrderNoHeader + no; - planData.setOrderNo(orderNo); + if (inData.getFunctionType().equals("A")) { + List params = new ArrayList<>(); + params.add("*"); + params.add("workOrderForCheckNo"); + params.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params.add("-128"); + List> resultList = procedureDao.getProcedureData("getWorkOrderNo", params); + Map resultMap = resultList.get(0); + String orderNo = String.valueOf(resultMap.get("serial_no")); + planData.setOrderNo("D" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); + } else if (inData.getFunctionType().equals("B")) { + List params = new ArrayList<>(); + params.add("*"); + params.add("workOrderForMaintenanceNo"); + params.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params.add("-129"); + List> resultList = procedureDao.getProcedureData("getWorkOrderNo", params); + Map resultMap = resultList.get(0); + String orderNo = String.valueOf(resultMap.get("serial_no")); + planData.setOrderNo("W" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); + } // 新增工单 eamMapper.forInsertWorkOrder(planData); // 设置下一次的工单日期 @@ -1608,19 +1692,30 @@ public class EamServiceImpl implements EamService { EamDefectFeedBackData searchData = new EamDefectFeedBackData(); searchData.setSite(inData.getSite()); // 获取任务号记录数 - // 验证信息参数集合 +// // 验证信息参数集合 +// List params = new ArrayList<>(); +// params.add(inData.getSite()); +// params.add(inData.getBuNo()); +// params.add("eam_feedBackId"); +// params.add("feedBackId"); +// params.add("-124"); +// // 校验任务号 +// List> resultList = procedureDao.getProcedureData("getFeedBackSerialNo", params); +// Map resultMap = resultList.get(0); +// String serialNo = String.valueOf(resultMap.get("serial_no")); +// String batchNo = "FB" + serialNo; + // 获得计划编码 List params = new ArrayList<>(); - params.add(inData.getSite()); - params.add(inData.getBuNo()); - params.add("eam_feedBackId"); - params.add("feedBackId"); - params.add("-124"); - // 校验任务号 - List> resultList = procedureDao.getProcedureData("getFeedBackSerialNo", params); + params.add("*"); + params.add("workPlanForFeedBackNo"); + params.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params.add("-130"); + List> resultList = procedureDao.getProcedureData("getWorkPlanNo", params); Map resultMap = resultList.get(0); - String serialNo = String.valueOf(resultMap.get("serial_no")); - String batchNo = "FB" + serialNo; + String planNo = String.valueOf(resultMap.get("serial_no")); + String batchNo = "FB" + DateUtil.getStringDate(new Date(),"yyMMdd") + planNo; searchData.setFeedBackID(batchNo); + List FeedIdData = eamMapper.getEamGzData(searchData); if (!FeedIdData.isEmpty()) { throw new RuntimeException("该任务号已存在,请刷新页面后再试!"); @@ -1647,7 +1742,15 @@ public class EamServiceImpl implements EamService { // 修改反馈状态为已下达 eamMapper.updateDefectFeedBackStatus(feedBackData); // 获取orderNo - String orderNo = eamMapper.getOrderNo(inData); +// String orderNo = eamMapper.getOrderNo(inData); + List params2 = new ArrayList<>(); + params2.add("*"); + params2.add("workOrderForFeedBackNo"); + params2.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params2.add("-131"); + List> resultList2 = procedureDao.getProcedureData("getWorkOrderNo", params2); + Map resultMap2 = resultList2.get(0); + String orderNo = "F" + DateUtil.getStringDate(new Date(),"yyMMdd") + resultMap2.get("serial_no"); feedBackData.setOrderNo(orderNo); // 创建维修工单 eamMapper.saveWorkOrder(feedBackData); @@ -1674,8 +1777,8 @@ public class EamServiceImpl implements EamService { String content = feedBackData.getObjectID() + "-" + deptData.get(0).getObjectDesc() + " 在 " + deptData.get(0).getLocationName() + " 发生了 " + feedBackData.getFeedBackDesc() +" 故障,请及时处理!【齐克庞德】"; try { // 发送短信 - int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", mobile, content, ""); - //int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", "13592510225", content, ""); + //int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", mobile, content, ""); + int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", "13592510225", content, ""); if (code <= 0) { throw new RuntimeException("短信发送失败,code = " + code + " !"); } @@ -1721,6 +1824,16 @@ public class EamServiceImpl implements EamService { inData.setPlanOperatorName(oldDate.getPlanOperatorName()); inData.setChecker(oldDate.getChecker()); inData.setCheckerName(oldDate.getCheckerName()); + // 获取工单号 + List params = new ArrayList<>(); + params.add("*"); + params.add("workOrderForMaintenanceNo"); + params.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params.add("-129"); + List> resultList = procedureDao.getProcedureData("getWorkOrderNo", params); + Map resultMap = resultList.get(0); + String orderNo = String.valueOf(resultMap.get("serial_no")); + inData.setOrderNo("W" + DateUtil.getStringDate(new Date(),"yyMMdd") + orderNo); // 创建新工单 eamMapper.saveMaintenanceWorkOrder(inData); } @@ -1790,7 +1903,15 @@ public class EamServiceImpl implements EamService { // 如果维修失败则重新生成工单 if ("维修失败".equals(inData.getResult())) { // 获取工单号 - String orderNo = eamMapper.getOrderNo(inData); +// String orderNo = eamMapper.getOrderNo(inData); + List params2 = new ArrayList<>(); + params2.add("*"); + params2.add("workOrderForFeedBackNo"); + params2.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params2.add("-131"); + List> resultList2 = procedureDao.getProcedureData("getWorkOrderNo", params2); + Map resultMap2 = resultList2.get(0); + String orderNo = "F" + DateUtil.getStringDate(new Date(),"yyMMdd") + resultMap2.get("serial_no"); inData.setOrderNo(orderNo); inData.setDocumentSource("设备维修"); // 创建工单 @@ -1826,8 +1947,8 @@ public class EamServiceImpl implements EamService { String content = feedBackData.getObjectID() + "-" + deptData.get(0).getObjectDesc() + " 在 " + deptData.get(0).getLocationName() + " 发生了 " + feedBackData.getFeedBackDesc() +" 故障,请及时处理!【齐克庞德】"; try { // 发送短信 - int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", mobile, content, ""); - //int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", "13592510225", content, ""); + //int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", mobile, content, ""); + int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", "13592510225", content, ""); if (code <= 0) { throw new RuntimeException("短信发送失败,code = " + code + " !"); } @@ -2559,21 +2680,32 @@ public class EamServiceImpl implements EamService { searchData.setBuNo(inData.getBuNo()); searchData.setFeedBackID(inData.getFeedBackID()); // 获取任务号记录数 - // 验证信息参数集合 +// // 验证信息参数集合 +// List params = new ArrayList<>(); +// params.add(inData.getSite()); +// params.add(inData.getBuNo()); +// params.add("eam_feedBackId"); +// params.add("feedBackId"); +// params.add("-124"); +// List> resultList = procedureDao.getProcedureData("getFeedBackSerialNo", params); +// // 修改任务号+1 +// // batchDao.updateBatchSerialNumber(inData.getSite(),"-124","eam_feedBackId","feedBackId"); +// Map resultMap = resultList.get(0); +// String serialNo = String.valueOf(resultMap.get("serial_no")); +// String batchNo = "FB" + serialNo; + // 获得计划编码 List params = new ArrayList<>(); - params.add(inData.getSite()); - params.add(inData.getBuNo()); - params.add("eam_feedBackId"); - params.add("feedBackId"); - params.add("-124"); - List> resultList = procedureDao.getProcedureData("getFeedBackSerialNo", params); - // 修改任务号+1 - // batchDao.updateBatchSerialNumber(inData.getSite(),"-124","eam_feedBackId","feedBackId"); + params.add("*"); + params.add("workPlanForFeedBackNo"); + params.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params.add("-130"); + List> resultList = procedureDao.getProcedureData("getWorkPlanNo", params); Map resultMap = resultList.get(0); - String serialNo = String.valueOf(resultMap.get("serial_no")); - String batchNo = "FB" + serialNo; + String planNo = String.valueOf(resultMap.get("serial_no")); + String batchNo = "FB" + DateUtil.getStringDate(new Date(),"yyMMdd") + planNo; inData.setFeedBackID(batchNo); searchData.setFeedBackID(batchNo); + List FeedIdData = eamMapper.getEamGzData(searchData); if (!FeedIdData.isEmpty()) { throw new RuntimeException("该任务号已存在,请刷新页面后再试!"); @@ -2602,7 +2734,15 @@ public class EamServiceImpl implements EamService { data.setSite(inData.getSite()); data.setBuNo(inData.getBuNo()); data.setFunctionType("C"); - String orderNo = eamMapper.getOrderNo(data); +// String orderNo = eamMapper.getOrderNo(data); + List params2 = new ArrayList<>(); + params2.add("*"); + params2.add("workOrderForFeedBackNo"); + params2.add(DateUtil.getStringDate(new Date(),"yyMMdd")); + params2.add("-131"); + List> resultList2 = procedureDao.getProcedureData("getWorkOrderNo", params2); + Map resultMap2 = resultList2.get(0); + String orderNo = "F" + DateUtil.getStringDate(new Date(),"yyMMdd") + resultMap2.get("serial_no"); inData.setOrderNo(orderNo); inData.setDocumentSource("设备维修"); // 创建维修工单 @@ -2617,7 +2757,7 @@ public class EamServiceImpl implements EamService { if (!phoneList.isEmpty()) { StringBuilder phoneNumber = new StringBuilder(); // 拼接所有人员的手机号/姓名 - for (EamObjectAdminData data : phoneList){ + for (EamObjectAdminData data : phoneList) { if(StringUtils.isNotBlank(data.getPhone())){ phoneNumber.append(data.getPhone()).append(","); } @@ -2630,8 +2770,8 @@ public class EamServiceImpl implements EamService { String content = inData.getObjectID() + "-" + deptData.get(0).getObjectDesc() + " 在 " + deptData.get(0).getLocationName() + " 发生了 " + inData.getFeedBackDesc() +" 故障,请及时处理!【齐克庞德】"; try { // 发送短信 - int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", mobile, content, ""); - //int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", "13592510225", content, ""); + //int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", mobile, content, ""); + int code = SendMessageUtils.sendSMSGet("LKSDK0007685", "554958", "13592510225", content, ""); if (code <= 0) { throw new RuntimeException("短信发送失败,code = " + code + " !"); } @@ -2653,7 +2793,7 @@ public class EamServiceImpl implements EamService { } eamMapper.saveMessageRecord(recordData); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } diff --git a/src/main/resources/mapper/pms/EamMapper.xml b/src/main/resources/mapper/pms/EamMapper.xml index 3ea3e999..b533a931 100644 --- a/src/main/resources/mapper/pms/EamMapper.xml +++ b/src/main/resources/mapper/pms/EamMapper.xml @@ -1851,8 +1851,7 @@ INSERT INTO eam_workOrder (Site, bu_no, OrderNo, PlanID, PlanDesc, PropertiesCode, ObjectID, Status, PlanOperator, PlanDate, FunctionType, CreateDate, CreateBy, checker, PlanOperatorName, checkerName) - VALUES (#{site}, #{buNo}, (select 'W' + Right( '0000000000'+ convert(VARCHAR(10),isnull(max(convert(INT,SUBSTRING(OrderNo,3,10))),0)+1),8) from eam_workOrder where site = #{site} and FunctionType = 'B' and bu_no = #{buNo}), - #{planID}, #{planDesc}, #{propertiesCode}, #{objectID}, '未开工', #{planOperator}, Dateadd(dd, Datediff(dd,0,Getdate()), 0), #{functionType}, getDate(), #{createBy}, #{checker}, #{planOperatorName}, #{checkerName}) + VALUES (#{site}, #{buNo}, #{orderNo}, #{planID}, #{planDesc}, #{propertiesCode}, #{objectID}, '未开工', #{planOperator}, Dateadd(dd, Datediff(dd,0,Getdate()), 0), #{functionType}, getDate(), #{createBy}, #{checker}, #{planOperatorName}, #{checkerName}) @@ -2417,7 +2416,7 @@ FROM Access_dept as edd LEFT JOIN sys_user ed on edd.username = ed.username and edd.site in (select site from eam_access_site where username = ed.username) and (edd.site + '-' + edd.bu_no) in (select * from dbo.query_bu(ed.username)) - WHERE edd.site = #{site} and edd.department_id = #{deptId} and edd.bu_no = #{buNo} + WHERE edd.site = #{site} and edd.department_id = #{deptId} and edd.bu_no = #{buNo} and ed.mobile is not null