diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 166d57bc6..c57a768bf 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -1,5 +1,6 @@ package com.op.device.service.impl; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.context.SecurityContextHolder; import com.op.common.core.domain.BaseFileData; @@ -12,7 +13,12 @@ import com.op.device.domain.*; import com.op.device.domain.dto.PDADTO; import com.op.device.mapper.*; import com.op.device.service.IDevicePDAService; +import com.op.system.api.RemoteOpenService; +import com.op.system.api.domain.SysNoticeGroup; import com.op.system.api.domain.SysUser; +import com.op.system.api.domain.dto.WechartDTO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -30,6 +36,9 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.time.temporal.ChronoUnit; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; import static com.op.common.core.web.domain.AjaxResult.error; import static com.op.common.core.web.domain.AjaxResult.success; @@ -42,6 +51,7 @@ import static com.op.common.core.web.domain.AjaxResult.success; */ @Service public class DevicePDAServiceImpl implements IDevicePDAService { + protected Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private EquOrderMapper equOrderMapper; @@ -89,6 +99,9 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Autowired private EquOperationMapper equOperationMapper; + @Autowired + private RemoteOpenService remoteOpenService; + /** * 获取今日任务工单list-状态不为已完成 * @@ -459,11 +472,16 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @DS("#header.poolName") public AjaxResult addRepairRecord(EquRepairOrder equRepairOrder) { try { -// equRepairOrder //自动填入联系人 联系方式!!!!! + EquTeamUser equTeamUser = new EquTeamUser(); + equTeamUser.setUserName(SecurityUtils.getUsername()); + EquTeamUser equTeamUser1 = equRepairOrderMapper.getRepairPhoneNumber(equTeamUser); + //人员 + equRepairOrder.setOrderRepairmanName(equTeamUser1.getNickName()); + equRepairOrder.setOrderConnection(equTeamUser1.getPhonenumber()); String id = IdUtils.fastSimpleUUID(); equRepairOrder.setOrderId(id); - // 新增 是需要获取故障报修流水号 + //获取故障报修流水号 String serialNum = String.format("%03d", equRepairOrderMapper.selectOrderCodeSerialNumber()); String equipmentCode = equRepairOrder.getEquipmentCode(); //报修单号 @@ -498,6 +516,78 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equRepairOrderMapper.insertBaseFileBatch(files); } + //PDA企业微信报修审核提醒 + //发企业微信--------------------开始(跟班组有关) + SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); //规范时间格式 + SysNoticeGroup noticeQo = new SysNoticeGroup(); + //id写死了? + noticeQo.setNoticeId(10L); + 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(); + //在前端填的时候,需要判空!!!!!! + contentInfo = contentInfo + .replace("${message}", "\n") + .replace("${equipmentCode}", equRepairOrder.getEquipmentCode()+"\n") + .replace("${orderCode}", equRepairOrder.getOrderCode()+"\n") + .replace("${orderDesc}", equRepairOrder.getOrderDesc()+"\n") + ; + //故障时间 + if(equRepairOrder.getOrderBreakdownTime() != null){ + contentInfo = contentInfo.replace("${orderBreakdownTime}", myFmt.format(equRepairOrder.getOrderBreakdownTime())+"\n"); + }else{ + contentInfo = contentInfo.replace("${orderBreakdownTime}", "无"+"\n"); + } + + //报修人 + if(equRepairOrder.getOrderBreakdownTime() != null){ + contentInfo = contentInfo.replace("${orderRepairmanName}", equRepairOrder.getOrderRepairmanName()+"\n"); + }else{ + contentInfo = contentInfo.replace("${orderRepairmanName}", "无"+"\n"); + } + + //查询设备相关信息 + //设备名称 + EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equRepairOrder.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("PDA端报修企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); + if (!CollectionUtils.isEmpty(wecharts)) { + + new Thread(() -> { + AjaxResult wxresult = remoteOpenService.sendWeChartMessage(wecharts); + logger.info("PDA端报修企业微信提醒结果:" + JSONObject.toJSONString(wxresult)); + + }).start(); + } + //发企业微信--------------------结束 + } + return success("新增报修记录成功!"); } catch (Exception e) { return error();