From 5e2d78f61bf7d1513d5d5c8cd55442133a6e898e Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 14 七月 2025 18:23:36 +0800
Subject: [PATCH] 保洁巡检本周代码

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectorController.java |  201 ++++++++++++++++++++++++++++++++++----------------
 1 files changed, 136 insertions(+), 65 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectorController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectorController.java
index 7b7444e..2fb437b 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectorController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectorController.java
@@ -17,8 +17,11 @@
 import com.ruoyi.system.query.InsepectorListQuery;
 import com.ruoyi.system.query.TaskListQuery;
 import com.ruoyi.system.service.*;
+import com.ruoyi.system.utils.TemplateMessageSendUtil;
 import com.ruoyi.system.vo.system.InspectorListVO;
 import com.ruoyi.system.vo.system.TaskListVO;
+import com.ruoyi.web.controller.tool.EmailUtils;
+import com.ruoyi.web.controller.tool.MsgUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -71,47 +74,62 @@
     public R<PageInfo<InspectorListVO>> pageList(@RequestBody InsepectorListQuery query) {
         List<SysUser> sysUsers = sysUserService.selectAllList();
         List<TLocation> locationList = locationService.list();
-        if (StringUtils.hasLength(query.getDeptName())){
-            List<String> projectIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list()
+        if (StringUtils.hasLength(query.getDeptName())) {
+            List<TProjectDept> list = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list();
+            List<String> projectIds = list
                     .stream().map(TProjectDept::getId).collect(Collectors.toList());
             List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list()
                     .stream().map(TDept::getId).collect(Collectors.toList());
+            for (TProjectDept projectDept : list) {
+                if (projectDept.getParentId().equals("0")){
+                    List<TProjectDept> list1 = projectDeptService.lambdaQuery().eq(TProjectDept::getParentId, projectDept.getId()).list();
+                    List<String> collect = list1.stream().map(TProjectDept::getId).collect(Collectors.toList());
+                    projectIds.addAll(collect);
+                }
+            }
             projectIds.addAll(deptIds);
-            if (projectIds.isEmpty()){
+            if (projectIds.isEmpty()) {
                 return R.ok(new PageInfo<>());
             }
-            if (StringUtils.hasLength(query.getPhonenumber())){
+            // 用户ids
+            List<Long> collect = sysUsers.stream().filter(e -> e.getDeptType() == 1 && projectIds.contains(e.getDeptId())).map(SysUser::getUserId)
+                    .collect(Collectors.toList());
+            List<Long> collect1 = sysUsers.stream().filter(e -> e.getDeptType() == 2 && deptIds.contains(e.getDeptId())).map(SysUser::getUserId)
+                    .collect(Collectors.toList());
+            collect.addAll(collect1);
+            if (collect.isEmpty()) {
+                return R.ok(new PageInfo<>());
+            }
+            query.setPatrolInspectorIds(collect);
+
+            if (StringUtils.hasLength(query.getPhonenumber())) {
                 List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser ->
                         sysUser.getPhonenumber().equals(query.getPhonenumber())
                                 && projectIds.contains(sysUser.getDeptId())
                 ).map(SysUser::getUserId).collect(Collectors.toList());
-                if (patrolInspectorIds.isEmpty()){
+                if (patrolInspectorIds.isEmpty()) {
                     return R.ok(new PageInfo<>());
+                } else {
+                    patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList());
+                    query.setPatrolInspectorIds(patrolInspectorIds);
                 }
-                query.setPatrolInspectorIds(patrolInspectorIds);
             }
         }
         if (StringUtils.hasLength(query.getPhonenumber())){
             List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser ->
-                    sysUser.getPhonenumber().equals(query.getPhonenumber())
+                    sysUser.getPhonenumber().contains(query.getPhonenumber())
             ).map(SysUser::getUserId).collect(Collectors.toList());
-            if (!query.getPatrolInspectorIds().isEmpty()){
+            if (query.getPatrolInspectorIds()!=null&&!query.getPatrolInspectorIds().isEmpty()){
                 // 取交集
                 patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList());
             }
-            query.setPatrolInspectorIds(patrolInspectorIds);
             if (patrolInspectorIds.isEmpty()){
                 return R.ok(new PageInfo<>());
             }
+            query.setPatrolInspectorIds(patrolInspectorIds);
+
         }
-        if (query.getClearStatus()!=null){
-            List<String> collect = tTaskDetailService.lambdaQuery().eq(TTaskDetail::getClearStatus, query.getClearStatus())
-                    .list().stream().distinct().map(TTaskDetail::getTaskId).collect(Collectors.toList());
-            query.setTaskIds(collect);
-            if (collect.isEmpty()){
-                return R.ok(new PageInfo<>());
-            }
-        }
+
         if (query.getLocationType()!=null){
             List<String> collect = locationList.stream().filter(e -> e.getLocationType().equals(query.getLocationType())).map(TLocation::getId)
                     .collect(Collectors.toList());
@@ -127,17 +145,23 @@
                 query.setLocationIds(collect);
                 return R.ok(new PageInfo<>());
             }else{
-                collect = collect.stream().filter(query.getLocationIds()::contains).collect(Collectors.toList());
-                if (collect.isEmpty()){
-                    return R.ok(new PageInfo<>());
+                if (query.getLocationIds()!=null){
+                    collect = collect.stream().filter(query.getLocationIds()::contains).collect(Collectors.toList());
+                    if (collect.isEmpty()){
+                        return R.ok(new PageInfo<>());
+                    }
                 }
                 query.setLocationIds(collect);
             }
         }
+        if (StringUtils.hasLength(query.getEndTime())){
+            String replace = query.getEndTime().replace(" 00:00:00", " 23:59:59");
+            query.setEndTime(replace);
+        }
         return R.ok(inspectorService.pageList(query));
     }
 
-    @Log(title = "督察记录导出", businessType = BusinessType.EXPORT)
+    @Log(title = "督察记录导出", businessType = BusinessType.OTHER)
     @ApiOperation(value = "督察记录导出")
     @PostMapping(value = "/exportExcel")
     public void exportExcel(@RequestBody InsepectorListQuery query) {
@@ -252,13 +276,18 @@
     private TNoticeService noticeService;
     @Resource
     private TNoticeSetService noticeSetService;
+    @Resource
+    private TDictDataService dictDataService;
+    @Resource
+    private MsgUtils msgUtils;
+    @Resource
+    private TemplateMessageSendUtil templateMessageSendUtil;
     @Log(title = "审核任务", businessType = BusinessType.UPDATE)
     @ApiOperation(value = "审核任务")
     @PostMapping(value = "/audit")
-    public R<Boolean> audit(@RequestBody TInspectorAuditDTO dto) {
+    public R<Boolean> audit(@RequestBody TInspectorAuditDTO dto) throws Exception {
         TTaskAuditDTO tTaskAuditDTO = new TTaskAuditDTO();
         BeanUtils.copyProperties(dto, tTaskAuditDTO);
-        dto.setAuditTime(LocalDateTime.now());
         TTask task = taskCleanerService.getById(dto.getTaskId());
         TLocation location = locationService.getById(task.getLocationId());
         TNotice tNotice = new TNotice();
@@ -268,58 +297,100 @@
         tNotice.setStatus(1);
         tNotice.setDataId(task.getId());
         tNotice.setNoticeSetType(noticeSet.getNoticeType());
-        if (dto.getAuditStatus()==2){
-            tTaskAuditDTO.setHandleType(3);
-            // 将任务修改为待整改
-            task.setStatus(4);
-            taskCleanerService.updateById(task);
-            // 增加消息
-            tNotice.setNoticeType(1);
-            tNotice.setNoticeContent("【"+location.getLocationName()+"】任务不合格,请重新上传!");
-
-        }else{
-            tTaskAuditDTO.setHandleType(2);
-            // 如果是初次审核就通过 将状态设置为已完成
-            List<TTaskDetail> list = tTaskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, dto.getTaskId()).list();
-            if (list.isEmpty()){
-                if (dto.getClearStatus()==1){
-                    task.setStatus(6);
-                    dto.setStatus(4);
-                    taskCleanerService.updateById(task);
-                }else{
-                    dto.setStatus(2);
-                    task.setStatus(4);
-                    taskCleanerService.updateById(task);
-// 增加消息
-                    tNotice.setNoticeType(1);
-                    tNotice.setNoticeContent("【"+location.getLocationName()+"】任务不合格,请重新上传!");
+        TInspector byId = inspectorService.getById(dto.getId());
+        SysUser sysUser = sysUserService.selectUserById(Long.valueOf(task.getPatrolInspector()));
+        // 邮箱
+        TDictData email = dictDataService.lambdaQuery().eq(TDictData::getDataType,4).one();
+        // 授权码
+        TDictData code = dictDataService.lambdaQuery().eq(TDictData::getDataType,5).one();
+        if (dto.getAuditStatus()==1){
+            if (byId.getClearStatus()==2){
+                tTaskAuditDTO.setHandleType(3);
+                dto.setStatus(2);
+                // 增加消息
+                tNotice.setNoticeType(8);
+                tNotice.setNoticeContent("【"+location.getLocationName()+"】督察任务不合格,请重新上传!");
+                noticeService.save(tNotice);
+                switch (noticeSet.getNoticeType()) {
+                    case 1:
+                        msgUtils.sendMsg5(sysUser.getPhonenumber(), location.getLocationName());
+                        break;
+                    case 2:
+                        if (StringUtils.hasLength(email.getDataContent()) && StringUtils.hasLength(code.getDataContent())) {
+                            EmailUtils.sendEmail(sysUser.getEmail(), email.getDataContent(), code.getDataContent(), "【"+location.getLocationName()+"】任务督察不合格,请及时整改!");
+                        }
+                        break;
+                    case 3:
+                        if (StringUtils.hasLength(sysUser.getOpenId())){
+                            templateMessageSendUtil.wxTemplateProblemRectificationRequest(sysUser.getOpenId(),
+                                    location.getLocationName(),dto.getAuditRemark());
+                        }
+                        break;
                 }
-
             }else{
-                if (dto.getClearStatus()==1){
+                if (dto.getAuditTime()!=null){
                     dto.setStatus(3);
-                    task.setStatus(5);
-                    taskCleanerService.updateById(task);
-                    // 增加消息
-                    tNotice.setNoticeType(2);
-                    tNotice.setNoticeContent("【"+location.getLocationName()+"】任务已通过");
                 }else{
-                    dto.setStatus(2);
-                    task.setStatus(4);
-                    taskCleanerService.updateById(task);
-                    // 增加消息
-                    tNotice.setNoticeType(1);
-                    tNotice.setNoticeContent("【"+location.getLocationName()+"】任务不合格,请重新上传!");
+                    dto.setStatus(4);
                 }
-
             }
-
         }
-        noticeService.save(tNotice);
+        dto.setAuditTime(LocalDateTime.now());
+
         dto.setAuditPerson(tokenService.getLoginUser().getUserId()+"");
         inspectorService.updateById(dto);
-        tTaskDetailService.save(tTaskAuditDTO);
         return R.ok();
+
+
+//        TInspector byId = inspectorService.getById(dto.getId());
+//
+//        TTaskAuditDTO tTaskAuditDTO = new TTaskAuditDTO();
+//        BeanUtils.copyProperties(dto, tTaskAuditDTO);
+//        TLocation location = locationService.getById(byId.getLocationId());
+//        TNotice tNotice = new TNotice();
+//        TNoticeSet noticeSet = noticeSetService.lambdaQuery().eq(TNoticeSet::getType, 2).last("limit 1")
+//                .one();
+//        tNotice.setUserId(location.getLocationLeader());
+//        tNotice.setStatus(1);
+//        tNotice.setDataId(byId.getId());
+//        tNotice.setNoticeSetType(noticeSet.getNoticeType());
+//        SysUser sysUser = sysUserService.selectUserById(Long.valueOf(location.getLocationLeader()));
+//        // 邮箱
+//        TDictData email = dictDataService.lambdaQuery().eq(TDictData::getDataType,4).one();
+//        // 授权码
+//        TDictData code = dictDataService.lambdaQuery().eq(TDictData::getDataType,5).one();
+//        if (dto.getAuditStatus()==1){
+//            if (byId.getClearStatus()==2){
+//                tTaskAuditDTO.setHandleType(3);
+//                dto.setStatus(2);
+//                // 增加消息
+//                tNotice.setNoticeType(8);
+//                tNotice.setNoticeContent("【"+location.getLocationName()+"】督察任务不合格,请重新上传!");
+//                noticeService.save(tNotice);
+//                switch (noticeSet.getNoticeType()) {
+//                    case 1:
+//                        msgUtils.sendMsg5(sysUser.getPhonenumber(), location.getLocationName());
+//                        break;
+//                    case 2:
+//                        if (StringUtils.hasLength(email.getDataContent()) && StringUtils.hasLength(code.getDataContent())) {
+//                            EmailUtils.sendEmail(sysUser.getEmail(), email.getDataContent(), code.getDataContent(), "【"+location.getLocationName()+"】任务督察不合格,请及时整改!");
+//                        }
+//                        break;
+//                    case 3:
+//                        break;
+//                }
+//            }else{
+//                if (dto.getAuditTime()!=null){
+//                    dto.setStatus(3);
+//                }else{
+//                    dto.setStatus(4);
+//                }
+//            }
+//        }
+//        dto.setAuditTime(LocalDateTime.now());
+//        dto.setAuditPerson(tokenService.getLoginUser().getUserId()+"");
+//        inspectorService.updateById(dto);
+//        return R.ok();
     }
 }
 

--
Gitblit v1.7.1