|
@@ -1,6 +1,7 @@
|
|
|
package nckd.jxccl.hrmp.hbpm.business.hr.service.impl;
|
|
package nckd.jxccl.hrmp.hbpm.business.hr.service.impl;
|
|
|
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
import com.google.common.collect.Lists;
|
|
|
|
|
+import com.google.common.collect.Maps;
|
|
|
import com.google.common.collect.Sets;
|
|
import com.google.common.collect.Sets;
|
|
|
import kd.bos.common.enums.EnableEnum;
|
|
import kd.bos.common.enums.EnableEnum;
|
|
|
import kd.bos.dataentity.OperateOption;
|
|
import kd.bos.dataentity.OperateOption;
|
|
@@ -52,8 +53,8 @@ public class PositionBillEffectService {
|
|
|
long billId = bill.getLong(PositionBillConstant.ID_KEY);
|
|
long billId = bill.getLong(PositionBillConstant.ID_KEY);
|
|
|
Map<String, List<DynamicObject>> billEntryPositionDyMap = getBillEntryPositionDyMap(billId);
|
|
Map<String, List<DynamicObject>> billEntryPositionDyMap = getBillEntryPositionDyMap(billId);
|
|
|
Map<Long, DynamicObject> positionBoIdMap = getAllCurrentVersionParentDyMap(billEntryPositionDyMap);
|
|
Map<Long, DynamicObject> positionBoIdMap = getAllCurrentVersionParentDyMap(billEntryPositionDyMap);
|
|
|
- newAddPositionEffect(billEntryPositionDyMap.get(PositionChangeTypeEnum.ADD.getName()), billId, effDate);
|
|
|
|
|
- confirmChangePositionEffect(billEntryPositionDyMap.get(PositionChangeTypeEnum.CHANGE.getName()), positionBoIdMap, billId, effDate);
|
|
|
|
|
|
|
+ newAddPositionEffect(billEntryPositionDyMap.get(PositionChangeTypeEnum.ADD.getNumber()), billId, effDate);
|
|
|
|
|
+ confirmChangePositionEffect(billEntryPositionDyMap.get(PositionChangeTypeEnum.CHANGE.getNumber()), positionBoIdMap, billId, effDate);
|
|
|
auditBill(billId);
|
|
auditBill(billId);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -64,6 +65,19 @@ public class PositionBillEffectService {
|
|
|
List<DynamicObject> confirmChangePositionDys = Lists.newArrayListWithExpectedSize(confirmChangePositionEntity.size());
|
|
List<DynamicObject> confirmChangePositionDys = Lists.newArrayListWithExpectedSize(confirmChangePositionEntity.size());
|
|
|
HisModelCopyUtil hisModelCopyUtil = new HisModelCopyUtil();
|
|
HisModelCopyUtil hisModelCopyUtil = new HisModelCopyUtil();
|
|
|
|
|
|
|
|
|
|
+ // 获取 行政组织业务ID
|
|
|
|
|
+ List<Long> adminorgBoIds = Lists.newArrayListWithExpectedSize(confirmChangePositionEntity.size());
|
|
|
|
|
+ for (DynamicObject confirmChangePosition : confirmChangePositionEntity) {
|
|
|
|
|
+ adminorgBoIds.add(confirmChangePosition.getLong(PositionBillConstant.NCKD_ADMINORGBOID_KEY));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 根据组织BOID从数据库中获取组织信息
|
|
|
|
|
+ DynamicObject[] adminOrgDyos = HRBaseServiceHelper.create(PositionBillConstant.ADMINORG_ENTITYID).loadDynamicObjectArray(new QFilter[]{new QFilter(PositionBillConstant.ID_KEY, QCP.in, adminorgBoIds)});
|
|
|
|
|
+ Map<Long, DynamicObject> dbAdminOrgMap = Maps.newHashMapWithExpectedSize(adminOrgDyos.length);
|
|
|
|
|
+ for (DynamicObject adminOrgDyo : adminOrgDyos) {
|
|
|
|
|
+ dbAdminOrgMap.put(adminOrgDyo.getLong(PositionBillConstant.BOID_KEY), adminOrgDyo);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 获取岗位要转换的键值
|
|
// 获取岗位要转换的键值
|
|
|
Map<String, String> positionTransKeyMap = PositionBillServiceHelper.getPositionTransKeyMap();
|
|
Map<String, String> positionTransKeyMap = PositionBillServiceHelper.getPositionTransKeyMap();
|
|
|
for(DynamicObject confirmChangePosition : confirmChangePositionEntity) {
|
|
for(DynamicObject confirmChangePosition : confirmChangePositionEntity) {
|
|
@@ -73,15 +87,18 @@ public class PositionBillEffectService {
|
|
|
if (dbPositionDy != null) {
|
|
if (dbPositionDy != null) {
|
|
|
DynamicObject copyDy = hisModelCopyUtil.copyTempVersionData(dbPositionDy, positionHelper);
|
|
DynamicObject copyDy = hisModelCopyUtil.copyTempVersionData(dbPositionDy, positionHelper);
|
|
|
HRDynamicObjectUtils.copy(confirmChangePosition, copyDy, positionTransKeyMap);
|
|
HRDynamicObjectUtils.copy(confirmChangePosition, copyDy, positionTransKeyMap);
|
|
|
- DynamicObject parentOrgVersionDy = confirmChangePosition.getDynamicObject(PositionBillConstant.NCKD_PARENT);
|
|
|
|
|
- if (parentOrgVersionDy != null) {
|
|
|
|
|
- copyDy.set(PositionBillConstant.PARENT_KEY, positionBoIdMap.get(parentOrgVersionDy.getLong(PositionBillConstant.BOID_KEY)));
|
|
|
|
|
|
|
+ DynamicObject parentVersionDy = confirmChangePosition.getDynamicObject(PositionBillConstant.NCKD_PARENT);
|
|
|
|
|
+ if (parentVersionDy != null) {
|
|
|
|
|
+ copyDy.set(PositionBillConstant.PARENT_KEY, positionBoIdMap.get(parentVersionDy.getLong(PositionBillConstant.BOID_KEY)));
|
|
|
} else {
|
|
} else {
|
|
|
copyDy.set(PositionBillConstant.PARENT_KEY, null);
|
|
copyDy.set(PositionBillConstant.PARENT_KEY, null);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
copyDy.set(PositionBillConstant.BSED_KEY, effDate);
|
|
copyDy.set(PositionBillConstant.BSED_KEY, effDate);
|
|
|
copyDy.set(PositionBillConstant.ENABLE, EnableEnum.YES.getCode());
|
|
copyDy.set(PositionBillConstant.ENABLE, EnableEnum.YES.getCode());
|
|
|
|
|
+ // 设置 行政组织为业务对象
|
|
|
|
|
+ copyDy.set(PositionBillConstant.ADMINORG, dbAdminOrgMap.get(confirmChangePosition.getLong(PositionBillConstant.NCKD_ADMINORGBOID_KEY)));
|
|
|
|
|
+
|
|
|
confirmChangePositionDys.add(copyDy);
|
|
confirmChangePositionDys.add(copyDy);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -212,7 +229,7 @@ public class PositionBillEffectService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- DynamicObject[] dbPositionDys = positionHelper.loadDynamicObjectArray(new QFilter[]{new QFilter(PositionBillConstant.ID_KEY, QCP.equals, parentPositionBoIds)});
|
|
|
|
|
|
|
+ DynamicObject[] dbPositionDys = positionHelper.loadDynamicObjectArray(new QFilter[]{new QFilter(PositionBillConstant.ID_KEY, QCP.in, parentPositionBoIds)});
|
|
|
return Arrays.stream(dbPositionDys).collect(Collectors.toMap((dy) -> dy.getLong(PositionBillConstant.ID_KEY), Function.identity()));
|
|
return Arrays.stream(dbPositionDys).collect(Collectors.toMap((dy) -> dy.getLong(PositionBillConstant.ID_KEY), Function.identity()));
|
|
|
}
|
|
}
|
|
|
|
|
|