@ -32,15 +32,18 @@ public class WorkflowSyncCornJob extends BaseCronJob {
String workflowSyncFormModeId = PropBean . getUfPropValue ( "workflowSyncFormModeId" ) ;
String workflowSyncFormModeId = PropBean . getUfPropValue ( "workflowSyncFormModeId" ) ;
RecordSet rs = new RecordSet ( ) ;
RecordSet rs = new RecordSet ( ) ;
//建模表有效流程id
//建模表有效流程id
String modelWorkflowSql = "SELECT workflowselect,workflowname FROM uf_sync_workflow";
String modelWorkflowSql = "SELECT DISTINCT workflowselect,workflowname,u.cataCodeName FROM uf_sync_workflow w left join uf_syncCataCode u on w.workflowselect=u.flowCode ";
rs . execute ( modelWorkflowSql ) ;
rs . execute ( modelWorkflowSql ) ;
HashSet < String > modeWorkflowSet = new HashSet < > ( ) ;
HashSet < String > modeWorkflowSet = new HashSet < > ( ) ;
HashMap < String , String > modeWorkflowInfo = new HashMap < > ( ) ;
HashMap < String , String > modeWorkflowInfo = new HashMap < > ( ) ;
HashMap < String , String > modeCataCode = new HashMap < > ( ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
String modeWorkFlowId = rs . getString ( "workflowselect" ) ;
String modeWorkFlowId = rs . getString ( "workflowselect" ) ;
String modeWorkFlowName = rs . getString ( "workflowname" ) ;
String modeWorkFlowName = rs . getString ( "workflowname" ) ;
String cataCodeName = Util . null2String ( rs . getString ( "cataCodeName" ) ) ;
modeWorkflowSet . add ( modeWorkFlowId ) ;
modeWorkflowSet . add ( modeWorkFlowId ) ;
modeWorkflowInfo . put ( modeWorkFlowId , modeWorkFlowName ) ;
modeWorkflowInfo . put ( modeWorkFlowId , modeWorkFlowName ) ;
modeCataCode . put ( modeWorkFlowId , cataCodeName ) ;
}
}
//系统有效流程id
//系统有效流程id
@ -59,17 +62,17 @@ public class WorkflowSyncCornJob extends BaseCronJob {
}
}
//控制删除所有流程
//控制删除所有流程
if ( "yes" . equals ( isDeleteAll ) ) {
if ( "yes" . equals ( isDeleteAll ) ) {
syncWorkflow ( ACTION_TYPE_DELETE , workflowSyncFormModeId , workflowSet , modeWorkflowSet , workflowInfo , baseCataCode );
syncWorkflow ( ACTION_TYPE_DELETE , workflowSyncFormModeId , workflowSet , modeWorkflowSet , workflowInfo , baseCataCode , modeCataCode );
}
}
//系统有效流程新增或修改,无法判断流程更改了什么,新增后再更新
//系统有效流程新增或修改,无法判断流程更改了什么,新增后再更新
syncWorkflow ( ACTION_TYPE_ADD , workflowSyncFormModeId , workflowSet , modeWorkflowSet , workflowInfo , baseCataCode );
syncWorkflow ( ACTION_TYPE_ADD , workflowSyncFormModeId , workflowSet , modeWorkflowSet , workflowInfo , baseCataCode , modeCataCode );
syncWorkflow ( ACTION_TYPE_UPDATE , workflowSyncFormModeId , workflowSet , modeWorkflowSet , workflowInfo , baseCataCode );
syncWorkflow ( ACTION_TYPE_UPDATE , workflowSyncFormModeId , workflowSet , modeWorkflowSet , workflowInfo , baseCataCode , modeCataCode );
//建模表的差集需要删除
//建模表的差集需要删除
Set < String > deleteSet = new HashSet < > ( modeWorkflowSet ) ;
Set < String > deleteSet = new HashSet < > ( modeWorkflowSet ) ;
deleteSet . removeAll ( workflowSet ) ;
deleteSet . removeAll ( workflowSet ) ;
if ( deleteSet . size ( ) ! = 0 ) {
if ( deleteSet . size ( ) ! = 0 ) {
syncWorkflow ( ACTION_TYPE_DELETE , workflowSyncFormModeId , deleteSet , modeWorkflowSet , modeWorkflowInfo , baseCataCode );
syncWorkflow ( ACTION_TYPE_DELETE , workflowSyncFormModeId , deleteSet , modeWorkflowSet , modeWorkflowInfo , baseCataCode ,modeCataCode );
}
}
} catch ( Exception e ) {
} catch ( Exception e ) {
logger . info ( "WorkflowSyncModeCornJob:" + e . getMessage ( ) ) ;
logger . info ( "WorkflowSyncModeCornJob:" + e . getMessage ( ) ) ;
@ -106,8 +109,9 @@ public class WorkflowSyncCornJob extends BaseCronJob {
* @param modeWorkflowSet
* @param modeWorkflowSet
* @param workflowInfo 流 程 信 息
* @param workflowInfo 流 程 信 息
* @param baseCataCode
* @param baseCataCode
* @param modeCataCode
* /
* /
private void syncWorkflow ( String actionType , String workflowSyncFormModeId , Set < String > updateOrAddSet , HashSet < String > modeWorkflowSet , HashMap < String , String > workflowInfo , HashMap < String , String > baseCataCode ) {
private void syncWorkflow ( String actionType , String workflowSyncFormModeId , Set < String > updateOrAddSet , HashSet < String > modeWorkflowSet , HashMap < String , String > workflowInfo , HashMap < String , String > baseCataCode , HashMap < String , String > modeCataCode ) {
String center = PropBean . getUfPropValue ( "newWorkflowCenter" ) ;
String center = PropBean . getUfPropValue ( "newWorkflowCenter" ) ;
String bpm_app_workflowurl = PropBean . getUfPropValue ( "bpm_app_workflowurl" ) ;
String bpm_app_workflowurl = PropBean . getUfPropValue ( "bpm_app_workflowurl" ) ;
String synchronizeFlowUrl = PropBean . getUfPropValue ( "synchronizeFlowUrl" ) ;
String synchronizeFlowUrl = PropBean . getUfPropValue ( "synchronizeFlowUrl" ) ;
@ -118,6 +122,9 @@ public class WorkflowSyncCornJob extends BaseCronJob {
List < String > deleteList = new ArrayList < > ( ) ;
List < String > deleteList = new ArrayList < > ( ) ;
for ( String workflowId : updateOrAddSet ) {
for ( String workflowId : updateOrAddSet ) {
String cataCode = baseCataCode . get ( workflowId ) ;
String cataCode = baseCataCode . get ( workflowId ) ;
if ( actionType . equals ( ACTION_TYPE_DELETE ) ) {
cataCode = modeCataCode . get ( workflowId ) ;
}
if ( StringUtils . isEmpty ( cataCode ) ) {
if ( StringUtils . isEmpty ( cataCode ) ) {
continue ;
continue ;
}
}