通用成本中心插件更新分录携带分录成本中心字段值

This commit is contained in:
zengweihai 2024-06-26 21:56:32 +08:00
parent 5df1e116f0
commit d90d9c64a2
1 changed files with 40 additions and 1 deletions

View File

@ -3,8 +3,11 @@ package shkd.fi.er.plugin.formplugin;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.RowDataEntity;
import kd.bos.entity.datamodel.events.AfterAddRowEventArgs;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.events.AfterDoOperationEventArgs;
import kd.bos.form.field.BasedataEdit;
import kd.bos.form.field.events.BeforeF7SelectEvent;
import kd.bos.form.field.events.BeforeF7SelectListener;
@ -122,10 +125,46 @@ public class CommonCostCenterBillFormPlugin extends AbstractBillPlugIn implement
}
}
}
}
@Override
public void afterAddRow(AfterAddRowEventArgs e) {
super.afterAddRow(e);
String name = e.getEntryProp().getName();
if ("expenseentryentity".equals(name)){
if (entryCostList.contains(entityId)){
RowDataEntity[] rowDataEntities = e.getRowDataEntities();
for (RowDataEntity rowDataEntity : rowDataEntities) {
DynamicObject std_entrycostcenter = rowDataEntity.getDataEntity().getDynamicObject("std_entrycostcenter");
if (std_entrycostcenter == null){
DynamicObject dataEntity = this.getModel().getDataEntity();
DynamicObject applier = dataEntity.getDynamicObject("applier");//申请人
if (applier != null){
DynamicObject bos_user = BusinessDataServiceHelper.loadSingle(applier.getPkValue(), "bos_user");
DynamicObjectCollection costEntity = bos_user.getDynamicObjectCollection("shkd_costentity");
if (costEntity.size() > 0){
DynamicObject shkd_e_cost = costEntity.get(0).getDynamicObject("shkd_e_cost");
int rowIndex = rowDataEntity.getRowIndex();
this.getModel().setValue("std_entrycostcenter",shkd_e_cost,rowIndex);
}
}
}
}
}
}else if ("entryentity".equals(name)){
RowDataEntity[] rowDataEntities = e.getRowDataEntities();
Object std_costcenter = this.getModel().getValue("std_costcenter");
for (RowDataEntity rowDataEntity : rowDataEntities) {
DynamicObject travelcostcenter = rowDataEntity.getDataEntity().getDynamicObject("travelcostcenter");
if (travelcostcenter == null){
int rowIndex = rowDataEntity.getRowIndex();
this.getModel().setValue("travelcostcenter",std_costcenter,rowIndex);
}
}
}
}
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);