From 58f63e3a124680d0b1f571f5d0a1e3ed308d43be Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期五, 20 三月 2026 14:45:34 +0800
Subject: [PATCH] 质押合同页面重构

---
 fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java |  117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 109 insertions(+), 8 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java
index cd9dea8..3b7df54 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java
@@ -2,12 +2,14 @@
 
 import com.fzzy.igds.constant.Constant;
 import com.fzzy.igds.data.BaseResp;
+import com.fzzy.igds.data.PledgeReminders;
 import com.fzzy.igds.domain.InoutNoticeIn;
 import com.fzzy.igds.domain.InoutNoticeOut;
+import com.fzzy.igds.domain.PledgeContract;
 import com.fzzy.igds.utils.ContextUtil;
-import com.fzzy.work.data.WorkStatus;
 import com.fzzy.work.data.WorkBizType;
 import com.fzzy.work.data.WorkNode;
+import com.fzzy.work.data.WorkStatus;
 import com.fzzy.work.domain.WorkOrder;
 import com.fzzy.work.domain.WorkOrderConf;
 import com.fzzy.work.domain.WorkOrderProcess;
@@ -17,7 +19,9 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.text.DecimalFormat;
 import java.util.Date;
+import java.util.Map;
 
 /**
  * @Desc: 宸ュ崟涓氬姟鎺ュ彛
@@ -27,6 +31,7 @@
 @Slf4j
 @Service
 public class BizWorkService {
+
     @Resource
     private WorkOrderConfService confService;
     @Resource
@@ -37,8 +42,9 @@
 
     /**
      * 鑾峰彇娴佺▼閰嶇疆淇℃伅
+     *
      * @param deptId 搴撳尯ID
-     * @param type  涓氬姟绫诲瀷
+     * @param type   涓氬姟绫诲瀷
      * @return 閰嶇疆淇℃伅
      */
     public WorkOrderConf getConfByDeptId(String deptId, WorkBizType type) {
@@ -48,6 +54,7 @@
     /**
      *
      * 鏍规嵁鍑哄叆搴撻�氱煡鍗曞惎鍔ㄥ鎵瑰伐鍗�
+     *
      * @param data 鍑哄叆搴撳伐鍗曟暟鎹�
      * @return 鍝嶅簲缁撴灉
      */
@@ -68,7 +75,7 @@
         work.setDeptId(data.getDeptId());
         work.setCompanyId(data.getCompanyId());
         work.setUpdateTime(new Date());
-        work.setTitle("鍏ュ簱閫氱煡鍗曞鎵�");
+        work.setTitle(data.getName() + "-瀹℃壒");
         work.setConfId(conf.getId());
         work.setStatus(WorkStatus.STATUS_30.getCode());
         work.setReceiveTime(new Date());
@@ -94,6 +101,7 @@
     /**
      *
      * 鏍规嵁鍑哄嚭搴撻�氱煡鍗曞惎鍔ㄥ鎵瑰伐鍗�
+     *
      * @param data 鍑哄叆搴撳伐鍗曟暟鎹�
      * @return 鍝嶅簲缁撴灉
      */
@@ -113,7 +121,7 @@
         work.setDeptId(data.getDeptId());
         work.setCompanyId(data.getCompanyId());
         work.setUpdateTime(new Date());
-        work.setTitle("鍑哄簱閫氱煡鍗曞鎵�");
+        work.setTitle(data.getName() + "-瀹℃壒");
         work.setConfId(conf.getId());
         work.setStatus(WorkStatus.STATUS_30.getCode());
         work.setReceiveTime(new Date());
@@ -138,6 +146,7 @@
 
     /**
      * 鏍规嵁褰撳墠鑺傜偣鑾峰彇涓嬩竴涓妭鐐�
+     *
      * @param curNode
      * @param conf
      * @return
@@ -165,7 +174,79 @@
     }
 
     /**
+     *
+     * 鏍规嵁鍑哄叆搴撻�氱煡鍗曞惎鍔ㄥ鎵瑰伐鍗�
+     *
+     * @param data 鍑哄叆搴撳伐鍗曟暟鎹�
+     * @return 鍝嶅簲缁撴灉
+     */
+    public BaseResp startByBackMoney(PledgeContract data, WorkOrderConf conf, Map<String,PledgeReminders> remindersMap) {
+
+        if (null == conf) conf = confService.getByDeptId(data.getPledgeDept(), WorkBizType.TYPE_10);
+
+        if (Constant.YN_N.equals(conf.getValTag())) return BaseResp.error("娴佺▼鏈惎鐢�");
+//        Double sumMoneyNum = 0.0;
+        DecimalFormat df = new DecimalFormat("0.00");
+        double backMoney = data.getContractAmount() - data.getRepaidAmount();
+
+        //鍒涘缓宸ュ崟
+        StringBuilder description = new StringBuilder("鍚堝悓<" + data.getName() + ">璐锋浣欓锛�"+df.format(backMoney)+"鍏冿紝");
+        if (!remindersMap.isEmpty()){
+
+            for (PledgeReminders reminders : remindersMap.values()) {
+                description.append("褰撳墠<").append(reminders.getFoodVarietyName())
+                        .append(">鍗曚环锛�").append(reminders.getFoodPrice()).append("鍏�/KG锛�")
+                        .append("鍓╀綑<").append(reminders.getFoodVarietyName())
+                        .append(">搴撳瓨锛�").append(df.format(reminders.getStorageReal())).append("KG锛�");
+//                sumMoneyNum += reminders.getStorageReal() * reminders.getFoodPrice();
+            }
+            description.append("鎶煎搧浠峰�尖墹璐锋浣欓鐨�110%锛岃灏藉揩鎻愰啋浼佷笟杩樻锛�");
+
+        }else{
+            description.append("璐ㄦ娂浠撳簱<").append(data.getDepotNames()).append(">鎶煎搧浠峰�尖墹璐锋浣欓鐨�110%锛岃灏藉揩鎻愰啋浼佷笟杩樻锛�");
+
+        }
+
+        WorkOrder work = new WorkOrder();
+        work.setId(ContextUtil.generateOrderId("WARN"));
+        work.setBizType(WorkBizType.TYPE_50.getCode());
+        work.setBusinessId(data.getId());
+        work.setBankId(data.getPledgeBank());
+        work.setBusinessUrl("com.fzzy.igds.PledgeContract-Detail.d");
+        work.setCreateTime(new Date());
+        work.setDeptId(data.getPledgeDept());
+        work.setCompanyId(data.getCompanyId());
+        work.setUpdateTime(new Date());
+        work.setTitle("璐ㄦ娂鍚堝悓杩樻鎻愰啋");
+        work.setConfId(conf.getId());
+        work.setStatus(WorkStatus.STATUS_30.getCode());
+        work.setReceiveTime(new Date());
+        work.setDescription(description.toString());
+        work.setCreateBy("绯荤粺鐢熸垚");
+        work.setCreateById("sys");
+        work.setUpdateBy("绯荤粺鐢熸垚");
+
+        String nextNode = this.getNextNode(WorkNode.NODE_START.getCode(), conf).getCode();
+        work.setNode(nextNode);
+        orderService.addData(work);
+
+        //娣诲姞璁板綍
+        WorkOrderProcess process = new WorkOrderProcess();
+        process.setId(ContextUtil.UUID());
+        process.setAction("鎻愪氦");
+        process.setCreateTime(new Date());
+        process.setOrderId(work.getId());
+        process.setAssigneeName(work.getCreateBy());
+        process.setAssigneeId(work.getCreateById());
+        process.setNode(WorkNode.NODE_START.getCode());
+        orderProcessService.addData(process, false);
+
+        return BaseResp.success();
+    }
+
+    /**
      * 鑾峰彇寰呭鐞嗗伐鍗�
+     *
      * @return 澶勭悊缁撴灉
      */
     public BaseResp todoByProcess(WorkOrderProcess process) {
@@ -185,7 +266,6 @@
             return BaseResp.error("褰撳墠宸ュ崟宸插鐞嗭紝璇峰埛鏂伴〉闈㈤噸璇曪紒锛�");
         }
 
-
         //鍒ゆ柇鏄笉鏄寚瀹氬鐞嗕汉
         SysUser user = ContextUtil.getLoginUser();
         if (StringUtils.isNotEmpty(work.getAssigneeId())) {
@@ -204,7 +284,6 @@
         WorkOrderConf conf = confService.selectById(work.getConfId());
         if (null == conf) return BaseResp.error("褰撳墠宸ュ崟鏈厤缃祦绋�");
 
-
         //娣诲姞璁板綍
         process.setId(ContextUtil.UUID());
         process.setCreateTime(new Date());
@@ -214,7 +293,7 @@
 
         WorkNode nextNode = this.getNextNode(work.getNode(), conf);
 
-        log.info("宸ュ崟瀹℃壒锛歿}锛屽綋鍓嶈妭鐐癸細{}锛屼笅涓�鑺傜偣锛歿}", work.getTitle(), work.getNode(), nextNode);
+        log.info("宸ュ崟瀹℃壒锛歿}锛屾墽琛屽姩浣滐細{}锛屽綋鍓嶈妭鐐癸細{}锛屼笅涓�鑺傜偣锛歿}", work.getTitle(), action, work.getNode(), nextNode);
 
         //閫氳繃鎿嶄綔
         if ("pass".equals(action)) {
@@ -227,6 +306,10 @@
                 work.setAssigneeId(process.getAssigneeId());
                 work.setNode(nextNode.getCode());
                 orderService.complete(work);
+            } else {
+                work.setNode(nextNode.getCode());
+                work.setStatus(WorkStatus.STATUS_30.getCode());
+                orderService.updateData(work);
             }
 
             //澧炲姞瀹℃壒璁板綍
@@ -237,11 +320,29 @@
         //鎷掔粷鎿嶄綔
         if ("refuse".equals(action)) {
             process.setAction("鎷掔粷");
-            process.setNode(WorkNode.NODE_END.getCode());
+            process.setNode(work.getNode());
 
             work.setStatus(WorkStatus.STATUS_60.getCode());
 
             orderService.complete(work);
+
+            //澧炲姞瀹℃壒璁板綍
+            orderProcessService.addData(process, true);
+
+            return BaseResp.success();
+        }
+
+        //寮傚父澶勭悊
+        if ("error".equals(action)) {
+            process.setAction("寮傚父澶勭悊");
+            process.setNode(work.getNode());
+            work.setStatus(WorkStatus.STATUS_50.getCode());
+
+//            work.setAssigneeName(process.getAssigneeName());
+//            work.setAssigneeId(process.getAssigneeId());
+
+            orderService.complete(work);
+
             //澧炲姞瀹℃壒璁板綍
             orderProcessService.addData(process, true);
 

--
Gitblit v1.9.3