101captain
2021-12-23 5a8a90c095280fbd2106869ecd2bad10e01a57a6
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java
@@ -1,5 +1,18 @@
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;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -8,7 +21,6 @@
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;
@@ -17,16 +29,16 @@
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.*;
import com.panzhihua.service_community.model.dos.ComSwDangerReportDO;
import com.panzhihua.service_community.model.dos.ComSwPatrolRecordDO;
import com.panzhihua.service_community.model.dos.ComSwPatrolRecordReportDO;
import com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO;
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;
import lombok.extern.slf4j.Slf4j;
import static java.util.Objects.isNull;
import static org.apache.commons.lang3.StringUtils.isBlank;
/**
 * @auther txb
@@ -35,7 +47,8 @@
 */
@Slf4j
@Service
public class ComSwPatrolRecordServiceImpl extends ServiceImpl<ComSwPatrolRecordDAO, ComSwPatrolRecordDO> implements ComSwPatrolRecordService {
public class ComSwPatrolRecordServiceImpl extends ServiceImpl<ComSwPatrolRecordDAO, ComSwPatrolRecordDO>
    implements ComSwPatrolRecordService {
    @Resource
    private ComSwPatrolRecordDAO comSwPatrolRecordDAO;
@@ -49,15 +62,34 @@
    @Resource
    private ComSwPatrolRecordReportDAO comSwPatrolRecordReportDAO;
    @Resource
    private ComActDAO comActDAO;
    @Override
    public R pagePatrolRecord(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
        IPage<ComSwPatrolRecordVO> iPage = comSwPatrolRecordDAO.pagePatrolRecord(new Page(comSwPatrolRecordPageDTO.getPageNum(),comSwPatrolRecordPageDTO.getPageSize()), comSwPatrolRecordPageDTO);
        if(!iPage.getRecords().isEmpty()){
        // 是否是查询自己的巡查记录
        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){
                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);
                    }
                }
            });
        }
@@ -66,22 +98,25 @@
    @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));
        String patrolTypeString = comSwPatrolRecordAddDTO.getPatrolType();
        Integer isHiddenDanger = comSwPatrolRecordAddDTO.getIsHiddenDanger();
        String hiddenDangerTypeString = comSwPatrolRecordAddDTO.getHiddenDangerType();
        if (isBlank(patrolTypeString)) {
            return R.fail("巡查类型不能为空");
        }
        if (isNull(isHiddenDanger) || (isHiddenDanger.intValue() == ComSwPatrolRecordAddDTO.isOk.yes
                && isBlank(hiddenDangerTypeString))) {
            return R.fail("隐患类型不能为空");
        }
        StringBuilder nameString = new StringBuilder();
        StringBuilder phoneString = new StringBuilder();
        //根据传递的巡查人员id查询巡查人员的名字和电话
        if(StringUtils.isNotEmpty(comSwPatrolRecordAddDTO.getPatrolPerson())){
        // 根据传递的巡查人员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){
            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(",");
                    }
@@ -90,42 +125,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 (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);
        if (StringUtils.isNotEmpty(comSwPatrolRecordAddDTO.getDangerDescription())) {
            comSwPatrolRecordAddDTO.setDagerDescription(comSwPatrolRecordAddDTO.getDangerDescription());
        }
        comSwPatrolRecordReportDAO.insert(comSwPatrolRecordReportDO);
        if (StringUtils.isNotEmpty(comSwPatrolRecordAddDTO.getDagerName())) {
            comSwPatrolRecordAddDTO.setDangerName(comSwPatrolRecordAddDTO.getDagerName());
        }
        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));
            }
//        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
@@ -136,59 +253,72 @@
        }
        ComSwPatrolRecordVO comSwPatrolRecordVO = new ComSwPatrolRecordVO();
        BeanUtils.copyProperties(comSwPatrolRecordDO, comSwPatrolRecordVO);
        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda().eq(ComSwPatrolRecordReportDO::getPatrolRecordId, patrolRecordId));
        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())) {
                ComSwDangerReportDO comSwDangerReportDO=comSwDangerReportDAO.selectById(comSwPatrolRecordReportDO.getReportId());
                if (null != comSwDangerReportDO) {
                    comSwPatrolRecordVO.setDisplayButton(3);
                }else {
                    comSwPatrolRecordVO.setDagerNo(comSwDangerReportDO.getDangerNo());
                } else {
                    comSwPatrolRecordVO.setDisplayButton(2);
                }
            }else{
            } else {
                if (null != comSwSafetyWorkRecordDAO.selectById(comSwPatrolRecordReportDO.getReportId())) {
                    comSwPatrolRecordVO.setDisplayButton(1);
                }
            }
        }
        //组装巡查类型
        if(StringUtils.isNotEmpty(comSwPatrolRecordVO.getPatrolType())){
        // 组装巡查类型
        if (StringUtils.isNotEmpty(comSwPatrolRecordVO.getPatrolType())) {
            StringBuilder sb = new StringBuilder();
            String patrolTypes[] = comSwPatrolRecordVO.getPatrolType().split(",");
            String[] patrolTypes = comSwPatrolRecordVO.getPatrolType().split(",");
            for (int i = 0; i < patrolTypes.length; i++) {
                if(i != 0){
                if (i != 0) {
                    sb.append(",");
                }
                if(patrolTypes[i].equals("1")){
                if (patrolTypes[i].equals("1")) {
                    sb.append("防火巡查");
                }else if(patrolTypes[i].equals("2")){
                } else if (patrolTypes[i].equals("2")) {
                    sb.append("防汛巡查");
                }else if(patrolTypes[i].equals("3")){
                } else if (patrolTypes[i].equals("3")) {
                    sb.append("防疫巡查");
                }
            }
            comSwPatrolRecordVO.setPatrolType(sb.toString());
        }
        //查询接班人员信息
        if(StringUtils.isNotEmpty(comSwPatrolRecordVO.getSuccessionPerson())){
        // 查询接班人员信息
        if (StringUtils.isNotEmpty(comSwPatrolRecordVO.getSuccessionPerson())) {
            StringBuilder sb = new StringBuilder();
            String personIds[] = comSwPatrolRecordVO.getSuccessionPerson().split(",");
            String[] personIds = comSwPatrolRecordVO.getSuccessionPerson().split(",");
            for (int i = 0; i < personIds.length; i++) {
                if(i != 0){
                if (i != 0) {
                    sb.append(",");
                }
                Map<String,String> personMap = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
                if(personMap != null){
                Map<String, String> personMap = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
                if (personMap != null) {
                    sb.append(personMap.get("name"));
                }
            }
            comSwPatrolRecordVO.setSuccessionPerson(sb.toString());
        }
        //查询填报人名称
        if(comSwPatrolRecordVO.getCreateBy() != null){
        // 查询填报人名称
        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()
                .eq(ComSwPatrolRecordReportDO::getPatrolRecordId, comSwPatrolRecordVO.getId()));
        if (recordReportDO != null) {
            comSwPatrolRecordVO.setServiceId(recordReportDO.getReportId());
        }
        return R.ok(comSwPatrolRecordVO);
    }