| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import cn.emay.sdk.util.StringUtil; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.HiddenDangerMapper; |
| | | import com.doumee.dao.business.HiddenDangerParamMapper; |
| | | import com.doumee.dao.business.model.HiddenDanger; |
| | | import com.doumee.dao.business.model.HiddenDangerParam; |
| | | import com.doumee.dao.system.MultifileMapper; |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import com.doumee.service.business.HiddenDangerParamService; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.service.business.HiddenDangerService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.HiddenDangerLogMapper; |
| | | import com.doumee.dao.business.HiddenDangerMapper; |
| | | import com.doumee.dao.business.HiddenDangerParamMapper; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.system.MultifileMapper; |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import com.doumee.service.business.HiddenDangerLogService; |
| | | import com.doumee.service.business.HiddenDangerService; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.checkerframework.checker.units.qual.C; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 隐患信息表Service实现 |
| | |
| | | @Autowired |
| | | private HiddenDangerMapper hiddenDangerMapper; |
| | | @Autowired |
| | | private MultifileMapper multifileMapper; |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | |
| | | @Autowired |
| | | private HiddenDangerParamMapper hiddenDangerParamMapper; |
| | | |
| | | @Autowired |
| | | private MultifileMapper multifileMapper; |
| | | private HiddenDangerLogMapper hiddenDangerLogMapper; |
| | | |
| | | |
| | | @Override |
| | | public Integer create(HiddenDanger hiddenDanger) { |
| | | if(Objects.isNull(hiddenDanger) |
| | | || Objects.isNull(hiddenDanger.getCreator()) |
| | | || Objects.isNull(hiddenDanger.getLoginUserInfo()) |
| | | || Objects.isNull(hiddenDanger.getAreaId()) |
| | | || Objects.isNull(hiddenDanger.getCateId()) |
| | | || Objects.isNull(hiddenDanger.getApplyCheckUserId()) |
| | | || Objects.isNull(hiddenDanger.getCheckUserId()) |
| | | || Objects.isNull(hiddenDanger.getSubmitTime()) |
| | | || StringUtils.isBlank(hiddenDanger.getContent()) |
| | | ){ |
| | |
| | | } |
| | | hiddenDanger.setIsdeleted(Constants.ZERO); |
| | | hiddenDanger.setCreateDate(new Date()); |
| | | hiddenDanger.setEditDate(new Date()); |
| | | HiddenDangerParam hiddenDangerParam = hiddenDangerParamMapper.selectById(hiddenDanger.getAreaId()); |
| | | if(Objects.isNull(hiddenDangerParam)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到隐患区域"); |
| | | } |
| | | hiddenDanger.setCreator(hiddenDanger.getLoginUserInfo().getId()); |
| | | hiddenDanger.setAreaName(hiddenDangerParam.getName()); |
| | | hiddenDanger.setStatus(Constants.ZERO); |
| | | if(StringUtils.isBlank(hiddenDangerParam.getMemberIds()) |
| | | || hiddenDangerParam.getMemberIds().indexOf(hiddenDanger.getApplyCheckUserId().toString())<0){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"隐患区域与处理人不匹配"); |
| | | } |
| | | Member member = memberMapper.selectById(hiddenDanger.getCheckUserId()); |
| | | if(Objects.isNull(member)|| !Constants.equalsInteger(member.getStatus(),Constants.ZERO) || Constants.equalsInteger(member.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未查询到隐患处理人员信息或已被禁用"); |
| | | } |
| | | hiddenDangerMapper.insert(hiddenDanger); |
| | | //存储 操作日志 |
| | | HiddenDangerLog hiddenDangerLog = new HiddenDangerLog(); |
| | | hiddenDangerLog.setIsdeleted(Constants.ZERO); |
| | | hiddenDangerLog.setCreateDate(new Date()); |
| | | hiddenDangerLog.setCreator(hiddenDanger.getCreator()); |
| | | hiddenDangerLog.setTitle("隐患提交"); |
| | | hiddenDangerLog.setHiddenDangerId(hiddenDanger.getId()); |
| | | hiddenDangerLog.setObjType(Constants.ZERO); |
| | | hiddenDangerLogMapper.insert(hiddenDangerLog); |
| | | |
| | | List<Multifile> multifiles = hiddenDanger.getMultifileList(); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifiles)){ |
| | | for (int i = 0; i < multifiles.size(); i++) { |
| | |
| | | |
| | | @Override |
| | | public HiddenDanger findById(Integer id) { |
| | | return hiddenDangerMapper.selectById(id); |
| | | } |
| | | MPJLambdaWrapper<HiddenDanger> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(HiddenDanger.class) |
| | | .selectAs(HiddenDangerParam::getName,HiddenDanger::getCategoryName) |
| | | .select("t1.name", HiddenDanger::getMemberName) |
| | | .select("t1.phone",HiddenDanger::getMemberPhone) |
| | | .select("t2.name",HiddenDanger::getCheckorName) |
| | | .select("t2.phone",HiddenDanger::getCheckorPhone) |
| | | .select("t4.company_name_path",HiddenDanger::getCompanyName); |
| | | queryWrapper.leftJoin(Member.class,Member::getId,HiddenDanger::getMemberId) |
| | | .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId) |
| | | .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getCateId) |
| | | .leftJoin("company t4 on t1.company_id=t4.id"); |
| | | queryWrapper |
| | | .eq(HiddenDanger::getId, id).last("limit 1"); |
| | | |
| | | HiddenDanger model = hiddenDangerMapper.selectJoinOne(HiddenDanger.class,queryWrapper); |
| | | if(model ==null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | initFiles(model); |
| | | |
| | | |
| | | |
| | | return model; |
| | | } |
| | | private void initFiles(HiddenDanger unionChange) { |
| | | List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() |
| | | .eq(Multifile::getObjId, unionChange.getId() ) |
| | | .in(Multifile::getObjType, Arrays.asList(new Integer[]{Constants.MultiFile.HIDDEN_DANGER_SUBMIT.getKey() |
| | | ,Constants.MultiFile.HIDDEN_DANGER_DEAL_BEFORE.getKey() |
| | | ,Constants.MultiFile.HIDDEN_DANGER_DEAL_AFTER.getKey()})) |
| | | .eq(Multifile::getIsdeleted,Constants.ZERO)); |
| | | if(multifiles!=null){ |
| | | String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() |
| | | +systemDictDataBiz.queryByCode(Constants.FTP,Constants.HIDDEN_DANGER_FILE).getCode(); |
| | | for(Multifile f : multifiles){ |
| | | if(StringUtils.isBlank(f.getFileurl())){ |
| | | continue; |
| | | } |
| | | f.setFileurlFull(path+f.getFileurl()); |
| | | if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.HIDDEN_DANGER_SUBMIT.getKey())){ |
| | | //现场情况 |
| | | if(unionChange.getSubmitFileList() == null){ |
| | | unionChange.setSubmitFileList(new ArrayList<>()); |
| | | } |
| | | unionChange.getSubmitFileList().add(f); |
| | | } |
| | | if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.HIDDEN_DANGER_DEAL_BEFORE.getKey())){ |
| | | //处理前附件 |
| | | if(unionChange.getDealBeforeFileList() == null){ |
| | | unionChange.setDealBeforeFileList(new ArrayList<>()); |
| | | } |
| | | unionChange.getDealBeforeFileList().add(f); |
| | | } |
| | | if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.HIDDEN_DANGER_DEAL_AFTER.getKey())){ |
| | | //处理后附件 |
| | | if(unionChange.getDealAfterFileList() == null){ |
| | | unionChange.setDealAfterFileList(new ArrayList<>()); |
| | | } |
| | | unionChange.getDealAfterFileList().add(f); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | @Override |
| | | public HiddenDanger findOne(HiddenDanger hiddenDanger) { |
| | | QueryWrapper<HiddenDanger> wrapper = new QueryWrapper<>(hiddenDanger); |
| | |
| | | .select("t1.name", HiddenDanger::getMemberName) |
| | | .select("t1.phone",HiddenDanger::getMemberPhone) |
| | | .select("t2.name",HiddenDanger::getCheckorName) |
| | | .select("t3.phone",HiddenDanger::getCheckorPhone) |
| | | .select("t2.phone",HiddenDanger::getCheckorPhone) |
| | | .select("t4.company_name_path",HiddenDanger::getCompanyName); |
| | | queryWrapper.leftJoin(Member.class,Member::getId,HiddenDanger::getMemberId) |
| | | .leftJoin("company t4 on t1.company_id=t4.id") |
| | | .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId) |
| | | .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getCateId); |
| | | .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getCateId) |
| | | .leftJoin("company t4 on t1.company_id=t4.id"); |
| | | queryWrapper |
| | | .eq(pageWrap.getModel().getId() != null, HiddenDanger::getId, pageWrap.getModel().getId()) |
| | | .eq(pageWrap.getModel().getCreator() != null, HiddenDanger::getCreator, pageWrap.getModel().getCreator()) |
| | |
| | | .eq(pageWrap.getModel().getChecklInfo() != null, HiddenDanger::getChecklInfo, pageWrap.getModel().getChecklInfo()) |
| | | .eq(pageWrap.getModel().getCheckUserId() != null, HiddenDanger::getCheckUserId, pageWrap.getModel().getCheckUserId()) |
| | | .eq(pageWrap.getModel().getAreaName() != null, HiddenDanger::getAreaName, pageWrap.getModel().getAreaName()) |
| | | |
| | | .and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getName,pageWrap.getModel().getMemberName()) |
| | | .or().like(Member::getPhone,pageWrap.getModel().getMemberName())) |
| | | .ge(Objects.nonNull(pageWrap.getModel().getQueryStartTime()), Empower::getCreateDate,pageWrap.getModel().getQueryStartTime()) |
| | |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | return PageData.from(hiddenDangerMapper.selectPage(page, queryWrapper)); |
| | | return PageData.from(hiddenDangerMapper.selectJoinPage(page,HiddenDanger.class, queryWrapper)); |
| | | } |
| | | |
| | | @Override |
| | |
| | | QueryWrapper<HiddenDanger> wrapper = new QueryWrapper<>(hiddenDanger); |
| | | return hiddenDangerMapper.selectCount(wrapper); |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public void dealHiddenDanger(HiddenDanger hiddenDanger){ |
| | | if(Objects.isNull(hiddenDanger) |
| | | || Objects.isNull(hiddenDanger.getId()) |
| | | || Objects.isNull(hiddenDanger.getDealTime()) |
| | | || Objects.isNull(hiddenDanger.getLoginUserInfo()) |
| | | || Objects.isNull(hiddenDanger.getStatus()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | HiddenDanger model = hiddenDangerMapper.selectById(hiddenDanger.getId()); |
| | | if(Objects.isNull(model)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到隐患数据"); |
| | | } |
| | | if (!model.getStatus().equals(Constants.ZERO)) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态已流转!"); |
| | | } |
| | | if (!model.getCheckUserId().equals(hiddenDanger.getEditor())) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"处理人非当前人员!"); |
| | | } |
| | | if(!(hiddenDanger.getStatus().equals(Constants.ONE)||hiddenDanger.getStatus().equals(Constants.TWO))){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态错误!"); |
| | | } |
| | | //整改前文件 |
| | | List<Multifile> beforList = hiddenDanger.getDealBeforeFileList(); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(beforList)){ |
| | | for (int i = 0; i < beforList.size(); i++) { |
| | | Multifile multifile = beforList.get(i); |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setCreator(hiddenDanger.getEditor()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setObjId(hiddenDanger.getId()); |
| | | multifile.setObjType(Constants.multifileObjType.one); |
| | | multifile.setSortnum(i+1); |
| | | multifileMapper.insert(multifile); |
| | | } |
| | | } |
| | | if(hiddenDanger.getStatus().equals(Constants.ONE)){ |
| | | List<Multifile> afterList = hiddenDanger.getDealAfterFileList(); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(afterList)){ |
| | | for (int i = 0; i < afterList.size(); i++) { |
| | | Multifile multifile = afterList.get(i); |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setCreator(hiddenDanger.getEditor()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setObjId(hiddenDanger.getId()); |
| | | multifile.setObjType(Constants.multifileObjType.two); |
| | | multifile.setSortnum(i+1); |
| | | multifileMapper.insert(multifile); |
| | | } |
| | | } |
| | | } |
| | | hiddenDanger.setEditor(hiddenDanger.getLoginUserInfo().getId()); |
| | | hiddenDanger.setEditDate(new Date()); |
| | | hiddenDangerMapper.updateById(hiddenDanger); |
| | | //存储 操作日志 |
| | | HiddenDangerLog hiddenDangerLog = new HiddenDangerLog(); |
| | | hiddenDangerLog.setIsdeleted(Constants.ZERO); |
| | | hiddenDangerLog.setCreateDate(new Date()); |
| | | hiddenDangerLog.setCreator(hiddenDanger.getCreator()); |
| | | hiddenDangerLog.setHiddenDangerId(hiddenDanger.getId()); |
| | | hiddenDangerLog.setTitle(hiddenDanger.getStatus().equals(Constants.ONE)?"隐患处理":"隐患退回"); |
| | | hiddenDangerLog.setObjType(hiddenDanger.getStatus().equals(Constants.ONE)?Constants.FOUR:Constants.TWO); |
| | | hiddenDangerLogMapper.insert(hiddenDangerLog); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public void transferHiddenDanger(HiddenDanger hiddenDanger){ |
| | | if(Objects.isNull(hiddenDanger) |
| | | || Objects.isNull(hiddenDanger.getId()) |
| | | || Objects.isNull(hiddenDanger.getCheckUserId()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | HiddenDanger model = hiddenDangerMapper.selectJoinOne(HiddenDanger.class,new MPJLambdaWrapper<HiddenDanger>() |
| | | .selectAll(HiddenDanger.class) |
| | | .selectAs(Member::getName,HiddenDanger::getCheckorName) |
| | | .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId) |
| | | .eq(HiddenDanger::getId,hiddenDanger.getId())); |
| | | if(Objects.isNull(model)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到隐患数据"); |
| | | } |
| | | if (!Constants.equalsInteger(model.getStatus(),Constants.ZERO)) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态已流转!"); |
| | | } |
| | | if (!Constants.equalsInteger(model.getCheckUserId(),hiddenDanger.getLoginUserInfo().getMemberId())) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"处理人非当前人员!"); |
| | | } |
| | | if(Constants.equalsInteger(model.getCheckUserId(),hiddenDanger.getCheckUserId())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"无法转交给自己"); |
| | | } |
| | | Member member = memberMapper.selectById(hiddenDanger.getCheckUserId()); |
| | | if(member == null || !Constants.equalsInteger(member.getType(), Constants.TWO) || Constants.equalsInteger(Constants.ONE,member.getIsdeleted())){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,转交人信息不存在,请刷新页面重试!"); |
| | | } |
| | | hiddenDanger.setEditor(hiddenDanger.getLoginUserInfo().getId()); |
| | | hiddenDanger.setEditDate(new Date()); |
| | | hiddenDangerMapper.updateById(hiddenDanger); |
| | | //存储 操作日志 |
| | | HiddenDangerLog hiddenDangerLog = new HiddenDangerLog(); |
| | | hiddenDangerLog.setIsdeleted(Constants.ZERO); |
| | | hiddenDangerLog.setCreateDate(new Date()); |
| | | hiddenDangerLog.setCreator(hiddenDanger.getEditor()); |
| | | hiddenDangerLog.setEditDate(hiddenDangerLog.getCreateDate()); |
| | | hiddenDangerLog.setEditor(hiddenDanger.getCreator()); |
| | | hiddenDangerLog.setTitle("转交给"+StringUtils.defaultString(member.getName())); |
| | | hiddenDangerLog.setHiddenDangerId(hiddenDanger.getId()); |
| | | hiddenDangerLog.setObjType(Constants.ONE); |
| | | hiddenDangerLogMapper.insert(hiddenDangerLog); |
| | | } |
| | | |
| | | |
| | | } |