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.*;
|
import com.gk.hotwork.Domain.Do.SafetySelfInspectionItemQualifiedCountDO;
|
import com.gk.hotwork.Domain.Exception.BusinessException;
|
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.AttachmentInfoService;
|
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<InspectionHiddenDangerMapper, InspectionHiddenDanger> implements InspectionHiddenDangerService {
|
|
@Autowired
|
private InspectionHiddenDangerMapper inspectionHiddenDangerMapper;
|
|
@Autowired
|
private AttachmentInfoService attachmentInfoService;
|
|
/**
|
* 修改
|
* @param inspectionHiddenDanger
|
*/
|
|
@Override
|
public void mod(InspectionHiddenDanger inspectionHiddenDanger, UserInfo userInfo) {
|
modrequiredVerification(inspectionHiddenDanger);
|
|
StringBuffer stringBuffer = new StringBuffer();
|
//附件
|
if(CollectionUtils.isNotEmpty(inspectionHiddenDanger.getAttachmentList())){
|
for (AttachmentInfo attachmentInfo : inspectionHiddenDanger.getAttachmentList()) {
|
attachmentInfo.setBusinessId(inspectionHiddenDanger.getId());
|
stringBuffer.append(attachmentInfo.getId().toString()).append(",");
|
}
|
stringBuffer = stringBuffer.deleteCharAt(stringBuffer.length()-1);
|
}
|
|
inspectionHiddenDanger.setUpdateTime(new Date());
|
inspectionHiddenDanger.setUpdateBy(userInfo.getRealname());
|
inspectionHiddenDanger.setUrl(stringBuffer.toString());
|
inspectionHiddenDangerMapper.updateById(inspectionHiddenDanger);
|
//更新附件
|
if(CollectionUtils.isNotEmpty(inspectionHiddenDanger.getAttachmentList())){
|
attachmentInfoService.updateBusinessIdBatch(inspectionHiddenDanger.getAttachmentList());
|
|
}
|
}
|
|
/**
|
* 删除
|
* @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<InspectionHiddenDanger> getBySafetySelfInspectionItemId(Long inspectionItemId) {
|
List<InspectionHiddenDanger> inspectionHiddenDangerList = inspectionHiddenDangerMapper.selectList(new LambdaQueryWrapper<InspectionHiddenDanger>()
|
.eq(InspectionHiddenDanger::getValidFlag, true)
|
.eq(InspectionHiddenDanger::getSelfInspectionItemId, inspectionItemId));
|
return inspectionHiddenDangerList;
|
}
|
|
|
public List<InspectionHiddenDanger> getBySafetySelfInspectionId(Long inspectionId) {
|
List<InspectionHiddenDanger> inspectionHiddenDangerList = inspectionHiddenDangerMapper.selectList(new LambdaQueryWrapper<InspectionHiddenDanger>()
|
.eq(InspectionHiddenDanger::getValidFlag, true)
|
.eq(InspectionHiddenDanger::getSelfInspectionId, inspectionId));
|
return inspectionHiddenDangerList;
|
}
|
|
@Override
|
public List<InspectionHiddenDanger> listByPage(PageInfo pageInfo) {
|
return null;
|
}
|
|
@Override
|
public void delByIds(List<Long> idList) {
|
inspectionHiddenDangerMapper.delByIds(idList);
|
}
|
|
@Override
|
public IPage selectPage(Page<SafetySelfInspection> page, Map<String, Object> 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<SafetySelfInspection> res = inspectionHiddenDangerMapper.selectPages(page, params);
|
List<SafetySelfInspection> records = res.getRecords();
|
if (CollectionUtils.isNotEmpty(records)){
|
for (SafetySelfInspection inspection : records) {
|
List<InspectionHiddenDanger> 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<InspectionHiddenDanger> 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 (inspectionHiddenDanger.getLevel() == null) throw new BusinessException("请选择隐患等级");
|
if (inspectionHiddenDanger.getStatus() == null) throw new BusinessException("整改状态不可为空");
|
}
|
}
|