From f8e79ecd973b35e98bc189328c7efa3f88f10f02 Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期六, 28 三月 2026 10:11:55 +0800
Subject: [PATCH] Merge branch 'hxsj' of http://114.132.189.42:9002/r/product-inventory-management-after into hxsj

---
 src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java                        |   10 ++
 src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java                     |   15 ++-
 src/main/resources/mapper/sales/SalesLedgerMapper.xml                        |    9 +
 .gitignore                                                                   |    2 
 src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java         |    2 
 src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java                  |    9 +
 src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java |   61 ++++++++++++
 src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml                  |    6 
 src/main/java/com/ruoyi/sales/pojo/SalesLedger.java                          |    7 +
 src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java               |    2 
 src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java     |   39 ++++++-
 src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java          |    8 +
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java       |   72 ++++++++++++++
 src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java    |    8 +
 src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java                    |    4 
 15 files changed, 231 insertions(+), 23 deletions(-)

diff --git a/.gitignore b/.gitignore
index b60b03f..9ff91a5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,6 +24,8 @@
 *.iws
 *.iml
 *.ipr
+### vscode ###
+.vscode
 
 ### JRebel ###
 rebel.xml
diff --git a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
index 8c05acc..7e04634 100644
--- a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
+++ b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
@@ -23,7 +23,7 @@
 @ApiModel
 public class ApproveProcess{
     /**
-     * 
+     *
      */
     @TableId(type = IdType.AUTO)
     private Long id;
@@ -125,9 +125,14 @@
 //    @TableField(fill = FieldFill.INSERT)
     private Long tenantId;
 
-    /**
-     * 瀹℃壒绫诲瀷
-     */
+    /** * 瀹℃壒绫诲瀷
+     *     0: "鍗忓悓瀹℃壒绠$悊琛�",
+     *     1: "鍏嚭绠$悊瀹℃壒琛�",
+     *     2: "璇峰亣绠$悊瀹℃壒琛�",
+     *     3: "鍑哄樊绠$悊瀹℃壒琛�",
+     *     4: "鎶ラ攢绠$悊瀹℃壒琛�",
+     *     5: "閲囪喘鐢宠瀹℃壒琛�",
+     *     6: "閿�鍞鍗曞鎵硅〃", */
     private Integer approveType;
 
     /**
@@ -151,4 +156,4 @@
     private static final long serialVersionUID = 1L;
 
 
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
index f5919de..d40a7fb 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.approve.mapper.ApproveNodeMapper;
 import com.ruoyi.approve.mapper.ApproveProcessMapper;
@@ -15,8 +16,12 @@
 import com.ruoyi.other.service.impl.TempFileServiceImpl;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysUserMapper;
+import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
+import com.ruoyi.purchase.pojo.PurchaseLedger;
 import com.ruoyi.sales.mapper.CommonFileMapper;
+import com.ruoyi.sales.mapper.SalesLedgerMapper;
 import com.ruoyi.sales.pojo.CommonFile;
+import com.ruoyi.sales.pojo.SalesLedger;
 import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +44,12 @@
     private ApproveProcessMapper approveProcessMapper;
     @Autowired
     private SysUserMapper sysUserMapper;
+
+    @Autowired
+    private SalesLedgerMapper salesLedgerMapper;
+
+    @Autowired
+    private PurchaseLedgerMapper purchaseLedgerMapper;
 
     @Autowired
     private TempFileServiceImpl tempFileService;
@@ -145,16 +156,26 @@
         }
         approveProcessMapper.updateById(approveProcess);
 
-        DeviceRepair deviceRepair = deviceRepairMapper.selectById(approveProcess.getDeviceRepairId());
-        if(deviceRepair == null) throw new RuntimeException("璁惧鎶ヤ慨涓嶅瓨鍦�");
-        if(approveProcess.getApproveStatus().equals(2)){
-            // 鍚屾剰
-            deviceRepair.setStatus(1);
-        }else if(approveProcess.getApproveStatus().equals(3)){
-            // 鎷掔粷
-            deviceRepair.setStatus(2);
+        //濡傛灉鏄�6閿�鍞鎵�,瀵瑰簲閿�鍞叧鑱旂殑琛ㄩ渶瑕佹洿鏂�
+        if (approveProcess.getApproveType()==6){
+            List<SalesLedger> salesLedgers = salesLedgerMapper.selectList(Wrappers.
+                    <SalesLedger>lambdaQuery().eq(SalesLedger::getSalesContractNo, approveProcess.getApproveReason()));
+            if (!CollectionUtils.isEmpty(salesLedgers)){
+                SalesLedger salesLedger = salesLedgers.get(0);
+                salesLedger.setApprovalStatus(status);
+                salesLedgerMapper.updateById(salesLedger);
+            }
         }
-        deviceRepairMapper.updateById(deviceRepair);
+        //濡傛灉鏄�5閲囪喘瀹℃壒,瀵瑰簲閲囪喘鍏宠仈鐨勮〃闇�瑕佹洿鏂�
+        if (approveProcess.getApproveType()==5){
+            List<PurchaseLedger> purchaseLedgers = purchaseLedgerMapper.selectList(Wrappers.<PurchaseLedger>lambdaQuery().eq(PurchaseLedger::getPurchaseContractNumber, approveProcess.getApproveReason()));
+            if (!CollectionUtils.isEmpty(purchaseLedgers)){
+                PurchaseLedger purchaseLedger = purchaseLedgers.get(0);
+                purchaseLedger.setApprovalStatus(status);
+                purchaseLedgerMapper.updateById(purchaseLedger);
+            }
+        }
+
         // 缁戝畾闄勪欢
         if(!CollectionUtils.isEmpty(approveNode.getTempFileIds()) && approveNode.getApproveNodeStatus() == 1){
             tempFileService.migrateTempFilesToFormal(approveNode.getId(), approveNode.getTempFileIds(), FileNameType.ApproveNode.getValue());
diff --git a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
index 4dfe300..afb22da 100644
--- a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
@@ -200,4 +200,12 @@
     public AjaxResult createPurchaseNo() {
         return AjaxResult.success("鐢熸垚鎴愬姛",purchaseLedgerService.getPurchaseNo());
     }
+
+    /**
+     * 鏍规嵁閲囪喘鍚堝悓鍙锋煡璇㈣鎯�
+     */
+    @GetMapping("/getPurchaseByCode")
+    public AjaxResult getPurchaseByCode(PurchaseLedgerDto purchaseLedgerDto) {
+        return AjaxResult.success(purchaseLedgerService.getPurchaseByCode(purchaseLedgerDto));
+    }
 }
diff --git a/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java b/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
index 4808080..be33613 100644
--- a/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
@@ -185,10 +185,15 @@
 
     @ApiModelProperty(value = "浠樻鏂瑰紡")
     private String paymentMethod;
-    @ApiModelProperty("瀹℃壒鐘舵��")
-    private Integer approvalStatus;
+
     @ApiModelProperty(value = "妯℃澘鍚嶇О")
     private String templateName;
     @ApiModelProperty(value = "瀹℃壒浜篿d")
     private Integer approverId;
+
+    @ApiModelProperty(value = "0-寰呭鏍革紝1-瀹℃壒涓紝2-瀹℃壒閫氳繃锛�3-瀹℃壒涓嶉�氳繃锛�4-宸查噸鏂版彁浜�")//榛樿鏄�0
+    private Integer approvalStatus;
+
+    // 瀹℃壒浜�
+    private String approveUserIds;
 }
diff --git a/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java b/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
index 838976d..049ae43 100644
--- a/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
+++ b/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
@@ -150,7 +150,9 @@
 
     @ApiModelProperty(value = "浠樻鏂瑰紡")
     private String paymentMethod;
-    @ApiModelProperty("瀹℃壒鐘舵��")
+
+    @ApiModelProperty(value = "0-寰呭鏍革紝1-瀹℃壒涓紝2-瀹℃壒閫氳繃锛�3-瀹℃壒涓嶉�氳繃锛�4-宸查噸鏂版彁浜�")
+    //榛樿鏄�0
     private Integer approvalStatus;
 
     @ApiModelProperty(value = "妯℃澘鍚嶇О")
diff --git a/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java b/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
index dfcbfaf..b62672d 100644
--- a/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
+++ b/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
@@ -41,4 +41,6 @@
     String getPurchaseNo();
 
     int addPurchaseTemplate(PurchaseLedgerDto purchaseLedgerDto);
+
+    PurchaseLedgerDto getPurchaseByCode(PurchaseLedgerDto purchaseLedgerDto);
 }
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 6999852..c44e516 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -10,6 +10,9 @@
 import com.ruoyi.account.pojo.AccountIncome;
 import com.ruoyi.account.service.AccountExpenseService;
 import com.ruoyi.account.service.AccountIncomeService;
+import com.ruoyi.approve.pojo.ApproveProcess;
+import com.ruoyi.approve.service.IApproveProcessService;
+import com.ruoyi.approve.vo.ApproveProcessVO;
 import com.ruoyi.basic.mapper.ProductMapper;
 import com.ruoyi.basic.mapper.ProductModelMapper;
 import com.ruoyi.basic.mapper.SupplierManageMapper;
@@ -74,6 +77,7 @@
 public class PurchaseLedgerServiceImpl extends ServiceImpl<PurchaseLedgerMapper, PurchaseLedger> implements IPurchaseLedgerService {
     private final AccountExpenseService accountExpenseService;
     private final PurchaseLedgerMapper purchaseLedgerMapper;
+    private final IApproveProcessService approveProcessService;
 
     private final SalesLedgerMapper salesLedgerMapper;
     private final SalesLedgerProductMapper salesLedgerProductMapper;
@@ -211,6 +215,26 @@
         // 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
         if (purchaseLedgerDto.getTempFileIds() != null && !purchaseLedgerDto.getTempFileIds().isEmpty()) {
             migrateTempFilesToFormal(purchaseLedger.getId(), purchaseLedgerDto.getTempFileIds());
+        }
+
+        //6.閲囪喘闇�瑕佸鎵�
+        //鏂板瀹℃壒鏁版嵁
+        ApproveProcessVO approveProcessVO = new ApproveProcessVO();
+        approveProcessVO.setApproveDeptId(purchaseLedger.getTenantId());
+        //瀹℃壒鐞嗙敱鏄噰璐悎鍚屽彿鐢ㄨ繖涓潵鍏宠仈
+        approveProcessVO.setApproveReason(purchaseLedger.getPurchaseContractNumber());
+        DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        approveProcessVO.setApproveTime(LocalDate.now().format(dateFormat));
+        //5鏄噰璐敵璇�
+        approveProcessVO.setApproveType(5);
+        //褰曞叆浜�=鐢宠浜�
+        approveProcessVO.setApproveUser(purchaseLedger.getRecorderId());
+        //瀹℃壒浜�
+        approveProcessVO.setApproveUserIds(purchaseLedgerDto.getApproveUserIds());
+        try {
+            approveProcessService.addApprove(approveProcessVO);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
 
         return 1;
@@ -392,6 +416,23 @@
         LambdaQueryWrapper<ProductRecord> productRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
         productRecordLambdaQueryWrapper.in(ProductRecord::getPurchaseLedgerId,ids);
         productRecordMapper.delete(productRecordLambdaQueryWrapper);
+        // 鍒犻櫎鍏宠仈鐨勫鎵硅〃
+        List<String> strings = purchaseLedgerMapper.selectBatchIds(Arrays.asList(ids)).stream()
+                .map(PurchaseLedger::getPurchaseContractNumber)
+                .distinct()
+                .collect(Collectors.toList());
+        List<ApproveProcess> list = approveProcessService.list(Wrappers.<ApproveProcess>lambdaQuery().eq(ApproveProcess::getApproveType, 5)                                         .in(ApproveProcess::getApproveReason, strings));
+        if (CollectionUtils.isNotEmpty(list)){
+            List<String> approveIds = list.stream()
+                    .map(ApproveProcess::getApproveId)
+                    .distinct()
+                    .collect(Collectors.toList());
+            Long[] ides = approveIds.stream()
+                    .filter(s -> s != null && !s.isEmpty())
+                    .map(Long::valueOf)
+                    .toArray(Long[]::new);
+            approveProcessService.delApprove(ides);
+        }
         // 鎵归噺鍒犻櫎閲囪喘鍙拌处
         return purchaseLedgerMapper.deleteBatchIds(Arrays.asList(ids));
     }
@@ -475,6 +516,26 @@
     }
 
     @Override
+    public PurchaseLedgerDto getPurchaseByCode(PurchaseLedgerDto purchaseLedgerDto) {
+        // 1. 鏌ヨ涓昏〃
+        PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectOne(new LambdaQueryWrapper<PurchaseLedger>()            .eq(PurchaseLedger::getPurchaseContractNumber, purchaseLedgerDto.getPurchaseContractNumber())            .last("LIMIT 1"));
+        if (purchaseLedger == null) {
+            throw new BaseException("閲囪喘鍙拌处涓嶅瓨鍦�");
+        }
+        // 2. 鏌ヨ瀛愯〃
+        LambdaQueryWrapper<SalesLedgerProduct> productWrapper = new LambdaQueryWrapper<>();
+        productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, purchaseLedger.getId())            .eq(SalesLedgerProduct::getType, 2);
+        List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper);
+        // 4. 杞崲 DTO
+        PurchaseLedgerDto resultDto = new PurchaseLedgerDto();    BeanUtils.copyProperties(purchaseLedger, resultDto);
+        if (!products.isEmpty()) {
+            resultDto.setHasChildren(true);
+            resultDto.setProductData(products);
+        }
+        return resultDto;
+    }
+
+    @Override
     public List getPurchasesNo() {
         LambdaQueryWrapper<PurchaseLedger> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.select(PurchaseLedger::getId, PurchaseLedger::getPurchaseContractNumber, PurchaseLedger::getSupplierId);
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index 061f3ce..4c09f45 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -312,4 +312,12 @@
         }
         return AjaxResult.error("璇ヤ骇鍝佸簱瀛樹笉瓒�");
     }
+
+    /**
+     * 鏍规嵁閲囪喘鍚堝悓鍙锋煡璇㈣鎯�
+     */
+    @GetMapping("/getSalesByCode")
+    public AjaxResult getSalesByCode(SalesLedgerDto salesLedgerDto) {
+        return AjaxResult.success(salesLedgerService.getSalesByCode(salesLedgerDto));
+    }
 }
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
index 486ffcb..291a8c0 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
@@ -54,4 +54,14 @@
 
     @ApiModelProperty(value = "浠樻鏂瑰紡")
     private String paymentMethod;
+
+    @ApiModelProperty(value = "璁㈠崟鎸夌揣鎬ョ▼搴﹀垎绫�(鏅��/绱ф��)")
+    private String salesType;
+
+    @ApiModelProperty(value = "1-寰呭鏍革紝2-瀹℃壒涓紝3-瀹℃壒閫氳繃锛�4-瀹℃壒澶辫触")
+    //榛樿鏄�1
+    private Integer approvalStatus;
+
+    // 瀹℃壒浜�
+    private String approveUserIds;
 }
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
index f0b699d..dd63fed 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -129,5 +129,12 @@
     @TableField(exist = false)
     @ApiModelProperty(value = "鐢熶骇鐘舵��")
     private String productionStatus = "鏈紑濮�";
+
+    @ApiModelProperty(value = "璁㈠崟鎸夌揣鎬ョ▼搴﹀垎绫�(鏅��/绱ф��)")
+    private String salesType;
+
+    @ApiModelProperty(value = "0-寰呭鏍革紝1-瀹℃壒涓紝2-瀹℃壒閫氳繃锛�3-瀹℃壒涓嶉�氳繃锛�4-宸查噸鏂版彁浜�")
+    //榛樿鏄�0
+    private Integer approvalStatus;
 }
 
diff --git a/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java b/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
index b4cf320..7577390 100644
--- a/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
+++ b/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
@@ -34,5 +34,7 @@
 
     List<MonthlyAmountDto> getAmountHalfYear(Integer type);
 
+    SalesLedgerDto getSalesByCode(SalesLedgerDto salesLedgerDto);
+
     IPage<SalesLedger> selectSalesLedgerListPage(Page page, SalesLedgerDto salesLedgerDto);
 }
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 741e6e7..d5ece9b 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -11,6 +11,9 @@
 import com.ruoyi.account.pojo.AccountExpense;
 import com.ruoyi.account.pojo.AccountIncome;
 import com.ruoyi.account.service.AccountIncomeService;
+import com.ruoyi.approve.pojo.ApproveProcess;
+import com.ruoyi.approve.service.IApproveProcessService;
+import com.ruoyi.approve.vo.ApproveProcessVO;
 import com.ruoyi.basic.mapper.CustomerMapper;
 import com.ruoyi.basic.pojo.Customer;
 import com.ruoyi.common.enums.FileNameType;
@@ -82,6 +85,8 @@
     private final InvoiceLedgerMapper invoiceLedgerMapper;
 
     private final SalesLedgerSchedulingMapper salesLedgerSchedulingMapper;
+
+    private final IApproveProcessService approveProcessService;
 
     @Autowired
     private SysDeptMapper sysDeptMapper;
@@ -362,7 +367,27 @@
         LambdaQueryWrapper<SalesLedgerScheduling> in = new LambdaQueryWrapper<SalesLedgerScheduling>()
                 .in(SalesLedgerScheduling::getSalesLedgerId, idList);
         salesLedgerSchedulingMapper.delete(in);
-        // 2. 鍐嶅垹闄や富琛ㄦ暟鎹�
+        // 2. 鍒犻櫎鍏宠仈鐨勫鎵硅〃
+        List<String> strings = salesLedgerMapper.selectBatchIds(idList)
+                .stream()
+                .map(SalesLedger::getSalesContractNo)
+                .distinct()
+                .collect(Collectors.toList());
+        List<ApproveProcess> list = approveProcessService.list(Wrappers.<ApproveProcess>lambdaQuery()                                                             .eq(ApproveProcess::getApproveType, 6)                                                         .in(ApproveProcess::getApproveReason, strings));
+        if (CollectionUtils.isNotEmpty(list)){
+            List<String> approveIds = list
+                    .stream()
+                    .map(ApproveProcess::getApproveId)
+                    .distinct()
+                    .collect(Collectors.toList());
+            Long[] ides = approveIds
+                    .stream()
+                    .filter(s -> s != null && !s.isEmpty())
+                    .map(Long::valueOf)
+                    .toArray(Long[]::new);
+            approveProcessService.delApprove(ides);
+        }
+        // 3. 鍐嶅垹闄や富琛ㄦ暟鎹�
         return salesLedgerMapper.deleteBatchIds(idList);
     }
 
@@ -432,12 +457,57 @@
             if (salesLedgerDto.getTempFileIds() != null && !salesLedgerDto.getTempFileIds().isEmpty()) {
                 migrateTempFilesToFormal(salesLedger.getId(), salesLedgerDto.getTempFileIds());
             }
+            //6.閿�鍞鍗曟寜绱ф�ョ▼搴﹀垎绫伙紝濡傛櫘閫氳鍗曚互鍙婄揣鎬ヨ鍗曪紱鏅�氳鍗曢渶娴佽浆鑷充笟鍔″崟鎹繘琛屽鎵癸紝绱ф�ヨ鍗曟棤闇�瀹℃壒銆�
+            if (salesLedger.getSalesType().equals("鏅��")){
+                //鏂板瀹℃壒鏁版嵁approve_process
+                ApproveProcessVO approveProcessVO = new ApproveProcessVO();
+                approveProcessVO.setApproveDeptId(salesLedger.getTenantId());
+                approveProcessVO.setApproveReason(salesLedger.getSalesContractNo());
+                //瀹℃壒鐞嗙敱鏄攢鍞悎鍚屽彿鐢ㄨ繖涓潵鍏宠仈
+                DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                approveProcessVO.setApproveTime(LocalDate.now().format(dateFormat));
+                //6鏄攢鍞彴璐�
+                approveProcessVO.setApproveType(6);
+                //褰曞叆浜�=鐢宠浜�
+                approveProcessVO.setApproveUser(Long.parseLong(salesLedger.getEntryPerson()));
+                approveProcessVO.setApproveUserIds(salesLedgerDto.getApproveUserIds());//瀹℃壒浜�
+                try {
+                    approveProcessService.addApprove(approveProcessVO);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }else {
+                //绱ф�ラ粯璁ら�氳繃
+                salesLedger.setApprovalStatus(2);
+                salesLedgerMapper.updateById(salesLedger);
+            }
             return 1;
         } catch (IOException e) {
             throw new BaseException("鏂囦欢杩佺Щ澶辫触: " + e.getMessage());
         }
     }
 
+    @Override
+    public SalesLedgerDto getSalesByCode(SalesLedgerDto salesLedgerDto) {
+        // 1. 鏌ヨ涓昏〃
+        SalesLedger salesLedger = salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>()
+                .eq(SalesLedger::getSalesContractNo, salesLedgerDto.getSalesContractNo())            .last("LIMIT 1"));
+        if (salesLedger == null) {
+            throw new BaseException("閿�鍞彴璐︿笉瀛樺湪");
+        }
+        // 2. 鏌ヨ瀛愯〃
+        LambdaQueryWrapper<SalesLedgerProduct> productWrapper = new LambdaQueryWrapper<>();    productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedger.getId())            .eq(SalesLedgerProduct::getType, 1);
+        List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper);
+        // 4. 杞崲 DTO
+        SalesLedgerDto resultDto = new SalesLedgerDto();
+        BeanUtils.copyProperties(salesLedger, resultDto);
+        if (!products.isEmpty()) {
+            resultDto.setHasChildren(true);
+            resultDto.setProductData(products);
+        }
+        return resultDto;
+    }
+
     // 鏂囦欢杩佺Щ鏂规硶
 
     /**
diff --git a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
index 2dba9c8..9640bdc 100644
--- a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -39,8 +39,8 @@
             <if test="c.supplierName != null and c.supplierName != ''">
                 and pl.supplier_name like concat('%',#{c.supplierName},'%')
             </if>
-            <if test="c.ApprovalStatus != null and c.ApprovalStatus != ''">
-                and pl.approval_status = #{c.ApprovalStatus}
+            <if test="c.approvalStatus != null and c.approvalStatus != ''">
+                and pl.approval_status = #{c.approvalStatus}
             </if>
             <if test="c.salesContractNo != null and c.salesContractNo != ''">
                 and pl.sales_contract_no like concat('%',#{c.salesContractNo},'%')
@@ -81,4 +81,4 @@
         WHERE
             T4.id = #{id}
     </select>
-</mapper>
\ No newline at end of file
+</mapper>
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index 5d83bb1..e9d6ee5 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -10,7 +10,7 @@
         WHERE sales_contract_no LIKE CONCAT('%',#{datePart},'%')
     </select>
     <select id="getSalesNo" resultType="com.ruoyi.sales.pojo.SalesLedger">
-        
+    
     </select>
 
     <select id="selectSalesLedgerList" resultType="com.ruoyi.sales.pojo.SalesLedger">
@@ -56,6 +56,8 @@
         T1.attachment_materials,
         T1.tenant_id,
         T1.contract_amount,
+        T1.approval_status,
+        T1.sales_type,
         T1.execution_date,
         T2.nick_name AS entry_person_name,
         T1.payment_method
@@ -81,7 +83,10 @@
             <if test="salesLedgerDto.entryDateEnd != null and salesLedgerDto.entryDateEnd != '' ">
                 AND  T1.entry_date &lt;= DATE_FORMAT(#{salesLedgerDto.entryDateEnd},'%Y-%m-%d')
             </if>
+            <if test="salesLedgerDto.approvalStatus != null">
+                AND  T1.approval_status =#{salesLedgerDto.approvalStatus}
+            </if>
         </where>
     order by T1.entry_date desc
     </select>
-</mapper>
\ No newline at end of file
+</mapper>

--
Gitblit v1.9.3