|
|
@@ -6,7 +6,6 @@ import kd.bos.dataentity.entity.DynamicObject;
|
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
import kd.bos.dataentity.metadata.IDataEntityProperty;
|
|
|
import kd.bos.dataentity.metadata.clr.DataEntityPropertyCollection;
|
|
|
-import kd.bos.entity.property.BigIntProp;
|
|
|
import kd.bos.logging.Log;
|
|
|
import kd.bos.logging.LogFactory;
|
|
|
import kd.bos.orm.query.QCP;
|
|
|
@@ -81,7 +80,7 @@ public class PositionBillSaveHelper {
|
|
|
}
|
|
|
|
|
|
resetSequence(needSaveEntryDynList);
|
|
|
- setPositionBoId(needSaveEntryDynList, positionId2BasicInfoDynMap);
|
|
|
+ setAdminOrgBoId(needSaveEntryDynList, positionId2BasicInfoDynMap);
|
|
|
if (needSaveEntryDynList.isEmpty()) {
|
|
|
logger.info("needSaveEntryDynList is empty");
|
|
|
} else {
|
|
|
@@ -165,11 +164,11 @@ public class PositionBillSaveHelper {
|
|
|
return positionIdList;
|
|
|
}
|
|
|
|
|
|
- private void setPositionBoId(List<DynamicObject> needSaveEntryDynList, Map<Long, DynamicObject> positionId2BasicInfoDynMap) {
|
|
|
+ private void setAdminOrgBoId(List<DynamicObject> needSaveEntryDynList, Map<Long, DynamicObject> positionId2BasicInfoDynMap) {
|
|
|
needSaveEntryDynList.forEach((entryDyn) -> {
|
|
|
long positionId = entryDyn.getLong(String.join(".", PositionBillConstant.NCKD_POSITION_KEY, PositionBillConstant.ID_KEY));
|
|
|
DynamicObject basicInfoDyn = positionId2BasicInfoDynMap.get(positionId);
|
|
|
- entryDyn.set(PositionBillConstant.NCKD_POSITIONBOID_KEY, basicInfoDyn.getLong(PositionBillConstant.BOID_KEY));
|
|
|
+ entryDyn.set(PositionBillConstant.NCKD_ADMINORGBOID_KEY, basicInfoDyn.getDynamicObject(PositionBillConstant.ADMINORG).getLong(PositionBillConstant.BOID_KEY));
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -181,11 +180,6 @@ public class PositionBillSaveHelper {
|
|
|
|
|
|
for(IDataEntityProperty property : entryEntity.getDataEntityType().getProperties()) {
|
|
|
String propName = property.getName();
|
|
|
- // 如果岗位是长整数则不能覆盖从数据库中拿到的对象,否则后续获取岗位对象的时候就会类型转换异常
|
|
|
- if (property instanceof BigIntProp && HRStringUtils.equals(String.join("_", PositionBillConstant.NCKD_POSITION_KEY, suffix), propName)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
if (PatternUtil.isExProperty(propName) && propName.endsWith("_"+suffix)) {
|
|
|
String propNameSub = PositionBillServiceHelper.getNoLineSuffixProp(propName, "_"+suffix);
|
|
|
propNameSub = posBillEntryTransKeyMap.getOrDefault(propNameSub, propNameSub);
|
|
|
@@ -198,7 +192,10 @@ public class PositionBillSaveHelper {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- positionBillEntryDyn.set(propNameSub, newVal);
|
|
|
+ // 类型相同的情况下才覆盖值,避免后续获取值的时候类型转换异常
|
|
|
+ if (prop != null && property.getPropertyType() == prop.getPropertyType()) {
|
|
|
+ positionBillEntryDyn.set(propNameSub, newVal);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
positionBillEntryDyn.set(PositionBillConstant.ID_KEY, entryEntity.get(PositionBillConstant.ID_KEY));
|