diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/banksavekdFormPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/banksavekdFormPlugin.java index e5c3170..49aa8bc 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/banksavekdFormPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/banksavekdFormPlugin.java @@ -12,7 +12,10 @@ 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.logging.Log; +import kd.bos.logging.LogFactory; import kd.bos.orm.query.QFilter; +import shkd.sys.sys.plugin.report.FinanceReportPlugin; import java.util.ArrayList; import java.util.EventObject; @@ -20,6 +23,8 @@ import java.util.List; public class banksavekdFormPlugin extends AbstractFormPlugin { + + private static final Log logger = LogFactory.getLog(banksavekdFormPlugin.class); @Override public void registerListener(EventObject e) { super.registerListener(e); @@ -41,7 +46,7 @@ public class banksavekdFormPlugin extends AbstractFormPlugin { @Override public void afterBindData(EventObject e) { // FilterCondition为存储的过滤配置元数据,需要自行从存储加载 - String filterObj = (String) getModel().getValue("shkd_filter"); + String filterObj = (String) getModel().getValue("shkd_filter_tag"); FilterCondition filterCondition = null; if (!StringUtils.isEmpty(filterObj)) { filterCondition = SerializationUtils.fromJsonString(filterObj.toString(), FilterCondition.class); @@ -85,7 +90,7 @@ public class banksavekdFormPlugin extends AbstractFormPlugin { if (filterCondition != null) { filter = SerializationUtils.toJsonString(filterCondition); } - getModel().setValue("shkd_filter", filter); + getModel().setValue("shkd_filter_tag", filter); } } } diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/banksavekdTaskPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/banksavekdTaskPlugin.java index c3afbd3..0c721bf 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/banksavekdTaskPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/banksavekdTaskPlugin.java @@ -1,14 +1,54 @@ package shkd.sys.sys.plugin.task; +import com.alibaba.druid.util.StringUtils; 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.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.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; +import shkd.sys.sys.plugin.form.banksavekdFormPlugin; import java.util.Map; public class banksavekdTaskPlugin extends AbstractTask { + + private static final Log logger = LogFactory.getLog(banksavekdTaskPlugin.class); @Override public void execute(RequestContext requestContext, Map 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); + } + } } }