Merge remote-tracking branch 'origin/master'

master
mengjiao 8 months ago
commit 83c8ea6e34

@ -5,10 +5,7 @@ import org.slf4j.LoggerFactory;
import javax.net.ssl.*;
import java.io.*;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.net.URLConnection;
import java.net.*;
import java.security.cert.X509Certificate;
/**
@ -120,6 +117,30 @@ public class HttpUtils {
return result.toString();
}
public static String sendPostWechart(String requestUrl, String jsonInputString) throws Exception {
URL url = new URL(requestUrl);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json; utf-8");
con.setRequestProperty("Accept", "application/json");
con.setDoOutput(true);
try (OutputStream os = con.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
}
// Handle the response (optional)
try (BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"))) {
StringBuilder response = new StringBuilder();
String responseLine;
while ((responseLine = br.readLine()) != null) {
response.append(responseLine.trim());
}
return response.toString();
}
}
/**
* URL POST
*

@ -8,6 +8,7 @@ import com.op.device.domain.EquEquipment;
import com.op.device.domain.EquFile;
import com.op.device.domain.EquRepairOrder;
import com.op.device.domain.EquTeamUser;
import com.op.system.api.domain.SysNoticeGroup;
import org.apache.ibatis.annotations.Param;
/**
@ -109,4 +110,7 @@ public interface EquRepairOrderMapper {
//联系方式
@DS("master")
EquTeamUser getRepairPhoneNumber(EquTeamUser equTeamUser);
//查询公告绑定的班组
List<SysNoticeGroup> getNoticesGroup(SysNoticeGroup noticeQo);
}

@ -4,7 +4,11 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.domain.BaseFileData;
import com.op.common.core.utils.DateUtils;
@ -14,6 +18,11 @@ import com.op.common.core.web.domain.AjaxResult;
import com.op.common.security.utils.SecurityUtils;
import com.op.device.domain.*;
import com.op.device.mapper.*;
import com.op.system.api.RemoteOpenService;
import com.op.system.api.domain.SysNoticeGroup;
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 com.op.device.service.IEquRepairOrderService;
@ -35,6 +44,8 @@ import static com.op.common.core.web.domain.AjaxResult.success;
*/
@Service
public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
protected Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private EquRepairOrderMapper equRepairOrderMapper;
@ -53,6 +64,9 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
@Autowired
private EquOrderMapper equOrderMapper;
@Autowired
private RemoteOpenService remoteOpenService;
/**
*
*
@ -161,6 +175,67 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
}
equRepairOrderMapper.insertBaseFileBatch(files);
}
//企业微信报修审核提醒
//发企业微信--------------------开始(跟班组有关)
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")
.replace("${orderBreakdownTime}", myFmt.format(equRepairOrder.getOrderBreakdownTime())+"\n")
.replace("${orderRepairmanName}", equRepairOrder.getOrderRepairmanName()+"\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("PC端报修企业微信提醒请求" + JSONObject.toJSONString(wecharts));
if (!CollectionUtils.isEmpty(wecharts)) {
new Thread(() -> {
AjaxResult wxresult = remoteOpenService.sendWeChartMessage(wecharts);
logger.info("PC端报修企业微信提醒结果" + JSONObject.toJSONString(wxresult));
}).start();
}
//发企业微信--------------------结束
}
return equRepairOrderMapper.insertEquRepairOrder(equRepairOrder);
}

@ -342,4 +342,17 @@
where source_id = #{sourceId}
</select>
<select id="getNoticesGroup" resultType="com.op.system.api.domain.SysNoticeGroup">
select sng.notice_id noticeId,
sn.notice_title noticeTitle,
sn.notice_type noticeType,
sn.notice_content noticeContent,
btu.user_name userCode,
btu.wx_id wxId
from sys_notice_group sng
left join sys_notice sn on sng.notice_id = sn.notice_id
left join base_team_user btu on sng.group_code = btu.team_code
where sng.notice_id = #{noticeId}
</select>
</mapper>

@ -6,22 +6,22 @@ server:
spring:
application:
# 应用名称
name: op-engery
name: op-energy
profiles:
# 环境配置
active: dev
cloud:
nacos:
discovery:
namespace: lanju-op
group: zxl
namespace: lanju-op-test
group: test
# 服务注册地址
server-addr: 175.27.215.92:8848
server-addr: 192.168.202.20:8848
config:
namespace: lanju-op
group: zxl
namespace: lanju-op-test
group: test
# 服务注册地址
server-addr: 175.27.215.92:8848
server-addr: 192.168.202.20:8848
# 配置文件格式
file-extension: yml
# 共享配置

@ -510,7 +510,7 @@ public class OpenServiceImpl implements OpenService {
@Override
public AjaxResult sendWeChartMessage(List<WechartDTO> dtos) {
try {
String result = HttpUtils.sendPost(weChartUrl, JSON.toJSONString(dtos));
String result = HttpUtils.sendPostWechart(weChartUrl, JSON.toJSONString(dtos));
return success(result);
} catch (Exception e) {
e.printStackTrace();

Loading…
Cancel
Save