parent
10b796a580
commit
eccdb9b4ea
|
|
@ -115,12 +115,12 @@ public class PurApplyBillPlugin extends AbstractBillPlugIn implements Plugin {
|
|||
}
|
||||
}
|
||||
//收货仓库
|
||||
// if (StringUtils.equals("tqq9_rewares_sh", name)) {
|
||||
// DynamicObject tqq9_rewares_sh = (DynamicObject) model.getValue("tqq9_rewares_sh");
|
||||
// EntryFieldRefresher entryFieldRefresher = new EntryFieldRefresher();
|
||||
// entryFieldRefresher.updateDynamicObjectByOrg(SH_ORGNUMBER, "warehouse", tqq9_rewares_sh, model);
|
||||
// view.updateView();
|
||||
// }
|
||||
if (StringUtils.equals("tqq9_rewares_sh", name)) {
|
||||
DynamicObject tqq9_rewares_sh = (DynamicObject) model.getValue("tqq9_rewares_sh");
|
||||
EntryFieldRefresher entryFieldRefresher = new EntryFieldRefresher();
|
||||
entryFieldRefresher.updateDynamicObjectByOrg(SH_ORGNUMBER, "warehouse", tqq9_rewares_sh, model);
|
||||
view.updateView();
|
||||
}
|
||||
// //采购数量
|
||||
if (StringUtils.equals("applyqty", name)) {
|
||||
BigDecimal applyqty = (BigDecimal) model.getValue("applyqty");
|
||||
|
|
|
|||
|
|
@ -46,8 +46,10 @@ public class PurRefundApplyBillPlugin extends AbstractBillPlugIn implements Befo
|
|||
public void registerListener(EventObject e) {
|
||||
super.registerListener(e);
|
||||
this.addItemClickListeners("tbmain");
|
||||
BasedataEdit control = this.getControl("tqq9_ph");
|
||||
control.addBeforeF7SelectListener(this);
|
||||
BasedataEdit tqq9_ph = this.getControl("tqq9_ph");
|
||||
// RefBillEdit tqq9_inwarebill = this.getControl("tqq9_inwarebill");
|
||||
tqq9_ph.addBeforeF7SelectListener(this);
|
||||
// tqq9_inwarebill.addBeforeF7SelectListener(this);
|
||||
// this.addClickListeners("tqq9_ydthno");
|
||||
|
||||
}
|
||||
|
|
@ -61,10 +63,75 @@ public class PurRefundApplyBillPlugin extends AbstractBillPlugIn implements Befo
|
|||
String billno = ((HashMap) returnData).get("billno").toString();
|
||||
DynamicObject tqq9_otheroutapply = BusinessDataServiceHelper.loadSingle("tqq9_otheroutapply", new QFilter[]{new QFilter("billno", QCP.equals, billno)});
|
||||
this.getModel().setValue("tqq9_yythbillno", tqq9_otheroutapply);
|
||||
}
|
||||
SaveServiceHelper.save(new DynamicObject[]{this.getModel().getDataEntity(true)});
|
||||
this.getView().updateView();
|
||||
}
|
||||
// else if (StringUtils.equals("pm_purrefundapplybill", actionId) && returnData != null) {
|
||||
// int size = ((ListSelectedRowCollection) returnData).size();
|
||||
// if(size>1){
|
||||
// this.getView().showErrorNotification("只允许选择一行入库单");
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// ListSelectedRow listSelectedRow = ((ListSelectedRowCollection) returnData).get(0);
|
||||
// //入库单数据查询
|
||||
// DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(listSelectedRow.toString(), "im_purinbill");
|
||||
// String billid = listSelectedRow.getPrimaryKeyValue().toString();//单据id
|
||||
// String entryid = listSelectedRow.getEntryPrimaryKeyValue().toString();//分录id
|
||||
// DynamicObjectCollection billentry = dynamicObject.getDynamicObjectCollection("billentry");
|
||||
// for (DynamicObject object : billentry) {
|
||||
// String id = object.getString("id");
|
||||
// if (StringUtils.equals(id, entryid)) {
|
||||
// String wmsentryid = listSelectedRow.getEntryPrimaryKeyValue().toString();//WMS分录id
|
||||
// BigDecimal qty = object.getBigDecimal("qty");//入库数量
|
||||
// DynamicObject warehouse = object.getDynamicObject("warehouse");//入库仓库
|
||||
// Date producedate = object.getDate("producedate");//生产日期
|
||||
// Date expirydate = object.getDate("expirydate");//到期日期
|
||||
// String lotnumber = object.getString("lotnumber");//批号
|
||||
// String tqq9_registration = object.getString("tqq9_registration");//注册证
|
||||
// String tqq9_licenseno = object.getString("tqq9_licenseno");//许可证
|
||||
// String mainbillentryid = object.getString("mainbillentryid");
|
||||
//
|
||||
// //采购退货申请循环找分录
|
||||
// DynamicObjectCollection billentry1 = this.getModel().getDataEntity(true).getDynamicObjectCollection("billentry");
|
||||
// for (DynamicObject object1 : billentry1) {
|
||||
// String mainbillentryid1 = object1.getString("mainbillentryid");
|
||||
// if (StringUtils.equals(mainbillentryid, mainbillentryid1)) {
|
||||
// int seq = object1.getInt("seq");
|
||||
// this.getModel().setValue("tqq9_inwarebillid", billid, seq-1);
|
||||
// this.getModel().setValue("tqq9_inwarebillentryid", entryid, seq-1);
|
||||
// this.getModel().setValue("tqq9_wmsdetailid", wmsentryid, seq-1);
|
||||
// this.getModel().setValue("tqq9_maxqty", qty, seq-1);
|
||||
// this.getModel().setValue("tqq9_thck", warehouse, seq-1);
|
||||
// this.getModel().setValue("tqq9_productdate", producedate, seq-1);
|
||||
// this.getModel().setValue("tqq9_expiredate", expirydate, seq-1);
|
||||
// this.getModel().setValue("tqq9_ph", lotnumber, seq-1);
|
||||
// this.getModel().setValue("tqq9_registration", tqq9_registration, seq-1);
|
||||
// this.getModel().setValue("tqq9_licenseno", tqq9_licenseno, seq-1);
|
||||
// this.getView().updateView();
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//// if (billentry.size() > rowKey) {
|
||||
//// DynamicObject dynamicObject1 = billentry.get(rowKey);
|
||||
////// String billid = listSelectedRow.getPrimaryKeyValue().toString();//单据id
|
||||
////// String entryid = listSelectedRow.getEntryPrimaryKeyValue().toString();//分录id
|
||||
//// String wmsentryid = listSelectedRow.getEntryPrimaryKeyValue().toString();//WMS分录id
|
||||
//// BigDecimal qty = dynamicObject1.getBigDecimal("qty");//入库数量
|
||||
//// DynamicObject warehouse = dynamicObject1.getDynamicObject("warehouse");//入库仓库
|
||||
//// Date producedate = dynamicObject1.getDate("producedate");//生产日期
|
||||
//// Date expirydate = dynamicObject1.getDate("expirydate");//到期日期
|
||||
//// String lotnumber = dynamicObject1.getString("lotnumber");//批号
|
||||
//// String tqq9_registration = dynamicObject1.getString("tqq9_registration");//注册证
|
||||
//// String tqq9_licenseno = dynamicObject1.getString("tqq9_licenseno");//许可证
|
||||
////
|
||||
//// }
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 异地退货返回事件
|
||||
|
|
@ -115,6 +182,8 @@ public class PurRefundApplyBillPlugin extends AbstractBillPlugIn implements Befo
|
|||
|
||||
@Override
|
||||
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
||||
String name = beforeF7SelectEvent.getProperty().getName();
|
||||
if (StringUtils.equals("tqq9_ph", name)) {
|
||||
int index = this.getModel().getEntryCurrentRowIndex("billentry");
|
||||
DynamicObjectCollection entryentity = this.getModel().getDataEntity(true).getDynamicObjectCollection("billentry");
|
||||
DynamicObject dynamicObject = entryentity.get(index);
|
||||
|
|
@ -131,13 +200,28 @@ public class PurRefundApplyBillPlugin extends AbstractBillPlugIn implements Befo
|
|||
ListShowParameter param = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
||||
QFilter qF1 = new QFilter("material.number", QCP.equals, masterid.getString("number"));
|
||||
param.getListFilterParameter().getQFilters().add(qF1);
|
||||
|
||||
} else {
|
||||
beforeF7SelectEvent.setCancel(true);
|
||||
this.getView().showMessage("该物料未启用批号管理");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
// else if (StringUtils.equals("tqq9_inwarebill", name)) {
|
||||
// int index = this.getModel().getEntryCurrentRowIndex("billentry");
|
||||
// Object mainbillnumber = this.getModel().getValue("mainbillnumber", index);
|
||||
// if (mainbillnumber != null) {
|
||||
// ListShowParameter param = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
||||
// QFilter qF1 = new QFilter("billentry.mainbillnumber", QCP.equals, mainbillnumber.toString());
|
||||
// qF1.and("billstatus", QCP.equals, "C");
|
||||
// param.getListFilterParameter().getQFilters().add(qF1);
|
||||
// param.setCustomParam("ismergerows", false);
|
||||
// CloseCallBack closeCallBack = new CloseCallBack(this.getPluginName(), "pm_purrefundapplybill");
|
||||
// param.setCloseCallBack(closeCallBack);
|
||||
//
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
public void propertyChanged(PropertyChangedArgs e) {
|
||||
|
|
@ -147,25 +231,33 @@ public class PurRefundApplyBillPlugin extends AbstractBillPlugIn implements Befo
|
|||
ChangeData changeData = e.getChangeSet()[0];
|
||||
int rowIndex = changeData.getRowIndex();
|
||||
IDataModel model = this.getModel();
|
||||
DynamicObject material = (DynamicObject)model.getValue("material", rowIndex);//物料采购信息
|
||||
DynamicObject tqq9_ph = (DynamicObject)model.getValue("tqq9_ph", rowIndex);//批号
|
||||
if(material!=null&&tqq9_ph!=null){
|
||||
DynamicObject material = (DynamicObject) model.getValue("material", rowIndex);//物料采购信息
|
||||
DynamicObject tqq9_ph = (DynamicObject) model.getValue("tqq9_ph", rowIndex);//批号
|
||||
if (material != null && tqq9_ph != null) {
|
||||
DynamicObject masterid = material.getDynamicObject("masterid");//物料
|
||||
if(masterid!=null){
|
||||
if (masterid != null) {
|
||||
String id = masterid.getString("id");
|
||||
String tqq9_phno = tqq9_ph.getString("number");//批号
|
||||
String sql = "/*dialect*/ select sum(fbaseqty) useqty from t_im_inv_realbalance where fmaterialid ='"+id+"' and flotnum ='"+tqq9_phno+"'" ;
|
||||
String sql = "/*dialect*/ select sum(fbaseqty) useqty from t_im_inv_realbalance where fmaterialid ='" + id + "' and flotnum ='" + tqq9_phno + "'";
|
||||
DataSet pzDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("scm"), sql);
|
||||
DataSet copy = pzDataSet.copy();
|
||||
DynamicObjectCollection dynamicObjects = ORM.create().toPlainDynamicObjectCollection(copy);
|
||||
if(dynamicObjects.size()>0){
|
||||
if (dynamicObjects.size() > 0) {
|
||||
BigDecimal useqty = dynamicObjects.get(0).getBigDecimal("useqty");
|
||||
model.setValue("tqq9_pckyamount",useqty,rowIndex);
|
||||
model.setValue("tqq9_pckyamount", useqty, rowIndex);
|
||||
this.getView().updateView();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
// else if (StringUtils.equals("tqq9_inwarebill", name)) {
|
||||
// IDataModel model = this.getModel();
|
||||
//
|
||||
// ChangeData changeData = e.getChangeSet()[0];
|
||||
// int rowIndex = changeData.getRowIndex();
|
||||
// DynamicObject tqq9_inwarebill = (DynamicObject) model.getValue("tqq9_inwarebill", rowIndex);//批号
|
||||
//
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
|
@ -265,6 +265,7 @@ public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn imple
|
|||
model.setValue("tqq9_sfsyxf", "false");//是否使用现返
|
||||
model.setValue("tqq9_hsxfsysl", taxrate);//含税现返使用税率
|
||||
model.setValue("tqq9_hsxfsygs", "A");//含税现返使用归属
|
||||
|
||||
}
|
||||
JSONObject material = entry.getJSONObject("tqq9_material");//物料
|
||||
DynamicObject tqq9_material = BusinessDataServiceHelper.loadSingle(material.getLong("id"), "bd_material");//物料
|
||||
|
|
@ -290,6 +291,8 @@ public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn imple
|
|||
model.setValue("entryrecdept", org, i);//收货部门
|
||||
model.setValue("discounttype", "C", i);//折扣方式
|
||||
model.setValue("tqq9_expectsaletime", tqq9_saledates, i);//预计销售时间(月)
|
||||
model.setValue("ownertype", "bos_org",i);//货主类型
|
||||
model.setValue("owner", org,i);//货主类型
|
||||
if (StringUtils.equals(org.getString("number"), "SHLC")) {
|
||||
model.setValue("tqq9_zgcgxj", tqq9_material.getBigDecimal("tqq9_maxprice_sh"), i);//最高采购限价
|
||||
model.setValue("priceandtax", tqq9_material.getBigDecimal("tqq9_maxprice_sh"), i);//含税单价
|
||||
|
|
|
|||
|
|
@ -0,0 +1,45 @@
|
|||
package tqq9.lc123.cloud.app.plugin.operate.conm;
|
||||
|
||||
import kd.bos.dataentity.OperateOption;
|
||||
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.PreparePropertysEventArgs;
|
||||
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
||||
import tqq9.lc123.cloud.app.api.utils.Constants;
|
||||
|
||||
/**
|
||||
* 合同审核审核返利规则
|
||||
*/
|
||||
public class PurconmAuditToFLOp extends AbstractOperationServicePlugIn {
|
||||
private final static Log logger = LogFactory.getLog(PurconmAuditToFLOp.class);
|
||||
|
||||
@Override
|
||||
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||
super.onPreparePropertys(e);
|
||||
e.getFieldKeys().add("tqq9_entryentity.tqq9_pur_rebate");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
|
||||
super.afterExecuteOperationTransaction(e);
|
||||
DynamicObject[] dataEntities1 = e.getDataEntities();
|
||||
for (DynamicObject dynamicObject : dataEntities1) {
|
||||
DynamicObjectCollection tqq9_entryentity = dynamicObject.getDynamicObjectCollection("tqq9_entryentity");
|
||||
for (DynamicObject object : tqq9_entryentity) {
|
||||
DynamicObject tqq9_pur_rebate = object.getDynamicObject("tqq9_pur_rebate");
|
||||
OperateOption operateOption = OperateOption.create();
|
||||
OperationResult auditResult = OperationServiceHelper.executeOperate(Constants.TYPE_AUDIT, "tqq9_pur_rebate", new DynamicObject[]{tqq9_pur_rebate}, operateOption);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package tqq9.lc123.cloud.app.plugin.operate.conm;
|
||||
|
||||
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
|
||||
/**
|
||||
* 单据操作插件
|
||||
*/
|
||||
public class RebateRuleAuditToFlOp extends AbstractOperationServicePlugIn implements Plugin {
|
||||
private final static Log logger = LogFactory.getLog(RebateRuleAuditToFlOp.class);
|
||||
|
||||
@Override
|
||||
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
|
||||
super.afterExecuteOperationTransaction(e);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,199 @@
|
|||
package tqq9.lc123.cloud.app.plugin.operate.im;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.ExtendedDataEntity;
|
||||
import kd.bos.entity.ExtendedDataEntitySet;
|
||||
import kd.bos.entity.botp.plugin.AbstractConvertPlugIn;
|
||||
import kd.bos.entity.botp.plugin.args.AfterConvertEventArgs;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 单据转换插件
|
||||
*/
|
||||
public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn implements Plugin {
|
||||
private final static Log logger = LogFactory.getLog(PurOrderPushPurRefundConverPlugin.class);
|
||||
private static String PM_PURREFUNDAPPLYBILL = "pm_purrefundapplybill";
|
||||
|
||||
|
||||
/**
|
||||
* 采购订单下推采购退货申请
|
||||
*/
|
||||
@Override
|
||||
public void afterConvert(AfterConvertEventArgs e) {
|
||||
super.afterConvert(e);
|
||||
ExtendedDataEntitySet targetExtDataEntitySet = e.getTargetExtDataEntitySet();
|
||||
ExtendedDataEntity[] extendedDataEntities = targetExtDataEntitySet.FindByEntityKey(PM_PURREFUNDAPPLYBILL);
|
||||
for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) {
|
||||
//采购退货申请
|
||||
DynamicObject dataEntity = extendedDataEntity.getDataEntity();
|
||||
DynamicObjectCollection dynamicObjectCollection = dataEntity.getDynamicObjectCollection("billentry");
|
||||
DynamicObject[] im_purinblil = null;
|
||||
for (DynamicObject entry : dynamicObjectCollection) {
|
||||
String mainbillnumber = entry.getString("mainbillnumber");
|
||||
//采购订单
|
||||
im_purinblil = BusinessDataServiceHelper.load("im_purinbill", "id,name,billentry.material,billentry.entryreqorg," +
|
||||
"billentry.taxrateid,billentry.discounttype,billentry.mainbillentity,billentry.mainbillid,billentry.mainbillnumber,billentry.mainbillentryid," +
|
||||
"billentry.mainbillentryseq,billentry.entrycreator,billentry.entrycreatetime,billentry.entrymodifier," +
|
||||
"billentry.entrymodifytime,billentry.linetype,billentry.tqq9_registration,billentry.tqq9_licenseno," +
|
||||
"billentry.tqq9_brand,billentry.warehouse,billentry.qty,billentry.ispresent," +
|
||||
"billentry.ownertype,billentry.mversion,billentry.unit2nd,billentry.qtyunit2nd," +
|
||||
"billentry.auxpty,billentry.discountrate,billentry.price,billentry.priceandtax," +
|
||||
"billentry.amount,billentry.curamount,billentry.taxamount,billentry.curtaxamount," +
|
||||
"billentry.discountamount,billentry.amountandtax,billentry.curamountandtax,billentry.returnqty," +
|
||||
"billentry.returnbaseqty,billentry.tqq9_yyhyflje,billentry.tqq9_yyhwflje,billentry.lotnumber," +
|
||||
"billentry.tqq9_goods,billentry.tqq9_wmsdetailid,billentry.producedate,billentry.expirydate,creator,createtime,modifier,modifytime,billentry.owner", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, mainbillnumber).and("billstatus",QCP.equals,"C")});
|
||||
|
||||
|
||||
}
|
||||
BigDecimal zero = BigDecimal.ZERO;
|
||||
dynamicObjectCollection.clear();
|
||||
if(im_purinblil!=null){
|
||||
for (DynamicObject dynamicObject : im_purinblil) {
|
||||
DynamicObjectCollection billentry = dynamicObject.getDynamicObjectCollection("billentry");
|
||||
String billid = dynamicObject.getString("id");
|
||||
for (DynamicObject object : billentry) {
|
||||
String billentryid = object.getString("id");
|
||||
DynamicObject material = object.getDynamicObject("material");//物料库存信息
|
||||
DynamicObject masterid = material.getDynamicObject("masterid");//物料信息
|
||||
//物料采购信息
|
||||
DynamicObject bd_materialpurchaseinfo = BusinessDataServiceHelper.loadSingle("bd_materialpurchaseinfo", new QFilter[]{new QFilter("masterid", QCP.equals, masterid.getLong("id"))});
|
||||
masterid = BusinessDataServiceHelper.loadSingle("bd_material", new QFilter[]{new QFilter("id", QCP.equals, masterid.getLong("id"))});
|
||||
String materialname = bd_materialpurchaseinfo.getString("masterid.name");//物料名称
|
||||
DynamicObject baseunit = masterid.getDynamicObject("baseunit");//计量单位
|
||||
DynamicObject entryreqorg = object.getDynamicObject("entryreqorg");//需求组织
|
||||
DynamicObject taxrateid = object.getDynamicObject("taxrateid");//税率
|
||||
String discounttype = object.getString("discounttype");//折扣方式
|
||||
String mainbillentity = object.getString("mainbillentity");//核心单据实体
|
||||
String mainbillid = object.getString("mainbillid");//核心单据ID
|
||||
String mainbillnumber = object.getString("mainbillnumber");//核心单据编号
|
||||
String mainbillentryid = object.getString("mainbillentryid");//核心单据行ID
|
||||
String mainbillentryseq = object.getString("mainbillentryseq");//核心单据分录序号
|
||||
DynamicObject creator = dynamicObject.getDynamicObject("creator");//创建人
|
||||
Date createtime = dynamicObject.getDate("createtime");//创建时间
|
||||
DynamicObject modifier = dynamicObject.getDynamicObject("modifier");//修改人
|
||||
Date modifytime = dynamicObject.getDate("modifytime");//修改时间
|
||||
DynamicObject linetype = object.getDynamicObject("linetype");//行类型
|
||||
DynamicObject tqq9_registration = object.getDynamicObject("tqq9_registration");//注册证
|
||||
String tqq9_licenseno = object.getString("tqq9_licenseno");//许可证
|
||||
DynamicObject tqq9_brand = masterid.getDynamicObject("tqq9_brand");//品牌
|
||||
DynamicObject warehouse = object.getDynamicObject("warehouse");//入库仓库
|
||||
BigDecimal qty = object.getBigDecimal("qty");//数量
|
||||
Boolean ispresent = object.getBoolean("ispresent");//是否赠品
|
||||
String ownertype = object.getString("ownertype");//货主类型
|
||||
DynamicObject owner = object.getDynamicObject("owner");//货主
|
||||
DynamicObject version = object.getDynamicObject("mversion");//物料版本
|
||||
DynamicObject unit2nd = object.getDynamicObject("unit2nd");//辅助单位
|
||||
BigDecimal qtyunit2nd = object.getBigDecimal("qtyunit2nd");//辅助数量
|
||||
Object auxpty = object.get("auxpty");//辅助属性
|
||||
BigDecimal discountrate = object.getBigDecimal("discountrate");//单位折扣(率)
|
||||
BigDecimal price = object.getBigDecimal("price");//单价
|
||||
BigDecimal priceandtax = object.getBigDecimal("priceandtax");//含税单价
|
||||
BigDecimal amount = object.getBigDecimal("amount");//金额
|
||||
BigDecimal curamount = object.getBigDecimal("curamount");//金额(本位币)
|
||||
BigDecimal taxamount = object.getBigDecimal("taxamount");//税额
|
||||
BigDecimal curtaxamount = object.getBigDecimal("curtaxamount");//税额(本位币)
|
||||
BigDecimal discountamount = object.getBigDecimal("discountamount");//优惠(折扣)金额
|
||||
BigDecimal amountandtax = object.getBigDecimal("amountandtax");//折扣后价税合计
|
||||
BigDecimal curamountandtax = object.getBigDecimal("curamountandtax");//价税合计(本位币)
|
||||
BigDecimal returnqty = object.getBigDecimal("returnqty");//退库数量
|
||||
BigDecimal returnbaseqty = object.getBigDecimal("returnbaseqty");//退库数量
|
||||
BigDecimal tqq9_yyhyflje = object.getBigDecimal("tqq9_yyhyflje");//有优惠有返利含税单价
|
||||
BigDecimal tqq9_yyhwflje = object.getBigDecimal("tqq9_yyhwflje");//有优惠无返利含税单价
|
||||
String lotnumber = object.getString("lotnumber");//批号
|
||||
DynamicObject tqq9_goods = object.getDynamicObject("tqq9_goods");//商品
|
||||
String tqq9_wmsdetailid = object.getString("tqq9_wmsdetailid");//WMS分录id
|
||||
Date producedate = object.getDate("producedate");//生产日期
|
||||
Date expirydate = object.getDate("expirydate");//生产日期
|
||||
|
||||
|
||||
DynamicObject dynamicObject1 = dynamicObjectCollection.addNew();
|
||||
dynamicObject1.set("material",bd_materialpurchaseinfo);
|
||||
dynamicObject1.set("materialname",materialname);
|
||||
dynamicObject1.set("unit",baseunit);
|
||||
dynamicObject1.set("baseunit",baseunit);
|
||||
dynamicObject1.set("rowclosestatus","A");
|
||||
dynamicObject1.set("rowterminatestatus","A");
|
||||
dynamicObject1.set("entryreqorg","A");
|
||||
dynamicObject1.set("entryreqorg",entryreqorg);
|
||||
dynamicObject1.set("entryinvcorg",entryreqorg);
|
||||
dynamicObject1.set("entrysettleorg",entryreqorg);
|
||||
dynamicObject1.set("taxrateid",taxrateid);
|
||||
dynamicObject1.set("discounttype",discounttype);
|
||||
dynamicObject1.set("entrypayorg",entryreqorg);
|
||||
dynamicObject1.set("mainbillentity",mainbillentity);
|
||||
dynamicObject1.set("mainbillid",mainbillid);
|
||||
dynamicObject1.set("mainbillnumber",mainbillnumber);
|
||||
dynamicObject1.set("mainbillentryid",mainbillentryid);
|
||||
dynamicObject1.set("mainbillentryseq",mainbillentryseq);
|
||||
dynamicObject1.set("srcbillentity",mainbillentity);
|
||||
dynamicObject1.set("srcbillid",mainbillid);
|
||||
dynamicObject1.set("srcbillnumber",mainbillnumber);
|
||||
dynamicObject1.set("srcbillentryid",mainbillentryid);
|
||||
dynamicObject1.set("srcbillentryseq",mainbillentryseq);
|
||||
dynamicObject1.set("entrycreator",creator);
|
||||
dynamicObject1.set("entrycreatetime",createtime);
|
||||
dynamicObject1.set("entrymodifier",modifier);
|
||||
dynamicObject1.set("entrymodifytime",modifytime);
|
||||
dynamicObject1.set("linetype",linetype);
|
||||
dynamicObject1.set("tqq9_registration",tqq9_registration);
|
||||
dynamicObject1.set("tqq9_licenseno",tqq9_licenseno);
|
||||
dynamicObject1.set("tqq9_brand",tqq9_brand);
|
||||
dynamicObject1.set("tqq9_thck",warehouse);
|
||||
dynamicObject1.set("tqq9_kclx","ZP");
|
||||
dynamicObject1.set("tqq9_maxqty",qty);
|
||||
dynamicObject1.set("qty",qty);
|
||||
dynamicObject1.set("baseqty",qty);
|
||||
dynamicObject1.set("ispresent",ispresent);
|
||||
dynamicObject1.set("ownertype",ownertype);
|
||||
dynamicObject1.set("owner",owner);
|
||||
dynamicObject1.set("materialversion",version);
|
||||
dynamicObject1.set("auxunit",unit2nd);
|
||||
dynamicObject1.set("auxqty",qtyunit2nd);
|
||||
dynamicObject1.set("auxpty",auxpty);
|
||||
dynamicObject1.set("discountrate",discountrate);
|
||||
dynamicObject1.set("price",price);
|
||||
dynamicObject1.set("priceandtax",priceandtax);
|
||||
dynamicObject1.set("amount",amount);
|
||||
dynamicObject1.set("curamount",curamount);
|
||||
dynamicObject1.set("taxamount",taxamount);
|
||||
dynamicObject1.set("curtaxamount",curtaxamount);
|
||||
dynamicObject1.set("discountamount",discountamount);
|
||||
dynamicObject1.set("amountandtax",amountandtax);
|
||||
dynamicObject1.set("curamountandtax",curamountandtax);
|
||||
dynamicObject1.set("joinqty",zero);
|
||||
dynamicObject1.set("joinbaseqty",zero);
|
||||
dynamicObject1.set("returnqty",returnqty);
|
||||
dynamicObject1.set("returnbaseqty",returnbaseqty);
|
||||
dynamicObject1.set("tqq9_yyhyflje",tqq9_yyhyflje);
|
||||
dynamicObject1.set("tqq9_yyhwflje",tqq9_yyhwflje);
|
||||
dynamicObject1.set("tqq9_ph",lotnumber);
|
||||
dynamicObject1.set("tqq9_goods",tqq9_goods);
|
||||
dynamicObject1.set("tqq9_inwarebill",dynamicObject);
|
||||
dynamicObject1.set("tqq9_inwarebillid",billid);
|
||||
dynamicObject1.set("tqq9_inwarebillentryid",billentryid);
|
||||
dynamicObject1.set("tqq9_inwarebillentryqty",qty);
|
||||
dynamicObject1.set("tqq9_wmsdetailid",tqq9_wmsdetailid);
|
||||
dynamicObject1.set("tqq9_productdate",producedate);
|
||||
dynamicObject1.set("tqq9_expiredate",expirydate);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
package tqq9.lc123.cloud.app.plugin.operate.pm;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||
import kd.bos.entity.plugin.args.BeforeOperationArgs;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
import tqq9.lc123.cloud.app.plugin.utils.AutoFixLinkUtil;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 采购退货单保存操作插件
|
||||
*/
|
||||
|
||||
|
||||
|
||||
public class PurRefundApplySaveOpPlugin extends AbstractOperationServicePlugIn implements Plugin {
|
||||
private final static Log logger = LogFactory.getLog(PurRefundApplySaveOpPlugin.class);
|
||||
private static String PM_PURREFUNDAPPLYBILL = "pm_purrefundapplybill";//采购退货申请单
|
||||
private static String PM_PURORDERBILL = "pm_purorderbill";//采购订单
|
||||
private static String billentry = "billentry";//分录标识
|
||||
|
||||
@Override
|
||||
public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
|
||||
super.beforeExecuteOperationTransaction(e);
|
||||
DynamicObject[] dataEntities1 = e.getDataEntities();
|
||||
if(dataEntities1.length>0){
|
||||
DynamicObject dynamicObject = dataEntities1[0];
|
||||
DynamicObjectCollection billentry1 = dynamicObject.getDynamicObjectCollection("billentry");
|
||||
if(billentry1.size()>0){
|
||||
DynamicObject dynamicObject1 = billentry1.get(0);
|
||||
String srcbillnumber = dynamicObject1.getString("srcbillnumber");
|
||||
DynamicObject pm_purorderbill = BusinessDataServiceHelper.loadSingle(PM_PURORDERBILL, new QFilter[]{new QFilter("billno", QCP.equals, srcbillnumber)});
|
||||
DynamicObjectCollection dynamicObjects = new DynamicObjectCollection();
|
||||
dynamicObjects.add(pm_purorderbill);
|
||||
dynamicObjects.stream().collect(Collectors.toList())
|
||||
; AutoFixLinkUtil fixLinkHelp = new AutoFixLinkUtil();
|
||||
fixLinkHelp.linkSourceRow(dynamicObject, dynamicObjects.stream().collect(Collectors.toList()), PM_PURREFUNDAPPLYBILL, billentry,"srcbillentryid",
|
||||
PM_PURORDERBILL, billentry,"","billentry_lk");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -15,6 +15,8 @@ import kd.bos.orm.query.QCP;
|
|||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
import tqq9.lc123.cloud.app.eip.iscb.LCLogService;
|
||||
import tqq9.lc123.cloud.app.eip.iscb.impl.LCLogServiceImpl;
|
||||
import tqq9.lc123.cloud.app.plugin.operate.pm.PurOrderBillRebatePlugin;
|
||||
import tqq9.lc123.cloud.app.plugin.utils.HttpRequestUtils;
|
||||
|
||||
|
|
@ -268,14 +270,18 @@ public class RebateRuleOpPlugin extends AbstractOperationServicePlugIn implement
|
|||
|
||||
|
||||
Gson gson = new Gson();
|
||||
LCLogService lcLogService = new LCLogServiceImpl();
|
||||
try {
|
||||
String bodyString = HttpRequestUtils.postJson(Push_URL, bodyMap.toString(), tokenMap);
|
||||
JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
||||
Integer data = map.getInteger("data");
|
||||
if (data == null) {
|
||||
this.getOperationResult().setMessage("返利规则:" + name + ",审核时创建返利规则失败");
|
||||
lcLogService.savelog("创建返利规则",Push_URL,true,false, bodyMap.toString(), bodyString);
|
||||
}else{
|
||||
lcLogService.savelog("创建返利规则",Push_URL,true,true, bodyMap.toString(), bodyString);
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
lcLogService.savelog("创建返利规则",Push_URL,true,false, bodyMap.toString(), "接口调用报错,无返回值");
|
||||
throw new RuntimeException(ex);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,91 @@
|
|||
package tqq9.lc123.cloud.app.plugin.utils;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.EntityMetadataCache;
|
||||
import kd.bos.entity.botp.runtime.TableDefine;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 示例:提供方法,自动创建(修复)与源单的关联关系,支持联查反写
|
||||
*
|
||||
* @author rd_johnnyding
|
||||
*/
|
||||
public class AutoFixLinkUtil {
|
||||
|
||||
/**
|
||||
* @param targetBill 目标单据
|
||||
* @param srcBills 上游单据
|
||||
* @param targetEntityNumber 目标单据标识
|
||||
* @param targetEntryKey 目标单据体标识
|
||||
* @param targetFieldKey 目标单据体的【上游单据行ID】字段标识
|
||||
* @param srcEntityNumber 上游单据标识
|
||||
* @param srcEntryKey 上游单据体标识
|
||||
* @param srcFieldKey 上游单据体主键字段标识-默认空
|
||||
* @param lkEntryKey 目标单中关联配置单据体标识
|
||||
*/
|
||||
public void linkSourceRow(DynamicObject targetBill, List<DynamicObject> srcBills,
|
||||
String targetEntityNumber, String targetEntryKey, String targetFieldKey,
|
||||
String srcEntityNumber, String srcEntryKey, String srcFieldKey, String lkEntryKey) {
|
||||
|
||||
// 循环分析源单行,提取源单行号、源单内码、分录行内码对应关系,放在字典中备用: key = 源单行号; value = [源单内码、分录行内码]
|
||||
Map<String, Object[]> srcRowIds = new HashMap<>();
|
||||
for (DynamicObject srcBill : srcBills) {
|
||||
DynamicObjectCollection srcRows = srcBill.getDynamicObjectCollection(srcEntryKey);
|
||||
for (DynamicObject srcRow : srcRows) {
|
||||
String shkd_bussysentryno = null;
|
||||
if (!kd.bos.util.StringUtils.isEmpty(srcFieldKey)) {
|
||||
shkd_bussysentryno = srcRow.getString(srcFieldKey);
|
||||
} else {
|
||||
shkd_bussysentryno = srcRow.getPkValue().toString();
|
||||
}
|
||||
Object[] srcRowId = new Object[]{srcBill.getPkValue(), srcRow.getPkValue()};
|
||||
srcRowIds.put(shkd_bussysentryno, srcRowId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 获取源单单据体的表格编码:传入源单标识、源单单据体,记录关联关系时,需要用此编码,标识源单及单据体
|
||||
TableDefine tableDefine = EntityMetadataCache.loadTableDefine(srcEntityNumber, srcEntryKey);
|
||||
Long srcTableId = tableDefine.getTableId();
|
||||
|
||||
// 拼接处关联子实体标识:如果是单据头下的lk子表,固定使用billhead_lk;如果是单据体下的lk子表,用单据体标识+lk
|
||||
// String lkEntryKey = StringUtils.equals(targetEntityNumber, targetEntryKey) ? "billhead_lk" : targetEntryKey + "_lk";
|
||||
|
||||
// 当前单据
|
||||
TableDefine targetTableDefine = EntityMetadataCache.loadTableDefine(targetEntityNumber, targetEntryKey);
|
||||
DynamicObjectCollection targetRows = targetBill.getDynamicObjectCollection(targetTableDefine.getEntityKey());
|
||||
|
||||
for (DynamicObject targetRow : targetRows) {
|
||||
// 获取下级_lk子实体行
|
||||
DynamicObjectCollection linkRows = targetRow.getDynamicObjectCollection(lkEntryKey);
|
||||
if (!linkRows.isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
linkRows.clear();
|
||||
|
||||
// 寻找匹配的源单行:提取本行的匹配字段值,和源单行进行比对
|
||||
String shkd_bussysentryno = targetRow.getString(targetFieldKey);
|
||||
if (srcRowIds.containsKey(shkd_bussysentryno)) {
|
||||
// 找到了匹配的行,创建一条_lk子实体上数据,记录源单内码
|
||||
DynamicObject linkRow = new DynamicObject(linkRows.getDynamicObjectType());
|
||||
linkRows.add(linkRow);
|
||||
|
||||
// 在lk行中,记录源单分录表格编码、源单内码、源单分录内码
|
||||
Object[] srcRowId = srcRowIds.get(shkd_bussysentryno);
|
||||
linkRow.set(lkEntryKey + "_stableid", srcTableId); // 源单分录表格编码:以此标识源单类型及单据体
|
||||
linkRow.set(lkEntryKey + "_sbillid", srcRowId[0]); // 源单内码
|
||||
linkRow.set(lkEntryKey + "_sid", srcRowId[1]); // 源单分录行内码
|
||||
}
|
||||
}
|
||||
// // 至此:目标单分录行上,已经自动填写源单分录行内码;保存时,会自动创建关联关系及反写
|
||||
// SaveServiceHelper.save(
|
||||
// // 目标单主实体编码
|
||||
// new DynamicObject[] {targetBill} // 目标单数据包
|
||||
// ); // 操作参数,可通过option传入各种自定义参数
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue