parent
c9ebddc486
commit
5c212e93bd
|
|
@ -14,6 +14,7 @@ import kd.bos.orm.query.QFilter;
|
|||
import kd.bos.schedule.executor.AbstractTask;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.QueryServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
import kd.drp.mdr.api.Api;
|
||||
import kd.tmc.fbp.common.util.EmptyUtil;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
|
|
@ -41,6 +42,7 @@ import java.net.URL;
|
|||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
|
@ -54,13 +56,10 @@ import java.util.stream.Collectors;
|
|||
public class SharePushTaskPlugin extends AbstractTask {
|
||||
|
||||
private static final Log logger = LogFactory.getLog(SharePushTaskPlugin.class);
|
||||
// 日期格式化器
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
|
||||
@Override
|
||||
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
|
||||
//要推送单据的过滤(查询单子回单)
|
||||
QFilter dzhdqFilter = new QFilter("ismatch", QCP.equals,true);
|
||||
dzhdqFilter = dzhdqFilter.and(new QFilter("billno", QCP.equals, "EBB-250928-101566"));
|
||||
DynamicObject[] bei_elecreceiptids = BusinessDataServiceHelper.load("bei_elecreceipt", "id", dzhdqFilter.toArray());
|
||||
logger.info("符合推送条件数据有:{}条", bei_elecreceiptids.length);
|
||||
//获取司库电子回单推送共享系统的对应映射
|
||||
QFilter qFilter = new QFilter("shkd_name", QCP.equals,"司库电子回单推送共享系统");
|
||||
DynamicObject shkd_apimappingid = BusinessDataServiceHelper.loadSingle("shkd_apimapping", "id", qFilter.toArray());
|
||||
|
|
@ -69,6 +68,27 @@ public class SharePushTaskPlugin extends AbstractTask {
|
|||
return;
|
||||
}
|
||||
DynamicObject shkd_apimapping = BusinessDataServiceHelper.loadSingle(shkd_apimappingid.getLong("id"), "shkd_apimapping");
|
||||
|
||||
//要推送单据的过滤(查询单子回单默认过滤条件)
|
||||
QFilter dzhdqFilter = new QFilter("ismatch", QCP.equals,true);
|
||||
dzhdqFilter = dzhdqFilter.and(new QFilter("billno", QCP.equals, "EBB-250928-101566"));
|
||||
|
||||
//自定义过滤条件
|
||||
String shkd_zdygltj = shkd_apimappingid.getString("shkd_zdygltj");
|
||||
if (!EmptyUtil.isEmpty(shkd_zdygltj)){
|
||||
QFilter zdyqFilter= null;
|
||||
try {
|
||||
zdyqFilter = getqFilter(shkd_zdygltj);
|
||||
} catch (ParseException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
dzhdqFilter=dzhdqFilter.and(zdyqFilter);
|
||||
}
|
||||
|
||||
DynamicObject[] bei_elecreceiptids = BusinessDataServiceHelper.load("bei_elecreceipt", "id", dzhdqFilter.toArray());
|
||||
logger.info("符合推送条件数据有:{}条", bei_elecreceiptids.length);
|
||||
|
||||
|
||||
String shkd_url = shkd_apimapping.getString("shkd_url");
|
||||
Map<String, Object> headMap = new HashMap<>();
|
||||
DynamicObjectCollection shkdHeade = shkd_apimapping.getDynamicObjectCollection("shkd_heade");
|
||||
|
|
@ -80,11 +100,63 @@ public class SharePushTaskPlugin extends AbstractTask {
|
|||
for (DynamicObject bei_elecreceiptid : bei_elecreceiptids) {
|
||||
DynamicObject bei_elecreceipt = BusinessDataServiceHelper.loadSingle(bei_elecreceiptid.getLong("id"), "bei_elecreceipt");
|
||||
String saveRequestBody=getJSON(bei_elecreceipt,shkd_mapping);//请求json
|
||||
logger.info("");
|
||||
logger.info("单据"+bei_elecreceiptid.getString("billno")+"推送json:"+saveRequestBody);
|
||||
String res = doPost(shkd_url,headMap,saveRequestBody,null);
|
||||
System.out.print(res);
|
||||
logger.info("单据"+bei_elecreceiptid.getString("billno")+"返回json:"+res);
|
||||
JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
resultMap.put("shkd_requesturl",shkd_url);//请求地址
|
||||
resultMap.put("shkd_request",saveRequestBody);//请求体
|
||||
resultMap.put("shkd_response",res);//响应数据
|
||||
resultMap.put("shkd_thirdpartysys","浪潮");//第三方系统
|
||||
resultMap.put("shkd_calldescription","司库->浪潮");//第三方系统
|
||||
|
||||
String flag = otherIsJsonRS.getString("flag");
|
||||
if ("0".equals(flag)){//失败
|
||||
resultMap.put("shkd_issuccess",false);//是否成功
|
||||
}else {
|
||||
JSONArray datas = otherIsJsonRS.getJSONArray("data");
|
||||
JSONObject data = datas.getJSONObject(0);
|
||||
String dataflag = data.getString("flag");
|
||||
if ("0".equals(dataflag)){
|
||||
resultMap.put("shkd_issuccess",false);//是否成功
|
||||
}else {
|
||||
resultMap.put("shkd_issuccess",true);//是否成功
|
||||
bei_elecreceipt.set("shkd_sfcgtsgx",true);
|
||||
SaveServiceHelper.update(bei_elecreceipt);
|
||||
}
|
||||
}
|
||||
ApiService.saveThePushLog(resultMap);
|
||||
}
|
||||
}
|
||||
|
||||
private QFilter getqFilter(String shkd_zdygltj) throws ParseException {
|
||||
// 将字符串转换为 JSON 数组
|
||||
JSONArray jsonArray = JSONArray.parseArray(shkd_zdygltj);
|
||||
QFilter qFilter = null;
|
||||
// 遍历 JSON 数组
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||||
String field = jsonObject.getString("field");
|
||||
String qcp = jsonObject.getString("qcp");
|
||||
String value = jsonObject.getString("value");
|
||||
String type = jsonObject.getString("type");
|
||||
Object o;
|
||||
if (type.equals("String")){
|
||||
o=value;
|
||||
} else if (type.equals("Date")) {
|
||||
o = dateFormat.parse(value); // 将字符串转换为 Date
|
||||
}else {
|
||||
o=value;
|
||||
}
|
||||
if (i==0){
|
||||
qFilter=new QFilter(field,qcp,o);
|
||||
}else {
|
||||
qFilter.and(new QFilter(field,qcp,o));
|
||||
}
|
||||
}
|
||||
return qFilter;
|
||||
}
|
||||
|
||||
private String getJSON(DynamicObject bei_elecreceipt,DynamicObjectCollection shkd_mapping){
|
||||
JSONObject otherIsJson = new JSONObject();
|
||||
|
|
|
|||
Loading…
Reference in New Issue