1.定时任务和推送消息的改动。

2.推送消息在同时执行多个时错误问题。
This commit is contained in:
zhangbb 2019-04-11 20:10:07 +08:00
parent 4b2a6e312b
commit 7593ad9a1d
4 changed files with 49 additions and 13 deletions

View File

@ -17,7 +17,10 @@ import com.amarsoft.are.jbo.JBOFactory;
import com.tenwa.officetempalte.util.FileOperatorUtil;
public class BankCardChangeReminderMessage extends BaseBussinessMessage{
/*
* 非最终版如有具体需求再重新调整(non-Javadoc)
* @see com.tenwa.comm.message.controller.BaseBussinessMessage#loadMessageInfo()
*/
@Override
public void loadMessageInfo()throws Exception{
String reminderDays = this.messageParam.get("reminderdays")==null?"0":this.messageParam.get("reminderdays");

View File

@ -1,5 +1,8 @@
package com.tenwa.comm.message.controller;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@ -22,6 +25,7 @@ import com.tenwa.officetempalte.util.FileOperatorUtil;
public class BaseBussinessMessage extends BaseTable {
public String messageId;
public String CUSTOMER_NAME;
public BizObject messageConfig;
public String messageConfigId;
public JBOTransaction curTx;
@ -33,6 +37,8 @@ public class BaseBussinessMessage extends BaseTable {
messageConfig= messageManager.createQuery(sql)
.setParameter("id", this.getMessageConfigId())
.getSingleResult(true);
//想要实现多个合同分别提醒将UUID放到saveBaseMessage方法里
//同时再写字类时参数cparam去掉ID在saveBaseMessage里将ID拼接一下
this.messageId=UUID.randomUUID().toString().replaceAll("-", "");
String fixedParam=messageConfig.getAttribute("cparam").getString();
if(fixedParam.length()>0&&(!fixedParam.equals("[]"))){
@ -47,14 +53,20 @@ public class BaseBussinessMessage extends BaseTable {
this.loadMessageInfo();
}
public void loadMessageInfo()throws Exception{
Date currentTime = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
Calendar calendar = Calendar.getInstance();
calendar.setTime(currentTime);
Date reminderTime = calendar.getTime();
String reminderDate = format.format(reminderTime);
Map<String,Object>cparam=new HashMap<String,Object>();
cparam.put("cdate","2013-12-11");
cparam.put("date",reminderDate);
cparam.put("CUSTOMER_NAME",this.getCUSTOMER_NAME());
Map<String,String>message=new HashMap<String,String>();
message.put("MessageTitle", FileOperatorUtil.getFileNameByFormual(this.messageConfig.getAttribute("message_title").getString(),cparam));
message.put("MessageContent", "");
message.put("Cparam", "ID="+this.messageId+"&ComputerData="+"2013-12-11");
message.put("Cparam", "ID="+this.messageId+"&reminderDate="+reminderDate);
Map<String,String>userIds=this.getMessageUsers();
for(String key:userIds.keySet()){
@ -111,6 +123,17 @@ public class BaseBussinessMessage extends BaseTable {
public void setCurTx(JBOTransaction curTx) {
this.curTx = curTx;
}
public String getCUSTOMER_NAME() {
return CUSTOMER_NAME;
}
public void setCUSTOMER_NAME(String cUSTOMER_NAME) {
CUSTOMER_NAME = cUSTOMER_NAME;
}
public void saveBaseMessageSimple(JBOTransaction curTx) throws Exception{
this.messageConfigId=messageId;
this.curTx=curTx;
this.loadConfig();
this.loadMessageInfo();
}
}

View File

@ -65,9 +65,12 @@ public class BaseMessageJob implements Job {
public void executeMessage( JBOTransaction tx ) throws Exception{
List<String>configNo=this.loadMessageNo(tx);
if(configNo.size()>1){
ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
/*ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
for(String key:configNo){
singleThreadExecutor.execute(new BaseMessageTimeTask(key,tx));
}*/
for(String key:configNo){
new BaseMessageTimeTask(key,tx).run();
}
}else{
if(configNo.size()==1){

View File

@ -18,7 +18,10 @@ import com.amarsoft.are.jbo.JBOFactory;
import com.tenwa.officetempalte.util.FileOperatorUtil;
public class CardChangeReminderMessage extends BaseBussinessMessage{
/*
* 非最终版如有具体需求再重新调整(non-Javadoc)
* @see com.tenwa.comm.message.controller.BaseBussinessMessage#loadMessageInfo()
*/
@Override
public void loadMessageInfo()throws Exception{
String reminderDays = this.messageParam.get("reminderdays")==null?"0":this.messageParam.get("reminderdays");
@ -39,15 +42,19 @@ public class CardChangeReminderMessage extends BaseBussinessMessage{
Map<String,String>message=new HashMap<String,String>();
message.put("MessageTitle", FileOperatorUtil.getFileNameByFormual(this.messageConfig.getAttribute("message_title").getString(),cparam));
message.put("MessageContent", "");
message.put("Cparam", "ID="+this.messageId+"&QueryDate="+queryDate);
message.put("Cparam", "&QueryDate="+queryDate);
BizObjectManager liiManager = JBOFactory.getBizObjectManager(LB_DOC_CONTRACT_LIST.CLASS_NAME);
List<BizObject> liis = liiManager.createQuery("sign_type='COMPLETE' and file_flag='yes' and INPUTTIME like :queryDate").setParameter("queryDate",queryDate+"%").getResultList(false);
if(liis!=null && liis.size()>0){
Map<String,String>userIds=this.getMessageUsers();
for(String key:userIds.keySet()){
message.put("UserId", key);
this.saveBaseMessage(message);
}
for(BizObject lii:liis){
String contract_id = lii.getAttribute("contract_id").toString();
message.put("contractId", contract_id);
for(String key:userIds.keySet()){
message.put("UserId", key);
this.saveBaseMessage(message);
}
}
}
}