Jelajahi Sumber

电站锅炉主要受压元件一览表报告

xy 1 Minggu lalu
induk
melakukan
2fa681367c

+ 123 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/boiler/QC10063_202402ReportOFData.java

@@ -0,0 +1,123 @@
+package cn.start.tz.module.pressure2.service.dynamicOFData.boiler;
+
+import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrderDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitem.BoilerTaskOrderItemDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreport.BoilerTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreportuser.BoilerTaskOrderItemReportUserDO;
+import cn.start.tz.module.pressure2.dal.dataobject.equipboiler.EquipBoilerDO;
+import cn.start.tz.module.pressure2.dal.dataobject.equipboilerpressurepart.EquipBoilerPressurePartDO;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorder.BoilerTaskOrderMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitem.BoilerTaskOrderItemMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemreport.BoilerTaskOrderItemReportMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemreportuser.BoilerTaskOrderItemReportUserMapper;
+import cn.start.tz.module.pressure2.dal.mysql.equipboiler.EquipBoilerMapper;
+import cn.start.tz.module.pressure2.dal.mysql.equipboilerpressurepart.EquipBoilerPressurePartMapper;
+import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.AutoDataBoilerService;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.GenerateReportJsonService;
+import cn.start.tz.module.system.api.user.AdminUserApi;
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
+import com.alibaba.fastjson2.JSONObject;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
+/**
+ * 电站锅炉主要受压元件一览表报告
+ */
+@Service("QC10063_202402ReportOFData")
+public class QC10063_202402ReportOFData implements IDynamicOFData {
+
+    @Resource
+    private BoilerTaskOrderItemReportMapper boilerTaskOrderItemReportMapper;
+
+    @Resource
+    private BoilerTaskOrderItemMapper boilerTaskOrderItemMapper;
+
+    @Resource
+    private EquipBoilerMapper equipBoilerMapper;
+
+    @Resource
+    private AutoDataBoilerService autoDataBoilerService;
+
+    @Resource
+    private GenerateReportJsonService generateReportJsonService;
+
+    @Resource
+    private EquipBoilerPressurePartMapper equipBoilerPressurePartMapper;
+
+    @Resource
+    private BoilerTaskOrderItemReportUserMapper boilerTaskOrderItemReportUserMapper;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @Resource
+    private BoilerTaskOrderMapper boilerTaskOrderMapper;
+
+    @Override
+    public JSONObject getOFData(JSONObject params) {
+        return null;
+    }
+
+    @Override
+    public JSONObject getOfDataByVO(CreateInstantiateWithRuleVO ruleVO) {
+        //设备报表ID
+        String refId = ruleVO.getRefId();
+
+        DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
+
+        JSONObject result = new JSONObject();
+        BoilerTaskOrderItemReportDO itemReportDO = boilerTaskOrderItemReportMapper.selectById(refId);
+
+        if (itemReportDO != null) {
+            String orderItemId = itemReportDO.getOrderItemId();
+            BoilerTaskOrderDO taskOrderDO = boilerTaskOrderMapper.selectById(itemReportDO.getOrderId());
+            BoilerTaskOrderItemDO itemDO = boilerTaskOrderItemMapper.selectById(orderItemId);
+
+            result = generateReportJsonService.generateReportFromRecord(ruleVO.getReportType(), ruleVO.getTemplateId(), refId);
+            result = autoDataBoilerService.autoGenerateBoilerReportData(result, refId);
+
+            // 获取参与检验的人员列表
+            List<BoilerTaskOrderItemReportUserDO> itemReportUserDOS = boilerTaskOrderItemReportUserMapper.selectList(BoilerTaskOrderItemReportUserDO::getReportId, itemReportDO.getId());
+            if (taskOrderDO != null) {
+                result.put("checkDate", taskOrderDO.getCheckDate().format(dateFormat));
+            } else {
+                result.put("checkDate", "-");
+            }
+            if (!itemReportUserDOS.isEmpty()) {
+                AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportUserDOS.get(0).getUserId()).getData();
+                if (userInfo != null) {
+                    result.put("checkName", userInfo.getSignUrl());
+                }
+            }
+
+            EquipBoilerDO equipBoilerDO = equipBoilerMapper.selectById(itemDO.getEquipId());
+            if (equipBoilerDO != null) {
+
+                //受压元件
+                List<EquipBoilerPressurePartDO> equipBoilerPressurePartDOList = equipBoilerPressurePartMapper.selectList(new LambdaQueryWrapperX<EquipBoilerPressurePartDO>()
+                        .eq(EquipBoilerPressurePartDO::getBoilerId, equipBoilerDO.getId()));
+                if (!equipBoilerPressurePartDOList.isEmpty()){
+                    for (int i = 0; i < equipBoilerPressurePartDOList.size(); i++){
+
+                        EquipBoilerPressurePartDO partDO = equipBoilerPressurePartDOList.get(i);
+                        result.put("value1_"+(i+1),String.valueOf(i+1));
+                        result.put("value2_"+(i+1),partDO.getPartName());
+                        result.put("value3_"+(i+1),partDO.getSpecification());
+                        result.put("value4_"+(i+1),partDO.getMaterial());
+                        result.put("value5_"+(i+1),partDO.getRemark());
+
+                    }
+                }
+            }
+
+        }
+
+        return result;
+    }
+}