36dcbafbb2dd297deaa8c6409903335dc8f70cc8.svn-base 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. package cn.com.goldenwater.dcproj.service.impl;
  2. import cn.com.goldenwater.dcproj.dao.RelOrgInspTypeDao;
  3. import cn.com.goldenwater.dcproj.dao.TaskDthDayCountDao;
  4. import cn.com.goldenwater.dcproj.dto.BisInspTaskDthDayDto;
  5. import cn.com.goldenwater.dcproj.dto.BisInspTaskTotal;
  6. import cn.com.goldenwater.dcproj.service.IndexTotalService;
  7. import cn.com.goldenwater.dcproj.service.OlBisInspOrgService;
  8. import cn.com.goldenwater.dcproj.service.TacProvincePlanDictService;
  9. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  10. import cn.com.goldenwater.dcproj.utils.TaskDateUtils;
  11. import org.apache.commons.lang3.StringUtils;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Service;
  14. import java.math.BigDecimal;
  15. import java.math.RoundingMode;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.Map;
  19. /**
  20. * @author LQL
  21. */
  22. @Service
  23. public class IndexTotalServiceImpl implements IndexTotalService {
  24. @Autowired
  25. private TaskDthDayCountDao taskDthDayCountDao;
  26. @Autowired
  27. private OlBisInspOrgService olBisInspOrgService;
  28. @Autowired
  29. private RelOrgInspTypeDao relOrgInspTypeDao;
  30. @Autowired
  31. private TacProvincePlanDictService tacProvincePlanDictService;
  32. @Override
  33. public Map<String, String> totalAll(BisInspTaskDthDayDto bisInspTaskDthDayDto) {
  34. String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId()));
  35. bisInspTaskDthDayDto.setProvince(province);
  36. if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) {
  37. bisInspTaskDthDayDto.setAdCode(AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode()));
  38. }
  39. TaskDateUtils.setDate(bisInspTaskDthDayDto);
  40. Map<String, String> map = new HashMap<>(14);
  41. // 督查类别数量
  42. map.putAll(taskDthDayCountDao.getObjTypeSize(bisInspTaskDthDayDto.getOrgId()));
  43. //年督查项
  44. map.putAll(taskDthDayCountDao.getAllObjSize(bisInspTaskDthDayDto));
  45. //督查县/区数量
  46. map.putAll(taskDthDayCountDao.getObjAdCodeSizeX(bisInspTaskDthDayDto));
  47. //督查市数量
  48. map.putAll(taskDthDayCountDao.getObjAdCodeSizeS(bisInspTaskDthDayDto));
  49. // 督查批次数量
  50. map.putAll(taskDthDayCountDao.getBisInspAllSize(bisInspTaskDthDayDto));
  51. // 督查组数量
  52. map.putAll(taskDthDayCountDao.getBisInspAllGroupSize(bisInspTaskDthDayDto));
  53. // 全部人员数量
  54. map.putAll(taskDthDayCountDao.getAllPerSize(bisInspTaskDthDayDto));
  55. // 督查人员数量
  56. map.putAll(taskDthDayCountDao.getBisInspAllRlationPerSize(bisInspTaskDthDayDto));
  57. // 督查参与人次
  58. map.putAll(taskDthDayCountDao.getBisInspAllRlationPerNumSize(bisInspTaskDthDayDto));
  59. // 督查对象数量
  60. map.putAll(taskDthDayCountDao.getObjSize(bisInspTaskDthDayDto));
  61. // 督查对象重复数量
  62. map.putAll(taskDthDayCountDao.getObjSizeRepeat(bisInspTaskDthDayDto));
  63. // 已督查对象数量
  64. String[] rgsterTable = relOrgInspTypeDao.listOfRgster(bisInspTaskDthDayDto.getOrgId());
  65. if (rgsterTable != null && rgsterTable.length > 0) {
  66. bisInspTaskDthDayDto.setRgsterTable(rgsterTable);
  67. map.putAll(taskDthDayCountDao.getHasObjSize(bisInspTaskDthDayDto));
  68. } else {
  69. map.put("HASOBJSIZE", "0");
  70. }
  71. // 问题数量
  72. map.putAll(taskDthDayCountDao.getPblmSize(bisInspTaskDthDayDto));
  73. // 整改数量
  74. map.putAll(taskDthDayCountDao.getZgSize(bisInspTaskDthDayDto));
  75. // 整改销号数量
  76. map.putAll(taskDthDayCountDao.getPdZgSize(bisInspTaskDthDayDto));
  77. // 本月新增 督查类别个数
  78. map.putAll(taskDthDayCountDao.getObjTypeSizeMonth(bisInspTaskDthDayDto));
  79. // 本月新增 督查批次个数
  80. map.putAll(taskDthDayCountDao.getBisInspAllSizeMonth(bisInspTaskDthDayDto));
  81. // 本月新增 问题数量
  82. map.putAll(taskDthDayCountDao.getPblmSizeMonth(bisInspTaskDthDayDto));
  83. // 本月新增 整改数量
  84. map.put("MENDSIZEMONTH", "0");
  85. // 本月新增 整改销号数量
  86. map.putAll(taskDthDayCountDao.getDelPblmSizeMonth(bisInspTaskDthDayDto));
  87. // 福建省增加 查询 去年数据 需要与去年数据进行对比
  88. if("7".equals(bisInspTaskDthDayDto.getTimeType()) ) {
  89. // 统计 批次 和 组
  90. map.putAll(taskDthDayCountDao.selectBatchAndGroupSize(bisInspTaskDthDayDto));
  91. String queryCurYear = bisInspTaskDthDayDto.getYear();
  92. int curYear = Integer.parseInt(queryCurYear);
  93. map.put("objRant","0");
  94. map.put("pblmAllRant","0");
  95. map.put("pblmRectRant","0");
  96. if(2019 != curYear){
  97. bisInspTaskDthDayDto.setYear(String.valueOf(curYear-1));
  98. TaskDateUtils.setDate(bisInspTaskDthDayDto);
  99. // 督查对象数
  100. Map<String, String> lastYearObjMap = taskDthDayCountDao.getObjSize(bisInspTaskDthDayDto);
  101. if(null != lastYearObjMap && lastYearObjMap.size()>0){
  102. Object lastYearObjSize = lastYearObjMap.get("OBJSIZE");
  103. Object curYearObjSize = map.get("OBJSIZE");
  104. if(!"0".equals(curYearObjSize.toString())){
  105. map.put("objRant",getPercent(curYearObjSize.toString(),lastYearObjSize.toString()));
  106. }
  107. }
  108. // 发现问题数
  109. Map<String, String> lastYearPblmMap = taskDthDayCountDao.getPblmSize(bisInspTaskDthDayDto);
  110. if(null != lastYearPblmMap && lastYearPblmMap.size()>0){
  111. Object lastYearPblmSize = lastYearPblmMap.get("PBLMSIZE");
  112. Object curYearPblmSize = map.get("PBLMSIZE");
  113. if(!"0".equals(curYearPblmSize.toString())){
  114. map.put("pblmAllRant",getPercent(curYearPblmSize.toString(),lastYearPblmSize.toString()));
  115. }
  116. }
  117. // 整改问题数
  118. Map<String, String> lastYearZgMap = taskDthDayCountDao.getZgSize(bisInspTaskDthDayDto);
  119. if(null != lastYearZgMap && lastYearZgMap.size()>0){
  120. // 对比系统整改数
  121. Object lastYearZgSize = lastYearZgMap.get("MENDSIZESYS");
  122. Object curYearZgSize = map.get("MENDSIZESYS");
  123. if(!"0".equals(curYearZgSize.toString())){
  124. map.put("pblmRectRant",getPercent(curYearZgSize.toString(),lastYearZgSize.toString()));
  125. }
  126. }
  127. }
  128. }
  129. return map;
  130. }
  131. private String getPercent(String curVal , String lastVal){
  132. if("0".equals(lastVal)){
  133. return "0";
  134. }
  135. return new BigDecimal(curVal).subtract(new BigDecimal(lastVal)).multiply(new BigDecimal(100)).divide(new BigDecimal(lastVal),2, RoundingMode.HALF_UP).toString().concat("%");
  136. }
  137. @Override
  138. public Map<String, String> totalAllOfJicha(BisInspTaskDthDayDto bisInspTaskDthDayDto) {
  139. String province = olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId());
  140. bisInspTaskDthDayDto.setProvince(province);
  141. bisInspTaskDthDayDto.setLastStepId(tacProvincePlanDictService.getJcStepId(bisInspTaskDthDayDto.getOrgId()));
  142. if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) {
  143. bisInspTaskDthDayDto.setAdCode(AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode()));
  144. }
  145. else {
  146. bisInspTaskDthDayDto.setAdCode(AdLevelUtil.getAddvcd(province));
  147. }
  148. Map<String, String> map = new HashMap<>(9);
  149. // 人员个数
  150. map.putAll(taskDthDayCountDao.getBisInspAllRlationPerSizeJicha(bisInspTaskDthDayDto));
  151. // 组个数
  152. map.putAll(taskDthDayCountDao.getBisInspAllGroupSizeJicha(bisInspTaskDthDayDto));
  153. // 督查对象个数
  154. map.putAll(taskDthDayCountDao.getObjSizeJicha(bisInspTaskDthDayDto));
  155. // 督查问题个数
  156. map.putAll(taskDthDayCountDao.getPblmSizeJicha(bisInspTaskDthDayDto));
  157. // 整改数
  158. if ("330000000000".equals(province) && "2020".equals(bisInspTaskDthDayDto.getYear())) {
  159. map.put("MENDSIZE", map.get("PBLMSIZE"));
  160. } else {
  161. map.putAll(taskDthDayCountDao.getPblmSizeJichaZg(bisInspTaskDthDayDto));
  162. }
  163. // 销号数
  164. map.putAll(taskDthDayCountDao.getPblmSizeJichaFc(bisInspTaskDthDayDto));
  165. // 本月新增 整改个数 TODO
  166. map.put("MENDSIZEMONTH", "0");
  167. return map;
  168. }
  169. @Override
  170. public List<Map<String, String>> statisticsBySpecialtyType(BisInspTaskDthDayDto bisInspTaskDthDayDto) {
  171. TaskDateUtils.setDate(bisInspTaskDthDayDto);
  172. String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId()));
  173. //如果为空则设置 提取全省信息 否则 截取行政区
  174. if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) {
  175. bisInspTaskDthDayDto.setAdCode(AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode()));
  176. } else {
  177. bisInspTaskDthDayDto.setAdCode(province);
  178. }
  179. if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getObjType())) {
  180. bisInspTaskDthDayDto.setObjType(String.valueOf(Integer.parseInt(bisInspTaskDthDayDto.getObjType())));
  181. if ("8".equals(bisInspTaskDthDayDto.getObjType())) {
  182. // 如果是稽察, 查询最后一步ID
  183. bisInspTaskDthDayDto.setLastStepId(tacProvincePlanDictService.getJcStepId(bisInspTaskDthDayDto.getOrgId()));
  184. }
  185. }
  186. return taskDthDayCountDao.statisticsBySpecialtyType(bisInspTaskDthDayDto);
  187. }
  188. /**
  189. * 按年份统计督查类型的问题,按问题类型进行分类统计
  190. * @param bisInspTaskDthDayDto
  191. * @return
  192. */
  193. @Override
  194. public List<Map<String, String>> statisticsByPblmType(BisInspTaskDthDayDto bisInspTaskDthDayDto) {
  195. TaskDateUtils.setDate(bisInspTaskDthDayDto);
  196. String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId()));
  197. //如果为空则设置 提取全省信息 否则 截取行政区
  198. if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) {
  199. bisInspTaskDthDayDto.setAdCode(AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode()));
  200. } else {
  201. bisInspTaskDthDayDto.setAdCode(province);
  202. }
  203. return taskDthDayCountDao.statisticsByPblmType(bisInspTaskDthDayDto);
  204. }
  205. @Override
  206. public List<Map<String, String>> statisticsByEngType(BisInspTaskDthDayDto bisInspTaskDthDayDto) {
  207. // 设置时间
  208. TaskDateUtils.setDate(bisInspTaskDthDayDto);
  209. // 获取省份编码ID
  210. String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId()));
  211. // 如果为空则设置 提取全省信息 否则 截取行政区
  212. if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) {
  213. bisInspTaskDthDayDto.setAdCode(AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode()));
  214. } else {
  215. bisInspTaskDthDayDto.setAdCode(province);
  216. }
  217. bisInspTaskDthDayDto.setLastStepId(tacProvincePlanDictService.getJcStepId(bisInspTaskDthDayDto.getOrgId()));
  218. return taskDthDayCountDao.statisticsByEngType(bisInspTaskDthDayDto);
  219. }
  220. @Override
  221. public List<Map<String, String>> statisticsByResubType(BisInspTaskDthDayDto bisInspTaskDthDayDto) {
  222. // 设置时间
  223. TaskDateUtils.setDate(bisInspTaskDthDayDto);
  224. // 获取省份编码ID
  225. String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId()));
  226. // 如果为空则设置 提取全省信息 否则 截取行政区
  227. if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) {
  228. bisInspTaskDthDayDto.setAdCode(AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode()));
  229. } else {
  230. bisInspTaskDthDayDto.setAdCode(province);
  231. }
  232. bisInspTaskDthDayDto.setLastStepId(tacProvincePlanDictService.getJcStepId(bisInspTaskDthDayDto.getOrgId()));
  233. return taskDthDayCountDao.statisticsByResubType(bisInspTaskDthDayDto);
  234. }
  235. @Override
  236. public Map<String, String> getObjSize(BisInspTaskDthDayDto bisInspTaskDthDayDto) {
  237. Map<String, String> mapObj = new HashMap<>(1);
  238. String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId()));
  239. if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) {
  240. province = AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode());
  241. }
  242. TaskDateUtils.setDate(bisInspTaskDthDayDto);
  243. BisInspTaskTotal bisInspTaskTotal = taskDthDayCountDao.getListByTm(province, bisInspTaskDthDayDto.getObjType(),
  244. bisInspTaskDthDayDto.getSttm(), bisInspTaskDthDayDto.getEntm());
  245. mapObj.put("objSize", String.valueOf(bisInspTaskTotal.getObjSize()));
  246. String[] rgsterTable = relOrgInspTypeDao.listOfRgster(bisInspTaskDthDayDto.getOrgId());
  247. bisInspTaskDthDayDto.setRgsterTable(rgsterTable);
  248. Map<String, String> map = taskDthDayCountDao.getHasObjSize(bisInspTaskDthDayDto);
  249. mapObj.putAll(map);
  250. return mapObj;
  251. }
  252. @Override
  253. public List<Map<String, Object>> personCount(BisInspTaskDthDayDto bisInspTaskDthDayDto) {
  254. String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(bisInspTaskDthDayDto.getOrgId()));
  255. if (StringUtils.isNotBlank(bisInspTaskDthDayDto.getAdCode())) {
  256. province = AdLevelUtil.getAddvcd(bisInspTaskDthDayDto.getAdCode());
  257. }
  258. bisInspTaskDthDayDto.setProvince(province);
  259. TaskDateUtils.setDate(bisInspTaskDthDayDto);
  260. return taskDthDayCountDao.personCount(bisInspTaskDthDayDto);
  261. }
  262. }