maven
7 天以前 e1a6e20d22fbcb862247fac0a671a2a2722e7755
Merge remote-tracking branch 'origin/pim-jlmy' into pim-jlmy
已修改12个文件
已添加1个文件
196 ■■■■■ 文件已修改
main-business/src/main/java/com/ruoyi/business/controller/StaffOnJobController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/dto/ReceiptPaymentDto.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/entity/ReceiptPayment.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/entity/StaffOnJob.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/IStaffOnJobService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/ReceiptPaymentServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/StaffOnJobServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/vo/SaveStaffOnJobVo.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/resources/mapper/StaffOnJobMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/basic/entity/dto/SimpleStorageDto.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/basic/service/StorageBlobService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/controller/StaffOnJobController.java
@@ -4,9 +4,13 @@
import com.ruoyi.business.entity.StaffOnJob;
import com.ruoyi.business.service.IStaffOnJobService;
import com.ruoyi.business.vo.SaveStaffOnJobVo;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -74,5 +78,11 @@
        staffOnJobService.staffOnJobExport(response, staffOnJob);
    }
    @PostMapping("/save")
    public R save(@RequestBody SaveStaffOnJobVo vo){
        staffOnJobService.saveStaffOnJob(vo);
        return R.ok();
    }
}
main-business/src/main/java/com/ruoyi/business/dto/ReceiptPaymentDto.java
@@ -1,9 +1,12 @@
package com.ruoyi.business.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.basic.entity.dto.SimpleStorageDto;
import com.ruoyi.business.entity.ReceiptPayment;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.util.List;
@Data
public class ReceiptPaymentDto extends ReceiptPayment {
@@ -19,4 +22,9 @@
    @Excel(isExport = false)
    private String receiptPaymentDateEnd;
    /**
     * é™„件信息
     */
    private List<SimpleStorageDto> attachFileList;
}
main-business/src/main/java/com/ruoyi/business/entity/ReceiptPayment.java
@@ -61,4 +61,7 @@
    @TableField(fill = FieldFill.INSERT)
    private Long tenantId;
    @TableField("attach_upload")
    private String attachUpload;
}
main-business/src/main/java/com/ruoyi/business/entity/StaffOnJob.java
@@ -144,5 +144,10 @@
    @TableField(fill = FieldFill.INSERT)
    private Long tenantId;
    /**
     * é™„件信息
     */
    @TableField("attach_upload")
    private String attachUpload;
}
main-business/src/main/java/com/ruoyi/business/service/IStaffOnJobService.java
@@ -6,6 +6,7 @@
import com.ruoyi.business.entity.StaffJoinLeaveRecord;
import com.ruoyi.business.entity.StaffOnJob;
import com.ruoyi.business.vo.SaveStaffOnJobVo;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;
@@ -24,4 +25,6 @@
    List<StaffJoinLeaveRecord> staffOnJobList();
    Boolean importData(MultipartFile file);
    void saveStaffOnJob(SaveStaffOnJobVo vo);
}
main-business/src/main/java/com/ruoyi/business/service/impl/ReceiptPaymentServiceImpl.java
@@ -4,16 +4,22 @@
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.entity.dto.SimpleStorageDto;
import com.ruoyi.basic.service.StorageBlobService;
import com.ruoyi.business.dto.ReceiptPaymentDto;
import com.ruoyi.business.dto.SalesRecordDto;
import com.ruoyi.business.entity.DuePayable;
import com.ruoyi.business.entity.ReceiptPayment;
import com.ruoyi.business.entity.SalesRecord;
import com.ruoyi.business.mapper.ReceiptPaymentMapper;
import com.ruoyi.business.mapper.SalesRecordMapper;
import com.ruoyi.business.service.ReceiptPaymentService;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -24,6 +30,7 @@
import java.time.YearMonth;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service
public class ReceiptPaymentServiceImpl extends ServiceImpl<ReceiptPaymentMapper, ReceiptPayment> implements ReceiptPaymentService {
@@ -32,6 +39,10 @@
    private ReceiptPaymentMapper receiptPaymentMapper;
    @Autowired
    private SalesRecordMapper salesRecordMapper;
    @Resource
    private StorageBlobService storageBlobService;
    /**
     * å›žæ¬¾ç™»è®°æ–°å¢ž
@@ -76,7 +87,27 @@
    @Override
    public IPage<ReceiptPaymentDto> receiptPaymentHistoryListPage(Page page, ReceiptPaymentDto receiptPaymentDto) {
        return receiptPaymentMapper.bindInvoiceNoRegPage(page, receiptPaymentDto);
        IPage<ReceiptPaymentDto> receiptPaymentDtoIPage = receiptPaymentMapper.bindInvoiceNoRegPage(page, receiptPaymentDto);
        List<ReceiptPaymentDto> dtoList = receiptPaymentDtoIPage.getRecords();
        Map<Long, List<Long>> attachMap = dtoList.stream().collect(Collectors.toMap(
                (ReceiptPaymentDto receiptPaymentDto1) -> receiptPaymentDto1.getId().longValue(),
                it -> {
                    if (StringUtils.isNotBlank(it.getAttachUpload())) {
                        return Arrays.stream(it.getAttachUpload().split(","))
                                .map(Long::parseLong)
                                .collect(Collectors.toList());
                    } else {
                        return List.of();
                    }
                }
        ));
        Map<Long, List<SimpleStorageDto>> conver = storageBlobService.conver(attachMap);
        dtoList.forEach(it->{
            it.setAttachFileList(conver.get(it.getId().longValue()));
        });
        return receiptPaymentDtoIPage;
    }
    @Override
main-business/src/main/java/com/ruoyi/business/service/impl/StaffOnJobServiceImpl.java
@@ -10,6 +10,9 @@
import com.ruoyi.business.mapper.StaffJoinLeaveRecordMapper;
import com.ruoyi.business.mapper.StaffOnJobMapper;
import com.ruoyi.business.service.IStaffOnJobService;
import com.ruoyi.business.vo.SaveStaffOnJobVo;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import jakarta.servlet.http.HttpServletResponse;
@@ -17,7 +20,9 @@
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
@AllArgsConstructor
@Service
@@ -31,6 +36,9 @@
    //在职员工台账分页查询
    @Override
    public IPage<StaffOnJob> staffOnJobListPage(Page page, StaffOnJob staffOnJob) {
        return staffOnJobMapper.staffOnJobListPage(page,staffOnJob);
    }
@@ -67,5 +75,17 @@
        }
    }
    @Override
    public void saveStaffOnJob(SaveStaffOnJobVo vo) {
        StaffOnJob staffOnJob = new StaffOnJob();
        BeanUtils.copyProperties(vo, staffOnJob);
        if (Objects.isNull(staffOnJob.getId())){
            // todo æš‚时未有新增要求
            throw new ServiceException("后台暂未确定开发");
        }
        staffOnJobMapper.insertOrUpdate(staffOnJob);
    }
}
main-business/src/main/java/com/ruoyi/business/vo/SaveStaffOnJobVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.ruoyi.business.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
 * @author buhuazhen
 * @date 2025/8/28
 * @email 3038525872@qq.com
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SaveStaffOnJobVo implements Serializable {
    private Long id;
    private String attachUpload;
}
main-business/src/main/resources/mapper/StaffOnJobMapper.xml
@@ -18,6 +18,7 @@
        <if test="staffOnJob.entryDateEnd != null and staffOnJob.entryDateEnd != '' ">
            AND contract_expire_time &lt;= to_date(#{staffOnJob.entryDateEnd},'YYYY-MM-DD')
        </if>
        order by create_time desc
    </select>
    <select id="staffOnJobList" resultType="com.ruoyi.business.entity.StaffOnJob">
        SELECT
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
@@ -1,5 +1,6 @@
package com.ruoyi.web.controller.common;
import com.google.common.collect.Iterables;
import com.ruoyi.basic.service.StorageBlobService;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.Constants;
@@ -11,17 +12,17 @@
import com.ruoyi.framework.config.ServerConfig;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.Getter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
@@ -42,6 +43,10 @@
    @Autowired
    private StorageBlobService  storageBlobService;
    @Getter
    @Value("${minio.default-bucket}")
    private String defaultBucket;
    /**
     * é€šç”¨ä¸‹è½½è¯·æ±‚
@@ -175,4 +180,17 @@
            log.error("下载文件失败", e);
        }
    }
    /**
     * æ ¹æ® storage_blob è¡¨id è¿”回minio文件列表
     * @param ids
     */
    @PostMapping("/findFileListByIds")
    public R findFileListByIds(@RequestBody List<Long> ids){
        if (Iterables.isEmpty(ids)){
            return R.ok();
        }
        return R.ok(storageBlobService.findStorageByIds(ids,defaultBucket));
    }
}
ruoyi-common/src/main/java/com/ruoyi/basic/entity/dto/SimpleStorageDto.java
@@ -21,16 +21,36 @@
    private String contentType;
    /**
     * ç”¨äºŽä¸‹è½½
     */
    private String url;
    private String downloadUrl;
    /**
     * é¢„览
     */
    private String previewUrl;
    private Date createTime;
    // é…åˆå‰ç«¯æ·»åŠ æœ‰ä¸€äº›å­—æ®µ
    private Long uid;
    private String name;
    private String status = "success";
    public SimpleStorageDto(Long id, String contentType, String originalFilename, Date createTime) {
        this.id = id;
        this.contentType = contentType;
        this.originalFilename = originalFilename;
        this.createTime = createTime;
    }
    public Long getUid() {
        return getId();
    }
    public String getName() {
        return getOriginalFilename();
    }
}
ruoyi-common/src/main/java/com/ruoyi/basic/service/StorageBlobService.java
@@ -8,6 +8,7 @@
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
/**
 * <p>
@@ -35,4 +36,7 @@
    public int deleteStorageBlobs(StorageAttachment attachment);
    List<SimpleStorageDto> findStorageByIds(List<Long> ids,String bucketName);
    Map<Long,List<SimpleStorageDto>> conver(Map<Long, List<Long>> attachMap);
}
ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Iterables;
import com.ruoyi.basic.entity.StorageAttachment;
import com.ruoyi.basic.entity.StorageBlob;
import com.ruoyi.basic.entity.dto.SimpleStorageDto;
@@ -16,15 +17,16 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.file.MinioUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import jakarta.annotation.Resource;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.commons.io.FilenameUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -46,6 +48,10 @@
    @Autowired
    private MinioUtils minioUtils;
    @Getter
    @Value("${minio.default-bucket}")
    private String defaultBucket;
    @Override
    public List<StorageBlobDTO> updateStorageBlobs(List<MultipartFile> files, String bucketName, Long type) {
@@ -167,9 +173,31 @@
        }
        return storageBlobMapper.selectByIds(ids).parallelStream().map(it -> {
            SimpleStorageDto dto = new SimpleStorageDto(it.getId(), it.getContentType(), it.getOriginalFilename(), it.getCreateTime());
            dto.setDownloadUrl(minioUtils.getDownloadUrls(it.getBucketFilename(), bucketName, it.getOriginalFilename(), true));
            dto.setUrl(minioUtils.getPreviewUrl(it.getBucketFilename(), bucketName, true));
            dto.setUrl(minioUtils.getDownloadUrls(it.getBucketFilename(), bucketName, it.getOriginalFilename(), true));
            dto.setPreviewUrl(minioUtils.getPreviewUrl(it.getBucketFilename(), bucketName, true));
            return dto;
        }).toList();
    }
    @Override
    public Map<Long, List<SimpleStorageDto>> conver(Map<Long, List<Long>> attachMap) {
        if (attachMap == null || attachMap.isEmpty()) {
            return Map.of();
        }
        List<Long> storageBlobIds = attachMap.values().stream().flatMap(Collection::stream).toList();
        if(Iterables.isEmpty(storageBlobIds)){
            return Map.of();
        }
        Map<Long,SimpleStorageDto> storageMap = this.findStorageByIds(storageBlobIds, defaultBucket).stream().collect(Collectors.toMap(SimpleStorageDto::getId,it->it));;
        Map<Long, List<SimpleStorageDto>> finalMap = new HashMap<>();
        attachMap.forEach((k,v)->{
            finalMap.put(k, v.stream().map(storageMap::get).toList());
        });
        return finalMap;
    }
}