| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 |
- package cn.com.goldenwater.dcproj.service.impl;
- import cn.com.goldenwater.dcproj.dao.IndexTotalQhJcDao;
- import cn.com.goldenwater.dcproj.dto.DcIndexTotalQhDto;
- import cn.com.goldenwater.dcproj.model.AttAdBase;
- import cn.com.goldenwater.dcproj.service.AttAdBaseService;
- import cn.com.goldenwater.dcproj.service.IndexTotalQhJcService;
- import cn.com.goldenwater.dcproj.service.OlBisInspOrgService;
- import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
- import org.apache.commons.collections.MapUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- @Service
- public class IndexTotalQhJcServiceImpl implements IndexTotalQhJcService {
- @Autowired
- private IndexTotalQhJcDao indexTotalQhDao;
- @Autowired
- private OlBisInspOrgService olBisInspOrgService;
- @Autowired
- private AttAdBaseService attAdBaseService;
- private static Map<String, String> listTypeMap = new HashMap<>(6);
- {
- listTypeMap.put("1", "前期与设计");
- listTypeMap.put("2", "建设管理");
- listTypeMap.put("3", "计划下达与执行");
- listTypeMap.put("4", "资金使用与管理");
- listTypeMap.put("5", "工程质量");
- listTypeMap.put("6", "工程安全");
- }
- private List<Map<String, Object>> getObjPblmData(DcIndexTotalQhDto dcIndexTotalQhDto) {
- List<Map<String, Object>> objPblmData = indexTotalQhDao.getObjPblmData(dcIndexTotalQhDto);
- for (Map<String, Object> map : objPblmData) {
- map.put("inspName", listTypeMap.get(MapUtils.getString(map, "LIST_TYPE", "")));
- }
- return objPblmData;
- }
- /**
- * PERSIZE PBLMSIZE GROUPSIZE MENDSIZE OBJSIZE PDSIZE
- *
- * @param dcIndexTotalQhDto
- * @return
- */
- @Override
- public List<Map<String, Object>> totalByType(DcIndexTotalQhDto dcIndexTotalQhDto) {
- getAdCode(dcIndexTotalQhDto);
- List<Map<String, Object>> objPblmData = getObjPblmData(dcIndexTotalQhDto);
- List<Map<String, Object>> ret = new ArrayList<>();
- Map<String, Object> all = new HashMap<>(5);
- all.put("inspName", "全部");
- all.put("PBLMSIZE", objPblmData.stream()
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- all.put("INFOSIZE", objPblmData.stream()
- .filter(o -> "0".equals(MapUtils.getString(o, "PBLM_PASI")))
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- all.put("WARMSIZE", objPblmData.stream()
- .filter(o -> "1".equals(MapUtils.getString(o, "PBLM_PASI")))
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- all.put("ERRORSIZE", objPblmData.stream()
- .filter(o -> "2".equals(MapUtils.getString(o, "PBLM_PASI")))
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- ret.add(all);
- for (int i = 1; i < 7; i++) {
- String iStr = String.valueOf(i);
- List<Map<String, Object>> listTypeList = objPblmData.stream()
- .filter(o -> iStr.equals(MapUtils.getString(o, "LIST_TYPE"))).collect(Collectors.toList());
- Map<String, Object> map = new HashMap<>(8);
- map.put("CODE", String.valueOf(i));
- map.put("inspName", listTypeMap.get(String.valueOf(i)));
- map.put("PBLMSIZE", listTypeList.stream()
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- map.put("INFOSIZE", listTypeList.stream()
- .filter(o -> "0".equals(MapUtils.getString(o, "PBLM_PASI")))
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- map.put("WARMSIZE", listTypeList.stream()
- .filter(o -> "1".equals(MapUtils.getString(o, "PBLM_PASI")))
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- map.put("ERRORSIZE", listTypeList.stream()
- .filter(o -> "2".equals(MapUtils.getString(o, "PBLM_PASI")))
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- ret.add(map);
- }
- return ret;
- }
- /**
- * PERSIZE PBLMSIZE GROUPSIZE MENDSIZE OBJSIZE PDSIZE
- *
- * @param dcIndexTotalQhDto
- * @return
- */
- @Override
- public List<Map<String, Object>> totalPblmByPtype(DcIndexTotalQhDto dcIndexTotalQhDto) {
- getAdCode(dcIndexTotalQhDto);
- List<Map<String, Object>> objPblmData = getObjPblmData(dcIndexTotalQhDto);
- List<Map<String, Object>> ret = new ArrayList<>();
- for (int i = 1; i < 7; i++) {
- Map<String, Object> map = new HashMap<>(3);
- map.put("CODE", i);
- map.put("inspName", listTypeMap.get(String.valueOf(i)));
- String iStr = String.valueOf(i);
- map.put("PBLMSIZE", objPblmData.stream()
- .filter(o -> iStr.equals(MapUtils.getString(o, "LIST_TYPE")))
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- ret.add(map);
- }
- return ret;
- }
- /**
- * PERSIZE PBLMSIZE GROUPSIZE MENDSIZE OBJSIZE PDSIZE
- *
- * @param dcIndexTotalQhDto
- * @return
- */
- @Override
- public List<Map<String, Object>> totalByAdCode(DcIndexTotalQhDto dcIndexTotalQhDto) {
- getAdCode(dcIndexTotalQhDto);
- List<Map<String, Object>> objPblmData = getObjPblmData(dcIndexTotalQhDto);
- String upAdCode = dcIndexTotalQhDto.getAdCode();
- switch (upAdCode.length()) {
- case 2:
- upAdCode += "0000000000";
- break;
- case 4:
- upAdCode += "00000000";
- break;
- default:
- }
- List<AttAdBase> adBaseList = attAdBaseService.getAdData(upAdCode);
- List<Map<String, Object>> ret = new ArrayList<>();
- for (AttAdBase attAdBase : adBaseList) {
- String adCode = AdLevelUtil.getAddvcd(attAdBase.getAdCode());
- Map<String, Object> map = new HashMap<>(10);
- map.put("CODE", attAdBase.getAdCode());
- map.put("inspName", attAdBase.getAdName());
- map.put("LAT", attAdBase.getLttd());
- map.put("LONG", attAdBase.getLgtd());
- map.put("PBLMSIZE", objPblmData.stream()
- .filter(o -> MapUtils.getString(o, "AD_CODE", "AAA").contains(adCode))
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- ret.add(map);
- }
- return ret;
- }
- /**
- * PERSIZE PBLMSIZE GROUPSIZE MENDSIZE OBJSIZE PDSIZE
- *
- * @param dcIndexTotalQhDto
- * @return
- */
- @Override
- public List<Map<String, Object>> pblmByAdCode(DcIndexTotalQhDto dcIndexTotalQhDto) {
- getAdCode(dcIndexTotalQhDto);
- List<Map<String, Object>> objPblmData = indexTotalQhDao.getObjPblmData(dcIndexTotalQhDto);
- List<String> rgstrIdList = objPblmData.stream()
- .map(o -> MapUtils.getString(o, "RGSTR_ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .collect(Collectors.toList());
- List<Map<String, Object>> ret = new ArrayList<>();
- for (String rgstrId : rgstrIdList) {
- List<Map<String, Object>> rgstrData = objPblmData.stream()
- .filter(o -> rgstrId.equals(MapUtils.getString(o, "RGSTR_ID")))
- .distinct()
- .collect(Collectors.toList());
- Map<String, Object> map = new HashMap<>(3);
- map.put("CODE", rgstrId);
- map.put("inspName", rgstrData.stream().map(o -> MapUtils.getString(o, "NAME")).findFirst());
- List<Map<String, Object>> value = new ArrayList<>();
- for (int i = 1; i < 7; i++) {
- String iStr = String.valueOf(i);
- List<Map<String, Object>> listTypeList = rgstrData.stream()
- .filter(o -> iStr.equals(MapUtils.getString(o, "LIST_TYPE"))).collect(Collectors.toList());
- Map<String, Object> valueMap = new HashMap<>(8);
- valueMap.put("CODE", String.valueOf(i));
- valueMap.put("inspName", listTypeMap.get(String.valueOf(i)));
- valueMap.put("PBLMSIZE", listTypeList.stream()
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- valueMap.put("INFOSIZE", listTypeList.stream()
- .filter(o -> "0".equals(MapUtils.getString(o, "PBLM_PASI")))
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- valueMap.put("WARMSIZE", listTypeList.stream()
- .filter(o -> "1".equals(MapUtils.getString(o, "PBLM_PASI")))
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- valueMap.put("ERRORSIZE", listTypeList.stream()
- .filter(o -> "2".equals(MapUtils.getString(o, "PBLM_PASI")))
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- value.add(valueMap);
- }
- map.put("PBLMSIZE", value);
- ret.add(map);
- }
- return ret;
- }
- private void getAdCode(DcIndexTotalQhDto dcIndexTotalQhDto) {
- dcIndexTotalQhDto.setProvince(AdLevelUtil.getAddvcd(olBisInspOrgService.getProvince(dcIndexTotalQhDto.getOrgId())));
- if (StringUtils.isBlank(dcIndexTotalQhDto.getAdCode())) {
- dcIndexTotalQhDto.setAdCode(AdLevelUtil.getAddvcd(olBisInspOrgService.getProvince(dcIndexTotalQhDto.getOrgId())));
- } else {
- dcIndexTotalQhDto.setAdCode(AdLevelUtil.getAddvcd(dcIndexTotalQhDto.getAdCode()));
- }
- }
- }
|