已修改18个文件
已添加18个文件
953 ■■■■■ 文件已修改
main-business/src/main/java/com/ruoyi/business/controller/DuePayableController.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/controller/ReceiptPaymentController.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/dto/DuePayableDto.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/dto/ProductionDto.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/dto/ReceiptPaymentDto.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/entity/DuePayable.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/entity/Production.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/entity/ProductionScheduling.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/entity/PurchaseRegistration.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/entity/ReceiptPayment.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/mapper/DuePayableMapper.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/mapper/ReceiptPaymentMapper.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/other/service/impl/TempFileServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/DuePayableService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/ReceiptPaymentService.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/DuePayableServiceImpl.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/ProductionSchedulingServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/ProductionServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/ReceiptPaymentServiceImpl.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/vo/DuePayableVo.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/vo/SearchDuePurchaseVo.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/resources/db/migration/postgresql/V20250604101800__create_table_production.sql 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/resources/mapper/DuePayableMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/resources/mapper/ProductionSchedulingMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/resources/mapper/ReceiptPaymentMapper.xml 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/basic/entity/dto/SimpleStorageDto.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/basic/service/StorageBlobService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/DictDataVo.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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.*;
/**
 * åº”付款controller
 *
 * @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));
    }
}
main-business/src/main/java/com/ruoyi/business/controller/ReceiptPaymentController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
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.ReceiptPaymentDto;
import com.ruoyi.business.entity.ReceiptPayment;
import com.ruoyi.business.service.ReceiptPaymentService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/receiptPayment")
public class ReceiptPaymentController extends BaseController {
    @Autowired
    private ReceiptPaymentService receiptPaymentService;
    /**
     * åº”收台账新增
     * @param receiptPayment
     * @return
     */
    @PostMapping("/saveOrUpdate")
    public AjaxResult receiptPaymentSaveOrUpdate (@RequestBody ReceiptPayment receiptPayment) {
        receiptPaymentService.receiptPaymentSaveOrUpdate(receiptPayment);
        return AjaxResult.success();
    }
    /**
     * åº”收台账修改
     * @param receiptPayment
     * @return
     */
    @PostMapping("/update")
    public AjaxResult receiptPaymentUpdate (@RequestBody ReceiptPayment receiptPayment) {
        return AjaxResult.success(receiptPaymentService.receiptPaymentUpdate(receiptPayment));
    }
    /**
     * åº”收台账删除
     * @param ids
     * @return
     */
    @DeleteMapping("/del")
    public AjaxResult receiptPaymentDel (@RequestBody List<Integer> ids) {
        return AjaxResult.success(receiptPaymentService.receiptPaymentDel(ids));
    }
    /**
     * åº”收台账详情
     * @param id
     * @return
     */
    @GetMapping("/invoiceInfo")
    public AjaxResult invoiceInfo (Integer id) {
        return AjaxResult.success(receiptPaymentService.invoiceInfo(id));
    }
    /**
     * æŸ¥è¯¢åº”收记录
     */
    @GetMapping("/receiptPaymentHistoryListPage")
    public IPage<ReceiptPaymentDto> receiptPaymentHistoryListPage(Page page, ReceiptPaymentDto receiptPaymentDto) {
        return receiptPaymentService.receiptPaymentHistoryListPage(page,receiptPaymentDto);
    }
    /**
     * æŸ¥è¯¢åº”收记录不分页
     */
    @GetMapping("/receiptPaymentHistoryListNoPage")
    public List<ReceiptPaymentDto> receiptPaymentHistoryListNoPage(ReceiptPaymentDto receiptPaymentDto) {
        return receiptPaymentService.receiptPaymentHistoryListNoPage(receiptPaymentDto);
    }
}
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;
    /**
     * å¯¹åº”采购信息表id
     */
    private Long purchaseRegistrationId;
    /**
     * ä»˜æ¬¾ç±»åž‹ ï¼ˆé¢„付款、进度款、质保金等)
     */
    private Integer payableType;
    /**
     * ä»˜æ¬¾é‡‘额
     */
    private String paymentAmount;
    /**
     * é™„ä»¶ `,`分割
     */
    private String attachUpload;
}
main-business/src/main/java/com/ruoyi/business/dto/ProductionDto.java
@@ -10,5 +10,7 @@
    private List officialList;
    private Integer searchAll;
    
}
main-business/src/main/java/com/ruoyi/business/dto/ReceiptPaymentDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.ruoyi.business.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.business.entity.ReceiptPayment;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
@Data
public class ReceiptPaymentDto extends ReceiptPayment {
    @Excel(name = "客户")
    private String customer;
    @Excel(name = "煤种")
    private String coal;
    @TableField(exist = false)
    @Excel(isExport = false)
    private String receiptPaymentDateStart;
    @TableField(exist = false)
    @Excel(isExport = false)
    private String receiptPaymentDateEnd;
}
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;
    /**
     * å¯¹åº”采购信息表id
     */
    @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;
}
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")
main-business/src/main/java/com/ruoyi/business/entity/Production.java
@@ -42,6 +42,12 @@
     */
    @TableField(value = "production_quantity")
    private BigDecimal productionQuantity;
    /**
     * å¾…排产数量
     */
    @TableField(value = "pending_quantity")
    private BigDecimal pendingQuantity;
    /**
     * äººå·¥æˆæœ¬
     */
main-business/src/main/java/com/ruoyi/business/entity/ProductionScheduling.java
@@ -44,6 +44,9 @@
     */
    @TableField(exist = false)
    private BigDecimal productionQuantity;
    @TableField(exist = false)
    private Integer searchAll;
    /**
     * æŽ’产数量
     */
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;
}
main-business/src/main/java/com/ruoyi/business/entity/ReceiptPayment.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package com.ruoyi.business.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Data
@TableName("receipt_payment")
public class ReceiptPayment {
    /**
     * åºå·
     */
    @TableId(type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty(value = "回款形式 0电汇1承兑")
    private String receiptPaymentType;
    @ApiModelProperty(value = "应收金额")
    private BigDecimal receiptPaymentAmount;
    @ApiModelProperty(value = "登记人")
    private String registrant;
    @ApiModelProperty(value = "销售记录表主键ID")
    private Integer salesRecordId;
    @ApiModelProperty(value = "来款日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate receiptPaymentDate;
    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    @ApiModelProperty(value = "创建用户")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty(value = "修改用户")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty(value = "租户ID")
    @TableField(fill = FieldFill.INSERT)
    private Long tenantId;
}
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 é’ˆå¯¹è¡¨ã€due_payable(应付款表)】的数据库操作Mapper
* @createDate 2025-08-26 16:12:56
* @Entity generator.domain.DuePayable
*/
public interface DuePayableMapper extends BaseMapper<DuePayable> {
}
main-business/src/main/java/com/ruoyi/business/mapper/ReceiptPaymentMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.ruoyi.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.business.dto.ReceiptPaymentDto;
import com.ruoyi.business.dto.SalesRecordDto;
import com.ruoyi.business.entity.ReceiptPayment;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
public interface ReceiptPaymentMapper extends BaseMapper<ReceiptPayment> {
    /**
     * æŸ¥è¯¢å·²ç»ç»‘定发票的开票台账
     * @param page
     * @param receiptPaymentDto
     * @return
     */
    IPage<ReceiptPaymentDto> bindInvoiceNoRegPage(Page page, @Param("receiptPaymentDto") ReceiptPaymentDto receiptPaymentDto);
    /**
     * å¼€ç¥¨å°è´¦è¯¦æƒ…
     * @param id
     * @return
     */
    SalesRecordDto invoiceInfo(Integer id);
    /**
     * æŸ¥è¯¢å›žæ¬¾è®°å½•不分页
     */
    List<ReceiptPaymentDto> receiptPaymentHistoryListNoPage( @Param("params") ReceiptPaymentDto receiptPaymentDto);
}
main-business/src/main/java/com/ruoyi/business/other/service/impl/TempFileServiceImpl.java
@@ -38,10 +38,10 @@
    @Autowired
    private CommonFileMapper commonFileMapper;
    @Value("${file.upload-dir}")
//    @Value("${file.upload-dir}")
    private String uploadDir;
    @Value("${file.temp-dir}")
//    @Value("${file.temp-dir}")
    private String tempDir;
    // ä¸Šä¼ åˆ°ä¸´æ—¶ç›®å½•
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 é’ˆå¯¹è¡¨ã€due_payable(应付款表)】的数据库操作Service
* @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);
}
main-business/src/main/java/com/ruoyi/business/service/ReceiptPaymentService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
package com.ruoyi.business.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.business.dto.ReceiptPaymentDto;
import com.ruoyi.business.dto.SalesRecordDto;
import com.ruoyi.business.entity.ReceiptPayment;
import jakarta.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
public interface ReceiptPaymentService {
    /**
     * å›žæ¬¾ç™»è®°æ–°å¢ž
     * @param receiptPayment
     * @return
     */
    int receiptPaymentSaveOrUpdate(ReceiptPayment receiptPayment);
    /**
     * å›žæ¬¾ç™»è®°ä¿®æ”¹
     * @param receiptPayment
     * @return
     */
    int receiptPaymentUpdate(ReceiptPayment receiptPayment);
    /**
     * å›žæ¬¾ç™»è®°åˆ é™¤
     * @param ids
     * @return
     */
    int receiptPaymentDel(List<Integer> ids);
    /**
     * å¼€ç¥¨å°è´¦è¯¦æƒ…
     * @param id
     * @return
     */
    SalesRecordDto invoiceInfo(Integer id);
    /**
     * æŸ¥è¯¢å›žæ¬¾è®°å½•分页
     */
    IPage<ReceiptPaymentDto> receiptPaymentHistoryListPage(Page page, ReceiptPaymentDto receiptPaymentDto);
    /**
     * æŸ¥è¯¢å›žæ¬¾è®°å½•不分页
     */
    List<ReceiptPaymentDto> receiptPaymentHistoryListNoPage(ReceiptPaymentDto receiptPaymentDto);
}
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 é’ˆå¯¹è¡¨ã€due_payable(应付款表)】的数据库操作Service实现
 * @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);
        /**
         * æŸ¥è¯¢å‡ºé™„ä»¶id ç”±äºŽåŽç»­è¯¦ç»†
         */
        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();
                            }
                        }
                ));
        /**
         * æ ¹æ®ä¸Šé¢çš„ids æŸ¥è¯¢å‡ºå…·ä½“信息
         */
        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;
    }
}
main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java
@@ -49,6 +49,8 @@
    private final PendingInventoryMapper pendingInventoryMapper;
    private final ProductionSchedulingMapper productionSchedulingMapper;
    @Override
    public IPage<ProductionMasterDto> selectPMList(Page page, ProductionMasterDto productionMasterDto) {
        // 1. æž„建主表查询条件
@@ -366,6 +368,14 @@
                    .collect(Collectors.toList());
            productionInventoryMapper.deleteBatchIds(inventoryIds);
        }
        List<Production> productions = productionMapper.selectList(new LambdaQueryWrapper<Production>()
                .in(Production::getProductionMasterId, idList));
        // åˆ é™¤ç”Ÿäº§æŠ¥å·¥è®°å½•
        productionSchedulingMapper.delete(
                new LambdaQueryWrapper<ProductionScheduling>()
                        .in(ProductionScheduling::getProductionId, productions.stream().map(Production::getId).collect(Collectors.toList()))
        );
        // åˆ é™¤ç”Ÿäº§æ˜Žç»†
        productionMapper.delete(
@@ -373,6 +383,7 @@
                        .in(Production::getProductionMasterId, idList)
        );
        // 5. åˆ é™¤ä¸»è®°å½•
        return productionMasterMapper.deleteBatchIds(idList);
    }
main-business/src/main/java/com/ruoyi/business/service/impl/ProductionSchedulingServiceImpl.java
@@ -53,13 +53,14 @@
        BigDecimal reduce = productionScheduling.stream()
                .map(ProductionScheduling::getSchedulingNum)
                .reduce(BigDecimal.ZERO, BigDecimal::add);
        if(reduce.compareTo(productionScheduling.get(0).getProductionQuantity()) < 0){
        if(reduce.compareTo(productionScheduling.get(0).getProductionQuantity()) > 0){
            return false;
        }
        Production production = productionMapper.selectById(productionScheduling.get(0).getProductionId());
        if(production == null){
            throw new RuntimeException("生产订单为空");
        }
        production.setPendingQuantity(production.getPendingQuantity().add(reduce));
        production.setStatus(2);
        if(reduce.compareTo(productionScheduling.get(0).getProductionQuantity()) == 0){
            production.setStatus(3);
main-business/src/main/java/com/ruoyi/business/service/impl/ProductionServiceImpl.java
@@ -34,6 +34,9 @@
    @Override
    public IPage<Production> selectProductionList(Page page, ProductionDto productionDto) {
        LambdaQueryWrapper<Production> queryWrapper = new LambdaQueryWrapper<>();
        if(productionDto != null && productionDto.getSearchAll() != null){
            queryWrapper.eq(Production::getStatus, productionDto.getSearchAll());
        }
        queryWrapper.orderByDesc(Production::getCreateTime);
        return productionMapper.selectPage(page, queryWrapper);
    }
main-business/src/main/java/com/ruoyi/business/service/impl/ReceiptPaymentServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
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.business.dto.ReceiptPaymentDto;
import com.ruoyi.business.dto.SalesRecordDto;
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.poi.ExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.YearMonth;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class ReceiptPaymentServiceImpl extends ServiceImpl<ReceiptPaymentMapper, ReceiptPayment> implements ReceiptPaymentService {
    @Autowired
    private ReceiptPaymentMapper receiptPaymentMapper;
    @Autowired
    private SalesRecordMapper salesRecordMapper;
    /**
     * å›žæ¬¾ç™»è®°æ–°å¢ž
     * @param receiptPayment
     * @return
     */
    @Override
    public int receiptPaymentSaveOrUpdate(ReceiptPayment receiptPayment) {
        SalesRecord salesRecord = salesRecordMapper.selectById(receiptPayment.getSalesRecordId());
        if (ObjectUtils.isEmpty(salesRecord)){
            throw new RuntimeException("销售记录不存在");
        }
        return receiptPaymentMapper.insert(receiptPayment);
    }
    /**
     * å›žæ¬¾ç™»è®°ä¿®æ”¹
     * @param receiptPayment
     * @return
     */
    @Override
    public int receiptPaymentUpdate(ReceiptPayment receiptPayment) {
        return receiptPaymentMapper.updateById(receiptPayment);
    }
    /**
     * å›žæ¬¾ç™»è®°åˆ é™¤
     * @param ids
     * @return
     */
    @Override
    public int receiptPaymentDel(List<Integer> ids) {
        LambdaQueryWrapper<ReceiptPayment> delQuery = new LambdaQueryWrapper<>();
        delQuery.in(ReceiptPayment::getId, ids);
        return receiptPaymentMapper.delete(delQuery);
    }
    @Override
    public SalesRecordDto invoiceInfo(Integer id) {
        return receiptPaymentMapper.invoiceInfo(id);
    }
    @Override
    public IPage<ReceiptPaymentDto> receiptPaymentHistoryListPage(Page page, ReceiptPaymentDto receiptPaymentDto) {
        return receiptPaymentMapper.bindInvoiceNoRegPage(page, receiptPaymentDto);
    }
    @Override
    public List<ReceiptPaymentDto> receiptPaymentHistoryListNoPage(ReceiptPaymentDto receiptPaymentDto) {
        return receiptPaymentMapper.receiptPaymentHistoryListNoPage(receiptPaymentDto);
    }
}
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;
    }
}
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;
}
main-business/src/main/resources/db/migration/postgresql/V20250604101800__create_table_production.sql
@@ -5,6 +5,7 @@
    production_master_id    BIGINT         NOT NULL DEFAULT 0, -- ç”Ÿäº§ä¸»è¡¨ID
    coal_id                 BIGINT         NOT NULL DEFAULT 0, -- ç…¤ç§ID
    production_quantity     INT            NOT NULL,           -- ç”Ÿäº§æ•°é‡
    pending_quantity     INT            NOT NULL DEFAULT 0,           -- å¾…排产数量
    labor_cost              DECIMAL(10, 2) NOT NULL,           -- äººå·¥æˆæœ¬
    energy_consumption_cost DECIMAL(10, 2) NOT NULL,           -- èƒ½è€—成本
    equipment_depreciation  DECIMAL(10, 2) NOT NULL,           -- è®¾å¤‡æŠ˜æ—§
@@ -30,6 +31,7 @@
COMMENT ON COLUMN production.id IS '主键ID';
COMMENT ON COLUMN production.coal_id IS '煤种ID';
COMMENT ON COLUMN production.production_quantity IS '生产数量';
COMMENT ON COLUMN production.pending_quantity IS '待排产数量';
COMMENT ON COLUMN production.labor_cost IS '人工成本';
COMMENT ON COLUMN production.energy_consumption_cost IS '能耗成本';
COMMENT ON COLUMN production.equipment_depreciation IS '设备折旧';
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>
main-business/src/main/resources/mapper/ProductionSchedulingMapper.xml
@@ -4,5 +4,8 @@
    <select id="listPage" resultType="com.ruoyi.business.entity.ProductionScheduling">
        select * from production_scheduling where deleted = 0
        <if test="req.searchAll != null and req.searchAll != ''">
            and status = #{req.searchAll}
        </if>
    </select>
</mapper>
main-business/src/main/resources/mapper/ReceiptPaymentMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
<?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.ReceiptPaymentMapper">
    <select id="invoiceInfo" resultType="com.ruoyi.business.dto.SalesRecordDto">
        SELECT
            T1.*,
            T3.coal
        FROM
            sales_record T1
        LEFT JOIN customer T2 ON T1.customer_id = T2.id
        LEFT JOIN coal_info T3 ON T1.coal_id = T3.id
        WHERE T1.id = #{id}
    </select>
    <select id="bindInvoiceNoRegPage" resultType="com.ruoyi.business.dto.ReceiptPaymentDto">
        SELECT
            T1.*,
            T2.customer,
            T3.coal
        FROM
            receipt_payment T1
        LEFT JOIN sales_record T2 ON T1.sales_record_id = T2.id
        LEFT JOIN coal_info T3 ON T2.coal_id = T3.id
        where 1=1
        <if test="receiptPaymentDto.customer != null and receiptPaymentDto.customer != ''">
            and T2.customer like concat('%',#{receiptPaymentDto.customer},'%')
        </if>
        <if test="receiptPaymentDto.coal != null and receiptPaymentDto.coal != ''">
            and T3.coal like concat('%',#{receiptPaymentDto.coal},'%')
        </if>
        <if test="receiptPaymentDto.receiptPaymentDateStart != null and receiptPaymentDto.receiptPaymentDateEnd != ''">
            and T1.receipt_payment_date between to_timestamp(#{receiptPaymentDto.receiptPaymentDateStart}, 'yyyy-MM-dd HH24:mi:ss') AND
            to_timestamp(#{receiptPaymentDto.receiptPaymentDateEnd}, 'yyyy-MM-dd HH24:mi:ss')
        </if>
    </select>
    <select id="receiptPaymentHistoryListNoPage" resultType="com.ruoyi.business.dto.ReceiptPaymentDto">
        SELECT
            T1.*,
            T2.customer,
            T3.coal
        FROM
            receipt_payment T1
                LEFT JOIN sales_record T2 ON T1.sales_record_id = T2.id
                LEFT JOIN coal_info T3 ON T2.coal_id = T3.id
        where 1=1
        <if test="receiptPaymentDto.customer != null and receiptPaymentDto.customer != ''">
            and T2.customer like concat('%',#{receiptPaymentDto.customer},'%')
        </if>
        <if test="receiptPaymentDto.coal != null and receiptPaymentDto.coal != ''">
            and T3.coal like concat('%',#{receiptPaymentDto.coal},'%')
        </if>
        <if test="receiptPaymentDto.receiptPaymentDateStart != null and receiptPaymentDto.receiptPaymentDateEnd != ''">
            and T1.receipt_payment_date between to_timestamp(#{receiptPaymentDto.receiptPaymentDateStart}, 'yyyy-MM-dd HH24:mi:ss') AND
            to_timestamp(#{receiptPaymentDto.receiptPaymentDateEnd}, 'yyyy-MM-dd HH24:mi:ss')
        </if>
    </select>
</mapper>
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")
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;
    }
}
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);
}
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();
    }
}
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;
}
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();
    /**
     * æ ¹æ®å­—典类型查询字典数据
     * 
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();
}
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();
    }
}
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>