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