From 8ed9be0eaff405580e87715bbd5b018b8b067eab Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 24 四月 2026 10:13:05 +0800
Subject: [PATCH] feat(approve): 添加知识库附件管理功能并修复订单编号生成问题

---
 src/main/java/com/ruoyi/approve/controller/KnowledgeBaseFileController.java    |   70 ++++++++++++++
 src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java    |    2 
 src/main/java/com/ruoyi/approve/service/impl/KnowledgeBaseFileServiceImpl.java |   30 ++++++
 src/main/java/com/ruoyi/approve/mapper/KnowledgeBaseFileMapper.java            |   22 ++++
 src/main/java/com/ruoyi/approve/pojo/KnowledgeBaseFile.java                    |   55 +++++++++++
 src/main/java/com/ruoyi/approve/service/KnowledgeBaseFileService.java          |   19 +++
 src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java   |   47 ++++----
 src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java        |    5 -
 src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml               |   40 ++++----
 9 files changed, 241 insertions(+), 49 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java b/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java
index d314dc9..73dab4f 100644
--- a/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java
+++ b/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java
@@ -2,12 +2,7 @@
 
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.approve.mapper.KnowledgeBaseMapper;
-import com.ruoyi.approve.bean.vo.KnowledgeBaseVo;
 import com.ruoyi.approve.pojo.KnowledgeBase;
-import com.ruoyi.approve.pojo.RpaProcessAutomation;
-import com.ruoyi.approve.pojo.KnowledgeBaseFile;
-import com.ruoyi.approve.service.KnowledgeBaseFileService;
 import com.ruoyi.approve.service.KnowledgeBaseService;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.domain.AjaxResult;
diff --git a/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseFileController.java b/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseFileController.java
new file mode 100644
index 0000000..9e54da8
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseFileController.java
@@ -0,0 +1,70 @@
+package com.ruoyi.approve.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.approve.pojo.KnowledgeBaseFile;
+import com.ruoyi.approve.service.KnowledgeBaseFileService;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ * 鐭ヨ瘑搴�--闄勪欢 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-07 01:45:45
+ */
+@RestController
+@RequestMapping("/knowledgeBaseFile")
+public class KnowledgeBaseFileController {
+
+
+    @Resource
+    private KnowledgeBaseFileService knowledgeBaseFileService;
+
+
+    /**
+     * 鏂板
+     * @param accountFile
+     * @return
+     */
+    @PostMapping("/add")
+    @ApiOperation("鏂板")
+    public AjaxResult add(@RequestBody KnowledgeBaseFile accountFile) {
+        return AjaxResult.success(knowledgeBaseFileService.save(accountFile));
+    }
+
+    /**
+     * 鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @DeleteMapping("/del")
+    @ApiOperation("鍒犻櫎")
+    public AjaxResult delAccountFile(@RequestBody List<Integer> ids) {
+        if(CollectionUtils.isEmpty(ids)){
+            return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+        }
+        //鍒犻櫎妫�楠岄檮浠�
+        return AjaxResult.success(knowledgeBaseFileService.removeBatchByIds(ids));
+    }
+
+    /**
+     *鍒嗛〉鏌ヨ
+     * @param page
+     * @param accountFile
+     * @return
+     */
+    @GetMapping("/listPage")
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    public AjaxResult accountFileListPage(Page page, KnowledgeBaseFile accountFile) {
+        return AjaxResult.success(knowledgeBaseFileService.knowledgeBaseFileListPage(page, accountFile));
+    }
+
+
+}
diff --git a/src/main/java/com/ruoyi/approve/mapper/KnowledgeBaseFileMapper.java b/src/main/java/com/ruoyi/approve/mapper/KnowledgeBaseFileMapper.java
new file mode 100644
index 0000000..f5c0706
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/mapper/KnowledgeBaseFileMapper.java
@@ -0,0 +1,22 @@
+package com.ruoyi.approve.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.approve.pojo.KnowledgeBaseFile;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 鐭ヨ瘑搴�--闄勪欢 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-07 01:45:45
+ */
+@Mapper
+public interface KnowledgeBaseFileMapper extends BaseMapper<KnowledgeBaseFile> {
+
+    IPage<KnowledgeBaseFile> knowledgeBaseFileListPage(Page page,@Param("accountFile") KnowledgeBaseFile accountFile);
+}
diff --git a/src/main/java/com/ruoyi/approve/pojo/KnowledgeBaseFile.java b/src/main/java/com/ruoyi/approve/pojo/KnowledgeBaseFile.java
new file mode 100644
index 0000000..e7d9cd6
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/pojo/KnowledgeBaseFile.java
@@ -0,0 +1,55 @@
+package com.ruoyi.approve.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.time.LocalDateTime;
+
+@Data
+public class KnowledgeBaseFile {
+
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "鏂囦欢鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "鏂囦欢璺緞")
+    private String url;
+
+    @ApiModelProperty(value = "鏂囦欢澶у皬")
+    private int fileSize;
+
+    @ApiModelProperty(value = "鐭ヨ瘑搴搃d")
+    @NotBlank(message = "鐭ヨ瘑搴搃d涓嶈兘涓虹┖!")
+    private Long knowledgeBaseId;
+
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "绉熸埛ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+}
diff --git a/src/main/java/com/ruoyi/approve/service/KnowledgeBaseFileService.java b/src/main/java/com/ruoyi/approve/service/KnowledgeBaseFileService.java
new file mode 100644
index 0000000..c74f330
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/service/KnowledgeBaseFileService.java
@@ -0,0 +1,19 @@
+package com.ruoyi.approve.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.approve.pojo.KnowledgeBaseFile;
+
+/**
+ * <p>
+ * 鐭ヨ瘑搴�--闄勪欢 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-07 01:45:45
+ */
+public interface KnowledgeBaseFileService extends IService<KnowledgeBaseFile> {
+
+    IPage<KnowledgeBaseFile> knowledgeBaseFileListPage(Page page, KnowledgeBaseFile accountFile);
+}
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index 63eb8ac..3432327 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -83,7 +83,7 @@
 //        String approveID = today + formattedCount;
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
         ApproveProcess approveProcess = new ApproveProcess();
-        String no = OrderUtils.countTodayByCreateTime(approveProcessMapper, "approve_id");
+        String no = OrderUtils.countTodayByCreateTime(approveProcessMapper, "","approve_id");
         approveProcess.setApproveId(no);
         approveProcess.setApproveUser(sysUser.getUserId());
         approveProcess.setApproveUserName(sysUser.getNickName());
diff --git a/src/main/java/com/ruoyi/approve/service/impl/KnowledgeBaseFileServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/KnowledgeBaseFileServiceImpl.java
new file mode 100644
index 0000000..868ca2d
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/service/impl/KnowledgeBaseFileServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.approve.service.impl;
+
+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.approve.mapper.KnowledgeBaseFileMapper;
+import com.ruoyi.approve.pojo.KnowledgeBaseFile;
+import com.ruoyi.approve.service.KnowledgeBaseFileService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鐭ヨ瘑搴�--闄勪欢 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-07 01:45:45
+ */
+@Service
+public class KnowledgeBaseFileServiceImpl extends ServiceImpl<KnowledgeBaseFileMapper, KnowledgeBaseFile> implements KnowledgeBaseFileService {
+
+    @Autowired
+    private KnowledgeBaseFileMapper knowledgeBaseFileMapper;
+
+    @Override
+    public IPage<KnowledgeBaseFile> knowledgeBaseFileListPage(Page page, KnowledgeBaseFile accountFile) {
+        return knowledgeBaseFileMapper.knowledgeBaseFileListPage(page,accountFile);
+    }
+}
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index ab53367..f481111 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -1,29 +1,23 @@
 package com.ruoyi.purchase.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.account.pojo.AccountExpense;
-import com.ruoyi.account.pojo.AccountIncome;
 import com.ruoyi.account.service.AccountExpenseService;
-import com.ruoyi.account.service.AccountIncomeService;
+import com.ruoyi.approve.bean.vo.ApproveProcessVO;
 import com.ruoyi.approve.pojo.ApproveProcess;
 import com.ruoyi.approve.service.impl.ApproveProcessServiceImpl;
-import com.ruoyi.approve.bean.vo.ApproveProcessVO;
 import com.ruoyi.basic.mapper.ProductMapper;
 import com.ruoyi.basic.mapper.ProductModelMapper;
 import com.ruoyi.basic.mapper.SupplierManageMapper;
-import com.ruoyi.basic.pojo.Customer;
 import com.ruoyi.basic.pojo.Product;
 import com.ruoyi.basic.pojo.ProductModel;
 import com.ruoyi.basic.pojo.SupplierManage;
 import com.ruoyi.common.enums.FileNameType;
 import com.ruoyi.common.exception.base.BaseException;
-import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -39,19 +33,25 @@
 import com.ruoyi.purchase.dto.PurchaseLedgerImportDto;
 import com.ruoyi.purchase.dto.PurchaseLedgerProductImportDto;
 import com.ruoyi.purchase.mapper.*;
-import com.ruoyi.purchase.pojo.*;
+import com.ruoyi.purchase.pojo.PaymentRegistration;
+import com.ruoyi.purchase.pojo.ProductRecord;
+import com.ruoyi.purchase.pojo.PurchaseLedger;
+import com.ruoyi.purchase.pojo.TicketRegistration;
 import com.ruoyi.purchase.service.IPurchaseLedgerService;
 import com.ruoyi.quality.mapper.*;
-import com.ruoyi.quality.pojo.*;
-import com.ruoyi.sales.dto.SalesLedgerImportDto;
-import com.ruoyi.sales.dto.SalesLedgerProductImportDto;
-import com.ruoyi.sales.mapper.*;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityInspectParam;
+import com.ruoyi.quality.pojo.QualityTestStandard;
+import com.ruoyi.quality.pojo.QualityTestStandardParam;
+import com.ruoyi.sales.mapper.CommonFileMapper;
+import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper;
+import com.ruoyi.sales.mapper.SalesLedgerMapper;
+import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
 import com.ruoyi.sales.pojo.CommonFile;
 import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
 import com.ruoyi.sales.pojo.SalesLedger;
 import com.ruoyi.sales.pojo.SalesLedgerProduct;
 import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
-import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FilenameUtils;
 import org.springframework.beans.BeanUtils;
@@ -173,16 +173,6 @@
     public int addOrEditPurchase(PurchaseLedgerDto purchaseLedgerDto) throws Exception {
         PurchaseLedger purchaseLedger = new PurchaseLedger();
         SalesLedger salesLedger = salesLedgerMapper.selectById(purchaseLedgerDto.getSalesLedgerId());
-        //褰曞叆浜�
-        SysUser sysUser = userMapper.selectUserById(purchaseLedgerDto.getRecorderId());
-        if (ObjectUtils.isNotEmpty(sysUser)) {
-            purchaseLedger.setRecorderName(sysUser.getNickName());
-            purchaseLedger.setPhoneNumber(sysUser.getPhonenumber());
-        }else {
-            purchaseLedger.setRecorderName(SecurityUtils.getLoginUser().getNickName());
-            SysUser sysUser1 = userMapper.selectUserById(SecurityUtils.getUserId());
-            purchaseLedger.setPhoneNumber(sysUser1.getPhonenumber());
-        }
 
         SupplierManage supplierManage = supplierManageMapper.selectById(purchaseLedgerDto.getSupplierId());
 
@@ -197,6 +187,17 @@
         purchaseLedger.setSalesLedgerId(ObjectUtils.isNotEmpty(salesLedger) ? salesLedger.getId() : -1);
         purchaseLedger.setSupplierName(supplierManage.getSupplierName());
         purchaseLedger.setRecorderId(purchaseLedgerDto.getRecorderId());
+        //褰曞叆浜�
+        SysUser sysUser = userMapper.selectUserById(purchaseLedgerDto.getRecorderId());
+        if (ObjectUtils.isNotEmpty(sysUser)) {
+            purchaseLedger.setRecorderName(sysUser.getNickName());
+            purchaseLedger.setPhoneNumber(sysUser.getPhonenumber());
+        }else {
+            purchaseLedger.setRecorderName(SecurityUtils.getLoginUser().getNickName());
+            SysUser sysUser1 = userMapper.selectUserById(SecurityUtils.getUserId());
+            purchaseLedger.setPhoneNumber(sysUser1.getPhonenumber());
+        }
+
 
         purchaseLedger.setApprovalStatus(1);
         // 3. 鏂板鎴栨洿鏂颁富琛�
diff --git a/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml b/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
index 7490a65..247d7bb 100644
--- a/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
+++ b/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
@@ -185,27 +185,27 @@
     </select>
     <select id="supplierNameListPage" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
         SELECT
-    T1.supplier_id ,
-    T1.supplier_name,
-    SUM(T1.contract_amount) AS invoiceAmount,
-    IFNULL(SUM(T2.current_payment_amount), 0) AS paymentAmount,
-    IFNULL(SUM(T1.contract_amount) - IFNULL(SUM(T2.current_payment_amount), 0), 0) AS payableAmount
-FROM (
-    SELECT id,supplier_id, supplier_name, SUM(contract_amount) contract_amount
-    FROM purchase_ledger
-    GROUP BY supplier_id, supplier_name
-) T1
-LEFT JOIN (
-    SELECT purchase_ledger_id, SUM(current_payment_amount) current_payment_amount
-    FROM payment_registration
-    GROUP BY purchase_ledger_id
-) T2 ON T1.id  = T2.purchase_ledger_id
-<where>
-     <if test="req.supplierName != null and req.supplierName != '' ">
+        T1.supplier_id ,
+        T1.supplier_name,
+        SUM(T1.contract_amount) AS invoiceAmount,
+        IFNULL(SUM(T2.current_payment_amount), 0) AS paymentAmount,
+        IFNULL(SUM(T1.contract_amount) - IFNULL(SUM(T2.current_payment_amount), 0), 0) AS payableAmount
+        FROM (
+        SELECT id,supplier_id, supplier_name, SUM(contract_amount) contract_amount
+        FROM purchase_ledger
+        GROUP BY supplier_id, supplier_name,id
+        ) T1
+        LEFT JOIN (
+        SELECT purchase_ledger_id, SUM(current_payment_amount) current_payment_amount
+        FROM payment_registration
+        GROUP BY purchase_ledger_id
+        ) T2 ON T1.id = T2.purchase_ledger_id
+        <where>
+            <if test="req.supplierName != null and req.supplierName != '' ">
                 T1.supplier_name LIKE CONCAT ('%',#{req.supplierName},'%')
-     </if>
-</where>
-GROUP BY T1.supplier_id, T1.supplier_name
+            </if>
+        </where>
+        GROUP BY T1.supplier_id, T1.supplier_name
     </select>
 
     <select id="supplierNameListPageDetails" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">

--
Gitblit v1.9.3