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_paystatus="nckd_paystatus";//支付状态标识 private static String nckd_salarydistribute="nckd_salarydistribute";//薪酬计提发放单标识 //操作后刷新字段 public void afterDoOperation(AfterDoOperationEventArgs arg){ super.afterDoOperation(arg); String operateKey = arg.getOperateKey(); //关闭付款按钮标识 String closepay="payclose"; //付款给前置按钮标识 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_paystatus=dynamicObject.getString("nckd_paystatus"); QFilter filter=new QFilter("id",QCP.equals,sourcebillid); //获取薪酬计提 DynamicObject agentpaybill=BusinessDataServiceHelper.loadSingle(nckd_salarydistribute,"id,nckd_paystatus",new QFilter[]{filter}); agentpaybill.set("nckd_paystatus",nckd_paystatus); 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