83c97a6aaf91f793252b264f8ae1edc0ec2033e2.svn-base 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  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.AttWagaBaseParam;
  6. import cn.com.goldenwater.dcproj.param.BisInspAllObjParam;
  7. import cn.com.goldenwater.dcproj.param.BisInspWagaBaseParam;
  8. import cn.com.goldenwater.dcproj.service.GwComFileService;
  9. import cn.com.goldenwater.dcproj.service.SupervisionPlanService;
  10. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  11. import cn.com.goldenwater.id.util.UuidUtil;
  12. import com.fasterxml.jackson.databind.DeserializationFeature;
  13. import com.fasterxml.jackson.databind.ObjectMapper;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.beans.factory.annotation.Value;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import java.io.IOException;
  20. import java.text.SimpleDateFormat;
  21. import java.util.Date;
  22. import java.util.List;
  23. /**
  24. * 水闸离线填报
  25. *
  26. * @author lhc
  27. * @date 2019/11/22 10:32
  28. */
  29. @Service
  30. @Transactional
  31. public class BisInspOffLineWagaProcess extends BisInspOffLineProcess {
  32. @Autowired
  33. AttWagaBaseDao attWagaBaseDao;
  34. @Autowired
  35. AttWagaRgstrDao attWagaRgstrDao;
  36. @Autowired
  37. BisInspAllObjDao bisInspAllObjDao;
  38. @Autowired
  39. BisInspPblmDao bisInspPblmDao;//督查问题
  40. @Autowired
  41. BisInspWagaMrsCiDao bisInspWagaMrsCiDao;
  42. @Autowired
  43. BisInspWagaSafeManageDao bisInspWagaSafeManageDao;
  44. @Autowired
  45. BisInspWagaProenInfoDao bisInspWagaProenInfoDao;
  46. @Autowired
  47. BisInspWagaDmamInfoDao bisInspWagaDmamInfoDao;
  48. @Autowired
  49. BisInspWagaBaseDao bisInspWagaBaseDao;
  50. @Autowired
  51. private GwComFileService gwComFileService;//文件操作
  52. @Value("${getFile.prefix}")
  53. public String prefix;
  54. @Autowired
  55. SupervisionPlanService supervisionPlanService;
  56. @Override
  57. public BisInspOffLineRet process(BisInspOffLineObj bisInspOffLineObj, String fileDir) throws IOException {
  58. BisInspOffLineRet bisInspOffLineRet = new BisInspOffLineRet();
  59. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  60. ObjectMapper om = new ObjectMapper();
  61. om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
  62. //解析小水库填报信息
  63. BisInspOffLineWagaRgeister bisInspOffLineWagaRgeister = om.readValue(bisInspOffLineObj.getRegister(), BisInspOffLineWagaRgeister.class);
  64. //解析小水库基本信息对象
  65. if (bisInspOffLineObj.getBase() != null) {
  66. /* if (null == bisInspOffLineObj.getReplace() || bisInspOffLineObj.getReplace()) {
  67. delRgstrData(bisInspOffLineObj);
  68. }*/
  69. //添加到督查任务
  70. String objId = UuidUtil.uuid();
  71. String groupId = bisInspOffLineObj.getGroupId();
  72. AttWagaRgstr attWagaRgstr = new AttWagaRgstr();
  73. String regId = objId;
  74. String persId = bisInspOffLineObj.getPersId();
  75. AttWagaBase attWagaBase = om.readValue(bisInspOffLineObj.getBase(), AttWagaBase.class);
  76. BisInspOffLineWaga bisInspOffLineWaga = bisInspOffLineWagaRgeister.getBisInspOffLineWaga();
  77. //添加到督查任务
  78. if (null == bisInspOffLineWaga) {
  79. insertBisInspAllObj(bisInspOffLineObj, groupId, objId, attWagaBase);
  80. insertAttWagaRgstr(attWagaBase, groupId, objId, persId, regId, attWagaRgstr);
  81. } else {
  82. if (StringUtils.isNotBlank(bisInspOffLineWaga.getObjId()) && StringUtils.isNotBlank(bisInspOffLineWaga.getRegId())) {
  83. regId = bisInspOffLineWaga.getRegId();
  84. objId = bisInspOffLineWaga.getObjId();
  85. attWagaRgstr.setId(regId);
  86. attWagaRgstr.setObjId(objId);
  87. }
  88. }
  89. //插入水闸基本信息表
  90. insertAttWagaBase(bisInspOffLineWaga, bisInspOffLineWagaRgeister, regId, persId, attWagaRgstr);
  91. //水闸督查管理责任体系建设和落实情况
  92. insertWagaMrsCi(bisInspOffLineWagaRgeister, regId, persId, attWagaRgstr);
  93. //bisInspWagaSafeManage 水闸督查安全管理情况
  94. insertWagaSafeManage(bisInspOffLineWagaRgeister, regId, persId, attWagaRgstr);
  95. //水闸督查日常管理和维修养护情况
  96. insertWagaDmamInfo(bisInspOffLineWagaRgeister, regId, persId, attWagaRgstr);
  97. //水闸督查工程实体情况
  98. insertWagaProenInfo(bisInspOffLineWagaRgeister, regId, persId, attWagaRgstr);
  99. //更新督查 字表状态
  100. attWagaRgstrDao.update(attWagaRgstr);
  101. bisInspOffLineRet.setRegId(regId);
  102. bisInspOffLineObj.setOrgId(objId);
  103. }
  104. return bisInspOffLineRet;
  105. }
  106. /**
  107. * 删除任务及登记表信息
  108. *
  109. * @param groupId
  110. * @param nm
  111. */
  112. public void delRgstrData(BisInspOffLineObj bisInspOffLineObj) {
  113. //登记表查找重复数据,然后删除
  114. BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam();
  115. bisInspAllObjParam.setId(bisInspOffLineObj.getGroupId());
  116. bisInspAllObjParam.setNm(bisInspOffLineObj.getNm());
  117. List<BisInspAllObj> bisInspAllObjs = bisInspAllObjDao.findList(bisInspAllObjParam);
  118. for (BisInspAllObj bisInspAllObj : bisInspAllObjs) {
  119. //删除登记表
  120. //删除登记表关联的各个填报表数据
  121. supervisionPlanService.cleanObjDataByObjId(BisInspEnum.WAGA.getValue(), bisInspAllObj.getObjId());
  122. }
  123. }
  124. /**
  125. * 添加到督查任务
  126. *
  127. * @param groupId
  128. * @param objId
  129. * @param attWagaBase
  130. */
  131. public void insertBisInspAllObj(BisInspOffLineObj bisInspOffLineObj, String groupId, String objId, AttWagaBase attWagaBase) {
  132. BisInspAllObj bisInspAllObj = new BisInspAllObj();
  133. bisInspAllObj.setId(groupId);
  134. bisInspAllObj.setObjId(objId);
  135. bisInspAllObj.setNm(attWagaBase.getGateName());
  136. bisInspAllObj.setCode(attWagaBase.getObjCode());
  137. bisInspAllObj.setPtype("6");
  138. bisInspAllObj.setOrgId(bisInspOffLineObj.getOrgId());
  139. bisInspAllObj.setAdCode(bisInspOffLineObj.getProvince());
  140. bisInspAllObj.setLgtdpc(attWagaBase.getCenterX());
  141. bisInspAllObj.setLttdpc(attWagaBase.getCenterY());
  142. bisInspAllObj.setLgtd(attWagaBase.getGdX());
  143. bisInspAllObj.setLttd(attWagaBase.getGdY());
  144. bisInspAllObjDao.insert(bisInspAllObj);
  145. }
  146. /**
  147. * 插入登记表信息
  148. *
  149. * @param bisInspOffLineObj
  150. * @param objId
  151. * @param om
  152. * @param regId
  153. * @param attWagaRgstr
  154. * @throws IOException
  155. */
  156. public void insertAttWagaRgstr(AttWagaBase attWagaBase, String groupId, String objId, String persId, String regId, AttWagaRgstr attWagaRgstr) throws IOException {
  157. attWagaRgstr.setId(regId);
  158. attWagaRgstr.setObjId(objId);
  159. attWagaRgstr.setObjCode(attWagaBase.getObjCode());
  160. attWagaRgstr.setGateName(attWagaBase.getGateName());
  161. attWagaRgstr.setAdCode(attWagaBase.getAdCode());
  162. attWagaRgstr.setGateType(attWagaBase.getGateType());
  163. attWagaRgstr.setGateFlow(attWagaBase.getGateFlow());
  164. attWagaRgstr.setEngScal(attWagaBase.getEngScal());
  165. attWagaRgstr.setEngSta(attWagaBase.getEngSta());
  166. attWagaRgstr.setBuidTimeYear(attWagaBase.getBuidTimeYear());
  167. attWagaRgstr.setBuidTimeMon(attWagaBase.getBuidTimeMon());
  168. attWagaRgstr.setStaTimeYear(attWagaBase.getStaTimeYear());
  169. attWagaRgstr.setStaTimeMon(attWagaBase.getStaTimeMon());
  170. attWagaRgstr.setLocation(attWagaBase.getLocationCun());
  171. attWagaRgstr.setGateAdmName(attWagaBase.getGateAdmName());
  172. attWagaRgstr.setGateAdmOrg(attWagaBase.getGateAdmOrg());
  173. attWagaRgstr.setLocationXiang(attWagaBase.getLocationXiang());
  174. attWagaRgstr.setState("1");
  175. attWagaRgstr.setDataStat("0");
  176. attWagaRgstr.setPersId(persId);
  177. attWagaRgstr.setGroupId(groupId);
  178. attWagaRgstr.setCenterX(attWagaBase.getCenterX());
  179. attWagaRgstr.setCenterY(attWagaBase.getCenterY());
  180. attWagaRgstr.setGdX(attWagaBase.getGdX());
  181. attWagaRgstr.setGdY(attWagaBase.getGdY());
  182. attWagaRgstr.setIntm(new Date());
  183. attWagaRgstrDao.insert(attWagaRgstr);
  184. }
  185. public void insertAttWagaBase(BisInspOffLineWaga bisInspOffLineWaga, BisInspOffLineWagaRgeister bisInspOffLineWagaRgeister, String regId, String persId, AttWagaRgstr attWagaRgstr) {
  186. if (null != bisInspOffLineWaga) {
  187. if (bisInspOffLineWaga.getBase()) {
  188. //水闸督查基本信息
  189. BisInspWagaBase bisInspWagaBase = null;
  190. if (bisInspOffLineWagaRgeister.getBisInspWagaBase() != null) {
  191. //根据Regid获取ID
  192. BisInspWagaBaseParam bisInspWagaBaseParam = new BisInspWagaBaseParam();
  193. bisInspWagaBaseParam.setRgstrId(regId);
  194. List<BisInspWagaBase> bisInspWagaBases = bisInspWagaBaseDao.findList(bisInspWagaBaseParam);
  195. if (bisInspWagaBases.size() > 0) {
  196. bisInspWagaBase = bisInspOffLineWagaRgeister.getBisInspWagaBase();
  197. attWagaRgstr.setBaseStat(bisInspWagaBase.getDataStat());
  198. bisInspWagaBase.setUptm(new Date());
  199. bisInspWagaBase.setRgstrId(regId);
  200. bisInspWagaBase.setId(bisInspWagaBases.get(0).getId());
  201. bisInspWagaBaseDao.update(bisInspWagaBase);
  202. }
  203. }
  204. }
  205. } else {
  206. //水闸督查基本信息
  207. BisInspWagaBase bisInspWagaBase = new BisInspWagaBase();
  208. if (bisInspOffLineWagaRgeister.getBisInspWagaBase() != null) {
  209. bisInspWagaBase = bisInspOffLineWagaRgeister.getBisInspWagaBase();
  210. attWagaRgstr.setBaseStat(bisInspWagaBase.getDataStat());
  211. } else {
  212. attWagaRgstr.setBaseStat("1");
  213. }
  214. bisInspWagaBase.setId(UuidUtil.uuid());
  215. bisInspWagaBase.setRgstrId(regId);
  216. bisInspWagaBase.setIntm(new Date());
  217. bisInspWagaBase.setUptm(new Date());
  218. bisInspWagaBase.setDataStat("0");
  219. bisInspWagaBase.setRecPersId(persId);
  220. bisInspWagaBaseDao.insert(bisInspWagaBase);
  221. }
  222. }
  223. /**
  224. * 插入水闸督查管理责任体系建设和落实情况
  225. *
  226. * @param bisInspOffLineWagaRgeister
  227. * @param regId
  228. * @param bisInspOffLineObj
  229. * @param attWagaRgstr
  230. */
  231. public void insertWagaMrsCi(BisInspOffLineWagaRgeister bisInspOffLineWagaRgeister, String regId, String persId, AttWagaRgstr attWagaRgstr) {
  232. //水闸督查管理责任体系建设和落实情况
  233. BisInspWagaMrsCi bisInspWagaMrsCi = new BisInspWagaMrsCi();
  234. if (bisInspOffLineWagaRgeister.getBisInspWagaMrsCi() != null) {
  235. bisInspWagaMrsCi = bisInspOffLineWagaRgeister.getBisInspWagaMrsCi();
  236. bisInspWagaMrsCi.setId(UuidUtil.uuid());
  237. bisInspWagaMrsCi.setRgstrId(regId);
  238. bisInspWagaMrsCi.setIntm(new Date());
  239. bisInspWagaMrsCi.setUptm(new Date());
  240. bisInspWagaMrsCi.setDataStat("0");
  241. bisInspWagaMrsCi.setRecPersId(persId);
  242. bisInspWagaMrsCiDao.insert(bisInspWagaMrsCi);
  243. attWagaRgstr.setMrsCiStat("2");
  244. } else {
  245. bisInspWagaMrsCi.setId(UuidUtil.uuid());
  246. bisInspWagaMrsCi.setRgstrId(regId);
  247. bisInspWagaMrsCi.setIntm(new Date());
  248. bisInspWagaMrsCi.setUptm(new Date());
  249. bisInspWagaMrsCi.setDataStat("0");
  250. bisInspWagaMrsCi.setRecPersId(persId);
  251. bisInspWagaMrsCiDao.insert(bisInspWagaMrsCi);
  252. attWagaRgstr.setMrsCiStat("1");
  253. }
  254. }
  255. /**
  256. * 插入水闸督查安全管理情况
  257. *
  258. * @param bisInspOffLineWagaRgeister
  259. * @param regId
  260. * @param bisInspOffLineObj
  261. * @param attWagaRgstr
  262. */
  263. public void insertWagaSafeManage(BisInspOffLineWagaRgeister bisInspOffLineWagaRgeister, String regId, String persId, AttWagaRgstr attWagaRgstr) {
  264. BisInspWagaSafeManage bisInspWagaSafeManage = new BisInspWagaSafeManage();
  265. if (bisInspOffLineWagaRgeister.getBisInspWagaSafeManage() != null) {
  266. bisInspWagaSafeManage = bisInspOffLineWagaRgeister.getBisInspWagaSafeManage();
  267. bisInspWagaSafeManage.setId(UuidUtil.uuid());
  268. bisInspWagaSafeManage.setRgstrId(regId);
  269. bisInspWagaSafeManage.setIntm(new Date());
  270. bisInspWagaSafeManage.setUptm(new Date());
  271. bisInspWagaSafeManage.setRecPersId(persId);
  272. bisInspWagaSafeManage.setDataStat("0");
  273. bisInspWagaSafeManageDao.insert(bisInspWagaSafeManage);
  274. attWagaRgstr.setSafeStat("2");
  275. } else {
  276. bisInspWagaSafeManage.setId(UuidUtil.uuid());
  277. bisInspWagaSafeManage.setRgstrId(regId);
  278. bisInspWagaSafeManage.setIntm(new Date());
  279. bisInspWagaSafeManage.setUptm(new Date());
  280. bisInspWagaSafeManage.setDataStat("0");
  281. bisInspWagaSafeManage.setRecPersId(persId);
  282. bisInspWagaSafeManageDao.insert(bisInspWagaSafeManage);
  283. attWagaRgstr.setSafeStat("1");
  284. }
  285. }
  286. /**
  287. * 水闸督查日常管理和维修养护情况
  288. *
  289. * @param bisInspOffLineWagaRgeister
  290. * @param regId
  291. * @param bisInspOffLineObj
  292. * @param attWagaRgstr
  293. */
  294. public void insertWagaDmamInfo(BisInspOffLineWagaRgeister bisInspOffLineWagaRgeister, String regId, String persId, AttWagaRgstr attWagaRgstr) {
  295. BisInspWagaDmamInfo bisInspWagaDmamInfo = new BisInspWagaDmamInfo();
  296. if (bisInspOffLineWagaRgeister.getBisInspWagaDmamInfo() != null) {
  297. bisInspWagaDmamInfo = bisInspOffLineWagaRgeister.getBisInspWagaDmamInfo();
  298. bisInspWagaDmamInfo.setId(UuidUtil.uuid());
  299. bisInspWagaDmamInfo.setRgstrId(regId);
  300. bisInspWagaDmamInfo.setIntm(new Date());
  301. bisInspWagaDmamInfo.setUptm(new Date());
  302. bisInspWagaDmamInfo.setDataStat("0");
  303. bisInspWagaDmamInfo.setRecPersId(persId);
  304. bisInspWagaDmamInfoDao.insert(bisInspWagaDmamInfo);
  305. attWagaRgstr.setDmamStat("2");
  306. } else {
  307. bisInspWagaDmamInfo.setId(UuidUtil.uuid());
  308. bisInspWagaDmamInfo.setRgstrId(regId);
  309. bisInspWagaDmamInfo.setIntm(new Date());
  310. bisInspWagaDmamInfo.setUptm(new Date());
  311. bisInspWagaDmamInfo.setDataStat("0");
  312. bisInspWagaDmamInfo.setRecPersId(persId);
  313. bisInspWagaDmamInfoDao.insert(bisInspWagaDmamInfo);
  314. attWagaRgstr.setDmamStat("1");
  315. }
  316. }
  317. /**
  318. * 水闸督查工程实体情况
  319. *
  320. * @param bisInspOffLineWagaRgeister
  321. * @param regId
  322. * @param bisInspOffLineObj
  323. * @param attWagaRgstr
  324. */
  325. public void insertWagaProenInfo(BisInspOffLineWagaRgeister bisInspOffLineWagaRgeister, String regId, String persId, AttWagaRgstr attWagaRgstr) {
  326. BisInspWagaProenInfo bisInspWagaProenInfo = new BisInspWagaProenInfo();
  327. if (bisInspOffLineWagaRgeister.getBisInspWagaProenInfo() != null) {
  328. bisInspWagaProenInfo = bisInspOffLineWagaRgeister.getBisInspWagaProenInfo();
  329. bisInspWagaProenInfo.setId(UuidUtil.uuid());
  330. bisInspWagaProenInfo.setRgstrId(regId);
  331. bisInspWagaProenInfo.setIntm(new Date());
  332. bisInspWagaProenInfo.setUptm(new Date());
  333. bisInspWagaProenInfo.setDataStat("0");
  334. bisInspWagaProenInfo.setRecPersId(persId);
  335. bisInspWagaProenInfoDao.insert(bisInspWagaProenInfo);
  336. attWagaRgstr.setProenStat("2");
  337. } else {
  338. bisInspWagaProenInfo.setId(UuidUtil.uuid());
  339. bisInspWagaProenInfo.setRgstrId(regId);
  340. bisInspWagaProenInfo.setIntm(new Date());
  341. bisInspWagaProenInfo.setUptm(new Date());
  342. bisInspWagaProenInfo.setDataStat("0");
  343. bisInspWagaProenInfo.setRecPersId(persId);
  344. bisInspWagaProenInfoDao.insert(bisInspWagaProenInfo);
  345. attWagaRgstr.setProenStat("1");
  346. }
  347. }
  348. @Override
  349. public BisInspOffLineRetBase getBaseInfo(BisInspOffLine bisInspOffLine) {
  350. BisInspOffLineRetBase bisInspOffLineRetBase = new BisInspOffLineRetBase();
  351. AttWagaBaseParam attWagaBaseParam = new AttWagaBaseParam();
  352. attWagaBaseParam.setGateName(bisInspOffLine.getName());
  353. attWagaBaseParam.setAdCode(AdLevelUtil.getAddvcd(bisInspOffLine.getAddvcd()));
  354. bisInspOffLineRetBase.setBase(attWagaBaseDao.findList(attWagaBaseParam));
  355. return bisInspOffLineRetBase;
  356. }
  357. }