Prechádzať zdrojové kódy

同步 北森调整

liuling 8 mesiacov pred
rodič
commit
26d2c3abdb

+ 182 - 0
websrc/com/kingdee/eas/custom/webbeisen/handler/EmployeeListHandlerEx.java

@@ -0,0 +1,182 @@
+package com.kingdee.eas.custom.webbeisen.handler;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.Context;
+import com.kingdee.bos.dao.IObjectCollection;
+import com.kingdee.bos.dao.IObjectValue;
+import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
+import com.kingdee.bos.dao.query.BizEnumValueDTO;
+import com.kingdee.bos.util.BOSUuid;
+import com.kingdee.eas.basedata.org.OrgUnitInfo;
+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.synchronousorg.SynchronousEmpBillFactory;
+import com.kingdee.eas.hr.emp.web.handler.EmployeeListHandler;
+import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsBody;
+import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader;
+import com.kingdee.shr.base.syssetting.context.SHRContext;
+import com.kingdee.shr.base.syssetting.exception.SHRWebException;
+import com.kingdee.shr.base.syssetting.json.adapter.*;
+import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
+import com.kingdee.shr.base.syssetting.web.json.adapter.BOSUuidTypeAdapter;
+import com.kingdee.util.StringUtils;
+import com.kingdee.util.enums.Enum;
+import org.springframework.ui.ModelMap;
+
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.sql.Timestamp;
+import java.util.Date;
+
+public class EmployeeListHandlerEx extends EmployeeListHandler {
+    public String synBeiSenPersonAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
+        Context ctx = SHRContext.getInstance().getContext();
+        BatchMessageTipsHeader batchMessageTipsHeader = new BatchMessageTipsHeader();
+        String ids = request.getParameter("ids");
+        System.out.println("==========ids:"+ids);
+        int sucess = 0;
+        int failure = 0;
+        if (ids != null && ids.length() > 0) {
+            String[] personArray = ids.split(",");
+            for (int i = 0; i < personArray.length; i++) {
+                BatchMessageTipsBody body = new BatchMessageTipsBody();
+                try {
+                    PersonInfo personInfo = PersonFactory.getLocalInstance(ctx).getPersonInfo(new ObjectUuidPK(personArray[i]));
+                    String beisenid = personInfo.getString("beisenid");
+                    System.out.println("==========beisenid:"+beisenid);
+                    if (beisenid!=null&&beisenid.length()>0){
+                        try {
+                            Boolean string = personInfo.getBoolean("IsSync");
+                            System.out.println("sssssssssssssss:"+string+"");
+                            if (string==null||!string){
+                                System.out.println("sssssssssssssss:同步");
+                                String s = SynchronousEmpBillFactory.getLocalInstance(ctx).empBill(beisenid, "002", "asdasdasdasdasdasd");
+                                System.out.println("==========s:"+s);
+                                body.setId(personArray[i]);
+                                body.setMuitTipsState(true);
+                                body.setMuitTipsMessage("同步成功【" +personInfo.getName() + "】");
+                                batchMessageTipsHeader.addResult(body);
+                                sucess++;
+                            }else {
+                                System.out.println("sssssssssssssss:已同步");
+                                body.setId(personArray[i]);
+                                body.setMuitTipsState(true);
+                                body.setMuitTipsMessage("已经同步过该数据【" + personInfo.getName() + "】");
+                                batchMessageTipsHeader.addResult(body);
+                                sucess++;
+                            }
+
+                        }catch (Exception e){
+                            System.out.println("==========personArray[i]1:"+personArray[i]);
+                            body.setId(personArray[i]);
+                            body.setMuitTipsState(false);
+                            body.setMuitTipsMessage("后台事务执行失败【" + personArray[i] + "】");
+                            batchMessageTipsHeader.addResult(body);
+                            e.printStackTrace();
+                            failure++;
+                        }
+                    }else {
+                        failure++;
+                        System.out.println("==========personArray[i]2:"+personArray[i]);
+                        body.setId(personArray[i]);
+                        body.setMuitTipsState(false);
+                        body.setMuitTipsMessage("未查询到北森入职单id【" +personInfo.getName() + "】");
+                        batchMessageTipsHeader.addResult(body);
+                    }
+                } catch (BOSException e) {
+                    System.out.println("==========personArray[i]3:"+personArray[i]);
+                    body.setId(personArray[i]);
+                    body.setMuitTipsState(false);
+                    body.setMuitTipsMessage("同步失败查询员工失败【" + personArray[i] + "】");
+                    batchMessageTipsHeader.addResult(body);
+                    e.printStackTrace();
+                } catch (EASBizException e) {
+                    System.out.println("==========personArray[i]4:"+personArray[i]);
+                    body.setId(personArray[i]);
+                    body.setMuitTipsState(false);
+                    body.setMuitTipsMessage("同步失败查询员工失败【" + personArray[i] + "】");
+                    batchMessageTipsHeader.addResult(body);
+                    e.printStackTrace();
+                }
+            }
+        }
+        batchMessageTipsHeader.setBillId(ids);
+        batchMessageTipsHeader.setFailureCount(failure);
+        batchMessageTipsHeader.setSuccessCount(sucess);
+        System.out.println("=========batchMessageTipsHeader:"+batchMessageTipsHeader.toString());
+        SUCCESS(batchMessageTipsHeader,request,response,"application/json;charset=UTF-8",ctx);
+        return null;
+    }
+    public static void SUCCESS(Object object,ServletRequest request, ServletResponse response, String contentType,Context context) throws SHRWebException {
+        response.setContentType(contentType);
+
+        PrintWriter pw;
+        try {
+            pw = response.getWriter();
+        } catch (IOException var7) {
+            throw new SHRWebException("can't open the output stream!");
+        }
+
+        StringBuilder strSuccessJson = new StringBuilder();
+        strSuccessJson.append("{");
+        strSuccessJson.append("\"result\":\"");
+        strSuccessJson.append("success");
+        strSuccessJson.append("\",\"data\":");
+        strSuccessJson.append(convertObjectToJson(context, object).toString());
+        String successMessage = (String)request.getAttribute("successMessage");
+        if (!StringUtils.isEmpty(successMessage)) {
+            strSuccessJson.append(",\"successMessage\":\"");
+            strSuccessJson.append(successMessage);
+            strSuccessJson.append("\"");
+        }
+
+        strSuccessJson.append("}");
+        pw.flush();
+        pw.write(strSuccessJson.toString());
+        pw.flush();
+    }
+    public static String convertObjectToJson(Context ctx, Object object) {
+        if (object != null && !object.equals("")) {
+            Gson gson = getGson(ctx);
+            String result = gson.toJson(object);
+            if (result == null) {
+                return "\"\"";
+            } else {
+                result = processJsonResult(result);
+                return result;
+            }
+        } else {
+            return "\"\"";
+        }
+    }
+    public static Gson getGson(Context ctx) {
+        GsonBuilder builder = new GsonBuilder();
+        builder.serializeNulls();
+        builder.disableHtmlEscaping();
+        builder.serializeSpecialFloatingPointValues();
+        builder.registerTypeHierarchyAdapter(Date.class, new DateTypeAdapter());
+        builder.registerTypeHierarchyAdapter(Timestamp.class, new DateTypeAdapter());
+        builder.registerTypeHierarchyAdapter(BOSUuid.class, new BOSUuidTypeAdapter());
+        builder.registerTypeHierarchyAdapter(IObjectValue.class, new BosObjectTypeAdapter(ctx));
+        builder.registerTypeHierarchyAdapter(IObjectCollection.class, new BosObjectCollectionTypeAdapter(ctx));
+        builder.registerTypeHierarchyAdapter(OrgUnitInfo.class, new BosObjectTypeAdapter(ctx));
+        builder.registerTypeHierarchyAdapter(BizEnumValueDTO.class, new BizEnumAdapter());
+        builder.registerTypeHierarchyAdapter(Enum.class, new EnumTypeAdapter());
+        return builder.create();
+    }
+    public static String processJsonResult(String result) {
+        result = result.replace("${quote_2312415321232}", "\"");
+        result = result.replace("\"${leftbracket_2312415321232}", "{");
+        result = result.replace("${leftbracket_2312415321232}", "{");
+        result = result.replace("${rightbracket_2312415321232}\"", "}");
+        result = result.replace("${rightbracket_2312415321232}", "}");
+        return result;
+    }
+}

+ 55 - 3
websrc/com/kingdee/eas/custom/webbeisen/handler/OrgUnitListHandlerEx.java

@@ -2,8 +2,17 @@ package com.kingdee.eas.custom.webbeisen.handler;
 
 import com.kingdee.bos.BOSException;
 import com.kingdee.bos.Context;
+import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
+import com.kingdee.eas.basedata.org.AdminOrgUnitFactory;
+import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
+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.synchronousorg.SynchronousEmpBillFactory;
 import com.kingdee.eas.custom.beisen.synchronousorg.synchronousOrgFactory;
 import com.kingdee.eas.hr.org.web.handler.OrgUnitListHandler;
+import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsBody;
+import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader;
 import com.kingdee.shr.base.syssetting.context.SHRContext;
 import com.kingdee.shr.base.syssetting.exception.SHRWebException;
 import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
@@ -15,8 +24,51 @@ import javax.servlet.http.HttpServletResponse;
 public class OrgUnitListHandlerEx extends OrgUnitListHandler {
     public void synchronousOrgAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException, BOSException {
         Context ctx = SHRContext.getInstance().getContext();
-        String id = request.getParameter("id");
-        synchronousOrgFactory.getLocalInstance(ctx).createOrUpdateOrg(10,id,false);
-        JSONUtils.SUCCESS("success");
+        BatchMessageTipsHeader batchMessageTipsHeader = new BatchMessageTipsHeader();
+        String ids = request.getParameter("id");
+        int sucess = 0;
+        int failure = 0;
+        if (ids != null && ids.length() > 0) {
+            String[] orgArray = ids.split(",");
+            for (int i = 0; i < orgArray.length; i++) {
+                BatchMessageTipsBody body = new BatchMessageTipsBody();
+                try {
+                    AdminOrgUnitInfo adminOrgUnitInfo = AdminOrgUnitFactory.getLocalInstance(ctx).getAdminOrgUnitInfo(new ObjectUuidPK(orgArray[i]));
+                    try {
+                        synchronousOrgFactory.getLocalInstance(ctx).createOrUpdateOrg(10, adminOrgUnitInfo.getId().toString(), false);
+                        body.setId(orgArray[i]);
+                        body.setMuitTipsState(true);
+                        body.setMuitTipsMessage("同步成功【" + orgArray[i] + "】");
+                        batchMessageTipsHeader.addResult(body);
+                        sucess++;
+                    } catch (Exception e) {
+                        body.setId(orgArray[i]);
+                        body.setMuitTipsState(false);
+                        body.setMuitTipsMessage("后台事务执行失败【" + orgArray[i] + "】");
+                        batchMessageTipsHeader.addResult(body);
+                        e.printStackTrace();
+                        failure++;
+                    }
+
+                } catch (BOSException e) {
+                    body.setId(orgArray[i]);
+                    body.setMuitTipsState(false);
+                    body.setMuitTipsMessage("同步失败组织员工失败【" + orgArray[i] + "】");
+                    batchMessageTipsHeader.addResult(body);
+                    e.printStackTrace();
+                } catch (EASBizException e) {
+                    body.setId(orgArray[i]);
+                    body.setMuitTipsState(false);
+                    body.setMuitTipsMessage("同步失败组织员工失败【" + orgArray[i] + "】");
+                    batchMessageTipsHeader.addResult(body);
+                    e.printStackTrace();
+                }
+            }
+        }
+        batchMessageTipsHeader.setBillId(ids);
+        batchMessageTipsHeader.setFailureCount(failure);
+        batchMessageTipsHeader.setSuccessCount(sucess);
+        JSONUtils.SUCCESS(batchMessageTipsHeader);
+
     }
 }

+ 31 - 9
websrc/com/kingdee/eas/custom/webbeisen/service/GetBeiSenDataService.java

@@ -10,12 +10,14 @@ import com.kingdee.eas.custom.webbeisen.utils.BeiSenUtils;
 
 import java.io.IOException;
 import java.net.URISyntaxException;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
 public class GetBeiSenDataService implements IHRMsfService {
     @Override
     public Object process(Context context, Map map) throws EASBizException, BOSException {
+        System.out.println("=========com.kingdee.eas.custom.webbeisen.service.GetBeiSenDataService=======");
         String param = map.get("param") == null ? "" : map.get("param").toString();
         JSONObject paramJSONObject = JSONObject.parseObject(param);
         JSONObject requestBody = new JSONObject();
@@ -53,22 +55,39 @@ public class GetBeiSenDataService implements IHRMsfService {
                 requestBody.put("batchId",batchId);
             }
 
-            if (endTime==null||startTime==null){
-                if(day==null){
-                    throw new RuntimeException("参数异常endTime,startTime必填 或者填入day");
+            if (startTime==null||startTime.equals("")){
+                if(day==null||day.equals("")){
+                    throw new RuntimeException("参数异常endTime为空必填 或者填入day");
                 }else{
-                    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss");
+                    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
                     Date date = new Date();
-                    requestBody.put("endTime",format.format(date));
-                    requestBody.put("startTime",getDayBefore(date, day));
+                    if (endTime==null||endTime.equals("")){
+                        requestBody.put("endTime",format.format(date));
+                        requestBody.put("startTime",getDayBefore(date, day));
+                    }else {
+                        requestBody.put("endTime",endTime);
+                        try {
+                            requestBody.put("startTime",getDayBefore(format.parse(endTime), day));
+                        } catch (ParseException e) {
+                            throw new RuntimeException(e);
+                        }
+                    }
+
                 }
 
             }
         }
-
+        System.out.println("staffStatus:"+staffStatus +
+                "infoCollectionStatus:"+infoCollectionStatus +
+                "isModify:"+isModify +
+                "endTime:"+endTime +
+                "startTime:"+startTime +
+                "batchId:"+batchId +
+                "day:"+day +
+                "staffId:"+staffId);
 
         BeiSenUtils beiSenUtils = new BeiSenUtils(context);
-
+        System.out.println("=========requestBody:"+requestBody);
         try {
             JSONArray staffIds = new JSONArray();
             if (staffId!=null&&!staffId.equals("")){
@@ -79,11 +98,14 @@ public class GetBeiSenDataService implements IHRMsfService {
             }else {
                 staffIds  = beiSenUtils.getStaffIds(requestBody);
             }
+            System.out.println("staffId:"+staffIds);
 
             List<String> list = new ArrayList<String>();
             list.add("extendInfos");
             list.add("fileInfos");
+            list.add("fields");
             JSONArray staffInfos = beiSenUtils.getStaffInfos(staffIds, list);
+            System.out.println("staffInfos:"+staffInfos);
             return staffInfos;
         } catch (IOException e) {
             throw new RuntimeException(e);
@@ -109,7 +131,7 @@ public class GetBeiSenDataService implements IHRMsfService {
         c.set(Calendar.DATE, day - x);
 
         // 将移动后的日期格式化为 yyyy-MM-dd 格式的字符串
-        String dayBefore = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss").format(c.getTime());
+        String dayBefore = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(c.getTime());
         // 返回格式化后的日期字符串
         return dayBefore;
     }

+ 436 - 169
websrc/com/kingdee/eas/custom/webbeisen/test/BeiSenSysTest.java

@@ -7,6 +7,8 @@ import com.kingdee.bos.BOSObjectFactory;
 import com.kingdee.bos.Context;
 import com.kingdee.bos.bsf.service.app.IHRMsfService;
 import com.kingdee.bos.dao.IObjectPK;
+import com.kingdee.bos.dao.IObjectValue;
+import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
 import com.kingdee.bos.metadata.entity.*;
 import com.kingdee.bos.metadata.query.util.CompareType;
 import com.kingdee.bos.util.BOSUuid;
@@ -14,8 +16,12 @@ import com.kingdee.eas.base.attachment.AttachmentFactory;
 import com.kingdee.eas.base.attachment.AttachmentInfo;
 import com.kingdee.eas.base.attachment.BoAttchAssoFactory;
 import com.kingdee.eas.base.attachment.BoAttchAssoInfo;
+import com.kingdee.eas.base.codingrule.CodingRuleManagerFactory;
+import com.kingdee.eas.base.codingrule.ICodingRuleManager;
 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.PersonInfo;
 import com.kingdee.eas.common.EASBizException;
 import com.kingdee.eas.custom.beisenconfig.*;
@@ -24,10 +30,12 @@ import com.kingdee.eas.custom.webbeisen.utils.Helper;
 import com.kingdee.eas.framework.CoreBaseCollection;
 import com.kingdee.eas.framework.CoreBaseInfo;
 import com.kingdee.eas.framework.ICoreBase;
-import com.kingdee.eas.hr.affair.EmpEnrollBizBillEntryCollection;
-import com.kingdee.eas.hr.affair.EmpEnrollBizBillEntryInfo;
+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.emp.PersonPhotoFactory;
 import com.kingdee.eas.hr.emp.PersonPhotoInfo;
+import com.kingdee.shr.ats.web.util.NumberCodeRule;
 import com.kingdee.shr.attachment.AttachmentState;
 import com.kingdee.shr.attachment.AttachmentTypeEnum;
 import com.kingdee.shr.attachment.SHRAttachmentExtFactory;
@@ -71,7 +79,8 @@ public class BeiSenSysTest implements IHRMsfService {
     @Override
     public Object process(Context context, Map map) throws EASBizException, BOSException {
         String param = map.get("param") == null ? "" : map.get("param").toString();
-        empBill(context,param,"i6MAAAABB+gL9cGD" );
+        String number = map.get("number") == null ? "" : map.get("number").toString();
+        empBill(context, param, number);
         return null;
     }
 
@@ -82,7 +91,7 @@ public class BeiSenSysTest implements IHRMsfService {
         EntityViewInfo entityViewInfo = new EntityViewInfo();
         FilterInfo filterInfo = new FilterInfo();
         filterInfo.getFilterItems().add(new FilterItemInfo("isEnabled", true, CompareType.EQUALS));
-        filterInfo.getFilterItems().add(new FilterItemInfo("id", viewConfigId, CompareType.EQUALS));
+        filterInfo.getFilterItems().add(new FilterItemInfo("number", viewConfigId, CompareType.EQUALS));
         entityViewInfo.setFilter(filterInfo);
         //获取北森视图配置信息
         BSViewConfigCollection bsViewConfigCollection = BSViewConfigFactory.getLocalInstance(ctx).getBSViewConfigCollection(entityViewInfo);
@@ -92,11 +101,11 @@ public class BeiSenSysTest implements IHRMsfService {
         BSViewConfigInfo bsViewConfigInfo = bsViewConfigCollection.get(0);
         String osfParam = bsViewConfigInfo.getOsfParam();
         String osfSericeName = bsViewConfigInfo.getOsfSericeName();
-        Map<String, Object> serviceParam = new HashMap<String,Object>();
-        if (param!=null&&!param.equals("")){
+        Map<String, Object> serviceParam = new HashMap<String, Object>();
+        if (param != null && !param.equals("")) {
             JSONObject jsonObject = JSONObject.parseObject(osfParam);
-            jsonObject.put("staffId",param);
-            osfParam= jsonObject.toJSONString();
+            jsonObject.put("staffId", param);
+            osfParam = jsonObject.toJSONString();
         }
         serviceParam.put("param", osfParam);
         JSONArray beiSenData = null;
@@ -127,24 +136,51 @@ public class BeiSenSysTest implements IHRMsfService {
                 JSONArray fileArray = jsonObject1.getJSONArray(file);
                 boolean isCreateData = bsViewConfigEntryInfo.isIsCreateData();
                 String headId = null;
-                if (isCreateData){
+                if (isCreateData) {
+                    String headDataEntry = bsViewConfigEntryInfo.getHeadDataEntry();
+                    if (headDataEntry!=null&&!headDataEntry.equals("")){
+                        Class objectValueClass = MetaDataUtil.getObjectValueClass(headDataEntry);
+                        // 创建对应的实体对象
+                        CoreBaseInfo coreBaseInfo = (CoreBaseInfo) MetaDataUtil.newInstance(objectValueClass, headDataEntry);
+                        if (coreBaseInfo instanceof EmpEnrollBizBillInfo) {
+                            System.out.println("针对入职单处理");
+                            String string = jsonObject1.getJSONObject("staffInfos").getString("id");
+                            EmpEnrollBizBillCollection collection = EmpEnrollBizBillFactory.getLocalInstance(ctx)
+                                    .getEmpEnrollBizBillCollection("select *,entrys.*,entrys.person.* where beisenid='" + string + "'");
+                            if (collection.size() > 0) {
+                                System.out.println("=======入职单已存在=============");//0044610
+                                continue;
+                            }
+                        }
+                    }
                     headId = headProcessing(view, jsonObject1, fileArray, file);
-                }else {
+                } else {
                     String headDataEntry = bsViewConfigEntryInfo.getHeadDataEntry();
-                    String headWhere = bsViewConfigEntryInfo.getHeadWhere();
                     Class objectValueClass = MetaDataUtil.getObjectValueClass(headDataEntry);
                     // 创建对应的实体对象
                     CoreBaseInfo coreBaseInfo = (CoreBaseInfo) MetaDataUtil.newInstance(objectValueClass, headDataEntry);
-                    // 创建对应的业务对象
-                    ICoreBase bosObject = (ICoreBase) (BOSObjectFactory.createBOSObject(context, coreBaseInfo.getBOSType()));
-                    String string = jsonObject1.getJSONObject("staffInfos").getString("id");
-                    CoreBaseCollection collection = bosObject.getCollection("where beisenId='" + string + "'");
-                    if (collection.size()>0){
-                        headId = collection.get(0).getId().toString();
+                    if (coreBaseInfo instanceof EmpEnrollBizBillInfo) {
+                        System.out.println("针对入职单处理");
+                        String string = jsonObject1.getJSONObject("staffInfos").getString("id");
+                        EmpEnrollBizBillCollection collection = EmpEnrollBizBillFactory.getLocalInstance(ctx)
+                                .getEmpEnrollBizBillCollection("select *,entrys.*,entrys.person.* where beisenid='" + string + "'");
+                        if (collection.size() > 0) {
+                            EmpEnrollBizBillInfo empEnrollBizBillInfo = collection.get(0);
+                            EmpEnrollBizBillEntryCollection entrys = empEnrollBizBillInfo.getEntrys();
+                            if (entrys.size() > 0) {
+                                PersonInfo person = entrys.get(0).getPerson();
+                                if (view != null) {
+                                    System.out.println("======修改信息=========");
+                                    headProcessing(view, jsonObject1, person, fileArray, file);
+                                }
+                                headId = person.getId().toString();
+                            }
+                        }
+                    } else {
+                        //其他处理 还没想好怎么做 暂时满足需求 后续有想法在填入
                     }
                 }
-
-                if (headId == null){
+                if (headId == null) {
                     continue;
                 }
 
@@ -161,10 +197,12 @@ public class BeiSenSysTest implements IHRMsfService {
                     UIViewInfo view1 = boybsViewConfigEntryInfo.getView();
                     String beiSenData1 = boybsViewConfigEntryInfo.getBeiSenData();
                     UIType type = view1.getType();
-                    if(type.getValue().equals("list")){
-                        boyProcessing(view1,headId,jsonObject1.getJSONArray(beiSenData1),null,"fileInfos",beiSenData1);
-                    }else {
-                        boyProcessing(view1,headId,jsonObject1.getJSONObject(beiSenData1),null,"fileInfos",beiSenData1);
+                    boolean isCreateData1 = boybsViewConfigEntryInfo.isIsCreateData();
+
+                    if (type.getValue().equals("list")) {
+                        boyProcessing(view1, headId, jsonObject1.getJSONArray(beiSenData1), null, "fileInfos", beiSenData1);
+                    } else {
+                        boyProcessing(view1, isCreateData1, headId, jsonObject1.getJSONObject(beiSenData1), null, "fileInfos", beiSenData1);
                     }
 
                 }
@@ -188,6 +226,8 @@ public class BeiSenSysTest implements IHRMsfService {
 
     }
 
+
+
     /**
      * 处理表单类型的主体信息
      *
@@ -202,7 +242,7 @@ public class BeiSenSysTest implements IHRMsfService {
      * @throws ParseException  解析异常
      * @throws IOException     输入输出异常
      */
-    public String boyProcessing(UIViewInfo uiViewInfo, String id, JSONObject jsonObject, JSONArray fileJSON, String fileName,String beiSenData1)
+    public String boyProcessing(UIViewInfo uiViewInfo, boolean isCreateData1, String id, JSONObject jsonObject, JSONArray fileJSON, String fileName, String beiSenData1)
             throws JSONException, SHRWebException, BOSException, EASBizException, ParseException, IOException {
         // 根据 UI 视图的主键生成动态 UI 视图信息
         com.kingdee.shr.base.syssetting.web.dynamic.model.UIViewInfo uiViewInfo1 =
@@ -218,12 +258,22 @@ public class BeiSenSysTest implements IHRMsfService {
         CoreBaseInfo coreBaseInfo = (CoreBaseInfo) MetaDataUtil.newInstance(objectValueClass, entityName);
         // 处理字段信息
         JSONObject jsonObject2 = new JSONObject();
-        jsonObject2.put(beiSenData1,jsonObject2);
-        JSONArray jsonArray = this.fieldProcessing(fields, coreBaseInfo, jsonObject2, fileName);
+        jsonObject2.put(beiSenData1, jsonObject);
         // 创建对应的业务对象
         ICoreBase bosObject = (ICoreBase) (BOSObjectFactory.createBOSObject(context, coreBaseInfo.getBOSType()));
         // 获取关联字段
         String relateField = uiViewInfo1.getRelatedField();
+        if (!isCreateData1) {
+            System.out.println("=============查询不需要同步数据============"+"where " + relateField + " = '" + id+"'");
+            CoreBaseCollection collection = bosObject.getCollection("where " + relateField + " = '" + id+"'");
+            if (collection.size()>0){
+                coreBaseInfo = collection.get(0);
+                System.out.println("=========同步修改数据ID======="+coreBaseInfo.getId());
+            }
+
+        }
+        JSONArray jsonArray = this.fieldProcessing(fields, coreBaseInfo, jsonObject2, fileName);
+
         // 根据 ID 获取对应的实体对象信息
         EntityObjectInfo entityObject = MetaDataUtil.getEntityObject(id);
         // 获取实体对象的全名称
@@ -236,57 +286,68 @@ public class BeiSenSysTest implements IHRMsfService {
         coreBaseInfo1.setId(BOSUuid.read(id));
         // 将关联的实体对象设置到当前实体对象中
         coreBaseInfo.put(relateField, coreBaseInfo1);
+        IObjectPK save=null;
         // 保存实体对象
-        IObjectPK save = bosObject.save(coreBaseInfo);
+        if (coreBaseInfo instanceof EmpEnrollBizBillInfo){
+            System.out.println("========submit===========");
+            coreBaseInfo.put("billState", HRBillStateEnum.SUBMITED );
+            coreBaseInfo.put("approveType",ApproveTypeEnum.WORKFLOW);
+            coreBaseInfo.setExtendedProperty("isAddNew", "isAddNew");
+            save = bosObject.submit(coreBaseInfo);
+        }else {
+            System.out.println("========save===========");
+            save = bosObject.save(coreBaseInfo);
+
+        }
         // 处理文件信息
         fileProcessor(save.toString(), null, jsonArray);
 
-        // 获取文件信息的第一个 JSON 对象
-        JSONObject jsonObject1 = fileJSON.getJSONObject(0);
-        if (!save.toString().equals("")) {
-            // 遍历字段列表
-            for (int i = 0; i < fields.size(); i++) {
-                // 获取单个字段信息
-                FieldInfo fieldInfo = fields.get(i);
-                // 获取字段的别名
-                String alias = fieldInfo.getAlias();//CertificateNu
-                // 获取字段的名称
-                String name = fieldInfo.getName();//idCardNO
-                if (!name.equals("attachments")) {
-                    continue;
-                }
-                // 分割字段别名
-                String[] split = alias.split("#");
-                // 获取字段的属性
-                Map<String, String> attributes = fieldInfo.getAttributes();
-                // 获取数据的 UI 主键
-                String uipk = attributes.get("data-uipk");
-                // 获取文件信息
-                JSONObject data = jsonObject1.getJSONObject(split[1]);
-                if (data != null) {
-                    // 获取下载链接
-                    String downloadUrl = data.getString("downloadUrl");
-                    // 分割下载链接
-                    String[] split1 = downloadUrl.split(",");
-                    // 获取文件名
-                    String text = data.getString("text");
-                    // 分割文件名
-                    String[] split2 = text.split(",");
-                    for (int k = 0; k < split1.length; k++) {
-                        byte[] dataImg = new byte[0];
-                        // 拼接完整的下载链接
-                        String URL = "http:" + split1[k];
-                        System.out.println("===========" + URL + "==========");
-                        // 从网络下载文件数据
-                        dataImg = helper.getBytesByNetURL(URL);
-                        // 插入人员附件信息
-                        insertPersonAttachment(split2[k], uipk, save.toString(), dataImg);
+        if (fileJSON != null) {
+            // 获取文件信息的第一个 JSON 对象
+            JSONObject jsonObject1 = fileJSON.getJSONObject(0);
+            if (!save.toString().equals("")) {
+                // 遍历字段列表
+                for (int i = 0; i < fields.size(); i++) {
+                    // 获取单个字段信息
+                    FieldInfo fieldInfo = fields.get(i);
+                    // 获取字段的别名
+                    String alias = fieldInfo.getAlias();//CertificateNu
+                    // 获取字段的名称
+                    String name = fieldInfo.getName();//idCardNO
+                    if (!name.equals("attachments")) {
+                        continue;
+                    }
+                    // 分割字段别名
+                    String[] split = alias.split("#");
+                    // 获取字段的属性
+                    Map<String, String> attributes = fieldInfo.getAttributes();
+                    // 获取数据的 UI 主键
+                    String dataUipk = attributes.get("data-uipk");
+                    // 获取文件信息
+                    JSONObject data = jsonObject1.getJSONObject(split[1]);
+                    if (data != null) {
+                        // 获取下载链接
+                        String downloadUrl = data.getString("downloadUrl");
+                        // 分割下载链接
+                        String[] split1 = downloadUrl.split(",");
+                        // 获取文件名
+                        String text = data.getString("text");
+                        // 分割文件名
+                        String[] split2 = text.split(",");
+                        for (int k = 0; k < split1.length; k++) {
+                            byte[] dataImg = new byte[0];
+                            // 拼接完整的下载链接
+                            String URL = "http:" + split1[k];
+                            System.out.println("===========" + URL + "==========");
+                            // 从网络下载文件数据
+                            dataImg = helper.getBytesByNetURL(URL);
+                            // 插入人员附件信息
+                            insertPersonAttachment(split2[k], dataUipk, save.toString(), dataImg);
+                        }
                     }
-                }
 
+                }
             }
-
-
         }
         // 返回保存后的对象主键
         return save.toString();
@@ -295,9 +356,9 @@ public class BeiSenSysTest implements IHRMsfService {
     /**
      * 处理列表类型的主体信息
      *
-     * @param id         关联的 ID
-     * @param jsonArray  主体信息的 JSON 数组
-     * @param fileJSON   文件信息的 JSON 数组
+     * @param id        关联的 ID
+     * @param jsonArray 主体信息的 JSON 数组
+     * @param fileJSON  文件信息的 JSON 数组
      * @return 保存后的对象主键
      * @throws JSONException   JSON 处理异常
      * @throws SHRWebException SHR 网页异常
@@ -306,7 +367,7 @@ public class BeiSenSysTest implements IHRMsfService {
      * @throws ParseException  解析异常
      * @throws IOException     输入输出异常
      */
-    public String boyProcessing(UIViewInfo uiViewInfo, String id, JSONArray jsonArray, JSONArray fileJSON, String fileName,String beiSenData1)
+    public String boyProcessing(UIViewInfo uiViewInfo, String id, JSONArray jsonArray, JSONArray fileJSON, String fileName, String beiSenData1)
             throws JSONException, SHRWebException, BOSException, EASBizException, ParseException, IOException {
         // 根据 UI 视图的主键生成动态 UI 视图信息
         com.kingdee.shr.base.syssetting.web.dynamic.model.UIViewInfo uiViewInfo1 =
@@ -341,7 +402,7 @@ public class BeiSenSysTest implements IHRMsfService {
             // 处理字段信息
             JSONObject jsonObject = new JSONObject();
             jsonObject.put(beiSenData1, jsonArray.getJSONObject(i));
-            JSONArray jsonArray1 = this.fieldProcessing(fields, coreBaseInfo,jsonObject , fileName);
+            JSONArray jsonArray1 = this.fieldProcessing(fields, coreBaseInfo, jsonObject, fileName);
             // 创建对应的业务对象
             ICoreBase bosObject = (ICoreBase) (BOSObjectFactory.createBOSObject(context, coreBaseInfo.getBOSType()));
             // 将关联的实体对象设置到当前实体对象中
@@ -350,8 +411,19 @@ public class BeiSenSysTest implements IHRMsfService {
             coreBaseInfo.put("IsHighest", "1");
             // 设置是否单个的标志
             coreBaseInfo.put("isSingle", "1");
+            IObjectPK save=null;
             // 保存实体对象
-            IObjectPK save = bosObject.save(coreBaseInfo);
+            if (coreBaseInfo instanceof EmpEnrollBizBillInfo){
+                System.out.println("=======submit=======");
+                coreBaseInfo.put("billState", HRBillStateEnum.SUBMITED );
+                coreBaseInfo.put("approveType",ApproveTypeEnum.WORKFLOW);
+                coreBaseInfo.setExtendedProperty("isAddNew", "isAddNew");
+                save = bosObject.submit(coreBaseInfo);
+            }else {
+                System.out.println("=======save=======");
+                save = bosObject.save(coreBaseInfo);
+
+            }
 
             if (sorterMethod != null && !sorterMethod.equals("")) {
                 // 根据关联字段和排序方法查询实体对象集合
@@ -382,7 +454,7 @@ public class BeiSenSysTest implements IHRMsfService {
             // 处理文件信息
             fileProcessor(save.toString(), null, jsonArray1);
         }
-        if (fileJSON!=null){
+        if (fileJSON != null) {
             // 获取文件信息的第一个 JSON 对象
             JSONObject jsonObject = fileJSON.getJSONObject(0);
             if (!fileId.equals("")) {
@@ -447,7 +519,7 @@ public class BeiSenSysTest implements IHRMsfService {
      * @throws ParseException     解析异常
      */
     public JSONArray fieldProcessing(List<FieldInfo> fields, CoreBaseInfo coreBaseInfo, JSONObject jsonObject, String fileName) throws JSONException, ShrWebBizException, BOSException, ParseException {
-        System.out.println("===============+"+jsonObject);
+        System.out.println("===============+" + jsonObject);
         // 用于存储处理后的文件信息的 JSON 数组
         JSONArray files = new JSONArray();
         // 用于存储单个文件信息的 JSON 对象
@@ -470,21 +542,22 @@ public class BeiSenSysTest implements IHRMsfService {
             Object value = null;
             // 获取字段的属性
             Map<String, String> attributes = fieldInfo.getAttributes();
-            ;
+            System.out.println("===============alias:" + alias);
             Object dataObject = jsonObject.get(split[0]);
             String s1 = attributes.get("data-valueType");
-            if (s1!=null&&s1.equals("url")) {
-                if (dataObject instanceof JSONObject){
+            if (s1 != null && s1.equals("url")) {
+                if (dataObject instanceof JSONObject) {
                     JSONObject data = jsonObject.getJSONObject(split[0]);
-                    if (data!=null){
-                        file = new JSONObject();
+                    if (data != null) {
+
                         value = data.get(split[1]);
-                        if (value instanceof JSONObject){
+                        if (value instanceof JSONObject) {
                             value = data.getJSONObject(split[1]).get(split[2]);
-                            if (value instanceof  JSONArray){
+                            if (value instanceof JSONArray) {
                                 JSONArray jsonArray = data.getJSONObject(split[1]).getJSONArray(split[2]);
-                                String tempValue="";
+                                String tempValue = "";
                                 for (int j = 0; j < jsonArray.size(); j++) {
+                                    file = new JSONObject();
                                     String string = jsonArray.getString(j);
                                     // 将数据的 UI 主键、下载链接和文件名添加到文件信息的 JSON 对象中
                                     file.put("uipk", attributes.get("data-uipk"));
@@ -496,30 +569,31 @@ public class BeiSenSysTest implements IHRMsfService {
                                 continue;
                             }
                         }
-                        if (value == null || value.equals("null") || value.equals("{}")||value.equals("")) {
+                        if (value == null || value.equals("null") || value.equals("{}") || value.equals("")) {
                             continue;
                         }
-                        // 将数据的 UI 主键、下载链接和文件名添加到文件信息的 JSON 对象中
-                        file.put("uipk", attributes.get("data-uipk"));
-                        file.put("url", value);
-                        file.put("name", data.getString("text"));
-                        // 将文件信息的 JSON 对象添加到文件信息的 JSON 数组中
-                        files.add(file);
+//                        // 将数据的 UI 主键、下载链接和文件名添加到文件信息的 JSON 对象中
+//                        file.put("uipk", attributes.get("data-uipk"));
+//                        file.put("url", value);
+//                        file.put("name", data.getString("text"));
+//                        // 将文件信息的 JSON 对象添加到文件信息的 JSON 数组中
+//                        files.add(file);
                     }
 
-                }else if(dataObject instanceof JSONArray){
+                } else if (dataObject instanceof JSONArray) {
                     JSONArray jsonArray1 = jsonObject.getJSONArray(split[0]);
                     for (int j = 0; j < jsonArray1.size(); j++) {
                         JSONObject data = jsonArray1.getJSONObject(j);
-                        if (data!=null){
-                            file = new JSONObject();
+                        if (data != null) {
                             value = data.get(split[1]);
-                            if (value instanceof JSONObject){
+                            if (value instanceof JSONObject) {
                                 value = data.getJSONObject(split[1]).get(split[2]);
-                                if (value instanceof  JSONArray){
+                                if (value instanceof JSONArray) {
                                     JSONArray jsonArray = data.getJSONObject(split[1]).getJSONArray(split[2]);
-                                    String tempValue="";
+                                    System.out.println("===========" + jsonArray);
+                                    String tempValue = "";
                                     for (int k = 0; k < jsonArray.size(); k++) {
+                                        file = new JSONObject();
                                         String string = jsonArray.getString(k);
                                         // 将数据的 UI 主键、下载链接和文件名添加到文件信息的 JSON 对象中
                                         file.put("uipk", attributes.get("data-uipk"));
@@ -528,70 +602,69 @@ public class BeiSenSysTest implements IHRMsfService {
                                         // 将文件信息的 JSON 对象添加到文件信息的 JSON 数组中
                                         files.add(file);
                                     }
-                                    continue;
+                                    //continue;
                                 }
                             }
-                            if (value == null || value.equals("null") || value.equals("{}")||value.equals("")) {
-                                continue;
-                            }
-                            // 将数据的 UI 主键、下载链接和文件名添加到文件信息的 JSON 对象中
-                            file.put("uipk", attributes.get("data-uipk"));
-                            file.put("url", value);
-                            file.put("name", data.getString("text"));
-                            // 将文件信息的 JSON 对象添加到文件信息的 JSON 数组中
-                            files.add(file);
-
+//                            if (value == null || value.equals("null") || value.equals("{}") || value.equals("")) {
+//                                continue;
+//                            }
+//                            // 将数据的 UI 主键、下载链接和文件名添加到文件信息的 JSON 对象中
+//                            file.put("uipk", attributes.get("data-uipk"));
+//                            file.put("url", value);
+//                            file.put("name", data.getString("text"));
+//                            // 将文件信息的 JSON 对象添加到文件信息的 JSON 数组中
+//                            files.add(file);
                         }
                     }
                     continue;
                 }
 
 
-
             }
-            JSONObject data = jsonObject.getJSONObject(split[0]);
+            Object data = jsonObject.get(split[0]);
             // 获取数据的 JSON 对象
 
             if (data == null) {
                 // 如果数据为空,获取默认值
                 value = attributes.get("data-defaultValue");
             } else {
+                JSONObject data1 = null;
                 // 获取数据的值
-                value = data.get(split[1]);
+                if (data instanceof JSONArray) {
+                    if (jsonObject.getJSONArray(split[0]).size() == 0) {
+                        value = attributes.get("data-defaultValue");
+                    } else {
+                        JSONArray jsonArray = jsonObject.getJSONArray(split[0]);
+                        data1 = jsonArray.getJSONObject(0);
+                    }
+                } else {
+                    data1 = jsonObject.getJSONObject(split[0]);
+                }
+
+                value = data1.get(split[1]);
 
                 if (value == null) {
                     // 如果值为空,获取默认值
                     value = attributes.get("data-defaultValue");
                 } else {
-                    value = data.get(split[1]);
-                    if (value instanceof JSONObject){
-                        value = data.getJSONObject(split[1]).get(split[2]);
-//                        if (value instanceof  JSONArray){
-//                            JSONArray jsonArray = data.getJSONObject(split[1]).getJSONArray(split[2]);
-//                            String tempValue="";
-//                            if (jsonArray.size()>0) {
-//                                String string = jsonArray.getString(0);
-//                                value
-//                            }
-//                            if (!tempValue.equals("")){
-//                                value = tempValue.substring(0,tempValue.length()-1);
-//                            }
-//                        }
-                    }else if (value instanceof JSONArray){
-                        JSONArray jsonArray = data.getJSONArray(split[1]);
-                        if (jsonArray.size()>0){
+                    value = data1.get(split[1]);
+                    if (value instanceof JSONObject) {
+                        value = data1.getJSONObject(split[1]).get(split[2]);
+                    } else if (value instanceof JSONArray) {
+                        JSONArray jsonArray = data1.getJSONArray(split[1]);
+                        if (jsonArray.size() > 0) {
                             Object o = jsonArray.get(0);
-                            if (o instanceof  JSONObject){
+                            if (o instanceof JSONObject) {
                                 Object string = jsonArray.getJSONObject(0).get(split[2]);
-                                if (string instanceof Integer){
+                                if (string instanceof Integer) {
                                     value = jsonArray.getJSONObject(0).getInteger(split[2]);
-                                }else  if (o instanceof  String){
+                                } else if (o instanceof String) {
                                     value = jsonArray.getJSONObject(0).getString(split[2]);
                                 }
                             }
                         }
-                    }else {
-                        value = data.getString(split[1]);
+                    } else {
+                        value = data1.getString(split[1]);
                     }
                     // 获取自定义映射值
                     String s = attributes.get("data-mappingValue");
@@ -607,9 +680,14 @@ public class BeiSenSysTest implements IHRMsfService {
 
                         }
                     }
+                    if (value == null || value.equals("")){
+                        value = attributes.get("data-defaultValue");
+                    }
 
                 }
+
             }
+            System.out.println("=========attributes.get(\"data-defaultValue\")"+attributes.get("data-defaultValue"));
             if (value == null || value.equals("")) {
                 // 如果值为空,打印日志并跳过处理
                 System.out.println("+++++++++" + value);
@@ -626,49 +704,69 @@ public class BeiSenSysTest implements IHRMsfService {
 
                     // 创建对应的业务对象
                     ICoreBase bosObject = (ICoreBase) (BOSObjectFactory.createBOSObject(context, coreBaseInfo1.getBOSType()));
-
+                    String where = "where name like '%" + value + "%' or number = '" + value + "'";
+                    if (coreBaseInfo1 instanceof PersonInfo) {
+                        where += " or beisenid = '" + value + "'";
+                    } else if (coreBaseInfo1 instanceof AdminOrgUnitInfo) {
+                        where += " or originalId = '" + value + "'";
+                    } else if (coreBaseInfo1 instanceof PositionInfo) {
+                        where += " or OriginalId = '" + value + "'";
+                    }
                     // 根据名称或编号查询实体对象集合
-                    CoreBaseCollection dataBaseCollection = bosObject.getCollection("where name like '%" + value + "%' or number = '" + value + "'");
+                    CoreBaseCollection dataBaseCollection = bosObject.getCollection(where);
                     if (dataBaseCollection.size() <= 0) {
+                        // 如果值为空,获取默认值
+                        value = attributes.get("data-defaultValue");
+                        System.out.println("=========默认值重新查询==="+value);
                         // 如果集合为空,将字段的值设置为 null
                         // coreBaseInfo.put(name, null);
+                        bosObject = (ICoreBase) (BOSObjectFactory.createBOSObject(context, coreBaseInfo1.getBOSType()));
+                        where = "where name like '%" + value + "%' or number = '" + value + "'";
+                        if (coreBaseInfo1 instanceof PersonInfo) {
+                            where += " or beisenid = '" + value + "'";
+                        } else if (coreBaseInfo1 instanceof AdminOrgUnitInfo) {
+                            where += " or originalId = '" + value + "'";
+                        } else if (coreBaseInfo1 instanceof PositionInfo) {
+                            where += " or OriginalId = '" + value + "'";
+                        }
+                         dataBaseCollection = bosObject.getCollection(where);
+                        if (dataBaseCollection.size() > 0) {
+                            setCoreBaseInfo(coreBaseInfo, name, dataBaseCollection.get(0));
+                        }
                     } else {
                         // 将查询到的第一个实体对象设置到当前实体对象中
                         //coreBaseInfo.put(name, dataBaseCollection.get(0));
-                        setCoreBaseInfo(coreBaseInfo,name, dataBaseCollection.get(0));
+                        setCoreBaseInfo(coreBaseInfo, name, dataBaseCollection.get(0));
                     }
 
                 }
             } else if (dataType != null && dataType.getName().equals("Enum")) {
                 // 如果数据类型为枚举,将值设置到当前实体对象中
                 //coreBaseInfo.put(name, value);
-                setCoreBaseInfo(coreBaseInfo,name,value);
+                setCoreBaseInfo(coreBaseInfo, name, value);
             } else if (dataType != null && dataType.getName().equals("Date")) {
                 // 创建日期格式化对象
                 SimpleDateFormat f = new SimpleDateFormat(attributes.get("dateFormat"));
                 if (!value.equals("") || !value.equals("未知") || !value.equals("9999/12")) {
                     // 将日期字符串解析为日期对象并设置到当前实体对象中
                     //coreBaseInfo.put(name, f.parse(value));
-                    setCoreBaseInfo(coreBaseInfo,name, f.parse(value.toString()));
+                    setCoreBaseInfo(coreBaseInfo, name, f.parse(value.toString()));
                 }
             } else {
-                if (jsonObject.getJSONObject("staffInfos").getString("idCardType") != null
-                        && name.equals("entrys.IDCardNo")) {
-                    // 获取证件类型的 JSON 对象
-                    JSONObject string = jsonObject.getJSONObject("CertificateType");
+                if (name.equals("entrys.IDCardNo")) {
                     // 获取证件类型的值
                     String string1 = jsonObject.getJSONObject("staffInfos").getString("idCardType");
                     if ("1".equals(string1)) {
                         // 如果证件类型为 1,将值设置到身份证号码字段中
                         //coreBaseInfo.put(name, value);
-                        setCoreBaseInfo(coreBaseInfo,name,value);
+                        setCoreBaseInfo(coreBaseInfo, name, value);
                     } else {
                         // 否则,将值设置到护照号码字段中
                         //coreBaseInfo.put("passportNO", value);
-                        setCoreBaseInfo(coreBaseInfo,"entrys.passportNO", value);
+                        setCoreBaseInfo(coreBaseInfo, "entrys.passportNO", value);
                     }
                 } else {
-                    setCoreBaseInfo(coreBaseInfo,name,value);
+                    setCoreBaseInfo(coreBaseInfo, name, value);
                     // 将值设置到当前实体对象中
                     //coreBaseInfo.put(name, value);
                 }
@@ -679,27 +777,185 @@ public class BeiSenSysTest implements IHRMsfService {
         // 返回处理后的文件信息的 JSON 数组
         return files;
     }
-    public void setCoreBaseInfo(CoreBaseInfo coreBaseInfo,String name,Object value){
-        if (name.indexOf(".")>=0){
+
+    public void setCoreBaseInfo(CoreBaseInfo coreBaseInfo, String name, Object value) {
+        System.out.println("+++++++++++++++" + name + ":" + value);
+        if (name.indexOf(".") >= 0) {
             String[] split = name.split("\\.");
             Object o = coreBaseInfo.get(split[0]);
-            if (o instanceof  EmpEnrollBizBillEntryInfo){
-                ((CoreBaseInfo) o).put(split[1],value);
-            }else if (o instanceof EmpEnrollBizBillEntryCollection){
-                EmpEnrollBizBillEntryCollection collection =  ((EmpEnrollBizBillEntryCollection) o);
-                EmpEnrollBizBillEntryInfo objectValue=null;
-                if (collection.size()==0){
-                    objectValue= new EmpEnrollBizBillEntryInfo();
+            if (o instanceof EmpEnrollBizBillEntryInfo) {
+                ((CoreBaseInfo) o).put(split[1], value);
+            } else if (o instanceof EmpEnrollBizBillEntryCollection) {
+                EmpEnrollBizBillEntryCollection collection = ((EmpEnrollBizBillEntryCollection) o);
+                EmpEnrollBizBillEntryInfo objectValue = null;
+                if (collection.size() == 0) {
+                    objectValue = new EmpEnrollBizBillEntryInfo();
+                    //objectValue.setBizDate(new Date());
                     collection.add(objectValue);
-                }else {
+                } else {
                     objectValue = collection.get(0);
+                    Date bizDate = objectValue.getBizDate();
+                    if (bizDate == null) {
+                        //objectValue.setBizDate(new Date());
+                    }
+                    String empNumber = objectValue.getEmpNumber();
+                    if (empNumber==null||empNumber.equals("")){
+                        try {
+                            String billNumber = readCodeRuleNumber(context, new PersonInfo(), getMainOrgByCu(context));
+                            System.out.println("billNumber:"+billNumber);
+                            objectValue.setEmpNumber(billNumber);
+                        } catch (SHRWebException e) {
+                            throw new RuntimeException(e);
+                        }
+                    }
+
+
                 }
-                objectValue.put(split[1],value);
-                //collection.add(objectValue);
+                objectValue.put(split[1], value);
+            }
+        } else {
+            coreBaseInfo.put(name, value);
+        }
+
+
+    }
+    public static String getMainOrgByCu(Context ctx) {
+        OrgUnitInfo mainOrg = (OrgUnitInfo)ctx.get(OrgType.HRO);
+        String orgId = mainOrg == null ? "" : mainOrg.getString("id");
+        if (orgId == null || orgId.trim().length() == 0) {
+            orgId = "00000000-0000-0000-0000-000000000000CCE7AED4";
+        }
+
+        return orgId;
+    }
+
+
+    public static String readCodeRuleNumber(Context ctx, IObjectValue model, String mainOrgID) throws SHRWebException {
+        boolean hasCodingRule = hasCodingRule(ctx, model, mainOrgID);
+        if (hasCodingRule) {
+            try {
+                ICodingRuleManager iCodingRuleManager = CodingRuleManagerFactory.getLocalInstance(ctx);
+                return iCodingRuleManager.readNumber(model, mainOrgID);
+            } catch (BOSException var5) {
+                throw new SHRWebException(var5);
+            } catch (EASBizException var6) {
+                throw new SHRWebException(var6);
             }
+        } else {
+            return null;
+        }
+    }
+
+    public static boolean hasCodingRule(Context ctx, IObjectValue model, String orgId) {
+        try {
+            ICodingRuleManager iCodingRuleManager = CodingRuleManagerFactory.getLocalInstance(ctx);
+            if (orgId != null && orgId.trim().length() > 0 && iCodingRuleManager.isExist(model, orgId)) {
+                return true;
+            } else {
+                String companyId = getNextCompanyId(ctx);
+                return companyId != null && companyId.trim().length() > 0 && iCodingRuleManager.isExist(model, companyId);
+            }
+        } catch (Exception var5) {
+            var5.printStackTrace();
+            return false;
+        }
+    }
+    public static String getNextCompanyId(Context ctx) throws Exception {
+        ICtrlUnit iCtrlUnit = CtrlUnitFactory.getRemoteInstance();
+        IObjectPK pk = new ObjectUuidPK("00000000-0000-0000-0000-000000000000CCE7AED4");
+        OrgUnitInfo rootCU = iCtrlUnit.getCtrlUnitInfo(pk);
+        return rootCU != null ? rootCU.getId().toString() : null;
+    }
+
+
+    public String headProcessing(UIViewInfo uiViewInfo, JSONObject jsonObject
+            , CoreBaseInfo coreBaseInfo, JSONArray fileJSON, String fileName) throws BOSException, SHRWebException,
+            EASBizException, JSONException, ParseException, IOException {
+        // 根据 UI 视图的主键生成动态 UI 视图信息
+        com.kingdee.shr.base.syssetting.web.dynamic.model.UIViewInfo uiViewInfo1 =
+                generateUIView(context, uiViewInfo.getUipk());
+        // 获取实体名称
+        String entityName = uiViewInfo1.getEntityName();
+        // 获取字段列表
+        List<FieldInfo> fields = uiViewInfo1.getFields();
+        // 处理字段信息
+        JSONArray jsonArray = this.fieldProcessing(fields, coreBaseInfo, jsonObject, fileName);
+        // 创建对应的业务对象
+        ICoreBase bosObject = (ICoreBase) (BOSObjectFactory.createBOSObject(context, coreBaseInfo.getBOSType()));
+        IObjectPK save=null;
+        // 保存实体对象
+        if (coreBaseInfo instanceof EmpEnrollBizBillInfo){
+            System.out.println("===========submit==============");
+            coreBaseInfo.put("billState", HRBillStateEnum.SUBMITED );
+            coreBaseInfo.put("approveType",ApproveTypeEnum.WORKFLOW);
+            coreBaseInfo.setExtendedProperty("isAddNew", "isAddNew");
+            save = bosObject.submit(coreBaseInfo);
         }else {
-            coreBaseInfo.put(name,value);
+            System.out.println("===========save==============");
+            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);
+
+        // 获取文件信息的第一个 JSON 对象
+        if (fileJSON != null) {
+            JSONObject jsonObject1 = fileJSON.getJSONObject(0);
+            if (!save.toString().equals("")) {
+                // 遍历字段列表
+                for (int i = 0; i < fields.size(); i++) {
+                    // 获取单个字段信息
+                    FieldInfo fieldInfo = fields.get(i);
+                    // 获取字段的别名
+                    String alias = fieldInfo.getAlias();//CertificateNu
+                    // 获取字段的名称
+                    String name = fieldInfo.getName();//idCardNO
+                    if (!name.equals(fileName)) {
+                        continue;
+                    }
+                    // 分割字段别名
+                    String[] split = alias.split("#");
+                    // 获取字段的属性
+                    Map<String, String> attributes = fieldInfo.getAttributes();
+                    // 获取数据的 UI 主键
+                    String uipk = attributes.get("data-uipk");
+                    // 获取文件信息
+                    JSONObject data = jsonObject1.getJSONObject(split[1]);
+
+                    if (data != null) {
+                        // 获取下载链接
+                        JSONArray downloadUrl = data.getJSONArray("downloadUrls");
+                        // 分割下载链接
+                        // 获取文件名
+                        //String text = data.getString("text");
+                        // 分割文件名
+                        //String[] split2 = text.split(",");
+                        for (int k = 0; k < downloadUrl.size(); k++) {
+                            byte[] dataImg = new byte[0];
+                            // 拼接完整的下载链接
+                            String URL = "http:" + downloadUrl.get(k);
+                            System.out.println("===========" + URL + "==========");
+                            // 从网络下载文件数据
+                            dataImg = helper.getBytesByNetURL(URL);
+                            // 插入人员附件信息
+                            //insertPersonAttachment(split2[k], uipk, save.toString(), dataImg);
+                        }
+                    }
+
+
+                }
+            }
+        }
+
+
+        // 返回保存后的人员信息实体对象的主键
+        return save.toString();
     }
 
 
@@ -737,15 +993,26 @@ public class BeiSenSysTest implements IHRMsfService {
         // 创建对应的业务对象
         ICoreBase bosObject = (ICoreBase) (BOSObjectFactory.createBOSObject(context, coreBaseInfo.getBOSType()));
 
+        IObjectPK save=null;
         // 保存实体对象
-        IObjectPK save = bosObject.save(coreBaseInfo);
+        if (coreBaseInfo instanceof EmpEnrollBizBillInfo){
+            System.out.println("=====submit=========");
+            coreBaseInfo.put("billState", HRBillStateEnum.SUBMITED );
+            coreBaseInfo.put("approveType",ApproveTypeEnum.WORKFLOW);
+            coreBaseInfo.setExtendedProperty("isAddNew", "isAddNew");
+            save = bosObject.submit(coreBaseInfo);
+        }else {
+            System.out.println("=====save=========");
+            save = bosObject.save(coreBaseInfo);
+
+        }
 
         PersonInfo personInfo = (PersonInfo) coreBaseInfo.get("person");
         // 处理文件信息
         fileProcessor(save.toString(), personInfo, jsonArray);
 
         // 获取文件信息的第一个 JSON 对象
-        if (fileJSON!=null){
+        if (fileJSON != null) {
             JSONObject jsonObject1 = fileJSON.getJSONObject(0);
             if (!save.toString().equals("")) {
                 // 遍历字段列表
@@ -794,7 +1061,6 @@ public class BeiSenSysTest implements IHRMsfService {
         }
 
 
-
         // 返回保存后的人员信息实体对象的主键
         return save.toString();
     }
@@ -818,7 +1084,7 @@ public class BeiSenSysTest implements IHRMsfService {
             String url = jsonObject1.getString("url");
             // 获取文件的名称
             String name = jsonObject1.getString("name");
-            if (url==null||url.toString().equals("")||url.toString().equals("[]")){
+            if (url == null || url.toString().equals("") || url.toString().equals("[]")) {
                 continue;
             }
             if (uipk.equals("PersonPhoto")) {
@@ -836,15 +1102,15 @@ public class BeiSenSysTest implements IHRMsfService {
                 try {
                     // 从网络下载文件数据
                     byte[] dataImg = null;
-                    if (url.indexOf("http:")>=0||url.indexOf("https:")>=0){
-                        dataImg= helper.getBytesByNetURL(url);
-                    }else {
-                        dataImg= helper.getBytesByNetURL("http:" + url);
+                    if (url.indexOf("http:") >= 0 || url.indexOf("https:") >= 0) {
+                        dataImg = helper.getBytesByNetURL(url);
+                    } else {
+                        dataImg = helper.getBytesByNetURL("http:" + url);
                     }
 
 
                     // 插入人员附件信息
-                    if (name==null){
+                    if (name == null) {
                         name = extractFileNameFromUrl(url);
                     }
                     insertPersonAttachment(name, uipk, id, dataImg);
@@ -866,6 +1132,7 @@ public class BeiSenSysTest implements IHRMsfService {
         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);
     }
+
     // 从URL中提取文件名
     private static String extractFileNameFromUrl(String url) {
         if (url == null || url.isEmpty()) {

+ 1 - 0
websrc/com/kingdee/eas/custom/webbeisen/utils/BeiSenUtils.java

@@ -8,6 +8,7 @@ import com.kingdee.bos.util.BOSUuid;
 import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
 import com.kingdee.shr.base.syssetting.util.MetaDataUtil;
 import com.kingdee.util.StringUtils;
+import com.kingdee.eas.custom.webbeisen.utils.Helper;
 
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;

+ 3 - 3
websrc/com/kingdee/eas/custom/webbeisen/utils/Helper.java

@@ -24,6 +24,7 @@ import org.apache.http.util.EntityUtils;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
 import java.net.*;
 import java.util.ArrayList;
 import java.util.List;
@@ -67,8 +68,6 @@ public class Helper {
 							 String businessId, String operate, String businessName)
 			throws URISyntaxException, JSONException, ClientProtocolException, IOException {
 		// 根据业务ID和业务名称获取操作日志信息
-		businessId = URLDecoder.decode("businessId","UTF-8");
-
 		OperateLogInfo operateLogInfo = getOperateLogInfoByBusinessId(businessId, businessName);
 		// 获取操作日志的条目集合
 		OperateLogEntryCollection entrys = operateLogInfo.getEntrys();
@@ -215,8 +214,9 @@ public class Helper {
 	 * @param businessName 业务名称
 	 * @return 操作日志信息对象
 	 */
-	public OperateLogInfo getOperateLogInfoByBusinessId(String businessId, String businessName) {
+	public OperateLogInfo getOperateLogInfoByBusinessId(String businessId, String businessName) throws UnsupportedEncodingException {
 		if (businessId != null && !businessId.equals("")) {
+			businessId = URLDecoder.decode(businessId,"UTF-8");
 			OperateLogCollection operateLogCollection = null;
 			try {
 				// 获取操作日志集合

+ 1025 - 28
websrc/com/kingdee/eas/custom/webbeisen/utils/JsonFormatConverter.java

@@ -3,6 +3,7 @@ package com.kingdee.eas.custom.webbeisen.utils;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
@@ -10,21 +11,23 @@ public class JsonFormatConverter {
 
 
     /**
-     * 转换data数组内指定字段的格式
-     * @param originalJson 原始JSON字符串(需为数组格式或包含data数组的对象)
-     * @param targetFields 需要转换的字段集合(用户自定义)
-     * @return 转换后的JSON字符串
+     * 转换 data 数组到指定字段的格式
+     * @param originalJson 原始 JSON 字符串,格式为数组形式,可能包含 data 数组的对象
+     * @param targetFields 需要转换的字段列表,由用户自定义
+     * @return 转换后的 JSON 字符串
      */
     public static String convertDataFields(String originalJson, List<String> targetFields) {
-        // 解析原始JSON
+        String fieldToRemove = "extfujian";
+        originalJson = processSubCollection(originalJson, fieldToRemove);
+        // 解析原始 JSON
         Object root = JSONObject.parse(originalJson);
         JSONArray dataArray = getRootDataArray(root);
 
         if (dataArray == null) {
-            return originalJson; // 无data数组时直接返回原始数据
+            return originalJson; // 没有 data 数组时直接返回原始内容
         }
 
-        // 处理data数组内的所有元素
+        // 处理 data 数组里的每个元素
         for (int i = 0; i < dataArray.size(); i++) {
             Object item = dataArray.get(i);
             if (item instanceof JSONObject) {
@@ -36,7 +39,7 @@ public class JsonFormatConverter {
     }
 
     /**
-     * 获取根数据数组(兼容顶层为数组或包含data数组的对象)
+     * 获取根数据数组(假设根对象为数组或包含 data 数组的对象)
      */
     private static JSONArray getRootDataArray(Object root) {
         if (root instanceof JSONArray) {
@@ -48,7 +51,7 @@ public class JsonFormatConverter {
     }
 
     /**
-     * 递归处理JSONObject,转换指定字段
+     * 递归处理 JSONObject 并转换指定字段
      */
     private static void processJsonObject(JSONObject obj, List<String> targetFields) {
         // 处理当前对象中的目标字段
@@ -56,7 +59,7 @@ public class JsonFormatConverter {
             if (obj.containsKey(field)) {
                 Object original = obj.get(field);
                 if (original instanceof JSONArray) {
-                    // 将数组转换为键值对并直接添加到对象
+                    // 将数组转换为键值对并直接添加到对象
                     convertArrayAndMerge(obj, field, (JSONArray) original);
                 }
             }
@@ -74,7 +77,7 @@ public class JsonFormatConverter {
     }
 
     /**
-     * 递归处理JSONArray,转换其中元素的指定字段
+     * 递归处理 JSONArray 并转换其中元素的指定字段
      */
     private static void processJsonArray(JSONArray array, List<String> targetFields) {
         for (int i = 0; i < array.size(); i++) {
@@ -88,7 +91,7 @@ public class JsonFormatConverter {
     }
 
     /**
-     * 将JSONArray转换为键值对并合并到父对象
+     * 将 JSONArray 转换为键值对并合并到父对象
      */
     private static void convertArrayAndMerge(JSONObject parent, String originalField, JSONArray array) {
         if (array == null) return;
@@ -103,14 +106,14 @@ public class JsonFormatConverter {
                 JSONObject jsonItem = (JSONObject) item;
                 String primaryKey = extractNameField(jsonItem);
                 if (primaryKey != null) {
-                    // 创建一个不包含name字段的新对象
+                    // 创建一个不包含 name 字段的新对象
                     JSONObject processedItem = new JSONObject(true);
                     for (String key : jsonItem.keySet()) {
                         if (!"name".equals(key)) {
                             processedItem.put(key, jsonItem.get(key));
                         }
                     }
-                    // 直接将处理后的对象添加到父对象
+                    // 直接将处理后的对象添加到父对象
                     parent.put(primaryKey, processedItem);
                 }
             }
@@ -118,7 +121,7 @@ public class JsonFormatConverter {
     }
 
     /**
-     * 提取对象的name字段值
+     * 获取对象中的 name 字段值
      */
     private static String extractNameField(JSONObject obj) {
         if (obj.containsKey("name")) {
@@ -128,29 +131,1023 @@ public class JsonFormatConverter {
         return null;
     }
 
+    /**
+     * 处理 subCollection 数据,去除指定 name 的字段
+     * @param originalJson 原始 JSON 字符串
+     * @param fieldToRemove 需要移除的字段名
+     * @return 处理后的 JSON 字符串
+     */
+    public static String processSubCollection(String originalJson, String fieldToRemove) {
+        // 解析原始 JSON
+        Object root = JSONObject.parse(originalJson);
+        JSONArray rootArray = getRootArray(root);
+
+        if (rootArray == null) {
+            return originalJson; // 没有根数组时直接返回原始内容
+        }
+
+        // 处理每个根数组元素
+        for (int i = 0; i < rootArray.size(); i++) {
+            Object item = rootArray.get(i);
+            if (item instanceof JSONObject) {
+                JSONObject jsonItem = (JSONObject) item;
+                processSubCollectionObject(jsonItem, fieldToRemove);
+            }
+        }
+
+        return rootArray.toJSONString();
+    }
+
+    /**
+     * 获取根数组
+     */
+    private static JSONArray getRootArray(Object root) {
+        if (root instanceof JSONArray) {
+            return (JSONArray) root;
+        }
+        return null;
+    }
+
+    /**
+     * 处理包含键名包含 subCollection 的 JSONObject
+     */
+    private static void processSubCollectionObject(JSONObject obj, String fieldToRemove) {
+        for (String key : obj.keySet()) {
+            if (key.contains("subCollection")) {
+                Object value = obj.get(key);
+                if (value instanceof JSONArray) {
+                    JSONArray subCollections = (JSONArray) value;
+                    for (int i = 0; i < subCollections.size(); i++) {
+                        Object subItem = subCollections.get(i);
+                        if (subItem instanceof JSONObject) {
+                            JSONObject subObj = (JSONObject) subItem;
+                            JSONArray fields = subObj.getJSONArray("fields");
+                            if (fields != null) {
+                                removeField(fields, fieldToRemove);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * 从 fields 中移除指定 name 的字段
+     */
+    private static void removeField(JSONArray fields, String fieldToRemove) {
+        List<Integer> indicesToRemove = new ArrayList<Integer>();
+        for (int i = 0; i < fields.size(); i++) {
+            Object fieldItem = fields.get(i);
+            if (fieldItem instanceof JSONObject) {
+                JSONObject fieldObj = (JSONObject) fieldItem;
+                String fieldName = fieldObj.getString("name");
+                if (fieldName.indexOf(fieldToRemove)>=0) {
+                    indicesToRemove.add(i);
+                }
+            }
+        }
+
+        // 从后往前移除元素,避免索引错乱
+        for (int i = indicesToRemove.size() - 1; i >= 0; i--) {
+            int index = indicesToRemove.get(i);
+            fields.remove(index);
+        }
+    }
+
     public static void main(String[] args) {
         // 示例JSON数据
-        String originalJson = "[\n" +
-                "    {\n" +
-                "        \"customField\": [\n" +
+        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" +
-                "                \"name\": \"key1\",\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" +
-                "                \"name\": \"key2\",\n" +
-                "                \"downloadUrls\": null\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" +
-                "    }\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> targetFields = Arrays.asList("customField");
-
+        List<String> list = new ArrayList<String>();
+        list.add("extendInfos");
+        list.add("fileInfos");
+        list.add("fields");
         // 执行转换
-        String convertedJson = convertDataFields(originalJson, targetFields);
+        String convertedJson = convertDataFields(result, list);
         System.out.println(convertedJson);
     }
 }