8985c5ed7c3436899b059c1d3900133de81b736d.svn-base 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. package cn.com.goldenwater.dcproj.service.impl.ducha;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.constValue.SplitValue;
  4. import cn.com.goldenwater.dcproj.dao.AttAdXBaseDao;
  5. import cn.com.goldenwater.dcproj.dao.BisInspSelAreaDao;
  6. import cn.com.goldenwater.dcproj.model.AttAdXBase;
  7. import cn.com.goldenwater.dcproj.model.AttRsBase;
  8. import cn.com.goldenwater.dcproj.model.BisInspSelArea;
  9. import cn.com.goldenwater.dcproj.param.BisInspSelAreaParam;
  10. import cn.com.goldenwater.dcproj.param.InGroupResParam;
  11. import cn.com.goldenwater.dcproj.param.PagePersObjParam;
  12. import cn.com.goldenwater.dcproj.service.BisInspObjService;
  13. import cn.com.goldenwater.dcproj.service.BisInspSelAreaService;
  14. import cn.com.goldenwater.dcproj.service.SupervisionPlanService;
  15. import cn.com.goldenwater.dcproj.util.StringUtil;
  16. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  17. import com.github.pagehelper.PageHelper;
  18. import com.github.pagehelper.PageInfo;
  19. import org.apache.commons.collections.CollectionUtils;
  20. import org.apache.commons.collections.MapUtils;
  21. import org.apache.commons.lang3.StringUtils;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.stereotype.Service;
  24. import org.springframework.transaction.annotation.Transactional;
  25. import java.lang.reflect.Field;
  26. import java.util.ArrayList;
  27. import java.util.HashMap;
  28. import java.util.List;
  29. import java.util.Map;
  30. /**
  31. * @author litf
  32. * @date 2019-3-6
  33. */
  34. @Service
  35. @Transactional(rollbackFor = Exception.class)
  36. public class BisInspSelAreaServiceImpl extends AbstractCrudService<BisInspSelArea, BisInspSelAreaParam> implements BisInspSelAreaService {
  37. @Autowired
  38. private BisInspSelAreaDao bisInspSelAreaDao;
  39. @Autowired
  40. private AttAdXBaseDao attAdXBaseDao;
  41. @Autowired
  42. private BisInspObjService bisInspObjService;
  43. @Autowired
  44. private SupervisionPlanService supervisionPlanService;
  45. @Override
  46. public List<Map<String, Object>> getAddvcdByAdCode(String adCode, String adGrad) {
  47. return bisInspSelAreaDao.getAddvcdByAdCode(adCode, adGrad);
  48. }
  49. @Override
  50. public List<Map<String, Object>> getProvinceAreaByPersid(String persId, String end, String str, String pattern, String adCode, String pType, String orgId) {
  51. return bisInspSelAreaDao.getProvinceAreaByPersid(persId, end, str, pattern, adCode, pType, orgId);
  52. }
  53. @Override
  54. public PageInfo<Map<String, Object>> getResByArea(BisInspSelAreaParam p) {
  55. PageHelper.startPage(p.getPageNum(), p.getPageSize());
  56. PageHelper.orderBy(p.getOrderBy());
  57. List<Map<String, Object>> list = bisInspSelAreaDao.getResByArea(p);
  58. return new PageInfo<Map<String, Object>>(list);
  59. }
  60. @Override
  61. public List<Map<String, Object>> getAreaByPersid(String persId, String orgId) {
  62. return bisInspSelAreaDao.getAreaByPersid(persId, orgId);
  63. }
  64. @Override
  65. public PageInfo<BisInspSelArea> getAllSub(BisInspSelAreaParam p) {
  66. PageHelper.startPage(p.getPageNum(), p.getPageSize());
  67. List<BisInspSelArea> list = bisInspSelAreaDao.getAllSub(p);
  68. return new PageInfo<BisInspSelArea>(list);
  69. }
  70. @Override
  71. public List<Map<String, Object>> getAddvcdCacheByAdCode(String adCode, String adGrad) {
  72. return bisInspSelAreaDao.getAddvcdCacheByAdCode(adCode, adGrad);
  73. }
  74. @Override
  75. public PageInfo<AttRsBase> getResByGroup(InGroupResParam inGroupResParam) {
  76. if (inGroupResParam.getAdcd() != null) {
  77. //如果有多个行政区划编码,要根据逗号分隔截取
  78. if (inGroupResParam.getAdcd().contains(SplitValue.DOUHAO_SPLIT)) {
  79. StringBuilder stringBuffer = new StringBuilder();
  80. String[] split = inGroupResParam.getAdcd().split(SplitValue.DOUHAO_SPLIT);
  81. //拼接sql,对多个截取后的行政区划进行模糊查询
  82. for (String s : split) {
  83. String subAd = AdLevelUtil.SubAd(s).get(SplitValue.SUBAD).toString();
  84. stringBuffer.append(subAd);
  85. stringBuffer.append("%");
  86. stringBuffer.append("' OR ADM_DIV LIKE '");
  87. }
  88. //将最后的“ OR ADM_DIV LIKE ”截掉
  89. String substring = stringBuffer.substring(0, stringBuffer.length() - 18);
  90. substring = "(ADM_DIV LIKE '" + substring + ")";
  91. inGroupResParam.setAdcd(substring);
  92. } else {
  93. String subAd = AdLevelUtil.SubAd(inGroupResParam.getAdcd()).get(SplitValue.SUBAD).toString();
  94. if (subAd.equals("__")) {
  95. subAd = "ADM_DIV LIKE '" + inGroupResParam.getProvince() + "%'";
  96. } else {
  97. subAd = "ADM_DIV LIKE '" + subAd + "%'";
  98. }
  99. inGroupResParam.setAdcd(subAd);
  100. }
  101. }
  102. PageHelper.startPage(inGroupResParam.getPageNum(), inGroupResParam.getPageSize());
  103. List<AttRsBase> attGrwBaseList = this.bisInspSelAreaDao.getResByGroup(inGroupResParam);
  104. return new PageInfo<>(attGrwBaseList);
  105. }
  106. @Override
  107. public int deleteByGroupId(String id, String adCode, String orgId) {
  108. return this.bisInspSelAreaDao.deleteByGroupId(id, adCode, orgId);
  109. }
  110. @Override
  111. public List<Map<String, Object>> getAreaByGroup(String id, String ad, String adName, String adCode, String province) {
  112. if ("000000000000".equals(adCode)) {
  113. List<Map<String, Object>> list = new ArrayList<>();
  114. if (StringUtils.isNotBlank(province)) {
  115. ad = "";
  116. Map<String, Object> params = new HashMap<>(5);
  117. AttAdXBase attAdXBase = attAdXBaseDao.get(province);
  118. params.put("AD_CODE", province);
  119. params.put("AD_NAME", attAdXBase.getAdName());
  120. params.put("AD_GRAD", attAdXBase.getAdGrad());
  121. list.add(params);
  122. }
  123. list.addAll(this.bisInspSelAreaDao.getAreaByGroup(id, ad, adName, adCode, province));
  124. return list;
  125. } else {
  126. return this.bisInspSelAreaDao.getAreaByAdCode(adCode, adName);
  127. }
  128. }
  129. @Override
  130. public List<Map<String, Object>> getOptionalArea(String id, String ad, String adName, String adCode, String orgId) {
  131. String batchId = id.substring(0, 9);
  132. List<Map<String, Object>> areaList = bisInspSelAreaDao.getOptionalArea(id, ad, adName, adCode, orgId);
  133. if (CollectionUtils.isNotEmpty(areaList)) {
  134. areaList.forEach(area -> {
  135. String ac = MapUtils.getString(area, "AD_CODE");
  136. List<Map<String, String>> pnmList = bisInspSelAreaDao.getPnmByBatchAndAdCode(batchId, ac);
  137. area.put("GROUPS", pnmList);
  138. });
  139. }
  140. return areaList;
  141. }
  142. @Override
  143. public List<Map<String, Object>> getPersByArea(String adCode, String orgId) {
  144. return bisInspSelAreaDao.getPersByArea(adCode, orgId);
  145. }
  146. public BisInspSelAreaServiceImpl(BisInspSelAreaDao bisInspSelAreaDao) {
  147. super(bisInspSelAreaDao);
  148. this.bisInspSelAreaDao = bisInspSelAreaDao;
  149. }
  150. @Override
  151. public PageInfo<Map<String, Object>> getPawpByArea(BisInspSelAreaParam p) {
  152. PageHelper.startPage(p.getPageNum(), p.getPageSize());
  153. PageHelper.orderBy(p.getOrderBy());
  154. List<Map<String, Object>> list = bisInspSelAreaDao.getResByArea(p);
  155. return new PageInfo<Map<String, Object>>(list);
  156. }
  157. @Override
  158. public int deleteAreaData(String id, String province) {
  159. BisInspSelArea area = bisInspSelAreaDao.get(id);
  160. if (area == null) {
  161. return 0;
  162. }
  163. // 删除区域
  164. bisInspSelAreaDao.delete(id);
  165. // 删除区域下的对象以及所有数据
  166. String objType = String.valueOf(Integer.valueOf(area.getId().substring(0, 3)));
  167. PagePersObjParam pagePersObjParam = new PagePersObjParam();
  168. pagePersObjParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(area.getAdCode()).get(SplitValue.SUBAD)));
  169. if (province.length() == 12) {
  170. pagePersObjParam.setProvince(province.substring(0, 2));
  171. }
  172. pagePersObjParam.setObjType(objType);
  173. pagePersObjParam.setIsAll("1");
  174. pagePersObjParam.setInspGroupId(area.getId());
  175. List list = bisInspObjService.getObjListByTypeAndAdCode(pagePersObjParam);
  176. if (list != null && list.size() > 0) {
  177. for (Object obj : list) {
  178. try {
  179. Field field = obj.getClass().getDeclaredField("objId");
  180. field.setAccessible(true);
  181. String objId = (String) field.get(obj);
  182. if (StringUtils.isBlank(objId)) {
  183. continue;
  184. }
  185. supervisionPlanService.cleanObjDataByObjId(objType, objId);
  186. } catch (Exception e) {
  187. e.printStackTrace();
  188. }
  189. }
  190. }
  191. return 0;
  192. }
  193. }