package com.ruoyi.project.pssr.controller; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.project.pssr.domain.*; import com.ruoyi.project.pssr.service.*; import com.ruoyi.project.reliability.domain.TSafetyvavle; import com.ruoyi.project.reliability.service.ITSafetyvavleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * PSSRController * * @author ssy * @date 2024-09-18 */ @RestController @RequestMapping("/pssr/aboveall") public class TPssrAboveallController extends BaseController { @Autowired private ITPssrAboveallService tPssrAboveallService; @Autowired private ITPssrSubcontentService tPssrSubcontentService; @Autowired private ITPssrPatrolService tPssrPatrolService; @Autowired private ITPssrMaterialService tPssrMaterialService; @Autowired private ITPssrMaterialRawService tPssrMaterialRawService; @Autowired private ITPssrMocService tPssrMocService; @Autowired private ITSafetyvavleService tSafetyvavleService; @Autowired private ITPssrSafetyValveService tPssrSafetyValveService; @Autowired private ITPssrPublicService tPssrPublicService; @Autowired private ITPssrTorchvocService tPssrTorchvocService; @Autowired private ITPssrLightingService tPssrLightingService; @Autowired private ITPssrPowerService tPssrPowerService; @Autowired private TPssrApproveController tPssrApproveController; /** * 查询PSSR列表 */ @PreAuthorize("@ss.hasPermi('pssr:aboveall:list')") @GetMapping("/list") public TableDataInfo list(TPssrAboveall tPssrAboveall) { startPage(); List list = tPssrAboveallService.selectTPssrAboveallList(tPssrAboveall); return getDataTable(list); } /** * 导出PSSR列表 */ @PreAuthorize("@ss.hasPermi('pssr:aboveall:export')") @Log(title = "PSSR", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(TPssrAboveall tPssrAboveall) { List list = tPssrAboveallService.selectTPssrAboveallList(tPssrAboveall); ExcelUtil util = new ExcelUtil(TPssrAboveall.class); return util.exportExcel(list, "aboveall"); } /** * 获取PSSR详细信息 */ @PreAuthorize("@ss.hasPermi('pssr:aboveall:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(tPssrAboveallService.selectTPssrAboveallById(id)); } /** * 新增PSSR */ @PreAuthorize("@ss.hasPermi('pssr:aboveall:add')") @Log(title = "PSSR", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody TPssrAboveall tPssrAboveall) { tPssrAboveallService.insertTPssrAboveall(tPssrAboveall);//新增主表数据 String userId = getUserId().toString(); //新增子表数据 new Thread(() -> { for (TPssrSubcontent subcontent : tPssrAboveall.getSubcontents()) { if (subcontent.getStatus() == 1) { subcontent.setAboveallId(tPssrAboveall.getId());//主表id subcontent.setRegion(tPssrAboveall.getRegion()); subcontent.setUnit(tPssrAboveall.getUnit()); subcontent.setUnitDes(tPssrAboveall.getUnitDes()); subcontent.setApproveStatus(0L); subcontent.setCreatedate(new Date()); subcontent.setCreaterCode(userId); tPssrSubcontentService.insertTPssrSubcontent(subcontent); if (subcontent.getForShort().equals("xqf")) { List tPssrPatrols = new ArrayList<>(); // 手提式/小推车式灭火器/灭火器材箱检查记录,1 tPssrPatrols.add(getEntity(1L, subcontent.getId())); // 消防水炮检查记录,2 tPssrPatrols.add(getEntity(2L, subcontent.getId())); // 地上消火栓检查记录,3 tPssrPatrols.add(getEntity(3L, subcontent.getId())); // 消防水带箱检查记录,4 tPssrPatrols.add(getEntity(4L, subcontent.getId())); // 消防竖管检查记录,5 tPssrPatrols.add(getEntity(5L, subcontent.getId())); // 自动喷淋灭火系统检查记录,6 tPssrPatrols.add(getEntity(6L, subcontent.getId())); // 应急事故柜检查记录,7 tPssrPatrols.add(getEntity(7L, subcontent.getId())); // 现场可燃气体检测器/火灾报警系统检查记录,8 tPssrPatrols.add(getEntity(8L, subcontent.getId())); // CO2气体保护系统检查记录,9 tPssrPatrols.add(getEntity(9L, subcontent.getId())); // 淋浴洗眼器检查记录,12 tPssrPatrols.add(getEntity(12L, subcontent.getId())); // 应急沙箱检查记录,13 tPssrPatrols.add(getEntity(13L, subcontent.getId())); // 常闭式防爆门/防火门检查记录,14 tPssrPatrols.add(getEntity(14L, subcontent.getId())); // 风向标/风向袋/新风系统正压计检查记录,15 tPssrPatrols.add(getEntity(15L, subcontent.getId())); // 蒸汽幕检查记录,16 tPssrPatrols.add(getEntity(16L, subcontent.getId())); // 急救箱 tPssrPatrols.add(getEntity(27L, subcontent.getId())); for (TPssrPatrol pssrPatrol : tPssrPatrols) { tPssrPatrolService.insertTPssrPatrol(pssrPatrol, userId); } TPssrPatrol query = new TPssrPatrol(); query.setSubId(subcontent.getId()); boolean flag = true; for (TPssrPatrol patrol : tPssrPatrolService.selectTPssrPatrolList(query)) { if (patrol.getApproveStatus()!=2){ flag = false; } } if (flag){ tPssrApproveController.doApprove(subcontent.getId()); } } else if (subcontent.getForShort().equals("txjk")) { List tPssrPatrols = new ArrayList<>(); // PAGA系统检查记录,10 tPssrPatrols.add(getEntity(10L, subcontent.getId())); // CCTV系统检查记录,11 tPssrPatrols.add(getEntity(11L, subcontent.getId())); for (TPssrPatrol pssrPatrol : tPssrPatrols) { tPssrPatrolService.insertTPssrPatrol(pssrPatrol, userId); } TPssrPatrol query = new TPssrPatrol(); query.setSubId(subcontent.getId()); boolean flag = true; for (TPssrPatrol patrol : tPssrPatrolService.selectTPssrPatrolList(query)) { if (patrol.getApproveStatus()!=2){ flag = false; } } if (flag){ tPssrApproveController.doApprove(subcontent.getId()); } } else if (subcontent.getForShort().equals("bxsjcy")) { List tPssrPatrols = new ArrayList<>(); // 四合一/苯系物/硫化氢/二氧化碳/射线一氧化碳检测仪检查记录,18 tPssrPatrols.add(getEntity(18L, subcontent.getId())); for (TPssrPatrol pssrPatrol : tPssrPatrols) { tPssrPatrolService.insertTPssrPatrol(pssrPatrol, userId); } TPssrPatrol query = new TPssrPatrol(); query.setSubId(subcontent.getId()); boolean flag = true; for (TPssrPatrol patrol : tPssrPatrolService.selectTPssrPatrolList(query)) { if (patrol.getApproveStatus()!=2){ flag = false; } } if (flag){ tPssrApproveController.doApprove(subcontent.getId()); } } else if (subcontent.getForShort().equals("yfl")) { genYfl(subcontent.getId(), userId); } else if (subcontent.getForShort().equals("aqss")) { genAqf(subcontent, userId); } else if (subcontent.getForShort().equals("gygc")) { genGygc(subcontent.getId(), userId); } else if (subcontent.getForShort().equals("hbss")) { genHbss(subcontent.getId(), userId); } else if (subcontent.getForShort().equals("zmdbr")) { genZmdbr(subcontent.getId(), userId); } else if (subcontent.getForShort().equals("lsdy")) { genLsdy(subcontent.getId(), userId); } } } }, "新增子表数据").start(); return AjaxResult.success(); } /** * 生成临时电源数据 */ private void genLsdy(Long subId, String userId) { tPssrPowerService.insertTPssrPower(new TPssrPower(subId, "现场电源插座上无接临时用电设备、临时线路。", new Date(), userId)); tPssrPowerService.insertTPssrPower(new TPssrPower(subId, "现场电源插座外观完好,无破损,插座盖子上紧,无脱落。", new Date(), userId)); } /** * 生成照明、电伴热数据 */ private void genZmdbr(Long subId, String userId) { tPssrLightingService.insertTPssrLighting(new TPssrLighting(subId, "照明灯外观完好,干净,无破损。", "1", userId, new Date())); tPssrLightingService.insertTPssrLighting(new TPssrLighting(subId, "照明灯无锈蚀。", "1", userId, new Date())); tPssrLightingService.insertTPssrLighting(new TPssrLighting(subId, "照明灯具固定牢固,无松动。", "1", userId, new Date())); tPssrLightingService.insertTPssrLighting(new TPssrLighting(subId, "照明导线完好,无破损。", "1", userId, new Date())); tPssrLightingService.insertTPssrLighting(new TPssrLighting(subId, "照明开关完好。", "1", userId, new Date())); tPssrLightingService.insertTPssrLighting(new TPssrLighting(subId, "照明设备可以正常打开或者关闭。", "1", userId, new Date())); tPssrLightingService.insertTPssrLighting(new TPssrLighting(subId, "现场电伴热带无破损断裂,无变形", "2", userId, new Date())); tPssrLightingService.insertTPssrLighting(new TPssrLighting(subId, "电伴热带与管道设备紧密贴合,无缝隙", "2", userId, new Date())); tPssrLightingService.insertTPssrLighting(new TPssrLighting(subId, "电源接线盒牢固密封,接线端子无松动锈蚀。", "2", userId, new Date())); } /** * 生成环保设施数据 */ private void genHbss(Long subId, String userId) { tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "火炬系统检修时所加装的盲板已拆除。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "火炬系统已完成氮气置换,氧含量<0.2%。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "公用工程(消防水、仪表风、氮气、电、中、低压蒸汽等)已投用或具备使用条件。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "火炬系统的所有仪表功能检查正常。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "火炬点火用燃料气已引到PCV-9994、PC-9991阀前。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "仪表空气送至PCV-9995阀前。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "加热火炬气的甲醇已充进换热器390-E-903,390-E-903的低压蒸汽管线暖管结束。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "火炬总管分子封用氮已经投用。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "点火器装置和电视监控器等电器设备已送电,设备完好。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "火炬消烟蒸汽已引到蒸汽调节阀前,RO-9991~3的前后闸阀全开,管线上所有疏水器均须投用。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "由LV-9990向水封罐390-V-940注生产工艺水,直到工艺水由从U形管排出。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "设定390-P-940去急冷水塔的流程,投用390-P-940自启动及停车控制器UC-9990。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "投用各火炬总管端点的吹扫气。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "火炬长明灯点火完成,确认正常。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "1", "火炬系统可以接收装置物料排放。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "2", "VOC系统检修时所加装的盲板已拆除。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "2", "VOC系统已完成氮气置换,氧含量合格。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "2", "公用工程(消防水、仪表风、氮气、电、中、低压蒸汽等)已投用或具备使用条件。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "2", "VOC系统的所有仪表功能检查正常。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "2", "VOC系统具备使用条件,开车流程打通,确认正常。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "2", "按操作程序启动390-K-950,确认K950运行正常。", userId, new Date())); tPssrTorchvocService.insertTPssrTorchvoc(new TPssrTorchvoc(subId, "2", "VOC系统运行正常,可以接收VOC排放。", userId, new Date())); } /** * 生成巡检数据 */ private TPssrPatrol getEntity(Long planType, Long subId) { TPssrPatrol tPssrPatrol = new TPssrPatrol(); tPssrPatrol.setPlanType(planType); tPssrPatrol.setSubId(subId); return tPssrPatrol; } /** * 生成原辅料数据 */ private void genYfl(Long subId, String userId) { tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Electr. Power", "MWH", userId, new Date(), 0L)); tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "LP steam", "/", userId, new Date(), 0L)); tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "MP steam", "/", userId, new Date(), 0L)); tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "HP steam", "Ton", userId, new Date(), 0L)); tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Potable water", "Ton", userId, new Date(), 0L)); tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "production water", "Ton", userId, new Date(), 0L)); tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "LP fire water", "/", userId, new Date(), 0L)); tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "HP fire water", "/", userId, new Date(), 0L)); tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Cooling water", "Ton", userId, new Date(), 0L)); tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Demine Water", "Ton", userId, new Date(), 0L)); tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Nitrogen", "Nm3", userId, new Date(), 0L)); tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Plant Air", "Nm3", userId, new Date(), 0L)); tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Instrument Air", "Nm3", userId, new Date(), 0L)); tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "WW(only quantity)", "Ton", userId, new Date(), 0L)); tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Naphtha", "Ton", userId, new Date(), 0L)); tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Flux Oil", "Ton", userId, new Date(), 0L)); tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Wash Oil", "Ton", userId, new Date(), 0L)); tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "C6-C8", "Ton", userId, new Date(), 0L)); tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Natural Gas", "Ton", userId, new Date(), 0L)); tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Ethylene", "Ton", userId, new Date(), 0L)); tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Propylene", "Ton", userId, new Date(), 0L)); tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Toluene", "Ton", userId, new Date(), 0L)); } /** * 生成安全阀数据 */ private void genAqf(TPssrSubcontent subcontent, String userId) { for (String unit : subcontent.getUnit().split(",")) { TSafetyvavle query = new TSafetyvavle(); query.setSubarea(unit); for (TSafetyvavle vavle : tSafetyvavleService.selectTSafetyvavleList(query)) { TPssrSafetyValve pssr = new TPssrSafetyValve(); pssr.setUnit(unit); pssr.setSubId(subcontent.getId()); pssr.setDevNo(vavle.getTagno()); pssr.setInstallLocation(vavle.getPlacedesc()); pssr.setSafetyDev(vavle.getService()); pssr.setPidNo(vavle.getPid()); pssr.setSetPressure(vavle.getSettingpres()); pssr.setCreatedate(new Date()); pssr.setCreaterCode(userId); tPssrSafetyValveService.insertTPssrSafetyValve(pssr); } } } /** * 生成公用工程数据 */ private void genGygc(Long subId, String userId) { tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统N2已投用或具备投用条件。", userId, new Date())); tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统IA已投用或具备投用条件。", userId, new Date())); tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统PA已投用或具备投用条件。", userId, new Date())); tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统CW已投用或具备投用条件。", userId, new Date())); tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统各压力等级蒸汽已投用,具备投用条件。", userId, new Date())); tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统各压力等级凝液已投用,具备投用条件。", userId, new Date())); tPssrPublicService.insertTPssrPublic(new TPssrPublic(subId, "公用工程系统消防水已投用或具备投用条件。", userId, new Date())); } /** * 修改PSSR */ @PreAuthorize("@ss.hasPermi('pssr:aboveall:edit')") @Log(title = "PSSR", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody TPssrAboveall tPssrAboveall) { return toAjax(tPssrAboveallService.updateTPssrAboveall(tPssrAboveall)); } /** * 删除PSSR */ @PreAuthorize("@ss.hasPermi('pssr:aboveall:remove')") @Log(title = "PSSR", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(tPssrAboveallService.deleteTPssrAboveallByIds(ids)); } }