[泛微接口-采购订单提交]--采购订单提交后推送泛微

This commit is contained in:
tanfengling@x-ri.com 2025-10-15 17:57:59 +08:00
parent 611b502888
commit 7dcea759e5
2 changed files with 574 additions and 17 deletions

View File

@ -0,0 +1,415 @@
package tqq9.lc123.cloud.app.plugin.operate.pm;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.operate.result.OperationResult;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.args.AfterOperationArgs;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import tqq9.lc123.cloud.app.plugin.utils.FWRestfulUtils;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
public class PurOrderSubmitOp extends AbstractOperationServicePlugIn {
@Override
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
super.afterExecuteOperationTransaction(e);
OperationResult operationResult = this.getOperationResult();
List<Object> successPkIds = operationResult.getSuccessPkIds();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
for (Object successPkId : successPkIds) {
DynamicObject pm_purorderbill = BusinessDataServiceHelper.loadSingle(successPkId, "pm_purorderbill");
String billno = pm_purorderbill.getString("billno");//lcbh
DynamicObject creator = pm_purorderbill.getDynamicObject("creator");//cjr
String cjr = "363";//TODO
DynamicObject tqq9_dept = pm_purorderbill.getDynamicObject("tqq9_dept");//cjbm
String cjbm = "18";//TODO
Date createtime = pm_purorderbill.getDate("createtime");
String cjrq = sdf.format(createtime);//cjrq
DynamicObject org = pm_purorderbill.getDynamicObject("org");//ywgz
String ywgz = "4";//TODO
DynamicObject biztype = pm_purorderbill.getDynamicObject("biztype");
String cglx = biztype.getString("name");//cglx
String tqq9_cgyt = pm_purorderbill.getString("tqq9_cgyt");//cgyt
int cgyt = 0;//办公采购
if("CGT001".equals(tqq9_cgyt)){
cgyt = 1;//缺货采购
}
Date tqq9_datefield = pm_purorderbill.getDate("tqq9_datefield");
String yjfhsj = null;//yjfhsj
if(tqq9_datefield != null){
yjfhsj = sdf.format(tqq9_datefield);
}
DynamicObject paycondition = pm_purorderbill.getDynamicObject("paycondition");
int fktj = 0;
if(paycondition != null){
String number = paycondition.getString("number");
if("001".equals(number)){
fktj = 2;
}else if ("002".equals(number)){
fktj = 1;
}else if ("003".equals(number)){
fktj = 0;
}else if ("004".equals(number)){
fktj = 3;
}
}
DynamicObject settletype = pm_purorderbill.getDynamicObject("settletype");
int jsfs = 0;
if(settletype != null){
String number = settletype.getString("number");
if("JSFS01".equals(number)){
fktj = 0;
}else if ("JSFS04".equals(number)){
fktj = 1;
}else if ("JSFS08".equals(number)){
fktj = 2;
}else if ("JSFS09".equals(number)){
fktj = 3;
}else if ("LC001".equals(number)){
fktj = 4;
}
}
boolean tqq9_sfsyhf = pm_purorderbill.getBoolean("tqq9_sfsyhf");//货返
String hfxx = "";
if(tqq9_sfsyhf){
hfxx = "货返信息:";
String tqq9_hshfsygs = pm_purorderbill.getString("tqq9_hshfsygs");
if("A".equals(tqq9_hshfsygs)){
//本年
hfxx = hfxx + "含税货返使用归属为本年,";
}else{
//上年
hfxx = hfxx + "含税货返使用归属为上年,";
}
BigDecimal tqq9_hshfsyje = pm_purorderbill.getBigDecimal("tqq9_hshfsyje");
hfxx = hfxx + "含税货返使用金额"+tqq9_hshfsyje+"元,";
BigDecimal tqq9_hshfzje = pm_purorderbill.getBigDecimal("tqq9_hshfzje");
hfxx = hfxx + "含税货返总金额"+tqq9_hshfzje+"元,";
BigDecimal tqq9_hshfkyje = pm_purorderbill.getBigDecimal("tqq9_hshfkyje");
hfxx = hfxx + "含税货返可用金额"+tqq9_hshfkyje+"元,";
DynamicObject tqq9_hshfsysl = pm_purorderbill.getDynamicObject("tqq9_hshfsysl");
String taxRateStr = "0";
if(tqq9_hshfsysl != null){
String number = tqq9_hshfsysl.getString("number");
taxRateStr = number.substring(1);
}
hfxx = hfxx + "含税货返使用税率"+taxRateStr+"%。";
}
boolean tqq9_sfsyxf = pm_purorderbill.getBoolean("tqq9_sfsyxf");//现返
String xfxx = "";
if(tqq9_sfsyxf){
xfxx = "现返信息:";
String tqq9_hsxfsygs = pm_purorderbill.getString("tqq9_hsxfsygs");
if("A".equals(tqq9_hsxfsygs)){
//本年
xfxx = xfxx + "含税现返使用归属为本年,";
}else{
//上年
xfxx = xfxx + "含税现返使用归属为本年,";
}
BigDecimal tqq9_hsxfsyje = pm_purorderbill.getBigDecimal("tqq9_hsxfsyje");
xfxx = xfxx + "含税现返使用金额"+tqq9_hsxfsyje+"元,";
BigDecimal tqq9_hsxfzje = pm_purorderbill.getBigDecimal("tqq9_hsxfzje");
xfxx = xfxx + "含税现返总金额"+tqq9_hsxfzje+"元,";
BigDecimal tqq9_hsxfkyje = pm_purorderbill.getBigDecimal("tqq9_hsxfkyje");
xfxx = xfxx + "含税现返可用金额"+tqq9_hsxfkyje+"元,";
DynamicObject tqq9_hsxfsysl = pm_purorderbill.getDynamicObject("tqq9_hsxfsysl");
String taxRateStr = "0";
if(tqq9_hsxfsysl != null){
String number = tqq9_hsxfsysl.getString("number");
taxRateStr = number.substring(1);
}
xfxx = xfxx + "含税现返使用税率"+taxRateStr+"%。";
}
BigDecimal zkqjshj = pm_purorderbill.getBigDecimal("tqq9_totalamount");//zkqjshj
BigDecimal yhzkje = pm_purorderbill.getBigDecimal("tqq9_discountamount");//yhzkje
BigDecimal zkhjshj = pm_purorderbill.getBigDecimal("totalallamount");//zkhjshj
BigDecimal zkhflhjshj = pm_purorderbill.getBigDecimal("tqq9_payamount");//zkhflhjshj
BigDecimal yyfje = pm_purorderbill.getBigDecimal("paidpreallamount");//yyfje
BigDecimal yfje = pm_purorderbill.getBigDecimal("paidallamount");//yfje
BigDecimal zflhzkje = pm_purorderbill.getBigDecimal("tqq9_alldiscountamt");//zflhzkje
BigDecimal lswdhzl = pm_purorderbill.getBigDecimal("tqq9_lswdhsl");//lswdhzl
BigDecimal lswdhze = pm_purorderbill.getBigDecimal("tqq9_lswdhje");//lswdhze
BigDecimal ddje = pm_purorderbill.getBigDecimal("tqq9_orderamount");//ddje
DynamicObject supplier = pm_purorderbill.getDynamicObject("supplier");
String dhgys = supplier.getString("number");//dhgys
String shck = null;
//物料明细
JSONObject detail1 = new JSONObject();
JSONArray recordsArr1 = new JSONArray();
DynamicObjectCollection billentries = pm_purorderbill.getDynamicObjectCollection("billentry");
for (DynamicObject billentry : billentries) {
DynamicObject material = billentry.getDynamicObject("material");
DynamicObject masterid = material.getDynamicObject("masterid");
masterid = BusinessDataServiceHelper.loadSingle(masterid.getPkValue(), masterid.getDynamicObjectType().getName());
DynamicObject tqq9_brand = billentry.getDynamicObject("tqq9_brand");
String pp = null;
if(tqq9_brand != null){
pp = tqq9_brand.getString("name");
}
String ggxh = masterid.getString("modelnum");
DynamicObject unit = billentry.getDynamicObject("unit");
String jldw = null;
if(unit != null){
jldw = unit.getString("name");
}
BigDecimal sl = billentry.getBigDecimal("qty");
BigDecimal hsdj = billentry.getBigDecimal("priceandtax");
BigDecimal tax_rate = billentry.getBigDecimal("taxrate");
BigDecimal zkqjshj_e = billentry.getBigDecimal("tqq9_amount");
BigDecimal yhzkje_e = billentry.getBigDecimal("tqq9_disamount");
BigDecimal zkhjshj_e = billentry.getBigDecimal("amountandtax");
BigDecimal hfsyje = billentry.getBigDecimal("tqq9_hfamount");
BigDecimal xfsyje = billentry.getBigDecimal("tqq9_xfamount");
BigDecimal zkhflhjshj_e = billentry.getBigDecimal("tqq9_zkflhjshj");
BigDecimal cb = billentry.getBigDecimal("tqq9_costprice");
BigDecimal yjxssjy = billentry.getBigDecimal("tqq9_expectsaletime");
String bz = billentry.getString("entrycomment");
String wlmc = masterid.getString("number");
String wlbm = masterid.getString("number");
JSONObject e1 = new JSONObject();
e1.put("fieldName", "wlbm");
e1.put("fieldValue", wlbm);
JSONObject e2 = new JSONObject();
e2.put("fieldName", "pp");
e2.put("fieldValue", pp);
JSONObject e3 = new JSONObject();
e3.put("fieldName", "ggxh");
e3.put("fieldValue", ggxh);
JSONObject e4 = new JSONObject();
e4.put("fieldName", "jldw");
e4.put("fieldValue", jldw);
JSONObject e5 = new JSONObject();
e5.put("fieldName", "sl");
e5.put("fieldValue", sl);
JSONObject e6 = new JSONObject();
e6.put("fieldName", "hsdj");
e6.put("fieldValue", hsdj);
JSONObject e7 = new JSONObject();
e7.put("fieldName", "tax_rate");
e7.put("fieldValue", tax_rate);
JSONObject e8 = new JSONObject();
e8.put("fieldName", "zkqjshj");
e8.put("fieldValue", zkqjshj_e);
JSONObject e9 = new JSONObject();
e9.put("fieldName", "yhzkje");
e9.put("fieldValue", yhzkje_e);
JSONObject e10 = new JSONObject();
e10.put("fieldName", "zkhjshj");
e10.put("fieldValue", zkhjshj_e);
JSONObject e11 = new JSONObject();
e11.put("fieldName", "hfsyje");
e11.put("fieldValue", hfsyje);
JSONObject e12 = new JSONObject();
e12.put("fieldName", "xfsyje");
e12.put("fieldValue", xfsyje);
JSONObject e13 = new JSONObject();
e13.put("fieldName", "zkhflhjshj");
e13.put("fieldValue", zkhflhjshj_e);
JSONObject e14 = new JSONObject();
e14.put("fieldName", "cb");
e14.put("fieldValue", cb);
JSONObject e15 = new JSONObject();
e15.put("fieldName", "yjxssjy");
e15.put("fieldValue", yjxssjy);
JSONObject e16 = new JSONObject();
e16.put("fieldName", "bz");
e16.put("fieldValue", bz);
JSONObject e17 = new JSONObject();
e17.put("fieldName", "wlmc");
e17.put("fieldValue", wlmc);
List<JSONObject> elist = Arrays.asList(e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15,e16,e17);
JSONArray recordsArr = new JSONArray();
for (JSONObject obj : elist) {
recordsArr.add(obj);
}
JSONObject recordObj = new JSONObject();
recordObj.put("recordOrder", 0);
recordObj.put("workflowRequestTableFields", recordsArr);
recordsArr1.add(recordObj);
DynamicObject warehouse = billentry.getDynamicObject("warehouse");
shck = warehouse.getString("number");//shck
}
detail1.put("tableDBName", "formtable_main_97_dt1");
detail1.put("workflowRequestTableRecords", recordsArr1);
//预付明细
JSONObject detail12 = new JSONObject();
JSONArray recordsArr2 = new JSONArray();
DynamicObjectCollection payEntries = pm_purorderbill.getDynamicObjectCollection("purbillentry_pay");
for (DynamicObject payEntry : payEntries) {
DynamicObject payname = payEntry.getDynamicObject("payname");//kxmc
String kxmc = null;
if(payname != null){
kxmc = payname.getString("name");
}
Date paydate = payEntry.getDate("paydate");//fkrq
String fkrq = sdf.format(paydate);
BigDecimal fkbl = payEntry.getBigDecimal("payrate");//fkbl
BigDecimal fkje = payEntry.getBigDecimal("payamount");//fkje
boolean sfyf = payEntry.getBoolean("isprepay");//fkje
String pretimepoint = payEntry.getString("pretimepoint");//yfsd
String yfsd = null;
if("A".equals(pretimepoint)){
yfsd = "采购合同";
}else if("B".equals(pretimepoint)){
yfsd = "采购订单";
}
BigDecimal glfkje = payEntry.getBigDecimal("joinpayamount");//glfkje
BigDecimal yfje_p = payEntry.getBigDecimal("paidamount");//yfje
BigDecimal bcjsje = payEntry.getBigDecimal("joinpayamount");//bcjsje
String fkd = payEntry.getString("tqq9_paybillno");//fkd
JSONObject p1 = new JSONObject();
p1.put("fieldName", "kxmc");
p1.put("fieldValue", kxmc);
JSONObject p2 = new JSONObject();
p2.put("fieldName", "fkbl");
p2.put("fieldValue", fkbl);
JSONObject p3 = new JSONObject();
p3.put("fieldName", "fkje");
p3.put("fieldValue", fkje);
JSONObject p4 = new JSONObject();
p4.put("fieldName", "sfyf");
p4.put("fieldValue", sfyf?0:1);
JSONObject p5 = new JSONObject();
p5.put("fieldName", "yfsd");
p5.put("fieldValue", yfsd);
JSONObject p6 = new JSONObject();
p6.put("fieldName", "glfkje");
p6.put("fieldValue", glfkje);
JSONObject p7 = new JSONObject();
p7.put("fieldName", "yfje");
p7.put("fieldValue", yfje_p);
JSONObject p8 = new JSONObject();
p8.put("fieldName", "bcjsje");
p8.put("fieldValue", bcjsje);
JSONObject p9 = new JSONObject();
p9.put("fieldName", "fkd");
p9.put("fieldValue", fkd);
List<JSONObject> plist = Arrays.asList(p1,p2,p3,p4,p5,p6,p7,p8,p9);
JSONArray recordsArr = new JSONArray();
for (JSONObject obj : plist) {
recordsArr2.add(obj);
}
JSONObject recordObj2 = new JSONObject();
recordObj2.put("recordOrder", 0);
recordObj2.put("workflowRequestTableFields", recordsArr);
recordsArr2.add(recordObj2);
}
detail12.put("tableDBName", "formtable_main_97_dt2");
detail12.put("workflowRequestTableRecords", recordsArr2);
JSONArray detailRootArr = new JSONArray();
detailRootArr.add(detail1);
detailRootArr.add(detail12);
//单头赋值
JSONObject m1 = new JSONObject();
m1.put("fieldName", "KDBillType");
m1.put("fieldValue", "pm_purorderbill");
JSONObject m2 = new JSONObject();
m2.put("fieldName", "shck");
m2.put("fieldValue", shck);
JSONObject m3 = new JSONObject();
m3.put("fieldName", "lcbh");
m3.put("fieldValue", billno);
JSONObject m4 = new JSONObject();
m4.put("fieldName", "cjr");
m4.put("fieldValue", cjr);
JSONObject m5 = new JSONObject();
m5.put("fieldName", "cjbm");
m5.put("fieldValue", cjbm);
JSONObject m6 = new JSONObject();
m6.put("fieldName", "cjrq");
m6.put("fieldValue", cjrq);
JSONObject m7 = new JSONObject();
m7.put("fieldName", "ywgz");
m7.put("fieldValue", ywgz);
JSONObject m8 = new JSONObject();
m8.put("fieldName", "cglx");
m8.put("fieldValue", cglx);
JSONObject m9 = new JSONObject();
m9.put("fieldName", "cgzz");
m9.put("fieldValue", ywgz);
JSONObject m10 = new JSONObject();
m10.put("fieldName", "cgyt");
m10.put("fieldValue", cgyt);
JSONObject m11 = new JSONObject();
m11.put("fieldName", "yjfhsj");
m11.put("fieldValue", yjfhsj);
JSONObject m12 = new JSONObject();
m12.put("fieldName", "fktj");
m12.put("fieldValue", fktj);
JSONObject m13 = new JSONObject();
m13.put("fieldName", "jsfs");
m13.put("fieldValue", jsfs);
JSONObject m14 = new JSONObject();
m14.put("fieldName", "hfxx");
m14.put("fieldValue", hfxx);
JSONObject m15 = new JSONObject();
m15.put("fieldName", "xfxx");
m15.put("fieldValue", xfxx);
JSONObject m16 = new JSONObject();
m16.put("fieldName", "zkqjshj");
m16.put("fieldValue", zkqjshj);
JSONObject m17 = new JSONObject();
m17.put("fieldName", "yhzkje");
m17.put("fieldValue", yhzkje);
JSONObject m18 = new JSONObject();
m18.put("fieldName", "zkhjshj");
m18.put("fieldValue", zkhjshj);
JSONObject m19 = new JSONObject();
m19.put("fieldName", "zkhflhjshj");
m19.put("fieldValue", zkhflhjshj);
JSONObject m20 = new JSONObject();
m20.put("fieldName", "yyfje");
m20.put("fieldValue", yyfje);
JSONObject m21 = new JSONObject();
m21.put("fieldName", "yfje");
m21.put("fieldValue", yfje);
JSONObject m22 = new JSONObject();
m22.put("fieldName", "zflhzkje");
m22.put("fieldValue", zflhzkje);
JSONObject m23 = new JSONObject();
m23.put("fieldName", "lswdhzl");
m23.put("fieldValue", lswdhzl);
JSONObject m24 = new JSONObject();
m24.put("fieldName", "lswdhze");
m24.put("fieldValue", lswdhze);
JSONObject m25 = new JSONObject();
m25.put("fieldName", "ddje");
m25.put("fieldValue", ddje);
JSONObject m26 = new JSONObject();
m26.put("fieldName", "dhgys");
m26.put("fieldValue", dhgys);
List<JSONObject> mlist = Arrays.asList(m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17,m18,m19,m20,m21,m22,m23,m24,m25,m26);
JSONArray mainArr = new JSONArray();
for (JSONObject obj : mlist) {
mainArr.add(obj);
}
FWRestfulUtils fwRestfulUtils = new FWRestfulUtils();
String resultStr = fwRestfulUtils.doBillAction("api/cube/restful/interface/saveOrUpdateModeData/CK", mainArr, detailRootArr, "新增采购单", "96");
}
}
}

View File

@ -1,41 +1,130 @@
package tqq9.lc123.cloud.app.plugin.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import okhttp3.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.Timestamp;
import java.util.*;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;
import java.util.HashMap;
import java.util.Map;
import static kd.bamp.mbis.common.util.BillAssistConstant.APPID;
public class FWRestfulUtils {
private static final String FW_Main_URL = ConfigUtils.getThirdConfigByNumber("FW_Main_URL");//获取泛微接口ip端口号
private static final String FW_systemid = ConfigUtils.getThirdConfigByNumber("FW_systemid");//获取泛微接口授权用户名系统标识
private static final String FW_password = ConfigUtils.getThirdConfigByNumber("FW_password");//获取泛微接口授权密码
private static final String FW_appid = ConfigUtils.getThirdConfigByNumber("FW_appid");//FW_appid
/**
* 第一步
* 调用ecology注册接口,根据appid进行注册,将返回服务端公钥和Secret信息
*/
public static Map<String,Object> regist(){
//获取当前系统RSA加密的公钥
RSA rsa = new RSA();
String publicKey = rsa.getPublicKeyBase64();
String privateKey = rsa.getPrivateKeyBase64();
//调用ECOLOGY系统接口进行注册
String data = HttpRequest.post( "http://180.166.208.42:8043/" + "api/ec/dev/auth/regist")
.header("appid",FW_appid)
.header("cpk",publicKey)
.timeout(2000)
.execute().body();
// 打印ECOLOGY响应信息
System.out.println("testRegist()"+data);
Map<String,Object> datas = JSONUtil.parseObj(data);
return datas;
}
/**
* 第二步
* 通过第一步中注册系统返回信息进行获取token信息
*/
public static String getoken(String spk, String secret){
// 公钥加密,所以RSA对象私钥为null
RSA rsa = new RSA(null,spk);
//对秘钥进行加密传输防止篡改数据
String encryptSecret = rsa.encryptBase64(secret,CharsetUtil.CHARSET_UTF_8,KeyType.PublicKey);
//调用ECOLOGY系统接口进行注册
String data = HttpRequest.post("http://180.166.208.42:8043/" + "api/ec/dev/auth/applytoken")
.header("appid",FW_appid)
.header("secret",encryptSecret)
.header("time","3600")
.execute().body();
System.out.println("testGetoken()"+data);
Map<String,Object> datas = JSONUtil.parseObj(data);
//ECOLOGY返回的token
String token = StrUtil.nullToEmpty((String) datas.get("token"));
return token;
}
/**
* 第三步
* 调用ecology系统的rest接口请求头部带上token和用户标识认证信息
*
* @param address ecology系统地址
* @param api rest api 接口地址(该测试代码仅支持GET请求)
* @param jsonParams 请求参数json串
*
* 注意ECOLOGY系统所有POST接口调用请求头请设置 "Content-Type","application/x-www-form-urlencoded; charset=utf-8"
*/
public static String testRestful(String address,String api,String jsonParams){
// String spk = SYSTEM_CACHE.get("SERVER_PUBLIC_KEY");
// //封装请求头参数
// RSA rsa = new RSA(null,spk);
// //对用户信息进行加密传输,暂仅支持传输OA用户ID
// String encryptUserid = rsa.encryptBase64("1",CharsetUtil.CHARSET_UTF_8,KeyType.PublicKey);
// System.out.println("encryptUserid()"+encryptUserid);
//
// //调用ECOLOGY系统接口
// String data = HttpRequest.get(address + api)
// .header("appid",APPID)
// .header("token",token)
// .header("userid",encryptUserid)
// .body(jsonParams)
// .execute().body();
// System.out.println("testRestful()"+data);
return null;
}
/**
*restful接口调用案例
*以getModeDataPageList为例
*/
public String doAction(String url, JSONObject mainTable, String fwuserid){
String thirdConfigByNumber = ConfigUtils.getThirdConfigByNumber("FW_Main_URL");//获取泛微接口ip端口号
String systemid = ConfigUtils.getThirdConfigByNumber("FW_systemid");//获取泛微接口授权用户名系统标识
String d_password = ConfigUtils.getThirdConfigByNumber("FW_password");//获取泛微接口授权密码
CloseableHttpResponse response;// 响应类,
CloseableHttpClient httpClient = HttpClients.createDefault();
//restful接口url
HttpPost httpPost = new HttpPost(thirdConfigByNumber + url);
HttpPost httpPost = new HttpPost(FW_Main_URL + url);
//当前日期
String currentDate = getCurrentDate();
@ -50,19 +139,13 @@ public class FWRestfulUtils {
//header
Map<String, Object> header = new HashMap<>();
header.put("systemid", systemid);
header.put("systemid", FW_systemid);
header.put("currentDateTime", currentTimeTamp);
String md5Source = systemid + d_password + currentTimeTamp;
String md5Source = FW_systemid + FW_password + currentTimeTamp;
String md5OfStr = getMD5Str(md5Source).toLowerCase();
//Md5是系统标识+密码+时间戳 并且md5加密的结果
header.put("Md5",md5OfStr);
//封装pageinfo
// JSONObject pageInfo = new JSONObject();
// pageInfo.put("pageNo", 1);
// pageInfo.put("pageSize", 10);
// dataParam.put("pageInfo",pageInfo);
//封装mainTable参数
dataParam.put("mainTable",mainTable);
@ -102,6 +185,60 @@ public class FWRestfulUtils {
}
public String doBillAction(String url, JSONArray mainData, JSONArray detailData, String requestName, String workflowid){
Map<String, Object> registMap = regist();
if(registMap != null && registMap.size() > 0){
String spk = StrUtil.nullToEmpty((String) registMap.get("spk"));
String secrit = StrUtil.nullToEmpty((String) registMap.get("secrit"));
if(StringUtils.isNotBlank(spk) && StringUtils.isNotBlank(secrit)){
String token = getoken(spk, secrit);
if(StringUtils.isNotBlank(token)){
CloseableHttpResponse response;// 响应类,
CloseableHttpClient httpClient = HttpClients.createDefault();
//restful接口url
HttpPost httpPost = new HttpPost("http://180.166.208.42:8043/" + "api/workflow/paService/doCreateRequest");
//当前日期
String currentDate = getCurrentDate();
//当前时间
String currentTime = getCurrentTime();
//封装请求头参数
RSA rsa = new RSA(null,spk);
//对用户信息进行加密传输,暂仅支持传输OA用户ID
String encryptUserid = rsa.encryptBase64("363", CharsetUtil.CHARSET_UTF_8, KeyType.PublicKey);
//装填参数
List<BasicNameValuePair> list = new ArrayList<>();
list.add(new BasicNameValuePair("mainData", JSON.toJSONString(mainData)));
list.add(new BasicNameValuePair("detailData", JSON.toJSONString(detailData)));
list.add(new BasicNameValuePair("requestName", requestName));
list.add(new BasicNameValuePair("workflowId", workflowid));
try{
httpPost.addHeader("appid",FW_appid);
httpPost.addHeader("token",token);
httpPost.addHeader("userid",encryptUserid);
// httpPost.addHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
httpPost.setEntity(new UrlEncodedFormEntity(list, "UTF-8"));
response = httpClient.execute(httpPost);
if (response != null && response.getEntity() != null) {
//返回信息
String resulString = EntityUtils.toString(response.getEntity());
System.out.println("成功"+ resulString);
return resulString;
}else{
System.out.println("获取数据失败,请查看日志"+currentDate+" "+currentTime);
}
}catch (Exception e){
System.out.println("请求失败"+currentDate+" "+currentTime+"====errormsg:"+e.getMessage());
}
}
}
}
return null;
}
public String getMD5Str(String plainText){
//定义一个字节数组
byte[] secretBytes = null;
@ -177,4 +314,9 @@ public class FWRestfulUtils {
return s == null ? "" : s.toString();
}
}