|
|
@@ -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;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|