lc/lc123/cloud/app/plugin/trd/FWImpl.java

511 lines
23 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<JSONObject> 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<JSONObject> 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<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,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;
}
}