|
|
@@ -2,9 +2,11 @@ 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.boilertaskorderreport.BoilerTaskOrderReportDO;
|
|
|
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.pipetaskorderreport.PipeTaskOrderReportDO;
|
|
|
@@ -13,11 +15,14 @@ import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitem.BoilerTaskOrde
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderreport.BoilerTaskOrderReportMapper;
|
|
|
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.pipetaskorderreport.PipeTaskOrderReportMapper;
|
|
|
import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
|
|
|
import cn.start.tz.module.pressure2.service.pipetaskorderitem.PipeTaskOrderItemService;
|
|
|
+import cn.start.tz.module.system.api.dict.DictDataApi;
|
|
|
+import cn.start.tz.module.system.api.dict.dto.DictDataRespDTO;
|
|
|
import cn.start.tz.module.system.api.user.AdminUserApi;
|
|
|
import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
|
|
|
import com.alibaba.cloud.commons.lang.StringUtils;
|
|
|
@@ -26,7 +31,9 @@ import jakarta.annotation.Resource;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.LinkedHashSet;
|
|
|
import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
/**
|
|
|
* 检验方案
|
|
|
@@ -49,6 +56,9 @@ public class QC01001_202400OFData implements IDynamicOFData {
|
|
|
@Resource
|
|
|
private BoilerTaskOrderMapper boilerTaskOrderMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderMapper pipeTaskOrderMapper;
|
|
|
+
|
|
|
@Resource
|
|
|
private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
|
|
|
|
|
|
@@ -64,6 +74,9 @@ public class QC01001_202400OFData implements IDynamicOFData {
|
|
|
@Resource
|
|
|
private AdminUserApi adminUserApi;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private DictDataApi dictDataApi;
|
|
|
+
|
|
|
@Override
|
|
|
public JSONObject getOFData(JSONObject params) {
|
|
|
|
|
|
@@ -82,13 +95,14 @@ public class QC01001_202400OFData implements IDynamicOFData {
|
|
|
|
|
|
JSONObject result = new JSONObject();
|
|
|
|
|
|
- String makeUint = "";
|
|
|
- String unitName = "";
|
|
|
- String equipName = "";
|
|
|
- String productCode = "";
|
|
|
- String projectName = "";
|
|
|
- String unitAddress = "";
|
|
|
- String zipCode = "";
|
|
|
+ // 使用 LinkedHashSet 保持插入顺序并去重
|
|
|
+ Set<String> makeUintSet = new LinkedHashSet<>();
|
|
|
+ Set<String> unitNameSet = new LinkedHashSet<>();
|
|
|
+ Set<String> equipNameSet = new LinkedHashSet<>();
|
|
|
+ Set<String> productCodeSet = new LinkedHashSet<>();
|
|
|
+ Set<String> projectNameSet = new LinkedHashSet<>();
|
|
|
+ Set<String> unitAddressSet = new LinkedHashSet<>();
|
|
|
+ Set<String> zipCodeSet = new LinkedHashSet<>();
|
|
|
|
|
|
if (equipMainTpe.equals("boiler")){
|
|
|
|
|
|
@@ -97,27 +111,46 @@ public class QC01001_202400OFData implements IDynamicOFData {
|
|
|
|
|
|
String orderItemIds = itemReportDO.getOrderItemIdsStr();
|
|
|
if (orderItemIds != null){
|
|
|
+
|
|
|
+ String checkTypeName = "";
|
|
|
+ BoilerTaskOrderDO taskOrderDO = boilerTaskOrderMapper.selectById(itemReportDO.getOrderId());
|
|
|
+ if (taskOrderDO != null){
|
|
|
+ DictDataRespDTO checkTypeDTO = dictDataApi.getDictData("pressure_inspection_nature_boiler",taskOrderDO.getCheckType().toString()).getData();
|
|
|
+ if (checkTypeDTO != null){
|
|
|
+ checkTypeName = checkTypeDTO.getLabel();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
String[] orderItemIdArray = orderItemIds.split(",");
|
|
|
for (String orderItemId : orderItemIdArray) {
|
|
|
BoilerTaskOrderItemDO itemDO = boilerTaskOrderItemMapper.selectById(orderItemId);
|
|
|
EquipBoilerReportVO equipBoilerDO = equipBoilerMapper.selectDetailsById(itemDO.getEquipId());
|
|
|
if (equipBoilerDO != null){
|
|
|
- //设备信息
|
|
|
- makeUint = (makeUint.isEmpty()?makeUint:makeUint+",") + (StringUtils.isEmpty(equipBoilerDO.getMakeUnit())?"-":equipBoilerDO.getMakeUnit());
|
|
|
- unitName = (unitName.isEmpty()?unitName:unitName+",") + (StringUtils.isEmpty(equipBoilerDO.getUnitName())?"-":equipBoilerDO.getUnitName());
|
|
|
- equipName = (equipName.isEmpty()?equipName:equipName+",") + (StringUtils.isEmpty(equipBoilerDO.getEquipName())?"-":equipBoilerDO.getEquipName());
|
|
|
- productCode = (productCode.isEmpty()?productCode:productCode+",") + (StringUtils.isEmpty(equipBoilerDO.getProductCode())?"-":equipBoilerDO.getProductCode());
|
|
|
- unitAddress = (unitAddress.isEmpty()?unitAddress:unitAddress+",") + (StringUtils.isEmpty(equipBoilerDO.getUnitAddress())?"-":equipBoilerDO.getUnitAddress());
|
|
|
- zipCode = (zipCode.isEmpty()?zipCode:zipCode+",") + (StringUtils.isEmpty(equipBoilerDO.getZipCode())?"-":equipBoilerDO.getZipCode());
|
|
|
+ //设备信息 - 使用 Set 自动去重
|
|
|
+ makeUintSet.add(StringUtils.isEmpty(equipBoilerDO.getMakeUnit()) ? "-" : equipBoilerDO.getMakeUnit());
|
|
|
+ unitNameSet.add(StringUtils.isEmpty(equipBoilerDO.getUnitName()) ? "-" : equipBoilerDO.getUnitName());
|
|
|
+ equipNameSet.add(StringUtils.isEmpty(equipBoilerDO.getEquipName()) ? "-" : equipBoilerDO.getEquipName());
|
|
|
+ productCodeSet.add(StringUtils.isEmpty(equipBoilerDO.getProductCode()) ? "-" : equipBoilerDO.getProductCode());
|
|
|
+ unitAddressSet.add(StringUtils.isEmpty(equipBoilerDO.getUnitAddress()) ? "-" : equipBoilerDO.getUnitAddress());
|
|
|
+ zipCodeSet.add(StringUtils.isEmpty(equipBoilerDO.getZipCode()) ? "-" : equipBoilerDO.getZipCode());
|
|
|
+
|
|
|
+ String boilerType = "";
|
|
|
+ DictDataRespDTO boilerTypeDTO = dictDataApi.getDictData("system_equip_boiler_type",equipBoilerDO.getType().toString()).getData();
|
|
|
+ if (boilerTypeDTO != null){
|
|
|
+ boilerType = boilerTypeDTO.getLabel();
|
|
|
+ }
|
|
|
+ projectNameSet.add(boilerType + checkTypeName);
|
|
|
}
|
|
|
}
|
|
|
- result.put("projectName",projectName.isEmpty()?"-":projectName);
|
|
|
- result.put("makeUint",makeUint.isEmpty()?"-":makeUint);
|
|
|
- result.put("unitName",unitName.isEmpty()?"-":unitName);
|
|
|
- result.put("equipName",equipName.isEmpty()?"-":equipName);
|
|
|
- result.put("productCode",productCode.isEmpty()?"-":productCode);
|
|
|
- result.put("unitAddress",unitAddress.isEmpty()?"-":unitAddress);
|
|
|
- result.put("zipCode",zipCode.isEmpty()?"-":zipCode);
|
|
|
+
|
|
|
+ // 将 Set 转换为逗号分隔的字符串
|
|
|
+ result.put("projectName", String.join(",", projectNameSet));
|
|
|
+ result.put("makeUint", String.join(",", makeUintSet));
|
|
|
+ result.put("unitName", String.join(",", unitNameSet));
|
|
|
+ result.put("equipName", String.join(",", equipNameSet));
|
|
|
+ result.put("productCode", String.join(",", productCodeSet));
|
|
|
+ result.put("unitAddress", String.join(",", unitAddressSet));
|
|
|
+ result.put("zipCode", String.join(",", zipCodeSet));
|
|
|
}
|
|
|
|
|
|
result.put("reportNo",itemReportDO.getReportNo());
|
|
|
@@ -170,26 +203,45 @@ public class QC01001_202400OFData implements IDynamicOFData {
|
|
|
|
|
|
List<PipeTaskOrderItemDO> orderItems = pipeTaskOrderItemService.lambdaQuery().eq(PipeTaskOrderItemDO::getOrderId,itemReportDO.getOrderId()).list();
|
|
|
if (!orderItems.isEmpty()){
|
|
|
+
|
|
|
+ String checkTypeName = "";
|
|
|
+ PipeTaskOrderDO taskOrderDO = pipeTaskOrderMapper.selectById(itemReportDO.getOrderId());
|
|
|
+ if (taskOrderDO != null){
|
|
|
+ DictDataRespDTO checkTypeDTO = dictDataApi.getDictData("pressure_inspection_nature_pipe",taskOrderDO.getCheckType().toString()).getData();
|
|
|
+ if (checkTypeDTO != null){
|
|
|
+ checkTypeName = checkTypeDTO.getLabel();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
String[] equipIdIdArray = orderItems.stream().map(PipeTaskOrderItemDO::getEquipId).toArray(String[]::new);
|
|
|
for (String equipId : equipIdIdArray) {
|
|
|
EquipPipeDO equipPipeDO = equipPipeMapper.selectById(equipId);
|
|
|
if (equipPipeDO != null){
|
|
|
- //设备信息
|
|
|
- makeUint = (makeUint.isEmpty()?makeUint:makeUint+",") + (StringUtils.isEmpty(equipPipeDO.getUnitCode())?"-":equipPipeDO.getUnitCode());
|
|
|
- unitName = (unitName.isEmpty()?unitName:unitName+",") + (StringUtils.isEmpty(equipPipeDO.getUnitName())?"-":equipPipeDO.getUnitName());
|
|
|
- projectName = (projectName.isEmpty()?projectName:projectName+",") + (StringUtils.isEmpty(equipPipeDO.getProjectName())?"-":equipPipeDO.getProjectName());
|
|
|
- productCode = (productCode.isEmpty()?productCode:productCode+",") + (StringUtils.isEmpty(equipPipeDO.getProjectNo())?"-":equipPipeDO.getProjectNo());
|
|
|
- unitAddress = (unitAddress.isEmpty()?unitAddress:unitAddress+",") + (StringUtils.isEmpty(equipPipeDO.getUnitAddress())?"-":equipPipeDO.getUnitAddress());
|
|
|
- zipCode = (zipCode.isEmpty()?zipCode:zipCode+",") + (StringUtils.isEmpty(equipPipeDO.getPostalCode())?"-":equipPipeDO.getPostalCode());
|
|
|
+ //设备信息 - 使用 Set 自动去重
|
|
|
+ makeUintSet.add(StringUtils.isEmpty(equipPipeDO.getUnitCode()) ? "-" : equipPipeDO.getUnitCode());
|
|
|
+ unitNameSet.add(StringUtils.isEmpty(equipPipeDO.getUnitName()) ? "-" : equipPipeDO.getUnitName());
|
|
|
+ equipNameSet.add(StringUtils.isEmpty(equipPipeDO.getProjectName()) ? "-" : equipPipeDO.getProjectName());
|
|
|
+ productCodeSet.add(StringUtils.isEmpty(equipPipeDO.getProjectNo()) ? "-" : equipPipeDO.getProjectNo());
|
|
|
+ unitAddressSet.add(StringUtils.isEmpty(equipPipeDO.getUnitAddress()) ? "-" : equipPipeDO.getUnitAddress());
|
|
|
+ zipCodeSet.add(StringUtils.isEmpty(equipPipeDO.getPostalCode()) ? "-" : equipPipeDO.getPostalCode());
|
|
|
+
|
|
|
+ String pipeType = "";
|
|
|
+ DictDataRespDTO pipeTypeDTO = dictDataApi.getDictData("PIPE_TYPE",equipPipeDO.getPipeCategory().toString()).getData();
|
|
|
+ if (pipeTypeDTO != null){
|
|
|
+ pipeType = pipeTypeDTO.getLabel();
|
|
|
+ }
|
|
|
+ projectNameSet.add(pipeType + checkTypeName);
|
|
|
}
|
|
|
}
|
|
|
- result.put("projectName",projectName.isEmpty()?"-":projectName);
|
|
|
- result.put("makeUint",makeUint.isEmpty()?"-":makeUint);
|
|
|
- result.put("unitName",unitName.isEmpty()?"-":unitName);
|
|
|
- result.put("equipName",projectName.isEmpty()?"-":projectName);
|
|
|
- result.put("productCode",productCode.isEmpty()?"-":productCode);
|
|
|
- result.put("unitAddress",unitAddress.isEmpty()?"-":unitAddress);
|
|
|
- result.put("zipCode",zipCode.isEmpty()?"-":zipCode);
|
|
|
+
|
|
|
+ // 将 Set 转换为逗号分隔的字符串
|
|
|
+ result.put("projectName", String.join(",", projectNameSet));
|
|
|
+ result.put("makeUint", String.join(",", makeUintSet));
|
|
|
+ result.put("unitName", String.join(",", unitNameSet));
|
|
|
+ result.put("equipName", String.join(",", equipNameSet));
|
|
|
+ result.put("productCode", String.join(",", productCodeSet));
|
|
|
+ result.put("unitAddress", String.join(",", unitAddressSet));
|
|
|
+ result.put("zipCode", String.join(",", zipCodeSet));
|
|
|
|
|
|
}
|
|
|
|