8dbbd9f41ae540a8346adf601474a910c1d3410f.svn-base 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. package cn.com.goldenwater.dcproj.service.impl;
  2. import cn.com.goldenwater.dcproj.dao.BisInspPblmDao;
  3. import cn.com.goldenwater.dcproj.dao.BisInspTaskDthDayDao;
  4. import cn.com.goldenwater.dcproj.dao.DictTypeDao;
  5. import cn.com.goldenwater.dcproj.dao.ObjInspPblmsDao;
  6. import cn.com.goldenwater.dcproj.dao.OlBisInspOrgDao;
  7. import cn.com.goldenwater.dcproj.dao.TacSlbLawIndexDao;
  8. import cn.com.goldenwater.dcproj.dto.BisInspTaskDthDayDto;
  9. import cn.com.goldenwater.dcproj.dto.TacSlbLawIndexDto;
  10. import cn.com.goldenwater.dcproj.model.BisInspPblm;
  11. import cn.com.goldenwater.dcproj.model.BisInspTaskDthDay;
  12. import cn.com.goldenwater.dcproj.model.DictType;
  13. import cn.com.goldenwater.dcproj.model.ObjInspPblms;
  14. import cn.com.goldenwater.dcproj.model.OlBisInspOrg;
  15. import cn.com.goldenwater.dcproj.model.TacSlbLawIndex;
  16. import cn.com.goldenwater.dcproj.param.BisInspPblmParam;
  17. import cn.com.goldenwater.dcproj.param.BisInspTaskDthDayParam;
  18. import cn.com.goldenwater.dcproj.param.DictTypeParam;
  19. import cn.com.goldenwater.dcproj.param.TacSlbLawIndexParam;
  20. import cn.com.goldenwater.dcproj.service.IndexTopService;
  21. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  22. import cn.com.goldenwater.dcproj.utils.Builder;
  23. import cn.com.goldenwater.dcproj.utils.TaskDateUtils;
  24. import cn.com.goldenwater.dcproj.vo.ObjInspPblmsVo;
  25. import com.github.pagehelper.PageHelper;
  26. import org.apache.commons.lang3.StringUtils;
  27. import org.springframework.beans.BeanUtils;
  28. import org.springframework.beans.factory.annotation.Autowired;
  29. import org.springframework.stereotype.Service;
  30. import java.util.ArrayList;
  31. import java.util.List;
  32. import java.util.Map;
  33. import java.util.Set;
  34. import java.util.stream.Collectors;
  35. /**
  36. * @author LXF
  37. * @date 2023-04-08
  38. */
  39. @Service
  40. public class IndexTopServiceImpl implements IndexTopService {
  41. @Autowired
  42. private TacSlbLawIndexDao tacSlbLawIndexDao;
  43. @Autowired
  44. private BisInspPblmDao bisInspPblmDao;
  45. @Autowired
  46. private OlBisInspOrgDao olBisInspOrgDao;
  47. @Autowired
  48. private ObjInspPblmsDao inspPblmsDao ;
  49. @Autowired
  50. private BisInspTaskDthDayDao bisInspTaskDthDayDao;
  51. @Autowired
  52. private DictTypeDao dictTypeDao;
  53. @Override
  54. public List<TacSlbLawIndex> slbLawTopList(BisInspTaskDthDayDto bisInspTaskDthDayDto) {
  55. List<TacSlbLawIndexDto> lawIndexDtoList = this.tacSlbLawIndexDao.findListDocs(1);
  56. TacSlbLawIndexDto lawIndex = lawIndexDtoList.get(0);
  57. TacSlbLawIndexParam lawIndexParam = new TacSlbLawIndexParam();
  58. lawIndexParam.setDocId(lawIndex.getDocId() + "");
  59. // 取 多少条
  60. if(null != bisInspTaskDthDayDto.getTopNum()){
  61. lawIndexParam.setPageSize(bisInspTaskDthDayDto.getTopNum());
  62. }
  63. PageHelper.startPage(lawIndexParam);
  64. List<TacSlbLawIndex> lawIndexList = this.tacSlbLawIndexDao.findTopList(lawIndexParam);
  65. return lawIndexList;
  66. }
  67. @Override
  68. public List<BisInspPblm> pblmTopList(BisInspTaskDthDayDto bisInspTaskDthDayDto) {
  69. // 设置时间
  70. TaskDateUtils.setDate(bisInspTaskDthDayDto);
  71. String curOrgId = bisInspTaskDthDayDto.getOrgId();
  72. OlBisInspOrg inspOrg = this.olBisInspOrgDao.get(curOrgId);
  73. String adCode = AdLevelUtil.getAddvcd(inspOrg.getAdCode());
  74. if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) {
  75. String addvcd = AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode());
  76. if (addvcd.contains(adCode)) {
  77. adCode = addvcd;
  78. }
  79. }
  80. BisInspPblmParam pblmParam = new BisInspPblmParam();
  81. pblmParam.setOrgId(curOrgId);
  82. pblmParam.setAdCode(adCode);
  83. pblmParam.setSttm(bisInspTaskDthDayDto.getSttm());
  84. pblmParam.setEntm(bisInspTaskDthDayDto.getEntm());
  85. pblmParam.setObjType(bisInspTaskDthDayDto.getObjType());
  86. // 取 多少条
  87. if(null != bisInspTaskDthDayDto.getTopNum()){
  88. pblmParam.setPageSize(bisInspTaskDthDayDto.getTopNum());
  89. }
  90. List<BisInspPblm> pblmList = this.bisInspPblmDao.indexTopList(pblmParam);
  91. return pblmList;
  92. }
  93. /**
  94. * 问题清单
  95. * 树形结构
  96. * @param bisInspTaskDthDayDto
  97. * @return
  98. */
  99. @Override
  100. public List<ObjInspPblmsVo> pblmBzTopList(BisInspTaskDthDayDto bisInspTaskDthDayDto){
  101. // 设置时间
  102. TaskDateUtils.setDate(bisInspTaskDthDayDto);
  103. TaskDateUtils.setDate(bisInspTaskDthDayDto);
  104. String curOrgId = bisInspTaskDthDayDto.getOrgId();
  105. OlBisInspOrg inspOrg = this.olBisInspOrgDao.get(curOrgId);
  106. String adCode = AdLevelUtil.getAddvcd(inspOrg.getAdCode());
  107. if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) {
  108. String addvcd = AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode());
  109. if (addvcd.contains(adCode)) {
  110. adCode = addvcd;
  111. }
  112. }
  113. bisInspTaskDthDayDto.setAdCode(adCode);
  114. BisInspTaskDthDayParam bisInspTaskDthDayParam = new BisInspTaskDthDayParam();
  115. BeanUtils.copyProperties(bisInspTaskDthDayDto, bisInspTaskDthDayParam);
  116. List<BisInspTaskDthDay> specialtyTypeList = bisInspTaskDthDayDao.selectCurObjTypeList(bisInspTaskDthDayParam);
  117. List<ObjInspPblmsVo> resultList = specialtyTypeList.stream().map(m->Builder.of(ObjInspPblmsVo::new)
  118. .with(ObjInspPblmsVo::setInspObjType, m.getObjType())
  119. .with(ObjInspPblmsVo::setInspObjName, m.getObjName())
  120. .build()).collect(Collectors.toList());
  121. List<String> typeList = specialtyTypeList.stream().map(m->m.getObjType()).collect(Collectors.toList());
  122. // 如果有通用督查类型
  123. if(typeList.contains("111")){
  124. List<DictType> gnrlList = dictTypeDao.findList(Builder.of(DictTypeParam::new).with(DictTypeParam::setOwnerSystem, "gnrl").with(DictTypeParam::setOwnerOfc, curOrgId).build());
  125. if(null != gnrlList && gnrlList.size()>0){
  126. typeList.addAll(gnrlList.stream().map(m->m.getDictTypeCd()).collect(Collectors.toList()));
  127. resultList.addAll(gnrlList.stream().map(m->Builder.of(ObjInspPblmsVo::new)
  128. .with(ObjInspPblmsVo::setInspObjType, m.getDictTypeCd())
  129. .with(ObjInspPblmsVo::setInspObjName, m.getDictTypeDesc())
  130. .build()).collect(Collectors.toList()));
  131. }
  132. }
  133. if(null != typeList && typeList.size()>0){
  134. List<ObjInspPblms> inspPblmsBzList = this.inspPblmsDao.selectIndexList(typeList);
  135. if(null != inspPblmsBzList && inspPblmsBzList.size()>0){
  136. for(int i=0 ; i< resultList.size(); i++){
  137. ObjInspPblmsVo inspPblmsVo = resultList.get(i);
  138. // 问题名称
  139. List<ObjInspPblmsVo> pblmNameList = new ArrayList<>() ;
  140. Map<String, List<ObjInspPblms>> pblmNameMap = inspPblmsBzList.stream().filter(f -> inspPblmsVo.getInspObjType().equals(f.getType())).collect(Collectors.groupingBy(g -> g.getInspPblmsName()));
  141. Set<String> keySetName = pblmNameMap.keySet();
  142. for(String name : keySetName){
  143. ObjInspPblmsVo nameVo = new ObjInspPblmsVo();
  144. nameVo.setInspObjName(name);
  145. List<ObjInspPblms> pblmNameItemList = pblmNameMap.get(name);
  146. ObjInspPblms nameItem = pblmNameItemList.get(0);
  147. nameVo.setSn(nameItem.getSnNum());
  148. Map<String, List<ObjInspPblms>> pointMap = pblmNameItemList.stream().collect(Collectors.groupingBy(g -> g.getCheckPoint()));
  149. Set<String> keySetPoint = pointMap.keySet();
  150. List<ObjInspPblmsVo> pblmPonitList = new ArrayList<>() ;
  151. for(String point : keySetPoint){
  152. ObjInspPblmsVo pointVo = new ObjInspPblmsVo();
  153. List<ObjInspPblms> pblmPointItemList = pointMap.get(point);
  154. ObjInspPblms ointItem = pblmPointItemList.get(0);
  155. pointVo.setInspObjName( point);
  156. pointVo.setSn(ointItem.getSnNum());
  157. List<ObjInspPblmsVo> descList = pblmPointItemList.stream().map(m->Builder.of(ObjInspPblmsVo::new)
  158. .with(ObjInspPblmsVo::setInspObjName, m.getPblmDesc())
  159. .with(ObjInspPblmsVo::setSn, m.getSnNum())
  160. .build()).collect(Collectors.toList());
  161. pointVo.setChildren(descList);
  162. if(!descList.isEmpty()){
  163. pblmPonitList.add(pointVo);
  164. }
  165. }
  166. nameVo.setChildren(pblmPonitList);
  167. if(!pblmPonitList.isEmpty()){
  168. pblmNameList.add(nameVo);
  169. }
  170. }
  171. if(!pblmNameList.isEmpty()){
  172. inspPblmsVo.setChildren(pblmNameList);
  173. }else{
  174. resultList.remove(i);
  175. i--;
  176. }
  177. }
  178. }
  179. }
  180. return resultList;
  181. }
  182. }