Ver Fonte

feat(announcements): 更新公告基础插件实现并添加状态控制逻辑

- 继承AbstractBasePlugin替代HRBaseDataTplEdit
- 添加发布和撤回操作的状态验证机制
- 阻止已发布或已下架公告的重复操作
- 修复员工ID常量注释标记
- 添加代码警告抑制注解
turborao há 4 dias atrás
pai
commit
6da8645102

+ 21 - 3
code/hr/nckd-jxccl-hr/src/main/java/nckd/jxccl/hr/tsc/plugin/form/AnnouncementsBasePlugin.java

@@ -5,9 +5,10 @@ import kd.bos.entity.datamodel.events.BizDataEventArgs;
 import kd.bos.form.events.BeforeDoOperationEventArgs;
 import kd.bos.form.operate.FormOperate;
 import kd.bos.servicehelper.user.UserServiceHelper;
+import kd.epm.eb.formplugin.AbstractBasePlugin;
 import kd.hr.hbp.business.servicehelper.HRBaseServiceHelper;
 import kd.sdk.plugin.Plugin;
-import kd.hr.hbp.formplugin.web.template.HRBaseDataTplEdit;
+
 import nckd.jxccl.base.common.constant.FormConstant;
 import nckd.jxccl.base.swc.helper.SWCHelper;
 import java.util.List;
@@ -17,7 +18,8 @@ import java.util.List;
  * @author turborao
  * 时间 2026/1/13 16:05
  */
-public class AnnouncementsBasePlugin extends HRBaseDataTplEdit implements Plugin {
+@SuppressWarnings("unused")
+public class AnnouncementsBasePlugin extends AbstractBasePlugin implements Plugin {
 
     @Override
     public void createNewData(BizDataEventArgs e) {
@@ -32,7 +34,7 @@ public class AnnouncementsBasePlugin extends HRBaseDataTplEdit implements Plugin
             /**
              * 没有员工信息时,返回常量,用于测试
              */
-            //KEY_EMPID = 2313784485549715456L;
+            //empId = 2313784485549715456L;
             this.getView().showMessage("未找到员工!");
             return;
         }else {
@@ -53,16 +55,32 @@ public class AnnouncementsBasePlugin extends HRBaseDataTplEdit implements Plugin
         FormOperate source = (FormOperate)args.getSource();
         String formOp = source.getOperateKey();
         DynamicObject data = this.getModel().getDataEntity();
+        String  billstatus =  data.getString("nckd_billstatus");
         HRBaseServiceHelper hrBaseServiceHelper = new HRBaseServiceHelper(FormConstant.NCKD_ANNOUNCEMENTS);
         if ("publish".equals(formOp)) {
+
+            if("C".equals(billstatus) ){
+                args.setCancel(true);
+                this.getView().showTipNotification("已经发布,不能操作!");
+            }
+            if("D".equals(billstatus)){
+                args.setCancel(true);
+                this.getView().showTipNotification("已经下架,不能操作!");
+            }
+
             data.set("nckd_billstatus", "C");
             data.set("nckd_publishdate", new java.util.Date());
             data.set("nckd_publishuser", UserServiceHelper.getCurrentUserId());
             Object billPk = hrBaseServiceHelper.saveOne(data);
         }
         if("withdraw".equals(formOp)){
+            if("A".equals(billstatus) || "C".equals(billstatus)){
+                args.setCancel(true);
+                this.getView().showTipNotification("不是已下架状态,不能操作!");
+            }
             data.set("nckd_billstatus", "A");
             Object billPk = hrBaseServiceHelper.saveOne(data);
         }
     }
+
 }