소스 검색

报表调整

xy 22 시간 전
부모
커밋
a578e5c166

+ 141 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52022_202401ReportOFData.java

@@ -0,0 +1,141 @@
+package cn.start.tz.module.pressure2.service.dynamicOFData.comm;
+
+import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.controller.admin.equipboiler.vo.EquipBoilerReportVO;
+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.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
+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.equipboiler.EquipBoilerMapper;
+import cn.start.tz.module.pressure2.dal.mysql.equippipe.EquipPipeMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitem.PipeTaskOrderItemMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
+import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.GenerateReportJsonService;
+import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
+import cn.start.tz.module.pressure2.service.dynamictbval.DynamicTbValService;
+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;
+
+/**
+ * 超声波检测报告
+ * */
+@Service("QC52022_202401ReportOFData")
+public class QC52022_202401ReportOFData implements IDynamicOFData {
+
+    @Resource
+    private EquipBoilerMapper equipBoilerMapper;
+
+    @Resource
+    private EquipPipeMapper equipPipeMapper;
+
+    @Resource
+    private BoilerTaskOrderItemReportMapper boilerTaskOrderItemReportMapper;
+
+    @Resource
+    private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
+
+    @Resource
+    private BoilerTaskOrderItemMapper boilerTaskOrderItemMapper;
+
+    @Resource
+    private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
+
+    @Resource
+    private DynamicTbColService dynamicTbColService;
+
+    @Resource
+    private DynamicTbValService dynamicTbValService;
+
+    @Resource
+    private GenerateReportJsonService generateReportJsonService;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @Override
+    public JSONObject getOFData(JSONObject params) {
+        return null;
+    }
+
+    @Override
+    public JSONObject getOfDataByVO(CreateInstantiateWithRuleVO ruleVO) {
+
+        //日期格式
+        DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
+
+        //设备报表ID
+        String refId = ruleVO.getRefId();
+
+        JSONObject result = new JSONObject();
+        //主设备类型
+        String equipMainTpe = ruleVO.getParams().getString("equipMainType");
+
+        if (equipMainTpe.equals("boiler")){
+
+            BoilerTaskOrderItemReportDO itemReportDO = boilerTaskOrderItemReportMapper.selectById(refId);
+
+            if (itemReportDO != null){
+
+                //根据记录字段动态生成报告字段
+                result = generateReportJsonService.generateReportFromRecord(ruleVO.getReportType(),ruleVO.getTemplateId(),refId);
+
+                String orderItemId = itemReportDO.getOrderItemId();
+                BoilerTaskOrderItemDO itemDO = boilerTaskOrderItemMapper.selectById(orderItemId);
+                EquipBoilerReportVO equipBoilerDO = equipBoilerMapper.selectDetailsById(itemDO.getEquipId());
+                if (equipBoilerDO != null){
+                    //设备信息
+                }
+
+                result.put("reportNo",itemReportDO.getReportNo());
+
+                //审核人员信息
+                AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportDO.getApprovalId()).getData();
+                if (userInfo != null){
+                    result.put("approvalName",userInfo.getSignUrl());
+                }else{
+                    result.put("approvalName",itemReportDO.getApprovalName());
+                }
+                if (itemReportDO.getApprovalTime() != null){
+                    result.put("approvalTime",itemReportDO.getApprovalTime().format(dateFormat));
+                }
+
+            }
+
+        }else if (equipMainTpe.equals("pipe")){
+
+            PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
+
+            if (itemReportDO != null){
+
+                //根据记录字段动态生成报告字段
+                result = generateReportJsonService.generateReportFromRecord(ruleVO.getReportType(),ruleVO.getTemplateId(),refId);
+
+                result.put("reportNo",itemReportDO.getReportNo());
+
+                //审核人员信息
+                AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportDO.getApprovalId()).getData();
+                if (userInfo != null){
+                    result.put("approvalName",userInfo.getSignUrl());
+                }else{
+                    result.put("approvalName",itemReportDO.getApprovalName());
+                }
+                if (itemReportDO.getApprovalTime() != null){
+                    result.put("approvalTime",itemReportDO.getApprovalTime().format(dateFormat));
+                }
+
+            }
+
+        }
+
+
+
+        return result;
+    }
+}

+ 2 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52045_202401RecordOFData.java

@@ -102,7 +102,8 @@ public class QC52045_202401RecordOFData implements IDynamicOFData {
                 EquipBoilerReportVO equipBoilerDO = equipBoilerMapper.selectDetailsById(itemDO.getEquipId());
                 if (equipBoilerDO != null){
                     //设备信息
-                    result.put("equipCode",equipBoilerDO.getEquipCode());
+                    result.put("equipCode",(equipBoilerDO.getFactoryCode() == null ? " - " : equipBoilerDO.getFactoryCode())
+                            + "/" + (equipBoilerDO.getEquipCode() == null ? " - " : equipBoilerDO.getEquipCode()));
                 }
 
                 result.put("reportNo",itemReportDO.getReportNo());

+ 2 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52046_202400RecordOFData.java

@@ -102,7 +102,8 @@ public class QC52046_202400RecordOFData implements IDynamicOFData {
                 EquipBoilerReportVO equipBoilerDO = equipBoilerMapper.selectDetailsById(itemDO.getEquipId());
                 if (equipBoilerDO != null){
                     //设备信息
-                    result.put("equipCode",equipBoilerDO.getEquipCode());
+                    result.put("equipCode",(equipBoilerDO.getFactoryCode() == null ? " - " : equipBoilerDO.getFactoryCode())
+                            + "/" + (equipBoilerDO.getEquipCode() == null ? " - " : equipBoilerDO.getEquipCode()));
                 }
 
                 result.put("reportNo",itemReportDO.getReportNo());

+ 2 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52047_202400RecordOFData.java

@@ -102,7 +102,8 @@ public class QC52047_202400RecordOFData implements IDynamicOFData {
                 EquipBoilerReportVO equipBoilerDO = equipBoilerMapper.selectDetailsById(itemDO.getEquipId());
                 if (equipBoilerDO != null){
                     //设备信息
-                    result.put("equipCode",equipBoilerDO.getEquipCode());
+                    result.put("equipCode",(equipBoilerDO.getFactoryCode() == null ? " - " : equipBoilerDO.getFactoryCode())
+                            + "/" + (equipBoilerDO.getEquipCode() == null ? " - " : equipBoilerDO.getEquipCode()));
                 }
 
                 result.put("reportNo",itemReportDO.getReportNo());

+ 235 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52049_202402RecordOFData.java

@@ -0,0 +1,235 @@
+package cn.start.tz.module.pressure2.service.dynamicOFData.comm;
+
+import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.controller.admin.equipboiler.vo.EquipBoilerReportVO;
+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.equippipe.EquipPipeDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitem.PipeTaskOrderItemDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserDO;
+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.equippipe.EquipPipeMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorder.PipeTaskOrderMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitem.PipeTaskOrderItemMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserMapper;
+import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
+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 com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
+/**
+ * 超声波检测记录
+ * */
+@Service("QC52049_202402RecordOFData")
+public class QC52049_202402RecordOFData implements IDynamicOFData {
+
+    @Resource
+    private EquipBoilerMapper equipBoilerMapper;
+
+    @Resource
+    private EquipPipeMapper equipPipeMapper;
+
+    @Resource
+    private BoilerTaskOrderItemReportMapper boilerTaskOrderItemReportMapper;
+
+    @Resource
+    private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
+
+    @Resource
+    private BoilerTaskOrderMapper boilerTaskOrderMapper;
+
+    @Resource
+    private PipeTaskOrderMapper pipeTaskOrderMapper;
+
+    @Resource
+    private BoilerTaskOrderItemMapper boilerTaskOrderItemMapper;
+
+    @Resource
+    private BoilerTaskOrderItemReportUserMapper boilerTaskOrderItemReportUserMapper;
+
+    @Resource
+    private PipeTaskOrderItemReportUserMapper pipeTaskOrderItemReportUserMapper;
+
+    @Resource
+    private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @Override
+    public JSONObject getOFData(JSONObject params) {
+        return null;
+    }
+
+    /**
+     * 根据规则VO获取相关数据,并组装成JSONObject返回。
+     * <p>
+     * 主要功能包括:
+     * 1. 查询设备报表信息;
+     * 2. 获取设备编码、报告编号等基础信息;
+     * 3. 查询并设置检验员签名或昵称;
+     * 4. 查询并设置复检人签名及复检日期。
+     *
+     * @param ruleVO 规则参数对象,包含refId和其他查询参数
+     * @return 包含设备信息、检验员信息和复检信息的JSONObject
+     */
+    @Override
+    public JSONObject getOfDataByVO(CreateInstantiateWithRuleVO ruleVO) {
+
+        // 定义日期格式化器,用于格式化检查和复检日期
+        DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
+
+        // 设备报表ID
+        String refId = ruleVO.getRefId();
+        // 检验员ID
+        String checkUserId = "";
+        //主设备类型
+        String equipMainTpe = ruleVO.getParams().getString("equipMainType");
+
+        JSONObject result = new JSONObject();
+        result.putAll(ruleVO.getParams());
+        if (equipMainTpe.equals("boiler")){
+
+            BoilerTaskOrderItemReportDO itemReportDO = boilerTaskOrderItemReportMapper.selectById(refId);
+
+            if (itemReportDO != null){
+
+                String orderItemId = itemReportDO.getOrderItemId();
+                BoilerTaskOrderItemDO itemDO = boilerTaskOrderItemMapper.selectById(orderItemId);
+                EquipBoilerReportVO equipBoilerDO = equipBoilerMapper.selectDetailsById(itemDO.getEquipId());
+
+                // 设置设备编码
+                if (equipBoilerDO != null){
+                    result.put("equipCode",(equipBoilerDO.getFactoryCode() == null ? " - " : equipBoilerDO.getFactoryCode())
+                            + "/" + (equipBoilerDO.getEquipCode() == null ? " - " : equipBoilerDO.getEquipCode()));
+                }
+
+                result.put("reportNo",itemReportDO.getReportNo());
+
+                //操作指导书编号
+                if (itemReportDO.getInstructionId() != null){
+                    BoilerTaskOrderItemReportDO instructionDO = boilerTaskOrderItemReportMapper.selectById(itemReportDO.getInstructionId());
+                    if (instructionDO !=  null){
+                        result.put("instructionId",instructionDO.getReportNo());
+                    }
+                }
+
+                // 获取任务订单中的检查日期
+                String orderId = itemReportDO.getOrderId();
+                BoilerTaskOrderDO taskOrderDO =  boilerTaskOrderMapper.selectById(orderId);
+                if (taskOrderDO != null){
+                    result.put("checkDate",taskOrderDO.getCheckDate().format(dateFormat));
+                }
+
+                // 处理检验员信息
+                AdminUserRespDTO userInfo;
+                BoilerTaskOrderItemReportUserDO userDO = boilerTaskOrderItemReportUserMapper.selectOne(BoilerTaskOrderItemReportUserDO::getReportId,itemReportDO.getId());
+                if(userDO != null){
+                    checkUserId = userDO.getUserId();
+                    userInfo = adminUserApi.getUser(checkUserId).getData();
+                    if (userInfo != null){
+                        if (userInfo.getSignUrl() != null){
+                            result.put("checkName",userInfo.getSignUrl());
+                        }else{
+                            result.put("checkName",userInfo.getNickname());
+                        }
+                    }
+                }
+
+                // 处理复检人员信息:尝试获取签名图片URL,若无则使用姓名字段
+                userInfo = adminUserApi.getUser(itemReportDO.getRecheckId()).getData();
+                if (userInfo != null){
+                    result.put("recheckName",userInfo.getSignUrl());
+                }else{
+                    result.put("recheckName",itemReportDO.getRecheckName());
+                }
+
+                // 添加复检日期(如果存在)
+                if (itemReportDO.getRecheckDate() != null){
+                    result.put("recheckDate",itemReportDO.getRecheckDate().format(dateFormat));
+                }
+
+            }
+
+        }else if (equipMainTpe.equals("pipe")){
+
+            PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
+
+            if (itemReportDO != null){
+
+                List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
+                        .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
+                if (!itemDOList.isEmpty()){
+                    //设备信息
+                    if (itemDOList.size() > 1){
+                        result.put("equipCode","见一览表");
+                    }else {
+                        EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                        if (equipDO != null){
+                            result.put("equipCode",equipDO.getProjectNo());
+                        }
+                    }
+                }
+
+                result.put("reportNo",itemReportDO.getReportNo());
+
+                // 获取任务订单中的检查日期
+                String orderId = itemReportDO.getOrderId();
+                PipeTaskOrderDO taskOrderDO =  pipeTaskOrderMapper.selectById(orderId);
+                if (taskOrderDO != null){
+                    result.put("checkDate",taskOrderDO.getCheckDate().format(dateFormat));
+                }
+
+                // 处理检验员信息:优先使用传入的checkUserId,否则从数据库查找
+                AdminUserRespDTO userInfo;
+                PipeTaskOrderItemReportUserDO userDO = pipeTaskOrderItemReportUserMapper.selectOne(PipeTaskOrderItemReportUserDO::getReportId,itemReportDO.getId());
+                if(userDO != null){
+                    checkUserId = userDO.getUserId();
+                    userInfo = adminUserApi.getUser(checkUserId).getData();
+                    if (userInfo != null){
+                        if (userInfo.getSignUrl() != null){
+                            result.put("checkName",userInfo.getSignUrl());
+                        }else{
+                            result.put("checkName",userInfo.getNickname());
+                        }
+                    }
+                }
+
+                // 处理复检人员信息:尝试获取签名图片URL,若无则使用姓名字段
+                userInfo = adminUserApi.getUser(itemReportDO.getRecheckId()).getData();
+                if (userInfo != null){
+                    result.put("recheckName",userInfo.getSignUrl());
+                }else{
+                    result.put("recheckName",itemReportDO.getRecheckName());
+                }
+
+                // 添加复检日期(如果存在)
+                if (itemReportDO.getRecheckDate() != null){
+                    result.put("recheckDate",itemReportDO.getRecheckDate().format(dateFormat));
+                }
+
+            }
+
+        }
+
+
+        return result;
+
+    }
+
+}