maven
10 小时以前 8c8f19c87c9dfa7576f04ad80d864b37d0617786
Merge remote-tracking branch 'origin/dev_New' into dev_New
已添加3个文件
已修改12个文件
315 ■■■■■ 文件已修改
doc/alter_table_measuring_instrument_ledger.sql 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/service/StorageAttachmentService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/common/enums/StorageAttachmentRecordType.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/controller/DeviceRepairController.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/measuringinstrumentledger/controller/MeasuringInstrumentLedgerController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/measuringinstrumentledger/controller/MeasuringInstrumentLedgerRecordController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/measuringinstrumentledger/dto/MeasuringInstrumentLedgerPageDto.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/measuringinstrumentledger/dto/MeasuringInstrumentLedgerRecordDTO.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/measuringinstrumentledger/pojo/MeasuringInstrumentLedger.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/measuringinstrumentledger/service/MeasuringInstrumentLedgerRecordService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/measuringinstrumentledger/service/MeasuringInstrumentLedgerService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/measuringinstrumentledger/service/impl/MeasuringInstrumentLedgerRecordServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/measuringinstrumentledger/service/impl/MeasuringInstrumentLedgerServiceImpl.java 93 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/measuringinstrumentledger/MeasuringInstrumentLedgerMapper.xml 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 '检定周期(天)';
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);
    /**
     * ä¿å­˜é€šç”¨æ–‡ä»¶ä¸Šä¼ çš„附件信息
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());
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;
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 å‰ç«¯ä»£ç ä¸åŒ¹é…ï¼Œå¾…处理
//        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();
    }
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("检定失败");
    }
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));
    }
}
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;
}
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;
}
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;
}
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);
}
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);
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;
    }
}
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
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>