|
@@ -12,8 +12,11 @@ import kd.bos.entity.operate.result.IOperateInfo;
|
|
|
import kd.bos.entity.operate.result.OperationResult;
|
|
import kd.bos.entity.operate.result.OperationResult;
|
|
|
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
|
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
|
|
import kd.bos.entity.plugin.AddValidatorsEventArgs;
|
|
import kd.bos.entity.plugin.AddValidatorsEventArgs;
|
|
|
|
|
+import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
|
|
import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
|
|
import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
|
|
|
import kd.bos.entity.validate.AbstractValidator;
|
|
import kd.bos.entity.validate.AbstractValidator;
|
|
|
|
|
+import kd.bos.logging.Log;
|
|
|
|
|
+import kd.bos.logging.LogFactory;
|
|
|
import kd.bos.orm.query.QCP;
|
|
import kd.bos.orm.query.QCP;
|
|
|
import kd.bos.orm.query.QFilter;
|
|
import kd.bos.orm.query.QFilter;
|
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
@@ -51,6 +54,13 @@ import java.util.stream.Collectors;
|
|
|
*/
|
|
*/
|
|
|
public class IntJobPostAuditedOpPlugin extends AbstractOperationServicePlugIn implements Plugin {
|
|
public class IntJobPostAuditedOpPlugin extends AbstractOperationServicePlugIn implements Plugin {
|
|
|
|
|
|
|
|
|
|
+ private static final Log logger = LogFactory.getLog(IntJobPostAuditedOpPlugin.class);
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void onPreparePropertys(PreparePropertysEventArgs e) {
|
|
|
|
|
+ e.getFieldKeys().addAll(billEntityType.getAllFields().keySet());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public void onAddValidators(AddValidatorsEventArgs e) {
|
|
public void onAddValidators(AddValidatorsEventArgs e) {
|
|
|
e.addValidator(new AbstractValidator(){
|
|
e.addValidator(new AbstractValidator(){
|
|
@@ -59,22 +69,29 @@ public class IntJobPostAuditedOpPlugin extends AbstractOperationServicePlugIn im
|
|
|
List<Long> personIds = new ArrayList<>();
|
|
List<Long> personIds = new ArrayList<>();
|
|
|
for (ExtendedDataEntity rowDataEntity : getDataEntities()) {
|
|
for (ExtendedDataEntity rowDataEntity : getDataEntities()) {
|
|
|
DynamicObject data = rowDataEntity.getDataEntity();
|
|
DynamicObject data = rowDataEntity.getDataEntity();
|
|
|
- DynamicObject person = data.getDynamicObject(PositionStructureConstant.NCKD_PERSON);
|
|
|
|
|
- if(person == null){
|
|
|
|
|
- this.addFatalErrorMessage(rowDataEntity,"请选择人员");
|
|
|
|
|
- }else{
|
|
|
|
|
- long personId = person.getLong(FormConstant.ID_KEY);
|
|
|
|
|
- personIds.add(personId);
|
|
|
|
|
|
|
+ DynamicObjectCollection entryEntity = data.getDynamicObjectCollection(FormConstant.NCKD_ENTRYENTITY);
|
|
|
|
|
+ for (DynamicObject entry : entryEntity) {
|
|
|
|
|
+ DynamicObject person = entry.getDynamicObject(PositionStructureConstant.NCKD_PERSON);
|
|
|
|
|
+ if(person == null){
|
|
|
|
|
+ this.addFatalErrorMessage(rowDataEntity,"请选择人员");
|
|
|
|
|
+ }else{
|
|
|
|
|
+ long personId = person.getLong(FormConstant.ID_KEY);
|
|
|
|
|
+ personIds.add(personId);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
Map<Long, DynamicObject> empPosOrgRelMap = EmpPosOrgRelHelper.queryEmpPosOrgRelByEmployeesMap(personIds);
|
|
Map<Long, DynamicObject> empPosOrgRelMap = EmpPosOrgRelHelper.queryEmpPosOrgRelByEmployeesMap(personIds);
|
|
|
for (ExtendedDataEntity rowDataEntity : getDataEntities()) {
|
|
for (ExtendedDataEntity rowDataEntity : getDataEntities()) {
|
|
|
DynamicObject data = rowDataEntity.getDataEntity();
|
|
DynamicObject data = rowDataEntity.getDataEntity();
|
|
|
- DynamicObject person = data.getDynamicObject(PositionStructureConstant.NCKD_PERSON);
|
|
|
|
|
- if(person != null){
|
|
|
|
|
- long personId = person.getLong(FormConstant.ID_KEY);
|
|
|
|
|
- if(empPosOrgRelMap.get(personId) == null){
|
|
|
|
|
- this.addFatalErrorMessage(rowDataEntity,StrFormatter.format("人员【{}】没有在岗状态的任职经历",person.getString(FormConstant.NAME_KEY)));
|
|
|
|
|
|
|
+ DynamicObjectCollection entryEntity = data.getDynamicObjectCollection(FormConstant.NCKD_ENTRYENTITY);
|
|
|
|
|
+ for (DynamicObject entry : entryEntity) {
|
|
|
|
|
+ DynamicObject person = entry.getDynamicObject(PositionStructureConstant.NCKD_PERSON);
|
|
|
|
|
+ if (person != null) {
|
|
|
|
|
+ long personId = person.getLong(FormConstant.ID_KEY);
|
|
|
|
|
+ if (empPosOrgRelMap.get(personId) == null) {
|
|
|
|
|
+ this.addFatalErrorMessage(rowDataEntity, StrFormatter.format("人员【{}】没有在岗状态的任职经历", person.getString(FormConstant.NAME_KEY)));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -85,19 +102,23 @@ public class IntJobPostAuditedOpPlugin extends AbstractOperationServicePlugIn im
|
|
|
@Override
|
|
@Override
|
|
|
public void beginOperationTransaction(BeginOperationTransactionArgs e) {
|
|
public void beginOperationTransaction(BeginOperationTransactionArgs e) {
|
|
|
|
|
|
|
|
|
|
+ logger.info("开始执行内部人力资源市场审批通过操作");
|
|
|
List<Long> personIds = new ArrayList<>();
|
|
List<Long> personIds = new ArrayList<>();
|
|
|
List<Long> entityIds = new ArrayList<>();
|
|
List<Long> entityIds = new ArrayList<>();
|
|
|
for (DynamicObject dataEntity : e.getDataEntities()) {
|
|
for (DynamicObject dataEntity : e.getDataEntities()) {
|
|
|
DynamicObjectCollection entryEntity = dataEntity.getDynamicObjectCollection(FormConstant.NCKD_ENTRYENTITY);
|
|
DynamicObjectCollection entryEntity = dataEntity.getDynamicObjectCollection(FormConstant.NCKD_ENTRYENTITY);
|
|
|
for (DynamicObject entry : entryEntity) {
|
|
for (DynamicObject entry : entryEntity) {
|
|
|
|
|
+ DynamicObject person = entry.getDynamicObject(PositionStructureConstant.NCKD_PERSON);
|
|
|
boolean isEnter = entry.getBoolean(IntJobPostConstant.NCKD_ISENTER);
|
|
boolean isEnter = entry.getBoolean(IntJobPostConstant.NCKD_ISENTER);
|
|
|
if(isEnter){
|
|
if(isEnter){
|
|
|
- personIds.add(entry.getLong(IntJobPostConstant.NCKD_PERSON));
|
|
|
|
|
|
|
+ personIds.add(person.getLong(IntJobPostConstant.ID_KEY));
|
|
|
}
|
|
}
|
|
|
entityIds.add(entry.getLong(IntJobPostConstant.ID_KEY));
|
|
entityIds.add(entry.getLong(IntJobPostConstant.ID_KEY));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ logger.info("需要处理的人员ID数量: {}, 分录ID数量: {}", personIds.size(), entityIds.size());
|
|
|
Map<Long, DynamicObject> empPosOrgRelMap = EmpPosOrgRelHelper.queryEmpPosOrgRelByEmployeesMap(personIds);
|
|
Map<Long, DynamicObject> empPosOrgRelMap = EmpPosOrgRelHelper.queryEmpPosOrgRelByEmployeesMap(personIds);
|
|
|
|
|
+ logger.info("获取到的员工岗位组织关系数量: {}", empPosOrgRelMap.size());
|
|
|
|
|
|
|
|
// --- A. 处理旧记录 ---
|
|
// --- A. 处理旧记录 ---
|
|
|
// 1. 查询该员工最近的一条记录(排除当前单据产生的记录,按创建时间倒序取第一条)
|
|
// 1. 查询该员工最近的一条记录(排除当前单据产生的记录,按创建时间倒序取第一条)
|
|
@@ -106,19 +127,25 @@ public class IntJobPostAuditedOpPlugin extends AbstractOperationServicePlugIn im
|
|
|
//由于轨迹需要关联本次新增的记录,需要等记录保存成功后再set内部人力资源市场记录。 以分录id作为key,记录待新增的轨迹。
|
|
//由于轨迹需要关联本次新增的记录,需要等记录保存成功后再set内部人力资源市场记录。 以分录id作为key,记录待新增的轨迹。
|
|
|
Map<Long, DynamicObject> savedLocusMap = new HashMap<>();
|
|
Map<Long, DynamicObject> savedLocusMap = new HashMap<>();
|
|
|
List<DynamicObject> savedLocus = new ArrayList<>();
|
|
List<DynamicObject> savedLocus = new ArrayList<>();
|
|
|
|
|
+ logger.info("开始查询人员最新记录");
|
|
|
Map<Long, DynamicObject> latestRecordMap = getLatestRecordIdsByPersons(personIds, entityIds);
|
|
Map<Long, DynamicObject> latestRecordMap = getLatestRecordIdsByPersons(personIds, entityIds);
|
|
|
|
|
+ logger.info("获取到人员最新记录数量: {}", latestRecordMap.size());
|
|
|
|
|
+
|
|
|
|
|
+ logger.info("开始查询人员最新轨迹");
|
|
|
Map<Long, DynamicObject> latestLocusMap = findLatestLocusByPerson(personIds);
|
|
Map<Long, DynamicObject> latestLocusMap = findLatestLocusByPerson(personIds);
|
|
|
|
|
+ logger.info("获取到人员最新轨迹数量: {}", latestLocusMap.size());
|
|
|
for (DynamicObject dataEntity : e.getDataEntities()) {
|
|
for (DynamicObject dataEntity : e.getDataEntities()) {
|
|
|
Date auditDate = dataEntity.getDate(IntJobPostConstant.AUDIT_DATE_KEY);
|
|
Date auditDate = dataEntity.getDate(IntJobPostConstant.AUDIT_DATE_KEY);
|
|
|
- long personId = dataEntity.getLong(String.join(".", IntJobPostConstant.NCKD_PERSON, IntJobPostConstant.ID_KEY));
|
|
|
|
|
String talentType = dataEntity.getString(IntJobPostConstant.NCKD_TALENTTYPE);
|
|
String talentType = dataEntity.getString(IntJobPostConstant.NCKD_TALENTTYPE);
|
|
|
TalentTypeEnum talentTypeEnum = TalentTypeEnum.getByCode(talentType);
|
|
TalentTypeEnum talentTypeEnum = TalentTypeEnum.getByCode(talentType);
|
|
|
DynamicObjectCollection entryEntity = dataEntity.getDynamicObjectCollection(FormConstant.NCKD_ENTRYENTITY);
|
|
DynamicObjectCollection entryEntity = dataEntity.getDynamicObjectCollection(FormConstant.NCKD_ENTRYENTITY);
|
|
|
-
|
|
|
|
|
for (DynamicObject entry : entryEntity) {
|
|
for (DynamicObject entry : entryEntity) {
|
|
|
long id = entry.getLong(IntJobPostConstant.ID_KEY);
|
|
long id = entry.getLong(IntJobPostConstant.ID_KEY);
|
|
|
boolean isEnter = entry.getBoolean(IntJobPostConstant.NCKD_ISENTER);
|
|
boolean isEnter = entry.getBoolean(IntJobPostConstant.NCKD_ISENTER);
|
|
|
|
|
+ long personId = entry.getLong(String.join(".", IntJobPostConstant.NCKD_PERSON, IntJobPostConstant.ID_KEY));
|
|
|
|
|
+ String name = entry.getString(String.join(".", IntJobPostConstant.NCKD_PERSON, IntJobPostConstant.NAME_KEY));
|
|
|
if(isEnter){
|
|
if(isEnter){
|
|
|
|
|
+ logger.info("处理进入市场的人员: {}, 人员ID: {}", name, personId);
|
|
|
DynamicObject latestRecord = latestRecordMap.get(personId);
|
|
DynamicObject latestRecord = latestRecordMap.get(personId);
|
|
|
if(latestRecord != null) {
|
|
if(latestRecord != null) {
|
|
|
// 2. 备份旧值
|
|
// 2. 备份旧值
|
|
@@ -131,12 +158,13 @@ public class IntJobPostAuditedOpPlugin extends AbstractOperationServicePlugIn im
|
|
|
latestRecord.set(IntJobPostConstant.NCKD_ISCURRENTNEWEST, Boolean.FALSE);
|
|
latestRecord.set(IntJobPostConstant.NCKD_ISCURRENTNEWEST, Boolean.FALSE);
|
|
|
latestRecord.set(IntJobPostConstant.NCKD_BACKUP, StrFormatter.format("以【{}】身份新进入市场,退出原市场。",talentTypeEnum.getName()));
|
|
latestRecord.set(IntJobPostConstant.NCKD_BACKUP, StrFormatter.format("以【{}】身份新进入市场,退出原市场。",talentTypeEnum.getName()));
|
|
|
savedRecords.add(latestRecord);
|
|
savedRecords.add(latestRecord);
|
|
|
|
|
+ logger.info("已添加旧记录至更新列表,人员: {}, 旧状态: 1(在市场中) -> 新状态: 4(退出市场)",name);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// --- B. 插入新记录 ---
|
|
// --- B. 插入新记录 ---
|
|
|
DynamicObject newRecord = EntityHelper.newEntity(IntJobPostConstant.INTJOBPOSTRECORD_ENTITYID);
|
|
DynamicObject newRecord = EntityHelper.newEntity(IntJobPostConstant.INTJOBPOSTRECORD_ENTITYID);
|
|
|
DynamicObject empPosOrgRel = empPosOrgRelMap.get(personId);
|
|
DynamicObject empPosOrgRel = empPosOrgRelMap.get(personId);
|
|
|
- newRecord.set(IntJobPostConstant.HRPI_EMPPOSORGREL, empPosOrgRel);
|
|
|
|
|
|
|
+ newRecord.set(IntJobPostConstant.NCKD_EMPPOSORGREL, empPosOrgRel);
|
|
|
newRecord.set(IntJobPostConstant.NCKD_ADMINORG,empPosOrgRel.get(IntJobPostConstant.ADMINORG));
|
|
newRecord.set(IntJobPostConstant.NCKD_ADMINORG,empPosOrgRel.get(IntJobPostConstant.ADMINORG));
|
|
|
newRecord.set(IntJobPostConstant.NCKD_ISCURRENTNEWEST, Boolean.TRUE);
|
|
newRecord.set(IntJobPostConstant.NCKD_ISCURRENTNEWEST, Boolean.TRUE);
|
|
|
//初始状态:进入市场
|
|
//初始状态:进入市场
|
|
@@ -145,7 +173,7 @@ public class IntJobPostAuditedOpPlugin extends AbstractOperationServicePlugIn im
|
|
|
newRecord.set(IntJobPostConstant.NCKD_BEGINDATE,dataEntity.get(IntJobPostConstant.NCKD_BIZDAY));
|
|
newRecord.set(IntJobPostConstant.NCKD_BEGINDATE,dataEntity.get(IntJobPostConstant.NCKD_BIZDAY));
|
|
|
newRecord.set(IntJobPostConstant.NCKD_YEAR,dataEntity.get(IntJobPostConstant.NCKD_YEAR));
|
|
newRecord.set(IntJobPostConstant.NCKD_YEAR,dataEntity.get(IntJobPostConstant.NCKD_YEAR));
|
|
|
//分录
|
|
//分录
|
|
|
- newRecord.set(IntJobPostConstant.NCKD_INTJOBPOSTENTRY,latestRecord);
|
|
|
|
|
|
|
+ newRecord.set(IntJobPostConstant.NCKD_INTJOBPOSTENTRY, entry);
|
|
|
newRecord.set(IntJobPostConstant.NCKD_APPRAISALRESULT,entry.get(IntJobPostConstant.NCKD_APPRAISALRESULT));
|
|
newRecord.set(IntJobPostConstant.NCKD_APPRAISALRESULT,entry.get(IntJobPostConstant.NCKD_APPRAISALRESULT));
|
|
|
newRecord.set(IntJobPostConstant.NCKD_BEFORELAST,entry.get(IntJobPostConstant.NCKD_BEFORELAST));
|
|
newRecord.set(IntJobPostConstant.NCKD_BEFORELAST,entry.get(IntJobPostConstant.NCKD_BEFORELAST));
|
|
|
newRecord.set(FormConstant.CREATOR_KEY,currUserId);
|
|
newRecord.set(FormConstant.CREATOR_KEY,currUserId);
|
|
@@ -153,8 +181,10 @@ public class IntJobPostAuditedOpPlugin extends AbstractOperationServicePlugIn im
|
|
|
//优秀员工-预计退出时间
|
|
//优秀员工-预计退出时间
|
|
|
Date date = DateUtil.addYears(auditDate, 1);
|
|
Date date = DateUtil.addYears(auditDate, 1);
|
|
|
newRecord.set(IntJobPostConstant.NCKD_PREDICTTOFOURDATE, date);
|
|
newRecord.set(IntJobPostConstant.NCKD_PREDICTTOFOURDATE, date);
|
|
|
|
|
+ logger.info("A类人才,设置预计退出时间为: {}", date);
|
|
|
}
|
|
}
|
|
|
savedRecords.add(newRecord);
|
|
savedRecords.add(newRecord);
|
|
|
|
|
+ logger.info("已添加新记录至保存列表,人员: {}, 状态: 1(进入市场)", name);
|
|
|
|
|
|
|
|
// --- C. 处理轨迹 (Locus) ---
|
|
// --- C. 处理轨迹 (Locus) ---
|
|
|
// 1. 查询最近的轨迹
|
|
// 1. 查询最近的轨迹
|
|
@@ -167,7 +197,7 @@ public class IntJobPostAuditedOpPlugin extends AbstractOperationServicePlugIn im
|
|
|
}
|
|
}
|
|
|
// 2. 插入新轨迹
|
|
// 2. 插入新轨迹
|
|
|
DynamicObject newLocus = EntityHelper.newEntity(IntJobPostConstant.INTJOBPOSTLOCUS_ENTITYID);
|
|
DynamicObject newLocus = EntityHelper.newEntity(IntJobPostConstant.INTJOBPOSTLOCUS_ENTITYID);
|
|
|
- newLocus.set(IntJobPostConstant.HRPI_EMPPOSORGREL, empPosOrgRel);
|
|
|
|
|
|
|
+ newLocus.set(IntJobPostConstant.NCKD_EMPPOSORGREL, empPosOrgRel);
|
|
|
newLocus.set(IntJobPostConstant.NCKD_ADMINORG,empPosOrgRel.get(IntJobPostConstant.ADMINORG));
|
|
newLocus.set(IntJobPostConstant.NCKD_ADMINORG,empPosOrgRel.get(IntJobPostConstant.ADMINORG));
|
|
|
newLocus.set(IntJobPostConstant.NCKD_ISCURRENTNEWEST, Boolean.TRUE);
|
|
newLocus.set(IntJobPostConstant.NCKD_ISCURRENTNEWEST, Boolean.TRUE);
|
|
|
newLocus.set(IntJobPostConstant.NCKD_INTJOBPOSTRECORD, newRecord);
|
|
newLocus.set(IntJobPostConstant.NCKD_INTJOBPOSTRECORD, newRecord);
|
|
@@ -176,15 +206,21 @@ public class IntJobPostAuditedOpPlugin extends AbstractOperationServicePlugIn im
|
|
|
newLocus.set(IntJobPostConstant.NCKD_STATE, "1");
|
|
newLocus.set(IntJobPostConstant.NCKD_STATE, "1");
|
|
|
newLocus.set(FormConstant.CREATOR_KEY,currUserId);
|
|
newLocus.set(FormConstant.CREATOR_KEY,currUserId);
|
|
|
savedLocusMap.put(id, newLocus);
|
|
savedLocusMap.put(id, newLocus);
|
|
|
|
|
+ logger.info("已添加新轨迹至保存映射,分录ID: {}, 人员: {}", id, name);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ logger.info("准备保存记录总数: {}, 轨迹总数: {}", savedRecords.size(), savedLocusMap.size());
|
|
|
|
|
+
|
|
|
if(!savedRecords.isEmpty()){
|
|
if(!savedRecords.isEmpty()){
|
|
|
|
|
+ logger.info("开始保存内部人力资源市场记录,记录数量: {}", savedRecords.size());
|
|
|
//保存记录
|
|
//保存记录
|
|
|
OperationResult operationResult = SaveServiceHelper.saveOperate(IntJobPostConstant.INTJOBPOSTRECORD_ENTITYID, savedRecords.toArray(new DynamicObject[0]), OperateOption.create());
|
|
OperationResult operationResult = SaveServiceHelper.saveOperate(IntJobPostConstant.INTJOBPOSTRECORD_ENTITYID, savedRecords.toArray(new DynamicObject[0]), OperateOption.create());
|
|
|
if(operationResult.isSuccess()){
|
|
if(operationResult.isSuccess()){
|
|
|
|
|
+ logger.info("内部人力资源市场记录保存成功");
|
|
|
//新增实体
|
|
//新增实体
|
|
|
savedLocus.addAll(savedLocusMap.values());
|
|
savedLocus.addAll(savedLocusMap.values());
|
|
|
|
|
+ logger.info("准备保存轨迹记录,数量: {}", savedLocus.size());
|
|
|
OperationResult locusOperationResult = SaveServiceHelper.saveOperate(IntJobPostConstant.INTJOBPOSTLOCUS_ENTITYID, savedLocus.toArray(new DynamicObject[0]), OperateOption.create());
|
|
OperationResult locusOperationResult = SaveServiceHelper.saveOperate(IntJobPostConstant.INTJOBPOSTLOCUS_ENTITYID, savedLocus.toArray(new DynamicObject[0]), OperateOption.create());
|
|
|
if(!locusOperationResult.isSuccess()){
|
|
if(!locusOperationResult.isSuccess()){
|
|
|
StringJoiner errorMsg = new StringJoiner("\n");
|
|
StringJoiner errorMsg = new StringJoiner("\n");
|
|
@@ -194,8 +230,10 @@ public class IntJobPostAuditedOpPlugin extends AbstractOperationServicePlugIn im
|
|
|
if (!ObjectUtils.isEmpty(locusOperationResult.getMessage())) {
|
|
if (!ObjectUtils.isEmpty(locusOperationResult.getMessage())) {
|
|
|
errorMsg.add(locusOperationResult.getMessage());
|
|
errorMsg.add(locusOperationResult.getMessage());
|
|
|
}
|
|
}
|
|
|
|
|
+ logger.error("保存轨迹记录失败,原因:{}", errorMsg.toString());
|
|
|
throw new ValidationException("保存职位档案失败,原因:" + errorMsg.toString());
|
|
throw new ValidationException("保存职位档案失败,原因:" + errorMsg.toString());
|
|
|
}
|
|
}
|
|
|
|
|
+ logger.info("轨迹记录保存成功");
|
|
|
|
|
|
|
|
}else{
|
|
}else{
|
|
|
StringJoiner errorMsg = new StringJoiner("\n");
|
|
StringJoiner errorMsg = new StringJoiner("\n");
|
|
@@ -205,6 +243,7 @@ public class IntJobPostAuditedOpPlugin extends AbstractOperationServicePlugIn im
|
|
|
if (!ObjectUtils.isEmpty(operationResult.getMessage())) {
|
|
if (!ObjectUtils.isEmpty(operationResult.getMessage())) {
|
|
|
errorMsg.add(operationResult.getMessage());
|
|
errorMsg.add(operationResult.getMessage());
|
|
|
}
|
|
}
|
|
|
|
|
+ logger.error("保存内部人力资源市场记录失败,原因:{}", errorMsg.toString());
|
|
|
throw new ValidationException("保存职位档案失败,原因:" + errorMsg.toString());
|
|
throw new ValidationException("保存职位档案失败,原因:" + errorMsg.toString());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|