|
|
@ -1,5 +1,6 @@
|
|
|
|
package com.op.device.service.impl;
|
|
|
|
package com.op.device.service.impl;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
|
import com.op.common.core.context.SecurityContextHolder;
|
|
|
|
import com.op.common.core.context.SecurityContextHolder;
|
|
|
|
import com.op.common.core.domain.BaseFileData;
|
|
|
|
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.domain.dto.PDADTO;
|
|
|
|
import com.op.device.mapper.*;
|
|
|
|
import com.op.device.mapper.*;
|
|
|
|
import com.op.device.service.IDevicePDAService;
|
|
|
|
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.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.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
@ -30,6 +36,9 @@ import java.time.LocalDateTime;
|
|
|
|
import java.time.ZoneId;
|
|
|
|
import java.time.ZoneId;
|
|
|
|
import java.time.temporal.ChronoUnit;
|
|
|
|
import java.time.temporal.ChronoUnit;
|
|
|
|
import java.util.*;
|
|
|
|
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.error;
|
|
|
|
import static com.op.common.core.web.domain.AjaxResult.success;
|
|
|
|
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
|
|
|
|
@Service
|
|
|
|
public class DevicePDAServiceImpl implements IDevicePDAService {
|
|
|
|
public class DevicePDAServiceImpl implements IDevicePDAService {
|
|
|
|
|
|
|
|
protected Logger logger = LoggerFactory.getLogger(getClass());
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private EquOrderMapper equOrderMapper;
|
|
|
|
private EquOrderMapper equOrderMapper;
|
|
|
@ -89,6 +99,9 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private EquOperationMapper equOperationMapper;
|
|
|
|
private EquOperationMapper equOperationMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private RemoteOpenService remoteOpenService;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 获取今日任务工单list-状态不为已完成
|
|
|
|
* 获取今日任务工单list-状态不为已完成
|
|
|
|
*
|
|
|
|
*
|
|
|
@ -459,11 +472,16 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
|
|
|
|
@DS("#header.poolName")
|
|
|
|
@DS("#header.poolName")
|
|
|
|
public AjaxResult addRepairRecord(EquRepairOrder equRepairOrder) {
|
|
|
|
public AjaxResult addRepairRecord(EquRepairOrder equRepairOrder) {
|
|
|
|
try {
|
|
|
|
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();
|
|
|
|
String id = IdUtils.fastSimpleUUID();
|
|
|
|
equRepairOrder.setOrderId(id);
|
|
|
|
equRepairOrder.setOrderId(id);
|
|
|
|
// 新增 是需要获取故障报修流水号
|
|
|
|
//获取故障报修流水号
|
|
|
|
String serialNum = String.format("%03d", equRepairOrderMapper.selectOrderCodeSerialNumber());
|
|
|
|
String serialNum = String.format("%03d", equRepairOrderMapper.selectOrderCodeSerialNumber());
|
|
|
|
String equipmentCode = equRepairOrder.getEquipmentCode();
|
|
|
|
String equipmentCode = equRepairOrder.getEquipmentCode();
|
|
|
|
//报修单号
|
|
|
|
//报修单号
|
|
|
@ -498,6 +516,78 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
|
|
|
|
equRepairOrderMapper.insertBaseFileBatch(files);
|
|
|
|
equRepairOrderMapper.insertBaseFileBatch(files);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//PDA企业微信报修审核提醒
|
|
|
|
|
|
|
|
//发企业微信--------------------开始(跟班组有关)
|
|
|
|
|
|
|
|
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); //规范时间格式
|
|
|
|
|
|
|
|
SysNoticeGroup noticeQo = new SysNoticeGroup();
|
|
|
|
|
|
|
|
//id写死了?
|
|
|
|
|
|
|
|
noticeQo.setNoticeId(10L);
|
|
|
|
|
|
|
|
List<SysNoticeGroup> notices = equRepairOrderMapper.getNoticesGroup(noticeQo);
|
|
|
|
|
|
|
|
if(!CollectionUtils.isEmpty(notices)) {
|
|
|
|
|
|
|
|
List<WechartDTO> wecharts = new ArrayList<>();
|
|
|
|
|
|
|
|
List<String> 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("新增报修记录成功!");
|
|
|
|
return success("新增报修记录成功!");
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
return error();
|
|
|
|
return error();
|
|
|
|