f40d2a8f66e6c4f8e30bd27992e64153a7d36730.svn-base 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. package cn.com.goldenwater.dcproj.service.impl.rssfdr;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
  4. import cn.com.goldenwater.dcproj.constValue.SplitValue;
  5. import cn.com.goldenwater.dcproj.constValue.StateEnum;
  6. import cn.com.goldenwater.dcproj.dao.*;
  7. import cn.com.goldenwater.dcproj.dto.BisInspRssfdrRgstrDto;
  8. import cn.com.goldenwater.dcproj.dto.BisNewDcuserRelVillDto;
  9. import cn.com.goldenwater.dcproj.model.AttRsBase;
  10. import cn.com.goldenwater.dcproj.model.BisInspAllObj;
  11. import cn.com.goldenwater.dcproj.model.BisInspRssfdrRgstr;
  12. import cn.com.goldenwater.dcproj.model.BisZhejiangDcuserRelVill;
  13. import cn.com.goldenwater.dcproj.param.*;
  14. import cn.com.goldenwater.dcproj.service.BisInspObjStrategy;
  15. import cn.com.goldenwater.dcproj.service.BisInspRssfdrRgstrService;
  16. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  17. import cn.com.goldenwater.id.util.UuidUtil;
  18. import com.github.pagehelper.PageHelper;
  19. import com.github.pagehelper.PageInfo;
  20. import org.apache.commons.collections.CollectionUtils;
  21. import org.apache.commons.lang3.StringUtils;
  22. import org.springframework.beans.BeanUtils;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.stereotype.Service;
  25. import org.springframework.transaction.annotation.Transactional;
  26. import javax.servlet.http.HttpServletResponse;
  27. import java.util.ArrayList;
  28. import java.util.Date;
  29. import java.util.List;
  30. /**
  31. * @author lune
  32. * @date 2020-9-11
  33. */
  34. @Service
  35. @Transactional(rollbackFor = Exception.class)
  36. public class BisInspRssfdrRgstrServiceImpl extends AbstractCrudService<BisInspRssfdrRgstr, BisInspRssfdrRgstrParam> implements BisInspRssfdrRgstrService, BisInspObjStrategy {
  37. @Autowired
  38. private BisInspRssfdrRgstrDao bisInspRssfdrRgstrDao;
  39. @Autowired
  40. private BisInspPblmDao bisInspPblmDao;
  41. @Autowired
  42. private BisInspAllObjDao bisInspAllObjDao;
  43. @Autowired
  44. private AttRsBaseDao attRsBaseDao;
  45. @Autowired
  46. private BisInspRssfdrRgstrBuildDao bisInspRssfdrRgstrBuildDao;
  47. @Autowired
  48. private BisInspRssfdrRgstrImplmtDao bisInspRssfdrRgstrImplmtDao;
  49. public BisInspRssfdrRgstrServiceImpl(BisInspRssfdrRgstrDao bisInspRssfdrRgstrDao) {
  50. super(bisInspRssfdrRgstrDao);
  51. this.bisInspRssfdrRgstrDao = bisInspRssfdrRgstrDao;
  52. }
  53. @Override
  54. public void insertObj(BisInspAllObj bisInspAllObj, String persId) {
  55. AttRsBase base = attRsBaseDao.get(bisInspAllObj.getCode());
  56. BisInspRssfdrRgstr rgstr = new BisInspRssfdrRgstr();
  57. BeanUtils.copyProperties(base, rgstr);
  58. rgstr.setId(UuidUtil.uuid());
  59. rgstr.setObjId(bisInspAllObj.getObjId());
  60. rgstr.setRsCode(bisInspAllObj.getCode());
  61. rgstr.setRsName(bisInspAllObj.getNm());
  62. rgstr.setAdCode(base.getAdmDiv());
  63. rgstr.setAdName(base.getLocation());
  64. rgstr.setGdX(Double.valueOf(base.getCenterXGd() == null ? "0" : base.getCenterXGd()));
  65. rgstr.setGdY(Double.valueOf(base.getCenterYGd() == null ? "0" : base.getCenterYGd()));
  66. rgstr.setAdCode(base.getAdmDiv());
  67. rgstr.setAdName(base.getLocation());
  68. rgstr.setAddr(base.getRsLoc());
  69. rgstr.setResCreateTime(base.getCompDate());
  70. rgstr.setDamType(base.getDamType());
  71. rgstr.setDamRegCode(base.getRegCode());
  72. rgstr.setState(StateEnum.NOWASTSTATE.getKey());
  73. rgstr.setSfdrState(StateEnum.NOWASTSTATE.getKey());
  74. rgstr.setIntm(new Date());
  75. rgstr.setUptm(new Date());
  76. bisInspRssfdrRgstrDao.insert(rgstr);
  77. }
  78. @Override
  79. public String getType() {
  80. return BisInspEnum.RSSFDR.getValue();
  81. }
  82. @Override
  83. public void cleanObjData(String objId) {
  84. BisInspRssfdrRgstrParam rgstrParam = new BisInspRssfdrRgstrParam();
  85. rgstrParam.setObjId(objId);
  86. List<BisInspRssfdrRgstr> rgstrList = bisInspRssfdrRgstrDao.findList(rgstrParam);
  87. if (CollectionUtils.isNotEmpty(rgstrList)) {
  88. String id = rgstrList.get(0).getId();
  89. //删除问题
  90. BisInspPblmParam bisInspPblmParam = new BisInspPblmParam();
  91. bisInspPblmParam.setObjId(objId);
  92. bisInspPblmParam.setObjType(BisInspEnum.WINTU.getValue());
  93. this.bisInspPblmDao.deleteBy(bisInspPblmParam);
  94. //删除对象名录表
  95. BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam();
  96. bisInspAllObjParam.setObjId(objId);
  97. this.bisInspAllObjDao.deleteBy(bisInspAllObjParam);
  98. BisInspRssfdrRgstrBuildParam buildParam = new BisInspRssfdrRgstrBuildParam();
  99. buildParam.setRgstrId(id);
  100. bisInspRssfdrRgstrBuildDao.deleteBy(buildParam);
  101. BisInspRssfdrRgstrImplmtParam implmtParam = new BisInspRssfdrRgstrImplmtParam();
  102. implmtParam.setRgstrId(id);
  103. bisInspRssfdrRgstrImplmtDao.deleteBy(implmtParam);
  104. bisInspRssfdrRgstrDao.delete(id);
  105. }
  106. }
  107. public String getAdCode(String regid) {
  108. BisInspRssfdrRgstr rgstr = bisInspRssfdrRgstrDao.get(regid);
  109. if (rgstr != null && StringUtils.isNotBlank(rgstr.getAdCode())) {
  110. return rgstr.getAdCode().substring(0, 2);
  111. }
  112. return null;
  113. }
  114. @Override
  115. public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) {
  116. return this.findRssfdrPage(typeParam);
  117. }
  118. @Override
  119. public Object findObjListByType(TypeParam typeParam) {
  120. List<BisInspRssfdrRgstrDto> list = bisInspRssfdrRgstrDao.findRssfdrList(typeParam);
  121. if (list.size() > 0) {
  122. for (BisInspRssfdrRgstrDto rgstrDto : list) {
  123. String adFullName = rgstrDto.getAdName();
  124. if (StringUtils.isBlank(adFullName)) {
  125. continue;
  126. }
  127. if (adFullName.contains(SplitValue.HENG_SPLIT)) {
  128. String[] split = adFullName.split(SplitValue.HENG_SPLIT);
  129. if (split.length == 3) {
  130. rgstrDto.setProvince(split[0]);
  131. rgstrDto.setCity(split[1]);
  132. rgstrDto.setCountry(split[2]);
  133. }
  134. if (split.length == 2) {
  135. rgstrDto.setProvince(split[0]);
  136. rgstrDto.setCity(split[1]);
  137. rgstrDto.setCountry("");
  138. }
  139. } else {
  140. rgstrDto.setProvince(adFullName);
  141. }
  142. }
  143. }
  144. return list;
  145. }
  146. @Override
  147. public PageInfo<BisInspRssfdrRgstrDto> findRssfdrPage(TypeParam param) {
  148. if (StringUtils.isNotBlank(param.getAdCode())) {
  149. param.setAdCode(String.valueOf(AdLevelUtil.SubAd(param.getAdCode()).get(SplitValue.SUBAD)));
  150. }
  151. if (StringUtils.isNotBlank(param.getAdCodes())) {
  152. param.setAdCodes(AdLevelUtil.getListAddvcd(param.getAdCodes()));
  153. }
  154. PageHelper.startPage(param);
  155. List<BisInspRssfdrRgstrDto> list = bisInspRssfdrRgstrDao.findRssfdrList(param);
  156. if (list.size() > 0) {
  157. for (BisInspRssfdrRgstrDto rgstrDto : list) {
  158. String adFullName = rgstrDto.getAdName();
  159. if (StringUtils.isBlank(adFullName)) {
  160. continue;
  161. }
  162. if (adFullName.contains(SplitValue.HENG_SPLIT)) {
  163. String[] split = adFullName.split(SplitValue.HENG_SPLIT);
  164. if (split.length == 3) {
  165. rgstrDto.setProvince(split[0]);
  166. rgstrDto.setCity(split[1]);
  167. rgstrDto.setCountry(split[2]);
  168. }
  169. if (split.length == 2) {
  170. rgstrDto.setProvince(split[0]);
  171. rgstrDto.setCity(split[1]);
  172. rgstrDto.setCountry("");
  173. }
  174. } else {
  175. rgstrDto.setProvince(adFullName);
  176. }
  177. }
  178. }
  179. return new PageInfo<>(list);
  180. }
  181. @Override
  182. public List<BisNewDcuserRelVillDto> findZhenListByType(String adCode, String regstrId, String type) {
  183. List<BisZhejiangDcuserRelVill> dcuserRelVillList = bisInspRssfdrRgstrDao.findCunListByType(adCode, regstrId, type);
  184. List<String> zhenList = new ArrayList<>();
  185. for (BisZhejiangDcuserRelVill bisZhejiangDcuserRelVill : dcuserRelVillList) {
  186. String townName = bisZhejiangDcuserRelVill.getTownName();
  187. if (!zhenList.contains(townName)) {
  188. zhenList.add(townName);
  189. }
  190. }
  191. List<BisNewDcuserRelVillDto> dcuserRelVillDtos = new ArrayList<>();
  192. for (int i = 0; i < zhenList.size(); i++) {
  193. BisNewDcuserRelVillDto dcuserRelVillDto = new BisNewDcuserRelVillDto();
  194. List<BisZhejiangDcuserRelVill> cunList = new ArrayList<>();
  195. String townCode = "";
  196. for (int j = 0; j < dcuserRelVillList.size(); j++) {
  197. if (zhenList.get(i).equals(dcuserRelVillList.get(j).getTownName())) {
  198. cunList.add(dcuserRelVillList.get(j));
  199. townCode = dcuserRelVillList.get(j).getAdCode();
  200. townCode = townCode.substring(0, townCode.length() - 3);
  201. }
  202. }
  203. dcuserRelVillDto.setTownCode(townCode);
  204. dcuserRelVillDto.setTownName(zhenList.get(i));
  205. dcuserRelVillDto.setDcuserRelVilles(cunList);
  206. dcuserRelVillDtos.add(dcuserRelVillDto);
  207. }
  208. return dcuserRelVillDtos;
  209. }
  210. }