|
|
@@ -81,7 +81,7 @@ public class OrderDunTask {
|
|
|
public void startTask() throws InterruptedException {
|
|
|
updateNewOrderDun();
|
|
|
Thread.sleep(2000);
|
|
|
- updateorderDun();
|
|
|
+// updateorderDun();
|
|
|
Thread.sleep(2000);
|
|
|
updatePaymentNode();
|
|
|
}
|
|
|
@@ -94,49 +94,43 @@ public class OrderDunTask {
|
|
|
try {
|
|
|
LoggerUtils.debug(logger, "======================新催款任务轮询启动===================");
|
|
|
List<OutNewOrderDunBo> list= newOrderDunService.selectAllOrderDun();
|
|
|
- Calendar calendar=Calendar.getInstance();
|
|
|
- Calendar calendar2=Calendar.getInstance();
|
|
|
+ Calendar now=Calendar.getInstance();
|
|
|
+ Calendar now2=Calendar.getInstance();
|
|
|
Date date =new Date();
|
|
|
for (OutNewOrderDunBo o : list) {
|
|
|
- calendar.setTime(date);
|
|
|
- calendar2.setTime(o.getCreateTime());
|
|
|
- if (o!=null&&o.getApproval()!=null&&o.getApproval()!=0&&o.getDunType()==1&&o.getWaitDay()!=null) {
|
|
|
- calendar2.add(Calendar.DATE, o.getWaitDay());
|
|
|
- if (calendar.getTimeInMillis() > calendar2.getTimeInMillis()) {//当前时间大于计算后时间则触发
|
|
|
- updateOrderDun(o);
|
|
|
- Thread.sleep(2000);
|
|
|
- }
|
|
|
- }
|
|
|
- if(o.getProjectType()==OrderDunProjectType.HY.getCode()&&o.getDunType()==2) {
|
|
|
- calendar2.add(Calendar.DATE, o.getEffectiveCount()*180);
|
|
|
- CalendarTimeCleared(calendar2);
|
|
|
- if (calendar.getTimeInMillis() > calendar2.getTimeInMillis()) {//当前时间大于计算后时间则触发
|
|
|
+ now.setTime(date);
|
|
|
+ now2.setTime(o.getCreateTime());
|
|
|
+ //特批首期款 计算出触发时间
|
|
|
+ if (o!=null&&o.getApproval()!=null&&
|
|
|
+ (o.getApproval()==1||o.getApproval()==2)&&
|
|
|
+ o.getDunType()==1&&o.getWaitDay()!=null) {
|
|
|
+ now2.add(Calendar.DATE, o.getWaitDay());
|
|
|
+ //会员-期限 计算触发时间
|
|
|
+ }else if(o.getProjectType()==OrderDunProjectType.HY.getCode()&&o.getDunType()==2) {
|
|
|
+ now2.add(Calendar.DATE, o.getEffectiveCount()*180);
|
|
|
+ CalendarTimeCleared(now2);
|
|
|
+ if (now.getTimeInMillis() > now2.getTimeInMillis()) {//当前时间大于计算后时间则触发
|
|
|
updateOrderDun(o);
|
|
|
Thread.sleep(2000);
|
|
|
}
|
|
|
- }
|
|
|
- if(o.getProjectType()==OrderDunProjectType.CS.getCode()&&o.getDunType()==2) {
|
|
|
+ //财税-期限 计算时间
|
|
|
+ } else if(o.getProjectType()==OrderDunProjectType.CS.getCode()&&o.getDunType()==2) {
|
|
|
//获取年
|
|
|
- int year = calendar2.get(Calendar.YEAR);
|
|
|
+ int year = now2.get(Calendar.YEAR);
|
|
|
//获取月份,0表示1月份
|
|
|
- int month = calendar2.get(Calendar.MONTH) + 1;
|
|
|
+ int month = now2.get(Calendar.MONTH) + 1;
|
|
|
if(month<10)year=year+1;
|
|
|
if(month>9)year=year+2;
|
|
|
- calendar2.set(year, 5, 1);
|
|
|
- CalendarTimeCleared(calendar2);
|
|
|
- if (calendar.getTimeInMillis() > calendar2.getTimeInMillis()) {//当前时间大于计算后时间则触发
|
|
|
- updateOrderDun(o);
|
|
|
- Thread.sleep(2000);
|
|
|
- }
|
|
|
- }
|
|
|
- if (o.getDunType()==0) {
|
|
|
- calendar2.setTime(o.getCustomizeTime());
|
|
|
- CalendarTimeCleared(calendar);
|
|
|
- if (calendar.equals(calendar2)) {
|
|
|
- updateOrderDun(o);
|
|
|
- Thread.sleep(2000);
|
|
|
- }
|
|
|
-
|
|
|
+ now2.set(year, 5, 1);
|
|
|
+ CalendarTimeCleared(now2);
|
|
|
+ //自定义 超过设置的时间则触发
|
|
|
+ }else if (o.getDunType()==0) {
|
|
|
+ now2.setTime(o.getCustomizeTime());
|
|
|
+ CalendarTimeCleared(now);
|
|
|
+ }
|
|
|
+ if (now.getTimeInMillis() > now2.getTimeInMillis()) {
|
|
|
+ updateOrderDun(o);
|
|
|
+ Thread.sleep(2000);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -155,42 +149,33 @@ public class OrderDunTask {
|
|
|
*/
|
|
|
private void updatePaymentNode() {
|
|
|
LoggerUtils.debug(logger, "======================催款任务结束,付款催款开始===================");
|
|
|
- Calendar calendar=Calendar.getInstance();
|
|
|
- Calendar calendar2=Calendar.getInstance();
|
|
|
+ Calendar now=Calendar.getInstance();
|
|
|
+ Calendar now2=Calendar.getInstance();
|
|
|
try {
|
|
|
List<OutPaymentNode> list2=paymentNodeMapper.selectByStatus(0);
|
|
|
for (OutPaymentNode pn : list2) {
|
|
|
- calendar2.setTime(pn.getCreateTime());
|
|
|
+ now2.setTime(pn.getCreateTime());
|
|
|
if(pn.getProjectType()==OrderDunProjectType.HY.getCode()&&pn.getDunType()==2) {
|
|
|
- calendar2.add(Calendar.DATE, pn.getEffectiveCount()*180);
|
|
|
- CalendarTimeCleared(calendar2);
|
|
|
- if (calendar.getTimeInMillis() > calendar2.getTimeInMillis()) {//当前时间大于计算后时间则触发
|
|
|
- updatePaymentNode(pn);
|
|
|
- Thread.sleep(2000);
|
|
|
- }
|
|
|
- }
|
|
|
- if(pn.getProjectType()==OrderDunProjectType.CS.getCode()&&pn.getDunType()==2) {
|
|
|
+ now2.add(Calendar.DATE, pn.getEffectiveCount()*180);
|
|
|
+ CalendarTimeCleared(now2);
|
|
|
+ }else if(pn.getProjectType()==OrderDunProjectType.CS.getCode()&&pn.getDunType()==2) {
|
|
|
// 获取年
|
|
|
- int year = calendar2.get(Calendar.YEAR);
|
|
|
+ int year = now2.get(Calendar.YEAR);
|
|
|
//获取月份,0表示1月份
|
|
|
- int month = calendar2.get(Calendar.MONTH) + 1;
|
|
|
+ int month = now2.get(Calendar.MONTH) + 1;
|
|
|
if(month<10)year=year+1;
|
|
|
if(month>9)year=year+2;
|
|
|
- calendar2.set(year, 5, 1);
|
|
|
- CalendarTimeCleared(calendar2);
|
|
|
- if (calendar.getTimeInMillis() > calendar2.getTimeInMillis()) {//当前时间大于计算后时间则触发
|
|
|
- updatePaymentNode(pn);
|
|
|
- Thread.sleep(2000);
|
|
|
- }
|
|
|
- }
|
|
|
- if (pn.getDunType()==0) {
|
|
|
- calendar2.setTime(pn.getPartyTime());
|
|
|
- CalendarTimeCleared(calendar);
|
|
|
- if (calendar.equals(calendar2)) {
|
|
|
- updatePaymentNode(pn);
|
|
|
- Thread.sleep(2000);
|
|
|
- }
|
|
|
+ now2.set(year, 5, 1);
|
|
|
+ CalendarTimeCleared(now2);
|
|
|
+
|
|
|
+ }else if (pn.getDunType()==0) {
|
|
|
+ now2.setTime(pn.getPartyTime());
|
|
|
+ CalendarTimeCleared(now);
|
|
|
}
|
|
|
+ if (now.getTimeInMillis() > now2.getTimeInMillis()) {//当前时间大于计算后时间则触发
|
|
|
+ updatePaymentNode(pn);
|
|
|
+ Thread.sleep(1000);
|
|
|
+ }
|
|
|
}
|
|
|
} catch (InterruptedException e) {
|
|
|
LoggerUtils.error(getClass(), "===========================付款催款失败==========================", e);
|
|
|
@@ -320,11 +305,11 @@ public class OrderDunTask {
|
|
|
|
|
|
|
|
|
|
|
|
- private void CalendarTimeCleared(Calendar calendar) {
|
|
|
- calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
- calendar.set(Calendar.MINUTE, 0);
|
|
|
- calendar.set(Calendar.SECOND, 0);
|
|
|
- calendar.set(Calendar.MILLISECOND, 0);
|
|
|
+ private void CalendarTimeCleared(Calendar now) {
|
|
|
+ now.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ now.set(Calendar.MINUTE, 0);
|
|
|
+ now.set(Calendar.SECOND, 0);
|
|
|
+ now.set(Calendar.MILLISECOND, 0);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -333,9 +318,10 @@ public class OrderDunTask {
|
|
|
o.setId(t.getId());
|
|
|
o.setStatus(1);
|
|
|
o.setStartTime(new Date());
|
|
|
- newOrderDunService.updateDun(o);
|
|
|
+ if (t.getMoney()==null)t.setMoney(new BigDecimal(0));
|
|
|
tOrderMidMapper.addOrderReceivables(t.getOrderNo(),t.getMoney());
|
|
|
TOrderMid tm=tOrderMidMapper.selectByOrderNo(t.getOrderNo());
|
|
|
+ newOrderDunService.updateDun(o);
|
|
|
TArrearsDun td=new TArrearsDun();
|
|
|
td.setOrderArrears(tm.getOrderArrears());
|
|
|
td.setOrderReceivables(tm.getOrderReceivables());
|