3 Commits a193122970 ... 6654d18a97

Author SHA1 Message Date
  turborao 6654d18a97 Merge remote-tracking branch 'origin/master' 2 weeks ago
  turborao 82b20146a8 Merge remote-tracking branch 'origin/master' 2 weeks ago
  turborao 8594c8d9d4 feat(swc): 新增批量调动薪资调整数据同步功能 2 weeks ago

+ 1 - 1
code/nckd-cosmic-debug/src/main/java/kd/cosmic/debug/tools/CosmicLauncher.java

@@ -43,7 +43,7 @@ public final class CosmicLauncher {
      */
     private static final String DEFAULT_COSMIT_HOME_PATH = System.getProperty("user.home").replaceAll("\\\\", "/") + "/cosmic/home";
 	
-	private static final String PROJECT_HOME = "E:/2.work/xuding/jxccl";
+	private static final String PROJECT_HOME = "D:/jxcc/workspace/jtcosmic";
 	
 	private static final String LOCAL_IP = "127.0.0.1";
 	

+ 87 - 4
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/init/business/SynPendingSalaryAdjDataServiceImpl.java

@@ -121,8 +121,8 @@ public class SynPendingSalaryAdjDataServiceImpl implements SynPendingSalaryAdjDa
 
         QFilter qFilter22 = new QFilter("nckd_billid", QCP.in, onhasonbrdIDs);
         List<Object> listIDs = QueryServiceHelper.queryPrimaryKeys(FormConstant.NCKD_PENDINGSALARYADJ,new QFilter[]{qFilter22}, null, Integer.MAX_VALUE);
-        DynamicObject billDyn =  BusinessDataServiceHelper.newDynamicObject(FormConstant.NCKD_PENDINGSALARYADJ);
-        DynamicObject[] billDyns = BusinessDataServiceHelper.load(listIDs.toArray(),billDyn.getDynamicObjectType());
+        DynamicObject billDynType =  BusinessDataServiceHelper.newDynamicObject(FormConstant.NCKD_PENDINGSALARYADJ);
+        DynamicObject[] billDyns = BusinessDataServiceHelper.load(listIDs.toArray(),billDynType.getDynamicObjectType());
 
         int onhasonbrdCount = 0;
         Map<Long, DynamicObject> billMap =
@@ -180,7 +180,6 @@ public class SynPendingSalaryAdjDataServiceImpl implements SynPendingSalaryAdjDa
 
         QFilter qFilter15 = new QFilter("nckd_billid", QCP.in, transferIDs);
         List<Object> transferlistIDs = QueryServiceHelper.queryPrimaryKeys(FormConstant.NCKD_PENDINGSALARYADJ,new QFilter[]{qFilter15}, null, Integer.MAX_VALUE);
-        DynamicObject billDynType =  BusinessDataServiceHelper.newDynamicObject(FormConstant.NCKD_PENDINGSALARYADJ);
         DynamicObject[] billDyns1 = BusinessDataServiceHelper.load(transferlistIDs.toArray(),billDynType.getDynamicObjectType());
 
         int transferCount = 0;
@@ -238,12 +237,96 @@ public class SynPendingSalaryAdjDataServiceImpl implements SynPendingSalaryAdjDa
             billDynList.add(dyn);
         }
 
+
+        /**
+         * 批量调动
+         */
+        String selectField3 = "id,billno,entryentity.b_effectivedate,createtime,entryentity.bb_em_tid as bb_em_tid,entryentity.ba_em_empnumber,entryentity.bb_po_position.boid,entryentity.aposition.boid,entryentity.bb_po_adminorg.boid,entryentity.aorg.boid,entryentity.aorg.belongcompany.id";
+        QFilter qFilter31 = new QFilter("billstatus", QCP.equals, "C");
+        QFilter qFilter32 = new QFilter("entryentity.transfereffectstatus", QCP.equals, "2");  //同步结果 =  同步成功
+        QFilter qFilter33 = new QFilter("entryentity.b_effectivedate", QCP.large_equals, daysAgo);
+        QFilter qFilter34 = new QFilter("entryentity.b_effectivedate", QCP.less_equals, currentDate);
+        QFilter qFilter35 = new QFilter("entryentity.aposition.nckd_paystdplan.name", QCP.equals, "江铜集团岗位绩效工资制");
+        DynamicObjectCollection transferBatchDyns = QueryServiceHelper.query(FormConstant.HDM_TRANSFERBATCH, selectField3,new QFilter[]{qFilter31,qFilter32,qFilter33,qFilter34,qFilter35});
+
+        Map<Long, DynamicObject> transferBatchMap = (Map)transferBatchDyns.stream().collect(Collectors.toMap((obj) -> {
+            return obj.getLong("id");
+        }, (obj) -> {
+            return obj;
+        }, (k1, k2) -> {
+            return k1;
+        }));
+        List<Long> transferBatchIDs = transferBatchMap.keySet().stream().collect(Collectors.toList());
+
+        QFilter qFilter38 = new QFilter("nckd_billid", QCP.in, transferBatchIDs);
+        List<Object> transferBatchlistIDs = QueryServiceHelper.queryPrimaryKeys(FormConstant.NCKD_PENDINGSALARYADJ,new QFilter[]{qFilter38}, null, Integer.MAX_VALUE);
+        DynamicObject[] billDyns3 = BusinessDataServiceHelper.load(transferBatchlistIDs.toArray(),billDynType.getDynamicObjectType());
+
+        int transferBatchCount = 0;
+        Map<Long, DynamicObject> billMap3 =
+                Arrays.stream(billDyns3)
+                        .collect(Collectors.toMap(
+                                detail -> detail.getLong("nckd_billid"),
+                                detail -> detail, // 整个 DynamicObject 作为 value
+                                (existing, replacement) -> existing // 保留前面的值
+                        ));
+
+        Map<Long, DynamicObject> adjRecordMap3 = getAdjRecordInfo(transferBatchDyns);
+
+        for(DynamicObject transferDyn: transferBatchDyns) {
+            DynamicObject billDyn3 = billMap3.get(transferDyn.getLong("id"));
+
+            if(billDyn3 != 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_hrorg", transferDyn.getLong("entryentity.aorg.belongcompany.id"));  //薪酬管理组织 来源  调后部门中的公司
+            dyn.set("nckd_changedate", transferDyn.getDate("entryentity.b_effectivedate"));
+            dyn.set("nckd_dodatetime", transferDyn.getDate("createtime"));
+            dyn.set("nckd_salaryadjus", salaryTypeDyns.get(1).getLong("id"));  //定调薪类型
+            /**
+             * 调动前
+             */
+            dyn.set("nckd_oldhradminorg", transferDyn.getLong("entryentity.bb_po_adminorg.boid"));  //部门
+            dyn.set("nckd_oldposition", transferDyn.getLong("entryentity.bb_po_position.boid"));  //岗位
+            DynamicObject adjRecordDyn  = adjRecordMap3.get(employeeID);
+            if(adjRecordDyn != null) {
+                dyn.set("nckd_oldsalaryrank", adjRecordDyn.getLong("salaryrank.id"));  //薪档
+            }
+            /**
+             * 调动后
+             */
+            dyn.set("nckd_newhradminorg", transferDyn.getLong("entryentity.aorg.boid"));  //部门
+            dyn.set("nckd_newposition", transferDyn.getLong("entryentity.aposition.boid"));  //岗位
+            //判断薪档是否改变
+            boolean isChange = calaSararyRank(transferDyn.getLong("entryentity.bb_po_position.boid"), transferDyn.getLong("entryentity.aposition.boid"));
+            if(isChange) {
+                dyn.set("nckd_newsalaryrank", salaryRankDyn.getLong("id"));   //薪档
+            }else{
+                if(adjRecordDyn != null) {
+                    dyn.set("nckd_newsalaryrank", adjRecordDyn.getLong("salaryrank.id"));
+                }
+            }
+
+            transferBatchCount++;
+            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+"条"); // 成功类型
+            errorInfo.append("成功导入,"+length+"条数据,其中入职单"+onhasonbrdCount+"条,调动单"+transferCount+transferBatchCount+"条"); // 成功类型
         }else{
             errorInfo.append("没有导入数据");
         }