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