package com.panzhihua.service_community.service.impl; import java.text.SimpleDateFormat; import java.util.List; import java.util.Map; import javax.annotation.Resource; import com.panzhihua.common.model.dtos.community.ComSwDangerReportEditDTO; import com.panzhihua.service_community.dao.ComActDAO; import com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO; 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; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.enums.SafeWordStatusEnum; import com.panzhihua.common.model.dtos.community.ComSwDangerReportHandleDTO; import com.panzhihua.common.model.dtos.community.ComSwDangerReportRectifyDTO; import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComSwDangerReportExcelVO; import com.panzhihua.common.model.vos.community.ComSwDangerReportVO; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.DateUtils; 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.model.dos.ComSwDangerReportDO; import com.panzhihua.service_community.model.dos.ComSwPatrolRecordDO; import com.panzhihua.service_community.model.dos.ComSwPatrolRecordReportDO; import com.panzhihua.service_community.service.ComSwDangerReportService; import lombok.extern.slf4j.Slf4j; /** * @auther txb * @create 2021-07-27 14:31:04 * @describe 服务实现类 */ @Slf4j @Service public class ComSwDangerReportServiceImpl extends ServiceImpl implements ComSwDangerReportService { @Resource private ComSwDangerReportDAO comSwDangerReportDAO; @Resource private ComSwPatrolRecordDAO comSwPatrolRecordDAO; @Resource private ComSwPatrolRecordReportDAO comSwPatrolRecordReportDAO; @Resource private UserService userService; @Resource private ComActDAO comActDAO; @Override public R pageDangerReport(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) { Page page = new Page<>(); Long pageNum = comSwPatrolRecordPageDTO.getPageNum(); Long pageSize = comSwPatrolRecordPageDTO.getPageSize(); if (null == pageNum || 0 == pageNum) { pageNum = 1L; } if (null == pageSize || 0 == pageSize) { pageSize = 10L; } page.setSize(pageSize); page.setCurrent(pageNum); IPage iPage = comSwDangerReportDAO.pageDangerReport(page, comSwPatrolRecordPageDTO); if (!iPage.getRecords().isEmpty()) { iPage.getRecords().forEach(comSwDangerReportVO -> { if (StringUtils.isNotEmpty(comSwDangerReportVO.getStatus()) && "2".equals(comSwDangerReportVO.getStatus())) { comSwDangerReportVO.setIsAssign(ComSwDangerReportVO.isOk.yes); } else { comSwDangerReportVO.setIsAssign(ComSwDangerReportVO.isOk.no); } StringBuilder patrolNameString = new StringBuilder(); StringBuilder patrolPhoneString = new StringBuilder(); // 巡查人员id查询巡查人员的名字和电话 if (StringUtils.isNotEmpty(comSwDangerReportVO.getPatrolPerson())) { String[] patrolIds = comSwDangerReportVO.getPatrolPerson().split(","); for (int i = 0; i < patrolIds.length; i++) { Map leader = comSwPatrolRecordDAO.getPbServiceTeamById(patrolIds[i]); if (leader != null) { if (i != 0) { patrolNameString.append(","); patrolPhoneString.append(","); } patrolNameString.append(leader.get("name")); patrolPhoneString.append(leader.get("phone")); } } comSwDangerReportVO.setPPersonName(patrolNameString.toString()); comSwDangerReportVO.setPPersonPhone(patrolPhoneString.toString()); } // 整改人员id查询整改人员的名字和电话 StringBuilder dangerNameString = new StringBuilder(); StringBuilder dangerPhoneString = new StringBuilder(); if (StringUtils.isNotEmpty(comSwDangerReportVO.getRectifyPerson())) { String[] dangerIds = comSwDangerReportVO.getRectifyPerson().split(","); for (int i = 0; i < dangerIds.length; i++) { Map person = comSwPatrolRecordDAO.getPbServiceTeamById(dangerIds[i]); if (person != null) { if (i != 0) { dangerNameString.append(","); dangerPhoneString.append(","); } dangerNameString.append(person.get("name")); dangerPhoneString.append(person.get("phone")); } } comSwDangerReportVO.setDPersonName(dangerNameString.toString()); comSwDangerReportVO.setDPersonPhone(dangerPhoneString.toString()); } }); } return R.ok(iPage); } @Override public R editDangerReport(ComSwDangerReportEditDTO comSwDangerReportEditDTO) { ComSwDangerReportDO comSwDangerReportDO = comSwDangerReportDAO.selectById(comSwDangerReportEditDTO.getId()); if (null == comSwDangerReportDO) { return R.fail("该隐患报告不存在"); } BeanUtils.copyProperties(comSwDangerReportEditDTO, comSwDangerReportDO); comSwDangerReportDO.setDangerType(comSwDangerReportEditDTO.getPatrolType()); ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper() .lambda().eq(ComSwPatrolRecordReportDO::getReportId, comSwDangerReportEditDTO.getId())); ComSwPatrolRecordDO comSwPatrolRecordDO = new ComSwPatrolRecordDO(); if (null != comSwPatrolRecordReportDO) { comSwPatrolRecordDO = comSwPatrolRecordDAO.selectOne(new QueryWrapper() .lambda().eq(ComSwPatrolRecordDO::getId, comSwPatrolRecordReportDO.getPatrolRecordId())); Long id = comSwPatrolRecordDO.getId(); BeanUtils.copyProperties(comSwDangerReportEditDTO, comSwPatrolRecordDO); comSwPatrolRecordDO.setId(id); try { comSwPatrolRecordDO.setPatrolTime(new SimpleDateFormat("yyyy-MM-dd").parse(comSwDangerReportEditDTO.getPatrolTime())); comSwPatrolRecordDO.setSuccessionTime(new SimpleDateFormat("yyyy-MM-dd").parse(comSwDangerReportEditDTO.getSuccessionTime())); } catch (Exception e) { e.printStackTrace(); } // 根据传递的巡查人员id查询巡查人员的名字和电话 StringBuilder nameString = new StringBuilder(); StringBuilder phoneString = new StringBuilder(); if (StringUtils.isNotEmpty(comSwDangerReportEditDTO.getPatrolPerson())) { String[] personIds = comSwDangerReportEditDTO.getPatrolPerson().split(","); for (int i = 0; i < personIds.length; i++) { Map 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.updateById(comSwPatrolRecordDO); comSwDangerReportDAO.updateById(comSwDangerReportDO); return R.ok(); } @Override public R detailDangerReport(Long dangerReportId) { ComSwDangerReportDO comSwDangerReportDO = comSwDangerReportDAO.selectById(dangerReportId); if (null == comSwDangerReportDO) { return R.fail("该隐患报告不存在"); } ComSwDangerReportVO comSwDangerReportVO = new ComSwDangerReportVO(); ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper().lambda() .eq(ComSwPatrolRecordReportDO::getReportId, dangerReportId)); if (null != comSwPatrolRecordReportDO) { ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(comSwPatrolRecordReportDO.getPatrolRecordId()); BeanUtils.copyProperties(comSwPatrolRecordDO, comSwDangerReportVO); comSwDangerReportVO.setPatrolTime(new SimpleDateFormat("yyyy-MM-dd").format(comSwPatrolRecordDO.getPatrolTime())); } BeanUtils.copyProperties(comSwDangerReportDO, comSwDangerReportVO); // 组装巡查类型 if (StringUtils.isNotEmpty(comSwDangerReportVO.getPatrolType())) { StringBuilder sb = new StringBuilder(); String[] patrolTypes = comSwDangerReportVO.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("防疫巡查"); } } comSwDangerReportVO.setPatrolType(sb.toString()); } // 查询整改人员信息 if (StringUtils.isNotEmpty(comSwDangerReportVO.getRectifyPerson())) { StringBuilder sb = new StringBuilder(); String[] personIds = comSwDangerReportVO.getRectifyPerson().split(","); for (int i = 0; i < personIds.length; i++) { if (i != 0) { sb.append(","); } Map personMap = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]); if (personMap != null) { sb.append(personMap.get("name")); } } comSwDangerReportVO.setPersonName(sb.toString()); } // 查询填报人名称 if (comSwDangerReportVO.getCreateBy() != null) { comSwDangerReportVO.setCreateName(comSwPatrolRecordDAO.getCreateName(comSwDangerReportVO.getCreateBy())); } // 所属社区名称 comSwDangerReportVO.setCommunityName(comActDAO.selectById(comSwDangerReportVO.getCommunityId()).getName()); // 查询指派人名称 if (StringUtils.isNotEmpty(comSwDangerReportVO.getAssignPerson())) { StringBuilder sb = new StringBuilder(); String[] personIds = comSwDangerReportVO.getAssignPerson().split(","); for (int i = 0; i < personIds.length; i++) { if (i != 0) { sb.append(","); } Map personMap = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]); if (personMap != null) { sb.append(personMap.get("name")); } } comSwDangerReportVO.setAssignPersonName(sb.toString()); } StringBuilder patrolNameString = new StringBuilder(); StringBuilder patrolPhoneString = new StringBuilder(); // 巡查人员id查询巡查人员的名字和电话 if (StringUtils.isNotEmpty(comSwDangerReportVO.getPatrolPerson())) { String[] patrolIds = comSwDangerReportVO.getPatrolPerson().split(","); for (int i = 0; i < patrolIds.length; i++) { Map leader = comSwPatrolRecordDAO.getPbServiceTeamById(patrolIds[i]); if (leader != null) { if (i != 0) { patrolNameString.append(","); patrolPhoneString.append(","); } patrolNameString.append(leader.get("name")); patrolPhoneString.append(leader.get("phone")); } } comSwDangerReportVO.setPPersonName(patrolNameString.toString()); comSwDangerReportVO.setPPersonPhone(patrolPhoneString.toString()); } // 整改人员id查询整改人员的名字和电话 StringBuilder dangerNameString = new StringBuilder(); StringBuilder dangerPhoneString = new StringBuilder(); if (StringUtils.isNotEmpty(comSwDangerReportVO.getRectifyPerson())) { String[] dangerIds = comSwDangerReportVO.getRectifyPerson().split(","); for (int i = 0; i < dangerIds.length; i++) { Map person = comSwPatrolRecordDAO.getPbServiceTeamById(dangerIds[i]); if (person != null) { if (i != 0) { dangerNameString.append(","); dangerPhoneString.append(","); } dangerNameString.append(person.get("name")); dangerPhoneString.append(person.get("phone")); } } comSwDangerReportVO.setDPersonName(dangerNameString.toString()); comSwDangerReportVO.setDPersonPhone(dangerPhoneString.toString()); } return R.ok(comSwDangerReportVO); } @Override public R detailDangerReportByPrId(Long patrolRecordId) { ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(patrolRecordId); if (comSwPatrolRecordDO == null) { return R.fail("该隐患报告不存在"); } ComSwDangerReportVO comSwDangerReportVO = new ComSwDangerReportVO(); ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper().lambda() .eq(ComSwPatrolRecordReportDO::getPatrolRecordId, patrolRecordId)); if (null != comSwPatrolRecordReportDO) { ComSwDangerReportDO comSwDangerReportDO = comSwDangerReportDAO.selectById(comSwPatrolRecordReportDO.getReportId()); if (null == comSwDangerReportDO) { return R.fail("该隐患报告不存在"); } BeanUtils.copyProperties(comSwDangerReportDO, comSwDangerReportVO); } BeanUtils.copyProperties(comSwPatrolRecordDO, comSwDangerReportVO); StringBuilder patrolNameString = new StringBuilder(); StringBuilder patrolPhoneString = new StringBuilder(); // 巡查人员id查询巡查人员的名字和电话 if (StringUtils.isNotEmpty(comSwDangerReportVO.getPatrolPerson())) { String[] patrolIds = comSwDangerReportVO.getPatrolPerson().split(","); for (int i = 0; i < patrolIds.length; i++) { Map leader = comSwPatrolRecordDAO.getPbServiceTeamById(patrolIds[i]); if (leader != null) { if (i != 0) { patrolNameString.append(","); patrolPhoneString.append(","); } patrolNameString.append(leader.get("name")); patrolPhoneString.append(leader.get("phone")); } } comSwDangerReportVO.setPPersonName(patrolNameString.toString()); comSwDangerReportVO.setPPersonPhone(patrolPhoneString.toString()); } // 整改人员id查询整改人员的名字和电话 StringBuilder dangerNameString = new StringBuilder(); StringBuilder dangerPhoneString = new StringBuilder(); if (StringUtils.isNotEmpty(comSwDangerReportVO.getRectifyPerson())) { String[] dangerIds = comSwDangerReportVO.getRectifyPerson().split(","); for (int i = 0; i < dangerIds.length; i++) { Map person = comSwPatrolRecordDAO.getPbServiceTeamById(dangerIds[i]); if (person != null) { if (i != 0) { dangerNameString.append(","); dangerPhoneString.append(","); } dangerNameString.append(person.get("name")); dangerPhoneString.append(person.get("phone")); } } comSwDangerReportVO.setDPersonName(dangerNameString.toString()); comSwDangerReportVO.setDPersonPhone(dangerPhoneString.toString()); } return R.ok(comSwDangerReportVO); } @Override public R handleDangerReport(ComSwDangerReportHandleDTO comSwDangerReportHandleDTO) { ComSwDangerReportDO comSwDangerReportDO = comSwDangerReportDAO.selectById(comSwDangerReportHandleDTO.getDangerReportId()); if (null == comSwDangerReportDO) { return R.fail("该隐患报告不存在"); } BeanUtils.copyProperties(comSwDangerReportHandleDTO, comSwDangerReportDO); comSwDangerReportDO.setStatus(String.valueOf(SafeWordStatusEnum.YCL.getCode())); ComSwDangerReportDO comSwDangerReportDO1 = comSwDangerReportDAO.selectById(comSwDangerReportHandleDTO.getDangerReportId()); if (!comSwDangerReportDO1.getStatus().equals(String.valueOf(SafeWordStatusEnum.DCL.getCode()))) { return R.fail("该隐患报告已处理,请勿重复操作"); } int update = comSwDangerReportDAO.updateById(comSwDangerReportDO); if (update > 0) { return R.ok(); } return R.fail("处理失败"); } @Override public R rectifyDangerReport(ComSwDangerReportRectifyDTO comSwDangerReportRectifyDTO) { ComSwDangerReportDO comSwDangerReportDO = comSwDangerReportDAO.selectById(comSwDangerReportRectifyDTO.getDangerReportId()); if (null == comSwDangerReportDO) { return R.fail("该隐患报告不存在"); } BeanUtils.copyProperties(comSwDangerReportRectifyDTO, comSwDangerReportDO); comSwDangerReportDO.setStatus(String.valueOf(SafeWordStatusEnum.YZG.getCode())); comSwDangerReportDO.setRectifyTime(DateUtils.getCurrentDateStr()); ComSwDangerReportDO comSwDangerReportDO1 = comSwDangerReportDAO.selectById(comSwDangerReportRectifyDTO.getDangerReportId()); if (comSwDangerReportDO1.getStatus().equals(String.valueOf(SafeWordStatusEnum.YZG.getCode()))) { return R.fail("该隐患报告已整改,请勿重复操作"); } int update = comSwDangerReportDAO.updateById(comSwDangerReportDO); if (update > 0) { return R.ok(); } return R.fail("整改失败"); } @Override public R exportDangerReport(List dangerReportIds) { List list = comSwDangerReportDAO.exportDangerReport(dangerReportIds); list.forEach(comSwDangerReportExcelVO -> { // 整改人员id查询整改人员的名字和电话 StringBuilder dangerNameString = new StringBuilder(); StringBuilder dangerPhoneString = new StringBuilder(); if (StringUtils.isNotEmpty(comSwDangerReportExcelVO.getDpersonName())) { String[] dangerIds = comSwDangerReportExcelVO.getDpersonName().split(","); for (int i = 0; i < dangerIds.length; i++) { Map person = comSwPatrolRecordDAO.getPbServiceTeamById(dangerIds[i]); if (person != null) { if (i != 0) { dangerNameString.append(","); dangerPhoneString.append(","); } dangerNameString.append(person.get("name")); dangerPhoneString.append(person.get("phone")); } } comSwDangerReportExcelVO.setDpersonName(dangerNameString.toString()); comSwDangerReportExcelVO.setDpersonPhone(dangerPhoneString.toString()); } }); return R.ok(list); } }