TPssrAboveallController.java 58 KB

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