From 2e64c232ab6b51b2cecf1ee96e1e9b709234f326 Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期六, 21 八月 2021 16:35:14 +0800
Subject: [PATCH] 随手拍改版接口开发

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java |  209 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 193 insertions(+), 16 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 29009ef..a0e3a74 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,18 +1,32 @@
 package com.panzhihua.service_community.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordDTO;
+import com.panzhihua.common.enums.SafeWordStatusEnum;
+import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordAddDTO;
+import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngRealAssetsVO;
 import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO;
+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.model.dos.ComSwPatrolRecordDO;
+import com.panzhihua.service_community.dao.ComSwPatrolRecordReportDAO;
+import com.panzhihua.service_community.dao.ComSwSafetyWorkRecordDAO;
+import com.panzhihua.service_community.model.dos.*;
 import com.panzhihua.service_community.service.ComSwPatrolRecordService;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Map;
 
 /**
  * @auther txb
@@ -26,21 +40,184 @@
     @Resource
     private ComSwPatrolRecordDAO comSwPatrolRecordDAO;
 
-    @Override
-    public R pagePatrolRecord(ComSwPatrolRecordDTO comSwPatrolRecordDTO) {
-        Page page = new Page<>();
-        Long pageNum = comSwPatrolRecordDTO.getPageNum();
-        Long pageSize = comSwPatrolRecordDTO.getPageSize();
-        if (null == pageNum || 0 == pageNum) {
-            pageNum = 1L;
-        }
-        if (null == pageSize || 0 == pageSize) {
-            pageSize = 10L;
-        }
-        page.setSize(pageSize);
-        page.setCurrent(pageNum);
+    @Resource
+    private ComSwSafetyWorkRecordDAO comSwSafetyWorkRecordDAO;
 
-        IPage<ComSwPatrolRecordVO> iPage = comSwPatrolRecordDAO.pagePatrolRecord(page, comSwPatrolRecordDTO);
+    @Resource
+    private ComSwDangerReportDAO comSwDangerReportDAO;
+
+    @Resource
+    private ComSwPatrolRecordReportDAO comSwPatrolRecordReportDAO;
+
+    @Override
+    public R pagePatrolRecord(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
+        //是否是查询自己的巡查记录
+        if(StringUtils.isNotEmpty(comSwPatrolRecordPageDTO.getPatrolPerson())){
+            Map<String,Object> map = comSwPatrolRecordDAO.getPbServiceTeamCardNo(comSwPatrolRecordPageDTO.getPatrolPerson());
+            if(map != null){
+                comSwPatrolRecordPageDTO.setPatrolPerson(map.get("id").toString());
+            }
+        }
+        IPage<ComSwPatrolRecordVO> iPage = comSwPatrolRecordDAO.pagePatrolRecord(new Page(comSwPatrolRecordPageDTO.getPageNum(),comSwPatrolRecordPageDTO.getPageSize()), comSwPatrolRecordPageDTO);
+        if(!iPage.getRecords().isEmpty()){
+            iPage.getRecords().forEach(patrol -> {
+                ComSwPatrolRecordReportDO recordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>()
+                        .lambda().eq(ComSwPatrolRecordReportDO::getPatrolRecordId,patrol.getId()));
+                if(recordReportDO != null){
+                    patrol.setServiceId(recordReportDO.getReportId());
+                    if (null != comSwDangerReportDAO.selectById(recordReportDO.getReportId())) {
+                        patrol.setDangerOrRecord(1);
+                    }else{
+                        patrol.setDangerOrRecord(2);
+                    }
+                }
+            });
+        }
         return R.ok(iPage);
     }
+
+    @Override
+    public R addPatrolRecord(ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO) {
+        //巡查记录
+        ComSwPatrolRecordDO comSwPatrolRecordDO = new ComSwPatrolRecordDO();
+        BeanUtils.copyProperties(comSwPatrolRecordAddDTO, comSwPatrolRecordDO);
+        Long patrolRecordId = Snowflake.getId();
+        comSwPatrolRecordDO.setId(patrolRecordId);
+        comSwPatrolRecordDO.setPatrolTime(new Date());
+        comSwPatrolRecordDO.setSuccessionTime(DateUtils.stringToDate(comSwPatrolRecordAddDTO.getSuccessionTime(),DateUtils.yyyyMMdd_format));
+        StringBuilder nameString = new StringBuilder();
+        StringBuilder phoneString = new StringBuilder();
+        //根据传递的巡查人员id查询巡查人员的名字和电话
+        if(StringUtils.isNotEmpty(comSwPatrolRecordAddDTO.getPatrolPerson())){
+            String[] personIds = comSwPatrolRecordAddDTO.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());
+        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()));
+            }
+            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 detailPatrolRecord(Long patrolRecordId) {
+        ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(patrolRecordId);
+        if (null == comSwPatrolRecordDO) {
+            return R.fail("该巡查记录不存在");
+        }
+        ComSwPatrolRecordVO comSwPatrolRecordVO = new ComSwPatrolRecordVO();
+        BeanUtils.copyProperties(comSwPatrolRecordDO, comSwPatrolRecordVO);
+        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda().eq(ComSwPatrolRecordReportDO::getPatrolRecordId, patrolRecordId));
+        if (null != comSwPatrolRecordReportDO) {
+            if (comSwPatrolRecordVO.getIsHiddenDanger().equals(ComSwPatrolRecordVO.isOk.yes)) {
+                if (null != comSwDangerReportDAO.selectById(comSwPatrolRecordReportDO.getReportId())) {
+                    comSwPatrolRecordVO.setDisplayButton(3);
+                }else {
+                    comSwPatrolRecordVO.setDisplayButton(2);
+                }
+            }else{
+                if (null != comSwSafetyWorkRecordDAO.selectById(comSwPatrolRecordReportDO.getReportId())) {
+                    comSwPatrolRecordVO.setDisplayButton(1);
+                }
+            }
+        }
+
+        //组装巡查类型
+        if(StringUtils.isNotEmpty(comSwPatrolRecordVO.getPatrolType())){
+            StringBuilder sb = new StringBuilder();
+            String patrolTypes[] = comSwPatrolRecordVO.getPatrolType().split(",");
+            for (int i = 0; i < patrolTypes.length; i++) {
+                if(i != 0){
+                    sb.append(",");
+                }
+                if(patrolTypes[i].equals("1")){
+                    sb.append("防火巡查");
+                }else if(patrolTypes[i].equals("2")){
+                    sb.append("防汛巡查");
+                }else if(patrolTypes[i].equals("3")){
+                    sb.append("防疫巡查");
+                }
+            }
+            comSwPatrolRecordVO.setPatrolType(sb.toString());
+        }
+        //查询接班人员信息
+        if(StringUtils.isNotEmpty(comSwPatrolRecordVO.getSuccessionPerson())){
+            StringBuilder sb = new StringBuilder();
+            String personIds[] = comSwPatrolRecordVO.getSuccessionPerson().split(",");
+            for (int i = 0; i < personIds.length; i++) {
+                if(i != 0){
+                    sb.append(",");
+                }
+                Map<String,String> personMap = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
+                if(personMap != null){
+                    sb.append(personMap.get("name"));
+                }
+            }
+            comSwPatrolRecordVO.setSuccessionPerson(sb.toString());
+        }
+
+        //查询填报人名称
+        if(comSwPatrolRecordVO.getCreateBy() != null){
+            comSwPatrolRecordVO.setCreateName(comSwPatrolRecordDAO.getCreateName(comSwPatrolRecordVO.getCreateBy()));
+        }
+
+        ComSwPatrolRecordReportDO recordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>()
+                .lambda().eq(ComSwPatrolRecordReportDO::getPatrolRecordId,comSwPatrolRecordVO.getId()));
+        if(recordReportDO != null){
+            comSwPatrolRecordVO.setServiceId(recordReportDO.getReportId());
+        }
+        return R.ok(comSwPatrolRecordVO);
+    }
+
+    @Override
+    public R patrolRecordStatistics(Long communityId) {
+        return R.ok(this.comSwSafetyWorkRecordDAO.patrolRecordStatistics(communityId));
+    }
 }

--
Gitblit v1.7.1