9060 преди 9 месеца
родител
ревизия
154ed2ebe0

+ 227 - 0
metadata/com/kingdee/eas/custom/beisen/synchronouspos/SynchronousPosFacade.facade

@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<facade xmlns="com.kingdee.bos.metadata">
+    <package>com.kingdee.eas.custom.beisen.synchronouspos</package>
+    <name>SynchronousPosFacade</name>
+    <alias>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].alias</alias>
+    <description>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].description</description>
+    <userDefined>true</userDefined>
+    <bosType>D8629CA8</bosType>
+    <stereoType>false</stereoType>
+    <businessImplName>com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade</businessImplName>
+    <businessControllerName>com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacadeController</businessControllerName>
+    <accessLevel>public</accessLevel>
+    <subClassingMode>normal</subClassingMode>
+    <methods>
+        <method>
+            <name>syncPosToBeiSen</name>
+            <isListenerMethod>false</isListenerMethod>
+            <alias>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].alias</alias>
+            <description>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].description</description>
+            <innerID>bcb67896-384a-4759-9e21-2272bbe0a76a</innerID>
+            <accessLevel>public</accessLevel>
+            <subClassingMode>normal</subClassingMode>
+            <returnValueType>String</returnValueType>
+            <metadataRef />
+            <transactionAttribute>Supports</transactionAttribute>
+            <userDefined>true</userDefined>
+            <userDefinedLogic />
+            <parameters>
+                <parameter>
+                    <name>posId</name>
+                    <alias>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].parameters.parameter[posId].alias</alias>
+                    <description>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].parameters.parameter[posId].description</description>
+                    <direction>in</direction>
+                    <dataType>String</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+                <parameter>
+                    <name>syncStartTimeStr</name>
+                    <alias>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].parameters.parameter[syncStartTimeStr].alias</alias>
+                    <description>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].parameters.parameter[syncStartTimeStr].description</description>
+                    <direction>in</direction>
+                    <dataType>String</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+                <parameter>
+                    <name>syncEndTimeStr</name>
+                    <alias>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].parameters.parameter[syncEndTimeStr].alias</alias>
+                    <description>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].parameters.parameter[syncEndTimeStr].description</description>
+                    <direction>in</direction>
+                    <dataType>String</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+            </parameters>
+            <configured>false</configured>
+        </method>
+        <method>
+            <name>sendAddNewPosToBeisen</name>
+            <isListenerMethod>false</isListenerMethod>
+            <alias>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendAddNewPosToBeisen].alias</alias>
+            <description>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendAddNewPosToBeisen].description</description>
+            <innerID>c389ce38-a770-4e79-afb1-590acaf9357a</innerID>
+            <accessLevel>public</accessLevel>
+            <subClassingMode>normal</subClassingMode>
+            <returnValueType>String</returnValueType>
+            <metadataRef />
+            <transactionAttribute>Supports</transactionAttribute>
+            <userDefined>true</userDefined>
+            <userDefinedLogic />
+            <parameters>
+                <parameter>
+                    <name>jsonStr</name>
+                    <alias>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendAddNewPosToBeisen].parameters.parameter[jsonStr].alias</alias>
+                    <description>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendAddNewPosToBeisen].parameters.parameter[jsonStr].description</description>
+                    <direction>in</direction>
+                    <dataType>String</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+            </parameters>
+            <configured>false</configured>
+        </method>
+        <method>
+            <name>sendEditPosToBeisen</name>
+            <isListenerMethod>false</isListenerMethod>
+            <alias>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendEditPosToBeisen].alias</alias>
+            <description>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendEditPosToBeisen].description</description>
+            <innerID>f3a89f59-2db6-4108-af20-a6ac57f9aa9c</innerID>
+            <accessLevel>public</accessLevel>
+            <subClassingMode>normal</subClassingMode>
+            <returnValueType />
+            <metadataRef />
+            <transactionAttribute>Supports</transactionAttribute>
+            <userDefined>true</userDefined>
+            <userDefinedLogic />
+            <parameters>
+                <parameter>
+                    <name>jsonStr</name>
+                    <alias>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendEditPosToBeisen].parameters.parameter[jsonStr].alias</alias>
+                    <description>facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendEditPosToBeisen].parameters.parameter[jsonStr].description</description>
+                    <direction>in</direction>
+                    <dataType>String</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+            </parameters>
+            <configured>false</configured>
+        </method>
+    </methods>
+    <resource>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步职位到北森" />
+            <lang locale="zh_HK" value="同步職位到北森" />
+            <lang locale="zh_TW" value="同步職位到北森" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步职位到北森" />
+            <lang locale="zh_HK" value="同步職位到北森" />
+            <lang locale="zh_TW" value="同步職位到北森" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].extendedProperty.userDefined">
+            <lang locale="en_US" value="true" />
+            <lang locale="zh_CN" value="true" />
+            <lang locale="zh_TW" value="true" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendAddNewPosToBeisen].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="推送创建岗位到北森" />
+            <lang locale="zh_HK" value="推送創建崗位到北森" />
+            <lang locale="zh_TW" value="推送創建崗位到北森" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendAddNewPosToBeisen].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="null" />
+            <lang locale="zh_HK" value="null" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendAddNewPosToBeisen].parameters.parameter[jsonStr].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步北森数据" />
+            <lang locale="zh_HK" value="同步北森數據" />
+            <lang locale="zh_TW" value="同步北森數據" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendAddNewPosToBeisen].parameters.parameter[jsonStr].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步北森json字符串数据" />
+            <lang locale="zh_HK" value="同步北森json字元串數據" />
+            <lang locale="zh_TW" value="同步北森json字元串數據" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendEditPosToBeisen].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="推送修改岗位到北森" />
+            <lang locale="zh_HK" value="推送修改崗位到北森" />
+            <lang locale="zh_TW" value="推送修改崗位到北森" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendEditPosToBeisen].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="null" />
+            <lang locale="zh_HK" value="null" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendEditPosToBeisen].parameters.parameter[jsonStr].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步北森数据" />
+            <lang locale="zh_HK" value="同步北森數據" />
+            <lang locale="zh_TW" value="同步北森數據" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[sendEditPosToBeisen].parameters.parameter[jsonStr].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步北森json字符串数据" />
+            <lang locale="zh_HK" value="同步北森json字元串數據" />
+            <lang locale="zh_TW" value="同步北森json字元串數據" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步SHR职位到北森岗位" />
+            <lang locale="zh_HK" value="同步SHR職位到北森崗位" />
+            <lang locale="zh_TW" value="同步SHR職位到北森崗位" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步SHR职位到北森岗位" />
+            <lang locale="zh_HK" value="同步SHR職位到北森崗位" />
+            <lang locale="zh_TW" value="同步SHR職位到北森崗位" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].parameters.parameter[posId].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="职位id" />
+            <lang locale="zh_HK" value="職位id" />
+            <lang locale="zh_TW" value="職位id" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].parameters.parameter[posId].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="职位id" />
+            <lang locale="zh_HK" value="職位id" />
+            <lang locale="zh_TW" value="職位id" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].parameters.parameter[syncEndTimeStr].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步结束时间" />
+            <lang locale="zh_HK" value="同步結束時間" />
+            <lang locale="zh_TW" value="同步結束時間" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].parameters.parameter[syncEndTimeStr].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步时间格式yyyy-MM-dd HH:mm:dd,例:2011-11-12 11:11:11" />
+            <lang locale="zh_HK" value="同步時間格式yyyy-MM-dd HH:mm:dd,例:2011-11-12 11:11:11" />
+            <lang locale="zh_TW" value="同步時間格式yyyy-MM-dd HH:mm:dd,例:2011-11-12 11:11:11" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].parameters.parameter[syncStartTimeStr].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步开始时间" />
+            <lang locale="zh_HK" value="同步開始時間" />
+            <lang locale="zh_TW" value="同步開始時間" />
+        </rs>
+        <rs key="facade[com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacade].methods.method[syncPosToBeiSen].parameters.parameter[syncStartTimeStr].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步时间格式yyyy-MM-dd HH:mm:dd,例:2011-11-11 11:11:11" />
+            <lang locale="zh_HK" value="同步時間格式yyyy-MM-dd HH:mm:dd,例:2011-11-11 11:11:11" />
+            <lang locale="zh_TW" value="同步時間格式yyyy-MM-dd HH:mm:dd,例:2011-11-11 11:11:11" />
+        </rs>
+    </resource>
+</facade>

+ 102 - 0
src/com/kingdee/eas/custom/beisen/synchronouspos/AbstractSynchronousPosFacadeControllerBean.java

@@ -0,0 +1,102 @@
+package com.kingdee.eas.custom.beisen.synchronouspos;
+
+import javax.ejb.*;
+import java.rmi.RemoteException;
+import com.kingdee.bos.*;
+import com.kingdee.bos.util.BOSObjectType;
+import com.kingdee.bos.metadata.IMetaDataPK;
+import com.kingdee.bos.metadata.rule.RuleExecutor;
+import com.kingdee.bos.metadata.MetaDataPK;
+//import com.kingdee.bos.metadata.entity.EntityViewInfo;
+import com.kingdee.bos.framework.ejb.AbstractEntityControllerBean;
+import com.kingdee.bos.framework.ejb.AbstractBizControllerBean;
+//import com.kingdee.bos.dao.IObjectPK;
+import com.kingdee.bos.dao.IObjectValue;
+import com.kingdee.bos.dao.IObjectCollection;
+import com.kingdee.bos.service.ServiceContext;
+import com.kingdee.bos.service.IServiceContext;
+import com.kingdee.eas.framework.Result;
+import com.kingdee.eas.framework.LineResult;
+import com.kingdee.eas.framework.exception.EASMultiException;
+import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
+
+import java.lang.String;
+
+
+
+public abstract class AbstractSynchronousPosFacadeControllerBean extends AbstractBizControllerBean implements SynchronousPosFacadeController
+{
+    protected AbstractSynchronousPosFacadeControllerBean()
+    {
+    }
+
+    protected BOSObjectType getBOSType()
+    {
+        return new BOSObjectType("D8629CA8");
+    }
+
+    public String syncPosToBeiSen(Context ctx, String posId, String syncStartTimeStr, String syncEndTimeStr) throws BOSException
+    {
+        try {
+            ServiceContext svcCtx = createServiceContext(new MetaDataPK("bcb67896-384a-4759-9e21-2272bbe0a76a"), new Object[]{ctx, posId, syncStartTimeStr, syncEndTimeStr});
+            invokeServiceBefore(svcCtx);
+            if(!svcCtx.invokeBreak()) {
+            String retValue = (String)_syncPosToBeiSen(ctx, posId, syncStartTimeStr, syncEndTimeStr);
+            svcCtx.setMethodReturnValue(retValue);
+            }
+            invokeServiceAfter(svcCtx);
+            return (String)svcCtx.getMethodReturnValue();
+        } catch (BOSException ex) {
+            throw ex;
+        } finally {
+            super.cleanUpServiceState();
+        }
+    }
+    protected String _syncPosToBeiSen(Context ctx, String posId, String syncStartTimeStr, String syncEndTimeStr) throws BOSException
+    {    	
+        return null;
+    }
+
+    public String sendAddNewPosToBeisen(Context ctx, String jsonStr) throws BOSException
+    {
+        try {
+            ServiceContext svcCtx = createServiceContext(new MetaDataPK("c389ce38-a770-4e79-afb1-590acaf9357a"), new Object[]{ctx, jsonStr});
+            invokeServiceBefore(svcCtx);
+            if(!svcCtx.invokeBreak()) {
+            String retValue = (String)_sendAddNewPosToBeisen(ctx, jsonStr);
+            svcCtx.setMethodReturnValue(retValue);
+            }
+            invokeServiceAfter(svcCtx);
+            return (String)svcCtx.getMethodReturnValue();
+        } catch (BOSException ex) {
+            throw ex;
+        } finally {
+            super.cleanUpServiceState();
+        }
+    }
+    protected String _sendAddNewPosToBeisen(Context ctx, String jsonStr) throws BOSException
+    {    	
+        return null;
+    }
+
+    public void sendEditPosToBeisen(Context ctx, String jsonStr) throws BOSException
+    {
+        try {
+            ServiceContext svcCtx = createServiceContext(new MetaDataPK("f3a89f59-2db6-4108-af20-a6ac57f9aa9c"), new Object[]{ctx, jsonStr});
+            invokeServiceBefore(svcCtx);
+              if(!svcCtx.invokeBreak()) {
+            _sendEditPosToBeisen(ctx, jsonStr);
+            }
+            invokeServiceAfter(svcCtx);
+        } catch (BOSException ex) {
+            throw ex;
+        } finally {
+            super.cleanUpServiceState();
+        }
+    }
+    protected void _sendEditPosToBeisen(Context ctx, String jsonStr) throws BOSException
+    {    	
+        return;
+    }
+
+}

+ 20 - 0
src/com/kingdee/eas/custom/beisen/synchronouspos/ISynchronousPosFacade.java

@@ -0,0 +1,20 @@
+package com.kingdee.eas.custom.beisen.synchronouspos;
+
+import com.kingdee.bos.BOSException;
+//import com.kingdee.bos.metadata.*;
+import com.kingdee.bos.framework.*;
+import com.kingdee.bos.util.*;
+import com.kingdee.bos.Context;
+
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.util.*;
+import java.lang.String;
+import com.kingdee.bos.Context;
+import com.kingdee.bos.framework.*;
+
+public interface ISynchronousPosFacade extends IBizCtrl
+{
+    public String syncPosToBeiSen(String posId, String syncStartTimeStr, String syncEndTimeStr) throws BOSException;
+    public String sendAddNewPosToBeisen(String jsonStr) throws BOSException;
+    public void sendEditPosToBeisen(String jsonStr) throws BOSException;
+}

+ 79 - 0
src/com/kingdee/eas/custom/beisen/synchronouspos/SynchronousPosFacade.java

@@ -0,0 +1,79 @@
+package com.kingdee.eas.custom.beisen.synchronouspos;
+
+import com.kingdee.bos.framework.ejb.EJBRemoteException;
+import com.kingdee.bos.util.BOSObjectType;
+import java.rmi.RemoteException;
+import com.kingdee.bos.framework.AbstractBizCtrl;
+import com.kingdee.bos.orm.template.ORMObject;
+
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.util.*;
+import java.lang.String;
+import com.kingdee.bos.Context;
+import com.kingdee.eas.custom.beisen.synchronouspos.*;
+import com.kingdee.bos.framework.*;
+
+public class SynchronousPosFacade extends AbstractBizCtrl implements ISynchronousPosFacade
+{
+    public SynchronousPosFacade()
+    {
+        super();
+        registerInterface(ISynchronousPosFacade.class, this);
+    }
+    public SynchronousPosFacade(Context ctx)
+    {
+        super(ctx);
+        registerInterface(ISynchronousPosFacade.class, this);
+    }
+    public BOSObjectType getType()
+    {
+        return new BOSObjectType("D8629CA8");
+    }
+    private SynchronousPosFacadeController getController() throws BOSException
+    {
+        return (SynchronousPosFacadeController)getBizController();
+    }
+    /**
+     *同步SHR职位到北森岗位-User defined method
+     *@param posId 职位id
+     *@param syncStartTimeStr 同步时间格式yyyy-MM-dd HH:mm:dd,例:2011-11-11 11:11:11
+     *@param syncEndTimeStr 同步时间格式yyyy-MM-dd HH:mm:dd,例:2011-11-12 11:11:11
+     *@return
+     */
+    public String syncPosToBeiSen(String posId, String syncStartTimeStr, String syncEndTimeStr) throws BOSException
+    {
+        try {
+            return getController().syncPosToBeiSen(getContext(), posId, syncStartTimeStr, syncEndTimeStr);
+        }
+        catch(RemoteException err) {
+            throw new EJBRemoteException(err);
+        }
+    }
+    /**
+     *推送创建岗位到北森-User defined method
+     *@param jsonStr 同步北森json字符串数据
+     *@return
+     */
+    public String sendAddNewPosToBeisen(String jsonStr) throws BOSException
+    {
+        try {
+            return getController().sendAddNewPosToBeisen(getContext(), jsonStr);
+        }
+        catch(RemoteException err) {
+            throw new EJBRemoteException(err);
+        }
+    }
+    /**
+     *推送修改岗位到北森-User defined method
+     *@param jsonStr 同步北森json字符串数据
+     */
+    public void sendEditPosToBeisen(String jsonStr) throws BOSException
+    {
+        try {
+            getController().sendEditPosToBeisen(getContext(), jsonStr);
+        }
+        catch(RemoteException err) {
+            throw new EJBRemoteException(err);
+        }
+    }
+}

+ 23 - 0
src/com/kingdee/eas/custom/beisen/synchronouspos/SynchronousPosFacadeController.java

@@ -0,0 +1,23 @@
+package com.kingdee.eas.custom.beisen.synchronouspos;
+
+import com.kingdee.bos.BOSException;
+//import com.kingdee.bos.metadata.*;
+import com.kingdee.bos.framework.*;
+import com.kingdee.bos.util.*;
+import com.kingdee.bos.Context;
+
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.util.*;
+import java.lang.String;
+import com.kingdee.bos.Context;
+import com.kingdee.bos.framework.*;
+
+import java.rmi.RemoteException;
+import com.kingdee.bos.framework.ejb.BizController;
+
+public interface SynchronousPosFacadeController extends BizController
+{
+    public String syncPosToBeiSen(Context ctx, String posId, String syncStartTimeStr, String syncEndTimeStr) throws BOSException, RemoteException;
+    public String sendAddNewPosToBeisen(Context ctx, String jsonStr) throws BOSException, RemoteException;
+    public void sendEditPosToBeisen(Context ctx, String jsonStr) throws BOSException, RemoteException;
+}

+ 81 - 0
src/com/kingdee/eas/custom/beisen/synchronouspos/SynchronousPosFacadeControllerBean.java

@@ -0,0 +1,81 @@
+package com.kingdee.eas.custom.beisen.synchronouspos;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Maps;
+import com.kingdee.eas.custom.beisen.utils.BeiSenUtils;
+import com.kingdee.shr.base.syssetting.MSFServiceFacadeFactory;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+import javax.ejb.*;
+import java.rmi.RemoteException;
+import com.kingdee.bos.*;
+import com.kingdee.bos.util.BOSObjectType;
+import com.kingdee.bos.metadata.IMetaDataPK;
+import com.kingdee.bos.metadata.rule.RuleExecutor;
+import com.kingdee.bos.metadata.MetaDataPK;
+//import com.kingdee.bos.metadata.entity.EntityViewInfo;
+import com.kingdee.bos.framework.ejb.AbstractEntityControllerBean;
+import com.kingdee.bos.framework.ejb.AbstractBizControllerBean;
+//import com.kingdee.bos.dao.IObjectPK;
+import com.kingdee.bos.dao.IObjectValue;
+import com.kingdee.bos.dao.IObjectCollection;
+import com.kingdee.bos.service.ServiceContext;
+import com.kingdee.bos.service.IServiceContext;
+
+import java.lang.String;
+import java.util.Map;
+
+public class SynchronousPosFacadeControllerBean extends AbstractSynchronousPosFacadeControllerBean
+{
+    private static Logger logger =
+        Logger.getLogger("com.kingdee.eas.custom.beisen.synchronouspos.SynchronousPosFacadeControllerBean");
+
+    @Override
+    protected String _syncPosToBeiSen(Context ctx, String posId, String syncStartTimeStr, String syncEndTimeStr) throws BOSException {
+        super._syncPosToBeiSen(ctx, posId, syncStartTimeStr, syncEndTimeStr);
+        Object obj=null;
+        try {
+            Map<String, Object> map = Maps.newHashMap();
+            map.put("posId",posId);
+            map.put("syncStartTimeStr","syncStartTimeStr");
+            map.put("syncEndTimeStr","syncEndTimeStr");
+            obj = MSFServiceFacadeFactory.getLocalInstance(ctx).processService("synchronousPosOSF", map);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return (null==obj?"":obj.toString());
+    }
+
+
+
+    @Override
+    protected String _sendAddNewPosToBeisen(Context ctx, String jsonStr) throws BOSException {
+        super._sendAddNewPosToBeisen(ctx, jsonStr);
+        Object obj=null;
+        try {
+            JSONObject jsonObject = JSON.parseObject(jsonStr);
+            Map<String, Object> map = Maps.newHashMap();
+            map.putAll(jsonObject);
+            obj = MSFServiceFacadeFactory.getLocalInstance(ctx).processService("synchronousPosOSF", map);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return (null==obj?"":obj.toString());
+    }
+
+    @Override
+    protected void _sendEditPosToBeisen(Context ctx, String jsonStr) throws BOSException {
+        super._sendEditPosToBeisen(ctx, jsonStr);
+        Object obj=null;
+        try {
+            JSONObject jsonObject = JSON.parseObject(jsonStr);
+            Map<String, Object> map = Maps.newHashMap();
+            map.putAll(jsonObject);
+            obj = MSFServiceFacadeFactory.getLocalInstance(ctx).processService("synchronousPosOSF", map);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return;
+    }
+}

+ 30 - 0
src/com/kingdee/eas/custom/beisen/synchronouspos/SynchronousPosFacadeFactory.java

@@ -0,0 +1,30 @@
+package com.kingdee.eas.custom.beisen.synchronouspos;
+
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.BOSObjectFactory;
+import com.kingdee.bos.util.BOSObjectType;
+import com.kingdee.bos.Context;
+
+public class SynchronousPosFacadeFactory
+{
+    private SynchronousPosFacadeFactory()
+    {
+    }
+    public static ISynchronousPosFacade getRemoteInstance() throws BOSException
+    {
+        return (ISynchronousPosFacade)BOSObjectFactory.createRemoteBOSObject(new BOSObjectType("D8629CA8") , ISynchronousPosFacade.class);
+    }
+    
+    public static ISynchronousPosFacade getRemoteInstanceWithObjectContext(Context objectCtx) throws BOSException
+    {
+        return (ISynchronousPosFacade)BOSObjectFactory.createRemoteBOSObjectWithObjectContext(new BOSObjectType("D8629CA8") , ISynchronousPosFacade.class, objectCtx);
+    }
+    public static ISynchronousPosFacade getLocalInstance(Context ctx) throws BOSException
+    {
+        return (ISynchronousPosFacade)BOSObjectFactory.createBOSObject(ctx, new BOSObjectType("D8629CA8"));
+    }
+    public static ISynchronousPosFacade getLocalInstance(String sessionID) throws BOSException
+    {
+        return (ISynchronousPosFacade)BOSObjectFactory.createBOSObject(sessionID, new BOSObjectType("D8629CA8"));
+    }
+}

+ 54 - 0
src/com/kingdee/eas/custom/beisen/utils/BeisenParamByPropertiesUtil.java

@@ -0,0 +1,54 @@
+package com.kingdee.eas.custom.beisen.utils;
+
+import com.google.common.collect.Maps;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+/**
+ * 获取配置文件参数值
+ * description: BeisenParamByProperties <br>
+ * date: 2025/7/7 16:03 <br>
+ * author: lhbj <br>
+ * version: 1.0 <br>
+ */
+public class BeisenParamByPropertiesUtil {
+    private static Logger logger =Logger.getLogger(BeisenParamByPropertiesUtil.class);
+    private Properties propt = new Properties();//共用参数
+
+    /**
+     * filePath地址从server开始,例:/server/properties/beisen/beisenConfig.properties
+     * @param filePath
+     */
+    public BeisenParamByPropertiesUtil(String filePath) throws IOException {
+        this.initConfig(System.getProperty("EAS_HOME") + filePath);
+    }
+    public BeisenParamByPropertiesUtil() throws IOException {
+    }
+    public BeisenParamByPropertiesUtil initConfig(String filePath) throws IOException {
+        try {
+            if(StringUtils.isBlank(filePath)){
+                throw new IOException("filePath参数为空");
+            }
+            this.propt.load(new FileInputStream(filePath));
+            return this;
+        }catch (IOException e){
+            e.printStackTrace();
+            logger.error("未找到"+filePath+"配置文件。");
+            throw e;
+        }
+    }
+    public Map<String,String> getConfig() {
+        Map<String,String> map = Maps.newHashMap();
+        Set<Map.Entry<Object, Object>> set = this.propt.entrySet();
+        for(Map.Entry<Object, Object> entry : set){
+            map.put((String)entry.getKey(),(String)entry.getValue());
+        }
+        return map;
+    }
+}

+ 322 - 0
websrc/eas/custom/beisen/synchronouspos/osf/SynchronousPosOSFService.java

@@ -0,0 +1,322 @@
+package eas.custom.beisen.synchronouspos.osf;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Maps;
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.Context;
+import com.kingdee.bos.bsf.service.app.IHRMsfService;
+import com.kingdee.bos.rabbitmq.guava.Lists;
+import com.kingdee.eas.common.EASBizException;
+import com.kingdee.eas.custom.beisen.utils.BeiSenUtils;
+import com.kingdee.eas.custom.beisen.utils.BeisenParamByPropertiesUtil;
+import com.kingdee.eas.custom.beisen.utils.Helper;
+import com.kingdee.eas.util.app.DbUtil;
+import com.kingdee.jdbc.rowset.IRowSet;
+import org.apache.commons.lang3.StringUtils;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URLEncoder;
+import java.sql.Date;
+import java.sql.SQLException;
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * description: SynchronousPosOSFService <br>
+ * date: 2025/7/11 17:46 <br>
+ * author: lhbj <br>
+ * version: 1.0 <br>
+ */
+public class SynchronousPosOSFService implements IHRMsfService {
+
+    @Override
+    public Object process(Context context, Map<String, Object> map) throws EASBizException, BOSException {
+        //例:/server/properties/beisen/posConfig.properties
+        String path = (String) map.get("path");
+        String posId = (String) map.get("posId");
+        String syncStartTimeStr = (String) map.get("syncStartTimeStr");
+        String syncEndTimeStr = (String) map.get("syncEndTimeStr");
+        try {
+            BeisenParamByPropertiesUtil util = new BeisenParamByPropertiesUtil(path);
+            Map<String,String> keyMap = util.getConfig();
+            return this._syncPosToBeiSen(context,keyMap,posId,syncStartTimeStr,syncEndTimeStr);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } catch (SQLException throwables) {
+            throwables.printStackTrace();
+        } catch (URISyntaxException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+    protected String _syncPosToBeiSen(Context ctx,Map<String,String> keyMap, String posId, String syncStartTimeStr, String syncEndTimeStr) throws BOSException, SQLException, IOException, URISyntaxException {
+        List<JSONObject> responseList =Lists.newArrayList();
+        List<JSONObject> addNewList = this._sendAddNewPosToBeisen(ctx,keyMap,posId,syncStartTimeStr,syncEndTimeStr);
+        responseList.addAll(addNewList);
+        List<JSONObject> editList = this._sendEditPosToBeisen(ctx,keyMap,posId,syncStartTimeStr,syncEndTimeStr);
+        responseList.addAll(editList);
+        return responseList.toString();
+    }
+
+    /**
+     * shr系统数据组装北森请求参数
+     *
+     * @param ctx
+     * @param keyMap
+     * @param sql
+     * @return
+     * @throws BOSException
+     * @throws SQLException
+     */
+    protected List<Map<String, Object>> getPostData(Context ctx,Map<String,String> keyMap,StringBuilder sql) throws BOSException, SQLException {
+        IRowSet rowSet = DbUtil.executeQuery(ctx,sql.toString());
+        List<Map<String, Object>> posList = Lists.newArrayList();
+        while (rowSet.next()){
+            Map<String, Object> pos = Maps.newHashMap();
+            for(Map.Entry<String,String> entry : keyMap.entrySet()){
+               String shrKey = entry.getKey();
+               String beisenKey = entry.getValue();
+               if(shrKey.indexOf(".")>0){
+                   String[] keys=shrKey.split("\\.");
+                   if(2==keys.length){
+                      Map<String,Object> map1 = (Map<String, Object>) pos.get(keys[0]);
+                      if(null==map1){
+                          map1=Maps.newHashMap();
+                          pos.put(keys[0],map1);
+                      }
+                       String valueStr = rowSet.getString(keys[1]);
+                      if(beisenKey.indexOf(",")>0) {
+                          String[] beisenKeys = beisenKey.split(",");
+                          Object value = null;
+
+                          if("integer".equals(beisenKeys[1])){
+                              if(null!=valueStr){
+                                  value=Integer.parseInt(valueStr);
+                              }
+                          }else {
+                              value = valueStr;
+                          }
+                          if(null!=value) {
+                              map1.put(beisenKeys[0], value);
+                          }
+                      }else {
+
+                          if(null!=valueStr) {
+                              map1.put(beisenKey, valueStr);
+                          }
+                      }
+                   }else if (3==keys.length){
+                       Map<String,Object> map1 = (Map<String, Object>) pos.get(keys[0]);
+                       if(null==map1){
+                           map1=Maps.newHashMap();
+                           pos.put(keys[0],map1);
+                       }
+                       Map<String,Object> map2 = (Map<String, Object>) map1.get(keys[1]);
+                       if(null==map2){
+                           map2=Maps.newHashMap();
+                           map1.put(keys[1],map1);
+                       }
+                       String valueStr = rowSet.getString(keys[2]);
+                       if(beisenKey.indexOf(",")>0) {
+                           String[] beisenKeys = beisenKey.split(",");
+                           Object value = null;
+
+                           if("integer".equals(beisenKeys[1])){
+                               if(null!=valueStr){
+                                   value=Integer.parseInt(valueStr);
+                               }
+                           }else {
+                               value = valueStr;
+                           }
+                           if(null!=value) {
+                               map2.put(beisenKeys[0], value);
+                           }
+                       }else {
+                           if(null!=valueStr) {
+                               map2.put(beisenKey,valueStr);
+                           }
+                       }
+                   }else {
+                       String valueStr = rowSet.getString(shrKey);
+                       if(beisenKey.indexOf(",")>0) {
+                           String[] beisenKeys = beisenKey.split(",");
+                           Object value = null;
+                           if("integer".equals(beisenKeys[1])){
+                               if(null!=valueStr){
+                                   value=Integer.parseInt(valueStr);
+                               }
+                           }else {
+                               value = valueStr;
+                           }
+                           if(null!=value) {
+                               pos.put(beisenKeys[0],value);
+                           }
+                       }else {
+                           if(null!=valueStr) {
+                               pos.put(beisenKey,valueStr);
+                           }
+                       }
+                   }
+               }
+            }
+            posList.add(pos);
+        }
+        return posList;
+    }
+
+
+    public StringBuilder getSql(String posId,String syncStartTimeStr, String syncEndTimeStr,Boolean isAddNew){
+        StringBuilder sql = new StringBuilder();
+        sql.append(" ");
+        sql.append(" select ");
+        sql.append(" pos.fid posId, ");
+        sql.append(" pos.CFOriginalId posOriginalId, ");
+        sql.append(" pos.fnumber posNumber, ");
+        sql.append(" pos.fname_l2 posName, ");
+        sql.append(" org.fid orgId, ");
+        sql.append(" org.CFOriginalId orgOriginalId, ");
+        sql.append(" org.fnumber orgNumber, ");
+        sql.append(" org.fname_l2 orgName, ");
+        sql.append(" (case when pos.FDELETEDSTATUS=2 then 0 else 1 end) posDeletedStatus, ");
+        sql.append(" pos.cfzwjzygx posZwjzygx, ");
+        sql.append(" pos.cfzyzz  posZyzz, ");
+        sql.append(" pos.cfgwdwsccg posGwdwsccg, ");
+        sql.append(" pos.cfcgzb posCgzb, ");
+        sql.append(" pos.cfzlzb posZlzb, ");
+        sql.append(" jobf.fname_l2 hrJobFamily, ");
+        sql.append(" jobc.fname_l2 hrJobCategory, ");
+        sql.append(" jobsc.fname_l2 jobscHrJobSubCategory, ");
+        sql.append(" job.fnumber jobNumber, ");
+        sql.append(" job.fname_l2 jobName, ");
+        sql.append(" lowjg.fname_l2 lowJobGrade, ");
+        sql.append(" highjg.fname_l2 highJobGrade, ");
+        sql.append(" lowjl.fname_l2 lowJobLevel, ");
+        sql.append(" highjl.fname_l2 highJobLevel, ");
+        sql.append(" pos.cfeducation education, ");
+        sql.append(" pos.cfrequirement requirement, ");
+        sql.append(" pos.cfcertification certification, ");
+        sql.append(" pos.cfforeignLang foreignLang, ");
+        sql.append(" pos.cfknowledge knowledge, ");
+        sql.append(" pos.cfskills skills, ");
+        sql.append(" pos.cfexperience experience, ");
+        sql.append(" pos.cfcoreCompe coreCompe, ");
+        sql.append(" pos.cfposition1 position1, ");
+        sql.append(" pos.cfptime1 ptime1, ");
+        sql.append(" pos.cfposition2 position2, ");
+        sql.append(" pos.cfptime2 ptime2, ");
+        sql.append(" workAdd.fname_l2 workAdd, ");
+        sql.append(" pos.CFFrequency frequency, ");
+        sql.append(" pos.cfjobRespon jobRespon, ");
+        sql.append(" pos.cfqualifications qualifications, ");
+        sql.append(" pos.cfreserved1 reserved1, ");
+        sql.append(" pos.cfreserved2 reserved2, ");
+        sql.append(" pos.cfreserved3 reserved3, ");
+        sql.append(" pos.cfreserved4 reserved4, ");
+        sql.append(" pos.cfreserved5 reserved5, ");
+        sql.append(" posp.CFOriginalId pospOriginalId1, ");
+        sql.append(" posp.CFOriginalId pospOriginalId2, ");
+        sql.append(" '' ");
+        sql.append(" from ");
+        sql.append(" t_org_position pos ");
+        sql.append(" left join t_org_admin org on pos.FADMINORGUNITID = org.fid ");
+        sql.append(" left join CT_CUS_WorkAdd workAdd on workAdd.fid=pos.CFWorkAddID ");
+        sql.append(" left join T_HR_HRJob job on job.FID = pos.FJOBID ");
+        sql.append(" left join T_HR_HRJobFamily jobf on jobf.fid = job.FHRJobFamilyID ");
+        sql.append(" left join T_HR_HRJobCategory jobc on jobc.fid = job.FHRJobCategoryID ");
+        sql.append(" left join T_HR_HRJobSubCategory jobsc on jobsc.fid=job.FHRJobSubCategoryID ");
+        sql.append(" left join T_HR_JobGrade lowjg on lowjg.fid = job.FLowJobGradeID ");
+        sql.append(" left join T_HR_JobGrade highjg on highjg.fid = job.FHighJobGradeID ");
+        sql.append(" left join T_HR_JobLevel lowjl on lowjl.fid=job.FLowJobLevelID ");
+        sql.append(" left join T_HR_JobLevel highjl on highjl.fid=job.FHighJobLevelID ");
+        sql.append(" left join t_org_position posp on posp.fid=pos.FPARENTID ");
+
+        sql.append(" where 1=1 ");
+        if(StringUtils.isNotBlank(posId)){
+            String[] posIds=posId.split(",");
+            sql.append(" and pos.fid in('' ");
+            for(String id : posIds){
+                sql.append(",'");
+                sql.append(id);
+                sql.append("'");
+            }
+            sql.append(") ");
+        }
+        if(StringUtils.isNotBlank(syncStartTimeStr)){
+            sql.append(" and pos.FLastUpdateTime >='"+syncStartTimeStr+"'");
+        }
+        if(StringUtils.isNotBlank(syncEndTimeStr)){
+            sql.append(" and pos.FLastUpdateTime <='"+syncEndTimeStr+"'");
+        }
+        if(isAddNew){
+            sql.append(" and (pos.CFOriginalId is null or pos.CFOriginalId ='')");
+        }else {
+            sql.append(" and (pos.CFOriginalId is not null and pos.CFOriginalId !='')");
+        }
+        return sql;
+    }
+
+
+    protected  List<JSONObject> _sendAddNewPosToBeisen(Context ctx,Map<String,String> keyMap, String posId, String syncStartTimeStr, String syncEndTimeStr) throws BOSException, SQLException, IOException, URISyntaxException {
+        BeiSenUtils b = new BeiSenUtils(ctx);
+        Helper helper = b.helper;
+        StringBuilder sql = this.getSql(posId, syncStartTimeStr, syncEndTimeStr, true);
+        List<Map<String, Object>> list = this.getPostData(ctx, keyMap, sql);
+        List<JSONObject> responseList = Lists.newArrayList();
+        for (Map<String, Object> pos : list) {
+            // 获取访问令牌
+            String token = b.getAccessToken();
+            // 若访问令牌不为空且开始时间和结束时间不为空
+            if (!com.kingdee.util.StringUtils.isEmpty(token)) {
+                // 创建请求头的 Map
+                Map<String, String> header = new HashMap<String, String>();
+                // 设置请求头的 Content-Type
+                header.put("Content-Type", "application/json");
+                // 设置请求头的 Authorization
+                header.put("Authorization", "Bearer " + token);
+                String url = "https://openapi.italent.cn/RecruitV6/api/v1/RecruitOnBoarding/CreatePost";
+                JSONObject requestBody = new JSONObject(pos);
+                System.out.println("url:" + url);
+                System.out.println("requestBody:" + requestBody);
+                JSONObject responseJson = helper.getURL(url, header, requestBody, "POST", "", "创建", "北森");
+                System.out.println("responseJson:" + responseJson);
+                responseList.add(responseJson);
+            }
+        }
+        return responseList;
+    }
+    protected List<JSONObject> _sendEditPosToBeisen(Context ctx,Map<String,String> keyMap, String posId, String syncStartTimeStr, String syncEndTimeStr) throws BOSException, SQLException, IOException, URISyntaxException {
+        BeiSenUtils b = new BeiSenUtils(ctx);
+        Helper helper = b.helper;
+        StringBuilder sql1 = this.getSql(posId,syncStartTimeStr,syncEndTimeStr,false);
+        List<Map<String,Object>> list1= this.getPostData(ctx,keyMap,sql1);
+        List<JSONObject> responseList = Lists.newArrayList();
+        for(Map<String,Object> pos : list1){
+            // 获取访问令牌
+            String token = b.getAccessToken();
+            // 若访问令牌不为空且开始时间和结束时间不为空
+            if (!com.kingdee.util.StringUtils.isEmpty(token)) {
+                // 创建请求头的 Map
+                Map<String, String> header = new HashMap<String, String>();
+                // 设置请求头的 Content-Type
+                header.put("Content-Type", "application/json");
+                // 设置请求头的 Authorization
+                header.put("Authorization", "Bearer " + token);
+                String url = "https://openapi.italent.cn/RecruitV6/api/v1/RecruitOnBoarding/CreatePost";
+                JSONObject requestBody = new JSONObject(pos);
+                System.out.println("url:"+url);
+                System.out.println("requestBody:"+requestBody);
+                JSONObject responseJson = helper.getURL(url,header, requestBody, "PUT",requestBody.getString("id"),"更新","北森");
+                System.out.println("responseJson:"+responseJson);
+                responseList.add(responseJson);
+            }
+        }
+        return responseList;
+    }
+}

+ 42 - 0
websrc/eas/custom/beisen/synchronouspos/osf/posConfig.properties

@@ -0,0 +1,42 @@
+customProperties.posNumber=extgangweibianma_433107_380359134
+orgOriginalId=Org,integer
+posName=Name
+posOriginalId=id
+#pospOriginalId1=upManage,integer
+#pospOriginalId2=dotManage,integer
+posDeletedStatus=Status,integer
+customProperties.posZwjzygx=extzhiweijiazhiyugongxian_433107_832609725
+customProperties.posZyzz=extzhiweijiazhiyugongxian_433107_832609725
+customProperties.posGwdwsccg=extzhiweiduiwaijiaofuchengguo_433107_848485055
+customProperties.posCgzb=extchengguodezhibiao_433107_672018534
+customProperties.posZlzb=extzhiliangzhibiao_433107_1153480133
+customProperties.hrJobFamily=extzhiweizu_433107_1497123321
+customProperties.hrJobCategory=extzhiweilei_433107_1088618169
+customProperties.jobscHrJobSubCategory=extzhiweizilei_433107_1602866242
+customProperties.jobNumber=extzhiweibianma_433107_1290712431
+customProperties.jobName=extzhiweimingcheng_433107_512846676
+customProperties.lowJobLevel=extzuidizhiceng_433107_355678147
+customProperties.highJobLevel=extzuigaozhiceng_433107_174877615
+customProperties.lowJobGrade=extzuigaozhiji_433107_2045773973
+customProperties.highJobGrade=extzuidizhiji_433107_1385945899
+customProperties.education=extjiaoyushuiping_433107_1951575537
+customProperties.requirement=extzhuanyeyaoqiu_433107_1776687243
+customProperties.certification=extzigezhengshu_433107_1510044483
+customProperties.foreignLang=extwaiyuyaoqiu_433107_1249481814
+customProperties.knowledge=extzhishi_433107_641379677
+customProperties.skills=extjineng_433107_956614495
+customProperties.experience=extjingyan_433107_295083920
+customProperties.coreCompe=extguanjiansuzhi_433107_1844176444
+customProperties.position1=extgangwei1_433107_1257343019
+customProperties.ptime1=extshijian_433107_1542482809
+customProperties.position2=extgangwei2_433107_1926360484
+customProperties.ptime2=extshijian2_433107_2055690495
+customProperties.workAdd=extgongzuodidian_433107_1073710237
+customProperties.frequency=extchuchapinlu_433107_902126115
+customProperties.jobRespon=extgongzuozhize_433107_1005575449
+customProperties.qualifications=extrenzhizige_433107_1814678007
+customProperties.reserved1=extyuliuziduan1_433107_1429210295
+customProperties.reserved2=extyuliuziduan2_433107_1906458378
+customProperties.reserved3=extyuliuziduan3_433107_1446014427
+customProperties.reserved4=extyuliuziduan4_433107_785068249
+customProperties.reserved5=extyuliuziduan5_433107_2140944373