Bläddra i källkod

refactor(announcements): 优化公告模块的表单操作和后台任务逻辑

- 将AnnouncementsBasePlugin中的beforeDoOperation改为afterDoOperation,并添加操作结果验证
- 在AnnouncementsListPlugin中添加操作结果检查逻辑,确保只有成功操作才继续执行
- 移除不必要的导入包和变量声明,精简代码结构
- 为AnnouncementsTask添加作者信息和时间戳注释
- 简化AnnouncementsTplListPlugin的导入列表,移除未使用的类引用
turborao 2 dagar sedan
förälder
incheckning
318cf77805

+ 2 - 3
code/hr/nckd-jxccl-hr/src/main/java/nckd/jxccl/hr/task/AnnouncementsTask.java

@@ -10,14 +10,14 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
 import kd.sdk.plugin.Plugin;
 import nckd.jxccl.base.common.constant.FormConstant;
-
-import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.Map;
 
 /**
  * 政策公告下架后台任务插件
+ * @author turborao
+ * 时间 2026/1/15 16:05
  */
 @SuppressWarnings("unused")
 public class AnnouncementsTask extends AbstractTask implements Plugin {
@@ -36,7 +36,6 @@ public class AnnouncementsTask extends AbstractTask implements Plugin {
             // 构建查询条件:nckd_downdate <= 今天的日期
             QFilter filter = new QFilter("nckd_downdate", QCP.less_equals, today);
 
-            // 使用 BusinessDataServiceHelper.load 替代 QueryServiceHelper.query
             String selectFields = "id,nckd_billstatus,nckd_downdate";
             DynamicObject[] dyns = BusinessDataServiceHelper.load(
                     FormConstant.NCKD_ANNOUNCEMENTS,

+ 8 - 16
code/hr/nckd-jxccl-hr/src/main/java/nckd/jxccl/hr/tsc/plugin/form/AnnouncementsBasePlugin.java

@@ -2,6 +2,8 @@ package nckd.jxccl.hr.tsc.plugin.form;
 
 import kd.bos.bill.OperationStatus;
 import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.operate.result.OperationResult;
+import kd.bos.form.events.AfterDoOperationEventArgs;
 import kd.bos.form.events.BeforeDoOperationEventArgs;
 import kd.bos.form.operate.FormOperate;
 import kd.bos.servicehelper.user.UserServiceHelper;
@@ -10,7 +12,6 @@ import kd.hr.hbp.business.servicehelper.HRBaseServiceHelper;
 import kd.sdk.plugin.Plugin;
 import nckd.jxccl.base.common.constant.FormConstant;
 import nckd.jxccl.base.swc.helper.SWCHelper;
-
 import java.util.EventObject;
 import java.util.List;
 
@@ -53,33 +54,24 @@ public class AnnouncementsBasePlugin extends AbstractBasePlugIn implements Plugi
     }
 
     @Override
-    public void beforeDoOperation(BeforeDoOperationEventArgs args) {
+    public void afterDoOperation(AfterDoOperationEventArgs args) {
+        ///如果有合法检验,需要有判断是否操作成功!
+        OperationResult operationResult = args.getOperationResult();
+        if (operationResult != null && !operationResult.isSuccess()) {
+            return;
+        }
         FormOperate source = (FormOperate)args.getSource();
         String formOp = source.getOperateKey();
         DynamicObject data = this.getModel().getDataEntity(true);
         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);
         }

+ 6 - 9
code/hr/nckd-jxccl-hr/src/main/java/nckd/jxccl/hr/tsc/plugin/form/AnnouncementsListPlugin.java

@@ -1,20 +1,16 @@
 package nckd.jxccl.hr.tsc.plugin.form;
 
-import kd.bos.algo.DataSet;
 import kd.bos.dataentity.entity.DynamicObject;
-import kd.bos.dataentity.entity.DynamicObjectCollection;
-import kd.bos.db.DB;
-import kd.bos.db.DBRoute;
 import kd.bos.entity.EntityMetadataCache;
 import kd.bos.entity.MainEntityType;
 import kd.bos.entity.datamodel.ListSelectedRowCollection;
+import kd.bos.entity.operate.result.OperationResult;
 import kd.bos.form.events.AfterDoOperationEventArgs;
 import kd.bos.form.events.SetFilterEvent;
 import kd.bos.form.operate.FormOperate;
 import kd.bos.list.plugin.AbstractListPlugin;
 import kd.bos.logging.Log;
 import kd.bos.logging.LogFactory;
-import kd.bos.orm.ORM;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
@@ -24,11 +20,7 @@ import kd.hr.hbp.common.util.HRStringUtils;
 import kd.sdk.plugin.Plugin;
 import nckd.jxccl.base.common.constant.FormConstant;
 import nckd.jxccl.base.swc.helper.SWCHelper;
-
-import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -94,6 +86,11 @@ public class AnnouncementsListPlugin extends AbstractListPlugin implements Plugi
 
     public void afterDoOperation(AfterDoOperationEventArgs args) {
         super.afterDoOperation(args);
+        ///如果有合法检验,需要有判断是否操作成功!
+        OperationResult operationResult = args.getOperationResult();
+        if (operationResult != null && !operationResult.isSuccess()) {
+            return;
+        }
         FormOperate formOperate = (FormOperate)args.getSource();
         String key = formOperate.getOperateKey();
         switch (key) {

+ 0 - 5
code/hr/nckd-jxccl-hr/src/main/java/nckd/jxccl/hr/tsc/plugin/form/AnnouncementsTplListPlugin.java

@@ -1,12 +1,10 @@
 package nckd.jxccl.hr.tsc.plugin.form;
 
 import kd.bos.algo.DataSet;
-import kd.bos.context.RequestContext;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.db.DB;
 import kd.bos.db.DBRoute;
-import kd.bos.form.events.FilterContainerInitArgs;
 import kd.bos.form.events.SetFilterEvent;
 import kd.bos.list.plugin.AbstractListPlugin;
 import kd.bos.logging.Log;
@@ -14,14 +12,11 @@ import kd.bos.logging.LogFactory;
 import kd.bos.orm.ORM;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
-import kd.bos.servicehelper.model.PermissionStatus;
 import kd.bos.servicehelper.user.UserServiceHelper;
 import kd.hr.hbp.common.util.HRStringUtils;
-import kd.sdk.hr.hbp.business.helper.permission.HRPermissionServiceHelper;
 import kd.sdk.plugin.Plugin;
 import nckd.jxccl.base.common.constant.FormConstant;
 import nckd.jxccl.base.swc.helper.SWCHelper;
-
 import java.util.*;
 import java.util.stream.Collectors;