8a466ac7fe2c8901461764ce239a78c25a301656.svn-base 36 KB

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