Pārlūkot izejas kodu

refactor(swc): 优化员工薪酬查询动态表单插件逻辑

- 调整初始化方法,将数据加载逻辑移至 initialize 方法中
- 移除冗余的导入类和无用常量引用
- 更新表单插件注释描述更准确
- 修复数据网格绑定条件判断错误
- 优化表格数据构建流程,提前注册监听事件
- 修正查询排序字段拼接缺少逗号问题
- 添加空行提升代码可读性
turborao 2 dienas atpakaļ
vecāks
revīzija
47a27b5b8f

+ 3 - 1
code/base/nckd-jxccl-base-helper/src/main/java/nckd/jxccl/base/swc/helper/SWCHelper.java

@@ -135,7 +135,7 @@ public class SWCHelper {
             selectFields = selectFields + ",caltask.payrolldate as bizdate";
             orderStr = "caltask.payrolldate";
         }
-        orderStr = orderStr + "hsas_caltableentry.salaryitem.number";
+        orderStr = orderStr + ",hsas_caltableentry.salaryitem.number";
         selectFields = selectFields + ",caltask.paydate,caltask.payrolldate";
 
         DynamicObjectCollection calTableDyns = QueryServiceHelper.query(entityName, selectFields, new QFilter[]{filter}, orderStr);
@@ -143,6 +143,8 @@ public class SWCHelper {
         return calTableDyns;
     }
 
+
+
     /**
      * 判断集合是否为空
      * @param list

+ 41 - 33
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/init/plugin/form/EmpSalaryQueryWebFormPlugin.java

@@ -10,12 +10,11 @@ import kd.bos.form.control.grid.DataGridRow;
 import kd.bos.form.control.grid.DataGridRowBuilder;
 import kd.bos.form.control.grid.column.AmountDataGridColumn;
 import kd.bos.form.control.grid.column.DataGridColumn;
-import kd.bos.form.control.grid.column.TextDataGridColumn;
+
 import kd.bos.form.control.grid.events.BeforeCreateDataGridColumnsEvent;
 import kd.bos.form.control.grid.events.BeforeCreateDataGridColumnsListener;
 import kd.bos.form.control.grid.events.DataGridBindDataEvent;
 import kd.bos.form.control.grid.events.DataGridBindDataListener;
-import kd.bos.form.mcontrol.mobtable.MobTable;
 import kd.bos.form.plugin.AbstractFormPlugin;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
@@ -24,14 +23,13 @@ import kd.bos.servicehelper.user.UserServiceHelper;
 import kd.sdk.plugin.Plugin;
 import nckd.jxccl.base.common.utils.DateUtil;
 import nckd.jxccl.base.swc.helper.SWCHelper;
-import nckd.jxccl.swc.constants.SwcConstant;
 
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.util.*;
 
 /**
- * 动态表单插件
+ * 员工薪酬查询 WEB  动态表单插件
  * @author turborao
  * @date 2025/11/28 16:01
  */
@@ -56,15 +54,10 @@ public class EmpSalaryQueryWebFormPlugin extends AbstractFormPlugin implements P
 
 
     @Override
-    public void beforeBindData(EventObject e) {
-        super.beforeBindData(e);
-
-        this.getModel().setValue(KEY_CTL_STARTDATE, KEY_STARTDATE);
-
-        this.getModel().setValue(KEY_CTL_ENDDATE, KEY_ENDDATE);
+    public void initialize() {
+        super.initialize();
 
         Long userId = UserServiceHelper.getCurrentUserId();
-        this.getModel().setValue("nckd_user", userId);
 
         DynamicObject personUserDyn = SWCHelper.queryOne(KEY_META_PERUSER, "employee.id","user",userId);
 
@@ -78,17 +71,6 @@ public class EmpSalaryQueryWebFormPlugin extends AbstractFormPlugin implements P
         }else {
             KEY_EMPID = personUserDyn.getLong("employee.id");
         }
-    }
-
-    @Override
-    public void afterBindData(EventObject e) {
-        super.afterBindData(e);
-        showData();
-    }
-
-    @Override
-    public void afterCreateNewData(EventObject e) {
-        super.afterCreateNewData(e);
 
         // 设置最大日期为上个月
         Calendar calendar = Calendar.getInstance();
@@ -102,6 +84,42 @@ public class EmpSalaryQueryWebFormPlugin extends AbstractFormPlugin implements P
         Date lastMonthDate = calendar.getTime();
         KEY_STARTDATE = lastMonthDate;
 
+        showData();
+        /**
+         * 构建表格数据
+         */
+        DataGrid dataGrid = this.getControl("nckd_datagridap");
+        // 注册创建列监听事件
+        dataGrid.addBeforeCreateDataGridColumnsListener(this);
+        // 注册绑定数据监听事件
+        dataGrid.addBindDataListener(this);
+
+    }
+
+    @Override
+    public void beforeBindData(EventObject e) {
+        super.beforeBindData(e);
+
+        this.getModel().setValue(KEY_CTL_STARTDATE, KEY_STARTDATE);
+
+        this.getModel().setValue(KEY_CTL_ENDDATE, KEY_ENDDATE);
+
+        Long userId = UserServiceHelper.getCurrentUserId();
+        this.getModel().setValue("nckd_user", userId);
+
+    }
+
+    @Override
+    public void afterBindData(EventObject e) {
+        super.afterBindData(e);
+
+    }
+
+
+    @Override
+    public void afterCreateNewData(EventObject e) {
+        super.afterCreateNewData(e);
+
     }
 
     /**
@@ -158,7 +176,6 @@ public class EmpSalaryQueryWebFormPlugin extends AbstractFormPlugin implements P
         itemNameMap = getItemName(calTableDyns);
         calItemAmtMapByPeriod = getCalItemAmtByPeriod(calTableDyns);
 
-
         if(calItemAmtMap != null && calItemAmtMap.size() > 0 && itemNameMap != null && !itemNameMap.isEmpty()){
             DecimalFormat df = new DecimalFormat("#,##0.00");
             Label label1 = this.getView().getControl(KEY_LAB_REALAMT);
@@ -175,15 +192,6 @@ public class EmpSalaryQueryWebFormPlugin extends AbstractFormPlugin implements P
                 label2.setText(df.format(calItemAmtMap.get("JT_283")));   //应发合计
             }
 
-            /**
-             * 构建表格数据
-             */
-            DataGrid dataGrid = this.getControl("nckd_datagridap");
-            // 注册创建列监听事件
-            dataGrid.addBeforeCreateDataGridColumnsListener(this);
-            // 注册绑定数据监听事件
-            dataGrid.addBindDataListener(this);
-
         }else{
             Label label1 = this.getView().getControl(KEY_LAB_REALAMT);
             label1.setText("0.00");
@@ -320,7 +328,7 @@ public class EmpSalaryQueryWebFormPlugin extends AbstractFormPlugin implements P
     public void dataGridBindData(DataGridBindDataEvent e) {
         List<Object> list = new ArrayList<>();
         int index = 0;
-        if(calItemAmtMapByPeriod !=  null && calItemAmtMapByPeriod.isEmpty()) {
+        if(calItemAmtMapByPeriod !=  null && !calItemAmtMapByPeriod.isEmpty()) {
             DataGridRowBuilder builder = e.getDataGridRowBuilder();
             // 遍历每个周期
             for (Map.Entry<String, Map<String, BigDecimal>> periodEntry : calItemAmtMapByPeriod.entrySet()) {