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<ComSwDangerReportDAO, ComSwDangerReportDO>
|
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<ComSwDangerReportVO> 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<String, String> 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<String, String> 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<ComSwPatrolRecordReportDO>()
|
.lambda().eq(ComSwPatrolRecordReportDO::getReportId, comSwDangerReportEditDTO.getId()));
|
ComSwPatrolRecordDO comSwPatrolRecordDO = new ComSwPatrolRecordDO();
|
if (null != comSwPatrolRecordReportDO) {
|
comSwPatrolRecordDO = comSwPatrolRecordDAO.selectOne(new QueryWrapper<ComSwPatrolRecordDO>()
|
.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<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.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<ComSwPatrolRecordReportDO>().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<String, String> 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<String, String> 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<String, String> 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<String, String> 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<ComSwPatrolRecordReportDO>().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<String, String> 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<String, String> 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<Long> dangerReportIds) {
|
List<ComSwDangerReportExcelVO> 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<String, String> 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);
|
}
|
}
|