From 9ca0dc6e7833715b875cc9b6b91d5c497b2bae8b Mon Sep 17 00:00:00 2001
From: zf <1603559716@qq.com>
Date: Wed, 30 Aug 2023 09:05:45 +0800
Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/hazardInvestigationSystem into zf
---
src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionStatisticServiceImpl.java | 197 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 197 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionStatisticServiceImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionStatisticServiceImpl.java
new file mode 100644
index 0000000..b3a8b92
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionStatisticServiceImpl.java
@@ -0,0 +1,197 @@
+package com.gk.hotwork.Service.ServiceImpl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gk.hotwork.Domain.*;
+import com.gk.hotwork.Domain.Do.CompanyInspectionCountDO;
+import com.gk.hotwork.Domain.Do.CompanyStatisticInspectionDO;
+import com.gk.hotwork.Domain.Do.SubordinateOrganizationInfoDO;
+import com.gk.hotwork.Domain.Utils.BeanUtils;
+import com.gk.hotwork.Domain.Utils.Msg;
+import com.gk.hotwork.Domain.Utils.StringUtils;
+import com.gk.hotwork.Domain.dto.resp.AreaInspectionCountRespDTO;
+import com.gk.hotwork.Domain.dto.resp.CompanyInspectionCountRespDTO;
+import com.gk.hotwork.Domain.query.CountQuery;
+import com.gk.hotwork.Service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/8/22
+ * @time: 15:41
+ */
+@Service
+public class SafetyInspectionStatisticServiceImpl implements SafetyInspectionStatisticService {
+
+ private final static String province = "新疆维吾尔自治区";
+ @Autowired
+ private DistrictService districtService;
+ @Autowired
+ private CompanyService companyService;
+ @Autowired
+ private InspectionHiddenDangerService hiddenDangerService;
+ @Autowired
+ private SafetySelfInspectionService selfInspectionService;
+ @Override
+ public Msg getCountByArea(CountQuery query, UserInfo user) {
+ List<SubordinateOrganizationInfoDO> organizationInfos = null;
+
+ Integer type = user.getType();
+ //如果传来的区县级不为空,则表明是到县级
+ if(StringUtils.isNotBlank(query.getArea())){
+ return getAreaDataCount(query);
+ }
+ //如果传来市级不为空
+ if(StringUtils.isNotBlank(query.getCity())){
+ List<DistrictInfo> districtInfos = districtService.selectDistrictByName("3", query.getCity(), "2");
+ organizationInfos = districtInfos.stream().map((districtInfo)->{
+ SubordinateOrganizationInfoDO organizationInfoDO = new SubordinateOrganizationInfoDO();
+ organizationInfoDO.setProvince(province);
+ organizationInfoDO.setCity(query.getCity());
+ organizationInfoDO.setArea(districtInfo.getName());
+ return organizationInfoDO;
+ }).collect(Collectors.toList());
+ }else {
+ //管理员
+ if(type.equals(1)){
+ List<DistrictInfo> districtInfos = districtService.selectDistrictByName("2", province, "1");
+ organizationInfos = districtInfos.stream().map((districtInfo)->{
+ SubordinateOrganizationInfoDO organizationInfoDO = new SubordinateOrganizationInfoDO();
+ organizationInfoDO.setProvince(province);
+ organizationInfoDO.setCity(districtInfo.getName());
+ return organizationInfoDO;
+ }).collect(Collectors.toList());
+ }
+ //监护人员
+ if(type.equals(2)){
+ //属于县级
+ if(StringUtils.isNotBlank(user.getCounty())){
+ query.setArea(user.getCounty());
+ return getAreaDataCount(query);
+ }
+ //属于市级
+ if(StringUtils.isNotBlank(user.getCity())){
+ List<DistrictInfo> districtInfos = districtService.selectDistrictByName("3", user.getCity(), "2");
+ organizationInfos = districtInfos.stream().map((districtInfo)->{
+ SubordinateOrganizationInfoDO organizationInfoDO = new SubordinateOrganizationInfoDO();
+ organizationInfoDO.setProvince(user.getProvince());
+ organizationInfoDO.setCity(user.getCity());
+ organizationInfoDO.setArea(districtInfo.getName());
+ return organizationInfoDO;
+ }).collect(Collectors.toList());
+ }
+ //属于省级
+ if(StringUtils.isNotBlank(user.getProvince())){
+ List<DistrictInfo> districtInfos = districtService.selectDistrictByName("2", user.getProvince(), "1");
+ organizationInfos = districtInfos.stream().map((districtInfo)->{
+ SubordinateOrganizationInfoDO organizationInfoDO = new SubordinateOrganizationInfoDO();
+ organizationInfoDO.setProvince(user.getProvince());
+ organizationInfoDO.setCity(districtInfo.getName());
+ return organizationInfoDO;
+ }).collect(Collectors.toList());
+ }
+ }
+ }
+ List<AreaInspectionCountRespDTO> list = getDataCountSelfCheckInfo(query,organizationInfos);
+ Msg msg = new Msg();
+ msg.setCode("200");
+ msg.setResult("查询成功");
+ msg.setResult(list);
+ return msg;
+ }
+
+ @Override
+ public Msg getUnCheckCompany(CountQuery query) {
+ Page<CompanyInfo> uncheckCompanyByArea = companyService.getUncheckCompanyByArea(query);
+ Msg msg = new Msg();
+ msg.setCode("200");
+ msg.setResult("查询成功");
+ msg.setResult(uncheckCompanyByArea);
+ return msg;
+ }
+
+ private List<AreaInspectionCountRespDTO> getDataCountSelfCheckInfo(CountQuery query, List<SubordinateOrganizationInfoDO> organizationInfos) {
+
+ List<AreaInspectionCountRespDTO> respDTOList = new ArrayList<>();
+ for (SubordinateOrganizationInfoDO organizationInfo : organizationInfos) {
+ AreaInspectionCountRespDTO areaInspectionCountRespDTO = new AreaInspectionCountRespDTO();
+ //统计检查企业数量以及清单数量等
+ Map<String,Object> map = new HashMap<>();
+ map.put("startTime",query.getStartTime());
+ map.put("endTime",query.getEndTime());
+ map.put("province",organizationInfo.getProvince());
+ map.put("city",organizationInfo.getCity());
+ map.put("area",organizationInfo.getArea());
+ CompanyStatisticInspectionDO companyStatisticInspection = selfInspectionService.companyStatisticInspection(map);
+ BeanUtils.copyProperties(companyStatisticInspection,areaInspectionCountRespDTO);
+ areaInspectionCountRespDTO.setProvince(organizationInfo.getProvince());
+ areaInspectionCountRespDTO.setCity(organizationInfo.getCity());
+ areaInspectionCountRespDTO.setArea(organizationInfo.getArea());
+ areaInspectionCountRespDTO.setRectifyRate(areaInspectionCountRespDTO.getHdTotal() == 0 ? new BigDecimal(0).setScale(2,BigDecimal.ROUND_HALF_UP) : new BigDecimal(areaInspectionCountRespDTO.getRectifyTotal()).divide(new BigDecimal(areaInspectionCountRespDTO.getHdTotal()), 2, BigDecimal.ROUND_HALF_UP));
+ //统计公司总数量
+ int companyCount = companyService.getCountByArea(map);
+ areaInspectionCountRespDTO.setCompanyTotal(companyService.getCountByArea(map));
+ areaInspectionCountRespDTO.setUnCheckCompanyCount(companyCount-areaInspectionCountRespDTO.getCheckCompanyCount());
+ respDTOList.add(areaInspectionCountRespDTO);
+ }
+ return respDTOList;
+ }
+
+ private Msg getAreaDataCount(CountQuery query) {
+ if(query.getPageIndex() == null){
+ query.setPageIndex(1);
+ }
+ if(query.getPageSize() == null){
+ query.setPageSize(10);
+ }
+ //获取该地区所有企业隐患统计
+ List<CompanyInspectionCountDO> statisticHiddenDangerList = hiddenDangerService.getStatisticHiddenDanger(query);
+ //获取相关企业
+ Page<CompanyInfo> companyInfoPage = companyService.getByArea(query);
+ List<CompanyInspectionCountRespDTO> list = new ArrayList<>();
+ for (CompanyInfo companyInfo : companyInfoPage.getRecords()) {
+ CompanyInspectionCountRespDTO inspectionCountRespDTO = new CompanyInspectionCountRespDTO();
+ List<CompanyInspectionCountDO> collect = statisticHiddenDangerList
+ .stream()
+ .filter(statistic -> statistic.getCompanyId().equals(companyInfo.getId()))
+ .collect(Collectors.toList());
+ if(collect.size() > 0){
+ CompanyInspectionCountDO companyInspectionCountDO = collect.get(0);
+ BeanUtils.copyProperties(companyInspectionCountDO,inspectionCountRespDTO);
+ inspectionCountRespDTO.setRectifyRate(companyInspectionCountDO.getSHdTotal() == 0 ? new BigDecimal(0).setScale(2,BigDecimal.ROUND_HALF_UP) : new BigDecimal(companyInspectionCountDO.getSReTotal()).divide(new BigDecimal(companyInspectionCountDO.getSHdTotal()), 2, BigDecimal.ROUND_HALF_UP));
+ }else {
+
+ inspectionCountRespDTO.setCheckTotal(0);
+ inspectionCountRespDTO.setSHdTotal(0);
+ inspectionCountRespDTO.setSMaTotal(0);
+ inspectionCountRespDTO.setSMaReTotal(0);
+ inspectionCountRespDTO.setSReTotal(0);
+ inspectionCountRespDTO.setSUnReTotal(0);
+ inspectionCountRespDTO.setSSaTotal(0);
+ inspectionCountRespDTO.setSSaReTotal(0);
+ inspectionCountRespDTO.setRectifyRate(new BigDecimal(0).setScale(2,BigDecimal.ROUND_HALF_UP));
+ inspectionCountRespDTO.setCompanyId(companyInfo.getId());
+ }
+ inspectionCountRespDTO.setCompanyName(companyInfo.getCompany());
+ inspectionCountRespDTO.setLastTime(selfInspectionService.selectLastTimeByCompanyId(companyInfo.getId(),query.getStartTime(),query.getEndTime()));
+ list.add(inspectionCountRespDTO);
+ }
+ Page<CompanyInspectionCountRespDTO> page = new Page<>();
+ BeanUtils.copyProperties(companyInfoPage,page);
+ page.setRecords(list);
+
+ Msg msg = new Msg();
+ msg.setCode("200");
+ msg.setMessage("查询成功");
+ msg.setResult(page);
+ return msg;
+ }
+}
--
Gitblit v1.9.2