From 6df8411e720cfef1b474f178825bdee32ef71a59 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期五, 20 三月 2026 15:06:35 +0800
Subject: [PATCH] 新增回馈进度表

---
 service/src/main/java/com/ruoyi/cwgl/service/impl/VoucherSubjectSettingServiceImpl.java |  188 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 184 insertions(+), 4 deletions(-)

diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/VoucherSubjectSettingServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/VoucherSubjectSettingServiceImpl.java
index e2cc9b1..09657dd 100644
--- a/service/src/main/java/com/ruoyi/cwgl/service/impl/VoucherSubjectSettingServiceImpl.java
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/VoucherSubjectSettingServiceImpl.java
@@ -4,6 +4,8 @@
 
 import com.ruoyi.common.utils.DateUtils;
 import javax.annotation.Resource;
+
+import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.stereotype.Service;
 import org.springframework.scheduling.annotation.Async;
@@ -17,8 +19,11 @@
 
 import com.ruoyi.cwgl.mapper.VoucherSubjectSettingMapper;
 import com.ruoyi.cwgl.domain.VoucherSubjectSetting;
+import com.ruoyi.cwgl.domain.VoucherSubjectSettingLog;
 import com.ruoyi.cwgl.service.IVoucherSubjectSettingService;
+import com.ruoyi.cwgl.service.IVoucherSubjectSettingLogService;
 import com.ruoyi.common.core.text.Convert;
+import com.ruoyi.common.utils.StringUtils;
 
 /**
  * 鍑瘉绉戠洰璁剧疆Service涓氬姟灞傚鐞�
@@ -33,6 +38,9 @@
     protected final Logger logger = LoggerFactory.getLogger(getClass());
     @Resource
     private VoucherSubjectSettingMapper voucherSubjectSettingMapper;
+    
+    @Resource
+    private IVoucherSubjectSettingLogService voucherSubjectSettingLogService;
 
 
     /**
@@ -71,7 +79,14 @@
     @Override
     public List<VoucherSubjectSetting> selectVoucherSubjectSettingList(VoucherSubjectSetting voucherSubjectSetting)
     {
-        return voucherSubjectSettingMapper.selectVoucherSubjectSettingList(voucherSubjectSetting);
+        List<VoucherSubjectSetting> list = voucherSubjectSettingMapper.selectVoucherSubjectSettingList(voucherSubjectSetting);
+        // 璁剧疆鏍哥畻椤圭洰鎻忚堪
+        for (VoucherSubjectSetting subject : list) {
+            if (subject.getAccountingItems() != null) {
+                subject.setAccountingItemsDesc(subject.getAccountingItemsDesc());
+            }
+        }
+        return list;
     }
 
     /**
@@ -103,7 +118,19 @@
     public int insertVoucherSubjectSetting(VoucherSubjectSetting voucherSubjectSetting)
     {
         voucherSubjectSetting.setCreateTime(DateUtils.getNowDate());
-        return voucherSubjectSettingMapper.insertVoucherSubjectSetting(voucherSubjectSetting);
+        voucherSubjectSetting.setCreateBy(SecurityUtils.getUsername());
+        int result = voucherSubjectSettingMapper.insertVoucherSubjectSetting(voucherSubjectSetting);
+        
+        // 璁板綍鏂板鏃ュ織
+        if (result > 0) {
+            VoucherSubjectSettingLog log = new VoucherSubjectSettingLog();
+            log.setSubjectId(voucherSubjectSetting.getId());
+            log.setCreateBy(voucherSubjectSetting.getCreateBy());
+            log.setOperation("鏂板绉戠洰锛氥��" + voucherSubjectSetting.getSubjectName() + "銆�");
+            voucherSubjectSettingLogService.insertVoucherSubjectSettingLog(log);
+        }
+        
+        return result;
     }
 
     /**
@@ -123,13 +150,148 @@
      * 淇敼鍑瘉绉戠洰璁剧疆
      *
      * @param voucherSubjectSetting 鍑瘉绉戠洰璁剧疆
+     * @param original
      * @return 缁撴灉
      */
     @Override
-    public int updateVoucherSubjectSetting(VoucherSubjectSetting voucherSubjectSetting)
+    public int updateVoucherSubjectSetting(VoucherSubjectSetting voucherSubjectSetting, VoucherSubjectSetting original)
     {
+
         voucherSubjectSetting.setUpdateTime(DateUtils.getNowDate());
-        return voucherSubjectSettingMapper.updateVoucherSubjectSetting(voucherSubjectSetting);
+        int result = voucherSubjectSettingMapper.updateVoucherSubjectSetting(voucherSubjectSetting);
+        
+        // 璁板綍淇敼鏃ュ織
+        if (result > 0 && original != null) {
+            String changeLog = generateChangeLog(original, voucherSubjectSetting);
+            if (!changeLog.isEmpty()) {
+                VoucherSubjectSettingLog log = new VoucherSubjectSettingLog();
+                log.setSubjectId(voucherSubjectSetting.getId());
+                log.setCreateBy(SecurityUtils.getUsername());
+                log.setOperation("淇敼绉戠洰锛氥��" + original.getSubjectName() + "銆�" + changeLog);
+                voucherSubjectSettingLogService.insertVoucherSubjectSettingLog(log);
+            }
+        }
+        
+        return result;
+    }
+    
+    /**
+     * 鐢熸垚瀛楁鍙樻洿鏃ュ織
+     * @param original 鍘熷鏁版嵁
+     * @param updated 鏇存柊鍚庢暟鎹�
+     * @return 鍙樻洿鏃ュ織瀛楃涓�
+     */
+    private String generateChangeLog(VoucherSubjectSetting original, VoucherSubjectSetting updated) {
+        StringBuilder changeLog = new StringBuilder();
+        
+        // 姣旇緝绉戠洰浠g爜
+        if (!StringUtils.equals(original.getSubjectCode(), updated.getSubjectCode())) {
+            changeLog.append("绉戠洰浠g爜銆�").append(original.getSubjectCode()).append("銆戜慨鏀逛负銆�").append(updated.getSubjectCode()).append("銆戯紱");
+        }
+        
+        // 姣旇緝绉戠洰鍚嶇О
+        if (!StringUtils.equals(original.getSubjectName(), updated.getSubjectName())) {
+            changeLog.append("绉戠洰鍚嶇О銆�").append(original.getSubjectName()).append("銆戜慨鏀逛负銆�").append(updated.getSubjectName()).append("銆戯紱");
+        }
+        
+        // 姣旇緝绉戠洰绫诲埆
+        if (!StringUtils.equals(original.getSubjectType(), updated.getSubjectType())) {
+            changeLog.append("绉戠洰绫诲埆銆�").append(original.getSubjectType()).append("銆戜慨鏀逛负銆�").append(updated.getSubjectType()).append("銆戯紱");
+        }
+        
+        // 姣旇緝鍚敤鐘舵��
+        if (!StringUtils.equals(original.getEnabled(), updated.getEnabled())) {
+            changeLog.append("鍚敤鐘舵�併��").append(original.getEnabled()).append("銆戜慨鏀逛负銆�").append(updated.getEnabled()).append("銆戯紱");
+        }
+        
+        // 姣旇緝浣欓鏂瑰悜
+        if (!StringUtils.equals(original.getBalanceDirection(), updated.getBalanceDirection())) {
+            changeLog.append("浣欓鏂瑰悜銆�").append(original.getBalanceDirection()).append("銆戜慨鏀逛负銆�").append(updated.getBalanceDirection()).append("銆戯紱");
+        }
+        
+        // 姣旇緝鏍哥畻椤圭洰
+        if (original.getAccountingItems() != null && updated.getAccountingItems() != null && 
+            !original.getAccountingItems().equals(updated.getAccountingItems())) {
+            changeLog.append("鏍哥畻椤圭洰銆�").append(original.getAccountingItems()).append("銆戜慨鏀逛负銆�").append(updated.getAccountingItems()).append("銆戯紱");
+        }
+        
+        // 姣旇緝寰�鏉ュ崟浣�
+        if (!StringUtils.equals(original.getContactUnit(), updated.getContactUnit())) {
+            changeLog.append("寰�鏉ュ崟浣嶃��").append(original.getContactUnit()).append("銆戜慨鏀逛负銆�").append(updated.getContactUnit()).append("銆戯紱");
+        }
+        
+        // 姣旇緝閮ㄩ棬
+        if (!StringUtils.equals(original.getDepartment(), updated.getDepartment())) {
+            changeLog.append("閮ㄩ棬銆�").append(original.getDepartment()).append("銆戜慨鏀逛负銆�").append(updated.getDepartment()).append("銆戯紱");
+        }
+        
+        // 姣旇緝鍝佸悕
+        if (!StringUtils.equals(original.getProductName(), updated.getProductName())) {
+            changeLog.append("鍝佸悕銆�").append(original.getProductName()).append("銆戜慨鏀逛负銆�").append(updated.getProductName()).append("銆戯紱");
+        }
+        
+        // 姣旇緝鏁伴噺閲戦鏍哥畻
+        if (!StringUtils.equals(original.getQuantityAmountAccounting(), updated.getQuantityAmountAccounting())) {
+            changeLog.append("鏁伴噺閲戦鏍哥畻銆�").append(original.getQuantityAmountAccounting()).append("銆戜慨鏀逛负銆�").append(updated.getQuantityAmountAccounting()).append("銆戯紱");
+        }
+        
+        // 姣旇緝鐜伴噾绉戠洰
+        if (!StringUtils.equals(original.getCashSubject(), updated.getCashSubject())) {
+            changeLog.append("鐜伴噾绉戠洰銆�").append(original.getCashSubject()).append("銆戜慨鏀逛负銆�").append(updated.getCashSubject()).append("銆戯紱");
+        }
+        
+        // 姣旇緝閾惰绉戠洰
+        if (!StringUtils.equals(original.getBankSubject(), updated.getBankSubject())) {
+            changeLog.append("閾惰绉戠洰銆�").append(original.getBankSubject()).append("銆戜慨鏀逛负銆�").append(updated.getBankSubject()).append("銆戯紱");
+        }
+        
+        // 姣旇緝鐜伴噾娴侀噺绉戠洰
+        if (!StringUtils.equals(original.getCashFlowSubject(), updated.getCashFlowSubject())) {
+            changeLog.append("鐜伴噾娴侀噺绉戠洰銆�").append(original.getCashFlowSubject()).append("銆戜慨鏀逛负銆�").append(updated.getCashFlowSubject()).append("銆戯紱");
+        }
+        
+        // 姣旇緝璐圭敤鍚嶇О
+        if (!StringUtils.equals(original.getExpenseName(), updated.getExpenseName())) {
+            changeLog.append("璐圭敤鍚嶇О銆�").append(original.getExpenseName()).append("銆戜慨鏀逛负銆�").append(updated.getExpenseName()).append("銆戯紱");
+        }
+        
+        // 姣旇緝鍔╄鐮�
+        if (!StringUtils.equals(original.getMnemonicCode(), updated.getMnemonicCode())) {
+            changeLog.append("鍔╄鐮併��").append(original.getMnemonicCode()).append("銆戜慨鏀逛负銆�").append(updated.getMnemonicCode()).append("銆戯紱");
+        }
+        
+        // 姣旇緝澶栧竵鏍哥畻
+        if (!StringUtils.equals(original.getForeignCurrencyAccounting(), updated.getForeignCurrencyAccounting())) {
+            changeLog.append("澶栧竵鏍哥畻銆�").append(original.getForeignCurrencyAccounting()).append("銆戜慨鏀逛负銆�").append(updated.getForeignCurrencyAccounting()).append("銆戯紱");
+        }
+        
+        // 姣旇緝璁¢噺鍗曚綅
+        if (!StringUtils.equals(original.getUnitOfMeasurement(), updated.getUnitOfMeasurement())) {
+            changeLog.append("璁¢噺鍗曚綅銆�").append(original.getUnitOfMeasurement()).append("銆戜慨鏀逛负銆�").append(updated.getUnitOfMeasurement()).append("銆戯紱");
+        }
+        
+        // 姣旇緝鏄剧ず椤哄簭
+        if (original.getOrderNum() != null && updated.getOrderNum() != null && 
+            !original.getOrderNum().equals(updated.getOrderNum())) {
+            changeLog.append("鏄剧ず椤哄簭銆�").append(original.getOrderNum()).append("銆戜慨鏀逛负銆�").append(updated.getOrderNum()).append("銆戯紱");
+        }
+        
+        // 姣旇緝鐘舵��
+        if (!StringUtils.equals(original.getStatus(), updated.getStatus())) {
+            changeLog.append("鐘舵�併��").append(original.getStatus()).append("銆戜慨鏀逛负銆�").append(updated.getStatus()).append("銆戯紱");
+        }
+        
+        // 姣旇緝澶囨敞
+        if (!StringUtils.equals(original.getRemark(), updated.getRemark())) {
+            changeLog.append("澶囨敞銆�").append(original.getRemark()).append("銆戜慨鏀逛负銆�").append(updated.getRemark()).append("銆戯紱");
+        }
+        
+        // 姣旇緝甯愬绫诲瀷
+        if (!StringUtils.equals(original.getType(), updated.getType())) {
+            changeLog.append("甯愬绫诲瀷銆�").append(original.getType()).append("銆戜慨鏀逛负銆�").append(updated.getType()).append("銆戯紱");
+        }
+        
+        return changeLog.toString();
     }
 
     /**
@@ -179,4 +341,22 @@
     {
         return voucherSubjectSettingMapper.deleteVoucherSubjectSettingById(id);
     }
+
+    /**
+     * 鏍¢獙绉戠洰浠g爜鏄惁鍞竴
+     *
+     * @param voucherSubjectSetting 鍑瘉绉戠洰璁剧疆
+     * @return 缁撴灉
+     */
+    @Override
+    public String checkSubjectCodeUnique(VoucherSubjectSetting voucherSubjectSetting)
+    {
+        Integer id = StringUtils.isNull(voucherSubjectSetting.getId()) ? -1 : voucherSubjectSetting.getId();
+        VoucherSubjectSetting info = voucherSubjectSettingMapper.checkSubjectCodeUnique(voucherSubjectSetting.getSubjectCode(), voucherSubjectSetting.getAccountSet());
+        if (StringUtils.isNotNull(info) && info.getId().intValue() != id.intValue())
+        {
+            return "1";
+        }
+        return "0";
+    }
 }

--
Gitblit v1.8.0