From 533c9a4e44b06c90df7434a38e0da26e10cdac46 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期四, 12 三月 2026 17:24:40 +0800
Subject: [PATCH] 质押还款提醒文案调整
---
fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java | 263 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 258 insertions(+), 5 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 599280c..77650d1 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,26 +2,36 @@
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.OrderStatus;
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;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.text.DecimalFormat;
import java.util.Date;
+import java.util.List;
/**
* @Desc: 宸ュ崟涓氬姟鎺ュ彛
* @Author: Andy.jia
* @Date: 2026/1/15
*/
+@Slf4j
@Service
public class BizWorkService {
+
@Resource
private WorkOrderConfService confService;
@Resource
@@ -32,8 +42,9 @@
/**
* 鑾峰彇娴佺▼閰嶇疆淇℃伅
+ *
* @param deptId 搴撳尯ID
- * @param type 涓氬姟绫诲瀷
+ * @param type 涓氬姟绫诲瀷
* @return 閰嶇疆淇℃伅
*/
public WorkOrderConf getConfByDeptId(String deptId, WorkBizType type) {
@@ -43,10 +54,12 @@
/**
*
* 鏍规嵁鍑哄叆搴撻�氱煡鍗曞惎鍔ㄥ鎵瑰伐鍗�
+ *
* @param data 鍑哄叆搴撳伐鍗曟暟鎹�
* @return 鍝嶅簲缁撴灉
*/
public BaseResp startByNoticeIn(InoutNoticeIn data, WorkOrderConf conf) {
+
if (null == conf) conf = confService.getByDeptId(data.getDeptId(), WorkBizType.TYPE_10);
if (Constant.YN_N.equals(conf.getValTag())) return BaseResp.error("娴佺▼鏈惎鐢�");
@@ -62,9 +75,9 @@
work.setDeptId(data.getDeptId());
work.setCompanyId(data.getCompanyId());
work.setUpdateTime(new Date());
- work.setTitle("鍏ュ簱閫氱煡鍗曞鎵�");
+ work.setTitle(data.getName() + "-瀹℃壒");
work.setConfId(conf.getId());
- work.setStatus(OrderStatus.STATUS_30.getCode());
+ work.setStatus(WorkStatus.STATUS_30.getCode());
work.setReceiveTime(new Date());
String nextNode = this.getNextNode(WorkNode.NODE_START.getCode(), conf).getCode();
@@ -80,13 +93,60 @@
process.setAssigneeName(work.getCreateBy());
process.setAssigneeId(work.getCreateById());
process.setNode(WorkNode.NODE_START.getCode());
- orderProcessService.addData(process);
+ orderProcessService.addData(process, false);
+
+ return BaseResp.success();
+ }
+
+ /**
+ *
+ * 鏍规嵁鍑哄嚭搴撻�氱煡鍗曞惎鍔ㄥ鎵瑰伐鍗�
+ *
+ * @param data 鍑哄叆搴撳伐鍗曟暟鎹�
+ * @return 鍝嶅簲缁撴灉
+ */
+ public BaseResp startByNoticeOut(InoutNoticeOut data, WorkOrderConf conf) {
+ if (null == conf) conf = confService.getByDeptId(data.getDeptId(), WorkBizType.TYPE_20);
+
+ if (Constant.YN_N.equals(conf.getValTag())) return BaseResp.error("娴佺▼鏈惎鐢�");
+
+ //鍒涘缓宸ュ崟
+ WorkOrder work = new WorkOrder();
+ work.setId(ContextUtil.generateOrderId("CKD"));
+ work.setBizType(WorkBizType.TYPE_20.getCode());
+ work.setBusinessId(data.getId());
+ work.setBankId(data.getBankId());
+ work.setBusinessUrl("com.fzzy.igds.InoutNoticeOut-Detail.d");
+ work.setCreateTime(new Date());
+ work.setDeptId(data.getDeptId());
+ work.setCompanyId(data.getCompanyId());
+ work.setUpdateTime(new Date());
+ work.setTitle(data.getName() + "-瀹℃壒");
+ work.setConfId(conf.getId());
+ work.setStatus(WorkStatus.STATUS_30.getCode());
+ work.setReceiveTime(new Date());
+
+ 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();
}
/**
* 鏍规嵁褰撳墠鑺傜偣鑾峰彇涓嬩竴涓妭鐐�
+ *
* @param curNode
* @param conf
* @return
@@ -112,4 +172,197 @@
return WorkNode.NODE_END;
}
+
+ /**
+ *
+ * 鏍规嵁鍑哄叆搴撻�氱煡鍗曞惎鍔ㄥ鎵瑰伐鍗�
+ *
+ * @param data 鍑哄叆搴撳伐鍗曟暟鎹�
+ * @return 鍝嶅簲缁撴灉
+ */
+ public BaseResp startByBackMoney(PledgeContract data, WorkOrderConf conf, List<PledgeReminders> remindersList) {
+
+ if (null == conf) conf = confService.getByDeptId(data.getPledgeDept(), WorkBizType.TYPE_10);
+
+ if (Constant.YN_N.equals(conf.getValTag())) return BaseResp.error("娴佺▼鏈惎鐢�");
+
+ //鍒涘缓宸ュ崟
+ StringBuilder description = new StringBuilder("褰撳墠鍚堝悓<" + data.getName() + ">涓�");
+ if (!remindersList.isEmpty()) {
+ Double sumMoneyNum = 0.0;
+ DecimalFormat df = new DecimalFormat("0.00");
+
+ for (PledgeReminders reminders : remindersList) {
+ description.append("锛屼粨搴�<").append(reminders.getDepotName()).append(">锛岃川鎶肩墿<").append(reminders.getFoodVarietyName()).append(">搴撳瓨閲忎负").append(df.format(reminders.getStorageReal())).append("kg锛屽崟浠�").append(reminders.getFoodPrice()).append("鍏冿紝");
+ sumMoneyNum += reminders.getStorageReal() * reminders.getFoodPrice();
+ }
+ description.append("搴撳瓨閲忔�婚噾棰濅负").append(df.format(sumMoneyNum)).append("鍏冿紝杈惧埌鍚堝悓寰呰繕娆鹃噾棰濈殑110%,璇锋彁閱掍紒涓氳繘娆捐繕娆�");
+ } else {
+ description.append("璐ㄦ娂浠撳簱<").append(data.getDepotNames()).append(">搴撳瓨閲忛噾棰濋珮浜庡緟杩樻閲戦锛岄渶瑕佽繘琛岃繕娆�");
+ }
+ 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) {
+
+ String action = process.getAction();
+ if (StringUtils.isEmpty(action)) {
+ return BaseResp.error("娌℃湁璇嗗埆鍒板鐞嗗姩浣滐紝璇烽噸鏂板皾璇�");
+ }
+
+ log.info("-----宸ュ崟澶勭悊-----{}", process);
+ //鑾峰彇宸ュ崟
+ WorkOrder work = orderService.selectById(process.getOrderId());
+ if (null == work) return BaseResp.error("褰撳墠宸ュ崟宸蹭笉瀛樺湪");
+
+ if (work.getStatus().equals(WorkStatus.STATUS_50.getCode())
+ || work.getStatus().equals(WorkStatus.STATUS_60.getCode())) {
+ return BaseResp.error("褰撳墠宸ュ崟宸插鐞嗭紝璇峰埛鏂伴〉闈㈤噸璇曪紒锛�");
+ }
+
+ //鍒ゆ柇鏄笉鏄寚瀹氬鐞嗕汉
+ SysUser user = ContextUtil.getLoginUser();
+ if (StringUtils.isNotEmpty(work.getAssigneeId())) {
+ if (!work.getAssigneeId().equals(user.getLoginName())) {
+ return BaseResp.error("褰撳墠宸ュ崟宸插垎閰嶅叾浠栦汉澶勭悊锛岃鍕垮鐞�");
+ }
+ }
+
+ String curNode = process.getNode();
+ //鑾峰彇澶勭悊浜�
+ if (!curNode.equals(work.getNode())) {
+ return BaseResp.error("褰撳墠宸ュ崟宸茶澶勭悊锛岃鍒锋柊椤甸潰閲嶈瘯锛侊紒");
+ }
+
+ //鑾峰彇閰嶇疆淇℃伅
+ WorkOrderConf conf = confService.selectById(work.getConfId());
+ if (null == conf) return BaseResp.error("褰撳墠宸ュ崟鏈厤缃祦绋�");
+
+ //娣诲姞璁板綍
+ process.setId(ContextUtil.UUID());
+ process.setCreateTime(new Date());
+ process.setOrderId(work.getId());
+ process.setAssigneeName(user.getUserName());
+ process.setAssigneeId(user.getLoginName());
+
+ WorkNode nextNode = this.getNextNode(work.getNode(), conf);
+
+ log.info("宸ュ崟瀹℃壒锛歿}锛屾墽琛屽姩浣滐細{}锛屽綋鍓嶈妭鐐癸細{}锛屼笅涓�鑺傜偣锛歿}", work.getTitle(), action, work.getNode(), nextNode);
+
+ //閫氳繃鎿嶄綔
+ if ("pass".equals(action)) {
+ process.setAction("閫氳繃");
+ process.setNode(work.getNode());
+ //缁撴潫鍒ゆ柇锛屽鏋滄槸缁撴潫鑺傜偣锛屽垯缁撴潫宸ュ崟
+ if (WorkNode.NODE_END.getCode().equals(nextNode.getCode())) {
+ work.setStatus(WorkStatus.STATUS_50.getCode());
+ work.setAssigneeName(process.getAssigneeName());
+ 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);
+ }
+
+ //澧炲姞瀹℃壒璁板綍
+ orderProcessService.addData(process, WorkNode.NODE_END.equals(nextNode));
+ return BaseResp.success();
+ }
+
+ //鎷掔粷鎿嶄綔
+ if ("refuse".equals(action)) {
+ process.setAction("鎷掔粷");
+ 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);
+
+ return BaseResp.success();
+ }
+
+ //杞氦鎴栬�呮寚娲炬搷浣�
+ if ("transfer".equals(action)) {
+
+ if (StringUtils.isEmpty(process.getAssigneeName())) {
+ return BaseResp.error("璇烽�夋嫨澶勭悊浜�");
+ }
+
+ process.setAction("杞氦/鎸囨淳");
+ process.setNode(work.getNode());
+ String info = user.getUserName() + "杞氦缁�" + process.getAssigneeName() + "澶勭悊锛屽鐞嗗缓璁細" + process.getRemark();
+ process.setRemark(info);
+ //鏇存柊澶勭悊浜�
+ work.setAssigneeId(process.getAssigneeId());
+ work.setAssigneeName(process.getAssigneeName());
+
+ orderService.updateData(work);
+
+ orderProcessService.addData(process, false);
+ return BaseResp.success();
+ }
+
+ return BaseResp.error("绯荤粺娌℃湁璇嗗埆鍒版搷浣滃姩浣滐紝鏈墽琛岀浉鍏虫祦绋嬪鎵�");
+ }
}
--
Gitblit v1.9.3