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