| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- package cn.com.goldenwater.dcproj.service.impl;
- import cn.com.goldenwater.dcproj.dao.IndexTotalSyDao;
- import cn.com.goldenwater.dcproj.dto.DcIndexTotalSyDto;
- import cn.com.goldenwater.dcproj.dto.FileDto;
- import cn.com.goldenwater.dcproj.dto.ObjDto;
- import cn.com.goldenwater.dcproj.service.IndexTotalSyService;
- import cn.com.goldenwater.dcproj.service.OlBisInspOrgService;
- import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
- import org.apache.commons.collections.MapUtils;
- import org.apache.commons.lang.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.text.SimpleDateFormat;
- import java.util.*;
- import java.util.stream.Collectors;
- @Service
- public class IndexTotalSyServiceImpl implements IndexTotalSyService {
- @Autowired
- private OlBisInspOrgService olBisInspOrgService;
- @Autowired
- private IndexTotalSyDao indexTotalSyDao;
- @Override
- public List<Map<String, Object>> totalByType(DcIndexTotalSyDto dcIndexTotalSyDto) {
- getAdCode(dcIndexTotalSyDto);
- List<Map<String,Object>> objPblmDate = indexTotalSyDao.getObjPblmData(dcIndexTotalSyDto);
- List<Map<String,Object>> persDate = indexTotalSyDao.getPersData(dcIndexTotalSyDto);
- List<Map<String, Object>> zgData = indexTotalSyDao.getZgData(dcIndexTotalSyDto);
- List<String> objTypeList = objPblmDate.stream()
- .map(o -> MapUtils.getString(o, "CODE"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .collect(Collectors.toList());
- List<Map<String,Object>> ret = new ArrayList<>();
- Map<String, Object> all = new HashMap<>(8);
- all.put("inspName","全部");
- all.put("PERSIZE",persDate.stream()
- .map(o ->MapUtils.getString(o,"PERSID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- all.put("GROUPSIZE", objPblmDate.stream()
- .map(o ->MapUtils.getString(o,"ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- all.put("OBJSIZE",objPblmDate.stream()
- .map(o->MapUtils.getString(o,"OBJ_ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- all.put("PBLMSIZE",objPblmDate.stream()
- .map(o->MapUtils.getString(o,"PBLM_ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- all.put("MENDSIZE",zgData.stream()
- .map(o->MapUtils.getString(o,"ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- all.put("PDSIZE",zgData.stream()
- .filter(o -> "1".equals(MapUtils.getString(o,"PBLM_OUT")))
- .map(o -> MapUtils.getString(o,"ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- all.put("ONLINESIZE","15");
- SimpleDateFormat fmt=new SimpleDateFormat("yyyy-MM-dd");
- all.put("TODAYPBLM",objPblmDate.stream()
- .filter(o ->(MapUtils.getString(o,"TIME")).startsWith(fmt.format(new Date()).toString()))
- .map(o->MapUtils.getString(o,"PBLM_ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- ret.add(all);
- for (String objType : objTypeList) {
- Map<String, Object> map = new HashMap<>(8);
- map.put("CODE", objType);
- map.put("inspName", objPblmDate.stream()
- .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
- .map(o -> MapUtils.getString(o, "INSP_NAME"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .findFirst());
- map.put("PERSIZE", persDate.stream()
- .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
- .map(o -> MapUtils.getString(o, "PERSID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- map.put("GROUPSIZE", objPblmDate.stream()
- .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- map.put("OBJSIZE", objPblmDate.stream()
- .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
- .map(o -> MapUtils.getString(o, "OBJ_ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- map.put("PBLMSIZE", objPblmDate.stream()
- .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
- .map(o -> MapUtils.getString(o, "PBLM_ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- map.put("MENDSIZE", zgData.stream()
- .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- map.put("PDSIZE", zgData.stream()
- .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
- .filter(o -> "1".equals(MapUtils.getString(o, "PBLM_OUT")))
- .map(o -> MapUtils.getString(o, "ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- map.put("ONLINESIZE","15");
- map.put("TODAYPBLM", objPblmDate.stream()
- .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
- .filter(o ->(MapUtils.getString(o,"TIME")).startsWith(fmt.format(new Date()).toString()))
- .map(o -> MapUtils.getString(o, "PBLM_ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- ret.add(map);
- }
- return ret;
- }
- private void getAdCode(DcIndexTotalSyDto dcIndexTotalSyDto) {
- if(StringUtils.isBlank(dcIndexTotalSyDto.getAdCode())){
- dcIndexTotalSyDto.setAdCode(AdLevelUtil.getAddvcd(olBisInspOrgService.getProvince(dcIndexTotalSyDto.getOrgId())));
- } else {
- dcIndexTotalSyDto.setAdCode(AdLevelUtil.getAddvcd(dcIndexTotalSyDto.getAdCode()));
- }
- }
- public static boolean isToday(Date date){
- SimpleDateFormat fmt=new SimpleDateFormat("yyyy-MM-dd");
- if(fmt.format(date).toString().equals(fmt.format(new Date()).toString())){//格式化为相同格式
- return true;
- }else {
- return false;
- }
- }
- @Override
- public List<FileDto> getTopPblm(String adCode,String pType, String currentAdCode) {
- return indexTotalSyDao.getTopPblm(adCode, pType, currentAdCode);
- }
- @Override
- public List<Map<String, Object>> totalPblmByPtype(DcIndexTotalSyDto dcIndexTotalSyDto) {
- getAdCode(dcIndexTotalSyDto);
- List<Map<String, Object>> objPblmData = indexTotalSyDao.getObjPblmData(dcIndexTotalSyDto);
- List<String> objTypeList = objPblmData.stream()
- .map(o -> MapUtils.getString(o, "CODE"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .collect(Collectors.toList());
- List<Map<String, Object>> ret = new ArrayList<>();
- for (String objType : objTypeList) {
- Map<String, Object> map = new HashMap<>(3);
- map.put("CODE", objType);
- map.put("inspName", objPblmData.stream()
- .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
- .map(o -> MapUtils.getString(o, "INSP_NAME"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .findFirst());
- map.put("PBLMSIZE", objPblmData.stream()
- .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
- .map(o -> MapUtils.getString(o, "PBLM_ID"))
- .filter(StringUtils::isNotBlank)
- .distinct()
- .count()
- );
- ret.add(map);
- }
- ret = ret.stream()
- .sorted(Comparator.comparingInt(o -> MapUtils.getIntValue((Map) o, "PBLMSIZE")).reversed())
- .limit(10)
- .collect(Collectors.toList());
- return ret;
- }
- @Override
- public ObjDto getObj(String objId) {
- String ptype = indexTotalSyDao.getObjPtype(objId);
- int choice = Integer.parseInt(ptype);
- String tableName = indexTotalSyDao.getTableName(objId);
- String idName = "ID";
- switch (choice){
- case 1 :
- idName = "RGSTR_ID";
- break;
- case 3 :
- idName = "TRACK_ID";
- break;
- }
- switch (choice)
- {
- case 22:
- case 34:
- case 26:
- case 96:
- case 1:
- case 24:
- case 84:
- case 106:
- case 21:
- case 80:
- return indexTotalSyDao.getSkObj(objId,idName,tableName);
- case 7:
- return indexTotalSyDao.getEmpwtrunObj(objId);
- default:
- return indexTotalSyDao.getObj(objId,idName,tableName);
- }
- }
- }
|