lc/lc123/cloud/app/plugin/operate/pm/PurOrderSubmitOp.java

416 lines
20 KiB
Java
Raw Normal View History

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");
}
}
}