Эх сурвалжийг харах

feat(announcements): 添加公告下架时间延长功能

- 新增 AnnounceDowndateFormPlugin 表单插件处理下架时间延长逻辑
- 在 AnnouncementsBasePlugin 中添加发布和撤回成功的提示消息
- 扩展 AnnouncementsListPlugin 支持下架操作的弹窗表单展示
- 实现 closedCallBack 方法处理子表单返回的下架时间数据
- 添加 setDowndate 方法更新选中公告的下架时间和状态
- 在 FormConstant 中定义新的表单常量 NCKD_ANNOUNCE_DOWNDATE
turborao 2 өдөр өмнө
parent
commit
8d1d1635b5

+ 2 - 0
code/base/nckd-jxccl-base-common/src/main/java/nckd/jxccl/base/common/constant/FormConstant.java

@@ -123,6 +123,8 @@ public class FormConstant {
     public static final String NCKD_APPRAISALRESULT = "nckd_appraisalresult";
     /** 政策公告实体标识 */
     public static final String NCKD_ANNOUNCEMENTS = "nckd_announcements";
+    /** 政策公告  延长下架时间弹窗 实体标识 */
+    public static final String NCKD_ANNOUNCE_DOWNDATE = "nckd_announcedowndate";
     /**
      * 定调薪类型 默认值  用于  定调薪清单处理
      * */

+ 28 - 0
code/hr/nckd-jxccl-hr/src/main/java/nckd/jxccl/hr/tsc/plugin/form/AnnounceDowndateFormPlugin.java

@@ -0,0 +1,28 @@
+package nckd.jxccl.hr.tsc.plugin.form;
+
+import kd.bos.form.events.AfterDoOperationEventArgs;
+import kd.bos.form.plugin.AbstractFormPlugin;
+import kd.sdk.plugin.Plugin;
+import nckd.jxccl.base.common.constant.FormConstant;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 动态表单插件
+ */
+public class AnnounceDowndateFormPlugin extends AbstractFormPlugin implements Plugin {
+
+    @Override
+    public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
+        String operateKey = afterDoOperationEventArgs.getOperateKey();
+        boolean success = afterDoOperationEventArgs.getOperationResult() != null && afterDoOperationEventArgs.getOperationResult().isSuccess();
+        if (success && "commit".equalsIgnoreCase(operateKey)) {
+            Object value = this.getModel().getValue("nckd_date");
+            Map<String,Object> map = new HashMap(1);
+            map.put("downdate",value);
+            this.getView().returnDataToParent(map);
+            this.getView().close();
+        }
+    }
+}

+ 2 - 0
code/hr/nckd-jxccl-hr/src/main/java/nckd/jxccl/hr/tsc/plugin/form/AnnouncementsBasePlugin.java

@@ -70,10 +70,12 @@ public class AnnouncementsBasePlugin extends AbstractBasePlugIn implements Plugi
             data.set("nckd_publishdate", new java.util.Date());
             data.set("nckd_publishuser", UserServiceHelper.getCurrentUserId());
             Object billPk = hrBaseServiceHelper.saveOne(data);
+            this.getView().showSuccessNotification("发布成功", 1000);
         }
         if("withdraw".equals(formOp)){
             data.set("nckd_billstatus", "A");
             Object billPk = hrBaseServiceHelper.saveOne(data);
+            this.getView().showSuccessNotification("撤回成功", 1000);
         }
     }
 

+ 39 - 1
code/hr/nckd-jxccl-hr/src/main/java/nckd/jxccl/hr/tsc/plugin/form/AnnouncementsListPlugin.java

@@ -5,7 +5,11 @@ 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.CloseCallBack;
+import kd.bos.form.FormShowParameter;
+import kd.bos.form.ShowType;
 import kd.bos.form.events.AfterDoOperationEventArgs;
+import kd.bos.form.events.ClosedCallBackEvent;
 import kd.bos.form.events.SetFilterEvent;
 import kd.bos.form.operate.FormOperate;
 import kd.bos.list.plugin.AbstractListPlugin;
@@ -19,8 +23,11 @@ import kd.bos.servicehelper.user.UserServiceHelper;
 import kd.hr.hbp.common.util.HRStringUtils;
 import kd.sdk.plugin.Plugin;
 import nckd.jxccl.base.common.constant.FormConstant;
+import nckd.jxccl.base.common.utils.ConvertUtil;
 import nckd.jxccl.base.swc.helper.SWCHelper;
+import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -107,7 +114,14 @@ public class AnnouncementsListPlugin extends AbstractListPlugin implements Plugi
                 setBillStatus("A",key);
                 break;
             case "takedown":
-                setBillStatus("A",key);
+                //载入党政职务履历
+                FormShowParameter showParameter = new FormShowParameter();
+                showParameter.setFormId(FormConstant.NCKD_ANNOUNCE_DOWNDATE);
+                showParameter.getOpenStyle().setShowType(ShowType.Modal);
+                showParameter.setCaption("延长下架时间");
+                showParameter.setSendToClient(true);
+                showParameter.setCloseCallBack(new CloseCallBack(this, FormConstant.NCKD_ANNOUNCE_DOWNDATE));
+                this.getView().showForm(showParameter);
                 break;
         }
     }
@@ -153,5 +167,29 @@ public class AnnouncementsListPlugin extends AbstractListPlugin implements Plugi
 
     }
 
+    public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
+        String actionId = closedCallBackEvent.getActionId();
+        if(FormConstant.NCKD_ANNOUNCE_DOWNDATE.equalsIgnoreCase(actionId)){
+            Object returnData = closedCallBackEvent.getReturnData();
+            if(returnData != null) {
+                Map<String, Object> map = ConvertUtil.toMap(returnData);
+                Date date = ConvertUtil.toDate(map.get("downdate"));
+                setDowndate(date);
+            }
+        }
+    }
+
+    public void setDowndate(Date date) {
+        ListSelectedRowCollection selectedRows = this.getSelectedRows();
+        MainEntityType entityType= EntityMetadataCache.getDataEntityType(FormConstant.NCKD_ANNOUNCEMENTS);
+        DynamicObject[] billDyns = BusinessDataServiceHelper.load(selectedRows.getPrimaryKeyValues(), entityType);
+        for (DynamicObject billDyn : billDyns){
+            billDyn.set("nckd_downdate", date);
+            billDyn.set("nckd_billstatus", "C");
+        }
+        Object[] update = SaveServiceHelper.save(billDyns);
+        this.getView().showSuccessNotification(update.length + "条,操作成功", 3000);
+    }
+
 
 }