|
@@ -0,0 +1,145 @@
|
|
|
|
+package fi.em.formPlugin;
|
|
|
|
+
|
|
|
|
+import kd.bos.dataentity.entity.DynamicObject;
|
|
|
|
+import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
|
+import kd.bos.entity.ExtendedDataEntity;
|
|
|
|
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
|
|
+import kd.bos.form.events.AfterDoOperationEventArgs;
|
|
|
|
+import kd.bos.list.plugin.AbstractListPlugin;
|
|
|
|
+import kd.bos.orm.query.QCP;
|
|
|
|
+import kd.bos.orm.query.QFilter;
|
|
|
|
+import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
|
+import kd.bos.servicehelper.botp.BFTrackerServiceHelper;
|
|
|
|
+import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
|
|
+import kd.sdk.plugin.Plugin;
|
|
|
|
+
|
|
|
|
+import java.util.*;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * @author cjz
|
|
|
|
+ * @date 2024/8/28 15:05
|
|
|
|
+ * @description:代发处理单支付状态变更后将值反写薪酬计提单
|
|
|
|
+ */
|
|
|
|
+public class AgentpaybillFormPlugin extends AbstractListPlugin implements Plugin {
|
|
|
|
+ private static String nckd_cas_agentpaybill="nckd_cas_agentpaybill";//代发处理单标识
|
|
|
|
+ private static String nckd_paystate="nckd_paystate";//支付状态标识
|
|
|
|
+ private static String nckd_salarydistribute="nckd_salarydistribute";//薪酬计提发放单标识
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //操作后刷新字段
|
|
|
|
+ public void afterDoOperation(AfterDoOperationEventArgs arg){
|
|
|
|
+ super.afterDoOperation(arg);
|
|
|
|
+ String operateKey = arg.getOperateKey();
|
|
|
|
+ //关闭付款按钮标识
|
|
|
|
+ String closepay="closepay";
|
|
|
|
+ //付款给前置按钮标识
|
|
|
|
+ String payforfront="payforfront";
|
|
|
|
+ //实时反写支付状态字段给上游薪酬计提
|
|
|
|
+ if(closepay.equals(operateKey)||payforfront.equals(operateKey)) {
|
|
|
|
+ this.getView().updateView();
|
|
|
|
+ //获取当前单据模型
|
|
|
|
+ DynamicObject dynamicObject=this.getModel().getDataEntity();
|
|
|
|
+ //获取代发分录
|
|
|
|
+ DynamicObjectCollection entryCollection=dynamicObject.getDynamicObjectCollection("entry");
|
|
|
|
+ //获取源单id
|
|
|
|
+ Long sourcebillid=entryCollection.get(0).getLong("sourcebillid");
|
|
|
|
+ //支付状态
|
|
|
|
+ String nckd_paystate=dynamicObject.getString("nckd_paystate");
|
|
|
|
+ QFilter filter=new QFilter("id",QCP.equals,sourcebillid);
|
|
|
|
+ //获取薪酬计提
|
|
|
|
+ DynamicObject agentpaybill=BusinessDataServiceHelper.loadSingle(nckd_salarydistribute,"id,nckd_paystate",new QFilter[]{filter});
|
|
|
|
+ agentpaybill.set("nckd_paystate",nckd_paystate);
|
|
|
|
+ SaveServiceHelper.save(new DynamicObject[] {agentpaybill});
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //点击关闭付款按钮后,反写分录字段到上游单据
|
|
|
|
+ if (closepay.equals(operateKey))
|
|
|
|
+ {
|
|
|
|
+ //获取当前单据模型
|
|
|
|
+ DynamicObject dynamicObject=this.getModel().getDataEntity();
|
|
|
|
+ //获取代发分录
|
|
|
|
+ DynamicObjectCollection entryCollection=dynamicObject.getDynamicObjectCollection("entry");
|
|
|
|
+ //获取源单id
|
|
|
|
+ Long sourcebillid=entryCollection.get(0).getLong("sourcebillid");
|
|
|
|
+ QFilter filter=new QFilter("id",QCP.equals,sourcebillid);
|
|
|
|
+ DynamicObject agentpaybill=BusinessDataServiceHelper
|
|
|
|
+ .loadSingle(nckd_salarydistribute,
|
|
|
|
+ "id,nckd_entrytype,nckd_staffentry,nckd_earlyretiredentry,nckd_retireentry,nckd_salaryentry" +
|
|
|
|
+ ",nckd_salaryentryre,nckd_se_success,nckd_se_sysfeedback,nckd_ee_success,nckd_ee_sysfeedback,nckd_re_success" +
|
|
|
|
+ ",nckd_re_sysfeedback,nckd_sae_success,nckd_sae_sysfeedback,nckd_see_success,nckd_see_sysfeedback"
|
|
|
|
+ ,new QFilter[]{filter});
|
|
|
|
+ //薪酬计提单分录类型
|
|
|
|
+ String nckd_entrytype=agentpaybill.getString("nckd_entrytype");
|
|
|
|
+ //薪酬计提单分录
|
|
|
|
+ if ("A".equals(nckd_entrytype)) {
|
|
|
|
+ //一般员工分录
|
|
|
|
+ DynamicObjectCollection nckd_staffentry=agentpaybill.getDynamicObjectCollection("nckd_staffentry");
|
|
|
|
+ for (int a=0;a<nckd_staffentry.size();a++) {
|
|
|
|
+ nckd_staffentry.get(a).set("nckd_se_success",entryCollection.get(a).getBoolean("e_issuccess"));
|
|
|
|
+ nckd_staffentry.get(a).set("nckd_se_sysfeedback",entryCollection.get(a).getString("bankreturnmsg"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if ("B".equals(nckd_entrytype)) {
|
|
|
|
+ //内退分录
|
|
|
|
+ DynamicObjectCollection nckd_earlyretiredentry=agentpaybill.getDynamicObjectCollection("nckd_earlyretiredentry");
|
|
|
|
+ for (int b=0;b<nckd_earlyretiredentry.size();b++)
|
|
|
|
+ {
|
|
|
|
+ nckd_earlyretiredentry.get(b).set("nckd_ee_success",entryCollection.get(b).getBoolean("e_issuccess"));
|
|
|
|
+ nckd_earlyretiredentry.get(b).set("nckd_ee_sysfeedback",entryCollection.get(b).getString("bankreturnmsg"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if ("C".equals(nckd_entrytype)) {
|
|
|
|
+ //退休分录
|
|
|
|
+ DynamicObjectCollection nckd_retireentry=agentpaybill.getDynamicObjectCollection("nckd_retireentry");
|
|
|
|
+ for (int c=0;c<nckd_retireentry.size();c++) {
|
|
|
|
+ nckd_retireentry.get(c).set("nckd_re_success",entryCollection.get(c).getBoolean("e_issuccess"));
|
|
|
|
+ nckd_retireentry.get(c).set("nckd_re_sysfeedback",entryCollection.get(c).getString("bankreturnmsg"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if ("D".equals(nckd_entrytype)) {
|
|
|
|
+ //人力薪酬分录
|
|
|
|
+ DynamicObjectCollection nckd_salaryentry=agentpaybill.getDynamicObjectCollection("nckd_salaryentry");
|
|
|
|
+ for (int d=0;d<nckd_salaryentry.size();d++) {
|
|
|
|
+ nckd_salaryentry.get(d).set("nckd_sae_success",entryCollection.get(d).getBoolean("e_issuccess"));
|
|
|
|
+ nckd_salaryentry.get(d).set("nckd_sae_sysfeedback",entryCollection.get(d).getString("bankreturnmsg"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if ("E".equals(nckd_entrytype)) {
|
|
|
|
+ //人力薪酬内退分录
|
|
|
|
+ DynamicObjectCollection nckd_salaryentry=agentpaybill.getDynamicObjectCollection("nckd_salaryentryre");
|
|
|
|
+ for (int d=0;d<nckd_salaryentry.size();d++) {
|
|
|
|
+ nckd_salaryentry.get(d).set("nckd_see_success",entryCollection.get(d).getBoolean("e_issuccess"));
|
|
|
|
+ nckd_salaryentry.get(d).set("nckd_see_sysfeedback",entryCollection.get(d).getString("bankreturnmsg"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //反写后保存
|
|
|
|
+ SaveServiceHelper.save(new DynamicObject[] {agentpaybill});
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void propertyChanged(PropertyChangedArgs e)
|
|
|
|
+ {
|
|
|
|
+ super.beforePropertyChanged(e);
|
|
|
|
+ String name=e.getProperty().getName();
|
|
|
|
+ //支付状态发生改变
|
|
|
|
+ if (nckd_paystate.equals(name))
|
|
|
|
+ {
|
|
|
|
+ //获取当前单据模型
|
|
|
|
+ DynamicObject dynamicObject=this.getModel().getDataEntity(true);
|
|
|
|
+ //id
|
|
|
|
+ //获取代发分录
|
|
|
|
+ DynamicObjectCollection entryCollection=dynamicObject.getDynamicObjectCollection("entry");
|
|
|
|
+ //获取源单id
|
|
|
|
+ Long id=entryCollection.get(0).getLong("sourcebillid");
|
|
|
|
+ //当前支付状态
|
|
|
|
+ String paystate=dynamicObject.getString(nckd_paystate);
|
|
|
|
+ QFilter filter=new QFilter("id",QCP.equals,id);
|
|
|
|
+ DynamicObject agentpaybill=BusinessDataServiceHelper
|
|
|
|
+ .loadSingle(nckd_salarydistribute,"id,nckd_paystate",new QFilter[]{filter});
|
|
|
|
+ //反写薪酬计提支付状态
|
|
|
|
+ agentpaybill.set("nckd_paystate",paystate);
|
|
|
|
+ //获取代发单代发分录中字段信息
|
|
|
|
+ SaveServiceHelper.save(new DynamicObject[] {agentpaybill});
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|