提交人:陈绍鑫

日期:2025/5/15 9:30
内容:账户明细查询保存操作插件
This commit is contained in:
陈绍鑫 2025-05-15 11:41:34 +08:00
parent 44c67e65b4
commit 63af6bca0d
2 changed files with 47 additions and 2 deletions

View File

@ -12,7 +12,10 @@ import kd.bos.form.events.AfterDoOperationEventArgs;
import kd.bos.form.events.BeforeDoOperationEventArgs; import kd.bos.form.events.BeforeDoOperationEventArgs;
import kd.bos.form.operate.FormOperate; import kd.bos.form.operate.FormOperate;
import kd.bos.form.plugin.AbstractFormPlugin; import kd.bos.form.plugin.AbstractFormPlugin;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.orm.query.QFilter; import kd.bos.orm.query.QFilter;
import shkd.sys.sys.plugin.report.FinanceReportPlugin;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.EventObject; import java.util.EventObject;
@ -20,6 +23,8 @@ import java.util.List;
public class banksavekdFormPlugin extends AbstractFormPlugin { public class banksavekdFormPlugin extends AbstractFormPlugin {
private static final Log logger = LogFactory.getLog(banksavekdFormPlugin.class);
@Override @Override
public void registerListener(EventObject e) { public void registerListener(EventObject e) {
super.registerListener(e); super.registerListener(e);
@ -41,7 +46,7 @@ public class banksavekdFormPlugin extends AbstractFormPlugin {
@Override @Override
public void afterBindData(EventObject e) { public void afterBindData(EventObject e) {
// FilterCondition为存储的过滤配置元数据需要自行从存储加载 // FilterCondition为存储的过滤配置元数据需要自行从存储加载
String filterObj = (String) getModel().getValue("shkd_filter"); String filterObj = (String) getModel().getValue("shkd_filter_tag");
FilterCondition filterCondition = null; FilterCondition filterCondition = null;
if (!StringUtils.isEmpty(filterObj)) { if (!StringUtils.isEmpty(filterObj)) {
filterCondition = SerializationUtils.fromJsonString(filterObj.toString(), FilterCondition.class); filterCondition = SerializationUtils.fromJsonString(filterObj.toString(), FilterCondition.class);
@ -85,7 +90,7 @@ public class banksavekdFormPlugin extends AbstractFormPlugin {
if (filterCondition != null) { if (filterCondition != null) {
filter = SerializationUtils.toJsonString(filterCondition); filter = SerializationUtils.toJsonString(filterCondition);
} }
getModel().setValue("shkd_filter", filter); getModel().setValue("shkd_filter_tag", filter);
} }
} }
} }

View File

@ -1,14 +1,54 @@
package shkd.sys.sys.plugin.task; package shkd.sys.sys.plugin.task;
import com.alibaba.druid.util.StringUtils;
import kd.bos.context.RequestContext; import kd.bos.context.RequestContext;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.serialization.SerializationUtils;
import kd.bos.entity.EntityMetadataCache;
import kd.bos.entity.MainEntityType;
import kd.bos.entity.filter.FilterBuilder;
import kd.bos.entity.filter.FilterCondition;
import kd.bos.exception.KDException; import kd.bos.exception.KDException;
import kd.bos.form.control.FilterGrid;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.schedule.executor.AbstractTask; import kd.bos.schedule.executor.AbstractTask;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import shkd.sys.sys.plugin.form.banksavekdFormPlugin;
import java.util.Map; import java.util.Map;
public class banksavekdTaskPlugin extends AbstractTask { public class banksavekdTaskPlugin extends AbstractTask {
private static final Log logger = LogFactory.getLog(banksavekdTaskPlugin.class);
@Override @Override
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException { public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
QFilter filter = new QFilter("billstatus", QCP.equals, "C");
DynamicObject[] shkd_banksavekds = BusinessDataServiceHelper.load("shkd_banksavekd", "id,billno,shkd_filter,shkd_filter_tag", filter.toArray());
for (DynamicObject shkd_banksavekd : shkd_banksavekds) {
String shkd_filter = shkd_banksavekd.getString("shkd_filter_tag");
FilterCondition filterCondition = null;
if (!StringUtils.isEmpty(shkd_filter)) {
filterCondition = SerializationUtils.fromJsonString(shkd_filter, FilterCondition.class);
}
if (filterCondition != null){
MainEntityType mainEntityType = EntityMetadataCache.getDataEntityType("bei_transdetail");
FilterBuilder filterBuilder = new FilterBuilder(mainEntityType, filterCondition);
filterBuilder.buildFilter();
QFilter qFilter = filterBuilder.getQFilter();
qFilter = qFilter.and(new QFilter("kdretflag", QCP.not_equals, ""));
DynamicObject[] bei_transdetails = BusinessDataServiceHelper.load("bei_transdetail", "id,billno,description,kdretflag", qFilter.toArray());
for (DynamicObject bei_transdetail : bei_transdetails) {
bei_transdetail.set("kdretflag",null);
SaveServiceHelper.save(new DynamicObject[]{bei_transdetail});
logger.info("单据编号"+bei_transdetail.getString("billno")+"去除kd标识");
}
// System.out.println(bei_transdetails);
}
}
} }
} }