工程管理付款申请复制功能字段缺失问题处理

This commit is contained in:
zhangzhiguo 2025-03-25 18:26:14 +08:00
parent 426c023324
commit 944ba17c7e
1 changed files with 59 additions and 0 deletions

View File

@ -0,0 +1,59 @@
package zcgj.zcdev.zcdev.pr.plugin.form;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.form.control.EntryGrid;
import kd.bos.form.control.events.ItemClickEvent;
import kd.sdk.plugin.Plugin;
import java.math.BigDecimal;
import java.util.EventObject;
import java.util.List;
public class PaymentapplyCopyPlugin extends AbstractBillPlugIn implements Plugin {
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
//监听工具栏按钮点击事件
this.addItemClickListeners("entrytoolbar");
//this.addClickListeners("advcontoolbarap");
}
@Override
public void itemClick(ItemClickEvent evt) {
super.itemClick(evt);
String ENTITY_KEY = "entryentity";
if (evt.getItemKey().equals("zcgj_pay_copy")) {
EntryGrid entryGrid = this.getControl("entryentity");
//获取选中行数组为行号从0开始int[]
int[] selectRows = entryGrid.getSelectRows();
//获取单据体数据集合
DynamicObjectCollection entity=this.getModel().getEntryEntity("entryentity");
List<DynamicObject> dynamicObjects = entity.subList(entity.size() - selectRows.length, entity.size());
for (int i = 0; i < selectRows.length; i++) {
DynamicObject dynamicObject = entity.get(selectRows[i]); //选择的单据体数据
DynamicObject dynamicObjectCopy = dynamicObjects.get(i); //复制的单据提数据
dynamicObjectCopy.set("thisapplyoftax",dynamicObject.get("thisapplyoftax"));
dynamicObjectCopy.set("applyoftaxamount",dynamicObject.get("applyoftaxamount"));
dynamicObjectCopy.set("endpaymentrate",dynamicObject.get("endpaymentrate"));
}
this.getModel().setValue("totalshouldpay", this.getSum("entryentity", "applyoftaxamount"));
this.getView().updateView(ENTITY_KEY);
this.getView().updateView("totalshouldpay");
}
}
protected BigDecimal getSum(String entryId, String columnId) {
int rowCount = this.getModel().getEntryRowCount(entryId);
BigDecimal totalAmount = BigDecimal.ZERO;
for(int i = 0; i < rowCount; ++i) {
BigDecimal amount = (BigDecimal)this.getModel().getValue(columnId, i);
amount = amount == null ? BigDecimal.ZERO : amount;
totalAmount = totalAmount.add(amount);
}
return totalAmount;
}
}