|
|
@@ -0,0 +1,160 @@
|
|
|
+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.equippipe.EquipPipeDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.equippipedetail.EquipPipeDetailDO;
|
|
|
+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.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.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.dynamictbcol.DynamicTbColService;
|
|
|
+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.clientunit.ClientUnitApi;
|
|
|
+import cn.start.tz.module.system.api.clientunit.dto.ClientUnitDTO;
|
|
|
+import cn.start.tz.module.system.api.dict.DictDataApi;
|
|
|
+import cn.start.tz.module.system.api.user.AdminUserApi;
|
|
|
+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;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 管道原始资料审查记录
|
|
|
+ */
|
|
|
+@Service("QC12150_202400RecordOFData")
|
|
|
+public class QC12150_202400RecordOFData implements IDynamicOFData {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EquipPipeMapper equipPipeMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EquipPipeDetailMapper equipPipeDetailMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private AutoDataPipeService autoDataPipeService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderMapper pipeTaskOrderMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderInputService pipeTaskOrderInputService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderItemDetailMapper pipeTaskOrderItemDetailMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ClientUnitApi clientUnitApi;
|
|
|
+
|
|
|
+ @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();
|
|
|
+ PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
|
|
|
+
|
|
|
+ if (itemReportDO != null) {
|
|
|
+
|
|
|
+ result = autoDataPipeService.autoGeneratePipeRecordData(result, refId);
|
|
|
+
|
|
|
+ List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
|
|
|
+ .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
|
|
|
+ if (!itemDOList.isEmpty()) {
|
|
|
+
|
|
|
+ EquipPipeDO equipPipeDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
|
|
|
+ if (equipPipeDO != null) {
|
|
|
+
|
|
|
+ result.put("unitName", equipPipeDO.getUnitName());
|
|
|
+ result.put("unitAddress", equipPipeDO.getUnitAddress());
|
|
|
+ result.put("zipCode", equipPipeDO.getPostalCode());
|
|
|
+
|
|
|
+ //企业信息
|
|
|
+ if (equipPipeDO.getUnitCode() != null){
|
|
|
+ ClientUnitDTO clientUnit = clientUnitApi.getClientUnitByCode(equipPipeDO.getUnitCode()).getData();
|
|
|
+ if (clientUnit != null){
|
|
|
+ result.put("socialCreditCode", clientUnit.getSocialCreditCode());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ 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()));
|
|
|
+ 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);
|
|
|
+
|
|
|
+ // 判断pipeNo是否相同
|
|
|
+ String pipeNoValue;
|
|
|
+ Set<String> pipeNos = equipPipeDetailDOList.stream()
|
|
|
+ .map(EquipPipeDetailDO::getPipeNo)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ // 如果只有一个唯一的pipeNo值,则使用该值;否则设置为"见一览表"
|
|
|
+ pipeNoValue = pipeNos.size() == 1 ? pipeNos.iterator().next() : "见一览表";
|
|
|
+ result.put("pipeNo", pipeNoValue);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //设备信息
|
|
|
+ if (itemDOList.size() > 1) {
|
|
|
+ result.put("projectNo", "见一览表");
|
|
|
+ } else {
|
|
|
+ if (equipPipeDO != null) {
|
|
|
+ result.put("projectNo", equipPipeDO.getProjectNo());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|