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

feat(plugins): 添加动态调整和年度调整列表的数据格式化功能

- 在DynamicAdjustQueryListPlugin中实现packageData方法处理金额差异显示
- 在AnnualAdjustQueryListPlugin中实现packageData方法处理金额差异显示
- 添加BigDecimal和RoundingMode导入用于金额计算
- 实现金额差异的空值处理和格式化显示
- 在UnAdjustedReportReportListDataPlugin中添加新的查询字段配置
wyc 21 цаг өмнө
parent
commit
80b0424d66

+ 23 - 0
code/hr/nckd-jxccl-hr/src/main/java/nckd/jxccl/hr/psms/plugin/form/adjust/DynamicAdjustQueryListPlugin.java

@@ -1,6 +1,7 @@
 package nckd.jxccl.hr.psms.plugin.form.adjust;
 
 import kd.bos.common.enums.EnableEnum;
+import kd.bos.entity.datamodel.events.PackageDataEvent;
 import kd.bos.form.events.SetFilterEvent;
 import kd.bos.list.plugin.AbstractListPlugin;
 import kd.bos.orm.query.QCP;
@@ -8,6 +9,9 @@ import kd.bos.orm.query.QFilter;
 import kd.sdk.plugin.Plugin;
 import nckd.jxccl.hr.psms.common.PositionStructureConstant;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
 /**
 * 已生成动态调整-查询列表插件
 * @author W.Y.C
@@ -22,4 +26,23 @@ public class DynamicAdjustQueryListPlugin extends AbstractListPlugin implements
         //只查询动态调整的数据
         e.addCustomQFilter(new QFilter(PositionStructureConstant.NCKD_TYPESTATE, QCP.equals, "4"));
     }
+
+    @Override
+    public void packageData(PackageDataEvent e) {
+        String colKey = e.getColKey();
+        if("nckd_postallowancediff".equalsIgnoreCase(colKey)){
+            BigDecimal itemAmtEx = e.getRowData().getBigDecimal("nckd_postallowance");
+            BigDecimal itemAmt = e.getRowData().getBigDecimal("nckd_lastpersonposfile.nckd_postallowance");
+
+            // 空值处理
+            if (itemAmtEx == null) {
+                itemAmtEx = BigDecimal.ZERO;
+            }
+            if (itemAmt == null) {
+                itemAmt = BigDecimal.ZERO;
+            }
+
+            e.setFormatValue("¥"+itemAmtEx.subtract(itemAmt).setScale(2, RoundingMode.HALF_UP).toString());
+        }
+    }
 }

+ 22 - 0
code/hr/nckd-jxccl-hr/src/main/java/nckd/jxccl/hr/psms/plugin/form/annualadjust/AnnualAdjustQueryListPlugin.java

@@ -3,6 +3,7 @@ package nckd.jxccl.hr.psms.plugin.form.annualadjust;
 import kd.bos.common.enums.EnableEnum;
 import kd.bos.entity.datamodel.ListSelectedRow;
 import kd.bos.entity.datamodel.ListSelectedRowCollection;
+import kd.bos.entity.datamodel.events.PackageDataEvent;
 import kd.bos.form.CloseCallBack;
 import kd.bos.form.FormShowParameter;
 import kd.bos.form.MessageBoxOptions;
@@ -21,6 +22,8 @@ import nckd.jxccl.base.common.utils.ConvertUtil;
 import nckd.jxccl.hr.psms.common.PositionStructureConstant;
 import org.apache.commons.lang3.StringUtils;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -41,6 +44,25 @@ public class AnnualAdjustQueryListPlugin extends AbstractListPlugin implements P
         e.addCustomQFilter(qFilter);
     }
 
+    @Override
+    public void packageData(PackageDataEvent e) {
+        String colKey = e.getColKey();
+        if("nckd_postallowancediff".equalsIgnoreCase(colKey)){
+            BigDecimal itemAmtEx = e.getRowData().getBigDecimal("nckd_postallowance");
+            BigDecimal itemAmt = e.getRowData().getBigDecimal("nckd_lastpersonposfile.nckd_postallowance");
+
+            // 空值处理
+            if (itemAmtEx == null) {
+                itemAmtEx = BigDecimal.ZERO;
+            }
+            if (itemAmt == null) {
+                itemAmt = BigDecimal.ZERO;
+            }
+
+            e.setFormatValue("¥"+itemAmtEx.subtract(itemAmt).setScale(2, RoundingMode.HALF_UP).toString());
+        }
+    }
+
     @Override
     public void itemClick(ItemClickEvent evt) {
         String itemKey = evt.getItemKey();

+ 7 - 1
code/hr/nckd-jxccl-hr/src/main/java/nckd/jxccl/hr/psms/plugin/report/adjust/UnAdjustedReportReportListDataPlugin.java

@@ -74,7 +74,13 @@ public class UnAdjustedReportReportListDataPlugin extends AbstractReportListData
                         PositionStructureConstant.NCKD_BEGINDATE,
                         PositionStructureConstant.NCKD_JOBLEVELHR,
                         PositionStructureConstant.NCKD_PERSON,
-                        PositionStructureConstant.NCKD_DEP)
+                        PositionStructureConstant.NCKD_DEP,
+                        PositionStructureConstant.NCKD_ALLOWANCERANKMARK,
+                        PositionStructureConstant.NCKD_ALLOWANCERANKSEL,
+                        PositionStructureConstant.NCKD_COEFFICIENT,
+                        PositionStructureConstant.NCKD_CURRENTPOSTSALARY,
+                        PositionStructureConstant.NCKD_POSTALLOWANCE
+                )
                 .addGroup(new String[]{PositionStructureConstant.PERSONPOSFILE_ENTITYID,PositionStructureConstant.NCKD_DEP},"belongcompany")
                 .addGroup(new String[]{FormConstant.HRPI_PERPROTITLE}, FormConstant.PROLEVEL_KEY)
                 .addGroup(new String[]{FormConstant.HRPI_PEROCPQUAL}, FormConstant.QUALIFICATION_KEY)