998dcf9d544934c3d3ea242514eea7758110da00.svn-base 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819
  1. package cn.com.goldenwater.dcproj.service.impl.tac;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.dao.*;
  4. import cn.com.goldenwater.dcproj.dto.BisInspTaskDthDayDto;
  5. import cn.com.goldenwater.dcproj.dto.TacCountDto;
  6. import cn.com.goldenwater.dcproj.dto.TacPblmInfoDto;
  7. import cn.com.goldenwater.dcproj.model.*;
  8. import cn.com.goldenwater.dcproj.param.TacInspYearBatchAreaParam;
  9. import cn.com.goldenwater.dcproj.param.TacPblmInfoParam;
  10. import cn.com.goldenwater.dcproj.param.TacPblmSubjectParam;
  11. import cn.com.goldenwater.dcproj.param.TacWorkerBParam;
  12. import cn.com.goldenwater.dcproj.service.GwComFileService;
  13. import cn.com.goldenwater.dcproj.service.TacObjSubjectService;
  14. import cn.com.goldenwater.dcproj.service.TacPblmInfoService;
  15. import cn.com.goldenwater.dcproj.service.TacProvincePlanDictService;
  16. import cn.com.goldenwater.dcproj.utils.Constant;
  17. import cn.com.goldenwater.dcproj.utils.DateUtils;
  18. import cn.com.goldenwater.id.util.UuidUtil;
  19. import com.github.pagehelper.PageHelper;
  20. import com.github.pagehelper.PageInfo;
  21. import com.mysql.cj.util.TimeUtil;
  22. import org.apache.commons.collections.CollectionUtils;
  23. import org.apache.commons.collections.map.HashedMap;
  24. import org.apache.commons.lang3.StringUtils;
  25. import org.slf4j.LoggerFactory;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.stereotype.Service;
  28. import org.springframework.transaction.annotation.Transactional;
  29. import java.util.*;
  30. import java.util.logging.Logger;
  31. /**
  32. * @author lune
  33. * @date 2019-6-19
  34. */
  35. @Service
  36. @Transactional
  37. public class TacPblmInfoServiceImpl extends AbstractCrudService<TacPblmInfo, TacPblmInfoParam> implements TacPblmInfoService {
  38. private org.slf4j.Logger logger = LoggerFactory.getLogger(this.getClass());
  39. @Autowired
  40. private TacPblmInfoDao tacPblmInfoDao;
  41. @Autowired
  42. private TacProvincePblmInfoDao tacProvincePblmInfoDao;
  43. @Autowired
  44. private TacPblmSubjectDao tacPblmSubjectDao;
  45. @Autowired
  46. private GwComFileService gwComFileService;
  47. @Autowired
  48. private TacObjSubjectService objSubjectService;
  49. @Autowired
  50. private TacObjSubject515Dao tacObjSubject515Dao;
  51. @Autowired
  52. private TacPawpRgstrDao tacPawpRgstrDao;
  53. @Autowired
  54. private TacProvincePlanDictService tacProvincePlanDictService;
  55. @Autowired
  56. private TacObjSubjectDao tacObjSubjectDao;
  57. @Autowired
  58. private TacWorkerBDao workerBDao;
  59. public TacPblmInfoServiceImpl(TacPblmInfoDao tacPblmInfoDao) {
  60. super(tacPblmInfoDao);
  61. this.tacPblmInfoDao = tacPblmInfoDao;
  62. }
  63. private static Map<String, String> stbMap = new HashedMap();
  64. static {
  65. stbMap.put("1", "前期与设计");
  66. stbMap.put("2", "建设管理");
  67. stbMap.put("3", "计划下达与执行");
  68. stbMap.put("4", "资金使用与管理");
  69. stbMap.put("5", "工程质量");
  70. stbMap.put("6", "工程安全");
  71. }
  72. @Override
  73. public void updatePblm(TacPblmInfo tacPblmInfo) {
  74. TacPblmSubjectParam subjectParam = new TacPblmSubjectParam();
  75. subjectParam.setPblmId(tacPblmInfo.getId());
  76. tacPblmSubjectDao.deleteBy(subjectParam);
  77. if (tacPblmInfo.getGwComFileList() != null && tacPblmInfo.getGwComFileList().size() > 0) {
  78. tacPblmInfo.setHasVedio("1");
  79. } else {
  80. tacPblmInfo.setHasVedio("0");
  81. }
  82. if (tacPblmInfo.getSn() == 0) {
  83. String sn = this.tacPblmInfoDao.getMaxSn(tacPblmInfo.getProvince());
  84. if (StringUtils.isBlank(sn)) {
  85. sn = "0";
  86. }
  87. tacPblmInfo.setSn(Integer.parseInt(sn) + 1);
  88. }
  89. tacPblmInfo.setObjType("8");
  90. tacPblmInfo.setSubjectNames(retSubjectNames(tacPblmInfo.getPblmSubjectList()));
  91. tacPblmInfo.setSubjectIds(retSubjectIds(tacPblmInfo.getPblmSubjectList()));
  92. tacPblmInfoDao.update(tacPblmInfo);
  93. addPblmSubject(tacPblmInfo.getSubjectNames(), tacPblmInfo.getSubjectIds(), tacPblmInfo.getPblmSubjectList(), tacPblmInfo.getId());
  94. gwComFileService.updateBiz(tacPblmInfo.getGwComFileList(), tacPblmInfo.getId());
  95. }
  96. public String retSubjectIds(List<TacPblmSubject> pblmSubjectList) {
  97. String ret = "";
  98. for (TacPblmSubject tacPblmSubject : pblmSubjectList) {
  99. ret = ret + tacPblmSubject.getSubId() + ",";
  100. }
  101. if (ret.length() > 0) {
  102. ret = ret.substring(0, ret.length() - 1);
  103. }
  104. return ret;
  105. }
  106. public String retSubjectNames(List<TacPblmSubject> pblmSubjectList) {
  107. String ret = "";
  108. if(null==pblmSubjectList||pblmSubjectList.isEmpty()){
  109. return ret;
  110. }
  111. for (TacPblmSubject tacPblmSubject : pblmSubjectList) {
  112. //根据ID获取单位性质名称
  113. TacObjSubject tacObjSubject = tacObjSubjectDao.get(tacPblmSubject.getSubId());
  114. String subName = tacObjSubject.getSysName() == null ? "" : tacObjSubject.getSysName();
  115. ret = ret + subName + ",";
  116. tacPblmSubject.setSubName(subName);
  117. }
  118. if (ret.length() > 0) {
  119. ret = ret.substring(0, ret.length() - 1);
  120. }
  121. return ret;
  122. }
  123. @Override
  124. public int insertPblm(TacPblmInfo tacPblmInfo) {
  125. /* if (tacPblmInfo.getSn() == 0) {
  126. String sn = this.tacPblmInfoDao.getMaxSn(tacPblmInfo.getProvince());
  127. if (StringUtils.isBlank(sn)) {
  128. sn = "0";
  129. }
  130. tacPblmInfo.setSn(Integer.parseInt(sn) + 1);
  131. }*/
  132. if (tacPblmInfo.getGwComFileList() != null && tacPblmInfo.getGwComFileList().size() > 0) {
  133. tacPblmInfo.setHasVedio("1");
  134. } else {
  135. tacPblmInfo.setHasVedio("0");
  136. }
  137. tacPblmInfo.setObjType("8");
  138. tacPblmInfo.setSubjectNames(retSubjectNames(tacPblmInfo.getPblmSubjectList()));
  139. tacPblmInfo.setSubjectIds(retSubjectIds(tacPblmInfo.getPblmSubjectList()));
  140. tacPblmInfoDao.insert(tacPblmInfo);
  141. addPblmSubject(tacPblmInfo.getSubjectNames(), tacPblmInfo.getSubjectIds(), tacPblmInfo.getPblmSubjectList(), tacPblmInfo.getId());
  142. gwComFileService.updateBiz(tacPblmInfo.getGwComFileList(), tacPblmInfo.getId());
  143. return 0;
  144. }
  145. @Override
  146. public void addPblmSubject(String subjectNames, String subjectIds, List<TacPblmSubject> pblmSubjects, String pblmId) {
  147. /* if (pblmSubjects == null || pblmSubjects.isEmpty()) {
  148. if (StringUtils.isNotBlank(subjectNames)) {
  149. String[] subjects = subjectNames.split(",");
  150. for (int i = 0; i < subjects.length; i++) {
  151. if (StringUtils.isNotBlank(subjectIds)) {//单位名称有值,单位性质为空
  152. String[] subjeids = subjectIds.split(",");
  153. if (i < subjeids.length) {////若subjeids单位性质与subjects单位名称长度不同则出现报错
  154. TacObjSubject objSubject = objSubjectService.get(subjeids[i]);
  155. if (objSubject != null) {
  156. TacPblmSubject subject = new TacPblmSubject();
  157. subject.setId(UuidUtil.uuid());
  158. subject.setPblmId(pblmId);
  159. subject.setSubId(subjeids[i]);
  160. subject.setIntm(new Date());
  161. subject.setSubName(objSubject.getSubName());
  162. subject.setUnitNm(subjects[i]);
  163. tacPblmSubjectDao.insert(subject);
  164. }
  165. } else {
  166. TacPblmSubject subject = new TacPblmSubject();
  167. subject.setId(UuidUtil.uuid());
  168. subject.setPblmId(pblmId);
  169. // subject.setSubId(subjeids[i]);
  170. subject.setIntm(new Date());
  171. // subject.setSubName(objSubject.getSubName());
  172. subject.setUnitNm(subjects[i]);
  173. tacPblmSubjectDao.insert(subject);
  174. }
  175. } else {
  176. TacPblmSubject subject = new TacPblmSubject();
  177. subject.setId(UuidUtil.uuid());
  178. subject.setPblmId(pblmId);
  179. subject.setIntm(new Date());
  180. subject.setUnitNm(subjects[i]);
  181. tacPblmSubjectDao.insert(subject);
  182. }
  183. }
  184. } else if (StringUtils.isBlank(subjectNames) && StringUtils.isNotBlank(subjectIds)) {
  185. String[] subjeids = subjectIds.split(",");
  186. for (int i = 0; i < subjeids.length; i++) {
  187. TacObjSubject objSubject = objSubjectService.get(subjeids[i]);
  188. TacPblmSubject subject = new TacPblmSubject();
  189. subject.setId(UuidUtil.uuid());
  190. subject.setPblmId(pblmId);
  191. subject.setSubId(subjeids[i]);
  192. subject.setIntm(new Date());
  193. subject.setSubName(objSubject.getSubName());
  194. tacPblmSubjectDao.insert(subject);
  195. }
  196. }
  197. return;
  198. }*/
  199. //删除之前责任单位,并重新添加新的
  200. TacPblmSubjectParam tacPblmSubjectParam = new TacPblmSubjectParam();
  201. tacPblmSubjectParam.setPblmId(pblmId);
  202. tacPblmSubjectDao.deleteBy(tacPblmSubjectParam);
  203. //添加责任单位
  204. int i = 1;
  205. for (TacPblmSubject subject : pblmSubjects) {
  206. subject.setId(UuidUtil.uuid());
  207. subject.setPblmId(pblmId);
  208. Calendar cal = Calendar.getInstance();
  209. subject.setIntm(DateUtils.DateAdd("s", i * 10, cal).getTime());
  210. logger.info("-------------------------subject set tm:" + DateUtils.DateAdd("s", 10, cal).getTime().toString() + "-------------------------")
  211. ;
  212. i++;
  213. tacPblmSubjectDao.insert(subject);
  214. }
  215. }
  216. @Override
  217. public List<TacPblmSubject> findSubjectList(String id, String subjectNames, String subjectIds) {
  218. TacPblmSubjectParam pblmSubjectParam = new TacPblmSubjectParam();
  219. pblmSubjectParam.setPblmId(id);
  220. List<TacPblmSubject> pblmSubjectList = tacPblmSubjectDao.findList(pblmSubjectParam);
  221. /*
  222. if (pblmSubjectList != null && !pblmSubjectList.isEmpty()) {
  223. return pblmSubjectList;
  224. } else {
  225. pblmSubjectList = new ArrayList<>();
  226. if (StringUtils.isNotBlank(subjectNames)) {
  227. String[] subjects = subjectNames.split(",");
  228. String[] subjeids = subjectIds.split(",");
  229. for (int i = 0; i < subjeids.length; i++) {
  230. TacObjSubject objSubject = objSubjectService.get(subjeids[i]);
  231. if (objSubject == null) {
  232. objSubject = tacObjSubject515Dao.get(subjeids[i]);
  233. }
  234. if (objSubject != null) {
  235. TacPblmSubject subject = new TacPblmSubject();
  236. subject.setPblmId(id);
  237. subject.setSubId(subjeids[i]);
  238. subject.setSubName(objSubject.getSubName());
  239. subject.setIntm(new Date());
  240. subject.setUnitNm(subjects[i]);
  241. pblmSubjectList.add(subject);
  242. }
  243. }
  244. }
  245. }
  246. */
  247. return pblmSubjectList;
  248. }
  249. @Override
  250. public List<TacCountDto> countPblmInfoByType(TacPblmInfoParam pblmInfoParam) {
  251. List<TacCountDto> list = tacPblmInfoDao.countPblmInfoByType(pblmInfoParam);
  252. return list;
  253. }
  254. @Override
  255. public List<TacCountDto> countPblmInfoBySub(TacPblmInfoParam pblmInfoParam) {
  256. List<TacCountDto> pblmDtos = tacPblmInfoDao.countPblmInfoBySub(pblmInfoParam);
  257. if (pblmDtos.size() > 0) {
  258. Map<String, String> map = new LinkedHashMap<>();
  259. StringBuffer subTempIds = new StringBuffer("");
  260. String subIds = "";
  261. pblmDtos.forEach(tacCountDto -> {
  262. map.put(tacCountDto.getCode() + tacCountDto.getName(), tacCountDto.getCount());
  263. subTempIds.append("'").append(tacCountDto.getCode()).append("',");
  264. });
  265. if (subTempIds.length() > 0) {
  266. subIds = subTempIds.substring(0, subTempIds.length() - 1);
  267. }
  268. TacPblmSubjectParam subjectParam = new TacPblmSubjectParam();
  269. subjectParam.setSubId(subIds);
  270. List<TacCountDto> subDtos = tacPblmSubjectDao.countSubBySub(subjectParam);
  271. if (CollectionUtils.isNotEmpty(subDtos)) {
  272. subDtos.stream().forEach(subDto -> {
  273. String codeZero = map.get(subDto.getCode() + "0");
  274. String codeOne = map.get(subDto.getCode() + "1");
  275. String codeTWO = map.get(subDto.getCode() + "2");
  276. subDto.setCount("0");
  277. if (StringUtils.isNotBlank(codeZero)) {
  278. subDto.setNormal(codeZero);
  279. subDto.setCount(String.valueOf(Integer.valueOf(codeZero)));
  280. }
  281. if (StringUtils.isNotBlank(codeOne)) {
  282. subDto.setHeavier(codeOne);
  283. subDto.setCount(String.valueOf(Integer.valueOf(subDto.getCount()) + Integer.valueOf(codeOne)));
  284. }
  285. if (StringUtils.isNotBlank(codeTWO)) {
  286. subDto.setSerious(codeTWO);
  287. subDto.setCount(String.valueOf(Integer.valueOf(subDto.getCount()) + Integer.valueOf(codeTWO)));
  288. }
  289. });
  290. return subDtos;
  291. }
  292. }
  293. return null;
  294. }
  295. @Override
  296. public List<TacCountDto> countPblmInfoBySubNew(TacPblmInfoParam pblmInfoParam) {
  297. List<TacCountDto> pblmDtos = new ArrayList<>();
  298. //按照数据字典配置的新阶段汇总统计(专家现场意见稿,相应配置新阶段)
  299. //RgstrId=0时为专家现场意见稿
  300. if (StringUtils.isNotBlank(pblmInfoParam.getRgstrId()) && "0".equals(pblmInfoParam.getRgstrId())) {
  301. //专家现场意见稿数据表为TAC_PBLM_INFO
  302. pblmDtos = tacPblmInfoDao.countPblmInfoBySubNew(pblmInfoParam);
  303. } else {
  304. //RgstrId为当前阶段id时为相应配置阶段
  305. //相应配置阶段问题数据表为TAC_PROVINCE_PBLM_INFO
  306. pblmDtos = tacProvincePblmInfoDao.countPblmInfoBySubJdNew(pblmInfoParam);
  307. }
  308. if (pblmDtos.size() > 0) {
  309. Map<String, String> map = new LinkedHashMap<>();
  310. StringBuffer subTempIds = new StringBuffer("");
  311. String subIds = "";
  312. pblmDtos.forEach(tacCountDto -> {
  313. map.put(tacCountDto.getCode() + tacCountDto.getName(), tacCountDto.getCount());
  314. subTempIds.append("'").append(tacCountDto.getCode()).append("',");
  315. });
  316. if (subTempIds.length() > 0) {
  317. subIds = subTempIds.substring(0, subTempIds.length() - 1);
  318. }
  319. TacPblmSubjectParam subjectParam = new TacPblmSubjectParam();
  320. subjectParam.setSubId(subIds);
  321. List<TacCountDto> subDtos = tacPblmSubjectDao.countSubBySub(subjectParam);
  322. if (CollectionUtils.isNotEmpty(subDtos)) {
  323. subDtos.stream().forEach(subDto -> {
  324. String codeZero = map.get(subDto.getCode() + "0");
  325. String codeOne = map.get(subDto.getCode() + "1");
  326. String codeTWO = map.get(subDto.getCode() + "2");
  327. subDto.setCount("0");
  328. if (StringUtils.isNotBlank(codeZero)) {
  329. subDto.setNormal(codeZero);
  330. subDto.setCount(String.valueOf(Integer.valueOf(codeZero)));
  331. }
  332. if (StringUtils.isNotBlank(codeOne)) {
  333. subDto.setHeavier(codeOne);
  334. subDto.setCount(String.valueOf(Integer.valueOf(subDto.getCount()) + Integer.valueOf(codeOne)));
  335. }
  336. if (StringUtils.isNotBlank(codeTWO)) {
  337. subDto.setSerious(codeTWO);
  338. subDto.setCount(String.valueOf(Integer.valueOf(subDto.getCount()) + Integer.valueOf(codeTWO)));
  339. }
  340. });
  341. return subDtos;
  342. }
  343. }
  344. return pblmDtos;
  345. }
  346. @Override
  347. public List<TacCountDto> countPblmInfoByAdCode(TacPblmInfoParam pblmInfoParam) {
  348. Map<String, TacCountDto> result = new LinkedHashMap<>();
  349. List<TacCountDto> list = tacPblmInfoDao.countPblmInfoByAdCode(pblmInfoParam);
  350. if (CollectionUtils.isNotEmpty(list)) {
  351. //问题区分赋值
  352. setProblemValue(result, list);
  353. //问题数量总计
  354. convertCount(result);
  355. return new ArrayList<>(result.values());
  356. }
  357. return list;
  358. }
  359. @Override
  360. public List<TacCountDto> countPblmInfoByAdCodeNew(TacPblmInfoParam pblmInfoParam) {
  361. List<TacCountDto> list = new ArrayList<>();
  362. //汇总统计条形图以地市进行分类查询
  363. if (StringUtils.isNotBlank(pblmInfoParam.getUseObjFlag()) && "0".equals(pblmInfoParam.getUseObjFlag())) {
  364. //汇总统计饼图以工程类别进行分类查询
  365. //按照数据字典配置的新阶段汇总统计(专家现场意见稿,相应配置新阶段)
  366. if (StringUtils.isNotBlank(pblmInfoParam.getRgstrId()) && "0".equals(pblmInfoParam.getRgstrId())) {
  367. list = tacPblmInfoDao.countPblmInfoByObjTypeNew(pblmInfoParam);
  368. } else {
  369. list = tacProvincePblmInfoDao.countPblmInfoByObjTypeJdNew(pblmInfoParam);
  370. }
  371. } else {
  372. //按照数据字典配置的新阶段汇总统计(专家现场意见稿,相应配置新阶段)
  373. if (StringUtils.isNotBlank(pblmInfoParam.getRgstrId()) && "0".equals(pblmInfoParam.getRgstrId())) {
  374. list = tacPblmInfoDao.countPblmInfoByAdCodeNew(pblmInfoParam);
  375. } else {
  376. list = tacProvincePblmInfoDao.countPblmInfoByAdCodeJdNew(pblmInfoParam);
  377. }
  378. if (list.size() > 0) {
  379. Map<String, String> map = new LinkedHashMap<>();
  380. StringBuffer AdCodeTempIds = new StringBuffer("");
  381. String AdCodeIds = "";
  382. list.forEach(tacCountDto -> {
  383. map.put(tacCountDto.getCode() + tacCountDto.getName(), tacCountDto.getCount());
  384. AdCodeTempIds.append("'").append(tacCountDto.getCode()).append("',");
  385. });
  386. if (AdCodeTempIds.length() > 0) {
  387. AdCodeIds = AdCodeTempIds.substring(0, AdCodeTempIds.length() - 1);
  388. }
  389. TacInspYearBatchAreaParam areaParam = new TacInspYearBatchAreaParam();
  390. areaParam.setAdCode(AdCodeIds);
  391. List<TacCountDto> subDtos = tacPblmInfoDao.countAdNameByAdAdCade(areaParam);
  392. if (CollectionUtils.isNotEmpty(subDtos)) {
  393. subDtos.forEach(subDto -> {
  394. String codeZero = map.get(subDto.getCode() + "0");
  395. String codeOne = map.get(subDto.getCode() + "1");
  396. String codeTWO = map.get(subDto.getCode() + "2");
  397. subDto.setCount("0");
  398. if (StringUtils.isNotBlank(codeZero)) {
  399. subDto.setNormal(codeZero);
  400. subDto.setCount(String.valueOf(Integer.valueOf(codeZero)));
  401. }
  402. if (StringUtils.isNotBlank(codeOne)) {
  403. subDto.setHeavier(codeOne);
  404. subDto.setCount(String.valueOf(Integer.parseInt(subDto.getCount()) + Integer.parseInt(codeOne)));
  405. }
  406. if (StringUtils.isNotBlank(codeTWO)) {
  407. subDto.setSerious(codeTWO);
  408. subDto.setCount(String.valueOf(Integer.parseInt(subDto.getCount()) + Integer.parseInt(codeTWO)));
  409. }
  410. });
  411. return subDtos;
  412. }
  413. }
  414. }
  415. return list;
  416. }
  417. @Override
  418. public List<TacCountDto> countPblmInfoByStb(TacPblmInfoParam pblmInfoParam) {
  419. List<TacCountDto> list = tacPblmInfoDao.countPblmInfoByStb(pblmInfoParam);
  420. pblmInfoParam.setIfCasePblm(Constant.STRING_ONE);
  421. Integer isCasePblm = tacPblmInfoDao.countIfCasePblm(pblmInfoParam);
  422. pblmInfoParam.setIfCasePblm(Constant.STRING_ZERO);
  423. Integer isNotCasePblm = tacPblmInfoDao.countIfCasePblm(pblmInfoParam);
  424. if (CollectionUtils.isNotEmpty(list)) {
  425. TacCountDto tacCount = list.get(0);
  426. tacCount.setIsCasePblmCount(String.valueOf(isCasePblm));
  427. tacCount.setIsNotCasePblmCount(String.valueOf(isNotCasePblm));
  428. Map<String, TacCountDto> result = new LinkedHashMap<>();
  429. //问题区分赋值
  430. setProblemValue(result, list);
  431. //问题数量总计
  432. convertCount(result);
  433. return new ArrayList<>(result.values());
  434. }
  435. return list;
  436. }
  437. @Override
  438. public List<TacCountDto> countPblmInfoByStbNew(TacPblmInfoParam pblmInfoParam) {
  439. List<TacCountDto> list = new ArrayList<>();
  440. Integer isCasePblm = null;
  441. Integer isNotCasePblm = null;
  442. //按照数据字典配置的新阶段汇总统计(专家现场意见稿,相应配置新阶段)
  443. //RgstrId=0时为专家现场意见稿
  444. if (StringUtils.isNotBlank(pblmInfoParam.getRgstrId()) && "0".equals(pblmInfoParam.getRgstrId())) {
  445. //专家现场意见稿数据表为TAC_PBLM_INFO
  446. list = tacPblmInfoDao.countPblmInfoByStbZjNew(pblmInfoParam);
  447. pblmInfoParam.setIfCasePblm(Constant.STRING_ONE);
  448. isCasePblm = tacPblmInfoDao.countIfCasePblmNew(pblmInfoParam);
  449. pblmInfoParam.setIfCasePblm(Constant.STRING_ZERO);
  450. isNotCasePblm = tacPblmInfoDao.countIfCasePblmNew(pblmInfoParam);
  451. } else {
  452. //RgstrId为当前阶段id时为相应配置阶段
  453. //相应配置阶段问题数据表为TAC_PROVINCE_PBLM_INFO
  454. list = tacProvincePblmInfoDao.countPblmInfoByStbJdNew(pblmInfoParam);
  455. pblmInfoParam.setIfCasePblm(Constant.STRING_ONE);
  456. isCasePblm = tacProvincePblmInfoDao.countIfCasePblmJdNew(pblmInfoParam);
  457. pblmInfoParam.setIfCasePblm(Constant.STRING_ZERO);
  458. isNotCasePblm = tacProvincePblmInfoDao.countIfCasePblmJdNew(pblmInfoParam);
  459. }
  460. if (CollectionUtils.isNotEmpty(list)) {
  461. TacCountDto tacCount = list.get(0);
  462. tacCount.setIsCasePblmCount(String.valueOf(isCasePblm));
  463. tacCount.setIsNotCasePblmCount(String.valueOf(isNotCasePblm));
  464. Map<String, TacCountDto> result = new LinkedHashMap<>();
  465. //问题区分赋值
  466. setProblemValue(result, list);
  467. //问题数量总计
  468. convertCount(result);
  469. return new ArrayList<>(result.values());
  470. }
  471. return list;
  472. }
  473. @Override
  474. public int updatePblmInfoList(TacPblmInfoDto dto) {
  475. if (dto == null) {
  476. return 0;
  477. }
  478. if (dto.getList() != null) {
  479. dto.getList().forEach(tacPblmInfo -> {
  480. tacPblmInfo.setIfCasePblm(dto.getIfCasePblm());
  481. tacPblmInfoDao.update(tacPblmInfo);
  482. });
  483. }
  484. return 1;
  485. }
  486. @Override
  487. public PageInfo<TacPblmInfo> findPageInfoNew2(TacPblmInfoParam pblmInfoParam) {
  488. pblmInfoParam.setPblmTableName("TAC_PBLM_INFO");
  489. PageHelper.startPage(pblmInfoParam.getPageNum(), pblmInfoParam.getPageSize());
  490. //1. 获取最新阶段ID
  491. if (StringUtils.isNotBlank(pblmInfoParam.getRgstrId())) {
  492. TacPawpRgstr tacPawpRgstr = tacPawpRgstrDao.get(pblmInfoParam.getRgstrId());
  493. Optional.ofNullable(tacPawpRgstr).ifPresent(r -> {
  494. if (StringUtils.isNotBlank(r.getTaskId())) {
  495. pblmInfoParam.setPblmTableName("TAC_PROVINCE_PBLM_INFO");
  496. pblmInfoParam.setStepId(r.getTaskId());
  497. }
  498. });
  499. }
  500. List<TacPblmInfo> list = tacPblmInfoDao.findPageInfoNew2(pblmInfoParam);
  501. return new PageInfo<>(list);
  502. }
  503. @Autowired
  504. private TaskDthDayCountDao taskDthDayCountDao;
  505. @Override
  506. public PageInfo<TacPblmInfo> findPageInfoNew(TacPblmInfoParam pblmInfoParam) {
  507. PageHelper.startPage(pblmInfoParam.getPageNum(), pblmInfoParam.getPageSize());
  508. List<TacPblmInfo> list = tacPblmInfoDao.findPageInfoNew(pblmInfoParam);
  509. return new PageInfo<>(list);
  510. }
  511. @Override
  512. public PageInfo<TacPblmInfo> findProvincePblmInfo(TacPblmInfoParam pblmInfoParam) {
  513. BisInspTaskDthDayDto bisInspTaskDthDayDto = new BisInspTaskDthDayDto();
  514. bisInspTaskDthDayDto.setOrgId(pblmInfoParam.getOrgId());
  515. pblmInfoParam.setStepId(tacProvincePlanDictService.getJcStepId(bisInspTaskDthDayDto.getOrgId()));
  516. PageHelper.startPage(pblmInfoParam.getPageNum(), pblmInfoParam.getPageSize());
  517. List<TacPblmInfo> list = tacPblmInfoDao.findProvincePblmInfo(pblmInfoParam);
  518. return new PageInfo<>(list);
  519. }
  520. @Override
  521. public PageInfo<TacPblmInfo> findPageInfoZLorTPY(TacPblmInfoParam pblmInfoParam) {
  522. PageHelper.startPage(pblmInfoParam.getPageNum(), pblmInfoParam.getPageSize());
  523. List<TacPblmInfo> list = tacPblmInfoDao.findPageInfoZLorTPY(pblmInfoParam);
  524. return new PageInfo<TacPblmInfo>(list);
  525. }
  526. @Override
  527. public PageInfo<TacPblmInfo> findPageJieduanInfo(TacPblmInfoParam pblmInfoParam) {
  528. PageHelper.startPage(pblmInfoParam.getPageNum(), pblmInfoParam.getPageSize());
  529. List<TacPblmInfo> list = tacPblmInfoDao.findPageJieduanInfo(pblmInfoParam);
  530. return new PageInfo<TacPblmInfo>(list);
  531. }
  532. @Override
  533. public PageInfo<TacPblmInfo> findPageJieduanZLorTPY(TacPblmInfoParam pblmInfoParam) {
  534. PageHelper.startPage(pblmInfoParam.getPageNum(), pblmInfoParam.getPageSize());
  535. List<TacPblmInfo> list = tacPblmInfoDao.findPageJieduanZLorTPY(pblmInfoParam);
  536. return new PageInfo<TacPblmInfo>(list);
  537. }
  538. @Override
  539. public List<TacCountDto> countPblmInfoByCase(TacPblmInfoParam pblmInfoParam) {
  540. List<TacCountDto> list = tacPblmInfoDao.countPblmInfoByCase(pblmInfoParam);
  541. return list;
  542. }
  543. @Override
  544. public List<TacCountDto> countPblmInfoByQlttv(TacPblmInfoParam pblmInfoParam) {
  545. List<TacCountDto> list = tacPblmInfoDao.countPblmInfoByQlttv(pblmInfoParam);
  546. return list;
  547. }
  548. @Override
  549. public List<TacCountDto> countPblmInfoByQt(TacPblmInfoParam pblmInfoParam) {
  550. List<TacCountDto> result = new ArrayList<>();
  551. if (StringUtils.isNotBlank(pblmInfoParam.getStbClaName())) {
  552. pblmInfoParam.setStbClaName(stbNameformat(pblmInfoParam.getStbClaName()));
  553. }
  554. if (StringUtils.isBlank(pblmInfoParam.getUseObjFlag()) || Constant.STRING_ONE.equals(pblmInfoParam.getUseObjFlag())) {
  555. result.addAll(tacPblmInfoDao.countPblmInfoByQt(pblmInfoParam));
  556. } else if (Constant.STRING_TWO.equals(pblmInfoParam.getUseObjFlag())) {
  557. result.addAll(tacPblmInfoDao.countPblmInfoObjByQt(pblmInfoParam));
  558. }
  559. if (CollectionUtils.isNotEmpty(result)) {
  560. result.forEach(countDto -> {
  561. countDto.setName(countDto.getShowName());
  562. countDto.setShowName(Constant.STRING_BLANK);
  563. });
  564. }
  565. return result;
  566. }
  567. @Override
  568. public List<TacCountDto> countPblmInfoByQtNew(TacPblmInfoParam pblmInfoParam) {
  569. List<TacCountDto> result = new ArrayList<>();
  570. if (StringUtils.isNotBlank(pblmInfoParam.getStbClaName())) {
  571. pblmInfoParam.setStbClaName(stbNameformat(pblmInfoParam.getStbClaName()));
  572. }
  573. //不统计问题分类中类型为其他的稽察数据
  574. if (StringUtils.isBlank(pblmInfoParam.getUseObjFlag()) || Constant.STRING_ONE.equals(pblmInfoParam.getUseObjFlag())) {
  575. //按照数据字典配置的新阶段汇总统计(专家现场意见稿,相应配置新阶段)
  576. if (StringUtils.isNotBlank(pblmInfoParam.getRgstrId()) && "0".equals(pblmInfoParam.getRgstrId())) {
  577. result.addAll(tacPblmInfoDao.countPblmInfoByQtNew(pblmInfoParam));
  578. } else {
  579. result.addAll(tacProvincePblmInfoDao.countPblmInfoByQtJdNew(pblmInfoParam));
  580. }
  581. } else if (Constant.STRING_TWO.equals(pblmInfoParam.getUseObjFlag())) {
  582. if (StringUtils.isNotBlank(pblmInfoParam.getRgstrId()) && "0".equals(pblmInfoParam.getRgstrId())) {
  583. result.addAll(tacPblmInfoDao.countPblmInfoObjByQtNew(pblmInfoParam));
  584. } else {
  585. result.addAll(tacProvincePblmInfoDao.countPblmInfoObjByQtJdNew(pblmInfoParam));
  586. }
  587. }
  588. if (CollectionUtils.isNotEmpty(result)) {
  589. result.forEach(countDto -> {
  590. countDto.setName(countDto.getShowName());
  591. countDto.setShowName(Constant.STRING_BLANK);
  592. });
  593. }
  594. return result;
  595. }
  596. @Override
  597. public List<TacCountDto> countPblmInfoMaxByQt(TacPblmInfoParam pblmInfoParam) {
  598. List<TacCountDto> list = new ArrayList<>();
  599. Map<String, TacCountDto> map = new LinkedHashMap<>();
  600. if (StringUtils.isNotBlank(pblmInfoParam.getStbClaName())) {
  601. pblmInfoParam.setStbClaName(stbNameformat(pblmInfoParam.getStbClaName()));
  602. }
  603. if (StringUtils.isBlank(pblmInfoParam.getUseObjFlag()) || Constant.STRING_ONE.equals(pblmInfoParam.getUseObjFlag())) {
  604. list.addAll(tacPblmInfoDao.countPblmInfoByQt(pblmInfoParam));
  605. } else if (Constant.STRING_TWO.equals(pblmInfoParam.getUseObjFlag())) {
  606. list.addAll(tacPblmInfoDao.countPblmInfoObjByQt(pblmInfoParam));
  607. }
  608. if (CollectionUtils.isNotEmpty(list)) {
  609. list.forEach(dto -> {
  610. String key = dto.getName();
  611. dto.setName(stbNameformat(key));
  612. if (map.containsKey(key)) {
  613. //数据转换
  614. compareDto(map, key, dto);
  615. } else {
  616. map.put(key, dto);
  617. }
  618. });
  619. }
  620. List<TacCountDto> result = new ArrayList<>(map.values());
  621. return result;
  622. }
  623. @Override
  624. public List<TacCountDto> countPblmInfoMaxByQtNew(TacPblmInfoParam pblmInfoParam) {
  625. List<TacCountDto> list = new ArrayList<>();
  626. Map<String, TacCountDto> map = new LinkedHashMap<>();
  627. if (StringUtils.isNotBlank(pblmInfoParam.getStbClaName())) {
  628. pblmInfoParam.setStbClaName(stbNameformat(pblmInfoParam.getStbClaName()));
  629. }
  630. if (StringUtils.isBlank(pblmInfoParam.getUseObjFlag()) || Constant.STRING_ONE.equals(pblmInfoParam.getUseObjFlag())) {
  631. if (StringUtils.isNotBlank(pblmInfoParam.getRgstrId()) && "0".equals(pblmInfoParam.getRgstrId())) {
  632. list.addAll(tacPblmInfoDao.countPblmInfoByQtNew(pblmInfoParam));
  633. } else {
  634. list.addAll(tacProvincePblmInfoDao.countPblmInfoByQtJdNew(pblmInfoParam));
  635. }
  636. } else if (Constant.STRING_TWO.equals(pblmInfoParam.getUseObjFlag())) {
  637. if (StringUtils.isNotBlank(pblmInfoParam.getRgstrId()) && "0".equals(pblmInfoParam.getRgstrId())) {
  638. list.addAll(tacPblmInfoDao.countPblmInfoObjByQtNew(pblmInfoParam));
  639. } else {
  640. list.addAll(tacProvincePblmInfoDao.countPblmInfoObjByQtJdNew(pblmInfoParam));
  641. }
  642. }
  643. if (CollectionUtils.isNotEmpty(list)) {
  644. list.forEach(dto -> {
  645. String key = dto.getName();
  646. dto.setName(stbNameformat(key));
  647. if (map.containsKey(key)) {
  648. //数据转换
  649. compareDto(map, key, dto);
  650. } else {
  651. map.put(key, dto);
  652. }
  653. });
  654. }
  655. List<TacCountDto> result = new ArrayList<>(map.values());
  656. return result;
  657. }
  658. /**
  659. * 数据转换
  660. *
  661. * @param map
  662. * @param key
  663. * @param currDto
  664. */
  665. private void compareDto(Map<String, TacCountDto> map, String key, TacCountDto currDto) {
  666. if (map.get(key) == null) {
  667. return;
  668. }
  669. TacCountDto dto = map.get(key);
  670. if (StringUtils.isBlank(currDto.getCount())) {
  671. return;
  672. }
  673. if (StringUtils.isBlank(dto.getCount()) || (Long.valueOf(currDto.getCount()) > Long.valueOf(dto.getCount()))) {
  674. map.put(key, currDto);
  675. }
  676. }
  677. /**
  678. * 问题数量总计
  679. *
  680. * @param result
  681. */
  682. private void convertCount(Map<String, TacCountDto> result) {
  683. result.values().stream().forEach(tacCountDto -> {
  684. Integer count = 0;
  685. if (StringUtils.isNotBlank(tacCountDto.getNormal())) {
  686. count += Integer.valueOf(tacCountDto.getNormal());
  687. }
  688. if (StringUtils.isNotBlank(tacCountDto.getHeavier())) {
  689. count += Integer.valueOf(tacCountDto.getHeavier());
  690. }
  691. if (StringUtils.isNotBlank(tacCountDto.getSerious())) {
  692. count += Integer.valueOf(tacCountDto.getSerious());
  693. }
  694. tacCountDto.setCount(count.toString());
  695. });
  696. }
  697. /**
  698. * 问题区分赋值
  699. *
  700. * @param result
  701. */
  702. private void setProblemValue(Map<String, TacCountDto> result, List<TacCountDto> list) {
  703. list.stream().forEach(tacCountDto -> {
  704. StringBuilder sb = new StringBuilder();
  705. String name = tacCountDto.getName();
  706. if (StringUtils.isNotBlank(name)) {
  707. sb.append(name);
  708. }
  709. if (result.keySet().contains(sb.toString())) {
  710. TacCountDto dto = result.get(sb.toString());
  711. String normal = dto.getNormal();
  712. String heavier = dto.getHeavier();
  713. String serious = dto.getSerious();
  714. String count = tacCountDto.getCount();
  715. if (Constant.STRING_ZERO.equals(tacCountDto.getCode())) {
  716. dto.setNormal(StringUtils.isBlank(normal) ? count : String.valueOf(Integer.valueOf(normal) + Integer.valueOf(count)));
  717. }
  718. if (Constant.STRING_ONE.equals(tacCountDto.getCode())) {
  719. dto.setHeavier(StringUtils.isBlank(heavier) ? count : String.valueOf(Integer.valueOf(heavier) + Integer.valueOf(count)));
  720. }
  721. if (Constant.STRING_TWO.equals(tacCountDto.getCode())) {
  722. dto.setSerious(StringUtils.isBlank(serious) ? count : String.valueOf(Integer.valueOf(serious) + Integer.valueOf(count)));
  723. }
  724. } else {
  725. if (Constant.STRING_ZERO.equals(tacCountDto.getCode())) {
  726. tacCountDto.setNormal(tacCountDto.getCount());
  727. }
  728. if (Constant.STRING_ONE.equals(tacCountDto.getCode())) {
  729. tacCountDto.setHeavier(tacCountDto.getCount());
  730. }
  731. if (Constant.STRING_TWO.equals(tacCountDto.getCode())) {
  732. tacCountDto.setSerious(tacCountDto.getCount());
  733. }
  734. result.put(sb.toString(), tacCountDto);
  735. }
  736. });
  737. }
  738. /**
  739. * 问题发生频度,定性一级分类转换
  740. *
  741. * @param key
  742. * @return
  743. */
  744. public static String stbNameformat(String key) {
  745. if (key == null) {
  746. return "";
  747. }
  748. if (stbMap.containsKey(key)) {
  749. return stbMap.get(key);
  750. }
  751. if (stbMap.containsValue(key)) {
  752. for (String k : stbMap.keySet()) {
  753. if (key.equals(stbMap.get(k))) {
  754. return k;
  755. }
  756. }
  757. }
  758. return "";
  759. }
  760. @Override
  761. public List<TacCountDto> countPblmInfoByObj(TacPblmInfoParam pblmInfoParam) {
  762. List<TacCountDto> tacCountDtos = tacPblmInfoDao.countPblmInfoByObj(pblmInfoParam);
  763. return tacCountDtos;
  764. }
  765. @Override
  766. public List<String> getLeaderId(String id) {
  767. return tacPblmInfoDao.getLeaderId(id);
  768. }
  769. }