EarlyWarnHandlerPlugin.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package fi.ar.formplugin;
  2. import com.alibaba.druid.support.logging.Log;
  3. import com.alibaba.druid.support.logging.LogFactory;
  4. import kd.bos.context.RequestContext;
  5. import kd.bos.dataentity.entity.DynamicObject;
  6. import kd.bos.entity.earlywarn.EarlyWarnContext;
  7. import kd.bos.entity.earlywarn.warn.EarlyWarnMessageInfo;
  8. import kd.bos.entity.earlywarn.warn.YzjPublicNumberInfo;
  9. import kd.bos.entity.earlywarn.warn.plugin.IEarlyWarnMessageHandler;
  10. import kd.bos.service.earlywarn.impl.DefaultWarnMessageHandler;
  11. import kd.bos.url.UrlService;
  12. import java.util.List;
  13. /**
  14. * @author cjz
  15. * @date 2024/10/10 17:42
  16. * @description:预警自定义消息插件,设置跳转的报表url,往来类型为供应商
  17. */
  18. public class EarlyWarnHandlerPlugin implements IEarlyWarnMessageHandler {
  19. private final Log logger= LogFactory.getLog(DefaultWarnMessageHandler.class);
  20. private String clientPath="";//客户端地址
  21. private String formId = "";//pc端表单标识
  22. //单条消息跳转链接
  23. @Override
  24. public EarlyWarnMessageInfo singleMessageBuilder(DynamicObject dynamicObject, EarlyWarnContext earlyWarnContext) {
  25. RequestContext ctx = RequestContext.get();
  26. this.clientPath = UrlService.getDomainContextUrlByTenantCode(ctx.getTenantCode());//拿到完整的客户端网址
  27. this.formId = earlyWarnContext.getEarlyWarn().getDataSourceId();//表单标识
  28. EarlyWarnMessageInfo info = new EarlyWarnMessageInfo();
  29. String pkId = dynamicObject.get("id").toString();//对应单据的内码
  30. String contentUrl = clientPath+"?formId="+formId+"&pkId="+pkId+"&flag=1";//pc端跳转单据路径
  31. info.setContentUrl(contentUrl);
  32. return info;
  33. }
  34. //合并消息跳转链接
  35. @Override
  36. public EarlyWarnMessageInfo mergeMessageBuilder(EarlyWarnContext earlyWarnContext) {
  37. RequestContext ctx = RequestContext.get();
  38. this.clientPath = UrlService.getDomainContextUrlByTenantCode(ctx.getTenantCode());//拿到完整的客户端网址
  39. this.formId = earlyWarnContext.getEarlyWarn().getDataSourceId();//表单标识
  40. EarlyWarnMessageInfo info = new EarlyWarnMessageInfo();
  41. String contentUrl = clientPath+"?formId="+formId+"&flag=1"+"&asstacttype=bd_supplier";//pc端跳转单据路径
  42. info.setContentUrl(contentUrl);
  43. return info;
  44. }
  45. @Override
  46. public YzjPublicNumberInfo getYZJMessagePublicNumber(List<YzjPublicNumberInfo> publicNumberInfos) {
  47. return IEarlyWarnMessageHandler.super.getYZJMessagePublicNumber(publicNumberInfos);
  48. }
  49. }