e
8 months ago
commit
071c75942f
33 changed files with 3658 additions and 0 deletions
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
<deployment xmlns="http://xml.apache.org/axis/wsdd/" |
||||
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> |
||||
<service name="WSDayouTechnologyInterfaceFacade" provider="java:RPC"> |
||||
<parameter name="className" value="com.kingdee.eas.custom.dayou.webservice.WSDayouTechnologyInterfaceFacadeSrvProxy"/> |
||||
<parameter name="allowedMethods" value="*"/> |
||||
<beanMapping qname="myNS:WSBean" xmlns:myNS="urn:client.dayoutechnologyinterfacefacade" languageSpecificType="java:com.kingdee.bos.webservice.WSBean"/> |
||||
<beanMapping qname="myNS:WSInvokeException" xmlns:myNS="urn:client.dayoutechnologyinterfacefacade" languageSpecificType="java:com.kingdee.bos.webservice.WSInvokeException"/> |
||||
|
||||
</service> |
||||
</deployment> |
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
<deployment xmlns="http://xml.apache.org/axis/wsdd/" |
||||
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> |
||||
<service name="WSRishengHaiKangHRFacade" provider="java:RPC"> |
||||
<parameter name="className" value="com.kingdee.eas.custom.risheng.webservice.WSRishengHaiKangHRFacadeSrvProxy"/> |
||||
<parameter name="allowedMethods" value="*"/> |
||||
<beanMapping qname="myNS:WSBean" xmlns:myNS="urn:client.rishenghaikanghrfacade" languageSpecificType="java:com.kingdee.bos.webservice.WSBean"/> |
||||
<beanMapping qname="myNS:WSInvokeException" xmlns:myNS="urn:client.rishenghaikanghrfacade" languageSpecificType="java:com.kingdee.bos.webservice.WSInvokeException"/> |
||||
|
||||
</service> |
||||
</deployment> |
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
<deployment xmlns="http://xml.apache.org/axis/wsdd/" |
||||
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> |
||||
<service name="WSRishengInterfaceFacade" provider="java:RPC"> |
||||
<parameter name="className" value="com.kingdee.eas.custom.risheng.webservice.WSRishengInterfaceFacadeSrvProxy"/> |
||||
<parameter name="allowedMethods" value="*"/> |
||||
<beanMapping qname="myNS:WSBean" xmlns:myNS="urn:client.rishenginterfacefacade" languageSpecificType="java:com.kingdee.bos.webservice.WSBean"/> |
||||
<beanMapping qname="myNS:WSInvokeException" xmlns:myNS="urn:client.rishenginterfacefacade" languageSpecificType="java:com.kingdee.bos.webservice.WSInvokeException"/> |
||||
|
||||
</service> |
||||
</deployment> |
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
<deployment xmlns="http://xml.apache.org/axis/wsdd/" |
||||
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> |
||||
<service name="WSRishengPendingMessageFacade" provider="java:RPC"> |
||||
<parameter name="className" value="com.kingdee.eas.custom.risheng.webservice.WSRishengPendingMessageFacadeSrvProxy"/> |
||||
<parameter name="allowedMethods" value="*"/> |
||||
<beanMapping qname="myNS:WSBean" xmlns:myNS="urn:client.rishengpendingmessagefacade" languageSpecificType="java:com.kingdee.bos.webservice.WSBean"/> |
||||
<beanMapping qname="myNS:WSInvokeException" xmlns:myNS="urn:client.rishengpendingmessagefacade" languageSpecificType="java:com.kingdee.bos.webservice.WSInvokeException"/> |
||||
|
||||
</service> |
||||
</deployment> |
@ -0,0 +1,135 @@
@@ -0,0 +1,135 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
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 com.kingdee.eas.common.EASBizException; |
||||
import java.lang.String; |
||||
|
||||
|
||||
|
||||
public abstract class AbstractRishengHaiKangHRFacadeControllerBean extends AbstractBizControllerBean implements RishengHaiKangHRFacadeController |
||||
{ |
||||
protected AbstractRishengHaiKangHRFacadeControllerBean() |
||||
{ |
||||
} |
||||
|
||||
protected BOSObjectType getBOSType() |
||||
{ |
||||
return new BOSObjectType("FE79E785"); |
||||
} |
||||
|
||||
public String syncAdminOrg(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
ServiceContext svcCtx = createServiceContext(new MetaDataPK("5ec9f78c-3290-436c-a1a6-2fc01230e621"), new Object[]{ctx, data}); |
||||
invokeServiceBefore(svcCtx); |
||||
if(!svcCtx.invokeBreak()) { |
||||
String retValue = (String)_syncAdminOrg(ctx, data); |
||||
svcCtx.setMethodReturnValue(retValue); |
||||
} |
||||
invokeServiceAfter(svcCtx); |
||||
return (String)svcCtx.getMethodReturnValue(); |
||||
} catch (BOSException ex) { |
||||
throw ex; |
||||
} catch (EASBizException ex0) { |
||||
throw ex0; |
||||
} finally { |
||||
super.cleanUpServiceState(); |
||||
} |
||||
} |
||||
protected String _syncAdminOrg(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
return null; |
||||
} |
||||
|
||||
public String syncPerson(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
ServiceContext svcCtx = createServiceContext(new MetaDataPK("6fbe0ce6-b218-4707-bc26-16a8398d760b"), new Object[]{ctx, data}); |
||||
invokeServiceBefore(svcCtx); |
||||
if(!svcCtx.invokeBreak()) { |
||||
String retValue = (String)_syncPerson(ctx, data); |
||||
svcCtx.setMethodReturnValue(retValue); |
||||
} |
||||
invokeServiceAfter(svcCtx); |
||||
return (String)svcCtx.getMethodReturnValue(); |
||||
} catch (BOSException ex) { |
||||
throw ex; |
||||
} catch (EASBizException ex0) { |
||||
throw ex0; |
||||
} finally { |
||||
super.cleanUpServiceState(); |
||||
} |
||||
} |
||||
protected String _syncPerson(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
return null; |
||||
} |
||||
|
||||
public String syncEmpLeaves(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
ServiceContext svcCtx = createServiceContext(new MetaDataPK("4a0e4eca-ff66-4bd4-9b08-36e7ae6df4ac"), new Object[]{ctx, data}); |
||||
invokeServiceBefore(svcCtx); |
||||
if(!svcCtx.invokeBreak()) { |
||||
String retValue = (String)_syncEmpLeaves(ctx, data); |
||||
svcCtx.setMethodReturnValue(retValue); |
||||
} |
||||
invokeServiceAfter(svcCtx); |
||||
return (String)svcCtx.getMethodReturnValue(); |
||||
} catch (BOSException ex) { |
||||
throw ex; |
||||
} catch (EASBizException ex0) { |
||||
throw ex0; |
||||
} finally { |
||||
super.cleanUpServiceState(); |
||||
} |
||||
} |
||||
protected String _syncEmpLeaves(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
return null; |
||||
} |
||||
|
||||
public String syncEmpLeavesRestore(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
ServiceContext svcCtx = createServiceContext(new MetaDataPK("8140a7fe-6a15-4874-ba91-4b947284947c"), new Object[]{ctx, data}); |
||||
invokeServiceBefore(svcCtx); |
||||
if(!svcCtx.invokeBreak()) { |
||||
String retValue = (String)_syncEmpLeavesRestore(ctx, data); |
||||
svcCtx.setMethodReturnValue(retValue); |
||||
} |
||||
invokeServiceAfter(svcCtx); |
||||
return (String)svcCtx.getMethodReturnValue(); |
||||
} catch (BOSException ex) { |
||||
throw ex; |
||||
} catch (EASBizException ex0) { |
||||
throw ex0; |
||||
} finally { |
||||
super.cleanUpServiceState(); |
||||
} |
||||
} |
||||
protected String _syncEmpLeavesRestore(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
return null; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,159 @@
@@ -0,0 +1,159 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
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 com.kingdee.eas.common.EASBizException; |
||||
import java.lang.String; |
||||
|
||||
|
||||
|
||||
public abstract class AbstractRishengInterfaceFacadeControllerBean extends AbstractBizControllerBean implements RishengInterfaceFacadeController |
||||
{ |
||||
protected AbstractRishengInterfaceFacadeControllerBean() |
||||
{ |
||||
} |
||||
|
||||
protected BOSObjectType getBOSType() |
||||
{ |
||||
return new BOSObjectType("81647F35"); |
||||
} |
||||
|
||||
public String syncAdminOrgInfo(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
ServiceContext svcCtx = createServiceContext(new MetaDataPK("90b14237-2dc7-4f12-a02b-07d4ac132528"), new Object[]{ctx, data}); |
||||
invokeServiceBefore(svcCtx); |
||||
if(!svcCtx.invokeBreak()) { |
||||
String retValue = (String)_syncAdminOrgInfo(ctx, data); |
||||
svcCtx.setMethodReturnValue(retValue); |
||||
} |
||||
invokeServiceAfter(svcCtx); |
||||
return (String)svcCtx.getMethodReturnValue(); |
||||
} catch (BOSException ex) { |
||||
throw ex; |
||||
} catch (EASBizException ex0) { |
||||
throw ex0; |
||||
} finally { |
||||
super.cleanUpServiceState(); |
||||
} |
||||
} |
||||
protected String _syncAdminOrgInfo(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
return null; |
||||
} |
||||
|
||||
public String syncEmployeeInfo(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
ServiceContext svcCtx = createServiceContext(new MetaDataPK("51e57a64-e2d2-4ff7-ab38-bb3727fff137"), new Object[]{ctx, data}); |
||||
invokeServiceBefore(svcCtx); |
||||
if(!svcCtx.invokeBreak()) { |
||||
String retValue = (String)_syncEmployeeInfo(ctx, data); |
||||
svcCtx.setMethodReturnValue(retValue); |
||||
} |
||||
invokeServiceAfter(svcCtx); |
||||
return (String)svcCtx.getMethodReturnValue(); |
||||
} catch (BOSException ex) { |
||||
throw ex; |
||||
} catch (EASBizException ex0) { |
||||
throw ex0; |
||||
} finally { |
||||
super.cleanUpServiceState(); |
||||
} |
||||
} |
||||
protected String _syncEmployeeInfo(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
return null; |
||||
} |
||||
|
||||
public String syncPositionInfo(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
ServiceContext svcCtx = createServiceContext(new MetaDataPK("fe6c7efd-1ac5-4358-94a3-15a13c696422"), new Object[]{ctx, data}); |
||||
invokeServiceBefore(svcCtx); |
||||
if(!svcCtx.invokeBreak()) { |
||||
String retValue = (String)_syncPositionInfo(ctx, data); |
||||
svcCtx.setMethodReturnValue(retValue); |
||||
} |
||||
invokeServiceAfter(svcCtx); |
||||
return (String)svcCtx.getMethodReturnValue(); |
||||
} catch (BOSException ex) { |
||||
throw ex; |
||||
} catch (EASBizException ex0) { |
||||
throw ex0; |
||||
} finally { |
||||
super.cleanUpServiceState(); |
||||
} |
||||
} |
||||
protected String _syncPositionInfo(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
return null; |
||||
} |
||||
|
||||
public String syncJoblevelInfo(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
ServiceContext svcCtx = createServiceContext(new MetaDataPK("17470ca5-628a-4584-923c-c6fc0b9fc8f5"), new Object[]{ctx, data}); |
||||
invokeServiceBefore(svcCtx); |
||||
if(!svcCtx.invokeBreak()) { |
||||
String retValue = (String)_syncJoblevelInfo(ctx, data); |
||||
svcCtx.setMethodReturnValue(retValue); |
||||
} |
||||
invokeServiceAfter(svcCtx); |
||||
return (String)svcCtx.getMethodReturnValue(); |
||||
} catch (BOSException ex) { |
||||
throw ex; |
||||
} catch (EASBizException ex0) { |
||||
throw ex0; |
||||
} finally { |
||||
super.cleanUpServiceState(); |
||||
} |
||||
} |
||||
protected String _syncJoblevelInfo(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
return null; |
||||
} |
||||
|
||||
public String syncPersonPositionInfo(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
ServiceContext svcCtx = createServiceContext(new MetaDataPK("97aff530-a207-4665-8aeb-31fa9267da08"), new Object[]{ctx, data}); |
||||
invokeServiceBefore(svcCtx); |
||||
if(!svcCtx.invokeBreak()) { |
||||
String retValue = (String)_syncPersonPositionInfo(ctx, data); |
||||
svcCtx.setMethodReturnValue(retValue); |
||||
} |
||||
invokeServiceAfter(svcCtx); |
||||
return (String)svcCtx.getMethodReturnValue(); |
||||
} catch (BOSException ex) { |
||||
throw ex; |
||||
} catch (EASBizException ex0) { |
||||
throw ex0; |
||||
} finally { |
||||
super.cleanUpServiceState(); |
||||
} |
||||
} |
||||
protected String _syncPersonPositionInfo(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
return null; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,87 @@
@@ -0,0 +1,87 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
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 com.kingdee.eas.common.EASBizException; |
||||
import java.lang.String; |
||||
|
||||
|
||||
|
||||
public abstract class AbstractRishengPendingMessageFacadeControllerBean extends AbstractBizControllerBean implements RishengPendingMessageFacadeController |
||||
{ |
||||
protected AbstractRishengPendingMessageFacadeControllerBean() |
||||
{ |
||||
} |
||||
|
||||
protected BOSObjectType getBOSType() |
||||
{ |
||||
return new BOSObjectType("4FA99C68"); |
||||
} |
||||
|
||||
public String sendPendingMsg(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
ServiceContext svcCtx = createServiceContext(new MetaDataPK("7292ebe1-3025-4d1a-be1e-b5205d4cec73"), new Object[]{ctx, data}); |
||||
invokeServiceBefore(svcCtx); |
||||
if(!svcCtx.invokeBreak()) { |
||||
String retValue = (String)_sendPendingMsg(ctx, data); |
||||
svcCtx.setMethodReturnValue(retValue); |
||||
} |
||||
invokeServiceAfter(svcCtx); |
||||
return (String)svcCtx.getMethodReturnValue(); |
||||
} catch (BOSException ex) { |
||||
throw ex; |
||||
} catch (EASBizException ex0) { |
||||
throw ex0; |
||||
} finally { |
||||
super.cleanUpServiceState(); |
||||
} |
||||
} |
||||
protected String _sendPendingMsg(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
return null; |
||||
} |
||||
|
||||
public String sendDoneMsg(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
ServiceContext svcCtx = createServiceContext(new MetaDataPK("d680b585-3ed4-43d1-985c-8e42f5869e5a"), new Object[]{ctx, data}); |
||||
invokeServiceBefore(svcCtx); |
||||
if(!svcCtx.invokeBreak()) { |
||||
String retValue = (String)_sendDoneMsg(ctx, data); |
||||
svcCtx.setMethodReturnValue(retValue); |
||||
} |
||||
invokeServiceAfter(svcCtx); |
||||
return (String)svcCtx.getMethodReturnValue(); |
||||
} catch (BOSException ex) { |
||||
throw ex; |
||||
} catch (EASBizException ex0) { |
||||
throw ex0; |
||||
} finally { |
||||
super.cleanUpServiceState(); |
||||
} |
||||
} |
||||
protected String _sendDoneMsg(Context ctx, String data) throws BOSException, EASBizException |
||||
{ |
||||
return null; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,87 @@
@@ -0,0 +1,87 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
import java.util.Locale; |
||||
|
||||
import org.apache.log4j.Logger; |
||||
|
||||
import net.sf.json.JSONObject; |
||||
|
||||
import com.kingdee.bos.BOSException; |
||||
import com.kingdee.bos.Context; |
||||
import com.kingdee.bos.workflow.define.AssignmentEvent; |
||||
import com.kingdee.bos.workflow.enactment.IWfAssignment; |
||||
import com.kingdee.bos.workflow.enactment.WfAssignment; |
||||
import com.kingdee.bos.workflow.enactment.handler.AbstractAssignmentEventHandler; |
||||
import com.kingdee.eas.common.EASBizException; |
||||
|
||||
public class AssignmentEventHandler extends AbstractAssignmentEventHandler { |
||||
|
||||
private static Logger logger = |
||||
Logger.getLogger("com.kingdee.eas.custom.risheng.AssignmentEventHandler"); |
||||
/** |
||||
* |
||||
*/ |
||||
private static final long serialVersionUID = -1965097515604467567L; |
||||
|
||||
@Override |
||||
public void execute(AssignmentEvent assignmentEvent, |
||||
IWfAssignment assignment) { |
||||
// TODO Auto-generated method stub
|
||||
WfAssignment assign = (WfAssignment) assignment; |
||||
Context ctx = assign.getContext(); |
||||
String assignId = assign.getAssignmentInfo().getAssignmentId(); |
||||
logger.error("AssignmentEventHandler:"+assignmentEvent.getName()+","+assignmentEvent); |
||||
JSONObject jsonobject = new JSONObject(); |
||||
jsonobject.put("assignId", assignId); |
||||
jsonobject.put("state", assign.getAssignmentInfo().getState().getValue()); |
||||
if (AssignmentEvent.OnAssignmentAborted.equals(assignmentEvent)) { |
||||
logger.error("SendTodoMessageTaskHandler:OnAssignmentAborted"+assignId+":assign.getAssignmentInfo().getState():"+assign.getAssignmentInfo().getState().getValue()); |
||||
try { |
||||
|
||||
// TosendMessageFacadeFactory.getLocalInstance(ctx).deleteTodo(jsonobject.toString());
|
||||
RishengPendingMessageFacadeFactory.getLocalInstance(ctx).sendDoneMsg(null); |
||||
} catch (EASBizException e1) { |
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace(); |
||||
} catch (BOSException e1) { |
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace(); |
||||
} |
||||
}else if(AssignmentEvent.OnAssignmentComplete.equals(assignmentEvent)){ |
||||
|
||||
logger.error("SendTodoMessageTaskHandler:OnAssignmentComplete"+assignId+":assign.getAssignmentInfo().getState():"+assign.getAssignmentInfo().getState().getValue()); |
||||
try { |
||||
Race race = new Race(ctx,assignId); |
||||
new Thread(race,assignId).start(); |
||||
} catch (Exception e1) { |
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace(); |
||||
} |
||||
} |
||||
|
||||
} |
||||
class Race implements Runnable { |
||||
|
||||
private Context ctx; |
||||
private String jsonobject; |
||||
public Race(Context ctx,String jsonobject){ |
||||
this.ctx=ctx; |
||||
this.jsonobject=jsonobject; |
||||
} |
||||
@Override |
||||
public void run() { |
||||
// TODO Auto-generated method stub
|
||||
|
||||
try { |
||||
RishengPendingMessageFacadeFactory.getLocalInstance(ctx).sendDoneMsg(null); |
||||
} catch (EASBizException e) { |
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace(); |
||||
} catch (BOSException e) { |
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
|
||||
} |
||||
} |
@ -0,0 +1,251 @@
@@ -0,0 +1,251 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
import java.io.OutputStreamWriter; |
||||
import java.io.IOException; |
||||
|
||||
|
||||
import org.apache.axis.client.Call; |
||||
import org.apache.log4j.Logger; |
||||
|
||||
import com.alibaba.fastjson.JSONArray; |
||||
import com.alibaba.fastjson.JSONObject; |
||||
|
||||
public class FWOASyncHrData implements SyncHRDataInterface { |
||||
|
||||
private static Logger logger = |
||||
Logger.getLogger("com.kingdee.eas.custom.risheng.FWOASyncHrData"); |
||||
|
||||
/** |
||||
* OA同步组织 |
||||
*/ |
||||
@Override |
||||
public String syncAdminOrg(String data,String surl) { |
||||
//进入OA组织同步接口
|
||||
logger.error("进入OA组织同步"); |
||||
OutputStreamWriter out = null; |
||||
String result = ""; |
||||
try { |
||||
JSONArray res = JSONArray.parseArray(data); |
||||
logger.error("查询数据为:"+res.toString()); |
||||
//解析数据
|
||||
//封装请求的报文,将请求参数,组合为XML格式
|
||||
StringBuffer xmlBuffer = new StringBuffer(); |
||||
xmlBuffer.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); |
||||
xmlBuffer.append("<root>"); |
||||
xmlBuffer.append(" <orglist>"); |
||||
for (int i = 0; i < res.size(); i++) { |
||||
JSONObject obj = res.getJSONObject(i); |
||||
logger.error("action="+obj.getString("action")); |
||||
xmlBuffer.append(" <org action=\""+obj.getString("action")+"\">"); |
||||
xmlBuffer.append(" <code>"+obj.getString("code")+"</code>"); |
||||
xmlBuffer.append(" <shortname>"+obj.getString("shortname")+"</shortname>"); |
||||
xmlBuffer.append(" <fullname>"+obj.getString("fullname")+"</fullname>"); |
||||
xmlBuffer.append(" <org_code>"+obj.getString("org_code")+"</org_code>"); |
||||
xmlBuffer.append(" <parent_code>"+obj.getString("parent_code")+"</parent_code>"); |
||||
xmlBuffer.append(" <canceled>"+obj.getString("canceled")+"</canceled>"); |
||||
xmlBuffer.append(" <order>0</order>"); |
||||
xmlBuffer.append(" </org>"); |
||||
} |
||||
xmlBuffer.append(" </orglist>"); |
||||
xmlBuffer.append("</root>"); |
||||
//XML参数内容
|
||||
String xmlStr = xmlBuffer.toString(); |
||||
String ipStr = "121.37.207.73"; |
||||
// http://120.46.132.160:8080
|
||||
String urlStr = surl; |
||||
org.apache.axis.client.Service service = new org.apache.axis.client.Service(); |
||||
Call call = (Call) service.createCall(); |
||||
call.setOperationName("SynDepartment"); |
||||
call.setTargetEndpointAddress(urlStr); |
||||
String[] param1 = new String[2]; |
||||
param1[0] = ipStr; |
||||
param1[1] = xmlStr; |
||||
// logger.error("开始访问");
|
||||
result = (String)call.invoke(param1); |
||||
// logger.error("接口返回结果为:"+result.toString());
|
||||
|
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
logger.error(e.getMessage()); |
||||
}finally { |
||||
try { |
||||
if (out != null) { |
||||
out.close(); |
||||
} |
||||
} catch (IOException e) { |
||||
e.printStackTrace(); |
||||
logger.error(e.getMessage()); |
||||
} |
||||
} |
||||
return result.toString(); |
||||
} |
||||
|
||||
/** |
||||
* 人员同步到OA |
||||
*/ |
||||
@Override |
||||
public String syncPerson(String data,String surl) { |
||||
//进入OA组织同步接口
|
||||
// logger.error("进入OA人员同步");
|
||||
OutputStreamWriter out = null; |
||||
String result = ""; |
||||
try { |
||||
JSONArray res = JSONArray.parseArray(data); |
||||
// logger.error("查询数据为:"+res.toString());
|
||||
//解析数据
|
||||
//封装请求的报文,将请求参数,组合为XML格式
|
||||
StringBuffer xmlBuffer = new StringBuffer(); |
||||
xmlBuffer.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); |
||||
xmlBuffer.append("<root>"); |
||||
xmlBuffer.append(" <hrmlist>"); |
||||
for (int i = 0; i < res.size(); i++) { |
||||
JSONObject obj = res.getJSONObject(i); |
||||
logger.error("action="+obj.getString("action")); |
||||
xmlBuffer.append(" <hrm action=\""+obj.getString("action")+"\">"); |
||||
xmlBuffer.append(" <workcode>"+obj.getString("workcode")+"</workcode>"); |
||||
xmlBuffer.append(" <subcompany>"+obj.getString("subcompany")+"</subcompany>"); |
||||
xmlBuffer.append(" <department>"+obj.getString("department")+"</department>"); |
||||
xmlBuffer.append(" <lastname>"+obj.getString("lastname")+"</lastname>"); |
||||
xmlBuffer.append(" <loginid>"+obj.getString("loginid")+"</loginid>"); |
||||
if(obj.getString("password")=="null"||obj.getString("password")==null||obj.getString("password")==""){ |
||||
//xmlBuffer.append(" <password>"+obj.getString("password")+"</password>");
|
||||
}else{ |
||||
xmlBuffer.append(" <password>"+obj.getString("password")+"</password>"); |
||||
} |
||||
xmlBuffer.append(" <seclevel>"+obj.getString("seclevel")+"</seclevel>"); |
||||
xmlBuffer.append(" <sex>"+obj.getString("sex")+"</sex>"); |
||||
xmlBuffer.append(" <jobtitle>"+obj.getString("jobtitle")+"</jobtitle>"); |
||||
xmlBuffer.append(" <jobactivityid>"+obj.getString("jobactivityid")+"</jobactivityid>"); |
||||
xmlBuffer.append(" <jobgroupid>"+obj.getString("jobgroupid")+"</jobgroupid>"); |
||||
xmlBuffer.append(" <jobcall>"+obj.getString("jobcall")+"</jobcall>"); |
||||
xmlBuffer.append(" <joblevel>"+obj.getString("joblevel")+"</joblevel>"); |
||||
xmlBuffer.append(" <jobactivitydesc>"+obj.getString("jobactivitydesc")+"</jobactivitydesc>"); |
||||
xmlBuffer.append(" <managerid>"+obj.getString("managerid")+"</managerid>"); |
||||
xmlBuffer.append(" <assistantid>"+obj.getString("assistantid")+"</assistantid>"); |
||||
xmlBuffer.append(" <status>"+obj.getString("status")+"</status>"); |
||||
xmlBuffer.append(" <locationid>"+obj.getString("locationid")+"</locationid>"); |
||||
xmlBuffer.append(" <workroom>"+obj.getString("workroom")+"</workroom>"); |
||||
xmlBuffer.append(" <telephone>"+obj.getString("telephone")+"</telephone>"); |
||||
xmlBuffer.append(" <mobile>"+obj.getString("mobile")+"</mobile>"); |
||||
xmlBuffer.append(" <mobilecall>"+obj.getString("mobilecall")+"</mobilecall>"); |
||||
xmlBuffer.append(" <fax>"+obj.getString("fax")+"</fax>"); |
||||
xmlBuffer.append(" <email>"+obj.getString("email")+"</email>"); |
||||
xmlBuffer.append(" <systemlanguage>"+obj.getString("systemlanguage")+"</systemlanguage>"); |
||||
xmlBuffer.append(" <birthday>"+obj.getString("birthday")+"</birthday>"); |
||||
xmlBuffer.append(" <folk>"+obj.getString("folk")+"</folk>"); |
||||
xmlBuffer.append(" <nativeplace>"+obj.getString("nativeplace")+"</nativeplace>"); |
||||
xmlBuffer.append(" <regresidentplace>"+obj.getString("regresidentplace")+"</regresidentplace>"); |
||||
xmlBuffer.append(" <certificatenum>"+obj.getString("certificatenum")+"</certificatenum>"); |
||||
xmlBuffer.append(" <maritalstatus>"+obj.getString("maritalstatus")+"</maritalstatus>"); |
||||
xmlBuffer.append(" <policy>"+obj.getString("policy")+"</policy>"); |
||||
xmlBuffer.append(" <bememberdate>"+obj.getString("bememberdate")+"</bememberdate>"); |
||||
xmlBuffer.append(" <bepartydate>"+obj.getString("bepartydate")+"</bepartydate>"); |
||||
xmlBuffer.append(" <islabouunion>"+obj.getString("islabouunion")+"</islabouunion>"); |
||||
xmlBuffer.append(" <educationlevel>"+obj.getString("educationlevel")+"</educationlevel>"); |
||||
xmlBuffer.append(" <degree>"+obj.getString("degree")+"</degree>"); |
||||
xmlBuffer.append(" <healthinfo>"+obj.getString("healthinfo")+"</healthinfo>"); |
||||
xmlBuffer.append(" <height>"+obj.getString("height")+"</height>"); |
||||
xmlBuffer.append(" <weight>"+obj.getString("weight")+"</weight>"); |
||||
xmlBuffer.append(" <residentplace>"+obj.getString("residentplace")+"</residentplace>"); |
||||
xmlBuffer.append(" <homeaddress>"+obj.getString("homeaddress")+"</homeaddress>"); |
||||
xmlBuffer.append(" <tempresidentnumber>"+obj.getString("tempresidentnumber")+"</tempresidentnumber>"); |
||||
xmlBuffer.append(" </hrm>"); |
||||
} |
||||
xmlBuffer.append(" </hrmlist>"); |
||||
xmlBuffer.append("</root>"); |
||||
//XML参数内容
|
||||
String xmlStr = xmlBuffer.toString(); |
||||
logger.error("人员xml参数为"+xmlStr); |
||||
String ipStr = "121.37.207.73"; |
||||
String urlStr = surl; |
||||
org.apache.axis.client.Service service = new org.apache.axis.client.Service(); |
||||
Call call = (Call) service.createCall(); |
||||
call.setOperationName("SynHrmResource"); |
||||
call.setTargetEndpointAddress(urlStr); |
||||
String[] param1 = new String[2]; |
||||
param1[0] = ipStr; |
||||
param1[1] = xmlStr; |
||||
logger.error("开始访问"); |
||||
result = (String)call.invoke(param1); |
||||
logger.error("接口返回结果为:"+result.toString()); |
||||
|
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
logger.error(e.getMessage()); |
||||
}finally { |
||||
try { |
||||
if (out != null) { |
||||
out.close(); |
||||
} |
||||
} catch (IOException e) { |
||||
e.printStackTrace(); |
||||
logger.error(e.getMessage()); |
||||
} |
||||
} |
||||
return result.toString(); |
||||
} |
||||
/** |
||||
* 岗位同步 |
||||
*/ |
||||
@Override |
||||
public String syncPosition(String data,String surl) { |
||||
//进入OA组织同步接口
|
||||
logger.error("进入OA岗位同步"); |
||||
OutputStreamWriter out = null; |
||||
String result = ""; |
||||
try { |
||||
JSONArray res = JSONArray.parseArray(data); |
||||
logger.error("查询数据为:"+res.toString()); |
||||
//解析数据
|
||||
//封装请求的报文,将请求参数,组合为XML格式
|
||||
StringBuffer xmlBuffer = new StringBuffer(); |
||||
xmlBuffer.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); |
||||
xmlBuffer.append("<root>"); |
||||
xmlBuffer.append(" <jobtitlelist>"); |
||||
for (int i = 0; i < res.size(); i++) { |
||||
JSONObject obj = res.getJSONObject(i); |
||||
logger.error("action="+obj.getString("action")); |
||||
xmlBuffer.append(" <jobtitle action=\""+obj.getString("action")+"\">"); |
||||
xmlBuffer.append(" <jobtitlecode>"+obj.getString("jobtitlecode")+"</jobtitlecode>"); |
||||
xmlBuffer.append(" <jobtitlename>"+obj.getString("jobtitlename")+"</jobtitlename>"); |
||||
xmlBuffer.append(" <jobtitleremark>"+obj.getString("jobtitleremark")+"</jobtitleremark>"); |
||||
xmlBuffer.append(" <jobtitledept>"+obj.getString("jobtitledept")+"</jobtitledept>"); |
||||
// jobgroupid 待确认 传不传
|
||||
xmlBuffer.append(" <jobgroupid>"+obj.getString("jobgroupid")+"</jobgroupid>"); |
||||
xmlBuffer.append(" </jobtitle>"); |
||||
} |
||||
xmlBuffer.append(" </jobtitlelist>"); |
||||
xmlBuffer.append("</root>"); |
||||
//XML参数内容
|
||||
String xmlStr = xmlBuffer.toString(); |
||||
String ipStr = "121.37.207.73"; |
||||
// http://120.46.132.160:8080
|
||||
String urlStr = surl; |
||||
org.apache.axis.client.Service service = new org.apache.axis.client.Service(); |
||||
Call call = (Call) service.createCall(); |
||||
call.setOperationName("SynJobtitle"); |
||||
call.setTargetEndpointAddress(urlStr); |
||||
String[] param1 = new String[2]; |
||||
param1[0] = ipStr; |
||||
param1[1] = xmlStr; |
||||
logger.error("开始访问"); |
||||
result = (String)call.invoke(param1); |
||||
logger.error("接口返回结果为:"+result.toString()); |
||||
|
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
logger.error(e.getMessage()); |
||||
}finally { |
||||
try { |
||||
if (out != null) { |
||||
out.close(); |
||||
} |
||||
} catch (IOException e) { |
||||
e.printStackTrace(); |
||||
logger.error(e.getMessage()); |
||||
} |
||||
} |
||||
return result.toString(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
import java.util.Map; |
||||
|
||||
public class HKSyncHrData implements SyncHRDataInterface { |
||||
|
||||
@Override |
||||
public String syncAdminOrg(String data,String surl) { |
||||
// TODO 自动生成的方法存根
|
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public String syncPerson(String data,String surl) { |
||||
// TODO 自动生成的方法存根
|
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public String syncPosition(String data,String surl) { |
||||
// TODO 自动生成的方法存根
|
||||
return null; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
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 com.kingdee.eas.common.EASBizException; |
||||
import java.lang.String; |
||||
import com.kingdee.bos.Context; |
||||
import com.kingdee.bos.framework.*; |
||||
|
||||
public interface IRishengHaiKangHRFacade extends IBizCtrl |
||||
{ |
||||
public String syncAdminOrg(String data) throws BOSException, EASBizException; |
||||
public String syncPerson(String data) throws BOSException, EASBizException; |
||||
public String syncEmpLeaves(String data) throws BOSException, EASBizException; |
||||
public String syncEmpLeavesRestore(String data) throws BOSException, EASBizException; |
||||
} |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
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 com.kingdee.eas.common.EASBizException; |
||||
import java.lang.String; |
||||
import com.kingdee.bos.Context; |
||||
import com.kingdee.bos.framework.*; |
||||
|
||||
public interface IRishengInterfaceFacade extends IBizCtrl |
||||
{ |
||||
public String syncAdminOrgInfo(String data) throws BOSException, EASBizException; |
||||
public String syncEmployeeInfo(String data) throws BOSException, EASBizException; |
||||
public String syncPositionInfo(String data) throws BOSException, EASBizException; |
||||
public String syncJoblevelInfo(String data) throws BOSException, EASBizException; |
||||
public String syncPersonPositionInfo(String data) throws BOSException, EASBizException; |
||||
} |
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
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 com.kingdee.eas.common.EASBizException; |
||||
import java.lang.String; |
||||
import com.kingdee.bos.Context; |
||||
import com.kingdee.bos.framework.*; |
||||
|
||||
public interface IRishengPendingMessageFacade extends IBizCtrl |
||||
{ |
||||
public String sendPendingMsg(String data) throws BOSException, EASBizException; |
||||
public String sendDoneMsg(String data) throws BOSException, EASBizException; |
||||
} |
@ -0,0 +1,93 @@
@@ -0,0 +1,93 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
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 com.kingdee.eas.common.EASBizException; |
||||
import com.kingdee.eas.custom.risheng.*; |
||||
import java.lang.String; |
||||
import com.kingdee.bos.Context; |
||||
import com.kingdee.bos.framework.*; |
||||
|
||||
public class RishengHaiKangHRFacade extends AbstractBizCtrl implements IRishengHaiKangHRFacade |
||||
{ |
||||
public RishengHaiKangHRFacade() |
||||
{ |
||||
super(); |
||||
registerInterface(IRishengHaiKangHRFacade.class, this); |
||||
} |
||||
public RishengHaiKangHRFacade(Context ctx) |
||||
{ |
||||
super(ctx); |
||||
registerInterface(IRishengHaiKangHRFacade.class, this); |
||||
} |
||||
public BOSObjectType getType() |
||||
{ |
||||
return new BOSObjectType("FE79E785"); |
||||
} |
||||
private RishengHaiKangHRFacadeController getController() throws BOSException |
||||
{ |
||||
return (RishengHaiKangHRFacadeController)getBizController(); |
||||
} |
||||
/** |
||||
*组织同步海康-User defined method |
||||
*@param data data |
||||
*@return |
||||
*/ |
||||
public String syncAdminOrg(String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
return getController().syncAdminOrg(getContext(), data); |
||||
} |
||||
catch(RemoteException err) { |
||||
throw new EJBRemoteException(err); |
||||
} |
||||
} |
||||
/** |
||||
*人员同步海康-User defined method |
||||
*@param data data |
||||
*@return |
||||
*/ |
||||
public String syncPerson(String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
return getController().syncPerson(getContext(), data); |
||||
} |
||||
catch(RemoteException err) { |
||||
throw new EJBRemoteException(err); |
||||
} |
||||
} |
||||
/** |
||||
*同步员工离职信息-User defined method |
||||
*@param data data |
||||
*@return |
||||
*/ |
||||
public String syncEmpLeaves(String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
return getController().syncEmpLeaves(getContext(), data); |
||||
} |
||||
catch(RemoteException err) { |
||||
throw new EJBRemoteException(err); |
||||
} |
||||
} |
||||
/** |
||||
*同步员工离职恢复信息-User defined method |
||||
*@param data data |
||||
*@return |
||||
*/ |
||||
public String syncEmpLeavesRestore(String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
return getController().syncEmpLeavesRestore(getContext(), data); |
||||
} |
||||
catch(RemoteException err) { |
||||
throw new EJBRemoteException(err); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
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 com.kingdee.eas.common.EASBizException; |
||||
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 RishengHaiKangHRFacadeController extends BizController |
||||
{ |
||||
public String syncAdminOrg(Context ctx, String data) throws BOSException, EASBizException, RemoteException; |
||||
public String syncPerson(Context ctx, String data) throws BOSException, EASBizException, RemoteException; |
||||
public String syncEmpLeaves(Context ctx, String data) throws BOSException, EASBizException, RemoteException; |
||||
public String syncEmpLeavesRestore(Context ctx, String data) throws BOSException, EASBizException, RemoteException; |
||||
} |
@ -0,0 +1,162 @@
@@ -0,0 +1,162 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
import org.apache.http.impl.client.CloseableHttpClient; |
||||
import org.apache.http.impl.client.HttpClients; |
||||
import org.apache.log4j.Logger; |
||||
import java.text.SimpleDateFormat; |
||||
import java.util.Calendar; |
||||
import java.util.Date; |
||||
import java.util.HashMap; |
||||
import java.util.HashSet; |
||||
import java.util.Map; |
||||
import java.util.Set; |
||||
|
||||
import com.alibaba.fastjson.JSONObject; |
||||
import com.aliyun.odps.utils.StringUtils; |
||||
import com.kingdee.bos.*; |
||||
|
||||
import java.lang.String; |
||||
|
||||
import com.kingdee.eas.base.wssc.app.trd.webservice.WebServiceConfig; |
||||
import com.kingdee.eas.common.EASBizException; |
||||
import com.kingdee.eas.custom.risheng.util.HttpRequestSecUtil; |
||||
import com.kingdee.eas.util.app.DbUtil; |
||||
import com.kingdee.jdbc.rowset.IRowSet; |
||||
|
||||
public class RishengHaiKangHRFacadeControllerBean extends AbstractRishengHaiKangHRFacadeControllerBean |
||||
{ |
||||
private static Logger logger = |
||||
Logger.getLogger("com.kingdee.eas.custom.risheng.RishengHaiKangHRFacadeControllerBean"); |
||||
/** |
||||
* 组织同步 |
||||
*/ |
||||
@Override |
||||
public String syncAdminOrg(Context ctx, String data) throws BOSException, EASBizException { |
||||
System.out.println("进入组织同步接口"); |
||||
JSONObject returnData = new JSONObject(); |
||||
returnData.put("success", true); |
||||
returnData.put("message", "OK"); |
||||
try { |
||||
Calendar beforeTime = Calendar.getInstance(); |
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
beforeTime.add(Calendar.MINUTE, -5);// 5分钟之前的时间
|
||||
Date beforeD = beforeTime.getTime(); |
||||
String before5 = simpleDateFormat.format(beforeD); |
||||
String depSql = ""; |
||||
System.out.println("传入参数为"+data.toString()); |
||||
Set<String> set = new HashSet<String>(); |
||||
String needUpSql = ""; |
||||
if(!StringUtils.isEmpty(data)){ |
||||
needUpSql = "SELECT FID as id,FNAME_l2 AS NAME,FNUMBER AS CODE,FPARENTID AS PARENT_DEPT FROM T_ORG_ADMIN where fid = '"+data+"'"; |
||||
IRowSet depSet = DbUtil.executeQuery(ctx, needUpSql); |
||||
while(depSet.next()){ |
||||
String dep_code = depSet.getString("CODE"); |
||||
set.add(dep_code); |
||||
} |
||||
}else{ |
||||
depSql = "SELECT b.FID as id,b.FNAME_l2 AS NAME,b.FNUMBER AS CODE,b.FPARENTID AS PARENT_DEPT " + |
||||
"FROM T_ORG_BASEUNIT a " + |
||||
"left join t_org_admin b on a.fid = b.fid " + |
||||
"where to_char(a.FLASTUPDATETIME ,'yyyy-MM-dd HH24:mi:ss') >= '"+before5+"' " + |
||||
"or to_char(b.FLASTUPDATETIME ,'yyyy-MM-dd HH24:mi:ss') >= '"+before5+"' "; |
||||
IRowSet depSet = DbUtil.executeQuery(ctx, depSql); |
||||
while(depSet.next()){ |
||||
String dep_code = depSet.getString("CODE"); |
||||
set.add(dep_code); |
||||
} |
||||
} |
||||
System.out.println("set==="+set.toString()); |
||||
for(String pNumber :set){ |
||||
String upSql = "/*dialect*/ update t_org_admin Set CFToHKisNew = '1' where fnumber = '"+pNumber+"'"; |
||||
DbUtil.execute(ctx,upSql); |
||||
} |
||||
if(StringUtils.isEmpty(data)){ |
||||
needUpSql = "/*dialect*/ select fid id,fname_l2 NAME,FNUMBER CODE,FPARENTID PARENT_DEPT from t_org_admin where CFToHKisNew = '1'"; |
||||
} |
||||
System.out.println("needUpSql="+needUpSql); |
||||
IRowSet needUpSet = DbUtil.executeQuery(ctx, needUpSql); |
||||
while(needUpSet.next()){ |
||||
String timestamp = System.currentTimeMillis()/1000+""; |
||||
System.out.println("时间戳为:"+timestamp); |
||||
String depId = "";//组织ID
|
||||
String depName = "";//组织名称
|
||||
String depCode = "";//组织编码
|
||||
String parent_ID = "";//上级组织ID
|
||||
String invalid = "0"; //部门状态
|
||||
depId = needUpSet.getString("id"); |
||||
depName = needUpSet.getString("NAME"); |
||||
depCode = needUpSet.getString("CODE"); |
||||
parent_ID = needUpSet.getString("PARENT_DEPT"); |
||||
//是否封存 这个逻辑需要判断
|
||||
String isSealUpSql = "SELECT FIsSealUp,FIsOUSealUp FROM T_ORG_Admin WHERE FNUMBER = '"+depCode+"'"; |
||||
IRowSet isSealUpSet = DbUtil.executeQuery(ctx, isSealUpSql); |
||||
while(isSealUpSet.next()){ |
||||
if("0".equals(isSealUpSet.getString("FIsSealUp") )&& "0".equals(isSealUpSet.getString("FIsOUSealUp"))){ |
||||
invalid = "1"; |
||||
} |
||||
} |
||||
JSONObject json = new JSONObject(); |
||||
json.put("depId",depId); |
||||
json.put("depName",depName); |
||||
json.put("depCode",depCode); |
||||
json.put("parent_ID",parent_ID); |
||||
json.put("invalid",invalid); |
||||
json.put("timestamp",timestamp); |
||||
CloseableHttpClient httpClient = null; |
||||
String resultStr = ""; |
||||
httpClient = HttpClients.createDefault(); |
||||
Map<String, String> headMap = new HashMap<String, String>(); |
||||
headMap.put("accept", "*/*"); |
||||
headMap.put("connection", "Keep-Alive"); |
||||
headMap.put("Content-Type", "application/json"); |
||||
System.out.println("组织同步请求参数为:"+json.toJSONString()); |
||||
System.out.println("组织同步请求头参数为:"+headMap.toString()); |
||||
String TEST_BASEURL = WebServiceConfig.getPropertiesValue(ctx, "rishengBaseUrl"); |
||||
//地址待确认
|
||||
String url = TEST_BASEURL+"/xxxxxx"; |
||||
resultStr = HttpRequestSecUtil.sendPost(url, json.toString(), headMap); |
||||
JSONObject res = JSONObject.parseObject(resultStr); |
||||
String code = res.getString("code"); |
||||
String message = res.getString("message"); |
||||
if("true".equals(message)){ |
||||
String updateSQL2 = "/*dialect*/ update t_org_admin Set CFToHKisNew = '0' where fid = '"+depId+"'"; |
||||
DbUtil.execute(ctx, updateSQL2); |
||||
}else{ |
||||
returnData.put("success", false); |
||||
returnData.put("message", message); |
||||
} |
||||
} |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
System.out.println(e.getMessage()); |
||||
returnData.put("success", false); |
||||
returnData.put("message", e.getMessage()); |
||||
} |
||||
|
||||
return returnData.toJSONString(); |
||||
} |
||||
/** |
||||
* 员工离职同步 |
||||
*/ |
||||
@Override |
||||
public String syncEmpLeaves(Context ctx, String data) throws BOSException, EASBizException { |
||||
// TODO 自动生成的方法存根
|
||||
return super.syncEmpLeaves(ctx, data); |
||||
} |
||||
/** |
||||
* 员工离职恢复同步 |
||||
*/ |
||||
@Override |
||||
public String syncEmpLeavesRestore(Context ctx, String data) throws BOSException, EASBizException { |
||||
// TODO 自动生成的方法存根
|
||||
return super.syncEmpLeavesRestore(ctx, data); |
||||
} |
||||
/** |
||||
* 人员同步 |
||||
*/ |
||||
@Override |
||||
public String syncPerson(Context ctx, String data) throws BOSException, EASBizException { |
||||
// TODO 自动生成的方法存根
|
||||
return super.syncPerson(ctx, data); |
||||
} |
||||
} |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
import com.kingdee.bos.BOSException; |
||||
import com.kingdee.bos.BOSObjectFactory; |
||||
import com.kingdee.bos.util.BOSObjectType; |
||||
import com.kingdee.bos.Context; |
||||
|
||||
public class RishengHaiKangHRFacadeFactory |
||||
{ |
||||
private RishengHaiKangHRFacadeFactory() |
||||
{ |
||||
} |
||||
public static com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade getRemoteInstance() throws BOSException |
||||
{ |
||||
return (com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade)BOSObjectFactory.createRemoteBOSObject(new BOSObjectType("FE79E785") ,com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade.class); |
||||
} |
||||
|
||||
public static com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade getRemoteInstanceWithObjectContext(Context objectCtx) throws BOSException |
||||
{ |
||||
return (com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade)BOSObjectFactory.createRemoteBOSObjectWithObjectContext(new BOSObjectType("FE79E785") ,com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade.class, objectCtx); |
||||
} |
||||
public static com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade getLocalInstance(Context ctx) throws BOSException |
||||
{ |
||||
return (com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade)BOSObjectFactory.createBOSObject(ctx, new BOSObjectType("FE79E785")); |
||||
} |
||||
public static com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade getLocalInstance(String sessionID) throws BOSException |
||||
{ |
||||
return (com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade)BOSObjectFactory.createBOSObject(sessionID, new BOSObjectType("FE79E785")); |
||||
} |
||||
} |
@ -0,0 +1,107 @@
@@ -0,0 +1,107 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
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 com.kingdee.eas.common.EASBizException; |
||||
import com.kingdee.eas.custom.risheng.*; |
||||
import java.lang.String; |
||||
import com.kingdee.bos.Context; |
||||
import com.kingdee.bos.framework.*; |
||||
|
||||
public class RishengInterfaceFacade extends AbstractBizCtrl implements IRishengInterfaceFacade |
||||
{ |
||||
public RishengInterfaceFacade() |
||||
{ |
||||
super(); |
||||
registerInterface(IRishengInterfaceFacade.class, this); |
||||
} |
||||
public RishengInterfaceFacade(Context ctx) |
||||
{ |
||||
super(ctx); |
||||
registerInterface(IRishengInterfaceFacade.class, this); |
||||
} |
||||
public BOSObjectType getType() |
||||
{ |
||||
return new BOSObjectType("81647F35"); |
||||
} |
||||
private RishengInterfaceFacadeController getController() throws BOSException |
||||
{ |
||||
return (RishengInterfaceFacadeController)getBizController(); |
||||
} |
||||
/** |
||||
*组织同步OA-User defined method |
||||
*@param data data |
||||
*@return |
||||
*/ |
||||
public String syncAdminOrgInfo(String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
return getController().syncAdminOrgInfo(getContext(), data); |
||||
} |
||||
catch(RemoteException err) { |
||||
throw new EJBRemoteException(err); |
||||
} |
||||
} |
||||
/** |
||||
*人员同步到OA-User defined method |
||||
*@param data data |
||||
*@return |
||||
*/ |
||||
public String syncEmployeeInfo(String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
return getController().syncEmployeeInfo(getContext(), data); |
||||
} |
||||
catch(RemoteException err) { |
||||
throw new EJBRemoteException(err); |
||||
} |
||||
} |
||||
/** |
||||
*同步岗位信息到OA-User defined method |
||||
*@param data data |
||||
*@return |
||||
*/ |
||||
public String syncPositionInfo(String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
return getController().syncPositionInfo(getContext(), data); |
||||
} |
||||
catch(RemoteException err) { |
||||
throw new EJBRemoteException(err); |
||||
} |
||||
} |
||||
/** |
||||
*职级信息同步到OA-User defined method |
||||
*@param data data |
||||
*@return |
||||
*/ |
||||
public String syncJoblevelInfo(String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
return getController().syncJoblevelInfo(getContext(), data); |
||||
} |
||||
catch(RemoteException err) { |
||||
throw new EJBRemoteException(err); |
||||
} |
||||
} |
||||
/** |
||||
*员工任职信息同步到OA-User defined method |
||||
*@param data data |
||||
*@return |
||||
*/ |
||||
public String syncPersonPositionInfo(String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
return getController().syncPersonPositionInfo(getContext(), data); |
||||
} |
||||
catch(RemoteException err) { |
||||
throw new EJBRemoteException(err); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
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 com.kingdee.eas.common.EASBizException; |
||||
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 RishengInterfaceFacadeController extends BizController |
||||
{ |
||||
public String syncAdminOrgInfo(Context ctx, String data) throws BOSException, EASBizException, RemoteException; |
||||
public String syncEmployeeInfo(Context ctx, String data) throws BOSException, EASBizException, RemoteException; |
||||
public String syncPositionInfo(Context ctx, String data) throws BOSException, EASBizException, RemoteException; |
||||
public String syncJoblevelInfo(Context ctx, String data) throws BOSException, EASBizException, RemoteException; |
||||
public String syncPersonPositionInfo(Context ctx, String data) throws BOSException, EASBizException, RemoteException; |
||||
} |
@ -0,0 +1,894 @@
@@ -0,0 +1,894 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
import org.apache.http.impl.client.CloseableHttpClient; |
||||
import org.apache.http.impl.client.HttpClients; |
||||
import org.apache.log4j.Logger; |
||||
import org.w3c.dom.Document; |
||||
import org.w3c.dom.Element; |
||||
import org.w3c.dom.Node; |
||||
import org.w3c.dom.NodeList; |
||||
import org.xml.sax.InputSource; |
||||
|
||||
import java.text.SimpleDateFormat; |
||||
import java.util.Calendar; |
||||
import java.util.Date; |
||||
import java.util.HashMap; |
||||
import java.util.HashSet; |
||||
import java.util.Map; |
||||
import java.util.Set; |
||||
|
||||
import javax.xml.parsers.DocumentBuilder; |
||||
import javax.xml.parsers.DocumentBuilderFactory; |
||||
|
||||
import com.alibaba.fastjson.JSONArray; |
||||
import com.alibaba.fastjson.JSONObject; |
||||
import com.aliyun.odps.utils.StringUtils; |
||||
import com.kingdee.bos.*; |
||||
|
||||
import java.io.StringReader; |
||||
import java.lang.String; |
||||
|
||||
import com.kingdee.eas.base.wssc.app.trd.webservice.WebServiceConfig; |
||||
import com.kingdee.eas.common.EASBizException; |
||||
import com.kingdee.eas.custom.risheng.util.HttpRequestSecUtil; |
||||
import com.kingdee.eas.util.app.DbUtil; |
||||
import com.kingdee.jdbc.rowset.IRowSet; |
||||
|
||||
public class RishengInterfaceFacadeControllerBean extends AbstractRishengInterfaceFacadeControllerBean |
||||
{ |
||||
private static Logger logger = |
||||
Logger.getLogger("com.kingdee.eas.custom.risheng.RishengInterfaceFacadeControllerBean"); |
||||
/** |
||||
* 组织同步到OA |
||||
*/ |
||||
@Override |
||||
public String syncAdminOrgInfo(Context ctx, String data) throws BOSException, EASBizException { |
||||
logger.error("进入组织同步接口"); |
||||
|
||||
try { |
||||
Calendar beforeTime = Calendar.getInstance(); |
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
beforeTime.add(Calendar.MINUTE, -5);// 5分钟之前的时间
|
||||
Date beforeD = beforeTime.getTime(); |
||||
String before5 = simpleDateFormat.format(beforeD); |
||||
String depSql = ""; |
||||
logger.error("传入参数为"+data.toString()); |
||||
if(!StringUtils.isEmpty(data)){ |
||||
//有参数,同步指定的组织信息
|
||||
depSql = "select a.flevel level,a.fid id,a.fname_l2 NAME,a.FNUMBER CODE,b.FNUMBER PARENT_CODE,a.fissealup sup,a.fisousealup ssup,a.freservefieldfirst isnew from t_org_admin a left join t_org_admin b on a.FPARENTID = b.fid where a.fnumber = '"+data+"'"; |
||||
}else { |
||||
//没有参数,同步需要同步的组织信息
|
||||
depSql = "SELECT a.flevel level,a.FID as id,a.FNAME_l2 AS NAME,a.FNUMBER AS CODE,c.Fnumber AS PARENT_CODE,a.fissealup sup,a.fisousealup ssup,a.freservefieldfirst isnew " + |
||||
"FROM t_org_admin a " + |
||||
"left join T_ORG_BASEUNIT b on a.fid = b.fid " + |
||||
"left join t_org_admin c on c.fid = a.FPARENTID " + |
||||
"where ( to_char(a.FLASTUPDATETIME ,'yyyy-MM-dd HH24:mi:ss') >= '"+before5+"' " + |
||||
"or to_char(b.FLASTUPDATETIME ,'yyyy-MM-dd HH24:mi:ss') >= '"+before5+"' )"; |
||||
} |
||||
//加上钉钉的不同步限制
|
||||
depSql = depSql +" and not exists (SELECT forgid FROM T_DD_NOSYNCORG dd where a.FID =dd.forgid) "; |
||||
logger.error("depSql="+depSql); |
||||
IRowSet needUpSet = DbUtil.executeQuery(ctx, depSql); |
||||
JSONArray resArr = new JSONArray(); |
||||
while(needUpSet.next()){ |
||||
String level = needUpSet.getString("level"); |
||||
int levelIntVal = Integer.parseInt(level); |
||||
//部门等级大于三级部门,才进行同步
|
||||
if( levelIntVal >= 3){ |
||||
Map<String, Object> checkMap = new HashMap<String,Object>(); |
||||
String timestamp = System.currentTimeMillis()/1000+""; |
||||
logger.error("时间戳为:"+timestamp); |
||||
String depId = "";//组织ID
|
||||
String depName = "";//组织名称
|
||||
String depCode = "";//组织编码
|
||||
String parent_code = "0";//上级组织编码,默认0
|
||||
String invalid = "0"; //部门状态,默认是封存(禁用)状态
|
||||
String action = "add";//操作,默认新增add,编辑为 edit
|
||||
String orgCode = "2"; //分部编码,固定日盛高新
|
||||
depId = needUpSet.getString("id"); |
||||
depName = needUpSet.getString("NAME"); |
||||
depCode = needUpSet.getString("CODE"); |
||||
if(!StringUtils.isEmpty(needUpSet.getString("PARENT_CODE"))) { |
||||
if(levelIntVal == 3){ |
||||
logger.error("三级部门,上级部门默认为0"); |
||||
}else { |
||||
parent_code = needUpSet.getString("PARENT_CODE"); |
||||
} |
||||
|
||||
} |
||||
if("0".equals(needUpSet.getString("sup") )&& "0".equals(needUpSet.getString("ssup"))){ |
||||
invalid = "1"; |
||||
} |
||||
if(!StringUtils.isEmpty(needUpSet.getString("isnew"))) { |
||||
action = "edit"; |
||||
} |
||||
checkMap.put("action", action); |
||||
checkMap.put("code", depCode); |
||||
checkMap.put("shortname", depName); |
||||
checkMap.put("fullname", depName); |
||||
checkMap.put("org_code", orgCode); |
||||
checkMap.put("parent_code", parent_code); |
||||
checkMap.put("canceled", invalid); |
||||
resArr.add(checkMap); |
||||
//调用接口
|
||||
String OA_HR_BASE = WebServiceConfig.getPropertiesValue(ctx, "rishengOAHrBaseUrl"); |
||||
String urlStr = OA_HR_BASE+"/services/HrmService"; |
||||
if(resArr.size()>0) { |
||||
SyncHRDataInterface syncHRDataInterface= SyncDataFacade.SyncDataFacade("fwoa"); |
||||
String returnStr = syncHRDataInterface.syncAdminOrg(resArr.toString(),urlStr); |
||||
logger.error("组织接口返回信息为"+returnStr); |
||||
if(!StringUtils.isEmpty(returnStr)) { |
||||
logger.error("开始解析接口返回结果"); |
||||
// 创建 DOM 解析器工厂
|
||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); |
||||
// 创建 DOM 解析器
|
||||
DocumentBuilder builder = factory.newDocumentBuilder(); |
||||
//使用解析器生成Document实例
|
||||
Document document = builder.parse(new InputSource(new StringReader(returnStr))); |
||||
//获取result元素的节点列表
|
||||
NodeList result = document.getElementsByTagName("result"); |
||||
if(result.getLength()>0) { |
||||
Node valueNode = result.item(0); |
||||
String rrr = valueNode.getTextContent(); |
||||
logger.error("rrr: " + rrr); |
||||
} |
||||
//获取属性值
|
||||
Element root = document.getDocumentElement(); |
||||
NodeList result2 = root.getChildNodes(); |
||||
if(result2 != null) { |
||||
if(result2.getLength()>0) { |
||||
Node book=result2.item(0); |
||||
if(book.getNodeType()==Node.ELEMENT_NODE) { |
||||
String value3 = book.getAttributes().getNamedItem("value").getNodeValue(); |
||||
logger.error("value3:"+value3); |
||||
if("1".equals(value3)) { |
||||
String updateSQL2 = "/*dialect*/ update t_org_admin Set freservefieldfirst = '0' where fid = '"+depId+"'"; |
||||
DbUtil.execute(ctx, updateSQL2); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}else { |
||||
logger.error("没有组织变更数据!"); |
||||
} |
||||
} |
||||
|
||||
} |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
logger.error(e.getMessage()); |
||||
} |
||||
return null; |
||||
} |
||||
/** |
||||
* 人员同步到OA |
||||
*/ |
||||
@Override |
||||
public String syncEmployeeInfo(Context ctx, String data) throws BOSException, EASBizException { |
||||
logger.error("进入员工信息同步接口"); |
||||
Calendar beforeTime = Calendar.getInstance(); |
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
beforeTime.add(Calendar.MINUTE, -5);// 5分钟之前的时间
|
||||
Date beforeD = beforeTime.getTime(); |
||||
String before5 = simpleDateFormat.format(beforeD); |
||||
String needUpSql = ""; |
||||
Set<String> set = new HashSet<String>(); |
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); |
||||
try { |
||||
if(!StringUtils.isEmpty(data)) { |
||||
needUpSql = " SELECT * FROM t_bd_person a where a.fnumber= '"+data+"' "; |
||||
}else { |
||||
//String personSql = "/*dialect*/ SELECT FNUMBER CODE FROM t_bd_person where FLASTUPDATETIME >= '"+before5+"'";
|
||||
String personSql = "/*dialect*/ SELECT FNUMBER CODE FROM t_bd_person";//20240314 改为全量同步
|
||||
|
||||
IRowSet personSet = DbUtil.executeQuery(ctx, personSql); |
||||
while(personSet.next()){ |
||||
String pNumber = personSet.getString("CODE"); |
||||
set.add(pNumber); |
||||
} |
||||
// logger.error("set==="+set.toString());
|
||||
for(String pNumber :set){ |
||||
String upSql = "/*dialect*/ update t_bd_person Set CfIsNeedToOA = '1' where fnumber = '"+pNumber+"'"; |
||||
DbUtil.execute(ctx,upSql); |
||||
} |
||||
//选择需要更新的,并且允许同步(unSync is null)的人员
|
||||
needUpSql = " SELECT * FROM t_bd_person a where a.CfIsNeedToOA = '1' "; |
||||
} |
||||
//加上钉钉的不同步限制
|
||||
needUpSql = needUpSql +" and not exists (SELECT fpersonid FROM T_DD_NOSYNCPERSON dd where dd.fpersonid =a.fid ) "; |
||||
|
||||
IRowSet needUpSet = DbUtil.executeQuery(ctx, needUpSql); |
||||
while(needUpSet.next()){ |
||||
JSONArray resArr = new JSONArray(); |
||||
Map<String, Object> checkMap = new HashMap<String,Object>(); |
||||
String action = "add";//操作,默认新增add,编辑为 edit
|
||||
String pid = "";//ID
|
||||
String lastname = "";//姓名
|
||||
String workcode = "";//人员编码,唯一值 hr人员编码
|
||||
String loginid= "";//登录名 hr人员编码
|
||||
String password = "123456";//密码 默认:123456
|
||||
String subcompany = "日盛高新";// 固定“日盛高新”
|
||||
String department = "";//部门名称
|
||||
String sex = "";//性别(男、女)
|
||||
String mobile= "";//移动电话
|
||||
String email= "";//邮箱
|
||||
String birthday = "";//出生日期(文本)
|
||||
String certificatenum= "";//身份证号码
|
||||
String jobtitle = "";//岗位名称(文本)
|
||||
String jobactivityid = "ERP职务类型";//职务名称(文本) 固定
|
||||
String jobgroupid = "ERP职务类型";//职务类别名称(文本) 固定
|
||||
String jobcell = "";//职称 确定HR是否有,不是必传
|
||||
String joblevel = "1";//(数字)
|
||||
String jobactivitydesc = "";//职责描述
|
||||
String status = "正式";//状态:(正式-1 正式员工、临时-2 试用员工、试用延期-3、解聘-4 解聘、离职-5、退休-6 退休、无效-7、删除-10) 确认hr会使用到哪些用工关系状态
|
||||
String folk= "";//民族(文本) 无值,默认无
|
||||
String nativeplace= "";//籍贯(文本) 默认无
|
||||
String regresidentplace= "";//户口 默认无
|
||||
String maritalstatus= "";//婚姻状况 默认无
|
||||
String policy= "";//政治面貌 默认无
|
||||
String educationlevel= "";//学历 默认无
|
||||
String degree= "";//学位 默认无
|
||||
String managerid = "";//直接上级(编号) 上级职位对应的人员编码,默认无
|
||||
String assistantid= "";//助理(编号)
|
||||
String locationid = "";//办公室名称(文本)
|
||||
String workroom = "";//办公地点名称(文本) 新厂,老厂
|
||||
String telephone= "";//办公电话
|
||||
String mobilecall = "";//其他电话
|
||||
String fax = "";//传真
|
||||
String systemlanguage = "简体中文";//系统语言(简体中文:7 繁体中文:9 English:8 ) 默认简体中文
|
||||
String bememberdate= "";//入团日期(文本)
|
||||
String bepartydate= "";//入党日期(文本)
|
||||
String islabouunion= "";//工会会员(1:是0:否)
|
||||
String healthinfo= "";//健康状况
|
||||
String height= "";//身高(文本)
|
||||
String weight= "";//体重(文本)
|
||||
String residentplace= "";//现居住地
|
||||
String homeaddress= "";//家庭联系方式
|
||||
String tempresidentnumber= "";//暂住证号码
|
||||
String seclevel = "";//安全级别(数字) 考虑在人员入职单新增“安全级别”,10 车间普通;20 行政普通; 60 部长;70 高管;80 总经理;
|
||||
String jobcall = "";//职称(文本) 确定HR是否有?
|
||||
|
||||
|
||||
pid = needUpSet.getString("fid"); |
||||
workcode = needUpSet.getString("fnumber"); |
||||
lastname = needUpSet.getString("fname_l2"); |
||||
checkMap.put("workcode", workcode); |
||||
checkMap.put("subcompany", subcompany); |
||||
//所在部门
|
||||
String depCode = ""; |
||||
String persondepSQL = "SELECT b.FNAME_l2 depName,b.fnumber depCode,b.FLEVEL level FROM t_hr_personposition a left join t_org_admin b on b.fid = a.fpersondep where a.FPERSONID = '"+pid+"'"; |
||||
IRowSet personDepRows = DbUtil.executeQuery(ctx, persondepSQL); |
||||
while(personDepRows.next()){ |
||||
depCode = personDepRows.getString("depCode"); |
||||
String depLevel = personDepRows.getString("level"); |
||||
int depLevelIntVal = Integer.parseInt(depLevel); |
||||
if(depLevelIntVal == 1 || depLevelIntVal == 2 || depLevelIntVal == 3) { |
||||
department = personDepRows.getString("depName"); |
||||
}else if(depLevelIntVal == 4){ |
||||
//如果是四级部门,则找出上级部门
|
||||
String depName = personDepRows.getString("depName"); |
||||
String pDepSQL = "SELECT b.FNAME_l2 pDepName FROM t_org_admin a left join t_org_admin b on b.fid = a.FPARENTID where a.fnumber = '"+depCode+"'"; |
||||
IRowSet pDepRows = DbUtil.executeQuery(ctx, pDepSQL); |
||||
while(pDepRows.next()){ |
||||
String pDepName = pDepRows.getString("pDepName"); |
||||
department = pDepName+">"+depName; |
||||
} |
||||
}else if(depLevelIntVal == 5) { |
||||
//如果是五级部门,继续向上查找,只查到6级部门,此处暂时不重新写方法
|
||||
String depName = personDepRows.getString("depName"); |
||||
String pDepSQL = "SELECT b.FNAME_l2 pDepName,c.FNAME_l2 ppDepName " |
||||
+ "FROM t_org_admin a " |
||||
+ "left join t_org_admin b on b.fid = a.FPARENTID " |
||||
+ "left join t_org_admin c on c.fid = b.FPARENTID " |
||||
+ "where a.fnumber = '"+depCode+"'"; |
||||
IRowSet pDepRows = DbUtil.executeQuery(ctx, pDepSQL); |
||||
while(pDepRows.next()){ |
||||
String pDepName = pDepRows.getString("pDepName"); |
||||
String ppDepName = pDepRows.getString("ppDepName"); |
||||
department = ppDepName+">"+pDepName+">"+depName; |
||||
} |
||||
}else if(depLevelIntVal == 6) { |
||||
//如果是五级部门,继续向上查找,只查到6级部门,此处暂时不重新写方法
|
||||
String depName = personDepRows.getString("depName"); |
||||
String pDepSQL = "SELECT b.FNAME_l2 pDepName,c.FNAME_l2 ppDepName,d.FNAME_l2 pppDepName " |
||||
+ "FROM t_org_admin a " |
||||
+ "left join t_org_admin b on b.fid = a.FPARENTID " |
||||
+ "left join t_org_admin c on c.fid = b.FPARENTID " |
||||
+ "left join t_org_admin d on d.fid = c.FPARENTID " |
||||
+ "where a.fnumber = '"+depCode+"'"; |
||||
IRowSet pDepRows = DbUtil.executeQuery(ctx, pDepSQL); |
||||
while(pDepRows.next()){ |
||||
String pDepName = pDepRows.getString("pDepName"); |
||||
String ppDepName = pDepRows.getString("ppDepName"); |
||||
String pppDepName = pDepRows.getString("pppDepName"); |
||||
department = pppDepName+">"+ppDepName+">"+pDepName+">"+depName; |
||||
} |
||||
} |
||||
|
||||
} |
||||
checkMap.put("department", department); |
||||
checkMap.put("lastname", lastname); |
||||
checkMap.put("loginid", workcode); |
||||
|
||||
//安全级别(数字) 考虑在人员入职单新增“安全级别”,10 车间普通;20 行政普通; 60 部长;70 高管;80 总经理;
|
||||
seclevel = needUpSet.getString("fidcardissueorg"); |
||||
checkMap.put("seclevel", seclevel); |
||||
|
||||
String gender = needUpSet.getString("FGENDER"); |
||||
if("1".equals(gender)){ |
||||
sex = "男"; |
||||
}else if("2".equals(gender)){ |
||||
sex = "女"; |
||||
} |
||||
checkMap.put("sex", sex); |
||||
//职务和职务类型 文档上标注固定,这个后期需要确认,先传固定值
|
||||
String personPosSQL = "SELECT b.fname_l2 gwName,b.fparentid leader ,c.FNAME_l2 zwName,d.FNAME_l2 zwType,b.FPURPOSE purpose " |
||||
+ "FROM t_hr_personposition a " |
||||
+ "left join T_ORG_POSITION b on b.fid = a.fprimarypositionid " |
||||
+ "left join T_ORG_JOB c on c.fid = b.fjobid " |
||||
+ "left join T_ORG_JOBCATEGORY d on d.fid = c.fjobcategoryid " |
||||
+ "where a.FPERSONID = '"+pid+"'"; |
||||
IRowSet personPosRows = DbUtil.executeQuery(ctx, personPosSQL); |
||||
String leaderId=""; |
||||
while(personPosRows.next()){ |
||||
if(!StringUtils.isEmpty(personPosRows.getString("zwName"))) { |
||||
jobactivityid = personPosRows.getString("zwName"); |
||||
} |
||||
// if(!StringUtils.isEmpty(personPosRows.getString("zwType"))) {
|
||||
// jobgroupid = personPosRows.getString("zwType");
|
||||
// }
|
||||
if(!StringUtils.isEmpty(personPosRows.getString("purpose"))) { |
||||
jobactivitydesc = personPosRows.getString("purpose"); |
||||
} |
||||
leaderId =personPosRows.getString("leader"); |
||||
jobtitle = personPosRows.getString("gwName"); |
||||
} |
||||
//岗位名称
|
||||
checkMap.put("jobtitle", jobtitle); |
||||
//职务名称固定 ERP职务类型,职务类别固定 ERP职务类型 这个需要联调确定 ????????
|
||||
checkMap.put("jobactivityid", jobactivityid); |
||||
|
||||
checkMap.put("jobgroupid", jobgroupid); |
||||
//jobcell 职称(文本),确定HR是否有,不是必传
|
||||
|
||||
//joblevel 传什么,当前默认为1 ???
|
||||
checkMap.put("joblevel", joblevel); |
||||
checkMap.put("jobactivitydesc", jobactivitydesc); |
||||
//直接上级(编号) 上级职位对应的人员编码 String managerid = "";
|
||||
//先找负责人职位ID
|
||||
/* String depAdmPosID2 = ""; |
||||
String depPosSQL = "SELECT a.fid pid,a.FPARENTID,b.fnumber FROM t_org_position a " + |
||||
"left join T_ORG_BaseUnit b on b.fid = a.FAdminOrgUnitID " + |
||||
"where b.fnumber = '"+depCode+"' and a.FIsRespPosition = 1 "; |
||||
IRowSet depPosRows = DbUtil.executeQuery(ctx, depPosSQL); |
||||
if(depPosRows.next()) { |
||||
depAdmPosID2 = depPosRows.getString("pid"); |
||||
} |
||||
//再根据部门负责人职位 在personPostion找负责人 如果查不到,就要到兼职表中查询
|
||||
String depAdmNumSql = "SELECT a.FPERSONID,a.FPERSONDEP,a.FPRIMARYPOSITIONID,b.FNUMBER bNum " + |
||||
"FROM t_hr_personposition a " + |
||||
"left join t_bd_person b on b.fid = a.FPERSONID " + |
||||
"where a.FPrimaryPositionID = '"+depAdmPosID2+"'"; |
||||
logger.error("depAdmNumSql=="+depAdmNumSql); |
||||
IRowSet depAdmNum_Set = DbUtil.executeQuery(ctx, depAdmNumSql); |
||||
String businessLeaderID = ""; |
||||
if(depAdmNum_Set.size()>0){ |
||||
//说明有部门负责人 联合查询查到该人编码
|
||||
depAdmNum_Set.previous(); |
||||
while(depAdmNum_Set.next()){ |
||||
if(!StringUtils.isEmpty(depAdmNum_Set.getString("bNum"))) { |
||||
managerid = depAdmNum_Set.getString("bNum"); |
||||
} |
||||
} |
||||
}else{ |
||||
//该部门没有负责人,根据事业部负责人职位ID去兼职任命分录查找 T_HR_PluralityAddBizBillEntry
|
||||
String leaderSql = "SELECT a.FPOSITIONID ,a.FPERSONID ,b.FNUMBER as code " + |
||||
"FROM T_HR_PluralityAddBizBillentry a left join t_bd_person b on a.FPERSONID = b.fid " + |
||||
"where a.FPOSITIONID = '"+depAdmPosID2+"'"; |
||||
logger.error("leaderSql=="+leaderSql); |
||||
IRowSet jianzhiSet = DbUtil.executeQuery(ctx, leaderSql); |
||||
while(jianzhiSet.next()){ |
||||
if(!StringUtils.isEmpty(jianzhiSet.getString("code"))) { |
||||
managerid = jianzhiSet.getString("code"); |
||||
} |
||||
} |
||||
}*/ |
||||
//20240312 wujiang 上级字段取职位上级 不取部门负责人
|
||||
if(!StringUtils.isEmpty(leaderId)){ |
||||
String leadSql ="SELECT b.FNAME_L2,b.FNUMBER FROM T_HR_PERSONPOSITION a LEFT OUTER JOIN T_BD_PERSON b ON A.FPERSONID = B.FID where a.FPRIMARYPOSITIONID ='"+leaderId+"'"; |
||||
IRowSet rs1 = DbUtil.executeQuery(ctx, leadSql); |
||||
while(rs1.next()){ |
||||
managerid = rs1.getString("FNUMBER"); |
||||
} |
||||
if(StringUtils.isEmpty(managerid)){ |
||||
// 该部门没有负责人,根据事业部负责人职位ID去兼职任命分录查找 T_HR_PluralityAddBizBillEntry
|
||||
String leaderSql = "SELECT a.FPOSITIONID ,a.FPERSONID ,b.FNUMBER as code " + |
||||
"FROM T_HR_PluralityAddBizBillentry a left join t_bd_person b on a.FPERSONID = b.fid " + |
||||
"where a.FPOSITIONID = '"+leaderId+"'"; |
||||
// logger.error("leaderSql=="+leaderSql);
|
||||
IRowSet jianzhiSet = DbUtil.executeQuery(ctx, leaderSql); |
||||
while(jianzhiSet.next()){ |
||||
if(!StringUtils.isEmpty(jianzhiSet.getString("code"))) { |
||||
managerid = jianzhiSet.getString("code"); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
//------------------- 20240312------------------------
|
||||
|
||||
|
||||
checkMap.put("managerid", managerid); |
||||
//助理 默认传无
|
||||
checkMap.put("assistantid", assistantid); |
||||
checkMap.put("status", status); |
||||
if(!StringUtils.isEmpty(needUpSet.getString("fncell"))) { |
||||
mobile = needUpSet.getString("fncell"); |
||||
} |
||||
if(!StringUtils.isEmpty(needUpSet.getString("femail"))) { |
||||
email = needUpSet.getString("femail"); |
||||
} |
||||
if(needUpSet.getDate("fbirthday") != null) { |
||||
Date birthdayD = needUpSet.getDate("fbirthday"); |
||||
birthday = dateFormat.format(birthdayD); |
||||
} |
||||
if(!StringUtils.isEmpty(needUpSet.getString("fidcardno"))) { |
||||
certificatenum = needUpSet.getString("fidcardno"); |
||||
} |
||||
|
||||
checkMap.put("mobile", mobile); |
||||
checkMap.put("email", email); |
||||
checkMap.put("birthday", birthday); |
||||
checkMap.put("certificatenum", certificatenum); |
||||
|
||||
//民族 、籍贯、户口
|
||||
String ccKKsql = "SELECT b.FNAME_l2 mzName,a.fnativeplace_l2 jgName,c.FNAME_l2 hklx,a.fhjaddress hkAddress " |
||||
+ "FROM t_bd_person a " |
||||
+ "left join T_BD_HRFOLK b ON A.FFOLKID = B.FID " |
||||
+ "left join T_BD_REGPERMRESIDENCE c ON A.FREGRESIDENCEID = C.FID " |
||||
+ "where a.fid = '"+pid+"' "; |
||||
IRowSet ccKKRows = DbUtil.executeQuery(ctx, ccKKsql); |
||||
while(ccKKRows.next()) { |
||||
if(!StringUtils.isEmpty(ccKKRows.getString("mzName"))) { |
||||
folk = ccKKRows.getString("mzName"); |
||||
} |
||||
if(!StringUtils.isEmpty(ccKKRows.getString("jgName"))) { |
||||
nativeplace = ccKKRows.getString("jgName"); |
||||
regresidentplace = ccKKRows.getString("jgName"); |
||||
} |
||||
} |
||||
checkMap.put("folk", folk); |
||||
checkMap.put("nativeplace", nativeplace); |
||||
checkMap.put("regresidentplace", regresidentplace); |
||||
//婚姻状况,政治面貌
|
||||
String zzSQL = "SELECT b.FNAME_l2 zzmm,c.FNAME_l2 hyzk " |
||||
+ "FROM t_bd_person a " |
||||
+ "left join T_BD_HRPOLITICAL b on b.fid = a.fpoliticalfaceid " |
||||
+ "left join T_BD_HRWED c on c.fid = a.fwedid " |
||||
+ "where a.fid = '"+pid+"'"; |
||||
IRowSet zzRows = DbUtil.executeQuery(ctx, zzSQL); |
||||
while(zzRows.next()){ |
||||
if(!StringUtils.isEmpty(zzRows.getString("zzmm"))) { |
||||
policy = zzRows.getString("zzmm"); |
||||
} |
||||
if(!StringUtils.isEmpty(zzRows.getString("hyzk"))) { |
||||
maritalstatus = zzRows.getString("hyzk"); |
||||
} |
||||
} |
||||
checkMap.put("policy", policy); |
||||
checkMap.put("maritalstatus", maritalstatus); |
||||
//学历、学位
|
||||
String degSQL = "SELECT b.FNAME_l2 xlName,c.FNAME_l2 xwName " |
||||
+ "FROM t_bd_person a " |
||||
+ "left join T_BD_HRDIPLOMA b on b.fid = a.fhighestdegreeid " |
||||
+ "left join T_BD_HRDEGREE c on c.fid = a.fhighestsubdegreeid " |
||||
+ "where a.fid = '"+pid+"'"; |
||||
IRowSet degRows = DbUtil.executeQuery(ctx, degSQL); |
||||
while(degRows.next()){ |
||||
if(!StringUtils.isEmpty(degRows.getString("xlName"))) { |
||||
educationlevel = degRows.getString("xlName"); |
||||
} |
||||
if(!StringUtils.isEmpty(degRows.getString("xwName"))) { |
||||
degree = degRows.getString("xwName"); |
||||
} |
||||
} |
||||
checkMap.put("educationlevel", educationlevel); |
||||
checkMap.put("degree", degree); |
||||
|
||||
|
||||
// 助理,办公室名称,办公地点,办公电话,其他电话,传真 默认无,有值再传 s
|
||||
|
||||
|
||||
//判断部门编码,去赋值新厂,旧厂
|
||||
if("3".equals(depCode) || "5".equals(depCode) ||"6".equals(depCode) ||"8".equals(depCode) ||"24".equals(depCode)){ |
||||
locationid = "老厂"; |
||||
}else { |
||||
locationid = "新厂"; |
||||
} |
||||
checkMap.put("locationid", locationid); |
||||
checkMap.put("workroom", workroom); |
||||
checkMap.put("telephone", telephone); |
||||
checkMap.put("mobilecall", mobilecall); |
||||
checkMap.put("fax", fax); |
||||
//系统语言(简体中文:7 繁体中文:9 English:8 ) 默认简体中文
|
||||
checkMap.put("systemlanguage", systemlanguage); |
||||
//入团日期、入党日期暂定无 工会会员默认否 后期有取值再定
|
||||
checkMap.put("bememberdate", bememberdate); |
||||
checkMap.put("bepartydate", bepartydate); |
||||
checkMap.put("islabouunion", islabouunion); |
||||
//身高体重健康状态默认无,赞助证号码默认无
|
||||
checkMap.put("healthinfo", healthinfo); |
||||
checkMap.put("height", height); |
||||
checkMap.put("weight", weight); |
||||
checkMap.put("homeaddress", homeaddress); |
||||
checkMap.put("tempresidentnumber", tempresidentnumber); |
||||
//现居住地址 取通信地址
|
||||
if(!StringUtils.isEmpty(needUpSet.getString("faddress_l2"))) { |
||||
residentplace = needUpSet.getString("faddress_l2"); |
||||
} |
||||
checkMap.put("residentplace", residentplace); |
||||
|
||||
//职称(文本) 确定HR是否有? 后期有值再修改
|
||||
|
||||
checkMap.put("jobcall", jobcall); |
||||
//action
|
||||
if(!StringUtils.isEmpty(needUpSet.getString("CFisnew"))) { |
||||
action = "edit"; |
||||
}else{ |
||||
checkMap.put("password", password);//说明是新增 得给密码
|
||||
} |
||||
checkMap.put("action", action); |
||||
resArr.add(checkMap); |
||||
//调用接口
|
||||
String OA_HR_BASE = WebServiceConfig.getPropertiesValue(ctx, "rishengOAHrBaseUrl"); |
||||
String urlStr = OA_HR_BASE+"/services/HrmService"; |
||||
if(resArr.size()>0) { |
||||
SyncHRDataInterface syncHRDataInterface=SyncDataFacade.SyncDataFacade("fwoa"); |
||||
String returnStr = syncHRDataInterface.syncPerson(resArr.toString(),urlStr); |
||||
logger.error("人员接口返回信息为"+returnStr); |
||||
if(!StringUtils.isEmpty(returnStr)) { |
||||
// logger.error("开始解析接口返回结果");
|
||||
// 创建 DOM 解析器工厂
|
||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); |
||||
// 创建 DOM 解析器
|
||||
DocumentBuilder builder = factory.newDocumentBuilder(); |
||||
//使用解析器生成Document实例
|
||||
Document document = builder.parse(new InputSource(new StringReader(returnStr))); |
||||
//获取result元素的节点列表
|
||||
NodeList result = document.getElementsByTagName("result"); |
||||
if(result.getLength()>0) { |
||||
Node valueNode = result.item(0); |
||||
String rrr = valueNode.getTextContent(); |
||||
// logger.error("rrr: " + rrr);
|
||||
} |
||||
//获取属性值
|
||||
Element root = document.getDocumentElement(); |
||||
NodeList result2 = root.getChildNodes(); |
||||
if(result2 != null) { |
||||
if(result2.getLength()>0) { |
||||
Node book=result2.item(0); |
||||
if(book.getNodeType()==Node.ELEMENT_NODE) { |
||||
String value3 = book.getAttributes().getNamedItem("value").getNodeValue(); |
||||
logger.error("value3:"+value3); |
||||
if("1".equals(value3)) { |
||||
String updateSQL2 = "/*dialect*/ update t_bd_person Set CFisNew = '0',CfIsNeedToOA = '0' where fid = '"+pid+"'"; |
||||
DbUtil.execute(ctx, updateSQL2); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}else { |
||||
logger.error("没有人员变更数据!"); |
||||
} |
||||
} |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
logger.error(e.getMessage()); |
||||
} |
||||
return null; |
||||
} |
||||
/** |
||||
* 职级同步到OA |
||||
*/ |
||||
@Override |
||||
public String syncJoblevelInfo(Context ctx, String data) throws BOSException, EASBizException { |
||||
logger.error("进入职级信息同步接口"); |
||||
Calendar beforeTime = Calendar.getInstance(); |
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
beforeTime.add(Calendar.MINUTE, -5);// 5分钟之前的时间
|
||||
Date beforeD = beforeTime.getTime(); |
||||
String before5 = simpleDateFormat.format(beforeD); |
||||
Set<String> set = new HashSet<String>(); |
||||
String needUpSql = ""; |
||||
try { |
||||
if(!StringUtils.isEmpty(data)) { |
||||
needUpSql = "/*dialect*/ SELECT * FROM T_HR_JOBLEVEL where fnumber= '"+data+"' "; |
||||
}else { |
||||
String personSql = "/*dialect*/ SELECT FNUMBER CODE FROM T_HR_JOBLEVEL where FLASTUPDATETIME >= '"+before5+"'"; |
||||
IRowSet personSet = DbUtil.executeQuery(ctx, personSql); |
||||
while(personSet.next()){ |
||||
String pNumber = personSet.getString("CODE"); |
||||
set.add(pNumber); |
||||
} |
||||
logger.error("set==="+set.toString()); |
||||
for(String pNumber :set){ |
||||
String upSql = "/*dialect*/ update T_HR_JOBLEVEL Set CfIsNeedToOA = '1' where fnumber = '"+pNumber+"'"; |
||||
DbUtil.execute(ctx,upSql); |
||||
} |
||||
//选择需要更新的,并且允许同步(unSync is null)的人员
|
||||
needUpSql = "/*dialect*/ SELECT * FROM T_HR_JOBLEVEL where CfIsNeedToOA = '1'"; |
||||
} |
||||
IRowSet needUpSet = DbUtil.executeQuery(ctx, needUpSql); |
||||
while(needUpSet.next()){ |
||||
String timestamp = System.currentTimeMillis()/1000+""; |
||||
String name = needUpSet.getString("pname"); |
||||
String number = needUpSet.getString("CODE"); |
||||
String pid = needUpSet.getString("id"); |
||||
JSONObject json = new JSONObject(); |
||||
json.put("name",name); |
||||
json.put("number",number); |
||||
json.put("timestamp",timestamp); |
||||
CloseableHttpClient httpClient = null; |
||||
String resultStr = ""; |
||||
httpClient = HttpClients.createDefault(); |
||||
Map<String, String> headMap = new HashMap<String, String>(); |
||||
headMap.put("accept", "*/*"); |
||||
headMap.put("connection", "Keep-Alive"); |
||||
headMap.put("Content-Type", "application/json"); |
||||
logger.error("职级同步请求参数为:"+json.toJSONString()); |
||||
logger.error("职级同步请求头参数为:"+headMap.toString()); |
||||
String TEST_BASEURL = WebServiceConfig.getPropertiesValue(ctx, "rishengBaseUrl"); |
||||
//地址待确认
|
||||
String url = TEST_BASEURL+"/xxxxxx"; |
||||
resultStr = HttpRequestSecUtil.sendPost(url, json.toString(), headMap); |
||||
JSONObject res = JSONObject.parseObject(resultStr); |
||||
String code = res.getString("code"); |
||||
String message = res.getString("message"); |
||||
if("true".equals(message)){ |
||||
String updateSQL2 = "/*dialect*/ update T_HR_JOBLEVEL Set CFisNew = '0' where fid = '"+pid+"'"; |
||||
DbUtil.execute(ctx, updateSQL2); |
||||
} |
||||
} |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
logger.error(e.getMessage()); |
||||
} |
||||
return null; |
||||
} |
||||
/** |
||||
* 员工任职信息同步到OA |
||||
*/ |
||||
@Override |
||||
public String syncPersonPositionInfo(Context ctx, String data) throws BOSException, EASBizException { |
||||
logger.error("进入员工任职信息同步接口"); |
||||
Calendar beforeTime = Calendar.getInstance(); |
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
beforeTime.add(Calendar.MINUTE, -5);// 5分钟之前的时间
|
||||
Date beforeD = beforeTime.getTime(); |
||||
String before5 = simpleDateFormat.format(beforeD); |
||||
try { |
||||
Set<String> set = new HashSet<String>(); |
||||
String personSql = "/*dialect*/ SELECT FNUMBER pnumber FROM t_bd_person where FLASTUPDATETIME >= '"+before5+"'"; |
||||
String personPositionSql = "/*dialect*/ SELECT b.FNUMBER pnumber FROM T_HR_PersonPosition a LEFT OUTER JOIN t_bd_person b ON a.FPERSONID = b.FID where a.FLASTUPDATETIME >= '"+before5+"'"; |
||||
String jzSql = "/*dialect*/ SELECT b.FNUMBER pnumber FROM T_HR_PluralityAddBizBillentry a LEFT OUTER JOIN t_bd_person b ON a.FPERSONID = b.FID where a.FLASTUPDATETIME >= '"+before5+"'"; |
||||
IRowSet personSet = DbUtil.executeQuery(ctx, personSql); |
||||
while(personSet.next()){ |
||||
String pNumber = personSet.getString("pnumber"); |
||||
set.add(pNumber); |
||||
} |
||||
IRowSet personPositionSet = DbUtil.executeQuery(ctx, personPositionSql); |
||||
while(personPositionSet.next()){ |
||||
String pNumber = personPositionSet.getString("pnumber"); |
||||
set.add(pNumber); |
||||
} |
||||
|
||||
IRowSet jzSet = DbUtil.executeQuery(ctx, jzSql); |
||||
while(jzSet.next()){ |
||||
String pNumber = jzSet.getString("pnumber"); |
||||
set.add(pNumber); |
||||
} |
||||
logger.error("set==="+set.toString()); |
||||
for(String pNumber :set){ |
||||
String upSql = "/*dialect*/ update t_bd_person Set CFrzIsNew = '1' where fnumber = '"+pNumber+"'"; |
||||
DbUtil.execute(ctx,upSql); |
||||
} |
||||
//选择需要更新的人员
|
||||
String needUpSql = "/*dialect*/ SELECT fid id,FNAME_l2 pname,FNUMBER CODE,FDeletedStatus status FROM t_bd_person where CFrzIsNew = '1' "; |
||||
IRowSet needUpSet = DbUtil.executeQuery(ctx, needUpSql); |
||||
while(needUpSet.next()){ |
||||
String timestamp = System.currentTimeMillis()/1000+""; |
||||
String name = needUpSet.getString("pname"); |
||||
String number = needUpSet.getString("CODE"); |
||||
String pid = needUpSet.getString("id"); |
||||
String status = needUpSet.getString("status"); //作废状态 1 普通,2作废
|
||||
if("1".equals(status)){ |
||||
status = "普通"; |
||||
}else if("2".equals(status)){ |
||||
status = "作废"; |
||||
} |
||||
JSONObject json = new JSONObject(); |
||||
json.put("name",name); |
||||
json.put("number",number); |
||||
json.put("timestamp",timestamp); |
||||
//部门、任职、职级
|
||||
String depName = ""; |
||||
String posName = ""; |
||||
String levelName = ""; |
||||
StringBuffer positionQueryBuffer = new StringBuffer("/*dialect*/ SELECT "); |
||||
positionQueryBuffer.append(" a.FPERSONID,c.FNAME_l2 depName,b.FNAME_l2 levelName,d.FNAME_l2 posName "); |
||||
positionQueryBuffer.append(" FROM t_hr_personposition a "); |
||||
positionQueryBuffer.append(" left join T_HR_JOBLEVEL b on b.fid = a.FJobLevelID "); |
||||
positionQueryBuffer.append(" left join T_ORG_BASEUNIT c on c.fid = a.FPersonDep "); |
||||
positionQueryBuffer.append(" left join T_ORG_POSITION d on d.fid = a.FPrimaryPositionID "); |
||||
positionQueryBuffer.append(" where a.FPERSONID = '"+pid+"'"); |
||||
IRowSet queryPosRows = DbUtil.executeQuery(ctx, positionQueryBuffer.toString()); |
||||
while(queryPosRows.next()){ |
||||
depName = queryPosRows.getString("depName"); |
||||
posName = queryPosRows.getString("posName"); |
||||
levelName = queryPosRows.getString("levelName"); |
||||
} |
||||
json.put("depName",depName); |
||||
json.put("posName",posName); |
||||
json.put("levelName",levelName); |
||||
//兼职部门、兼职岗位
|
||||
String jzAdminOrgname = ""; |
||||
String jzPosName = ""; |
||||
JSONArray jzList = new JSONArray(); |
||||
StringBuffer jzQueryBuffer = new StringBuffer("/*dialect*/ SELECT "); |
||||
jzQueryBuffer.append(" b.FNAME_l2 jzAdminOrgName,c.FNAME_l2 jzPosName "); |
||||
jzQueryBuffer.append(" FROM T_HR_PluralityAddBizBillentry a "); |
||||
jzQueryBuffer.append(" left join T_ORG_BASEUNIT b on b.fid = a.FAdminOrgID "); |
||||
jzQueryBuffer.append(" left join T_ORG_POSITION c on c.fid = a.FPositionID "); |
||||
jzQueryBuffer.append(" where a.FPERSONID = '"+pid+"'"); |
||||
IRowSet queryJzRows = DbUtil.executeQuery(ctx, jzQueryBuffer.toString()); |
||||
while(queryJzRows.next()){ |
||||
JSONObject jzObj = new JSONObject(); |
||||
jzObj.put("jzAdminOrgname", queryJzRows.getString("jzAdminOrgName")); |
||||
jzObj.put("jzPosName", queryJzRows.getString("jzPosName")); |
||||
jzList.add(jzObj); |
||||
} |
||||
json.put("jzList",jzList); |
||||
CloseableHttpClient httpClient = null; |
||||
String resultStr = ""; |
||||
httpClient = HttpClients.createDefault(); |
||||
Map<String, String> headMap = new HashMap<String, String>(); |
||||
headMap.put("accept", "*/*"); |
||||
headMap.put("connection", "Keep-Alive"); |
||||
headMap.put("Content-Type", "application/json"); |
||||
logger.error("任职信息同步请求参数为:"+json.toJSONString()); |
||||
logger.error("任职信息同步请求头参数为:"+headMap.toString()); |
||||
String TEST_BASEURL = WebServiceConfig.getPropertiesValue(ctx, "rishengBaseUrl"); |
||||
//地址待确认
|
||||
String url = TEST_BASEURL+"/xxxxxx"; |
||||
resultStr = HttpRequestSecUtil.sendPost(url, json.toString(), headMap); |
||||
JSONObject res = JSONObject.parseObject(resultStr); |
||||
String code = res.getString("code"); |
||||
String message = res.getString("message"); |
||||
if("true".equals(message)){ |
||||
String updateSQL2 = "/*dialect*/ update t_bd_person Set CFrzIsNew = '0' where fid = '"+pid+"'"; |
||||
DbUtil.execute(ctx, updateSQL2); |
||||
} |
||||
} |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
logger.error(e.getMessage()); |
||||
} |
||||
return null; |
||||
} |
||||
/** |
||||
* 岗位信息到OA |
||||
*/ |
||||
@Override |
||||
public String syncPositionInfo(Context ctx, String data) throws BOSException, EASBizException { |
||||
logger.error("进入岗位信息同步接口"); |
||||
Calendar beforeTime = Calendar.getInstance(); |
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
beforeTime.add(Calendar.MINUTE, -5);// 5分钟之前的时间
|
||||
Date beforeD = beforeTime.getTime(); |
||||
String before5 = simpleDateFormat.format(beforeD); |
||||
String needUpSql = ""; |
||||
Set<String> set = new HashSet<String>(); |
||||
try { |
||||
if(!StringUtils.isEmpty(data)) { |
||||
needUpSql = "/*dialect*/ SELECT * FROM T_ORG_Position where fnumber= '"+data+"' "; |
||||
}else { |
||||
String personSql = "/*dialect*/ SELECT FNUMBER CODE FROM T_ORG_Position where FLASTUPDATETIME >= '"+before5+"'"; |
||||
IRowSet personSet = DbUtil.executeQuery(ctx, personSql); |
||||
while(personSet.next()){ |
||||
String pNumber = personSet.getString("CODE"); |
||||
set.add(pNumber); |
||||
} |
||||
logger.error("set==="+set.toString()); |
||||
for(String pNumber :set){ |
||||
String upSql = "/*dialect*/ update T_ORG_Position Set CfIsNeedToOA = '1' where fnumber = '"+pNumber+"'"; |
||||
DbUtil.execute(ctx,upSql); |
||||
} |
||||
//选择需要更新的,并且允许同步(unSync is null)的职位
|
||||
needUpSql = "/*dialect*/ SELECT * FROM T_ORG_Position where CfIsNeedToOA = '1'"; |
||||
} |
||||
IRowSet needUpSet = DbUtil.executeQuery(ctx, needUpSql); |
||||
JSONArray resArr = new JSONArray(); |
||||
while(needUpSet.next()){ |
||||
String posCode = needUpSet.getString("FNUMBER"); |
||||
//如果是高管职位,不进行同步,设置是否同步到OA为0
|
||||
if("0001".equals(posCode) || "0002".equals(posCode)|| "0003".equals(posCode)|| "0004".equals(posCode) |
||||
|| "0005".equals(posCode)|| "0006".equals(posCode)|| "0007".equals(posCode)|| "0008".equals(posCode) |
||||
|| "0009".equals(posCode)|| "0010".equals(posCode)|| "0011".equals(posCode)|| "0505".equals(posCode)){ |
||||
String updSql = "/*dialect*/ update T_ORG_Position Set CfIsNeedToOA = '0' where fnumber = '"+posCode+"'"; |
||||
DbUtil.execute(ctx,updSql); |
||||
}else { |
||||
Map<String, Object> checkMap = new HashMap<String,Object>(); |
||||
String action ="add";//动作,add:添加,edit:编辑,delete:删除
|
||||
String jobtitlecode="";//岗位编码,唯一值 名称
|
||||
String jobtitlename="";//岗位简称 名称
|
||||
String jobtitleremark="";//岗位全称 名称
|
||||
String jobtitledept="";//岗位所属部门编码 为空
|
||||
String jobgroupid="505";//职务编码 OA建一个统一职务 ERP职务类型
|
||||
if(!StringUtils.isEmpty(needUpSet.getString("CFisnew"))) { |
||||
action = "edit"; |
||||
} |
||||
checkMap.put("action", action); |
||||
jobtitlecode = needUpSet.getString("fname_l2"); |
||||
jobtitlename = needUpSet.getString("fname_l2"); |
||||
jobtitleremark = needUpSet.getString("fname_l2"); |
||||
checkMap.put("jobtitlecode", jobtitlecode); |
||||
checkMap.put("jobtitlename", jobtitlename); |
||||
checkMap.put("jobtitleremark", jobtitleremark); |
||||
checkMap.put("jobtitledept", jobtitledept); |
||||
//待确认 传不传
|
||||
checkMap.put("jobgroupid", jobgroupid); |
||||
resArr.add(checkMap); |
||||
//调用接口
|
||||
String OA_HR_BASE = WebServiceConfig.getPropertiesValue(ctx, "rishengOAHrBaseUrl"); |
||||
String urlStr = OA_HR_BASE+"/services/HrmService"; |
||||
if(resArr.size()>0) { |
||||
SyncHRDataInterface syncHRDataInterface=SyncDataFacade.SyncDataFacade("fwoa"); |
||||
String returnStr = syncHRDataInterface.syncPosition(resArr.toString(),urlStr); |
||||
if(!StringUtils.isEmpty(returnStr)) { |
||||
logger.error("开始解析接口返回结果"); |
||||
// 创建 DOM 解析器工厂
|
||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); |
||||
// 创建 DOM 解析器
|
||||
DocumentBuilder builder = factory.newDocumentBuilder(); |
||||
//使用解析器生成Document实例
|
||||
Document document = builder.parse(new InputSource(new StringReader(returnStr))); |
||||
//获取result元素的节点列表
|
||||
NodeList result = document.getElementsByTagName("result"); |
||||
if(result.getLength()>0) { |
||||
Node valueNode = result.item(0); |
||||
String rrr = valueNode.getTextContent(); |
||||
logger.error("rrr: " + rrr); |
||||
} |
||||
//获取属性值
|
||||
Element root = document.getDocumentElement(); |
||||
NodeList result2 = root.getChildNodes(); |
||||
if(result2 != null) { |
||||
if(result2.getLength()>0) { |
||||
Node book=result2.item(0); |
||||
if(book.getNodeType()==Node.ELEMENT_NODE) { |
||||
String value3 = book.getAttributes().getNamedItem("value").getNodeValue(); |
||||
logger.error("value3:"+value3); |
||||
if("1".equals(value3)) { |
||||
String updateSQL2 = "/*dialect*/ update T_ORG_Position Set CFisNew = '0',CfIsNeedToOA = '0' where fnumber = '"+posCode+"'"; |
||||
DbUtil.execute(ctx, updateSQL2); |
||||
} |
||||
} |
||||
} |
||||
|
||||
} |
||||
} |
||||
}else { |
||||
logger.error("没有职位变更数据!"); |
||||
} |
||||
|
||||
} |
||||
} |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
logger.error(e.getMessage()); |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
import com.kingdee.bos.BOSException; |
||||
import com.kingdee.bos.BOSObjectFactory; |
||||
import com.kingdee.bos.util.BOSObjectType; |
||||
import com.kingdee.bos.Context; |
||||
|
||||
public class RishengInterfaceFacadeFactory |
||||
{ |
||||
private RishengInterfaceFacadeFactory() |
||||
{ |
||||
} |
||||
public static com.kingdee.eas.custom.risheng.IRishengInterfaceFacade getRemoteInstance() throws BOSException |
||||
{ |
||||
return (com.kingdee.eas.custom.risheng.IRishengInterfaceFacade)BOSObjectFactory.createRemoteBOSObject(new BOSObjectType("81647F35") ,com.kingdee.eas.custom.risheng.IRishengInterfaceFacade.class); |
||||
} |
||||
|
||||
public static com.kingdee.eas.custom.risheng.IRishengInterfaceFacade getRemoteInstanceWithObjectContext(Context objectCtx) throws BOSException |
||||
{ |
||||
return (com.kingdee.eas.custom.risheng.IRishengInterfaceFacade)BOSObjectFactory.createRemoteBOSObjectWithObjectContext(new BOSObjectType("81647F35") ,com.kingdee.eas.custom.risheng.IRishengInterfaceFacade.class, objectCtx); |
||||
} |
||||
public static com.kingdee.eas.custom.risheng.IRishengInterfaceFacade getLocalInstance(Context ctx) throws BOSException |
||||
{ |
||||
return (com.kingdee.eas.custom.risheng.IRishengInterfaceFacade)BOSObjectFactory.createBOSObject(ctx, new BOSObjectType("81647F35")); |
||||
} |
||||
public static com.kingdee.eas.custom.risheng.IRishengInterfaceFacade getLocalInstance(String sessionID) throws BOSException |
||||
{ |
||||
return (com.kingdee.eas.custom.risheng.IRishengInterfaceFacade)BOSObjectFactory.createBOSObject(sessionID, new BOSObjectType("81647F35")); |
||||
} |
||||
} |
@ -0,0 +1,65 @@
@@ -0,0 +1,65 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
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 com.kingdee.eas.common.EASBizException; |
||||
import com.kingdee.eas.custom.risheng.*; |
||||
import java.lang.String; |
||||
import com.kingdee.bos.Context; |
||||
import com.kingdee.bos.framework.*; |
||||
|
||||
public class RishengPendingMessageFacade extends AbstractBizCtrl implements IRishengPendingMessageFacade |
||||
{ |
||||
public RishengPendingMessageFacade() |
||||
{ |
||||
super(); |
||||
registerInterface(IRishengPendingMessageFacade.class, this); |
||||
} |
||||
public RishengPendingMessageFacade(Context ctx) |
||||
{ |
||||
super(ctx); |
||||
registerInterface(IRishengPendingMessageFacade.class, this); |
||||
} |
||||
public BOSObjectType getType() |
||||
{ |
||||
return new BOSObjectType("4FA99C68"); |
||||
} |
||||
private RishengPendingMessageFacadeController getController() throws BOSException |
||||
{ |
||||
return (RishengPendingMessageFacadeController)getBizController(); |
||||
} |
||||
/** |
||||
*´ý°ìÐÅÏ¢-User defined method |
||||
*@param data data |
||||
*@return |
||||
*/ |
||||
public String sendPendingMsg(String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
return getController().sendPendingMsg(getContext(), data); |
||||
} |
||||
catch(RemoteException err) { |
||||
throw new EJBRemoteException(err); |
||||
} |
||||
} |
||||
/** |
||||
*ÒÑ°ìÏûÏ¢-User defined method |
||||
*@param data data |
||||
*@return |
||||
*/ |
||||
public String sendDoneMsg(String data) throws BOSException, EASBizException |
||||
{ |
||||
try { |
||||
return getController().sendDoneMsg(getContext(), data); |
||||
} |
||||
catch(RemoteException err) { |
||||
throw new EJBRemoteException(err); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
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 com.kingdee.eas.common.EASBizException; |
||||
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 RishengPendingMessageFacadeController extends BizController |
||||
{ |
||||
public String sendPendingMsg(Context ctx, String data) throws BOSException, EASBizException, RemoteException; |
||||
public String sendDoneMsg(Context ctx, String data) throws BOSException, EASBizException, RemoteException; |
||||
} |
@ -0,0 +1,342 @@
@@ -0,0 +1,342 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
import net.sf.json.JSONArray; |
||||
import net.sf.json.JSONObject; |
||||
|
||||
import org.apache.axis.encoding.Base64; |
||||
import org.apache.log4j.Logger; |
||||
import java.sql.SQLException; |
||||
import java.text.SimpleDateFormat; |
||||
import java.util.Date; |
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
import java.util.Properties; |
||||
|
||||
import com.kingdee.bos.*; |
||||
import com.kingdee.bos.workflow.AssignmentInfo; |
||||
import com.kingdee.bos.workflow.service.ormrpc.EnactmentServiceFactory; |
||||
import com.kingdee.bos.workflow.service.ormrpc.IEnactmentService; |
||||
|
||||
import java.io.BufferedInputStream; |
||||
import java.io.FileInputStream; |
||||
import java.io.IOException; |
||||
import java.io.InputStream; |
||||
import java.lang.String; |
||||
import java.net.URLEncoder; |
||||
|
||||
import com.kingdee.eas.common.EASBizException; |
||||
import com.kingdee.eas.custom.risheng.util.HttpRequestUtil; |
||||
import com.kingdee.eas.util.app.DbUtil; |
||||
import com.kingdee.jdbc.rowset.IRowSet; |
||||
import com.kingdee.util.StringUtils; |
||||
|
||||
public class RishengPendingMessageFacadeControllerBean extends AbstractRishengPendingMessageFacadeControllerBean |
||||
{ |
||||
private static Logger logger = |
||||
Logger.getLogger("com.kingdee.eas.custom.risheng.RishengPendingMessageFacadeControllerBean"); |
||||
private static final String ROOT_URL = "http://120.46.132.160:8080/rest/ofs/ReceiveRequestInfoByJson"; |
||||
private static final String SHR_ROOT_URL = "https://rshr.kdeascloud.com"; |
||||
private static final String EID = "K172K145K108K99K97"; |
||||
|
||||
// private static final String TOKEN_URL = "/seeyon/rest/token";
|
||||
// private static final String AUTHEN_NAME = "0003";
|
||||
// private static final String AUTHEN_PASSWORD = "123456";
|
||||
|
||||
/** |
||||
* 待办消息推送到OA |
||||
*/ |
||||
@Override |
||||
public String sendPendingMsg(Context ctx, String data) throws BOSException, EASBizException { |
||||
// TODO 自动生成的方法存根
|
||||
try{ |
||||
StringBuffer queryPendingSqlBuf = new StringBuffer( |
||||
" /*dialect*/ SELECT "); |
||||
queryPendingSqlBuf.append("b.FID"); |
||||
queryPendingSqlBuf.append(",a.FSUBJECT_l2 TITLE"); |
||||
queryPendingSqlBuf.append(",b.FSenderId SENDERID"); |
||||
queryPendingSqlBuf.append(",d.FNUMBER SENDERNUMBER"); |
||||
queryPendingSqlBuf.append(",b.FSender_l2 SENDERNAME"); |
||||
queryPendingSqlBuf.append(",a.FPERSONUSERID RECEIVERID"); |
||||
queryPendingSqlBuf.append(",e.FNUMBER RECEIVERNUMBER"); |
||||
queryPendingSqlBuf.append(",a.FPERSONUSERNAME_L2 RECEIVERNAME"); |
||||
queryPendingSqlBuf.append(",a.FCREATEDTIME SENDTIME"); |
||||
queryPendingSqlBuf.append(",a.FCREATEDTIME RECEIVETIME"); |
||||
queryPendingSqlBuf.append(",a.FPRIORITY PRIORITY"); |
||||
queryPendingSqlBuf.append(",b.FSTATUS STATUS"); |
||||
queryPendingSqlBuf.append(",a.FSTATE SOURCESTATUS"); |
||||
queryPendingSqlBuf.append(",b.FORGTYPE ORGTYPE"); |
||||
queryPendingSqlBuf.append(",b.FORGID ORGID"); |
||||
queryPendingSqlBuf.append(",a.FASSIGNID SOURCEID"); |
||||
queryPendingSqlBuf.append(",b.FIsWebSupport ISWEBSUPPORT"); |
||||
queryPendingSqlBuf.append(",a.FBODY_l2 FBODY"); |
||||
queryPendingSqlBuf.append(",a.FPROCDEFNAME_l2 PROCDEFNAME"); |
||||
queryPendingSqlBuf.append(",b.FTag_l2 TAG"); |
||||
queryPendingSqlBuf.append(",b.FSenderId SENDERID"); |
||||
queryPendingSqlBuf.append(",b.FPriorPerformerID PRIORPERFORMERID"); |
||||
queryPendingSqlBuf.append(",last.FNumber PRIORPERFORMNAME"); |
||||
queryPendingSqlBuf.append(",a.FPROCINSTID FPROCINSTID"); |
||||
queryPendingSqlBuf.append(",a.FBIZOBJID FBIZOBJID"); |
||||
queryPendingSqlBuf.append(",e.fname_l2 ename"); |
||||
queryPendingSqlBuf.append(" FROM T_WFR_Assign a"); |
||||
queryPendingSqlBuf.append(" INNER JOIN T_BAS_AssignRead b ON a.FASSIGNID = b.FASSIGNID"); |
||||
queryPendingSqlBuf.append(" JOIN T_PM_User last ON b.FPriorPerformerID = last.FID"); |
||||
queryPendingSqlBuf.append(" JOIN T_PM_User d ON b.FSenderId = d.FID"); |
||||
queryPendingSqlBuf.append(" JOIN T_PM_User e ON a.FPERSONUSERID = e.FID"); |
||||
queryPendingSqlBuf.append(" WHERE a.FIsSendMsg = 1 and a.CFISSYS is null and e.Fnumber not in ('user','administrator')"); |
||||
String queryPend = queryPendingSqlBuf.toString(); |
||||
if(null != data && !"".equals(data)){ |
||||
queryPend = queryPend + " and a.FCREATEDTIME >= '"+ data + "'"; |
||||
} |
||||
System.out.println("查询待办SQL:" + queryPend); |
||||
IRowSet queryPendingRows = DbUtil.executeQuery(ctx, queryPend); |
||||
System.out.println("待办发送条数:" + queryPendingRows.size()); |
||||
System.out.println("userQueryTime===================" + new Date()); |
||||
System.out.println("开始推送时间===================" + new Date()); |
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
while(queryPendingRows.next()){ |
||||
Map<String, Object> queryPendingMap = new HashMap<String, Object>(); |
||||
String taskId = queryPendingRows.getString("SOURCEID"); |
||||
queryPendingMap.put("syscode", "SHR");//异构系统标识
|
||||
queryPendingMap.put("flowid", taskId);// 流程ID
|
||||
queryPendingMap.put("requestname", queryPendingRows.getString("TITLE"));// 标题
|
||||
queryPendingMap.put("workflowname", queryPendingRows.getString("PROCDEFNAME"));// 流程类型名称
|
||||
queryPendingMap.put("nodename", "1");// 步骤名称
|
||||
String url = getUrl(queryPendingRows.getString("RECEIVERNUMBER"),taskId) ; |
||||
queryPendingMap.put("pcurl",url);// pc地址
|
||||
|
||||
|
||||
String FBIZOBJID = queryPendingRows.getString("FBIZOBJID");// 业务对象内码
|
||||
//String rcvNum = queryPendingRows.getString("RECEIVERNUMBER"); //暂时设置为0003
|
||||
String rcvNum = "0003"; |
||||
String receiverNumberBase = Base64.encode(rcvNum.getBytes()); |
||||
String mbosUrl = getUrl(taskId, EID, "https://mbos.kdeascloud.com/mbos/page/loadPage?", "10036", ctx,FBIZOBJID); |
||||
mbosUrl = mbosUrl+"&token="+receiverNumberBase+"&isOtherApp=true&path=lczs2"; |
||||
|
||||
System.out.println("mbos ========"+mbosUrl); |
||||
queryPendingMap.put("appurl", mbosUrl);//app地址
|
||||
queryPendingMap.put("isremark", "0");// 状态 0:未办理;2:已办理
|
||||
queryPendingMap.put("viewtype", "0");// 流程查看状态
|
||||
//创建人,先设置为0003
|
||||
String cjrNumber = queryPendingRows.getString("SENDERNUMBER"); |
||||
String cjr = cjrNumber.substring(0, 1); |
||||
if(cjr.equals("1")||cjr.equals("2")){ |
||||
cjrNumber=cjrNumber.substring(1, cjrNumber.length()); |
||||
} |
||||
queryPendingMap.put("creator", "0003"); |
||||
//接收人,接收人先设置为0003
|
||||
String jsrNumber = queryPendingRows.getString("RECEIVERNUMBER"); |
||||
String substring = jsrNumber.substring(0, 1); |
||||
if(substring.equals("1")||substring.equals("2")){ |
||||
jsrNumber=jsrNumber.substring(1, jsrNumber.length()); |
||||
} |
||||
queryPendingMap.put("receiver", "0003");// 接收人ID
|
||||
Date createTime = queryPendingRows.getDate("RECEIVETIME"); |
||||
queryPendingMap.put("createdatetime", sdf.format(createTime));// 流程创建时间
|
||||
queryPendingMap.put("receivedatetime", sdf.format(createTime));// 接受日期
|
||||
queryPendingMap.put("receivets",new Date().getTime()+"");// 时间戳
|
||||
System.out.println("待办发送数据(" + new Date().getTime() + "):"+ JSONObject.fromObject(queryPendingMap).toString()); |
||||
try{ |
||||
String resultMsgDataStr = HttpRequestUtil.sendPost(ROOT_URL ,JSONObject.fromObject(queryPendingMap).toString(), "json"); |
||||
System.out.println("待办接口返回信息(" + new Date().getTime() + ")"+ resultMsgDataStr); |
||||
JSONObject resultData = JSONObject.fromObject(resultMsgDataStr); |
||||
if(resultData.getString("operResult").equals("1")){ |
||||
//待更新表T_WFR_Assign 状态
|
||||
DbUtil.execute(ctx,"update T_WFR_Assign set CFISSYS = 0 where FASSIGNID = '"+ taskId + "'"); |
||||
}else{ |
||||
String resultDataArr = resultData.get("messgae")==null?"":resultData.get("messgae").toString(); |
||||
System.out.println("发送打回待办任务失败,失败原因为:"+ resultDataArr); |
||||
} |
||||
}catch(Exception e){ |
||||
e.printStackTrace(); |
||||
System.out.println(e.getMessage()); |
||||
} |
||||
} |
||||
System.out.println("end推送时间===================" + new Date()); |
||||
}catch(SQLException e){ |
||||
e.printStackTrace(); |
||||
System.out.println(e.getMessage()); |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
private static String getUrl(String username ,String assignid) { |
||||
String url =""; |
||||
url=SHR_ROOT_URL+"/portal/index2sso.jsp?username="+username+"&billType=1&redirectTo="+URLEncoder.encode(SHR_ROOT_URL+"/easweb/webviews/workflow/transferApprove.jsp?AssignmentId="+assignid); |
||||
return url; |
||||
} |
||||
private static String getMobileUrl(String username ,String assignid,String procInId){ |
||||
return SHR_ROOT_URL+"/approve/#/ApproveApp/ApvDetail?assignId="+assignid+"&receiverId="+username+"&procInstId="+procInId; |
||||
} |
||||
public Map<String, Object> getValue(String fileName) { |
||||
if(!fileName.contains(".properties")){ |
||||
fileName += ".properties"; |
||||
} |
||||
Map<String, Object> map = new HashMap<String, Object>(); |
||||
Properties properties = new Properties(); |
||||
InputStream in = null; |
||||
try{ |
||||
in = new BufferedInputStream(new FileInputStream(System.getProperty("EAS_HOME")+ "/server/properties/" + fileName)); |
||||
properties.load(in); |
||||
for(Object key : properties.keySet()){ |
||||
String keyStr = key.toString(); |
||||
String value = properties.getProperty(keyStr); |
||||
map.put(keyStr, value); |
||||
} |
||||
}catch(Exception e){ |
||||
e.printStackTrace(); |
||||
System.out.println(e.getMessage()); |
||||
}finally{ |
||||
if(in != null){ |
||||
try{ |
||||
in.close(); |
||||
}catch(IOException e){ |
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
private String getUrl(String assignid, String eid, String host, String appId,Context ctx,String billId) |
||||
throws BOSException { |
||||
String newEid =EID; |
||||
//logger.info("XT Message newEidnewEid=" + newEid);
|
||||
String url = host; |
||||
IEnactmentService svc = EnactmentServiceFactory.createEnactService(ctx); |
||||
AssignmentInfo info = svc.getAssignmentById(assignid); |
||||
if(host.indexOf("?") > -1){ |
||||
String actdef = info.getActDefId(); |
||||
System.out.println("actdef==================="+actdef); |
||||
String procdef = info.getProcDefId(); |
||||
System.out.println("procdef==================="+procdef); |
||||
String mbosUrl = getMbosUrl(procdef, actdef,ctx); |
||||
System.out.println("mbosUrl=================="+mbosUrl); |
||||
if(!(StringUtils.isEmpty(mbosUrl))){ |
||||
mbosUrl = mbosUrl.replace("page/loadPage","mbosw/getWorkflowUrl"); |
||||
url = mbosUrl + "&eid=" + newEid + "&assignId=" + assignid+ "&appid=" + appId + "&billID="+URLEncoder.encode(billId); |
||||
return url; |
||||
} |
||||
} |
||||
if(host.indexOf("?") > -1) |
||||
//url = url + "&storeEid=K172K145K108K99K97&name=approveui.navui&eid=" + newEid+ "&assignId=" + assignid + "&appid=" + appId;
|
||||
url = url + "storeEid=K172K145K108K99K97&name=approveui.navui&eid=" + newEid+ "&assignId=" + assignid + "&appid=" + appId; |
||||
else{ |
||||
url = url + "/dealWithNotice.html?eid=" + newEid + "&assignId="+ assignid + "&appid=" + appId; |
||||
} |
||||
return url; |
||||
} |
||||
|
||||
private String getMbosUrl(String procid, String actDefId,Context ctx) { |
||||
String url = ""; |
||||
try{ |
||||
StringBuffer sql = new StringBuffer("SELECT url FROM T_WFR_MBOS_WORKFLOW "); |
||||
if(!(StringUtils.isEmpty(actDefId))){ |
||||
sql.append(" WHERE actDefId in ('" + actDefId + "')"); |
||||
} |
||||
if(!(StringUtils.isEmpty(procid))){ |
||||
sql.append(" and procdefid in ('" + procid + "')"); |
||||
} |
||||
IRowSet rowSet = DbUtil.executeQuery(ctx, sql.toString()); |
||||
if(rowSet.next()){ |
||||
url = rowSet.getString("url"); |
||||
} |
||||
}catch(Exception e){ |
||||
//logger.error(e.getMessage(), e);
|
||||
} |
||||
return url; |
||||
} |
||||
/** |
||||
* 已办消息推送到OA |
||||
*/ |
||||
@Override |
||||
public String sendDoneMsg(Context ctx, String data) throws BOSException, EASBizException { |
||||
// TODO 自动生成的方法存根
|
||||
StringBuffer queryUpdatePendSqlBuf = new StringBuffer(" /*dialect*/ SELECT "); |
||||
queryUpdatePendSqlBuf.append("a.FASSIGNID"); |
||||
queryUpdatePendSqlBuf.append(",a.FPROCINSTID"); |
||||
queryUpdatePendSqlBuf.append(",a.FSTATE AFSTATE"); |
||||
queryUpdatePendSqlBuf.append(",a.FSUBJECT_l2 TITLE"); |
||||
queryUpdatePendSqlBuf.append(",e.FNUMBER RECEIVERNUMBER"); |
||||
queryUpdatePendSqlBuf.append(",a.fprocdefname_l2 PROCDEFNAME"); |
||||
queryUpdatePendSqlBuf.append(",d.fnumber SENDERNUMBER"); |
||||
queryUpdatePendSqlBuf.append(",a.fcreatedtime RECEIVETIME"); |
||||
queryUpdatePendSqlBuf.append(",b.FSTATE"); |
||||
queryUpdatePendSqlBuf.append(",c.FISPASS"); |
||||
queryUpdatePendSqlBuf.append(",a.FBIZOBJID FBIZOBJID"); |
||||
queryUpdatePendSqlBuf.append(" FROM t_wfr_AssignDetail a"); |
||||
queryUpdatePendSqlBuf.append(" JOIN T_WFR_ProcInst b ON a.FPROCINSTID = b.FPROCINSTID"); |
||||
queryUpdatePendSqlBuf.append(" LEFT JOIN T_BAS_MultiApprove c ON a.FASSIGNID = c.FASSIGNMENTID"); |
||||
queryUpdatePendSqlBuf.append(" JOIN T_PM_User e ON a.FPERSONUSERID = e.FID"); |
||||
queryUpdatePendSqlBuf.append(" JOIN T_PM_User d ON a.fpriorperformer = d.FID"); |
||||
queryUpdatePendSqlBuf.append(" WHERE (a.FSTATE = 16 OR a.FSTATE = 4) AND a.CFISSYS is null and e.Fnumber not in ('user','administrator')"); |
||||
this.sendDone(ctx, queryUpdatePendSqlBuf); |
||||
return null; |
||||
} |
||||
private int sendDone(Context ctx, StringBuffer queryUpdatePendSqlBuf)throws BOSException |
||||
{ |
||||
System.out.println("查询已办SQL:" + queryUpdatePendSqlBuf.toString()); |
||||
IRowSet queryUpfatePendRows = DbUtil.executeQuery(ctx,queryUpdatePendSqlBuf.toString()); |
||||
System.out.println("已办发送条数:" + queryUpfatePendRows.size()); |
||||
try{ |
||||
System.out.println("开始推送时间===================" + new Date()); |
||||
while(queryUpfatePendRows.next()){ |
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
Map<String, Object> queryPendingMap = new HashMap<String, Object>(); |
||||
String taskId = queryUpfatePendRows.getString("FASSIGNID"); |
||||
queryPendingMap.put("syscode", "SHR");//异构系统标识
|
||||
queryPendingMap.put("flowid", taskId);// 流程ID
|
||||
queryPendingMap.put("requestname", queryUpfatePendRows.getString("TITLE"));// 标题
|
||||
queryPendingMap.put("workflowname", queryUpfatePendRows.getString("PROCDEFNAME"));// 流程类型名称
|
||||
queryPendingMap.put("nodename", "1");// 步骤名称
|
||||
queryPendingMap.put("viewtype", "0");// 流程查看状态
|
||||
String cjrNumber = queryUpfatePendRows.getString("SENDERNUMBER"); |
||||
//queryPendingMap.put("creator", cjrNumber);// 创建人 暂时设置成0003
|
||||
queryPendingMap.put("creator", "0003"); |
||||
String jsrNumber = queryUpfatePendRows.getString("RECEIVERNUMBER"); |
||||
//queryPendingMap.put("receiver", jsrNumber);// 接收人ID 暂时设置成0003
|
||||
queryPendingMap.put("receiver", "0003"); |
||||
Date createTime = queryUpfatePendRows.getDate("RECEIVETIME"); |
||||
queryPendingMap.put("createdatetime", sdf.format(createTime));// 流程创建时间
|
||||
queryPendingMap.put("receivedatetime", sdf.format(createTime));// 接受日期
|
||||
queryPendingMap.put("isremark", "2"); |
||||
queryPendingMap.put("receivets",new Date().getTime()+"");// 时间戳
|
||||
String billType="2"; |
||||
String url = getUrl(queryUpfatePendRows.getString("RECEIVERNUMBER"),taskId) ; |
||||
queryPendingMap.put("pcurl",url);// pc地址
|
||||
String FBIZOBJID = queryUpfatePendRows.getString("FBIZOBJID");// 业务对象内码
|
||||
|
||||
//String rcvNum = queryPendingRows.getString("RECEIVERNUMBER"); //暂时设置为0003
|
||||
String rcvNum = "0003"; |
||||
String receiverNumberBase = Base64.encode(rcvNum.getBytes()); |
||||
String mbosUrl = getUrl(taskId, EID, "https://mbos.kdeascloud.com/mbos/page/loadPage?", "10036", ctx,FBIZOBJID); |
||||
mbosUrl = mbosUrl+"&token="+receiverNumberBase+"&isOtherApp=true&path=lczs2"; |
||||
System.out.println("mbos ========"+mbosUrl); |
||||
//logger.info("======mbosUrl===="+mbosUrl);
|
||||
queryPendingMap.put("appurl", mbosUrl);// app地址
|
||||
System.out.println("已办发送数据("+ new Date().getTime()+ "):"+ JSONObject.fromObject(queryPendingMap).toString()); |
||||
//logger.info("已办发送数据"+ JSONObject.fromObject(queryPendingMap).toString());
|
||||
String resultDataStr = HttpRequestUtil.sendPost(ROOT_URL, JSONObject.fromObject(queryPendingMap).toString(), "json"); |
||||
System.out.println("已办接口返回信息(" + new Date().getTime()+ "):" + resultDataStr); |
||||
//logger.info("已办接口返回信息"+ resultDataStr);
|
||||
JSONObject resultData = JSONObject.fromObject(resultDataStr); |
||||
if(resultData.get("operResult").equals("1")){ |
||||
DbUtil.execute(ctx,"update t_wfr_AssignDetail set CFISSYS = 0 where FASSIGNID = '"+ taskId + "'"); |
||||
System.out.println("成功发送一条已办"); |
||||
}else{ |
||||
String resultDataArr = resultData.get("messgae")==null?"":resultData.get("messgae").toString(); |
||||
System.out.println("发送打回待办任务失败,失败原因为:"+ resultDataArr); |
||||
} |
||||
} |
||||
int size = queryUpfatePendRows.size(); |
||||
return size; |
||||
}catch(SQLException e){ |
||||
e.printStackTrace(); |
||||
System.out.println(e.getMessage()); |
||||
return -1; |
||||
}catch(Exception e){ |
||||
e.printStackTrace(); |
||||
System.out.println(e.getMessage()); |
||||
return -1; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
import com.kingdee.bos.BOSException; |
||||
import com.kingdee.bos.BOSObjectFactory; |
||||
import com.kingdee.bos.util.BOSObjectType; |
||||
import com.kingdee.bos.Context; |
||||
|
||||
public class RishengPendingMessageFacadeFactory |
||||
{ |
||||
private RishengPendingMessageFacadeFactory() |
||||
{ |
||||
} |
||||
public static com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade getRemoteInstance() throws BOSException |
||||
{ |
||||
return (com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade)BOSObjectFactory.createRemoteBOSObject(new BOSObjectType("4FA99C68") ,com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade.class); |
||||
} |
||||
|
||||
public static com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade getRemoteInstanceWithObjectContext(Context objectCtx) throws BOSException |
||||
{ |
||||
return (com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade)BOSObjectFactory.createRemoteBOSObjectWithObjectContext(new BOSObjectType("4FA99C68") ,com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade.class, objectCtx); |
||||
} |
||||
public static com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade getLocalInstance(Context ctx) throws BOSException |
||||
{ |
||||
return (com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade)BOSObjectFactory.createBOSObject(ctx, new BOSObjectType("4FA99C68")); |
||||
} |
||||
public static com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade getLocalInstance(String sessionID) throws BOSException |
||||
{ |
||||
return (com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade)BOSObjectFactory.createBOSObject(sessionID, new BOSObjectType("4FA99C68")); |
||||
} |
||||
} |
@ -0,0 +1,45 @@
@@ -0,0 +1,45 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
import java.util.Locale; |
||||
|
||||
import org.apache.log4j.Logger; |
||||
|
||||
import net.sf.json.JSONObject; |
||||
|
||||
import com.kingdee.bos.BOSException; |
||||
import com.kingdee.bos.Context; |
||||
import com.kingdee.bos.dao.ormapping.ObjectUuidPK; |
||||
import com.kingdee.bos.workflow.message.AssignmentCreationEvent; |
||||
import com.kingdee.eas.base.message.app.ITaskHandler; |
||||
import com.kingdee.eas.common.EASBizException; |
||||
|
||||
public class SendTodoMessageTaskHandler implements ITaskHandler { |
||||
|
||||
|
||||
private static Logger logger = |
||||
Logger.getLogger("com.kingdee.eas.custom.risheng.SendTodoMessageTaskHandler"); |
||||
@Override |
||||
public void execute(AssignmentCreationEvent e) { |
||||
// TODO Auto-generated method stub
|
||||
logger.error("·½·¨½øÁËassignmentId:"+e.assignmentId); |
||||
JSONObject data = new JSONObject(); |
||||
|
||||
String databaseCenter = e.databaseCenter; |
||||
String solution = e.solution; |
||||
Context ctx = new Context(new ObjectUuidPK(),solution,databaseCenter,new Locale("l2")); |
||||
|
||||
data.put("data", null); |
||||
data.put("assignmentId", e.assignmentId); |
||||
logger.error("SendTodoMessageTaskHandler:"+data.toString()); |
||||
try { |
||||
RishengPendingMessageFacadeFactory.getLocalInstance(ctx).sendPendingMsg(null); |
||||
} catch (EASBizException e1) { |
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace(); |
||||
} catch (BOSException e1) { |
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace(); |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
public class SyncDataFacade { |
||||
|
||||
public static SyncHRDataInterface SyncDataFacade(String type){ |
||||
SyncHRDataInterface syncHRDataInterface = null; |
||||
if(type!=null) { |
||||
switch (type) { |
||||
case "fwoa": |
||||
syncHRDataInterface = new FWOASyncHrData(); |
||||
break; |
||||
case "hk": |
||||
syncHRDataInterface = new HKSyncHrData(); |
||||
break; |
||||
default: |
||||
break; |
||||
} |
||||
} |
||||
return syncHRDataInterface; |
||||
} |
||||
} |
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
package com.kingdee.eas.custom.risheng; |
||||
|
||||
import java.util.Map; |
||||
|
||||
public interface SyncHRDataInterface { |
||||
public String syncAdminOrg(String data,String surl); |
||||
public String syncPerson(String data,String surl); |
||||
public String syncPosition(String data,String surl); |
||||
} |
@ -0,0 +1,408 @@
@@ -0,0 +1,408 @@
|
||||
package com.kingdee.eas.custom.risheng.util; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.HashMap; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import java.util.Map.Entry; |
||||
|
||||
import org.apache.commons.httpclient.HttpStatus; |
||||
import org.apache.commons.logging.Log; |
||||
import org.apache.commons.logging.LogFactory; |
||||
import org.apache.http.HttpEntity; |
||||
import org.apache.http.client.config.RequestConfig; |
||||
import org.apache.http.client.methods.CloseableHttpResponse; |
||||
import org.apache.http.client.methods.HttpGet; |
||||
import org.apache.http.client.methods.HttpPost; |
||||
import org.apache.http.entity.StringEntity; |
||||
import org.apache.http.impl.client.CloseableHttpClient; |
||||
import org.apache.http.impl.client.HttpClients; |
||||
import org.apache.http.protocol.BasicHttpContext; |
||||
import org.apache.http.util.EntityUtils; |
||||
|
||||
import com.alibaba.fastjson.JSONObject; |
||||
|
||||
import java.io.IOException; |
||||
|
||||
import org.apache.http.NameValuePair; |
||||
import org.apache.http.client.entity.UrlEncodedFormEntity; |
||||
import org.apache.http.message.BasicNameValuePair; |
||||
|
||||
public class HttpRequestSecUtil { |
||||
|
||||
private static final Log log = LogFactory.getLog(HttpRequestSecUtil.class); |
||||
|
||||
public static String sendPost(String url, String content) throws Exception { |
||||
return sendPost(url,content,"json"); |
||||
|
||||
} |
||||
public static String sendPost(String url, String content, Map<String, String> headMap) throws Exception { |
||||
return sendPostAndHeader(url,content,"json",headMap); |
||||
} |
||||
|
||||
public static String sendPost(String url, String content, String contentType, Map<String, String> headMap) throws Exception { |
||||
return sendPostAndHeader(url,content,contentType,headMap); |
||||
} |
||||
|
||||
public static String sendPostJson(String url, String content,String contentType) throws Exception { |
||||
log.info(url.toString()); |
||||
CloseableHttpClient httpClient = null; |
||||
HttpPost httpPost = null; |
||||
CloseableHttpResponse httpResponse = null; |
||||
try { |
||||
httpClient = HttpClients.createDefault(); |
||||
int CONNECTION_TIMEOUT = 10 * 1000; |
||||
RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(CONNECTION_TIMEOUT).setConnectTimeout(CONNECTION_TIMEOUT).setSocketTimeout(CONNECTION_TIMEOUT).build(); |
||||
httpPost = new HttpPost(url); |
||||
httpPost.setConfig(requestConfig); |
||||
if("json".equals(contentType)) |
||||
{ |
||||
httpPost.addHeader("Content-Type", "application/json"); |
||||
httpPost.addHeader("Accept", "application/json"); |
||||
} |
||||
else |
||||
{ |
||||
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded"); |
||||
} |
||||
StringEntity requestEntity = new StringEntity(content, "UTF-8"); |
||||
httpPost.setEntity(requestEntity); |
||||
httpResponse = httpClient.execute(httpPost, new BasicHttpContext()); |
||||
HttpEntity entity = httpResponse.getEntity(); |
||||
if(entity != null) { |
||||
String resultStr = EntityUtils.toString(entity, "UTF-8"); |
||||
return resultStr; |
||||
} |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} finally { |
||||
if(httpResponse != null) { |
||||
try { |
||||
httpResponse.close(); |
||||
} catch(Exception e) { |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
if(httpPost != null) { |
||||
try { |
||||
httpPost.releaseConnection(); |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
if(httpClient != null) { |
||||
try { |
||||
httpClient.close(); |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
public static String sendPost(String url, String content,String contentType) throws Exception { |
||||
log.info(url); |
||||
CloseableHttpClient httpClient = null; |
||||
HttpPost httpPost = null; |
||||
CloseableHttpResponse httpResponse = null; |
||||
String resulrCode = ""; |
||||
try { |
||||
httpClient = HttpClients.createDefault(); |
||||
int CONNECTION_TIMEOUT = 10 * 1000; |
||||
RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(CONNECTION_TIMEOUT).setConnectTimeout(CONNECTION_TIMEOUT).setSocketTimeout(CONNECTION_TIMEOUT).build(); |
||||
httpPost = new HttpPost(url); |
||||
httpPost.setConfig(requestConfig); |
||||
if("json".equals(contentType)) |
||||
{ |
||||
httpPost.addHeader("Content-Type", "application/json"); |
||||
httpPost.addHeader("Accept", "application/json"); |
||||
//httpPost.addHeader("Authorization", "Bearer "+SrmUtil.getToken());
|
||||
} |
||||
else |
||||
{ |
||||
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded"); |
||||
} |
||||
StringEntity requestEntity = new StringEntity(content, "UTF-8"); |
||||
httpPost.setEntity(requestEntity); |
||||
httpResponse = httpClient.execute(httpPost, new BasicHttpContext()); |
||||
int code = httpResponse.getStatusLine().getStatusCode(); |
||||
resulrCode = String.valueOf(code); |
||||
if(code != HttpStatus.SC_OK){ |
||||
return resulrCode; |
||||
|
||||
} |
||||
HttpEntity entity = httpResponse.getEntity(); |
||||
if(entity != null) { |
||||
String resultStr = EntityUtils.toString(entity, "UTF-8"); |
||||
return resultStr; |
||||
} |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} finally { |
||||
if(httpResponse != null) { |
||||
try { |
||||
httpResponse.close(); |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
if(httpPost != null) { |
||||
try { |
||||
httpPost.releaseConnection(); |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
if(httpClient != null) { |
||||
try { |
||||
httpClient.close(); |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
} |
||||
return resulrCode; |
||||
} |
||||
|
||||
|
||||
|
||||
public static String sendPostAndHeader(String url, String content,String contentType, Map<String, String> headMap) throws Exception { |
||||
log.info(url); |
||||
CloseableHttpClient httpClient = null; |
||||
HttpPost httpPost = null; |
||||
CloseableHttpResponse httpResponse = null; |
||||
String resulrCode = ""; |
||||
try { |
||||
httpClient = HttpClients.createDefault(); |
||||
int CONNECTION_TIMEOUT = 100 * 1000; |
||||
RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(CONNECTION_TIMEOUT).setConnectTimeout(CONNECTION_TIMEOUT).setSocketTimeout(CONNECTION_TIMEOUT).build(); |
||||
httpPost = new HttpPost(url); |
||||
httpPost.setConfig(requestConfig); |
||||
if("json".equals(contentType)) |
||||
{ |
||||
httpPost.addHeader("Content-Type", "application/json"); |
||||
httpPost.addHeader("Accept", "application/json"); |
||||
//httpPost.addHeader("Authorization", "Bearer "+SrmUtil.getToken());
|
||||
StringEntity requestEntity = new StringEntity(content, "UTF-8"); |
||||
httpPost.setEntity(requestEntity); |
||||
|
||||
System.out.println("json----post+headMap.toString()"); |
||||
} |
||||
else |
||||
{ |
||||
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded"); |
||||
List<NameValuePair> nvps = new ArrayList<NameValuePair>(); |
||||
JSONObject object = JSONObject.parseObject(content); |
||||
for (Entry<String, Object> entry : object.entrySet()) { |
||||
nvps.add(new BasicNameValuePair(entry.getKey(), entry.getValue().toString())); |
||||
} |
||||
|
||||
httpPost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8")); |
||||
System.out.println(contentType+"----post+headMap.toString()"); |
||||
} |
||||
//
|
||||
if(headMap!=null){ |
||||
for (String sourceKey : headMap.keySet()) { |
||||
httpPost.addHeader(sourceKey, headMap.get(sourceKey)); |
||||
} |
||||
} |
||||
|
||||
//
|
||||
httpResponse = httpClient.execute(httpPost, new BasicHttpContext()); |
||||
int code = httpResponse.getStatusLine().getStatusCode(); |
||||
resulrCode = String.valueOf(code); |
||||
if(code != HttpStatus.SC_OK){ |
||||
return resulrCode; |
||||
|
||||
} |
||||
HttpEntity entity = httpResponse.getEntity(); |
||||
if(entity != null) { |
||||
String resultStr = EntityUtils.toString(entity, "UTF-8"); |
||||
return resultStr; |
||||
} |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} finally { |
||||
if(httpResponse != null) { |
||||
try { |
||||
httpResponse.close(); |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
if(httpPost != null) { |
||||
try { |
||||
httpPost.releaseConnection(); |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
if(httpClient != null) { |
||||
try { |
||||
httpClient.close(); |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
} |
||||
return resulrCode; |
||||
} |
||||
|
||||
|
||||
public static String sendGet(String url) { |
||||
CloseableHttpClient httpClient = null; |
||||
HttpGet httpGet = null; |
||||
CloseableHttpResponse httpResponse = null; |
||||
try { |
||||
httpClient = HttpClients.createDefault(); |
||||
int CONNECTION_TIMEOUT = 10 * 1000; |
||||
RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(CONNECTION_TIMEOUT).setConnectTimeout(CONNECTION_TIMEOUT).setSocketTimeout(CONNECTION_TIMEOUT).build(); |
||||
httpGet = new HttpGet(url); |
||||
httpGet.setConfig(requestConfig); |
||||
httpGet.addHeader("Content-Type", "application/json"); |
||||
httpGet.addHeader("Accept", "application/json"); |
||||
httpResponse = httpClient.execute(httpGet, new BasicHttpContext()); |
||||
HttpEntity entity = httpResponse.getEntity(); |
||||
if(entity != null) { |
||||
String resultStr = EntityUtils.toString(entity, "UTF-8"); |
||||
//JSONObject result = JSONObject.parseObject(resultStr);
|
||||
return resultStr; |
||||
} |
||||
} catch(Exception e) { |
||||
// log.error("", e);
|
||||
} finally { |
||||
if(httpResponse != null) { |
||||
try { |
||||
httpResponse.close(); |
||||
} catch(Exception e) { |
||||
} |
||||
} |
||||
if(httpGet != null) { |
||||
try { |
||||
httpGet.releaseConnection(); |
||||
} catch(Exception e) { |
||||
} |
||||
} |
||||
if(httpClient != null) { |
||||
try { |
||||
httpClient.close(); |
||||
} catch(Exception e) { |
||||
} |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
// public static String sendPost(String url, String content,String contentType) throws Exception {
|
||||
// log.info(url);
|
||||
// CloseableHttpClient httpClient = null;
|
||||
// HttpPost httpPost = null;
|
||||
// CloseableHttpResponse httpResponse = null;
|
||||
// String resulrCode = "";
|
||||
// try {
|
||||
// httpClient = HttpClients.createDefault();
|
||||
// int CONNECTION_TIMEOUT = 10 * 1000;
|
||||
// RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(CONNECTION_TIMEOUT).setConnectTimeout(CONNECTION_TIMEOUT).setSocketTimeout(CONNECTION_TIMEOUT).build();
|
||||
// httpPost = new HttpPost(url);
|
||||
// httpPost.setConfig(requestConfig);
|
||||
// if("json".equals(contentType))
|
||||
// {
|
||||
// httpPost.addHeader("Content-Type", "application/json");
|
||||
// httpPost.addHeader("Accept", "application/json");
|
||||
// //httpPost.addHeader("Authorization", "Bearer "+SrmUtil.getToken());
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||
// }
|
||||
// StringEntity requestEntity = new StringEntity(content, "UTF-8");
|
||||
// httpPost.setEntity(requestEntity);
|
||||
// httpResponse = httpClient.execute(httpPost, new BasicHttpContext());
|
||||
// int code = httpResponse.getStatusLine().getStatusCode();
|
||||
// resulrCode = String.valueOf(code);
|
||||
// if(code != HttpStatus.SC_OK){
|
||||
// return resulrCode;
|
||||
//
|
||||
// }
|
||||
// HttpEntity entity = httpResponse.getEntity();
|
||||
// if(entity != null) {
|
||||
// String resultStr = EntityUtils.toString(entity, "UTF-8");
|
||||
// return resultStr;
|
||||
// }
|
||||
// } catch(Exception e) {
|
||||
// log.error("", e);
|
||||
// throw new Exception(e);
|
||||
// } finally {
|
||||
// if(httpResponse != null) {
|
||||
// try {
|
||||
// httpResponse.close();
|
||||
// } catch(Exception e) {
|
||||
// log.error("", e);
|
||||
// throw new Exception(e);
|
||||
// }
|
||||
// }
|
||||
// if(httpPost != null) {
|
||||
// try {
|
||||
// httpPost.releaseConnection();
|
||||
// } catch(Exception e) {
|
||||
// log.error("", e);
|
||||
// throw new Exception(e);
|
||||
// }
|
||||
// }
|
||||
// if(httpClient != null) {
|
||||
// try {
|
||||
// httpClient.close();
|
||||
// } catch(Exception e) {
|
||||
// log.error("", e);
|
||||
// throw new Exception(e);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return resulrCode;
|
||||
// }
|
||||
|
||||
public static String doPost(String url, Map<String, String> param) { |
||||
//
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault(); |
||||
CloseableHttpResponse response = null; |
||||
String resultString = ""; |
||||
try { |
||||
//
|
||||
HttpPost httpPost = new HttpPost(url); |
||||
//
|
||||
if (param != null) { |
||||
List<NameValuePair> paramList = new ArrayList<NameValuePair>(); |
||||
for (String key : param.keySet()) { |
||||
paramList.add(new BasicNameValuePair(key, param.get(key))); |
||||
} |
||||
//
|
||||
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList,"utf-8"); |
||||
httpPost.setEntity(entity); |
||||
} |
||||
//
|
||||
response = httpClient.execute(httpPost); |
||||
resultString = EntityUtils.toString(response.getEntity(), "utf-8"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} finally { |
||||
try { |
||||
response.close(); |
||||
} catch (IOException e) { |
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
return resultString; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,245 @@
@@ -0,0 +1,245 @@
|
||||
package com.kingdee.eas.custom.risheng.util; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
|
||||
import org.apache.commons.logging.Log; |
||||
import org.apache.commons.logging.LogFactory; |
||||
import org.apache.http.HttpEntity; |
||||
import org.apache.http.HttpStatus; |
||||
import org.apache.http.client.config.RequestConfig; |
||||
import org.apache.http.client.methods.CloseableHttpResponse; |
||||
import org.apache.http.client.methods.HttpGet; |
||||
import org.apache.http.client.methods.HttpPost; |
||||
|
||||
|
||||
import org.apache.http.entity.StringEntity; |
||||
import org.apache.http.impl.client.CloseableHttpClient; |
||||
import org.apache.http.impl.client.HttpClients; |
||||
import org.apache.http.protocol.BasicHttpContext; |
||||
import org.apache.http.util.EntityUtils; |
||||
|
||||
import java.io.IOException; |
||||
|
||||
import org.apache.http.NameValuePair; |
||||
import org.apache.http.client.entity.UrlEncodedFormEntity; |
||||
import org.apache.http.message.BasicNameValuePair; |
||||
|
||||
public class HttpRequestUtil { |
||||
|
||||
private static final Log log = LogFactory.getLog(HttpRequestUtil.class); |
||||
|
||||
public static String sendPost(String url, String content) throws Exception { |
||||
return sendPost(url,content,"json"); |
||||
|
||||
} |
||||
|
||||
public static String sendPostJson(String url, String content,String contentType) throws Exception { |
||||
log.info(url.toString()); |
||||
CloseableHttpClient httpClient = null; |
||||
HttpPost httpPost = null; |
||||
CloseableHttpResponse httpResponse = null; |
||||
try { |
||||
httpClient = HttpClients.createDefault(); |
||||
int CONNECTION_TIMEOUT = 10 * 1000; |
||||
RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(CONNECTION_TIMEOUT).setConnectTimeout(CONNECTION_TIMEOUT).setSocketTimeout(CONNECTION_TIMEOUT).build(); |
||||
httpPost = new HttpPost(url); |
||||
httpPost.setConfig(requestConfig); |
||||
if("json".equals(contentType)) |
||||
{ |
||||
httpPost.addHeader("Content-Type", "application/json"); |
||||
httpPost.addHeader("Accept", "application/json"); |
||||
} |
||||
else |
||||
{ |
||||
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded"); |
||||
} |
||||
StringEntity requestEntity = new StringEntity(content, "UTF-8"); |
||||
httpPost.setEntity(requestEntity); |
||||
httpResponse = httpClient.execute(httpPost, new BasicHttpContext()); |
||||
HttpEntity entity = httpResponse.getEntity(); |
||||
if(entity != null) { |
||||
String resultStr = EntityUtils.toString(entity, "UTF-8"); |
||||
return resultStr; |
||||
} |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} finally { |
||||
if(httpResponse != null) { |
||||
try { |
||||
httpResponse.close(); |
||||
} catch(Exception e) { |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
if(httpPost != null) { |
||||
try { |
||||
httpPost.releaseConnection(); |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
if(httpClient != null) { |
||||
try { |
||||
httpClient.close(); |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
public static String sendPost(String url, String content,String contentType) throws Exception { |
||||
log.info(url); |
||||
CloseableHttpClient httpClient = null; |
||||
HttpPost httpPost = null; |
||||
CloseableHttpResponse httpResponse = null; |
||||
String resulrCode = ""; |
||||
try { |
||||
httpClient = HttpClients.createDefault(); |
||||
int CONNECTION_TIMEOUT = 10 * 1000; |
||||
RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(CONNECTION_TIMEOUT).setConnectTimeout(CONNECTION_TIMEOUT).setSocketTimeout(CONNECTION_TIMEOUT).build(); |
||||
httpPost = new HttpPost(url); |
||||
httpPost.setConfig(requestConfig); |
||||
if("json".equals(contentType)) |
||||
{ |
||||
httpPost.addHeader("Content-Type", "application/json"); |
||||
httpPost.addHeader("Accept", "application/json"); |
||||
//httpPost.addHeader("Authorization", "Bearer "+SrmUtil.getToken());
|
||||
} |
||||
else |
||||
{ |
||||
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded"); |
||||
} |
||||
StringEntity requestEntity = new StringEntity(content, "UTF-8"); |
||||
httpPost.setEntity(requestEntity); |
||||
httpResponse = httpClient.execute(httpPost, new BasicHttpContext()); |
||||
int code = httpResponse.getStatusLine().getStatusCode(); |
||||
resulrCode = String.valueOf(code); |
||||
if(code != HttpStatus.SC_OK){ |
||||
return resulrCode; |
||||
|
||||
} |
||||
HttpEntity entity = httpResponse.getEntity(); |
||||
if(entity != null) { |
||||
String resultStr = EntityUtils.toString(entity, "UTF-8"); |
||||
return resultStr; |
||||
} |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} finally { |
||||
if(httpResponse != null) { |
||||
try { |
||||
httpResponse.close(); |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
if(httpPost != null) { |
||||
try { |
||||
httpPost.releaseConnection(); |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
if(httpClient != null) { |
||||
try { |
||||
httpClient.close(); |
||||
} catch(Exception e) { |
||||
log.error("", e); |
||||
throw new Exception(e); |
||||
} |
||||
} |
||||
} |
||||
return resulrCode; |
||||
} |
||||
|
||||
public static String sendGet(String url) { |
||||
CloseableHttpClient httpClient = null; |
||||
HttpGet httpGet = null; |
||||
CloseableHttpResponse httpResponse = null; |
||||
try { |
||||
httpClient = HttpClients.createDefault(); |
||||
int CONNECTION_TIMEOUT = 10 * 1000; |
||||
RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(CONNECTION_TIMEOUT).setConnectTimeout(CONNECTION_TIMEOUT).setSocketTimeout(CONNECTION_TIMEOUT).build(); |
||||
httpGet = new HttpGet(url); |
||||
httpGet.setConfig(requestConfig); |
||||
httpGet.addHeader("Content-Type", "application/json"); |
||||
httpGet.addHeader("Accept", "application/json"); |
||||
httpResponse = httpClient.execute(httpGet, new BasicHttpContext()); |
||||
HttpEntity entity = httpResponse.getEntity(); |
||||
if(entity != null) { |
||||
String resultStr = EntityUtils.toString(entity, "UTF-8"); |
||||
//JSONObject result = JSONObject.parseObject(resultStr);
|
||||
return resultStr; |
||||
} |
||||
} catch(Exception e) { |
||||
// log.error("", e);
|
||||
} finally { |
||||
if(httpResponse != null) { |
||||
try { |
||||
httpResponse.close(); |
||||
} catch(Exception e) { |
||||
} |
||||
} |
||||
if(httpGet != null) { |
||||
try { |
||||
httpGet.releaseConnection(); |
||||
} catch(Exception e) { |
||||
} |
||||
} |
||||
if(httpClient != null) { |
||||
try { |
||||
httpClient.close(); |
||||
} catch(Exception e) { |
||||
} |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
|
||||
public static String doPost(String url, Map<String, String> param) { |
||||
// 创建Httpclient对象
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault(); |
||||
CloseableHttpResponse response = null; |
||||
String resultString = ""; |
||||
try { |
||||
// 创建Http Post请求
|
||||
HttpPost httpPost = new HttpPost(url); |
||||
// 创建参数列表
|
||||
if (param != null) { |
||||
List<NameValuePair> paramList = new ArrayList<NameValuePair>(); |
||||
for (String key : param.keySet()) { |
||||
paramList.add(new BasicNameValuePair(key, param.get(key))); |
||||
} |
||||
// 模拟表单
|
||||
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList,"utf-8"); |
||||
httpPost.setEntity(entity); |
||||
} |
||||
// 执行http请求
|
||||
response = httpClient.execute(httpPost); |
||||
resultString = EntityUtils.toString(response.getEntity(), "utf-8"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} finally { |
||||
try { |
||||
response.close(); |
||||
} catch (IOException e) { |
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
return resultString; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,88 @@
@@ -0,0 +1,88 @@
|
||||
package com.kingdee.eas.custom.risheng.webservice; |
||||
|
||||
import org.apache.axis.Message; |
||||
|
||||
import org.apache.axis.MessageContext; |
||||
|
||||
import org.apache.axis.message.SOAPEnvelope; |
||||
|
||||
import org.apache.axis.message.SOAPHeaderElement; |
||||
|
||||
import com.kingdee.bos.webservice.WSConfig; |
||||
|
||||
import com.kingdee.bos.webservice.WSInvokeException; |
||||
import com.kingdee.bos.dao.IObjectPK; |
||||
import com.kingdee.bos.dao.ObjectMultiPK; |
||||
import com.kingdee.bos.dao.ormapping.ObjectUuidPK; |
||||
import com.kingdee.bos.orm.core.ORMEngine; |
||||
import com.kingdee.bos.webservice.BeanConvertHelper; |
||||
import com.kingdee.bos.webservice.BOSTypeConvertor; |
||||
import com.kingdee.bos.util.BOSUuid; |
||||
import com.kingdee.bos.webservice.WSConfig; |
||||
import com.kingdee.bos.webservice.MetaDataHelper; |
||||
import com.kingdee.bos.BOSObjectFactory; |
||||
|
||||
public class WSRishengHaiKangHRFacadeSrvProxy { |
||||
|
||||
public String syncEmpLeavesRestore( String data ) throws WSInvokeException { |
||||
try { |
||||
return getController().syncEmpLeavesRestore( |
||||
data); |
||||
} |
||||
catch( Throwable e ) { |
||||
throw new WSInvokeException( e ) ; |
||||
} |
||||
} |
||||
|
||||
public String syncEmpLeaves( String data ) throws WSInvokeException { |
||||
try { |
||||
return getController().syncEmpLeaves( |
||||
data); |
||||
} |
||||
catch( Throwable e ) { |
||||
throw new WSInvokeException( e ) ; |
||||
} |
||||
} |
||||
|
||||
public String syncAdminOrg( String data ) throws WSInvokeException { |
||||
try { |
||||
return getController().syncAdminOrg( |
||||
data); |
||||
} |
||||
catch( Throwable e ) { |
||||
throw new WSInvokeException( e ) ; |
||||
} |
||||
} |
||||
|
||||
public String syncPerson( String data ) throws WSInvokeException { |
||||
try { |
||||
return getController().syncPerson( |
||||
data); |
||||
} |
||||
catch( Throwable e ) { |
||||
throw new WSInvokeException( e ) ; |
||||
} |
||||
} |
||||
|
||||
private com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade getController() { |
||||
try { |
||||
if (WSConfig.getRomoteLocate()!=null&&WSConfig.getRomoteLocate().equals("false")){ |
||||
Message message =MessageContext.getCurrentContext().getRequestMessage(); |
||||
SOAPEnvelope soap =message.getSOAPEnvelope(); |
||||
SOAPHeaderElement headerElement=soap.getHeaderByName(WSConfig.loginQName,WSConfig.loginSessionId); |
||||
String SessionId=headerElement.getValue(); |
||||
return ( com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade )BOSObjectFactory.createBOSObject( SessionId , "com.kingdee.eas.custom.risheng.RishengHaiKangHRFacade") ; |
||||
} else { |
||||
return ( com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade )BOSObjectFactory.createRemoteBOSObject( WSConfig.getSrvURL() , "com.kingdee.eas.custom.risheng.RishengHaiKangHRFacade" , com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade.class ) ; |
||||
} |
||||
} |
||||
catch( Throwable e ) { |
||||
return ( com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade )ORMEngine.createRemoteObject( WSConfig.getSrvURL() , "com.kingdee.eas.custom.risheng.RishengHaiKangHRFacade" , com.kingdee.eas.custom.risheng.IRishengHaiKangHRFacade.class ) ; |
||||
} |
||||
} |
||||
|
||||
private BeanConvertHelper getBeanConvertor() { |
||||
return new BeanConvertHelper(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,98 @@
@@ -0,0 +1,98 @@
|
||||
package com.kingdee.eas.custom.risheng.webservice; |
||||
|
||||
import org.apache.axis.Message; |
||||
|
||||
import org.apache.axis.MessageContext; |
||||
|
||||
import org.apache.axis.message.SOAPEnvelope; |
||||
|
||||
import org.apache.axis.message.SOAPHeaderElement; |
||||
|
||||
import com.kingdee.bos.webservice.WSConfig; |
||||
|
||||
import com.kingdee.bos.webservice.WSInvokeException; |
||||
import com.kingdee.bos.dao.IObjectPK; |
||||
import com.kingdee.bos.dao.ObjectMultiPK; |
||||
import com.kingdee.bos.dao.ormapping.ObjectUuidPK; |
||||
import com.kingdee.bos.orm.core.ORMEngine; |
||||
import com.kingdee.bos.webservice.BeanConvertHelper; |
||||
import com.kingdee.bos.webservice.BOSTypeConvertor; |
||||
import com.kingdee.bos.util.BOSUuid; |
||||
import com.kingdee.bos.webservice.WSConfig; |
||||
import com.kingdee.bos.webservice.MetaDataHelper; |
||||
import com.kingdee.bos.BOSObjectFactory; |
||||
|
||||
public class WSRishengInterfaceFacadeSrvProxy { |
||||
|
||||
public String syncEmployeeInfo( String data ) throws WSInvokeException { |
||||
try { |
||||
return getController().syncEmployeeInfo( |
||||
data); |
||||
} |
||||
catch( Throwable e ) { |
||||
throw new WSInvokeException( e ) ; |
||||
} |
||||
} |
||||
|
||||
public String syncJoblevelInfo( String data ) throws WSInvokeException { |
||||
try { |
||||
return getController().syncJoblevelInfo( |
||||
data); |
||||
} |
||||
catch( Throwable e ) { |
||||
throw new WSInvokeException( e ) ; |
||||
} |
||||
} |
||||
|
||||
public String syncPositionInfo( String data ) throws WSInvokeException { |
||||
try { |
||||
return getController().syncPositionInfo( |
||||
data); |
||||
} |
||||
catch( Throwable e ) { |
||||
throw new WSInvokeException( e ) ; |
||||
} |
||||
} |
||||
|
||||
public String syncPersonPositionInfo( String data ) throws WSInvokeException { |
||||
try { |
||||
return getController().syncPersonPositionInfo( |
||||
data); |
||||
} |
||||
catch( Throwable e ) { |
||||
throw new WSInvokeException( e ) ; |
||||
} |
||||
} |
||||
|
||||
public String syncAdminOrgInfo( String data ) throws WSInvokeException { |
||||
try { |
||||
return getController().syncAdminOrgInfo( |
||||
data); |
||||
} |
||||
catch( Throwable e ) { |
||||
throw new WSInvokeException( e ) ; |
||||
} |
||||
} |
||||
|
||||
private com.kingdee.eas.custom.risheng.IRishengInterfaceFacade getController() { |
||||
try { |
||||
if (WSConfig.getRomoteLocate()!=null&&WSConfig.getRomoteLocate().equals("false")){ |
||||
Message message =MessageContext.getCurrentContext().getRequestMessage(); |
||||
SOAPEnvelope soap =message.getSOAPEnvelope(); |
||||
SOAPHeaderElement headerElement=soap.getHeaderByName(WSConfig.loginQName,WSConfig.loginSessionId); |
||||
String SessionId=headerElement.getValue(); |
||||
return ( com.kingdee.eas.custom.risheng.IRishengInterfaceFacade )BOSObjectFactory.createBOSObject( SessionId , "com.kingdee.eas.custom.risheng.RishengInterfaceFacade") ; |
||||
} else { |
||||
return ( com.kingdee.eas.custom.risheng.IRishengInterfaceFacade )BOSObjectFactory.createRemoteBOSObject( WSConfig.getSrvURL() , "com.kingdee.eas.custom.risheng.RishengInterfaceFacade" , com.kingdee.eas.custom.risheng.IRishengInterfaceFacade.class ) ; |
||||
} |
||||
} |
||||
catch( Throwable e ) { |
||||
return ( com.kingdee.eas.custom.risheng.IRishengInterfaceFacade )ORMEngine.createRemoteObject( WSConfig.getSrvURL() , "com.kingdee.eas.custom.risheng.RishengInterfaceFacade" , com.kingdee.eas.custom.risheng.IRishengInterfaceFacade.class ) ; |
||||
} |
||||
} |
||||
|
||||
private BeanConvertHelper getBeanConvertor() { |
||||
return new BeanConvertHelper(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,68 @@
@@ -0,0 +1,68 @@
|
||||
package com.kingdee.eas.custom.risheng.webservice; |
||||
|
||||
import org.apache.axis.Message; |
||||
|
||||
import org.apache.axis.MessageContext; |
||||
|
||||
import org.apache.axis.message.SOAPEnvelope; |
||||
|
||||
import org.apache.axis.message.SOAPHeaderElement; |
||||
|
||||
import com.kingdee.bos.webservice.WSConfig; |
||||
|
||||
import com.kingdee.bos.webservice.WSInvokeException; |
||||
import com.kingdee.bos.dao.IObjectPK; |
||||
import com.kingdee.bos.dao.ObjectMultiPK; |
||||
import com.kingdee.bos.dao.ormapping.ObjectUuidPK; |
||||
import com.kingdee.bos.orm.core.ORMEngine; |
||||
import com.kingdee.bos.webservice.BeanConvertHelper; |
||||
import com.kingdee.bos.webservice.BOSTypeConvertor; |
||||
import com.kingdee.bos.util.BOSUuid; |
||||
import com.kingdee.bos.webservice.WSConfig; |
||||
import com.kingdee.bos.webservice.MetaDataHelper; |
||||
import com.kingdee.bos.BOSObjectFactory; |
||||
|
||||
public class WSRishengPendingMessageFacadeSrvProxy { |
||||
|
||||
public String sendDoneMsg( String data ) throws WSInvokeException { |
||||
try { |
||||
return getController().sendDoneMsg( |
||||
data); |
||||
} |
||||
catch( Throwable e ) { |
||||
throw new WSInvokeException( e ) ; |
||||
} |
||||
} |
||||
|
||||
public String sendPendingMsg( String data ) throws WSInvokeException { |
||||
try { |
||||
return getController().sendPendingMsg( |
||||
data); |
||||
} |
||||
catch( Throwable e ) { |
||||
throw new WSInvokeException( e ) ; |
||||
} |
||||
} |
||||
|
||||
private com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade getController() { |
||||
try { |
||||
if (WSConfig.getRomoteLocate()!=null&&WSConfig.getRomoteLocate().equals("false")){ |
||||
Message message =MessageContext.getCurrentContext().getRequestMessage(); |
||||
SOAPEnvelope soap =message.getSOAPEnvelope(); |
||||
SOAPHeaderElement headerElement=soap.getHeaderByName(WSConfig.loginQName,WSConfig.loginSessionId); |
||||
String SessionId=headerElement.getValue(); |
||||
return ( com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade )BOSObjectFactory.createBOSObject( SessionId , "com.kingdee.eas.custom.risheng.RishengPendingMessageFacade") ; |
||||
} else { |
||||
return ( com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade )BOSObjectFactory.createRemoteBOSObject( WSConfig.getSrvURL() , "com.kingdee.eas.custom.risheng.RishengPendingMessageFacade" , com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade.class ) ; |
||||
} |
||||
} |
||||
catch( Throwable e ) { |
||||
return ( com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade )ORMEngine.createRemoteObject( WSConfig.getSrvURL() , "com.kingdee.eas.custom.risheng.RishengPendingMessageFacade" , com.kingdee.eas.custom.risheng.IRishengPendingMessageFacade.class ) ; |
||||
} |
||||
} |
||||
|
||||
private BeanConvertHelper getBeanConvertor() { |
||||
return new BeanConvertHelper(); |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue