parent
c9ebddc486
commit
5c212e93bd
|
|
@ -14,6 +14,7 @@ import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.schedule.executor.AbstractTask;
|
import kd.bos.schedule.executor.AbstractTask;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
import kd.bos.servicehelper.QueryServiceHelper;
|
import kd.bos.servicehelper.QueryServiceHelper;
|
||||||
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||||
import kd.drp.mdr.api.Api;
|
import kd.drp.mdr.api.Api;
|
||||||
import kd.tmc.fbp.common.util.EmptyUtil;
|
import kd.tmc.fbp.common.util.EmptyUtil;
|
||||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||||
|
|
@ -41,6 +42,7 @@ import java.net.URL;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
@ -54,13 +56,10 @@ import java.util.stream.Collectors;
|
||||||
public class SharePushTaskPlugin extends AbstractTask {
|
public class SharePushTaskPlugin extends AbstractTask {
|
||||||
|
|
||||||
private static final Log logger = LogFactory.getLog(SharePushTaskPlugin.class);
|
private static final Log logger = LogFactory.getLog(SharePushTaskPlugin.class);
|
||||||
|
// 日期格式化器
|
||||||
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
|
||||||
@Override
|
@Override
|
||||||
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
|
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,"司库电子回单推送共享系统");
|
QFilter qFilter = new QFilter("shkd_name", QCP.equals,"司库电子回单推送共享系统");
|
||||||
DynamicObject shkd_apimappingid = BusinessDataServiceHelper.loadSingle("shkd_apimapping", "id", qFilter.toArray());
|
DynamicObject shkd_apimappingid = BusinessDataServiceHelper.loadSingle("shkd_apimapping", "id", qFilter.toArray());
|
||||||
|
|
@ -69,6 +68,27 @@ public class SharePushTaskPlugin extends AbstractTask {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
DynamicObject shkd_apimapping = BusinessDataServiceHelper.loadSingle(shkd_apimappingid.getLong("id"), "shkd_apimapping");
|
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");
|
String shkd_url = shkd_apimapping.getString("shkd_url");
|
||||||
Map<String, Object> headMap = new HashMap<>();
|
Map<String, Object> headMap = new HashMap<>();
|
||||||
DynamicObjectCollection shkdHeade = shkd_apimapping.getDynamicObjectCollection("shkd_heade");
|
DynamicObjectCollection shkdHeade = shkd_apimapping.getDynamicObjectCollection("shkd_heade");
|
||||||
|
|
@ -80,12 +100,64 @@ public class SharePushTaskPlugin extends AbstractTask {
|
||||||
for (DynamicObject bei_elecreceiptid : bei_elecreceiptids) {
|
for (DynamicObject bei_elecreceiptid : bei_elecreceiptids) {
|
||||||
DynamicObject bei_elecreceipt = BusinessDataServiceHelper.loadSingle(bei_elecreceiptid.getLong("id"), "bei_elecreceipt");
|
DynamicObject bei_elecreceipt = BusinessDataServiceHelper.loadSingle(bei_elecreceiptid.getLong("id"), "bei_elecreceipt");
|
||||||
String saveRequestBody=getJSON(bei_elecreceipt,shkd_mapping);//请求json
|
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);
|
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){
|
private String getJSON(DynamicObject bei_elecreceipt,DynamicObjectCollection shkd_mapping){
|
||||||
JSONObject otherIsJson = new JSONObject();
|
JSONObject otherIsJson = new JSONObject();
|
||||||
for (DynamicObject map : shkd_mapping) {
|
for (DynamicObject map : shkd_mapping) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue