|
|
@@ -2,9 +2,12 @@ package cn.start.tz.module.pressure2.service.appointmentconfirmorder;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.start.tz.framework.common.enums.TerminalEnum;
|
|
|
+import cn.start.tz.framework.common.exception.ErrorCode;
|
|
|
import cn.start.tz.framework.common.exception.ServiceException;
|
|
|
import cn.start.tz.framework.common.pojo.PageResult;
|
|
|
import cn.start.tz.framework.common.util.object.BeanUtils;
|
|
|
+import cn.start.tz.framework.env.core.enums.EnvEnum;
|
|
|
import cn.start.tz.framework.ip.core.Area;
|
|
|
import cn.start.tz.framework.ip.core.utils.AreaUtils;
|
|
|
import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
|
@@ -17,6 +20,10 @@ import cn.start.tz.module.bpm.enums.boiler.BoilerBpmModelConstants;
|
|
|
import cn.start.tz.module.bpm.enums.pipe.PipeBpmModelConstants;
|
|
|
import cn.start.tz.module.bpm.enums.task.BpmTaskStatusEnum;
|
|
|
import cn.start.tz.module.member.api.templatesendlog.TemplateSendLogApi;
|
|
|
+import cn.start.tz.module.member.api.user.dto.MemberUserReqVo;
|
|
|
+import cn.start.tz.module.member.api.user.dto.MemberUserRespDTO;
|
|
|
+import cn.start.tz.module.member.api.user.dto.SendAppMpMessageReqDTO;
|
|
|
+import cn.start.tz.module.member.api.user.dto.WxMpTemplateDataReqDto;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.boileracceptorderuser.BoilerAcceptOrderUserDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.boilerappointmentconfirmorderuser.BoilerAppointmentConfirmOrderUserDO;
|
|
|
import cn.start.tz.module.pressure2.enums.RedisKeyEnums;
|
|
|
@@ -63,6 +70,11 @@ import cn.start.tz.module.pressure2.dal.mysql.pipeorderexception.PipeOrderExcept
|
|
|
import cn.start.tz.module.pressure2.service.acceptorder.PipeAcceptOrderService;
|
|
|
import cn.start.tz.module.pressure2.service.common.RedisService;
|
|
|
import cn.start.tz.module.pressure2.service.equippipeschedulingcheck.EquipPipeSchedulingCheckService;
|
|
|
+import cn.start.tz.module.pressure2.service.member.MemberRemoteService;
|
|
|
+import cn.start.tz.module.pressure2.service.member.vo.MemberUserCreateReqVO;
|
|
|
+import cn.start.tz.module.pressure2.service.member.vo.MemberUserRespVO;
|
|
|
+import cn.start.tz.module.pressure2.service.membermessage.MemberMessageRemoteService;
|
|
|
+import cn.start.tz.module.pressure2.service.membermessage.vo.SendMpMessageReqVO;
|
|
|
import cn.start.tz.module.pressure2.service.orderreport.OrderReportService;
|
|
|
import cn.start.tz.module.system.api.dept.DeptApi;
|
|
|
import cn.start.tz.module.system.api.orgcontact.OrgContactApi;
|
|
|
@@ -73,6 +85,7 @@ import jakarta.annotation.Resource;
|
|
|
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 org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
@@ -82,11 +95,14 @@ import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.ZoneId;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static cn.start.tz.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
+import static cn.start.tz.framework.common.util.servlet.ServletUtils.getClientIP;
|
|
|
import static cn.start.tz.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
|
|
|
|
|
|
|
|
@@ -162,7 +178,12 @@ public class PipeAppointmentConfirmOrderServiceImpl implements PipeAppointmentCo
|
|
|
|
|
|
@Resource
|
|
|
private AppointmentConfirmRefuseYearItemMapper appointmentConfirmRefuseYearItemMapper;
|
|
|
-
|
|
|
+ @Value("${tz.env.name}")
|
|
|
+ private String env;
|
|
|
+ @Resource
|
|
|
+ private MemberRemoteService memberRemoteService;
|
|
|
+ @Resource
|
|
|
+ private MemberMessageRemoteService memberMessageRemoteService;
|
|
|
@Resource
|
|
|
private AppointmentConfirmOrderRefuseItemMapper appointmentConfirmOrderRefuseItemMapper;
|
|
|
|
|
|
@@ -1058,6 +1079,93 @@ public class PipeAppointmentConfirmOrderServiceImpl implements PipeAppointmentCo
|
|
|
|
|
|
@Override
|
|
|
public void sendTemplateMessage(SendTemplateMessageVO sendTemplateMessageVO) {
|
|
|
+ AppointmentConfirmOrderDO appointmentConfirmOrderDO = appointmentConfirmOrderMapper.selectById(sendTemplateMessageVO.getId());
|
|
|
+ if (appointmentConfirmOrderDO == null) {
|
|
|
+ throw new ServiceException(404, "约检单不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ LambdaQueryWrapperX<PipeAppointmentConfirmOrderItemDO> queryConfirmOrderItemWrapper = new LambdaQueryWrapperX<>();
|
|
|
+ queryConfirmOrderItemWrapper.eq(PipeAppointmentConfirmOrderItemDO::getOrderId, appointmentConfirmOrderDO.getId());
|
|
|
+ List<PipeAppointmentConfirmOrderItemDO> appointmentConfirmOrderItemDOS = appointmentConfirmOrderItemMapper.selectList(queryConfirmOrderItemWrapper);
|
|
|
+ if (CollUtil.isEmpty(appointmentConfirmOrderItemDOS)) {
|
|
|
+ throw new ServiceException(404, "约检确认单设备项目不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> equipIds = appointmentConfirmOrderItemDOS.stream().map(PipeAppointmentConfirmOrderItemDO::getEquipId).toList();
|
|
|
+ LambdaQueryWrapperX<EquipPipeDO> queryEquipPipe = new LambdaQueryWrapperX<>();
|
|
|
+ queryEquipPipe.in(EquipPipeDO::getId, equipIds);
|
|
|
+ List<EquipPipeDO> equipPipeDOS = equipPipeMapper.selectList(queryEquipPipe);
|
|
|
+ if (CollUtil.isEmpty(equipPipeDOS)) {
|
|
|
+ throw new ServiceException(404, "约检确认联系人不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+// List<String> contactPhones = equipPipeDOS.stream().map(EquipPipeDO::getContactPhone).distinct().toList();
|
|
|
+ List<String> contactPhones = Collections.singletonList(appointmentConfirmOrderDO.getUnitPhone());
|
|
|
+ if (CollUtil.isEmpty(contactPhones)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ String unitName = appointmentConfirmOrderDO.getUnitName();
|
|
|
+ String unitCode = appointmentConfirmOrderDO.getUnitCode();
|
|
|
+
|
|
|
+ String checkType = "定期检验";
|
|
|
+ if (appointmentConfirmOrderDO.getCheckType() == 200) {
|
|
|
+ checkType = "年度检验";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ LocalDate appointmentDate = appointmentConfirmOrderDO.getAppointmentDate();
|
|
|
+ String date = appointmentDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
+ Long count = appointmentConfirmOrderItemMapper.selectCount(PipeAppointmentConfirmOrderItemDO::getOrderId, sendTemplateMessageVO.getId());
|
|
|
+ String thing = String.format("%s|%s|%s", checkType, "压力管道", count);
|
|
|
+// List<String> memberIds = clientUnitApi.getChargeMember(unitName).getCheckedData();
|
|
|
+// if(memberIds == null){
|
|
|
+// return;
|
|
|
+// }
|
|
|
+
|
|
|
+ log.info("contactPhones:{}", contactPhones);
|
|
|
+ contactPhones.forEach(contactPhone -> {
|
|
|
+ SendMpMessageReqVO param = new SendMpMessageReqVO();
|
|
|
+ MemberUserRespVO memberUser = memberRemoteService.getUserByMobile(contactPhone);
|
|
|
+
|
|
|
+ // 获取不到平台用户信息是创建一个平台用户账号
|
|
|
+ if (ObjectUtil.isEmpty(memberUser)) {
|
|
|
+ MemberUserCreateReqVO memberUserReqVo = new MemberUserCreateReqVO();
|
|
|
+ memberUserReqVo.setMobile(contactPhone);
|
|
|
+ memberUserReqVo.setName(contactPhone);
|
|
|
+ memberUserReqVo.setRegisterIp(getClientIP());
|
|
|
+
|
|
|
+ memberUser = memberRemoteService.createUser(memberUserReqVo);
|
|
|
+ if (ObjectUtil.isEmpty(memberUser)) {
|
|
|
+ throw exception(new ErrorCode(1007,"创建用户失败"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ param.setMemberId(memberUser.getId());
|
|
|
+ // 3f-xg-UmbhgSb0QrU_3QYoN70uFWPfbhkBMhObgr3CE
|
|
|
+ if (EnvEnum.HSD.getEnvName().equals(env)) {
|
|
|
+ param.setTemplateId("3f-xg-UmbhgSb0QrU_3QYoN70uFWPfbhkBMhObgr3CE");
|
|
|
+ } else if (EnvEnum.UAT.getEnvName().equals(env)) {
|
|
|
+ param.setTemplateId("roTC0SQzXdla8FZJLyl3X84cSbrOsLMikD9lpmPD3YY");
|
|
|
+ }
|
|
|
+ List<SendMpMessageReqVO.TemplateData> list = new ArrayList<>();
|
|
|
+
|
|
|
+ list.add(new SendMpMessageReqVO.TemplateData("thing49", unitName, null));
|
|
|
+ list.add(new SendMpMessageReqVO.TemplateData("thing13", thing, null));
|
|
|
+ list.add(new SendMpMessageReqVO.TemplateData("time45", date, null));
|
|
|
+
|
|
|
+ param.setTemplateDataList(list);
|
|
|
+
|
|
|
+ // if(sendTemplateMessageVO.getPage()){
|
|
|
+ SendMpMessageReqVO.MiniProgram mini = new SendMpMessageReqVO.MiniProgram();
|
|
|
+ mini.setPagePath(String.format("pages/pipe/appointment-confirm/index?id=%s", sendTemplateMessageVO.getId()));
|
|
|
+ mini.setUsePath(true);
|
|
|
+ param.setMiniProgram(mini);
|
|
|
+ //}
|
|
|
+ param.setBusinessId(appointmentConfirmOrderDO.getId());
|
|
|
+ param.setBusinessType(0);
|
|
|
+ memberMessageRemoteService.sendMpMessage(param);
|
|
|
+ });
|
|
|
|
|
|
}
|
|
|
|