配置新一套待办推送

This commit is contained in:
fang 2025-04-08 20:17:16 +08:00
parent 3f48c86f23
commit 34a735d830
6 changed files with 535 additions and 38 deletions

View File

@ -74,6 +74,8 @@ public class ToDoResendTack extends AbstractTask {
String accountId = System.getProperty("backlog-accountid");
logger.info("拼接sql,此次拼接的待办类型为:" + t_status + "(1:待办、2已办、5撤销),使用参数startTime" + startTime + "endTime:"
+ endTime);
Object shkd_type = SystemParamServiceHelper.getPublicParameter("shkd_type");
StringBuilder cwbSql1 = new StringBuilder();
cwbSql1.append("SELECT ");
cwbSql1.append("b.FID,");
@ -224,12 +226,44 @@ public class ToDoResendTack extends AbstractTask {
form.append("\"0\"");
form.append("}");
CreateToDoHandler.get_CreateToDoHandler().sendCreateToDo(form.toString(),title,next.getLong("fid").toString(),userName,next.getString("fbillno"));
if(java.util.Objects.equals(shkd_type,"0")){
//正式环境
CreateToDoHandler.get_CreateToDoHandler().sendCreateToDo(form.toString(),title,next.getLong("fid").toString(),userName,next.getString("fbillno"));
}else if(java.util.Objects.equals(shkd_type,"1")){
//测试环境
CreateToDoHandler.get_CreateToDoHandler().sendCreateToDoTest(form.toString(),title,next.getLong("fid").toString(),userName,next.getString("fbillno"));
}else if(java.util.Objects.equals(shkd_type,"2")){
//二套环境
CreateToDoHandler.get_CreateToDoHandler().sendCreateToDo(form.toString(),title,next.getLong("fid").toString(),userName,next.getString("fbillno"));
CreateToDoHandler.get_CreateToDoHandler().sendCreateToDoTest(form.toString(),title,next.getLong("fid").toString(),userName,next.getString("fbillno"));
}
break;
case "2":
DealToDoHandler.get_DealToDoHandler().sendDealToDo(next.getLong("fid"),userName,next.getString("fbillno"));
if(java.util.Objects.equals(shkd_type,"0")){
//正式环境
DealToDoHandler.get_DealToDoHandler().sendDealToDo(next.getLong("fid"),userName,next.getString("fbillno"));
}else if(java.util.Objects.equals(shkd_type,"1")){
//测试环境
DealToDoHandler.get_DealToDoHandler().sendDealToDoTest(next.getLong("fid"),userName,next.getString("fbillno"));
}else if(java.util.Objects.equals(shkd_type,"2")){
//二套环境
DealToDoHandler.get_DealToDoHandler().sendDealToDo(next.getLong("fid"),userName,next.getString("fbillno"));
DealToDoHandler.get_DealToDoHandler().sendDealToDoTest(next.getLong("fid"),userName,next.getString("fbillno"));
}
break;
case "5":
deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDo(next.getLong("fid"),userName,next.getString("fbillno"));
if(java.util.Objects.equals(shkd_type,"0")){
//正式环境
deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDo(next.getLong("fid"),userName,next.getString("fbillno"));
}else if(java.util.Objects.equals(shkd_type,"1")){
//测试环境
deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDoTest(next.getLong("fid"),userName,next.getString("fbillno"));
}else if(java.util.Objects.equals(shkd_type,"2")){
//二套环境
deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDo(next.getLong("fid"),userName,next.getString("fbillno"));
deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDoTest(next.getLong("fid"),userName,next.getString("fbillno"));
}
break;
default:
break;

View File

@ -1,13 +1,26 @@
package shkd.sys.sys.midservice.handler;
import cn.hutool.crypto.SmUtil;
import com.alibaba.fastjson.JSONObject;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.exception.ErrorCode;
import kd.bos.exception.KDException;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.workflow.engine.msg.ctx.MessageContext;
import kd.bos.workflow.engine.msg.info.ToDoInfo;
import shkd.sys.sys.midservice.constant.ToDoCenterConstant;
import shkd.sys.sys.midservice.model.BacklogMessage;
import shkd.sys.sys.midservice.utils.GetUrlUtils;
import shkd.sys.sys.midservice.utils.RequestClient;
import shkd.sys.sys.utils.AesUtils;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
@ -22,34 +35,35 @@ public class CreateToDoHandler {
private static Log logger = LogFactory.getLog(CreateToDoHandler.class);
private static CreateToDoHandler _CreateToDoHandler;
public static synchronized CreateToDoHandler get_CreateToDoHandler(){
if(_CreateToDoHandler == null){
_CreateToDoHandler = new CreateToDoHandler();
public static synchronized CreateToDoHandler get_CreateToDoHandler() {
if (_CreateToDoHandler == null) {
_CreateToDoHandler = new CreateToDoHandler();
}
return _CreateToDoHandler;
}
public boolean
sendCreateToDo(String messageInfo,String title,String appRecordId,String userId,String number) {
sendCreateToDo(String messageInfo, String title, String appRecordId, String userId, String number) {
logger.info("###进入待办推送接口数据组装");
try {
//调用接口结果
String result = RequestClient.getInstance().callService(ToDoCenterConstant.URI_send_addNew,messageInfo);
logger.info("###接口返回结果"+result);
String result = RequestClient.getInstance().callService(ToDoCenterConstant.URI_send_addNew, messageInfo);
logger.info("###接口返回结果" + result);
//接口调用结果
JSONObject jsonObject = JSONObject.parseObject(result);
if(jsonObject == null){
RequestClient.getInstance().saveCreateToDo(title,ToDoCenterConstant.URI_send_addNew,false,result,messageInfo,appRecordId,userId,number);
if (jsonObject == null) {
RequestClient.getInstance().saveCreateToDo(title, ToDoCenterConstant.URI_send_addNew, false, result, messageInfo, appRecordId, userId, number);
logger.info("###响应报文为空");
return false;
}else{
if(Objects.equals("success",jsonObject.getString("status"))){
} else {
if (Objects.equals("success", jsonObject.getString("status"))) {
//发送成功
//调用保存操作
RequestClient.getInstance().saveCreateToDo(title,ToDoCenterConstant.URI_send_addNew,true,result,messageInfo,appRecordId,userId,number);
RequestClient.getInstance().saveCreateToDo(title, ToDoCenterConstant.URI_send_addNew, true, result, messageInfo, appRecordId, userId, number);
return true;
}else{
} else {
//调用保存操作
RequestClient.getInstance().saveCreateToDo(title,ToDoCenterConstant.URI_send_addNew,false,result,messageInfo,appRecordId,userId,number);
RequestClient.getInstance().saveCreateToDo(title, ToDoCenterConstant.URI_send_addNew, false, result, messageInfo, appRecordId, userId, number);
//发送失败
logger.error("###接口调通失败");
return false;
@ -57,9 +71,41 @@ public class CreateToDoHandler {
}
} catch (Exception e) {
logger.error("###调用接口失败:"+e.getMessage(),e);
logger.error("###调用接口失败:" + e.getMessage(), e);
return false;
}
}
public boolean
sendCreateToDoTest(String messageInfo, String title, String appRecordId, String userId, String number) {
logger.info("###进入待办推送接口数据组装");
try {
//调用接口结果
String result = RequestClient.getInstance().callServiceTest(ToDoCenterConstant.URI_send_addNew, messageInfo);
logger.info("###接口返回结果" + result);
//接口调用结果
JSONObject jsonObject = JSONObject.parseObject(result);
if (jsonObject == null) {
RequestClient.getInstance().saveCreateToDoTest(title, ToDoCenterConstant.URI_send_addNew, false, result, messageInfo, appRecordId, userId, number);
logger.info("###响应报文为空");
return false;
} else {
if (Objects.equals("success", jsonObject.getString("status"))) {
//发送成功
//调用保存操作
RequestClient.getInstance().saveCreateToDoTest(title, ToDoCenterConstant.URI_send_addNew, true, result, messageInfo, appRecordId, userId, number);
return true;
} else {
//调用保存操作
RequestClient.getInstance().saveCreateToDoTest(title, ToDoCenterConstant.URI_send_addNew, false, result, messageInfo, appRecordId, userId, number);
//发送失败
logger.error("###接口调通失败");
return false;
}
}
} catch (Exception e) {
logger.error("###调用接口失败:" + e.getMessage(), e);
return false;
}
}
}

View File

@ -57,5 +57,35 @@ public class DealToDoHandler {
return false;
}
}
public boolean sendDealToDoTest(Long appRecordId, String userId,String number) {
try {
String part = "{ \"appRecordId\": \""+appRecordId+"\", \"userId\": \""+userId+"\" }";
//调用接口结果
String result = RequestClient.getInstance().callServiceTest(ToDoCenterConstant.URI_SEND_finish, part);
//保存发送消息日志
//接口调用结果
JSONObject jsonObject = JSONObject.parseObject(result);
if (jsonObject == null) {
//发送失败
RequestClient.getInstance().saveDeLToDoTest(appRecordId, userId, ToDoCenterConstant.URI_SEND_finish, false, result, part, "2",number);
logger.info("###响应报文为空");
return false;
} else {
if(Objects.equals("success",jsonObject.getString("status"))){
//发送成功
RequestClient.getInstance().saveDeLToDoTest(appRecordId, userId, ToDoCenterConstant.URI_SEND_finish, true, result, part, "2",number);
return true;
} else {
//发送失败
RequestClient.getInstance().saveDeLToDoTest(appRecordId, userId, ToDoCenterConstant.URI_SEND_finish, false, result, part, "2",number);
return false;
}
}
} catch (Exception e) {
logger.error("调用接口失败:" + e.getMessage(), e);
return false;
}
}
}

View File

@ -57,4 +57,33 @@ public class deleteToDoHandler {
return false;
}
}
public boolean sendDeleteToDoTest(Long appRecordId,String userId,String number) {
try {
//body
String part = "{ \"appRecordId\": \""+appRecordId+"\", \"userId\": \""+userId+"\" }";
//调用接口结果
String result = RequestClient.getInstance().callServiceTest(ToDoCenterConstant.URI_send_deleteP,part);
//保存发送消息日志
//接口调用结果
JSONObject jsonObject = JSONObject.parseObject(result);
if(jsonObject== null){
RequestClient.getInstance().saveDeLToDoTest(appRecordId,userId,ToDoCenterConstant.URI_send_deleteP,false,result,part,"5",number);
logger.info("###响应报文为空");
return false;
}else{
if(Objects.equals("success",jsonObject.getString("status"))){
//发送成功
RequestClient.getInstance().saveDeLToDoTest(appRecordId,userId,ToDoCenterConstant.URI_send_deleteP,true,result,part,"5",number);
return true;
}else{
RequestClient.getInstance().saveDeLToDoTest(appRecordId,userId,ToDoCenterConstant.URI_send_deleteP,false,result,part,"5",number);
return false;
}
}
} catch (Exception e) {
logger.error("###调用中台服务消息中心发送消息服务异常:"+e.getMessage(),e);
return false;
}
}
}

View File

@ -21,6 +21,7 @@ import shkd.sys.sys.utils.AesUtils;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* @Description:
@ -36,9 +37,21 @@ public class BacklogServiceHandle extends AbstractServiceHandler {
private static final Log logger = LogFactory.getLog(BacklogServiceHandle.class);
public void createToDo(MessageContext ctx, ToDoInfo todoInfo) {
logger.info("###创建待办_createToDo");
//几个待办
Object shkd_type = SystemParamServiceHelper.getPublicParameter("shkd_type");
if(Objects.equals(shkd_type,"0")){
//正式环境
getToDoFormal(ctx,todoInfo);
}else if(Objects.equals(shkd_type,"1")){
//测试环境
getToDoTest(ctx,todoInfo);
}else if(Objects.equals(shkd_type,"2")){
//二套环境
getToDoTest(ctx,todoInfo);
getToDoFormal(ctx,todoInfo);
}
logger.info("###结束待办_createToDo");
/* //几个待办
List<Long> userIds = todoInfo.getUserIds();
DynamicObjectCollection query = QueryServiceHelper.query("bos_user", "id,name,number" +
",phone,username", new QFilter[]{new QFilter("id", "in", userIds)});
@ -56,7 +69,116 @@ public class BacklogServiceHandle extends AbstractServiceHandler {
throw new KDException(errorCode, e);
}
StringBuilder form = new StringBuilder();
// BacklogMessage backlogMessage = new BacklogMessage();
form.append("{");
form.append("\"title\":");
form.append("\"").append(todoInfo.getTitle()).append("\",");
form.append("\"bName\":");
form.append("\"").append("司库").append("\",");
form.append("\"bussinessCode\":");
form.append("\"").append("EOSS").append("\",");
form.append("\"urGency\":");
form.append("\"0\",");
form.append("\"currentStepName\":");
form.append("\"").append(dynamicObject.getString("name")).append("\",");
form.append("\"sendUserName\":");
form.append("\"").append(dynamicObject.getString("startname")).append("\",");
form.append("\"receiveUsersysName\":");
form.append("\"").append(query_one.getString("username")).append("\",");
form.append("\"receiveUserId\":");
form.append("\"").append(query_one.getString("username")).append("\",");
form.append("\"handleUrl\":");
Map<String, Object> taskInfo = GetUrlUtils.getTaskInfo(todoInfo.getTaskId());
String url = GetUrlUtils.buildTaskUrl(taskInfo);
form.append("\"").append(url).append("&userName=").append(userName).append("\",");
form.append("\"appHandleUrl\":");
form.append("\"").append(url).append("&userName=").append(userName).append("\",");
form.append("\"appName\":");
form.append("\"").append(ctx.getEntityName()).append("\",");
form.append("\"pendingId\":");
form.append("\"").append(todoInfo.getTaskId()).append("\",");
form.append("\"pendingAttr\":");
form.append("\"0\"");
form.append("}");
logger.info("###待办拼接请求体:"+form);
CreateToDoHandler.get_CreateToDoHandler().sendCreateToDo(form.toString(),todoInfo.getTitle(),
todoInfo.getTaskId().toString(),query_one.getString("username"),dynamicObject.getString("billno"));
}
logger.info("###结束待办_createToDo");*/
}
//已办
public void dealToDo(MessageContext ctx, ToDoInfo info){
logger.info("###创建已办_dealToDo");
Object shkd_type = SystemParamServiceHelper.getPublicParameter("shkd_type");
if(Objects.equals(shkd_type,"0")){
//正式环境
getDealFormal(ctx,info);
}else if(Objects.equals(shkd_type,"1")){
//测试环境
getDealTest(ctx,info);
}else if(Objects.equals(shkd_type,"2")){
//二套环境
getDealTest(ctx,info);
getDealFormal(ctx,info);
}
logger.info("###结束已办_dealToDo");
}
//撤销
public void deleteToDo(MessageContext ctx, ToDoInfo info){
logger.info("###创建撤销_deleteToDo");
Object shkd_type = SystemParamServiceHelper.getPublicParameter("shkd_type");
if(Objects.equals(shkd_type,"0")){
//正式环境
getDeleteFormal(ctx,info);
}else if(Objects.equals(shkd_type,"1")){
//测试环境
getDeleteTest(ctx,info);
}else if(Objects.equals(shkd_type,"2")){
//二套环境
getDeleteTest(ctx,info);
getDeleteFormal(ctx,info);
}
/* List<Long> userIds = info.getUserIds();
DynamicObjectCollection query = QueryServiceHelper.query("bos_user", "id,name,phone,username", new QFilter[]{new QFilter("id", "in", userIds)});
DynamicObject dynamicObject = QueryServiceHelper.queryOne("wf_hitaskinst", "billno",
new QFilter[]{new QFilter("id", "=", info.getTaskId())});
//业务id
Long taskId = ctx.getTaskId();
logger.info("####撤销taskid:"+info.getTaskId());
for (DynamicObject queryOne : query) {
if(dynamicObject != null){
deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDo(taskId,queryOne.getString("username"),dynamicObject.getString("billno"));
}else{
deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDo(taskId,queryOne.getString("username"),"");
}
}*/
logger.info("###结束撤销_deleteToDo");
}
/***
* 正式环境待办
*/
public void getToDoFormal(MessageContext ctx, ToDoInfo todoInfo) {
//几个待办
List<Long> userIds = todoInfo.getUserIds();
DynamicObjectCollection query = QueryServiceHelper.query("bos_user", "id,name,number" +
",phone,username", new QFilter[]{new QFilter("id", "in", userIds)});
DynamicObject dynamicObject = QueryServiceHelper.queryOne("wf_hitaskinst", "billno,startname,id,name",
new QFilter[]{new QFilter("id", "=", todoInfo.getTaskId())});
logger.info("####待办taskid:" + todoInfo.getTaskId());
for (DynamicObject query_one : query) {
String userName;
try {
userName = AesUtils.aesEncryptString(query_one.getString("username"));
logger.info("AES加密后user" + userName);
} catch (Exception e) {
logger.info("####AES加密出现异常请联系运维人员排查");
ErrorCode errorCode = new ErrorCode("error_code", "AES加密出现异常请联系运维人员排查");
throw new KDException(errorCode, e);
}
StringBuilder form = new StringBuilder();
// BacklogMessage backlogMessage = new BacklogMessage();
form.append("{");
form.append("\"title\":");
form.append("\"").append(todoInfo.getTitle()).append("\",");
@ -123,17 +245,74 @@ public class BacklogServiceHandle extends AbstractServiceHandler {
backlogMessage.setNotifyMethod("");
//业务自定义数据
backlogMessage.setJsonData("");*/
logger.info("###待办拼接请求体:"+form);
CreateToDoHandler.get_CreateToDoHandler().sendCreateToDo(form.toString(),todoInfo.getTitle(),
todoInfo.getTaskId().toString(),query_one.getString("username"),dynamicObject.getString("billno"));
logger.info("###待办拼接请求体:" + form);
CreateToDoHandler.get_CreateToDoHandler().sendCreateToDo(form.toString(), todoInfo.getTitle(),
todoInfo.getTaskId().toString(), query_one.getString("username"), dynamicObject.getString("billno"));
}
}
/***
* 测试环境待办
*/
public void getToDoTest(MessageContext ctx, ToDoInfo todoInfo) {
//几个待办
List<Long> userIds = todoInfo.getUserIds();
DynamicObjectCollection query = QueryServiceHelper.query("bos_user", "id,name,number" +
",phone,username", new QFilter[]{new QFilter("id", "in", userIds)});
DynamicObject dynamicObject = QueryServiceHelper.queryOne("wf_hitaskinst", "billno,startname,id,name",
new QFilter[]{new QFilter("id", "=", todoInfo.getTaskId())});
logger.info("####待办taskid:" + todoInfo.getTaskId());
for (DynamicObject query_one : query) {
String userName;
try {
userName = AesUtils.aesEncryptString(query_one.getString("username"));
logger.info("AES加密后user" + userName);
} catch (Exception e) {
logger.info("####AES加密出现异常请联系运维人员排查");
ErrorCode errorCode = new ErrorCode("error_code", "AES加密出现异常请联系运维人员排查");
throw new KDException(errorCode, e);
}
StringBuilder form = new StringBuilder();
// BacklogMessage backlogMessage = new BacklogMessage();
form.append("{");
form.append("\"title\":");
form.append("\"").append(todoInfo.getTitle()).append("\",");
form.append("\"bName\":");
form.append("\"").append("司库").append("\",");
form.append("\"bussinessCode\":");
form.append("\"").append("EOSS").append("\",");
form.append("\"urGency\":");
form.append("\"0\",");
form.append("\"currentStepName\":");
form.append("\"").append(dynamicObject.getString("name")).append("\",");
form.append("\"sendUserName\":");
form.append("\"").append(dynamicObject.getString("startname")).append("\",");
form.append("\"receiveUsersysName\":");
form.append("\"").append(query_one.getString("username")).append("\",");
form.append("\"receiveUserId\":");
form.append("\"").append(query_one.getString("username")).append("\",");
form.append("\"handleUrl\":");
Map<String, Object> taskInfo = GetUrlUtils.getTaskInfo(todoInfo.getTaskId());
String url = GetUrlUtils.buildTaskUrl(taskInfo);
form.append("\"").append(url).append("&userName=").append(userName).append("\",");
form.append("\"appHandleUrl\":");
form.append("\"").append(url).append("&userName=").append(userName).append("\",");
form.append("\"appName\":");
form.append("\"").append(ctx.getEntityName()).append("\",");
form.append("\"pendingId\":");
form.append("\"").append(todoInfo.getTaskId()).append("\",");
form.append("\"pendingAttr\":");
form.append("\"0\"");
form.append("}");
logger.info("###待办拼接请求体:" + form);
CreateToDoHandler.get_CreateToDoHandler().sendCreateToDoTest(form.toString(), todoInfo.getTitle(),
todoInfo.getTaskId().toString(), query_one.getString("username"), dynamicObject.getString("billno"));
}
logger.info("###结束待办_createToDo");
}
//已办
public void dealToDo(MessageContext ctx, ToDoInfo info){
logger.info("###创建已办_dealToDo");
/***
* 正式环境已办办
*/
public void getDealFormal(MessageContext ctx, ToDoInfo info){
//几个已办
List<Long> userIds = info.getUserIds();
logger.info("####已办taskid:"+info.getTaskId());
@ -149,13 +328,32 @@ public class BacklogServiceHandle extends AbstractServiceHandler {
DealToDoHandler.get_DealToDoHandler().sendDealToDo(taskId,queryOne.getString("username"),"");
}
}
logger.info("###结束已办_dealToDo");
}
//撤销
public void deleteToDo(MessageContext ctx, ToDoInfo info){
/***
* 测试环境已办
*/
public void getDealTest(MessageContext ctx, ToDoInfo info){
//几个已办
List<Long> userIds = info.getUserIds();
logger.info("####已办taskid:"+info.getTaskId());
DynamicObjectCollection query = QueryServiceHelper.query("bos_user", "id,name,phone,username", new QFilter[]{new QFilter("id", "in", userIds)});
DynamicObject dynamicObject = QueryServiceHelper.queryOne("wf_hitaskinst", "billno",
new QFilter[]{new QFilter("id", "=", info.getTaskId())});
//业务id
Long taskId = ctx.getTaskId();
for (DynamicObject queryOne : query) {
if(dynamicObject != null){
DealToDoHandler.get_DealToDoHandler().sendDealToDoTest(taskId,queryOne.getString("username"),dynamicObject.getString("billno"));
}else{
DealToDoHandler.get_DealToDoHandler().sendDealToDoTest(taskId,queryOne.getString("username"),"");
}
}
}
logger.info("###创建撤销_deleteToDo");
/***
* 测试环境撤销
*/
public void getDeleteFormal(MessageContext ctx, ToDoInfo info){
List<Long> userIds = info.getUserIds();
DynamicObjectCollection query = QueryServiceHelper.query("bos_user", "id,name,phone,username", new QFilter[]{new QFilter("id", "in", userIds)});
DynamicObject dynamicObject = QueryServiceHelper.queryOne("wf_hitaskinst", "billno",
@ -168,10 +366,27 @@ public class BacklogServiceHandle extends AbstractServiceHandler {
deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDo(taskId,queryOne.getString("username"),dynamicObject.getString("billno"));
}else{
deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDo(taskId,queryOne.getString("username"),"");
}
}
logger.info("###结束撤销_deleteToDo");
}
/***
* 测试环境撤销
*/
public void getDeleteTest(MessageContext ctx, ToDoInfo info){
List<Long> userIds = info.getUserIds();
DynamicObjectCollection query = QueryServiceHelper.query("bos_user", "id,name,phone,username", new QFilter[]{new QFilter("id", "in", userIds)});
DynamicObject dynamicObject = QueryServiceHelper.queryOne("wf_hitaskinst", "billno",
new QFilter[]{new QFilter("id", "=", info.getTaskId())});
//业务id
Long taskId = ctx.getTaskId();
logger.info("####撤销taskid:"+info.getTaskId());
for (DynamicObject queryOne : query) {
if(dynamicObject != null){
deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDoTest(taskId,queryOne.getString("username"),dynamicObject.getString("billno"));
}else{
deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDoTest(taskId,queryOne.getString("username"),"");
}
}
}
}

View File

@ -4,7 +4,6 @@ import cn.hutool.crypto.SmUtil;
import cn.hutool.http.HttpRequest;
import kd.bos.coderule.api.CodeRuleInfo;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.isc.util.flow.core.Execution;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.coderule.CodeRuleServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
@ -26,16 +25,28 @@ public class RequestClient {
private static final Logger logger = LoggerFactory.getLogger(RequestClient.class);
private final String protocal;//http
private final String ip;// 域名
private final String port;// 端口
private final String clientKey;// 系统标识
private final String clientSecret;// clientSecret-scict
private final String testIp;// 域名
private final String testPort;// 域名
private final String testClientKey;// 系统标识
private final String testClientSecret;// clientSecret-scict
private RequestClient() {
this.protocal = System.getProperty("backlog-protocal");
//正式环境
this.ip = System.getProperty("backlog-ip");
this.port = System.getProperty("backlog-port");
this.clientKey= System.getProperty("clientKey-scict");
this.clientSecret= System.getProperty("clientSecret-scict");
this.clientKey= System.getProperty("clientKey-scict"); // scicsiku
this.clientSecret= System.getProperty("clientSecret-scict");// 0abbcc87-f1d4-4550-8df7-b45acaa305c8
//测试环境
this.testIp = System.getProperty("backlog-testip"); //
this.testPort = System.getProperty("backlog-testport"); //
this.testClientKey = System.getProperty("testclientKey-scict"); // scicsiku
this.testClientSecret = System.getProperty("testclientSecret-scict"); // 18b9a506-d9d8-4d15-9e03-01867cff5824
}
/**
* 获取中台服务客户端实例
@ -85,6 +96,46 @@ public class RequestClient {
}
return responseText;
}
/**
* 测试环境封装中台请求头执行POST请求
* @param url 接口地址不含http://ip:port的后半部分
* @param body FORM格式字符串
* @return 响应结果报文
*/
public String callServiceTest(String url, String body){
StringBuffer urlStr = new StringBuffer();
urlStr.append(this.protocal).append("://").append(this.testIp);
if (!StringUtils.isEmpty(this.testPort)) {
urlStr.append(":").append(this.testPort);
}
logger.info("###环境参数,protocal:"+this.protocal+",ip:"+this.testIp+",this.port:"+this.testPort);
urlStr.append(url);
String responseText = null;
String timestamp = Long.toString(System.currentTimeMillis() / 1000);
byte[] securityKey = this.testClientSecret.substring(10, 26).getBytes();
String authenticationCode = SmUtil.sm4(securityKey).encryptHex(testClientKey + testClientSecret + timestamp);
logger.info("###请求头主要参数:authen(sign)"+authenticationCode+"###时间戳"+timestamp);
Map<String,Object> params=new HashMap<>(2);
params.put("params",body);
try {
//直接POST请求
responseText = HttpRequest.post(urlStr.toString())
.header("authen", authenticationCode)
.header("clientKey", testClientKey)
.header("timestamp", timestamp)
.header("origin_client", "HttpToken")
.form(params)
.execute().body();
logger.info(String.format("###调用接口成功请求URL%s请求Body%s响应报文%s", urlStr, params, responseText));
} catch (Exception e) {
logger.error(String.format("###调用接口异常:%s请求URL%s,请求Body%s", e.getMessage(), urlStr, params), e);
}
return responseText;
}
/***
* 保存待办日志
* @param title 标题
@ -131,8 +182,56 @@ public class RequestClient {
}
}
/***
* 测试环境保存待办日志
* @param title 标题
* @param url 路径
* @param isTrue 接口调用是否成功
* @param result 响应报文
* @param jsonMessage 请求报文
* @param appRecordId taskid
* @param userId 用户id
* @param number 单据编码
*/
public void saveCreateToDoTest(String title,String url, boolean isTrue,String result,String jsonMessage,String appRecordId,String userId,String number){
logger.info("###开始调用待办保存日志方法");
StringBuffer urlStr = new StringBuffer();
urlStr.append(this.protocal).append("://").append(this.testIp);
if (!StringUtils.isEmpty(this.testPort)) {
urlStr.append(":").append(this.testPort);
}
urlStr.append(url);;
logger.info("###保存时,环境参数,protocal:"+this.protocal+",ip:"+this.testIp+",this.port:"+this.testPort);
try{
DynamicObject dynamicObject = BusinessDataServiceHelper.newDynamicObject("shkd_backlog1");
logger.info("###保存日志表id"+dynamicObject.getPkValue());
dynamicObject.set("shkd_url","测试环境:"+urlStr);
CodeRuleInfo codeRule = CodeRuleServiceHelper.getCodeRule(dynamicObject.getDataEntityType().getName(), dynamicObject, null);
dynamicObject.set("billno",CodeRuleServiceHelper.getNumber(codeRule,dynamicObject));
dynamicObject.set("shkd_traceid",appRecordId);
dynamicObject.set("shkd_username",userId);
dynamicObject.set("shkd_request",title);
dynamicObject.set("shkd_request_tag",jsonMessage);
dynamicObject.set("shkd_response",isTrue);
dynamicObject.set("shkd_response_tag",result);
dynamicObject.set("shkd_status","0");
dynamicObject.set("billstatus","C");
if(StringUtils.isNotEmpty(number)){
dynamicObject.set("shkd_number",number);
}
Object[] save = SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
logger.info("###保存日志表后id"+dynamicObject.getPkValue());
logger.info("save结果"+save.toString());
logger.info("###结束调用待办保存日志方法");
}catch (Exception execution){
logger.info("###保存日志失败"+execution.getMessage());
}
}
/***
* 保存待办日志
* 保存已办撤销日志
* @param appRecordId 业务id
* @param userId 接收人id
* @param url 路径
@ -175,5 +274,49 @@ public class RequestClient {
}
/***
* 测试环境保存已办撤销日志
* @param appRecordId 业务id
* @param userId 接收人id
* @param url 路径
* @param isTrue 接口调用是否成功
* @param result 响应报文
* @param jsonMessage 请求报文
* @param status 类型 2已办 5撤销
*/
public void saveDeLToDoTest(Long appRecordId,String userId,String url,boolean isTrue,String result,String jsonMessage,String status,String number){
logger.info("###开始调用已办、撤销保存日志方法");
StringBuffer urlStr = new StringBuffer();
urlStr.append(this.protocal).append("://").append(this.testIp);
if (!StringUtils.isEmpty(this.testPort)) {
urlStr.append(":").append(this.testPort);
}
urlStr.append(url);
try{
DynamicObject dynamicObject = BusinessDataServiceHelper.newDynamicObject("shkd_backlog1");
dynamicObject.set("shkd_url","测试环境:"+urlStr.toString());
CodeRuleInfo codeRule = CodeRuleServiceHelper.getCodeRule(dynamicObject.getDataEntityType().getName(), dynamicObject, null);
dynamicObject.set("billno",CodeRuleServiceHelper.getNumber(codeRule,dynamicObject));
dynamicObject.set("shkd_traceid",appRecordId);
dynamicObject.set("shkd_username",userId);
dynamicObject.set("shkd_request","业务id:"+appRecordId+",接收人username"+userId);
dynamicObject.set("shkd_request_tag",jsonMessage);
dynamicObject.set("shkd_response",isTrue);
dynamicObject.set("shkd_response_tag",result);
dynamicObject.set("shkd_status",status);
dynamicObject.set("billstatus","C");
if(StringUtils.isNotEmpty(number)){
dynamicObject.set("shkd_number",number);
}
Object[] save = SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
logger.info("###保存日志表id"+dynamicObject.getPkValue());
logger.info("save结果"+save.toString());
logger.info("###结束调用已办、撤销保存日志方法");
}catch (Exception execution){
logger.info("###保存日志失败"+execution.getMessage());
}
}
}