package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.dcproj.dao.BisInspPblmDao; import cn.com.goldenwater.dcproj.dao.BisInspTaskDthDayDao; import cn.com.goldenwater.dcproj.dao.DictTypeDao; import cn.com.goldenwater.dcproj.dao.ObjInspPblmsDao; import cn.com.goldenwater.dcproj.dao.OlBisInspOrgDao; import cn.com.goldenwater.dcproj.dao.TacSlbLawIndexDao; import cn.com.goldenwater.dcproj.dto.BisInspTaskDthDayDto; import cn.com.goldenwater.dcproj.dto.TacSlbLawIndexDto; import cn.com.goldenwater.dcproj.model.BisInspPblm; import cn.com.goldenwater.dcproj.model.BisInspTaskDthDay; import cn.com.goldenwater.dcproj.model.DictType; import cn.com.goldenwater.dcproj.model.ObjInspPblms; import cn.com.goldenwater.dcproj.model.OlBisInspOrg; import cn.com.goldenwater.dcproj.model.TacSlbLawIndex; import cn.com.goldenwater.dcproj.param.BisInspPblmParam; import cn.com.goldenwater.dcproj.param.BisInspTaskDthDayParam; import cn.com.goldenwater.dcproj.param.DictTypeParam; import cn.com.goldenwater.dcproj.param.TacSlbLawIndexParam; import cn.com.goldenwater.dcproj.service.IndexTopService; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.dcproj.utils.Builder; import cn.com.goldenwater.dcproj.utils.TaskDateUtils; import cn.com.goldenwater.dcproj.vo.ObjInspPblmsVo; import com.github.pagehelper.PageHelper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; /** * @author LXF * @date 2023-04-08 */ @Service public class IndexTopServiceImpl implements IndexTopService { @Autowired private TacSlbLawIndexDao tacSlbLawIndexDao; @Autowired private BisInspPblmDao bisInspPblmDao; @Autowired private OlBisInspOrgDao olBisInspOrgDao; @Autowired private ObjInspPblmsDao inspPblmsDao ; @Autowired private BisInspTaskDthDayDao bisInspTaskDthDayDao; @Autowired private DictTypeDao dictTypeDao; @Override public List slbLawTopList(BisInspTaskDthDayDto bisInspTaskDthDayDto) { List lawIndexDtoList = this.tacSlbLawIndexDao.findListDocs(1); TacSlbLawIndexDto lawIndex = lawIndexDtoList.get(0); TacSlbLawIndexParam lawIndexParam = new TacSlbLawIndexParam(); lawIndexParam.setDocId(lawIndex.getDocId() + ""); // 取 多少条 if(null != bisInspTaskDthDayDto.getTopNum()){ lawIndexParam.setPageSize(bisInspTaskDthDayDto.getTopNum()); } PageHelper.startPage(lawIndexParam); List lawIndexList = this.tacSlbLawIndexDao.findTopList(lawIndexParam); return lawIndexList; } @Override public List pblmTopList(BisInspTaskDthDayDto bisInspTaskDthDayDto) { // 设置时间 TaskDateUtils.setDate(bisInspTaskDthDayDto); String curOrgId = bisInspTaskDthDayDto.getOrgId(); OlBisInspOrg inspOrg = this.olBisInspOrgDao.get(curOrgId); String adCode = AdLevelUtil.getAddvcd(inspOrg.getAdCode()); if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) { String addvcd = AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode()); if (addvcd.contains(adCode)) { adCode = addvcd; } } BisInspPblmParam pblmParam = new BisInspPblmParam(); pblmParam.setOrgId(curOrgId); pblmParam.setAdCode(adCode); pblmParam.setSttm(bisInspTaskDthDayDto.getSttm()); pblmParam.setEntm(bisInspTaskDthDayDto.getEntm()); pblmParam.setObjType(bisInspTaskDthDayDto.getObjType()); // 取 多少条 if(null != bisInspTaskDthDayDto.getTopNum()){ pblmParam.setPageSize(bisInspTaskDthDayDto.getTopNum()); } List pblmList = this.bisInspPblmDao.indexTopList(pblmParam); return pblmList; } /** * 问题清单 * 树形结构 * @param bisInspTaskDthDayDto * @return */ @Override public List pblmBzTopList(BisInspTaskDthDayDto bisInspTaskDthDayDto){ // 设置时间 TaskDateUtils.setDate(bisInspTaskDthDayDto); TaskDateUtils.setDate(bisInspTaskDthDayDto); String curOrgId = bisInspTaskDthDayDto.getOrgId(); OlBisInspOrg inspOrg = this.olBisInspOrgDao.get(curOrgId); String adCode = AdLevelUtil.getAddvcd(inspOrg.getAdCode()); if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) { String addvcd = AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode()); if (addvcd.contains(adCode)) { adCode = addvcd; } } bisInspTaskDthDayDto.setAdCode(adCode); BisInspTaskDthDayParam bisInspTaskDthDayParam = new BisInspTaskDthDayParam(); BeanUtils.copyProperties(bisInspTaskDthDayDto, bisInspTaskDthDayParam); List specialtyTypeList = bisInspTaskDthDayDao.selectCurObjTypeList(bisInspTaskDthDayParam); List resultList = specialtyTypeList.stream().map(m->Builder.of(ObjInspPblmsVo::new) .with(ObjInspPblmsVo::setInspObjType, m.getObjType()) .with(ObjInspPblmsVo::setInspObjName, m.getObjName()) .build()).collect(Collectors.toList()); List typeList = specialtyTypeList.stream().map(m->m.getObjType()).collect(Collectors.toList()); // 如果有通用督查类型 if(typeList.contains("111")){ List gnrlList = dictTypeDao.findList(Builder.of(DictTypeParam::new).with(DictTypeParam::setOwnerSystem, "gnrl").with(DictTypeParam::setOwnerOfc, curOrgId).build()); if(null != gnrlList && gnrlList.size()>0){ typeList.addAll(gnrlList.stream().map(m->m.getDictTypeCd()).collect(Collectors.toList())); resultList.addAll(gnrlList.stream().map(m->Builder.of(ObjInspPblmsVo::new) .with(ObjInspPblmsVo::setInspObjType, m.getDictTypeCd()) .with(ObjInspPblmsVo::setInspObjName, m.getDictTypeDesc()) .build()).collect(Collectors.toList())); } } if(null != typeList && typeList.size()>0){ List inspPblmsBzList = this.inspPblmsDao.selectIndexList(typeList); if(null != inspPblmsBzList && inspPblmsBzList.size()>0){ for(int i=0 ; i< resultList.size(); i++){ ObjInspPblmsVo inspPblmsVo = resultList.get(i); // 问题名称 List pblmNameList = new ArrayList<>() ; Map> pblmNameMap = inspPblmsBzList.stream().filter(f -> inspPblmsVo.getInspObjType().equals(f.getType())).collect(Collectors.groupingBy(g -> g.getInspPblmsName())); Set keySetName = pblmNameMap.keySet(); for(String name : keySetName){ ObjInspPblmsVo nameVo = new ObjInspPblmsVo(); nameVo.setInspObjName(name); List pblmNameItemList = pblmNameMap.get(name); ObjInspPblms nameItem = pblmNameItemList.get(0); nameVo.setSn(nameItem.getSnNum()); Map> pointMap = pblmNameItemList.stream().collect(Collectors.groupingBy(g -> g.getCheckPoint())); Set keySetPoint = pointMap.keySet(); List pblmPonitList = new ArrayList<>() ; for(String point : keySetPoint){ ObjInspPblmsVo pointVo = new ObjInspPblmsVo(); List pblmPointItemList = pointMap.get(point); ObjInspPblms ointItem = pblmPointItemList.get(0); pointVo.setInspObjName( point); pointVo.setSn(ointItem.getSnNum()); List descList = pblmPointItemList.stream().map(m->Builder.of(ObjInspPblmsVo::new) .with(ObjInspPblmsVo::setInspObjName, m.getPblmDesc()) .with(ObjInspPblmsVo::setSn, m.getSnNum()) .build()).collect(Collectors.toList()); pointVo.setChildren(descList); if(!descList.isEmpty()){ pblmPonitList.add(pointVo); } } nameVo.setChildren(pblmPonitList); if(!pblmPonitList.isEmpty()){ pblmNameList.add(nameVo); } } if(!pblmNameList.isEmpty()){ inspPblmsVo.setChildren(pblmNameList); }else{ resultList.remove(i); i--; } } } } return resultList; } }