|
|
@ -2,10 +2,13 @@ package com.kms.yxgh.sz.service; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.kms.system.domain.SysXzqh; |
|
|
|
import com.kms.system.service.SysUserService; |
|
|
|
import com.kms.system.service.SysXzqhService; |
|
|
|
import com.kms.yxgh.base.SzException; |
|
|
|
import com.kms.yxgh.df.dto.SzCharItemDto; |
|
|
|
import com.kms.yxgh.sz.domain.SzCheckingItem; |
|
|
@ -24,11 +27,14 @@ import com.kms.yxgh.sz.mapper.SzCheckingItemMapper; |
|
|
|
import com.kms.yxgh.sz.mapper.SzCheckingLineMapper; |
|
|
|
import com.kms.yxgh.sz.mapper.SzPlanOperatorMapper; |
|
|
|
import com.kms.yxgh.sz.mapper.SzRecordMapper; |
|
|
|
import com.kms.yxgh.sz.model.SzHiddenDangerModel; |
|
|
|
import com.kms.yxgh.sz.model.SzStatisticsModelDto; |
|
|
|
import com.kms.yxgh.util.BeanCopyUtils; |
|
|
|
import com.kms.yxgh.util.StreamUtils; |
|
|
|
import com.shuili.common.core.domain.AjaxResult; |
|
|
|
import com.shuili.common.core.domain.SearchParam; |
|
|
|
import com.shuili.common.core.service.BaseService; |
|
|
|
import com.shuili.common.enums.DfEnum; |
|
|
|
import com.shuili.common.utils.StringUtils; |
|
|
|
import com.shuili.common.utils.poi.ExcelUtil; |
|
|
|
import lombok.AllArgsConstructor; |
|
|
@ -56,17 +62,148 @@ public class SzRecordService extends BaseService<SzRecordMapper, SzRecord> { |
|
|
|
private final SysUserService userService; |
|
|
|
private final SzPlanOperatorMapper planOperatorMapper; |
|
|
|
private final SzCheckingItemMapper szCheckingItemMapper; |
|
|
|
private final SysXzqhService sysXzqhService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public SzCharInfoDto szStatistics(SzCharInfoQueDto dto){ |
|
|
|
List<SzStatisticsModelDto> list = baseMapper.szStatistics(dto); |
|
|
|
SzCharInfoDto dtoInfo=new SzCharInfoDto(); |
|
|
|
if (CollectionUtil.isEmpty(list)){ |
|
|
|
return dtoInfo; |
|
|
|
} |
|
|
|
Map<String, List<SzStatisticsModelDto>> groupingByList = list.stream() |
|
|
|
.collect(Collectors.groupingBy(SzStatisticsModelDto::getAdcd)); |
|
|
|
|
|
|
|
List<String> xList =new ArrayList<>(); |
|
|
|
List<SzCharInfoDto.YAxis>yAxisList=new ArrayList<>(); |
|
|
|
|
|
|
|
for (Map.Entry<String, List<SzStatisticsModelDto>> entry : groupingByList.entrySet()) { |
|
|
|
// 设置 x轴
|
|
|
|
// 转换名称
|
|
|
|
SysXzqh xzqhdm = sysXzqhService.getOne(new QueryWrapper<SysXzqh>() |
|
|
|
.likeRight("XZQHDM", entry.getKey()).last(" limit 1")); |
|
|
|
if (null != xzqhdm) { |
|
|
|
xList.add(xzqhdm.getName()); |
|
|
|
} |
|
|
|
SzCharInfoDto.YAxis yAxisInfo = getSzStatisticsyAxis(entry); |
|
|
|
yAxisList.add(yAxisInfo); |
|
|
|
} |
|
|
|
dtoInfo.setYAxis(yAxisList); |
|
|
|
dtoInfo.setXAxis(xList); |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
private SzCharInfoDto.YAxis getSzStatisticsyAxis(Map.Entry<String, List<SzStatisticsModelDto>> entry) { |
|
|
|
List<SzCharInfoDto.Series> seriesList =new ArrayList<>(); |
|
|
|
for (SzStatisticsModelDto it : entry.getValue()) { |
|
|
|
SzCharInfoDto.Series series=new SzCharInfoDto.Series(); |
|
|
|
series.setCount(it.getCount()); |
|
|
|
series.setDutyHolderType(it.getDutyHolderType()); |
|
|
|
seriesList.add(series); |
|
|
|
} |
|
|
|
// 设置 y轴
|
|
|
|
SzCharInfoDto.YAxis yAxisInfo=new SzCharInfoDto.YAxis(); |
|
|
|
yAxisInfo.setName("次数"); |
|
|
|
yAxisInfo.setUnit("个"); |
|
|
|
yAxisInfo.setSeries(seriesList); |
|
|
|
return yAxisInfo; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public SzCharItemDto szHiddenDanger(SzCharInfoItemQueDto dto){ |
|
|
|
SzCharItemDto dfYhCharHiddenDangerDto=new SzCharItemDto(); |
|
|
|
|
|
|
|
return null; |
|
|
|
numberHandle(dto,dfYhCharHiddenDangerDto); |
|
|
|
|
|
|
|
List<SzHiddenDangerModel> list =new ArrayList<>(); |
|
|
|
// 隐患数量数据
|
|
|
|
dto.setProblem(DfEnum.GENERAL_HAZARDS.getValue()); |
|
|
|
List<SzHiddenDangerModel> yhModel = baseMapper.yhNumberData(dto); |
|
|
|
if (!CollectionUtil.isEmpty(yhModel)) { |
|
|
|
list.addAll(yhModel); |
|
|
|
} |
|
|
|
dto.setProblem(DfEnum.LARGE_TO_SIGNIFICANT.getValue()); |
|
|
|
List<SzHiddenDangerModel> jdModel = baseMapper.yhNumberData(dto); |
|
|
|
if (!CollectionUtil.isEmpty(jdModel)) { |
|
|
|
list.addAll(jdModel); |
|
|
|
} |
|
|
|
dto.setProblem(DfEnum.SIGNIFICANT_YH.getValue()); |
|
|
|
List<SzHiddenDangerModel> zdModel = baseMapper.yhNumberData(dto); |
|
|
|
if (!CollectionUtil.isEmpty(zdModel)) { |
|
|
|
list.addAll(zdModel); |
|
|
|
} |
|
|
|
|
|
|
|
// 处理数量数据
|
|
|
|
dto.setHandleStatus(DfEnum.HANDLED.getValue()); |
|
|
|
List<SzHiddenDangerModel> clModel = baseMapper.clfNumberData(dto); |
|
|
|
if (CollectionUtil.isEmpty(clModel)) { |
|
|
|
return dfYhCharHiddenDangerDto; |
|
|
|
} |
|
|
|
list.addAll(clModel); |
|
|
|
Map<String, List<SzHiddenDangerModel>> groupingByList = list.stream() |
|
|
|
.filter(s -> !StringUtils.isEmpty(s.getAdcd())) // 过滤掉空字符串
|
|
|
|
.collect(Collectors.groupingBy(SzHiddenDangerModel::getAdcd)); |
|
|
|
|
|
|
|
if (!CollectionUtil.isEmpty(groupingByList)) { |
|
|
|
List<String> xList =new ArrayList<>(); |
|
|
|
List<SzCharItemDto.YAxis>yAxisList=new ArrayList<>(); |
|
|
|
|
|
|
|
for (Map.Entry<String, List<SzHiddenDangerModel>> entry : groupingByList.entrySet()) { |
|
|
|
// 设置 x轴
|
|
|
|
// 转换名称
|
|
|
|
SysXzqh xzqhdm = sysXzqhService.getOne(new QueryWrapper<SysXzqh>().likeRight("XZQHDM", entry.getKey())); |
|
|
|
if (null != xzqhdm) { |
|
|
|
xList.add(xzqhdm.getName()); |
|
|
|
} |
|
|
|
SzCharItemDto.YAxis yAxisInfo = getSzHiddenDangeryAxis(entry); |
|
|
|
yAxisList.add(yAxisInfo); |
|
|
|
} |
|
|
|
dfYhCharHiddenDangerDto.setYAxis(yAxisList); |
|
|
|
dfYhCharHiddenDangerDto.setXAxis(xList); |
|
|
|
} |
|
|
|
return dfYhCharHiddenDangerDto; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void numberHandle (SzCharInfoItemQueDto dto,SzCharItemDto itemDto) { |
|
|
|
// 堤防数量
|
|
|
|
int dfNumber = this.baseMapper.countNumber(dto); |
|
|
|
|
|
|
|
// 一般隐患数量
|
|
|
|
dto.setProblem(DfEnum.GENERAL_HAZARDS.getValue()); |
|
|
|
int ybNumber = this.baseMapper.countNumber(dto); |
|
|
|
// 重大隐患数量
|
|
|
|
dto.setProblem(DfEnum.SIGNIFICANT_YH.getValue()); |
|
|
|
int zdNumber = this.baseMapper.countNumber(dto); |
|
|
|
// 处置数量
|
|
|
|
dto.setHandleStatus(DfEnum.HANDLED.getValue()); |
|
|
|
int czNumber = this.baseMapper.countNumber(dto); |
|
|
|
|
|
|
|
itemDto.setDfNumber(dfNumber); |
|
|
|
itemDto.setYbNumber(ybNumber); |
|
|
|
itemDto.setZdNumber(zdNumber); |
|
|
|
itemDto.setCzNumber(czNumber); |
|
|
|
} |
|
|
|
|
|
|
|
private SzCharItemDto.YAxis getSzHiddenDangeryAxis(Map.Entry<String, List<SzHiddenDangerModel>> entry) { |
|
|
|
List<SzCharItemDto.Series> seriesList =new ArrayList<>(); |
|
|
|
for (SzHiddenDangerModel it : entry.getValue()) { |
|
|
|
SzCharItemDto.Series series=new SzCharItemDto.Series(); |
|
|
|
series.setCount(it.getCount()); |
|
|
|
if (it != null) { |
|
|
|
// 如果非处置状态即全部为隐患状态
|
|
|
|
series.setType(Objects.equals(it.getHandleStatus(),2)?2:1); |
|
|
|
} |
|
|
|
seriesList.add(series); |
|
|
|
} |
|
|
|
// 设置 y轴
|
|
|
|
SzCharItemDto.YAxis yAxisInfo=new SzCharItemDto.YAxis(); |
|
|
|
yAxisInfo.setName("次数"); |
|
|
|
yAxisInfo.setUnit("个"); |
|
|
|
yAxisInfo.setSeries(seriesList); |
|
|
|
return yAxisInfo; |
|
|
|
} |
|
|
|
|
|
|
|
public IPage<SzRecordSimpleDto> search(SearchParam<SzRecordSearchDto> sp) { |
|
|
|