Browse Source

feat(print): 新增批量修改文件印发及盖章时间功能

- 实现了弹窗表单插件用于批量修改时间
- 在人员考评套打列表中增加调用入口
- 支持将修改后的时间回传并刷新列表显示
- 添加对文件印发时间和盖章时间字段的格式化处理
- 集成了页面缓存机制以支持数据传递与持久化
- 使用模态框展示时间选择界面提升用户体验
wyc 1 week ago
parent
commit
6a0316b5d8

+ 35 - 0
code/opmc/nckd-jxccl-opmc/src/main/java/nckd/jxccl/opmc/pm/plugin/form/print/BatchModDocstampPopupFormPlugin.java

@@ -0,0 +1,35 @@
+package nckd.jxccl.opmc.pm.plugin.form.print;
+
+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.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+* 批量修改文件印发及盖章时间
+* 实体标识:nckd_batchmoddocstamppopu
+* @author W.Y.C
+* @date 2025/12/7 21:20
+* @version 1.0
+*/
+public class BatchModDocstampPopupFormPlugin extends AbstractFormPlugin implements Plugin {
+
+    @Override
+    public void afterDoOperation(AfterDoOperationEventArgs e) {
+        String operateKey = e.getOperateKey();
+        if(e.getOperationResult() != null && e.getOperationResult().isSuccess())
+        if(FormConstant.AFFIRM_OP.equalsIgnoreCase(operateKey)){
+            Date fileIssueTime = this.getModel().getDataEntity(true).getDate("nckd_fileissuetime");
+            Date stampTime = this.getModel().getDataEntity(true).getDate("nckd_stamptime");
+            Map<String,Date> returnDate = new  HashMap<>();
+            returnDate.put("nckd_fileissuetime",fileIssueTime);
+            returnDate.put("nckd_stamptime",stampTime);
+            this.getView().returnDataToParent(returnDate);
+            this.getView().close();
+        }
+    }
+}

+ 83 - 0
code/opmc/nckd-jxccl-opmc/src/main/java/nckd/jxccl/opmc/pm/plugin/form/print/PerfBatchPrintListPlugin.java

@@ -0,0 +1,83 @@
+package nckd.jxccl.opmc.pm.plugin.form.print;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import kd.bos.dataentity.utils.ObjectUtils;
+import kd.bos.dataentity.utils.StringUtils;
+import kd.bos.entity.datamodel.events.PackageDataEvent;
+import kd.bos.form.CloseCallBack;
+import kd.bos.form.FormShowParameter;
+import kd.bos.form.ShowType;
+import kd.bos.form.control.Toolbar;
+import kd.bos.form.control.events.ItemClickEvent;
+import kd.bos.form.events.ClosedCallBackEvent;
+import kd.bos.list.plugin.AbstractListPlugin;
+import kd.sdk.plugin.Plugin;
+import nckd.jxccl.base.common.constant.FormConstant;
+import nckd.jxccl.base.common.utils.ConvertUtil;
+import nckd.jxccl.base.common.utils.DateUtil;
+
+import java.util.Date;
+import java.util.EventObject;
+import java.util.Map;
+
+/**
+* 人员考评套打列表
+* 实体标识:perfbatchprintlist
+* @author W.Y.C
+* @date 2025/12/7 21:20
+* @version 1.0
+*/
+public class PerfBatchPrintListPlugin extends AbstractListPlugin implements Plugin {
+
+    @Override
+    public void registerListener(EventObject e) {
+        super.registerListener(e);
+        Toolbar toolbar = this.getView().getControl(FormConstant.TOOLBARAP);
+        toolbar.addItemClickListener(this);
+    }
+
+    @Override
+    public void itemClick(ItemClickEvent evt) {
+        String itemKey = evt.getItemKey();
+        String operationKey = evt.getOperationKey();
+        if("nckd_baritemap".equalsIgnoreCase(itemKey)){
+            FormShowParameter showParameter = new FormShowParameter();
+            showParameter.setFormId("nckd_batchmoddocstamppopu");
+            showParameter.getOpenStyle().setShowType(ShowType.Modal);
+            showParameter.setCloseCallBack(new CloseCallBack(this, "nckd_batchmoddocstamppopu"));
+            showParameter.setCaption("批量修改文件印发及盖章时间");
+            this.getView().showForm(showParameter);
+        }
+    }
+
+    @Override
+    public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
+        String actionId = closedCallBackEvent.getActionId();
+        if("nckd_batchmoddocstamppopu".equalsIgnoreCase(actionId)){
+            Object returnData = closedCallBackEvent.getReturnData();
+            if(returnData != null){
+                Map<String, Date> returnDate = ConvertUtil.toMap(returnData);
+                this.getPageCache().put("fileIssueTime", JSON.toJSONString(returnDate));
+                this.getView().invokeOperation(FormConstant.REFRESH_OP);
+            }
+        }
+    }
+
+    @Override
+    public void packageData(PackageDataEvent e) {
+        String fileIssueTime = this.getPageCache().get("fileIssueTime");
+        if(StringUtils.isNotEmpty(fileIssueTime)){
+            JSONObject jsonObject = JSON.parseObject(fileIssueTime);
+            String colKey = e.getColKey();
+            if ("nckd_fileissuetime".equalsIgnoreCase(colKey) && jsonObject.containsKey("nckd_fileissuetime")) {
+                e.setFormatValue(DateUtil.format(jsonObject.getDate("nckd_fileissuetime"),DateUtil.NORM_DATE_PATTERN));
+            } else if ("nckd_stamptime".equalsIgnoreCase(colKey) && jsonObject.containsKey("nckd_stamptime")) {
+                e.setFormatValue(DateUtil.format(jsonObject.getDate("nckd_stamptime"),DateUtil.NORM_DATE_PATTERN));
+            }
+
+        }
+
+
+    }
+}