Browse Source

催款催款定时任务修改

anderx 7 months ago
parent
commit
aa56b832b9
1 changed files with 55 additions and 94 deletions
  1. 55 94
      src/main/java/com/goafanti/common/task/OrderDunTask.java

+ 55 - 94
src/main/java/com/goafanti/common/task/OrderDunTask.java

@@ -1,7 +1,6 @@
 package com.goafanti.common.task;
 
 
-import com.goafanti.admin.bo.AdminListBo;
 import com.goafanti.common.bo.EmailBo;
 import com.goafanti.common.bo.ErrorDunListBo;
 import com.goafanti.common.constant.AFTConstants;
@@ -13,7 +12,6 @@ import com.goafanti.common.model.TOrderMid;
 import com.goafanti.common.model.TOrderNew;
 import com.goafanti.common.utils.AsyncUtils;
 import com.goafanti.common.utils.LoggerUtils;
-import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.order.bo.*;
 import com.goafanti.order.enums.OrderDunProjectType;
 import com.goafanti.order.service.LegalAffairsService;
@@ -241,101 +239,64 @@ public class OrderDunTask {
 	* 	每月1号凌晨4点轮询处理需要欠款催款的信息
 	*
 	*/
-	@Scheduled(cron = "0 0 4 1 * ?")
+//	@Scheduled(cron = "0 0 4 1 * ?")
+	@Scheduled(cron = "0 33 9 * * ?")
 //	@RequestMapping(value = "/open/pushOrderArrearsDun", method = RequestMethod.GET)
-	public void pushOrderArrearsDun(){
-		try {
-			LoggerUtils.debug(logger, "======================欠款催款启动===================");
-			Date date=new Date();
-			//运算 list(未启动) list2(催款中) list3(已完成)订单的欠款催款
-			List<TArrearsDun> list=tArrearsDunMapper.selectStatusAll(0);
-			List<TArrearsDun> list2=tArrearsDunMapper.selectStatusAll(1);
-			List<TArrearsDun> list3=tArrearsDunMapper.selectStatusAndAmount(2);
-			for (TArrearsDun td : list) {
-				TOrderNewBo b  = tOrderNewMapper.getSaleIdByOno(td.getOrderNo());
-
-				TOrderMid tm=tOrderMidMapper.selectByOrderNo(td.getOrderNo());
-				if (b==null||b.getDeleteSign()==null||b.getDeleteSign()==1){
-					td.setDunStatus(3);
-					td.setEndTime(date);
-					td.setOrderArrears(tm.getOrderArrears());
-					tArrearsDunMapper.updateByPrimaryKeySelective(td);
-				}else if (tm.getOrderArrears().compareTo(new BigDecimal(0))>0) {
-				//如果欠款大于0则需要触发邮件
-					td.setDunStatus(1);
-					td.setStartTime(date);
-					td.setOrderArrears(tm.getOrderArrears());
-					td.setOrderReceivables(tm.getOrderReceivables());
-					orderNewService.addNotic(NoticeStatus.ORDER_ARREARS_DUN.getCode(),b,null);
-					tArrearsDunMapper.updateByPrimaryKeySelective(td);
-				}else if(tm.getOrderArrears().compareTo(new BigDecimal(0))<1) {
-					td.setDunStatus(2);
-					td.setEndTime(date);
-					td.setOrderArrears(tm.getOrderArrears());
-					tArrearsDunMapper.updateByPrimaryKeySelective(td);
-				}
-				Thread.sleep(2000);
-			}
-			for (TArrearsDun ta : list2) {
-				TOrderMid tm=tOrderMidMapper.selectByOrderNo(ta.getOrderNo());
-				TOrderNewBo b  = tOrderNewMapper.getSaleIdByOno(ta.getOrderNo());
-				if (b==null||b.getDeleteSign()==null||b.getDeleteSign()==1){
-					ta.setDunStatus(3);
-					ta.setEndTime(date);
-					ta.setOrderArrears(tm.getOrderArrears());
-					tArrearsDunMapper.updateByPrimaryKeySelective(ta);
-				}else if (tm.getOrderArrears().compareTo(new BigDecimal(0))>0) {
-				//如果欠款大于0则需要触发邮件
-					ta.setDunStatus(3);
-					tArrearsDunMapper.updateByPrimaryKeySelective(ta);
-					ta.setId(null);
-					ta.setDunStatus(1);
-					ta.setStartTime(date);
-					ta.setOrderArrears(tm.getOrderArrears());
-					ta.setOrderReceivables(tm.getOrderReceivables());
-					tArrearsDunMapper.insertSelective(ta);
-					orderNewService.addNotic(NoticeStatus.ORDER_ARREARS_DUN.getCode(),b,null);
-				}else if(tm.getOrderArrears().compareTo(new BigDecimal(0))<1) {
-					ta.setDunStatus(2);
-					ta.setOrderArrears(tm.getOrderArrears());
-					tArrearsDunMapper.updateByPrimaryKeySelective(ta);
-				}
-				Thread.sleep(2000);
+	public void pushOrderArrearsDun() {
+    try {
+        LoggerUtils.debug(logger, "======================欠款催款启动===================");
+        Date date = new Date();
+
+        List<TArrearsDun> list = tArrearsDunMapper.selectStatusAll(0);
+        List<TArrearsDun> list2 = tArrearsDunMapper.selectStatusAll(1);
+        List<TArrearsDun> list3 = tArrearsDunMapper.selectStatusAndAmount(2);
+
+        processList(list, date);
+        processList(list2, date);
+        processList(list3, date);
+
+        LoggerUtils.debug(getClass(), "===========================欠款催款完成==========================");
+    } catch (Exception e) {
+        LoggerUtils.error(getClass(), "===========================欠款催款失败==========================", e);
+    }
+}
 
-			}
-			for (TArrearsDun ta : list3) {
-				TOrderMid tm=tOrderMidMapper.selectByOrderNo(ta.getOrderNo());
-				TOrderNewBo b  = tOrderNewMapper.getSaleIdByOno(ta.getOrderNo());
-				AdminListBo a = adminMapper.getDeptNameByAid(TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
-				if (b==null||b.getDeleteSign()==null||b.getDeleteSign()==1){
-					ta.setDunStatus(3);
-					ta.setEndTime(date);
-					ta.setOrderArrears(tm.getOrderArrears());
-					tArrearsDunMapper.updateByPrimaryKeySelective(ta);
-				}else if (tm.getOrderArrears().compareTo(new BigDecimal(0))>0) {
-				//如果欠款大于0则需要触发邮件
-					ta.setDunStatus(3);
-					tArrearsDunMapper.updateByPrimaryKeySelective(ta);
-					ta.setId(null);
-					ta.setDunStatus(1);
-					ta.setStartTime(date);
-					ta.setOrderArrears(tm.getOrderArrears());
-					ta.setOrderReceivables(tm.getOrderReceivables());
-					tArrearsDunMapper.insertSelective(ta);
-					orderNewService.addNotic(NoticeStatus.ORDER_ARREARS_DUN.getCode(),b,null);
-				}else if(tm.getOrderArrears().compareTo(new BigDecimal(0))<1) {
-					ta.setDunStatus(2);
-					ta.setOrderReceivables(tm.getOrderReceivables());
-					ta.setOrderArrears(tm.getOrderArrears());
-					tArrearsDunMapper.updateByPrimaryKeySelective(ta);
-				}
-				Thread.sleep(2000);
+private void processList(List<TArrearsDun> tarrearsList, Date date) {
+    for (TArrearsDun ta : tarrearsList) {
+        TOrderMid tm = tOrderMidMapper.selectByOrderNo(ta.getOrderNo());
+        TOrderNewBo b = tOrderNewMapper.getSaleIdByOno(ta.getOrderNo());
+
+        if (b == null || b.getDeleteSign() == null || b.getDeleteSign() == 1) {
+            ta.setDunStatus(3);
+            ta.setEndTime(date);
+            ta.setOrderArrears(tm.getOrderArrears());
+            tArrearsDunMapper.updateByPrimaryKeySelective(ta);
+        } else {
+            BigDecimal arrears = tm.getOrderArrears();
+            if (arrears.compareTo(BigDecimal.ZERO) > 0) {
+                // 欠款大于0则触发邮件并新建记录
+                ta.setDunStatus(3);
+                tArrearsDunMapper.updateByPrimaryKeySelective(ta);
+                ta.setId(null);
+                ta.setDunStatus(1);
+                ta.setStartTime(date);
+                ta.setOrderArrears(arrears);
+                ta.setOrderReceivables(tm.getOrderReceivables());
+                tArrearsDunMapper.insertSelective(ta);
+                orderNewService.addNotic(NoticeStatus.ORDER_ARREARS_DUN.getCode(), b, null);
+            } else if (arrears.compareTo(BigDecimal.ZERO) <= 0) {
+                ta.setDunStatus(2);
+                ta.setOrderArrears(arrears);
+                ta.setOrderReceivables(tm.getOrderReceivables());
+                tArrearsDunMapper.updateByPrimaryKeySelective(ta);
+            }
+        }
+
+        // 若确实需要限流,请使用异步方式替代 Thread.sleep()
+        // Thread.sleep(200); // 建议删除或改为异步处理
+    }
+}
 
-			}
-		} catch (Exception e) {
-			LoggerUtils.error(getClass(), "===========================欠款催款失败==========================", e);
-		}
-	}
 
 //	/**
 //	*	旧催款处理