Просмотр исходного кода

资金预警需求:
1.其他账户、动账提醒的开始时间在调度任务执行前设置

lisheng 3 дней назад
Родитель
Сommit
b62b1d27ea

+ 8 - 3
main/java/kd/cosmic/jkjt/tmc/bei/task/AccChangeMsgWarnTask.java

@@ -35,12 +35,17 @@ public class AccChangeMsgWarnTask extends AbstractTask implements StopTask {
     private int changeMinute = 1*60 ;
     private static final MsgWarnTypeEnum WARTYPE = MsgWarnTypeEnum.ACCCHANGE;
 
+    Date taskBeginDate = new Date();
+
+    Date taskEndDate = new Date();
+
     @Override
     public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
         Set<Long> largeTransIdConfig = getAccChangeRange();
         if(map.containsKey("minute") && StringUtils.isNotEmpty((String) map.get("minute"))){
             changeMinute = Integer.parseInt((String) map.get("minute"));
         }
+        taskBeginDate = DateUtils.getMinutesBefore(changeMinute);
 
         largeTransIdConfig.forEach(rangeId -> accChangeSendMessage(rangeId));
     }
@@ -126,9 +131,9 @@ public class AccChangeMsgWarnTask extends AbstractTask implements StopTask {
     protected DynamicObjectCollection getTransDetailData(DynamicObject company) {
         List<QFilter> filterList = new ArrayList<>();
         filterList.add(new QFilter(BeiBeTransDetailConstant.KEY_COMPANY, QFilter.equals, company.getPkValue()));
-        Date beginDate = DateUtils.getMinutesBefore(changeMinute);
-        filterList.add(new QFilter(BeiBeTransDetailConstant.KEY_BIZTIME, QFilter.large_equals, beginDate));
-        filterList.add(new QFilter(BeiBeTransDetailConstant.KEY_BIZTIME, QFilter.less_than, new Date()));
+
+        filterList.add(new QFilter(BeiBeTransDetailConstant.KEY_BIZTIME, QFilter.large_equals, taskBeginDate));
+        filterList.add(new QFilter(BeiBeTransDetailConstant.KEY_BIZTIME, QFilter.less_than, taskEndDate));
 
         // 从银企同步的流水
         filterList.add(new QFilter("accountbank.issetbankinterface", QFilter.equals, true));

+ 13 - 5
main/java/kd/cosmic/jkjt/tmc/bei/task/OtherAccountMsgWarnTask.java

@@ -6,6 +6,8 @@ import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.exception.KDException;
 import kd.bos.logging.BizLog;
+import kd.bos.logging.Log;
+import kd.bos.logging.LogFactory;
 import kd.bos.orm.ORM;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
@@ -31,16 +33,22 @@ import java.util.stream.Collectors;
  * 其他账户每日提醒提醒
  */
 public class OtherAccountMsgWarnTask extends AbstractTask implements StopTask {
+    private static final Log logger = LogFactory.getLog(OtherAccountMsgWarnTask.class);
+
     private MsgWarnTypeEnum WARTYPE = MsgWarnTypeEnum.OTHERACCOUNT;
-    private int changeMinute = 2*60 ;
+    private int changeMinuteData = 2*60 ;
+
+    Date taskBeginDate = null;
     @Override
     public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
         // 查询生效的账户大额交易通知配置
         Set<Long> largeTransIdConfig = getMsgWarnConfig();
         Object changeMinute = map.get("changeMinute");
         if(map.containsKey("changeMinute") && StringUtils.isNotEmpty((String)changeMinute)){
-            changeMinute = Integer.parseInt((String) changeMinute);
+            changeMinuteData = Integer.parseInt((String) changeMinute);
         }
+
+        taskBeginDate = DateUtils.getMinutesBefore(changeMinuteData);
         largeTransIdConfig.forEach(configId -> transConfigSendMessage(configId));
     }
 
@@ -81,9 +89,7 @@ public class OtherAccountMsgWarnTask extends AbstractTask implements StopTask {
             receiverIdSet.add(unitLeader.getLong("id"));
         }
 
-
-        Date beginDate = DateUtils.getMinutesBefore(changeMinute);
-        DynamicObjectCollection transDetailData = getTransDetailData(company, beginDate);
+        DynamicObjectCollection transDetailData = getTransDetailData(company, taskBeginDate);
         if(transDetailData == null || transDetailData.isEmpty()){
             BizLog.log("没有符合条件的数据,不进行消息发送。");
             return;
@@ -157,6 +163,8 @@ public class OtherAccountMsgWarnTask extends AbstractTask implements StopTask {
 
         // 账户用途=01	基本存款账户或者02	一般存款账户
         filterList.add(new QFilter("accountbank.acctproperty.number", QFilter.in, Arrays.asList("01","02")));
+
+        logger.info("查询账户交易明细条件:{}" , filterList);
         return QueryServiceHelper.queryDataSet(this.getClass().getName() ,BeiBeTransDetailConstant.ENTITYID,
                 "id,billno,company.name,accountbank.name,accountbank.bankaccountnumber,bank.name,debitamount,oppunit,description,bizdate,biztime",
                 filterList.toArray(new QFilter[0]),"bizdate desc");