diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McIgnitionTemplate.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McIgnitionTemplate.java new file mode 100644 index 0000000..89898c8 --- /dev/null +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McIgnitionTemplate.java @@ -0,0 +1,27 @@ +package com.chinagas.modules.schsf.domain.notice; + +import com.chinagas.modules.schsf.domain.McIgnition; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class McIgnitionTemplate { + private McIgnition mcIgnition; + + public McIgnitionTemplate(McIgnition mcIgnition) { + this.mcIgnition = mcIgnition; + } + + public String getNoticemarkdown() { + return "###### 市场化收费-点火通知 \n " + + "用户信息:" + mcIgnition.getUserName()+"(" +mcIgnition.getUserPhone()+ ") \n " + + "村/小区:" + mcIgnition.getVlgOrCmty() + " \n " + + "当前状态:" + mcIgnition.getStatusName() + "(客服) \n " + + "维护操作:点击链接进入维护页面:[https://schsf.chinagasholdings.com](https://schsf.chinagasholdings.com) \n " + + "---" + + " \n " + + "通知日期: " + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm")) + " \n " + + "温馨提醒: 请按时完成维护,保障业务顺畅。 \n "; + } + +} diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/mapper/McIgnitionMapper.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/mapper/McIgnitionMapper.java index d928f79..d54f862 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/mapper/McIgnitionMapper.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/mapper/McIgnitionMapper.java @@ -1,6 +1,8 @@ package com.chinagas.modules.schsf.mapper; import com.chinagas.modules.schsf.domain.McIgnition; +import com.chinagas.modules.schsf.domain.dto.NodeUsersDto; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -62,4 +64,5 @@ public interface McIgnitionMapper List selectMcIgnitionParamList(McIgnition mcIgnition); + List selectMcIgnitionNodeUserList(@Param("id")String id, @Param("nodeType") String nodeType); } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/IMcIgnitionService.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/IMcIgnitionService.java index 779e61d..c42ba52 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/IMcIgnitionService.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/IMcIgnitionService.java @@ -2,6 +2,7 @@ package com.chinagas.modules.schsf.service; import com.chinagas.modules.schsf.domain.McIgnition; import com.chinagas.modules.schsf.domain.McVisit; +import com.chinagas.modules.schsf.domain.dto.NodeUsersDto; import com.chinagas.modules.schsf.domain.vo.McIgnitionMaintenanceVo; import java.util.List; @@ -78,4 +79,14 @@ public interface IMcIgnitionService int updateMcIgnitionMaintenance(McIgnitionMaintenanceVo mcIgnitionMaintenanceVo) throws CloneNotSupportedException; void updateMcIgnitionCancel(Long visitId) throws CloneNotSupportedException; + + /** + * 节点处理人 + * + * @param id + * @return + */ + List selectMcIgnitionNodeUserList(Long id); + + } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java index 89b87f1..c3d15b8 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java @@ -1,24 +1,32 @@ package com.chinagas.modules.schsf.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson2.JSON; +import com.chinagas.common.core.exceptions.ServiceException; import com.chinagas.common.core.utils.DateUtils; import com.chinagas.common.core.utils.StringUtils; import com.chinagas.common.datascope.annotation.DataScope; import com.chinagas.common.security.utils.SecurityUtils; import com.chinagas.modules.schsf.domain.McIgnition; import com.chinagas.modules.schsf.domain.McVisit; +import com.chinagas.modules.schsf.domain.dto.NodeUsersDto; +import com.chinagas.modules.schsf.domain.notice.McIgnitionTemplate; import com.chinagas.modules.schsf.domain.vo.McIgnitionMaintenanceVo; import com.chinagas.modules.schsf.enums.IgnitionStatusEnums; import com.chinagas.modules.schsf.enums.YesNoEnums; import com.chinagas.modules.schsf.mapper.McIgnitionMapper; +import com.chinagas.modules.schsf.service.DingtalkService; import com.chinagas.modules.schsf.service.IMcIgnitionService; import com.chinagas.modules.schsf.service.IMcOperationLogService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; +import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; /** * 点火维护Service业务层处理 @@ -26,6 +34,7 @@ import java.util.List; * @author cw * @date 2024-05-22 */ +@Slf4j @Transactional @Service public class McIgnitionServiceImpl implements IMcIgnitionService { @@ -33,6 +42,8 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { private McIgnitionMapper mcIgnitionMapper; @Autowired private IMcOperationLogService iMcOperationLogService; + @Autowired + private DingtalkService dingtalkService; /** * 根据mcVisit插入mcIgnition @@ -51,8 +62,6 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { String userAccount = SecurityUtils.getUsername(); String userName = SecurityUtils.getLoginUser().getSysUser().getNickName(); - - McIgnition mcIgnition = new McIgnition(); mcIgnition.setRegionName(mcVisit.getRegionName()); mcIgnition.setGroupName(mcVisit.getGroupName()); @@ -90,6 +99,9 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { //1:添加记录 iMcOperationLogService.insertMcOperationLog("mc_ignition", mcIgnition.getId(), "schsf:mcVisit:ticket_submitAuditTwo", "发起", "1", "导入基础数据-户数", null, JSON.toJSONString(mcIgnition)); + if (i > 0) { + this.sendMcIgnitionNotification(mcIgnition.getId()); + } return i; } @@ -164,6 +176,7 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { /** * 点火维护 + * * @param mcIgnition * @return */ @@ -175,7 +188,7 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { String userName = SecurityUtils.getLoginUser().getSysUser().getNickName(); //老数据 McIgnition mcIgnition_old = mcIgnitionMapper.selectMcIgnitionById(mcIgnitionMaintenanceVo.getId()); - if (mcIgnition_old==null){ + if (mcIgnition_old == null) { throw new RuntimeException("被审核信息不存在!"); } //新数据 @@ -185,8 +198,8 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { mcIgnition_new.setnIgnRsn(mcIgnitionMaintenanceVo.getnIgnRsn()); mcIgnition_new.setUpdateBy(userId.toString()); mcIgnition_new.setUpdateTime(time); - mcIgnition_new.setStatusCode(mcIgnitionMaintenanceVo.getIgnCnfStatusCode().equals("Y")?IgnitionStatusEnums.MAINTENANCE_YES.getCode():IgnitionStatusEnums.MAINTENANCE_NO.getCode()); - mcIgnition_new.setStatusName(mcIgnitionMaintenanceVo.getIgnCnfStatusCode().equals("Y")?IgnitionStatusEnums.MAINTENANCE_YES.getInfo():IgnitionStatusEnums.MAINTENANCE_NO.getInfo()); + mcIgnition_new.setStatusCode(mcIgnitionMaintenanceVo.getIgnCnfStatusCode().equals("Y") ? IgnitionStatusEnums.MAINTENANCE_YES.getCode() : IgnitionStatusEnums.MAINTENANCE_NO.getCode()); + mcIgnition_new.setStatusName(mcIgnitionMaintenanceVo.getIgnCnfStatusCode().equals("Y") ? IgnitionStatusEnums.MAINTENANCE_YES.getInfo() : IgnitionStatusEnums.MAINTENANCE_NO.getInfo()); mcIgnition_new.setCnfPersonId(userId); mcIgnition_new.setCnfPersonAccount(userAccount); mcIgnition_new.setCnfPersonName(userName); @@ -200,6 +213,7 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { /** * 作废 + * * @param visitId */ @Override @@ -209,10 +223,10 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { String userAccount = SecurityUtils.getUsername(); String userName = SecurityUtils.getLoginUser().getSysUser().getNickName(); - McIgnition mcIgnition= new McIgnition(); + McIgnition mcIgnition = new McIgnition(); mcIgnition.setVisitId(visitId); List mcIgnitions = mcIgnitionMapper.selectMcIgnitionList(mcIgnition); - if (mcIgnitions !=null && mcIgnitions.size()>0){ + if (mcIgnitions != null && mcIgnitions.size() > 0) { for (McIgnition mcIgnition_old : mcIgnitions) { //新数据 McIgnition mcIgnition_new = mcIgnition_old.clone(); @@ -227,4 +241,42 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { } } } + + /** + * 点火节点处理人 + * + * @param id + * @return + */ + @Override + public List selectMcIgnitionNodeUserList(Long id) { + McIgnition mcIgnition = mcIgnitionMapper.selectMcIgnitionById(id); + if (mcIgnition == null) { + throw new ServiceException("点火信息不存在!"); + } + //待维护 + if (mcIgnition.getStatusCode().equals(IgnitionStatusEnums.MAINTENANCE.getCode())) { + return mcIgnitionMapper.selectMcIgnitionNodeUserList(String.valueOf(id), "schsf:mcIgnition:maintenance"); + } + return Collections.emptyList(); + } + + /** + * 发送钉钉通知 + * + * @param id + */ + private void sendMcIgnitionNotification(Long id) { + McIgnition mcIgnition = mcIgnitionMapper.selectMcIgnitionById(id); + log.info("点火维护-钉钉通知,点火信息对象:{}", mcIgnition); + if (BeanUtil.isEmpty(mcIgnition)) { + throw new ServiceException("未查询到记录"); + } + //发送通知 + List mcVisitNodeUsersDtos = this.selectMcIgnitionNodeUserList(id); + if (mcVisitNodeUsersDtos != null) { + List userIds = mcVisitNodeUsersDtos.stream().filter(mcVisitNodeUsersDto -> StringUtils.isNotEmpty(mcVisitNodeUsersDto.getDingTalkUserId())).map(NodeUsersDto::getDingTalkUserId).collect(Collectors.toList()); + dingtalkService.sendMarketFeeNotification(userIds, "市场化收费-点火维护", new McIgnitionTemplate(mcIgnition).getNoticemarkdown()); + } + } } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/resources/mapper/McIgnitionMapper.xml b/zr-cloud/zr-modules/zr-schsf/src/main/resources/mapper/McIgnitionMapper.xml index b8ad58f..45c03b8 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/resources/mapper/McIgnitionMapper.xml +++ b/zr-cloud/zr-modules/zr-schsf/src/main/resources/mapper/McIgnitionMapper.xml @@ -220,4 +220,50 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and t.vlg_or_cmty = #{vlgOrCmty} + -- libgit2 0.21.2