ee015d798ea6cb0bd32edf9dd040b7c0cba012be.svn-base 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. package cn.com.goldenwater.dcproj.service.impl.offline;
  2. import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
  3. import cn.com.goldenwater.dcproj.dao.*;
  4. import cn.com.goldenwater.dcproj.model.*;
  5. import cn.com.goldenwater.dcproj.param.*;
  6. import cn.com.goldenwater.dcproj.service.GwComFileService;
  7. import cn.com.goldenwater.dcproj.service.SupervisionPlanService;
  8. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  9. import cn.com.goldenwater.id.util.UuidUtil;
  10. import com.fasterxml.jackson.databind.DeserializationFeature;
  11. import com.fasterxml.jackson.databind.ObjectMapper;
  12. import org.apache.commons.lang3.StringUtils;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.beans.factory.annotation.Value;
  15. import org.springframework.stereotype.Service;
  16. import org.springframework.transaction.annotation.Transactional;
  17. import java.io.IOException;
  18. import java.text.SimpleDateFormat;
  19. import java.util.ArrayList;
  20. import java.util.Date;
  21. import java.util.List;
  22. /**
  23. * 水源地离线填报
  24. *
  25. * @author lhc
  26. * @date 2021/07/16 10:56
  27. */
  28. @Service
  29. @Transactional
  30. public class BisInspOffLineWrmProcess extends BisInspOffLineProcess {
  31. @Autowired
  32. BisInspAllObjDao bisInspAllObjDao;
  33. @Autowired
  34. BisInspPblmDao bisInspPblmDao;//督查问题
  35. @Autowired
  36. BisInspWrmRgstrDao bisInspWrmRgstrDao;
  37. @Autowired
  38. BisInspWrmWtuntPblmDao bisInspWrmWtuntPblmDao;
  39. @Autowired
  40. BisInspWrmRgstrWintDao bisInspWrmRgstrWintDao;
  41. @Autowired
  42. BisInspWrmRgstrMacowiagDao bisInspWrmRgstrMacowiagDao;
  43. @Autowired
  44. AttAdBaseDao attAdBaseDao;
  45. @Override
  46. public BisInspOffLineRet process(BisInspOffLineObj bisInspOffLineObj, String fileDir) throws IOException {
  47. BisInspOffLineRet bisInspOffLineRet = new BisInspOffLineRet();
  48. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  49. ObjectMapper om = new ObjectMapper();
  50. om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
  51. //解析水资源填报信息
  52. BisInspOffLineWrmRgeister bisInspOffLineWrmRgeister = om.readValue(bisInspOffLineObj.getRegister(), BisInspOffLineWrmRgeister.class);
  53. //解析水源地对象
  54. if (bisInspOffLineObj.getBase() != null) {
  55. String objId = UuidUtil.uuid();
  56. String groupId = bisInspOffLineObj.getGroupId();
  57. BisInspWrmRgstr bisInspWrmRgstr;
  58. String regId = objId;
  59. String persId = bisInspOffLineObj.getPersId();
  60. bisInspWrmRgstr = om.readValue(bisInspOffLineObj.getBase(), BisInspWrmRgstr.class);
  61. if (StringUtils.isBlank(bisInspWrmRgstr.getRgstrId())) {
  62. insertBisInspAllObj(bisInspOffLineObj, groupId, objId, bisInspWrmRgstr);
  63. bisInspWrmRgstr.setRgstrId(regId);
  64. bisInspWrmRgstr.setObjId(objId);
  65. bisInspWrmRgstr.setId(regId);
  66. }
  67. insertWrmRgstr(groupId, objId, persId, regId, bisInspWrmRgstr);
  68. //bisInspWrmRgstr.setRgstrId(regId);
  69. bisInspWrmRgstr.setId(bisInspWrmRgstr.getRgstrId());
  70. // bisInspWrmRgstr.setObjId(objId);
  71. regId = bisInspWrmRgstr.getRgstrId();
  72. objId = bisInspWrmRgstr.getObjId();
  73. //行政区取用水管控及地下水监管情况
  74. insertMacowiag(bisInspOffLineWrmRgeister, regId, persId, bisInspWrmRgstr);
  75. //取水口取水监管情况检查表
  76. //insertWint(bisInspOffLineWrmRgeister, regId, persId, bisInspWrmRgstr);
  77. //2019年水资源管理和节约用水监督检查发现问题问题清单
  78. insertWintPblm(bisInspOffLineWrmRgeister, regId, persId, bisInspWrmRgstr);
  79. //更新督查 字表状态
  80. bisInspWrmRgstrDao.update(bisInspWrmRgstr);
  81. bisInspOffLineRet.setObjId(objId);
  82. bisInspOffLineRet.setRegId(regId);
  83. }
  84. return bisInspOffLineRet;
  85. }
  86. /**
  87. * 添加到督查任务
  88. *
  89. * @param groupId
  90. * @param objId
  91. * @param attSwhsBase
  92. */
  93. public void insertBisInspAllObj(BisInspOffLineObj bisInspOffLineObj, String groupId, String objId, BisInspWrmRgstr bisInspWrmRgstr) {
  94. BisInspAllObj bisInspAllObj = new BisInspAllObj();
  95. bisInspAllObj.setId(groupId);
  96. bisInspAllObj.setObjId(objId);
  97. bisInspAllObj.setNm(bisInspWrmRgstr.getAdName());
  98. bisInspAllObj.setCode(bisInspWrmRgstr.getAdFullName());//非空字段
  99. bisInspAllObj.setPtype("32");
  100. bisInspAllObj.setOrgId(bisInspOffLineObj.getOrgId());
  101. bisInspAllObj.setAdCode(bisInspOffLineObj.getProvince());
  102. bisInspAllObj.setLgtd(bisInspWrmRgstr.getGdX());
  103. bisInspAllObj.setLttd(bisInspWrmRgstr.getGdY());
  104. bisInspAllObj.setLgtdpc(bisInspWrmRgstr.getCenterX());
  105. bisInspAllObj.setLttdpc(bisInspWrmRgstr.getCenterY());
  106. bisInspAllObj.setObjAdCode(bisInspWrmRgstr.getAdCode());
  107. bisInspAllObjDao.insert(bisInspAllObj);
  108. }
  109. /**
  110. * 插入登记表信息
  111. *
  112. * @param bisInspOffLineObj
  113. * @param objId
  114. * @param om
  115. * @param regId
  116. * @param bisInspSwhsRgstr
  117. * @throws IOException
  118. */
  119. public void insertWrmRgstr(String groupId, String objId, String persId, String regId, BisInspWrmRgstr bisInspWrmRgstr) throws IOException {
  120. BisInspWrmRgstrParam bisInspWrmRgstrParam = new BisInspWrmRgstrParam();
  121. bisInspWrmRgstrParam.setId(bisInspWrmRgstr.getRgstrId());
  122. List<BisInspWrmRgstr> bisInspWrmRgstrs = bisInspWrmRgstrDao.findList(bisInspWrmRgstrParam);
  123. if (bisInspWrmRgstrs != null && bisInspWrmRgstrs.size() == 1) {
  124. bisInspWrmRgstr.setId(regId);
  125. bisInspWrmRgstr.setUptm(new Date());
  126. bisInspWrmRgstrDao.update(bisInspWrmRgstr);
  127. } else {
  128. bisInspWrmRgstr.setId(regId);
  129. bisInspWrmRgstr.setObjId(objId);
  130. bisInspWrmRgstr.setIntm(new Date());
  131. bisInspWrmRgstr.setUptm(new Date());
  132. bisInspWrmRgstrDao.insert(bisInspWrmRgstr);
  133. }
  134. }
  135. public void insertMacowiag(BisInspOffLineWrmRgeister bisInspOffLineWrmRgeister, String regId, String persId, BisInspWrmRgstr bisInspWrmRgstr) {
  136. //节水评价情况检查表
  137. BisInspWrmRgstrMacowiag bisInspWrmRgstrMacowiag = new BisInspWrmRgstrMacowiag();
  138. BisInspWrmRgstrMacowiagParam bisInspWrmRgstrMacowiagParam = new BisInspWrmRgstrMacowiagParam();
  139. bisInspWrmRgstrMacowiagParam.setRgstrId(regId);
  140. List<BisInspWrmRgstrMacowiag> bisInspWrmRgstrMacowiags = bisInspWrmRgstrMacowiagDao.findList(bisInspWrmRgstrMacowiagParam);
  141. if (bisInspWrmRgstrMacowiags.size() > 0) {
  142. //删除后重新插入
  143. bisInspWrmRgstrMacowiagDao.deleteBy(bisInspWrmRgstrMacowiagParam);
  144. }
  145. //添加新的检查附表
  146. bisInspWrmRgstrMacowiag = bisInspOffLineWrmRgeister.getBisInspWrmRgstrMacowiag();
  147. bisInspWrmRgstrMacowiag.setId(UuidUtil.uuid());
  148. bisInspWrmRgstrMacowiag.setRgstrId(regId);
  149. bisInspWrmRgstrMacowiag.setUptm(new Date());
  150. bisInspWrmRgstrMacowiag.setObjId(bisInspWrmRgstr.getObjId());
  151. bisInspWrmRgstrMacowiagDao.insert(bisInspWrmRgstrMacowiag);
  152. }
  153. public void insertWint(BisInspOffLineWrmRgeister bisInspOffLineWrmRgeister, String regId, String persId, BisInspWrmRgstr bisInspWrmRgstr) {
  154. //节水评价情况检查表
  155. BisInspWrmRgstrWint bisInspWrmRgstrWint;
  156. BisInspWrmRgstrWintParam bisInspWrmRgstrWintParam = new BisInspWrmRgstrWintParam();
  157. bisInspWrmRgstrWintParam.setRgstrId(regId);
  158. List<BisInspWrmRgstrWint> bisInspWrmRgstrWints = bisInspWrmRgstrWintDao.findList(bisInspWrmRgstrWintParam);
  159. bisInspWrmRgstrWint = bisInspOffLineWrmRgeister.getBisInspWrmRgstrWint();
  160. if (null != bisInspWrmRgstrWints && bisInspWrmRgstrWints.size() > 0) {
  161. bisInspWrmRgstrWintDao.deleteBy(bisInspWrmRgstrWintParam);
  162. }
  163. bisInspWrmRgstrWint = bisInspOffLineWrmRgeister.getBisInspWrmRgstrWint();
  164. if (null == bisInspWrmRgstrWint) {
  165. bisInspWrmRgstrWint = new BisInspWrmRgstrWint();
  166. bisInspWrmRgstrWint.setIntm(new Date());
  167. bisInspWrmRgstrWint.setUptm(new Date());
  168. bisInspWrmRgstrWint.setPersId(persId);
  169. }
  170. bisInspWrmRgstrWint.setId(UuidUtil.uuid());
  171. bisInspWrmRgstrWint.setRgstrId(regId);
  172. bisInspWrmRgstrWintDao.insert(bisInspWrmRgstrWint);
  173. }
  174. public void insertWintPblm(BisInspOffLineWrmRgeister bisInspOffLineWrmRgeister, String regId, String persId, BisInspWrmRgstr bisInspWrmRgstr) {
  175. //节水评价情况检查表
  176. List<BisInspWrmWtuntPblm> bisInspWrmWtuntPblms;
  177. if (bisInspOffLineWrmRgeister.getBisInspWrmWtuntPblms().size() > 0) {
  178. bisInspWrmWtuntPblms = bisInspOffLineWrmRgeister.getBisInspWrmWtuntPblms();
  179. for (BisInspWrmWtuntPblm bisInspWrmWtuntPblm : bisInspWrmWtuntPblms) {
  180. bisInspWrmWtuntPblm.setId(UuidUtil.uuid());
  181. bisInspWrmWtuntPblm.setRgstrId(regId);
  182. bisInspWrmWtuntPblmDao.insert(bisInspWrmWtuntPblm);
  183. bisInspWrmRgstr.setWintStat("2");
  184. }
  185. }
  186. }
  187. @Override
  188. public BisInspOffLineRetBase getBaseInfo(BisInspOffLine bisInspOffLine) {
  189. BisInspOffLineRetBase bisInspOffLineRetBase = new BisInspOffLineRetBase();
  190. AttAdBaseParam attAdBaseParam = new AttAdBaseParam();
  191. attAdBaseParam.setAdName(bisInspOffLine.getName());
  192. attAdBaseParam.setAdCode(AdLevelUtil.getAddvcd(bisInspOffLine.getAddvcd()));
  193. bisInspOffLineRetBase.setBase(attAdBaseDao.findList(attAdBaseParam));
  194. //判断登记表是否有重复对象
  195. List<BisInspWrmRgstr> bisInspWrmRgstrs = bisInspWrmRgstrDao.getWrmByIdNm(bisInspOffLine.getGroupId(), bisInspOffLine.getName());
  196. if (null != bisInspWrmRgstrs && bisInspWrmRgstrs.size() > 0) {
  197. bisInspOffLineRetBase.setRepeat(true);
  198. bisInspOffLineRetBase.setRepeatList(bisInspWrmRgstrs);
  199. } else {
  200. bisInspOffLineRetBase.setRepeat(false);
  201. }
  202. return bisInspOffLineRetBase;
  203. }
  204. }