瀏覽代碼

feat(salary): 实现员工待定调薪清单自动生成

- 新增业务接口SynPendingSalaryAdjDataService及其实现类
- 将原插件中的数据同步逻辑抽取到独立服务类中
- 新增定时任务PendingSalaryAdjTask用于定期执行数据同步
- 修改表单插件操作键从"refresh"变更为"syndata"
- 优化数据查询逻辑,支持自定义参数配置查询天数
- 增加对入职单和调动单的数据同步处理
- 添加调薪记录关联信息获取逻辑
- 提供详细的操作结果提示信息
turborao 5 天之前
父節點
當前提交
c1f1fe58a1

+ 9 - 0
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/init/business/SynPendingSalaryAdjDataService.java

@@ -0,0 +1,9 @@
+package nckd.jxccl.swc.init.business;
+
+import java.util.Map;
+
+public interface SynPendingSalaryAdjDataService {
+
+    public abstract  String SynPendingSalaryAdjDataForPersonTransfer();
+
+}

+ 289 - 0
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/init/business/SynPendingSalaryAdjDataServiceImpl.java

@@ -0,0 +1,289 @@
+package nckd.jxccl.swc.init.business;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.entity.EntityMetadataCache;
+import kd.bos.entity.MainEntityType;
+import kd.bos.entity.param.CustomParam;
+import kd.bos.logging.Log;
+import kd.bos.logging.LogFactory;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.QueryServiceHelper;
+import kd.bos.servicehelper.operation.SaveServiceHelper;
+import kd.bos.servicehelper.parameter.SystemParamServiceHelper;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+public class SynPendingSalaryAdjDataServiceImpl implements SynPendingSalaryAdjDataService {
+
+    private static final Log logger = LogFactory.getLog(SynPendingSalaryAdjDataServiceImpl.class);
+
+    /**
+     * 员工待定调薪清单
+     */
+    private static final String entityName = "nckd_pendingsalaryadj";
+    /**
+     * 入职单
+     */
+    private static final String onhasonbrdEntityName = "hom_personhasonbrd";
+    /**
+     * 调动单
+     */
+    private static final String transferEntityName = "hdm_transferapply";
+    /**
+     * 定调薪信息
+     */
+    private static final String adjrecordEntityName = "hcdm_decadjrecord";
+
+    private static int days = 5;
+
+    private DynamicObjectCollection salaryTypeDyns = null;
+    private DynamicObject salaryRankDyn = null;
+    private DynamicObject standardItemDyn = null;
+
+    @Override
+    public String SynPendingSalaryAdjDataForPersonTransfer() {
+        /**
+         * 初始化数据
+         */
+        initialize();
+
+        String msg = getAdjustBillData();
+
+        return msg;
+    }
+
+    public void initialize() {
+        /**
+         * 获取 公共自定义参数  PENDSALARYADJ_DAYS
+         */
+        CustomParam customParam = new CustomParam();
+        customParam.getSearchKeySet().add("PENDSALARYADJ_DAYS");
+        Map<String, String> cusTomMap = SystemParamServiceHelper.loadCustomParameterFromCache(customParam);
+        String pendsalaryadjDays  = cusTomMap.get("PENDSALARYADJ_DAYS");
+        days = Integer.parseInt(pendsalaryadjDays);
+
+        /**
+         * 获取 定调薪类型
+         */
+        ArrayList<String> salaryTypeList = new ArrayList<>();
+        salaryTypeList.add("tiaozhengtiaoxin");  //岗位调整调薪
+        salaryTypeList.add("100009");  //入职定薪新
+        QFilter qFilter11 = new QFilter("number", QCP.in, salaryTypeList);
+        salaryTypeDyns = QueryServiceHelper.query("hsbs_salaryadjustrsn","id,number,name",new QFilter[]{qFilter11},"number");
+
+        /**
+         * 获取入职时的薪档
+         */
+        QFilter qFilter12 = new QFilter("number", QCP.equals, "01");
+        salaryRankDyn = QueryServiceHelper.queryOne("hsbs_salaryrank","id,number,name",new QFilter[]{qFilter12});
+
+
+        /**
+         * 获取 定调薪项目 岗位工资标准
+         */
+        QFilter qFilter13 = new QFilter("name", QCP.equals, "岗位工资标准");
+        standardItemDyn = QueryServiceHelper.queryOne("hsbs_standarditem","id,number,name",new QFilter[]{qFilter13});
+    }
+
+
+    /**
+     * 获取入职单与调动单的数据
+     */
+    public String getAdjustBillData() {
+
+        LocalDate currentDate = LocalDate.now();
+        // Subtract 5 days
+        LocalDate daysAgo = currentDate.minusDays(days);
+
+        ArrayList<DynamicObject> billDynList = new ArrayList<>();
+        StringBuffer errorInfo = new StringBuffer();
+        MainEntityType entityType = EntityMetadataCache.getDataEntityType(entityName);
+
+        /**
+         * 查询入职单
+         */
+        String selectField2 = "id,billno,b_effectivedate,ba_em_tid,ba_em_empnumber,ba_em_name,ba_po_position.masterid,ba_po_adminorg,ba_po_job.id,ajoblevel.id,ba_po_job.jobseq.id";
+        QFilter qFilter1 = new QFilter("enrollstatus", QCP.equals, "3"); // 入职状态 = 已入职
+        QFilter qFilter2 = new QFilter("billstatus", QCP.equals, "C"); // 单据状态 = 已审核
+        QFilter qFilter3 = new QFilter("b_effectivedate", QCP.large_equals, daysAgo);
+        QFilter qFilter4 = new QFilter("b_effectivedate", QCP.less_equals, currentDate);
+
+        DynamicObjectCollection onhasonbrdDyns = QueryServiceHelper.query(onhasonbrdEntityName, selectField2,new QFilter[]{qFilter1,qFilter2,qFilter3,qFilter4});
+
+        Map<Long, DynamicObject> onhasonbrdMap = (Map)onhasonbrdDyns.stream().collect(Collectors.toMap((obj) -> {
+            return obj.getLong("id");
+        }, (obj) -> {
+            return obj;
+        }, (k1, k2) -> {
+            return k1;
+        }));
+
+        //入职  将Map转换为List
+        List<Long> onhasonbrdIDs = onhasonbrdMap.keySet().stream().collect(Collectors.toList());
+
+        QFilter qFilter22 = new QFilter("nckd_billid", QCP.in, onhasonbrdIDs);
+        List<Object> listIDs = QueryServiceHelper.queryPrimaryKeys(entityName,new QFilter[]{qFilter22}, null, Integer.MAX_VALUE);
+        DynamicObject billDyn =  BusinessDataServiceHelper.newDynamicObject(entityName);
+        DynamicObject[] billDyns = BusinessDataServiceHelper.load(listIDs.toArray(),billDyn.getDynamicObjectType());
+
+        int onhasonbrdCount = 0;
+        Map<Long, DynamicObject> billMap =
+                Arrays.stream(billDyns)
+                        .collect(Collectors.toMap(
+                                detail -> detail.getLong("nckd_billid"),
+                                detail -> detail, // 整个 DynamicObject 作为 value
+                                (existing, replacement) -> existing // 保留前面的值
+                        ));
+
+
+        for(DynamicObject onhasonbrdDyn: onhasonbrdDyns){
+            DynamicObject billDyn1 = billMap.get(onhasonbrdDyn.getLong("id"));
+            if(billDyn1 != null) {
+                continue;
+            }
+            DynamicObject dyn = new DynamicObject(entityType);
+            dyn.set("billno", onhasonbrdDyn.getString("billno"));
+            dyn.set("nckd_billid", onhasonbrdDyn.getLong("id"));
+            dyn.set("nckd_billtype", "入职单");
+            dyn.set("billstatus", "A");  ///待处理
+            dyn.set("nckd_employeefield", onhasonbrdDyn.getLong("ba_em_tid"));
+            dyn.set("nckd_changedate", onhasonbrdDyn.getDate("b_effectivedate"));
+            dyn.set("nckd_salaryadjus", salaryTypeDyns.get(0).getLong("id"));  //定调薪类型
+            dyn.set("nckd_newhradminorg", onhasonbrdDyn.getLong("ba_po_adminorg"));  //部门
+            dyn.set("nckd_newposition", onhasonbrdDyn.getLong("ba_po_position.masterid"));  //岗位
+            //dyn.set("nckd_newjobseqhr", onhasonbrdDyn.getLong("ba_po_job.jobseq.id"));  //职位序列
+            dyn.set("nckd_newsalaryrank", salaryRankDyn.getLong("id"));
+            onhasonbrdCount++;
+            billDynList.add(dyn);
+        }
+
+
+        /**
+         * 查询调动单
+         */
+        String selectField1 = "id,billno,b_effectivedate,bb_em_tid,ba_em_empnumber,bb_po_position.masterid,aposition.masterid,bb_po_adminorg.id,aorg.id,bb_po_job.jobseq.id,ajob.jobseq.id";
+        QFilter qFilter12 = new QFilter("billstatus", QCP.equals, "C"); // 单据状态 = 已审核
+        QFilter qFilter13 = new QFilter("b_effectivedate", QCP.large_equals, daysAgo);  //实际调动日期
+        QFilter qFilter14 = new QFilter("b_effectivedate", QCP.less_equals, currentDate);  //实际调动日期
+
+        DynamicObjectCollection transferDyns = QueryServiceHelper.query(transferEntityName, selectField1,new QFilter[]{qFilter12,qFilter13,qFilter14});
+
+        Map<Long, DynamicObject> transferMap = (Map)transferDyns.stream().collect(Collectors.toMap((obj) -> {
+            return obj.getLong("id");
+        }, (obj) -> {
+            return obj;
+        }, (k1, k2) -> {
+            return k1;
+        }));
+        List<Long> transferIDs = transferMap.keySet().stream().collect(Collectors.toList());
+
+        QFilter qFilter15 = new QFilter("nckd_billid", QCP.in, transferIDs);
+        List<Object> transferlistIDs = QueryServiceHelper.queryPrimaryKeys(entityName,new QFilter[]{qFilter15}, null, Integer.MAX_VALUE);
+        DynamicObject billDynType =  BusinessDataServiceHelper.newDynamicObject(entityName);
+        DynamicObject[] billDyns1 = BusinessDataServiceHelper.load(transferlistIDs.toArray(),billDynType.getDynamicObjectType());
+
+        int transferCount = 0;
+        Map<Long, DynamicObject> billMap1 =
+                Arrays.stream(billDyns1)
+                        .collect(Collectors.toMap(
+                                detail -> detail.getLong("nckd_billid"),
+                                detail -> detail, // 整个 DynamicObject 作为 value
+                                (existing, replacement) -> existing // 保留前面的值
+                        ));
+
+        Map<Long, DynamicObject> adjRecordMap = getAdjRecordInfo(transferDyns);
+
+        for(DynamicObject transferDyn: transferDyns){
+            DynamicObject billDyn2 = billMap1.get(transferDyn.getLong("id"));
+            if(billDyn2 != null) {
+                continue;
+            }
+            DynamicObject dyn = new DynamicObject(entityType);
+            Long employeeID = transferDyn.getLong("bb_em_tid");
+            dyn.set("billno", transferDyn.getString("billno"));
+            dyn.set("nckd_billid", transferDyn.getLong("id"));
+            dyn.set("nckd_billtype", "调动单");
+            dyn.set("billstatus", "A");  ///待处理
+            dyn.set("nckd_employeefield", employeeID);
+            dyn.set("nckd_changedate", transferDyn.getDate("b_effectivedate"));
+            dyn.set("nckd_salaryadjus", salaryTypeDyns.get(1).getLong("id"));  //定调薪类型
+            /**
+             * 调动前
+             */
+            dyn.set("nckd_oldhradminorg", transferDyn.getLong("bb_po_adminorg.id"));  //部门
+            dyn.set("nckd_oldposition", transferDyn.getLong("bb_po_position.masterid"));  //岗位
+            //dyn.set("nckd_oldjobseqhr", transferDyn.getLong("bb_po_job.jobseq.id"));  //职位序列
+            DynamicObject adjRecordDyn  = adjRecordMap.get(employeeID);
+            if(adjRecordDyn != null) {
+                dyn.set("nckd_oldsalaryrank", adjRecordDyn.getLong("salaryrank.id"));  //薪档
+            }
+            /**
+             * 调动后
+             */
+            dyn.set("nckd_newhradminorg", transferDyn.getLong("aorg.id"));  //部门
+            dyn.set("nckd_newposition", transferDyn.getLong("aposition.masterid"));  //岗位
+            //dyn.set("nckd_newjobseqhr", transferDyn.getLong("ajob.jobseq.id"));  //职位序列
+            dyn.set("nckd_newsalaryrank", salaryRankDyn.getLong("id"));   //薪档
+            transferCount++;
+            billDynList.add(dyn);
+        }
+
+        int length = 0;
+        if(billDynList.size() != 0) {
+            //保存
+            Object[] update = SaveServiceHelper.save(billDynList.toArray(new DynamicObject[0]));
+            length = update.length;
+            errorInfo.append("成功导入,"+length+"条数据,其中入职单"+onhasonbrdCount+"条,调动单"+transferCount+"条"); // 成功类型
+        }else{
+            errorInfo.append("没有导入数据");
+        }
+        return errorInfo.toString();
+
+    }
+
+    /**
+     * 获取调薪记录
+     * @param transferDyns   通过调动单查询出人员ID
+     * @return
+     */
+    public Map<Long, DynamicObject> getAdjRecordInfo(DynamicObjectCollection transferDyns) {
+        Map<Long, DynamicObject> transferMap = (Map)transferDyns.stream().collect(Collectors.toMap((obj) -> {
+            return obj.getLong("bb_em_tid");
+        }, (obj) -> {
+            return obj;
+        }, (k1, k2) -> {
+            return k1;
+        }));
+
+        List<Long> personIDs = transferMap.keySet().stream().collect(Collectors.toList());
+
+        String selectField = "id,adjfile.employee.id,adjfile.datastatus,adjfile.iscurrentversion,employee.id,salaryrank.id";
+        QFilter qFilter1 = new QFilter("adjfile.employee.id", QCP.in, personIDs);
+        QFilter qFilter2 = new QFilter("adjfile.datastatus", QCP.equals, "1");
+        QFilter qFilter3 = new QFilter("adjfile.iscurrentversion", QCP.equals, "1");
+        QFilter qFilter4= new QFilter("salaryrank.id", QCP.equals, standardItemDyn.getLong("id"));
+        QFilter qFilter5= new QFilter("iscurrentdata", QCP.equals, "1");
+
+        DynamicObjectCollection adjDyns = QueryServiceHelper.query(adjrecordEntityName, selectField,new QFilter[]{qFilter1,qFilter2,qFilter3,qFilter4,qFilter5});
+
+
+        Map<Long, DynamicObject> adjRecordMap = (Map)adjDyns.stream().collect(Collectors.toMap((obj) -> {
+            return obj.getLong("employee.id");
+        }, (obj) -> {
+            return obj;
+        }, (k1, k2) -> {
+            return k1;
+        }));
+
+        return adjRecordMap;
+    }
+
+}

+ 5 - 175
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/init/plugin/form/PendingSalaryAdjListPlugin.java

@@ -21,6 +21,7 @@ import kd.bos.servicehelper.QueryServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
 import kd.bos.servicehelper.parameter.SystemParamServiceHelper;
 import kd.sdk.plugin.Plugin;
+import nckd.jxccl.swc.init.business.SynPendingSalaryAdjDataServiceImpl;
 
 import java.time.LocalDate;
 import java.util.*;
@@ -114,7 +115,7 @@ public class PendingSalaryAdjListPlugin extends AbstractListPlugin implements Pl
         FormOperate formOperate = (FormOperate)args.getSource();
         String key = formOperate.getOperateKey();
         switch (key) {
-            case "refresh":
+            case "syndata":
                 //加载入职单与调动单的数据
                 getAdjustBillData();
                 break;
@@ -181,179 +182,8 @@ public class PendingSalaryAdjListPlugin extends AbstractListPlugin implements Pl
      * 获取入职单与调动单的数据
      */
     public void getAdjustBillData() {
-
-        LocalDate currentDate = LocalDate.now();
-        // Subtract 5 days
-        LocalDate daysAgo = currentDate.minusDays(days);
-
-        ArrayList<DynamicObject> billDynList = new ArrayList<>();
-
-        /**
-         * 查询入职单
-         */
-        String selectField2 = "id,billno,b_effectivedate,ba_em_tid,ba_em_empnumber,ba_em_name,ba_po_position.id,ba_po_adminorg,ba_po_job.id,ajoblevel.id,ba_po_job.jobseq.id";
-        QFilter qFilter1 = new QFilter("enrollstatus", QCP.equals, "3"); // 入职状态 = 已入职
-        QFilter qFilter2 = new QFilter("billstatus", QCP.equals, "C"); // 单据状态 = 已审核
-        QFilter qFilter3 = new QFilter("b_effectivedate", QCP.large_equals, daysAgo);
-
-        DynamicObjectCollection onhasonbrdDyns = QueryServiceHelper.query(onhasonbrdEntityName, selectField2,new QFilter[]{qFilter1,qFilter2,qFilter3});
-
-        Map<Long, DynamicObject> onhasonbrdMap = (Map)onhasonbrdDyns.stream().collect(Collectors.toMap((obj) -> {
-            return obj.getLong("id");
-        }, (obj) -> {
-            return obj;
-        }, (k1, k2) -> {
-            return k1;
-        }));
-
-        //入职  将Map转换为List
-        List<Long> onhasonbrdIDs = onhasonbrdMap.keySet().stream().collect(Collectors.toList());
-
-        QFilter qFilter22 = new QFilter("nckd_billid", QCP.in, onhasonbrdIDs);
-        List<Object> listIDs = QueryServiceHelper.queryPrimaryKeys(entityName,new QFilter[]{qFilter22}, null, Integer.MAX_VALUE);
-        DynamicObject billDyn =  BusinessDataServiceHelper.newDynamicObject(entityName);
-        DynamicObject[] billDyns = BusinessDataServiceHelper.load(listIDs.toArray(),billDyn.getDynamicObjectType());
-
-        int onhasonbrdCount = 0;
-        Map<Long, DynamicObject> billMap =
-                Arrays.stream(billDyns)
-                        .collect(Collectors.toMap(
-                                detail -> detail.getLong("nckd_billid"),
-                                detail -> detail, // 整个 DynamicObject 作为 value
-                                (existing, replacement) -> existing // 保留前面的值
-                        ));
-
-        for(DynamicObject onhasonbrdDyn: onhasonbrdDyns){
-            DynamicObject billDyn1 = billMap.get(onhasonbrdDyn.getLong("id"));
-            if(billDyn1 != null) continue;
-            DynamicObject dyn = BusinessDataServiceHelper.newDynamicObject(entityName);
-            dyn.set("billno", onhasonbrdDyn.getString("billno"));
-            dyn.set("nckd_billid", onhasonbrdDyn.getLong("id"));
-            dyn.set("nckd_billtype", "入职单");
-            dyn.set("billstatus", "A");  ///待处理
-            dyn.set("nckd_employeefield", onhasonbrdDyn.getLong("ba_em_tid"));
-            dyn.set("nckd_changedate", onhasonbrdDyn.getDate("b_effectivedate"));
-            dyn.set("nckd_salaryadjus", salaryTypeDyns.get(0).getLong("id"));  //定调薪类型
-            dyn.set("nckd_newhradminorg", onhasonbrdDyn.getLong("ba_po_adminorg"));  //部门
-            dyn.set("nckd_newposition", onhasonbrdDyn.getLong("ba_po_position.id"));  //岗位
-            dyn.set("nckd_newjobseqhr", onhasonbrdDyn.getLong("ba_po_job.jobseq.id"));  //职位序列
-            dyn.set("nckd_newsalaryrank", salaryRankDyn.getLong("id"));
-            onhasonbrdCount++;
-            billDynList.add(dyn);
-        }
-
-
-        /**
-         * 查询调动单
-         */
-        String selectField1 = "id,billno,b_effectivedate,bb_em_tid,ba_em_empnumber,bb_po_position.id,aposition.id,bb_po_adminorg.id,aorg.id,bb_po_job.jobseq.id,ajob.jobseq.id";
-        QFilter qFilter12 = new QFilter("billstatus", QCP.equals, "C"); // 单据状态 = 已审核
-        QFilter qFilter13 = new QFilter("b_effectivedate", QCP.large_equals, daysAgo);  //实际调动日期
-
-        DynamicObjectCollection transferDyns = QueryServiceHelper.query(transferEntityName, selectField1,new QFilter[]{qFilter12,qFilter13});
-
-        Map<Long, DynamicObject> transferMap = (Map)transferDyns.stream().collect(Collectors.toMap((obj) -> {
-            return obj.getLong("id");
-        }, (obj) -> {
-            return obj;
-        }, (k1, k2) -> {
-            return k1;
-        }));
-        List<Long> transferIDs = transferMap.keySet().stream().collect(Collectors.toList());
-
-        QFilter qFilter15 = new QFilter("nckd_billid", QCP.in, transferIDs);
-        List<Object> transferlistIDs = QueryServiceHelper.queryPrimaryKeys(entityName,new QFilter[]{qFilter15}, null, Integer.MAX_VALUE);
-        DynamicObject billDynType =  BusinessDataServiceHelper.newDynamicObject(entityName);
-        DynamicObject[] billDyns1 = BusinessDataServiceHelper.load(transferlistIDs.toArray(),billDynType.getDynamicObjectType());
-
-        int transferCount = 0;
-        Map<Long, DynamicObject> billMap1 =
-                Arrays.stream(billDyns1)
-                        .collect(Collectors.toMap(
-                                detail -> detail.getLong("nckd_billid"),
-                                detail -> detail, // 整个 DynamicObject 作为 value
-                                (existing, replacement) -> existing // 保留前面的值
-                        ));
-
-        Map<Long, DynamicObject> adjRecordMap = getAdjRecordInfo(transferDyns);
-
-        for(DynamicObject transferDyn: transferDyns){
-            DynamicObject billDyn2 = billMap1.get(transferDyn.getLong("id"));
-            if(billDyn2 != null) continue;
-            DynamicObject dyn = BusinessDataServiceHelper.newDynamicObject(entityName);
-            Long employeeID = transferDyn.getLong("bb_em_tid");
-            dyn.set("billno", transferDyn.getString("billno"));
-            dyn.set("nckd_billid", transferDyn.getLong("id"));
-            dyn.set("nckd_billtype", "调动单");
-            dyn.set("billstatus", "A");  ///待处理
-            dyn.set("nckd_employeefield", employeeID);
-            dyn.set("nckd_changedate", transferDyn.getDate("b_effectivedate"));
-            dyn.set("nckd_salaryadjus", salaryTypeDyns.get(1).getLong("id"));  //定调薪类型
-            /**
-             * 调动前
-             */
-            dyn.set("nckd_oldhradminorg", transferDyn.getLong("bb_po_adminorg.id"));  //部门
-            dyn.set("nckd_oldposition", transferDyn.getLong("bb_po_position.id"));  //岗位
-            dyn.set("nckd_oldjobseqhr", transferDyn.getLong("bb_po_job.jobseq.id"));  //职位序列
-            DynamicObject adjRecordDyn  = adjRecordMap.get(employeeID);
-            if(adjRecordDyn != null) {
-                dyn.set("nckd_oldsalaryrank", adjRecordDyn.getLong("salaryrank.id"));  //薪档
-            }
-            /**
-             * 调动后
-             */
-            dyn.set("nckd_newhradminorg", transferDyn.getLong("aorg.id"));  //部门
-            dyn.set("nckd_newposition", transferDyn.getLong("aposition.id"));  //岗位
-            dyn.set("nckd_newjobseqhr", transferDyn.getLong("ajob.jobseq.id"));  //职位序列
-            dyn.set("nckd_newsalaryrank", salaryRankDyn.getLong("id"));   //薪档
-            transferCount++;
-            billDynList.add(dyn);
-        }
-
-        int length = 0;
-        if(billDynList.size() != 0) {
-            //保存
-            Object[] update = SaveServiceHelper.save(billDynList.toArray(new DynamicObject[0]));
-            length = update.length;
-            this.getView().showSuccessNotification("成功导入,"+length+"条数据,其中入职单"+onhasonbrdCount+"条,调动单"+transferCount+"条",4000); // 成功类型
-        }
-
-    }
-
-    /**
-     * 获取调薪记录
-     * @param transferDyns   通过调动单查询出人员ID
-     * @return
-     */
-    public Map<Long, DynamicObject> getAdjRecordInfo(DynamicObjectCollection transferDyns) {
-        Map<Long, DynamicObject> transferMap = (Map)transferDyns.stream().collect(Collectors.toMap((obj) -> {
-            return obj.getLong("bb_em_tid");
-        }, (obj) -> {
-            return obj;
-        }, (k1, k2) -> {
-            return k1;
-        }));
-
-        List<Long> personIDs = transferMap.keySet().stream().collect(Collectors.toList());
-
-        String selectField = "id,adjfile.employee.id,adjfile.datastatus,adjfile.iscurrentversion,employee.id,salaryrank.id";
-        QFilter qFilter1 = new QFilter("adjfile.employee.id", QCP.in, personIDs);
-        QFilter qFilter2 = new QFilter("adjfile.datastatus", QCP.equals, "1");
-        QFilter qFilter3 = new QFilter("adjfile.iscurrentversion", QCP.equals, "1");
-        QFilter qFilter4= new QFilter("salaryrank.id", QCP.equals, standardItemDyn.getLong("id"));
-        QFilter qFilter5= new QFilter("iscurrentdata", QCP.equals, "1");
-
-        DynamicObjectCollection adjDyns = QueryServiceHelper.query(adjrecordEntityName, selectField,new QFilter[]{qFilter1,qFilter2,qFilter3,qFilter4,qFilter5});
-
-
-        Map<Long, DynamicObject> adjRecordMap = (Map)adjDyns.stream().collect(Collectors.toMap((obj) -> {
-            return obj.getLong("employee.id");
-        }, (obj) -> {
-            return obj;
-        }, (k1, k2) -> {
-            return k1;
-        }));
-
-        return adjRecordMap;
+        SynPendingSalaryAdjDataServiceImpl service = new SynPendingSalaryAdjDataServiceImpl();
+        String msg  = service.SynPendingSalaryAdjDataForPersonTransfer();
+        this.getView().showTipNotification(msg,4000); // 成功类型
     }
 }

+ 29 - 0
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/init/plugin/other/PendingSalaryAdjTask.java

@@ -0,0 +1,29 @@
+package nckd.jxccl.swc.init.plugin.other;
+
+import kd.bos.context.RequestContext;
+import kd.bos.exception.KDException;
+import kd.bos.logging.Log;
+import kd.bos.logging.LogFactory;
+import kd.bos.schedule.executor.AbstractTask;
+import kd.sdk.plugin.Plugin;
+import nckd.jxccl.swc.init.business.SynPendingSalaryAdjDataServiceImpl;
+
+import java.util.Map;
+
+/**
+ * 人事那边做完调动后,判断调动后岗位的【薪酬标准方案】为“江铜集团岗位绩效工资制”的,更新定调薪人员名单列表
+ * 单据包含入职单,调动单,自动更新员工待定调薪清单
+ * author: turborao
+ * date: 2025/11/20 16:05
+ */
+public class PendingSalaryAdjTask extends AbstractTask implements Plugin {
+    private static final Log logger = LogFactory.getLog(PendingSalaryAdjTask.class);
+
+    @Override
+    public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
+        SynPendingSalaryAdjDataServiceImpl service = new SynPendingSalaryAdjDataServiceImpl();
+        String msg  = service.SynPendingSalaryAdjDataForPersonTransfer();
+
+        logger.info("员工待定调薪清单生成任务,信息:" + msg);
+    }
+}