소스 검색

应付账龄分析预警

zhouger 5 달 전
부모
커밋
ca57f04ba3

+ 48 - 0
src/main/java/fi/ap/formplugin/ApEarlyWarnHandlerCusPlugin.java

@@ -0,0 +1,48 @@
+package fi.ap.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/11/5 16:24
+ * @description:预警自定义消息插件,设置跳转的报表url,往来类型为客户
+ */
+public class ApEarlyWarnHandlerCusPlugin 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);
+    }
+}

+ 48 - 0
src/main/java/fi/ap/formplugin/ApEarlyWarnHandlerPlugin.java

@@ -0,0 +1,48 @@
+package fi.ap.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/11/5 11:33
+ * @description:预警自定义消息插件,设置跳转的报表url,往来类型为供应商
+ */
+public class ApEarlyWarnHandlerPlugin 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_supplier";//pc端跳转单据路径
+        info.setContentUrl(contentUrl);
+        return info;
+    }
+
+    @Override
+    public YzjPublicNumberInfo getYZJMessagePublicNumber(List<YzjPublicNumberInfo> publicNumberInfos) {
+        return IEarlyWarnMessageHandler.super.getYZJMessagePublicNumber(publicNumberInfos);
+    }
+}

+ 47 - 0
src/main/java/fi/ap/formplugin/ApEarlyWarnHandlerUserPlugin.java

@@ -0,0 +1,47 @@
+package fi.ap.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/11/5 16:28
+ * @description:预警自定义消息插件,设置跳转的报表url,往来类型为人员
+ */
+public class ApEarlyWarnHandlerUserPlugin 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);
+    }
+}

+ 62 - 0
src/main/java/fi/ap/formplugin/FinapbillFormPlugin.java

@@ -0,0 +1,62 @@
+package fi.ap.formplugin;
+
+import com.alibaba.druid.util.StringUtils;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.form.CloseCallBack;
+import kd.bos.form.ShowType;
+import kd.bos.form.StyleCss;
+import kd.bos.form.events.ClosedCallBackEvent;
+import kd.bos.form.plugin.AbstractFormPlugin;
+import kd.bos.report.ReportShowParameter;
+import kd.sdk.plugin.Plugin;
+
+import java.util.EventObject;
+
+/**
+ * @author cjz
+ * @date 2024/11/5 15:47
+ * @description:应付挂账跳转到报表
+ */
+public class FinapbillFormPlugin extends AbstractFormPlugin implements Plugin {
+
+    //初始化自动点击跳转按钮
+    @Override
+    public void afterBindData(EventObject e) {
+        super.afterBindData(e);
+        Object flag = this.getView().getFormShowParameter().getCustomParam("flag");
+        Object asstacttype=this.getView().getFormShowParameter().getCustomParam("asstacttype");
+        //如果为预警跳转的页面则自动点击跳转按钮到报表
+        if (("1").equals(flag)) {
+            //获取当前单据
+            DynamicObject dynamicObject=this.getModel().getDataEntity(true);
+            Long id=dynamicObject.getLong("id");
+            ReportShowParameter showParameter = new ReportShowParameter();
+            //设置参数传给子界面
+            showParameter.setCustomParam("parentid",id);
+            showParameter.setCustomParam("flag",flag);
+            //设置初始化往来类型
+            showParameter.setCustomParam("q_asstacttype",asstacttype);
+            showParameter.setFormId("ap_acctagerpt_n");
+            showParameter.setCaption("账龄分析表");
+            showParameter.getOpenStyle().setShowType(ShowType.Modal);
+            StyleCss inlineStyleCss = new StyleCss();
+            inlineStyleCss.setHeight("1800");
+            inlineStyleCss.setWidth("1500");
+            showParameter.getOpenStyle().setInlineStyleCss(inlineStyleCss);
+            showParameter.setCloseCallBack(new CloseCallBack(this,"ap_acctagerpt_n"));
+            this.getView().showForm(showParameter);
+        }
+    }
+
+
+    //账龄分析表关闭后,同时关闭应收挂账单
+    @Override
+    public void closedCallBack(ClosedCallBackEvent e) {
+        super.closedCallBack(e);
+        if (StringUtils.equals("ap_acctagerpt_n",e.getActionId())) {
+            this.getModel().setDataChanged(false);
+            this.getView().close();
+        }
+    }
+
+}

+ 1 - 1
src/main/java/fi/ar/formplugin/AcctagerptPlugin.java

@@ -21,7 +21,7 @@ import java.util.EventObject;
 /**
  * @author cjz
  * @date 2024/10/11 17:26
- * @description:跳转后报表初始化参数
+ * @description:跳转后账龄分析报表初始化参数
  */
 public class AcctagerptPlugin extends AbstractReportFormPlugin implements Plugin {