Browse Source

refactor(agencybill): 替换计算规则字段为薪资场景字段并优化代码结构

- 将AgencyBatchUpdateFormPlugin中的calrule字段替换为payRollScene字段
- 移除AgencyBillEdit中未使用的nckd_payrollgrp字段设置
- 更新AgencyBillList中数据加载和更新逻辑,使用payrollscene替代calrule
- 修复AgencyBillList中组织选择功能的空指针检查逻辑
- 注释OutImportTaskUtils中缓存相关代码并修改导入模板类型判断条件
- 重构SalAnnualIncomeBillList中的操作处理逻辑,添加更新前验证功能
- 修改SWCHelper中组织查询的数据表名称,从haos_adminorghr改为haos_adminorghrf7
Tyx 2 tuần trước cách đây
mục cha
commit
7e136ac2c8

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

@@ -280,7 +280,7 @@ public class SWCHelper {
         filter.and(QFilterCommonHelper.getEnableFilter(true));
         filter.and(QFilterCommonHelper.getDataStatusFilter());
         filter.and("adminorgtype.number", QCP.equals, "1020_S");
-        HRBaseServiceHelper helper = new HRBaseServiceHelper("haos_adminorghr");
+        HRBaseServiceHelper helper = new HRBaseServiceHelper("haos_adminorghrf7");
         return helper.queryOriginalCollection("id,name,number", filter.toArray());
     }
 
@@ -289,7 +289,7 @@ public class SWCHelper {
         filter.and(QFilterCommonHelper.getEnableFilter(true));
         filter.and(QFilterCommonHelper.getDataStatusFilter());
         filter.and("name", QCP.equals,  name);
-        HRBaseServiceHelper helper = new HRBaseServiceHelper("haos_adminorghr");
+        HRBaseServiceHelper helper = new HRBaseServiceHelper("haos_adminorghrf7");
         return helper.loadOne(filter.toArray());
     }
 

+ 2 - 1
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/hcdm/formplugin/agencybill/AgencyBatchUpdateFormPlugin.java

@@ -45,7 +45,8 @@ public class AgencyBatchUpdateFormPlugin extends AbstractFormPlugin implements P
         IFormView view = this.getView();
         Map map = new HashMap();
         map.put("month", dyn.getDate("nckd_month"));
-        map.put("calrule", dyn.getDynamicObject("nckd_calrule"));
+        //map.put("calrule", dyn.getDynamicObject("nckd_calrule"));
+        map.put("payRollScene", dyn.getDynamicObject("nckd_payrollscene"));
         view.returnDataToParent(map);
         view.close();
     }

+ 1 - 1
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/hcdm/formplugin/agencybill/AgencyBillEdit.java

@@ -123,7 +123,7 @@ public class AgencyBillEdit extends AbstractFormPlugin implements Plugin {
             row.set("nckd_employee", calPersonMap.get(calPersonId).getDynamicObject("employee"));
             row.set("nckd_eorg", empposorgrelMap.get(row.getLong("nckd_employee.id")).getDynamicObject("adminorg.belongcompany"));
             row.set("nckd_adminorg", calPersonMap.get(calPersonId).getDynamicObject("empposorgrelsndet.adminorg"));
-            row.set("nckd_payrollgrp", model.getValue("nckd_payrollgroup"));
+            //row.set("nckd_payrollgrp", model.getValue("nckd_payrollgroup"));
             row.set("nckd_belongdate", date);
             row.set("nckd_amount", calTableMap.get(calPersonId).getBigDecimal("hsas_caltableentry.calamountvalue"));
         }

+ 23 - 22
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/hcdm/formplugin/agencybill/AgencyBillList.java

@@ -98,7 +98,7 @@ public class AgencyBillList extends AbstractListPlugin {
             if (map != null) {
 
                 Date month = (Date) map.get("month");
-                DynamicObject calRule = (DynamicObject) map.get("calrule");
+                DynamicObject payRollScene = (DynamicObject) map.get("payRollScene");
                 ListSelectedRowCollection selectedRows = listview.getSelectedRows();
                 Object[] entryIds = selectedRows.getEntryPrimaryKeyValues();
 
@@ -107,14 +107,14 @@ public class AgencyBillList extends AbstractListPlugin {
                 }).collect(Collectors.toList());
 
                 QFilter filter = new QFilter("nckd_entryentity.id", "in", entryIdsList);
-                DynamicObject[] billDyns = SwcConstant.AGENCYPAYBILL_ENTITY.load("id, nckd_entryentity.nckd_periodmonth, nckd_entryentity.nckd_calrule", new QFilter[]{filter});
+                DynamicObject[] billDyns = SwcConstant.AGENCYPAYBILL_ENTITY.load("id, nckd_entryentity.nckd_periodmonth, nckd_entryentity.nckd_payrollscene", new QFilter[]{filter});
                 // 批量更新
                 for(DynamicObject bill : billDyns) {
                     DynamicObjectCollection entryDyns = bill.getDynamicObjectCollection("nckd_entryentity");
                     for(DynamicObject entry : entryDyns) {
                         if(entryIdsList.contains(entry.getLong("id"))) {
                             entry.set("nckd_periodmonth", month);
-                            entry.set("nckd_calrule", calRule);
+                            entry.set("nckd_payrollscene", payRollScene);
                         }
                     }
                 }
@@ -124,28 +124,29 @@ public class AgencyBillList extends AbstractListPlugin {
         }
         else if ("selectorg".equals(actionId)) {
             ListSelectedRowCollection listSelectedRowCollection = (ListSelectedRowCollection) closedCallBackEvent.getReturnData();
-
-            if (listSelectedRowCollection.size() > 0) {
-                Object payRollGrpId = listSelectedRowCollection.get(0).getPrimaryKeyValue();
-                // 当前单据界面选择的数据
-                ListSelectedRowCollection selectedRows = listview.getSelectedRows();
-                Object[] entryIds = selectedRows.getEntryPrimaryKeyValues();
-
-                List<Long> entryIdsList = Arrays.stream(entryIds).map(obj -> {
-                    return (Long) obj;
-                }).collect(Collectors.toList());
-                QFilter filter = new QFilter("nckd_entryentity.id", "in", entryIdsList);
-                DynamicObject[] billDyns = SwcConstant.AGENCYPAYBILL_ENTITY.load("id, nckd_entryentity.nckd_payrollgrp", new QFilter[]{filter});
-                // 批量更新
-                for(DynamicObject bill : billDyns) {
-                    DynamicObjectCollection entryDyns = bill.getDynamicObjectCollection("nckd_entryentity");
-                    for(DynamicObject entry : entryDyns) {
-                        if(entryIdsList.contains(entry.getLong("id"))) {
-                            entry.set("nckd_payrollgrp", payRollGrpId);
+            if(listSelectedRowCollection != null) {
+                if (listSelectedRowCollection.size() > 0) {
+                    Object payRollGrpId = listSelectedRowCollection.get(0).getPrimaryKeyValue();
+                    // 当前单据界面选择的数据
+                    ListSelectedRowCollection selectedRows = listview.getSelectedRows();
+                    Object[] entryIds = selectedRows.getEntryPrimaryKeyValues();
+
+                    List<Long> entryIdsList = Arrays.stream(entryIds).map(obj -> {
+                        return (Long) obj;
+                    }).collect(Collectors.toList());
+                    QFilter filter = new QFilter("nckd_entryentity.id", "in", entryIdsList);
+                    DynamicObject[] billDyns = SwcConstant.AGENCYPAYBILL_ENTITY.load("id, nckd_entryentity.nckd_payrollgrp", new QFilter[]{filter});
+                    // 批量更新
+                    for (DynamicObject bill : billDyns) {
+                        DynamicObjectCollection entryDyns = bill.getDynamicObjectCollection("nckd_entryentity");
+                        for (DynamicObject entry : entryDyns) {
+                            if (entryIdsList.contains(entry.getLong("id"))) {
+                                entry.set("nckd_payrollgrp", payRollGrpId);
+                            }
                         }
                     }
+                    SwcConstant.AGENCYPAYBILL_ENTITY.update(billDyns);
                 }
-                SwcConstant.AGENCYPAYBILL_ENTITY.update(billDyns);
             }
             view.invokeOperation("refresh");
         }

+ 15 - 3
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/hcdm/formplugin/annualincome/SalAnnualIncomeBillList.java

@@ -40,12 +40,24 @@ public class SalAnnualIncomeBillList extends AbstractListPlugin implements Plugi
         super.beforeDoOperation(args);
         FormOperate formOperate = (FormOperate)args.getSource();
         String opKey = formOperate.getOperateKey();
-        // 判断是否为批量新增操作
-        if (StringUtils.equals(opKey, "donothing_batchaddnew")) {
-            this.openBatchAddnewWindow(args);
+        switch(opKey) {
+            case "donothing_batchaddnew":
+                this.openBatchAddnewWindow(args);
+            break;
+            case "donothing_update":
+                this.beforeUpdateVerify(args);
+            break;
         }
     }
 
+    /**
+     * 更新数据前校验是否都为社保未拉取,如果没有可更新的数据则提示
+     * @param args
+     */
+    public void beforeUpdateVerify(BeforeDoOperationEventArgs args) {
+
+    }
+
     /**
      * 打开批量新增窗口
      * @param args 操作事件参数

+ 5 - 5
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/hsas/business/utils/OutImportTaskUtils.java

@@ -46,10 +46,10 @@ public class OutImportTaskUtils {
             String cacheKey = importTaskId + "_" + tplId;
             IHRAppCache appCache = HRAppCache.get(cacheKey);
             String json = (String)appCache.get("columnHeadList", String.class);
-            if (StringUtils.isNotEmpty(json)) {
-                columnHeadList = (List) SerializationUtils.fromJsonString(json, List.class);
-                return columnHeadList;
-            }
+//            if (StringUtils.isNotEmpty(json)) {
+//                columnHeadList = (List) SerializationUtils.fromJsonString(json, List.class);
+//                return columnHeadList;
+//            }
         }
         DynamicObjectCollection list = getTplDataList(tplId);
         if (list.size() == 0) {
@@ -70,7 +70,7 @@ public class OutImportTaskUtils {
                 String itemType = obj.getString("nckd_outimptplentry.nckd_itemtype");
                 Long itemId = obj.getLong("nckd_outimptplentry.nckd_itemid");
                 comment = obj.getString("nckd_outimptplentry.nckd_comment");
-                if ("0".equals(itemType)) {
+                if ("2".equals(itemType)) {
                     keyStr = "fix" + itemId;
                     itemList.add(keyStr);
                     indexMap.put(keyStr, getExcelRowIndexByTitle(obj.getString("nckd_outimptplentry.nckd_matchcolumn")));