870433fb7ceec02f7ec309414875ab01f1cc42fb.svn-base 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  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.id.util.UuidUtil;
  9. import com.fasterxml.jackson.databind.DeserializationFeature;
  10. import com.fasterxml.jackson.databind.ObjectMapper;
  11. import org.apache.commons.lang3.StringUtils;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.beans.factory.annotation.Value;
  14. import org.springframework.stereotype.Service;
  15. import org.springframework.transaction.annotation.Transactional;
  16. import java.io.IOException;
  17. import java.text.SimpleDateFormat;
  18. import java.util.Date;
  19. import java.util.List;
  20. /**
  21. * 水源地离线填报
  22. *
  23. * @author zhangcheng
  24. * @date 2019/11/26 16:40
  25. */
  26. @Service
  27. @Transactional
  28. public class BisInspOffLineWiuqhProcess extends BisInspOffLineProcess {
  29. @Autowired
  30. BisInspAllObjDao bisInspAllObjDao;
  31. @Autowired
  32. BisInspPblmDao bisInspPblmDao;//督查问题
  33. @Autowired
  34. BisInspWiuqhRgstrDao bisInspWiuqhRgstrDao;
  35. @Autowired
  36. BisInspWiuqhFarmDao bisInspWiuqhFarmDao;
  37. @Autowired
  38. BisInspWiuqhWintDao bisInspWiuqhWintDao;
  39. @Autowired
  40. BisInspWiuqhHyistDao bisInspWiuqhHyistDao;
  41. @Autowired
  42. BisInspWiuqhIndusDao bisInspWiuqhIndusDao;
  43. @Autowired
  44. BisInspWiuqhPubwtsDao bisInspWiuqhPubwtsDao;
  45. @Autowired
  46. AttWiuqhBaseDao attWiuqhBaseDao;
  47. @Autowired
  48. private GwComFileService gwComFileService;//文件操作
  49. @Value("${getFile.prefix}")
  50. public String prefix;
  51. @Autowired
  52. SupervisionPlanService supervisionPlanService;
  53. @Autowired
  54. AttWintBaseBDao attWintBaseBDao;
  55. @Override
  56. public BisInspOffLineRet process(BisInspOffLineObj bisInspOffLineObj, String fileDir) throws IOException {
  57. BisInspOffLineRet bisInspOffLineRet = new BisInspOffLineRet();
  58. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  59. ObjectMapper om = new ObjectMapper();
  60. om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
  61. //解析水源地填报信息
  62. BisInspOffLineWiuqhRgeister bisInspOffLineSwhsRgeister = om.readValue(bisInspOffLineObj.getRegister(), BisInspOffLineWiuqhRgeister.class);
  63. //解析水源地对象
  64. if (bisInspOffLineObj.getBase() != null) {
  65. String objId = UuidUtil.uuid();
  66. String groupId = bisInspOffLineObj.getGroupId();
  67. BisInspWiuqhRgstr bisInspWiuqhRgstr = new BisInspWiuqhRgstr();
  68. String regId = objId;
  69. String persId = bisInspOffLineObj.getPersId();
  70. AttWiuqhBase attWiuqhBase = om.readValue(bisInspOffLineObj.getBase(), AttWiuqhBase.class);
  71. if (StringUtils.isBlank(attWiuqhBase.getRgstrId())) {
  72. insertBisInspAllObj(bisInspOffLineObj, groupId, objId, attWiuqhBase);
  73. insertWiuqhRgstr(attWiuqhBase, groupId, objId, persId, regId, bisInspWiuqhRgstr);
  74. bisInspWiuqhRgstr.setRgstrId(regId);
  75. bisInspWiuqhRgstr.setObjId(objId);
  76. } else {
  77. regId = attWiuqhBase.getRgstrId();
  78. objId = attWiuqhBase.getObjId();
  79. }
  80. //青海取水口取水监管情况检查表
  81. insertWiuqhWint(bisInspOffLineSwhsRgeister, regId, persId, bisInspWiuqhRgstr);
  82. //农业情况表-青海
  83. insertWiuqhFarm(bisInspOffLineSwhsRgeister, regId, persId, bisInspWiuqhRgstr);
  84. insertWiuqhIndus(bisInspOffLineSwhsRgeister, regId, persId, bisInspWiuqhRgstr);
  85. insertWiuqhHyist(bisInspOffLineSwhsRgeister, regId, persId, bisInspWiuqhRgstr);
  86. insertWiuqhPubwts(bisInspOffLineSwhsRgeister, regId, persId, bisInspWiuqhRgstr);
  87. //更新督查 字表状态
  88. bisInspWiuqhRgstrDao.update(bisInspWiuqhRgstr);
  89. bisInspOffLineRet.setObjId(objId);
  90. bisInspOffLineRet.setRegId(regId);
  91. }
  92. return bisInspOffLineRet;
  93. }
  94. /**
  95. * 删除任务及登记表信息
  96. *
  97. * @param groupId
  98. * @param nm
  99. */
  100. public void delRgstrData(BisInspOffLineObj bisInspOffLineObj) {
  101. //登记表查找重复数据,然后删除
  102. BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam();
  103. bisInspAllObjParam.setId(bisInspOffLineObj.getGroupId());
  104. bisInspAllObjParam.setNm(bisInspOffLineObj.getNm());
  105. List<BisInspAllObj> bisInspAllObjs = bisInspAllObjDao.findList(bisInspAllObjParam);
  106. for (BisInspAllObj bisInspAllObj : bisInspAllObjs) {
  107. //删除登记表
  108. //删除登记表关联的各个填报表数据
  109. supervisionPlanService.cleanObjDataByObjId(BisInspEnum.SWHS.getValue(), bisInspAllObj.getObjId());
  110. }
  111. }
  112. /**
  113. * 添加到督查任务
  114. *
  115. * @param groupId
  116. * @param objId
  117. * @param attSwhsBase
  118. */
  119. public void insertBisInspAllObj(BisInspOffLineObj bisInspOffLineObj, String groupId, String objId, AttWiuqhBase attWiuqhBase) {
  120. BisInspAllObj bisInspAllObj = new BisInspAllObj();
  121. bisInspAllObj.setId(groupId);
  122. bisInspAllObj.setObjId(objId);
  123. bisInspAllObj.setNm(attWiuqhBase.getNm());
  124. bisInspAllObj.setCode(attWiuqhBase.getId());//非空字段
  125. bisInspAllObj.setPtype("72");
  126. bisInspAllObj.setOrgId(bisInspOffLineObj.getOrgId());
  127. bisInspAllObj.setAdCode(bisInspOffLineObj.getProvince());
  128. bisInspAllObj.setLgtd(attWiuqhBase.getGdX());
  129. bisInspAllObj.setLttd(attWiuqhBase.getGdY());
  130. bisInspAllObj.setLgtdpc(attWiuqhBase.getCenterX());
  131. bisInspAllObj.setLttdpc(attWiuqhBase.getCenterY());
  132. bisInspAllObjDao.insert(bisInspAllObj);
  133. }
  134. /**
  135. * 插入登记表信息
  136. *
  137. * @param bisInspOffLineObj
  138. * @param objId
  139. * @param om
  140. * @param regId
  141. * @param bisInspSwhsRgstr
  142. * @throws IOException
  143. */
  144. public void insertWiuqhRgstr(AttWiuqhBase attWiuqhBase, String groupId, String objId, String persId, String regId, BisInspWiuqhRgstr bisInspWiuqhRgstr) throws IOException {
  145. bisInspWiuqhRgstr.setId(regId);
  146. bisInspWiuqhRgstr.setObjId(objId);
  147. bisInspWiuqhRgstr.setIntm(new Date());
  148. bisInspWiuqhRgstr.setUptm(new Date());
  149. bisInspWiuqhRgstr.setNm(attWiuqhBase.getNm());
  150. bisInspWiuqhRgstr.setAppDep(attWiuqhBase.getAppDep());
  151. bisInspWiuqhRgstr.setAppNo(attWiuqhBase.getAppNo());
  152. bisInspWiuqhRgstr.setLoc(attWiuqhBase.getLoc());
  153. bisInspWiuqhRgstr.setWtAppNo(attWiuqhBase.getWtAppNo());
  154. bisInspWiuqhRgstr.setWtEntm(attWiuqhBase.getWtEntm());
  155. bisInspWiuqhRgstr.setWtMsr(attWiuqhBase.getWtMsr());
  156. bisInspWiuqhRgstr.setWtTm(attWiuqhBase.getWtTm());
  157. bisInspWiuqhRgstr.setWtType(attWiuqhBase.getWtType());
  158. bisInspWiuqhRgstr.setWtUsr(attWiuqhBase.getWtUsr());
  159. //获取取水权人相关信息
  160. bisInspWiuqhRgstrDao.insert(bisInspWiuqhRgstr);
  161. }
  162. /**
  163. * 青海取水口取水监管情况检查表
  164. *
  165. * @param bisInspOffLineSwhsRgeister
  166. * @param regId
  167. * @param bisInspOffLineObj
  168. * @param bisInspSwhsRgstr
  169. */
  170. public void insertWiuqhWint(BisInspOffLineWiuqhRgeister bisInspOffLineSwhsRgeister, String regId, String persId, BisInspWiuqhRgstr bisInspWiuqhRgstr) {
  171. //青海取水口取水监管情况检查表
  172. if (bisInspOffLineSwhsRgeister.getBisInspWiuqhWint() != null) {
  173. List<BisInspWiuqhWint> bisInspWiuqhWints = bisInspOffLineSwhsRgeister.getBisInspWiuqhWint();
  174. List<AttWintBaseB> attWintBaseBS = bisInspOffLineSwhsRgeister.getAttWintBaseB();
  175. for (int i = 0; i < attWintBaseBS.size(); i++) {
  176. //循环插入取水口基本信息
  177. //修改取水口的ID
  178. AttWintBaseB attWintBaseB = attWintBaseBS.get(i);
  179. attWintBaseB.setId(UuidUtil.uuid());
  180. //根据行政区划生成取水口代码
  181. String adCode = attWintBaseB.getAdCode();
  182. String maxObjCode = "";
  183. if (StringUtils.isNotBlank(adCode)) {
  184. String objCode = attWintBaseBDao.getMaxObjCode(attWintBaseB.getAdCode());
  185. if (StringUtils.isBlank(objCode)) {
  186. maxObjCode = adCode + "0001";
  187. } else {
  188. Long a = Long.parseLong(objCode);
  189. a++;
  190. maxObjCode = String.valueOf(a);
  191. }
  192. }
  193. attWintBaseB.setWintCode(maxObjCode);
  194. attWintBaseBDao.insert(attWintBaseB);
  195. //插入登记表信息
  196. BisInspWiuqhWint bisInspWiuqhWint = bisInspWiuqhWints.get(i);
  197. bisInspWiuqhWint.setId(UuidUtil.uuid());
  198. bisInspWiuqhWint.setRgstrId(regId);
  199. bisInspWiuqhWint.setDataStat("0");
  200. //设置取水口信息
  201. bisInspWiuqhWint.setWintId(attWintBaseBS.get(i).getId());
  202. bisInspWiuqhWint.setWintCode(attWintBaseBS.get(i).getWintCode());
  203. bisInspWiuqhWint.setWintName(attWintBaseBS.get(i).getWintName());
  204. bisInspWiuqhWint.setStatus("2");
  205. bisInspWiuqhWintDao.insert(bisInspWiuqhWint);
  206. bisInspWiuqhRgstr.setState("2");
  207. }
  208. }
  209. }
  210. /**
  211. * 重要饮用水水源管理情况
  212. *
  213. * @param bisInspOffLineSwhsRgeister
  214. * @param regId
  215. * @param bisInspOffLineObj
  216. * @param bisInspSwhsRgstr
  217. */
  218. public void insertWiuqhFarm(BisInspOffLineWiuqhRgeister bisInspOffLineSwhsRgeister, String regId, String
  219. persId, BisInspWiuqhRgstr bisInspWiuqhRgstr) {
  220. //
  221. BisInspWiuqhFarm bisInspWiuqhFarm = new BisInspWiuqhFarm();
  222. BisInspWiuqhFarmParam bisInspWiuqhFarmParam = new BisInspWiuqhFarmParam();
  223. bisInspWiuqhFarmParam.setRgstrId(regId);
  224. bisInspWiuqhFarmDao.deleteBy(bisInspWiuqhFarmParam);
  225. if (bisInspOffLineSwhsRgeister.getBisInspWiuqhFarm() != null) {
  226. bisInspWiuqhFarm = bisInspOffLineSwhsRgeister.getBisInspWiuqhFarm();
  227. bisInspWiuqhFarm.setId(UuidUtil.uuid());
  228. bisInspWiuqhFarm.setRgstrId(regId);
  229. bisInspWiuqhFarm.setDataStat("0");
  230. bisInspWiuqhFarmDao.insert(bisInspWiuqhFarm);
  231. }
  232. bisInspWiuqhRgstr.setFarmState("2");
  233. }
  234. /**
  235. * 重要饮用水水源管理情况
  236. *
  237. * @param bisInspOffLineSwhsRgeister
  238. * @param regId
  239. * @param bisInspOffLineObj
  240. * @param bisInspSwhsRgstr
  241. */
  242. public void insertWiuqhIndus(BisInspOffLineWiuqhRgeister bisInspOffLineSwhsRgeister, String regId, String
  243. persId, BisInspWiuqhRgstr bisInspWiuqhRgstr) {
  244. //
  245. BisInspWiuqhIndus bisInspWiuqhIndus = new BisInspWiuqhIndus();
  246. BisInspWiuqhIndusParam bisInspWiuqhIndusParam = new BisInspWiuqhIndusParam();
  247. bisInspWiuqhIndusParam.setRgstrId(regId);
  248. bisInspWiuqhIndusDao.deleteBy(bisInspWiuqhIndusParam);
  249. if (bisInspOffLineSwhsRgeister.getBisInspWiuqhIndus() != null) {
  250. bisInspWiuqhIndus = bisInspOffLineSwhsRgeister.getBisInspWiuqhIndus();
  251. bisInspWiuqhIndus.setId(UuidUtil.uuid());
  252. bisInspWiuqhIndus.setRgstrId(regId);
  253. bisInspWiuqhIndus.setDataStat("0");
  254. bisInspWiuqhIndusDao.insert(bisInspWiuqhIndus);
  255. bisInspWiuqhRgstr.setIndusState("2");
  256. }
  257. }
  258. public void insertWiuqhHyist(BisInspOffLineWiuqhRgeister bisInspOffLineSwhsRgeister, String regId, String
  259. persId, BisInspWiuqhRgstr bisInspWiuqhRgstr) {
  260. //
  261. BisInspWiuqhHyist bisInspWiuqhHyist = new BisInspWiuqhHyist();
  262. BisInspWiuqhHyistParam bisInspWiuqhHyistParam = new BisInspWiuqhHyistParam();
  263. bisInspWiuqhHyistParam.setRgstrId(regId);
  264. bisInspWiuqhHyistDao.deleteBy(bisInspWiuqhHyistParam);
  265. if (bisInspOffLineSwhsRgeister.getBisInspWiuqhHyist() != null) {
  266. bisInspWiuqhHyist = bisInspOffLineSwhsRgeister.getBisInspWiuqhHyist();
  267. bisInspWiuqhHyist.setId(UuidUtil.uuid());
  268. bisInspWiuqhHyist.setRgstrId(regId);
  269. bisInspWiuqhHyist.setDataStat("0");
  270. bisInspWiuqhHyistDao.insert(bisInspWiuqhHyist);
  271. bisInspWiuqhRgstr.setIndusState("2");
  272. }
  273. }
  274. public void insertWiuqhPubwts(BisInspOffLineWiuqhRgeister bisInspOffLineSwhsRgeister, String regId, String
  275. persId, BisInspWiuqhRgstr bisInspWiuqhRgstr) {
  276. //
  277. BisInspWiuqhPubwts bisInspWiuqhPubwts = new BisInspWiuqhPubwts();
  278. BisInspWiuqhPubwtsParam bisInspWiuqhPubwtsParam = new BisInspWiuqhPubwtsParam();
  279. bisInspWiuqhPubwtsParam.setRgstrId(regId);
  280. bisInspWiuqhPubwtsDao.deleteBy(bisInspWiuqhPubwtsParam);
  281. if (bisInspOffLineSwhsRgeister.getBisInspWiuqhPubwts() != null) {
  282. bisInspWiuqhPubwts = bisInspOffLineSwhsRgeister.getBisInspWiuqhPubwts();
  283. bisInspWiuqhPubwts.setId(UuidUtil.uuid());
  284. bisInspWiuqhPubwts.setRgstrId(regId);
  285. bisInspWiuqhPubwts.setDataStat("0");
  286. bisInspWiuqhPubwtsDao.insert(bisInspWiuqhPubwts);
  287. bisInspWiuqhRgstr.setIndusState("2");
  288. }
  289. }
  290. @Override
  291. public BisInspOffLineRetBase getBaseInfo(BisInspOffLine bisInspOffLine) {
  292. BisInspOffLineRetBase bisInspOffLineRetBase = new BisInspOffLineRetBase();
  293. AttWiuqhBaseParam attWiuqhBaseParam = new AttWiuqhBaseParam();
  294. attWiuqhBaseParam.setNm(bisInspOffLine.getName());
  295. attWiuqhBaseParam.setAdCode(bisInspOffLine.getAddvcd());
  296. bisInspOffLineRetBase.setBase(attWiuqhBaseDao.findList(attWiuqhBaseParam));
  297. List<BisInspWiuqhRgstr> wiuqhByIdNm = bisInspWiuqhRgstrDao.getWiuqhByIdNm(bisInspOffLine.getGroupId(), bisInspOffLine.getName());
  298. if (null != wiuqhByIdNm && wiuqhByIdNm.size() > 0) {
  299. bisInspOffLineRetBase.setRepeat(true);
  300. bisInspOffLineRetBase.setRepeatList(wiuqhByIdNm);
  301. } else {
  302. bisInspOffLineRetBase.setRepeat(false);
  303. }
  304. return bisInspOffLineRetBase;
  305. }
  306. }