From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 09 六月 2025 11:54:00 +0800
Subject: [PATCH] 6.9新增登录失败冻结逻辑

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java |  184 +++++++++++++++++++++++++++++++++------------
 1 files changed, 134 insertions(+), 50 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java
index 12a8586..e497c51 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java
@@ -1,11 +1,15 @@
 package com.panzhihua.service_community.service.impl;
 
 import java.text.SimpleDateFormat;
+import java.util.Arrays;
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordEditDTO;
+import com.panzhihua.service_community.dao.*;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
@@ -21,10 +25,6 @@
 import com.panzhihua.common.utlis.DateUtils;
 import com.panzhihua.common.utlis.Snowflake;
 import com.panzhihua.common.utlis.StringUtils;
-import com.panzhihua.service_community.dao.ComSwDangerReportDAO;
-import com.panzhihua.service_community.dao.ComSwPatrolRecordDAO;
-import com.panzhihua.service_community.dao.ComSwPatrolRecordReportDAO;
-import com.panzhihua.service_community.dao.ComSwSafetyWorkRecordDAO;
 import com.panzhihua.service_community.model.dos.ComSwDangerReportDO;
 import com.panzhihua.service_community.model.dos.ComSwPatrolRecordDO;
 import com.panzhihua.service_community.model.dos.ComSwPatrolRecordReportDO;
@@ -32,6 +32,9 @@
 import com.panzhihua.service_community.service.ComSwPatrolRecordService;
 
 import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.isNull;
+import static org.apache.commons.lang3.StringUtils.isBlank;
 
 /**
  * @auther txb
@@ -54,6 +57,9 @@
 
     @Resource
     private ComSwPatrolRecordReportDAO comSwPatrolRecordReportDAO;
+
+    @Resource
+    private ComActDAO comActDAO;
 
     @Override
     public R pagePatrolRecord(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
@@ -88,17 +94,16 @@
 
     @Override
     public R addPatrolRecord(ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO) {
-        // 巡查记录
-        ComSwPatrolRecordDO comSwPatrolRecordDO = new ComSwPatrolRecordDO();
-        BeanUtils.copyProperties(comSwPatrolRecordAddDTO, comSwPatrolRecordDO);
-        Long patrolRecordId = Snowflake.getId();
-        comSwPatrolRecordDO.setId(patrolRecordId);
-        if(StringUtils.isEmpty(comSwPatrolRecordAddDTO.getPatrolTime())){
-            comSwPatrolRecordDO.setPatrolTime(new Date());
+        String patrolTypeString = comSwPatrolRecordAddDTO.getPatrolType();
+        Integer isHiddenDanger = comSwPatrolRecordAddDTO.getIsHiddenDanger();
+        String hiddenDangerTypeString = comSwPatrolRecordAddDTO.getHiddenDangerType();
+        if (isBlank(patrolTypeString)) {
+            return R.fail("巡查类型不能为空");
         }
-//        comSwPatrolRecordDO.setPatrolTime(new Date());
-        comSwPatrolRecordDO.setSuccessionTime(
-            DateUtils.stringToDate(comSwPatrolRecordAddDTO.getSuccessionTime(), DateUtils.yyyyMMdd_format));
+        if (isNull(isHiddenDanger) || (isHiddenDanger.intValue() == ComSwPatrolRecordAddDTO.isOk.yes
+                && isBlank(hiddenDangerTypeString))) {
+            return R.fail("隐患类型不能为空");
+        }
         StringBuilder nameString = new StringBuilder();
         StringBuilder phoneString = new StringBuilder();
         // 根据传递的巡查人员id查询巡查人员的名字和电话
@@ -116,49 +121,124 @@
                 }
             }
         }
-        comSwPatrolRecordDO.setPersonName(nameString.toString());
-        comSwPatrolRecordDO.setPersonPhone(phoneString.toString());
-        comSwPatrolRecordDAO.insert(comSwPatrolRecordDO);
-        // 巡查记录和关联报告信息
-        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = new ComSwPatrolRecordReportDO();
-        Long patrolRecordReport = Snowflake.getId();
-        comSwPatrolRecordReportDO.setId(patrolRecordReport);
-        comSwPatrolRecordReportDO.setPatrolRecordId(patrolRecordId);
         if (StringUtils.isNotEmpty(comSwPatrolRecordAddDTO.getDangerDescription())) {
             comSwPatrolRecordAddDTO.setDagerDescription(comSwPatrolRecordAddDTO.getDangerDescription());
         }
         if (StringUtils.isNotEmpty(comSwPatrolRecordAddDTO.getDagerName())) {
             comSwPatrolRecordAddDTO.setDangerName(comSwPatrolRecordAddDTO.getDagerName());
         }
-        if (comSwPatrolRecordAddDTO.getIsHiddenDanger().intValue() == ComSwPatrolRecordAddDTO.isOk.yes) {
-            // 如果存在安全隐患,自动生成安全隐患报告
-            ComSwDangerReportDO comSwDangerReportDO = new ComSwDangerReportDO();
-            Long dangerReportId = Snowflake.getId();
-            comSwDangerReportDO.setId(dangerReportId);
-            comSwPatrolRecordReportDO.setReportId(dangerReportId);
-            comSwDangerReportDO.setDangerType(comSwPatrolRecordAddDTO.getPatrolType());
-            if (comSwPatrolRecordAddDTO.getIsRectifyImmediately().intValue() == ComSwPatrolRecordAddDTO.isOk.yes
-                && StringUtils.isNotEmpty(comSwPatrolRecordAddDTO.getTakeSteps())) {
-                comSwDangerReportDO.setStatus(String.valueOf(SafeWordStatusEnum.YZG.getCode()));
-                comSwDangerReportDO.setRectifyTime(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
-            } else {
-                comSwDangerReportDO.setStatus(String.valueOf(SafeWordStatusEnum.DCL.getCode()));
+        List<String> patrolTypes = Arrays.asList(patrolTypeString.split(","));
+        patrolTypes.forEach(patrolType -> {
+            // 巡查记录
+            ComSwPatrolRecordDO comSwPatrolRecordDO = new ComSwPatrolRecordDO();
+            BeanUtils.copyProperties(comSwPatrolRecordAddDTO, comSwPatrolRecordDO);
+            Long patrolRecordId = Snowflake.getId();
+            comSwPatrolRecordDO.setId(patrolRecordId);
+            comSwPatrolRecordDO.setPatrolType(patrolType);
+            if(StringUtils.isEmpty(comSwPatrolRecordAddDTO.getPatrolTime())){
+                comSwPatrolRecordDO.setPatrolTime(new Date());
+            }else {
+                comSwPatrolRecordDO.setPatrolTime(
+                        DateUtils.stringToDate(comSwPatrolRecordAddDTO.getPatrolTime(), DateUtils.yyyyMMdd_format));
             }
-            BeanUtils.copyProperties(comSwPatrolRecordAddDTO, comSwDangerReportDO);
-            comSwDangerReportDO.setPersonName(comSwPatrolRecordAddDTO.getDPersonName());
-            comSwDangerReportDO.setPersonPhone(comSwPatrolRecordAddDTO.getDPersonPhone());
-            comSwDangerReportDAO.insert(comSwDangerReportDO);
-        } else {
-            // 不存在安全隐患,生成安全工作记录
-            ComSwSafetyWorkRecordDO comSwSafetyWorkRecordDO = new ComSwSafetyWorkRecordDO();
-            BeanUtils.copyProperties(comSwPatrolRecordAddDTO, comSwSafetyWorkRecordDO);
-            Long safetyWorkRecord = Snowflake.getId();
-            comSwSafetyWorkRecordDO.setId(safetyWorkRecord);
-            comSwPatrolRecordReportDO.setReportId(safetyWorkRecord);
-            comSwSafetyWorkRecordDAO.insert(comSwSafetyWorkRecordDO);
-        }
-        comSwPatrolRecordReportDAO.insert(comSwPatrolRecordReportDO);
+//        comSwPatrolRecordDO.setPatrolTime(new Date());
+            comSwPatrolRecordDO.setSuccessionTime(
+                    DateUtils.stringToDate(comSwPatrolRecordAddDTO.getSuccessionTime(), DateUtils.yyyyMMdd_format));
+            comSwPatrolRecordDO.setPersonName(nameString.toString());
+            comSwPatrolRecordDO.setPersonPhone(phoneString.toString());
+            comSwPatrolRecordDAO.insert(comSwPatrolRecordDO);
+            // 巡查记录和关联报告信息
+            ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = new ComSwPatrolRecordReportDO();
+            Long patrolRecordReport = Snowflake.getId();
+            comSwPatrolRecordReportDO.setId(patrolRecordReport);
+            comSwPatrolRecordReportDO.setPatrolRecordId(patrolRecordId);
+
+            if (isHiddenDanger.intValue() == ComSwPatrolRecordAddDTO.isOk.yes && hiddenDangerTypeString.contains(patrolType)) {
+                // 如果存在安全隐患,自动生成安全隐患报告
+                ComSwDangerReportDO comSwDangerReportDO = new ComSwDangerReportDO();
+                Long dangerReportId = Snowflake.getId();
+                comSwDangerReportDO.setId(dangerReportId);
+                comSwPatrolRecordReportDO.setReportId(dangerReportId);
+                comSwDangerReportDO.setDangerType(patrolType);
+                if (comSwPatrolRecordAddDTO.getIsRectifyImmediately().intValue() == ComSwPatrolRecordAddDTO.isOk.yes
+                        && StringUtils.isNotEmpty(comSwPatrolRecordAddDTO.getTakeSteps())) {
+                    comSwDangerReportDO.setStatus(String.valueOf(SafeWordStatusEnum.YZG.getCode()));
+                    comSwDangerReportDO.setRectifyTime(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
+                } else {
+                    comSwDangerReportDO.setStatus(String.valueOf(SafeWordStatusEnum.DCL.getCode()));
+                }
+                BeanUtils.copyProperties(comSwPatrolRecordAddDTO, comSwDangerReportDO);
+                comSwDangerReportDO.setPersonName(comSwPatrolRecordAddDTO.getDPersonName());
+                comSwDangerReportDO.setPersonPhone(comSwPatrolRecordAddDTO.getDPersonPhone());
+                comSwDangerReportDAO.insert(comSwDangerReportDO);
+            } else {
+                // 不存在安全隐患,生成安全工作记录
+                ComSwSafetyWorkRecordDO comSwSafetyWorkRecordDO = new ComSwSafetyWorkRecordDO();
+                BeanUtils.copyProperties(comSwPatrolRecordAddDTO, comSwSafetyWorkRecordDO);
+                Long safetyWorkRecord = Snowflake.getId();
+                comSwSafetyWorkRecordDO.setId(safetyWorkRecord);
+                comSwPatrolRecordReportDO.setReportId(safetyWorkRecord);
+                comSwSafetyWorkRecordDAO.insert(comSwSafetyWorkRecordDO);
+            }
+            comSwPatrolRecordReportDAO.insert(comSwPatrolRecordReportDO);
+        });
         return R.ok();
+    }
+
+    @Override
+    public R editPatrolRecord(ComSwPatrolRecordEditDTO comSwPatrolRecordEditDTO) {
+        ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(comSwPatrolRecordEditDTO.getId());
+        if (null == comSwPatrolRecordDO) {
+            return R.fail("改巡查记录不存在");
+        }
+        BeanUtils.copyProperties(comSwPatrolRecordEditDTO, comSwPatrolRecordDO);
+        try {
+            comSwPatrolRecordDO.setPatrolTime(new SimpleDateFormat("yyyy-MM-dd").parse(comSwPatrolRecordEditDTO.getPatrolTime()));
+            comSwPatrolRecordDO.setSuccessionTime(new SimpleDateFormat("yyyy-MM-dd").parse(comSwPatrolRecordEditDTO.getSuccessionTime()));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        // 根据传递的巡查人员id查询巡查人员的名字和电话
+        StringBuilder nameString = new StringBuilder();
+        StringBuilder phoneString = new StringBuilder();
+        if (StringUtils.isNotEmpty(comSwPatrolRecordEditDTO.getPatrolPerson())) {
+            String[] personIds = comSwPatrolRecordEditDTO.getPatrolPerson().split(",");
+            for (int i = 0; i < personIds.length; i++) {
+                Map<String, String> person = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
+                if (person != null) {
+                    if (i != 0) {
+                        nameString.append(",");
+                        phoneString.append(",");
+                    }
+                    nameString.append(person.get("name"));
+                    phoneString.append(person.get("phone"));
+                }
+            }
+            comSwPatrolRecordDO.setPersonName(nameString.toString());
+            comSwPatrolRecordDO.setPersonPhone(phoneString.toString());
+        }
+        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>()
+                .lambda().eq(ComSwPatrolRecordReportDO::getPatrolRecordId, comSwPatrolRecordEditDTO.getId()));
+        ComSwSafetyWorkRecordDO comSwSafetyWorkRecordDO = comSwSafetyWorkRecordDAO.selectOne(new QueryWrapper<ComSwSafetyWorkRecordDO>()
+                .lambda().eq(ComSwSafetyWorkRecordDO::getId, comSwPatrolRecordReportDO.getReportId()));
+        if (null != comSwSafetyWorkRecordDO) {
+            Long id = comSwSafetyWorkRecordDO.getId();
+            BeanUtils.copyProperties(comSwPatrolRecordEditDTO, comSwSafetyWorkRecordDO);
+            comSwSafetyWorkRecordDO.setId(id);
+            comSwSafetyWorkRecordDAO.updateById(comSwSafetyWorkRecordDO);
+        }else {
+            ComSwDangerReportDO comSwDangerReportDO = comSwDangerReportDAO.selectOne(new QueryWrapper<ComSwDangerReportDO>()
+                    .lambda().eq(ComSwDangerReportDO::getId, comSwPatrolRecordReportDO.getReportId()));
+            Long id = comSwDangerReportDO.getId();
+            BeanUtils.copyProperties(comSwPatrolRecordEditDTO, comSwDangerReportDO);
+            comSwDangerReportDO.setId(id);
+            comSwDangerReportDAO.updateById(comSwDangerReportDO);
+        }
+        int update = comSwPatrolRecordDAO.updateById(comSwPatrolRecordDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail("编辑失败");
     }
 
     @Override
@@ -174,8 +254,10 @@
                 .eq(ComSwPatrolRecordReportDO::getPatrolRecordId, patrolRecordId));
         if (null != comSwPatrolRecordReportDO) {
             if (comSwPatrolRecordVO.getIsHiddenDanger().equals(ComSwPatrolRecordVO.isOk.yes)) {
-                if (null != comSwDangerReportDAO.selectById(comSwPatrolRecordReportDO.getReportId())) {
+                ComSwDangerReportDO comSwDangerReportDO=comSwDangerReportDAO.selectById(comSwPatrolRecordReportDO.getReportId());
+                if (null != comSwDangerReportDO) {
                     comSwPatrolRecordVO.setDisplayButton(3);
+                    comSwPatrolRecordVO.setDagerNo(comSwDangerReportDO.getDangerNo());
                 } else {
                     comSwPatrolRecordVO.setDisplayButton(2);
                 }
@@ -224,6 +306,8 @@
         if (comSwPatrolRecordVO.getCreateBy() != null) {
             comSwPatrolRecordVO.setCreateName(comSwPatrolRecordDAO.getCreateName(comSwPatrolRecordVO.getCreateBy()));
         }
+        // 所属社区名称
+        comSwPatrolRecordVO.setCommunityName(comActDAO.selectById(comSwPatrolRecordVO.getCommunityId()).getName());
 
         ComSwPatrolRecordReportDO recordReportDO =
             comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda()

--
Gitblit v1.7.1