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 |  199 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 174 insertions(+), 25 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 848afcd..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
@@ -9,16 +9,19 @@
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.WebUtils;
+import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.framework.web.service.TokenService;
-import com.ruoyi.system.model.TDept;
-import com.ruoyi.system.model.TLocation;
-import com.ruoyi.system.model.TProjectDept;
-import com.ruoyi.system.model.TTaskDetail;
+import com.ruoyi.system.dto.TInspectorAuditDTO;
+import com.ruoyi.system.dto.TTaskAuditDTO;
+import com.ruoyi.system.model.*;
 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;
@@ -30,6 +33,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.net.URLEncoder;
+import java.time.LocalDateTime;
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -55,58 +59,77 @@
     @Resource
     private TTaskDetailService tTaskDetailService;
     @Resource
+    private TokenService tokenService;
+    @Resource
     private TDeptService deptService;
     @Resource
     private ISysUserService sysUserService;
 
     @Resource
     private TInspectorService inspectorService;
+    @Resource
+    private TTaskCleanService taskCleanerService;
     @ApiOperation(value = "督察记录分页列表")
     @PostMapping(value = "/pageList")
     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());
@@ -122,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) {
@@ -243,5 +272,125 @@
         inspectorService.removeById(id);
         return R.ok();
     }
+    @Resource
+    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) throws Exception {
+        TTaskAuditDTO tTaskAuditDTO = new TTaskAuditDTO();
+        BeanUtils.copyProperties(dto, tTaskAuditDTO);
+        TTask task = taskCleanerService.getById(dto.getTaskId());
+        TLocation location = locationService.getById(task.getLocationId());
+        TNotice tNotice = new TNotice();
+        TNoticeSet noticeSet = noticeSetService.lambdaQuery().eq(TNoticeSet::getType, 2).last("limit 1")
+                .one();
+        tNotice.setUserId(task.getPatrolInspector());
+        tNotice.setStatus(1);
+        tNotice.setDataId(task.getId());
+        tNotice.setNoticeSetType(noticeSet.getNoticeType());
+        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.getAuditTime()!=null){
+                    dto.setStatus(3);
+                }else{
+                    dto.setStatus(4);
+                }
+            }
+        }
+        dto.setAuditTime(LocalDateTime.now());
+
+        dto.setAuditPerson(tokenService.getLoginUser().getUserId()+"");
+        inspectorService.updateById(dto);
+        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