ae998ebbbfa17d1e91e4f0f8935b0007acbe49f3.svn-base 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576
  1. package cn.com.goldenwater.dcproj.service.impl.sap;
  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.dao.*;
  6. import cn.com.goldenwater.dcproj.dto.BisInspRgstrDto;
  7. import cn.com.goldenwater.dcproj.dto.BisInspWagaSapRgstrVo;
  8. import cn.com.goldenwater.dcproj.model.*;
  9. import cn.com.goldenwater.dcproj.param.*;
  10. import cn.com.goldenwater.dcproj.service.BisInspObjStrategy;
  11. import cn.com.goldenwater.dcproj.service.BisInspWagaSapRgstrService;
  12. import cn.com.goldenwater.dcproj.utils.*;
  13. import cn.com.goldenwater.dcproj.utils.impexcel.ExpAndImpUtil;
  14. import cn.com.goldenwater.id.util.UuidUtil;
  15. import com.alibaba.fastjson.JSONArray;
  16. import com.alibaba.fastjson.JSONObject;
  17. import com.github.pagehelper.PageHelper;
  18. import com.github.pagehelper.PageInfo;
  19. import org.apache.commons.collections.CollectionUtils;
  20. import org.apache.commons.lang3.StringUtils;
  21. import org.apache.http.HttpEntity;
  22. import org.apache.http.HttpResponse;
  23. import org.apache.http.client.HttpClient;
  24. import org.apache.http.client.methods.HttpPost;
  25. import org.apache.http.entity.StringEntity;
  26. import org.apache.http.util.EntityUtils;
  27. import org.springframework.beans.BeanUtils;
  28. import org.springframework.beans.factory.annotation.Autowired;
  29. import org.springframework.beans.factory.annotation.Value;
  30. import org.springframework.stereotype.Service;
  31. import org.springframework.transaction.annotation.Transactional;
  32. import javax.servlet.http.HttpServletResponse;
  33. import java.io.File;
  34. import java.text.SimpleDateFormat;
  35. import java.util.*;
  36. import java.util.stream.Collectors;
  37. import static cn.com.goldenwater.dcproj.utils.impexcel.field.ExcelFieldLists.bisInspRgstrArrays;
  38. /**
  39. * @author lune
  40. * @date 2020-5-19
  41. */
  42. @Service
  43. @Transactional
  44. public class BisInspWagaSapRgstrServiceImpl extends AbstractCrudService<BisInspWagaSapRgstr, BisInspWagaSapRgstrParam> implements BisInspWagaSapRgstrService, BisInspObjStrategy {
  45. @Autowired
  46. private BisInspWagaSapRgstrDao bisInspWagaSapRgstrDao;
  47. @Autowired
  48. private AttWagaSapBaseCrrctDao attWagaSapBaseCrrctDao;
  49. @Autowired
  50. private AttFscBaseDao attFscBaseDao;
  51. @Autowired
  52. private BisInspPblmDao bisInspPblmDao;
  53. @Autowired
  54. private BisInspAllObjDao bisInspAllObjDao;
  55. @Autowired
  56. private BisInspWagaSapRgstrDamIfDao bisInspWagaSapRgstrDamIfDao;
  57. @Autowired
  58. private BisInspWagaSapRgstrMrsCiDao bisInspWagaSapRgstrMrsCiDao;
  59. @Autowired
  60. private BisInspWagaSapRgstrPnIfDao bisInspWagaSapRgstrPnIfDao;
  61. @Autowired
  62. private BisInspWagaSapRgstrSfMngDao bisInspWagaSapRgstrSfMngDao;
  63. @Autowired
  64. private BisInspWagaSapRgstrBaseDao bisInspWagaSapRgstrBaseDao;
  65. @Autowired
  66. private AttWagaSapBaseDao attWagaSapBaseDao;
  67. @Value("${export.templatePath}")
  68. private String templatePath;
  69. @Autowired
  70. private BisInspAllRlationPersDao bisInspAllRlationPersDao;
  71. /**
  72. * 管理体系
  73. */
  74. public static String[] bisInspWagaSapRgstrMrsCiArrays =
  75. ("compUnit,wmbpIsC,pssIsH,pssIsC,prftaofcIsH,prftaofcInfo," +
  76. "befpIsFip,pmameIsFip,ebmWmbpIsC,ebmIsIacTrotm,hasEbm").split(",");
  77. /**
  78. * 安全管理
  79. */
  80. public static String[] bisInspWagaSapRgstrSfMngArrays =
  81. ("dmDfiIsCba,dmDfiIsPass,dmDfiIsDa,dmDfiIsTsmm,emIsStfEpffc,emEpffcIsAfaof,emIsEpffcDrl,emIsTraconfcaes,rmIsAdtr,rmIsCcPtmbar").split(",");
  82. /**
  83. * 工程实体
  84. */
  85. public static String[] bisInspWagaSapRgstrPnIfArrays =
  86. ("dsKmmwIsMd,tpIsPatsme,planFlSta,eboiTbsIsCwtdr,eboiBdIsEcmplt,baLcIsIsfafatslis,baLcIsTadc,baHottoadwaeeocIsTatb," +
  87. "baLsIsNsrd,baLsIsCculs,baIsTaodttbabaat,baToeIsUsiw,baAacIsCefdcd,orlpRcMsIsUmcfob,orlpRcMcrIsCadd,orlpRcSrssIsUlcfo," +
  88. "orlpRcTodrIsUwsdb,orlpRcAsowIsDdw,orlpRcTwIsCbd,orlpBkIsScPsnsFpi,adfAdwIsDi,wdcdcIsNcsc,wdcdcIsUsfv,wdcdcHrIsTfm,wdcdcIsDnsu," +
  89. "bpeTwpfbbfbIsAd,bpeGcDbws,dsEttrSsIsMd,orlpRcType").split(",");
  90. /**
  91. * 日常管理与维护
  92. */
  93. public static String[] bisInspWagaSapRgstrDamifArrays =
  94. ("isCoarScw,isHirIrs,isIafditTemtdwi,isPrdRm,isMipThopeiee,socIsDe," +
  95. "socIsIc,socIsAtetsotp,sopIsDe,sopIsIc,sopIsAtetsotp,msIsFaiMsftoolp").split(",");
  96. /**
  97. * 基本情况
  98. */
  99. public static String[] bisInspWagaSapRgstrBaseArrays =
  100. ("sapName,sapLen,dikeGrad,planFlSta,rvLkCst,compUnit,mampu,mampuAttn,mampuAttnTel").split(",");
  101. public BisInspWagaSapRgstrServiceImpl(BisInspWagaSapRgstrDao bisInspWagaSapRgstrDao) {
  102. super(bisInspWagaSapRgstrDao);
  103. this.bisInspWagaSapRgstrDao = bisInspWagaSapRgstrDao;
  104. }
  105. @Override
  106. public int setMessage(BisInspWagaSapRgstr sapRgstr) {
  107. try {
  108. HttpClient client = new SSLClient();
  109. HttpPost httpPost = new HttpPost("https://interface.dike.yrihr.com.cn/inspect/project/dike/danger");
  110. httpPost.addHeader("Content-Type", "application/json;charset=UTF-8");
  111. httpPost.addHeader("Accept", "application/json");
  112. httpPost.addHeader("authorization", "2665141c24ec4a3733d55226e4ffe811010d136e9f1473fb4039096c4ab764c4");
  113. JSONObject obj = new JSONObject();
  114. obj.put("dangerName", sapRgstr.getSapName());
  115. obj.put("areaCode", sapRgstr.getAdCode());
  116. obj.put("managerUnitName", sapRgstr.getMampu());
  117. obj.put("basinManage", sapRgstr.getBasCode());
  118. List<BisInspAllRlationPers> pers = bisInspAllRlationPersDao.getPersByObjId(sapRgstr.getObjId(), "1");
  119. if (pers.size() > 0) {
  120. obj.put("examiner", pers.stream().map(BisInspAllRlationPers::getPersName).collect(Collectors.joining(",")));
  121. obj.put("examinerTel", pers.stream().map(BisInspAllRlationPers::getMobilenumb).collect(Collectors.joining(",")));
  122. }
  123. obj.put("examinerTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
  124. JSONArray jsonArray = new JSONArray();
  125. jsonArray.add(obj);
  126. StringEntity stringEntity = new StringEntity(jsonArray.toJSONString(), "UTF-8");
  127. stringEntity.setContentEncoding("UTF-8");
  128. httpPost.setEntity(stringEntity);
  129. HttpResponse response = client.execute(httpPost);
  130. if (response != null) {
  131. HttpEntity resEntity = response.getEntity();
  132. if (resEntity != null) {
  133. System.out.println(EntityUtils.toString(resEntity, "UTF8"));
  134. }
  135. }
  136. httpPost.clone();
  137. } catch (Exception ex) {
  138. ex.printStackTrace();
  139. }
  140. return 0;
  141. }
  142. /**
  143. * 修改堤防险工险段督查信息并记录到纠错信息表
  144. *
  145. * @param bisInspWagaSapRgstr 堤防险工险段督查登记表实体类
  146. * @return Integer
  147. */
  148. @Transactional(rollbackFor = Exception.class)
  149. @Override
  150. public String updateSapRgstrAndInsertSapBaseCrrct(BisInspWagaSapRgstr bisInspWagaSapRgstr) {
  151. bisInspWagaSapRgstr.setUptm(new Date());
  152. int updateResult = bisInspWagaSapRgstrDao.update(bisInspWagaSapRgstr);
  153. if (Constant.INT_ZERO != updateResult) {
  154. AttWagaSapBaseCrrct attWagaSapBaseCrrct = new AttWagaSapBaseCrrct();
  155. BeanUtils.copyProperties(bisInspWagaSapRgstr, attWagaSapBaseCrrct);
  156. attWagaSapBaseCrrct.setId(UuidUtil.uuid());
  157. attWagaSapBaseCrrctDao.insert(attWagaSapBaseCrrct);
  158. return "修改成功";
  159. }
  160. return "修改失败!";
  161. }
  162. /**
  163. * 获取堤防险工险段督查列表
  164. *
  165. * @param typeParam 传参对象
  166. * @return BisInspRgstrDto
  167. */
  168. @Override
  169. public PageInfo<BisInspRgstrDto> getSapRgstrList(TypeParam typeParam) {
  170. return new PageInfo<BisInspRgstrDto>(getWagaSapRgstrInfo(typeParam, true));
  171. }
  172. @Override
  173. public void insertObj(BisInspAllObj bisInspAllObj, String persId) {
  174. AttWagaSapBase attWagaSapBase = attWagaSapBaseDao.get(bisInspAllObj.getCode());
  175. if (null != attWagaSapBase) {
  176. BisInspWagaSapRgstr wagaSapRgstr = new BisInspWagaSapRgstr();
  177. wagaSapRgstr.setUptm(new Date());
  178. wagaSapRgstr.setIntm(new Date());
  179. wagaSapRgstr.setBaseStat(Constant.STRING_ZERO);
  180. wagaSapRgstr.setMrsCiStat(Constant.STRING_ZERO);
  181. wagaSapRgstr.setSafeStat(Constant.STRING_ZERO);
  182. wagaSapRgstr.setProenStat(Constant.STRING_ZERO);
  183. wagaSapRgstr.setDmamStat(Constant.STRING_ZERO);
  184. wagaSapRgstr.setState(Constant.STRING_ZERO);
  185. wagaSapRgstr.setChkState(attWagaSapBase.getChkState());
  186. wagaSapRgstr.setAdCode(attWagaSapBase.getAdCode());
  187. wagaSapRgstr.setAdName(attWagaSapBase.getAdName());
  188. wagaSapRgstr.setCenterX(attWagaSapBase.getCenterX());
  189. wagaSapRgstr.setCenterY(attWagaSapBase.getCenterY());
  190. wagaSapRgstr.setGdX(attWagaSapBase.getGdX());
  191. wagaSapRgstr.setGdY(attWagaSapBase.getGdY());
  192. String id = UuidUtil.uuid();
  193. wagaSapRgstr.setId(id);
  194. wagaSapRgstr.setObjId(bisInspAllObj.getObjId());
  195. wagaSapRgstr.setGroupId(bisInspAllObj.getId());
  196. wagaSapRgstr.setSapName(attWagaSapBase.getSapName());
  197. wagaSapRgstr.setDiskName(attWagaSapBase.getDiskName());
  198. wagaSapRgstr.setDikeGrad(attWagaSapBase.getDikeGrad());
  199. wagaSapRgstr.setCompUnitAttn(attWagaSapBase.getCompUnitAttn());
  200. wagaSapRgstr.setCompUnitAttnTel(attWagaSapBase.getCompUnitAttnTel());
  201. wagaSapRgstr.setRiverBank(attWagaSapBase.getRiverBank());
  202. wagaSapRgstr.setGvmtFldWho(attWagaSapBase.getGvmtFldWho());
  203. wagaSapRgstr.setGvmtFldWhoTel(attWagaSapBase.getGvmtFldWhoTel());
  204. wagaSapRgstr.setMampuAttn(attWagaSapBase.getMampuAttn());
  205. wagaSapRgstr.setMampuAttnTel(attWagaSapBase.getMampuAttnTel());
  206. wagaSapRgstr.setSapLen(attWagaSapBase.getSapLen());
  207. wagaSapRgstr.setSapType(attWagaSapBase.getSapType());
  208. wagaSapRgstr.setStartLoc(attWagaSapBase.getStartLoc());
  209. wagaSapRgstr.setCoast(attWagaSapBase.getCoast());
  210. wagaSapRgstr.setLake(attWagaSapBase.getLake());
  211. wagaSapRgstr.setSapId(attWagaSapBase.getId());
  212. wagaSapRgstr.setPersId(persId);
  213. bisInspWagaSapRgstrDao.insert(wagaSapRgstr);
  214. BisInspWagaSapRgstrBaseParam bisInspWagaSapRgstrBaseParam = new BisInspWagaSapRgstrBaseParam();
  215. bisInspWagaSapRgstrBaseParam.setRgstrId(id);
  216. BisInspWagaSapRgstrBase bisInspWagaSapRgstrBase = bisInspWagaSapRgstrBaseDao.getBy(bisInspWagaSapRgstrBaseParam);
  217. if (bisInspWagaSapRgstrBase == null) {
  218. bisInspWagaSapRgstrBase = new BisInspWagaSapRgstrBase();
  219. bisInspWagaSapRgstrBase.setId(UuidUtil.uuid());
  220. bisInspWagaSapRgstrBase.setRgstrId(id);
  221. bisInspWagaSapRgstrBase.setSapName(attWagaSapBase.getSapName());
  222. bisInspWagaSapRgstrBase.setSapLen(attWagaSapBase.getSapLen());
  223. bisInspWagaSapRgstrBase.setDikeGrad(attWagaSapBase.getDikeGrad());
  224. bisInspWagaSapRgstrBase.setRiverBank(attWagaSapBase.getRiverBank());
  225. bisInspWagaSapRgstrBase.setLake(attWagaSapBase.getLake());
  226. bisInspWagaSapRgstrBase.setCoast(attWagaSapBase.getCoast());
  227. bisInspWagaSapRgstrBase.setMampu(attWagaSapBase.getMampu());
  228. bisInspWagaSapRgstrBase.setMampuAttn(attWagaSapBase.getMampuAttn());
  229. bisInspWagaSapRgstrBase.setMampuAttnTel(attWagaSapBase.getMampuAttnTel());
  230. bisInspWagaSapRgstrBase.setStatus(Constant.STRING_ZERO);
  231. bisInspWagaSapRgstrBase.setRecPersId(persId); //不可空
  232. bisInspWagaSapRgstrBaseDao.insert(bisInspWagaSapRgstrBase);
  233. }
  234. }
  235. }
  236. @Override
  237. public void cleanObjData(String objId) {
  238. BisInspWagaSapRgstrParam bisInspWagaSapRgstrParam = new BisInspWagaSapRgstrParam();
  239. bisInspWagaSapRgstrParam.setObjId(objId);
  240. String id = bisInspWagaSapRgstrDao.getWagaSapRgstrInfoByObjId(objId);
  241. if (StringUtils.isNotBlank(id)) {
  242. BisInspPblmParam bisInspPblmParam = new BisInspPblmParam();
  243. bisInspPblmParam.setRegid(id);
  244. bisInspPblmParam.setObjType(BisInspEnum.SAP.getValue());
  245. bisInspPblmDao.deleteBy(bisInspPblmParam);
  246. bisInspWagaSapRgstrDao.deleteById(id);
  247. bisInspWagaSapRgstrDamIfDao.deleteByRgstrId(id);
  248. bisInspWagaSapRgstrMrsCiDao.deleteByRgstrId(id);
  249. bisInspWagaSapRgstrPnIfDao.deleteByRgstrId(id);
  250. bisInspWagaSapRgstrSfMngDao.deleteByRgstrId(id);
  251. bisInspWagaSapRgstrBaseDao.deleteByRgstrId(id);
  252. //删除督查对象
  253. BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam();
  254. bisInspAllObjParam.setObjId(objId);
  255. bisInspAllObjDao.deleteBy(bisInspAllObjParam);
  256. }
  257. }
  258. @Override
  259. public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) {
  260. return this.getSapRgstrList(typeParam);
  261. }
  262. @Override
  263. public Object findObjListByType(TypeParam typeParam) {
  264. return getWagaSapRgstrInfo(typeParam, false);
  265. }
  266. private List<BisInspRgstrDto> getWagaSapRgstrInfo(TypeParam typeParam, boolean isExport) {
  267. if (StringUtils.isNotBlank(typeParam.getAdCode())) {
  268. typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD)));
  269. }
  270. if (isExport) {
  271. PageHelper.startPage(typeParam);
  272. }
  273. List<BisInspRgstrDto> bisInspRgstrList = bisInspWagaSapRgstrDao.getWagaSapRegstrInfo(typeParam);
  274. if (CollectionUtils.isNotEmpty(bisInspRgstrList)) {
  275. bisInspRgstrList.stream().forEach(bisInspRgstrDto -> {
  276. if (bisInspRgstrDto.getLocation() != null && bisInspRgstrDto.getLocation().contains(SplitValue.HENG_SPLIT)) {
  277. String[] split = bisInspRgstrDto.getLocation().split(SplitValue.HENG_SPLIT);
  278. if (split.length == Constant.INT_THREE) {
  279. bisInspRgstrDto.setProvince(split[Constant.INT_ZERO]);
  280. bisInspRgstrDto.setCity(split[Constant.INT_ONE]);
  281. bisInspRgstrDto.setCountry(split[Constant.INT_TWO]);
  282. }
  283. if (split.length == Constant.INT_TWO) {
  284. bisInspRgstrDto.setProvince(split[Constant.INT_ZERO]);
  285. bisInspRgstrDto.setCity(split[Constant.INT_ONE]);
  286. bisInspRgstrDto.setCountry(Constant.STRING_BLANK);
  287. } else {
  288. bisInspRgstrDto.setProvince(bisInspRgstrDto.getLocation());
  289. }
  290. }
  291. });
  292. }
  293. return bisInspRgstrList;
  294. }
  295. @Override
  296. public String getType() {
  297. return BisInspEnum.SAP.getValue();
  298. }
  299. @Override
  300. public void downloadTemplate(HttpServletResponse response, TypeParam param) throws Exception {
  301. List<BisInspWagaSapRgstrVo> bisInspWagaSapRgstrVoList = new ArrayList();
  302. // 模板路径
  303. String filePath = templatePath + File.separator + "pblmDfx_tb.xls";
  304. // SHEET名称
  305. String sheetName = "堤防险工险段报表";
  306. // startRow
  307. int startRow = 2;
  308. if (StringUtils.isBlank(param.getPlnaId())) {
  309. List<Map<String, Object>> list = new ArrayList<>();
  310. ExpAndImpUtil.download(response, list, filePath, startRow, sheetName);
  311. }
  312. List<BisInspRgstrDto> bisInspRgstrList = bisInspWagaSapRgstrDao.getWagaSapRegstrInfo(param);
  313. bisInspRgstrList = InspPblmUtils.changeList(bisInspRgstrList);
  314. //赋值其他参数
  315. setWagaSapRgstrVoList(bisInspRgstrList, bisInspWagaSapRgstrVoList);
  316. //数据转换为Map
  317. List<Map<String, Object>> dataList = wagaSapRgsteListConvertMap(bisInspWagaSapRgstrVoList);
  318. ExpAndImpUtil.download(response, dataList, filePath, startRow, sheetName);
  319. }
  320. private void setWagaSapRgstrVoList(List<BisInspRgstrDto> wagaSapList, List<BisInspWagaSapRgstrVo> bisInspWagaSapRgstrVoList) {
  321. wagaSapList.forEach(sapDto -> {
  322. BisInspWagaSapRgstrVo bisVo = new BisInspWagaSapRgstrVo();
  323. //登记表
  324. bisVo.setBisInspRgstrDto(sapDto);
  325. String rgstrId = sapDto.getRgstrId();
  326. //日常管理与维护
  327. BisInspWagaSapRgstrDamIfParam damIfParam = new BisInspWagaSapRgstrDamIfParam();
  328. damIfParam.setRgstrId(rgstrId);
  329. BisInspWagaSapRgstrDamIf damIf = bisInspWagaSapRgstrDamIfDao.getBy(damIfParam);
  330. bisVo.setBisInspWagaSapRgstrDamIf(damIf);
  331. //管理体系
  332. BisInspWagaSapRgstrMrsCiParam mrsCiParam = new BisInspWagaSapRgstrMrsCiParam();
  333. mrsCiParam.setRgstrId(rgstrId);
  334. BisInspWagaSapRgstrMrsCi mrsCi = bisInspWagaSapRgstrMrsCiDao.getBy(mrsCiParam);
  335. bisVo.setBisInspWagaSapRgstrMrsCi(mrsCi);
  336. //工程实体
  337. BisInspWagaSapRgstrPnIfParam pnIfParam = new BisInspWagaSapRgstrPnIfParam();
  338. pnIfParam.setRgstrId(rgstrId);
  339. BisInspWagaSapRgstrPnIf pnIf = bisInspWagaSapRgstrPnIfDao.getBy(pnIfParam);
  340. bisVo.setBisInspWagaSapRgstrPnIf(pnIf);
  341. //安全管理
  342. BisInspWagaSapRgstrSfMngParam sfMngParam = new BisInspWagaSapRgstrSfMngParam();
  343. sfMngParam.setRgstrId(rgstrId);
  344. BisInspWagaSapRgstrSfMng sfMng = bisInspWagaSapRgstrSfMngDao.getBy(sfMngParam);
  345. bisVo.setBisInspWagaSapRgstrSfMng(sfMng);
  346. //基本信息
  347. BisInspWagaSapRgstrBase bisInspWagaSapRgstrBase = bisInspWagaSapRgstrBaseDao.getWagaSapRgstrBaseByRgstrId(rgstrId);
  348. bisVo.setBisInspWagaSapRgstrBase(bisInspWagaSapRgstrBase);
  349. bisInspWagaSapRgstrVoList.add(bisVo);
  350. });
  351. }
  352. private List<Map<String, Object>> wagaSapRgsteListConvertMap(List<BisInspWagaSapRgstrVo> bisInspWagaSapRgstrVoList) {
  353. List<Map<String, Object>> dataList = new LinkedList<>();
  354. bisInspWagaSapRgstrVoList.forEach(vo -> {
  355. Map<String, Object> map = new HashMap<>();
  356. //登记表
  357. BisInspRgstrDto bisInspRgstrDto = vo.getBisInspRgstrDto();
  358. ExpAndImpUtil.convertBeanToMap(bisInspRgstrDto, bisInspRgstrArrays, map, WagaSapFieldFromatExp.class);
  359. //日常管理与维护
  360. BisInspWagaSapRgstrDamIf bisInspWagaSapRgstrDamIf = vo.getBisInspWagaSapRgstrDamIf();
  361. ExpAndImpUtil.convertBeanToMap(bisInspWagaSapRgstrDamIf, bisInspWagaSapRgstrDamifArrays, map, WagaSapFieldFromatExp.class);
  362. //管理体系
  363. BisInspWagaSapRgstrMrsCi bisInspWagaSapRgstrMrsCi = vo.getBisInspWagaSapRgstrMrsCi();
  364. ExpAndImpUtil.convertBeanToMap(bisInspWagaSapRgstrMrsCi, bisInspWagaSapRgstrMrsCiArrays, map, WagaSapFieldFromatExp.class);
  365. //工程实体
  366. BisInspWagaSapRgstrPnIf bisInspWagaSapRgstrPnIf = vo.getBisInspWagaSapRgstrPnIf();
  367. ExpAndImpUtil.convertBeanToMap(bisInspWagaSapRgstrPnIf, bisInspWagaSapRgstrPnIfArrays, map, WagaSapFieldFromatExp.class);
  368. //安全管理
  369. BisInspWagaSapRgstrSfMng bisInspWagaSapRgstrSfMng = vo.getBisInspWagaSapRgstrSfMng();
  370. ExpAndImpUtil.convertBeanToMap(bisInspWagaSapRgstrSfMng, bisInspWagaSapRgstrSfMngArrays, map, WagaSapFieldFromatExp.class);
  371. //基本情况
  372. BisInspWagaSapRgstrBase bisInspWagaSapRgstrBase = vo.getBisInspWagaSapRgstrBase();
  373. ExpAndImpUtil.convertBeanToMap(bisInspWagaSapRgstrBase, bisInspWagaSapRgstrBaseArrays, map, WagaSapFieldFromatExp.class);
  374. dataList.add(map);
  375. });
  376. return dataList;
  377. }
  378. @Override
  379. public int insertIntoData(List<LinkedHashMap<String, Object>> showDataList, FileParam param) throws Exception {
  380. String persId = param.getPersId();
  381. for (LinkedHashMap<String, Object> map : showDataList) {
  382. String rgstrId;
  383. BisInspRgstrDto bisInspRgstrDto = (BisInspRgstrDto) ExpAndImpUtil.convertMapToBean(BisInspRgstrDto.class, map);
  384. if (StringUtils.isNotBlank(bisInspRgstrDto.getRgstrId())) {
  385. //修改登记表
  386. rgstrId = bisInspRgstrDto.getRgstrId();
  387. BisInspWagaSapRgstr bisInspWagaSapRgstr = new BisInspWagaSapRgstr();
  388. BeanUtils.copyProperties(bisInspRgstrDto, bisInspWagaSapRgstr);
  389. bisInspWagaSapRgstr.setPersId(persId);
  390. bisInspWagaSapRgstr.setUptm(new Date());
  391. bisInspWagaSapRgstr.setSapName(bisInspRgstrDto.getNm());
  392. bisInspWagaSapRgstr.setAdName(bisInspRgstrDto.getProvince());
  393. bisInspWagaSapRgstr.setId(rgstrId);
  394. bisInspWagaSapRgstrDao.update(bisInspWagaSapRgstr);
  395. } else {
  396. String id = UuidUtil.uuid();
  397. rgstrId = id;
  398. BisInspWagaSapRgstr bisInspWagaSapRgstr = new BisInspWagaSapRgstr();
  399. BeanUtils.copyProperties(bisInspRgstrDto, bisInspWagaSapRgstr);
  400. AttWagaSapBaseParam base = new AttWagaSapBaseParam();
  401. base.setSapName(bisInspRgstrDto.getNm());
  402. List<AttWagaSapBase> baseList = attWagaSapBaseDao.findList(base);
  403. if (CollectionUtils.isEmpty(baseList)) {
  404. continue;
  405. }
  406. AttWagaSapBase attWagaSapBase = baseList.get(0);
  407. BeanUtils.copyProperties(attWagaSapBase, bisInspWagaSapRgstr);
  408. String ObjUuid = UuidUtil.uuid();
  409. BisInspAllObj bisInspAllObj = new BisInspAllObj();
  410. bisInspAllObj.setCode(attWagaSapBase.getId());
  411. bisInspAllObj.setId(param.getGroupId());
  412. bisInspAllObj.setNm(attWagaSapBase.getSapName());
  413. bisInspAllObj.setLgtd(attWagaSapBase.getGdX());
  414. bisInspAllObj.setLttd(attWagaSapBase.getGdY());
  415. bisInspAllObj.setObjId(ObjUuid);
  416. bisInspAllObj.setPtype("29");
  417. bisInspAllObjDao.insert(bisInspAllObj);
  418. bisInspWagaSapRgstr.setId(id);
  419. bisInspWagaSapRgstr.setPersId(persId);
  420. bisInspWagaSapRgstr.setIntm(new Date());
  421. bisInspWagaSapRgstr.setUptm(new Date());
  422. bisInspWagaSapRgstr.setSapName(bisInspRgstrDto.getNm());
  423. bisInspWagaSapRgstr.setAdName(bisInspRgstrDto.getProvince());
  424. bisInspWagaSapRgstr.setObjId(ObjUuid);
  425. bisInspWagaSapRgstrDao.insert(bisInspWagaSapRgstr);
  426. }
  427. if (StringUtils.isBlank(rgstrId)) {
  428. continue;
  429. }
  430. //日常管理与维护
  431. insertDamif(persId, map, rgstrId);
  432. //管理体系
  433. insertMrsCi(persId, map, rgstrId);
  434. //工程实体
  435. insertPnif(persId, map, rgstrId);
  436. //安全管理
  437. insertSfMng(persId, map, rgstrId);
  438. //基本情况
  439. insertBase(persId, map, rgstrId);
  440. }
  441. return 0;
  442. }
  443. private void insertDamif(String persId, LinkedHashMap<String, Object> map, String rgstrId) throws IllegalAccessException, InstantiationException {
  444. BisInspWagaSapRgstrDamIf damIf = (BisInspWagaSapRgstrDamIf) ExpAndImpUtil.convertMapToBean(BisInspWagaSapRgstrDamIf.class, map);
  445. BisInspWagaSapRgstrDamIfParam damIfParam = new BisInspWagaSapRgstrDamIfParam();
  446. damIfParam.setRgstrId(rgstrId);
  447. List<BisInspWagaSapRgstrDamIf> damIfDaoList = bisInspWagaSapRgstrDamIfDao.findList(damIfParam);
  448. if (CollectionUtils.isNotEmpty(damIfDaoList)) {
  449. damIf.setUptm(new Date());
  450. damIf.setId(damIfDaoList.get(0).getId());
  451. damIf.setRecPersId(persId);
  452. bisInspWagaSapRgstrDamIfDao.update(damIf);
  453. } else {
  454. damIf.setId(UuidUtil.uuid());
  455. damIf.setIntm(new Date());
  456. damIf.setUptm(new Date());
  457. damIf.setRecPersId(persId);
  458. bisInspWagaSapRgstrDamIfDao.insert(damIf);
  459. }
  460. }
  461. private void insertMrsCi(String persId, LinkedHashMap<String, Object> map, String rgstrId) throws IllegalAccessException, InstantiationException {
  462. BisInspWagaSapRgstrMrsCi mrsCi = (BisInspWagaSapRgstrMrsCi) ExpAndImpUtil.convertMapToBean(BisInspWagaSapRgstrMrsCi.class, map);
  463. BisInspWagaSapRgstrMrsCiParam mrsCiParam = new BisInspWagaSapRgstrMrsCiParam();
  464. mrsCiParam.setRgstrId(rgstrId);
  465. List<BisInspWagaSapRgstrMrsCi> mrsCiDaoList = bisInspWagaSapRgstrMrsCiDao.findList(mrsCiParam);
  466. if (CollectionUtils.isNotEmpty(mrsCiDaoList)) {
  467. mrsCi.setUptm(new Date());
  468. mrsCi.setRecPersId(persId);
  469. mrsCi.setId(mrsCiDaoList.get(0).getId());
  470. bisInspWagaSapRgstrMrsCiDao.update(mrsCi);
  471. } else {
  472. mrsCi.setIntm(new Date());
  473. mrsCi.setUptm(new Date());
  474. mrsCi.setId(UuidUtil.uuid());
  475. mrsCi.setRecPersId(persId);
  476. bisInspWagaSapRgstrMrsCiDao.insert(mrsCi);
  477. }
  478. }
  479. private void insertPnif(String persId, LinkedHashMap<String, Object> map, String rgstrId) throws IllegalAccessException, InstantiationException {
  480. BisInspWagaSapRgstrPnIf pnIf = (BisInspWagaSapRgstrPnIf) ExpAndImpUtil.convertMapToBean(BisInspWagaSapRgstrPnIf.class, map);
  481. BisInspWagaSapRgstrPnIfParam pnIfParam = new BisInspWagaSapRgstrPnIfParam();
  482. pnIfParam.setRgstrId(rgstrId);
  483. List<BisInspWagaSapRgstrPnIf> pnIfDaoList = bisInspWagaSapRgstrPnIfDao.findList(pnIfParam);
  484. if (CollectionUtils.isNotEmpty(pnIfDaoList)) {
  485. pnIf.setId(pnIfDaoList.get(0).getId());
  486. pnIf.setUptm(new Date());
  487. pnIf.setRecPersId(persId);
  488. bisInspWagaSapRgstrPnIfDao.update(pnIf);
  489. } else {
  490. pnIf.setId(UuidUtil.uuid());
  491. pnIf.setUptm(new Date());
  492. pnIf.setIntm(new Date());
  493. pnIf.setRecPersId(persId);
  494. bisInspWagaSapRgstrPnIfDao.insert(pnIf);
  495. }
  496. }
  497. private void insertSfMng(String persId, LinkedHashMap<String, Object> map, String rgstrId) throws IllegalAccessException, InstantiationException {
  498. BisInspWagaSapRgstrSfMng sfMng = (BisInspWagaSapRgstrSfMng) ExpAndImpUtil.convertMapToBean(BisInspWagaSapRgstrSfMng.class, map);
  499. BisInspWagaSapRgstrSfMngParam sfMngParam = new BisInspWagaSapRgstrSfMngParam();
  500. sfMngParam.setRgstrId(rgstrId);
  501. List<BisInspWagaSapRgstrSfMng> sfMngDaoList = bisInspWagaSapRgstrSfMngDao.findList(sfMngParam);
  502. if (CollectionUtils.isNotEmpty(sfMngDaoList)) {
  503. sfMng.setUptm(new Date());
  504. sfMng.setRecPersId(persId);
  505. sfMng.setId(sfMngDaoList.get(0).getId());
  506. bisInspWagaSapRgstrSfMngDao.update(sfMng);
  507. } else {
  508. sfMng.setUptm(new Date());
  509. sfMng.setRecPersId(persId);
  510. sfMng.setId(UuidUtil.uuid());
  511. sfMng.setIntm(new Date());
  512. bisInspWagaSapRgstrSfMngDao.insert(sfMng);
  513. }
  514. }
  515. private void insertBase(String persId, LinkedHashMap<String, Object> map, String rgstrId) throws IllegalAccessException, InstantiationException {
  516. BisInspWagaSapRgstrBase base = (BisInspWagaSapRgstrBase) ExpAndImpUtil.convertMapToBean(BisInspWagaSapRgstrBase.class, map);
  517. BisInspWagaSapRgstrBaseParam baseParam = new BisInspWagaSapRgstrBaseParam();
  518. baseParam.setRgstrId(rgstrId);
  519. List<BisInspWagaSapRgstrBase> baseList = bisInspWagaSapRgstrBaseDao.findList(baseParam);
  520. if (CollectionUtils.isNotEmpty(baseList)) {
  521. base.setUptm(new Date());
  522. base.setRecPersId(persId);
  523. base.setId(baseList.get(0).getId());
  524. bisInspWagaSapRgstrBaseDao.update(base);
  525. } else {
  526. base.setUptm(new Date());
  527. base.setRecPersId(persId);
  528. base.setId(UuidUtil.uuid());
  529. base.setIntm(new Date());
  530. bisInspWagaSapRgstrBaseDao.insert(base);
  531. }
  532. }
  533. }