Parcourir la source

账龄分析报表查询

zhouger il y a 6 mois
Parent
commit
67d79cade0

+ 21 - 0
src/main/java/fi/ar/formplugin/AcctagerptPlugin.java

@@ -3,7 +3,11 @@ package fi.ar.formplugin;
 
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.entity.datamodel.events.ChangeData;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import kd.bos.entity.report.ReportQueryParam;
 import kd.bos.form.FormShowParameter;
+import kd.bos.form.cardentry.CardEntry;
 import kd.bos.form.plugin.AbstractFormPlugin;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
@@ -32,9 +36,26 @@ public class AcctagerptPlugin extends AbstractReportFormPlugin implements Plugin
             Object qAsstacttype = formShowParameter.getCustomParam("q_asstacttype");
             if (!("").equals(qAsstacttype)) {
                 this.getModel().setValue("q_asstacttype",qAsstacttype);
+                this.getModel().setValue("standard","bizdate");
+
             }
         }
+    }
+
 
+
+    @Override
+    public void propertyChanged(PropertyChangedArgs e){
+        super.beforePropertyChanged(e);
+        String name=e.getProperty().getName();
+        if (name.equals("standard"))
+        {
+            ChangeData[] changeData = e.getChangeSet();
+            Object newValue = changeData[0].getNewValue();
+            Object oldValue = changeData[0].getOldValue();
+            String str= (String) this.getModel().getValue("standard");
+            System.out.println(str);
+        }
     }
 
     @Override

+ 51 - 0
src/main/java/fi/ar/formplugin/EarlyWarnHandlerCusPlugin.java

@@ -0,0 +1,51 @@
+package fi.ar.formplugin;
+
+import com.alibaba.druid.support.logging.Log;
+import com.alibaba.druid.support.logging.LogFactory;
+import kd.bos.context.RequestContext;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.earlywarn.EarlyWarnContext;
+import kd.bos.entity.earlywarn.warn.EarlyWarnMessageInfo;
+import kd.bos.entity.earlywarn.warn.YzjPublicNumberInfo;
+import kd.bos.entity.earlywarn.warn.plugin.IEarlyWarnMessageHandler;
+import kd.bos.service.earlywarn.impl.DefaultWarnMessageHandler;
+import kd.bos.url.UrlService;
+
+import java.util.List;
+
+/**
+ * @author cjz
+ * @date 2024/10/28 16:57
+ * @description:预警自定义消息插件,设置跳转的报表url,往来类型为客户
+ */
+public class EarlyWarnHandlerCusPlugin implements IEarlyWarnMessageHandler{
+
+    private final Log logger= LogFactory.getLog(DefaultWarnMessageHandler.class);
+    private String clientPath="";//客户端地址
+    private String formId = "";//pc端表单标识
+
+
+    //单条消息跳转链接
+    @Override
+    public EarlyWarnMessageInfo singleMessageBuilder(DynamicObject dynamicObject, EarlyWarnContext earlyWarnContext) {
+       return null;
+    }
+
+
+    //合并消息跳转链接
+    @Override
+    public EarlyWarnMessageInfo mergeMessageBuilder(EarlyWarnContext earlyWarnContext) {
+        RequestContext ctx = RequestContext.get();
+        this.clientPath = UrlService.getDomainContextUrlByTenantCode(ctx.getTenantCode());//拿到完整的客户端网址
+        this.formId = earlyWarnContext.getEarlyWarn().getDataSourceId();//表单标识
+        EarlyWarnMessageInfo info = new EarlyWarnMessageInfo();
+        String contentUrl = clientPath+"?formId="+formId+"&flag=1"+"&asstacttype=bd_customer";//pc端跳转单据路径
+        info.setContentUrl(contentUrl);
+        return info;
+    }
+
+    @Override
+    public YzjPublicNumberInfo getYZJMessagePublicNumber(List<YzjPublicNumberInfo> publicNumberInfos) {
+        return IEarlyWarnMessageHandler.super.getYZJMessagePublicNumber(publicNumberInfos);
+    }
+}

+ 10 - 2
src/main/java/fi/ar/formplugin/EarlyWarnHandlerPlugin.java

@@ -16,7 +16,7 @@ import java.util.List;
 /**
  * @author cjz
  * @date 2024/10/10 17:42
- * @description:预警自定义消息插件,设置跳转的报表url
+ * @description:预警自定义消息插件,设置跳转的报表url,往来类型为供应商
  */
 public class EarlyWarnHandlerPlugin implements IEarlyWarnMessageHandler {
     private final Log logger= LogFactory.getLog(DefaultWarnMessageHandler.class);
@@ -24,6 +24,7 @@ public class EarlyWarnHandlerPlugin implements IEarlyWarnMessageHandler {
     private String formId = "";//pc端表单标识
 
 
+    //单条消息跳转链接
     @Override
     public EarlyWarnMessageInfo singleMessageBuilder(DynamicObject dynamicObject, EarlyWarnContext earlyWarnContext) {
         RequestContext ctx = RequestContext.get();
@@ -37,9 +38,16 @@ public class EarlyWarnHandlerPlugin implements IEarlyWarnMessageHandler {
     }
 
 
+    //合并消息跳转链接
     @Override
     public EarlyWarnMessageInfo mergeMessageBuilder(EarlyWarnContext earlyWarnContext) {
-        return null;
+        RequestContext ctx = RequestContext.get();
+        this.clientPath = UrlService.getDomainContextUrlByTenantCode(ctx.getTenantCode());//拿到完整的客户端网址
+        this.formId = earlyWarnContext.getEarlyWarn().getDataSourceId();//表单标识
+        EarlyWarnMessageInfo info = new EarlyWarnMessageInfo();
+        String contentUrl = clientPath+"?formId="+formId+"&flag=1"+"&asstacttype=bd_supplier";//pc端跳转单据路径
+        info.setContentUrl(contentUrl);
+        return info;
     }
 
     @Override

+ 50 - 0
src/main/java/fi/ar/formplugin/EarlyWarnHandlerUserPlugin.java

@@ -0,0 +1,50 @@
+package fi.ar.formplugin;
+
+import com.alibaba.druid.support.logging.Log;
+import com.alibaba.druid.support.logging.LogFactory;
+import kd.bos.context.RequestContext;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.earlywarn.EarlyWarnContext;
+import kd.bos.entity.earlywarn.warn.EarlyWarnMessageInfo;
+import kd.bos.entity.earlywarn.warn.YzjPublicNumberInfo;
+import kd.bos.entity.earlywarn.warn.plugin.IEarlyWarnMessageHandler;
+import kd.bos.service.earlywarn.impl.DefaultWarnMessageHandler;
+import kd.bos.url.UrlService;
+
+import java.util.List;
+
+/**
+ * @author cjz
+ * @date 2024/10/28 17:08
+ * @description:预警自定义消息插件,设置跳转的报表url,往来类型为人员
+ */
+public class EarlyWarnHandlerUserPlugin implements IEarlyWarnMessageHandler{
+    private final Log logger= LogFactory.getLog(DefaultWarnMessageHandler.class);
+    private String clientPath="";//客户端地址
+    private String formId = "";//pc端表单标识
+
+
+    //单条消息跳转链接
+    @Override
+    public EarlyWarnMessageInfo singleMessageBuilder(DynamicObject dynamicObject, EarlyWarnContext earlyWarnContext) {
+        return null;
+    }
+
+
+    //合并消息跳转链接
+    @Override
+    public EarlyWarnMessageInfo mergeMessageBuilder(EarlyWarnContext earlyWarnContext) {
+        RequestContext ctx = RequestContext.get();
+        this.clientPath = UrlService.getDomainContextUrlByTenantCode(ctx.getTenantCode());//拿到完整的客户端网址
+        this.formId = earlyWarnContext.getEarlyWarn().getDataSourceId();//表单标识
+        EarlyWarnMessageInfo info = new EarlyWarnMessageInfo();
+        String contentUrl = clientPath+"?formId="+formId+"&flag=1"+"&asstacttype=bos_user";//pc端跳转单据路径
+        info.setContentUrl(contentUrl);
+        return info;
+    }
+
+    @Override
+    public YzjPublicNumberInfo getYZJMessagePublicNumber(List<YzjPublicNumberInfo> publicNumberInfos) {
+        return IEarlyWarnMessageHandler.super.getYZJMessagePublicNumber(publicNumberInfos);
+    }
+}

+ 4 - 4
src/main/java/fi/ar/formplugin/FinarbillFormPlugin.java

@@ -29,18 +29,18 @@ public class FinarbillFormPlugin extends AbstractFormPlugin implements Plugin {
     public void afterBindData(EventObject e) {
         super.afterBindData(e);
         Object flag = this.getView().getFormShowParameter().getCustomParam("flag");
+        Object asstacttype=this.getView().getFormShowParameter().getCustomParam("asstacttype").toString();
         //如果为预警跳转的页面则自动点击跳转按钮到报表
         if (("1").equals(flag)) {
             //获取当前单据
             DynamicObject dynamicObject=this.getModel().getDataEntity(true);
             Long id=dynamicObject.getLong("id");
-            //往来类型
-            String asstacttype=dynamicObject.getString("asstacttype");
             ReportShowParameter showParameter = new ReportShowParameter();
             //设置参数传给子界面
             showParameter.setCustomParam("parentid",id);
-            showParameter.setCustomParam("flag","1");
-            showParameter.setCustomParam("q_asstacttype","bd_supplier");
+            showParameter.setCustomParam("flag",flag);
+            //设置初始化往来类型
+            showParameter.setCustomParam("q_asstacttype",asstacttype);
             showParameter.setFormId("ar_acctagerpt_n");
             showParameter.setCaption("账龄分析表");
             showParameter.getOpenStyle().setShowType(ShowType.Modal);

+ 62 - 0
src/main/java/fi/cas/task/AgentPayCloseTast.java

@@ -5,6 +5,7 @@ import com.alibaba.druid.support.logging.LogFactory;
 import fi.cas.opplugin.PayBillToolUtil;
 import kd.bos.context.RequestContext;
 import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.exception.KDException;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
@@ -20,6 +21,8 @@ import java.util.Map;
  */
 public class AgentPayCloseTast extends AbstractTask {
     private static final Log log = LogFactory.getLog(AgentPayCloseTast.class);
+    private static String nckd_salarydistribute="nckd_salarydistribute";//薪酬计提发放单标识
+
     @Override
     public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
         //获取要查询的数据。状态为已审批,支付状态为支付中。核心状态为支付处理全部成功
@@ -53,6 +56,65 @@ public class AgentPayCloseTast extends AbstractTask {
                     }
                 }
             }
+
+            log.info("反写核心返回信息到上游薪酬计提单");
+            //获取代发分录
+            DynamicObjectCollection entryCollection=dataEntity.getDynamicObjectCollection("entry");
+            //获取源单id
+            Long sourcebillid=entryCollection.get(0).getLong("sourcebillid");
+            QFilter qfilter=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[]{qfilter});
+            //薪酬计提单分录类型
+            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});
         }
     }
 }

+ 1 - 5
src/main/java/fi/em/opplugin/AgentpaybillOpPlugin.java

@@ -27,11 +27,7 @@ public class AgentpaybillOpPlugin extends AbstractOperationServicePlugIn {
         String operationKey = e.getOperationKey();
         //关闭付款则将支付状态更改为支付关闭状态
         if (closepay.equals(operationKey)){
-
-
-
-            for (int i=0;i< dynamicObjects.length;i++)
-            {
+            for (int i=0;i< dynamicObjects.length;i++) {
                 //设置支付状态为
                 dynamicObjects[i].set("nckd_paystatus","D");
             }