出库单添加使用设备赋值逻辑

This commit is contained in:
xuhaihui 2025-07-02 14:52:35 +08:00
parent 6385e97a73
commit b05a23820f
1 changed files with 31 additions and 18 deletions

View File

@ -11,6 +11,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.bill.OperationStatus;
import kd.bos.dataentity.entity.DynamicObject;
@ -33,7 +34,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.ec.basedata.common.utils.OpenPageUtils;
/**
* 出库单领料出库与领料申请关联逻辑
* 出库单领料出库与领料申请关联逻辑和使用设备赋值逻辑
*/
public class MaterialOutApplyPluginExt extends AbstractBillPlugIn implements BeforeF7SelectListener {
private static final String APPLYBILL = "applybill";
@ -45,7 +46,7 @@ public class MaterialOutApplyPluginExt extends AbstractBillPlugIn implements Bef
public void registerListener(EventObject e) {
super.registerListener(e);
BasedataEdit basedataEdit = (BasedataEdit)this.getControl("applybill");
BasedataEdit basedataEdit = (BasedataEdit) this.getControl("applybill");
basedataEdit.addBeforeF7SelectListener(this);
basedataEdit.addBeforeF7ViewDetailListener((beforeF7ViewDetailEvent) -> {
beforeF7ViewDetailEvent.setCancel(true);
@ -63,9 +64,9 @@ public class MaterialOutApplyPluginExt extends AbstractBillPlugIn implements Bef
public void beforeDoOperation(BeforeDoOperationEventArgs args) {
super.beforeDoOperation(args);
FormOperate operate = (FormOperate)args.getSource();
FormOperate operate = (FormOperate) args.getSource();
String operateKey = operate.getOperateKey();
DynamicObject applyBill = (DynamicObject)this.getModel().getValue("applybill");
DynamicObject applyBill = (DynamicObject) this.getModel().getValue("applybill");
if (StringUtils.equals("addnewentry", operateKey)) {
if (applyBill != null) {
this.openApplyEntryForm();
@ -77,8 +78,8 @@ public class MaterialOutApplyPluginExt extends AbstractBillPlugIn implements Bef
}
protected void beforeApplyBillSelect(BeforeF7SelectEvent arg0) {
DynamicObject project = (DynamicObject)this.getModel().getValue("project");
DynamicObject warehouse = (DynamicObject)this.getModel().getValue("warehouse");
DynamicObject project = (DynamicObject) this.getModel().getValue("project");
DynamicObject warehouse = (DynamicObject) this.getModel().getValue("warehouse");
if (warehouse == null) {
this.getView().showTipNotification(ResManager.loadKDString("请先选中仓库。", "MaterialOutApplyPlugin_1", "ec-ecma-formplugin", new Object[0]), 3000);
arg0.setCancel(true);
@ -103,12 +104,24 @@ public class MaterialOutApplyPluginExt extends AbstractBillPlugIn implements Bef
ChangeData changeData = e.getChangeSet()[0];
if (StringUtils.equals(name, "applybill")) {
this.applyBillChanged(changeData);
} else if (StringUtils.equals(name, "material")) {
//资源编码
DynamicObject material = (DynamicObject) changeData.getNewValue();
int rowIndex = changeData.getRowIndex(); //修改行所在行行号
DynamicObject applybill = (DynamicObject) this.getModel().getValue("applybill");//领料申请单
if (material != null && rowIndex > 0 && applybill == null) {
DynamicObjectCollection entryEntityCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity");//出库单明细
DynamicObject entryEntity = entryEntityCollection.get(0);
DynamicObject zcgj_shebei = entryEntity.getDynamicObject("zcgj_shebei");//使用设备
if (zcgj_shebei != null) {
this.getModel().setValue("zcgj_shebei", zcgj_shebei, rowIndex);//使用设备
}
}
}
}
protected void applyBillChanged(ChangeData changeData) {
DynamicObject newValue = (DynamicObject)changeData.getNewValue();
DynamicObject newValue = (DynamicObject) changeData.getNewValue();
if (newValue != null) {
newValue = BusinessDataServiceHelper.loadSingle(newValue.getPkValue(), "ecma_materialapplybill");
this.carryHeadData(newValue);
@ -128,8 +141,8 @@ public class MaterialOutApplyPluginExt extends AbstractBillPlugIn implements Bef
if (applyEntries != null && !applyEntries.isEmpty()) {
Iterator var4 = applyEntries.iterator();
while(var4.hasNext()) {
DynamicObject applyEntry = (DynamicObject)var4.next();
while (var4.hasNext()) {
DynamicObject applyEntry = (DynamicObject) var4.next();
BigDecimal restQty = applyEntry.getBigDecimal("restqty");
if (restQty.compareTo(BigDecimal.ZERO) != 0) {
DynamicObject newEntry = new DynamicObject(entries.getDynamicObjectType());
@ -168,8 +181,8 @@ public class MaterialOutApplyPluginExt extends AbstractBillPlugIn implements Bef
if (applyEntries != null && !applyEntries.isEmpty()) {
Iterator var5 = applyEntries.iterator();
while(var5.hasNext()) {
DynamicObject applyEntry = (DynamicObject)var5.next();
while (var5.hasNext()) {
DynamicObject applyEntry = (DynamicObject) var5.next();
if (applyEntryIdList.contains(applyEntry.getPkValue())) {
DynamicObject newEntry = new DynamicObject(entries.getDynamicObjectType());
newEntry.set("applyentryid", applyEntry.getLong("id"));
@ -259,13 +272,13 @@ public class MaterialOutApplyPluginExt extends AbstractBillPlugIn implements Bef
}
private void openApplyEntryForm() {
DynamicObject applyBill = (DynamicObject)this.getModel().getValue("applybill");//领料申请单
DynamicObject applyBill = (DynamicObject) this.getModel().getValue("applybill");//领料申请单
DynamicObjectCollection entries = this.getModel().getEntryEntity("entryentity");
StringBuffer selectedEntryIdBuff = new StringBuffer();
Iterator var4 = entries.iterator();
while(var4.hasNext()) {
DynamicObject entry = (DynamicObject)var4.next();
while (var4.hasNext()) {
DynamicObject entry = (DynamicObject) var4.next();
selectedEntryIdBuff.append(entry.get("applyentryid")).append(",");
}
@ -284,10 +297,10 @@ public class MaterialOutApplyPluginExt extends AbstractBillPlugIn implements Bef
public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
String actionID = closedCallBackEvent.getActionId();
Object returnData = closedCallBackEvent.getReturnData();
DynamicObject applyBill = (DynamicObject)this.getModel().getValue("applybill");
DynamicObject applyBill = (DynamicObject) this.getModel().getValue("applybill");
if (StringUtils.equals(actionID, "applyEntryCallback") && returnData != null) {
Map<String, Object> data = (Map)returnData;
List<Long> applyEntryIdList = (List)data.get("applyEntryIdList");
Map<String, Object> data = (Map) returnData;
List<Long> applyEntryIdList = (List) data.get("applyEntryIdList");
if (applyBill != null) {
DynamicObject applyBillData = BusinessDataServiceHelper.loadSingle(applyBill.getPkValue(), "ecma_materialapplybill");
this.carryEntryDataFromReturnData(applyBillData, applyEntryIdList);