|
|
@@ -0,0 +1,202 @@
|
|
|
+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.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.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.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.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.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.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 压力管道年度检查结论报告 记录
|
|
|
+ * */
|
|
|
+@Service("QC12016_202401JRecordOFData")
|
|
|
+public class QC12016_202401JRecordOFData implements IDynamicOFData {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EquipPipeMapper equipPipeMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private AutoDataPipeService autoDataPipeService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EquipPipeDetailMapper equipPipeDetailMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderMapper pipeTaskOrderMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderItemDetailMapper pipeTaskOrderItemDetailMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderInputService pipeTaskOrderInputService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private DynamicTbValService dynamicTbValService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private DynamicTbColService dynamicTbColService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private GenerateReportJsonService generateReportJsonService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private AdminUserApi adminUserApi;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private DictDataApi dictDataApi;
|
|
|
+
|
|
|
+ @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 = autoDataPipeService.autoGeneratePipeRecordData(new JSONObject(), refId);
|
|
|
+ PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
|
|
|
+
|
|
|
+ if (itemReportDO != null){
|
|
|
+
|
|
|
+ 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 (itemDOList.size() > 1){
|
|
|
+ result.put("unitCode","见一览表");
|
|
|
+ result.put("unitName","见一览表");
|
|
|
+ result.put("unitAddress","见一览表");
|
|
|
+ }else {
|
|
|
+ if (equipPipeDO != null){
|
|
|
+ result.put("unitCode",equipPipeDO.getUnitCode());
|
|
|
+ result.put("unitName",equipPipeDO.getUnitName());
|
|
|
+ result.put("unitAddress",equipPipeDO.getUnitAddress());
|
|
|
+
|
|
|
+ result.put("contactPhone",equipPipeDO.getContactPhone());
|
|
|
+ result.put("certificateNo",equipPipeDO.getCertificateNo());
|
|
|
+
|
|
|
+ result.put("securityMan",equipPipeDO.getSecurityMan());
|
|
|
+ result.put("pipeClass",equipPipeDO.getPipeClass());
|
|
|
+ result.put("securityManPhone",equipPipeDO.getSecurityManPhone());
|
|
|
+ result.put("projectName",equipPipeDO.getProjectName());
|
|
|
+ result.put("postalCode",equipPipeDO.getPostalCode());
|
|
|
+ result.put("pipeUsePlace",equipPipeDO.getPipeUsePlace());
|
|
|
+
|
|
|
+ result.put("installationStatusReg",equipPipeDO.getInstallationStatusReg());
|
|
|
+
|
|
|
+ result.put("pipeLengthTotal",equipPipeDO.getPipeLengthTotal().toString());
|
|
|
+ if (equipPipeDO.getNextYearCheckDate() != null){
|
|
|
+ result.put("nextYearCheckDate",equipPipeDO.getNextYearCheckDate()
|
|
|
+ .plusYears(1)
|
|
|
+ .minusDays(1)
|
|
|
+ .format(dateFormat));
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取约检管线
|
|
|
+ List<PipeTaskOrderItemDetailDO> detailDOS = pipeTaskOrderItemDetailMapper.selectList(PipeTaskOrderItemDetailDO::getOrderId, itemReportDO.getOrderId());
|
|
|
+ if (!detailDOS.isEmpty()){
|
|
|
+ //获取任意一条管线
|
|
|
+ EquipPipeDetailDO detailDO = equipPipeDetailMapper.selectById(detailDOS.get(0).getEquipDetailId());
|
|
|
+ if (detailDO != null){
|
|
|
+ result.put("pipeName1",detailDO.getPipeName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (equipPipeDO != null) {
|
|
|
+ result.put("certificateNo", equipPipeDO.getCertificateNo());
|
|
|
+ }
|
|
|
+ List<EquipPipeDO> equipPipeDOList = equipPipeMapper.selectList(new LambdaQueryWrapper<EquipPipeDO>().in(EquipPipeDO::getId, itemDOList.stream().map(PipeTaskOrderItemDO::getEquipId).toList()));
|
|
|
+ List<PipeTaskOrderItemDetailDO> detailDOS = pipeTaskOrderItemDetailMapper.selectList(PipeTaskOrderItemDetailDO::getOrderId, itemReportDO.getOrderId());
|
|
|
+ List<EquipPipeDetailDO> equipPipeDetailDOList = equipPipeDetailMapper.selectList(new LambdaQueryWrapper<EquipPipeDetailDO>().in(EquipPipeDetailDO::getId, detailDOS.stream().map(PipeTaskOrderItemDetailDO::getEquipDetailId).toList()));
|
|
|
+ double sum = equipPipeDetailDOList.stream().mapToDouble(equipPipeDetailDO -> equipPipeDetailDO.getPipeLength().doubleValue()).sum();
|
|
|
+ result.put("pipeLengthTotal", String.valueOf(sum));
|
|
|
+ List<String> pipeCategoryList = equipPipeDOList.stream().map(EquipPipeDO::getPipeCategory).distinct().toList();
|
|
|
+ List<DictDataRespDTO> dictDataRespDTOList = dictDataApi.getDictDataList("PIPE_TYPE").getData();
|
|
|
+ // 按/拼接
|
|
|
+ String collect = dictDataRespDTOList.stream().filter(dictDataRespDTO -> pipeCategoryList.contains(dictDataRespDTO.getValue())).map(DictDataRespDTO::getLabel).collect(Collectors.joining("/"));
|
|
|
+ result.put("pipeCategory", collect);
|
|
|
+ }
|
|
|
+
|
|
|
+ String orderId = itemReportDO.getOrderId();
|
|
|
+ PipeTaskOrderDO taskOrderDO = pipeTaskOrderMapper.selectById(orderId);
|
|
|
+ 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("checkDateEnd",checkDateStr);
|
|
|
+ }
|
|
|
+
|
|
|
+ //审核人员信息
|
|
|
+ AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportDO.getApprovalId()).getData();
|
|
|
+ if (userInfo != null){
|
|
|
+ if (userInfo.getSignUrl() != null){
|
|
|
+ result.put("approvalName",userInfo.getSignUrl());
|
|
|
+ }else{
|
|
|
+ result.put("approvalName",itemReportDO.getApprovalName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (itemReportDO.getApprovalTime() != null){
|
|
|
+ result.put("approvalTime",itemReportDO.getApprovalTime().format(dateFormat));
|
|
|
+ }
|
|
|
+
|
|
|
+ //批准人员信息
|
|
|
+ userInfo = adminUserApi.getUser(itemReportDO.getRatifyId()).getData();
|
|
|
+ if (userInfo != null){
|
|
|
+ if (userInfo.getSignUrl() != null){
|
|
|
+ result.put("ratifyName",userInfo.getSignUrl());
|
|
|
+ }else{
|
|
|
+ result.put("ratifyName",itemReportDO.getRatifyName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (itemReportDO.getRatifyTime() != null){
|
|
|
+ result.put("ratifyTime",itemReportDO.getRatifyTime().format(dateFormat));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+}
|