From 87f3ecab693a79d9271174e98abf86e3db17cc5a Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Thu, 23 May 2024 12:04:23 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E9=80=9A=E7=9F=A5POST=E8=AF=B7=E6=B1=82=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/common/core/utils/http/HttpUtils.java | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/utils/http/HttpUtils.java b/op-common/op-common-core/src/main/java/com/op/common/core/utils/http/HttpUtils.java index cc474c45..a9716114 100644 --- a/op-common/op-common-core/src/main/java/com/op/common/core/utils/http/HttpUtils.java +++ b/op-common/op-common-core/src/main/java/com/op/common/core/utils/http/HttpUtils.java @@ -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方法的请求 * From 80c65cc430cae363d6804a0e43e05f05c8135378 Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Thu, 23 May 2024 14:57:02 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=83=BD=E6=BA=90?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op-energy/src/main/resources/bootstrap.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/op-modules/op-energy/src/main/resources/bootstrap.yml b/op-modules/op-energy/src/main/resources/bootstrap.yml index 5565492d..d2004e93 100644 --- a/op-modules/op-energy/src/main/resources/bootstrap.yml +++ b/op-modules/op-energy/src/main/resources/bootstrap.yml @@ -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 # 共享配置 From b777ca8e486b73200cd830736a082972dd3c9289 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Thu, 23 May 2024 16:47:58 +0800 Subject: [PATCH 3/3] =?UTF-8?q?2024-5-23=20=E8=AE=BE=E5=A4=87=E7=AE=A1?= =?UTF-8?q?=E7=90=86-PC=E7=AB=AF=E6=8A=A5=E4=BF=AE-=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E6=8F=90=E9=86=92=20+=20open=E6=A8=A1=E5=9D=97=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1Post=E6=96=B9=E6=B3=95=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/mapper/EquRepairOrderMapper.java | 4 + .../impl/EquRepairOrderServiceImpl.java | 75 +++++++++++++++++++ .../mapper/device/EquRepairOrderMapper.xml | 13 ++++ .../op/open/service/impl/OpenServiceImpl.java | 2 +- 4 files changed, 93 insertions(+), 1 deletion(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java index 3dba6037..9c075237 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java @@ -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 getNoticesGroup(SysNoticeGroup noticeQo); } 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 b3738ff5..3add5def 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 @@ -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 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") + .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); } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml index 96b8ef42..83287198 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml @@ -342,4 +342,17 @@ where source_id = #{sourceId} + + diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index ea98a3c8..9e18ca59 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -510,7 +510,7 @@ public class OpenServiceImpl implements OpenService { @Override public AjaxResult sendWeChartMessage(List 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();