|
|
@@ -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("没有导入数据");
|
|
|
}
|