xy há 20 horas atrás
pai
commit
f419942787
8 ficheiros alterados com 152 adições e 19 exclusões
  1. 4 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskordersecuritycheck/BoilerTaskOrderSecurityCheckController.java
  2. 2 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskordersecuritycheck/vo/BoilerTaskOrderSecurityCheckSaveReqVO.java
  3. 2 2
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskordersecuritycheck/PipeTaskOrderSecurityCheckController.java
  4. 3 5
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskordersecuritycheck/vo/PipeTaskOrderSecurityCheckSaveReqVO.java
  5. 2 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskordersecuritycheck/BoilerTaskOrderSecurityCheckService.java
  6. 53 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskordersecuritycheck/BoilerTaskOrderSecurityCheckServiceImpl.java
  7. 3 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskordersecuritycheck/PipeTaskOrderSecurityCheckService.java
  8. 83 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskordersecuritycheck/PipeTaskOrderSecurityCheckServiceImpl.java

+ 4 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskordersecuritycheck/BoilerTaskOrderSecurityCheckController.java

@@ -39,14 +39,14 @@ public class BoilerTaskOrderSecurityCheckController {
        return success(boilerTaskOrderSecurityCheckService.createTaskOrderSecurityCheck(createReqVO));
    }
 
-    /* @PutMapping("/update")
+     @PostMapping("/update")
      @Operation(summary = "更新安全检查记录")
      //@PreAuthorize("@ss.hasPermission('pressure:task-order-security-check:update')")
-     public CommonResult<Boolean> updateTaskOrderSecurityCheck(@Valid @RequestBody TaskOrderSecurityCheckSaveReqVO updateReqVO) {
-         taskOrderSecurityCheckService.updateTaskOrderSecurityCheck(updateReqVO);
+     public CommonResult<Boolean> updateTaskOrderSecurityCheck(@Valid @RequestBody BoilerTaskOrderSecurityCheckSaveReqVO updateReqVO) {
+        boilerTaskOrderSecurityCheckService.updateTaskOrderSecurityCheck(updateReqVO);
          return success(true);
      }
-  */
+
     @GetMapping("/default-template")
     @Operation(summary = "获得安全检查记录 模版")
     //@PreAuthorize("@ss.hasPermission('pressure:task-order-security-check:query')")

+ 2 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskordersecuritycheck/vo/BoilerTaskOrderSecurityCheckSaveReqVO.java

@@ -13,12 +13,10 @@ public class BoilerTaskOrderSecurityCheckSaveReqVO {
     @Schema(description = "id", example = "11493")
     private String id;
 
-    @Schema(description = "任务单", requiredMode = Schema.RequiredMode.REQUIRED, example = "21366")
-    @NotEmpty(message = "任务单不能为空")
+    @Schema(description = "任务单")
     private String orderId;
 
-    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
-    @NotEmpty(message = "名称不能为空")
+    @Schema(description = "名称")
     private String name;
 
     @Schema(description = "结论")

+ 2 - 2
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskordersecuritycheck/PipeTaskOrderSecurityCheckController.java

@@ -47,11 +47,11 @@ public class PipeTaskOrderSecurityCheckController {
         return success(pipeTaskOrderSecurityCheckService.createPipeTaskOrderSecurityCheck(createReqVO));
     }
 
-    @PutMapping("/update")
+    @PostMapping("/update")
     @Operation(summary = "更新管道安全检查记录")
     //@PreAuthorize("@ss.hasPermission('pressure2:pipe-task-order-security-check:update')")
     public CommonResult<Boolean> updatePipeTaskOrderSecurityCheck(@Valid @RequestBody PipeTaskOrderSecurityCheckSaveReqVO updateReqVO) {
-        pipeTaskOrderSecurityCheckService.updatePipeTaskOrderSecurityCheck(updateReqVO);
+        pipeTaskOrderSecurityCheckService.updateTaskOrderSecurityCheck(updateReqVO);
         return success(true);
     }
 

+ 3 - 5
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskordersecuritycheck/vo/PipeTaskOrderSecurityCheckSaveReqVO.java

@@ -11,15 +11,13 @@ import java.time.LocalDateTime;
 @Data
 public class PipeTaskOrderSecurityCheckSaveReqVO {
 
-    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24357")
+    @Schema(description = "id")
     private String id;
 
-    @Schema(description = "任务单", requiredMode = Schema.RequiredMode.REQUIRED, example = "29634")
-    @NotEmpty(message = "任务单不能为空")
+    @Schema(description = "任务单")
     private String orderId;
 
-    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
-    @NotEmpty(message = "名称不能为空")
+    @Schema(description = "名称")
     private String name;
 
     @Schema(description = "结论")

+ 2 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskordersecuritycheck/BoilerTaskOrderSecurityCheckService.java

@@ -65,4 +65,6 @@ public interface BoilerTaskOrderSecurityCheckService {
     void setDataSource(String orderId, ObjectNode mergedObject);*/
 
     void updateTaskOrderSecurityCheckByOrderId(OrderFormEnterReqVO reqVO);
+
+    void updateTaskOrderSecurityCheck(@Valid BoilerTaskOrderSecurityCheckSaveReqVO updateReqVO);
 }

+ 53 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskordersecuritycheck/BoilerTaskOrderSecurityCheckServiceImpl.java

@@ -36,6 +36,7 @@ import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderuser.BoilerTaskOrde
 import cn.start.tz.module.pressure2.service.boilertaskorder.BoilerTaskOrderService;
 import cn.start.tz.module.pressure2.service.boilertaskorderfileversion.BoilerTaskOrderFileVersionService;
 import cn.start.tz.module.pressure2.service.dynamictbins.DynamicTbInsService;
+import cn.start.tz.module.pressure2.util.OADateFormat;
 import cn.start.tz.module.system.api.user.AdminUserApi;
 import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -180,7 +181,7 @@ public class BoilerTaskOrderSecurityCheckServiceImpl implements BoilerTaskOrderS
         return id;
     }
 
-    /*@Override
+    @Override
     public void updateTaskOrderSecurityCheck(BoilerTaskOrderSecurityCheckSaveReqVO updateReqVO) {
         String userId = getLoginUserId();
         // 校验存在
@@ -190,11 +191,20 @@ public class BoilerTaskOrderSecurityCheckServiceImpl implements BoilerTaskOrderS
         try {
             if(StringUtils.isNotBlank(updateReqVO.getJsonData())){
                 Map map = objectMapper.readValue(updateReqVO.getJsonData(), Map.class);
-                Object yxDateObj = map.get("yxDate");
+                Object date = map.get("value15");
+                if(date != null){
+                    LocalDateTime localDateTime = parseToLocalDateTime(date.toString());
+                    updateObj.setDate(localDateTime);
+                }
+                Object yxDateObj = map.get("value16");
                 if(yxDateObj != null){
-                    LocalDateTime localDateTime = DateUtil.parseLocalDateTime(yxDateObj.toString());
+                    LocalDateTime localDateTime = parseToLocalDateTime(yxDateObj.toString());
                     updateObj.setValidityDate(localDateTime);
                 }
+                Object checkConclusion = map.get("checkConclusion");
+                if(checkConclusion != null){
+                    updateObj.setConclusion(checkConclusion.toString());
+                }
             }
         } catch (Exception e) {
             log.error("解析默认模板失败!", e);
@@ -203,7 +213,7 @@ public class BoilerTaskOrderSecurityCheckServiceImpl implements BoilerTaskOrderS
         taskOrderSecurityCheckMapper.updateById(updateObj);
         //记录版本信息
 //        addVersion(updateReqVO, updateReqVO.getId(), userId);
-    }*/
+    }
 
     @Override
     public void deleteTaskOrderSecurityCheck(String id) {
@@ -413,4 +423,43 @@ public class BoilerTaskOrderSecurityCheckServiceImpl implements BoilerTaskOrderS
             lock.unlock();
         }
     }*/
+
+    /**
+     * 将日期字符串解析为 LocalDateTime
+     * 支持格式:
+     * - "2026-05-18" (纯日期格式)
+     * - "2026-05-18 10:30:00" (日期时间格式)
+     * - 其他常见日期格式
+     */
+    private LocalDateTime parseToLocalDateTime(String dateStr) {
+        if (dateStr == null || dateStr.trim().isEmpty()) {
+            return null;
+        }
+        
+        try {
+            // 检查是否为OA日期格式 /OADate(xxxxxx)/
+            if (dateStr != null && dateStr.matches("/OADate\\(([^)]+)\\)/")) {
+                try {
+                    // 提取括号内的数字
+                    String numberStr = dateStr.replaceAll("/OADate\\(([^)]+)\\)/", "$1");
+                    double oaDate = Double.parseDouble(numberStr);
+                    // 转换为LocalDateTime并格式化为年-月-日
+                    return OADateFormat.convertOADateToLocalDateTime(oaDate);
+                } catch (Exception e) {
+                    log.warn("OADATE日期格式转换失败: {}", dateStr, e);
+                }
+            }
+            // 尝试直接解析为 LocalDateTime
+            return DateUtil.parseLocalDateTime(dateStr);
+        } catch (Exception e) {
+            try {
+                // 如果失败,尝试解析为 Date,然后转换为 LocalDateTime
+                java.util.Date date = DateUtil.parse(dateStr);
+                return DateUtil.toLocalDateTime(date);
+            } catch (Exception ex) {
+                log.error("日期字符串解析失败: {}", dateStr, ex);
+                return null;
+            }
+        }
+    }
 }

+ 3 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskordersecuritycheck/PipeTaskOrderSecurityCheckService.java

@@ -6,6 +6,7 @@ import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.OrderFor
 import cn.start.tz.module.pressure2.controller.admin.boilertaskordersecuritycheck.vo.BoilerTaskOrderSecurityCheckPageReqVO;
 import cn.start.tz.module.pressure2.controller.admin.boilertaskordersecuritycheck.vo.BoilerTaskOrderSecurityCheckReportVO;
 import cn.start.tz.module.pressure2.controller.admin.boilertaskordersecuritycheck.vo.BoilerTaskOrderSecurityCheckRespVO;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskordersecuritycheck.vo.BoilerTaskOrderSecurityCheckSaveReqVO;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import jakarta.validation.*;
 import cn.start.tz.module.pressure2.controller.admin.pipetaskordersecuritycheck.vo.*;
@@ -64,4 +65,6 @@ public interface PipeTaskOrderSecurityCheckService extends IService<PipeTaskOrde
     BoilerTaskOrderSecurityCheckReportVO getDefaultTemplate(String orderId) throws JsonProcessingException;
 
     void updateTaskOrderSecurityCheckByOrderId(OrderFormEnterReqVO reqVO);
+
+    void updateTaskOrderSecurityCheck(@Valid PipeTaskOrderSecurityCheckSaveReqVO updateReqVO);
 }

+ 83 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskordersecuritycheck/PipeTaskOrderSecurityCheckServiceImpl.java

@@ -1,5 +1,6 @@
 package cn.start.tz.module.pressure2.service.pipetaskordersecuritycheck;
 
+import cn.hutool.core.date.DateUtil;
 import cn.start.tz.framework.common.pojo.PageResult;
 import cn.start.tz.framework.common.util.object.BeanUtils;
 import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -19,11 +20,13 @@ import cn.start.tz.module.pressure2.dal.mysql.boilerconnecttbservice.BoilerConne
 import cn.start.tz.module.pressure2.dal.mysql.dynamictb.DynamicTbMapper;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskordersecuritycheck.PipeTaskOrderSecurityCheckMapper;
 import cn.start.tz.module.pressure2.service.dynamictbins.DynamicTbInsService;
+import cn.start.tz.module.pressure2.util.OADateFormat;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
@@ -45,6 +48,7 @@ import static cn.start.tz.module.pressure2.enums.ErrorCodeConstants.PIPE_TASK_OR
  */
 @Service
 @Validated
+@Slf4j
 public class PipeTaskOrderSecurityCheckServiceImpl extends ServiceImpl<PipeTaskOrderSecurityCheckMapper, PipeTaskOrderSecurityCheckDO> implements PipeTaskOrderSecurityCheckService {
 
     @Resource
@@ -204,4 +208,83 @@ public class PipeTaskOrderSecurityCheckServiceImpl extends ServiceImpl<PipeTaskO
 
     }
 
+    private void validateTaskOrderSecurityCheckExists(String id) {
+        if (pipeTaskOrderSecurityCheckMapper.selectById(id) == null) {
+            // throw exception(TASK_ORDER_SECURITY_CHECK_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public void updateTaskOrderSecurityCheck(PipeTaskOrderSecurityCheckSaveReqVO updateReqVO) {
+        String userId = getLoginUserId();
+        // 校验存在
+        validateTaskOrderSecurityCheckExists(updateReqVO.getId());
+        // 更新
+        PipeTaskOrderSecurityCheckDO updateObj = BeanUtils.toBean(updateReqVO,PipeTaskOrderSecurityCheckDO.class);
+        try {
+            if(StringUtils.isNotBlank(updateReqVO.getJsonData())){
+                Map map = objectMapper.readValue(updateReqVO.getJsonData(), Map.class);
+                Object date = map.get("value15");
+                if(date != null){
+                    LocalDateTime localDateTime = parseToLocalDateTime(date.toString());
+                    updateObj.setDate(localDateTime);
+                }
+                Object yxDateObj = map.get("value16");
+                if(yxDateObj != null){
+                    LocalDateTime localDateTime = parseToLocalDateTime(yxDateObj.toString());
+                    updateObj.setValidityDate(localDateTime);
+                }
+                Object checkConclusion = map.get("checkConclusion");
+                if(checkConclusion != null){
+                    updateObj.setConclusion(checkConclusion.toString());
+                }
+            }
+        } catch (Exception e) {
+            log.error("解析默认模板失败!", e);
+        }
+
+        pipeTaskOrderSecurityCheckMapper.updateById(updateObj);
+        //记录版本信息
+//        addVersion(updateReqVO, updateReqVO.getId(), userId);
+    }
+
+    /**
+     * 将日期字符串解析为 LocalDateTime
+     * 支持格式:
+     * - "2026-05-18" (纯日期格式)
+     * - "2026-05-18 10:30:00" (日期时间格式)
+     * - 其他常见日期格式
+     */
+    private LocalDateTime parseToLocalDateTime(String dateStr) {
+        if (dateStr == null || dateStr.trim().isEmpty()) {
+            return null;
+        }
+
+        try {
+            // 检查是否为OA日期格式 /OADate(xxxxxx)/
+            if (dateStr != null && dateStr.matches("/OADate\\(([^)]+)\\)/")) {
+                try {
+                    // 提取括号内的数字
+                    String numberStr = dateStr.replaceAll("/OADate\\(([^)]+)\\)/", "$1");
+                    double oaDate = Double.parseDouble(numberStr);
+                    // 转换为LocalDateTime并格式化为年-月-日
+                    return OADateFormat.convertOADateToLocalDateTime(oaDate);
+                } catch (Exception e) {
+                    log.warn("OADATE日期格式转换失败: {}", dateStr, e);
+                }
+            }
+            // 尝试直接解析为 LocalDateTime
+            return DateUtil.parseLocalDateTime(dateStr);
+        } catch (Exception e) {
+            try {
+                // 如果失败,尝试解析为 Date,然后转换为 LocalDateTime
+                java.util.Date date = DateUtil.parse(dateStr);
+                return DateUtil.toLocalDateTime(date);
+            } catch (Exception ex) {
+                log.error("日期字符串解析失败: {}", dateStr, ex);
+                return null;
+            }
+        }
+    }
+
 }