Browse Source

消息推送

xzc 1 week ago
parent
commit
3fbee47214

+ 249 - 89
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskordersignfile/BoilerTaskOrderSignFileServiceImpl.java

@@ -30,6 +30,7 @@ import cn.start.tz.module.system.enums.common.IsYesOrNoEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import jakarta.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -239,6 +240,9 @@ public class BoilerTaskOrderSignFileServiceImpl extends ServiceImpl<BoilerTaskOr
     @Resource
     private MemberUserApi memberUserApi;
 
+    @Value("${app-auth.wx-app-id}")
+    private String wxAppId;
+
     @Override
     public void serviceFromPush(TaskOrderPushReqVO reqVO) throws Exception {
         log.info("serviceFromPush {}", reqVO);
@@ -299,49 +303,61 @@ public class BoilerTaskOrderSignFileServiceImpl extends ServiceImpl<BoilerTaskOr
             taskOrderSignFileDO.setSecurityCheckId(reqVO.getSecurityCheckId());
             save(taskOrderSignFileDO);
         }
-//        TaskOrderServeSendSendVO vo = new TaskOrderServeSendSendVO();
-//        vo.setOrderNo(taskOrderDO.getOrderNo());
-//        vo.setReceiverPhone(taskOrderSignFileDO.getReceiverPhone());
-//        vo.setPushDateTime(taskOrderSignFileDO.getPushDateTime());
-//        vo.setServeItemName("容器-定期检验");
-//        if (Integer.valueOf(200).equals(taskOrderDO.getCheckType())) {
-//            vo.setServeItemName("容器-年度检验");
-//        } else if (Integer.valueOf(300).equals(taskOrderDO.getCheckType())) {
-//            vo.setServeItemName("容器-超期限检验");
-//        }
-//        //100=服务单模版推送,200=检验结果告知推送
-//        if (Integer.valueOf(100).equals(reqVO.getBusinessType())) {
-//            serveOrderSend(vo);
-//        } else if (Integer.valueOf(200).equals(reqVO.getBusinessType())) {
-//            resultsNotificationSend(vo);
-//        } else if (Integer.valueOf(300).equals(reqVO.getBusinessType())) {
-//            securityRecordSend(vo);
-//        } else if (Integer.valueOf(400).equals(reqVO.getBusinessType())) {
-////            if (StringUtils.isNotEmpty(vo.getReceiverPhone())) {
-////                MemberUserRespDTO memberUser = memberUserApi.getUserByMobile(vo.getReceiverPhone()).getCheckedData();
-////                if (ObjectUtil.isEmpty(memberUser)) {
-////                    // 获取不到平台用户信息是创建一个平台用户账号
-////                    if (ObjectUtil.isEmpty(memberUser)) {
-////                        MemberUserReqVo memberUserReqVo = new MemberUserReqVo();
-////                        memberUserReqVo.setMobile(vo.getReceiverPhone());
-////                        memberUserReqVo.setRegisterIp(getClientIP());
-////                        memberUserReqVo.setTerminal(TerminalEnum.WECHAT_MINI_PROGRAM.getTerminal());
-////                        memberUser = memberUserApi.createUser(memberUserReqVo).getCheckedData();
-////                        if (ObjectUtil.isEmpty(memberUser)) {
-////                            throw exception(new ErrorCode(1007, "创建用户失败"));
-////                        }
-////                    }
-////                }
-////            }
+        // 查询 equipCode
+        String equipCode = "";
+        if ("200".equals(reqVO.getEquipMainType()) && StringUtils.isNotBlank(orderItemId)) {
+            BoilerTaskOrderItemDO item = taskOrderItemMapper.selectOne(
+                    new LambdaQueryWrapperX<BoilerTaskOrderItemDO>().eq(BoilerTaskOrderItemDO::getId, orderItemId));
+            if (item != null) {
+                EquipBoilerDO boiler = equipBoilerMapper.selectById(item.getEquipId());
+                if (boiler != null) {
+                    equipCode = boiler.getEquipCode();
+                }
+            }
+        } else if ("300".equals(reqVO.getEquipMainType()) && StringUtils.isNotBlank(orderItemId)) {
+            PipeTaskOrderItemDO pipeItem = pipeTaskOrderItemMapper.selectOne(
+                    new LambdaQueryWrapperX<PipeTaskOrderItemDO>().eq(PipeTaskOrderItemDO::getOrderId, taskOrderDO.getId()));
+            if (pipeItem != null) {
+                EquipPipeDO pipe = equipPipeMapper.selectById(pipeItem.getEquipId());
+                if (pipe != null) {
+                    equipCode = pipe.getProjectNo();
+                }
+            }
+        }
+        // 根据reqVO.getEquipMainType() 200 锅炉、管道
+        TaskOrderServeSendSendVO vo = new TaskOrderServeSendSendVO();
+        vo.setOrderId(taskOrderDO.getId());
+        vo.setOrderNo(taskOrderDO.getOrderNo());
+        vo.setReceiverPhone(taskOrderSignFileDO.getReceiverPhone());
+        vo.setPushDateTime(taskOrderSignFileDO.getPushDateTime());
+        vo.setUnitName(taskOrderDO.getUnitName());
+        vo.setEquipCode(equipCode);
+        if ("200".equals(taskOrderSignFileDO.getEquipMainType())) {
+            vo.setServeItemName("锅炉-内部检验");
+            if (Integer.valueOf(200).equals(taskOrderDO.getCheckType())) {
+                vo.setServeItemName("锅炉-外部检验");
+            } else if (Integer.valueOf(300).equals(taskOrderDO.getCheckType())) {
+                vo.setServeItemName("锅炉-耐压检验");
+            }
+        } else if ("300".equals(taskOrderSignFileDO.getEquipMainType())) {
+            vo.setServeItemName("管道-定期检验");
+            if (Integer.valueOf(200).equals(taskOrderDO.getCheckType())) {
+                vo.setServeItemName("管道-年度检验");
+            }
+        } else {
+            return;
+        }
+        //100=任务单,200=检验结果告知,300=安全检查记录,400=重大问题线索
+        if (Integer.valueOf(100).equals(reqVO.getBusinessType())) {
+            serveOrderSend(vo,taskOrderSignFileDO);
+        } else if (Integer.valueOf(200).equals(reqVO.getBusinessType())) {
+            resultsNotificationSend(vo,taskOrderSignFileDO);
+        } else if (Integer.valueOf(300).equals(reqVO.getBusinessType())) {
+            securityRecordSend(vo,taskOrderSignFileDO);
+        } else if (Integer.valueOf(400).equals(reqVO.getBusinessType())) {
+            majorIssueSend(vo,taskOrderSignFileDO);
+        }
 //
-//            TaskOrderItemDO taskOrderItemDO = taskOrderItemMapper.selectById(reqVO.getOrderItemId());
-//            if (taskOrderItemDO != null) {
-//                vo.setEquipCode(taskOrderItemDO.getEquipCode());
-//                vo.setUnitName(taskOrderDO.getUnitName());
-//            }
-//            majorIssueSend(vo);
-//        }
-
 //        TaskOrderSignFilePageReqVO reqParam = new TaskOrderSignFilePageReqVO();
 //        reqParam.setOrderId(taskOrderDO.getId());
 //        reqParam.setEmail(reqVO.getReceiverEmail());
@@ -353,54 +369,198 @@ public class BoilerTaskOrderSignFileServiceImpl extends ServiceImpl<BoilerTaskOr
 
     }
 
-//    /**
-//     * 任务单-服务单模版推送
-//     *
-//     * @param vo 发送参数
-//     */
-//    public void serveOrderSend(TaskOrderServeSendSendVO vo) {
-//        if (StringUtils.isNotEmpty(vo.getReceiverPhone())) {
-//            MemberUserRespDTO memberUser = memberUserApi.getUserByMobile(vo.getReceiverPhone()).getCheckedData();
-//            if (ObjectUtil.isEmpty(memberUser)) {
-//                // 获取不到平台用户信息是创建一个平台用户账号
-//                if (ObjectUtil.isEmpty(memberUser)) {
-//                    MemberUserReqVo memberUserReqVo = new MemberUserReqVo();
-//                    memberUserReqVo.setMobile(vo.getReceiverPhone());
-//                    memberUserReqVo.setRegisterIp(getClientIP());
-//                    memberUserReqVo.setTerminal(TerminalEnum.WECHAT_MINI_PROGRAM.getTerminal());
-//                    memberUser = memberUserApi.createUser(memberUserReqVo).getCheckedData();
-//                    if (ObjectUtil.isEmpty(memberUser)) {
-//                        throw exception(new ErrorCode(1007, "创建用户失败"));
-//                    }
-//                }
-//            }
-//
-//            String date = vo.getPushDateTime().toLocalDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
-//            SendAppMpMessageReqDTO param = new SendAppMpMessageReqDTO();
-//            param.setMemberId(memberUser.getId());
-//            if (EnvEnum.LOCAL.getEnvName().equals(env)) {
-//                param.setTemplateId("P8Kxrg_t4QveknyFatAlOujaTu4mwbPF0K9ZIjzSUbY");
-//            } else if (EnvEnum.UAT.getEnvName().equals(env)) {
-//                param.setTemplateId("2lzVFZpqi7zUt0curHPnJJDrd2zeTs7HLjcpXvFlHmE");
-//            }
-//            List<WxMpTemplateDataReqDto> list = new ArrayList<>();
-//
-//            list.add(new WxMpTemplateDataReqDto("character_string2", vo.getOrderNo(), null));
-//            list.add(new WxMpTemplateDataReqDto("thing6", vo.getServeItemName(), null));
-//            list.add(new WxMpTemplateDataReqDto("time10", date, null));
-//            //todo 小程序发版后 跳转至小程序缴费页面
-//            SendAppMpMessageReqDTO.MiniProgramDto mini = new SendAppMpMessageReqDTO.MiniProgramDto();
-//            mini.setPagePath("pagesSub/service-acceptance-form/index?pageNo=1&pageSize=10&total=0&isSignature=0&businessType=100");
+    /**
+     * 任务单-服务单模版推送
+     *
+     * @param vo 发送参数
+     */
+    public void serveOrderSend(TaskOrderServeSendSendVO vo,BoilerTaskOrderSignFileDO taskOrderSignFileDO) {
+        if (StringUtils.isNotEmpty(vo.getReceiverPhone())) {
+            MemberUserRespDTO memberUser = memberUserApi.getUserByMobile(vo.getReceiverPhone()).getCheckedData();
+            if (ObjectUtil.isEmpty(memberUser)) {
+                // 获取不到平台用户信息是创建一个平台用户账号
+                if (ObjectUtil.isEmpty(memberUser)) {
+                    MemberUserReqVo memberUserReqVo = new MemberUserReqVo();
+                    memberUserReqVo.setMobile(vo.getReceiverPhone());
+                    memberUserReqVo.setRegisterIp(getClientIP());
+                    memberUserReqVo.setTerminal(TerminalEnum.WECHAT_MINI_PROGRAM.getTerminal());
+                    memberUser = memberUserApi.createUser(memberUserReqVo).getCheckedData();
+                    if (ObjectUtil.isEmpty(memberUser)) {
+                        throw exception(new ErrorCode(1007, "创建用户失败"));
+                    }
+                }
+            }
+
+            String date = vo.getPushDateTime().toLocalDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+            SendAppMpMessageReqDTO param = new SendAppMpMessageReqDTO();
+            param.setMemberId(memberUser.getId());
+            param.setTemplateId("2lzVFZpqi7zUt0curHPnJJDrd2zeTs7HLjcpXvFlHmE");
+            List<WxMpTemplateDataReqDto> list = new ArrayList<>();
+
+            list.add(new WxMpTemplateDataReqDto("character_string2", vo.getOrderNo(), null));
+            list.add(new WxMpTemplateDataReqDto("thing6", vo.getServeItemName(), null));
+            list.add(new WxMpTemplateDataReqDto("time10", date, null));
+            //todo 小程序发版后 跳转至小程序缴费页面
+            SendAppMpMessageReqDTO.MiniProgramDto mini = new SendAppMpMessageReqDTO.MiniProgramDto();
+            if (taskOrderSignFileDO.getEquipMainType().contains("200")) {
+//                mini.setPagePath("pagesSub/boiler/service-acceptance-form/index?pageNo=1&pageSize=10&total=0&isSignature=0&businessType=100");
+            } else {
+//                mini.setPagePath("pagesSub/pipe/service-acceptance-form/index?pageNo=1&pageSize=10&total=0&isSignature=0&businessType=100");
+            }
 //            mini.setUsePath(true);
-//            param.setMiniProgramDto(mini);
-//            param.setWxMpTemplateDataList(list);
-//            param.setBusinessType(4);
-//            param.setBusinessId(vo.getOrderId());
-//            // 模板消息发送
-//            memberUserApi.sendMpMessage(param).getCheckedData();
-//        }
-//
-//    }
+            mini.setAppid(wxAppId);
+            param.setMiniProgramDto(mini);
+            param.setWxMpTemplateDataList(list);
+            param.setBusinessType(4);
+            param.setBusinessId(vo.getOrderId());
+            // 模板消息发送
+            memberUserApi.sendMpMessage(param).getCheckedData();
+        }
+
+    }
+
+    /**
+     * 任务单-服务单模版推送
+     *
+     * @param vo 发送参数
+     */
+    public void resultsNotificationSend(TaskOrderServeSendSendVO vo,BoilerTaskOrderSignFileDO taskOrderSignFileDO) {
+        if (StringUtils.isNotEmpty(vo.getReceiverPhone())) {
+            MemberUserRespDTO memberUser = memberUserApi.getUserByMobile(vo.getReceiverPhone()).getCheckedData();
+            if (ObjectUtil.isEmpty(memberUser)) {
+                // 获取不到平台用户信息是创建一个平台用户账号
+                if (ObjectUtil.isEmpty(memberUser)) {
+                    MemberUserReqVo memberUserReqVo = new MemberUserReqVo();
+                    memberUserReqVo.setMobile(vo.getReceiverPhone());
+                    memberUserReqVo.setRegisterIp(getClientIP());
+                    memberUserReqVo.setTerminal(TerminalEnum.WECHAT_MINI_PROGRAM.getTerminal());
+                    memberUser = memberUserApi.createUser(memberUserReqVo).getCheckedData();
+                    if (ObjectUtil.isEmpty(memberUser)) {
+                        throw exception(new ErrorCode(1007, "创建用户失败"));
+                    }
+                }
+            }
+
+            String date = vo.getPushDateTime().toLocalDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+            SendAppMpMessageReqDTO param = new SendAppMpMessageReqDTO();
+            param.setMemberId(memberUser.getId());
+
+            param.setTemplateId("z_H4o31lDr6sxPV00VOY5lgNgMlZ_NlmrW0D8b1Ww94");
+
+            List<WxMpTemplateDataReqDto> list = new ArrayList<>();
+
+            list.add(new WxMpTemplateDataReqDto("character_string1", vo.getOrderNo(), null));
+            list.add(new WxMpTemplateDataReqDto("thing2", vo.getServeItemName(), null));
+            list.add(new WxMpTemplateDataReqDto("time7", date, null));
+            //todo 小程序发版后 跳转至小程序缴费页面
+            SendAppMpMessageReqDTO.MiniProgramDto mini = new SendAppMpMessageReqDTO.MiniProgramDto();
+            if (taskOrderSignFileDO.getEquipMainType().contains("200")) {
+//                mini.setPagePath("pagesSub/boiler/inspection-results/index?pageNo=1&pageSize=10&total=0&isSignature=0&businessType=200");
+            } else {
+//                mini.setPagePath("pagesSub/pipe/inspection-results/index?pageNo=1&pageSize=10&total=0&isSignature=0&businessType=200");
+            }
+//            mini.setUsePath(true);
+            mini.setAppid(wxAppId);
+            param.setMiniProgramDto(mini);
+            param.setWxMpTemplateDataList(list);
+            param.setBusinessType(5);
+            param.setBusinessId(vo.getOrderId());
+            // 模板消息发送
+            memberUserApi.sendMpMessage(param).getCheckedData();
+        }
+    }
+
+    public void securityRecordSend(TaskOrderServeSendSendVO vo,BoilerTaskOrderSignFileDO taskOrderSignFileDO) {
+        if (StringUtils.isNotEmpty(vo.getReceiverPhone())) {
+            MemberUserRespDTO memberUser = memberUserApi.getUserByMobile(vo.getReceiverPhone()).getCheckedData();
+            if (ObjectUtil.isEmpty(memberUser)) {
+                // 获取不到平台用户信息是创建一个平台用户账号
+                if (ObjectUtil.isEmpty(memberUser)) {
+                    MemberUserReqVo memberUserReqVo = new MemberUserReqVo();
+                    memberUserReqVo.setMobile(vo.getReceiverPhone());
+                    memberUserReqVo.setRegisterIp(getClientIP());
+                    memberUserReqVo.setTerminal(TerminalEnum.WECHAT_MINI_PROGRAM.getTerminal());
+                    memberUser = memberUserApi.createUser(memberUserReqVo).getCheckedData();
+                    if (ObjectUtil.isEmpty(memberUser)) {
+                        throw exception(new ErrorCode(1007, "创建用户失败"));
+                    }
+                }
+            }
+
+            String date = vo.getPushDateTime().toLocalDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+            SendAppMpMessageReqDTO param = new SendAppMpMessageReqDTO();
+            param.setMemberId(memberUser.getId());
+
+            param.setTemplateId("2lzVFZpqi7zUt0curHPnJJDrd2zeTs7HLjcpXvFlHmE");
+
+            List<WxMpTemplateDataReqDto> list = new ArrayList<>();
+
+            list.add(new WxMpTemplateDataReqDto("character_string2", vo.getOrderNo(), null));
+            list.add(new WxMpTemplateDataReqDto("thing6", vo.getServeItemName(), null));
+            list.add(new WxMpTemplateDataReqDto("time10", date, null));
+            //todo 小程序发版后 跳转至小程序缴费页面
+            SendAppMpMessageReqDTO.MiniProgramDto mini = new SendAppMpMessageReqDTO.MiniProgramDto();
+            if (taskOrderSignFileDO.getEquipMainType().contains("200")) {
+//                mini.setPagePath("pagesSub/boiler/taskOrderSecurityCheck/index?pageNo=1&pageSize=10&total=0&isSignature=0&businessType=300");
+            } else {
+//                mini.setPagePath("pagesSub/pipe/taskOrderSecurityCheck/index?pageNo=1&pageSize=10&total=0&isSignature=0&businessType=300");
+            }
+//            mini.setUsePath(true);
+            mini.setAppid(wxAppId);
+            param.setMiniProgramDto(mini);
+            param.setWxMpTemplateDataList(list);
+            param.setBusinessType(4);
+            param.setBusinessId(vo.getOrderId());
+            // 模板消息发送
+            memberUserApi.sendMpMessage(param).getCheckedData();
+        }
+
+    }
+
+
+    private void majorIssueSend(TaskOrderServeSendSendVO vo,BoilerTaskOrderSignFileDO taskOrderSignFileDO) {
+        MemberUserRespDTO memberUser = memberUserApi.getUserByMobile(vo.getReceiverPhone()).getCheckedData();
+        if (ObjectUtil.isEmpty(memberUser)) {
+            // 获取不到平台用户信息是创建一个平台用户账号
+            if (ObjectUtil.isEmpty(memberUser)) {
+                MemberUserReqVo memberUserReqVo = new MemberUserReqVo();
+                memberUserReqVo.setMobile(vo.getReceiverPhone());
+                memberUserReqVo.setRegisterIp(getClientIP());
+                memberUserReqVo.setTerminal(TerminalEnum.WECHAT_MINI_PROGRAM.getTerminal());
+                memberUser = memberUserApi.createUser(memberUserReqVo).getCheckedData();
+                if (ObjectUtil.isEmpty(memberUser)) {
+                    throw exception(new ErrorCode(1007, "创建用户失败"));
+                }
+            }
+        }
+
+        SendAppMpMessageReqDTO param = new SendAppMpMessageReqDTO();
+        param.setMemberId(memberUser.getId());
+
+        param.setTemplateId("y1Kve8dyGbqWVKQlqLUuUI4SjhZLKQ9c-IUgF1dy2AU");
+
+        List<WxMpTemplateDataReqDto> list = new ArrayList<>();
+
+        list.add(new WxMpTemplateDataReqDto("character_string1", vo.getOrderNo(), null));
+        list.add(new WxMpTemplateDataReqDto("character_string24", vo.getEquipCode(), null));
+        list.add(new WxMpTemplateDataReqDto("thing31", "特种设备重大问题线索告知表", null));
+        list.add(new WxMpTemplateDataReqDto("thing51", vo.getUnitName(), null));
+
+        SendAppMpMessageReqDTO.MiniProgramDto mini = new SendAppMpMessageReqDTO.MiniProgramDto();
+        if (taskOrderSignFileDO.getEquipMainType().contains("200")) {
+//            mini.setPagePath("pagesSub/boiler/main-question/index?pageNo=1&pageSize=10&total=0&isSignature=0&businessType=400");
+        } else {
+//            mini.setPagePath("pagesSub/pipe/main-question/index?pageNo=1&pageSize=10&total=0&isSignature=0&businessType=400");
+        }
+//        mini.setUsePath(true);
+        mini.setAppid(wxAppId);
+        param.setMiniProgramDto(mini);
+        param.setWxMpTemplateDataList(list);
+        param.setBusinessType(8);
+        param.setBusinessId(vo.getOrderId());
+        // 模板消息发送
+        memberUserApi.sendMpMessage(param).getCheckedData();
+    }
 
     @Override
     public boolean hasValidSignByOrderId(String orderId) {