package tqq9.lc123.cloud.app.plugin.trd; 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.servicehelper.BusinessDataServiceHelper; import org.apache.commons.lang3.StringUtils; import tqq9.lc123.cloud.app.plugin.utils.ConfigUtils; import tqq9.lc123.cloud.app.plugin.utils.FWOrgMappingUtils; import tqq9.lc123.cloud.app.plugin.utils.FWRestfulUtils; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; import java.util.List; /** * 泛微接口实现,用于后续单独推送的功能实现 */ public class FWImpl { /** * 推送仓库 * @param dataEntity * @return */ public static String syncWH(DynamicObject dataEntity) { String number = dataEntity.getString("number"); String name = dataEntity.getString("name"); Date ceatetime = dataEntity.getDate("createtime"); DynamicObject group = dataEntity.getDynamicObject("group");//分组:实物-1,虚拟-0 String enable = dataEntity.getString("enable");//使用状态:可用-1,禁用-0 DynamicObject tqq9_dept = dataEntity.getDynamicObject("tqq9_dept");//部门 String bmbm = "18"; if(tqq9_dept != null){ String deptNumber = tqq9_dept.getString("number"); String fwOrgNumber = FWOrgMappingUtils.getFwOrgNumberByKdOrgNumber(deptNumber); if(StringUtils.isNotBlank(fwOrgNumber)){ bmbm = fwOrgNumber; } } DynamicObject creator = dataEntity.getDynamicObject("creator");//创建人 String tqq9_fwuserid= "363"; if(creator != null){ creator = BusinessDataServiceHelper.loadSingle(creator.getPkValue(), creator.getDynamicObjectType().getName(), "id,name,number,tqq9_fwuserid"); tqq9_fwuserid = creator.getString("tqq9_fwuserid"); } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String cjsj = sdf.format(ceatetime); JSONObject mainTable = new JSONObject(); mainTable.put("ckbm", number); mainTable.put("ckmc", name); mainTable.put("cjsj", cjsj); mainTable.put("zt", Integer.valueOf(enable)); mainTable.put("cclx", Integer.valueOf(group.getString("number"))); mainTable.put("bmbm", bmbm); FWRestfulUtils fwRestfulUtils = new FWRestfulUtils(); String resultStr = fwRestfulUtils.doAction("api/cube/restful/interface/saveOrUpdateModeData/CK", mainTable, tqq9_fwuserid, "推送仓库信息", number); return resultStr; } /** * 采购订单推送泛微 * @param pm_purorderbill * @return */ public static String sendFW(DynamicObject pm_purorderbill){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String billno = pm_purorderbill.getString("billno");//lcbh String tqq9_fwrequestid = pm_purorderbill.getString("tqq9_fwrequestid");//泛微流程ID DynamicObject creator = pm_purorderbill.getDynamicObject("creator");//cjr String cjr = "363"; if(creator != null){ creator = BusinessDataServiceHelper.loadSingle(creator.getPkValue(), creator.getDynamicObjectType().getName(), "id,name,number,tqq9_fwuserid"); cjr = creator.getString("tqq9_fwuserid"); } DynamicObject tqq9_dept = pm_purorderbill.getDynamicObject("tqq9_dept");//cjbm String cjbm = "18"; if(tqq9_dept != null){ String deptNumber = tqq9_dept.getString("number"); String fwOrgNumber = FWOrgMappingUtils.getFwOrgNumberByKdOrgNumber(deptNumber); if(StringUtils.isNotBlank(fwOrgNumber)){ cjbm = fwOrgNumber; } } Date createtime = pm_purorderbill.getDate("createtime"); String cjrq = sdf.format(createtime);//cjrq DynamicObject org = pm_purorderbill.getDynamicObject("org");//ywgz String ywgz = "4"; if(org != null){ String orgNumber = org.getString("number"); String fwOrgNumber = FWOrgMappingUtils.getFwOrgNumberByKdOrgNumber(orgNumber); if(StringUtils.isNotBlank(fwOrgNumber)){ ywgz = fwOrgNumber; } } 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; String khlxr = pm_purorderbill.getString("tqq9_khlxr"); String khlxrdh = pm_purorderbill.getString("tqq9_khlxdh"); String khlxdz = pm_purorderbill.getString("tqq9_khlxdz"); //物料明细 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"); boolean ispresent = billentry.getBoolean("ispresent"); int sfzp = 0; if(ispresent){ sfzp = 1; } BigDecimal tqq9_dis83price = billentry.getBigDecimal("tqq9_dis83price"); 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!=null&&cb.compareTo(BigDecimal.ZERO)!=0?cb:0); 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); JSONObject e18 = new JSONObject(); e18.put("fieldName", "sfzp"); e18.put("fieldValue", sfzp); JSONObject e19 = new JSONObject(); e19.put("fieldName", "sc83zsj"); e19.put("fieldValue", tqq9_dis83price != null && tqq9_dis83price.compareTo(BigDecimal.ZERO) != 0?tqq9_dis83price:0); List elist = Arrays.asList(e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15,e16,e17,e18,e19); 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); JSONObject p10 = new JSONObject(); p10.put("fieldName", "fkrq"); p10.put("fieldValue", fkrq); List plist = Arrays.asList(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10); JSONArray recordsArr = new JSONArray(); for (JSONObject obj : plist) { recordsArr.add(obj); } JSONObject recordObj = new JSONObject(); recordObj.put("recordOrder", 0); recordObj.put("workflowRequestTableFields", recordsArr); recordsArr2.add(recordObj); } 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); JSONObject m27 = new JSONObject(); m27.put("fieldName", "khlxr"); m27.put("fieldValue", khlxr); JSONObject m28 = new JSONObject(); m28.put("fieldName", "khlxrdh"); m28.put("fieldValue", khlxrdh); JSONObject m29 = new JSONObject(); m29.put("fieldName", "khlxdz"); m29.put("fieldValue", khlxdz); List 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,m27,m28,m29); JSONArray mainArr = new JSONArray(); for (JSONObject obj : mlist) { mainArr.add(obj); } String fw_wfid_xzcgdd = ConfigUtils.getThirdConfigByNumber("FW_WFID_XZCGDD"); FWRestfulUtils fwRestfulUtils = new FWRestfulUtils(); //如果单据上纯在泛微流程id,重新提交调用泛微提交接口,如果没有泛微流程id,就调用新增接口 boolean isCreate = true; if(StringUtils.isNotBlank(tqq9_fwrequestid)){ isCreate = false; } String resultStr = fwRestfulUtils.doBillAction(mainArr, detailRootArr, "新增采购单", fw_wfid_xzcgdd, billno, isCreate); return resultStr; } }