[泛微接口-采购订单提交]--采购订单提交后推送泛微
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; | ||||
| 
 | ||||
| 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(); | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue