TPssrAboveallController.java 58 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196
  1. package com.ruoyi.project.pssr.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.github.stuxuhai.jpinyin.PinyinFormat;
  4. import com.github.stuxuhai.jpinyin.PinyinHelper;
  5. import com.ruoyi.common.jpush.JiGuangPushService;
  6. import com.ruoyi.common.sendEmail.IMailService;
  7. import com.ruoyi.common.utils.DateUtils;
  8. import com.ruoyi.common.utils.StringUtils;
  9. import com.ruoyi.common.utils.poi.ExcelUtil;
  10. import com.ruoyi.framework.aspectj.lang.annotation.Log;
  11. import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
  12. import com.ruoyi.framework.web.controller.BaseController;
  13. import com.ruoyi.framework.web.domain.AjaxResult;
  14. import com.ruoyi.framework.web.page.TableDataInfo;
  15. import com.ruoyi.project.pssr.domain.*;
  16. import com.ruoyi.project.pssr.service.*;
  17. import com.ruoyi.project.reliability.domain.TSafetyvavle;
  18. import com.ruoyi.project.reliability.service.ITSafetyvavleService;
  19. import com.ruoyi.project.system.domain.SysMessage;
  20. import com.ruoyi.project.system.domain.SysUser;
  21. import com.ruoyi.project.system.service.ISysMessageService;
  22. import com.ruoyi.project.system.service.ISysUserService;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.security.access.prepost.PreAuthorize;
  25. import org.springframework.web.bind.annotation.*;
  26. import java.util.*;
  27. /**
  28. * PSSRController
  29. *
  30. * @author ssy
  31. * @date 2024-09-18
  32. */
  33. @RestController
  34. @RequestMapping("/pssr/aboveall")
  35. public class TPssrAboveallController extends BaseController {
  36. //region 注入服务层对象
  37. @Autowired
  38. private ITPssrAboveallService tPssrAboveallService;
  39. @Autowired
  40. private ITPssrSubcontentService tPssrSubcontentService;
  41. @Autowired
  42. private ITPssrPatrolService tPssrPatrolService;
  43. @Autowired
  44. private ITPssrMaterialService tPssrMaterialService;
  45. @Autowired
  46. private ITPssrMaterialRawService tPssrMaterialRawService;
  47. @Autowired
  48. private ITPssrMocService tPssrMocService;
  49. @Autowired
  50. private ITSafetyvavleService tSafetyvavleService;
  51. @Autowired
  52. private ITPssrSafetyValveService tPssrSafetyValveService;
  53. @Autowired
  54. private ITPssrPublicService tPssrPublicService;
  55. @Autowired
  56. private ITPssrTorchvocService tPssrTorchvocService;
  57. @Autowired
  58. private ITPssrLightingService tPssrLightingService;
  59. @Autowired
  60. private ITPssrPowerService tPssrPowerService;
  61. @Autowired
  62. private ITPssrHygieneService tPssrHygieneService;
  63. @Autowired
  64. private ITPssrFrameModelService tPssrFrameModelService;
  65. @Autowired
  66. private ITPssrFrameService tPssrFrameService;
  67. @Autowired
  68. private ITPssrProtectionService tPssrProtectionService;
  69. @Autowired
  70. private TPssrApproveController tPssrApproveController;
  71. @Autowired
  72. private ISysUserService userService;
  73. @Autowired
  74. private ITPssrFranklinismService tPssrFranklinismService;
  75. @Autowired
  76. private ITPssrOverhaulExchangerService tPssrOverhaulExchangerService;
  77. @Autowired
  78. private ITPssrOverhaulFilterService tPssrOverhaulFilterService;
  79. @Autowired
  80. private ITPssrOverhaulTowerService tPssrOverhaulTowerService;
  81. @Autowired
  82. private ITPssrOverhaulValveService tPssrOverhaulValveService;
  83. @Autowired
  84. private ITPssrBlindService tPssrBlindService;
  85. @Autowired
  86. private ITPssrLockService tPssrLockService;
  87. @Autowired
  88. private ITPssrPipeService tPssrPipeService;
  89. @Autowired
  90. private ITPssrCleaningService tPssrCleaningService;
  91. @Autowired
  92. private ITPssrAirtightService tPssrAirtightService;
  93. @Autowired
  94. private ITPssrLaboratoryService tPssrLaboratoryService;
  95. @Autowired
  96. private ITPssrCircuitService tPssrCircuitService;
  97. @Autowired
  98. private ITPssrSafetyBleedService tPssrSafetyBleedService;
  99. @Autowired
  100. private ITPssrSafetyBreathService tPssrSafetyBreathService;
  101. @Autowired
  102. private ITPssrSafetyBrustService tPssrSafetyBrustService;
  103. @Autowired
  104. private ITPssrSafetyFlamearresterService tPssrSafetyFlamearresterService;
  105. @Autowired
  106. private ITPssrMotorService tPssrMotorService;
  107. @Autowired
  108. private ITPssrInstrumentCalibrationService tPssrInstrumentCalibrationService;
  109. @Autowired
  110. private ITPssrNitrogenService tPssrNitrogenService;
  111. @Autowired
  112. private ITPssrGasdetectorService tPssrGasdetectorService;
  113. @Autowired
  114. private ITPssrAnalyzerService tPssrAnalyzerService;
  115. @Autowired
  116. private ITPssrMeasureService tPssrMeasureService;
  117. @Autowired
  118. private ITPssrPumpFillService tPssrPumpFillService;
  119. @Autowired
  120. private ITPssrPumpCleaningService tPssrPumpCleaningService;
  121. @Autowired
  122. private ITPssrPumpOverhaulService tPssrPumpOverhaulService;
  123. @Autowired
  124. private ITPssrInstrumentTestService tPssrInstrumentTestService;
  125. @Autowired
  126. private ITPssrAlarmService tPssrAlarmService;
  127. @Autowired
  128. private ITPssrVesselService tPssrVesselService;
  129. @Autowired
  130. private ITPssrProgrammeService tPssrProgrammeService;
  131. @Autowired
  132. private JiGuangPushService jiGuangPushService;
  133. @Autowired
  134. private IMailService mailService;
  135. @Autowired
  136. private ISysMessageService sysMessageService;
  137. //endregion
  138. //region 系统方法
  139. /**
  140. * 查询PSSR列表
  141. */
  142. @PreAuthorize("@ss.hasPermi('pssr:aboveall:list')")
  143. @GetMapping("/list")
  144. public TableDataInfo list(TPssrAboveall tPssrAboveall) {
  145. startPage();
  146. List<TPssrAboveall> list = tPssrAboveallService.selectTPssrAboveallList(tPssrAboveall);
  147. return getDataTable(list);
  148. }
  149. /**
  150. * 导出PSSR列表
  151. */
  152. @PreAuthorize("@ss.hasPermi('pssr:aboveall:export')")
  153. @Log(title = "PSSR", businessType = BusinessType.EXPORT)
  154. @GetMapping("/export")
  155. public AjaxResult export(TPssrAboveall tPssrAboveall) {
  156. List<TPssrAboveall> list = tPssrAboveallService.selectTPssrAboveallList(tPssrAboveall);
  157. ExcelUtil<TPssrAboveall> util = new ExcelUtil<TPssrAboveall>(TPssrAboveall.class);
  158. return util.exportExcel(list, "aboveall");
  159. }
  160. /**
  161. * 获取PSSR详细信息
  162. */
  163. @PreAuthorize("@ss.hasPermi('pssr:aboveall:query')")
  164. @GetMapping(value = "/{id}")
  165. public AjaxResult getInfo(@PathVariable("id") Long id) {
  166. return AjaxResult.success(tPssrAboveallService.selectTPssrAboveallById(id));
  167. }
  168. /**
  169. * 修改PSSR
  170. */
  171. @PreAuthorize("@ss.hasPermi('pssr:aboveall:edit')")
  172. @Log(title = "PSSR", businessType = BusinessType.UPDATE)
  173. @PutMapping
  174. public AjaxResult edit(@RequestBody TPssrAboveall tPssrAboveall) {
  175. return toAjax(tPssrAboveallService.updateTPssrAboveall(tPssrAboveall));
  176. }
  177. /**
  178. * 删除PSSR
  179. */
  180. @PreAuthorize("@ss.hasPermi('pssr:aboveall:remove')")
  181. @Log(title = "PSSR", businessType = BusinessType.DELETE)
  182. @DeleteMapping("/{ids}")
  183. public AjaxResult remove(@PathVariable Long[] ids) {
  184. return toAjax(tPssrAboveallService.deleteTPssrAboveallByIds(ids));
  185. }
  186. /**
  187. * 查询pssr相关用户
  188. */
  189. @GetMapping("/listPssrUser")
  190. public AjaxResult listPssrUser(TPssrSubcontent sub) {
  191. SysUser user = new SysUser();
  192. user.setDeptIds(new Long[]{103L,10042L,10058L});
  193. return AjaxResult.success(userService.selectPssrUser(user));
  194. }
  195. //endregion
  196. //region 新增
  197. /**
  198. * 新增PSSR
  199. */
  200. @PreAuthorize("@ss.hasPermi('pssr:aboveall:add')")
  201. @Log(title = "PSSR", businessType = BusinessType.INSERT)
  202. @PostMapping
  203. public AjaxResult add(@RequestBody TPssrAboveall tPssrAboveall) {
  204. boolean model = false;
  205. TPssrAboveall aboveall = null;
  206. if (tPssrAboveall.getId() != null) {
  207. model = true;
  208. aboveall = tPssrAboveallService.selectTPssrAboveallById(tPssrAboveall.getId());
  209. tPssrAboveall.setUnit(aboveall.getUnit());
  210. tPssrAboveall.setRegion(aboveall.getRegion());
  211. tPssrAboveall.setId(null);
  212. tPssrAboveall.setDrivingTime(aboveall.getDrivingTime());
  213. tPssrAboveall.setIncludePublic(aboveall.getIncludePublic());
  214. }
  215. if (tPssrAboveall.getIncludePublic() == 1) {
  216. tPssrAboveall.setUnit(tPssrAboveall.getUnit() + ",390");
  217. }
  218. tPssrAboveallService.insertTPssrAboveall(tPssrAboveall);//新增主表数据
  219. // 记录所有负责人id
  220. Set<Long> userIds = new HashSet<>();
  221. String userId = getUserId().toString();
  222. //新增子表数据
  223. for (TPssrSubcontent subcontent : tPssrAboveall.getSubcontents()) {
  224. if (subcontent.getStatus() == 1) {
  225. userIds.add(Long.valueOf(subcontent.getConfirm()));
  226. subcontent.setAboveallId(tPssrAboveall.getId());//主表id
  227. subcontent.setRegion(tPssrAboveall.getRegion());
  228. subcontent.setUnit(tPssrAboveall.getUnit());
  229. subcontent.setUnitDes(tPssrAboveall.getUnitDes());
  230. subcontent.setApproveStatus(0L);
  231. subcontent.setCreatedate(new Date());
  232. subcontent.setCreaterCode(userId);
  233. tPssrSubcontentService.insertTPssrSubcontent(subcontent);
  234. new Thread(() -> {
  235. if (subcontent.getForShort().equals("xqf")) {
  236. List<TPssrPatrol> tPssrPatrols = new ArrayList<>();
  237. // 手提式/小推车式灭火器/灭火器材箱检查记录,1
  238. tPssrPatrols.add(getEntity(1L, subcontent.getId()));
  239. // 消防水炮检查记录,2
  240. tPssrPatrols.add(getEntity(2L, subcontent.getId()));
  241. // 地上消火栓检查记录,3
  242. tPssrPatrols.add(getEntity(3L, subcontent.getId()));
  243. // 消防水带箱检查记录,4
  244. tPssrPatrols.add(getEntity(4L, subcontent.getId()));
  245. // 消防竖管检查记录,5
  246. tPssrPatrols.add(getEntity(5L, subcontent.getId()));
  247. // 自动喷淋灭火系统检查记录,6
  248. tPssrPatrols.add(getEntity(6L, subcontent.getId()));
  249. // 应急事故柜检查记录,7
  250. tPssrPatrols.add(getEntity(7L, subcontent.getId()));
  251. // 现场可燃气体检测器/火灾报警系统检查记录,8
  252. tPssrPatrols.add(getEntity(8L, subcontent.getId()));
  253. // CO2气体保护系统检查记录,9
  254. tPssrPatrols.add(getEntity(9L, subcontent.getId()));
  255. // 淋浴洗眼器检查记录,12
  256. tPssrPatrols.add(getEntity(12L, subcontent.getId()));
  257. // 应急沙箱检查记录,13
  258. tPssrPatrols.add(getEntity(13L, subcontent.getId()));
  259. // 常闭式防爆门/防火门检查记录,14
  260. tPssrPatrols.add(getEntity(14L, subcontent.getId()));
  261. // 风向标/风向袋/新风系统正压计检查记录,15
  262. tPssrPatrols.add(getEntity(15L, subcontent.getId()));
  263. // 蒸汽幕检查记录,16
  264. tPssrPatrols.add(getEntity(16L, subcontent.getId()));
  265. // 急救箱
  266. tPssrPatrols.add(getEntity(27L, subcontent.getId()));
  267. for (TPssrPatrol pssrPatrol : tPssrPatrols) {
  268. tPssrPatrolService.insertTPssrPatrol(pssrPatrol, userId);
  269. }
  270. } else if (subcontent.getForShort().equals("txjk")) {
  271. List<TPssrPatrol> tPssrPatrols = new ArrayList<>();
  272. // PAGA系统检查记录,10
  273. tPssrPatrols.add(getEntity(10L, subcontent.getId()));
  274. // CCTV系统检查记录,11
  275. tPssrPatrols.add(getEntity(11L, subcontent.getId()));
  276. for (TPssrPatrol pssrPatrol : tPssrPatrols) {
  277. tPssrPatrolService.insertTPssrPatrol(pssrPatrol, userId);
  278. }
  279. } else if (subcontent.getForShort().equals("bxsjcy")) {
  280. List<TPssrPatrol> tPssrPatrols = new ArrayList<>();
  281. // 四合一/苯系物/硫化氢/二氧化碳/射线一氧化碳检测仪检查记录,18
  282. tPssrPatrols.add(getEntity(18L, subcontent.getId()));
  283. for (TPssrPatrol pssrPatrol : tPssrPatrols) {
  284. tPssrPatrolService.insertTPssrPatrol(pssrPatrol, userId);
  285. }
  286. } else if (subcontent.getForShort().equals("yfl")) {
  287. genYfl(subcontent.getId(), userId);
  288. } else if (subcontent.getForShort().equals("aqss")) {
  289. genAqf(subcontent, userId);
  290. } else if (subcontent.getForShort().equals("gygc")) {
  291. genGygc(subcontent.getId(), userId);
  292. } else if (subcontent.getForShort().equals("hbss")) {
  293. genHbss(subcontent.getId(), userId);
  294. } else if (subcontent.getForShort().equals("zmdbr")) {
  295. genZmdbr(subcontent.getId(), userId);
  296. } else if (subcontent.getForShort().equals("lsdy")) {
  297. genLsdy(subcontent.getId(), userId);
  298. } else if (subcontent.getForShort().equals("xcws")) {
  299. genXcws(subcontent.getId(), userId);
  300. } else if (subcontent.getForShort().equals("rsfh")) {
  301. genRsfh(subcontent.getId(), userId);
  302. } else if (subcontent.getForShort().equals("jdjdkj")) {
  303. genJdjdkj(subcontent.getId(), userId);
  304. } else if (subcontent.getForShort().equals("zdj")) {
  305. genZdj(subcontent.getId(), subcontent.getUnit(), userId);
  306. }
  307. }, "新增子表数据").start();
  308. }
  309. }
  310. //同步模板数据
  311. if (model) {
  312. genPssrDataByModel(aboveall, tPssrAboveall, userId);
  313. }
  314. new Thread(() -> {
  315. sendEmail(userIds, tPssrAboveall);
  316. },"新增pssr开始发邮件").start();
  317. return AjaxResult.success();
  318. }
  319. //endregion
  320. //region 生成固定内容数据
  321. /**
  322. * 生成支吊架数据
  323. */
  324. private void genZdj(Long subId, String units, String userId) {
  325. if (StringUtils.isNotEmpty(units)) {
  326. for (String unit : units.split(",")) {
  327. TPssrFrameModel model = new TPssrFrameModel();
  328. model.setUnit(unit);
  329. tPssrFrameModelService.selectTPssrFrameModelList(model).forEach(item -> {
  330. TPssrFrame frame = new TPssrFrame();
  331. frame.setSubId(subId);
  332. frame.setRegion(item.getRegion());
  333. frame.setBracketNumber(item.getBracketNumber());
  334. frame.setPipelineNumber(item.getPipelineNumber());
  335. frame.setDevNo(item.getDevNo());
  336. frame.setSupportType(item.getSupportType());
  337. frame.setFramePipe("✔");
  338. frame.setFrameRoot("✔");
  339. frame.setFunctionalPart("✔");
  340. frame.setConnector("✔");
  341. frame.setCreaterCode(userId);
  342. frame.setCreatedate(new Date());
  343. tPssrFrameService.insertTPssrFrame(frame);
  344. });
  345. }
  346. }
  347. }
  348. /**
  349. * 生成人身防护数据
  350. */
  351. private void genRsfh(Long subId, String userId) {
  352. tPssrProtectionService.insertTPssrProtection(new TPssrProtection(subId, "被保温的管道/设备保温防护层外观完好,无缺失。", userId, new Date()));
  353. tPssrProtectionService.insertTPssrProtection(new TPssrProtection(subId, "保温层连接密封处严密,无管道/设备裸露。", userId, new Date()));
  354. tPssrProtectionService.insertTPssrProtection(new TPssrProtection(subId, "管道/设备上的保温层不妨碍操作人员进行现场作业。", userId, new Date()));
  355. }
  356. /**
  357. * 生成静电接地跨接数据
  358. */
  359. private void genJdjdkj(Long subId, String userId) {
  360. tPssrFranklinismService.insertTPssrFranklinism(new TPssrFranklinism(1L, subId, "电气设备按要求接地,接线规范。", userId, new Date()));
  361. tPssrFranklinismService.insertTPssrFranklinism(new TPssrFranklinism(2L, subId, "管线按要求跨接,接线规范。", userId, new Date()));
  362. tPssrFranklinismService.insertTPssrFranklinism(new TPssrFranklinism(3L, subId, "接线端头牢固,无松动。", userId, new Date()));
  363. tPssrFranklinismService.insertTPssrFranklinism(new TPssrFranklinism(4L, subId, "接地电缆无破损,状况良好。", userId, new Date()));
  364. tPssrFranklinismService.insertTPssrFranklinism(new TPssrFranklinism(5L, subId, "接地标记/标识清晰。", userId, new Date()));
  365. }
  366. /**
  367. * 生成现场卫生数据
  368. */
  369. private void genXcws(Long subId, String userId) {
  370. tPssrHygieneService.insertTPssrHygiene(new TPssrHygiene(subId, "现场地面无油渍,积水等。", userId, new Date()));
  371. tPssrHygieneService.insertTPssrHygiene(new TPssrHygiene(subId, "现场无检修施工后的残留物(碎屑, 密封材料, 螺栓,保温材料等) 。", userId, new Date()));
  372. tPssrHygieneService.insertTPssrHygiene(new TPssrHygiene(subId, "所需材料安全堆放在指定区域。 ", userId, new Date()));
  373. tPssrHygieneService.insertTPssrHygiene(new TPssrHygiene(subId, "工器具整齐的放置在指定区域。", userId, new Date()));
  374. tPssrHygieneService.insertTPssrHygiene(new TPssrHygiene(subId, "地沟、污水管网、污水井、清净下水管网、清净下水管井内无杂物,且畅通无阻。", userId, new Date()));
  375. tPssrHygieneService.insertTPssrHygiene(new TPssrHygiene(subId, "无多余的脚手架,现存的脚手架不影响操作人员进行现场作业。", userId, new Date()));
  376. }
  377. /**
  378. * 生成临时电源数据
  379. */
  380. private void genLsdy(Long subId, String userId) {
  381. tPssrPowerService.insertTPssrPower(new TPssrPower(subId, "现场电源插座上无接临时用电设备、临时线路。", new Date(), userId));
  382. tPssrPowerService.insertTPssrPower(new TPssrPower(subId, "现场电源插座外观完好,无破损,插座盖子上紧,无脱落。", new Date(), userId));
  383. }
  384. /**
  385. * 生成照明、电伴热数据
  386. */
  387. private void genZmdbr(Long subId, String userId) {
  388. tPssrLightingService.insertTPssrLighting(new TPssrLighting(1L, subId, "照明灯外观完好,干净,无破损。", "1", userId, new Date()));
  389. tPssrLightingService.insertTPssrLighting(new TPssrLighting(2L, subId, "照明灯无锈蚀。", "1", userId, new Date()));
  390. tPssrLightingService.insertTPssrLighting(new TPssrLighting(3L, subId, "照明灯具固定牢固,无松动。", "1", userId, new Date()));
  391. tPssrLightingService.insertTPssrLighting(new TPssrLighting(4L, subId, "照明导线完好,无破损。", "1", userId, new Date()));
  392. tPssrLightingService.insertTPssrLighting(new TPssrLighting(5L, subId, "照明开关完好。", "1", userId, new Date()));
  393. tPssrLightingService.insertTPssrLighting(new TPssrLighting(6L, subId, "照明设备可以正常打开或者关闭。", "1", userId, new Date()));
  394. tPssrLightingService.insertTPssrLighting(new TPssrLighting(1L, subId, "现场电伴热带无破损断裂,无变形", "2", userId, new Date()));
  395. tPssrLightingService.insertTPssrLighting(new TPssrLighting(2L, subId, "电伴热带与管道设备紧密贴合,无缝隙", "2", userId, new Date()));
  396. tPssrLightingService.insertTPssrLighting(new TPssrLighting(3L, subId, "电源接线盒牢固密封,接线端子无松动锈蚀。", "2", userId, new Date()));
  397. }
  398. /**
  399. * 生成环保设施数据
  400. */
  401. private void genHbss(Long subId, String userId) {
  402. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(1L, subId, "1", "火炬系统检修时所加装的盲板已拆除。", userId, new Date()));
  403. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(2L, subId, "1", "火炬系统已完成氮气置换,氧含量<0.2%。", userId, new Date()));
  404. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(3L, subId, "1", "公用工程(消防水、仪表风、氮气、电、中、低压蒸汽等)已投用或具备使用条件。", userId, new Date()));
  405. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(4L, subId, "1", "火炬系统的所有仪表功能检查正常。", userId, new Date()));
  406. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(5L, subId, "1", "火炬点火用燃料气已引到PCV-9994、PC-9991阀前。", userId, new Date()));
  407. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(6L, subId, "1", "仪表空气已送至PCV-9995阀前。", userId, new Date()));
  408. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(7L, subId, "1", "加热火炬气的甲醇已充进换热器390-E-903,390-E-903的低压蒸汽管线暖管结束。", userId, new Date()));
  409. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(8L, subId, "1", "火炬总管分子封用氮已经投用。", userId, new Date()));
  410. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(9L, subId, "1", "点火器装置和电视监控器等电器设备已送电,设备完好。", userId, new Date()));
  411. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(10L, subId, "1", "火炬消烟蒸汽已引到蒸汽调节阀前,RO-9991~3的前后闸阀全开,管线上所有疏水器均须投用。", userId, new Date()));
  412. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(11L, subId, "1", "由LV-9990向水封罐390-V-940注生产工艺水,直到工艺水由从U形管排出已完成。", userId, new Date()));
  413. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(12L, subId, "1", "设定390-P-940去急冷水塔的流程,已投用390-P-940自启动及停车控制器UC-9990。", userId, new Date()));
  414. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(13L, subId, "1", "已投用各火炬总管端点的吹扫气。", userId, new Date()));
  415. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(14L, subId, "1", "火炬长明灯点火完成,已确认正常。", userId, new Date()));
  416. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(15L, subId, "1", "火炬系统已可以接收装置物料排放。", userId, new Date()));
  417. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(1L, subId, "2", "VOC系统检修时所加装的盲板已拆除。", userId, new Date()));
  418. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(2L, subId, "2", "VOC系统已完成氮气置换,氧含量合格。", userId, new Date()));
  419. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(3L, subId, "2", "公用工程(消防水、仪表风、氮气、电、中、低压蒸汽等)已投用或具备使用条件。", userId, new Date()));
  420. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(4L, subId, "2", "VOC系统的所有仪表功能已检查正常。", userId, new Date()));
  421. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(5L, subId, "2", "VOC系统具备使用条件,开车流程打通,已确认正常。", userId, new Date()));
  422. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(6L, subId, "2", "按操作程序启动390-K-950,已确认K950运行正常。", userId, new Date()));
  423. tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(7L, subId, "2", "VOC系统运行正常,已可以接收VOC排放。", userId, new Date()));
  424. }
  425. /**
  426. * 生成巡检数据
  427. */
  428. private TPssrPatrol getEntity(Long planType, Long subId) {
  429. TPssrPatrol tPssrPatrol = new TPssrPatrol();
  430. tPssrPatrol.setPlanType(planType);
  431. tPssrPatrol.setSubId(subId);
  432. return tPssrPatrol;
  433. }
  434. /**
  435. * 生成原辅料数据
  436. */
  437. private void genYfl(Long subId, String userId) {
  438. tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Electr. Power", "MWH", userId, new Date(), 0L));
  439. tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "LP steam ", "Ton", userId, new Date(), 0L));
  440. tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "MP steam", "Ton", userId, new Date(), 0L));
  441. tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "HP steam ", "Ton", userId, new Date(), 0L));
  442. tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Potable water", "Ton", userId, new Date(), 0L));
  443. tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "production water", "Ton", userId, new Date(), 0L));
  444. tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "LP fire water", "Ton", userId, new Date(), 0L));
  445. tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "HP fire water", "Ton", userId, new Date(), 0L));
  446. tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Cooling water", "Ton", userId, new Date(), 0L));
  447. tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Polished Water", "Ton", userId, new Date(), 0L));
  448. tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Nitrogen", "Nm3", userId, new Date(), 0L));
  449. tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Plant Air", "Nm3", userId, new Date(), 0L));
  450. tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Instrument Air", "Nm3", userId, new Date(), 0L));
  451. tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "WW(only quantity)", "Ton", userId, new Date(), 0L));
  452. tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Naphtha", "Ton", userId, new Date(), 0L));
  453. tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Flux Oil", "Ton", userId, new Date(), 0L));
  454. tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Wash Oil", "Ton", userId, new Date(), 0L));
  455. tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "C6-C8", "Ton", userId, new Date(), 0L));
  456. tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Natural Gas", "Ton", userId, new Date(), 0L));
  457. tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Ethylene", "Ton", userId, new Date(), 0L));
  458. tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Propylene", "Ton", userId, new Date(), 0L));
  459. tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Toluene", "Ton", userId, new Date(), 0L));
  460. }
  461. /**
  462. * 生成安全阀数据
  463. */
  464. private void genAqf(TPssrSubcontent subcontent, String userId) {
  465. if (StringUtils.isNotEmpty(subcontent.getUnit()))
  466. for (String unit : subcontent.getUnit().split(",")) {
  467. TSafetyvavle query = new TSafetyvavle();
  468. query.setSubarea(unit);
  469. for (TSafetyvavle vavle : tSafetyvavleService.selectTSafetyvavleList(query)) {
  470. TPssrSafetyValve pssr = new TPssrSafetyValve();
  471. pssr.setUnit(unit);
  472. pssr.setSubId(subcontent.getId());
  473. pssr.setDevNo(vavle.getTagno());
  474. pssr.setInstallLocation(vavle.getPlacedesc());
  475. pssr.setSafetyDev(vavle.getService());
  476. pssr.setPidNo(vavle.getPid());
  477. pssr.setSetPressure(vavle.getSettingpres());
  478. pssr.setApproveStatus(0L);
  479. pssr.setCreatedate(new Date());
  480. pssr.setCreaterCode(userId);
  481. tPssrSafetyValveService.insertTPssrSafetyValve(pssr);
  482. }
  483. }
  484. }
  485. /**
  486. * 生成公用工程数据
  487. */
  488. private void genGygc(Long subId, String userId) {
  489. tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统N2已投用或具备投用条件。", "界区阀已打开,N2总管压力390PI9114压力达( )kPa。", "N2总管压力390PI9114压力达( )kPa。", userId, new Date()));
  490. tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统IA已投用或具备投用条件:", "界区阀已打开,IA管压力PI3901压力达( )kPa。", "IA管压力PI3901压力达( )kPa。", userId, new Date()));
  491. tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统PA已投用或具备投用条件。", "界区阀已打开,PA管压力PI3902压力达( )kPa。", "PA管压力PI3902压力达( )kPa。", userId, new Date()));
  492. tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统CW已投用或具备投用条件。", "界区阀已打开,CW进出口压差达( )kPa。", "CW进出口压差达( )kPa。", userId, new Date()));
  493. tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统高压蒸汽已投用或具备投用条件。", "界区阀已打开,PC9112压力达( )MPa,TI9061温度达( )℃。", "PC9112压力达( )MPa,TI9061温度达( )℃。", userId, new Date()));
  494. tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统中压蒸汽已投用或具备投用条件。", "界区阀已打开,PC9081压力达( )MPa,TI9081温度达( )℃。", "PC9081压力达( )MPa,TI9081温度达( )℃。", userId, new Date()));
  495. tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统低压蒸汽已投用或具备投用条件。", "界区阀已打开,PY9109压力达( )MPa,TI9115温度达( )℃。", "PY9109压力达( )MPa,TI9115温度达( )℃。", userId, new Date()));
  496. tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统精制凝液已投用或具备投用条件。", "界区阀已打开,P3505A/B/C压力达( )MPa。", "P3505A/B/C压力达( )MPa。", userId, new Date()));
  497. }
  498. //endregion
  499. //region 根据模板旧数据生成数据
  500. /**
  501. * 根据模板旧数据生成数据
  502. */
  503. private void genPssrDataByModel(TPssrAboveall model, TPssrAboveall newData, String userId) {
  504. // new Thread(() -> {//同步模板数据
  505. TPssrSubcontent subcontent = new TPssrSubcontent();
  506. subcontent.setAboveallId(model.getId());
  507. //查询旧数据对应的子表信息,然后根据模板生成新的子表数据
  508. for (TPssrSubcontent oldSub : tPssrSubcontentService.selectTPssrSubcontentList(subcontent)) {
  509. //查询模板中是否有该子表数据,如果有则生成新的子表数据
  510. TPssrSubcontent sub = new TPssrSubcontent();
  511. sub.setAboveallId(newData.getId());
  512. sub.setForShort(oldSub.getForShort());
  513. TPssrSubcontent newSub = tPssrSubcontentService.selectTPssrSubcontentList(sub).get(0);
  514. switch (oldSub.getForShort()) {
  515. case "jxxm":
  516. genJxxm(oldSub, newSub, userId);
  517. break;
  518. case "kgfa":
  519. genKgfa(oldSub, newSub, userId);
  520. break;
  521. case "sjbg":
  522. genSjgb(oldSub, newSub, userId);
  523. break;
  524. case "mb":
  525. genMb(oldSub, newSub, userId);
  526. break;
  527. case "sbqjd":
  528. genSbqjd(oldSub, newSub, userId);
  529. break;
  530. case "qm":
  531. genQm(oldSub, newSub, userId);
  532. break;
  533. case "sksgfmzt":
  534. genSksgfmzt(oldSub, newSub, userId);
  535. break;
  536. case "sys":
  537. genSys(oldSub, newSub, userId);
  538. break;
  539. case "dj":
  540. genDj(oldSub, newSub, userId);
  541. break;
  542. case "dqzh":
  543. genDqzh(oldSub, newSub, userId);
  544. break;
  545. case "aqss":
  546. genAqss(oldSub, newSub, userId);
  547. break;
  548. case "jb":
  549. genJb(oldSub, newSub, userId);
  550. break;
  551. case "ybjy":
  552. genYbjy(oldSub, newSub, userId);
  553. break;
  554. case "yblscs":
  555. genYblscs(oldSub, newSub, userId);
  556. break;
  557. case "bjlszqr":
  558. genBjlszqr(oldSub, newSub, userId);
  559. break;
  560. case "djsb":
  561. genDjsb(oldSub, newSub, userId);
  562. break;
  563. case "qtjcy":
  564. genQtjcy(oldSub, newSub, userId);
  565. break;
  566. case "zxfxy":
  567. genZxfxy(oldSub, newSub, userId);
  568. break;
  569. }
  570. }
  571. // }, "新增模板子表数据").start();
  572. }
  573. /**
  574. * 生成短接数据
  575. */
  576. private void genDj(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  577. TPssrCircuit circuit = new TPssrCircuit();
  578. circuit.setSubId(oldSub.getId());
  579. for (TPssrCircuit oldItem : tPssrCircuitService.selectTPssrCircuitList(circuit)) {
  580. TPssrCircuit newItem = oldItem;
  581. newItem.setSubId(newSub.getId());
  582. newItem.setId(null);
  583. newItem.setCreatedate(new Date());
  584. newItem.setCreaterCode(userId);
  585. newItem.setConfirmationDate(null);
  586. newItem.setApproveStatus(0L);
  587. newItem.setUpdaterCode(null);
  588. newItem.setUpdatedate(null);
  589. tPssrCircuitService.insertTPssrCircuit(newItem);
  590. }
  591. }
  592. /**
  593. * 生成实验室数据
  594. */
  595. private void genSys(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  596. TPssrLaboratory laboratory = new TPssrLaboratory();
  597. laboratory.setSubId(oldSub.getId());
  598. for (TPssrLaboratory oldItem : tPssrLaboratoryService.selectTPssrLaboratoryList(laboratory)) {
  599. TPssrLaboratory newItem = oldItem;
  600. newItem.setSubId(newSub.getId());
  601. newItem.setId(null);
  602. newItem.setCreatedate(new Date());
  603. newItem.setCreaterCode(userId);
  604. newItem.setConfirmationDate(null);
  605. newItem.setApproveStatus(0L);
  606. newItem.setUpdaterCode(null);
  607. newItem.setUpdatedate(null);
  608. tPssrLaboratoryService.insertTPssrLaboratory(newItem);
  609. }
  610. }
  611. /**
  612. * 生成锁开锁关数据
  613. */
  614. private void genSksgfmzt(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  615. TPssrLock lock = new TPssrLock();
  616. lock.setSubId(oldSub.getId());
  617. for (TPssrLock oldItem : tPssrLockService.selectTPssrLockList(lock)) {
  618. TPssrLock newItem = oldItem;
  619. newItem.setSubId(newSub.getId());
  620. newItem.setId(null);
  621. newItem.setCreatedate(new Date());
  622. newItem.setCreaterCode(userId);
  623. newItem.setConfirmationDate(null);
  624. newItem.setApproveStatus(0L);
  625. newItem.setUpdaterCode(null);
  626. newItem.setUpdatedate(null);
  627. tPssrLockService.insertTPssrLock(newItem);
  628. }
  629. }
  630. /**
  631. * 生成气密数据
  632. */
  633. private void genQm(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  634. TPssrAirtight airtight = new TPssrAirtight();
  635. airtight.setSubId(oldSub.getId());
  636. for (TPssrAirtight oldItem : tPssrAirtightService.selectTPssrAirtightList(airtight)) {
  637. TPssrAirtight newItem = oldItem;
  638. newItem.setSubId(newSub.getId());
  639. newItem.setId(null);
  640. newItem.setCreatedate(new Date());
  641. newItem.setCreaterCode(userId);
  642. newItem.setConfirmationDate(null);
  643. newItem.setApproveStatus(0L);
  644. newItem.setUpdaterCode(null);
  645. newItem.setUpdatedate(null);
  646. tPssrAirtightService.insertTPssrAirtight(newItem);
  647. }
  648. }
  649. /**
  650. * 生成设备清洁度数据
  651. */
  652. private void genSbqjd(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  653. TPssrCleaning cleaning = new TPssrCleaning();
  654. cleaning.setSubId(oldSub.getId());
  655. for (TPssrCleaning oldItem : tPssrCleaningService.selectTPssrCleaningList(cleaning)) {
  656. TPssrCleaning newItem = oldItem;
  657. newItem.setSubId(newSub.getId());
  658. newItem.setId(null);
  659. newItem.setCreatedate(new Date());
  660. newItem.setCreaterCode(userId);
  661. newItem.setConfirmationDate(null);
  662. newItem.setApproveStatus(0L);
  663. newItem.setUpdaterCode(null);
  664. newItem.setUpdatedate(null);
  665. tPssrCleaningService.insertTPssrCleaning(newItem);
  666. }
  667. }
  668. /**
  669. * 生成盲板数据
  670. */
  671. private void genMb(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  672. TPssrBlind blind = new TPssrBlind();
  673. blind.setSubId(oldSub.getId());
  674. for (TPssrBlind oldItem : tPssrBlindService.selectTPssrBlindList(blind)) {
  675. TPssrBlind newItem = oldItem;
  676. newItem.setSubId(newSub.getId());
  677. newItem.setId(null);
  678. newItem.setCreatedate(new Date());
  679. newItem.setCreaterCode(userId);
  680. newItem.setInstallDate(null);
  681. newItem.setApproveStatus(0L);
  682. newItem.setUpdaterCode(null);
  683. newItem.setUpdatedate(null);
  684. tPssrBlindService.insertTPssrBlind(newItem);
  685. }
  686. }
  687. /**
  688. * 生成氮气置换数据
  689. */
  690. private void genDqzh(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  691. TPssrNitrogen nitrogen = new TPssrNitrogen();
  692. nitrogen.setSubId(oldSub.getId());
  693. for (TPssrNitrogen oldItem : tPssrNitrogenService.selectTPssrNitrogenList(nitrogen)) {
  694. TPssrNitrogen newItem = oldItem;
  695. newItem.setSubId(newSub.getId());
  696. newItem.setId(null);
  697. newItem.setCreatedate(new Date());
  698. newItem.setCreaterCode(userId);
  699. newItem.setConfirmationDate(null);
  700. newItem.setApproveStatus(0L);
  701. newItem.setUpdaterCode(null);
  702. newItem.setUpdatedate(null);
  703. tPssrNitrogenService.insertTPssrNitrogen(newItem);
  704. }
  705. }
  706. /**
  707. * 生成安全设施数据
  708. */
  709. private void genAqss(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  710. //泄放阀
  711. TPssrSafetyBleed safetyBleed = new TPssrSafetyBleed();
  712. safetyBleed.setSubId(oldSub.getId());
  713. for (TPssrSafetyBleed oldItem : tPssrSafetyBleedService.selectTPssrSafetyBleedList(safetyBleed)) {
  714. TPssrSafetyBleed newItem = oldItem;
  715. newItem.setSubId(newSub.getId());
  716. newItem.setId(null);
  717. newItem.setCreatedate(new Date());
  718. newItem.setCreaterCode(userId);
  719. newItem.setApproveStatus(0L);
  720. newItem.setUpdaterCode(null);
  721. newItem.setUpdatedate(null);
  722. tPssrSafetyBleedService.insertTPssrSafetyBleed(newItem);
  723. }
  724. //呼吸阀
  725. TPssrSafetyBreath safetyBreath = new TPssrSafetyBreath();
  726. safetyBreath.setSubId(oldSub.getId());
  727. for (TPssrSafetyBreath oldItem : tPssrSafetyBreathService.selectTPssrSafetyBreathList(safetyBreath)) {
  728. TPssrSafetyBreath newItem = oldItem;
  729. newItem.setSubId(newSub.getId());
  730. newItem.setId(null);
  731. newItem.setCreatedate(new Date());
  732. newItem.setCreaterCode(userId);
  733. newItem.setApproveStatus(0L);
  734. newItem.setUpdaterCode(null);
  735. newItem.setUpdatedate(null);
  736. tPssrSafetyBreathService.insertTPssrSafetyBreath(newItem);
  737. }
  738. //爆破片
  739. TPssrSafetyBrust safetyBrust = new TPssrSafetyBrust();
  740. safetyBrust.setSubId(oldSub.getId());
  741. for (TPssrSafetyBrust oldItem : tPssrSafetyBrustService.selectTPssrSafetyBrustList(safetyBrust)) {
  742. TPssrSafetyBrust newItem = oldItem;
  743. newItem.setSubId(newSub.getId());
  744. newItem.setId(null);
  745. newItem.setCreatedate(new Date());
  746. newItem.setCreaterCode(userId);
  747. newItem.setApproveStatus(0L);
  748. newItem.setUpdaterCode(null);
  749. newItem.setUpdatedate(null);
  750. tPssrSafetyBrustService.insertTPssrSafetyBrust(newItem);
  751. }
  752. //阻火器
  753. TPssrSafetyFlamearrester safetyFlamearrester = new TPssrSafetyFlamearrester();
  754. safetyFlamearrester.setSubId(oldSub.getId());
  755. for (TPssrSafetyFlamearrester oldItem : tPssrSafetyFlamearresterService.selectTPssrSafetyFlamearresterList(safetyFlamearrester)) {
  756. TPssrSafetyFlamearrester newItem = oldItem;
  757. newItem.setSubId(newSub.getId());
  758. newItem.setId(null);
  759. newItem.setCreatedate(new Date());
  760. newItem.setCreaterCode(userId);
  761. newItem.setApproveStatus(0L);
  762. newItem.setUpdaterCode(null);
  763. newItem.setUpdatedate(null);
  764. tPssrSafetyFlamearresterService.insertTPssrSafetyFlamearrester(newItem);
  765. }
  766. }
  767. /**
  768. * 生成机泵数据
  769. */
  770. private void genJb(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  771. TPssrPumpCleaning pumpCleaning = new TPssrPumpCleaning();
  772. pumpCleaning.setSubId(oldSub.getId());
  773. for (TPssrPumpCleaning oldItem : tPssrPumpCleaningService.selectTPssrPumpCleaningList(pumpCleaning)) {
  774. TPssrPumpCleaning newItem = oldItem;
  775. newItem.setSubId(newSub.getId());
  776. newItem.setId(null);
  777. newItem.setCreatedate(new Date());
  778. newItem.setCreaterCode(userId);
  779. newItem.setConfirmationDate(null);
  780. newItem.setApproveStatus(0L);
  781. newItem.setUpdaterCode(null);
  782. newItem.setUpdatedate(null);
  783. tPssrPumpCleaningService.insertTPssrPumpCleaning(newItem);
  784. }
  785. TPssrPumpFill pumpFill = new TPssrPumpFill();
  786. pumpFill.setSubId(oldSub.getId());
  787. for (TPssrPumpFill oldItem : tPssrPumpFillService.selectTPssrPumpFillList(pumpFill)) {
  788. TPssrPumpFill newItem = oldItem;
  789. newItem.setSubId(newSub.getId());
  790. newItem.setId(null);
  791. newItem.setCreatedate(new Date());
  792. newItem.setCreaterCode(userId);
  793. newItem.setConfirmationDate(null);
  794. newItem.setApproveStatus(0L);
  795. newItem.setUpdaterCode(null);
  796. newItem.setUpdatedate(null);
  797. tPssrPumpFillService.insertTPssrPumpFill(newItem);
  798. }
  799. TPssrPumpOverhaul pumpOverhaul = new TPssrPumpOverhaul();
  800. pumpOverhaul.setSubId(oldSub.getId());
  801. for (TPssrPumpOverhaul oldItem : tPssrPumpOverhaulService.selectTPssrPumpOverhaulList(pumpOverhaul)) {
  802. TPssrPumpOverhaul newItem = oldItem;
  803. newItem.setSubId(newSub.getId());
  804. newItem.setId(null);
  805. newItem.setCreatedate(new Date());
  806. newItem.setCreaterCode(userId);
  807. newItem.setConfirmationDate(null);
  808. newItem.setApproveStatus(0L);
  809. newItem.setUpdaterCode(null);
  810. newItem.setUpdatedate(null);
  811. tPssrPumpOverhaulService.insertTPssrPumpOverhaul(newItem);
  812. }
  813. }
  814. /**
  815. * 生成仪表校验数据
  816. */
  817. private void genYbjy(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  818. TPssrInstrumentCalibration instrumentCalibration = new TPssrInstrumentCalibration();
  819. instrumentCalibration.setSubId(oldSub.getId());
  820. for (TPssrInstrumentCalibration oldItem : tPssrInstrumentCalibrationService.selectTPssrInstrumentCalibrationList(instrumentCalibration)) {
  821. TPssrInstrumentCalibration newItem = oldItem;
  822. newItem.setSubId(newSub.getId());
  823. newItem.setId(null);
  824. newItem.setCreatedate(new Date());
  825. newItem.setCreaterCode(userId);
  826. newItem.setConfirmationDate(null);
  827. newItem.setApproveStatus(0L);
  828. newItem.setUpdaterCode(null);
  829. newItem.setUpdatedate(null);
  830. tPssrInstrumentCalibrationService.insertTPssrInstrumentCalibration(newItem);
  831. }
  832. }
  833. /**
  834. * 生成仪表连锁测试数据
  835. */
  836. private void genYblscs(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  837. TPssrInstrumentTest instrumentTest = new TPssrInstrumentTest();
  838. instrumentTest.setSubId(oldSub.getId());
  839. for (TPssrInstrumentTest oldItem : tPssrInstrumentTestService.selectTPssrInstrumentTestList(instrumentTest)) {
  840. TPssrInstrumentTest newItem = oldItem;
  841. newItem.setSubId(newSub.getId());
  842. newItem.setId(null);
  843. newItem.setCreatedate(new Date());
  844. newItem.setCreaterCode(userId);
  845. newItem.setApproveStatus(0L);
  846. newItem.setUpdaterCode(null);
  847. newItem.setUpdatedate(null);
  848. tPssrInstrumentTestService.insertTPssrInstrumentTest(newItem);
  849. }
  850. }
  851. /**
  852. * 生成报警连锁值确认数据
  853. */
  854. private void genBjlszqr(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  855. TPssrAlarm alarm = new TPssrAlarm();
  856. alarm.setSubId(oldSub.getId());
  857. for (TPssrAlarm oldItem : tPssrAlarmService.selectTPssrAlarmList(alarm)) {
  858. TPssrAlarm newItem = oldItem;
  859. newItem.setSubId(newSub.getId());
  860. newItem.setId(null);
  861. newItem.setCreatedate(new Date());
  862. newItem.setCreaterCode(userId);
  863. newItem.setApproveStatus(0L);
  864. newItem.setUpdaterCode(null);
  865. newItem.setUpdatedate(null);
  866. tPssrAlarmService.insertTPssrAlarm(newItem);
  867. }
  868. }
  869. /**
  870. * 生成电机设备数据
  871. */
  872. private void genDjsb(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  873. TPssrMotor motor = new TPssrMotor();
  874. motor.setSubId(oldSub.getId());
  875. for (TPssrMotor oldItem : tPssrMotorService.selectTPssrMotorList(motor)) {
  876. TPssrMotor newItem = oldItem;
  877. newItem.setSubId(newSub.getId());
  878. newItem.setId(null);
  879. newItem.setCreatedate(new Date());
  880. newItem.setCreaterCode(userId);
  881. newItem.setConfirmationDate(null);
  882. newItem.setApproveStatus(0L);
  883. newItem.setUpdaterCode(null);
  884. newItem.setUpdatedate(null);
  885. tPssrMotorService.insertTPssrMotor(newItem);
  886. }
  887. }
  888. /**
  889. * 生成气体检测仪数据
  890. */
  891. private void genQtjcy(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  892. TPssrGasdetector gasdetector = new TPssrGasdetector();
  893. gasdetector.setSubId(oldSub.getId());
  894. for (TPssrGasdetector oldItem : tPssrGasdetectorService.selectTPssrGasdetectorList(gasdetector)) {
  895. TPssrGasdetector newItem = oldItem;
  896. newItem.setSubId(newSub.getId());
  897. newItem.setId(null);
  898. newItem.setCreatedate(new Date());
  899. newItem.setCreaterCode(userId);
  900. newItem.setConfirmationDate(null);
  901. newItem.setApproveStatus(0L);
  902. newItem.setUpdaterCode(null);
  903. newItem.setUpdatedate(null);
  904. tPssrGasdetectorService.insertTPssrGasdetector(newItem);
  905. }
  906. }
  907. /**
  908. * 生成在线分析仪数据
  909. */
  910. private void genZxfxy(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  911. TPssrAnalyzer analyzer = new TPssrAnalyzer();
  912. analyzer.setSubId(oldSub.getId());
  913. for (TPssrAnalyzer oldItem : tPssrAnalyzerService.selectTPssrAnalyzerList(analyzer)) {
  914. TPssrAnalyzer newItem = oldItem;
  915. newItem.setSubId(newSub.getId());
  916. newItem.setId(null);
  917. newItem.setCreatedate(new Date());
  918. newItem.setCreaterCode(userId);
  919. newItem.setConfirmationDate(null);
  920. newItem.setApproveStatus(0L);
  921. newItem.setUpdaterCode(null);
  922. newItem.setUpdatedate(null);
  923. tPssrAnalyzerService.insertTPssrAnalyzer(newItem);
  924. }
  925. }
  926. /**
  927. * 生成设计变更数据
  928. */
  929. private void genSjgb(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  930. TPssrMoc moc = new TPssrMoc();
  931. moc.setSubId(oldSub.getId());
  932. for (TPssrMoc oldItem : tPssrMocService.selectTPssrMocList(moc)) {
  933. TPssrMoc newItem = oldItem;
  934. newItem.setSubId(newSub.getId());
  935. newItem.setId(null);
  936. newItem.setCreatedate(new Date());
  937. newItem.setCreaterCode(userId);
  938. newItem.setConfirmationDate(null);
  939. newItem.setApproveStatus(0L);
  940. newItem.setUpdaterCode(null);
  941. newItem.setUpdatedate(null);
  942. tPssrMocService.insertTPssrMoc(newItem);
  943. }
  944. }
  945. /**
  946. * 生成检修项目数据
  947. */
  948. private void genJxxm(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  949. //换热器
  950. TPssrOverhaulExchanger overhaulExchanger = new TPssrOverhaulExchanger();
  951. overhaulExchanger.setSubId(oldSub.getId());
  952. for (TPssrOverhaulExchanger exchanger : tPssrOverhaulExchangerService.selectTPssrOverhaulExchangerList(overhaulExchanger)) {
  953. TPssrOverhaulExchanger newItem = exchanger;
  954. newItem.setSubId(newSub.getId());
  955. newItem.setId(null);
  956. newItem.setCreatedate(new Date());
  957. newItem.setCreaterCode(userId);
  958. newItem.setCompletionDate(null);
  959. newItem.setApproveStatus(0L);
  960. newItem.setUpdaterCode(null);
  961. newItem.setUpdatedate(null);
  962. tPssrOverhaulExchangerService.insertTPssrOverhaulExchanger(newItem);
  963. }
  964. //过滤器
  965. TPssrOverhaulFilter overhaulFilter = new TPssrOverhaulFilter();
  966. overhaulFilter.setSubId(oldSub.getId());
  967. for (TPssrOverhaulFilter filter : tPssrOverhaulFilterService.selectTPssrOverhaulFilterList(overhaulFilter)) {
  968. TPssrOverhaulFilter newItem = filter;
  969. newItem.setSubId(newSub.getId());
  970. newItem.setId(null);
  971. newItem.setCreatedate(new Date());
  972. newItem.setCreaterCode(userId);
  973. newItem.setCompletionDate(null);
  974. newItem.setApproveStatus(0L);
  975. newItem.setUpdaterCode(null);
  976. newItem.setUpdatedate(null);
  977. tPssrOverhaulFilterService.insertTPssrOverhaulFilter(newItem);
  978. }
  979. //塔罐
  980. TPssrOverhaulTower overhaulTower = new TPssrOverhaulTower();
  981. overhaulTower.setSubId(oldSub.getId());
  982. for (TPssrOverhaulTower tower : tPssrOverhaulTowerService.selectTPssrOverhaulTowerList(overhaulTower)) {
  983. TPssrOverhaulTower newItem = tower;
  984. newItem.setSubId(newSub.getId());
  985. newItem.setId(null);
  986. newItem.setCreatedate(new Date());
  987. newItem.setCreaterCode(userId);
  988. newItem.setCompletionDate(null);
  989. newItem.setApproveStatus(0L);
  990. newItem.setUpdaterCode(null);
  991. newItem.setUpdatedate(null);
  992. tPssrOverhaulTowerService.insertTPssrOverhaulTower(newItem);
  993. }
  994. //阀门
  995. TPssrOverhaulValve overhaulValve = new TPssrOverhaulValve();
  996. overhaulValve.setSubId(oldSub.getId());
  997. for (TPssrOverhaulValve valve : tPssrOverhaulValveService.selectTPssrOverhaulValveList(overhaulValve)) {
  998. TPssrOverhaulValve newItem = valve;
  999. newItem.setSubId(newSub.getId());
  1000. newItem.setId(null);
  1001. newItem.setCreatedate(new Date());
  1002. newItem.setCreaterCode(userId);
  1003. newItem.setDoneDate(null);
  1004. newItem.setApproveStatus(0L);
  1005. newItem.setUpdaterCode(null);
  1006. newItem.setUpdatedate(null);
  1007. tPssrOverhaulValveService.insertTPssrOverhaulValve(newItem);
  1008. }
  1009. }
  1010. /**
  1011. * 生成开工方案数据
  1012. */
  1013. private void genKgfa(TPssrSubcontent oldSub, TPssrSubcontent newSub, String userId) {
  1014. TPssrProgramme programme = new TPssrProgramme();
  1015. programme.setSubId(oldSub.getId());
  1016. for (TPssrProgramme oldItem : tPssrProgrammeService.selectTPssrProgrammeList(programme)) {
  1017. TPssrProgramme newItem = oldItem;
  1018. newItem.setSubId(newSub.getId());
  1019. newItem.setId(null);
  1020. newItem.setCreatedate(new Date());
  1021. newItem.setCreaterCode(userId);
  1022. newItem.setApproveStatus(0L);
  1023. newItem.setUpdaterCode(null);
  1024. newItem.setUpdatedate(null);
  1025. tPssrProgrammeService.insertTPssrProgramme(newItem);
  1026. }
  1027. }
  1028. //endregion
  1029. // region 发邮件
  1030. private void sendEmail(Set<Long> userIds, TPssrAboveall tPssrAboveall) {
  1031. for (Long userId : userIds) {
  1032. try {
  1033. SysUser sysUser = userService.selectUserById(userId);
  1034. String email = sysUser.getEmail();
  1035. String username = sysUser.getNickName();
  1036. String loginName = sysUser.getUserName();
  1037. String usernameEN = PinyinHelper.convertToPinyinString(username, " ", PinyinFormat.WITHOUT_TONE);
  1038. logger.info("email:" + email);
  1039. logger.info("username:" + username);
  1040. //写html开始内容
  1041. String start = "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title></title></head><body><div style=\"background-color:#ECECEC; padding: 35px;\">" +
  1042. "<table cellpadding=\"0\" align=\"center\"" +
  1043. "style=\"width: 600px; margin: 0px auto; text-align: left; position: relative; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; font-size: 14px; font-family:微软雅黑, 黑体; line-height: 1.5; box-shadow: rgb(153, 153, 153) 0px 0px 5px; border-collapse: collapse; background-position: initial initial; background-repeat: initial initial;background:#fff;\">" +
  1044. "<tbody><tr><th valign=\"middle\" style=\"height: 25px; line-height: 25px; padding: 15px 35px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #42a3d3; background-color: #49bcff; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px;\">" +
  1045. "<font face=\"微软雅黑\" size=\"5\" style=\"color: rgb(255, 255, 255); \">PSSR检查确认 </font><font face=\"微软雅黑\" size=\"3\" style=\"color: rgb(255, 255, 255); \">PSSR</font></th></tr>";
  1046. //表html中间内容
  1047. String prime = "";
  1048. String center = "<tr><td><div style=\"padding:25px 35px 40px; background-color:#fff;\"><h2 style=\"margin: 5px 0px; \">" +
  1049. "<font color=\"#333333\" style=\"line-height: 20px; \"><font style=\"line-height: 22px; \" size=\"4\">" +
  1050. "亲爱的 username(loginName)</font><br><font style=\"line-height: 22px; \" size=\"4\">" +
  1051. "Dear usernameEN(loginName)</font></font></h2>" +
  1052. "<p>region区域unit的PSSR检查确认已经开始,预计开车时间为startDate:<br>" +
  1053. "You Have A New PSSR:<br>" +
  1054. "请登录<a href=\"https://cpms.basf-ypc.net.cn/cpms/index.html#/pssr/subcontent/aboveallId\">PSSR清单中</a>查看。<br>" +
  1055. "Please log in the <a href=\"https://cpms.basf-ypc.net.cn/cpms/index.html#/pssr/aboveall\">PSSR</a> to handle it.</p>" +
  1056. "<p align=\"right\">date</p>" +
  1057. "<div style=\"width:700px;margin:0 auto;\">" +
  1058. "<div style=\"padding:10px 10px 0;border-top:1px solid #ccc;color:#747474;margin-bottom:20px;line-height:1.3em;font-size:12px;\">" +
  1059. "<p>此为系统邮件,请勿回复<br>This e-Mail is an automatic reminder sent by CPMS, please do not reply</p>" +
  1060. "</div></div></div></td></tr>";
  1061. String one = center.replaceFirst("username", username);
  1062. String two = one.replaceFirst("usernameEN", usernameEN);
  1063. String three = two.replace("loginName", loginName);
  1064. String four = three.replace("region", tPssrAboveall.getRegion());
  1065. String five = four.replace("unit", "," + tPssrAboveall.getUnit() + "单元");
  1066. String six = five.replace("aboveallId", tPssrAboveall.getId().toString() );
  1067. String seven = six.replaceFirst("startDate", DateUtils.dateTime(tPssrAboveall.getDrivingTime()));
  1068. String result = seven.replaceFirst("date", DateUtils.dateTime());
  1069. prime = prime + result;
  1070. //写html结尾内容
  1071. String end = "</tbody></table></div></body></html>";
  1072. //拼接html
  1073. String html = start + prime + end;
  1074. logger.info("html:" + html);
  1075. mailService.sendHtmlMail(email, "PSSR:您有新的PSSR检查待处理", html);
  1076. } catch (Exception e) {
  1077. logger.error("邮件发送失败" + JSON.toJSONString(e));
  1078. }
  1079. try {
  1080. //极光推送
  1081. jiGuangPushService.send("PSSR审批", "您有一个新的待办任务,请及时处理。", String.valueOf(userId));
  1082. //系统消息推送
  1083. SysMessage sysMessage = new SysMessage();
  1084. sysMessage.setMsgTitle("PSSR审批");
  1085. sysMessage.setMsgContent("您有一个新的待办任务,请及时处理。");
  1086. sysMessage.setUserId(userId);
  1087. sysMessageService.insertSysMessage(sysMessage);
  1088. } catch (Exception e) {
  1089. logger.error("推送失败:{}", JSON.toJSONString(e));
  1090. }
  1091. }
  1092. }
  1093. // endregion
  1094. }