工程进度表分录拆分

This commit is contained in:
李贵强 2025-01-09 17:39:14 +08:00
parent eebd9c6b40
commit e6d569774c
1 changed files with 81 additions and 0 deletions

View File

@ -0,0 +1,81 @@
package shkd.repc.recon.formplugin;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.utils.OrmUtils;
import kd.bos.dataentity.utils.StringUtils;
import kd.bos.entity.datamodel.RowDataEntity;
import kd.bos.entity.datamodel.events.AfterAddRowEventArgs;
import kd.bos.form.events.AfterDoOperationEventArgs;
import kd.bos.form.events.BeforeDoOperationEventArgs;
import kd.bos.form.operate.FormOperate;
import kd.bos.form.plugin.AbstractFormPlugin;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.sdk.plugin.Plugin;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
/**
* 动态表单插件
*/
public class ProjectProgressBillPlugin extends AbstractFormPlugin implements Plugin {
/**
*将分录拆分成表单
*/
@Override
public void beforeDoOperation(BeforeDoOperationEventArgs args) {
super.beforeDoOperation(args);
FormOperate source = (FormOperate) args.getSource();
String operateKey = source.getOperateKey();
if ("save".equals(operateKey)){
DynamicObjectCollection entryEntity = this.getView().getModel().getEntryEntity("qeug_entryentity");
if (null!=entryEntity&&entryEntity.size()>1){
// 从倒数第二条开始循环到第一条
for (int i = entryEntity.size() - 1; i >= 0; i--) {
if (i == 0) {
break; // 退出循环
}
//拆分
DynamicObject projectProgress = BusinessDataServiceHelper.newDynamicObject("qeug_projectprogress");
DynamicObjectCollection entry = projectProgress.getDynamicObjectCollection("qeug_entryentity");
DynamicObject cloneTargetTrip = (DynamicObject) OrmUtils.clone(entryEntity.get(i), false, true);
entry.add(cloneTargetTrip);
SaveServiceHelper.save(new DynamicObject[]{projectProgress});
this.getModel().deleteEntryRow("qeug_entryentity", i);
}
this.getView().showMessage("数据已拆分显示,请退出查看!");
}
}
}
@Override
public void afterAddRow(AfterAddRowEventArgs e) {
super.afterAddRow(e);
if (StringUtils.equals("qeug_entryentity",e.getEntryProp().getName())){
RowDataEntity[] rowDataEntities = e.getRowDataEntities();
for (int i = 0; i < rowDataEntities.length; i++) {
RowDataEntity rowDataEntity = rowDataEntities[i];
int rowIndex = rowDataEntity.getRowIndex();
int number=rowIndex+1;
this.getModel().setValue("qeug_number","GCJD-"+getNumber()+"-"+number,rowIndex);
}
}
}
public String getNumber(){
Date currentDate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
return sdf.format(currentDate);
}
}