liujie
2025-06-16 5af3d2fa829a7a454c8ddbb6ffb2a7685ceb9c77
新增优化1.0
19个文件已修改
571 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/api/DepartmentController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/ComplaintController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/dao/ComplaintMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/dao/SystemUserMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/model/dto/ComplaintCompletionDTO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/model/dto/ComplaintTimeout.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/model/entity/Complaint.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/model/entity/ComplaintFlow.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/model/vo/ComplaintVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/scheduled/ComplaintTasks.java 189 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/ISystemUserService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/ComplaintServiceImpl.java 177 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/IdentityInformationServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/SystemMenuServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/SystemUserServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/utils/AliSmsUtil.java 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/resources/mapper/ComplaintAuditRecordMapper.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/resources/mapper/ComplaintMapper.xml 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/resources/mapper/SystemUserMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/api/DepartmentController.java
@@ -158,6 +158,30 @@
            return R.fail("单位名称重复。");
        }
        departmentService.updateById(department);
        List<SystemUser> list = systemUserService.list(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, department.getId()));
        if(!list.isEmpty()) {
            if (department.getTier() == 2) {
                list.stream().forEach(e -> {
                    e.setAccountLevel(department.getTier());
                    e.setCommunity(null);
                    e.setCommunityId(null);
                    e.setStreet(null);
                    e.setStreetId(null);
                });
            } else if (department.getTier() == 3) {
                list.stream().forEach(e -> {
                    e.setAccountLevel(department.getTier());
                    e.setCommunity(null);
                    e.setCommunityId(null);
                });
            } else if (department.getTier() == 4) {
                list.stream().forEach(e -> {
                    e.setAccountLevel(department.getTier());
                });
            }
            systemUserService.updateBatchById(list);
        }
        return R.ok();
    }
    
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/ComplaintController.java
@@ -126,6 +126,10 @@
    @PostMapping("/save-process")
    @ApiOperation("办理进度录入")
    public R<?> saveProcess(@Valid @RequestBody ComplaintProcessDTO dto){
        Complaint byId = complaintService.getById(dto.getComplaintId());
        if(byId.getAssignStatus()==0){
            return R.fail("该诉求未分配");
        }
        complaintService.saveProcess(dto,getLoginUserInfo());
        return R.ok();
    }
@@ -149,6 +153,12 @@
    @PostMapping("/report")
    @ApiOperation(value = "问题上报")
    public R<?> report(@RequestBody ComplaintReportDTO complaintReportDTO) {
        Complaint byId = complaintService.getById(complaintReportDTO.getComplaintId());
        if(byId.getAssignStatus()==0){
            return R.fail("该诉求未分配");
        }
        complaintService.saveReport(complaintReportDTO, getLoginUserInfo());
        return R.ok();
    }
@@ -170,6 +180,10 @@
    @PostMapping("/saveDelay")
    @ApiOperation(value = "延期申请")
    public R<?> saveDelay(@Valid @RequestBody ComplaintDelayDTO dto){
        Complaint byId = complaintService.getById(dto.getComplaintId());
        if(byId.getAssignStatus()==0){
            return R.fail("该诉求未分配");
        }
        complaintService.saveDelay(dto, getLoginUserInfo());
        return R.ok();
    }
@@ -222,7 +236,9 @@
    @PostMapping("/assignComplain")
    @ApiOperation(value = "分配诉求")
    public R<?> assignComplain(@Valid@RequestBody AssignComplainDto dto) {
        complaintService.assignComplain(getLoginUserInfo(),dto.getComplainId(),dto.getDeptId(),dto.getRemark());
        return R.ok();
    }
@@ -291,6 +307,7 @@
            complaint1.setCompletionOtherDescription(null);
            complaint1.setRemark(null);
            complaint1.setNowLevelTime(new Date());
            complaint1.setNowLevelSms(0);
            complaint1.setRedispatch(1);
            complaintService.save(complaint1);
        }
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/dao/ComplaintMapper.java
@@ -123,7 +123,7 @@
    Page<ComplaintVO> selectComplaintPage4(@Param("page") Page<ComplaintVO> page, @Param("query") ComplaintQuery query, @Param("oneDepartmentId") Integer oneDepartmentId);
    Page<ComplaintVO> selectComplaintPage5(@Param("page") Page<ComplaintVO> page, @Param("query") ComplaintQuery query,  @Param("streetId") String streetId,@Param("ids") List<Integer> ids);
    Page<ComplaintVO> selectComplaintPage5(@Param("page") Page<ComplaintVO> page, @Param("query") ComplaintQuery query,  @Param("streetId") String streetId,@Param("ids") List<Long> ids);
    Page<ComplaintVO> selectComplaintPage6(@Param("page") Page<ComplaintVO> page, @Param("query") ComplaintQuery query, @Param("communityId") Long communityId, @Param("ids") List<Integer> ids);
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/dao/SystemUserMapper.java
@@ -48,4 +48,7 @@
     * @return
     */
    List<RegionVO> getCommunity(@Param("streetId") String streetId);
    String getCreateByIdPhone(@Param("createBy") Long createBy);
}
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/model/dto/ComplaintCompletionDTO.java
@@ -32,4 +32,7 @@
    @ApiModelProperty(value = "办理结果其他说明")
    private String completionOtherDescription;
    @ApiModelProperty(value = "大屏对应houseid")
    private Long houseId;
}
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/model/dto/ComplaintTimeout.java
@@ -7,11 +7,21 @@
@Data
public class ComplaintTimeout {
    private Long complaintId;
    private String title;
//    private String title;
    private Long createBy;
    private Integer reportType;
    private Integer superiorId;
    private Long superiorId;
    private Date closingTime;
    private Integer nowLevel;
    private Integer assignStatus;
    /**
     * assignStatus =1  assignPersonId为部门id
     */
    private Integer assignPersonId;
    private String serialNumber;
}
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/model/entity/Complaint.java
@@ -260,4 +260,13 @@
    @ApiModelProperty("是否重新派单 0否 1是")
    @TableField("redispatch")
    private Integer redispatch;
    @ApiModelProperty("是否发送短信 0否 1是")
    @TableField("now_level_sms")
    private Integer nowLevelSms;
    @TableField("house_id")
    private Long houseId;
}
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/model/entity/ComplaintFlow.java
@@ -52,7 +52,7 @@
    @TableField("create_time")
    private Date createTime;
    @ApiModelProperty(value = "流转类型 0-上报 1-下派")
    @ApiModelProperty(value = "流转类型 0-上报 1-分派")
    @TableField("type")
    private Integer type;
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/model/vo/ComplaintVO.java
@@ -100,6 +100,12 @@
    @ApiModelProperty(value = "已上报次数")
    private Integer reportCount;
    @ApiModelProperty(value = "提醒状态 0正常 1临期  2超时")
    private Integer remindStatus=0;
    @ApiModelProperty(value = "提醒倒计时")
    private Double remindTime;
}
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/scheduled/ComplaintTasks.java
@@ -1,6 +1,7 @@
package com.panzhihua.westcommittee.scheduled;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
@@ -28,14 +29,13 @@
    private final ComplaintAuditRecordMapper complaintAuditRecordMapper;
    private final IWorkOrderItemConfigService workOrderItemConfigService;
    private final ISystemUserService systemUserService;;
    private final UserService userService;
    private final IMessageNotificationService messageNotificationService;
    private final IDepartmentService  departmentService;
    private final IComplaintCommentService complaintCommentService;
    /**
     * 诉求超时处理(每天凌晨两点执行)
     */
//    @Scheduled(cron = "0 0 2 * * ?")
    @Scheduled(fixedRate = 600000)
    public void complaintTimeout() {
        WorkOrderItemConfig config = workOrderItemConfigService.getById(1);
@@ -78,7 +78,7 @@
    /**
     * 自动完成诉求评价
     */
//    @Scheduled(cron = "0 1 0 * * ?")
    @Scheduled(cron = "0 1 0 * * ?")
    public void automaticEvaluation() {
        // 诉求超时提醒
        List<Complaint> complaintList = complaintService.getTimeoutAndNotComment();
@@ -111,49 +111,182 @@
        // 区县超时
        List<ComplaintTimeout> districtTimeOutList = timeOutMap.get(2);
        if (!CollectionUtils.isEmpty(districtTimeOutList)){
            districtTimeOutList.forEach(complaintTimeout -> {
                // 查询状态正常 是区纪委和管理员
                List<SystemUser> districtUserList = systemUserService.list(new LambdaQueryWrapper<SystemUser>()
                        .eq(SystemUser::getAccountLevel, 2)
                        .in(SystemUser::getSystemRoleId,1,2)
                        .eq(SystemUser::getStatus, 1));
                List<String> districtPhoneList = districtUserList.stream().map(SystemUser::getPhone).collect(Collectors.toList());
            // 没有分配的  需要发给层级管理员和纪委
            List<ComplaintTimeout> collect = districtTimeOutList.stream().filter(e -> e.getAssignStatus() == 0).collect(Collectors.toList());
            // 查询状态正常 是区纪委和管理员
            List<SystemUser> districtUserList = systemUserService.list(new LambdaQueryWrapper<SystemUser>()
                    .eq(SystemUser::getAccountLevel, 2)
                    .in(SystemUser::getSystemRoleId,1,2)
                    .eq(SystemUser::getStatus, 1));
            List<String> districtPhoneList = districtUserList.stream().filter(e->e.getSystemRoleId()==1).map(SystemUser::getPhone).collect(Collectors.toList());
            List<String> districtPhoneList1 = districtUserList.stream().filter(e->e.getSystemRoleId()==2).map(SystemUser::getPhone).collect(Collectors.toList());
            collect.forEach(complaintTimeout -> {
                // 发送短信
                AliSmsUtil.sendTimeoutMessage(districtPhoneList,complaintTimeout.getTitle());
                if(!districtPhoneList.isEmpty()){
                    AliSmsUtil.sendTimeoutMessageAdmin(districtPhoneList,complaintTimeout.getSerialNumber());
                }
                if(!districtPhoneList1.isEmpty()){
                    AliSmsUtil.sendTimeoutMessage(districtPhoneList1,complaintTimeout.getSerialNumber());
                }
            });
            // 分配了 查询是否有管理员 没有找层级管理员
            List<ComplaintTimeout> collect1 = districtTimeOutList.stream().filter(e -> e.getAssignStatus() == 1).collect(Collectors.toList());
            if(!collect1.isEmpty()){
                // 分配的单位id
                List<Integer> deptIds = collect1.stream().map(ComplaintTimeout::getAssignPersonId).collect(Collectors.toList());
                // 这些单位的管理员
                List<SystemUser> list = systemUserService.list(new LambdaQueryWrapper<SystemUser>().in(SystemUser::getOneDepartmentId, deptIds).in(SystemUser::getSystemRoleId,1,2).eq(SystemUser::getStatus,1));
                collect1.forEach(complaintTimeout -> {
                    // 当前单位的管理员
                    List<SystemUser> systemUsers = list.stream().filter(e -> e.getOneDepartmentId().equals(complaintTimeout.getAssignPersonId())).collect(Collectors.toList());
                    if(!systemUsers.isEmpty()){
                        // 找出当前单位的管理员 纪委
                        List<String> districtPhoneList2 = systemUsers.stream().filter(e->e.getSystemRoleId()==1).map(SystemUser::getPhone).collect(Collectors.toList());
                        List<String> districtPhoneList3 = systemUsers.stream().filter(e->e.getSystemRoleId()==2).map(SystemUser::getPhone).collect(Collectors.toList());
                        // 发送短信
                        if(!districtPhoneList2.isEmpty()){
                            AliSmsUtil.sendTimeoutMessageAdmin(districtPhoneList2,complaintTimeout.getSerialNumber());
                        }
                        if(!districtPhoneList3.isEmpty()){
                            AliSmsUtil.sendTimeoutMessage(districtPhoneList3,complaintTimeout.getSerialNumber());
                        }
                    }else {
                        // 发送短信
                        if(!districtPhoneList.isEmpty()){
                            AliSmsUtil.sendTimeoutMessageAdmin(districtPhoneList,complaintTimeout.getSerialNumber());
                        }
                        if(!districtPhoneList1.isEmpty()){
                            AliSmsUtil.sendTimeoutMessage(districtPhoneList1,complaintTimeout.getSerialNumber());
                        }
                    }
                });
            }
        }
        // 街道超时
        List<ComplaintTimeout> streetTimeOutList = timeOutMap.get(3);
        if (!CollectionUtils.isEmpty(streetTimeOutList)){
            streetTimeOutList.forEach(complaintTimeout -> {
                List<SystemUser> streetUserList = systemUserService.list(new LambdaQueryWrapper<SystemUser>()
                        .eq(SystemUser::getAccountLevel, 3)
                        .in(SystemUser::getSystemRoleId,1,2)
                        .eq(SystemUser::getStatus, 1));
                List<String> streetPhoneList = streetUserList.stream().map(SystemUser::getPhone).collect(Collectors.toList());
                // 发送短信
                AliSmsUtil.sendTimeoutMessage(streetPhoneList,complaintTimeout.getTitle());
            // 没有分配的  需要发给层级管理员和纪委
            List<ComplaintTimeout> collect = streetTimeOutList.stream().filter(e -> e.getAssignStatus() == 0).collect(Collectors.toList());
            List<SystemUser> streetUserList = systemUserService.list(new LambdaQueryWrapper<SystemUser>()
                    .eq(SystemUser::getAccountLevel, 3)
                    .in(SystemUser::getSystemRoleId,1,2)
                    .eq(SystemUser::getStatus, 1));
           collect.forEach(complaintTimeout -> {
               List<String> streetPhoneList = streetUserList.stream().filter(e->e.getSystemRoleId()==1 && e.getStreetId().equals(complaintTimeout.getSuperiorId().toString())).map(SystemUser::getPhone).collect(Collectors.toList());
               List<String> streetPhoneList1 = streetUserList.stream().filter(e->e.getSystemRoleId()==2 && e.getStreetId().equals(complaintTimeout.getSuperiorId().toString())).map(SystemUser::getPhone).collect(Collectors.toList());
               // 发送短信
                if(!streetPhoneList.isEmpty()){
                    AliSmsUtil.sendTimeoutMessageAdmin(streetPhoneList,complaintTimeout.getSerialNumber());
                }
                if(!streetPhoneList1.isEmpty()){
                    AliSmsUtil.sendTimeoutMessage(streetPhoneList1,complaintTimeout.getSerialNumber());
                }
            });
            // 分配了
            List<ComplaintTimeout> collect1 = streetTimeOutList.stream().filter(e -> e.getAssignStatus() == 1).collect(Collectors.toList());
            if(!collect1.isEmpty()){
                List<Integer> deptIds = collect1.stream().map(ComplaintTimeout::getAssignPersonId).collect(Collectors.toList());
                List<SystemUser> list = systemUserService.list(new LambdaQueryWrapper<SystemUser>().in(SystemUser::getOneDepartmentId, deptIds).in(SystemUser::getSystemRoleId,1,2).eq(SystemUser::getStatus,1));
                collect1.forEach(complaintTimeout -> {
                    List<SystemUser> systemUsers = list.stream().filter(e -> e.getOneDepartmentId().equals(complaintTimeout.getAssignPersonId())).collect(Collectors.toList());
                    if(!systemUsers.isEmpty()){
                        List<String> streetPhoneList2 = systemUsers.stream().filter(e->e.getSystemRoleId()==1).map(SystemUser::getPhone).collect(Collectors.toList());
                        List<String> streetPhoneList3 = systemUsers.stream().filter(e->e.getSystemRoleId()==2).map(SystemUser::getPhone).collect(Collectors.toList());
                        // 发送短信
                        if(!streetPhoneList2.isEmpty()){
                            AliSmsUtil.sendTimeoutMessageAdmin(streetPhoneList2,complaintTimeout.getSerialNumber());
                        }
                        if(!streetPhoneList3.isEmpty()){
                            AliSmsUtil.sendTimeoutMessage(streetPhoneList3,complaintTimeout.getSerialNumber());
                        }
                    }else {
                        List<String> streetPhoneList = streetUserList.stream().filter(e->e.getSystemRoleId()==1 && e.getStreetId().equals(complaintTimeout.getSuperiorId().toString())).map(SystemUser::getPhone).collect(Collectors.toList());
                        List<String> streetPhoneList1 = streetUserList.stream().filter(e->e.getSystemRoleId()==2 && e.getStreetId().equals(complaintTimeout.getSuperiorId().toString())).map(SystemUser::getPhone).collect(Collectors.toList());
                        // 发送短信
                        if(!streetPhoneList.isEmpty()){
                            AliSmsUtil.sendTimeoutMessageAdmin(streetPhoneList,complaintTimeout.getSerialNumber());
                        }
                        if(!streetPhoneList1.isEmpty()){
                            AliSmsUtil.sendTimeoutMessage(streetPhoneList1,complaintTimeout.getSerialNumber());
                        }
                    }
                });
            }
        }
        // 社区超时
        List<ComplaintTimeout> communityTimeOutList = timeOutMap.get(4);
        if (!CollectionUtils.isEmpty(communityTimeOutList)){
            communityTimeOutList.forEach(complaintTimeout -> {
                List<SystemUser> communityUserList = systemUserService.list(new LambdaQueryWrapper<SystemUser>()
                        .eq(SystemUser::getAccountLevel, 4)
                        .in(SystemUser::getSystemRoleId,1,2)
                        .eq(SystemUser::getStatus, 1));
                List<String> communityPhoneList = communityUserList.stream().map(SystemUser::getPhone).collect(Collectors.toList());
            List<ComplaintTimeout> collect = communityTimeOutList.stream().filter(e -> e.getAssignStatus() == 0).collect(Collectors.toList());
            List<SystemUser> communityUserList = systemUserService.list(new LambdaQueryWrapper<SystemUser>()
                    .eq(SystemUser::getAccountLevel, 4)
                    .in(SystemUser::getSystemRoleId,1,2)
                    .eq(SystemUser::getStatus, 1));
            collect.forEach(complaintTimeout -> {
                List<String> communityPhoneList = communityUserList.stream().filter(e->e.getSystemRoleId()==1 && e.getCommunityId().equals(complaintTimeout.getSuperiorId())).map(SystemUser::getPhone).collect(Collectors.toList());
                List<String> communityPhoneList1 = communityUserList.stream().filter(e->e.getSystemRoleId()==2 && e.getCommunityId().equals(complaintTimeout.getSuperiorId())).map(SystemUser::getPhone).collect(Collectors.toList());
                // 发送短信
                AliSmsUtil.sendTimeoutMessage(communityPhoneList,complaintTimeout.getTitle());
                if(!communityPhoneList.isEmpty()){
                    AliSmsUtil.sendTimeoutMessageAdmin(communityPhoneList, complaintTimeout.getSerialNumber());
                }
                if(!communityPhoneList1.isEmpty()){
                    AliSmsUtil.sendTimeoutMessage(communityPhoneList1,complaintTimeout.getSerialNumber());
                }
            });
            // 分配了
            List<ComplaintTimeout> collect1 = communityTimeOutList.stream().filter(e -> e.getAssignStatus() == 1).collect(Collectors.toList());
            if(!collect1.isEmpty()){
                List<Integer> deptIds = collect1.stream().map(ComplaintTimeout::getAssignPersonId).collect(Collectors.toList());
                List<SystemUser> list = systemUserService.list(new LambdaQueryWrapper<SystemUser>().in(SystemUser::getOneDepartmentId, deptIds).in(SystemUser::getSystemRoleId,1,2).eq(SystemUser::getStatus,1));
                collect1.forEach(complaintTimeout -> {
                    List<SystemUser> systemUsers = list.stream().filter(e -> e.getOneDepartmentId().equals(complaintTimeout.getAssignPersonId())).collect(Collectors.toList());
                    if(!systemUsers.isEmpty()){
                        List<String> communityPhoneList2 = systemUsers.stream().filter(e->e.getSystemRoleId()==1).map(SystemUser::getPhone).collect(Collectors.toList());
                        List<String> communityPhoneList3 = systemUsers.stream().filter(e->e.getSystemRoleId()==2).map(SystemUser::getPhone).collect(Collectors.toList());
                        // 发送短信
                        if(!communityPhoneList2.isEmpty()){
                            AliSmsUtil.sendTimeoutMessageAdmin(communityPhoneList2, complaintTimeout.getSerialNumber());
                        }
                        if(!communityPhoneList3.isEmpty()){
                            AliSmsUtil.sendTimeoutMessage(communityPhoneList3,complaintTimeout.getSerialNumber());
                        }
                    }else {
                        List<String> communityPhoneList = communityUserList.stream().filter(e->e.getSystemRoleId()==1 && e.getCommunityId().equals(complaintTimeout.getSuperiorId())).map(SystemUser::getPhone).collect(Collectors.toList());
                        List<String> communityPhoneList1 = communityUserList.stream().filter(e->e.getSystemRoleId()==2 && e.getCommunityId().equals(complaintTimeout.getSuperiorId())).map(SystemUser::getPhone).collect(Collectors.toList());
                        // 发送短信
                        if(!communityPhoneList.isEmpty()){
                            AliSmsUtil.sendTimeoutMessageAdmin(communityPhoneList, complaintTimeout.getSerialNumber());
                        }
                        if(!communityPhoneList1.isEmpty()){
                            AliSmsUtil.sendTimeoutMessage(communityPhoneList1,complaintTimeout.getSerialNumber());
                        }
                    }
                });
            }
        }
        if(!complaintTimeoutList.isEmpty()) {
            // 短信发送完成 当前不在发送
            complaintService.update(new LambdaUpdateWrapper<Complaint>().in(Complaint::getId, complaintTimeoutList.stream().map(ComplaintTimeout::getComplaintId).collect(Collectors.toList())).set(Complaint::getNowLevelSms, 1));
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/ISystemUserService.java
@@ -66,4 +66,6 @@
     */
    List<RegionVO> getRegionTree(SystemUserVo loginUserInfo);
    String getCreateByIdPhone(Long createBy);
}
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/ComplaintServiceImpl.java
@@ -27,6 +27,7 @@
import com.panzhihua.westcommittee.model.query.ComplaintQuery;
import com.panzhihua.westcommittee.model.vo.*;
import com.panzhihua.westcommittee.service.*;
import com.panzhihua.westcommittee.utils.AliSmsUtil;
import com.panzhihua.westcommittee.warpper.*;
import jodd.util.StringUtil;
import lombok.RequiredArgsConstructor;
@@ -78,6 +79,7 @@
    private final IPartyMemberService partyMemberService;
    private final IdentityInformationService identityInformationService;
    private final IDepartmentService departmentService;
    private final RedisUtils redisUtils;
    @Override
@@ -113,12 +115,6 @@
        if (identity == 2) {
            accountLevel = systemUser.getAccountLevel();
            switch (accountLevel) {
                case 1:
                    //市级
                    complaint.setCityCode(510400);
                    complaint.setReportUserName(systemUser.getName());
                    complaint.setReportUserPhone(systemUser.getPhone());
                    break;
                case 2:
                    //区县级
                    complaint.setCityCode(510400);
@@ -175,15 +171,25 @@
//            }
        } else {
            PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone());
            //党员
            complaint.setCityCode(510400);
            complaint.setDistrictsCode(Integer.valueOf(partyMember.getDistrictsCode()));
            complaint.setStreetId(Long.valueOf(partyMember.getStreetId()));
            complaint.setCommunityId(partyMember.getCommunityId());
            complaint.setPartyMemberId(partyMember.getId());
            complaint.setReportUserName(partyMember.getName());
            complaint.setReportUserPhone(partyMember.getPhone());
            complaint.setSuperiorId(partyMember.getCommunityId());
            if(partyMember!=null){
                //党员
                complaint.setDistrictsCode(Integer.valueOf(partyMember.getDistrictsCode()));
                complaint.setStreetId(Long.valueOf(partyMember.getStreetId()));
                complaint.setCommunityId(partyMember.getCommunityId());
                complaint.setPartyMemberId(partyMember.getId());
                complaint.setReportUserName(partyMember.getName());
                complaint.setReportUserPhone(partyMember.getPhone());
                complaint.setSuperiorId(partyMember.getCommunityId());
            }else {
                complaint.setDistrictsCode(Integer.valueOf(loginUserInfoVO.getAreaCode()));
                complaint.setStreetId(loginUserInfoVO.getStreetId());
                complaint.setCommunityId(loginUserInfoVO.getCommunityId());
                complaint.setReportUserName(loginUserInfoVO.getName());
                complaint.setReportUserPhone(loginUserInfoVO.getPhone());
                complaint.setSuperiorId(loginUserInfoVO.getCommunityId());
            }
            // 添加处理人
//            SystemUser one = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getAccountLevel, 4).eq(SystemUser::getIsDeptAdmin, 1).eq(SystemUser::getCommunityId, partyMember.getCommunityId()).ne(SystemUser::getStatus, 3));
@@ -211,6 +217,7 @@
            throw new ServiceException("工单事项未配置,请联系管理员");
        }
        complaint.setNowLevelTime(new Date());
        complaint.setNowLevelSms(0);
        // 保存诉求记录
        save(complaint);
    }
@@ -282,7 +289,11 @@
            systemUser = null;
            //党员
            PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone());
            targetId = partyMember.getCommunityId();
            if(partyMember!=null){
                targetId = partyMember.getCommunityId();
            }else {
                targetId = loginUserInfoVO.getCommunityId();
            }
        }
        //查询对应诉求
        //page = baseMapper.selectComplaintPage(page, query, targetId, isSuperior);
@@ -295,15 +306,16 @@
                // 是管理员 看所有的
                page = baseMapper.selectComplaintPage3(page, query, accountLevel, targetId);
            } else {
                // 不是管理员 看到指派给我的单位的诉求
                page = baseMapper.selectComplaintPage4(page, query, systemUser.getOneDepartmentId());
            }
        } else if (accountLevel == 3) {
            // 街道 1
            if (systemUser.getSystemRoleId() == 1) {
                // 获取这个街道所管的社区id
                List<Long> communityIds = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId,systemUser.getStreetId())).stream().map(ComAct::getCommunityId).collect(Collectors.toList());
                // 是管理员 可以看到下派来的  也可以看到上派待审核的
                page = baseMapper.selectComplaintPage5(page, query, systemUser.getStreetId(), null);
                page = baseMapper.selectComplaintPage5(page, query, systemUser.getStreetId(), communityIds);
            } else {
                // 不是管理员 看指派给我的
                page = baseMapper.selectComplaintPage4(page, query, systemUser.getOneDepartmentId());
@@ -320,7 +332,58 @@
            }
        }
        Date date = new Date();
        WorkOrderItemConfig config = workOrderItemConfigService.getById(1);
        for (ComplaintVO record : page.getRecords()) {
            // 处理页面颜色展示和倒计时
            Date nowLevelTime = record.getNowLevelTime();
            if(record.getNowLevel()==2){
                Integer HandlingTime = config.getDistrictHandlingTime();
                Integer DeadlineReminder = config.getDistrictDeadlineReminder();
                // 判断是超时 还是  临期
                if (nowLevelTime.getTime()  + HandlingTime * 24 * 60 * 60 * 1000< date.getTime()) {
                    record.setRemindStatus(2);
                }else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
                    record.setRemindStatus(1);
                }
                long l = nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 - date.getTime();
                double days = (double) l / (24 * 60 * 60 * 1000); // 毫秒转天数
                BigDecimal result = new BigDecimal(days).setScale(1, RoundingMode.HALF_UP); // 保留1位小数
                record.setRemindTime(result.doubleValue());
            }else if(record.getNowLevel()==3){
                Integer HandlingTime = config.getStreetHandlingTime();
                Integer DeadlineReminder = config.getStreetDeadlineReminder();
                // 判断是超时 还是  临期
                if (nowLevelTime.getTime()  + HandlingTime * 24 * 60 * 60 * 1000< date.getTime()) {
                    record.setRemindStatus(2);
                }else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
                    record.setRemindStatus(1);
                }
                long l = nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 - date.getTime();
                double days = (double) l / (24 * 60 * 60 * 1000); // 毫秒转天数
                BigDecimal result = new BigDecimal(days).setScale(1, RoundingMode.HALF_UP); // 保留1位小数
                record.setRemindTime(result.doubleValue());
            } else if(record.getNowLevel()==4){
                Integer HandlingTime = config.getCommunityHandlingTime();
                Integer DeadlineReminder = config.getCommunityDeadlineReminder();
                // 判断是超时 还是  临期
                if (nowLevelTime.getTime()  + HandlingTime * 24 * 60 * 60 * 1000< date.getTime()) {
                    record.setRemindStatus(2);
                }else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
                    record.setRemindStatus(1);
                }
                long l = nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 - date.getTime();
                double days = (double) l / (24 * 60 * 60 * 1000); // 毫秒转天数
                BigDecimal result = new BigDecimal(days).setScale(1, RoundingMode.HALF_UP); // 保留1位小数
                record.setRemindTime(result.doubleValue());
            }
            int count = complaintCommentService.count(new LambdaQueryWrapper<ComplaintComment>().eq(ComplaintComment::getComplaintId, record.getId()));
            if (count > 0) {
                record.setEvaluateButtonStatus(1);
@@ -614,7 +677,12 @@
        } else {
            //党员
            PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone());
            targetId = partyMember.getId().toString();
            if(partyMember!=null){
                targetId = partyMember.getId().toString();
            }else {
                targetId =loginUserInfoVO.getUserId().toString();
            }
        }
        // 更新状态 此时status是表中的状态 未做变动
        // 如果是区级
@@ -631,7 +699,7 @@
                    }
                }
                if (detail.getFirstStatus() == 0) {
                    detail.setStatus(-2);
                    detail.setStatus(5);
                }
            }
@@ -646,7 +714,7 @@
                    }
                }
                if (detail.getFirstStatus() == 0) {
                    detail.setStatus(-2);
                    detail.setStatus(5);
                }
            }
            if (systemUser.getAccountLevel() == 4) {
@@ -660,14 +728,14 @@
                    }
                }
                if (detail.getFirstStatus() == 0) {
                    detail.setStatus(-2);
                    detail.setStatus(5);
                }
            }
        } else {
            if (detail.getFirstStatus() == 1 && detail.getStatus() != 3  && detail.getStatus() != 8) {
                detail.setStatus(0);
            } else if(detail.getFirstStatus()==0){
                detail.setStatus(-2);
                detail.setStatus(5);
            }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 3  ){
                detail.setStatus(3);
            }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 8){
@@ -676,8 +744,8 @@
        }
        if (detail.getStatus().equals(0)) {
            List<ComplaintFlow> list = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByAsc(ComplaintFlow::getSort).list();
        if (true) {
            List<ComplaintFlow> list = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByDesc(ComplaintFlow::getCreateTime).orderByAsc(ComplaintFlow::getType).list();
            detail.setComplaintFlows(list);
        }
        //查询办理进度
@@ -724,14 +792,14 @@
        if (detail.getFirstStatus() == 1 && detail.getStatus() != 3  && detail.getStatus() != 8) {
            detail.setStatus(0);
        } else if(detail.getFirstStatus()==0){
            detail.setStatus(-2);
            detail.setStatus(5);
        }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 3  ){
            detail.setStatus(3);
        }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 8){
            detail.setStatus(8);
        }
        List<ComplaintFlow> list = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByAsc(ComplaintFlow::getSort).list();
        List<ComplaintFlow> list = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByDesc(ComplaintFlow::getCreateTime).orderByAsc(ComplaintFlow::getType).list();
        detail.setComplaintFlows(list);
        //查询办理进度
        List<ComplaintProgress> list1 = complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, id)
@@ -824,6 +892,16 @@
        double handlingDay = new BigDecimal(l).divide(new BigDecimal("24"), 2, RoundingMode.HALF_UP).doubleValue();
        complaint.setHandlingDay(handlingDay);
        this.updateById(complaint);
        if(dto.getStatus()==3){
            // 发送短信
            Long createBy = complaint.getCreateBy();
            String phone = systemUserService.getCreateByIdPhone(createBy);
            if(StringUtils.isNotEmpty(phone)){
                AliSmsUtil.sendSuccessMessage(phone);
            }
        }
    }
    /**
@@ -935,6 +1013,7 @@
        complaint.setLastLevel(nowLevel + 1);
        complaint.setAssignStatus(0);
        complaint.setNowLevelTime(new Date());
        complaint.setNowLevelSms(0);
        updateById(complaint);
        // 标记最新
@@ -1080,6 +1159,7 @@
        complaint.setNowLevel(nowLevel);
        complaint.setLastLevel(nowLevel);
        complaint.setNowLevelTime(new Date());
        complaint.setNowLevelSms(0);
        this.updateById(complaint);
        complaintAuditRecord.setSuperiorId(superiorId);
@@ -1145,6 +1225,9 @@
            complaintAuditRecord2.setReportType(complaintAuditRecord.getReporterLevel());
            complaintFlowService.createFlow(complaintAuditRecord2, 0, loginUserInfoVO.getUserId());
            // 通过修改状态  已经修改superiorId  和层级  不需要修改 superiorId
            Complaint complaint = this.getById(complaintReporAuditDTO.getId());
            complaint.setAssignPersonId(complaintReporAuditDTO.getDeptId());
@@ -1153,8 +1236,25 @@
            complaint.setLastLevel(complaint.getNowLevel());
            complaint.setRemark(complaintReporAuditDTO.getRemark());
            complaint.setNowLevelTime(new Date());
            this.updateById(complaint);
            complaint.setNowLevelSms(0);
            // 分配流转
            ComplaintFlow complaintFlow = new ComplaintFlow();
            complaintFlow.setComplaintId(complaintReporAuditDTO.getId());
            complaintFlow.setLevel(complaintAuditRecord.getReporterLevel());
            Department byId = departmentService.getById(complaintReporAuditDTO.getDeptId());
            complaintFlow.setName(byId.getName());
            complaintFlow.setType(1);
            complaintFlow.setCreateTime(new Date(System.currentTimeMillis()+1000));
            complaintFlowService.save(complaintFlow);
            this.updateById(complaint);
            List<SystemUser> list = systemUserService.list(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, complaintReporAuditDTO.getDeptId()).eq(SystemUser::getSystemRoleId, 1).eq(SystemUser::getStatus, 1));
            if(!list.isEmpty()){
                List<String> phoneList = list.stream().map(SystemUser::getPhone).collect(Collectors.toList());
                AliSmsUtil.sendAssignMessageAdmin(phoneList,complaint.getSerialNumber());
            }
        } else {
            complaintAuditRecord.setRejectReason(complaintReporAuditDTO.getRejectReason());
@@ -1169,6 +1269,7 @@
            complaint.setSuperiorId(complaint.getLastSuperiorId());
            complaint.setNowLevel(complaint.getLastLevel());
            complaint.setNowLevelTime(new Date());
            complaint.setNowLevelSms(0);
            this.updateById(complaint);
        }
@@ -2013,7 +2114,25 @@
            complaint.setAssignStatus(1);
            complaint.setRemark(remark);
            complaint.setNowLevelTime(new Date());
            complaint.setNowLevelSms(0);
            baseMapper.updateById(complaint);
            Department department = departmentService.getById(userId);
            ComplaintFlow complaintFlow = new ComplaintFlow();
            complaintFlow.setComplaintId(complainId);
            complaintFlow.setLevel(complaint.getNowLevel());
            complaintFlow.setName(department.getName());
            complaintFlow.setCreateTime(new Date());
            complaintFlow.setType(1);
            complaintFlowService.save(complaintFlow);
            List<SystemUser> list = systemUserService.list(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, userId).eq(SystemUser::getSystemRoleId, 1).eq(SystemUser::getStatus, 1));
            if(!list.isEmpty()){
                List<String> phoneList = list.stream().map(SystemUser::getPhone).collect(Collectors.toList());
                AliSmsUtil.sendAssignMessageAdmin(phoneList,complaint.getSerialNumber());
            }
        } else {
            throw new ServiceException("你没有分配权限");
        }
@@ -2027,15 +2146,13 @@
        // 已分派了的
        Page<ComplaintVO> page = new Page<>(query.getPageNum(), query.getPageSize());
        String address = this.baseMapper.getHouseAddressFromId(query.getHouseId());
        query.setAddress(address);
        page = baseMapper.pageScreenList(page, query);
        page.getRecords().forEach(detail -> {
            if (detail.getFirstStatus() == 1 && detail.getStatus() != 3  && detail.getStatus() != 8) {
                detail.setStatus(0);
            } else if(detail.getFirstStatus()==0){
                detail.setStatus(-2);
                detail.setStatus(5);
            }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 3  ){
                detail.setStatus(3);
            }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 8){
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/IdentityInformationServiceImpl.java
@@ -209,19 +209,15 @@
        if (isFrozen) {
            throw new ServiceException("您的账号已被冻结,请联系管理员");
        }
        List<PermissionsVO> permissions = identityInformation.getPermissions();
        if (CollectionUtil.isEmpty(permissions) || Objects.isNull(identityInformation.getIdentity())){
            throw new ServiceException("请先完成认证");
        }
        SystemUser systemUser = identityInformation.getSystemUser();
        if (identityInformation.getIdentity() == 2 && Objects.isNull(systemUser)) {
            throw new ServiceException("管理员信息不存在");
        }
        PartyMember partyMember = identityInformation.getPartyMember();
        if (identityInformation.getIdentity() == 1 && Objects.isNull(partyMember)) {
            throw new ServiceException("党员信息不存在");
        }
//        PartyMember partyMember = identityInformation.getPartyMember();
//        if (identityInformation.getIdentity() == 1 && Objects.isNull(partyMember)) {
//            throw new ServiceException("党员信息不存在");
//        }
        return identityInformation;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/SystemMenuServiceImpl.java
@@ -20,7 +20,7 @@
    @Override
    public List<SystemMenu> getSystemMenuList() {
        List<SystemMenu> list = this.list();
        List<SystemMenu> collect = list.stream().filter(s->s.getParentId() == 0 && s.getId()==1).collect(Collectors.toList());
        List<SystemMenu> collect = list.stream().filter(s->s.getParentId() == 0 && (s.getId()==1 || s.getId()==2)).collect(Collectors.toList());
        for (SystemMenu systemMenu : collect) {
            build(systemMenu, list);
        }
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/SystemUserServiceImpl.java
@@ -116,7 +116,7 @@
     * @return
     */
    @Override
    public List<RegionVO> getRegionTree(SystemUserVo loginUserInfo) {
    public List<RegionVO>     getRegionTree(SystemUserVo loginUserInfo) {
        log.info("getRegionTree入参:{}",JSONObject.toJSONString(loginUserInfo));
        SystemUser systemUser = getById(loginUserInfo.getId());
        Integer accountLevel = systemUser.getAccountLevel();
@@ -170,4 +170,9 @@
        return regionTree;
    }
    @Override
    public String getCreateByIdPhone(Long createBy) {
        return this.baseMapper.getCreateByIdPhone(createBy);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/utils/AliSmsUtil.java
@@ -11,19 +11,28 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
@Slf4j
public class AliSmsUtil {
    private static final String ACCESS_KEY_ID = "LTAI5t8EwfjWRWs7tJGimAQG";
    private static final String ACCESS_KEY_SECRET = "UjuTDcXO14dSQ7STg8Pf3idjLqwx1M";
    private static final String SIGN_NAME = "花城e十";
    private static final String TIME_OUT_TEMPLATE_CODE = "SMS_479120493";
    private static final String SIGN_NAME = "攀枝花市西区玉泉街道";
    // 管理员模板
    private static final String TIME_OUT_TEMPLATE_CODE_ADMIN = "SMS_488715181";
    // 纪委模板
    private static final String TIME_OUT_TEMPLATE_CODE = "SMS_488700190";
    // 分派模板
    private static final String ASSIGN_TEMPLATE_CODE = "SMS_488670038";
    // 办结模板
    private static final String SUCCESS_TEMPLATE_CODE = "SMS_488650016";
    private static final String EXPIRE_TEMPLATE_CODE = "SMS_479510160";
    /**
     * 发送诉求超时提醒短信
@@ -33,8 +42,19 @@
    public static void  sendTimeoutMessage(List<String> phoneList, String title) {
        Map<String, String> param = new HashMap<>(3);
        param.put("title", title);
        param.put("nomber", title);
        sendBatchSms(phoneList, SIGN_NAME, TIME_OUT_TEMPLATE_CODE, param);
    }
    public static void  sendTimeoutMessageAdmin(List<String> phoneList, String title) {
        Map<String, String> param = new HashMap<>(3);
        param.put("nomber", title);
        sendBatchSms(phoneList, SIGN_NAME, TIME_OUT_TEMPLATE_CODE_ADMIN, param);
    }
    public static void  sendAssignMessageAdmin(List<String> phoneList, String title) {
        Map<String, String> param = new HashMap<>(3);
        sendBatchSms(phoneList, SIGN_NAME, ASSIGN_TEMPLATE_CODE, param);
    }
    /**
@@ -51,7 +71,16 @@
        param.put("times", String.valueOf(days));
        sendBatchSms(phoneList, SIGN_NAME, EXPIRE_TEMPLATE_CODE, param);
    }
    public static void sendSuccessMessage(String phone) {
        Map<String, String> param = new HashMap<>(3);
        sendSms(phone,SIGN_NAME,SUCCESS_TEMPLATE_CODE,param);
    }
    public static void main(String[] args) {
        sendSuccessMessage("19915944902");
    }
    /**
     * 阿里发送短信
     *
@@ -61,7 +90,7 @@
     * @param param
     * @return
     */
    private boolean sendSms(String phone, String signName, String templateCode, Map<String, String> param) {
    private static boolean sendSms(String phone, String signName, String templateCode, Map<String, String> param) {
        // 可自助调整超时时间
        System.setProperty("sun.net.client.defaultConnectTimeout", "30000");
        System.setProperty("sun.net.client.defaultReadTimeout", "30000");
@@ -84,6 +113,7 @@
            SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest);
            // hint 此处可能会抛出异常,注意catch
            if (StringUtils.equalsIgnoreCase("ok", sendSmsResponse.getBody().getCode())) {
                log.info("{}短信发送成功:{}", phone, sendSmsResponse.getBody().getMessage());
                return true;
            } else {
                log.error("{}短信发送失败:{}", phone, sendSmsResponse.getBody().getMessage());
@@ -140,4 +170,5 @@
        return new Client(config);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/resources/mapper/ComplaintAuditRecordMapper.xml
@@ -6,12 +6,15 @@
            SELECT
            id complaintId,
            description_title title,
            serial_number serialNumber,
            create_by,
            create_time,
            now_level AS nowLevel
            now_level AS nowLevel,
            assign_status AS assignStatus,
            assign_person_id AS assignPersonId
            FROM
            west_complaint
            WHERE NOW() > now_level_time + INTERVAL
            WHERE now_level_sms = 0 and NOW() > now_level_time + INTERVAL
            CASE now_level
            WHEN 2 THEN ${districtDay}
            WHEN 3 THEN ${streetDay}
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/resources/mapper/ComplaintMapper.xml
@@ -215,6 +215,7 @@
        sc.superior_id,
        sc.last_superior_id,
        sc.now_level,
        sc.now_level_time,
        sc.last_level,
        sc.assign_status,
        sc.first_status as firstStatus,
@@ -819,9 +820,9 @@
        sc.images,
        sc.videos,
        CASE
        WHEN sc.first_status = 1 and sc.status != 3 and sc.status != 8 and sc.first_status=1 THEN 0
        WHEN sc.first_status = 1 and sc.status != 3 and sc.status != 8  THEN 0
        WHEN sc.first_status = 1 and sc.status = 8 THEN 3
        WHEN sc.first_status = 0 and sc.assign_status = 0   THEN -2
        WHEN sc.first_status = 0 and sc.assign_status = 0   THEN 5
        WHEN sc.assign_status = 0  and sc.first_status = 1 THEN -1
        ELSE sc.status
        END AS status,
@@ -848,6 +849,8 @@
        sc.latitude,
        sc.longitude,
        sc.redispatch,
        sc.now_level,
        sc.now_level_time,
        scar.audit_type,
        scar.audit_status,
        scar.reporter_level,
@@ -916,6 +919,8 @@
        sc.latitude,
        sc.longitude,
        sc.redispatch,
        sc.now_level,
        sc.now_level_time,
        scar.audit_type,
        scar.audit_status,
        scar.reporter_level,
@@ -934,6 +939,9 @@
              ) as t1 where 1=1
        <if test="query.status !=null">
            and t1.status = #{query.status}
        </if>
        <if test="query.status ==null">
            and t1.status >-1
        </if>
        ORDER BY t1.create_time DESC
    </select>
@@ -984,6 +992,8 @@
        sc.latitude,
        sc.longitude,
        sc.redispatch,
        sc.now_level,
        sc.now_level_time,
        scar.audit_type,
        scar.audit_status,
        scar.reporter_level,
@@ -1001,10 +1011,15 @@
        LEFT JOIN west_complaint_audit_record scar ON scar.complaint_id = sc.id and scar.latest_flag = 1
        where
           (sc.superior_id =#{streetId} and 3 =sc.now_level) or (sc.last_superior_id = #{streetId} and  3 =sc.last_level)
        or (4 =sc.now_level)
        or (4 =sc.now_level and sc.superior_id in <foreach collection="ids" item="item" separator="," open="(" close=")">#{item}</foreach>)
        or (sc.community_id in <foreach collection="ids" item="item" separator="," open="(" close=")">#{item}</foreach>)
        or (sc.street_id =#{streetId})
        ) as t1 where 1=1
        <if test="query.status !=null">
            and t1.status = #{query.status}
        </if>
        <if test="query.status ==null">
            and t1.status >-1
        </if>
        ORDER BY t1.create_time DESC
    </select>
@@ -1052,6 +1067,8 @@
            sc.latitude,
            sc.longitude,
            sc.redispatch,
            sc.now_level,
            sc.now_level_time,
            scar.audit_type,
            scar.audit_status,
            scar.reporter_level,
@@ -1122,6 +1139,8 @@
        sc.latitude,
        sc.longitude,
        sc.redispatch,
        sc.now_level,
        sc.now_level_time,
        scar.audit_type,
        scar.audit_status,
        scar.reporter_level,
@@ -1139,9 +1158,13 @@
        LEFT JOIN west_complaint_audit_record scar ON scar.complaint_id = sc.id and scar.latest_flag = 1
        where
           (sc.superior_id =#{communityId} and sc.now_level=4) or (sc.last_superior_id = #{communityId} and sc.last_level=4)
        or (sc.community_id = #{communityId})
        ) as t1  where 1=1
        <if test="query.status !=null">
            and t1.status = #{query.status}
        </if>
        <if test="query.status ==null">
            and t1.status >-1
        </if>
        ORDER BY t1.create_time DESC
    </select>
@@ -1163,7 +1186,7 @@
        CASE
        WHEN sc.first_status = 1 and sc.status != 3 and sc.status != 8 and sc.first_status=1 THEN 0
        WHEN sc.first_status = 1 and sc.status = 8 THEN 3
        WHEN sc.first_status = 0 and sc.assign_status = 0   THEN -2
        WHEN sc.first_status = 0 and sc.assign_status = 0   THEN 5
        WHEN sc.assign_status = 0  and sc.first_status = 1 THEN -1
        ELSE sc.status
        END AS status,
@@ -1189,6 +1212,7 @@
        sc.over_time_days,
        sc.latitude,
        sc.longitude,
        sc.first_status,
        scar.audit_type,
        scar.audit_status,
        scar.reporter_level,
@@ -1203,9 +1227,9 @@
        scar.department_id
        FROM west_complaint sc
        LEFT JOIN west_complaint_audit_record scar ON scar.complaint_id = sc.id and scar.latest_flag = 1
        WHERE sc.detailed_address =#{query.address}
        WHERE sc.house_id =#{query.houseId}
        ) as t1 where 1=1
        <if test="query.problemType !=null">
        <if test="query.problemType !=null and query.problemType !=''">
            and t1.problem_type = #{query.problemType}
        </if>
        ORDER BY t1.create_time DESC
@@ -1218,6 +1242,6 @@
        </if>
    </select>
    <select id="getHouseAddressFromId" resultType="java.lang.String">
            select address from com_mng_population_house where id=#{id}
            select address from com_mng_population_house where id=#{houseId}
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/resources/mapper/SystemUserMapper.xml
@@ -50,5 +50,9 @@
    <select id="getCommunity" resultType="com.panzhihua.westcommittee.model.vo.RegionVO">
        select CAST(community_id AS CHAR) as id, name as name from com_act where street_id = #{streetId}
    </select>
    <select id="getCreateByIdPhone" resultType="java.lang.String">
        select phone from sys_user where id = #{createBy}
    </select>
</mapper>