diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java index 3add5def..86cc4afb 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java @@ -249,13 +249,10 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { @Override @DS("#header.poolName") public int checkEquRepairOrder(EquRepairOrder equRepairOrder) { - //不生成流水号,从报修单号第十位开始切割、拼接 - String code = equRepairOrder.getOrderCode().substring(10); + String code = equRepairOrder.getOrderCode().substring(10); //不生成流水号,从报修单号第十位开始切割、拼接 String workCode = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + code; - //判断是否是点检、巡检过来的 - if (equRepairOrder.getOrderSource().equals("点检") || equRepairOrder.getOrderSource().equals("巡检")) { - //更新检查项信息 - EquOrder equOrder = new EquOrder(); + if (equRepairOrder.getOrderSource().equals("点检") || equRepairOrder.getOrderSource().equals("巡检")) { //判断是否是点检、巡检过来的 + EquOrder equOrder = new EquOrder(); //更新检查项信息 List ids = equOrderMapper.getIdsByOrderCode(equRepairOrder.getOrderCode()); for (String id : ids) { EquOrder one = new EquOrder(); @@ -269,148 +266,230 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { if (equRepairOrder.getRepairDestination().equals("计划性维修")) { EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); - //报修单号 - equRepairWorkOrder.setOrderCode(equRepairOrder.getOrderCode()); - //维修单号 - equRepairWorkOrder.setWorkCode("WX" + workCode); - //报修id - equRepairWorkOrder.setOrderId(equRepairOrder.getOrderId()); - //设备编号 - equRepairWorkOrder.setEquipmentCode(equRepairOrder.getEquipmentCode()); - //维修组 - equRepairWorkOrder.setWorkTeam(equRepairOrder.getWorkTeam()); - //不委外 - equRepairWorkOrder.setWorkOutsource("0"); - //无委外单号 - equRepairWorkOrder.setOutWorkCode("无"); - //是否立即维修 1是 0 否 - equRepairWorkOrder.setWorkHandle("0"); - //计划维修时间 - equRepairWorkOrder.setWorkPlanTime(equRepairOrder.getWorkPlanTime()); - //是否停机维修 停机维修时间 - if (equRepairOrder.getWorkPlanDownTime() != null) { + equRepairWorkOrder.setOrderCode(equRepairOrder.getOrderCode()); //报修单号 + equRepairWorkOrder.setWorkCode("WX" + workCode); //维修单号 + equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID()); + equRepairWorkOrder.setOrderId(equRepairOrder.getOrderId()); //报修id + equRepairWorkOrder.setEquipmentCode(equRepairOrder.getEquipmentCode()); //设备编号 + equRepairWorkOrder.setWorkTeam(equRepairOrder.getWorkTeam()); //维修组 + equRepairWorkOrder.setWorkOutsource("0"); //不委外 + equRepairWorkOrder.setOutWorkCode("无"); //无委外单号 + equRepairWorkOrder.setWorkHandle("0"); //是否立即维修 1是 0 否 + equRepairWorkOrder.setWorkPlanTime(equRepairOrder.getWorkPlanTime()); //计划维修时间 + if (equRepairOrder.getWorkPlanDownTime() != null) { //是否停机维修 停机维修时间 equRepairWorkOrder.setWorkDownMachine("1"); equRepairWorkOrder.setWorkPlanDownTime(equRepairOrder.getWorkPlanDownTime()); } else { equRepairWorkOrder.setWorkDownMachine("0"); } - //故障描述???? - equRepairWorkOrder.setWorkFaultDesc(equRepairOrder.getOrderDesc()); - //维修状态 待维修 - equRepairWorkOrder.setWorkStatus("0"); - equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID()); + equRepairWorkOrder.setWorkFaultDesc(equRepairOrder.getOrderDesc()); //故障描述 + equRepairWorkOrder.setWorkStatus("0"); //维修状态 待维修 equRepairWorkOrder.setCreateTime(DateUtils.getNowDate()); equRepairWorkOrder.setCreateBy(SecurityUtils.getUsername()); - //工厂 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; equRepairWorkOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); + + ////更新维修单 equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder); - equRepairOrder.setOrderStatus("审核通过"); ////更新设备状态 EquEquipment equEquipment = new EquEquipment(); equEquipment.setEquipmentCode(equRepairOrder.getEquipmentCode()); - //0 故障 - equEquipment.setEquipmentStatus("0"); + equEquipment.setEquipmentStatus("0"); //0 故障 equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); + ////审核结果 + equRepairOrder.setOrderStatus("审核通过"); + + ////发送微信通知 + AjaxResult repairSendWeChatResult = repairSendWeChat(equRepairWorkOrder); } else if (equRepairOrder.getRepairDestination().equals("不维修")) { equRepairOrder.setOrderStatus("驳回"); - } else if (equRepairOrder.getRepairDestination().equals("委外维修")) { EquOutsourceWork equOutsourceWork = new EquOutsourceWork(); - //id - equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID()); - //报修单号 - equOutsourceWork.setOrderCode(equRepairOrder.getOrderCode()); - //设备编码 - equOutsourceWork.setEquipmentCode(equRepairOrder.getEquipmentCode()); - //委外工单号 - equOutsourceWork.setWorkCode("WW" + workCode); - //维修工单号 - equOutsourceWork.setRepairCode("无"); - //委外联系方式 - equOutsourceWork.setWorkConnection(equRepairOrder.getWorkConnection()); - //委外单位 - equOutsourceWork.setWorkOutsourcingUnit(equRepairOrder.getWorkOutsourcingUnit()); - //委外人员 - equOutsourceWork.setWorkPerson(equRepairOrder.getOutSourcePerson()); - //委外原因 - equOutsourceWork.setWorkReason(equRepairOrder.getOutSourceReason()); - //委外类型 维修委外 - equOutsourceWork.setWorkType("0"); + equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID()); //id + equOutsourceWork.setOrderCode(equRepairOrder.getOrderCode()); //报修单号 + equOutsourceWork.setEquipmentCode(equRepairOrder.getEquipmentCode()); //设备编码 + equOutsourceWork.setWorkCode("WW" + workCode); //委外工单号 + equOutsourceWork.setRepairCode("无"); //维修工单号 + equOutsourceWork.setWorkConnection(equRepairOrder.getWorkConnection()); //委外联系方式 + equOutsourceWork.setWorkOutsourcingUnit(equRepairOrder.getWorkOutsourcingUnit()); //委外单位 + equOutsourceWork.setWorkPerson(equRepairOrder.getOutSourcePerson()); //委外人员 + equOutsourceWork.setWorkReason(equRepairOrder.getOutSourceReason()); //委外原因 + equOutsourceWork.setWorkType("0"); //委外类型 维修委外 equOutsourceWork.setCreateBy(SecurityUtils.getUsername()); equOutsourceWork.setCreateTime(DateUtils.getNowDate()); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; - //工厂号 equOutsourceWork.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); + ////更新委外列表 equOutsourceWorkMapper.insertEquOutsourceWork(equOutsourceWork); - equRepairOrder.setOrderStatus("审核通过"); ////更新设备状态 EquEquipment equEquipment = new EquEquipment(); equEquipment.setEquipmentCode(equRepairOrder.getEquipmentCode()); - //0 故障 - equEquipment.setEquipmentStatus("0"); + equEquipment.setEquipmentStatus("0"); //0 故障 equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); + equRepairOrder.setOrderStatus("审核通过"); } else if (equRepairOrder.getRepairDestination().equals("立即维修")) { EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); - //维修工单id - equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID()); - //报修单号 - equRepairWorkOrder.setOrderCode(equRepairOrder.getOrderCode()); - //维修单号 - equRepairWorkOrder.setWorkCode("WX" + workCode); - //orderId - equRepairWorkOrder.setOrderId(equRepairOrder.getOrderId()); - //设备编码 - equRepairWorkOrder.setEquipmentCode(equRepairOrder.getEquipmentCode()); - //维修组 - equRepairWorkOrder.setWorkTeam(equRepairOrder.getWorkTeam()); - //不委外 - equRepairWorkOrder.setWorkOutsource("0"); - //无委外工单号 - equRepairWorkOrder.setOutWorkCode("无"); - //是否立即维修 1是 0 否 - equRepairWorkOrder.setWorkHandle("0"); - //计划维修时间 - equRepairWorkOrder.setWorkPlanTime(equRepairOrder.getWorkPlanTime()); - //是否停机维修 停机维修时间 - if (equRepairOrder.getWorkPlanDownTime() != null) { + equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID()); //维修工单id + equRepairWorkOrder.setOrderId(equRepairOrder.getOrderId()); //报修Id + equRepairWorkOrder.setOrderCode(equRepairOrder.getOrderCode()); //报修单号 + equRepairWorkOrder.setWorkCode("WX" + workCode); //维修单号 + equRepairWorkOrder.setEquipmentCode(equRepairOrder.getEquipmentCode()); //设备编码 + equRepairWorkOrder.setWorkTeam(equRepairOrder.getWorkTeam()); //维修组 + equRepairWorkOrder.setWorkOutsource("0"); //不委外 + equRepairWorkOrder.setOutWorkCode("无"); //无委外工单号 + equRepairWorkOrder.setWorkHandle("1"); //是否立即维修 1是 0 否 + equRepairWorkOrder.setWorkPlanTime(equRepairOrder.getWorkPlanTime()); //计划维修时间 + if (equRepairOrder.getWorkPlanDownTime() != null) { //是否停机维修 停机维修时间 equRepairWorkOrder.setWorkDownMachine("1"); equRepairWorkOrder.setWorkPlanDownTime(equRepairOrder.getWorkPlanDownTime()); } else { equRepairWorkOrder.setWorkDownMachine("0"); } - //故障描述 + equRepairWorkOrder.setWorkFaultDesc(equRepairOrder.getOrderDesc()); - //工单状态 待维修 - equRepairWorkOrder.setWorkStatus("0"); + equRepairWorkOrder.setWorkStatus("0"); //工单状态 待维修 equRepairWorkOrder.setCreateTime(DateUtils.getNowDate()); equRepairWorkOrder.setCreateBy(SecurityUtils.getUsername()); - //工厂 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; equRepairWorkOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder); + + ////审核结果 equRepairOrder.setOrderStatus("审核通过"); ////更新设备状态 EquEquipment equEquipment = new EquEquipment(); equEquipment.setEquipmentCode(equRepairOrder.getEquipmentCode()); - //0 故障 - equEquipment.setEquipmentStatus("0"); + equEquipment.setEquipmentStatus("0"); //0故障 equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); + AjaxResult repairSendWeChatResult = repairSendWeChat(equRepairWorkOrder); } equRepairOrder.setUpdateTime(DateUtils.getNowDate()); equRepairOrder.setUpdateBy(SecurityUtils.getUsername()); return equRepairOrderMapper.updateEquRepairOrder(equRepairOrder); } + /** + * 维修时发送企业微信 + */ + public AjaxResult repairSendWeChat(EquRepairWorkOrder equRepairWorkOrder) { + ////企业微信维修提醒 + //发企业微信--------------------开始(跟班组有关) + SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); //规范时间格式 + SysNoticeGroup noticeQo = new SysNoticeGroup(); + noticeQo.setNoticeId(11L); //id写死了? + List notices = equRepairOrderMapper.getNoticesGroup(noticeQo); + if(!CollectionUtils.isEmpty(notices)) { + List wecharts = new ArrayList<>(); + List userCodes = notices.stream() + .map(SysNoticeGroup::getUserCode) + .collect(Collectors.toList()); + for (SysNoticeGroup noticeDto : notices) { + WechartDTO wechart0 = new WechartDTO(); + wechart0.setUserId(noticeDto.getWxId()); + String contentInfo = noticeDto.getNoticeContent(); + ////判断是立即维修还是计划性维修 + String workHandle = ""; + if(equRepairWorkOrder.getWorkHandle().equals("1")){ + workHandle = "立即维修"; + }else{ + workHandle = "计划性维修"; + } + ////判断是否需要停机维修 + String workDownMachine = ""; + if(equRepairWorkOrder.getWorkDownMachine().equals("1")){ + workDownMachine = "停机"; + }else{ + workDownMachine = "不停机"; + } + //在前端填的时候,需要判空!!!!!! + contentInfo = contentInfo + .replace("${message}", "\n") + .replace("${equipmentCode}", equRepairWorkOrder.getEquipmentCode()+"\n") + .replace("${workCode}", equRepairWorkOrder.getWorkCode()+"\n") + .replace("${workHandle}", workHandle+"\n"); + //故障描述 + if(StringUtils.isNotEmpty(equRepairWorkOrder.getWorkFaultDesc())){ + contentInfo = contentInfo.replace("${workFaultDesc}", equRepairWorkOrder.getWorkFaultDesc()+"\n"); + }else{ + contentInfo = contentInfo.replace("${workFaultDesc}", "无"+"\n"); + } + + //维修组 + if(StringUtils.isNotEmpty(equRepairWorkOrder.getWorkTeam())){ + contentInfo = contentInfo.replace("${workTeam}", equRepairWorkOrder.getWorkTeam()+"\n"); + }else{ + contentInfo = contentInfo.replace("${workTeam}", "无"+"\n"); + } + + //计划停机维修时间 + if(equRepairWorkOrder.getWorkPlanTime() != null){ + contentInfo = contentInfo.replace("${workPlanTime}", myFmt.format(equRepairWorkOrder.getWorkPlanTime())+"\n"); + }else{ + contentInfo = contentInfo.replace("${workPlanTime}", "无"+"\n"); + } + + //计划停机维修时间 + if(equRepairWorkOrder.getWorkPlanDownTime() != null){ + contentInfo = contentInfo.replace("${workPlanDownTime}", myFmt.format(equRepairWorkOrder.getWorkPlanDownTime())+"\n"); + }else{ + contentInfo = contentInfo.replace("${workPlanDownTime}", "无"+"\n"); + } + + //是否停机 + if(StringUtils.isNotEmpty(workDownMachine)){ + contentInfo = contentInfo.replace("${workDownMachine}", workDownMachine+"\n"); + }else{ + contentInfo = contentInfo.replace("${workDownMachine}", "无"+"\n"); + } + + //查询设备相关信息 + //设备名称 + EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equRepairWorkOrder.getEquipmentCode()); + if(StringUtils.isNotEmpty(equ.getEquipmentName())){ + contentInfo = contentInfo.replace("${equipmentName}", equ.getEquipmentName()+"\n"); + }else{ + contentInfo = contentInfo.replace("${equipmentName}", "无"+"\n"); + } + + //设备位置 + if(StringUtils.isNotEmpty(equ.getEquipmentLocation())){ + contentInfo = contentInfo.replace("${equipmentLocation}", equ.getEquipmentLocation()+"\n"); + }else{ + contentInfo = contentInfo.replace("${equipmentLocation}", "无"+"\n"); + } + + //替换标签 + Pattern p= Pattern.compile("<[^>]+>"); + Matcher m = p.matcher(contentInfo); + contentInfo = m.replaceAll(""); + System.out.println(contentInfo); + + wechart0.setText(contentInfo); + wecharts.add(wechart0); + } + logger.info("报修审核后企业微信提醒维修请求:" + JSONObject.toJSONString(wecharts)); + if (!CollectionUtils.isEmpty(wecharts)) { + new Thread(() -> { + AjaxResult wxresult = remoteOpenService.sendWeChartMessage(wecharts); + logger.info("报修审核后企业微信提醒结果(下一步开始维修):" + JSONObject.toJSONString(wxresult)); + }).start(); + + } + //发企业微信--------------------结束 + } + return success("报修审核后,企业微信发送维修信息成功!"); + } + + /** * 修改故障报修 *