丽知:钉钉回调修改
This commit is contained in:
parent
caa0b9f37c
commit
f327c4181f
|
@ -183,29 +183,36 @@ public class CallBackServiceImpl implements CallBackService {
|
|||
} else if (processInstanceResponseBodyResult.getStatus().equals("COMPLETED")) {//审批完成
|
||||
logger.info("采购付款申请(新)--->审批完成");
|
||||
}
|
||||
String remark = "";
|
||||
|
||||
String status = null;//审批状态。RUNNING:审批中 TERMINATED:已撤销 COMPLETED:审批完成
|
||||
String result = null;//审批结果。agree:同意 refuse:拒绝
|
||||
String userId = null;//任务处理人。
|
||||
String mobile = null;//处理人手机号
|
||||
|
||||
status = processInstanceResponseBodyResult.getStatus();
|
||||
if ("RUNNING".equals(status) || "TERMINATED".equals(status)) {
|
||||
//审批中、已撤销不处理
|
||||
return;
|
||||
}
|
||||
|
||||
//任务列表,文档地址:https://open-dev.dingtalk.com/apiExplorer?spm=ding_open_doc.document.0.0.33293c33eWKtYM#/?devType=org&api=workflow_1.0%23GetProcessInstance
|
||||
List<GetProcessInstanceResponseBody.GetProcessInstanceResponseBodyResultTasks> tasks = processInstanceResponseBodyResult.getTasks();
|
||||
for (GetProcessInstanceResponseBody.GetProcessInstanceResponseBodyResultTasks task : tasks) {
|
||||
if ("COMPLETED".equals(task.getStatus())) {//完成状态
|
||||
//获取人员得手机号作为u8c得审核人编码
|
||||
String userId = task.getUserId();
|
||||
String mobile = getMobileByUserId(token, userId);
|
||||
if ("AGREE".equals(task.getResult())) {
|
||||
userId=task.getUserId();
|
||||
}
|
||||
mobile = getMobileByUserId(token, userId);
|
||||
|
||||
result = processInstanceResponseBodyResult.getResult();
|
||||
if ("agree".equals(result)) {
|
||||
//同意
|
||||
//审批u8c单据
|
||||
approveArapDjzb(dingU8cBillEntity, remark);
|
||||
dingU8cBillEntity.setApprove("Y");
|
||||
dingU8cBillDao.callBackSaveOrUpdate(dingU8cBillEntity);
|
||||
} else if ("REFUSE".equals(task.getResult())) {
|
||||
approveArapDjzb(dingU8cBillEntity,mobile);
|
||||
}else if ("refuse".equals(result)) {
|
||||
//拒绝
|
||||
//后续林姐姐给接口,拒绝之后清空process_id、approve:N
|
||||
refuse(dingU8cBillEntity, mobile);
|
||||
dingU8cBillEntity.setApprove("N");
|
||||
dingU8cBillDao.callBackSaveOrUpdate(dingU8cBillEntity);
|
||||
}
|
||||
}
|
||||
//后续林姐姐给接口,拒绝之后清空process_id、approve:N
|
||||
refuse(dingU8cBillEntity, mobile);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("代理采购(付款单)->采购付款申请(店群专用)回调报错:" + e);
|
||||
|
@ -238,41 +245,37 @@ public class CallBackServiceImpl implements CallBackService {
|
|||
} else if (processInstanceResponseBodyResult.getStatus().equals("COMPLETED")) {//审批完成
|
||||
logger.info("采购付款申请(店群专用)--->审批完成");
|
||||
}
|
||||
//获取所有审批意见
|
||||
List<GetProcessInstanceResponseBody.GetProcessInstanceResponseBodyResultOperationRecords> operationRecords = processInstanceResponseBodyResult.getOperationRecords();
|
||||
|
||||
//审批意见过滤掉:START_PROCESS_INSTANCE:发起流程实例
|
||||
operationRecords = operationRecords.stream().filter(item -> !item.getType().equals("START_PROCESS_INSTANCE")).collect(Collectors.toList());
|
||||
System.out.println(operationRecords);
|
||||
String status = null;//审批状态。RUNNING:审批中 TERMINATED:已撤销 COMPLETED:审批完成
|
||||
String result = null;//审批结果。agree:同意 refuse:拒绝
|
||||
String userId = null;//任务处理人。
|
||||
String mobile = null;//处理人手机号
|
||||
|
||||
String remark = "";
|
||||
|
||||
//钉钉问题记录执行明细
|
||||
for (GetProcessInstanceResponseBody.GetProcessInstanceResponseBodyResultOperationRecords operationRecord : operationRecords) {
|
||||
//操作结果
|
||||
switch (operationRecord.getResult()) {
|
||||
case "AGREE":
|
||||
dingU8cBillEntity.setDing_res("同意");
|
||||
break;
|
||||
case "REFUSE":
|
||||
dingU8cBillEntity.setDing_res("拒绝");
|
||||
break;
|
||||
case "NONE":
|
||||
dingU8cBillEntity.setDing_res("未处理");
|
||||
break;
|
||||
}
|
||||
//处理意见
|
||||
remark = operationRecord.getRemark();
|
||||
}
|
||||
dingU8cBillDao.callBackSaveOrUpdate(dingU8cBillEntity);
|
||||
|
||||
if ("拒绝".equals(dingU8cBillEntity.getDing_res()) || "未处理".equals(dingU8cBillEntity.getDing_res())) {
|
||||
//后续林姐姐给接口
|
||||
status = processInstanceResponseBodyResult.getStatus();
|
||||
if ("RUNNING".equals(status) || "TERMINATED".equals(status)) {
|
||||
//审批中、已撤销不处理
|
||||
return;
|
||||
}
|
||||
|
||||
//任务列表,文档地址:https://open-dev.dingtalk.com/apiExplorer?spm=ding_open_doc.document.0.0.33293c33eWKtYM#/?devType=org&api=workflow_1.0%23GetProcessInstance
|
||||
List<GetProcessInstanceResponseBody.GetProcessInstanceResponseBodyResultTasks> tasks = processInstanceResponseBodyResult.getTasks();
|
||||
for (GetProcessInstanceResponseBody.GetProcessInstanceResponseBodyResultTasks task : tasks) {
|
||||
userId=task.getUserId();
|
||||
}
|
||||
mobile = getMobileByUserId(token, userId);
|
||||
|
||||
result = processInstanceResponseBodyResult.getResult();
|
||||
if ("agree".equals(result)) {
|
||||
//同意
|
||||
//审批u8c单据
|
||||
approveArapDjzb(dingU8cBillEntity, remark);
|
||||
approveArapDjzb(dingU8cBillEntity,mobile);
|
||||
}else if ("refuse".equals(result)) {
|
||||
//拒绝
|
||||
dingU8cBillEntity.setApprove("N");
|
||||
dingU8cBillDao.callBackSaveOrUpdate(dingU8cBillEntity);
|
||||
//后续林姐姐给接口,拒绝之后清空process_id、approve:N
|
||||
refuse(dingU8cBillEntity, mobile);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("代理采购(付款单)->采购付款申请(店群专用)回调报错:" + e);
|
||||
}
|
||||
|
@ -329,36 +332,40 @@ public class CallBackServiceImpl implements CallBackService {
|
|||
operationRecords = operationRecords.stream().filter(item -> !item.getType().equals("START_PROCESS_INSTANCE")).collect(Collectors.toList());
|
||||
System.out.println(operationRecords);
|
||||
|
||||
String remark = "";
|
||||
//钉钉问题记录执行明细
|
||||
for (GetProcessInstanceResponseBody.GetProcessInstanceResponseBodyResultOperationRecords operationRecord : operationRecords) {
|
||||
//操作结果
|
||||
switch (operationRecord.getResult()) {
|
||||
case "AGREE":
|
||||
dingU8cBillEntity.setDing_res("同意");
|
||||
break;
|
||||
case "REFUSE":
|
||||
dingU8cBillEntity.setDing_res("拒绝");
|
||||
break;
|
||||
case "NONE":
|
||||
dingU8cBillEntity.setDing_res("未处理");
|
||||
break;
|
||||
}
|
||||
//处理意见
|
||||
remark = operationRecord.getRemark();
|
||||
}
|
||||
dingU8cBillDao.callBackSaveOrUpdate(dingU8cBillEntity);
|
||||
String status = null;//审批状态。RUNNING:审批中 TERMINATED:已撤销 COMPLETED:审批完成
|
||||
String result = null;//审批结果。agree:同意 refuse:拒绝
|
||||
String userId = null;//任务处理人。
|
||||
String mobile = null;//处理人手机号
|
||||
|
||||
if ("拒绝".equals(dingU8cBillEntity.getDing_res()) || "未处理".equals(dingU8cBillEntity.getDing_res())) {
|
||||
//后续林姐姐给接口
|
||||
status = processInstanceResponseBodyResult.getStatus();
|
||||
if ("RUNNING".equals(status) || "TERMINATED".equals(status)) {
|
||||
//审批中、已撤销不处理
|
||||
return;
|
||||
}
|
||||
|
||||
//任务列表,文档地址:https://open-dev.dingtalk.com/apiExplorer?spm=ding_open_doc.document.0.0.33293c33eWKtYM#/?devType=org&api=workflow_1.0%23GetProcessInstance
|
||||
List<GetProcessInstanceResponseBody.GetProcessInstanceResponseBodyResultTasks> tasks = processInstanceResponseBodyResult.getTasks();
|
||||
for (GetProcessInstanceResponseBody.GetProcessInstanceResponseBodyResultTasks task : tasks) {
|
||||
userId=task.getUserId();
|
||||
}
|
||||
mobile = getMobileByUserId(token, userId);
|
||||
|
||||
result = processInstanceResponseBodyResult.getResult();
|
||||
if ("agree".equals(result)) {
|
||||
//同意
|
||||
//审批u8c单据
|
||||
approveArapDjzb(dingU8cBillEntity, remark);
|
||||
approveArapDjzb(dingU8cBillEntity,mobile);
|
||||
}else if ("refuse".equals(result)) {
|
||||
//拒绝
|
||||
dingU8cBillEntity.setApprove("N");
|
||||
dingU8cBillDao.callBackSaveOrUpdate(dingU8cBillEntity);
|
||||
//后续林姐姐给接口,拒绝之后清空process_id、approve:N
|
||||
refuse(dingU8cBillEntity, mobile);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
logger.error("调拨单内部交易(付款单)->特殊业务处理(新)回调报错:" + e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -367,18 +374,17 @@ public class CallBackServiceImpl implements CallBackService {
|
|||
|
||||
/**
|
||||
* 审核付款单,并保存日志
|
||||
*
|
||||
* @param remark 处理意见
|
||||
*/
|
||||
public void approveArapDjzb(DingU8cBillEntity dingU8cBillEntity, String remark) throws Exception {
|
||||
public void approveArapDjzb(DingU8cBillEntity dingU8cBillEntity,String mobile) throws Exception {
|
||||
//获取当前时间
|
||||
LocalDate now = LocalDate.now();
|
||||
|
||||
Map bills = new HashMap();
|
||||
bills.put("djbh", dingU8cBillEntity.getU8cBillCode());
|
||||
bills.put("dwbm", dingU8cBillEntity.getU8cCodeCorp());
|
||||
bills.put("opinion", remark);
|
||||
bills.put("operatorid", OverallConstant.getOverAllValue("u8cApiZdrCode"));
|
||||
bills.put("opinion", "同意");
|
||||
// bills.put("operatorid", OverallConstant.getOverAllValue("u8cApiZdrCode"));
|
||||
bills.put("operatorid", mobile);
|
||||
bills.put("operatedate", now.toString());
|
||||
String jsonStr = JSONUtil.toJsonStr(bills);
|
||||
jsonStr = "{\"bills\":[" + jsonStr + "]}";
|
||||
|
@ -544,14 +550,14 @@ public class CallBackServiceImpl implements CallBackService {
|
|||
DingU8cBillEntity dingU8cBillEntity = new DingU8cBillEntity();
|
||||
dingU8cBillEntity.setU8cPkCorp(bdCorpEntity.getPkCorp());//公司主键
|
||||
dingU8cBillEntity.setU8cCodeCorp(bdCorpEntity.getUnitcode());//公司编码
|
||||
dingU8cBillEntity.setU8cBillType(null);//单据类型
|
||||
dingU8cBillEntity.setU8cBillType("D3");//单据类型
|
||||
dingU8cBillEntity.setU8cBillCode(vbillcode);//单据号
|
||||
dingU8cBillEntity.setU8cBillId(vbillId);//单据主键
|
||||
dingU8cBillEntity.setPushStatus("Y");//推送成功
|
||||
dingU8cBillEntity.setPushInfo("success");//推送成功
|
||||
dingU8cBillEntity.setDingTalkProcessId(processInstanceId);//钉钉审批实例id
|
||||
dingU8cBillEntity.setCreate_time(new Date());//创建时间
|
||||
dingU8cBillEntity.setApprove(null);//Y审核 N不审核
|
||||
dingU8cBillEntity.setApprove("Y");//Y审核 N不审核
|
||||
dingU8cBillEntity.setInitiate("D");//D钉钉发起,U u8c发起
|
||||
dingU8cBillDao.callBackSaveOrUpdate(dingU8cBillEntity);
|
||||
|
||||
|
@ -565,15 +571,15 @@ public class CallBackServiceImpl implements CallBackService {
|
|||
}
|
||||
} catch (Exception e) {
|
||||
logger.error(e);
|
||||
//成功
|
||||
//失败
|
||||
DingU8cBillEntity dingU8cBillEntity = new DingU8cBillEntity();
|
||||
dingU8cBillEntity.setU8cPkCorp(corpName);//公司主键
|
||||
dingU8cBillEntity.setU8cCodeCorp(corpName);//公司主键
|
||||
dingU8cBillEntity.setU8cCodeCorp(null);//公司编码
|
||||
dingU8cBillEntity.setU8cBillType(null);//单据类型
|
||||
dingU8cBillEntity.setU8cBillCode(null);//单据号
|
||||
dingU8cBillEntity.setU8cBillId(null);//单据主键
|
||||
dingU8cBillEntity.setPushStatus("N");//推送成功
|
||||
dingU8cBillEntity.setPushInfo(e.getMessage());//推送成功
|
||||
dingU8cBillEntity.setPushStatus("N");//推送失败
|
||||
dingU8cBillEntity.setPushInfo(e.getMessage());//失败消息
|
||||
dingU8cBillEntity.setDingTalkProcessId(processInstanceId);//钉钉审批实例id
|
||||
dingU8cBillEntity.setCreate_time(new Date());//创建时间
|
||||
dingU8cBillEntity.setApprove(null);//Y审核 N不审核
|
||||
|
@ -618,10 +624,9 @@ public class CallBackServiceImpl implements CallBackService {
|
|||
Map<String, String> fileMap = new HashMap<>();
|
||||
fileMap.put("instanceId", dingU8cBillEntity.getDingTalkProcessId());
|
||||
fileMap.put("userCode", mobile);//审批人
|
||||
fileMap.put("ckeckResult", "同意");
|
||||
fileMap.put("ckeckResult", "N");
|
||||
fileMap.put("ckeckNote", "无");
|
||||
String jsonFileMap = JSONUtil.toJsonStr(fileMap);
|
||||
String json = "{\"json\":" + jsonFileMap + "}";
|
||||
|
||||
|
||||
//请求
|
||||
|
@ -633,7 +638,7 @@ public class CallBackServiceImpl implements CallBackService {
|
|||
.toString());
|
||||
}
|
||||
|
||||
RequestEntity entity = new StringRequestEntity(json, "application/json", "UTF-8");
|
||||
RequestEntity entity = new StringRequestEntity(jsonFileMap, "application/json", "UTF-8");
|
||||
httpPost.setRequestEntity(entity);
|
||||
httpClient.executeMethod(httpPost);
|
||||
String responseBodyAsString = httpPost.getResponseBodyAsString();
|
||||
|
|
|
@ -1,28 +1,45 @@
|
|||
package com.hzya.frame.plugin.lets.plugin.dingtalk;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenResponseBody;
|
||||
import com.aliyun.dingtalkworkflow_1_0.models.GetProcessInstanceResponse;
|
||||
import com.aliyun.dingtalkworkflow_1_0.models.GetProcessInstanceResponseBody;
|
||||
import com.dingtalk.api.response.OapiV2UserGetResponse;
|
||||
import com.hzya.frame.base.PluginBaseEntity;
|
||||
import com.hzya.frame.plugin.lets.constant.OverallConstant;
|
||||
import com.hzya.frame.plugin.lets.constant.ProfilesActiveConstant;
|
||||
import com.hzya.frame.plugin.lets.dao.IArapDjzbDao;
|
||||
import com.hzya.frame.plugin.lets.dingtalk.dao.IDingU8cBillDao;
|
||||
import com.hzya.frame.plugin.lets.dingtalk.entity.DingU8cBillEntity;
|
||||
import com.hzya.frame.plugin.lets.dingtalk.utils.DingTalkUtils;
|
||||
import com.hzya.frame.plugin.lets.entity.ArapDjzbEntity;
|
||||
import com.hzya.frame.plugin.lets.u8cdto.ArapDjzbVO;
|
||||
import com.hzya.frame.plugin.lets.util.SaveOrUpdateBusinessLogUtil;
|
||||
import com.hzya.frame.plugin.lets.util.pushData.Attribute;
|
||||
import com.hzya.frame.plugin.lets.util.pushData.PushU8CByApiCode;
|
||||
import com.hzya.frame.plugin.lets.util.pushData.ZTResult;
|
||||
import com.hzya.frame.sysnew.integtationTaskLivingDetails.dao.IIntegrationTaskLivingDetailsDao;
|
||||
import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity;
|
||||
import com.hzya.frame.web.entity.BaseResult;
|
||||
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||
import org.apache.commons.httpclient.HttpClient;
|
||||
import org.apache.commons.httpclient.methods.PostMethod;
|
||||
import org.apache.commons.httpclient.methods.RequestEntity;
|
||||
import org.apache.commons.httpclient.methods.StringRequestEntity;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
@ -165,7 +182,7 @@ public class DingCallBackPluginInitializer extends PluginBaseEntity {
|
|||
public List<DingU8cBillEntity> filterPass(List<DingU8cBillEntity> query) {
|
||||
List<DingU8cBillEntity> filter = new ArrayList<>();
|
||||
for (DingU8cBillEntity dingU8cBillEntity : query) {
|
||||
if ("Y".equals(dingU8cBillEntity.getApprove()) || (dingU8cBillEntity.getDingTalkProcessId() == null && "".equals(dingU8cBillEntity.getDingTalkProcessId().trim()))) {
|
||||
if ("Y".equals(dingU8cBillEntity.getApprove()) || (dingU8cBillEntity.getDingTalkProcessId() == null || "".equals(dingU8cBillEntity.getDingTalkProcessId().trim()))) {
|
||||
continue;
|
||||
}
|
||||
filter.add(dingU8cBillEntity);
|
||||
|
@ -186,6 +203,9 @@ public class DingCallBackPluginInitializer extends PluginBaseEntity {
|
|||
if(dingU8cBillEntity.getDingTalkProcessId()==null||"".equals(dingU8cBillEntity.getDingTalkProcessId().trim())){
|
||||
continue;
|
||||
}
|
||||
if("Y".equals(dingU8cBillEntity.getApprove())){
|
||||
continue;
|
||||
}
|
||||
|
||||
//查询u8c付款单审核状态,审核的continue,没审核的查询钉钉表单上的状态
|
||||
|
||||
|
@ -193,34 +213,39 @@ public class DingCallBackPluginInitializer extends PluginBaseEntity {
|
|||
//查询实例的具体信息
|
||||
GetProcessInstanceResponse processInstanceDetails = DingTalkUtils.getProcessInstanceDetails(token, dingU8cBillEntity.getDingTalkProcessId());
|
||||
GetProcessInstanceResponseBody.GetProcessInstanceResponseBodyResult processInstanceResponseBodyResult = processInstanceDetails.getBody().getResult();
|
||||
//获取所有审批意见
|
||||
List<GetProcessInstanceResponseBody.GetProcessInstanceResponseBodyResultOperationRecords> operationRecords = processInstanceResponseBodyResult.getOperationRecords();
|
||||
//审批意见过滤掉:START_PROCESS_INSTANCE:发起流程实例
|
||||
operationRecords = operationRecords.stream().filter(item -> !item.getType().equals("START_PROCESS_INSTANCE")).collect(Collectors.toList());
|
||||
|
||||
String remark = "";
|
||||
String status = null;//审批状态。RUNNING:审批中 TERMINATED:已撤销 COMPLETED:审批完成
|
||||
String result = null;//审批结果。agree:同意 refuse:拒绝
|
||||
String userId = null;//任务处理人。
|
||||
String mobile = null;//处理人手机号
|
||||
|
||||
//钉钉问题记录执行明细
|
||||
for (GetProcessInstanceResponseBody.GetProcessInstanceResponseBodyResultOperationRecords operationRecord : operationRecords) {
|
||||
//操作结果
|
||||
switch (operationRecord.getResult()) {
|
||||
case "AGREE":
|
||||
dingU8cBillEntity.setDing_res("同意");
|
||||
break;
|
||||
case "REFUSE":
|
||||
dingU8cBillEntity.setDing_res("拒绝");
|
||||
break;
|
||||
case "NONE":
|
||||
dingU8cBillEntity.setDing_res("未处理");
|
||||
break;
|
||||
}
|
||||
//处理意见
|
||||
remark = operationRecord.getRemark();
|
||||
status = processInstanceResponseBodyResult.getStatus();
|
||||
if ("RUNNING".equals(status) || "TERMINATED".equals(status)) {
|
||||
//审批中、已撤销不处理
|
||||
return;
|
||||
}
|
||||
|
||||
//审核
|
||||
//查询u8c的单据状态//spzt:1审核 null 未审核
|
||||
String u8cPkCorp = dingU8cBillEntity.getU8cPkCorp();
|
||||
String u8cBillCode = dingU8cBillEntity.getU8cBillCode();
|
||||
ArapDjzbEntity arapDjzbEntity = queryArapDjzbEntity(u8cPkCorp, u8cBillCode);
|
||||
if(arapDjzbEntity==null){
|
||||
return;
|
||||
}
|
||||
|
||||
//拒审
|
||||
//任务列表,文档地址:https://open-dev.dingtalk.com/apiExplorer?spm=ding_open_doc.document.0.0.33293c33eWKtYM#/?devType=org&api=workflow_1.0%23GetProcessInstance
|
||||
List<GetProcessInstanceResponseBody.GetProcessInstanceResponseBodyResultTasks> tasks = processInstanceResponseBodyResult.getTasks();
|
||||
for (GetProcessInstanceResponseBody.GetProcessInstanceResponseBodyResultTasks task : tasks) {
|
||||
userId=task.getUserId();
|
||||
}
|
||||
mobile = getMobileByUserId(token, userId);
|
||||
|
||||
result = processInstanceResponseBodyResult.getResult();
|
||||
if("agree".equals(result)){
|
||||
approveArapDjzb(dingU8cBillEntity,mobile);
|
||||
}else if("refuse".equals(result)){
|
||||
refuse(dingU8cBillEntity,mobile);
|
||||
}
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
|
@ -229,13 +254,6 @@ public class DingCallBackPluginInitializer extends PluginBaseEntity {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取钉钉应用token
|
||||
*/
|
||||
public String getDingTalkToken() throws Exception {
|
||||
GetAccessTokenResponseBody tokenBody = DingTalkUtils.getTokenBody(APPKEY, AppSecret);
|
||||
return tokenBody.getAccessToken();
|
||||
}
|
||||
|
||||
/**
|
||||
* 审批拒绝后清除ding_talk_process_id、ding_res、approve、initiate、push_count++,push_process_ids
|
||||
|
@ -246,4 +264,134 @@ public class DingCallBackPluginInitializer extends PluginBaseEntity {
|
|||
dingU8cBillDao.update(dingU8cBillEntity);
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private PushU8CByApiCode pushU8CByApiCode;
|
||||
/**
|
||||
* 审核付款单
|
||||
*/
|
||||
public void approveArapDjzb(DingU8cBillEntity dingU8cBillEntity,String mobile) throws Exception {
|
||||
|
||||
LocalDate now = LocalDate.now();
|
||||
|
||||
Map bills = new HashMap();
|
||||
bills.put("djbh", dingU8cBillEntity.getU8cBillCode());
|
||||
bills.put("dwbm", dingU8cBillEntity.getU8cCodeCorp());
|
||||
bills.put("opinion", "同意");
|
||||
// bills.put("operatorid", OverallConstant.getOverAllValue("u8cApiZdrCode"));
|
||||
bills.put("operatorid", mobile);
|
||||
bills.put("operatedate", now.toString());
|
||||
String jsonStr = JSONUtil.toJsonStr(bills);
|
||||
jsonStr = "{\"bills\":[" + jsonStr + "]}";
|
||||
System.out.println(jsonStr);
|
||||
|
||||
//推送
|
||||
String response = "";
|
||||
try {
|
||||
ZTResult ztResult = pushU8CByApiCode.pushByCode(OverallConstant.getOverAllValue("arapFkApproveCode"), jsonStr);
|
||||
//两层判断,一层中台转发,一层u8c返回
|
||||
if ("false".equals(ztResult.getFlag())) {
|
||||
//转发失败
|
||||
response = JSONUtil.toJsonStr(ztResult.getAttribute());
|
||||
Assert.state(false, "丽知:审核付款单审核失败,失败原因:{}", ztResult.getAttribute());
|
||||
}
|
||||
Attribute attribute = ztResult.getAttribute();
|
||||
boolean isSuccess = false;
|
||||
if ("success".equals(attribute.getStatus())) {
|
||||
isSuccess = true;
|
||||
}
|
||||
if (!isSuccess) {
|
||||
Assert.state(false, "推送U8C--> 丽知:审核付款单审核 失败 接口返回结果:{} ", response);
|
||||
}
|
||||
//成功
|
||||
dingU8cBillEntity.setApprove("Y");
|
||||
dingU8cBillDao.callBackSaveOrUpdate(dingU8cBillEntity);
|
||||
} catch (Exception e) {
|
||||
logger.error("推送U8C--> 丽知:审核付款单审核 失败" + e);
|
||||
//失败
|
||||
dingU8cBillEntity.setApprove("N");
|
||||
dingU8cBillEntity.setPushInfo(e.getMessage());
|
||||
dingU8cBillDao.callBackSaveOrUpdate(dingU8cBillEntity);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 钉钉拒绝审批,http请求
|
||||
*/
|
||||
public void refuse(DingU8cBillEntity dingU8cBillEntity, String mobile) throws IOException {
|
||||
// 服务器访问地址及端口,例如 http://ip:port
|
||||
String serviceUrl = OverallConstant.getOverAllValue("u8cApiUrl");
|
||||
// 接口地址
|
||||
String serviceName = "/u8cloud/api/dev/define";
|
||||
|
||||
//请求头
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
map.put("usercode", OverallConstant.getOverAllValue("u8cApiUsercodeCode")); // 用户
|
||||
map.put("password", OverallConstant.getOverAllValue("u8cApiPasswordCode")); // 密码,需要 MD5 加密后录入
|
||||
map.put("system", OverallConstant.getOverAllValue("u8cApiSystemCode")); // 系统编码
|
||||
map.put("custdevpclass", "nc.bs.ding.process.ProcessDingImpl"); //方法路径
|
||||
|
||||
//请求体
|
||||
Map<String, String> fileMap = new HashMap<>();
|
||||
fileMap.put("instanceId", dingU8cBillEntity.getDingTalkProcessId());
|
||||
fileMap.put("userCode", mobile);//审批人
|
||||
fileMap.put("ckeckResult", "N");
|
||||
fileMap.put("ckeckNote", "无");
|
||||
String jsonFileMap = JSONUtil.toJsonStr(fileMap);
|
||||
|
||||
|
||||
//请求
|
||||
HttpClient httpClient = new HttpClient();
|
||||
PostMethod httpPost = new PostMethod(serviceUrl + serviceName);
|
||||
httpPost.setRequestHeader("content-type", "application/json;charset=utf-8");
|
||||
for (Map.Entry<String, Object> entry : map.entrySet()) {
|
||||
httpPost.setRequestHeader(entry.getKey(), entry.getValue()
|
||||
.toString());
|
||||
}
|
||||
|
||||
RequestEntity entity = new StringRequestEntity(jsonFileMap, "application/json", "UTF-8");
|
||||
httpPost.setRequestEntity(entity);
|
||||
httpClient.executeMethod(httpPost);
|
||||
String responseBodyAsString = httpPost.getResponseBodyAsString();
|
||||
System.out.println(responseBodyAsString);
|
||||
|
||||
//记录日志
|
||||
dingU8cBillEntity.setApprove("N");
|
||||
dingU8cBillDao.callBackSaveOrUpdate(dingU8cBillEntity);
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private IArapDjzbDao arapDjzbDao;
|
||||
/**
|
||||
* 查询u8c付款单主表
|
||||
* @param u8cPkCorp
|
||||
* @param u8cBillCode
|
||||
* @return
|
||||
*/
|
||||
public ArapDjzbEntity queryArapDjzbEntity(String u8cPkCorp, String u8cBillCode){
|
||||
ArapDjzbEntity arapDjzbEntity = new ArapDjzbEntity();
|
||||
arapDjzbEntity.setDr("0");
|
||||
arapDjzbEntity.setDwbm(u8cPkCorp);
|
||||
arapDjzbEntity.setDjbh(u8cBillCode);
|
||||
List<ArapDjzbEntity> query = arapDjzbDao.query(arapDjzbEntity);
|
||||
if(query.size()==0){
|
||||
return null;
|
||||
}else {
|
||||
return query.get(0);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取钉钉应用token
|
||||
*/
|
||||
public String getDingTalkToken() throws Exception {
|
||||
GetAccessTokenResponseBody tokenBody = DingTalkUtils.getTokenBody(APPKEY, AppSecret);
|
||||
return tokenBody.getAccessToken();
|
||||
}
|
||||
public String getMobileByUserId(String token, String userId) {
|
||||
OapiV2UserGetResponse user = DingTalkUtils.getUserById(token, userId);
|
||||
String mobile = user.getResult().getMobile();
|
||||
return mobile;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue