From 53024ef844835199ab74dbb27bfa10a290c96443 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期一, 30 三月 2026 15:43:13 +0800
Subject: [PATCH] 质押还款提醒,库区错误提醒修复
---
fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/JobWarnService.java | 78 ++++++++++++++++++++++++++++-----------
1 files changed, 56 insertions(+), 22 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/JobWarnService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/JobWarnService.java
index 7913bef..d1ca5d3 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/JobWarnService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/JobWarnService.java
@@ -2,11 +2,15 @@
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.data.BaseResp;
+import com.fzzy.igds.data.IgdsBaseParam;
+import com.fzzy.igds.data.PledgeReminders;
import com.fzzy.igds.domain.Depot;
import com.fzzy.igds.domain.FoodPrice;
import com.fzzy.igds.domain.PledgeContract;
+import com.fzzy.igds.domain.PledgeContractDepot;
import com.fzzy.igds.service.DepotService;
import com.fzzy.igds.service.FoodPriceService;
+import com.fzzy.igds.service.PledgeContractDepotService;
import com.fzzy.igds.service.PledgeContractService;
import com.fzzy.work.data.WorkBizType;
import com.fzzy.work.domain.WorkOrderConf;
@@ -17,8 +21,7 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
/**
* @Description 璀﹀憡淇℃伅瀹氭椂缁熻锛氳繕娆炬彁閱�
@@ -26,12 +29,15 @@
* @Date 2026/1/23 9:14
*/
@Slf4j
-
@Service
public class JobWarnService {
@Resource
private PledgeContractService contractService;
+
+ @Resource
+ private PledgeContractDepotService pledgeContractDepotService;
+
@Resource
private DepotService depotService;
@Resource
@@ -39,33 +45,41 @@
@Resource
private BizWorkService workService;
+
/**
* 姣忓ぉ涓ょ偣鎵ц锛氳繕娆炬彁閱�
*/
@Scheduled(cron = "0 0 2 * * ?")
public void timer() {
- doExe();
+ doExe(null);
}
/**
* 寮�濮嬭川鎶煎悎鍚屾牳绠�
*/
- public void doExe() {
-
- List<PledgeContract> contractList = contractService.getContractByPledge(new Date());
+ public void doExe(String bankId) {
+ List<PledgeContract> contractList = contractService.getContractByPledge(new Date(), bankId);
if (null == contractList || contractList.isEmpty()) {
log.error("-----褰撳墠娌℃湁鏈夋晥鏈熺殑璐ㄦ娂鍚堝悓锛屼笉鎵ц鎻愰啋鏍哥畻-----");
return;
}
-
Depot depot;
FoodPrice foodPrice;
- WorkOrderConf conf;
+ WorkOrderConf conf = null;
+
double sumMoney = 0.0;
double per = 0.0;
double backMoney = 0.0;
for (PledgeContract pledgeContract : contractList) {
log.info("-----寮�濮嬪鐞嗚川鎶煎悎鍚岋細{}-----", pledgeContract.getName());
+// List<PledgeReminders> remindersList = new ArrayList<>();
+
+ Map<String, PledgeReminders> remindersMap = new HashMap<>();
+
+ //鑾峰彇璐ㄦ娂浠撳簱淇℃伅
+ IgdsBaseParam igdsBaseParam = new IgdsBaseParam();
+ igdsBaseParam.setParentId(pledgeContract.getId());
+ List<PledgeContractDepot> pledgeContractDepots = pledgeContractDepotService.listAll(igdsBaseParam);
//璁$畻寰呰繕娆鹃噾棰�
backMoney = pledgeContract.getContractAmount() - pledgeContract.getRepaidAmount();
@@ -81,20 +95,18 @@
continue;
}
- if (StringUtils.isBlank(pledgeContract.getDepotIds())) {
+ if (pledgeContractDepots.isEmpty()) {
//鑻ヨ川鎶间粨搴撲负绌猴紝鍒欒烦杩囧綋鍓嶅悎鍚�
log.error("-----褰撳墠鍚堝悓={}娌℃湁璁剧疆璐ㄦ娂浠撳簱锛屼笉鎵ц鎻愰啋鏍哥畻-----", pledgeContract.getName());
continue;
}
- String[] depotIds = pledgeContract.getDepotIds().split(",");
- if (depotIds.length < 1) {
- //鑻ヨ川鎶间粨搴撲负绌猴紝鍒欒烦杩囧綋鍓嶅悎鍚�
- log.error("-----褰撳墠鍚堝悓={}娌℃湁璁剧疆璐ㄦ娂浠撳簱锛屼笉鎵ц鎻愰啋鏍哥畻-----", pledgeContract.getName());
- continue;
- }
sumMoney = 0.0;
- for (String depotId : depotIds) {
+ //鑾峰彇璐ㄦ娂搴撳尯
+ List<String> deptIds = new ArrayList<>();
+ for (PledgeContractDepot pledgeContractDepot : pledgeContractDepots) {
+ String depotId = pledgeContractDepot.getPledgeDepot();
+ deptIds.add(pledgeContractDepot.getPledgeDept());
//鏌ヨ浠撳簱淇℃伅
depot = depotService.getCacheDepot(pledgeContract.getCompanyId(), depotId);
if (null == depot) {
@@ -112,24 +124,46 @@
}
sumMoney += depot.getStorageReal() * foodPrice.getPrice();
+ //鎸夊搧绉�+鍗曚环鐢熸垚key锛屾潵浣滀负鍞竴鏍囪瘑锛岀粺璁$伯椋熷搧绉嶇殑搴撳瓨閲忎互鍙婄伯椋熷搧绉嶄俊鎭�
+ String key = depot.getFoodVariety() + foodPrice.getPrice();
+ PledgeReminders pledgeReminders = remindersMap.get(key);
+ if (null == pledgeReminders) {
+ pledgeReminders = new PledgeReminders();
+ pledgeReminders.setFoodVariety(depot.getFoodVariety());
+ pledgeReminders.setFoodVarietyName(depot.getFoodVarietyName());
+ pledgeReminders.setFoodPrice(foodPrice.getPrice());
+ pledgeReminders.setStorageReal(pledgeReminders.getStorageReal() + depot.getStorageReal());
+
+ } else {
+ pledgeReminders.setStorageReal(pledgeReminders.getStorageReal() + depot.getStorageReal());
+ }
+ remindersMap.put(key, pledgeReminders);
+ log.info("-----褰撳墠鍚堝悓={}涓嬩粨搴�={}锛氬搴旂殑瀹為檯鍌ㄩ噺={}锛屽搴旂伯椋熷崟浠�={}-----", pledgeContract.getName(), depot.getName(), depot.getStorageReal(), foodPrice.getPrice());
}
per = sumMoney / backMoney;
- if (per > 1.2) {
- log.error("-----褰撳墠鍚堝悓={}涓嬭川鎶间粨搴�={}搴撳瓨鏈埌寰呰繕娆剧殑120%锛屼笉鐢熸垚杩樻鎻愰啋宸ュ崟-----", pledgeContract.getName(), pledgeContract.getDepotNames());
+ if (per > 1.1) {
+ //璐у彲浠ユ姷璐锋
+ log.error("-----褰撳墠鍚堝悓={}涓嬭川鎶间粨搴�={}搴撳瓨鏈埌寰呰繕娆剧殑110%锛宻umMoney={}锛宐ackMoney={}锛屼笉鐢熸垚杩樻鎻愰啋宸ュ崟-----", pledgeContract.getName(), pledgeContract.getDepotNames(), sumMoney, backMoney);
continue;
}
+ //璐т笉瓒充互鎶佃捶娆� ,鎻愰啋浼佷笟琛ラ挶
- //鎵ц娴佺▼
- conf = workService.getConfByDeptId(pledgeContract.getPledgeDept(), WorkBizType.TYPE_50);
+ //鏍规嵁璐ㄦ娂浠撳簱鐨勫簱鍖猴紝鎵惧埌鍏朵腑涓�涓簱鍖洪厤缃殑鎻愰啋宸ュ崟娴佺▼
+ for (String deptId : deptIds){
+ conf = workService.getConfByDeptId(deptId, WorkBizType.TYPE_50);
+ if(null!=conf && Constant.YN_Y.equals(conf.getValTag())){
+ break;
+ }
+ }
//娴佺▼涓嶅惎鐢�
if (null == conf || Constant.YN_N.equals(conf.getValTag())) {
log.error("-----褰撳墠鍚堝悓={}璐ㄦ娂搴撳尯={}鏈厤缃繕娆炬彁閱掑鎵规祦绋嬶紝鏃犳硶鐢熸垚宸ュ崟鎻愰啋-----", pledgeContract.getName(), pledgeContract.getPledgeDept());
continue;
}
- BaseResp resp = workService.startByBackMoney(pledgeContract, conf);
+ BaseResp resp = workService.startByBackMoney(pledgeContract, conf, remindersMap);
log.info("---------褰撳墠鍚堝悓={}鍚姩杩樻鎻愰啋宸ュ崟娴佺▼------{}", pledgeContract.getName(), resp);
}
}
--
Gitblit v1.9.3