From 1a376098d2e27eeb9c2af90fa501311c2035d5ab Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期三, 27 八月 2025 14:30:41 +0800
Subject: [PATCH] :zap: 对于前端修改 采购和应付
---
ruoyi-common/src/main/java/com/ruoyi/basic/service/StorageBlobService.java | 3
ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java | 20 +
main-business/src/main/java/com/ruoyi/business/mapper/DuePayableMapper.java | 19 ++
main-business/src/main/java/com/ruoyi/business/service/impl/DuePayableServiceImpl.java | 114 ++++++++++++
ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml | 8
main-business/src/main/java/com/ruoyi/business/entity/PurchaseRegistration.java | 5
ruoyi-common/src/main/java/com/ruoyi/basic/entity/dto/SimpleStorageDto.java | 36 ++++
main-business/src/main/java/com/ruoyi/business/dto/DuePayableDto.java | 37 ++++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java | 2
main-business/src/main/java/com/ruoyi/business/vo/DuePayableVo.java | 56 ++++++
main-business/src/main/java/com/ruoyi/business/controller/DuePayableController.java | 39 ++++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java | 9 +
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/DictDataVo.java | 16 +
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java | 13 +
main-business/src/main/java/com/ruoyi/business/entity/DuePayable.java | 61 ++++++
main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java | 5
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java | 4
main-business/src/main/java/com/ruoyi/business/service/DuePayableService.java | 25 ++
main-business/src/main/resources/mapper/DuePayableMapper.xml | 20 ++
main-business/src/main/java/com/ruoyi/business/vo/SearchDuePurchaseVo.java | 14 +
20 files changed, 501 insertions(+), 5 deletions(-)
diff --git a/main-business/src/main/java/com/ruoyi/business/controller/DuePayableController.java b/main-business/src/main/java/com/ruoyi/business/controller/DuePayableController.java
new file mode 100644
index 0000000..a622ad2
--- /dev/null
+++ b/main-business/src/main/java/com/ruoyi/business/controller/DuePayableController.java
@@ -0,0 +1,39 @@
+package com.ruoyi.business.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.business.dto.DuePayableDto;
+import com.ruoyi.business.entity.DuePayable;
+import com.ruoyi.business.service.DuePayableService;
+import com.ruoyi.business.vo.DuePayableVo;
+import com.ruoyi.business.vo.SearchDuePurchaseVo;
+import com.ruoyi.common.core.domain.R;
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 搴斾粯娆綾ontroller
+ *
+ * @author buhuazhen
+ * @date 2025/8/26
+ * @email 3038525872@qq.com
+ */
+@RestController
+@Api(tags = "搴斾粯娆�")
+@AllArgsConstructor
+@RequestMapping("/duePayable")
+public class DuePayableController {
+
+ private final DuePayableService duePayableService;
+
+ @PostMapping("/addDuePayable")
+ public R addDuePayable(@RequestBody DuePayableDto duePayableDto) {
+ return R.ok(duePayableService.addDuePayable(duePayableDto));
+ }
+
+ @GetMapping("/list")
+ public R<IPage<DuePayableVo>> list(Page<DuePayable> page, SearchDuePurchaseVo vo) {
+ return R.ok(duePayableService.selectPayableList(page, vo));
+ }
+}
diff --git a/main-business/src/main/java/com/ruoyi/business/dto/DuePayableDto.java b/main-business/src/main/java/com/ruoyi/business/dto/DuePayableDto.java
new file mode 100644
index 0000000..3d0eca1
--- /dev/null
+++ b/main-business/src/main/java/com/ruoyi/business/dto/DuePayableDto.java
@@ -0,0 +1,37 @@
+package com.ruoyi.business.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author buhuazhen
+ * @date 2025/8/26
+ * @email 3038525872@qq.com
+ */
+@Data
+public class DuePayableDto {
+ private Long id;
+
+ private String ticketNo;
+
+ /**
+ * 瀵瑰簲閲囪喘淇℃伅琛╥d
+ */
+ private Long purchaseRegistrationId;
+
+ /**
+ * 浠樻绫诲瀷 锛堥浠樻銆佽繘搴︽銆佽川淇濋噾绛夛級
+ */
+ private Integer payableType;
+
+ /**
+ * 浠樻閲戦
+ */
+ private String paymentAmount;
+
+ /**
+ * 闄勪欢 `,`鍒嗗壊
+ */
+ private String attachUpload;
+}
diff --git a/main-business/src/main/java/com/ruoyi/business/entity/DuePayable.java b/main-business/src/main/java/com/ruoyi/business/entity/DuePayable.java
new file mode 100644
index 0000000..fa31cbf
--- /dev/null
+++ b/main-business/src/main/java/com/ruoyi/business/entity/DuePayable.java
@@ -0,0 +1,61 @@
+package com.ruoyi.business.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.ruoyi.common.core.domain.MyBaseEntity;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 搴斾粯娆捐〃
+ * @TableName due_payable
+ */
+@TableName(value ="due_payable")
+@Data
+public class DuePayable extends MyBaseEntity {
+ /**
+ *
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 绁ㄥ彿
+ */
+ @TableField("ticket_no")
+ private String ticketNo;
+
+ /**
+ * 瀵瑰簲閲囪喘淇℃伅琛╥d
+ */
+ @TableField("purchase_registration_id")
+
+ private Long purchaseRegistrationId;
+
+ /**
+ * 浠樻绫诲瀷 锛堥浠樻銆佽繘搴︽銆佽川淇濋噾绛夛級
+ */
+ @TableField("payable_type")
+ private Integer payableType;
+
+ /**
+ * 浠樻閲戦
+ */
+ @TableField("payment_amount")
+ private BigDecimal paymentAmount;
+
+ /**
+ * 闄勪欢 `,`鍒嗗壊
+ */
+ @TableField("attach_upload")
+ private String attachUpload;
+
+
+
+ @TableField(exist = false)
+ private static final long serialVersionUID = 1L;
+
+}
\ No newline at end of file
diff --git a/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java b/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java
index e797d3f..2301eef 100644
--- a/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java
+++ b/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java
@@ -100,6 +100,11 @@
@TableField(value = "coal_plan_id")
private Long coalPlanId;
/**
+ * 閲囪喘绫诲瀷
+ */
+ @TableField(value = "purchase_type")
+ private Integer purchaseType;
+ /**
* 鐧昏鏃ユ湡
*/
@TableField(value = "registration_date")
diff --git a/main-business/src/main/java/com/ruoyi/business/entity/PurchaseRegistration.java b/main-business/src/main/java/com/ruoyi/business/entity/PurchaseRegistration.java
index 2d0a160..afd6788 100644
--- a/main-business/src/main/java/com/ruoyi/business/entity/PurchaseRegistration.java
+++ b/main-business/src/main/java/com/ruoyi/business/entity/PurchaseRegistration.java
@@ -99,4 +99,9 @@
*/
@TableField(value = "type")
private Integer type;
+ /**
+ * 閲囪喘绫诲瀷
+ */
+ @TableField(value = "purchase_type")
+ private Integer purchaseType;
}
\ No newline at end of file
diff --git a/main-business/src/main/java/com/ruoyi/business/mapper/DuePayableMapper.java b/main-business/src/main/java/com/ruoyi/business/mapper/DuePayableMapper.java
new file mode 100644
index 0000000..c3fdbfc
--- /dev/null
+++ b/main-business/src/main/java/com/ruoyi/business/mapper/DuePayableMapper.java
@@ -0,0 +1,19 @@
+package com.ruoyi.business.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.business.entity.DuePayable;
+import org.mapstruct.Mapper;
+
+/**
+* @author buhuazhen
+* @description 閽堝琛ㄣ�恉ue_payable(搴斾粯娆捐〃)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2025-08-26 16:12:56
+* @Entity generator.domain.DuePayable
+*/
+public interface DuePayableMapper extends BaseMapper<DuePayable> {
+
+}
+
+
+
+
diff --git a/main-business/src/main/java/com/ruoyi/business/service/DuePayableService.java b/main-business/src/main/java/com/ruoyi/business/service/DuePayableService.java
new file mode 100644
index 0000000..0253e00
--- /dev/null
+++ b/main-business/src/main/java/com/ruoyi/business/service/DuePayableService.java
@@ -0,0 +1,25 @@
+package com.ruoyi.business.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.business.dto.DuePayableDto;
+import com.ruoyi.business.dto.PurchaseRegistrationDto;
+import com.ruoyi.business.entity.DuePayable;
+import com.ruoyi.business.entity.PurchaseRegistration;
+import com.ruoyi.business.vo.DuePayableVo;
+import com.ruoyi.business.vo.SearchDuePurchaseVo;
+
+/**
+* @author buhuazhen
+* @description 閽堝琛ㄣ�恉ue_payable(搴斾粯娆捐〃)銆戠殑鏁版嵁搴撴搷浣淪ervice
+* @createDate 2025-08-26 16:12:56
+*/
+public interface DuePayableService extends IService<DuePayable> {
+
+ int addDuePayable(DuePayableDto dueDto);
+
+ IPage<DuePayableVo> selectPayableList(Page<DuePayable> page, SearchDuePurchaseVo vo);
+
+
+}
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/DuePayableServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/DuePayableServiceImpl.java
new file mode 100644
index 0000000..2ede66f
--- /dev/null
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/DuePayableServiceImpl.java
@@ -0,0 +1,114 @@
+package com.ruoyi.business.service.impl;
+
+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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.entity.dto.SimpleStorageDto;
+import com.ruoyi.basic.service.StorageBlobService;
+import com.ruoyi.business.dto.DuePayableDto;
+import com.ruoyi.business.entity.DuePayable;
+import com.ruoyi.business.mapper.DuePayableMapper;
+import com.ruoyi.business.service.DuePayableService;
+import com.ruoyi.business.vo.DuePayableVo;
+import com.ruoyi.business.vo.SearchDuePurchaseVo;
+import com.ruoyi.common.utils.StringUtils;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * @author buhuazhen
+ * @description 閽堝琛ㄣ�恉ue_payable(搴斾粯娆捐〃)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+ * @createDate 2025-08-26 16:12:56
+ */
+@Service
+@RequiredArgsConstructor
+public class DuePayableServiceImpl extends ServiceImpl<DuePayableMapper, DuePayable>
+ implements DuePayableService {
+ private final StorageBlobService storageBlobService;
+ private final DuePayableMapper duePayableMapper;
+
+ @Getter
+ @Value("${minio.default-bucket}")
+ private String defaultBucket;
+
+ @Override
+ public int addDuePayable(DuePayableDto dto) {
+ DuePayable duePayable = new DuePayable();
+ duePayable.setPayableType(dto.getPayableType());
+ duePayable.setAttachUpload(dto.getAttachUpload());
+ duePayable.setPurchaseRegistrationId(dto.getPurchaseRegistrationId());
+ duePayable.setPaymentAmount(new BigDecimal(dto.getPaymentAmount()));
+ duePayable.setTicketNo(dto.getTicketNo());
+ duePayable.setId(dto.getId());
+
+ if (Objects.isNull(dto.getId())) {
+ return duePayableMapper.insert(duePayable);
+ }
+
+ return duePayableMapper.updateById(duePayable);
+ }
+
+ @Override
+ public IPage<DuePayableVo> selectPayableList(Page<DuePayable> page, SearchDuePurchaseVo vo) {
+ LambdaQueryWrapper<DuePayable> queryWrapper = new LambdaQueryWrapper<>();
+ // todo 鎼滅储鏉′欢鏆傛椂涓嶇煡閬撴槸浠�涔堭煠�
+ queryWrapper.orderByDesc(DuePayable::getCreateTime);
+
+ Page<DuePayable> duePayablePage = duePayableMapper.selectPage(page, queryWrapper);
+ /**
+ * 鏌ヨ鍑洪檮浠秈d 鐢变簬鍚庣画璇︾粏
+ */
+ Map<Long, List<Long>> attachMap = duePayablePage.getRecords().stream()
+ .collect(Collectors.toMap(
+ DuePayable::getId,
+ it -> {
+ if (StringUtils.isNotBlank(it.getAttachUpload())) {
+ return Arrays.stream(it.getAttachUpload().split(","))
+ .map(Long::parseLong)
+ .collect(Collectors.toList());
+ } else {
+ return List.of();
+ }
+ }
+ ));
+ /**
+ * 鏍规嵁涓婇潰鐨刬ds 鏌ヨ鍑哄叿浣撲俊鎭�
+ */
+ Map<Long,SimpleStorageDto> storageMap = storageBlobService.findStorageByIds(attachMap.values().stream().flatMap(List::stream).toList(), getDefaultBucket()).stream().collect(Collectors.toMap(SimpleStorageDto::getId,it->it));
+
+
+ List<DuePayableVo> convertedList = duePayablePage.getRecords().stream().map(it -> {
+ DuePayableVo dueVo = new DuePayableVo(it.getId(), it.getTicketNo(), it.getPurchaseRegistrationId(), it.getPayableType(), it.getPaymentAmount(),Long.parseLong(it.getCreateBy()),it.getCreateTime().toLocalDate());
+ // 鏂囦欢淇℃伅
+ List<Long> storageIds = attachMap.get(it.getId());
+ dueVo.setAttachFileList(
+ storageIds.stream()
+ .map(storageMap::get) // O(1) 鑾峰彇
+ .filter(Objects::nonNull)
+ .toList()
+ );
+ return dueVo;
+ }).toList();
+
+ IPage<DuePayableVo> voPage = new Page<>();
+ voPage.setCurrent(duePayablePage.getCurrent());
+ voPage.setSize(duePayablePage.getSize());
+ voPage.setTotal(duePayablePage.getTotal());
+ voPage.setRecords(convertedList);
+ return voPage;
+ }
+}
+
+
+
+
diff --git a/main-business/src/main/java/com/ruoyi/business/vo/DuePayableVo.java b/main-business/src/main/java/com/ruoyi/business/vo/DuePayableVo.java
new file mode 100644
index 0000000..cfbb5c8
--- /dev/null
+++ b/main-business/src/main/java/com/ruoyi/business/vo/DuePayableVo.java
@@ -0,0 +1,56 @@
+package com.ruoyi.business.vo;
+
+import com.ruoyi.basic.entity.dto.SimpleStorageDto;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * @author buhuazhen
+ * @date 2025/8/26
+ * @email 3038525872@qq.com
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DuePayableVo {
+
+ private Long id;
+
+ private String ticketNo;
+
+ private Long purchaseRegistrationId;
+
+ // 鏈夐渶瑕佸彲浠ユ煡璇㈠嚭閲囪喘鍏蜂綋淇℃伅
+
+ private Integer payableType;
+
+ private BigDecimal paymentAmount;
+
+ private List<SimpleStorageDto> attachFileList;
+
+ private Long registrantId;
+
+ private LocalDate registrationDate;
+ public DuePayableVo(Long id, String ticketNo, Long purchaseRegistrationId, Integer payableType, BigDecimal paymentAmount) {
+ this.id = id;
+ this.ticketNo = ticketNo;
+ this.purchaseRegistrationId = purchaseRegistrationId;
+ this.payableType = payableType;
+ this.paymentAmount = paymentAmount;
+ }
+
+ public DuePayableVo(Long id, String ticketNo, Long purchaseRegistrationId, Integer payableType, BigDecimal paymentAmount, Long registrantId, LocalDate registrationDate) {
+ this.id = id;
+ this.ticketNo = ticketNo;
+ this.purchaseRegistrationId = purchaseRegistrationId;
+ this.payableType = payableType;
+ this.paymentAmount = paymentAmount;
+ this.registrantId = registrantId;
+ this.registrationDate = registrationDate;
+ }
+}
diff --git a/main-business/src/main/java/com/ruoyi/business/vo/SearchDuePurchaseVo.java b/main-business/src/main/java/com/ruoyi/business/vo/SearchDuePurchaseVo.java
new file mode 100644
index 0000000..6bb62b7
--- /dev/null
+++ b/main-business/src/main/java/com/ruoyi/business/vo/SearchDuePurchaseVo.java
@@ -0,0 +1,14 @@
+package com.ruoyi.business.vo;
+
+import lombok.Data;
+
+/**
+ * @author buhuazhen
+ * @date 2025/8/26
+ * @email 3038525872@qq.com
+ */
+@Data
+public class SearchDuePurchaseVo {
+
+ private String search;
+}
diff --git a/main-business/src/main/resources/mapper/DuePayableMapper.xml b/main-business/src/main/resources/mapper/DuePayableMapper.xml
new file mode 100644
index 0000000..8f07894
--- /dev/null
+++ b/main-business/src/main/resources/mapper/DuePayableMapper.xml
@@ -0,0 +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.business.mapper.DuePayableMapper">
+
+ <resultMap id="BaseResultMap" type="com.ruoyi.business.entity.DuePayable">
+ <id property="id" column="id" jdbcType="BIGINT"/>
+ <result property="ticketNo" column="ticket_no" jdbcType="VARCHAR"/>
+ <result property="purchaseRegistrationId" column="purchase_registration_id" jdbcType="BIGINT"/>
+ <result property="payableType" column="payable_type" jdbcType="INTEGER"/>
+ <result property="paymentAmount" column="payment_amount" jdbcType="NUMERIC"/>
+ <result property="attachUpload" column="attach_upload" jdbcType="VARCHAR"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id,ticket_no,purchase_registration_id,
+ payable_type,payment_amount,attach_upload,
+ deleted,create_by,create_time,
+ update_by,update_time
+ </sql>
+</mapper>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
index f65492b..38579a4 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
@@ -49,6 +49,15 @@
return getDataTable(list);
}
+ /**
+ * 鑾峰彇鍏ㄩ儴鍙敤瀛楁淇℃伅
+ * @return
+ */
+ @GetMapping("/dictDataList")
+ public AjaxResult dictDataList(){
+ return AjaxResult.success(dictDataService.selectAllDictDataList());
+ }
+
@Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:dict:export')")
@PostMapping("/export")
diff --git a/ruoyi-common/src/main/java/com/ruoyi/basic/entity/dto/SimpleStorageDto.java b/ruoyi-common/src/main/java/com/ruoyi/basic/entity/dto/SimpleStorageDto.java
new file mode 100644
index 0000000..248686d
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/basic/entity/dto/SimpleStorageDto.java
@@ -0,0 +1,36 @@
+package com.ruoyi.basic.entity.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+/**
+ * @author buhuazhen
+ * @date 2025/8/26
+ * @email 3038525872@qq.com
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SimpleStorageDto {
+ private Long id;
+
+ private String originalFilename;
+
+ private String contentType;
+
+ private String url;
+
+ private String downloadUrl;
+
+ private Date createTime;
+
+ public SimpleStorageDto(Long id, String contentType, String originalFilename, Date createTime) {
+ this.id = id;
+ this.contentType = contentType;
+ this.originalFilename = originalFilename;
+ this.createTime = createTime;
+ }
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/basic/service/StorageBlobService.java b/ruoyi-common/src/main/java/com/ruoyi/basic/service/StorageBlobService.java
index 64f737d..18e51c3 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/basic/service/StorageBlobService.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/basic/service/StorageBlobService.java
@@ -3,6 +3,7 @@
import com.ruoyi.basic.entity.StorageAttachment;
import com.ruoyi.basic.entity.StorageBlob;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.basic.entity.dto.SimpleStorageDto;
import com.ruoyi.basic.entity.dto.StorageBlobDTO;
import org.springframework.web.multipart.MultipartFile;
@@ -32,4 +33,6 @@
* @return
*/
public int deleteStorageBlobs(StorageAttachment attachment);
+
+ List<SimpleStorageDto> findStorageByIds(List<Long> ids,String bucketName);
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java b/ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java
index cf2094e..1939119 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.entity.StorageAttachment;
import com.ruoyi.basic.entity.StorageBlob;
+import com.ruoyi.basic.entity.dto.SimpleStorageDto;
import com.ruoyi.basic.entity.dto.StorageBlobDTO;
import com.ruoyi.basic.mapper.StorageAttachmentMapper;
import com.ruoyi.basic.mapper.StorageBlobMapper;
@@ -47,7 +48,7 @@
private MinioUtils minioUtils;
@Override
- public List<StorageBlobDTO> updateStorageBlobs(List<MultipartFile> files, String bucketName,Long type) {
+ public List<StorageBlobDTO> updateStorageBlobs(List<MultipartFile> files, String bucketName, Long type) {
// 鑻ユ病浼犲叆bucketName锛屽垯浣跨敤榛樿bucketName
if (StringUtils.isEmpty(bucketName)) {
@@ -85,7 +86,7 @@
"pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt", "rtf", "md", "csv", "odt",
// 瑙嗛
- "mp4", "mov", "avi", "wmv", "flv", "mkv", "webm", "mpeg", "3gp","MOV",
+ "mp4", "mov", "avi", "wmv", "flv", "mkv", "webm", "mpeg", "3gp", "MOV",
// 闊抽
"mp3", "wav", "ogg", "aac", "flac", "m4a", "wma", "amr",
@@ -142,7 +143,7 @@
new LambdaQueryWrapper<StorageBlob>().in(StorageBlob::getId, ids)
);
}
-
+
// 绉婚櫎MinIO涓殑鏂囦欢
if (!storageBlobs.isEmpty()) {
for (StorageBlob storageBlob : storageBlobs) {
@@ -158,4 +159,17 @@
}
return 0;
}
+
+ @Override
+ public List<SimpleStorageDto> findStorageByIds(List<Long> ids, String bucketName) {
+ if (ids == null || ids.isEmpty()) {
+ return List.of();
+ }
+ 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));
+ return dto;
+ }).toList();
+ }
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/DictDataVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/DictDataVo.java
new file mode 100644
index 0000000..7b020cf
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/DictDataVo.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.domain.vo;
+
+import lombok.Data;
+import lombok.RequiredArgsConstructor;
+
+/**
+ * @author buhuazhen
+ * @date 2025/8/26
+ * @email 3038525872@qq.com
+ */
+@Data
+public class DictDataVo {
+ private String label;
+ private String value;
+ private String type;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java
index a341f1e..091cd33 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java
@@ -19,6 +19,8 @@
*/
public List<SysDictData> selectDictDataList(SysDictData dictData);
+ public List<SysDictData> selectAllDictList();
+
/**
* 鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁
*
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java
index 9bc4f13..3f86756 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java
@@ -2,6 +2,7 @@
import java.util.List;
import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.system.domain.vo.DictDataVo;
/**
* 瀛楀吀 涓氬姟灞�
@@ -57,4 +58,7 @@
* @return 缁撴灉
*/
public int updateDictData(SysDictData dictData);
+
+ public List<DictDataVo> selectAllDictDataList();
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
index fced569..e9079e7 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
@@ -1,6 +1,8 @@
package com.ruoyi.system.service.impl;
import java.util.List;
+
+import com.ruoyi.system.domain.vo.DictDataVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.domain.entity.SysDictData;
@@ -108,4 +110,15 @@
}
return row;
}
+
+ @Override
+ public List<DictDataVo> selectAllDictDataList() {
+ return dictDataMapper.selectAllDictList().stream().map(it->{
+ DictDataVo dict = new DictDataVo();
+ dict.setLabel(it.getDictLabel());
+ dict.setValue(it.getDictValue());
+ dict.setType(it.getDictType());
+ return dict;
+ }).toList();
+ }
}
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml
index d394930..3f2af4c 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml
@@ -59,8 +59,12 @@
<select id="countDictDataByType" resultType="Integer">
select count(1) from sys_dict_data where dict_type=#{dictType}
</select>
-
- <delete id="deleteDictDataById" parameterType="Long">
+ <select id="selectAllDictList" resultType="com.ruoyi.common.core.domain.entity.SysDictData">
+ <include refid="selectDictDataVo"/>
+ where status = '0'
+ </select>
+
+ <delete id="deleteDictDataById" parameterType="Long">
delete from sys_dict_data where dict_code = #{dictCode}
</delete>
--
Gitblit v1.9.3