|
|
@@ -1,21 +1,31 @@
|
|
|
package cn.start.tz.module.pressure2.service.dynamicOFData.pipe;
|
|
|
|
|
|
import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictbins.DynamicTbInsDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.equippipe.EquipPipeDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.equippipedetail.EquipPipeDetailDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderinput.PipeTaskOrderInputDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitem.PipeTaskOrderItemDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemdetail.PipeTaskOrderItemDetailDO;
|
|
|
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.dataobject.pipetaskorderuser.PipeTaskOrderUserDO;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.equippipe.EquipPipeMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.equippipedetail.EquipPipeDetailMapper;
|
|
|
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.pipetaskorderitemdetail.PipeTaskOrderItemDetailMapper;
|
|
|
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.dal.mysql.pipetaskorderuser.PipeTaskOrderUserMapper;
|
|
|
import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
|
|
|
import cn.start.tz.module.pressure2.service.dynamicOFData.util.AutoDataPipeService;
|
|
|
import cn.start.tz.module.pressure2.service.dynamicOFData.util.GenerateReportJsonService;
|
|
|
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.InspectorInfoPipeUtil;
|
|
|
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.JsonConvertUtil;
|
|
|
import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
|
|
|
+import cn.start.tz.module.pressure2.service.dynamictbins.DynamicTbInsService;
|
|
|
import cn.start.tz.module.pressure2.service.dynamictbval.DynamicTbValService;
|
|
|
import cn.start.tz.module.pressure2.service.pipetaskorderinput.PipeTaskOrderInputService;
|
|
|
import cn.start.tz.module.system.api.dict.DictDataApi;
|
|
|
@@ -30,6 +40,9 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 压力管道定期检验结论报告
|
|
|
@@ -76,6 +89,15 @@ public class QC12024_202403ReportOFData implements IDynamicOFData {
|
|
|
@Resource
|
|
|
private AutoDataPipeService autoDataPipeService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderUserMapper pipeTaskOrderUserMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderItemReportUserMapper pipeTaskOrderItemReportUserMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private DynamicTbInsService dynamicTbInsService;
|
|
|
+
|
|
|
@Override
|
|
|
public JSONObject getOFData(JSONObject params) {
|
|
|
return null;
|
|
|
@@ -102,11 +124,70 @@ public class QC12024_202403ReportOFData implements IDynamicOFData {
|
|
|
List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
|
|
|
.eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
|
|
|
if (!itemDOList.isEmpty()) {
|
|
|
+
|
|
|
//设备信息
|
|
|
- if (itemDOList.size() > 1) {
|
|
|
|
|
|
+ EquipPipeDO equipPipeDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
|
|
|
+ if (equipPipeDO != null) {
|
|
|
+ result.put("unitCode", equipPipeDO.getUnitCode());
|
|
|
+ result.put("unitName", equipPipeDO.getUnitName());
|
|
|
+ result.put("unitAddress", equipPipeDO.getUnitAddress());
|
|
|
+ result.put("postalCode", equipPipeDO.getPostalCode());
|
|
|
+ result.put("certificateNo", equipPipeDO.getCertificateNo());
|
|
|
+ result.put("pipeUsePlace", equipPipeDO.getPipeAddress());
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取约检管线
|
|
|
+ List<PipeTaskOrderItemDetailDO> allDetailDOS = pipeTaskOrderItemDetailMapper.selectList(PipeTaskOrderItemDetailDO::getOrderId, itemReportDO.getOrderId());
|
|
|
+ if (!allDetailDOS.isEmpty()){
|
|
|
+ List<EquipPipeDetailDO> equipPipeDetailDOList = equipPipeDetailMapper.selectList(new LambdaQueryWrapper<EquipPipeDetailDO>().in(EquipPipeDetailDO::getId, allDetailDOS.stream().map(PipeTaskOrderItemDetailDO::getEquipDetailId).toList()));
|
|
|
+ double sum = equipPipeDetailDOList.stream().mapToDouble(equipPipeDetailDO -> equipPipeDetailDO.getPipeLength() != null ? equipPipeDetailDO.getPipeLength().doubleValue() : 0.0).sum();
|
|
|
+ double sum1 = equipPipeDetailDOList.stream().mapToDouble(equipPipeDetailDO -> equipPipeDetailDO.getUndergroundLength() != null ? equipPipeDetailDO.getUndergroundLength().doubleValue() : 0.0).sum();
|
|
|
+ result.put("pipeLengthTotal", JsonConvertUtil.formatNumber(sum));
|
|
|
+ result.put("undergroundLength", JsonConvertUtil.formatNumber(sum1));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!allDetailDOS.isEmpty()){
|
|
|
+
|
|
|
+ List<EquipPipeDetailDO> equipPipeDetailDOList = equipPipeDetailMapper.selectList(new LambdaQueryWrapper<EquipPipeDetailDO>()
|
|
|
+ .in(EquipPipeDetailDO::getId, allDetailDOS.stream().map(PipeTaskOrderItemDetailDO::getEquipDetailId).toList()));
|
|
|
+ if (equipPipeDetailDOList.size() > 1){
|
|
|
+ result.put("designLifeYears", "-");
|
|
|
+ }else if (equipPipeDetailDOList.size() == 1){
|
|
|
+ result.put("designLifeYears", equipPipeDetailDOList.get(0).getDesignLifeYears());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!equipPipeDetailDOList.isEmpty()) {
|
|
|
+ // 判断pipeName是否相同
|
|
|
+ String pipeNameValue;
|
|
|
+ Set<String> pipeNames = equipPipeDetailDOList.stream()
|
|
|
+ .map(EquipPipeDetailDO::getPipeName)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ // 如果只有一个唯一的pipeName值,则使用该值;否则设置为"见一览表"
|
|
|
+ pipeNameValue = pipeNames.size() == 1 ? pipeNames.iterator().next() : "见一览表";
|
|
|
+ result.put("pipeName", pipeNameValue);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!equipPipeDetailDOList.isEmpty()) {
|
|
|
+ // 判断pipeLevel是否相同
|
|
|
+ String pipeLevelValue;
|
|
|
+ Set<String> pipeLevels = equipPipeDetailDOList.stream()
|
|
|
+ .map(EquipPipeDetailDO::getPipeLevel)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ // 如果只有一个唯一的pipeLevel值,则使用该值;否则设置为"见一览表"
|
|
|
+ pipeLevelValue = pipeLevels.size() == 1 ? pipeLevels.iterator().next() : "见一览表";
|
|
|
+ result.put("pipeLevel", pipeLevelValue);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (itemDOList.size() > 1) {
|
|
|
+ result.put("projectNo", "见一览表");
|
|
|
+ result.put("projectName", "见一览表");
|
|
|
+ result.put("layingMode", "-");
|
|
|
} else {
|
|
|
- EquipPipeDO equipPipeDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
|
|
|
if (equipPipeDO != null) {
|
|
|
|
|
|
DictDataRespDTO dictDataRespDTO = dictDataApi.getDictData("PIPE_TYPE", equipPipeDO.getPipeCategory()).getData();
|
|
|
@@ -114,6 +195,10 @@ public class QC12024_202403ReportOFData implements IDynamicOFData {
|
|
|
result.put("pipeCategory", dictDataRespDTO.getLabel());
|
|
|
}
|
|
|
|
|
|
+ result.put("projectNo", equipPipeDO.getProjectNo());
|
|
|
+ result.put("projectName", equipPipeDO.getProjectName());
|
|
|
+ result.put("layingMode", equipPipeDO.getLayingMode());
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -137,9 +222,14 @@ public class QC12024_202403ReportOFData implements IDynamicOFData {
|
|
|
if (taskOrderDO != null) {
|
|
|
String checkDateStr = taskOrderDO.getCheckDate().format(dateFormat);
|
|
|
PipeTaskOrderInputDO orderInputDO = pipeTaskOrderInputService.lambdaQuery().eq(PipeTaskOrderInputDO::getOrderId, orderId).one();
|
|
|
- if (orderInputDO != null && orderInputDO.getEndCheckDate() != null) {
|
|
|
- checkDateStr += " 至 " + orderInputDO.getEndCheckDate().format(dateFormat);
|
|
|
- result.put("checkDate2", orderInputDO.getEndCheckDate().format(dateFormat));
|
|
|
+ if (orderInputDO != null) {
|
|
|
+ if (orderInputDO.getEndCheckDate() != null){
|
|
|
+ checkDateStr += " 至 " + orderInputDO.getEndCheckDate().format(dateFormat);
|
|
|
+ result.put("checkDate2", orderInputDO.getEndCheckDate().format(dateFormat));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (taskOrderDO.getCheckDate() != null) {
|
|
|
+ result.put("checkDate1", taskOrderDO.getCheckDate().format(dateFormat));
|
|
|
}
|
|
|
result.put("checkDateEnd", checkDateStr);
|
|
|
|
|
|
@@ -155,6 +245,34 @@ public class QC12024_202403ReportOFData implements IDynamicOFData {
|
|
|
|
|
|
//二维码
|
|
|
result.put("qrCode", itemReportDO.getQrCodeUrl());
|
|
|
+ result.put("reportNo", itemReportDO.getReportNo());
|
|
|
+
|
|
|
+ //第一次生成记录由上次记录生成
|
|
|
+ DynamicTbInsDO firstInsDO = dynamicTbInsService.getDynamicRefId(refId);
|
|
|
+ if (firstInsDO == null) {
|
|
|
+ if (taskOrderDO != null) {
|
|
|
+ result.put("checkDate", taskOrderDO.getCheckDate().format(dateFormat));
|
|
|
+ } else {
|
|
|
+ result.put("checkDate", "-");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<PipeTaskOrderItemReportUserDO> itemReportUserDOS = pipeTaskOrderItemReportUserMapper.selectList(PipeTaskOrderItemReportUserDO::getReportId, refId);
|
|
|
+ if (!itemReportUserDOS.isEmpty()) {
|
|
|
+ AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportUserDOS.get(0).getUserId()).getData();
|
|
|
+ if (userInfo != null) {
|
|
|
+ result.put("checkName", userInfo.getSignUrl());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //检验员
|
|
|
+ if (taskOrderDO!= null && taskOrderDO.getManagerId() != null){
|
|
|
+
|
|
|
+ //检验员信息
|
|
|
+ List<PipeTaskOrderUserDO> checkUserList = pipeTaskOrderUserMapper.selectList(PipeTaskOrderUserDO::getOrderId,itemReportDO.getOrderId());
|
|
|
+ InspectorInfoPipeUtil.fillInspectorSignatures(result, checkUserList, taskOrderDO.getManagerId(), adminUserApi);
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|