From b6b4cbf1fb72c21ad27a49f3231fb77bb96e221f Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 24 三月 2026 11:53:59 +0800
Subject: [PATCH] 销售台账增加类型区分普通和紧急,普通需要走审批流程

---
 src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java |   15 +++++++
 src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java                    |    6 +++
 src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java                 |   11 ++++-
 src/main/resources/mapper/sales/SalesLedgerMapper.xml                    |    9 +++-
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java   |   26 +++++++++++++
 src/main/java/com/ruoyi/sales/pojo/SalesLedger.java                      |    6 +++
 6 files changed, 69 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
index 7c5bcee..57ec1a1 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;
@@ -134,6 +134,13 @@
 
     /**
      * 瀹℃壒绫诲瀷
+     *     0: "鍗忓悓瀹℃壒绠$悊琛�",
+     *     1: "鍏嚭绠$悊瀹℃壒琛�",
+     *     2: "璇峰亣绠$悊瀹℃壒琛�",
+     *     3: "鍑哄樊绠$悊瀹℃壒琛�",
+     *     4: "鎶ラ攢绠$悊瀹℃壒琛�",
+     *     5: "閲囪喘鐢宠瀹℃壒琛�",
+     *     6: "閿�鍞鍗曞鎵硅〃",
      */
     private Integer approveType;
 
@@ -151,4 +158,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 d0ff36a..6ac9d60 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;
@@ -14,7 +15,9 @@
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysUserMapper;
 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;
@@ -35,6 +38,9 @@
     private  ApproveNodeMapper approveNodeMapper;
     @Autowired
     private ApproveProcessMapper approveProcessMapper;
+
+    @Autowired
+    private SalesLedgerMapper salesLedgerMapper;
     @Autowired
     private SysUserMapper sysUserMapper;
 
@@ -136,6 +142,15 @@
             approveProcess.setApproveUserCurrentName(approveNode1.getApproveNodeUser());
         }
         approveProcessMapper.updateById(approveProcess);
+        //濡傛灉鏄�6閿�鍞鎵归�氳繃,瀵瑰簲閿�鍞叧鑱旂殑琛ㄩ渶瑕佹洿鏂�
+        if (approveProcess.getApproveType()==6 && status==2){
+            List<SalesLedger> salesLedgers = salesLedgerMapper.selectList(Wrappers.<SalesLedger>lambdaQuery().eq(SalesLedger::getSalesContractNo, approveProcess.getApproveReason()));
+            if (CollectionUtils.isEmpty(salesLedgers)){
+                SalesLedger salesLedger = salesLedgers.get(0);
+                salesLedger.setIsPass(1);
+                salesLedgerMapper.updateById(salesLedger);
+            }
+        }
 
         // 缁戝畾闄勪欢
         if(!CollectionUtils.isEmpty(approveNode.getTempFileIds()) && approveNode.getApproveNodeStatus() == 1){
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
index 486ffcb..48867ae 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
@@ -54,4 +54,10 @@
 
     @ApiModelProperty(value = "浠樻鏂瑰紡")
     private String paymentMethod;
+
+    @ApiModelProperty(value = "璁㈠崟鎸夌揣鎬ョ▼搴﹀垎绫�(鏅��/绱ф��)")
+    private String salesType;
+
+    @ApiModelProperty(value = "鏄惁瀹℃壒閫氳繃(1閫氳繃/0涓嶉�氳繃)")//榛樿鏄�1
+    private int isPass;
 }
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
index 4ffdb03..96b5911 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -125,5 +125,11 @@
 
     @ApiModelProperty(value = "浠樻鏂瑰紡")
     private String paymentMethod;
+
+    @ApiModelProperty(value = "璁㈠崟鎸夌揣鎬ョ▼搴﹀垎绫�(鏅��/绱ф��)")
+    private String salesType;
+
+    @ApiModelProperty(value = "鏄惁瀹℃壒閫氳繃(1閫氳繃/0涓嶉�氳繃)")//榛樿鏄�1
+    private int isPass;
 }
 
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 6493d46..543b24b 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,8 @@
 import com.ruoyi.account.pojo.AccountExpense;
 import com.ruoyi.account.pojo.AccountIncome;
 import com.ruoyi.account.service.AccountIncomeService;
+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;
@@ -36,6 +38,7 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.script.DefaultRedisScript;
+import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -46,6 +49,7 @@
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.StandardCopyOption;
+import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.YearMonth;
@@ -68,6 +72,8 @@
     private final AccountIncomeService accountIncomeService;
 
     private final SalesLedgerMapper salesLedgerMapper;
+
+    private final IApproveProcessService approveProcessService;
 
     private final CustomerMapper customerMapper;
 
@@ -431,6 +437,26 @@
             if (salesLedgerDto.getTempFileIds() != null && !salesLedgerDto.getTempFileIds().isEmpty()) {
                 migrateTempFilesToFormal(salesLedger.getId(), salesLedgerDto.getTempFileIds());
             }
+
+            //6.閿�鍞鍗曟寜绱ф�ョ▼搴﹀垎绫伙紝濡傛櫘閫氳鍗曚互鍙婄揣鎬ヨ鍗曪紱鏅�氳鍗曢渶娴佽浆鑷充笟鍔″崟鎹繘琛屽鎵癸紝绱ф�ヨ鍗曟棤闇�瀹℃壒銆�
+            if (salesLedger.getSalesType().equals("鏅��")){
+                salesLedger.setIsPass(0);
+                salesLedgerMapper.updateById(salesLedger);
+                //骞朵笖鏂板瀹℃壒鏁版嵁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));
+                approveProcessVO.setApproveType(6);//6鏄攢鍞彴璐�
+                approveProcessVO.setApproveUser(Long.parseLong(salesLedger.getEntryPerson()));//褰曞叆浜�=鐢宠浜�
+                approveProcessVO.setApproveUserIds("1");
+                try {
+                    approveProcessService.addApprove(approveProcessVO);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
             return 1;
         } catch (IOException e) {
             throw new BaseException("鏂囦欢杩佺Щ澶辫触: " + e.getMessage());
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index 7ce76a8..72f32d5 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">
@@ -57,6 +57,8 @@
         T1.tenant_id,
         T1.contract_amount,
         T1.execution_date,
+        T1.is_pass,
+        T1.sales_type,
         T2.nick_name AS entry_person_name,
         T1.payment_method
         FROM
@@ -81,6 +83,9 @@
             <if test="salesLedgerDto.entryDateEnd != null and salesLedgerDto.entryDateEnd != '' ">
                 AND  T1.entry_date &lt;= DATE_FORMAT(#{salesLedgerDto.entryDateEnd},'%Y-%m-%d')
             </if>
+             <if test="salesLedgerDto.isPass != null">
+                AND  T1.is_pass =#{salesLedgerDto.isPass}
+            </if>
         </where>
     </select>
-</mapper>
\ No newline at end of file
+</mapper>

--
Gitblit v1.9.3