1.采购订单新增采购入库分录

This commit is contained in:
龚豆豆 2025-12-17 18:02:38 +08:00
parent b98eb948ac
commit b5a58d181c
2 changed files with 300 additions and 30 deletions

View File

@ -1,23 +1,32 @@
package tqq9.lc123.cloud.app.plugin.form.pm;
import com.google.gson.Gson;
import kd.bos.algo.DataSet;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.OperateOption;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.utils.StringUtils;
import kd.bos.db.DB;
import kd.bos.db.DBRoute;
import kd.bos.entity.datamodel.IDataModel;
import kd.bos.entity.datamodel.events.AfterDeleteRowEventArgs;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.control.EntryGrid;
import kd.bos.form.control.events.BeforeItemClickEvent;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.form.events.BeforeDoOperationEventArgs;
import kd.bos.form.operate.FormOperate;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.orm.ORM;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.servicehelper.operation.OperationServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import tqq9.lc123.cloud.app.eip.iscb.LCLogService;
import tqq9.lc123.cloud.app.eip.iscb.impl.LCLogServiceImpl;
import tqq9.lc123.cloud.app.plugin.utils.HttpRequestUtils;
@ -25,10 +34,7 @@ import tqq9.lc123.cloud.app.plugin.utils.HttpRequestUtils;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 采购订单
@ -51,22 +57,11 @@ public class PuroderBillShareRefundPlugin extends AbstractBillPlugIn {
FLXT_TOKEN = token != null ? token.getString("name") : null;
}
// @Override
// public void afterAddRow(AfterAddRowEventArgs e) {
// super.afterAddRow(e);
// if (StringUtils.equals(e.getEntryProp().getName(), ENTRYENTITY)) {
// BigDecimal tqq9_discountamount = (BigDecimal) this.getModel().getValue("tqq9_discountamount");
// if (tqq9_discountamount.compareTo(BigDecimal.ZERO) > 0) {
// RowDataEntity[] rowDataEntities = e.getRowDataEntities();
// for (RowDataEntity rowDataEntity : rowDataEntities) {
// int rowIndex = rowDataEntity.getRowIndex();
// this.getModel().setValue("discounttype", "C", rowIndex);
// }
// }
//
// }
// }
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
this.addItemClickListeners("tbmainentry");
}
@Override
public void afterDeleteRow(AfterDeleteRowEventArgs e) {
@ -181,7 +176,7 @@ public class PuroderBillShareRefundPlugin extends AbstractBillPlugIn {
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
// super.propertyChanged(e);
String name = e.getProperty().getName();
DynamicObject dataEntity = this.getModel().getDataEntity(true);
if ("tqq9_hsxfsyje".equals(name)) {
@ -518,15 +513,265 @@ public class PuroderBillShareRefundPlugin extends AbstractBillPlugIn {
FormOperate formOperate = (FormOperate)args.getSource();
if ( StringUtils.equals("save", formOperate.getOperateKey())) {
DynamicObject dataEntity = this.getModel().getDataEntity(true);
BigDecimal totalallamount = dataEntity.getBigDecimal("totalallamount");
BigDecimal tqq9_payamount = dataEntity.getBigDecimal("tqq9_payamount");
if (tqq9_payamount.compareTo(BigDecimal.ZERO) == 0) {
if (totalallamount.compareTo(BigDecimal.ZERO) == 0) {
DynamicObjectCollection purbillentry_pay = dataEntity.getDynamicObjectCollection("purbillentry_pay");
DynamicObjectCollection billentry = dataEntity.getDynamicObjectCollection("billentry");
for (DynamicObject dynamicObject : billentry) {
dynamicObject.set("ispresent",true);
}
purbillentry_pay.clear();
// SaveServiceHelper.save(new DynamicObject[]{dataEntity});
}
if (tqq9_payamount.compareTo(BigDecimal.ZERO) == 0) {
DynamicObjectCollection purbillentry_pay = dataEntity.getDynamicObjectCollection("purbillentry_pay");
purbillentry_pay.clear();
}
}
}
/**
* 校验选择列
* @param evt
*/
@Override
public void beforeItemClick(BeforeItemClickEvent evt) {
super.beforeItemClick(evt);
String itemKey = evt.getItemKey();
if (StringUtils.equals("tqq9_choosereturn",itemKey)) {
EntryGrid billentry = this .getControl("billentry");
int [] selectRows = billentry .getSelectRows();
if (selectRows==null||selectRows.length==0) {
evt.setCancel(true);
this.getView().showErrorNotification("请选择物料明细执行该操作");
}
DynamicObject dataEntity = this.getModel().getDataEntity(true);
String billno = dataEntity.getString("billno");//采购订单号
DynamicObject[] 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.tqq9_cs," +
"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,billentry.taxrate,billentry.srcbillnumber,billentry.tqq9_inwarebillentryid,billentry.invtype", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, billno).and("billstatus", QCP.equals, "C")});
if(im_purinblil==null||im_purinblil.length==0){
evt.setCancel(true);
this.getView().showErrorNotification("所选物料明细没有入库记录");
}
}
}
/**
* 根据选择列带出入库单分录
* @param evt
*/
@Override
public void itemClick(ItemClickEvent evt) {
super.itemClick(evt);
String itemKey = evt.getItemKey();
if (StringUtils.equals("tqq9_choosereturn",itemKey)) {
EntryGrid entry = this .getControl("billentry");
int [] selectRows = entry .getSelectRows();
HashSet<String> ids=new HashSet();
StringBuilder inWaresId = new StringBuilder();
BigDecimal zero = BigDecimal.ZERO;
DynamicObject dataEntity = this.getModel().getDataEntity(true);
DynamicObjectCollection tqq9_entryentity = dataEntity.getDynamicObjectCollection("tqq9_entryentity");
tqq9_entryentity.clear();
String billno = dataEntity.getString("billno");//采购订单号
//查询订单相关入库单
DynamicObject[] im_purinblil = BusinessDataServiceHelper.load("im_purinbill", "id,name,billno,bookdate,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.tqq9_cs," +
"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,billentry.taxrate,billentry.srcbillnumber,billentry.tqq9_inwarebillentryid,billentry.invtype,billentry.tqq9_cksx," +
"billentry.invstatus", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, billno).and("billstatus", QCP.equals, "C")});
//采购退货申请单
DynamicObject[] pm_purrefundapplybill = BusinessDataServiceHelper.load("pm_purrefundapplybill", "id,name,billno,billentry.material,billentry.qty,billentry.returnqty,billentry.tqq9_inwarebillentryid,tqq9_sourcebillno", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, billno).and("tqq9_sourcebillno", QCP.equals,"")});
//过滤选择列信息
if (selectRows!=null&&selectRows.length>0) {
DynamicObjectCollection billentry1 = dataEntity.getDynamicObjectCollection("billentry");
for (int selectRow : selectRows) {
DynamicObject dynamicObject = billentry1.get(selectRow);
//分录id
String id = dynamicObject.getString("id");
ids.add(id);
}
}
if (im_purinblil != null) {
HashMap<String, ArrayList<BigDecimal>> map = new HashMap<>();
for (DynamicObject dynamicObject : im_purinblil) {
DynamicObjectCollection billentry = dynamicObject.getDynamicObjectCollection("billentry");
String purinBillno = dynamicObject.getString("billno");//入库单单号
Date bookdate = dynamicObject.getDate("bookdate");//记账日期
for (DynamicObject object : billentry) {
String mainbillentryid = object.getString("mainbillentryid");//核心单据行id
if (!ids.contains(mainbillentryid)) {
continue;
}
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"))});
DynamicObject baseunit = masterid.getDynamicObject("baseunit");//计量单位
DynamicObject tqq9_registration = object.getDynamicObject("tqq9_registration");//注册证
String tqq9_cs = object.getString("tqq9_cs");//生产厂商
String tqq9_licenseno = object.getString("tqq9_licenseno");//许可证
DynamicObject tqq9_cksx = object.getDynamicObject("tqq9_cksx");//仓库属性
DynamicObject warehouse = object.getDynamicObject("warehouse");//入库仓库
BigDecimal qty = object.getBigDecimal("qty");//数量
String lotnumber = object.getString("lotnumber");//批号
DynamicObject bd_lot = BusinessDataServiceHelper.loadSingle("bd_lot", new QFilter[]{new QFilter("number", QCP.equals, lotnumber)});
DynamicObject tqq9_goods = object.getDynamicObject("tqq9_goods");//商品
Date producedate = object.getDate("producedate");//生产日期
Date expirydate = object.getDate("expirydate");//失效日期
String tqq9_inwarebillentryid = object.getString("id");//入库单分录id
inWaresId.append(",").append(tqq9_inwarebillentryid);
DynamicObject invtype = object.getDynamicObject("invtype");//入库库存类型
DynamicObject invstatus = object.getDynamicObject("invstatus");//入库库存状态
if (qty.compareTo(BigDecimal.ZERO) > 0) {
DynamicObject dynamicObject1 = tqq9_entryentity.addNew();
dynamicObject1.set("tqq9_rkno", purinBillno);//入库单单号
dynamicObject1.set("tqq9_rkck", warehouse);//入库仓库
dynamicObject1.set("tqq9_sp", tqq9_goods);//商品
dynamicObject1.set("tqq9_materielbm", masterid);//物料编码
dynamicObject1.set("tqq9_wlmc", masterid.getString("name"));//物料名称
dynamicObject1.set("tqq9_jldw", baseunit);//计量单位
dynamicObject1.set("tqq9_rkqty", qty);//入库数量
// dynamicObject1.set("tqq9_pckyamount", qty);//批次可用量
dynamicObject1.set("tqq9_rkdate", bookdate);//入库日期
dynamicObject1.set("tqq9_lot", bd_lot);//批号主档
dynamicObject1.set("tqq9_lotnumber", bd_lot.getString("number"));//批号
dynamicObject1.set("tqq9_prodate", producedate);//生产日期
dynamicObject1.set("tqq9_enddate", expirydate);//失效日期
dynamicObject1.set("tqq9_zcz", tqq9_registration);//注册证号
dynamicObject1.set("tqq9_scs", tqq9_cs);//生产商
dynamicObject1.set("tqq9_xkz", tqq9_licenseno);//许可证号
dynamicObject1.set("tqq9_cksx1", tqq9_cksx);//仓库属性
dynamicObject1.set("tqq9_kczt", invstatus);//入库库存状态
dynamicObject1.set("tqq9_kclx", invtype);//入库库存类型
dynamicObject1.set("tqq9_entryid", tqq9_inwarebillentryid);//分录id
} else {
if (map.containsKey(tqq9_inwarebillentryid)) {
ArrayList<BigDecimal> entry_qty = map.get(tqq9_inwarebillentryid);
entry_qty.add(qty);
map.put(tqq9_inwarebillentryid, entry_qty);
}else{
ArrayList<BigDecimal> objects = new ArrayList<>();
objects.add(qty);
map.put(tqq9_inwarebillentryid, objects);
}
}
}
}
for (Map.Entry<String, ArrayList<BigDecimal>> entrySet : map.entrySet()) {
String id = entrySet.getKey();
ArrayList<BigDecimal> qtylist = entrySet.getValue();
ListIterator<DynamicObject> iterator = tqq9_entryentity.listIterator();
while (iterator.hasNext()) {
DynamicObject dynamicObject1 = iterator.next();
String inwarebillentryid = dynamicObject1.getString("tqq9_entryid");
if (com.alibaba.nacos.common.utils.StringUtils.equals(inwarebillentryid, id)) {
BigDecimal qty2 = dynamicObject1.getBigDecimal("tqq9_rkqty");
BigDecimal add = qty2;
for (BigDecimal bigDecimal : qtylist) {
add=add.add(bigDecimal);
}
if (add.compareTo(BigDecimal.ZERO) > 0) {
dynamicObject1.set("tqq9_rkqty", add);
} else {
iterator.remove();
}
}
}
}
//采购退货申请锁定数量扣减
if (pm_purrefundapplybill != null) {
for (DynamicObject dynamicObject : pm_purrefundapplybill) {
DynamicObjectCollection billentry = dynamicObject.getDynamicObjectCollection("billentry");
for (DynamicObject object : billentry) {
BigDecimal returnqty = object.getBigDecimal("returnqty");
BigDecimal qty = object.getBigDecimal("qty");
BigDecimal subtract = qty.subtract(returnqty);
if (subtract.compareTo(zero) > 0) {
String id = object.getString("tqq9_inwarebillentryid");
ListIterator<DynamicObject> iterator = tqq9_entryentity.listIterator();
while (iterator.hasNext()) {
DynamicObject dynamicObject1 = iterator.next();
String inwarebillentryid = dynamicObject1.getString("tqq9_entryid");
if (com.alibaba.nacos.common.utils.StringUtils.equals(inwarebillentryid, id)) {
BigDecimal qty1 = dynamicObject1.getBigDecimal("tqq9_rkqty");
BigDecimal subtract1 = qty1.subtract(subtract);
if (subtract1.compareTo(BigDecimal.ZERO) > 0) {
dynamicObject1.set("tqq9_rkqty", subtract1);
} else {
iterator.remove();
}
}
}
}
}
}
}
//物料
DataSet materialpurchaseinfoDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(),
"bd_materialinventoryinfo",
"id as materialinventoryinfo,masterid as material ",
new QFilter[]{},
null);
//采购入库sql
String purInSql="/*dialect*/select fentryid id,fwarehouseid warehouse,fk_tqq9_goods goods,fmaterialid inventoryinfo,flotnumber lot,fproducedate producedate,fexpirydate expirydate,\n" +
"fk_tqq9_registration registration,fk_tqq9_cksx tqq9_cksx,finvstatusid invstatus,finvtypeid invtype from t_im_purinbillentry where fentryid in("+inWaresId.substring(1)+")";
logger.info("PuroderBillShareRefundPlugin-采购入库sql"+purInSql);
//即时库存余额表
String realBalanceSql="/*dialect*/select fid realbalanceId,fwarehouseid warehouse,fk_tqq9_goods goods,fmaterialid material,flotnum lot,fproducedate producedate,fexpirydate expirydate,\n" +
"fk_tqq9_registration registration,fk_tqq9_cksx tqq9_cksx,finvstatusid invstatus,finvtypeid invtype,COALESCE(fqty,0) qty from t_im_inv_realbalance ";
logger.info("PuroderBillShareRefundPlugin-即时库存余额表sql"+realBalanceSql);
//预留记录
String reserveRecordSql="/*dialect*/select f_bal_id realbalanceId,sum(COALESCE(f_qty,0)) s_qty from t_msmod_reserverecord group by f_bal_id";
logger.info("PuroderBillShareRefundPlugin-预留记录sql"+reserveRecordSql);
DataSet purInDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("scm"), purInSql);
DataSet realBalanceDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("scm"), realBalanceSql);
DataSet reserveRecordDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("scm"), reserveRecordSql);
purInDataSet=purInDataSet.leftJoin(materialpurchaseinfoDataSet).on("inventoryinfo","materialinventoryinfo").select("id","warehouse","goods","material","lot","producedate","expirydate","registration"
,"tqq9_cksx","invstatus","invtype").finish()
.leftJoin(realBalanceDataSet).on("warehouse","warehouse").on("goods","goods").on("material","material").on("lot","lot").on("producedate","producedate")
.on("expirydate","expirydate").on("registration","registration").on("tqq9_cksx","tqq9_cksx").on("invstatus","invstatus").on("invtype","invtype")
.select("id","realbalanceId","warehouse","goods","material","lot","producedate","expirydate","registration"
,"tqq9_cksx","invstatus","invtype","qty").finish()
.leftJoin(reserveRecordDataSet).on("realbalanceId","realbalanceId").select("id","realbalanceId","warehouse","goods","material","lot","producedate","expirydate","registration"
,"tqq9_cksx","invstatus","invtype","qty","(CASE WHEN qty IS NULL THEN 0 ELSE qty END) - (CASE WHEN s_qty IS NULL THEN 0 ELSE s_qty END) AS totalQty").finish();
DataSet copy = purInDataSet.copy();
DynamicObjectCollection dynamicObjects = ORM.create().toPlainDynamicObjectCollection(copy);
HashMap<String,BigDecimal> qtyMap=new HashMap<>();
for (DynamicObject dynamicObject : dynamicObjects) {
String id = dynamicObject.getString("id");
BigDecimal totalQty = dynamicObject.getBigDecimal("totalQty");
qtyMap.put(id,totalQty);
}
for (DynamicObject dynamicObject : tqq9_entryentity) {
String tqq9_entryid = dynamicObject.getString("tqq9_entryid");
BigDecimal totalQty = qtyMap.get(tqq9_entryid);
dynamicObject.set("tqq9_pckyamount",totalQty);
}
SaveServiceHelper.save(new DynamicObject[]{dataEntity});
this.getView().updateView();
}
}
}

View File

@ -39,6 +39,7 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp
DynamicObjectCollection dynamicObjectCollection = dataEntity.getDynamicObjectCollection("billentry");
DynamicObject[] im_purinblil = null;
DynamicObject[] pm_purrefundapplybill = null;
DynamicObject pm_purorderbill = null;
for (DynamicObject entry : dynamicObjectCollection) {
String mainbillnumber = entry.getString("mainbillnumber");
//采购订单
@ -52,21 +53,43 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp
"billentry.amount,billentry.curamount,billentry.taxamount,billentry.curtaxamount,billentry.tqq9_cs," +
"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,billentry.taxrate,billentry.srcbillnumber,billentry.tqq9_inwarebillentryid,billentry.invtype", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, mainbillnumber).and("billstatus", QCP.equals, "C")});
"billentry.tqq9_goods,billentry.tqq9_wmsdetailid,billentry.producedate,billentry.expirydate,creator,createtime,modifier,modifytime,billentry.owner,billentry.taxrate,billentry.srcbillnumber,billentry.tqq9_inwarebillentryid,billentry.invtype,billentry.tqq9_cksx", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, mainbillnumber).and("billstatus", QCP.equals, "C")});
//采购退货申请单
pm_purrefundapplybill = BusinessDataServiceHelper.load("pm_purrefundapplybill", "id,name,billno,billentry.material,billentry.qty,billentry.returnqty,billentry.tqq9_inwarebillentryid,tqq9_sourcebillno", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, mainbillnumber).and("tqq9_sourcebillno", QCP.equals,"")});
pm_purrefundapplybill = BusinessDataServiceHelper.load("pm_purrefundapplybill", "id,name,billno,billentry.material,billentry.qty,billentry.returnqty,billentry.tqq9_inwarebillentryid,tqq9_sourcebillno", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, mainbillnumber).and("tqq9_sourcebillno", QCP.equals, "")});
pm_purorderbill = BusinessDataServiceHelper.loadSingle("pm_purorderbill", new QFilter[]{new QFilter("billno", QCP.equals, mainbillnumber)});
}
BigDecimal zero = BigDecimal.ZERO;
if(im_purinblil!=null){
if (im_purinblil != null) {
dynamicObjectCollection.clear();
}
DynamicObjectCollection tqq9_entryentity = pm_purorderbill.getDynamicObjectCollection("tqq9_entryentity");
HashMap<String, BigDecimal> pckyMap = new HashMap();
for (DynamicObject dynamicObject : tqq9_entryentity) {
String tqq9_entryid = dynamicObject.getString("tqq9_entryid");
BigDecimal tqq9_pckyamount = dynamicObject.getBigDecimal("tqq9_pckyamount");
pckyMap.put(tqq9_entryid, tqq9_pckyamount);
}
if (im_purinblil != null) {
HashMap<String, ArrayList<BigDecimal>> map = new HashMap<>();
for (DynamicObject dynamicObject : im_purinblil) {
DynamicObjectCollection billentry = dynamicObject.getDynamicObjectCollection("billentry");
String billid = dynamicObject.getString("id");
for (DynamicObject object : billentry) {
BigDecimal qty = object.getBigDecimal("qty");//数量
String tqq9_inwarebillentryid ="";
if (qty.compareTo(BigDecimal.ZERO) > 0) {
tqq9_inwarebillentryid = object.getString("id");//入库单分录id
}else{
tqq9_inwarebillentryid = object.getString("tqq9_inwarebillentryid");//入库单分录id
}
BigDecimal tqq9_pckyamount = BigDecimal.ZERO;//批次可用量
if (pckyMap.containsKey(tqq9_inwarebillentryid) || qty.compareTo(BigDecimal.ZERO) < 0) {
tqq9_pckyamount = pckyMap.get(tqq9_inwarebillentryid);
} else {
continue;
}
String billentryid = object.getString("id");
DynamicObject material = object.getDynamicObject("material");//物料库存信息
DynamicObject masterid = material.getDynamicObject("masterid");//物料信息
@ -94,7 +117,7 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp
String tqq9_licenseno = object.getString("tqq9_licenseno");//许可证
DynamicObject tqq9_brand = masterid.getDynamicObject("tqq9_brand");//品牌
DynamicObject warehouse = object.getDynamicObject("warehouse");//入库仓库
BigDecimal qty = object.getBigDecimal("qty");//数量
// BigDecimal qty = object.getBigDecimal("qty");//数量
Boolean ispresent = object.getBoolean("ispresent");//是否赠品
String ownertype = object.getString("ownertype");//货主类型
DynamicObject owner = object.getDynamicObject("owner");//货主
@ -123,8 +146,8 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp
Date producedate = object.getDate("producedate");//生产日期
Date expirydate = object.getDate("expirydate");//生产日期
String srcbillnumber = object.getString("srcbillnumber");//来源单据编号收货单
String tqq9_inwarebillentryid = object.getString("tqq9_inwarebillentryid");//入库单分录id
DynamicObject invtype = object.getDynamicObject("invtype");//入库库存类型
DynamicObject tqq9_cksx = object.getDynamicObject("tqq9_cksx");//仓库属性
if (qty.compareTo(BigDecimal.ZERO) > 0) {
@ -167,6 +190,7 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp
dynamicObject1.set("tqq9_maxqty", qty);
dynamicObject1.set("qty", qty);
dynamicObject1.set("baseqty", qty);
dynamicObject1.set("tqq9_pckyamount", tqq9_pckyamount);
dynamicObject1.set("ispresent", ispresent);
dynamicObject1.set("ownertype", ownertype);
dynamicObject1.set("owner", owner);
@ -201,12 +225,13 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp
dynamicObject1.set("tqq9_expiredate", expirydate);
dynamicObject1.set("tqq9_shbillno", srcbillnumber);
dynamicObject1.set("tqq9_basedatafield1", invtype);
dynamicObject1.set("tqq9_assistantfield", tqq9_cksx);
} else {
if (map.containsKey(tqq9_inwarebillentryid)) {
ArrayList<BigDecimal> entry_qty = map.get(tqq9_inwarebillentryid);
entry_qty.add(qty);
map.put(tqq9_inwarebillentryid, entry_qty);
}else{
} else {
ArrayList<BigDecimal> objects = new ArrayList<>();
objects.add(qty);
map.put(tqq9_inwarebillentryid, objects);
@ -226,7 +251,7 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp
BigDecimal add = qty2;
for (BigDecimal bigDecimal : qtylist) {
add=add.add(bigDecimal);
add = add.add(bigDecimal);
}
if (add.compareTo(BigDecimal.ZERO) > 0) {
dynamicObject1.set("tqq9_inwarebillentryqty", add);