|
|
@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
import com.xunmei.common.core.constant.SecurityConstants;
|
|
|
import com.xunmei.common.core.enums.OrgTypeEnum;
|
|
|
+import com.xunmei.common.core.thread.ThreadPoolConfig;
|
|
|
import com.xunmei.common.core.utils.DateHelper;
|
|
|
import com.xunmei.common.core.utils.DateUtils;
|
|
|
import com.xunmei.common.security.utils.SecurityUtils;
|
|
|
@@ -18,6 +19,8 @@ import com.xunmei.core.reportForms.safetyInspect.vo.SelfInspectVO;
|
|
|
import com.xunmei.system.api.RemoteOrgService;
|
|
|
import com.xunmei.system.api.domain.SysOrg;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
@@ -25,6 +28,10 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.IOException;
|
|
|
import java.net.URLEncoder;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.CompletableFuture;
|
|
|
+import java.util.concurrent.ExecutionException;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
+import java.util.concurrent.TimeoutException;
|
|
|
|
|
|
/**
|
|
|
* @author :LuoWei
|
|
|
@@ -41,8 +48,12 @@ public class SafetyInspectServiceImpl implements SafetyInspectService {
|
|
|
@Autowired
|
|
|
private RemoteOrgService orgService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ @Qualifier(ThreadPoolConfig.SOC_EXECUTOR)
|
|
|
+ private ThreadPoolTaskExecutor threadPoolTaskExecutor;
|
|
|
+
|
|
|
@Override
|
|
|
- public List<SafetyInspectVO> report(SafetyInspectDTO safetyInspectDTO) {
|
|
|
+ public List<SafetyInspectVO> report(SafetyInspectDTO safetyInspectDTO) throws ExecutionException, InterruptedException, TimeoutException {
|
|
|
if (null == safetyInspectDTO.getOrgId()) {
|
|
|
safetyInspectDTO.setOrgId(SecurityUtils.getLoginUser().getOrgId());
|
|
|
}
|
|
|
@@ -64,57 +75,112 @@ public class SafetyInspectServiceImpl implements SafetyInspectService {
|
|
|
return Collections.emptyList();
|
|
|
}
|
|
|
List<SafetyInspectVO> safetyInspectVOList = new ArrayList<>();
|
|
|
- sysOrgs.forEach(s -> {
|
|
|
- SafetyInspectVO safetyInspectVO = new SafetyInspectVO();
|
|
|
- SysOrg sysOrg1;
|
|
|
- if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社") || sysOrg.getType() == 9) {
|
|
|
- sysOrg1 = orgService.selectOrgById(s.getParentId(), SecurityConstants.INNER);
|
|
|
- } else {
|
|
|
- sysOrg1 = orgService.selectOrgById(orgService.selectOrgById(s.getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER);
|
|
|
- if (!sysOrg1.getShortName().contains("地区行社")) {
|
|
|
- sysOrg1 = orgService.selectOrgById(orgService.selectOrgById(orgService.selectOrgById(s.getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER);
|
|
|
- }
|
|
|
- }
|
|
|
- safetyInspectVO.setCity(!sysOrg1.getShortName().contains("地区行社") ? sysOrg1.getShortName().substring(0, 2) : sysOrg1.getShortName().split("地区行社")[0]);
|
|
|
- safetyInspectVO.setOrgName(s.getShortName());
|
|
|
- SafetyInspectVO safetyInspectVOS;
|
|
|
- Integer planInspectOrg;
|
|
|
- Integer realityInspectOrg;
|
|
|
- Map map1;
|
|
|
- if (!Objects.equals(s.getType(), OrgTypeEnum.YINGYE_WANGDIAN.getCode())) {
|
|
|
- //次数
|
|
|
- safetyInspectVOS = safetyInspectMapper.selectAllByPath(null, s.getPath(), safetyInspectDTO);
|
|
|
- //机构维度
|
|
|
- planInspectOrg = safetyInspectMapper.orgDimensionPlanInspectOrg(null, s.getPath(), safetyInspectDTO.getYear(), safetyInspectDTO.getOrgType(), 4);
|
|
|
- realityInspectOrg = safetyInspectMapper.orgDimensionRealityInspectOrg(null, s.getPath(), safetyInspectDTO.getYear(), safetyInspectDTO.getOrgType(), 4);
|
|
|
- map1 = safetyInspectMapper.pitfallDimension(null, s.getPath(), safetyInspectDTO, safetyInspectDTO.getOrgType(), 4);
|
|
|
- } else {
|
|
|
- safetyInspectVOS = safetyInspectMapper.selectAllByPath(s.getId(), null, safetyInspectDTO);
|
|
|
- planInspectOrg = safetyInspectMapper.orgDimensionPlanInspectOrg(s.getId(), s.getPath(), safetyInspectDTO.getYear(), safetyInspectDTO.getOrgType(), 4);
|
|
|
- realityInspectOrg = safetyInspectMapper.orgDimensionRealityInspectOrg(s.getId(), s.getPath(), safetyInspectDTO.getYear(), safetyInspectDTO.getOrgType(), 4);
|
|
|
- map1 = safetyInspectMapper.pitfallDimension(s.getId(), null, safetyInspectDTO, safetyInspectDTO.getOrgType(), 4);
|
|
|
- }
|
|
|
- double i = 0d;
|
|
|
- if (planInspectOrg != 0 && realityInspectOrg != 0) {
|
|
|
- i = (double) realityInspectOrg / planInspectOrg * 100;
|
|
|
- }
|
|
|
- safetyInspectVO.setPlanInspectOrg(planInspectOrg);
|
|
|
- safetyInspectVO.setRealityInspectOrg(realityInspectOrg);
|
|
|
- safetyInspectVO.setInspectCoverRate(String.format("%.2f", i) + "%");
|
|
|
- safetyInspectVO.setOrgName(s.getShortName());
|
|
|
- safetyInspectVO.setPitfallNumber(Integer.valueOf(map1.get("pitfallNumber").toString()));
|
|
|
- safetyInspectVO.setRectificationNumber(Integer.valueOf(map1.get("rectificationNumber").toString()));
|
|
|
- safetyInspectVO.setRectificationRate(map1.get("rectificationRate").toString());
|
|
|
- safetyInspectVO.setPlanInspectNumber(safetyInspectVOS.getPlanInspectNumber());
|
|
|
- safetyInspectVO.setRealityInspectNumber(safetyInspectVOS.getRealityInspectNumber());
|
|
|
- safetyInspectVO.setInspectRate(safetyInspectVOS.getInspectRate());
|
|
|
- safetyInspectVOList.add(safetyInspectVO);
|
|
|
+// sysOrgs.forEach(s -> {
|
|
|
+// SafetyInspectVO safetyInspectVO = new SafetyInspectVO();
|
|
|
+//// SysOrg sysOrg1;
|
|
|
+//// if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社") || sysOrg.getType() == 9) {
|
|
|
+//// sysOrg1 = orgService.selectOrgById(s.getParentId(), SecurityConstants.INNER);
|
|
|
+//// } else {
|
|
|
+//// sysOrg1 = orgService.selectOrgById(orgService.selectOrgById(s.getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER);
|
|
|
+//// if (!sysOrg1.getShortName().contains("地区行社")) {
|
|
|
+//// sysOrg1 = orgService.selectOrgById(orgService.selectOrgById(orgService.selectOrgById(s.getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER);
|
|
|
+//// }
|
|
|
+//// }
|
|
|
+// safetyInspectVO.setCity(s.getAffiliatedArea());
|
|
|
+// safetyInspectVO.setOrgName(s.getShortName());
|
|
|
+// SafetyInspectVO safetyInspectVOS;
|
|
|
+// Integer planInspectOrg;
|
|
|
+// Integer realityInspectOrg;
|
|
|
+// Map map1;
|
|
|
+// if (!Objects.equals(s.getType(), OrgTypeEnum.YINGYE_WANGDIAN.getCode())) {
|
|
|
+// //次数
|
|
|
+// safetyInspectVOS = safetyInspectMapper.selectAllByPath(null, s.getPath(), safetyInspectDTO);
|
|
|
+// //机构维度
|
|
|
+// planInspectOrg = safetyInspectMapper.orgDimensionPlanInspectOrg(null, s.getPath(), safetyInspectDTO.getYear(), safetyInspectDTO.getOrgType(), 4);
|
|
|
+// realityInspectOrg = safetyInspectMapper.orgDimensionRealityInspectOrg(null, s.getPath(), safetyInspectDTO.getYear(), safetyInspectDTO.getOrgType(), 4);
|
|
|
+// map1 = safetyInspectMapper.pitfallDimension(null, s.getPath(), safetyInspectDTO, safetyInspectDTO.getOrgType(), 4);
|
|
|
+// } else {
|
|
|
+// safetyInspectVOS = safetyInspectMapper.selectAllByPath(s.getId(), null, safetyInspectDTO);
|
|
|
+// planInspectOrg = safetyInspectMapper.orgDimensionPlanInspectOrg(s.getId(), s.getPath(), safetyInspectDTO.getYear(), safetyInspectDTO.getOrgType(), 4);
|
|
|
+// realityInspectOrg = safetyInspectMapper.orgDimensionRealityInspectOrg(s.getId(), s.getPath(), safetyInspectDTO.getYear(), safetyInspectDTO.getOrgType(), 4);
|
|
|
+// map1 = safetyInspectMapper.pitfallDimension(s.getId(), null, safetyInspectDTO, safetyInspectDTO.getOrgType(), 4);
|
|
|
+// }
|
|
|
+// double i = 0d;
|
|
|
+// if (planInspectOrg != 0 && realityInspectOrg != 0) {
|
|
|
+// i = (double) realityInspectOrg / planInspectOrg * 100;
|
|
|
+// }
|
|
|
+// safetyInspectVO.setPlanInspectOrg(planInspectOrg);
|
|
|
+// safetyInspectVO.setRealityInspectOrg(realityInspectOrg);
|
|
|
+// safetyInspectVO.setInspectCoverRate(String.format("%.2f", i) + "%");
|
|
|
+// safetyInspectVO.setOrgName(s.getShortName());
|
|
|
+// safetyInspectVO.setPitfallNumber(Integer.valueOf(map1.get("pitfallNumber").toString()));
|
|
|
+// safetyInspectVO.setRectificationNumber(Integer.valueOf(map1.get("rectificationNumber").toString()));
|
|
|
+// safetyInspectVO.setRectificationRate(map1.get("rectificationRate").toString());
|
|
|
+// safetyInspectVO.setPlanInspectNumber(safetyInspectVOS.getPlanInspectNumber());
|
|
|
+// safetyInspectVO.setRealityInspectNumber(safetyInspectVOS.getRealityInspectNumber());
|
|
|
+// safetyInspectVO.setInspectRate(safetyInspectVOS.getInspectRate());
|
|
|
+// safetyInspectVOList.add(safetyInspectVO);
|
|
|
+// });
|
|
|
+ List<CompletableFuture<SafetyInspectVO>> completableFutureList = new ArrayList<>();
|
|
|
+ sysOrgs.forEach(o -> {
|
|
|
+ CompletableFuture<SafetyInspectVO> getOneOrgSafetyInspectVO = CompletableFuture.supplyAsync(() ->
|
|
|
+ getOneOrgSafetyInspectData(o, safetyInspectDTO), threadPoolTaskExecutor
|
|
|
+ );
|
|
|
+ completableFutureList.add(getOneOrgSafetyInspectVO);
|
|
|
+ });
|
|
|
+
|
|
|
+ CompletableFuture<Void> allQueries = CompletableFuture.allOf(completableFutureList.toArray(new CompletableFuture[0]));
|
|
|
+
|
|
|
+ allQueries.get(15L, TimeUnit.SECONDS);
|
|
|
+
|
|
|
+ completableFutureList.forEach(x -> {
|
|
|
+ safetyInspectVOList.add(x.join());
|
|
|
});
|
|
|
return safetyInspectVOList;
|
|
|
}
|
|
|
|
|
|
+ private SafetyInspectVO getOneOrgSafetyInspectData(SysOrg org,SafetyInspectDTO safetyInspectDTO)
|
|
|
+ {
|
|
|
+ SafetyInspectVO safetyInspectVO = new SafetyInspectVO();
|
|
|
+
|
|
|
+ safetyInspectVO.setCity(org.getAffiliatedArea());
|
|
|
+ safetyInspectVO.setOrgName(org.getShortName());
|
|
|
+ SafetyInspectVO safetyInspectVOS;
|
|
|
+ Integer planInspectOrg;
|
|
|
+ Integer realityInspectOrg;
|
|
|
+ Map map1;
|
|
|
+ if (!Objects.equals(org.getType(), OrgTypeEnum.YINGYE_WANGDIAN.getCode())) {
|
|
|
+ //次数
|
|
|
+ safetyInspectVOS = safetyInspectMapper.selectAllByPath(null, org.getPath(), safetyInspectDTO);
|
|
|
+ //机构维度
|
|
|
+ planInspectOrg = safetyInspectMapper.orgDimensionPlanInspectOrg(null, org.getPath(), safetyInspectDTO.getYear(), safetyInspectDTO.getOrgType(), 4);
|
|
|
+ realityInspectOrg = safetyInspectMapper.orgDimensionRealityInspectOrg(null, org.getPath(), safetyInspectDTO.getYear(), safetyInspectDTO.getOrgType(), 4);
|
|
|
+ map1 = safetyInspectMapper.pitfallDimension(null, org.getPath(), safetyInspectDTO, safetyInspectDTO.getOrgType(), 4);
|
|
|
+ } else {
|
|
|
+ safetyInspectVOS = safetyInspectMapper.selectAllByPath(org.getId(), null, safetyInspectDTO);
|
|
|
+ planInspectOrg = safetyInspectMapper.orgDimensionPlanInspectOrg(org.getId(), org.getPath(), safetyInspectDTO.getYear(), safetyInspectDTO.getOrgType(), 4);
|
|
|
+ realityInspectOrg = safetyInspectMapper.orgDimensionRealityInspectOrg(org.getId(), org.getPath(), safetyInspectDTO.getYear(), safetyInspectDTO.getOrgType(), 4);
|
|
|
+ map1 = safetyInspectMapper.pitfallDimension(org.getId(), null, safetyInspectDTO, safetyInspectDTO.getOrgType(), 4);
|
|
|
+ }
|
|
|
+ double i = 0d;
|
|
|
+ if (planInspectOrg != 0 && realityInspectOrg != 0) {
|
|
|
+ i = (double) realityInspectOrg / planInspectOrg * 100;
|
|
|
+ }
|
|
|
+ safetyInspectVO.setPlanInspectOrg(planInspectOrg);
|
|
|
+ safetyInspectVO.setRealityInspectOrg(realityInspectOrg);
|
|
|
+ safetyInspectVO.setInspectCoverRate(String.format("%.2f", i) + "%");
|
|
|
+ safetyInspectVO.setOrgName(org.getShortName());
|
|
|
+ safetyInspectVO.setPitfallNumber(Integer.valueOf(map1.get("pitfallNumber").toString()));
|
|
|
+ safetyInspectVO.setRectificationNumber(Integer.valueOf(map1.get("rectificationNumber").toString()));
|
|
|
+ safetyInspectVO.setRectificationRate(map1.get("rectificationRate").toString());
|
|
|
+ safetyInspectVO.setPlanInspectNumber(safetyInspectVOS.getPlanInspectNumber());
|
|
|
+ safetyInspectVO.setRealityInspectNumber(safetyInspectVOS.getRealityInspectNumber());
|
|
|
+ safetyInspectVO.setInspectRate(safetyInspectVOS.getInspectRate());
|
|
|
+ return safetyInspectVO;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
- public List<SelfInspectVO> selfInspectReport(SafetyInspectDTO safetyInspectDTO) {
|
|
|
+ public List<SelfInspectVO> selfInspectReport(SafetyInspectDTO safetyInspectDTO) throws ExecutionException, InterruptedException, TimeoutException {
|
|
|
if (null == safetyInspectDTO.getOrgId()) {
|
|
|
safetyInspectDTO.setOrgId(SecurityUtils.getLoginUser().getOrgId());
|
|
|
}
|
|
|
@@ -137,52 +203,101 @@ public class SafetyInspectServiceImpl implements SafetyInspectService {
|
|
|
return Collections.emptyList();
|
|
|
}
|
|
|
List<SelfInspectVO> safetyInspectVOList = new ArrayList<>();
|
|
|
- sysOrgs.forEach(s -> {
|
|
|
- SelfInspectVO safetyInspectVO = new SelfInspectVO();
|
|
|
- SysOrg sysOrg1;
|
|
|
- if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社") || sysOrg.getType() == 9) {
|
|
|
- sysOrg1 = orgService.selectOrgById(s.getParentId(), SecurityConstants.INNER);
|
|
|
- } else {
|
|
|
- sysOrg1 = orgService.selectOrgById(orgService.selectOrgById(s.getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER);
|
|
|
- if (!sysOrg1.getShortName().contains("地区行社")) {
|
|
|
- sysOrg1 = orgService.selectOrgById(orgService.selectOrgById(orgService.selectOrgById(s.getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER);
|
|
|
- }
|
|
|
- }
|
|
|
- SafetyInspectVO safetyInspectVOS;
|
|
|
- Map map1;
|
|
|
- Map map;
|
|
|
- Integer integer = monitorAccessReportMapper.selectOrgNumByPathAndType(s.getPath(), OrgTypeEnum.YINGYE_WANGDIAN.getCode());
|
|
|
- if (s.getType() != 4) {
|
|
|
- //次数
|
|
|
- safetyInspectVOS = safetyInspectMapper.selectSelfByPath(null, s.getPath(), safetyInspectDTO);
|
|
|
- map1 = safetyInspectMapper.pitfallDimension(null, s.getPath(), safetyInspectDTO, safetyInspectDTO.getOrgType(), 3);
|
|
|
- //机构维度
|
|
|
- map = safetyInspectMapper.orgDimension(null, s.getPath(), safetyInspectDTO, safetyInspectDTO.getOrgType(), 3);
|
|
|
- } else {
|
|
|
- integer = 1;
|
|
|
- safetyInspectVOS = safetyInspectMapper.selectSelfByPath(s.getId(), null, safetyInspectDTO);
|
|
|
- map1 = safetyInspectMapper.pitfallDimension(s.getId(), null, safetyInspectDTO, safetyInspectDTO.getOrgType(), 3);
|
|
|
- map = safetyInspectMapper.orgDimension(s.getId(), null, safetyInspectDTO, safetyInspectDTO.getOrgType(), 3);
|
|
|
- }
|
|
|
- safetyInspectVO.setPlanInspectOrg(integer);
|
|
|
- safetyInspectVO.setCity(!sysOrg1.getShortName().contains("地区行社") ? sysOrg1.getShortName().substring(0, 2) : sysOrg1.getShortName().split("地区行社")[0]);
|
|
|
- safetyInspectVO.setOrgName(s.getShortName());
|
|
|
- safetyInspectVO.setRealityInspectOrg(Integer.valueOf(map.get("realityInspectOrg").toString()));
|
|
|
- safetyInspectVO.setInspectCoverRate(map.get("inspectCoverRate").toString());
|
|
|
- safetyInspectVO.setOrgName(s.getShortName());
|
|
|
- safetyInspectVO.setPitfallNumber(Integer.valueOf(map1.get("pitfallNumber").toString()));
|
|
|
- safetyInspectVO.setRectificationNumber(Integer.valueOf(map1.get("rectificationNumber").toString()));
|
|
|
- safetyInspectVO.setRectificationRate(map1.get("rectificationRate").toString());
|
|
|
- safetyInspectVO.setPlanInspectNumber(safetyInspectVOS.getPlanInspectNumber());
|
|
|
- safetyInspectVO.setRealityInspectNumber(safetyInspectVOS.getRealityInspectNumber());
|
|
|
- safetyInspectVO.setInspectRate(safetyInspectVOS.getInspectRate());
|
|
|
- safetyInspectVOList.add(safetyInspectVO);
|
|
|
+// sysOrgs.forEach(s -> {
|
|
|
+// SelfInspectVO safetyInspectVO = new SelfInspectVO();
|
|
|
+//// SysOrg sysOrg1;
|
|
|
+//// if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社") || sysOrg.getType() == 9) {
|
|
|
+//// sysOrg1 = orgService.selectOrgById(s.getParentId(), SecurityConstants.INNER);
|
|
|
+//// } else {
|
|
|
+//// sysOrg1 = orgService.selectOrgById(orgService.selectOrgById(s.getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER);
|
|
|
+//// if (!sysOrg1.getShortName().contains("地区行社")) {
|
|
|
+//// sysOrg1 = orgService.selectOrgById(orgService.selectOrgById(orgService.selectOrgById(s.getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER).getParentId(), SecurityConstants.INNER);
|
|
|
+//// }
|
|
|
+//// }
|
|
|
+// SafetyInspectVO safetyInspectVOS;
|
|
|
+// Map map1;
|
|
|
+// Map map;
|
|
|
+// Integer integer = monitorAccessReportMapper.selectOrgNumByPathAndType(s.getPath(), OrgTypeEnum.YINGYE_WANGDIAN.getCode());
|
|
|
+// if (s.getType() != 4) {
|
|
|
+// //次数
|
|
|
+// safetyInspectVOS = safetyInspectMapper.selectSelfByPath(null, s.getPath(), safetyInspectDTO);
|
|
|
+// map1 = safetyInspectMapper.pitfallDimension(null, s.getPath(), safetyInspectDTO, safetyInspectDTO.getOrgType(), 3);
|
|
|
+// //机构维度
|
|
|
+// map = safetyInspectMapper.orgDimension(null, s.getPath(), safetyInspectDTO, safetyInspectDTO.getOrgType(), 3);
|
|
|
+// } else {
|
|
|
+// integer = 1;
|
|
|
+// safetyInspectVOS = safetyInspectMapper.selectSelfByPath(s.getId(), null, safetyInspectDTO);
|
|
|
+// map1 = safetyInspectMapper.pitfallDimension(s.getId(), null, safetyInspectDTO, safetyInspectDTO.getOrgType(), 3);
|
|
|
+// map = safetyInspectMapper.orgDimension(s.getId(), null, safetyInspectDTO, safetyInspectDTO.getOrgType(), 3);
|
|
|
+// }
|
|
|
+// safetyInspectVO.setPlanInspectOrg(integer);
|
|
|
+// safetyInspectVO.setCity(s.getAffiliatedArea());
|
|
|
+// safetyInspectVO.setOrgName(s.getShortName());
|
|
|
+// safetyInspectVO.setRealityInspectOrg(Integer.valueOf(map.get("realityInspectOrg").toString()));
|
|
|
+// safetyInspectVO.setInspectCoverRate(map.get("inspectCoverRate").toString());
|
|
|
+// safetyInspectVO.setOrgName(s.getShortName());
|
|
|
+// safetyInspectVO.setPitfallNumber(Integer.valueOf(map1.get("pitfallNumber").toString()));
|
|
|
+// safetyInspectVO.setRectificationNumber(Integer.valueOf(map1.get("rectificationNumber").toString()));
|
|
|
+// safetyInspectVO.setRectificationRate(map1.get("rectificationRate").toString());
|
|
|
+// safetyInspectVO.setPlanInspectNumber(safetyInspectVOS.getPlanInspectNumber());
|
|
|
+// safetyInspectVO.setRealityInspectNumber(safetyInspectVOS.getRealityInspectNumber());
|
|
|
+// safetyInspectVO.setInspectRate(safetyInspectVOS.getInspectRate());
|
|
|
+// safetyInspectVOList.add(safetyInspectVO);
|
|
|
+// });
|
|
|
+ List<CompletableFuture<SelfInspectVO>> completableFutureList = new ArrayList<>();
|
|
|
+ sysOrgs.forEach(o -> {
|
|
|
+ CompletableFuture<SelfInspectVO> getOneOrgSafetyInspectVO = CompletableFuture.supplyAsync(() ->
|
|
|
+ getOneOrgSelfInspectData(o, safetyInspectDTO), threadPoolTaskExecutor
|
|
|
+ );
|
|
|
+ completableFutureList.add(getOneOrgSafetyInspectVO);
|
|
|
+ });
|
|
|
+
|
|
|
+ CompletableFuture<Void> allQueries = CompletableFuture.allOf(completableFutureList.toArray(new CompletableFuture[0]));
|
|
|
+
|
|
|
+ allQueries.get(15L, TimeUnit.SECONDS);
|
|
|
+
|
|
|
+ completableFutureList.forEach(x -> {
|
|
|
+ safetyInspectVOList.add(x.join());
|
|
|
});
|
|
|
return safetyInspectVOList;
|
|
|
}
|
|
|
|
|
|
+ private SelfInspectVO getOneOrgSelfInspectData(SysOrg org,SafetyInspectDTO safetyInspectDTO)
|
|
|
+ {
|
|
|
+ SelfInspectVO safetyInspectVoResult = new SelfInspectVO();
|
|
|
+ SafetyInspectVO safetyInspectVOS;
|
|
|
+ Map map1;
|
|
|
+ Map map;
|
|
|
+ Integer integer = monitorAccessReportMapper.selectOrgNumByPathAndType(org.getPath(), OrgTypeEnum.YINGYE_WANGDIAN.getCode());
|
|
|
+ if (org.getType() != 4) {
|
|
|
+ //次数
|
|
|
+ safetyInspectVOS = safetyInspectMapper.selectSelfByPath(null, org.getPath(), safetyInspectDTO);
|
|
|
+ map1 = safetyInspectMapper.pitfallDimension(null, org.getPath(), safetyInspectDTO, safetyInspectDTO.getOrgType(), 3);
|
|
|
+ //机构维度
|
|
|
+ map = safetyInspectMapper.orgDimension(null, org.getPath(), safetyInspectDTO, safetyInspectDTO.getOrgType(), 3);
|
|
|
+ } else {
|
|
|
+ integer = 1;
|
|
|
+ safetyInspectVOS = safetyInspectMapper.selectSelfByPath(org.getId(), null, safetyInspectDTO);
|
|
|
+ map1 = safetyInspectMapper.pitfallDimension(org.getId(), null, safetyInspectDTO, safetyInspectDTO.getOrgType(), 3);
|
|
|
+ map = safetyInspectMapper.orgDimension(org.getId(), null, safetyInspectDTO, safetyInspectDTO.getOrgType(), 3);
|
|
|
+ }
|
|
|
+ safetyInspectVoResult.setPlanInspectOrg(integer);
|
|
|
+ safetyInspectVoResult.setCity(org.getAffiliatedArea());
|
|
|
+ safetyInspectVoResult.setOrgName(org.getShortName());
|
|
|
+ safetyInspectVoResult.setRealityInspectOrg(Integer.valueOf(map.get("realityInspectOrg").toString()));
|
|
|
+ safetyInspectVoResult.setInspectCoverRate(map.get("inspectCoverRate").toString());
|
|
|
+ safetyInspectVoResult.setOrgName(org.getShortName());
|
|
|
+ safetyInspectVoResult.setPitfallNumber(Integer.valueOf(map1.get("pitfallNumber").toString()));
|
|
|
+ safetyInspectVoResult.setRectificationNumber(Integer.valueOf(map1.get("rectificationNumber").toString()));
|
|
|
+ safetyInspectVoResult.setRectificationRate(map1.get("rectificationRate").toString());
|
|
|
+ safetyInspectVoResult.setPlanInspectNumber(safetyInspectVOS.getPlanInspectNumber());
|
|
|
+ safetyInspectVoResult.setRealityInspectNumber(safetyInspectVOS.getRealityInspectNumber());
|
|
|
+ safetyInspectVoResult.setInspectRate(safetyInspectVOS.getInspectRate());
|
|
|
+ return safetyInspectVoResult;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
- public void export(SafetyInspectDTO safetyInspectDTO, HttpServletResponse response) throws IOException {
|
|
|
+ public void export(SafetyInspectDTO safetyInspectDTO, HttpServletResponse response) throws IOException,ExecutionException, InterruptedException, TimeoutException {
|
|
|
String orgName = null;
|
|
|
SysOrg sysOrg;
|
|
|
if (null == safetyInspectDTO.getOrgId()) {
|
|
|
@@ -218,7 +333,7 @@ public class SafetyInspectServiceImpl implements SafetyInspectService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void selfInspectExport(SafetyInspectDTO safetyInspectDTO, HttpServletResponse response) throws IOException {
|
|
|
+ public void selfInspectExport(SafetyInspectDTO safetyInspectDTO, HttpServletResponse response) throws IOException,ExecutionException, InterruptedException, TimeoutException {
|
|
|
String orgName = null;
|
|
|
SysOrg sysOrg;
|
|
|
if (null == safetyInspectDTO.getOrgId()) {
|