Selaa lähdekoodia

feat(constant): 添加上级字段常量并增强职位档案保存功能

- 在FormConstant中新增PARENT_KEY常量用于上级字段标识
- 在职位审核插件中增加异常处理和错误信息收集机制
- 实现职位档案保存失败时的详细错误信息抛出功能
- 在薪资标准表单插件中添加上级字段查询支持
- 增强数据实体查询构建器以支持上级字段关联查询
wyc 4 päivää sitten
vanhempi
säilyke
006cff73c4

+ 3 - 0
code/base/nckd-jxccl-base-common/src/main/java/nckd/jxccl/base/common/constant/FormConstant.java

@@ -512,6 +512,9 @@ public class FormConstant {
     /** 上级组织 */
     public static final String PARENTORG_KEY = "parentorg";
 
+    /** 上级 */
+    public static final String PARENT_KEY = "parent";
+
     /** 变动操作 */
     public static final String AFFACTION_KEY = "affaction";
     /** 别名 */

+ 27 - 2
code/hr/nckd-jxccl-hr/src/main/java/nckd/jxccl/hr/ijp/plugin/operate/IntJobPostAuditedOpPlugin.java

@@ -4,9 +4,11 @@ import kd.bos.context.RequestContext;
 import kd.bos.dataentity.OperateOption;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.dataentity.utils.ObjectUtils;
 import kd.bos.entity.EntityMetadataCache;
 import kd.bos.entity.ExtendedDataEntity;
 import kd.bos.entity.MainEntityType;
+import kd.bos.entity.operate.result.IOperateInfo;
 import kd.bos.entity.operate.result.OperationResult;
 import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
 import kd.bos.entity.plugin.AddValidatorsEventArgs;
@@ -20,6 +22,7 @@ import kd.bos.servicehelper.operation.SaveServiceHelper;
 import kd.sdk.plugin.Plugin;
 import nckd.jxccl.base.common.constant.FormConstant;
 import nckd.jxccl.base.common.enums.ijp.TalentTypeEnum;
+import nckd.jxccl.base.common.exception.ValidationException;
 import nckd.jxccl.base.common.utils.DateUtil;
 import nckd.jxccl.base.common.utils.QueryFieldBuilder;
 import nckd.jxccl.base.common.utils.StrFormatter;
@@ -36,6 +39,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.StringJoiner;
 import java.util.stream.Collectors;
 
 /**
@@ -176,12 +180,33 @@ public class IntJobPostAuditedOpPlugin extends AbstractOperationServicePlugIn im
             }
         }
         if(!savedRecords.isEmpty()){
+            //保存记录
             OperationResult operationResult = SaveServiceHelper.saveOperate(IntJobPostConstant.INTJOBPOSTRECORD_ENTITYID, savedRecords.toArray(new DynamicObject[0]), OperateOption.create());
             if(operationResult.isSuccess()){
                 //新增实体
-//                OperationResult operationResult = SaveServiceHelper.saveOperate(IntJobPostConstant.INTJOBPOSTLOCUS_ENTITYID, savedRecords.toArray(new DynamicObject[0]), OperateOption.create());
-            }
+                savedLocus.addAll(savedLocusMap.values());
+                OperationResult locusOperationResult = SaveServiceHelper.saveOperate(IntJobPostConstant.INTJOBPOSTLOCUS_ENTITYID, savedLocus.toArray(new DynamicObject[0]), OperateOption.create());
+                if(!locusOperationResult.isSuccess()){
+                    StringJoiner errorMsg = new StringJoiner("\n");
+                    for (IOperateInfo error : locusOperationResult.getAllErrorOrValidateInfo()) {
+                        errorMsg.add(error.getMessage());
+                    }
+                    if (!ObjectUtils.isEmpty(locusOperationResult.getMessage())) {
+                        errorMsg.add(locusOperationResult.getMessage());
+                    }
+                    throw new ValidationException("保存职位档案失败,原因:" + errorMsg.toString());
+                }
 
+            }else{
+                StringJoiner errorMsg = new StringJoiner("\n");
+                for (IOperateInfo error : operationResult.getAllErrorOrValidateInfo()) {
+                    errorMsg.add(error.getMessage());
+                }
+                if (!ObjectUtils.isEmpty(operationResult.getMessage())) {
+                    errorMsg.add(operationResult.getMessage());
+                }
+                throw new ValidationException("保存职位档案失败,原因:" + errorMsg.toString());
+            }
         }
 
 

+ 3 - 0
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/mas/plugin/form/structappr/EntleaderAnlSalStdFormPlugin.java

@@ -101,6 +101,9 @@ public class EntleaderAnlSalStdFormPlugin extends AbstractStructApprFormPlugin i
                     .add(MasConstant.NCKD_YEAR)
                     .add(FormConstant.NCKD_ENTRYENTITY)
                     .add(FormConstant.NCKD_ENTRYENTITY, MasConstant.NCKD_PROJECTCATEGORY)
+                    .add(FormConstant.NCKD_ENTRYENTITY, MasConstant.NCKD_PROJECTCATEGORY,FormConstant.PARENT_KEY)
+                    .addIdNumberName(FormConstant.NCKD_ENTRYENTITY, MasConstant.NCKD_PROJECTCATEGORY)
+                    .addIdNumberName(FormConstant.NCKD_ENTRYENTITY, MasConstant.NCKD_PROJECTCATEGORY,MasConstant.PARENT_KEY)
                     .add(FormConstant.NCKD_ENTRYENTITY, MasConstant.NCKD_SALARYITEM)
                     .add(FormConstant.NCKD_ENTRYENTITY, MasConstant.NCKD_DEFERREDPAYITEM)
                     .add(FormConstant.NCKD_ENTRYENTITY, MasConstant.NCKD_DEFERREDPAYDESC)

+ 1 - 0
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/mas/plugin/form/structappr/SubcorpChiefSalStdFormPlugin.java

@@ -75,6 +75,7 @@ public class SubcorpChiefSalStdFormPlugin extends AbstractStructApprFormPlugin i
                     .add(FormConstant.NCKD_ENTRYENTITY)
                     .add(FormConstant.NCKD_ENTRYENTITY, MasConstant.NCKD_PROJECTCATEGORY)
                     .addIdNumberName(FormConstant.NCKD_ENTRYENTITY, MasConstant.NCKD_PROJECTCATEGORY)
+                    .addIdNumberName(FormConstant.NCKD_ENTRYENTITY, MasConstant.NCKD_PROJECTCATEGORY,MasConstant.PARENT_KEY)
                     .add(FormConstant.NCKD_ENTRYENTITY, MasConstant.NCKD_SALARYITEM)
                     .add(FormConstant.NCKD_ENTRYENTITY, MasConstant.NCKD_DEFERREDPAYITEM)
                     .add(FormConstant.NCKD_ENTRYENTITY, MasConstant.NCKD_DEFERREDPAYDESC)