diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayApplySaveOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayApplySaveOperation.java index 09f9e28..2258f17 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayApplySaveOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayApplySaveOperation.java @@ -91,7 +91,7 @@ public class PayApplySaveOperation extends AbstractOperationServicePlugIn implem } } - private DynamicObject xdMembersubject(DynamicObject bill){ + public static DynamicObject xdMembersubject(DynamicObject bill){ //SAP应付凭证生成付款申请单后,系统自动根据配置表(shjh_request_account)带出资金计划科目 QFilter qFilter = new QFilter("shjh_biztype", QCP.equals,"A");//业务类型:付款 qFilter.and(new QFilter("enable", QCP.equals, "1"));//启用 @@ -364,7 +364,7 @@ public class PayApplySaveOperation extends AbstractOperationServicePlugIn implem return null; } - private String queryDyobj(QFilter qFilter){ + public static String queryDyobj(QFilter qFilter){ String dyobj = ""; DynamicObject[] load = BusinessDataServiceHelper.load("shjh_request_account", "id,shjh_membersubject", qFilter.toArray()); diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayBillSaveOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayBillSaveOperation.java index 0d4e676..3c02203 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayBillSaveOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayBillSaveOperation.java @@ -120,7 +120,7 @@ public class PayBillSaveOperation extends AbstractOperationServicePlugIn impleme } } - private DynamicObject xdMembersubject(DynamicObject bill){ + public static DynamicObject xdMembersubject(DynamicObject bill){ //付款单,系统自动根据配置表(shjh_pay_account)带出资金计划科目 QFilter qFilter = new QFilter("shjh_biztype", QCP.equals,"A");//业务类型:付款 qFilter.and(new QFilter("enable", QCP.equals, "1"));//启用 diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/ZjjhTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/ZjjhTask.java new file mode 100644 index 0000000..b822c7b --- /dev/null +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/ZjjhTask.java @@ -0,0 +1,78 @@ +package shjh.jhzj7.fi.fi.plugin.task; + +import kd.bos.context.RequestContext; +import kd.bos.dataentity.OperateOption; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.entity.operate.OperateOptionConst; +import kd.bos.entity.operate.result.OperationResult; +import kd.bos.exception.KDException; +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.OperationServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; +import kd.sdk.plugin.Plugin; + +import java.util.ArrayList; +import java.util.Map; + +import static shjh.jhzj7.fi.fi.plugin.operate.PayBillSaveOperation.xdMembersubject; + +public class ZjjhTask extends AbstractTask implements Plugin { + + private final static Log logger = LogFactory.getLog(ZjjhTask.class); + @Override + public void execute(RequestContext requestContext, Map map) throws KDException { + + QFilter q1 = new QFilter("paymentidentify.number", QCP.equals, "FKBS02");//付款标识为被动付款 + QFilter q2 = new QFilter("paymentidentify.number", QCP.equals, "FKBS01");//付款标识为主动付款 + QFilter q3 = new QFilter("shjh_sourcesystem", QCP.equals, "A");//来源系统,A_sap,B_fk + QFilter q4 = new QFilter("shjh_sourcesystem", QCP.equals, "B");//来源系统,A_sap,B_fk + QFilter filter = q1.or(q2.and(q3.or(q4)));//filter条件为被动付款 或者 主动付款(且来源系统为sap或费控) + DynamicObject[] paybills = BusinessDataServiceHelper.load("cas_paybill", "id", filter.toArray()); + if (paybills.length!=0){ + ArrayList ids = new ArrayList<>(); + for (DynamicObject dynamicObject : paybills) { + ids.add(dynamicObject.getLong("id")); + } + Map recBillMap = BusinessDataServiceHelper.loadFromCache(ids.toArray(), "cas_paybill"); + OperateOption operateOption = OperateOption.create(); + // 不执行警告级别校验器 + operateOption.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true)); + // 不显示交互提示,自动执行到底 + operateOption.setVariableValue(OperateOptionConst.IGNOREINTERACTION, String.valueOf(true)); + // 全部校验通过才保存 + operateOption.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(true)); + //同一个用户在多个界面操作同一张,也不允许操作 + operateOption.setVariableValue(OperateOptionConst.MUTEX_ISSTRICT, String.valueOf(true)); + for (DynamicObject cas_paybill : recBillMap.values()) { + String string = cas_paybill.getString("paymentidentify.number"); + //被动 如果是被动付款,则将现有付款单保存操作后,获取资金计划科目的代码直接复制拷贝至此; + if ("FKBS02".equals(string)) { + cas_paybill.set("shjh_membersubject", xdMembersubject(cas_paybill)); + SaveServiceHelper.save(new DynamicObject[]{cas_paybill}); + } + //主动 如果是主动付款,根据付款单查找到上游某一个付款申请单即可,再根据付款申请单对象,将现有付款申请单保存操作后获取资金计划科目的代码直接复制拷贝至此; + if ("FKBS01".equals(string)) { + long sourcebillid = cas_paybill.getLong("sourcebillid"); + //根据付款单查找到上游某一个付款申请单即可 + DynamicObject payapply = BusinessDataServiceHelper.loadSingle(sourcebillid, "ap_payapply"); + if (null != payapply) { + DynamicObject xdMembersubject = xdMembersubject(payapply); + payapply.set("shjh_membersubject",xdMembersubject); + SaveServiceHelper.save(new DynamicObject[]{payapply}); + //将现有付款申请单保存操作后获取资金计划科目的代码直接复制拷贝至此 + cas_paybill.set("shjh_membersubject", xdMembersubject); + SaveServiceHelper.save(new DynamicObject[]{cas_paybill}); + + } + } + } + } + + + } +}