f8aa12fba70754f18c00ade5bff9a036d28cdb26.svn-base 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563
  1. package cn.com.goldenwater.dcproj.service.impl;
  2. import cn.com.goldenwater.dcproj.dao.AttInspTypeDao;
  3. import cn.com.goldenwater.dcproj.dao.IndexTotalQhDao;
  4. import cn.com.goldenwater.dcproj.dto.DcIndexTotalQhDto;
  5. import cn.com.goldenwater.dcproj.model.AttAdBase;
  6. import cn.com.goldenwater.dcproj.model.AttInspType;
  7. import cn.com.goldenwater.dcproj.model.RelOrgInspType;
  8. import cn.com.goldenwater.dcproj.param.RelOrgInspTypeParam;
  9. import cn.com.goldenwater.dcproj.service.AttAdBaseService;
  10. import cn.com.goldenwater.dcproj.service.IndexTotalQhService;
  11. import cn.com.goldenwater.dcproj.service.OlBisInspOrgService;
  12. import cn.com.goldenwater.dcproj.service.RelOrgInspTypeService;
  13. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  14. import cn.com.goldenwater.dcproj.utils.Builder;
  15. import cn.com.goldenwater.dcproj.utils.RedisOperator;
  16. import cn.com.goldenwater.target.CheckException;
  17. import com.alibaba.fastjson.JSON;
  18. import com.alibaba.fastjson.TypeReference;
  19. import oracle.sql.TIMESTAMP;
  20. import org.apache.commons.collections.CollectionUtils;
  21. import org.apache.commons.collections.MapUtils;
  22. import org.apache.commons.lang3.StringUtils;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.stereotype.Service;
  25. import java.sql.SQLException;
  26. import java.util.*;
  27. import java.util.stream.Collectors;
  28. @Service
  29. public class IndexTotalQhServiceImpl implements IndexTotalQhService {
  30. @Autowired
  31. private IndexTotalQhDao indexTotalQhDao;
  32. @Autowired
  33. private OlBisInspOrgService olBisInspOrgService;
  34. @Autowired
  35. private AttAdBaseService attAdBaseService;
  36. @Autowired
  37. private RedisOperator redisOperator;
  38. @Autowired
  39. private RelOrgInspTypeService relOrgInspTypeService;
  40. @Autowired
  41. private AttInspTypeDao attInspTypeDao;
  42. private static final String DC_INDEX_TOTAL_OBJ_PBLM_REDIS_KEY_PREFIX = "DITOP_";
  43. /**
  44. * PERSIZE PBLMSIZE GROUPSIZE MENDSIZE OBJSIZE PDSIZE
  45. *
  46. * @param dcIndexTotalQhDto
  47. * @return
  48. */
  49. @Override
  50. public List<Map<String, Object>> totalByType(DcIndexTotalQhDto dcIndexTotalQhDto) {
  51. getAdCode(dcIndexTotalQhDto);
  52. List<Map<String, Object>> objPblmData = getObjPblmData(dcIndexTotalQhDto);
  53. List<Map<String, Object>> persData = indexTotalQhDao.getPersData(dcIndexTotalQhDto);
  54. List<Map<String, Object>> zgData = indexTotalQhDao.getZgData(dcIndexTotalQhDto);
  55. List<RelOrgInspType> relOrgInspTypeList = relOrgInspTypeService.findList(Builder
  56. .of(RelOrgInspTypeParam::new)
  57. .with(RelOrgInspTypeParam::setOrgId, dcIndexTotalQhDto.getOrgId())
  58. .build());
  59. if (CollectionUtils.isEmpty(relOrgInspTypeList)) {
  60. throw new CheckException("未找到机构下的的督查类别!");
  61. }
  62. List<String> objTypeList = relOrgInspTypeList.stream()
  63. .map(RelOrgInspType::getInspType)
  64. .filter(StringUtils::isNotBlank)
  65. .distinct()
  66. .collect(Collectors.toList());
  67. List<Map<String, Object>> ret = new ArrayList<>();
  68. Map<String, Object> all = new HashMap<>(8);
  69. all.put("inspName", "全部");
  70. all.put("PERSIZE", persData.stream()
  71. .map(o -> MapUtils.getString(o, "PERSID"))
  72. .filter(StringUtils::isNotBlank)
  73. .distinct()
  74. .count()
  75. );
  76. all.put("GROUPSIZE", objPblmData.stream()
  77. .filter(o -> checkInTime(dcIndexTotalQhDto, "STTM", o))
  78. .map(o -> MapUtils.getString(o, "ID"))
  79. .filter(StringUtils::isNotBlank)
  80. .filter(o -> o.length() == 12)
  81. .distinct()
  82. .count()
  83. );
  84. all.put("OBJSIZE", objPblmData.stream()
  85. .filter(o -> checkInTime(dcIndexTotalQhDto, "OBJ_INTM", o))
  86. .map(o -> MapUtils.getString(o, "OBJ_ID"))
  87. .filter(StringUtils::isNotBlank)
  88. .distinct()
  89. .count()
  90. );
  91. all.put("PBLMSIZE", objPblmData.stream()
  92. .filter(o -> checkInTime(dcIndexTotalQhDto, "COLL_TIME", o))
  93. .map(o -> MapUtils.getString(o, "PBLM_ID"))
  94. .filter(StringUtils::isNotBlank)
  95. .distinct()
  96. .count()
  97. );
  98. all.put("MENDSIZE", zgData.stream()
  99. .map(o -> MapUtils.getString(o, "ID"))
  100. .filter(StringUtils::isNotBlank)
  101. .distinct()
  102. .count()
  103. );
  104. all.put("PDSIZE", zgData.stream()
  105. .filter(o -> "1".equals(MapUtils.getString(o, "PBLM_OUT")))
  106. .map(o -> MapUtils.getString(o, "ID"))
  107. .filter(StringUtils::isNotBlank)
  108. .distinct()
  109. .count()
  110. );
  111. ret.add(all);
  112. for (String objType : objTypeList) {
  113. Map<String, Object> map = new HashMap<>(8);
  114. map.put("CODE", objType);
  115. map.put("inspName", objPblmData.stream()
  116. .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
  117. .map(o -> MapUtils.getString(o, "INSP_NAME"))
  118. .filter(StringUtils::isNotBlank)
  119. .distinct()
  120. .findFirst().orElseGet(() -> {
  121. AttInspType attInspType = attInspTypeDao.get(objType);
  122. return Optional.ofNullable(attInspType).map(AttInspType::getName).orElse("");
  123. }));
  124. map.put("PERSIZE", persData.stream()
  125. .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
  126. .map(o -> MapUtils.getString(o, "PERSID"))
  127. .filter(StringUtils::isNotBlank)
  128. .distinct()
  129. .count()
  130. );
  131. map.put("GROUPSIZE", objPblmData.stream()
  132. .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
  133. .filter(o -> checkInTime(dcIndexTotalQhDto, "STTM", o))
  134. .map(o -> MapUtils.getString(o, "ID"))
  135. .filter(StringUtils::isNotBlank)
  136. .filter(o -> o.length() == 12)
  137. .distinct()
  138. .count()
  139. );
  140. map.put("OBJSIZE", objPblmData.stream()
  141. .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
  142. .filter(o -> checkInTime(dcIndexTotalQhDto, "OBJ_INTM", o))
  143. .map(o -> MapUtils.getString(o, "OBJ_ID"))
  144. .filter(StringUtils::isNotBlank)
  145. .distinct()
  146. .count()
  147. );
  148. map.put("PBLMSIZE", objPblmData.stream()
  149. .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
  150. .filter(o -> checkInTime(dcIndexTotalQhDto, "COLL_TIME", o))
  151. .map(o -> MapUtils.getString(o, "PBLM_ID"))
  152. .filter(StringUtils::isNotBlank)
  153. .distinct()
  154. .count()
  155. );
  156. map.put("MENDSIZE", zgData.stream()
  157. .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
  158. .map(o -> MapUtils.getString(o, "ID"))
  159. .filter(StringUtils::isNotBlank)
  160. .distinct()
  161. .count()
  162. );
  163. map.put("PDSIZE", zgData.stream()
  164. .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
  165. .filter(o -> "1".equals(MapUtils.getString(o, "PBLM_OUT")))
  166. .map(o -> MapUtils.getString(o, "ID"))
  167. .filter(StringUtils::isNotBlank)
  168. .distinct()
  169. .count()
  170. );
  171. ret.add(map);
  172. }
  173. return ret;
  174. }
  175. /**
  176. * PERSIZE PBLMSIZE GROUPSIZE MENDSIZE OBJSIZE PDSIZE
  177. *
  178. * @param dcIndexTotalQhDto
  179. * @return
  180. */
  181. @Override
  182. public List<Map<String, Object>> totalPblmByPtype(DcIndexTotalQhDto dcIndexTotalQhDto) {
  183. getAdCode(dcIndexTotalQhDto);
  184. List<Map<String, Object>> objPblmData = getObjPblmData(dcIndexTotalQhDto);
  185. List<String> objTypeList = objPblmData.stream()
  186. .map(o -> MapUtils.getString(o, "CODE"))
  187. .filter(StringUtils::isNotBlank)
  188. .distinct()
  189. .collect(Collectors.toList());
  190. List<Map<String, Object>> ret = new ArrayList<>();
  191. for (String objType : objTypeList) {
  192. Map<String, Object> map = new HashMap<>(3);
  193. map.put("CODE", objType);
  194. map.put("inspName", objPblmData.stream()
  195. .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
  196. .map(o -> MapUtils.getString(o, "INSP_NAME"))
  197. .filter(StringUtils::isNotBlank)
  198. .distinct()
  199. .findFirst());
  200. map.put("PBLMSIZE", objPblmData.stream()
  201. .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
  202. .filter(o -> checkInTime(dcIndexTotalQhDto, "COLL_TIME", o))
  203. .map(o -> MapUtils.getString(o, "PBLM_ID"))
  204. .filter(StringUtils::isNotBlank)
  205. .distinct()
  206. .count()
  207. );
  208. ret.add(map);
  209. }
  210. ret = ret.stream()
  211. .sorted(Comparator.comparingInt(o -> MapUtils.getIntValue((Map) o, "PBLMSIZE")).reversed())
  212. .limit(10)
  213. .collect(Collectors.toList());
  214. return ret;
  215. }
  216. /**
  217. * PERSIZE PBLMSIZE GROUPSIZE MENDSIZE OBJSIZE PDSIZE
  218. *
  219. * @param dcIndexTotalQhDto
  220. * @return
  221. */
  222. @Override
  223. public List<Map<String, Object>> totalByAdCode(DcIndexTotalQhDto dcIndexTotalQhDto) {
  224. getAdCode(dcIndexTotalQhDto);
  225. List<Map<String, Object>> objPblmData = getObjPblmData(dcIndexTotalQhDto);
  226. List<Map<String, Object>> persData = indexTotalQhDao.getPersData(dcIndexTotalQhDto);
  227. List<Map<String, Object>> zgData = indexTotalQhDao.getZgData(dcIndexTotalQhDto);
  228. String upAdCode = dcIndexTotalQhDto.getAdCode();
  229. switch (upAdCode.length()) {
  230. case 2:
  231. upAdCode += "0000000000";
  232. break;
  233. case 4:
  234. upAdCode += "00000000";
  235. break;
  236. default:
  237. }
  238. List<AttAdBase> adBaseList = attAdBaseService.getAdData(upAdCode);
  239. AttAdBase adBase = attAdBaseService.get(upAdCode);
  240. List<Map<String, Object>> ret = new ArrayList<>();
  241. Map<String, Object> all = new HashMap<>(8);
  242. all.put("CODE", adBase.getAdCode());
  243. all.put("inspName", adBase.getAdName());
  244. all.put("LAT", adBase.getLttd());
  245. all.put("LONG", adBase.getLgtd());
  246. all.put("PERSIZE", persData.stream()
  247. .map(o -> MapUtils.getString(o, "PERSID"))
  248. .filter(StringUtils::isNotBlank)
  249. .distinct()
  250. .count()
  251. );
  252. all.put("GROUPSIZE", objPblmData.stream()
  253. .filter(o -> checkInTime(dcIndexTotalQhDto, "STTM", o))
  254. .map(o -> MapUtils.getString(o, "ID"))
  255. .filter(StringUtils::isNotBlank)
  256. .filter(o -> o.length() == 12)
  257. .distinct()
  258. .count()
  259. );
  260. all.put("OBJSIZE", objPblmData.stream()
  261. .filter(o -> checkInTime(dcIndexTotalQhDto, "OBJ_INTM", o))
  262. .map(o -> MapUtils.getString(o, "OBJ_ID"))
  263. .filter(StringUtils::isNotBlank)
  264. .distinct()
  265. .count()
  266. );
  267. all.put("PBLMSIZE", objPblmData.stream()
  268. .filter(o -> checkInTime(dcIndexTotalQhDto, "COLL_TIME", o))
  269. .map(o -> MapUtils.getString(o, "PBLM_ID"))
  270. .filter(StringUtils::isNotBlank)
  271. .distinct()
  272. .count()
  273. );
  274. all.put("MENDSIZE", zgData.stream()
  275. .map(o -> MapUtils.getString(o, "ID"))
  276. .filter(StringUtils::isNotBlank)
  277. .distinct()
  278. .count()
  279. );
  280. all.put("PDSIZE", zgData.stream()
  281. .filter(o -> "1".equals(MapUtils.getString(o, "PBLM_OUT")))
  282. .map(o -> MapUtils.getString(o, "ID"))
  283. .filter(StringUtils::isNotBlank)
  284. .distinct()
  285. .count()
  286. );
  287. ret.add(all);
  288. for (AttAdBase attAdBase : adBaseList) {
  289. String adCode = AdLevelUtil.getAddvcd(attAdBase.getAdCode());
  290. Map<String, Object> map = new HashMap<>(10);
  291. map.put("CODE", attAdBase.getAdCode());
  292. map.put("inspName", attAdBase.getAdName());
  293. map.put("LAT", attAdBase.getLttd());
  294. map.put("LONG", attAdBase.getLgtd());
  295. map.put("PERSIZE", persData.stream()
  296. .filter(o -> MapUtils.getString(o, "OBJ_AD_CODE", "AAA").contains(adCode))
  297. .map(o -> MapUtils.getString(o, "PERSID"))
  298. .filter(StringUtils::isNotBlank)
  299. .distinct()
  300. .count()
  301. );
  302. map.put("GROUPSIZE", objPblmData.stream()
  303. .filter(o -> MapUtils.getString(o, "OBJ_AD_CODE", "AAA").contains(adCode))
  304. .filter(o -> checkInTime(dcIndexTotalQhDto, "STTM", o))
  305. .map(o -> MapUtils.getString(o, "ID"))
  306. .filter(StringUtils::isNotBlank)
  307. .filter(o -> o.length() == 12)
  308. .distinct()
  309. .count()
  310. );
  311. map.put("OBJSIZE", objPblmData.stream()
  312. .filter(o -> MapUtils.getString(o, "OBJ_AD_CODE", "AAA").contains(adCode))
  313. .filter(o -> checkInTime(dcIndexTotalQhDto, "OBJ_INTM", o))
  314. .map(o -> MapUtils.getString(o, "OBJ_ID"))
  315. .filter(StringUtils::isNotBlank)
  316. .distinct()
  317. .count()
  318. );
  319. map.put("PBLMSIZE", objPblmData.stream()
  320. .filter(o -> MapUtils.getString(o, "OBJ_AD_CODE", "AAA").contains(adCode))
  321. .filter(o -> checkInTime(dcIndexTotalQhDto, "COLL_TIME", o))
  322. .map(o -> MapUtils.getString(o, "PBLM_ID"))
  323. .filter(StringUtils::isNotBlank)
  324. .distinct()
  325. .count()
  326. );
  327. map.put("MENDSIZE", zgData.stream()
  328. .filter(o -> MapUtils.getString(o, "OBJ_AD_CODE", "AAA").contains(adCode))
  329. .map(o -> MapUtils.getString(o, "ID"))
  330. .filter(StringUtils::isNotBlank)
  331. .distinct()
  332. .count()
  333. );
  334. map.put("PDSIZE", zgData.stream()
  335. .filter(o -> MapUtils.getString(o, "OBJ_AD_CODE", "AAA").contains(adCode))
  336. .filter(o -> "1".equals(MapUtils.getString(o, "PBLM_OUT")))
  337. .map(o -> MapUtils.getString(o, "ID"))
  338. .filter(StringUtils::isNotBlank)
  339. .distinct()
  340. .count()
  341. );
  342. ret.add(map);
  343. }
  344. return ret;
  345. }
  346. /**
  347. * PERSIZE PBLMSIZE GROUPSIZE MENDSIZE OBJSIZE PDSIZE
  348. *
  349. * @param dcIndexTotalQhDto
  350. * @return
  351. */
  352. @Override
  353. public List<Map<String, Object>> pblmByAdCode(DcIndexTotalQhDto dcIndexTotalQhDto) {
  354. getAdCode(dcIndexTotalQhDto);
  355. String upAdCode = dcIndexTotalQhDto.getAdCode();
  356. switch (upAdCode.length()) {
  357. case 2:
  358. upAdCode += "0000000000";
  359. break;
  360. case 4:
  361. upAdCode += "00000000";
  362. break;
  363. default:
  364. }
  365. List<Map<String, Object>> objPblmData = getObjPblmData(dcIndexTotalQhDto);
  366. List<AttAdBase> adBaseList = attAdBaseService.getAdData(upAdCode);
  367. List<String> objTypeList = objPblmData.stream()
  368. .map(o -> MapUtils.getString(o, "CODE"))
  369. .filter(StringUtils::isNotBlank)
  370. .distinct()
  371. .sorted(
  372. Comparator.comparing(o -> objPblmData.stream()
  373. .filter(a -> o.equals(MapUtils.getString(a, "CODE")))
  374. .map(a -> MapUtils.getString(a, "PBLM_ID"))
  375. .filter(StringUtils::isNotBlank)
  376. .distinct()
  377. .count()).reversed()
  378. )
  379. .limit(10)
  380. .collect(Collectors.toList());
  381. List<Map<String, Object>> ret = new ArrayList<>();
  382. for (AttAdBase attAdBase : adBaseList) {
  383. String adCode = AdLevelUtil.getAddvcd(attAdBase.getAdCode());
  384. Map<String, Object> map = new HashMap<>(3);
  385. map.put("CODE", attAdBase.getAdCode());
  386. map.put("inspName", attAdBase.getAdName());
  387. List<Map<String, Object>> value = new ArrayList<>();
  388. for (String objType : objTypeList) {
  389. Map<String, Object> valueMap = new HashMap<>(3);
  390. valueMap.put("CODE", objType);
  391. valueMap.put("inspName", objPblmData.stream()
  392. .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
  393. .map(o -> MapUtils.getString(o, "INSP_NAME"))
  394. .filter(StringUtils::isNotBlank)
  395. .distinct()
  396. .findFirst());
  397. valueMap.put("PBLMSIZE", objPblmData.stream()
  398. .filter(o -> objType.equals(MapUtils.getString(o, "CODE")))
  399. .filter(o -> MapUtils.getString(o, "OBJ_AD_CODE", "AAA").contains(adCode))
  400. .filter(o -> checkInTime(dcIndexTotalQhDto, "COLL_TIME", o))
  401. .map(o -> MapUtils.getString(o, "PBLM_ID"))
  402. .filter(StringUtils::isNotBlank)
  403. .distinct()
  404. .count()
  405. );
  406. value.add(valueMap);
  407. }
  408. map.put("PBLMSIZE", value);
  409. ret.add(map);
  410. }
  411. return ret;
  412. }
  413. /**
  414. * PERSIZE PBLMSIZE GROUPSIZE MENDSIZE OBJSIZE PDSIZE
  415. *
  416. * @param dcIndexTotalQhDto
  417. * @return
  418. */
  419. @Override
  420. public Map<String, Object> pblmByCate(DcIndexTotalQhDto dcIndexTotalQhDto) {
  421. getAdCode(dcIndexTotalQhDto);
  422. List<Map<String, Object>> objPblmData = getObjPblmData(dcIndexTotalQhDto);
  423. objPblmData = objPblmData.stream()
  424. .filter(o -> checkInTime(dcIndexTotalQhDto, "COLL_TIME", o))
  425. .collect(Collectors.toList());
  426. Map<String, Object> ret = new HashMap<>(4);
  427. ret.put("INFOPBLMSIZE", objPblmData.stream()
  428. .filter(o -> "0".equals(MapUtils.getString(o, "INSP_PBLM_CATE")))
  429. .map(o -> MapUtils.getString(o, "PBLM_ID"))
  430. .filter(StringUtils::isNotBlank)
  431. .distinct()
  432. .count()
  433. );
  434. ret.put("WARMPBLMSIZE", objPblmData.stream()
  435. .filter(o -> "1".equals(MapUtils.getString(o, "INSP_PBLM_CATE")))
  436. .map(o -> MapUtils.getString(o, "PBLM_ID"))
  437. .filter(StringUtils::isNotBlank)
  438. .distinct()
  439. .count()
  440. );
  441. ret.put("ERRORPBLMSIZE", objPblmData.stream()
  442. .filter(o -> "2".equals(MapUtils.getString(o, "INSP_PBLM_CATE")))
  443. .map(o -> MapUtils.getString(o, "PBLM_ID"))
  444. .filter(StringUtils::isNotBlank)
  445. .distinct()
  446. .count()
  447. );
  448. ret.put("ERRORSPBLMSIZE", objPblmData.stream()
  449. .filter(o -> "3".equals(MapUtils.getString(o, "INSP_PBLM_CATE")))
  450. .map(o -> MapUtils.getString(o, "PBLM_ID"))
  451. .filter(StringUtils::isNotBlank)
  452. .distinct()
  453. .count()
  454. );
  455. return ret;
  456. }
  457. private void getAdCode(DcIndexTotalQhDto dcIndexTotalQhDto) {
  458. if (StringUtils.isBlank(dcIndexTotalQhDto.getAdCode())) {
  459. dcIndexTotalQhDto.setAdCode(AdLevelUtil.getAddvcd(olBisInspOrgService.getProvince(dcIndexTotalQhDto.getOrgId())));
  460. } else {
  461. dcIndexTotalQhDto.setAdCode(AdLevelUtil.getAddvcd(dcIndexTotalQhDto.getAdCode()));
  462. }
  463. }
  464. private List<Map<String, Object>> getObjPblmData(DcIndexTotalQhDto dcIndexTotalQhDto) {
  465. String redisKey = DC_INDEX_TOTAL_OBJ_PBLM_REDIS_KEY_PREFIX + dcIndexTotalQhDto.toString();
  466. String ret = redisOperator.get(redisKey);
  467. if (ret == null) {
  468. List<Map<String, Object>> objPblmData = indexTotalQhDao.getObjPblmData(dcIndexTotalQhDto);
  469. redisOperator.set(redisKey, JSON.toJSONString(objPblmData), 300);
  470. return objPblmData;
  471. }
  472. return JSON.parseObject(ret, new TypeReference<List<Map<String, Object>>>() {
  473. });
  474. }
  475. private boolean checkInTime(DcIndexTotalQhDto dcIndexTotalQhDto, String param, Map<String, Object> map) {
  476. boolean ret = false;
  477. if (dcIndexTotalQhDto.getSttm() == null && dcIndexTotalQhDto.getEntm() == null) {
  478. return true;
  479. }
  480. Object timeObj = map.get(param);
  481. Date time = null;
  482. if (timeObj instanceof oracle.sql.TIMESTAMP) {
  483. oracle.sql.TIMESTAMP t = (TIMESTAMP) timeObj;
  484. try {
  485. time = new Date(t.dateValue().getTime());
  486. } catch (SQLException e) {
  487. e.printStackTrace();
  488. }
  489. } else if (timeObj instanceof Long) {
  490. time = new Date((Long) timeObj);
  491. } else {
  492. time = (Date) timeObj;
  493. }
  494. if (time == null) {
  495. return ret;
  496. }
  497. if (dcIndexTotalQhDto.getSttm() != null) {
  498. if (dcIndexTotalQhDto.getSttm().before(time)) {
  499. ret = true;
  500. } else {
  501. return false;
  502. }
  503. }
  504. if (dcIndexTotalQhDto.getEntm() != null) {
  505. if (dcIndexTotalQhDto.getEntm().after(time)) {
  506. ret = true;
  507. }
  508. }
  509. return ret;
  510. }
  511. }