package com.panzhihua.service_community.service.impl; import java.text.SimpleDateFormat; import java.util.Map; import javax.annotation.Resource; import com.panzhihua.common.model.dtos.community.ComSwSafetyWorkEditDTO; import com.panzhihua.service_community.model.dos.ComActDO; 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.model.dtos.community.ComSwPatrolRecordPageDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComSwSafetyWorkRecordVO; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.dao.ComActDAO; 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.ComSwPatrolRecordDO; import com.panzhihua.service_community.model.dos.ComSwPatrolRecordReportDO; import com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO; import com.panzhihua.service_community.service.ComSwSafetyWorkRecordService; import lombok.extern.slf4j.Slf4j; /** * @auther txb * @create 2021-07-27 14:30:41 * @describe 服务实现类 */ @Slf4j @Service public class ComSwSafetyWorkRecordServiceImpl extends ServiceImpl implements ComSwSafetyWorkRecordService { @Resource private ComSwSafetyWorkRecordDAO comSwSafetyWorkRecordDAO; @Resource private ComSwPatrolRecordDAO comSwPatrolRecordDAO; @Resource private ComSwPatrolRecordReportDAO comSwPatrolRecordReportDAO; @Resource private ComActDAO comActDAO; @Override public R pageSafetyWorkRecord(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 = comSwSafetyWorkRecordDAO.pageSafetyWorkRecord(page, comSwPatrolRecordPageDTO); if (!iPage.getRecords().isEmpty()) { iPage.getRecords().forEach(work -> { // 查询人员信息 if (StringUtils.isNotEmpty(work.getPatrolPerson())) { StringBuilder sb = new StringBuilder(); String[] personIds = work.getPatrolPerson().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")); } } work.setPersonName(sb.toString()); } }); } return R.ok(iPage); } @Override public R editSafetyWork(ComSwSafetyWorkEditDTO comSwSafetyWorkEditDTO) { ComSwSafetyWorkRecordDO comSwSafetyWorkRecordDO = comSwSafetyWorkRecordDAO.selectById(comSwSafetyWorkEditDTO.getId()); if (null == comSwSafetyWorkRecordDO) { return R.fail("该安全工作记录不存在"); } comSwSafetyWorkRecordDO.setRemark(comSwSafetyWorkEditDTO.getRemark()); comSwSafetyWorkRecordDO.setUpdateBy(comSwSafetyWorkEditDTO.getUpdateBy()); ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper() .lambda().eq(ComSwPatrolRecordReportDO::getReportId, comSwSafetyWorkEditDTO.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(comSwSafetyWorkEditDTO, comSwPatrolRecordDO); comSwPatrolRecordDO.setId(id); try { comSwPatrolRecordDO.setPatrolTime(new SimpleDateFormat("yyyy-MM-dd").parse(comSwSafetyWorkEditDTO.getPatrolTime())); comSwPatrolRecordDO.setSuccessionTime(new SimpleDateFormat("yyyy-MM-dd").parse(comSwSafetyWorkEditDTO.getSuccessionTime())); } catch (Exception e) { e.printStackTrace(); } // 根据传递的巡查人员id查询巡查人员的名字和电话 StringBuilder nameString = new StringBuilder(); StringBuilder phoneString = new StringBuilder(); if (StringUtils.isNotEmpty(comSwSafetyWorkEditDTO.getPatrolPerson())) { String[] personIds = comSwSafetyWorkEditDTO.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); comSwSafetyWorkRecordDAO.updateById(comSwSafetyWorkRecordDO); return R.ok(); } @Override public R detailSafetyWorkRecord(Long safetyWorkRecordId, Long communityId) { ComSwSafetyWorkRecordDO swSafetyWorkRecordDO = comSwSafetyWorkRecordDAO.selectById(safetyWorkRecordId); if (null == swSafetyWorkRecordDO) { return R.fail("该安全工作记录不存在"); } ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper().lambda() .eq(ComSwPatrolRecordReportDO::getReportId, safetyWorkRecordId)); ComSwSafetyWorkRecordVO comSwSafetyWorkRecordVO = new ComSwSafetyWorkRecordVO(); if (null != comSwPatrolRecordReportDO) { ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(comSwPatrolRecordReportDO.getPatrolRecordId()); BeanUtils.copyProperties(comSwPatrolRecordDO, comSwSafetyWorkRecordVO); } BeanUtils.copyProperties(swSafetyWorkRecordDO, comSwSafetyWorkRecordVO); // 组装巡查类型 if (StringUtils.isNotEmpty(comSwSafetyWorkRecordVO.getPatrolType())) { StringBuilder sb = new StringBuilder(); String[] patrolTypes = comSwSafetyWorkRecordVO.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("防疫巡查"); } } comSwSafetyWorkRecordVO.setPatrolType(sb.toString()); } // 查询人员信息 if (StringUtils.isNotEmpty(comSwSafetyWorkRecordVO.getPatrolPerson())) { StringBuilder sb = new StringBuilder(); String[] personIds = comSwSafetyWorkRecordVO.getPatrolPerson().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")); } } comSwSafetyWorkRecordVO.setPersonName(sb.toString()); } // 查询填报人名称 if (comSwSafetyWorkRecordVO.getCreateBy() != null) { comSwSafetyWorkRecordVO .setCreateName(comSwPatrolRecordDAO.getCreateName(comSwSafetyWorkRecordVO.getCreateBy())); } // 所属社区名称 ComActDO comActDO=comActDAO.selectById(comSwSafetyWorkRecordVO.getCommunityId()); if(comActDO!=null&&StringUtils.isNotEmpty(comActDO.getName())){ comSwSafetyWorkRecordVO.setCommunityName(comActDO.getName()); } return R.ok(comSwSafetyWorkRecordVO); } @Override public R detailSafetyWorkRecordByPrId(Long patrolRecordId, Long communityId) { ComSwSafetyWorkRecordVO comSwSafetyWorkRecordVO = new ComSwSafetyWorkRecordVO(); ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(patrolRecordId); ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper().lambda() .eq(ComSwPatrolRecordReportDO::getPatrolRecordId, patrolRecordId)); if (null != comSwPatrolRecordReportDO) { ComSwSafetyWorkRecordDO comSwSafetyWorkRecordDO = comSwSafetyWorkRecordDAO.selectById(comSwPatrolRecordReportDO.getReportId()); if (null == comSwSafetyWorkRecordDO) { return R.fail("该安全工作记录不存在"); } BeanUtils.copyProperties(comSwPatrolRecordDO, comSwSafetyWorkRecordVO); BeanUtils.copyProperties(comSwSafetyWorkRecordDO, comSwSafetyWorkRecordVO); } // 所属社区名称 comSwSafetyWorkRecordVO.setCommunityName(comActDAO.selectById(communityId).getName()); return R.ok(comSwSafetyWorkRecordVO); } }