[泛微接口-采购订单提交]--采购订单提交后推送泛微
This commit is contained in:
parent
611b502888
commit
7dcea759e5
|
|
@ -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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,41 +1,130 @@
|
||||||
package tqq9.lc123.cloud.app.plugin.utils;
|
package tqq9.lc123.cloud.app.plugin.utils;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
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.entity.UrlEncodedFormEntity;
|
||||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||||
import org.apache.http.client.methods.HttpPost;
|
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.CloseableHttpClient;
|
||||||
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.impl.client.HttpClients;
|
||||||
import org.apache.http.message.BasicNameValuePair;
|
import org.apache.http.message.BasicNameValuePair;
|
||||||
import org.apache.http.util.EntityUtils;
|
import org.apache.http.util.EntityUtils;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
import java.util.*;
|
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 {
|
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接口调用案例
|
*restful接口调用案例
|
||||||
*以getModeDataPageList为例
|
*以getModeDataPageList为例
|
||||||
*/
|
*/
|
||||||
public String doAction(String url, JSONObject mainTable, String fwuserid){
|
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;// 响应类,
|
CloseableHttpResponse response;// 响应类,
|
||||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||||
|
|
||||||
//restful接口url
|
//restful接口url
|
||||||
HttpPost httpPost = new HttpPost(thirdConfigByNumber + url);
|
HttpPost httpPost = new HttpPost(FW_Main_URL + url);
|
||||||
|
|
||||||
//当前日期
|
//当前日期
|
||||||
String currentDate = getCurrentDate();
|
String currentDate = getCurrentDate();
|
||||||
|
|
@ -50,19 +139,13 @@ public class FWRestfulUtils {
|
||||||
|
|
||||||
//header
|
//header
|
||||||
Map<String, Object> header = new HashMap<>();
|
Map<String, Object> header = new HashMap<>();
|
||||||
header.put("systemid", systemid);
|
header.put("systemid", FW_systemid);
|
||||||
header.put("currentDateTime", currentTimeTamp);
|
header.put("currentDateTime", currentTimeTamp);
|
||||||
String md5Source = systemid + d_password + currentTimeTamp;
|
String md5Source = FW_systemid + FW_password + currentTimeTamp;
|
||||||
String md5OfStr = getMD5Str(md5Source).toLowerCase();
|
String md5OfStr = getMD5Str(md5Source).toLowerCase();
|
||||||
//Md5是:系统标识+密码+时间戳 并且md5加密的结果
|
//Md5是:系统标识+密码+时间戳 并且md5加密的结果
|
||||||
header.put("Md5",md5OfStr);
|
header.put("Md5",md5OfStr);
|
||||||
|
|
||||||
//封装pageinfo
|
|
||||||
// JSONObject pageInfo = new JSONObject();
|
|
||||||
// pageInfo.put("pageNo", 1);
|
|
||||||
// pageInfo.put("pageSize", 10);
|
|
||||||
// dataParam.put("pageInfo",pageInfo);
|
|
||||||
|
|
||||||
//封装mainTable参数
|
//封装mainTable参数
|
||||||
dataParam.put("mainTable",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){
|
public String getMD5Str(String plainText){
|
||||||
//定义一个字节数组
|
//定义一个字节数组
|
||||||
byte[] secretBytes = null;
|
byte[] secretBytes = null;
|
||||||
|
|
@ -177,4 +314,9 @@ public class FWRestfulUtils {
|
||||||
return s == null ? "" : s.toString();
|
return s == null ? "" : s.toString();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue