Ver código fonte

fix:人员查询接口新增上级组织字段

xiaopeng 3 dias atrás
pai
commit
899b4bf581

+ 46 - 0
nckd-fi/src/main/java/nckd/fi/er/common/utils/OrgUtils.java

@@ -0,0 +1,46 @@
+package nckd.fi.er.common.utils;
+
+import com.alibaba.dubbo.common.utils.StringUtils;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+
+import java.util.List;
+
+/**
+ * @Classname OrgUtils
+ * @Description TODO
+ * @Version 1.0.0
+ * @Date 2026/1/8 下午5:15
+ * @Created by xiaoxiaopeng
+ */
+public class OrgUtils {
+
+    /**
+     * 获取部门所在上级公司
+     * @param id
+     * @return
+     */
+    public static DynamicObject getSuperDep(String id){
+        if(StringUtils.isEmpty(id)){
+            return null;
+        }
+        DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter("id", QCP.equals, id).toArray());
+        if (dynamicObject == null) {
+            return null;
+        }
+        String orgPattern = dynamicObject.getString("orgpattern.number");
+        if ("Orgform06".equals(orgPattern)){
+            String parentId = null;
+            DynamicObjectCollection dynamicObjectCollection = dynamicObject.getDynamicObjectCollection("structure");
+            for (DynamicObject collection : dynamicObjectCollection) {
+                parentId = collection.getString("viewparent.id");
+            }
+            return getSuperDep(parentId);
+        }else {
+            return dynamicObject;
+        }
+    }
+}

+ 12 - 4
nckd-fi/src/main/java/nckd/fi/er/webapi/cutomer/UserQueryWebApiPlugin.java

@@ -1,5 +1,6 @@
 package nckd.fi.er.webapi.cutomer;
 
+import com.alibaba.dubbo.common.utils.CollectionUtils;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.openapi.common.custom.annotation.ApiController;
@@ -11,19 +12,19 @@ import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.QueryServiceHelper;
+import kd.fi.ai.Org;
 import nckd.base.common.constant.BaseFieldConst;
 import nckd.base.common.constant.BosUserConstant;
 import nckd.base.common.enums.BillStatusEnum;
+import nckd.base.common.model.BaseDataModel;
 import nckd.base.common.model.BaseModel;
 import nckd.base.common.model.BasePageModel;
 import nckd.base.common.utils.QFilterUtils;
 import nckd.fi.er.common.constant.ErPayeerConstant;
 import nckd.fi.er.common.constant.ErReimburseSettingConstant;
-import nckd.fi.er.webapi.model.BosUserModel;
-import nckd.fi.er.webapi.model.PayeeBankModel;
-import nckd.fi.er.webapi.model.ReimburseSetModel;
+import nckd.fi.er.common.utils.OrgUtils;
+import nckd.fi.er.webapi.model.*;
 import nckd.base.common.utils.DoMoConvertUtils;
-import nckd.fi.er.webapi.model.UserPageModel;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 
@@ -124,6 +125,13 @@ public class UserQueryWebApiPlugin implements Serializable {
             if(reimburMap.get(userNum) != null) {
                 user.setReimeburentry(reimburMap.get(userNum));
             }
+            List<BosUserEntityModel> entryentity = user.getEntryentity();
+            if (CollectionUtils.isNotEmpty(entryentity)){
+                for (BosUserEntityModel bosUserEntityModel : entryentity) {
+                    DynamicObject superDep = OrgUtils.getSuperDep(bosUserEntityModel.getDpt() == null ? null : bosUserEntityModel.getDpt().getId());
+                    bosUserEntityModel.setSuperdpt(DoMoConvertUtils.toModel(superDep, new BaseDataModel()));
+                }
+            }
         }
         return CustomApiResult.success(new UserPageModel(pageNo, pageSize,userModelList));
     }

+ 11 - 0
nckd-fi/src/main/java/nckd/fi/er/webapi/model/BosUserEntityModel.java

@@ -28,6 +28,9 @@ public class BosUserEntityModel extends BaseModel implements Serializable {
     private BaseDataModel dpt;
     @ApiParam(value = "直接上级")
     private BaseDataModel superior;
+    @ApiParam(value = "上级公司")
+    private BaseDataModel superdpt;
+
 
     public String getId() {
         return id;
@@ -92,4 +95,12 @@ public class BosUserEntityModel extends BaseModel implements Serializable {
     public void setSuperior(BaseDataModel superior) {
         this.superior = superior;
     }
+
+    public @ApiParam(value = "上级公司") BaseDataModel getSuperdpt() {
+        return superdpt;
+    }
+
+    public void setSuperdpt(@ApiParam(value = "上级公司") BaseDataModel superdpt) {
+        this.superdpt = superdpt;
+    }
 }