81 lines
3.1 KiB
Java
81 lines
3.1 KiB
Java
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);
|
|
}
|
|
} |