From 7374d150b7f08d4b126d3d0fde57ab55febb53dd Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期三, 05 三月 2025 09:48:24 +0800
Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/lims-ruoyi-after into dev_cr

---
 cnas-device/src/main/java/com/ruoyi/device/controller/DeviceAcceptanceController.java          |    2 
 cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java             |    7 
 cnas-device/src/main/java/com/ruoyi/device/mapper/InstructionMapper.java                       |    4 
 cnas-device/src/main/java/com/ruoyi/device/service/DeviceInspectionRecordService.java          |    3 
 cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInspectionRecordServiceImpl.java |    7 
 cnas-device/src/main/java/com/ruoyi/device/controller/DeviceStateController.java               |    4 
 cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMetric.java                              |   29 +++
 cnas-device/src/main/resources/mapper/DeviceInspectionRecordMapper.xml                         |    5 
 cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInstructionServiceImpl.java      |    3 
 cnas-device/src/main/java/com/ruoyi/device/service/IDeviceMetricService.java                   |    7 
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDateTimeSerializerConfig.java    |   72 ++++----
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java       |    6 
 cnas-device/src/main/java/com/ruoyi/device/service/DeviceInstructionService.java               |    4 
 cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceController.java         |    2 
 cnas-device/src/main/resources/mapper/InstructionMapper.xml                                    |   21 +-
 cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMetricMapper.java                      |    9 +
 cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceInspectionRecordMapper.java            |    3 
 ruoyi-admin/src/main/resources/application.yml                                                 |    9 
 cnas-device/src/main/java/com/ruoyi/device/controller/DeviceInspectionRecordController.java    |    2 
 cnas-device/src/main/resources/mapper/DeviceMaintenancePlanMapper.xml                          |    2 
 ruoyi-admin/src/main/resources/application-prod.yml                                            |  110 +++++++++++++
 ruoyi-admin/src/main/resources/application-druid.yml                                           |    3 
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java                  |   43 ++++
 cnas-device/src/main/java/com/ruoyi/device/controller/DeviceInstructionController.java         |   16 +
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java          |    8 
 ruoyi-admin/src/main/resources/logback.xml                                                     |   41 +---
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java                   |    2 
 cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMetricServiceImpl.java           |   11 +
 cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMetricController.java              |   35 ++++
 29 files changed, 353 insertions(+), 117 deletions(-)

diff --git a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceAcceptanceController.java b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceAcceptanceController.java
index d77575d..183ede5 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceAcceptanceController.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceAcceptanceController.java
@@ -126,7 +126,7 @@
      * @return
      */
     @ApiOperation(value = "璁惧楠屾敹闄勪欢鍒犻櫎")
-    @GetMapping("/delDeviceAcceptanceFileList")
+    @DeleteMapping("/delDeviceAcceptanceFileList")
     public Result delDeviceAcceptanceFileList(Integer acceptanceFileId){
         return Result.success(deviceAcceptanceFileService.removeById(acceptanceFileId));
     }
diff --git a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceInspectionRecordController.java b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceInspectionRecordController.java
index 9db6182..f4b3b1e 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceInspectionRecordController.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceInspectionRecordController.java
@@ -35,7 +35,7 @@
      */
     @ApiOperation("鍒嗛〉鏌ヨ璁惧鐐规璁板綍")
     @GetMapping("/getDeviceInspectionRecordByPage")
-    public Result<IPage<DeviceInspectionRecord>> getDeviceInspectionRecordByPage(IPage page, DeviceInspectionRecordDto itemParameter) {
+    public Result<IPage<DeviceInspectionRecord>> getDeviceInspectionRecordByPage(Page page, DeviceInspectionRecordDto itemParameter) {
         return deviceInspectionRecordService.getDeviceInspectionRecordByPage(page, itemParameter);
     }
 
diff --git a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceInstructionController.java b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceInstructionController.java
index a4af938..f9d4d7f 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceInstructionController.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceInstructionController.java
@@ -41,9 +41,9 @@
     private DeviceOperationInstructionService deviceOperationInstructionService;
 
 
-    @ApiOperation(value = "浣滀笟鎸囧涔� 鍒嗛〉")
+    @ApiOperation(value = "浣滀笟鎸囧涔﹀垎椤�")
     @GetMapping("/pageByPageQueryOfHomeworkInstructions")
-    public Result<IPage<DeviceInstruction>> pageByPageQueryOfHomeworkInstructions(Page page, DeviceOperationInstructionDto operationInstructionDto){
+    public Result<IPage<DeviceOperationInstructionDto>> pageByPageQueryOfHomeworkInstructions(Page page, DeviceOperationInstructionDto operationInstructionDto){
         return Result.success(deviceInstructionService.pageByPageQueryOfHomeworkInstructions(page, operationInstructionDto));
     }
 
@@ -54,7 +54,7 @@
         return Result.success();
     }
 
-    @ApiOperation(value = "浣滀笟鎸囧涔︾紪杈�")
+    @ApiOperation(value = "浣滀笟鎸囧涔﹁鎯�")
     @GetMapping("/homeworkGuidebookEditor")
     public Result<Map<String, Object>> homeworkGuidebookEditor(Integer instructionId){
         DeviceInstruction instruction = deviceInstructionService.getById(instructionId);
@@ -66,7 +66,7 @@
     }
 
     @ApiOperation(value = "浣滀笟鎸囧涔﹀彈鎺ф枃浠跺垹闄�")
-    @GetMapping("/deleteHomeworkGuidebook")
+    @DeleteMapping("/deleteHomeworkGuidebook")
     public Result deleteHomeworkGuidebook(String ids){
         if (ObjectUtils.isNotEmpty(ids)) {
             String[] idArray = ids.split(",");
@@ -76,7 +76,7 @@
     }
 
     @ApiOperation(value = "浣滀笟鎸囧涔﹀垹闄�")
-    @GetMapping("/homeworkGuidebook")
+    @DeleteMapping("/homeworkGuidebook")
     public Result homeworkGuidebook(String id, String instructionId){
         // 鍒犻櫎瀛愯〃鏁版嵁
         deviceOperationInstructionService.removeById(id);
@@ -91,8 +91,10 @@
     }
 
     @ApiOperation(value = "浣滀笟鎸囧涔﹀鎵�")
-    @GetMapping("/approvalOfHomeworkInstructionManual")
-    public Result approvalOfHomeworkInstructionManual(String id, Boolean status){
+    @PostMapping("/approvalOfHomeworkInstructionManual")
+    public Result approvalOfHomeworkInstructionManual(@RequestBody Map<String,Object> map){
+        Integer id =(Integer) map.get("id");
+        Boolean status =(Boolean) map.get("status");
         deviceOperationInstructionService.update(Wrappers.<OperationInstruction>lambdaUpdate()
                 .eq(OperationInstruction::getId, id)
                 .set(OperationInstruction::getStatus, status)
diff --git a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceController.java b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceController.java
index a7bf0df..44cf11a 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceController.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceController.java
@@ -71,7 +71,7 @@
      */
     @ApiOperation(value = "鏂板璁惧缁存姢淇濆吇")
     @DeleteMapping("/deleteDeviceMaintenance")
-    public void deleteDeviceMaintenance(@PathVariable Integer id) {
+    public void deleteDeviceMaintenance( Integer id) {
         deviceMaintenanceService.removeById(id);
     }
 
diff --git a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMetricController.java b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMetricController.java
new file mode 100644
index 0000000..82dcefd
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMetricController.java
@@ -0,0 +1,35 @@
+package com.ruoyi.device.controller;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.device.pojo.DeviceMetric;
+import com.ruoyi.device.service.IDeviceMetricService;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/deviceMetrics")
+public class DeviceMetricController {
+
+    @Autowired
+    private IDeviceMetricService deviceMetricService;
+
+    @PostMapping("/saveOrUpdateDeviceMetric")
+    public Result create(@RequestBody DeviceMetric deviceMetric) {
+        return Result.success(deviceMetricService.saveOrUpdate(deviceMetric));
+    }
+
+    @GetMapping("/selectDeviceMetric")
+    public Result read(@RequestParam("deviceId") Integer deviceId, @RequestParam("type") String type) {
+        return Result.success(deviceMetricService.list(Wrappers.<DeviceMetric>lambdaQuery()
+                .eq(DeviceMetric::getDeviceId,deviceId)
+                .eq(DeviceMetric::getType,type)));
+    }
+
+    @DeleteMapping("/deleteDeviceMetrics")
+    public Result delete(@RequestParam("id") Integer id) {
+      return   Result.success(deviceMetricService.removeById(id));
+    }
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceStateController.java b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceStateController.java
index 4c73996..1d2ff28 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceStateController.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceStateController.java
@@ -63,9 +63,9 @@
         return Result.success(deviceStateService.removeById(stateId));
     }
 
-    @PostMapping("/deviceStateExport")
+    @GetMapping("/deviceStateExport")
     public Result deviceStateExport(@RequestParam("deviceId") Integer deviceId, String processNumber, HttpServletResponse response) throws Exception {
-        IPage<DeviceStateDto> deviceBorrows = deviceStateService.getDeviceStatePage(deviceId, new Page<>(1, -1), processNumber);
+        IPage<DeviceStateDto> deviceBorrows = deviceStateService.getDeviceStatePage(deviceId, new Page<>(-1, -1), processNumber);
         List<DeviceStateExport> studentList  = JSONObject.parseArray(JSON.toJSONString(deviceBorrows.getRecords()), DeviceStateExport.class);
         response.setHeader("requestType", "excel");
         response.setHeader("Access-Control-Expose-Headers", "requestType");
diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceInspectionRecordMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceInspectionRecordMapper.java
index 5cb34ee..9a05395 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceInspectionRecordMapper.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceInspectionRecordMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.device.dto.DeviceInspectionRecordDto;
 import com.ruoyi.device.pojo.DeviceInspectionRecord;
 import org.apache.ibatis.annotations.Param;
@@ -23,6 +24,6 @@
      * @param queryWrappers
      * @return
      */
-    IPage<DeviceInspectionRecord> selectDeviceParameterPage(IPage page, @Param("ew") QueryWrapper<DeviceInspectionRecordDto> queryWrappers);
+    IPage<DeviceInspectionRecord> selectDeviceParameterPage(Page page, @Param("ew") QueryWrapper<DeviceInspectionRecordDto> queryWrappers);
 
 }
diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMetricMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMetricMapper.java
new file mode 100644
index 0000000..6304f16
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMetricMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.device.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.device.pojo.DeviceMetric;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface DeviceMetricMapper extends BaseMapper<DeviceMetric> {
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/InstructionMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/InstructionMapper.java
index 12fd129..022c5e4 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/mapper/InstructionMapper.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/mapper/InstructionMapper.java
@@ -8,6 +8,8 @@
 import com.ruoyi.device.pojo.DeviceInstruction;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Map;
+
 /**
  * <p>
  * 浣滀笟鎸囧涔︽坊鍔犲彈鎺ф枃浠惰〃 Mapper 鎺ュ彛
@@ -19,5 +21,5 @@
 public interface InstructionMapper extends BaseMapper<DeviceInstruction> {
 
 
-    IPage<DeviceInstruction> pageByPageQueryOfHomeworkInstructions(Page page, @Param("ew") QueryWrapper<DeviceOperationInstructionDto> ew);
+    IPage<DeviceOperationInstructionDto> pageByPageQueryOfHomeworkInstructions(Page page, @Param("ew") QueryWrapper<DeviceOperationInstructionDto> ew);
 }
diff --git a/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMetric.java b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMetric.java
new file mode 100644
index 0000000..d7a5869
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMetric.java
@@ -0,0 +1,29 @@
+package com.ruoyi.device.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@TableName("device_metrics")
+public class DeviceMetric implements Serializable {
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id; //id
+    private Integer deviceId;            // 璁惧ID
+    private String measurementParameter; // 璁¢噺鍙傛暟
+    private String rangeOfMeasurement;   // 閲忕▼鑼冨洿
+    private String maxPermissibleError;  // 鏈�澶у厑璁歌宸�
+    private String judgmentCriteria;     // 鍒ゅ畾鏍囧噯
+    private String createdBy;           // 鍒涘缓浜�
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime creationTime;      // 鍒涘缓鏃堕棿
+
+    @ApiModelProperty("calibrate锛氭牎鍑嗭紱examine锛氭牳鏌�")
+    private String type; // 绫诲瀷
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceInspectionRecordService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceInspectionRecordService.java
index 7278b3c..2a7e72d 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceInspectionRecordService.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceInspectionRecordService.java
@@ -1,6 +1,7 @@
 package com.ruoyi.device.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.domain.Result;
 import com.ruoyi.device.dto.DeviceInspectionRecordDto;
@@ -22,7 +23,7 @@
      * 鍒嗛〉鏌ヨ璁惧鐐规璁板綍
      * @param page
      */
-    Result<IPage<DeviceInspectionRecord>> getDeviceInspectionRecordByPage(IPage page, DeviceInspectionRecordDto deviceInspectionRecord);
+    Result<IPage<DeviceInspectionRecord>> getDeviceInspectionRecordByPage(Page page, DeviceInspectionRecordDto deviceInspectionRecord);
 
 
     /**
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceInstructionService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceInstructionService.java
index 70e5f1c..8d1c73a 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceInstructionService.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceInstructionService.java
@@ -7,6 +7,8 @@
 import com.ruoyi.device.dto.DeviceOperationInstructionDto;
 import com.ruoyi.device.pojo.DeviceInstruction;
 
+import java.util.Map;
+
 /**
  * <p>
  * 浣滀笟鎸囧涔︽坊鍔犲彈鎺ф枃浠惰〃 鏈嶅姟绫�
@@ -17,7 +19,7 @@
  */
 public interface DeviceInstructionService extends IService<DeviceInstruction> {
 
-    IPage<DeviceInstruction> pageByPageQueryOfHomeworkInstructions(Page page, DeviceOperationInstructionDto operationInstructionDto);
+    IPage<DeviceOperationInstructionDto> pageByPageQueryOfHomeworkInstructions(Page page, DeviceOperationInstructionDto operationInstructionDto);
 
     void newHomeworkGuidebookAdded(DeviceInstructionDto instructionDto);
 }
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/IDeviceMetricService.java b/cnas-device/src/main/java/com/ruoyi/device/service/IDeviceMetricService.java
new file mode 100644
index 0000000..fc6ed49
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/IDeviceMetricService.java
@@ -0,0 +1,7 @@
+package com.ruoyi.device.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.device.pojo.DeviceMetric;
+
+public interface IDeviceMetricService extends IService<DeviceMetric> {
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInspectionRecordServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInspectionRecordServiceImpl.java
index 2c8041d..1a3f00a 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInspectionRecordServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInspectionRecordServiceImpl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.deepoove.poi.XWPFTemplate;
 import com.deepoove.poi.config.Configure;
@@ -52,6 +53,8 @@
     private DeviceMapper deviceMapper;
     @Resource
     private DeviceInspectionRecordDetailsService deviceInspectionRecordDetailsService;
+    @Resource
+    private DeviceInspectionRecordMapper deviceInspectionRecordMapper;
 
     /**
      * 鍒嗛〉鏌ヨ璁惧鐐规璁板綍
@@ -59,8 +62,8 @@
      * @param page 褰撳墠椤电爜
      */
     @Override
-    public Result<IPage<DeviceInspectionRecord>> getDeviceInspectionRecordByPage(IPage page, DeviceInspectionRecordDto deviceInspectionRecordDto) {
-        IPage<DeviceInspectionRecord> iPage = baseMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(deviceInspectionRecordDto));
+    public Result<IPage<DeviceInspectionRecord>> getDeviceInspectionRecordByPage(Page page, DeviceInspectionRecordDto deviceInspectionRecordDto) {
+        IPage<DeviceInspectionRecord> iPage = deviceInspectionRecordMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(deviceInspectionRecordDto));
         return Result.success(iPage);
     }
 
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInstructionServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInstructionServiceImpl.java
index 6f5bb5b..a43a987 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInstructionServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInstructionServiceImpl.java
@@ -21,6 +21,7 @@
 import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.Locale;
+import java.util.Map;
 
 /**
  * <p>
@@ -41,7 +42,7 @@
     private NumberGenerator<DeviceInstruction> numberGenerator;
 
     @Override
-    public IPage<DeviceInstruction> pageByPageQueryOfHomeworkInstructions(Page page, DeviceOperationInstructionDto operationInstructionDto) {
+    public IPage<DeviceOperationInstructionDto> pageByPageQueryOfHomeworkInstructions(Page page, DeviceOperationInstructionDto operationInstructionDto) {
         return baseMapper.pageByPageQueryOfHomeworkInstructions(page, QueryWrappers.queryWrappers(operationInstructionDto));
     }
 
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java
index 5b0d72c..7c28152 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java
@@ -12,6 +12,7 @@
 import com.ruoyi.device.pojo.DeviceMaintenance;
 import com.ruoyi.device.service.DeviceMaintenanceService;
 import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -27,7 +28,11 @@
 
     @Override
     public IPage<DeviceMaintenance> getDeviceMaintenancePage(Page page, Integer deviceId, String deviceNumber) {
-        return baseMapper.selectPage(page, Wrappers.<DeviceMaintenance>lambdaQuery()
+        if (ObjectUtils.isEmpty(deviceNumber)){
+            return baseMapper.selectPage(page, Wrappers.<DeviceMaintenance>lambdaQuery()
+                    .eq(DeviceMaintenance::getDeviceId, deviceId));
+        }
+       else return baseMapper.selectPage(page, Wrappers.<DeviceMaintenance>lambdaQuery()
                 .eq(DeviceMaintenance::getDeviceId, deviceId)
                 .like(DeviceMaintenance::getDeviceNumber, deviceNumber));
     }
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMetricServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMetricServiceImpl.java
new file mode 100644
index 0000000..adfffd7
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMetricServiceImpl.java
@@ -0,0 +1,11 @@
+package com.ruoyi.device.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.device.mapper.DeviceMetricMapper;
+import com.ruoyi.device.pojo.DeviceMetric;
+import com.ruoyi.device.service.IDeviceMetricService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class DeviceMetricServiceImpl extends ServiceImpl<DeviceMetricMapper, DeviceMetric> implements IDeviceMetricService {
+}
diff --git a/cnas-device/src/main/resources/mapper/DeviceInspectionRecordMapper.xml b/cnas-device/src/main/resources/mapper/DeviceInspectionRecordMapper.xml
index af4ac42..8540d74 100644
--- a/cnas-device/src/main/resources/mapper/DeviceInspectionRecordMapper.xml
+++ b/cnas-device/src/main/resources/mapper/DeviceInspectionRecordMapper.xml
@@ -4,9 +4,8 @@
 
 
     <select id="selectDeviceParameterPage" resultType="com.ruoyi.device.pojo.DeviceInspectionRecord">
-        SELECT
-            *
-        from device_inspection_record
+        select * from ( SELECT *
+        from device_inspection_record ) a
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
         </if>
diff --git a/cnas-device/src/main/resources/mapper/DeviceMaintenancePlanMapper.xml b/cnas-device/src/main/resources/mapper/DeviceMaintenancePlanMapper.xml
index fca2d48..2f8aac5 100644
--- a/cnas-device/src/main/resources/mapper/DeviceMaintenancePlanMapper.xml
+++ b/cnas-device/src/main/resources/mapper/DeviceMaintenancePlanMapper.xml
@@ -11,7 +11,7 @@
             ${ew.customSqlSegment}
         </if>
     </select>
-    <select id="selectMaintenancePlanById" resultType="com.ruoyi.device.pojo.DeviceMaintenancePlan">
+    <select id="selectMaintenancePlanById" resultType="com.ruoyi.device.dto.DeviceMaintenancePlanDto">
         select
             dmp.*,
             date_format(dmp.date_preparation, '%Y-%m-%d') as datePreparationStr,
diff --git a/cnas-device/src/main/resources/mapper/InstructionMapper.xml b/cnas-device/src/main/resources/mapper/InstructionMapper.xml
index 2d1a823..8404014 100644
--- a/cnas-device/src/main/resources/mapper/InstructionMapper.xml
+++ b/cnas-device/src/main/resources/mapper/InstructionMapper.xml
@@ -1,17 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.device.mapper.InstructionMapper">
-
-
-    <select id="pageByPageQueryOfHomeworkInstructions" resultType="com.ruoyi.device.pojo.DeviceInstruction">
+    <select id="pageByPageQueryOfHomeworkInstructions" resultType="com.ruoyi.device.dto.DeviceOperationInstructionDto">
         SELECT
-            doi.*,di.*,d.device_name, d.management_number device_number, d.specification_model device_model, u.name uploader_name, u1.name approver_name
+        doi.*,di.*,
+        d.device_name deviceName,
+        d.management_number deviceNumber,
+        d.specification_model deviceModel,
+        u.name uploaderName,
+        u1.name approverName
         FROM
-            device_operation_instruction doi
-                LEFT JOIN device_instruction di ON di.id = doi.instruction_id
-                left join device d on d.id = doi.device_id
-                left join user u on u.id = doi.uploader
-                left join user u1 on u1.id = doi.approver_id
+        device_operation_instruction doi
+        LEFT JOIN device_instruction di ON di.id = doi.instruction_id
+        left join device d on d.id = doi.device_id
+        left join user u on u.id = doi.uploader
+        left join user u1 on u1.id = doi.approver_id
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
         </if>
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
index 69d71dc..7e74e76 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -55,6 +55,7 @@
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.xwpf.usermodel.*;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.ClassPathResource;
 import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
@@ -141,8 +142,7 @@
     private InsOrderFactoryVerifyMapper insOrderFactoryVerifyMapper;
     @Resource
     private InsOrderFactoryVerifyItemService insOrderFactoryVerifyItemService;
-    @Value("${file.licenseUrl}")
-    private String licenseUrl;
+    
     @Resource
     private SpotCheckQuarterItemMapper spotCheckQuarterItemMapper;
     @Resource
@@ -4227,7 +4227,7 @@
         FileOutputStream os = null;
         try {
             //鍑瘉 涓嶇劧鍒囨崲鍚庢湁姘村嵃
-            InputStream is = Files.newInputStream(new File(licenseUrl).toPath());
+            InputStream is = new ClassPathResource("/lib/license.xml").getInputStream();
             License license = new License();
             license.setLicense(is);
             if (!license.getIsLicensed()) {
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
index 7d61ac8..a76f10e 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
@@ -39,6 +39,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.xwpf.usermodel.*;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.ClassPathResource;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -83,8 +84,7 @@
     private String wordUrl;
     @Value("${file.path}")
     private String imgUrl;
-    @Value("${file.licenseUrl}")
-    private String licenseUrl;
+    
     @Resource
     private InsOrderMapper insOrderMapper;
     @Resource
@@ -676,7 +676,7 @@
         FileOutputStream os = null;
         try {
             //鍑瘉 涓嶇劧鍒囨崲鍚庢湁姘村嵃
-            InputStream is = Files.newInputStream(new File(licenseUrl).toPath());
+            InputStream is = new ClassPathResource("/lib/license.xml").getInputStream();
             License license = new License();
             license.setLicense(is);
             if (!license.getIsLicensed()) {
@@ -1115,7 +1115,7 @@
         FileOutputStream os = null;
         try {
             //鍑瘉 涓嶇劧鍒囨崲鍚庢湁姘村嵃
-            InputStream is = Files.newInputStream(new File(licenseUrl).toPath());
+            InputStream is = new ClassPathResource("/lib/license.xml").getInputStream();
             License license = new License();
             license.setLicense(is);
             if (!license.getIsLicensed()) {
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index 33a491d..f466a7f 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -72,14 +72,11 @@
 # 鐓х墖瀛樺偍璺緞+++++++++++++++++++++++++++杩愮淮闇�瑕侀厤缃�+++++++++++++++++++++++++++
 file:
   path: D:\椤圭洰鏂囦欢瀛樺偍\image
-  # 杞琾df鏂囦欢璺緞
-  licenseUrl: D:\20892\Desktop\lims\code\center-lims-after\inspect-server\src\main\resources\lib\license.xml
   # 涓婁紶鏂囦欢鍏佽鐨勬墿灞曞悕
   allowed: png,jpg,jpeg,gif
 
 wordUrl: D:\椤圭洰鏂囦欢瀛樺偍\word
 twoCode: D:\椤圭洰鏂囦欢瀛樺偍\two_code
-outPath: D:\椤圭洰鏂囦欢瀛樺偍\image
 
 
 #oa:
diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..32be6bd
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/application-prod.yml
@@ -0,0 +1,110 @@
+# 鏁版嵁婧愰厤缃�
+spring:
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource
+    driverClassName: com.mysql.cj.jdbc.Driver
+    druid:
+      # 涓诲簱鏁版嵁婧�
+      master:
+        url: jdbc:mysql://114.132.189.42:9004/lims-ruoyi-test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        username: root
+        password: 123456
+      # 浠庡簱鏁版嵁婧�
+      slave:
+        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
+        enabled: false
+        url:
+        username:
+        password:
+      # 鍒濆杩炴帴鏁�
+      initialSize: 5
+      # 鏈�灏忚繛鎺ユ睜鏁伴噺
+      minIdle: 10
+      # 鏈�澶ц繛鎺ユ睜鏁伴噺
+      maxActive: 20
+      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
+      maxWait: 60000
+      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
+      connectTimeout: 30000
+      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
+      socketTimeout: 60000
+      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
+      timeBetweenEvictionRunsMillis: 60000
+      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
+      minEvictableIdleTimeMillis: 300000
+      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
+      maxEvictableIdleTimeMillis: 900000
+      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
+      validationQuery: SELECT 1 FROM DUAL
+      testWhileIdle: true
+      testOnBorrow: false
+      testOnReturn: false
+      webStatFilter:
+        enabled: true
+      statViewServlet:
+        enabled: true
+        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
+        allow:
+        url-pattern: /druid/*
+        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
+        login-username: ruoyi
+        login-password: 123456
+      filter:
+        stat:
+          enabled: true
+          # 鎱QL璁板綍
+          log-slow-sql: true
+          slow-sql-millis: 1000
+          merge-sql: true
+        wall:
+          config:
+            multi-statement-allow: true
+
+
+minio:
+  endpoint: http://114.132.189.42/
+  port: 7019
+  secure: false
+  accessKey: admin
+  secretKey: 12345678
+  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
+
+# 鐓х墖瀛樺偍璺緞+++++++++++++++++++++++++++杩愮淮闇�瑕侀厤缃�+++++++++++++++++++++++++++
+file:
+  path: /javaWork/lims-ruoyi/file/img
+  # 涓婁紶鏂囦欢鍏佽鐨勬墿灞曞悕
+  allowed: png,jpg,jpeg,gif
+
+wordUrl: /javaWork/lims-ruoyi/file/word
+twoCode: /javaWork/lims-ruoyi/file/two_code
+
+
+#oa:
+#    oaHost: http://192.168.0.49:8000/oa_workflowrequest.asmx?wsdl
+#    prodIp: http://192.168.21.53:8081
+#    unqualifiedProcessId: 41974
+
+wechat:
+  # 璐ㄩ噺鎶ユ閫氱煡
+  examiningUrl: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=21993616-9966-4fe4-81b0-68e99a40c964
+
+ifs:
+  contract: ZTZB
+  contract-key-get: 4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo=
+  contract-key-post: 4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo=
+  custorder: http://192.168.20.47/PurchService.ashx?
+  custorder-port: http://192.168.20.47:8008/PurchService.ashx?
+  erp-services: http://192.168.20.47:8081
+
+# 澶囨敞 18083瀵嗙爜锛歾ttZTT123!@
+mqtt:
+  url: tcp://mqtt-ztt.zttiot.com:1883 # 鏈嶅姟鍣╥p
+  username: forwarder # MQTT-鏈嶅姟绔�-鐢ㄦ埛鍚�,鍚庢湡浼氫慨鏀逛负鐢ㄦ埛鐧诲綍鍚�
+  password: ZTlink12345 # MQTT-鏈嶅姟绔�-瀵嗙爜锛�,鍚庢湡浼氫慨鏀逛负鐢ㄦ埛鐧诲綍瀵嗙爜
+  timeout: 100 # 瓒呮椂鏃堕棿 锛堝崟浣嶏細绉掞級
+  keepalive: 60 # 蹇冭烦 锛堝崟浣嶏細绉掞級
+  qos: 1 # 蹇冭烦鍖呯骇鍒�
+  completion-timeout: 3000 # 杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶏細绉掞級
+  clientId: javaPublish # clientId
+  subscribe: /ztt/v3/2443521/publish # 璁㈤槄涓婚
+  client: false # 濡傛灉寮�鍙戦渶瑕佸惎鍔ㄦ祴璇曪紝闇�瑕佹敼涓篺alse涓嶇劧浼氫竴鐩存姤閿�
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 40e0272..8a825d3 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -7,7 +7,7 @@
   # 鐗堟潈骞翠唤
   copyrightYear: 2025
   # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: D:/ruoyi/uploadPath
+  profile: /javaWork/lims-ruoyi/file/uploadPath
   # 鑾峰彇ip鍦板潃寮�鍏�
   addressEnabled: false
   # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
@@ -33,8 +33,9 @@
 
 # 鏃ュ織閰嶇疆
 logging:
+  file-location: /javaWork/lims-ruoyi
   level:
-    com.ruoyi: debug
+    com.ruoyi: info
     org.springframework: warn
 
 # 鐢ㄦ埛閰嶇疆
@@ -77,8 +78,8 @@
     port: 6379
     # 鏁版嵁搴撶储寮�
     database: 0
-    # 瀵嗙爜
-#    password: 123456
+#    # 瀵嗙爜
+#    password: root2022!
     # 杩炴帴瓒呮椂鏃堕棿
     timeout: 10s
     lettuce:
diff --git a/ruoyi-admin/src/main/resources/logback.xml b/ruoyi-admin/src/main/resources/logback.xml
index a360583..a1252bd 100644
--- a/ruoyi-admin/src/main/resources/logback.xml
+++ b/ruoyi-admin/src/main/resources/logback.xml
@@ -1,7 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <!-- 鏃ュ織瀛樻斁璺緞 -->
-	<property name="log.path" value="/home/ruoyi/logs" />
+    <springProperty scope="context" name="logs" source="logging.file-location" default="/logs"/>
+    <property name="log.path" value="logs"/>
+
     <!-- 鏃ュ織杈撳嚭鏍煎紡 -->
 	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
 
@@ -11,7 +13,7 @@
 			<pattern>${log.pattern}</pattern>
 		</encoder>
 	</appender>
-	
+
 	<!-- 绯荤粺鏃ュ織杈撳嚭 -->
 	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
 	    <file>${log.path}/sys-info.log</file>
@@ -34,7 +36,7 @@
             <onMismatch>DENY</onMismatch>
         </filter>
 	</appender>
-	
+
 	<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
 	    <file>${log.path}/sys-error.log</file>
         <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
@@ -56,38 +58,19 @@
             <onMismatch>DENY</onMismatch>
         </filter>
     </appender>
-	
-	<!-- 鐢ㄦ埛璁块棶鏃ュ織杈撳嚭  -->
-    <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${log.path}/sys-user.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 鎸夊ぉ鍥炴粴 daily -->
-            <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
-            <!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
-            <maxHistory>60</maxHistory>
-        </rollingPolicy>
-        <encoder>
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-    </appender>
-	
-	<!-- 绯荤粺妯″潡鏃ュ織绾у埆鎺у埗  -->
-	<logger name="com.ruoyi" level="info" />
-	<!-- Spring鏃ュ織绾у埆鎺у埗  -->
-	<logger name="org.springframework" level="warn" />
+
+    <!-- 绯荤粺妯″潡鏃ュ織绾у埆鎺у埗  -->
+    <logger name="com.ruoyi" level="info" />
+    <!-- Spring鏃ュ織绾у埆鎺у埗  -->
+    <logger name="org.springframework" level="warn" />
 
 	<root level="info">
 		<appender-ref ref="console" />
 	</root>
-	
+
 	<!--绯荤粺鎿嶄綔鏃ュ織-->
     <root level="info">
         <appender-ref ref="file_info" />
         <appender-ref ref="file_error" />
     </root>
-	
-	<!--绯荤粺鐢ㄦ埛鎿嶄綔鏃ュ織-->
-    <logger name="sys-user" level="info">
-        <appender-ref ref="sys-user"/>
-    </logger>
-</configuration> 
\ No newline at end of file
+</configuration>
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDateTimeSerializerConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDateTimeSerializerConfig.java
index f6c966a..98a8763 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDateTimeSerializerConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDateTimeSerializerConfig.java
@@ -1,36 +1,36 @@
-package com.ruoyi.framework.config;
-
-import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
-import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-
-@Configuration
-public class LocalDateTimeSerializerConfig {
-    @Value("${spring.jackson.date-format}")
-    private String pattern;
-
-    @Bean
-    public LocalDateTimeSerializer localDateTimeSerializer() {
-        return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
-    }
-
-    @Bean
-    public LocalDateTimeDeserializer localDateTimeDeserializer() {
-        return new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(pattern));
-    }
-
-    @Bean
-    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
-        return builder -> {
-            builder.serializerByType(LocalDateTime.class, localDateTimeSerializer());
-            builder.deserializerByType(LocalDateTime.class, localDateTimeDeserializer());
-            builder.simpleDateFormat(pattern);
-        };
-    }
-}
+//package com.ruoyi.framework.config;
+//
+//import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+//import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//
+//import java.time.LocalDateTime;
+//import java.time.format.DateTimeFormatter;
+//
+//@Configuration
+//public class LocalDateTimeSerializerConfig {
+//    @Value("${spring.jackson.date-format}")
+//    private String pattern;
+//
+//    @Bean
+//    public LocalDateTimeSerializer localDateTimeSerializer() {
+//        return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
+//    }
+//
+//    @Bean
+//    public LocalDateTimeDeserializer localDateTimeDeserializer() {
+//        return new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(pattern));
+//    }
+//
+//    @Bean
+//    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
+//        return builder -> {
+//            builder.serializerByType(LocalDateTime.class, localDateTimeSerializer());
+//            builder.deserializerByType(LocalDateTime.class, localDateTimeDeserializer());
+//            builder.simpleDateFormat(pattern);
+//        };
+//    }
+//}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
index fb42e5f..11e3b57 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
@@ -1,12 +1,25 @@
 package com.ruoyi.framework.config;
 
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
 import java.util.concurrent.TimeUnit;
 
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.http.CacheControl;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
 import org.springframework.web.cors.CorsConfiguration;
 import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
 import org.springframework.web.filter.CorsFilter;
@@ -30,9 +43,6 @@
     @Value("${file.path}")
     private String filePath;
 
-    @Value("${outPath}")
-    private String outPath;
-
     @Value("${wordUrl}")
     private String wordUrl;
 
@@ -49,7 +59,6 @@
 
         //璁剧疆鏂囦欢铏氭嫙璺緞鏄犲皠
         registry.addResourceHandler("/img/**").addResourceLocations("file:" + filePath + "/");
-        registry.addResourceHandler("/outPath/**").addResourceLocations("file:" + outPath);
         registry.addResourceHandler("/word/**").addResourceLocations("file:" + wordUrl + "/");
     }
 
@@ -82,4 +91,30 @@
         // 杩斿洖鏂扮殑CorsFilter
         return new CorsFilter(source);
     }
+
+    // 鍏ㄥ眬鏍煎紡鍖栧鐞�
+    @Override
+    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
+        String dateFormat = "yyyy-MM-dd HH:mm:ss";
+
+        Jackson2ObjectMapperBuilder json = Jackson2ObjectMapperBuilder.json();
+        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
+
+        //localDateTime鏍煎紡鍖�
+        JavaTimeModule module = new JavaTimeModule();
+        LocalDateTimeDeserializer dateTimeDeserializer = new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(dateFormat));
+        LocalDateTimeSerializer dateTimeSerializer = new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(dateFormat));
+        module.addDeserializer(LocalDateTime.class, dateTimeDeserializer);
+        module.addSerializer(LocalDateTime.class, dateTimeSerializer);
+        ObjectMapper objectMapper = json.modules(module)
+                .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).build();
+
+        //date鏃堕棿鏍煎紡鍖�
+        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+        objectMapper.setDateFormat(new SimpleDateFormat(dateFormat.split(" ")[0]));
+
+        // 璁剧疆鏍煎紡鍖栧唴瀹�
+        converter.setObjectMapper(objectMapper);
+        converters.add(0, converter);
+    }
 }
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
index 95e2e17..1823e03 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -113,7 +113,7 @@
                 // 瀵逛簬鐧诲綍login 娉ㄥ唽register 楠岃瘉鐮乧aptchaImage 鍏佽鍖垮悕璁块棶
                 requests.antMatchers("/login", "/register", "/captchaImage").permitAll()
                     // 闈欐�佽祫婧愶紝鍙尶鍚嶈闂�
-                    .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**", "/img/**", "/outPath/**", "/word/**").permitAll()
+                    .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**", "/img/**", "/word/**").permitAll()
                     .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
                     // 闄や笂闈㈠鐨勬墍鏈夎姹傚叏閮ㄩ渶瑕侀壌鏉冭璇�
                     .anyRequest().authenticated();

--
Gitblit v1.9.3