package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.dcproj.dao.RelOrgInspTypeDao; import cn.com.goldenwater.dcproj.dao.TaskDthDayCountDao; import cn.com.goldenwater.dcproj.dto.BisInspTaskDthDayDto; import cn.com.goldenwater.dcproj.dto.BisInspTaskTotal; import cn.com.goldenwater.dcproj.service.IndexTotalService; import cn.com.goldenwater.dcproj.service.OlBisInspOrgService; import cn.com.goldenwater.dcproj.service.TacProvincePlanDictService; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.dcproj.utils.TaskDateUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author LQL */ @Service public class IndexTotalServiceImpl implements IndexTotalService { @Autowired private TaskDthDayCountDao taskDthDayCountDao; @Autowired private OlBisInspOrgService olBisInspOrgService; @Autowired private RelOrgInspTypeDao relOrgInspTypeDao; @Autowired private TacProvincePlanDictService tacProvincePlanDictService; @Override public Map totalAll(BisInspTaskDthDayDto bisInspTaskDthDayDto) { String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId())); bisInspTaskDthDayDto.setProvince(province); if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) { bisInspTaskDthDayDto.setAdCode(AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode())); } TaskDateUtils.setDate(bisInspTaskDthDayDto); Map map = new HashMap<>(14); // 督查类别数量 map.putAll(taskDthDayCountDao.getObjTypeSize(bisInspTaskDthDayDto.getOrgId())); //年督查项 map.putAll(taskDthDayCountDao.getAllObjSize(bisInspTaskDthDayDto)); //督查县/区数量 map.putAll(taskDthDayCountDao.getObjAdCodeSizeX(bisInspTaskDthDayDto)); //督查市数量 map.putAll(taskDthDayCountDao.getObjAdCodeSizeS(bisInspTaskDthDayDto)); // 督查批次数量 map.putAll(taskDthDayCountDao.getBisInspAllSize(bisInspTaskDthDayDto)); // 督查组数量 map.putAll(taskDthDayCountDao.getBisInspAllGroupSize(bisInspTaskDthDayDto)); // 全部人员数量 map.putAll(taskDthDayCountDao.getAllPerSize(bisInspTaskDthDayDto)); // 督查人员数量 map.putAll(taskDthDayCountDao.getBisInspAllRlationPerSize(bisInspTaskDthDayDto)); // 督查参与人次 map.putAll(taskDthDayCountDao.getBisInspAllRlationPerNumSize(bisInspTaskDthDayDto)); // 督查对象数量 map.putAll(taskDthDayCountDao.getObjSize(bisInspTaskDthDayDto)); // 督查对象重复数量 map.putAll(taskDthDayCountDao.getObjSizeRepeat(bisInspTaskDthDayDto)); // 已督查对象数量 String[] rgsterTable = relOrgInspTypeDao.listOfRgster(bisInspTaskDthDayDto.getOrgId()); if (rgsterTable != null && rgsterTable.length > 0) { bisInspTaskDthDayDto.setRgsterTable(rgsterTable); map.putAll(taskDthDayCountDao.getHasObjSize(bisInspTaskDthDayDto)); } else { map.put("HASOBJSIZE", "0"); } // 问题数量 map.putAll(taskDthDayCountDao.getPblmSize(bisInspTaskDthDayDto)); // 整改数量 map.putAll(taskDthDayCountDao.getZgSize(bisInspTaskDthDayDto)); // 整改销号数量 map.putAll(taskDthDayCountDao.getPdZgSize(bisInspTaskDthDayDto)); // 本月新增 督查类别个数 map.putAll(taskDthDayCountDao.getObjTypeSizeMonth(bisInspTaskDthDayDto)); // 本月新增 督查批次个数 map.putAll(taskDthDayCountDao.getBisInspAllSizeMonth(bisInspTaskDthDayDto)); // 本月新增 问题数量 map.putAll(taskDthDayCountDao.getPblmSizeMonth(bisInspTaskDthDayDto)); // 本月新增 整改数量 map.put("MENDSIZEMONTH", "0"); // 本月新增 整改销号数量 map.putAll(taskDthDayCountDao.getDelPblmSizeMonth(bisInspTaskDthDayDto)); // 福建省增加 查询 去年数据 需要与去年数据进行对比 if("7".equals(bisInspTaskDthDayDto.getTimeType()) ) { // 统计 批次 和 组 map.putAll(taskDthDayCountDao.selectBatchAndGroupSize(bisInspTaskDthDayDto)); String queryCurYear = bisInspTaskDthDayDto.getYear(); int curYear = Integer.parseInt(queryCurYear); map.put("objRant","0"); map.put("pblmAllRant","0"); map.put("pblmRectRant","0"); if(2019 != curYear){ bisInspTaskDthDayDto.setYear(String.valueOf(curYear-1)); TaskDateUtils.setDate(bisInspTaskDthDayDto); // 督查对象数 Map lastYearObjMap = taskDthDayCountDao.getObjSize(bisInspTaskDthDayDto); if(null != lastYearObjMap && lastYearObjMap.size()>0){ Object lastYearObjSize = lastYearObjMap.get("OBJSIZE"); Object curYearObjSize = map.get("OBJSIZE"); if(!"0".equals(curYearObjSize.toString())){ map.put("objRant",getPercent(curYearObjSize.toString(),lastYearObjSize.toString())); } } // 发现问题数 Map lastYearPblmMap = taskDthDayCountDao.getPblmSize(bisInspTaskDthDayDto); if(null != lastYearPblmMap && lastYearPblmMap.size()>0){ Object lastYearPblmSize = lastYearPblmMap.get("PBLMSIZE"); Object curYearPblmSize = map.get("PBLMSIZE"); if(!"0".equals(curYearPblmSize.toString())){ map.put("pblmAllRant",getPercent(curYearPblmSize.toString(),lastYearPblmSize.toString())); } } // 整改问题数 Map lastYearZgMap = taskDthDayCountDao.getZgSize(bisInspTaskDthDayDto); if(null != lastYearZgMap && lastYearZgMap.size()>0){ // 对比系统整改数 Object lastYearZgSize = lastYearZgMap.get("MENDSIZESYS"); Object curYearZgSize = map.get("MENDSIZESYS"); if(!"0".equals(curYearZgSize.toString())){ map.put("pblmRectRant",getPercent(curYearZgSize.toString(),lastYearZgSize.toString())); } } } } return map; } private String getPercent(String curVal , String lastVal){ if("0".equals(lastVal)){ return "0"; } return new BigDecimal(curVal).subtract(new BigDecimal(lastVal)).multiply(new BigDecimal(100)).divide(new BigDecimal(lastVal),2, RoundingMode.HALF_UP).toString().concat("%"); } @Override public Map totalAllOfJicha(BisInspTaskDthDayDto bisInspTaskDthDayDto) { String province = olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId()); bisInspTaskDthDayDto.setProvince(province); bisInspTaskDthDayDto.setLastStepId(tacProvincePlanDictService.getJcStepId(bisInspTaskDthDayDto.getOrgId())); if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) { bisInspTaskDthDayDto.setAdCode(AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode())); } else { bisInspTaskDthDayDto.setAdCode(AdLevelUtil.getAddvcd(province)); } Map map = new HashMap<>(9); // 人员个数 map.putAll(taskDthDayCountDao.getBisInspAllRlationPerSizeJicha(bisInspTaskDthDayDto)); // 组个数 map.putAll(taskDthDayCountDao.getBisInspAllGroupSizeJicha(bisInspTaskDthDayDto)); // 督查对象个数 map.putAll(taskDthDayCountDao.getObjSizeJicha(bisInspTaskDthDayDto)); // 督查问题个数 map.putAll(taskDthDayCountDao.getPblmSizeJicha(bisInspTaskDthDayDto)); // 整改数 if ("330000000000".equals(province) && "2020".equals(bisInspTaskDthDayDto.getYear())) { map.put("MENDSIZE", map.get("PBLMSIZE")); } else { map.putAll(taskDthDayCountDao.getPblmSizeJichaZg(bisInspTaskDthDayDto)); } // 销号数 map.putAll(taskDthDayCountDao.getPblmSizeJichaFc(bisInspTaskDthDayDto)); // 本月新增 整改个数 TODO map.put("MENDSIZEMONTH", "0"); return map; } @Override public List> statisticsBySpecialtyType(BisInspTaskDthDayDto bisInspTaskDthDayDto) { TaskDateUtils.setDate(bisInspTaskDthDayDto); String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId())); //如果为空则设置 提取全省信息 否则 截取行政区 if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) { bisInspTaskDthDayDto.setAdCode(AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode())); } else { bisInspTaskDthDayDto.setAdCode(province); } if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getObjType())) { bisInspTaskDthDayDto.setObjType(String.valueOf(Integer.parseInt(bisInspTaskDthDayDto.getObjType()))); if ("8".equals(bisInspTaskDthDayDto.getObjType())) { // 如果是稽察, 查询最后一步ID bisInspTaskDthDayDto.setLastStepId(tacProvincePlanDictService.getJcStepId(bisInspTaskDthDayDto.getOrgId())); } } return taskDthDayCountDao.statisticsBySpecialtyType(bisInspTaskDthDayDto); } /** * 按年份统计督查类型的问题,按问题类型进行分类统计 * @param bisInspTaskDthDayDto * @return */ @Override public List> statisticsByPblmType(BisInspTaskDthDayDto bisInspTaskDthDayDto) { TaskDateUtils.setDate(bisInspTaskDthDayDto); String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId())); //如果为空则设置 提取全省信息 否则 截取行政区 if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) { bisInspTaskDthDayDto.setAdCode(AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode())); } else { bisInspTaskDthDayDto.setAdCode(province); } return taskDthDayCountDao.statisticsByPblmType(bisInspTaskDthDayDto); } @Override public List> statisticsByEngType(BisInspTaskDthDayDto bisInspTaskDthDayDto) { // 设置时间 TaskDateUtils.setDate(bisInspTaskDthDayDto); // 获取省份编码ID String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId())); // 如果为空则设置 提取全省信息 否则 截取行政区 if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) { bisInspTaskDthDayDto.setAdCode(AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode())); } else { bisInspTaskDthDayDto.setAdCode(province); } bisInspTaskDthDayDto.setLastStepId(tacProvincePlanDictService.getJcStepId(bisInspTaskDthDayDto.getOrgId())); return taskDthDayCountDao.statisticsByEngType(bisInspTaskDthDayDto); } @Override public List> statisticsByResubType(BisInspTaskDthDayDto bisInspTaskDthDayDto) { // 设置时间 TaskDateUtils.setDate(bisInspTaskDthDayDto); // 获取省份编码ID String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId())); // 如果为空则设置 提取全省信息 否则 截取行政区 if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) { bisInspTaskDthDayDto.setAdCode(AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode())); } else { bisInspTaskDthDayDto.setAdCode(province); } bisInspTaskDthDayDto.setLastStepId(tacProvincePlanDictService.getJcStepId(bisInspTaskDthDayDto.getOrgId())); return taskDthDayCountDao.statisticsByResubType(bisInspTaskDthDayDto); } @Override public Map getObjSize(BisInspTaskDthDayDto bisInspTaskDthDayDto) { Map mapObj = new HashMap<>(1); String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId())); if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) { province = AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode()); } TaskDateUtils.setDate(bisInspTaskDthDayDto); BisInspTaskTotal bisInspTaskTotal = taskDthDayCountDao.getListByTm(province, bisInspTaskDthDayDto.getObjType(), bisInspTaskDthDayDto.getSttm(), bisInspTaskDthDayDto.getEntm()); mapObj.put("objSize", String.valueOf(bisInspTaskTotal.getObjSize())); String[] rgsterTable = relOrgInspTypeDao.listOfRgster(bisInspTaskDthDayDto.getOrgId()); bisInspTaskDthDayDto.setRgsterTable(rgsterTable); Map map = taskDthDayCountDao.getHasObjSize(bisInspTaskDthDayDto); mapObj.putAll(map); return mapObj; } @Override public List> personCount(BisInspTaskDthDayDto bisInspTaskDthDayDto) { String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId())); if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) { province = AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode()); } bisInspTaskDthDayDto.setProvince(province); TaskDateUtils.setDate(bisInspTaskDthDayDto); return taskDthDayCountDao.personCount(bisInspTaskDthDayDto); } }