From 8c8f19c87c9dfa7576f04ad80d864b37d0617786 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期四, 15 一月 2026 09:38:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New

---
 src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java                                   |    4 
 src/main/resources/mapper/measuringinstrumentledger/MeasuringInstrumentLedgerMapper.xml                        |   62 ++++-----
 src/main/java/com/ruoyi/device/controller/DeviceRepairController.java                                          |   57 +++------
 src/main/java/com/ruoyi/measuringinstrumentledger/service/impl/MeasuringInstrumentLedgerServiceImpl.java       |   93 +++++++--------
 src/main/java/com/ruoyi/measuringinstrumentledger/controller/MeasuringInstrumentLedgerController.java          |    9 -
 src/main/java/com/ruoyi/measuringinstrumentledger/controller/MeasuringInstrumentLedgerRecordController.java    |    5 
 doc/alter_table_measuring_instrument_ledger.sql                                                                |    5 
 src/main/java/com/ruoyi/measuringinstrumentledger/dto/MeasuringInstrumentLedgerPageDto.java                    |   13 ++
 src/main/java/com/ruoyi/measuringinstrumentledger/pojo/MeasuringInstrumentLedger.java                          |   14 ++
 src/main/java/com/ruoyi/measuringinstrumentledger/service/MeasuringInstrumentLedgerRecordService.java          |    3 
 src/main/java/com/ruoyi/common/enums/StorageAttachmentRecordType.java                                          |    3 
 src/main/java/com/ruoyi/basic/service/StorageAttachmentService.java                                            |    2 
 src/main/java/com/ruoyi/measuringinstrumentledger/dto/MeasuringInstrumentLedgerRecordDTO.java                  |   12 ++
 src/main/java/com/ruoyi/measuringinstrumentledger/service/MeasuringInstrumentLedgerService.java                |    5 
 src/main/java/com/ruoyi/measuringinstrumentledger/service/impl/MeasuringInstrumentLedgerRecordServiceImpl.java |   28 ++++
 15 files changed, 180 insertions(+), 135 deletions(-)

diff --git a/doc/alter_table_measuring_instrument_ledger.sql b/doc/alter_table_measuring_instrument_ledger.sql
new file mode 100644
index 0000000..2c036fe
--- /dev/null
+++ b/doc/alter_table_measuring_instrument_ledger.sql
@@ -0,0 +1,5 @@
+ALTER TABLE measuring_instrument_ledger
+    ADD COLUMN dept_id BIGINT COMMENT '閮ㄩ棬ID',
+    ADD COLUMN installation_location VARCHAR(255) COMMENT '瀹夎浣嶇疆',
+    ADD COLUMN unit VARCHAR(100) COMMENT '妫�瀹氬崟浣�',
+    ADD COLUMN cycle INT COMMENT '妫�瀹氬懆鏈燂紙澶╋級';
diff --git a/src/main/java/com/ruoyi/basic/service/StorageAttachmentService.java b/src/main/java/com/ruoyi/basic/service/StorageAttachmentService.java
index de2c096..4db9fad 100644
--- a/src/main/java/com/ruoyi/basic/service/StorageAttachmentService.java
+++ b/src/main/java/com/ruoyi/basic/service/StorageAttachmentService.java
@@ -23,7 +23,7 @@
      * @param fileType 鏂囦欢绫诲瀷
      * @return 鏂囦欢淇℃伅鍒楄〃
      */
-    List<StorageAttachment> selectStorageAttachments(Long recordId, StorageAttachmentRecordType recordType, StorageAttachmentConstants fileType);
+    List<StorageAttachment> selectStorageAttachments(Long recordId, StorageAttachmentRecordType recordType, String fileType);
 
     /**
      * 淇濆瓨閫氱敤鏂囦欢涓婁紶鐨勯檮浠朵俊鎭�
diff --git a/src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java
index b1c2ca5..9b1980a 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java
@@ -43,11 +43,11 @@
     private MinioUtils minioUtils;
 
     @Override
-    public List<StorageAttachment> selectStorageAttachments(Long recordId, StorageAttachmentRecordType recordType, StorageAttachmentConstants fileType) {
+    public List<StorageAttachment> selectStorageAttachments(Long recordId, StorageAttachmentRecordType recordType, String fileType) {
         List<StorageAttachment> storageAttachments = storageAttachmentMapper.selectList(new LambdaQueryWrapper<StorageAttachment>()
                 .eq(StorageAttachment::getRecordId, recordId)
                 .eq(StorageAttachment::getRecordType, recordType.ordinal())
-                .eq(StorageAttachment::getName, fileType.toString()));
+                .eq(StorageAttachment::getName, fileType));
         if (storageAttachments != null) {
             for (StorageAttachment storageAttachment : storageAttachments) {
                 StorageBlob storageBlob = storageBlobMapper.selectById(storageAttachment.getStorageBlobId());
diff --git a/src/main/java/com/ruoyi/common/enums/StorageAttachmentRecordType.java b/src/main/java/com/ruoyi/common/enums/StorageAttachmentRecordType.java
index a4b889d..5f6cb9e 100644
--- a/src/main/java/com/ruoyi/common/enums/StorageAttachmentRecordType.java
+++ b/src/main/java/com/ruoyi/common/enums/StorageAttachmentRecordType.java
@@ -12,7 +12,8 @@
     Template("Template","鑼冧緥"),
     Archives("Archives","鏂囨。绠$悊"),
     InspectionTasks("InspectionTasks","鐢熶骇宸℃"),
-    QrCodeScanRecords("QrCodeScanRecords","浜岀淮鐮佹壂鐮佽褰曟枃浠�");
+    QrCodeScanRecords("QrCodeScanRecords","浜岀淮鐮佹壂鐮佽褰曟枃浠�"),
+    MeasuringInstrumentLedgerRecord("MeasuringInstrumentLedgerRecord","鍣ㄥ叿鏍″噯璁板綍");
 
 
     private final String code;
diff --git a/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java b/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
index 130e5df..d9f4e5c 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
@@ -5,27 +5,18 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.approve.pojo.ApproveProcess;
 import com.ruoyi.approve.service.IApproveProcessService;
-import com.ruoyi.approve.vo.ApproveProcessVO;
-import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.device.dto.DeviceRepairDto;
-import com.ruoyi.device.pojo.DeviceLedger;
 import com.ruoyi.device.pojo.DeviceRepair;
 import com.ruoyi.device.service.IDeviceLedgerService;
 import com.ruoyi.device.service.IDeviceRepairService;
-import com.ruoyi.framework.security.LoginUser;
 import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.project.system.domain.SysDept;
-import com.ruoyi.project.system.domain.SysUser;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.Arrays;
 import java.util.List;
 
@@ -53,35 +44,25 @@
     @ApiModelProperty("娣诲姞璁惧鎶ヤ慨")
     public AjaxResult add( @RequestBody DeviceRepair deviceRepair) throws Exception {
         deviceRepairService.saveDeviceRepair(deviceRepair);
-        ApproveProcessVO approveProcessVO = new ApproveProcessVO();
-        LoginUser loginUser = SecurityUtils.getLoginUser();
-        SysUser user = loginUser.getUser();
-        // 鑾峰彇褰撳墠鐧诲綍鍏徃
-        Long tenantId = loginUser.getTenantId();
-        if(null != tenantId){
-            LambdaQueryWrapper<DeviceRepair> QueryWrapper = new LambdaQueryWrapper<>();
-            QueryWrapper.eq(DeviceRepair::getDeviceLedgerId,deviceRepair.getDeviceLedgerId())
-                    .eq(DeviceRepair::getRemark,deviceRepair.getRemark())
-                    .eq(DeviceRepair::getDeviceName,deviceRepair.getDeviceName())
-                    .eq(DeviceRepair::getApproverId,deviceRepair.getApproverId())
-                    .eq(DeviceRepair::getRepairTime,deviceRepair.getRepairTime());
-            DeviceRepair one = deviceRepairService.getOne(QueryWrapper);
-            if(ObjectUtils.isEmpty(one)){
-                return AjaxResult.error("璁惧鎶ヤ慨涓嶅瓨鍦�");
-            }
-            //鑾峰彇褰撳墠鐧诲綍閮ㄩ棬id
-            approveProcessVO.setApproveDeptId(tenantId);
-            //鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛id
-            approveProcessVO.setApproveUser(loginUser.getUserId());
-            //鑾峰彇褰撳墠鏃堕棿
-            approveProcessVO.setApproveTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
-            approveProcessVO.setApproveType(4);
-            approveProcessVO.setApproveUserIds(deviceRepair.getApproverId().toString());
-            approveProcessVO.setApproveReason(deviceRepair.getRemark());
-            approveProcessVO.setDeviceRepairId(one.getId());
-            approveProcessVO.setMaintenancePrice(deviceRepair.getMaintenancePrice());
-            approveProcessService.addApprove(approveProcessVO);
-        }
+        // todo 鍓嶇浠g爜涓嶅尮閰嶏紝寰呭鐞�
+//        ApproveProcessVO approveProcessVO = new ApproveProcessVO();
+//        LoginUser loginUser = SecurityUtils.getLoginUser();
+//        // 鑾峰彇褰撳墠鐧诲綍鍏徃
+//        Long tenantId = loginUser.getTenantId();
+//        if(null != tenantId){
+//            //鑾峰彇褰撳墠鐧诲綍閮ㄩ棬id
+//            approveProcessVO.setApproveDeptId(tenantId);
+//            //鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛id
+//            approveProcessVO.setApproveUser(loginUser.getUserId());
+//            //鑾峰彇褰撳墠鏃堕棿
+//            approveProcessVO.setApproveTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+//            approveProcessVO.setApproveType(4);
+//            approveProcessVO.setApproveUserIds(deviceRepair.getApproverId().toString());
+//            approveProcessVO.setApproveReason(deviceRepair.getRemark());
+//            approveProcessVO.setDeviceRepairId(deviceRepair.getId());
+//            approveProcessVO.setMaintenancePrice(deviceRepair.getMaintenancePrice());
+//            approveProcessService.addApprove(approveProcessVO);
+//        }
         return AjaxResult.success();
     }
 
diff --git a/src/main/java/com/ruoyi/measuringinstrumentledger/controller/MeasuringInstrumentLedgerController.java b/src/main/java/com/ruoyi/measuringinstrumentledger/controller/MeasuringInstrumentLedgerController.java
index 4e7b8f8..069642d 100644
--- a/src/main/java/com/ruoyi/measuringinstrumentledger/controller/MeasuringInstrumentLedgerController.java
+++ b/src/main/java/com/ruoyi/measuringinstrumentledger/controller/MeasuringInstrumentLedgerController.java
@@ -3,18 +3,15 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.equipmentenergyconsumption.pojo.EquipmentEnergyConsumption;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.measuringinstrumentledger.dto.MeasuringInstrumentLedgerDto;
+import com.ruoyi.measuringinstrumentledger.dto.MeasuringInstrumentLedgerRecordDTO;
 import com.ruoyi.measuringinstrumentledger.mapper.MeasuringInstrumentLedgerRecordMapper;
 import com.ruoyi.measuringinstrumentledger.pojo.MeasuringInstrumentLedger;
 import com.ruoyi.measuringinstrumentledger.pojo.MeasuringInstrumentLedgerRecord;
 import com.ruoyi.measuringinstrumentledger.service.MeasuringInstrumentLedgerService;
-import com.ruoyi.measuringinstrumentledger.service.impl.MeasuringInstrumentLedgerServiceImpl;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysUserMapper;
 import io.swagger.annotations.Api;
@@ -110,8 +107,8 @@
     @ApiOperation("璁¢噺鍣ㄥ叿鍙拌处-妫�瀹�")
     @Log(title = "璁¢噺鍣ㄥ叿鍙拌处-妫�瀹�", businessType = BusinessType.UPDATE)
     @Transactional(rollbackFor = Exception.class)
-    public AjaxResult verifying(@RequestBody MeasuringInstrumentLedgerDto measuringInstrumentLedger) throws IOException {
-        boolean update = measuringInstrumentLedgerService.verifying(measuringInstrumentLedger);
+    public AjaxResult verifying(@RequestBody MeasuringInstrumentLedgerRecordDTO measuringInstrumentLedgerRecordDTO) throws IOException {
+        boolean update = measuringInstrumentLedgerService.verifying(measuringInstrumentLedgerRecordDTO);
         return update ? AjaxResult.success("妫�瀹氭垚鍔�") : AjaxResult.error("妫�瀹氬け璐�");
     }
 
diff --git a/src/main/java/com/ruoyi/measuringinstrumentledger/controller/MeasuringInstrumentLedgerRecordController.java b/src/main/java/com/ruoyi/measuringinstrumentledger/controller/MeasuringInstrumentLedgerRecordController.java
index 8c7116e..1dd9fa2 100644
--- a/src/main/java/com/ruoyi/measuringinstrumentledger/controller/MeasuringInstrumentLedgerRecordController.java
+++ b/src/main/java/com/ruoyi/measuringinstrumentledger/controller/MeasuringInstrumentLedgerRecordController.java
@@ -70,4 +70,9 @@
         measuringInstrumentLedgerRecordService.export( response);
     }
 
+    @GetMapping("/detail/{id}")
+    public AjaxResult getById(@PathVariable("id") Long id) {
+        return AjaxResult.success(measuringInstrumentLedgerRecordService.getById(id));
+    }
+
 }
diff --git a/src/main/java/com/ruoyi/measuringinstrumentledger/dto/MeasuringInstrumentLedgerPageDto.java b/src/main/java/com/ruoyi/measuringinstrumentledger/dto/MeasuringInstrumentLedgerPageDto.java
new file mode 100644
index 0000000..41b0775
--- /dev/null
+++ b/src/main/java/com/ruoyi/measuringinstrumentledger/dto/MeasuringInstrumentLedgerPageDto.java
@@ -0,0 +1,13 @@
+package com.ruoyi.measuringinstrumentledger.dto;
+
+import com.ruoyi.measuringinstrumentledger.pojo.MeasuringInstrumentLedger;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class MeasuringInstrumentLedgerPageDto extends MeasuringInstrumentLedger {
+    private String deptName;
+
+
+}
diff --git a/src/main/java/com/ruoyi/measuringinstrumentledger/dto/MeasuringInstrumentLedgerRecordDTO.java b/src/main/java/com/ruoyi/measuringinstrumentledger/dto/MeasuringInstrumentLedgerRecordDTO.java
new file mode 100644
index 0000000..59a8b8b
--- /dev/null
+++ b/src/main/java/com/ruoyi/measuringinstrumentledger/dto/MeasuringInstrumentLedgerRecordDTO.java
@@ -0,0 +1,12 @@
+package com.ruoyi.measuringinstrumentledger.dto;
+
+import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.measuringinstrumentledger.pojo.MeasuringInstrumentLedgerRecord;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class MeasuringInstrumentLedgerRecordDTO extends MeasuringInstrumentLedgerRecord {
+    List<StorageBlobDTO> blobs;
+}
diff --git a/src/main/java/com/ruoyi/measuringinstrumentledger/pojo/MeasuringInstrumentLedger.java b/src/main/java/com/ruoyi/measuringinstrumentledger/pojo/MeasuringInstrumentLedger.java
index 51c0360..b0082b3 100644
--- a/src/main/java/com/ruoyi/measuringinstrumentledger/pojo/MeasuringInstrumentLedger.java
+++ b/src/main/java/com/ruoyi/measuringinstrumentledger/pojo/MeasuringInstrumentLedger.java
@@ -104,7 +104,7 @@
      * 鐘舵�侊紙1-鏈夋晥 2-閫炬湡锛�
      */
     @ApiModelProperty("鐘舵�侊紙1-鏈夋晥 2-閫炬湡锛�")
-    @Excel(name = "鐘舵��", readConverterExp = "1=鏈夋晥,2=閫炬湡")
+    @Excel(name = "鐘舵��", readConverterExp = "1=鏈夋晥,2=閫炬湡,3=鍗冲皢鍒版湡")
     private Integer status;
 
     /**
@@ -137,4 +137,16 @@
     @TableField(fill = FieldFill.INSERT)
     private Long tenantId;
 
+    @ApiModelProperty("閮ㄩ棬id")
+    private Long deptId;
+
+    @ApiModelProperty("瀹夎浣嶇疆")
+    private String installationLocation;
+
+    @ApiModelProperty("妫�瀹氬崟浣�")
+    private String unit;
+
+    @ApiModelProperty("妫�瀹氬懆鏈�(澶�)")
+    private Long cycle;
+
 }
diff --git a/src/main/java/com/ruoyi/measuringinstrumentledger/service/MeasuringInstrumentLedgerRecordService.java b/src/main/java/com/ruoyi/measuringinstrumentledger/service/MeasuringInstrumentLedgerRecordService.java
index e8038da..59671e9 100644
--- a/src/main/java/com/ruoyi/measuringinstrumentledger/service/MeasuringInstrumentLedgerRecordService.java
+++ b/src/main/java/com/ruoyi/measuringinstrumentledger/service/MeasuringInstrumentLedgerRecordService.java
@@ -3,6 +3,7 @@
 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.measuringinstrumentledger.dto.MeasuringInstrumentLedgerRecordDTO;
 import com.ruoyi.measuringinstrumentledger.pojo.MeasuringInstrumentLedgerRecord;
 
 import javax.servlet.http.HttpServletResponse;
@@ -26,4 +27,6 @@
     void export(HttpServletResponse response);
 
     boolean updateMeasuringInstrumentLedgerRecord(MeasuringInstrumentLedgerRecord measuringInstrumentLedgerRecord) throws IOException;
+
+    MeasuringInstrumentLedgerRecordDTO getById(Long id);
 }
diff --git a/src/main/java/com/ruoyi/measuringinstrumentledger/service/MeasuringInstrumentLedgerService.java b/src/main/java/com/ruoyi/measuringinstrumentledger/service/MeasuringInstrumentLedgerService.java
index 7ca300d..aaecce2 100644
--- a/src/main/java/com/ruoyi/measuringinstrumentledger/service/MeasuringInstrumentLedgerService.java
+++ b/src/main/java/com/ruoyi/measuringinstrumentledger/service/MeasuringInstrumentLedgerService.java
@@ -3,7 +3,7 @@
 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.measuringinstrumentledger.dto.MeasuringInstrumentLedgerDto;
+import com.ruoyi.measuringinstrumentledger.dto.MeasuringInstrumentLedgerRecordDTO;
 import com.ruoyi.measuringinstrumentledger.pojo.MeasuringInstrumentLedger;
 
 import javax.servlet.http.HttpServletResponse;
@@ -30,7 +30,8 @@
      * @param measuringInstrumentLedger
      * @return
      */
-    boolean verifying(MeasuringInstrumentLedgerDto measuringInstrumentLedger) throws IOException;
+    boolean verifying(MeasuringInstrumentLedgerRecordDTO measuringInstrumentLedger) throws IOException;
+
 
     void export(HttpServletResponse response);
 
diff --git a/src/main/java/com/ruoyi/measuringinstrumentledger/service/impl/MeasuringInstrumentLedgerRecordServiceImpl.java b/src/main/java/com/ruoyi/measuringinstrumentledger/service/impl/MeasuringInstrumentLedgerRecordServiceImpl.java
index 88e3bbc..840a15a 100644
--- a/src/main/java/com/ruoyi/measuringinstrumentledger/service/impl/MeasuringInstrumentLedgerRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/measuringinstrumentledger/service/impl/MeasuringInstrumentLedgerRecordServiceImpl.java
@@ -4,9 +4,14 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.basic.pojo.StorageAttachment;
+import com.ruoyi.basic.service.StorageAttachmentService;
 import com.ruoyi.common.enums.FileNameType;
+import com.ruoyi.common.enums.StorageAttachmentRecordType;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.measuringinstrumentledger.dto.MeasuringInstrumentLedgerRecordDTO;
 import com.ruoyi.measuringinstrumentledger.mapper.MeasuringInstrumentLedgerMapper;
 import com.ruoyi.measuringinstrumentledger.mapper.MeasuringInstrumentLedgerRecordMapper;
 import com.ruoyi.measuringinstrumentledger.pojo.MeasuringInstrumentLedger;
@@ -18,10 +23,10 @@
 import com.ruoyi.sales.pojo.CommonFile;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FilenameUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
@@ -34,8 +39,11 @@
 import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 import java.util.UUID;
 import java.util.stream.Collectors;
+
+import static com.ruoyi.common.constant.StorageAttachmentConstants.StorageAttachmentFile;
 
 /**
  * @author :yys
@@ -56,6 +64,9 @@
 
     @Autowired
     private TempFileMapper tempFileMapper;
+
+    @Autowired
+    private StorageAttachmentService storageAttachmentService;
 
     @Value("${file.upload-dir}")
     private String uploadDir;
@@ -175,4 +186,19 @@
             }
         }
     }
+
+    @Override
+    public MeasuringInstrumentLedgerRecordDTO getById(Long id) {
+        MeasuringInstrumentLedgerRecord measuringInstrumentLedgerRecord = measuringInstrumentLedgerRecordMapper.selectById(id);
+        List<StorageAttachment> storageAttachments = storageAttachmentService.selectStorageAttachments(measuringInstrumentLedgerRecord.getId(), StorageAttachmentRecordType.MeasuringInstrumentLedgerRecord, StorageAttachmentFile);
+        List<StorageBlobDTO> storageBlobDTOList =
+                storageAttachments.stream()
+                        .map(StorageAttachment::getStorageBlobDTO)
+                        .filter(Objects::nonNull)
+                        .collect(Collectors.toList());
+        MeasuringInstrumentLedgerRecordDTO measuringInstrumentLedgerRecordDTO = new MeasuringInstrumentLedgerRecordDTO();
+        BeanUtils.copyProperties(measuringInstrumentLedgerRecord, measuringInstrumentLedgerRecordDTO);
+        measuringInstrumentLedgerRecordDTO.setBlobs(storageBlobDTOList);
+        return measuringInstrumentLedgerRecordDTO;
+    }
 }
diff --git a/src/main/java/com/ruoyi/measuringinstrumentledger/service/impl/MeasuringInstrumentLedgerServiceImpl.java b/src/main/java/com/ruoyi/measuringinstrumentledger/service/impl/MeasuringInstrumentLedgerServiceImpl.java
index 72ce890..e695b97 100644
--- a/src/main/java/com/ruoyi/measuringinstrumentledger/service/impl/MeasuringInstrumentLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/measuringinstrumentledger/service/impl/MeasuringInstrumentLedgerServiceImpl.java
@@ -5,11 +5,14 @@
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.basic.pojo.StorageAttachment;
+import com.ruoyi.basic.service.StorageAttachmentService;
 import com.ruoyi.common.enums.FileNameType;
+import com.ruoyi.common.enums.StorageAttachmentRecordType;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.measuringinstrumentledger.dto.MeasuringInstrumentLedgerDto;
+import com.ruoyi.measuringinstrumentledger.dto.MeasuringInstrumentLedgerRecordDTO;
 import com.ruoyi.measuringinstrumentledger.mapper.MeasuringInstrumentLedgerMapper;
 import com.ruoyi.measuringinstrumentledger.mapper.MeasuringInstrumentLedgerRecordMapper;
 import com.ruoyi.measuringinstrumentledger.pojo.MeasuringInstrumentLedger;
@@ -37,10 +40,12 @@
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 import java.util.stream.Collectors;
+
+import static com.ruoyi.common.constant.StorageAttachmentConstants.StorageAttachmentFile;
 
 /**
  * @author :yys
@@ -65,64 +70,54 @@
     @Autowired
     private SysUserMapper sysUserMapper;
 
+    @Autowired
+    private StorageAttachmentService attachmentService;
+
     @Value("${file.upload-dir}")
     private String uploadDir;
 
     @Override
     public IPage<MeasuringInstrumentLedger> listPage(Page page, MeasuringInstrumentLedger measuringInstrumentLedger) {
-        IPage<MeasuringInstrumentLedger> measuringInstrumentLedgerIPage = measuringInstrumentLedgerMapper.listPage(page, measuringInstrumentLedger);
-        List<Integer>  types = new ArrayList<>();
-        types.add(FileNameType.MEASURING.getValue());
-        types.add(FileNameType.MEASURINGRecord.getValue());
-        measuringInstrumentLedgerIPage.getRecords().forEach(item -> {
-            LambdaQueryWrapper<MeasuringInstrumentLedgerRecord> measuringInstrumentLedgerRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
-            measuringInstrumentLedgerRecordLambdaQueryWrapper.eq(MeasuringInstrumentLedgerRecord::getMeasuringInstrumentLedgerId, item.getId());
-            List<MeasuringInstrumentLedgerRecord> measuringInstrumentLedgerRecords = measuringInstrumentLedgerRecordMapper.selectList(measuringInstrumentLedgerRecordLambdaQueryWrapper);
-            List<Long> collect = new ArrayList<>();
-            if(!CollectionUtils.isEmpty(measuringInstrumentLedgerRecords)){
-                collect = measuringInstrumentLedgerRecords.stream().map(MeasuringInstrumentLedgerRecord::getId).collect(Collectors.toList());
-            }
-            collect.add(item.getId());
-            LambdaQueryWrapper<CommonFile> salesLedgerFileWrapper = new LambdaQueryWrapper<>();
-            salesLedgerFileWrapper.in(CommonFile::getCommonId, collect)
-                    .in(CommonFile::getType,types);
-            List<CommonFile> commonFiles = commonFileMapper.selectList(salesLedgerFileWrapper);
-            item.setCommonFiles(commonFiles);
+        IPage<MeasuringInstrumentLedger> iPage = measuringInstrumentLedgerMapper.listPage(page, measuringInstrumentLedger);
+        List<MeasuringInstrumentLedger> records = iPage.getRecords();
+        List<Long> ids = records.stream().map(MeasuringInstrumentLedger::getId).collect(Collectors.toList());
 
-        });
-        return measuringInstrumentLedgerIPage;
+        List<MeasuringInstrumentLedgerRecord> measuringInstrumentLedgerRecords = measuringInstrumentLedgerRecordMapper.selectList(new LambdaQueryWrapper<MeasuringInstrumentLedgerRecord>()
+                .in(MeasuringInstrumentLedgerRecord::getMeasuringInstrumentLedgerId, ids)
+                .orderByDesc(MeasuringInstrumentLedgerRecord::getCreateTime));
+        if (!CollectionUtils.isEmpty(measuringInstrumentLedgerRecords)) {
+            Map<Long, List<MeasuringInstrumentLedgerRecord>> collect = measuringInstrumentLedgerRecords.stream().collect(Collectors.groupingBy(MeasuringInstrumentLedgerRecord::getMeasuringInstrumentLedgerId));
+            for (MeasuringInstrumentLedger ledger : records) {
+                if (collect.containsKey(ledger.getId())) {
+                    ledger.setMostDate(collect.get(ledger.getId()).get(0).getRecordDate());
+                }
+            }
+        }
+        return iPage;
     }
 
     @Override
-    public boolean verifying(MeasuringInstrumentLedgerDto req) throws IOException {
-        MeasuringInstrumentLedger measuringInstrumentLedger = measuringInstrumentLedgerMapper.selectById(req.getId());
-        if(measuringInstrumentLedger == null) {
-            return false;
+    public boolean verifying(MeasuringInstrumentLedgerRecordDTO req) throws IOException {
+        MeasuringInstrumentLedger measuringInstrumentLedger = measuringInstrumentLedgerMapper.selectById(req.getMeasuringInstrumentLedgerId());
+        if (measuringInstrumentLedger == null) {
+            throw new RuntimeException("璁¢噺鍣ㄥ叿鍙拌处涓嶅瓨鍦�");
         }
-        SysUser sysUser = sysUserMapper.selectUserById(measuringInstrumentLedger.getUserId());
-        measuringInstrumentLedger.setValid(req.getValid());
-        measuringInstrumentLedger.setMostDate(req.getRecordDate());
-        measuringInstrumentLedger.setNextDate(new Date(req.getRecordDate().getTime() + 1000L * 60 * 60 * 24 * req.getValid()));
-        MeasuringInstrumentLedgerRecord measuringInstrumentLedgerRecord = new MeasuringInstrumentLedgerRecord();
-        if(measuringInstrumentLedgerMapper.updateById(measuringInstrumentLedger) > 0) {
-            measuringInstrumentLedgerRecord.setMeasuringInstrumentLedgerId(req.getId());
-            measuringInstrumentLedgerRecord.setRecordDate(req.getRecordDate());
-            measuringInstrumentLedgerRecord.setEntryDate(req.getEntryDate());
-            measuringInstrumentLedgerRecord.setValid(req.getValid());
-            measuringInstrumentLedgerRecord.setUserId(req.getUserId());
-            measuringInstrumentLedgerRecord.setUserName(sysUser.getUserName());
-            measuringInstrumentLedgerRecordMapper.insert(measuringInstrumentLedgerRecord);
-            // 鍙拌处缁戝畾涓�娆�
-//            if(!CollectionUtils.isEmpty(req.getTempFileIds())){
-//                migrateTempFilesToFormal(measuringInstrumentLedger.getId(), req.getTempFileIds(), FileNameType.MEASURING.getValue());
-//            }
-            // 鍙拌处璁板綍缁戝畾涓�娆�
-            if(!CollectionUtils.isEmpty(req.getTempFileIds())){
-                migrateTempFilesToFormal(measuringInstrumentLedgerRecord.getId(), req.getTempFileIds(), FileNameType.MEASURINGRecord.getValue());
+        measuringInstrumentLedgerRecordMapper.insert(req);
+        if (req.getBlobs() != null && !req.getBlobs().isEmpty()) {
+            List<StorageAttachment> attachments = new ArrayList<>();
+
+            for (StorageBlobDTO storageBlobDTO : req.getBlobs()) {
+                StorageAttachment storageAttachment = new StorageAttachment(
+                        StorageAttachmentFile,
+                        (long) StorageAttachmentRecordType.MeasuringInstrumentLedgerRecord.ordinal(),
+                        req.getId()
+                );
+                storageAttachment.setStorageBlobDTO(storageBlobDTO);
+                attachments.add(storageAttachment);
             }
-            return true;
+            attachmentService.saveStorageAttachment(attachments, req.getId(), StorageAttachmentRecordType.MeasuringInstrumentLedgerRecord, StorageAttachmentFile);
         }
-        return false;
+        return true;
     }
 
     @Override
diff --git a/src/main/resources/mapper/measuringinstrumentledger/MeasuringInstrumentLedgerMapper.xml b/src/main/resources/mapper/measuringinstrumentledger/MeasuringInstrumentLedgerMapper.xml
index fc680d0..78aaaa6 100644
--- a/src/main/resources/mapper/measuringinstrumentledger/MeasuringInstrumentLedgerMapper.xml
+++ b/src/main/resources/mapper/measuringinstrumentledger/MeasuringInstrumentLedgerMapper.xml
@@ -2,54 +2,48 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.measuringinstrumentledger.mapper.MeasuringInstrumentLedgerMapper">
 
-    <select id="listPage" resultType="com.ruoyi.measuringinstrumentledger.pojo.MeasuringInstrumentLedger">
+    <select id="listPage" resultType="com.ruoyi.measuringinstrumentledger.dto.MeasuringInstrumentLedgerPageDto">
         SELECT
-        id,
-        user_id,
-        user_name,
-        code,
-        name,
-        model,
-        most_date,
-        valid,
-        next_date,
-        record_date,
-        CASE
-        WHEN next_date &gt;=  DATE_FORMAT(now(),'%Y-%m-%d') THEN 1
-        ELSE 2
-        END AS status,
-        create_user,
-        create_time,
-        update_user,
-        update_time,
-        tenant_id
+        mil.id,
+        mil.user_id,
+        mil.user_name,
+        mil.code,
+        sd.dept_name,
+        mil.installation_location,
+        mil.unit,
+        mil.cycle,
+        mil.name,
+        mil.model,
+        mil.most_date,
+        mil.valid,
+        mil.next_date,
+        mil.record_date,
+        mil.create_user,
+        mil.create_time,
+        mil.update_user,
+        mil.update_time,
+        mil.tenant_id
         FROM
-        measuring_instrument_ledger
+        measuring_instrument_ledger mil
+        left join sys_dept sd on sd.id = mil.dept_id
         <where>
             <!-- 鏌ヨ鏉′欢鍚屼笂 -->
             <if test="req.code != null and req.code != ''">
-                AND code LIKE CONCAT('%', #{req.code}, '%')
+                AND mil.code LIKE CONCAT('%', #{req.code}, '%')
             </if>
             <if test="req.name != null and req.name != ''">
-                AND name LIKE CONCAT('%', #{req.name}, '%')
+                AND mil.name LIKE CONCAT('%', #{req.name}, '%')
             </if>
             <if test="req.status != null">
-                <choose>
-                    <when test="req.status == 1">
-                        AND next_date &gt;=  DATE_FORMAT(now(),'%Y-%m-%d')
-                    </when>
-                    <when test="req.status == 2">
-                        AND next_date &lt;  DATE_FORMAT(now(),'%Y-%m-%d')
-                    </when>
-                </choose>
+                AND mil.status = #{req.status}
             </if>
             <if test="req.tenantId != null">
-                AND tenant_id = #{req.tenantId}
+                AND mil.tenant_id = #{req.tenantId}
             </if>
             <if test="req.recordDate != null">
-                AND record_date = DATE_FORMAT(#{req.recordDate},'%Y-%m-%d')
+                AND mil.record_date = DATE_FORMAT(#{req.recordDate},'%Y-%m-%d')
             </if>
         </where>
-        ORDER BY update_time DESC
+        ORDER BY mil.update_time DESC
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3