package com.gk.hotwork.Service.ServiceImpl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.gk.hotwork.Domain.Do.SafetySelfInspectionItemQualifiedCountDO; import com.gk.hotwork.Domain.Exception.BusinessException; import com.gk.hotwork.Domain.InspectionExpert; import com.gk.hotwork.Domain.InspectionHiddenDanger; import com.gk.hotwork.Domain.SafetySelfInspection; import com.gk.hotwork.Domain.UserInfo; import com.gk.hotwork.Domain.Utils.PageInfo; import com.gk.hotwork.Domain.Utils.StringUtils; import com.gk.hotwork.Domain.dto.resp.InspectionHiddenDangerRespDTO; import com.gk.hotwork.Mapper.InspectionExpertMapper; import com.gk.hotwork.Mapper.InspectionHiddenDangerMapper; import com.gk.hotwork.Service.InspectionExpertService; import com.gk.hotwork.Service.InspectionHiddenDangerService; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * @email 1603559716@qq.com * @author: zf * @date: 2023/7/19 * @time: 17:30 */ @Service public class InspectionHiddenDangerServiceImpl extends ServiceImpl implements InspectionHiddenDangerService { @Autowired private InspectionHiddenDangerMapper inspectionHiddenDangerMapper; /** * 修改 * @param inspectionHiddenDanger */ @Override public void mod(InspectionHiddenDanger inspectionHiddenDanger, UserInfo userInfo) { modrequiredVerification(inspectionHiddenDanger); inspectionHiddenDanger.setUpdateTime(new Date()); inspectionHiddenDanger.setUpdateBy(userInfo.getRealname()); inspectionHiddenDangerMapper.updateById(inspectionHiddenDanger); } /** * 删除 * @param */ public void delByInspectionItemId(Long inspectionItemId,UserInfo userInfo){ InspectionHiddenDanger inspectionHiddenDanger = new InspectionHiddenDanger(); inspectionHiddenDanger.setSelfInspectionItemId(inspectionItemId); inspectionHiddenDanger.setUpdateBy(userInfo.getRealname()); inspectionHiddenDanger.setUpdateTime(new Date()); inspectionHiddenDangerMapper.delByInspectionItemId(inspectionHiddenDanger); } @Override public List getBySafetySelfInspectionItemId(Long inspectionItemId) { List inspectionHiddenDangerList = inspectionHiddenDangerMapper.selectList(new LambdaQueryWrapper() .eq(InspectionHiddenDanger::getValidFlag, true) .eq(InspectionHiddenDanger::getSelfInspectionItemId, inspectionItemId)); return inspectionHiddenDangerList; } public List getBySafetySelfInspectionId(Long inspectionId) { List inspectionHiddenDangerList = inspectionHiddenDangerMapper.selectList(new LambdaQueryWrapper() .eq(InspectionHiddenDanger::getValidFlag, true) .eq(InspectionHiddenDanger::getSelfInspectionId, inspectionId)); return inspectionHiddenDangerList; } @Override public List listByPage(PageInfo pageInfo) { return null; } @Override public void delByIds(List idList) { inspectionHiddenDangerMapper.delByIds(idList); } @Override public IPage selectPage(Page page, Map params, UserInfo user) { Integer type = user.getType(); //普通用户 if (type.equals(3)) { Long companyid = user.getCompanyid(); params.put("checkedCompanyId",companyid); } //监管用户 if (type.equals(2)) { //获取企业信息 params.put("province",user.getProvince()); params.put("city",user.getCity()); params.put("area",user.getCounty()); } IPage res = inspectionHiddenDangerMapper.selectPages(page, params); List records = res.getRecords(); if (CollectionUtils.isNotEmpty(records)){ for (SafetySelfInspection inspection : records) { List dangerList = this.getBySafetySelfInspectionId(inspection.getId()); //一般 1 int sameasCount = 0; //重大 2 int majorCount = 0; //总数 int totalCount = 0; //未整改数量 int unRectifyCount = 0; for (InspectionHiddenDanger inspectionHiddenDanger : dangerList) { if (inspectionHiddenDanger.getLevel().equals(1)) { sameasCount += 1; }else { majorCount += 1; } if(inspectionHiddenDanger.getStatus().equals((byte) 0)){ unRectifyCount += 1; } totalCount += 1; } inspection.setSameAsCount(sameasCount); inspection.setMajorCount(majorCount); inspection.setHdTocalCount(totalCount); if(unRectifyCount == 0){ inspection.setRectificationStatus(2); }else if(unRectifyCount == totalCount){ inspection.setRectificationStatus(0); }else { inspection.setRectificationStatus(1); } } res.setRecords(records); } return res; } @Override public List inspectionHdangerlist(Long selfInspectionId) { return inspectionHiddenDangerMapper.inspectionHdangerlist(selfInspectionId); } private void modrequiredVerification(InspectionHiddenDanger inspectionHiddenDanger){ if(inspectionHiddenDanger.getId() == null){ throw new BusinessException("隐患主键不可为空"); } InspectionHiddenDanger danger = this.inspectionHiddenDangerMapper.selectById(inspectionHiddenDanger.getId()); if(danger.getStatus().equals((byte) 1)){ throw new BusinessException("已整改不可再修改"); } if (StringUtils.isBlank(inspectionHiddenDanger.getInfo())) throw new BusinessException("请填写隐患描述"); if (inspectionHiddenDanger.getLevel() == null) throw new BusinessException("请选择隐患等级"); if (inspectionHiddenDanger.getStatus() == null) throw new BusinessException("整改状态不可为空"); } }