Преглед изворни кода

Merge branch 'master' of http://47.92.104.23:3000/LiuYing/tengda

qingwu пре 7 месеци
родитељ
комит
6d514cb7bb
17 измењених фајлова са 573 додато и 1197 уклоњено
  1. BIN
      path/20250815/server/lib/addon/customer/lib/teda_beisen_yf_zqy.jar
  2. 2 0
      path/20250815/server/properties/beiSen/orgStaffConfig.properties
  3. 1 0
      path/20250815/server/properties/beiSen/posStaffConfig.properties
  4. 1 0
      properties/posStaffConfig.properties
  5. 196 48
      src/com/kingdee/eas/custom/beisen/synchronousorg/SynchronousEmpBillControllerBean.java
  6. 6 3
      src/com/kingdee/eas/custom/beisen/synchronousorg/synchronousOrgControllerBean.java
  7. 21 43
      src/com/kingdee/eas/custom/interfacelog/businessoperationlog/app/OperateLogControllerBean.java
  8. 10 4
      src/com/kingdee/eas/hr/org/app/OrgUnitOptFacadeControllerBeanEx.java
  9. 10 8
      websrc/com/kingdee/eas/custom/beisen/synchronouspos/handler/ExecutorCountUtil.java
  10. 48 71
      websrc/com/kingdee/eas/custom/beisen/synchronouspos/handler/StaffManageProjectListHandlerEx.java
  11. 88 0
      websrc/com/kingdee/eas/custom/beisen/synchronouspos/osf/StaffManageProcess.java
  12. 50 0
      websrc/com/kingdee/eas/custom/beisen/synchronouspos/osf/SyncOrgStaffManageRunnable.java
  13. 50 0
      websrc/com/kingdee/eas/custom/beisen/synchronouspos/osf/SyncPosStaffManageRunnable.java
  14. 49 45
      websrc/com/kingdee/eas/custom/beisen/synchronouspos/osf/SyncStaffManageOSFService.java
  15. 4 0
      websrc/com/kingdee/eas/custom/beisen/synchronouspos/osf/SynchronousPosOSFService.java
  16. 37 39
      websrc/com/kingdee/eas/custom/beisen/synchronouspos/osf/posConfig.properties
  17. 0 936
      websrc/com/kingdee/eas/custom/webbeisen/utils/JsonFormatConverter.java

BIN
path/20250815/server/lib/addon/customer/lib/teda_beisen_yf_zqy.jar


+ 2 - 0
path/20250815/server/properties/beiSen/orgStaffConfig.properties

@@ -2,6 +2,8 @@ posId=posId
 CFOriginalId=id
 staffName=staffName
 orgPosName=Name
+orgOriginalId=code
+FParentID=parentOriginalId
 customFieldList.FControlWay=extkongzhifangshi_611852_1859865232
 customFieldList.FPersonCount=extdangqianrenshu_611852_10064951,integer
 customFieldList.FStaffYear=extdingbianrenshu_611852_1497615182,integer

+ 1 - 0
path/20250815/server/properties/beiSen/posStaffConfig.properties

@@ -2,6 +2,7 @@ posId=posId
 CFOriginalId=id
 staffName=staffName
 orgPosName=Name
+orgOriginalId=Org,integer
 orgPosStatus=status,integer
 customProperties.FControlWay=extkongzhifangshi_611852_1000107625
 customProperties.FPersonCount=extdangqianrenshu_611852_721575747,integer

+ 1 - 0
properties/posStaffConfig.properties

@@ -2,6 +2,7 @@ posId=posId
 CFOriginalId=id
 staffName=staffName
 orgPosName=Name
+orgPosStatus=status,integer
 customProperties.FControlWay=extkongzhifangshi_433107_1749927714
 customProperties.FPersonCount=extdangqianrenshu_433107_353309291,integer
 customProperties.FStaffYear=extdingbianrenshu_433107_1066638704,integer

+ 196 - 48
src/com/kingdee/eas/custom/beisen/synchronousorg/SynchronousEmpBillControllerBean.java

@@ -8,6 +8,7 @@ import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
 import com.kingdee.bos.metadata.entity.*;
 import com.kingdee.bos.metadata.function.WfEventListenerStateManager;
 import com.kingdee.bos.metadata.query.util.CompareType;
+import com.kingdee.bos.util.BOSObjectType;
 import com.kingdee.bos.util.BOSUuid;
 import com.kingdee.eas.base.attachment.AttachmentFactory;
 import com.kingdee.eas.base.attachment.AttachmentInfo;
@@ -19,6 +20,8 @@ import com.kingdee.eas.base.permission.UserCollection;
 import com.kingdee.eas.base.permission.UserFactory;
 import com.kingdee.eas.base.permission.UserInfo;
 import com.kingdee.eas.basedata.org.*;
+import com.kingdee.eas.basedata.person.PersonCollection;
+import com.kingdee.eas.basedata.person.PersonFactory;
 import com.kingdee.eas.basedata.person.PersonInfo;
 import com.kingdee.eas.common.EASBizException;
 import com.kingdee.eas.custom.beisen.utils.Helper;
@@ -30,9 +33,7 @@ import com.kingdee.eas.framework.CoreBaseCollection;
 import com.kingdee.eas.framework.CoreBaseInfo;
 import com.kingdee.eas.framework.ICoreBase;
 import com.kingdee.eas.hr.affair.*;
-import com.kingdee.eas.hr.base.ApproveTypeEnum;
-import com.kingdee.eas.hr.base.HRBillStateEnum;
-import com.kingdee.eas.hr.base.HRBizDefineInfo;
+import com.kingdee.eas.hr.base.*;
 import com.kingdee.eas.hr.emp.PersonPhotoFactory;
 import com.kingdee.eas.hr.emp.PersonPhotoInfo;
 import com.kingdee.shr.attachment.AttachmentState;
@@ -214,6 +215,9 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
                             System.out.println("=======入职单已存在=============");//0044610
                             OperateLogEntryInfo operateLogEntryInfo = new OperateLogEntryInfo();
                             operateLogEntryInfo.setErrorInfo("入职单已存在");
+                            EmpEnrollBizBillEntryCollection entrys1 = collection.get(0).getEntrys();
+                            String empName = entrys1.get(0).getEmpName();
+                            operateLogInfo.setName(empName);
                             entrys.add(operateLogEntryInfo);
                             try {
                                 localInstance.save(operateLogInfo);
@@ -253,13 +257,14 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
                         System.out.println(e.getMessage());
                     }
                 } catch (Exception e) {
-                    operateLogInfo.setBusinessId(headId);
+                    //operateLogInfo.setBusinessId(headId);
                     OperateLogEntryCollection entrys = operateLogInfo.getEntrys();
                     OperateLogEntryInfo operateLogEntryInfo = new OperateLogEntryInfo();
                     String f = e.getMessage();
                     if (f!=null&&f.length()>500){
                         f = f.substring(0, 500);
                     }
+                    operateLogInfo.setName(f);
                     operateLogEntryInfo.setErrorInfo("整理保存头部数据失败!!!!" + f);
                     entrys.add(operateLogEntryInfo);
                     System.out.println(e.getMessage());
@@ -355,21 +360,36 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
                 operateLogInfo.setBusinessName(view1.getName());
                 boolean isCreateData1 = boybsViewConfigEntryInfo.isIsCreateData();
                 try {
+                    BOSUuid read = BOSUuid.read(headId);
+                    ICoreBase bosObject = (ICoreBase) (BOSObjectFactory.createBOSObject(context, read.getType()));
+                    CoreBaseInfo coreBaseInfo = bosObject.getValue(new ObjectUuidPK(read));
+                    operateLogInfo.setName(coreBaseInfo.getString("name"));
+                    operateLogInfo.setNumber(coreBaseInfo.getString("number"));
                     if (type.getValue().equals("list")) {
-                        boyProcessing(view1, headId, jsonObject1.getJSONArray(beiSenData1), null, "fileInfos", beiSenData1);
-                        String boy = jsonObject1.getJSONArray(beiSenData1).toJSONString();
-                        if (boy.length()>500){
-                            boy = boy.substring(0, 500);
+                        JSONArray jsonArray = jsonObject1.getJSONArray(beiSenData1);
+                        if (jsonArray==null||jsonArray.size()==0){
+                            operateLogEntryInfo.setErrorInfo("北森数据不存在"+beiSenData1);
+                        }else {
+                            boyProcessing(view1, headId, jsonArray, null, "fileInfos", beiSenData1);
+                            String boy = jsonObject1.getJSONArray(beiSenData1).toJSONString();
+                            if (boy.length()>500){
+                                boy = boy.substring(0, 500);
+                            }
+                            operateLogEntryInfo.setErrorInfo(boy);
                         }
-
-                        operateLogEntryInfo.setErrorInfo(boy);
                     } else {
-                        boyProcessing(view1, isCreateData1, headId, jsonObject1.getJSONObject(beiSenData1), null, "fileInfos", beiSenData1);
-                        String boy =jsonObject1.getJSONObject(beiSenData1).toJSONString();
-                        if (boy.length()>500){
-                            boy = boy.substring(0, 500);
+                        JSONObject jsonObject11 = jsonObject1.getJSONObject(beiSenData1);
+                        if (jsonObject11==null||jsonObject11.size()==0){
+                            operateLogEntryInfo.setErrorInfo("北森数据不存在"+beiSenData1);
+                        }else {
+                            boyProcessing(view1, isCreateData1, headId,jsonObject11, null, "fileInfos", beiSenData1);
+                            String boy =jsonObject1.getJSONObject(beiSenData1).toJSONString();
+                            if (boy.length()>500){
+                                boy = boy.substring(0, 500);
+                            }
+                            operateLogEntryInfo.setErrorInfo(boy);
                         }
-                        operateLogEntryInfo.setErrorInfo(boy);
+
                     }
                     entrys1.add(operateLogEntryInfo);
                     try {
@@ -483,7 +503,7 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
 
         }
         // 处理文件信息
-        fileProcessor(save.toString(), null, jsonArray);
+        fileProcessor(save.toString(), jsonArray);
 
         if (fileJSON != null) {
             // 获取文件信息的第一个 JSON 对象
@@ -644,7 +664,7 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
                 }
             }
             // 处理文件信息
-            fileProcessor(save.toString(), null, jsonArray1);
+            fileProcessor(save.toString(), jsonArray1);
         }
         if (fileJSON != null) {
             // 获取文件信息的第一个 JSON 对象
@@ -737,6 +757,7 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
             System.out.println("===============alias:" + alias);
             Object dataObject = jsonObject.get(split[0]);
             String s1 = attributes.get("data-valueType");
+            fileName = attributes.get("data-fileName");
             if (s1 != null && s1.equals("url")) {
                 if (dataObject instanceof JSONObject) {
                     JSONObject data = jsonObject.getJSONObject(split[0]);
@@ -753,12 +774,22 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
                                     // 将数据的 UI 主键、下载链接和文件名添加到文件信息的 JSON 对象中
                                     file.put("uipk", attributes.get("data-uipk"));
                                     file.put("url", string);
-                                    file.put("name", data.getString("text"));
+                                    file.put("name", fileName);
                                     // 将文件信息的 JSON 对象添加到文件信息的 JSON 数组中
                                     files.add(file);
                                 }
                                 continue;
                             }
+                        }else if (value instanceof String){
+                            String string = data.getString(split[1]);
+                            file = new JSONObject();
+                            // 将数据的 UI 主键、下载链接和文件名添加到文件信息的 JSON 对象中
+                            file.put("uipk", attributes.get("data-uipk"));
+                            file.put("url", string);
+                            file.put("name", fileName);
+                            // 将文件信息的 JSON 对象添加到文件信息的 JSON 数组中
+                            files.add(file);
+                            continue;
                         }
                         if (value == null || value.equals("null") || value.equals("{}") || value.equals("")) {
                             continue;
@@ -773,6 +804,11 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
 
                 } else if (dataObject instanceof JSONArray) {
                     JSONArray jsonArray1 = jsonObject.getJSONArray(split[0]);
+                    if ((split[0].equals("entryRecord")||split[0].equals("employmentRecord"))&&jsonArray1.size()>0){
+                        jsonArray1 = paixu(jsonArray1, "entryDate");
+                        System.out.println("排序后entryRecord/employmentRecord"+jsonArray1);
+                        // (可选)将排序后的List转回JSONArray
+                    }
                     for (int j = 0; j < jsonArray1.size(); j++) {
                         JSONObject data = jsonArray1.getJSONObject(j);
                         if (data != null) {
@@ -789,7 +825,7 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
                                         // 将数据的 UI 主键、下载链接和文件名添加到文件信息的 JSON 对象中
                                         file.put("uipk", attributes.get("data-uipk"));
                                         file.put("url", string);
-                                        file.put("name", data.getString("text"));
+                                        file.put("name", fileName);
                                         // 将文件信息的 JSON 对象添加到文件信息的 JSON 数组中
                                         files.add(file);
                                     }
@@ -977,12 +1013,48 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
                         hrBizDefineInfo.setId(BOSUuid.read("DawAAAApC9TmaL7Z"));
                         setCoreBaseInfo(coreBaseInfo, "entrys.hrBizDefine", hrBizDefineInfo);
                     }else {
-                        System.out.println("====empEnrollBizBills= DawAAAApC9DmaL7Z= 否");
-                        hrBizDefineInfo.setId(BOSUuid.read("DawAAAApC9DmaL7Z"));
-                        setCoreBaseInfo(coreBaseInfo, "entrys.hrBizDefine", hrBizDefineInfo);
+
+                        PersonCollection personCollection = PersonFactory.getLocalInstance(context)
+                                .getPersonCollection("where PassportNO='" + value + "' or IDCardNO='" + value + "'");
+                        if (personCollection.size()>0){
+                            System.out.println("====empEnrollBizBills= DawAAAApC9TmaL7Z= 是");
+                            hrBizDefineInfo.setId(BOSUuid.read("DawAAAApC9TmaL7Z"));
+                            setCoreBaseInfo(coreBaseInfo, "entrys.hrBizDefine", hrBizDefineInfo);
+                        }else {
+                            System.out.println("====empEnrollBizBills= DawAAAApC9DmaL7Z= 否");
+                            hrBizDefineInfo.setId(BOSUuid.read("DawAAAApC9DmaL7Z"));
+                            setCoreBaseInfo(coreBaseInfo, "entrys.hrBizDefine", hrBizDefineInfo);
+                        }
+
                     }
                 } else {
-                    setCoreBaseInfo(coreBaseInfo, name, value);
+                    if (name.equals("nCell")){
+                        String s = extractContent((String) value);
+                        System.out.println(s +"''''''''"+value );
+                        if (s!=null&&!s.equals("")){
+                            System.out.println("setCoreBaseInfo(coreBaseInfo, \"globalRoaming\", s);\n");
+                            setCoreBaseInfo(coreBaseInfo, "globalRoaming", s);
+                            value = ((String) value).replace("("+s+")","");
+                            setCoreBaseInfo(coreBaseInfo, name, value);
+                        }else {
+                            System.out.println("setCoreBaseInfo(coreBaseInfo, \"globalRoaming\", +86);\n");
+                            setCoreBaseInfo(coreBaseInfo, "globalRoaming", "+86");
+                        }
+                    }else if (name.equals("entrys.nCell")||name.equals("entrys.telNum")){
+                        String s = extractContent((String) value);
+                        System.out.println(s +"''''''''"+value );
+                        if (s!=null&&!s.equals("")) {
+                            System.out.println("setCoreBaseInfo(coreBaseInfo, \"entrys.globalRoaming\", s));\n");
+                            setCoreBaseInfo(coreBaseInfo, "entrys.globalRoaming", s);
+                            value = ((String) value).replace("("+s+")","");
+                            setCoreBaseInfo(coreBaseInfo, name, value);
+                        }else {
+                            System.out.println("setCoreBaseInfo(coreBaseInfo, \"entrys.globalRoaming\", +86));\n");
+                            setCoreBaseInfo(coreBaseInfo, "entrys.globalRoaming", "+86");
+                        }
+                    }else {
+                        setCoreBaseInfo(coreBaseInfo, name, value);
+                    }
                     // 将值设置到当前实体对象中
                     //coreBaseInfo.put(name, value);
                 }
@@ -993,6 +1065,29 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
         // 返回处理后的文件信息的 JSON 数组
         return files;
     }
+    /**
+     * 提取字符串中括号内的内容
+     * @param input 包含括号的原始字符串
+     * @return 括号内的内容,若格式不合法则返回空字符串
+     */
+    public  String extractContent(String input) {
+        // 检查输入是否为空
+        if (input == null || input.isEmpty()) {
+            return "";
+        }
+
+        // 定位左括号'('和右括号')'的位置
+        int leftIndex = input.indexOf('(');
+        int rightIndex = input.indexOf(')');
+
+        // 校验括号位置合法性(左括号存在、右括号存在、左括号在右括号之前)
+        if (leftIndex == -1 || rightIndex == -1 || leftIndex >= rightIndex) {
+            return "";
+        }
+
+        // 截取括号之间的内容(左括号后一位到右括号前一位)
+        return input.substring(leftIndex + 1, rightIndex);
+    }
 
     public void setCoreBaseInfo(CoreBaseInfo coreBaseInfo, String name, Object value) {
         System.out.println("+++++++++++++++" + name + ":" + value);
@@ -1029,8 +1124,8 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
                 if (split[1].equals("position")) {
                     if (value instanceof PositionInfo) {
                         objectValue.put("job", ((PositionInfo) value).getJob());
+                        objectValue.put("adminOrg", ((PositionInfo) value).getAdminOrgUnit());
                     }
-
                 }
             }
         } else {
@@ -1125,14 +1220,8 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
             save = bosObject.save(coreBaseInfo);
 
         }
-        PersonInfo personInfo = null;
-        if (coreBaseInfo instanceof PersonInfo) {
-            personInfo = (PersonInfo) coreBaseInfo;
-        } else {
-            personInfo = (PersonInfo) (coreBaseInfo.get("person"));
-        }
         // 处理文件信息
-        fileProcessor(save.toString(), personInfo, jsonArray);
+        fileProcessor(save.toString(), jsonArray);
 
         // 获取文件信息的第一个 JSON 对象
         if (fileJSON != null) {
@@ -1245,10 +1334,8 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
             save = bosObject.save(coreBaseInfo);
 
         }
-
-        PersonInfo personInfo = (PersonInfo) coreBaseInfo.get("person");
         // 处理文件信息
-        fileProcessor(save.toString(), personInfo, jsonArray);
+        fileProcessor(save.toString(), jsonArray);
 
         // 获取文件信息的第一个 JSON 对象
         if (fileJSON != null) {
@@ -1308,11 +1395,10 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
      * 处理文件信息
      *
      * @param id         关联的 ID
-     * @param personInfo 人员信息对象
      * @param jsonArray  文件信息的 JSON 数组
      * @throws JSONException JSON 处理异常
      */
-    public void fileProcessor(String id, PersonInfo personInfo, JSONArray jsonArray) throws JSONException {
+    public void fileProcessor(String id, JSONArray jsonArray) throws JSONException {
         // 遍历文件信息的 JSON 数组
         for (int i = 0; i < jsonArray.size(); i++) {
             // 获取单个文件信息
@@ -1327,15 +1413,25 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
                 continue;
             }
             if (uipk.equals("PersonPhoto")) {
+                System.out.println("头像处理");
                 try {
+                    PersonInfo personInfo = getPerson(id);
                     if (personInfo != null) {
+                        System.out.println("========personInfo 获取到的员工id===="+personInfo.getId());
                         // 保存人员照片信息
                         savePersonPhoto(personInfo, url);
+                    }else {
+                        System.out.println("========personInfo 获取到的员工id==== null");
+
                     }
 
                 } catch (IOException e) {
                     // 抛出运行时异常,表示保存人员照片信息失败
-                    throw new RuntimeException(e);
+                    throw new RuntimeException(e+"抛出运行时异常,表示保存人员照片信息失败");
+                } catch (BOSException e) {
+                    throw new RuntimeException(e+"查询入制单失败!或者查询临时员工失败!"+id);
+                } catch (EASBizException e) {
+                    throw new RuntimeException(e+"查询入制单失败!或者查询临时员工失败!"+id);
                 }
             } else {
                 try {
@@ -1346,19 +1442,22 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
                     } else {
                         dataImg = helper.getBytesByNetURL("http:" + url);
                     }
-
-
                     // 插入人员附件信息
-                    if (name == null) {
+                    if (name != null&&!name.equals("")) {
+                        String s = extractFileNameFromUrl(url);
+                        String[] split = s.split("\\.");
+                        System.out.println("+++++split+++++++++"+split[1]);
+                        name = name + "." +split[1];
+                    }else {
                         name = extractFileNameFromUrl(url);
                     }
                     insertPersonAttachment(name, uipk, id, dataImg);
                 } catch (IOException e) {
                     // 抛出运行时异常,表示下载文件数据失败
-                    throw new RuntimeException(e);
+                    throw new RuntimeException(e+"抛出运行时异常,表示下载文件数据失败");
                 } catch (BOSException e) {
                     // 抛出运行时异常,表示插入人员附件信息失败
-                    throw new RuntimeException(e);
+                    throw new RuntimeException(e+"抛出运行时异常,表示插入人员附件信息失败");
                 } catch (EASBizException e) {
                     // 抛出运行时异常,表示插入人员附件信息失败
                     throw new RuntimeException(e);
@@ -1367,9 +1466,57 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
         }
     }
 
+    public PersonInfo getPerson(String id) throws BOSException, EASBizException {
+        PersonInfo personInfo = null;
+        BOSUuid read = BOSUuid.read(id);
+        BOSObjectType type = read.getType();
+        String bosType = type.toString();
+        if (bosType.equals("80EF7DED")){
+            System.out.println("传入的ID:"+id+" 为员工,personInfo bosType:80EF7DED");
+            personInfo = new PersonInfo();
+            personInfo.setId(read);
+        }else if (bosType.equals("B41CAA3F")){
+            System.out.println("传入的ID:"+id+" 入职单, EmpEnrollBizBill bosType:B41CAA3F");
+            System.out.println("查询入职单:"+id+"");
+            EmpEnrollBizBillInfo empEnrollBizBillInfo = EmpEnrollBizBillFactory
+                    .getLocalInstance(context).getEmpEnrollBizBillInfo("where id = '" + id + "'");
+            EmpEnrollBizBillEntryCollection entrys = empEnrollBizBillInfo.getEntrys();
+            if (entrys.size()<=0){
+                throw new RuntimeException("入职单没有对应的分录:"+id);
+            }
+            EmpEnrollBizBillEntryInfo empEnrollBizBillEntryInfo = entrys.get(0);
+            BOSUuid entryId = empEnrollBizBillEntryInfo.getId();
+            System.out.println("查询入职单分录/查询临时人员:"+entryId+"");
+            TempPersonPhotoCollection tempPersonPhotoCollection = TempPersonPhotoFactory.getLocalInstance(context).
+                    getTempPersonPhotoCollection("where EmpEnrollBillEntryId = '" + entryId + "'");
+            if (tempPersonPhotoCollection.size()<=0){
+                System.out.println("创建临时员工");
+                TempPersonPhotoInfo tempPersonPhotoInfo = new TempPersonPhotoInfo();
+                BOSUuid bosUuid = BOSUuid.create("80EF7DED");
+                System.out.println("创建临时员工id"+bosUuid.toString());
+                tempPersonPhotoInfo.setTempPersonId(bosUuid.toString());
+                tempPersonPhotoInfo.setEmpEnrollBillEntryId(empEnrollBizBillEntryInfo);
+                IObjectPK save = TempPersonPhotoFactory.getLocalInstance(context).save(tempPersonPhotoInfo);
+                System.out.println("=========save====保持临时员工信息==="+save);
+                personInfo = new PersonInfo();
+                personInfo.setId(bosUuid);
+            }else {
+                System.out.println("查询到了临时员工");
+                TempPersonPhotoInfo tempPersonPhotoInfo = tempPersonPhotoCollection.get(0);
+                String tempPersonId = tempPersonPhotoInfo.getTempPersonId();
+                personInfo = new PersonInfo();
+                personInfo.setId(BOSUuid.read(tempPersonId));
+            }
+
+        }
+        return personInfo;
+    }
+
     public static void main(String[] args) {
-        String name = extractFileNameFromUrl("https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753067254/3/66304e3e5cb7431f9fb1900ba675cee3.jpg?sig_t=1753070295&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=41d7e3c49cef36421ff8c4c4bd4ff6b145810ca3");
-        System.out.println(name);
+//        String name = extractFileNameFromUrl("https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753067254/3/66304e3e5cb7431f9fb1900ba675cee3.jpg?sig_t=1753070295&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=41d7e3c49cef36421ff8c4c4bd4ff6b145810ca3");
+
+        String s = new SynchronousEmpBillControllerBean().extractContent("18xxxx1111");
+        System.out.println(s);
     }
 
     // 从URL中提取文件名
@@ -1450,7 +1597,8 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
             // 获取用户 ID
             String userId = userInfo.getId().toString();
             // 设置附件名称
-            ai.setName(filename.substring(0, filename.lastIndexOf(46)));
+            System.out.println("+++filename+++"+filename);
+            ai.setName(filename.substring(0, filename.lastIndexOf(".")));
             // 设置附件简单名称
             ai.setSimpleName(filename.substring(filename.lastIndexOf(".") + 1));
             // 设置附件描述
@@ -1665,10 +1813,10 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
             }
         }
     }
-    JSONArray paixu (JSONArray jsonArray,String entryDate){
+    JSONArray paixu (JSONArray jsonArray,final String entryDate){
         List<JSONObject> list = jsonArray.toJavaList(JSONObject.class);
         // 定义日期格式
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
+        final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
         // 排序
         Collections.sort(list, new Comparator<JSONObject>() {
             @Override
@@ -1684,7 +1832,7 @@ public class SynchronousEmpBillControllerBean extends AbstractSynchronousEmpBill
 
                     // 比较日期
                     return date2.compareTo(date1);
-                } catch (ParseException e) {
+                } catch (Exception e) {
                     // 处理日期解析异常
                     e.printStackTrace();
                     return 0;

+ 6 - 3
src/com/kingdee/eas/custom/beisen/synchronousorg/synchronousOrgControllerBean.java

@@ -175,9 +175,11 @@ public class synchronousOrgControllerBean extends AbstractsynchronousOrgControll
                 throw e;
             }
             JSONObject customFieldList = new JSONObject();
-            //部门负责人岗位编码
-            customFieldList.put("extbumenfuzerengangweibianma_433107_1704083012", responPosition.getNumber());
-            customFieldList.put("extbumenfuzerengangweimingcheng_433107_501692677", responPosition.getName());
+            //部门负责人岗位编码 注释的是测试的  后面是生产的(extbumenfuzerengangweibianma_611852_1958016168,extbumenfuzerengangweimingcheng_611852_315949968)
+            //customFieldList.put("extbumenfuzerengangweibianma_433107_1704083012", responPosition.getNumber());
+            //customFieldList.put("extbumenfuzerengangweimingcheng_433107_501692677", responPosition.getName());
+            customFieldList.put("extbumenfuzerengangweibianma_611852_1958016168", responPosition.getNumber());
+            customFieldList.put("extbumenfuzerengangweimingcheng_611852_315949968", responPosition.getName());
             requestBody.put("customFieldList", customFieldList);
         }
 
@@ -242,6 +244,7 @@ public class synchronousOrgControllerBean extends AbstractsynchronousOrgControll
             // orgId 为空时,添加查询条件,筛选更新时间在指定日期范围之内的组织信息
             filterInfo.getFilterItems().add(new FilterItemInfo("lastUpdateTime", dayBefore, CompareType.GREATER_EQUALS));
             filterInfo.getFilterItems().add(new FilterItemInfo("lastUpdateTime", date, CompareType.LESS_EQUALS));
+            filterInfo.getFilterItems().add(new FilterItemInfo("isSealUp",false,CompareType.EQUALS));
         }
         // 设置查询条件到查询视图信息对象中
         entityViewInfo.setFilter(filterInfo);

+ 21 - 43
src/com/kingdee/eas/custom/interfacelog/businessoperationlog/app/OperateLogControllerBean.java

@@ -6,6 +6,9 @@ import com.kingdee.bos.metadata.entity.EntityObjectInfo;
 import com.kingdee.bos.util.BOSUuid;
 import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
 import com.kingdee.eas.framework.*;
+import com.kingdee.eas.hr.affair.EmpEnrollBizBillEntryCollection;
+import com.kingdee.eas.hr.affair.EmpEnrollBizBillEntryInfo;
+import com.kingdee.eas.hr.affair.EmpEnrollBizBillInfo;
 import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
 import com.kingdee.shr.base.syssetting.util.MetaDataUtil;
 import org.apache.log4j.Logger;
@@ -94,8 +97,24 @@ public class OperateLogControllerBean extends AbstractOperateLogControllerBean {
             if (collection.size() > 0) {
                 // 获取集合中的第一个元素
                 CoreBaseInfo coreBaseInfo = collection.get(0);
-                // 设置操作日志的名称
-                operateLogInfo.setName(coreBaseInfo.getString("name"));
+                if (coreBaseInfo instanceof EmpEnrollBizBillInfo){
+                    EmpEnrollBizBillInfo empEnrollBizBillInfo = (EmpEnrollBizBillInfo)coreBaseInfo;
+                    EmpEnrollBizBillEntryCollection entrys = empEnrollBizBillInfo.getEntrys();
+                    String name = "";
+                    for (int i = 0; i <entrys.size(); i++) {
+                        EmpEnrollBizBillEntryInfo empEnrollBizBillEntryInfo = entrys.get(i);
+                        name+=empEnrollBizBillEntryInfo.getEmpName()+",";
+                    }
+                    if (name.length()>0){
+                        name = name.substring(0,name.length()-1);
+                        // 设置操作日志的名称
+                        operateLogInfo.setName(name);
+                    }
+                }else {
+                    // 设置操作日志的名称
+                    operateLogInfo.setName(coreBaseInfo.getString("name"));
+                }
+
                 // 设置操作日志的编号
                 operateLogInfo.setNumber(coreBaseInfo.getString("number"));
             }
@@ -104,45 +123,4 @@ public class OperateLogControllerBean extends AbstractOperateLogControllerBean {
         // 调用父类的 _addnew 方法完成添加操作
         return super._addnew(ctx, operateLogInfo);
     }
-    public static void main(String[] args) {
-        // 假设这是你的JSONArray
-        String jsonStr = "[{\"organizationName\":\"人力资源管理中心\",\"organizationCode\":\"2\",\"fileInfos\":[],\"id\":\"71c35a64-7c53-4bbd-8700-ac5cf73feb81\",\"entryDate\":\"2025-08-01T00:00:00\",\"jobNumber\":null,\"isCharge\":null,\"place\":null,\"userID\":408241917,\"originalId\":2878593,\"post\":\"fac1edc9-d2d2-4c4e-bd54-029220822844\",\"jobRank\":null,\"jobGrade\":null,\"poIdEmpAdmin\":0,\"poIdEmpReserve\":0,\"job\":null,\"planEntryDate\":null,\"planDate\":\"2025-08-01T00:00:00\",\"probationDate\":6,\"extendInfos\":[{\"text\":null,\"name\":\"Onwer\",\"value\":10000}]},{\"organizationName\":\"人力资源管理中心\",\"organizationCode\":\"2\",\"fileInfos\":[],\"id\":\"33a75888-81bf-4914-877e-d1b5c071f1c1\",\"entryDate\":\"2025-08-07T00:00:00\",\"jobNumber\":null,\"isCharge\":null,\"place\":null,\"userID\":408241917,\"originalId\":2878593,\"post\":\"f1560c71-c04f-4621-9931-9126f6d0b23f\",\"jobRank\":null,\"jobGrade\":null,\"poIdEmpAdmin\":0,\"poIdEmpReserve\":0,\"job\":null,\"planEntryDate\":null,\"planDate\":\"2025-08-08T00:00:00\",\"probationDate\":5,\"extendInfos\":[{\"text\":null,\"name\":\"Onwer\",\"value\":10000}]}]";
-        JSONArray jsonArray = JSONArray.parseArray(jsonStr);
-
-        // 转换为List以便排序
-        List<JSONObject> list = jsonArray.toJavaList(JSONObject.class);
-
-        // 定义日期格式
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
-
-        // 排序
-        Collections.sort(list, new Comparator<JSONObject>() {
-            @Override
-            public int compare(JSONObject o1, JSONObject o2) {
-                try {
-                    // 获取entryDate字段
-                    String dateStr1 = o1.getString("entryDate");
-                    String dateStr2 = o2.getString("entryDate");
-
-                    // 解析为Date对象
-                    Date date1 = sdf.parse(dateStr1);
-                    Date date2 = sdf.parse(dateStr2);
-
-                    // 比较日期
-                    return date2.compareTo(date1);
-                } catch (ParseException e) {
-                    // 处理日期解析异常
-                    e.printStackTrace();
-                    return 0;
-                }
-            }
-        });
-
-        // (可选)将排序后的List转回JSONArray
-        JSONArray sortedJsonArray = JSONArray.parseArray(JSONArray.toJSONString(list));
-
-        // 输出排序结果
-        System.out.println("排序后的JSONArray:");
-        System.out.println(sortedJsonArray);
-    }
 }

+ 10 - 4
src/com/kingdee/eas/hr/org/app/OrgUnitOptFacadeControllerBeanEx.java

@@ -6,6 +6,7 @@ import com.kingdee.bos.Context;
 import com.kingdee.eas.common.EASBizException;
 import com.kingdee.eas.custom.beisen.synchronousorg.synchronousOrg;
 import com.kingdee.eas.custom.beisen.synchronousorg.synchronousOrgControllerBean;
+import com.kingdee.eas.custom.beisen.synchronousorg.synchronousOrgFactory;
 import com.kingdee.eas.custom.beisen.utils.BeiSenUtils;
 
 import java.io.IOException;
@@ -28,6 +29,11 @@ public class OrgUnitOptFacadeControllerBeanEx extends OrgUnitOptFacadeController
      * @return 外部接口返回的 JSONObject 对象
      */
     private JSONObject syncOrgOperation(Context context,String urlKey, String id) {
+        try {
+            synchronousOrgFactory.getLocalInstance(context).createOrUpdateOrg(10, id, false);
+        } catch (BOSException e) {
+            System.out.println("同步组织失败"+e.getMessage());
+        }
         // 创建 BeiSenUtils 工具类的实例,用于处理与外部接口交互的相关操作
         BeiSenUtils beiSenUtils = new BeiSenUtils(context);
         // 从工具类中获取配置文件的 Properties 对象
@@ -39,8 +45,8 @@ public class OrgUnitOptFacadeControllerBeanEx extends OrgUnitOptFacadeController
             url = url + "?originalId=" + URLEncoder.encode(id, "UTF-8");
         } catch (UnsupportedEncodingException e) {
             // 如果编码过程中出现不支持的编码异常,将其包装成运行时异常抛出
+            System.out.println(e.getMessage());
             e.printStackTrace();
-            throw new RuntimeException(e);
         }
         // 初始化用于存储接口响应的 JSONObject 对象
         JSONObject jsonObject = null;
@@ -49,16 +55,16 @@ public class OrgUnitOptFacadeControllerBeanEx extends OrgUnitOptFacadeController
             jsonObject = beiSenUtils.setDisableAndEnable(id,url, "PUT");
         } catch (IOException e) {
             // 如果请求过程中出现 IO 异常或 URI 语法异常,将其包装成运行时异常抛出
+            System.out.println(e.getMessage());
             e.printStackTrace();
-            throw new RuntimeException(e);
         } catch (URISyntaxException e) {
             // 如果请求过程中出现 IO 异常或 URI 语法异常,将其包装成运行时异常抛出
+            System.out.println(e.getMessage());
             e.printStackTrace();
-            throw new RuntimeException(e);
         }
         // 检查接口响应的状态码是否为 200,如果不是则抛出运行时异常,表示同步操作失败
         if (!"200".equals(jsonObject.getString("code"))) {
-            throw new RuntimeException("同步操作失败,响应信息:" + jsonObject.toString());
+            System.out.println("同步操作失败,响应信息:" + jsonObject.toString());
         }
         return jsonObject;
     }

+ 10 - 8
websrc/com/kingdee/eas/custom/beisen/synchronouspos/handler/ExecutorCountUtil.java

@@ -1,17 +1,19 @@
 package com.kingdee.eas.custom.beisen.synchronouspos.handler;
 
+import java.util.concurrent.atomic.AtomicInteger;
+
 public class ExecutorCountUtil {
-    private int count = 0;
+    private final AtomicInteger count = new AtomicInteger(0);
+    public int get() {
+        return count.get(); // 原子读取
+    }
     private static ExecutorCountUtil examples = new ExecutorCountUtil();
 
-    public int getCount() {
-        return count;
-    }
-    public void CountClear() {
-        this.count=0;
-    }
     public void countPlusPlus() {
-        this.count++;
+        count.incrementAndGet();
+    }
+    public void countLessLess() {
+        count.decrementAndGet();
     }
     public static ExecutorCountUtil getExamples() {
         return examples;

+ 48 - 71
websrc/com/kingdee/eas/custom/beisen/synchronouspos/handler/StaffManageProjectListHandlerEx.java

@@ -1,9 +1,13 @@
 package com.kingdee.eas.custom.beisen.synchronouspos.handler;
 
+import com.alibaba.fastjson.JSON;
 import com.google.common.collect.Maps;
 import com.kingdee.bos.BOSException;
 import com.kingdee.bos.Context;
+import com.kingdee.bos.rabbitmq.guava.Lists;
 import com.kingdee.eas.common.EASBizException;
+import com.kingdee.eas.custom.beisen.synchronouspos.osf.SyncOrgStaffManageRunnable;
+import com.kingdee.eas.custom.beisen.synchronouspos.osf.SyncPosStaffManageRunnable;
 import com.kingdee.shr.base.syssetting.IMSFServiceFacade;
 import com.kingdee.shr.base.syssetting.MSFServiceFacadeFactory;
 import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsBody;
@@ -27,90 +31,63 @@ public class StaffManageProjectListHandlerEx extends StaffManageProjectListHandl
     private static Logger log = Logger.getLogger(StaffManageProjectListHandlerEx.class);
 
     public void batchDisableAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
-        try {
-            Context ctx = SHRContext.getInstance().getContext();
-            int successCount = 0;
-            int errorCount = 0;
-            BatchMessageTipsHeader batchMessageTipsHeader = new BatchMessageTipsHeader();
-            int i = 0;
-            Map<String, Object> map = Maps.newHashMap();
-            StringBuilder billIds = new StringBuilder("CFOriginalId,");
-            //同步编制,返回参数,以及同步结果
-
-            Map<String, List<Map<String, Object>>> result = (Map<String, List<Map<String, Object>>>) MSFServiceFacadeFactory.getLocalInstance(ctx).processService("syncStaffManageOSF", map);
-            //同步参数
-            List<Map<String, Object>> list = result.get("list");
-            //同步结果
-            List<Map<String, Object>> listMap = result.get("listMap");
-            for (int size = list.size(); i < size; ++i) {
-                Map<String, Object> objMap = list.get(i);
-                Map<String, Object> returnMap = listMap.get(i);
-                //获取同步状态
-                String code = String.valueOf(returnMap.get("code"));
-                BatchMessageTipsBody body = new BatchMessageTipsBody();
-                String CFOriginalId = (String) objMap.get("CFOriginalId");
-                billIds.append("," + CFOriginalId);
-                body.setId(CFOriginalId);
-                Boolean MuitTipsState = null;
-                if ("200".equals(code)) {
-                    MuitTipsState = Boolean.TRUE;
-                    ++successCount;
-                } else {
-                    MuitTipsState = Boolean.FALSE;
-                    ++errorCount;
-                }
-                body.setMuitTipsState(MuitTipsState);
-                body.setMuitTipsMessage(objMap.toString());
-                batchMessageTipsHeader.addResult(body);
-            }
-            String billIdstr = billIds.toString();
-            billIdstr.replace("CFOriginalId,", "");
-            batchMessageTipsHeader.setBillId(billIdstr);
-            batchMessageTipsHeader.setFailureCount(errorCount);
-            batchMessageTipsHeader.setSuccessCount(successCount);
-            this.writeSuccessData(batchMessageTipsHeader);
-        } catch (Exception var15) {
-            var15.printStackTrace();
-        }
-        return;
+        ExecutorCountUtil examples = ExecutorCountUtil.getExamples();
+        throw new ShrWebBizException("执行中任务数:"+Math.min(examples.get(),4)+",等待中任务数:"+Math.max(examples.get()-4,0)+"。");
     }
 
     public void batchEnableAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
         ExecutorCountUtil examples = ExecutorCountUtil.getExamples();
         Context ctx = SHRContext.getInstance().getContext(); // 重新获取上下文(如果需要)
-        IMSFServiceFacade msp =null;
+        System.out.println("batchEnableAction");
+        if (examples.get() <= 0) {
+            try {
+                IMSFServiceFacade msp = MSFServiceFacadeFactory.getLocalInstance(ctx);
+                ExecutorService executor = Executors.newFixedThreadPool(4);
 
-        try {
-            msp = MSFServiceFacadeFactory.getLocalInstance(ctx);
-        } catch (BOSException e) {
-            throw new RuntimeException(e);
-        }
+                Map<String, Object> map = Maps.newHashMap();
+                map.put("mack", "org");
+                Map<String, Object> result = (Map<String, Object>) msp.processService("syncStaffManageOSF", map);
+                System.out.println("result:"+ JSON.toJSONString(result));
 
-        if (examples.getCount()<=0) {
-            examples.countPlusPlus();
-            ExecutorService executor = Executors.newSingleThreadExecutor();
-            IMSFServiceFacade finalMsp = msp;
-            executor.submit(() -> {
-                try {
+                List<Map<String, Object>> orgListMap = (List<Map<String, Object>>) result.get("orgListMap");
+                List<Map<String, Object>> posListMap = (List<Map<String, Object>>) result.get("posListMap");
+                int orgLen = orgListMap.size();
+                int batchSize = 100;
+                for (int i = 0; i < orgLen; i+=batchSize) {
+                    examples.countPlusPlus();
+                    int end = Math.min(i + batchSize, orgLen);
+                    List<Map<String, Object>> orgSubListMap = orgListMap.subList(i,end);
+                    SyncOrgStaffManageRunnable syncOrg = new SyncOrgStaffManageRunnable(ctx, orgSubListMap, examples);
+                    executor.submit(syncOrg);
+                }
+                System.out.println("examples:"+ examples.get());
 
-                    Map<String, Object> map = Maps.newHashMap();
-                    Map<String, List<Map<String, Object>>> result = (Map<String, List<Map<String, Object>>>) finalMsp.processService("syncStaffManageOSF", map);
-                    // 处理结果...
-                    //examples.CountClear();
-                } catch (BOSException | EASBizException e) {
-                    log.error("Error in syncStaffManageOSF", e);
-                } catch (Exception e) {
-                    log.error("Unexpected error", e);
-                } finally {
-                    examples.CountClear();
+                int posLen = posListMap.size();
+                for (int i = 0; i < posLen; i+=batchSize) {
+                    examples.countPlusPlus();
+                    int end = Math.min(i + batchSize, posLen);
+                    List<Map<String, Object>> posSubListMap = posListMap.subList(i, end);
+                    SyncPosStaffManageRunnable syncOrg = new SyncPosStaffManageRunnable(ctx, posSubListMap, examples);
+                    executor.submit(syncOrg);
                 }
-            });
-            executor.shutdown();
+                System.out.println("examples:"+ examples.get());
+                executor.shutdown();
+
+            } catch (BOSException | EASBizException e) {
+                e.printStackTrace();
+            }
             throw new ShrWebBizException("触发成功,已在后台执行中,请等待");
-        }else {
+        } else {
             throw new ShrWebBizException("已触发,已在后台执行中,请等待");
         }
     }
 
+    public static void main(String[] args) {
+        ExecutorCountUtil examples = ExecutorCountUtil.getExamples();
+        examples.countPlusPlus();
+        System.out.println(examples.get());
+        examples.countLessLess();
+        System.out.println(examples.get());
+    }
 
 }

+ 88 - 0
websrc/com/kingdee/eas/custom/beisen/synchronouspos/osf/StaffManageProcess.java

@@ -0,0 +1,88 @@
+package com.kingdee.eas.custom.beisen.synchronouspos.osf;
+
+import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Maps;
+import com.kingdee.bos.Context;
+import com.kingdee.bos.rabbitmq.guava.Lists;
+import com.kingdee.eas.custom.beisen.utils.BeiSenUtils;
+import com.kingdee.eas.custom.beisen.utils.Helper;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ * description: StaffManageRunnable <br>
+ * date: 2025/8/12 9:24 <br>
+ * author: lhbj <br>
+ * version: 1.0 <br>
+ */
+public class StaffManageProcess{
+
+    public Map<String, List<Map<String,Object>>> orgProcess(Context context, List<Map<String,Object>> orgListMap) throws IOException, URISyntaxException {
+        Map<String,List<Map<String,Object>>> result = Maps.newHashMap();
+        List<Map<String,Object>> list = Lists.newArrayList();
+        List<Map<String,Object>> listMap = Lists.newArrayList();
+        result.put("list",list);
+        result.put("listMap",listMap);
+        BeiSenUtils b = new BeiSenUtils(context);
+        Helper helper = b.helper;
+        String token = b.getAccessToken();
+        for(Map pos : orgListMap) {
+            // 若访问令牌不为空且开始时间和结束时间不为空
+            if (!com.kingdee.util.StringUtils.isEmpty(token)) {
+                // 创建请求头的 Map
+                Map<String, String> header = new HashMap<String, String>();
+                // 设置请求头的 Content-Type
+                header.put("Content-Type", "application/json");
+                // 设置请求头的 Authorization
+                header.put("Authorization", "Bearer " + token);
+                String url = "https://openapi.italent.cn/UserFrameworkApiV3/api/v1/departments/Put?originalId=" + URLEncoder.encode((String) pos.get("id"), "UTF-8");
+
+                JSONObject requestBody = new JSONObject(pos);
+                System.out.println("url:" + url);
+                System.out.println("requestBody:" + requestBody);
+                JSONObject responseJson = helper.getURL(url, header, requestBody, "PUT", requestBody.getString("posId"), "更新", "北森");
+                System.out.println("responseJson:" + responseJson);
+                listMap.add(responseJson);
+                list.add(pos);
+            }
+        }
+        return result;
+    }
+
+    public Map<String,List<Map<String,Object>>> posProcess(Context context,List<Map<String,Object>> posListMap) throws IOException, URISyntaxException {
+        Map<String,List<Map<String,Object>>> result = Maps.newHashMap();
+        List<Map<String,Object>> list = Lists.newArrayList();
+        List<Map<String,Object>> listMap = Lists.newArrayList();
+        result.put("list",list);
+        result.put("listMap",listMap);
+        BeiSenUtils b = new BeiSenUtils(context);
+        Helper helper = b.helper;
+        String token = b.getAccessToken();
+        for(Map pos : posListMap) {
+            // 若访问令牌不为空且开始时间和结束时间不为空
+            if (!com.kingdee.util.StringUtils.isEmpty(token)) {
+                // 创建请求头的 Map
+                Map<String, String> header = new HashMap<String, String>();
+                // 设置请求头的 Content-Type
+                header.put("Content-Type", "application/json");
+                // 设置请求头的 Authorization
+                header.put("Authorization", "Bearer " + token);
+                String url = "https://openapi.italent.cn/RecruitV6/api/v1/RecruitOnBoarding/UpdatePost";
+                JSONObject requestBody = new JSONObject(pos);
+                System.out.println("url:"+url);
+                System.out.println("requestBody:"+requestBody);
+                JSONObject responseJson = helper.getURL(url,header, requestBody, "PUT",requestBody.getString("posId"),"更新","北森");
+                System.out.println("responseJson:"+responseJson);
+                listMap.add(responseJson);
+                list.add(pos);
+            }
+        }
+        return result;
+    }
+}

+ 50 - 0
websrc/com/kingdee/eas/custom/beisen/synchronouspos/osf/SyncOrgStaffManageRunnable.java

@@ -0,0 +1,50 @@
+package com.kingdee.eas.custom.beisen.synchronouspos.osf;
+
+import com.kingdee.bos.Context;
+import com.kingdee.eas.custom.beisen.synchronouspos.handler.ExecutorCountUtil;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * description: SyncStaffManageRunnable <br>
+ * date: 2025/8/11 18:43 <br>
+ * author: lhbj <br>
+ * version: 1.0 <br>
+ */
+public class SyncOrgStaffManageRunnable implements Runnable{
+    private List<Map<String,Object>> listMap;
+    private Context context;
+    private Map<String,List<Map<String,Object>>> result;
+    private ExecutorCountUtil countUtil;
+    private boolean state = false;
+    public SyncOrgStaffManageRunnable(Context context, List<Map<String,Object>> listMap, ExecutorCountUtil countUtil) {
+        this.context=context;
+        this.listMap=listMap;
+        this.countUtil=countUtil;
+    }
+
+    public Map<String, List<Map<String, Object>>> getResult() {
+        return result;
+    }
+
+    public boolean getState() {
+        return state;
+    }
+
+    @Override
+    public void run() {
+        try {
+            result = new StaffManageProcess().orgProcess(context,listMap);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } catch (URISyntaxException e) {
+            e.printStackTrace();
+        }finally {
+            countUtil.countLessLess();
+            state=true;
+        }
+    }
+}

+ 50 - 0
websrc/com/kingdee/eas/custom/beisen/synchronouspos/osf/SyncPosStaffManageRunnable.java

@@ -0,0 +1,50 @@
+package com.kingdee.eas.custom.beisen.synchronouspos.osf;
+
+import com.kingdee.bos.Context;
+import com.kingdee.eas.custom.beisen.synchronouspos.handler.ExecutorCountUtil;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * description: SyncStaffManageRunnable <br>
+ * date: 2025/8/11 18:43 <br>
+ * author: lhbj <br>
+ * version: 1.0 <br>
+ */
+public class SyncPosStaffManageRunnable implements Runnable{
+    private List<Map<String,Object>> listMap;
+    private Context context;
+    private Map<String,List<Map<String,Object>>> result;
+    private ExecutorCountUtil countUtil;
+    private boolean state = false;
+    public SyncPosStaffManageRunnable(Context context, List<Map<String,Object>> listMap, ExecutorCountUtil countUtil) {
+        this.context=context;
+        this.listMap=listMap;
+        this.countUtil=countUtil;
+    }
+
+    public Map<String, List<Map<String, Object>>> getResult() {
+        return result;
+    }
+
+    public boolean getState() {
+        return state;
+    }
+
+    @Override
+    public void run() {
+        try {
+            result = new StaffManageProcess().posProcess(context,listMap);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } catch (URISyntaxException e) {
+            e.printStackTrace();
+        }finally {
+            countUtil.countLessLess();
+            state=true;
+        }
+    }
+}

+ 49 - 45
websrc/com/kingdee/eas/custom/beisen/synchronouspos/osf/SyncStaffManageOSFService.java

@@ -13,20 +13,41 @@ import com.kingdee.eas.custom.beisen.utils.Helper;
 import com.kingdee.eas.util.app.DbUtil;
 import com.kingdee.jdbc.rowset.IRowSet;
 
+import java.io.IOException;
+import java.net.URISyntaxException;
 import java.net.URLEncoder;
 import java.sql.SQLException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * 编制同步
+ * description: SynchronousPosOSFService <br>
+ * date: 2025/7/11 17:46 <br>
+ * author: lhbj <br>
+ * version: 1.0 <br>
+ */
 public  class SyncStaffManageOSFService implements IHRMsfService {
 
 
+    public  Map<String,List<Map<String,Object>>> orgProcess(Context context,List<Map<String,Object>> orgListMap) throws IOException, URISyntaxException {
+        return new StaffManageProcess().orgProcess(context,orgListMap);
+    }
+
+    public  Map<String,List<Map<String,Object>>> posProcess(Context context,List<Map<String,Object>> posListMap) throws IOException, URISyntaxException {
+        return new StaffManageProcess().posProcess(context,posListMap);
+    }
+
     @Override
     public Object process(Context context, Map<String, Object> map) throws EASBizException, BOSException {
+        String mack = (String) map.get("mack");
+
         Map<String,List<Map<String,Object>>> result = Maps.newHashMap();
         List<Map<String,Object>> list = Lists.newArrayList();
         List<Map<String,Object>> listMap = Lists.newArrayList();
+        List<Map<String,Object>> orgListMap = Lists.newArrayList();
+        List<Map<String,Object>> posListMap = Lists.newArrayList();
         result.put("list",list);
         result.put("listMap",listMap);
         String posPath = (String) map.get("posPath");
@@ -43,8 +64,6 @@ public  class SyncStaffManageOSFService implements IHRMsfService {
         sql.append(" and FChannel = 1 ");
         IRowSet rs = DbUtil.executeQuery(context, sql.toString());
         try{
-            BeiSenUtils b = new BeiSenUtils(context);
-            Helper helper = b.helper;
             BeisenParamByPropertiesUtil posUtil = new BeisenParamByPropertiesUtil(posPath);
             Map<String,String> poskeyMap = posUtil.getConfig();
             BeisenParamByPropertiesUtil orgUtil = new BeisenParamByPropertiesUtil(orgPath);
@@ -55,28 +74,30 @@ public  class SyncStaffManageOSFService implements IHRMsfService {
                 String FYear = rs.getString("FYear");
                 StringBuilder selSql = new StringBuilder();
                 selSql.append(" select * from ( ");
-                selSql.append(" select 'org' orgpos,org.fid posId,org.fname_l2 orgPosName,org.FDisplayName_L2 staffName, ");
+                selSql.append(" select 'org' orgpos,org.fid posId,org.Fnumber orgOriginalId,org.FParentID,org.fname_l2 orgPosName,org.FDisplayName_L2 staffName, ");
                 selSql.append("         org.fid CFOriginalId,(case when staff.FControlWay=0 then 3 when staff.FControlWay=1 then 2 else 1 end) FControlWay, ");
                 selSql.append("         staff.FPersonCount,staff.FStaffYear,staff.FYearActualStart, ");
                 selSql.append("         staff.FOnWayAddCount,staff.FOnWaySubCount, ");
                 selSql.append("         (staff.FStaffYear-staff.FOnWayAddCount+staff.FOnWaySubCount-staff.FPersonCount) FStaffYearUsable, ");
-                selSql.append("         (staff.FState+1) FState,staff.FContainSub ");
+                selSql.append("         (staff.FState+1) FState,staff.FContainSub, ");
+                selSql.append(" 1 orgPosStatus ");
                 selSql.append(" from ");
                 selSql.append(" "+FTableName+" staff ");
                 selSql.append(" left join t_org_admin org on org.fid=staff.FAdminOrgID ");
                 selSql.append(" left join t_org_position pos on pos.fid = staff.FpositionID ");
                 selSql.append(" where pos.fid is null and org.FReserveFieldFirst is not null ");
                 selSql.append(" UNION all ");
-                selSql.append(" select 'pos' orgpos,pos.fid posId,pos.fname_l2 orgPosName,org.FDisplayName_L2 staffName,pos.CFOriginalId, ");
+                selSql.append(" select 'pos' orgpos,pos.fid posId,org.FreserveFieldFirst orgOriginalId,pos.FParentID,pos.fname_l2 orgPosName,org.FDisplayName_L2 staffName,pos.CFOriginalId, ");
                 selSql.append(" (case when staff.FControlWay=0 then 3 when staff.FControlWay=1 then 2 else 1 end) FControlWay, ");
                 selSql.append("         staff.FPersonCount,staff.FStaffYear,staff.FYearActualStart, ");
                 selSql.append("         staff.FOnWayAddCount,staff.FOnWaySubCount, ");
                 selSql.append("         (staff.FStaffYear-staff.FOnWayAddCount+staff.FOnWaySubCount-staff.FPersonCount) FStaffYearUsable, ");
-                selSql.append("         (staff.FState+1) FState,staff.FContainSub ");
+                selSql.append("         (staff.FState+1) FState,staff.FContainSub, ");
+                selSql.append("  (case when pos.FDELETEDSTATUS=2 then 0 else 1 end) orgPosStatus ");
                 selSql.append(" from ");
                 selSql.append(" "+FTableName+" staff ");
-                selSql.append(" left join t_org_admin org on org.fid=staff.FAdminOrgID ");
                 selSql.append(" left join t_org_position pos on pos.fid = staff.FpositionID ");
+                selSql.append(" left join t_org_admin org on org.fid=pos.FADMINORGUNITID ");
                 selSql.append(" where pos.fid is not null and pos.CFOriginalId is not null ");
                 selSql.append(" ) t order by t.FContainSub desc ");
                 IRowSet rsSel = DbUtil.executeQuery(context, selSql.toString());
@@ -84,57 +105,38 @@ public  class SyncStaffManageOSFService implements IHRMsfService {
 
                 while (rsSel.next()){
                     String orgpos= rsSel.getString("orgpos");
-
-                    String token = b.getAccessToken();
                     if("org".equals(orgpos)){
                         Map<String, Object> pos = this.getPostData(orgkeyMap,rsSel);
-
                         if(null!=pos){
-                            // 若访问令牌不为空且开始时间和结束时间不为空
-                            if (!com.kingdee.util.StringUtils.isEmpty(token)) {
-                                // 创建请求头的 Map
-                                Map<String, String> header = new HashMap<String, String>();
-                                // 设置请求头的 Content-Type
-                                header.put("Content-Type", "application/json");
-                                // 设置请求头的 Authorization
-                                header.put("Authorization", "Bearer " + token);
-                                String url = "https://openapi.italent.cn/UserFrameworkApiV3/api/v1/departments/Put?originalId="+ URLEncoder.encode((String) pos.get("id"),"UTF-8");
-
-                                JSONObject requestBody = new JSONObject(pos);
-                                System.out.println("url:"+url);
-                                System.out.println("requestBody:"+requestBody);
-                                JSONObject responseJson = helper.getURL(url,header, requestBody, "PUT",requestBody.getString("posId"),"更新","北森");
-                                System.out.println("responseJson:"+responseJson);
-                                listMap.add(responseJson);
-                                list.add(pos);
-                            }
+                            orgListMap.add(pos);
                         }
                     }else if ("pos".equals(orgpos)){
                         Map<String, Object> pos = this.getPostData(poskeyMap,rsSel);
                         if(null!=pos){
-                            // 若访问令牌不为空且开始时间和结束时间不为空
-                            if (!com.kingdee.util.StringUtils.isEmpty(token)) {
-                                // 创建请求头的 Map
-                                Map<String, String> header = new HashMap<String, String>();
-                                // 设置请求头的 Content-Type
-                                header.put("Content-Type", "application/json");
-                                // 设置请求头的 Authorization
-                                header.put("Authorization", "Bearer " + token);
-                                String url = "https://openapi.italent.cn/RecruitV6/api/v1/RecruitOnBoarding/UpdatePost";
-                                JSONObject requestBody = new JSONObject(pos);
-                                System.out.println("url:"+url);
-                                System.out.println("requestBody:"+requestBody);
-                                JSONObject responseJson = helper.getURL(url,header, requestBody, "PUT",requestBody.getString("posId"),"更新","北森");
-                                System.out.println("responseJson:"+responseJson);
-                                listMap.add(responseJson);
-                                list.add(pos);
-                            }
+                            posListMap.add(pos);
                         }
                     }
                 }
+                if("org".equals(mack)||"pos".equals(mack)){
+                    //Map<String,List<Map<String,Object>>> resultOrg = this.orgProcess(context,orgListMap);
+                    result.put("orgListMap",orgListMap);
+                    result.put("posListMap",posListMap);
+                } else {
+                    result.put("orgListMap",orgListMap);
+                    result.put("posListMap",posListMap);
+                    Map<String,List<Map<String,Object>>> resultOrg = this.orgProcess(context,orgListMap);
+                    Map<String,List<Map<String,Object>>> resultPos = this.posProcess(context,posListMap);
+                    list.addAll(resultOrg.get("list"));
+                    listMap.addAll(resultOrg.get("listMap"));
+                    list.addAll(resultPos.get("list"));
+                    listMap.addAll(resultPos.get("listMap"));
+                    result.put("orgListMap",orgListMap);
+                    result.put("posListMap",posListMap);
+                }
             }
         }catch (Exception e){
             e.printStackTrace();
+            throw new BOSException(e);
         }finally {
 
         }
@@ -240,4 +242,6 @@ public  class SyncStaffManageOSFService implements IHRMsfService {
         }
         return pos;
     }
+
+
 }

+ 4 - 0
websrc/com/kingdee/eas/custom/beisen/synchronouspos/osf/SynchronousPosOSFService.java

@@ -27,6 +27,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
+ * ¸Úλͬ²½
  * description: SynchronousPosOSFService <br>
  * date: 2025/7/11 17:46 <br>
  * author: lhbj <br>
@@ -76,6 +77,7 @@ public class SynchronousPosOSFService implements IHRMsfService {
      * @throws SQLException
      */
     protected List<Map<String, Object>> getPostData(Context ctx,Map<String,String> keyMap,StringBuilder sql) throws BOSException, SQLException {
+
         IRowSet rowSet = DbUtil.executeQuery(ctx,sql.toString());
         List<Map<String, Object>> posList = Lists.newArrayList();
         while (rowSet.next()){
@@ -270,6 +272,7 @@ public class SynchronousPosOSFService implements IHRMsfService {
         BeiSenUtils b = new BeiSenUtils(ctx);
         Helper helper = b.helper;
         StringBuilder sql = this.getSql(posId, syncStartTimeStr, syncEndTimeStr, true);
+        System.out.println("_sendAddNewPosToBeisen:"+sql);
         List<Map<String, Object>> list = this.getPostData(ctx, keyMap, sql);
         List<JSONObject> responseList = Lists.newArrayList();
         for (Map<String, Object> pos : list) {
@@ -304,6 +307,7 @@ public class SynchronousPosOSFService implements IHRMsfService {
         BeiSenUtils b = new BeiSenUtils(ctx);
         Helper helper = b.helper;
         StringBuilder sql1 = this.getSql(posId,syncStartTimeStr,syncEndTimeStr,false);
+        System.out.println("_sendAddNewPosToBeisen:"+sql1);
         List<Map<String,Object>> list1 = this.getPostData(ctx,keyMap,sql1);
         List<JSONObject> responseList = Lists.newArrayList();
         // »ñÈ¡·ÃÎÊÁîÅÆ

+ 37 - 39
websrc/com/kingdee/eas/custom/beisen/synchronouspos/osf/posConfig.properties

@@ -1,43 +1,41 @@
-customProperties.posNumber=extgangweibianma_433107_380359134
+customProperties.posNumber=extgangweibianma_611852_717278830
 orgOriginalId=Org,integer
 posId=posId
 posName=Name
 posOriginalId=id
-#pospOriginalId1=upManage,integer
-#pospOriginalId2=dotManage,integer
-posDeletedStatus=Status,integer
-customProperties.posZwjzygx=extzhiweijiazhiyugongxian_433107_832609725
-customProperties.posZyzz=extzhuyaozhize_433107_1869816037
-customProperties.posGwdwsccg=extzhiweiduiwaijiaofuchengguo_433107_848485055
-customProperties.posCgzb=extchengguodezhibiao_433107_672018534
-customProperties.posZlzb=extzhiliangzhibiao_433107_1153480133
-customProperties.hrJobFamily=extzhiweizu_433107_1497123321
-customProperties.hrJobCategory=extzhiweilei_433107_1088618169
-customProperties.jobscHrJobSubCategory=extzhiweizilei_433107_1602866242
-customProperties.jobNumber=extzhiweibianma_433107_1290712431
-customProperties.jobName=extzhiweimingcheng_433107_512846676
-customProperties.lowJobLevel=extzuidizhiceng_433107_355678147
-customProperties.highJobLevel=extzuigaozhiceng_433107_174877615
-customProperties.lowJobGrade=extzuigaozhiji_433107_2045773973
-customProperties.highJobGrade=extzuidizhiji_433107_1385945899
-customProperties.education=extjiaoyushuiping_433107_1951575537
-customProperties.requirement=extzhuanyeyaoqiu_433107_1776687243
-customProperties.certification=extzigezhengshu_433107_1510044483
-customProperties.foreignLang=extwaiyuyaoqiu_433107_1249481814
-customProperties.knowledge=extzhishi_433107_641379677
-customProperties.skills=extjineng_433107_956614495
-customProperties.experience=extjingyan_433107_295083920
-customProperties.coreCompe=extguanjiansuzhi_433107_1844176444
-customProperties.position1=extgangwei1_433107_1257343019
-customProperties.ptime1=extshijian_433107_1542482809
-customProperties.position2=extgangwei2_433107_1926360484
-customProperties.ptime2=extshijian2_433107_2055690495
-customProperties.workAdd=extgongzuodidian_433107_1073710237
-customProperties.frequency=extchuchapinlu_433107_902126115
-customProperties.jobRespon=extgongzuozhize_433107_1005575449
-customProperties.qualifications=extrenzhizige_433107_1814678007
-customProperties.reserved1=extyuliuziduan1_433107_1429210295
-customProperties.reserved2=extyuliuziduan2_433107_1906458378
-customProperties.reserved3=extyuliuziduan3_433107_1446014427
-customProperties.reserved4=extyuliuziduan4_433107_785068249
-customProperties.reserved5=extyuliuziduan5_433107_2140944373
+posDeletedStatus=status,integer
+customProperties.posZwjzygx=extzhiweijiazhiyugongxian_611852_316714607
+customProperties.posZyzz=extzhuyaozhize_611852_517046142
+customProperties.posGwdwsccg=extzhiweiduiwaijiaofuchengguo_611852_1334269114
+customProperties.posCgzb=extchengguodezhibiao_611852_286609099
+customProperties.posZlzb=extzhiliangzhibiao_611852_1400230320
+customProperties.hrJobFamily=extzhiweizu_611852_1577409965
+customProperties.hrJobCategory=extzhiweilei_611852_1452533500
+customProperties.jobscHrJobSubCategory=extzhiweizilei_611852_384106906
+customProperties.jobNumber=extzhiweibianma_611852_1044410721
+customProperties.jobName=extzhiweimingcheng_611852_1973973347
+customProperties.lowJobLevel=extzuidizhiceng_611852_2142868778
+customProperties.highJobLevel=extzuigaozhiceng_611852_585596915
+customProperties.highJobGrade=extzuigaozhiji_611852_2055468542
+customProperties.lowJobGrade=extzuidizhiji_611852_1826544014
+customProperties.education=extjiaoyushuiping_611852_1924306834
+customProperties.requirement=extzhuanyeyaoqiu_611852_172994339
+customProperties.certification=extzigezhengshu_611852_1625932122
+customProperties.foreignLang=extwaiyuyaoqiu_611852_1298754968
+customProperties.knowledge=extzhishi_611852_291356608
+customProperties.skills=extjineng_611852_395273741
+customProperties.experience=extjingyan_611852_1185247246
+customProperties.coreCompe=extguanjiansuzhi_611852_493551551
+customProperties.position1=extgangwei1_611852_367564218
+customProperties.ptime1=extshijian1_611852_1649211176
+customProperties.position2=extgangwei2_611852_2037021279
+customProperties.ptime2=extshijian2_611852_1024768658
+customProperties.workAdd=extgongzuodidian_611852_395906990
+customProperties.frequency=extchuchapinlu_611852_522503076
+customProperties.jobRespon=extgongzuozhize_611852_1269250870
+customProperties.qualifications=extrenzhizige_611852_1076974893
+customProperties.reserved1=extyuliuziduan1_611852_474809659
+customProperties.reserved2=extyuliuziduan2_611852_1228338586
+customProperties.reserved3=extyuliuziduan3_611852_2110163217
+customProperties.reserved4=extyuliuziduan4_611852_909018623
+customProperties.reserved5=extyuliuziduan5_611852_908820417

+ 0 - 936
websrc/com/kingdee/eas/custom/webbeisen/utils/JsonFormatConverter.java

@@ -214,940 +214,4 @@ public class JsonFormatConverter {
             fields.remove(index);
         }
     }
-
-    public static void main(String[] args) {
-        // 示例JSON数据
-        String originalJson = "[{\n" +
-                "    \"staffInfos\": {\n" +
-                "        \"photoPath\": null,\n" +
-                "        \"photoDownLoadUrl\": \"\",\n" +
-                "        \"idCardFrontPath\": \"dfs://RecruitOnBoardingFile/433107/1753150417/3/346872eb18da484fa5accc287c4d6d84.png\",\n" +
-                "        \"idCardFrontDownLoadUrl\": \"//dfiles.italent.cn/download/recruitonboardingfile/433107/1753150417/3/346872eb18da484fa5accc287c4d6d84.png?sig_t=1753238699&sig_exp=2592000&sig_a=recruitment&sig_pm=8&sig_npm=2&sig_v=1&sig=32d7a9a3a75724d79e3789741d38d4f076cc398a\",\n" +
-                "        \"idCardBackPath\": \"dfs://RecruitOnBoardingFile/433107/1753150441/3/f09e281d42bc4d79a5d1f2b91960608b.jpeg\",\n" +
-                "        \"idCardBackDownLoadUrl\": \"//dfiles.italent.cn/download/recruitonboardingfile/433107/1753150441/3/f09e281d42bc4d79a5d1f2b91960608b.jpeg?sig_t=1753238699&sig_exp=2592000&sig_a=recruitment&sig_pm=8&sig_npm=2&sig_v=1&sig=d43d989bb948f5998d0bc542c374a535f591b7ed\",\n" +
-                "        \"graduationPath\": null,\n" +
-                "        \"graduationDownLoadUrl\": \"\",\n" +
-                "        \"degreePath\": null,\n" +
-                "        \"degreeDownLoadUrl\": \"\",\n" +
-                "        \"physicalPath\": null,\n" +
-                "        \"physicalDownLoadUrl\": \"\",\n" +
-                "        \"bankPhotoPath\": null,\n" +
-                "        \"bankPhotoDownLoadUrl\": \"\",\n" +
-                "        \"avatarPath\": \"dfs://RecruitOnBoardingFile/433107/1753150018/3/16c649e58c0e4e5a94831f62491b340a.png\",\n" +
-                "        \"avatarDownLoadUrl\": \"//dfiles.italent.cn/download/recruitonboardingfile/433107/1753150018/3/16c649e58c0e4e5a94831f62491b340a.png?sig_t=1753238699&sig_exp=2592000&sig_a=recruitment&sig_pm=8&sig_npm=2&sig_v=1&sig=3970f66d3ae113559c411c10abd5864bd95210de\",\n" +
-                "        \"id\": \"3ce6f472-659a-4299-9ced-7913736bbf89\",\n" +
-                "        \"name\": \"刘颖\",\n" +
-                "        \"email\": \"liuying@yfdee.com\",\n" +
-                "        \"engName\": null,\n" +
-                "        \"sex\": 0,\n" +
-                "        \"educationBackground\": null,\n" +
-                "        \"mobilePhone\": \"19892761659\",\n" +
-                "        \"mobileType\": 1,\n" +
-                "        \"officeTel\": null,\n" +
-                "        \"homePhone\": null,\n" +
-                "        \"idCardType\": 1,\n" +
-                "        \"idNumber\": \"410802198909128831\",\n" +
-                "        \"marryStatus\": 2,\n" +
-                "        \"nationality\": \"1\",\n" +
-                "        \"homeAddress\": \"现居住地址(精确到门牌)\",\n" +
-                "        \"idCardDate\": \"2037-04-21T00:00:00\",\n" +
-                "        \"children\": null,\n" +
-                "        \"registeredType\": null,\n" +
-                "        \"registedAddress\": null,\n" +
-                "        \"personalHomePage\": null,\n" +
-                "        \"probationDate\": null,\n" +
-                "        \"politicalState\": 4,\n" +
-                "        \"speciality\": null,\n" +
-                "        \"lastSchool\": \"\",\n" +
-                "        \"major\": null,\n" +
-                "        \"QQ\": null,\n" +
-                "        \"weixin\": null,\n" +
-                "        \"staffStatus\": null,\n" +
-                "        \"bank\": 1,\n" +
-                "        \"photo\": null,\n" +
-                "        \"idCardFront\": null,\n" +
-                "        \"idCardBack\": null,\n" +
-                "        \"graduation\": null,\n" +
-                "        \"degree\": null,\n" +
-                "        \"physical\": null,\n" +
-                "        \"bankPhoto\": null,\n" +
-                "        \"workDate\": \"2022-05-05T00:00:00\",\n" +
-                "        \"registeredAddress\": null,\n" +
-                "        \"registeredLocation\": null,\n" +
-                "        \"constellation\": null,\n" +
-                "        \"emergencyContact\": \"刘某某\",\n" +
-                "        \"selfRelation\": \"父子\",\n" +
-                "        \"contactPhone\": \"15817432323\",\n" +
-                "        \"bankAccount\": \"6222021102025779326\",\n" +
-                "        \"birthday\": \"1989-09-12T00:00:00\",\n" +
-                "        \"graduationDate\": null,\n" +
-                "        \"entryDate\": \"0001-01-01T00:00:00\",\n" +
-                "        \"planEntryDate\": null,\n" +
-                "        \"namePy\": \"liuying\",\n" +
-                "        \"avatar\": null,\n" +
-                "        \"extendInfos\": [\n" +
-                "            {\n" +
-                "                \"text\": null,\n" +
-                "                \"name\": \"DomicilePlace\",\n" +
-                "                \"value\": \"广东省深圳市南山区中心路深圳湾段3019号天虹大厦9-14楼、17-20楼\"\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": null,\n" +
-                "                \"name\": \"Onwer\",\n" +
-                "                \"value\": 10000\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"exthukousuozaidi_433107_780964926\",\n" +
-                "                \"value\": \"户口所在地\"\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extkaihuhangmingcheng_433107_1081523571\",\n" +
-                "                \"value\": \"账户名称\"\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extkaihusheng_433107_743343586\",\n" +
-                "                \"value\": \"开户省\"\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extkaihushi_433107_596805120\",\n" +
-                "                \"value\": \"开户市\"\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extneibutuijianren_433107_956539550\",\n" +
-                "                \"value\": \"内部推荐人\"\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extrenlimianshirenxingming_433107_1793498403\",\n" +
-                "                \"value\": \"人力面试人姓名\"\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extshengao_433107_1625044476\",\n" +
-                "                \"value\": \"168\"\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"exttezhangaihao_433107_571932316\",\n" +
-                "                \"value\": \"特长爱好\"\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"exttuijianrenguanxi_433107_1760321961\",\n" +
-                "                \"value\": \"推荐人关系\"\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extyingpinqudao_433107_1264879034\",\n" +
-                "                \"value\": \"应聘渠道\"\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extyingyunengli_433107_1502312786\",\n" +
-                "                \"value\": \"1\"\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extzhuanyemianshirenxingming_433107_243011402\",\n" +
-                "                \"value\": \"专业面试人姓名\"\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extceshi1_433107_1347992934\",\n" +
-                "                \"value\": null\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extgongsidianziyouxiang_433107_139122406\",\n" +
-                "                \"value\": null\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extceshixialaxuanxiang_433107_1877407355\",\n" +
-                "                \"value\": null\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extgongsidianziyouxiang2_433107_849883539\",\n" +
-                "                \"value\": null\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extxianjuzhudi_433107_2099341904\",\n" +
-                "                \"value\": null\n" +
-                "            },\n" +
-                "            {\n" +
-                "                \"text\": \"\",\n" +
-                "                \"name\": \"extyinhangmingcheng_433107_1859624309\",\n" +
-                "                \"value\": null\n" +
-                "            }\n" +
-                "        ],\n" +
-                "        \"fileInfos\": null\n" +
-                "    },\n" +
-                "    \"experienceNew\": [\n" +
-                "        {\n" +
-                "            \"id\": \"d37e5b5c-54ab-4b7b-af06-ec3c08d436b6\",\n" +
-                "            \"companyScale\": 0,\n" +
-                "            \"reportTo\": null,\n" +
-                "            \"underlingNumber\": 0,\n" +
-                "            \"startDate\": \"2022-01-01T00:00:00\",\n" +
-                "            \"companyName\": \"单位名称1\",\n" +
-                "            \"companyType\": 0,\n" +
-                "            \"companyInfo\": null,\n" +
-                "            \"industry\": 0,\n" +
-                "            \"department\": null,\n" +
-                "            \"jobCategory\": 0,\n" +
-                "            \"jobTitle\": \"职务\",\n" +
-                "            \"jobLevel\": 0,\n" +
-                "            \"endDate\": \"2023-12-31T00:00:00\",\n" +
-                "            \"jobProperty\": null,\n" +
-                "            \"salary\": null,\n" +
-                "            \"isAbroad\": null,\n" +
-                "            \"jobDuty\": null,\n" +
-                "            \"reasonOfLeaving\": null,\n" +
-                "            \"referenceName\": \"汇报上级\",\n" +
-                "            \"referencePosition\": null,\n" +
-                "            \"referenceLinkInfo\": null,\n" +
-                "            \"referenceRelation\": null,\n" +
-                "            \"baseAddress\": null,\n" +
-                "            \"extendInfos\": [\n" +
-                "                {\n" +
-                "                    \"text\": null,\n" +
-                "                    \"name\": \"Onwer\",\n" +
-                "                    \"value\": 408191750\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extfujian_433107_1942426904\",\n" +
-                "                    \"value\": \"dfs://RecruitOnBoardingFile/433107/1753150613/3/75dbf544b95c456b8ede85cf89eb7052.png,dfs://RecruitOnBoardingFile/433107/1753150617/3/651e6f4bf98040339de1a98020e1aadd.png,dfs://RecruitOnBoardingFile/433107/1753150626/3/64f16afece0e4a55b8f5a739a5b3a11f.png\"\n" +
-                "                }\n" +
-                "            ],\n" +
-                "            \"fileInfos\": [\n" +
-                "                {\n" +
-                "                    \"name\": \"extfujian_433107_1942426904\",\n" +
-                "                    \"downloadUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753150613/3/75dbf544b95c456b8ede85cf89eb7052.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=54885dfbdec8e1195f881e8b1b33783d919327f2\",\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753150617/3/651e6f4bf98040339de1a98020e1aadd.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=b43a42301f944e82c1d54311c33abefe492fd661\",\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753150626/3/64f16afece0e4a55b8f5a739a5b3a11f.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=06f7604e94a32e2c39f01483c444aea8a42d6df6\"\n" +
-                "                    ],\n" +
-                "                    \"clientUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753150613/3/75dbf544b95c456b8ede85cf89eb7052.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=85f0f35be26d477205247efe4538283884c87594\",\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753150617/3/651e6f4bf98040339de1a98020e1aadd.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=0be3de0eb3b4516ce81e029dd1cf6422ab03e390\",\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753150626/3/64f16afece0e4a55b8f5a739a5b3a11f.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=1c302b0f8b673320705486e02fa9aae6a1693d3b\"\n" +
-                "                    ]\n" +
-                "                }\n" +
-                "            ]\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"id\": \"9e50d1be-e84c-45fe-bf56-efd3311aa712\",\n" +
-                "            \"companyScale\": 0,\n" +
-                "            \"reportTo\": null,\n" +
-                "            \"underlingNumber\": 0,\n" +
-                "            \"startDate\": \"2023-01-01T00:00:00\",\n" +
-                "            \"companyName\": \"单位名称2\",\n" +
-                "            \"companyType\": 0,\n" +
-                "            \"companyInfo\": null,\n" +
-                "            \"industry\": 0,\n" +
-                "            \"department\": null,\n" +
-                "            \"jobCategory\": 0,\n" +
-                "            \"jobTitle\": \"职务2\",\n" +
-                "            \"jobLevel\": 0,\n" +
-                "            \"endDate\": \"2023-12-31T00:00:00\",\n" +
-                "            \"jobProperty\": null,\n" +
-                "            \"salary\": null,\n" +
-                "            \"isAbroad\": null,\n" +
-                "            \"jobDuty\": null,\n" +
-                "            \"reasonOfLeaving\": null,\n" +
-                "            \"referenceName\": \"汇报上级2\",\n" +
-                "            \"referencePosition\": null,\n" +
-                "            \"referenceLinkInfo\": null,\n" +
-                "            \"referenceRelation\": null,\n" +
-                "            \"baseAddress\": null,\n" +
-                "            \"extendInfos\": [\n" +
-                "                {\n" +
-                "                    \"text\": null,\n" +
-                "                    \"name\": \"Onwer\",\n" +
-                "                    \"value\": 408191750\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extfujian_433107_1942426904\",\n" +
-                "                    \"value\": \"dfs://RecruitOnBoardingFile/433107/1753150718/3/27be63afdcc64108acdb4433836526ec.png,dfs://RecruitOnBoardingFile/433107/1753150729/3/82aa08ffc479439bb50e94680b4e760b.png\"\n" +
-                "                }\n" +
-                "            ],\n" +
-                "            \"fileInfos\": [\n" +
-                "                {\n" +
-                "                    \"name\": \"extfujian_433107_1942426904\",\n" +
-                "                    \"downloadUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753150718/3/27be63afdcc64108acdb4433836526ec.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=4d39ced563c57efad883d31f44268061df2a10f4\",\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753150729/3/82aa08ffc479439bb50e94680b4e760b.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=49810c7b4e080146098338bf65b23cefa121f7f3\"\n" +
-                "                    ],\n" +
-                "                    \"clientUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753150718/3/27be63afdcc64108acdb4433836526ec.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=2090da1bcd71bceac9003acf7965be9eb1c00fb2\",\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753150729/3/82aa08ffc479439bb50e94680b4e760b.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=ea7322045b18c18584fb074a879c4d83fea90ed7\"\n" +
-                "                    ]\n" +
-                "                }\n" +
-                "            ]\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"id\": \"7bd7309d-3f3f-4c54-b888-ffdbde54dc3d\",\n" +
-                "            \"companyScale\": 0,\n" +
-                "            \"reportTo\": null,\n" +
-                "            \"underlingNumber\": 0,\n" +
-                "            \"startDate\": \"2024-01-01T00:00:00\",\n" +
-                "            \"companyName\": \"单位名称3\",\n" +
-                "            \"companyType\": 0,\n" +
-                "            \"companyInfo\": null,\n" +
-                "            \"industry\": 0,\n" +
-                "            \"department\": null,\n" +
-                "            \"jobCategory\": 0,\n" +
-                "            \"jobTitle\": \"职务3\",\n" +
-                "            \"jobLevel\": 0,\n" +
-                "            \"endDate\": \"2025-07-22T00:00:00\",\n" +
-                "            \"jobProperty\": null,\n" +
-                "            \"salary\": null,\n" +
-                "            \"isAbroad\": null,\n" +
-                "            \"jobDuty\": null,\n" +
-                "            \"reasonOfLeaving\": null,\n" +
-                "            \"referenceName\": \"汇报上级3\",\n" +
-                "            \"referencePosition\": null,\n" +
-                "            \"referenceLinkInfo\": null,\n" +
-                "            \"referenceRelation\": null,\n" +
-                "            \"baseAddress\": null,\n" +
-                "            \"extendInfos\": [\n" +
-                "                {\n" +
-                "                    \"text\": null,\n" +
-                "                    \"name\": \"Onwer\",\n" +
-                "                    \"value\": 408191750\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extfujian_433107_1942426904\",\n" +
-                "                    \"value\": null\n" +
-                "                }\n" +
-                "            ],\n" +
-                "            \"fileInfos\": [\n" +
-                "                {\n" +
-                "                    \"name\": \"extfujian_433107_1942426904\",\n" +
-                "                    \"downloadUrls\": [],\n" +
-                "                    \"clientUrls\": []\n" +
-                "                }\n" +
-                "            ]\n" +
-                "        }\n" +
-                "    ],\n" +
-                "    \"education\": [\n" +
-                "        {\n" +
-                "            \"id\": \"66563a85-b1f9-49df-942b-434214b5089f\",\n" +
-                "            \"classCount\": null,\n" +
-                "            \"collegeName\": \"学校名称2\",\n" +
-                "            \"degree\": 2,\n" +
-                "            \"educationLevel\": 1,\n" +
-                "            \"endDate\": \"2017-12-31T00:00:00\",\n" +
-                "            \"formsOfLearning\": 1,\n" +
-                "            \"gpa\": null,\n" +
-                "            \"graduationThesis\": null,\n" +
-                "            \"isAbroad\": null,\n" +
-                "            \"majorCategory\": null,\n" +
-                "            \"majorCourses\": null,\n" +
-                "            \"majorDescription\": null,\n" +
-                "            \"majorName\": \"专业1\",\n" +
-                "            \"majorOrder\": null,\n" +
-                "            \"placeInClass\": null,\n" +
-                "            \"schoolName\": null,\n" +
-                "            \"schoolReferenceContact\": null,\n" +
-                "            \"schoolReferenceName\": null,\n" +
-                "            \"schoolReferencePosition\": null,\n" +
-                "            \"schoolReferenceRelation\": null,\n" +
-                "            \"startDate\": \"2014-01-01T00:00:00\",\n" +
-                "            \"subjectResearch\": null,\n" +
-                "            \"trainingMode\": null,\n" +
-                "            \"tutorContact\": null,\n" +
-                "            \"tutorName\": null,\n" +
-                "            \"tutorPostion\": null,\n" +
-                "            \"extendInfos\": [\n" +
-                "                {\n" +
-                "                    \"text\": null,\n" +
-                "                    \"name\": \"Onwer\",\n" +
-                "                    \"value\": 408191750\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extfujian_433107_167438188\",\n" +
-                "                    \"value\": \"dfs://RecruitOnBoardingFile/433107/1753151194/3/7cdb089db2e44da1812e4bdda7e8a364.jpg,dfs://RecruitOnBoardingFile/433107/1753151199/3/73a22712eccf46cdb2048e68a1a4be11.jpeg\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extxuelizhengshubianhao_433107_1947905721\",\n" +
-                "                    \"value\": \"学历证书编号2\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extxuexiaoleixing_433107_554978727\",\n" +
-                "                    \"value\": \"2\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extxuezhinian_433107_1826569121\",\n" +
-                "                    \"value\": \"3\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extzuigaoxueli_433107_1078329652\",\n" +
-                "                    \"value\": true\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extzuigaoxuewei_433107_907391900\",\n" +
-                "                    \"value\": true\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extbeizhu_433107_1017382434\",\n" +
-                "                    \"value\": null\n" +
-                "                }\n" +
-                "            ],\n" +
-                "            \"fileInfos\": [\n" +
-                "                {\n" +
-                "                    \"name\": \"extfujian_433107_167438188\",\n" +
-                "                    \"downloadUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753151194/3/7cdb089db2e44da1812e4bdda7e8a364.jpg?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=215a23ac0bf57f57da9afeea9048ca0f5121fdd7\",\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753151199/3/73a22712eccf46cdb2048e68a1a4be11.jpeg?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=db50969b792153d4c3498f300fb2c9dc8992430d\"\n" +
-                "                    ],\n" +
-                "                    \"clientUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753151194/3/7cdb089db2e44da1812e4bdda7e8a364.jpg?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=4023103a525770f611e7feb621710c12d3cdf4b6\",\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753151199/3/73a22712eccf46cdb2048e68a1a4be11.jpeg?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=02c489673fc6616d550f6d20cf9568079d0d18fe\"\n" +
-                "                    ]\n" +
-                "                }\n" +
-                "            ]\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"id\": \"f63098b6-9634-47d4-a600-ac5f39e12209\",\n" +
-                "            \"classCount\": null,\n" +
-                "            \"collegeName\": \"学校名称1\",\n" +
-                "            \"degree\": 1,\n" +
-                "            \"educationLevel\": 3,\n" +
-                "            \"endDate\": \"2013-07-01T00:00:00\",\n" +
-                "            \"formsOfLearning\": 2,\n" +
-                "            \"gpa\": null,\n" +
-                "            \"graduationThesis\": null,\n" +
-                "            \"isAbroad\": null,\n" +
-                "            \"majorCategory\": null,\n" +
-                "            \"majorCourses\": null,\n" +
-                "            \"majorDescription\": null,\n" +
-                "            \"majorName\": \"专业1\",\n" +
-                "            \"majorOrder\": null,\n" +
-                "            \"placeInClass\": null,\n" +
-                "            \"schoolName\": null,\n" +
-                "            \"schoolReferenceContact\": null,\n" +
-                "            \"schoolReferenceName\": null,\n" +
-                "            \"schoolReferencePosition\": null,\n" +
-                "            \"schoolReferenceRelation\": null,\n" +
-                "            \"startDate\": \"2010-01-01T00:00:00\",\n" +
-                "            \"subjectResearch\": null,\n" +
-                "            \"trainingMode\": null,\n" +
-                "            \"tutorContact\": null,\n" +
-                "            \"tutorName\": null,\n" +
-                "            \"tutorPostion\": null,\n" +
-                "            \"extendInfos\": [\n" +
-                "                {\n" +
-                "                    \"text\": null,\n" +
-                "                    \"name\": \"Onwer\",\n" +
-                "                    \"value\": 408191750\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extbeizhu_433107_1017382434\",\n" +
-                "                    \"value\": \"备注11\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extfujian_433107_167438188\",\n" +
-                "                    \"value\": \"dfs://RecruitOnBoardingFile/433107/1753151095/3/05237960bfff4650bcc8ecd3ab97b2eb.png,dfs://RecruitOnBoardingFile/433107/1753151100/3/9918d01208d1496880579fc9582b6720.png,dfs://RecruitOnBoardingFile/433107/1753151106/3/76cc098403e44c428914e0e3b4680a98.png\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extxuelizhengshubianhao_433107_1947905721\",\n" +
-                "                    \"value\": \"学历证书编号1\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extxuexiaoleixing_433107_554978727\",\n" +
-                "                    \"value\": \"2\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extxuezhinian_433107_1826569121\",\n" +
-                "                    \"value\": \"3\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extzuigaoxueli_433107_1078329652\",\n" +
-                "                    \"value\": false\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extzuigaoxuewei_433107_907391900\",\n" +
-                "                    \"value\": false\n" +
-                "                }\n" +
-                "            ],\n" +
-                "            \"fileInfos\": [\n" +
-                "                {\n" +
-                "                    \"name\": \"extfujian_433107_167438188\",\n" +
-                "                    \"downloadUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753151095/3/05237960bfff4650bcc8ecd3ab97b2eb.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=f1139669f6dcf39332c428e8a90db81bf637703d\",\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753151100/3/9918d01208d1496880579fc9582b6720.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=ed730d063be5d2379e25309175796d4df61a0ab9\",\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753151106/3/76cc098403e44c428914e0e3b4680a98.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=e3f1438955c4801a5aa8c62e54deb6ee9e58b97a\"\n" +
-                "                    ],\n" +
-                "                    \"clientUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753151095/3/05237960bfff4650bcc8ecd3ab97b2eb.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=928f875b8795204172bbac486dec5ce3723cb9cb\",\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753151100/3/9918d01208d1496880579fc9582b6720.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=e03f640890641f96886f70a3b16df9507382bb4a\",\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753151106/3/76cc098403e44c428914e0e3b4680a98.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=8f801cb2eb4448fbe6045dbc377c1a0e7aa83a17\"\n" +
-                "                    ]\n" +
-                "                }\n" +
-                "            ]\n" +
-                "        }\n" +
-                "    ],\n" +
-                "    \"family\": [\n" +
-                "        {\n" +
-                "            \"id\": \"074a511d-19ea-4ad9-9022-b5c3e774218a\",\n" +
-                "            \"age\": 0,\n" +
-                "            \"companyName\": \"工作单位2\",\n" +
-                "            \"email\": null,\n" +
-                "            \"familyLocaltion\": null,\n" +
-                "            \"jobTitle\": null,\n" +
-                "            \"name\": \"陈某某\",\n" +
-                "            \"politicalStatus\": 0,\n" +
-                "            \"relation\": \"母子\",\n" +
-                "            \"telephone\": \"13469406235\",\n" +
-                "            \"gender\": null,\n" +
-                "            \"extendInfos\": [\n" +
-                "                {\n" +
-                "                    \"text\": null,\n" +
-                "                    \"name\": \"Onwer\",\n" +
-                "                    \"value\": 408191750\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extxianjuzhudi_433107_39649856\",\n" +
-                "                    \"value\": \"现居住地2\"\n" +
-                "                }\n" +
-                "            ],\n" +
-                "            \"fileInfos\": []\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"id\": \"89520509-4827-407c-a86b-e95f15426fe2\",\n" +
-                "            \"age\": 0,\n" +
-                "            \"companyName\": \"工作单位1\",\n" +
-                "            \"email\": null,\n" +
-                "            \"familyLocaltion\": null,\n" +
-                "            \"jobTitle\": null,\n" +
-                "            \"name\": \"刘某某\",\n" +
-                "            \"politicalStatus\": 0,\n" +
-                "            \"relation\": \"父子\",\n" +
-                "            \"telephone\": \"15817432323\",\n" +
-                "            \"gender\": null,\n" +
-                "            \"extendInfos\": [\n" +
-                "                {\n" +
-                "                    \"text\": null,\n" +
-                "                    \"name\": \"Onwer\",\n" +
-                "                    \"value\": 408191750\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extxianjuzhudi_433107_39649856\",\n" +
-                "                    \"value\": \"现居住地1\"\n" +
-                "                }\n" +
-                "            ],\n" +
-                "            \"fileInfos\": []\n" +
-                "        }\n" +
-                "    ],\n" +
-                "    \"project\": [\n" +
-                "        {\n" +
-                "            \"id\": \"2f71eb93-e55b-431b-baa0-6be27cba0b96\",\n" +
-                "            \"duty\": null,\n" +
-                "            \"endDate\": \"2023-01-27T00:00:00\",\n" +
-                "            \"hardwareEnvironment\": null,\n" +
-                "            \"job\": null,\n" +
-                "            \"performance\": null,\n" +
-                "            \"projectAchievement\": null,\n" +
-                "            \"projectDescribe\": \"描述_程序开发\",\n" +
-                "            \"projectDevelopmentTools\": null,\n" +
-                "            \"projectName\": \"基金公司绩效\",\n" +
-                "            \"projectNumber\": 0,\n" +
-                "            \"projectSoftwareEnvironment\": null,\n" +
-                "            \"startDate\": \"2022-01-01T00:00:00\",\n" +
-                "            \"extendInfos\": [\n" +
-                "                {\n" +
-                "                    \"text\": null,\n" +
-                "                    \"name\": \"Onwer\",\n" +
-                "                    \"value\": 408191750\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extdanrenjiaose_433107_156597402\",\n" +
-                "                    \"value\": \"担任角色_开发\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extfujian_433107_311929262\",\n" +
-                "                    \"value\": \"dfs://RecruitOnBoardingFile/433107/1753150885/3/4e97d45b3ac14da492a89261a03650da.png,dfs://RecruitOnBoardingFile/433107/1753150889/3/c5f0cb72fe2d4cba89dd7e9be52681dd.png\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extsuoshuhangye_433107_1169231169\",\n" +
-                "                    \"value\": \"所属行业_继续\"\n" +
-                "                }\n" +
-                "            ],\n" +
-                "            \"fileInfos\": [\n" +
-                "                {\n" +
-                "                    \"name\": \"extfujian_433107_311929262\",\n" +
-                "                    \"downloadUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753150885/3/4e97d45b3ac14da492a89261a03650da.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=da8804ff8bb9c6d520c362e9e2aa03ecbf77ba6c\",\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753150889/3/c5f0cb72fe2d4cba89dd7e9be52681dd.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=ecbb4ca587398d5f32a9d9b5d22dd20e585e1782\"\n" +
-                "                    ],\n" +
-                "                    \"clientUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753150885/3/4e97d45b3ac14da492a89261a03650da.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=5d87104e4c47a15a16c8591ea960765cff5ad920\",\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753150889/3/c5f0cb72fe2d4cba89dd7e9be52681dd.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=b26d3d2001059f2cf9a2ee256a6dcbaf3eef4ba0\"\n" +
-                "                    ]\n" +
-                "                }\n" +
-                "            ]\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"id\": \"99a09572-d73f-4b87-b625-b3126f18f357\",\n" +
-                "            \"duty\": null,\n" +
-                "            \"endDate\": \"2024-06-19T00:00:00\",\n" +
-                "            \"hardwareEnvironment\": null,\n" +
-                "            \"job\": null,\n" +
-                "            \"performance\": null,\n" +
-                "            \"projectAchievement\": null,\n" +
-                "            \"projectDescribe\": \"描述:程序开发1\",\n" +
-                "            \"projectDevelopmentTools\": null,\n" +
-                "            \"projectName\": \"游戏公司-企微对接\",\n" +
-                "            \"projectNumber\": 0,\n" +
-                "            \"projectSoftwareEnvironment\": null,\n" +
-                "            \"startDate\": \"2023-07-21T00:00:00\",\n" +
-                "            \"extendInfos\": [\n" +
-                "                {\n" +
-                "                    \"text\": null,\n" +
-                "                    \"name\": \"Onwer\",\n" +
-                "                    \"value\": 408191750\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extdanrenjiaose_433107_156597402\",\n" +
-                "                    \"value\": \"担任角色_开发1\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extfujian_433107_311929262\",\n" +
-                "                    \"value\": \"dfs://RecruitOnBoardingFile/433107/1753150976/3/8b367c1e02434f26bdc83e07f031128f.zip\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extsuoshuhangye_433107_1169231169\",\n" +
-                "                    \"value\": \"所属行业_游戏\"\n" +
-                "                }\n" +
-                "            ],\n" +
-                "            \"fileInfos\": [\n" +
-                "                {\n" +
-                "                    \"name\": \"extfujian_433107_311929262\",\n" +
-                "                    \"downloadUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753150976/3/8b367c1e02434f26bdc83e07f031128f.zip?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=57308ad67597df53d2e99f16af67ad6bc970be14\"\n" +
-                "                    ],\n" +
-                "                    \"clientUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753150976/3/8b367c1e02434f26bdc83e07f031128f.zip?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=a15d55d156f773013a5b4de838808857cb6c0a62\"\n" +
-                "                    ]\n" +
-                "                }\n" +
-                "            ]\n" +
-                "        }\n" +
-                "    ],\n" +
-                "    \"train\": [],\n" +
-                "    \"entryRecord\": [\n" +
-                "        {\n" +
-                "            \"id\": \"1e656f5d-e58e-4678-ae3d-980d41aab662\",\n" +
-                "            \"infoCollectionStatus\": 2,\n" +
-                "            \"status\": 0,\n" +
-                "            \"infoCollectionSender\": 10000,\n" +
-                "            \"infoCollectionSendTime\": \"2025-07-22T09:59:16.6322473\",\n" +
-                "            \"infoCollectionCompleteTime\": \"2025-07-22T10:30:23.5697877\",\n" +
-                "            \"entryDate\": \"2025-07-22T00:00:00\",\n" +
-                "            \"entryWorkStatus\": null,\n" +
-                "            \"recordWorkFailReason\": \"\",\n" +
-                "            \"workStatus\": null,\n" +
-                "            \"applicantId\": \"c41a4bcd-d8d8-4312-8c5c-12536425fc69\",\n" +
-                "            \"applyId\": \"ea7af412-209e-45d5-bd83-16ff539f32b0\",\n" +
-                "            \"employmentRecordId\": \"aa7b4011-332c-4a07-af1d-1e047840e9a8\",\n" +
-                "            \"createdTime\": \"2025-07-22T09:59:13.6970679\",\n" +
-                "            \"extendInfos\": [\n" +
-                "                {\n" +
-                "                    \"text\": null,\n" +
-                "                    \"name\": \"Onwer\",\n" +
-                "                    \"value\": 10000\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": null,\n" +
-                "                    \"name\": \"PrivacyAgreementIds\",\n" +
-                "                    \"value\": \"ee4456c4-322f-4ad3-ad78-f31d685841b7\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extbiandongcaozuo2_433107_1823558993\",\n" +
-                "                    \"value\": \"SHR01\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extbiandongleixing_433107_1308621716\",\n" +
-                "                    \"value\": \"0101\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extbiandongyuanyin_433107_372757505\",\n" +
-                "                    \"value\": \"RZ03\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extbumenzhuli_433107_1218698613\",\n" +
-                "                    \"value\": 408087461\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extdaoshi_433107_1289690510\",\n" +
-                "                    \"value\": 408087461\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extgongzuorili_433107_1215174110\",\n" +
-                "                    \"value\": \"1\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extguoji2_433107_2056340697\",\n" +
-                "                    \"value\": \"01\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extqianyuelaodonghetongzhuti_433107_2131946049\",\n" +
-                "                    \"value\": \"1\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extruzhiduiyingoabumen_433107_1511952075\",\n" +
-                "                    \"value\": \"网络SBU/软件测试部\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extruzhiduiyingoagangwei_433107_913974448\",\n" +
-                "                    \"value\": \"测试工程师\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extruzhixiangguanfujian_433107_64410217\",\n" +
-                "                    \"value\": \"dfs://RecruitOnBoardingFile/433107/1753155916/3/dc6fb149abc94fb7b1ad8aaa39f54394.docx\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extyonggongguanxizhuangtai_433107_475242445\",\n" +
-                "                    \"value\": \"002\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extyuangongxinchoufenlei_433107_193802093\",\n" +
-                "                    \"value\": \"1\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extyujizhuanzhengriqi_433107_562953811\",\n" +
-                "                    \"value\": \"2025-10-22T00:00:00\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extzhaopinfangshi_433107_570935919\",\n" +
-                "                    \"value\": \"1\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extzhaopinjingbanren1_433107_1145817997\",\n" +
-                "                    \"value\": 405240902\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extyonggongleixing_433107_688743033\",\n" +
-                "                    \"value\": null\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extbiandongcaozuo_433107_332389092\",\n" +
-                "                    \"value\": null\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extzengyuanleixing_433107_1766625201\",\n" +
-                "                    \"value\": null\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extguoji_433107_892439433\",\n" +
-                "                    \"value\": null\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"text\": \"\",\n" +
-                "                    \"name\": \"extshenfenzhengdizhi_433107_1369475263\",\n" +
-                "                    \"value\": null\n" +
-                "                }\n" +
-                "            ],\n" +
-                "            \"fileInfos\": [\n" +
-                "                {\n" +
-                "                    \"name\": \"extruzhixiangguanfujian_433107_64410217\",\n" +
-                "                    \"downloadUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753155916/3/dc6fb149abc94fb7b1ad8aaa39f54394.docx?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=25a4f683a11aeab3825c452f5586829c2b3c5018\"\n" +
-                "                    ],\n" +
-                "                    \"clientUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753155916/3/dc6fb149abc94fb7b1ad8aaa39f54394.docx?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=5526a6b40052f2bbbb80bdb34cf4a6b85ef79008\"\n" +
-                "                    ]\n" +
-                "                }\n" +
-                "            ]\n" +
-                "        }\n" +
-                "    ],\n" +
-                "    \"employmentRecord\": [\n" +
-                "        {\n" +
-                "            \"organizationName\": \"测试北森入职对接部门\",\n" +
-                "            \"organizationCode\": \"0-25\",\n" +
-                "            \"fileInfos\": [],\n" +
-                "            \"id\": \"aa7b4011-332c-4a07-af1d-1e047840e9a8\",\n" +
-                "            \"entryDate\": \"2025-07-22T00:00:00\",\n" +
-                "            \"jobNumber\": null,\n" +
-                "            \"isCharge\": null,\n" +
-                "            \"place\": 1203,\n" +
-                "            \"userID\": 408191750,\n" +
-                "            \"originalId\": 2858566,\n" +
-                "            \"post\": \"06f16c10-6f44-44c5-a3c4-a938d1f5dd36\",\n" +
-                "            \"jobRank\": null,\n" +
-                "            \"jobGrade\": null,\n" +
-                "            \"poIdEmpAdmin\": 0,\n" +
-                "            \"poIdEmpReserve\": 0,\n" +
-                "            \"job\": null,\n" +
-                "            \"planEntryDate\": null,\n" +
-                "            \"planDate\": \"2025-07-21T00:00:00\",\n" +
-                "            \"probationDate\": 3,\n" +
-                "            \"extendInfos\": [\n" +
-                "                {\n" +
-                "                    \"text\": null,\n" +
-                "                    \"name\": \"Onwer\",\n" +
-                "                    \"value\": 10000\n" +
-                "                }\n" +
-                "            ]\n" +
-                "        }\n" +
-                "    ],\n" +
-                "    \"subCollection1\": [\n" +
-                "        {\n" +
-                "            \"id\": \"211f2ca0-543d-4b5b-b6c0-69e714e23271\",\n" +
-                "            \"fields\": [\n" +
-                "                {\n" +
-                "                    \"name\": \"Onwer\",\n" +
-                "                    \"value\": 408191750\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"name\": \"extfujian_433107_1151835352\",\n" +
-                "                    \"value\": \"dfs://RecruitOnBoardingFile/433107/1753151306/3/048f2c32943f462fa74de6bb81b845b3.xlsx,dfs://RecruitOnBoardingFile/433107/1753151311/3/efaf18ee8ab44abe91454e908ab15e92.png\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"name\": \"exthuoqushijian_433107_1850939387\",\n" +
-                "                    \"value\": \"2010-07-22T00:00:00\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"name\": \"extzhengshubianhao_433107_688995623\",\n" +
-                "                    \"value\": \"证书编号1\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"name\": \"extzhengshumingcheng_433107_314430288\",\n" +
-                "                    \"value\": \"证书名称1\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"name\": \"extzigezhengjibie_433107_85094135\",\n" +
-                "                    \"value\": \"资格证级别1\"\n" +
-                "                }\n" +
-                "            ],\n" +
-                "            \"fileInfos\": [\n" +
-                "                {\n" +
-                "                    \"name\": \"extfujian_433107_1151835352\",\n" +
-                "                    \"downloadUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753151306/3/048f2c32943f462fa74de6bb81b845b3.xlsx?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=e4743cb9b61755a6b5c646e8c453f88dc8728c18\",\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753151311/3/efaf18ee8ab44abe91454e908ab15e92.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=d2ce3684190845bf262c7454e0410608936c50ac\"\n" +
-                "                    ],\n" +
-                "                    \"clientUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753151306/3/048f2c32943f462fa74de6bb81b845b3.xlsx?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=df31713c5238fe20c8e607d32f453d657ee9abb8\",\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753151311/3/efaf18ee8ab44abe91454e908ab15e92.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=88d2829e727a93fb76685d80022c6fd049391ca0\"\n" +
-                "                    ]\n" +
-                "                }\n" +
-                "            ]\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"id\": \"211f2ca0-543d-4b5b-b6c0-69e714e23271\",\n" +
-                "            \"fields\": [\n" +
-                "                {\n" +
-                "                    \"name\": \"Onwer\",\n" +
-                "                    \"value\": 408191750\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"name\": \"extfujian_433107_1151835352\",\n" +
-                "                    \"value\": \"dfs://RecruitOnBoardingFile/433107/1753151306/3/048f2c32943f462fa74de6bb81b845b3.xlsx,dfs://RecruitOnBoardingFile/433107/1753151311/3/efaf18ee8ab44abe91454e908ab15e92.png\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"name\": \"exthuoqushijian_433107_1850939387\",\n" +
-                "                    \"value\": \"2010-07-22T00:00:00\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"name\": \"extzhengshubianhao_433107_688995623\",\n" +
-                "                    \"value\": \"证书编号1\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"name\": \"extzhengshumingcheng_433107_314430288\",\n" +
-                "                    \"value\": \"证书名称1\"\n" +
-                "                },\n" +
-                "                {\n" +
-                "                    \"name\": \"extzigezhengjibie_433107_85094135\",\n" +
-                "                    \"value\": \"资格证级别1\"\n" +
-                "                }\n" +
-                "            ],\n" +
-                "            \"fileInfos\": [\n" +
-                "                {\n" +
-                "                    \"name\": \"extfujian_433107_1151835352\",\n" +
-                "                    \"downloadUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753151306/3/048f2c32943f462fa74de6bb81b845b3.xlsx?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=e4743cb9b61755a6b5c646e8c453f88dc8728c18\",\n" +
-                "                        \"https://dfiles.italent.cn/download/recruitonboardingfile/433107/1753151311/3/efaf18ee8ab44abe91454e908ab15e92.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=d2ce3684190845bf262c7454e0410608936c50ac\"\n" +
-                "                    ],\n" +
-                "                    \"clientUrls\": [\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753151306/3/048f2c32943f462fa74de6bb81b845b3.xlsx?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=df31713c5238fe20c8e607d32f453d657ee9abb8\",\n" +
-                "                        \"https://dfiles.italent.cn/recruitonboardingfile/433107/1753151311/3/efaf18ee8ab44abe91454e908ab15e92.png?sig_t=1753238700&sig_exp=2592000&sig_a=recruitonboarding&sig_pm=8&sig_npm=2&sig_v=1&sig=88d2829e727a93fb76685d80022c6fd049391ca0\"\n" +
-                "                    ]\n" +
-                "                }\n" +
-                "            ]\n" +
-                "        }\n" +
-                "    ],\n" +
-                "    \"subCollection2\": null,\n" +
-                "    \"subCollection3\": null,\n" +
-                "    \"subCollection4\": null,\n" +
-                "    \"subCollection5\": null,\n" +
-                "    \"subCollection6\": null,\n" +
-                "    \"subCollection7\": null,\n" +
-                "    \"subCollection8\": null,\n" +
-                "    \"subCollection9\": null,\n" +
-                "    \"subCollection10\": null\n" +
-                "}]";
-        String fieldToRemove = "extfujian";
-        String result = processSubCollection(originalJson, fieldToRemove);
-        // 指定需要转换的字段
-        List<String> list = new ArrayList<String>();
-        list.add("extendInfos");
-        list.add("fileInfos");
-        list.add("fields");
-        // 执行转换
-        String convertedJson = convertDataFields(result, list);
-        System.out.println(convertedJson);
-    }
 }