【泛微接口】采购入库反审核减去商城商品的数量

This commit is contained in:
tanfengling@x-ri.com 2025-11-05 11:03:07 +08:00
parent f166d392f3
commit a5c8858d76
1 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1,67 @@
package tqq9.lc123.cloud.app.plugin.operate.im;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.utils.StringUtils;
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 kd.bos.servicehelper.operation.SaveServiceHelper;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 采购入库反审核
* 减去商城商品中的数量
*/
public class PurinUnauditSubGoodsQtyPlugin extends AbstractOperationServicePlugIn {
@Override
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
super.afterExecuteOperationTransaction(e);
OperationResult operationResult = this.getOperationResult();
List<Object> successPkIds = operationResult.getSuccessPkIds();
for (Object successPkId : successPkIds) {
DynamicObject bill = BusinessDataServiceHelper.loadSingle(successPkId, "im_purinbill");
DynamicObjectCollection entries = bill.getDynamicObjectCollection("billentry");
for (DynamicObject entry : entries) {
String lotnumber = entry.getString("lotnumber");
DynamicObject warehouse = entry.getDynamicObject("warehouse");
String whNumber = warehouse.getString("number");
Date producedate = entry.getDate("producedate");
Date expirydate = entry.getDate("expirydate");
BigDecimal qty = entry.getBigDecimal("qty");
DynamicObject tqq9_goods = entry.getDynamicObject("tqq9_goods");
if(tqq9_goods != null){
tqq9_goods = BusinessDataServiceHelper.loadSingle(tqq9_goods.getPkValue(), tqq9_goods.getDynamicObjectType().getName());
DynamicObjectCollection goodsEntries = tqq9_goods.getDynamicObjectCollection("");
for (DynamicObject goodsEntry : goodsEntries) {
DynamicObject tqq9_lot = goodsEntry.getDynamicObject("tqq9_lot");
String lotNumber = tqq9_lot.getString("number");//批次号
DynamicObject tqq9_basedatafield = goodsEntry.getDynamicObject("tqq9_basedatafield");
String warehouseNumber = tqq9_basedatafield.getString("number");//仓库编码
Date tqq9_productdate = goodsEntry.getDate("tqq9_productdate");
Date tqq9_todate = goodsEntry.getDate("tqq9_todate");
BigDecimal tqq9_availablestock = goodsEntry.getBigDecimal("tqq9_availablestock");
BigDecimal tqq9_upstock = goodsEntry.getBigDecimal("tqq9_upstock");
if(((StringUtils.isBlank(lotNumber) && StringUtils.isBlank(lotnumber)) || lotNumber.equals(lotnumber))
&& ((StringUtils.isBlank(whNumber) && StringUtils.isBlank(warehouseNumber)) || whNumber.equals(warehouseNumber))
&& ((tqq9_productdate == null && producedate == null) || (tqq9_productdate.equals(producedate)))
&& ((tqq9_todate == null && expirydate == null) || (tqq9_todate.equals(expirydate)))){
tqq9_availablestock = tqq9_availablestock.subtract(qty);
tqq9_upstock = tqq9_upstock.subtract(qty);
goodsEntry.set("tqq9_availablestock", tqq9_availablestock);
goodsEntry.set("tqq9_upstock", tqq9_upstock);
SaveServiceHelper.save(new DynamicObject[]{tqq9_goods});
break;
}
}
}
}
}
}
}