@ -6,6 +6,7 @@ import org.apache.commons.logging.LogFactory;
import weaver.conn.RecordSet ;
import weaver.general.BaseBean ;
import weaver.general.TimeUtil ;
import weaver.general.Util ;
import weaver.interfaces.dito.comInfo.PropBean ;
import weaver.interfaces.dito.util.HttpUtils ;
import weaver.interfaces.schedule.BaseCronJob ;
@ -62,7 +63,10 @@ public class WorkflowUserCronJob extends BaseCronJob {
while ( rs . next ( ) ) {
String workflowId = rs . getString ( "id" ) ;
String workflowname = rs . getString ( "workflowname" ) ;
String cataCodeName = rs . getString ( "cataCodeName" ) ;
String cataCodeName = Util . null2String ( rs . getString ( "cataCodeName" ) ) ;
if ( StringUtils . isEmpty ( cataCodeName ) ) {
continue ;
}
baseWorkflowIdSet . add ( workflowId ) ;
String userIds = shareManager . getWorkflowCreater ( Integer . parseInt ( workflowId ) ) ;
Set < String > userIdList = new HashSet < > ( Arrays . asList ( userIds . split ( "," ) ) ) ;
@ -98,6 +102,20 @@ public class WorkflowUserCronJob extends BaseCronJob {
}
modeWorkflowMap . put ( workflowId , userIdList ) ;
}
//先比对目录是否有变更,有变更则需修改
HashSet < String > needUpdateWorkflowSet = new HashSet < > ( ) ;
for ( String baseWorkflowId : baseWorkflowCataCode . keySet ( ) ) {
String baseCataCode = baseWorkflowCataCode . get ( baseWorkflowId ) ;
for ( String modeWorkflowId : modeWorkflowCataCode . keySet ( ) ) {
String modeCataCode = modeWorkflowCataCode . get ( modeWorkflowId ) ;
if ( baseWorkflowId . equals ( modeWorkflowId ) & & ! baseCataCode . equals ( modeCataCode ) ) {
needUpdateWorkflowSet . add ( baseWorkflowId ) ;
//更新目录
String updateCataCode = "update uf_workflow_auth set catacode=? where workflowselect=?" ;
rs . executeUpdate ( updateCataCode , baseWorkflowCataCode . get ( baseWorkflowId ) , baseWorkflowId ) ;
}
}
}
/ *
建 模 表 流 程 Set 与 E9 有 效 流 程 Set 取 集
@ -113,7 +131,7 @@ public class WorkflowUserCronJob extends BaseCronJob {
addSet . removeAll ( updateSet ) ;
//人员权限新增同步
if ( addSet . size ( ) ! = 0 ) {
addWorkflow ( bb , addSet , baseWorkflowMap , baseWorkflowName , formModeId) ;
addWorkflow ( bb , addSet , baseWorkflowMap , baseWorkflowName , baseWorkflowCataCode, formModeId) ;
List < List < Map < String , Object > > > addUserList = new LinkedList < > ( ) ;
getUserConditionByWorkflow ( center , addSet , baseWorkflowName , baseWorkflowCataCode , addUserList ) ;
syncUser ( synchronizeUserUrl , addUserList , headers ) ;
@ -122,6 +140,7 @@ public class WorkflowUserCronJob extends BaseCronJob {
//人员权限修改同步
if ( updateSet . size ( ) ! = 0 ) {
HashSet < String > needUpdateSet = updateWorkflow ( bb , updateSet , baseWorkflowMap , modeWorkflowMap , baseWorkflowName , formModeId ) ;
needUpdateSet . addAll ( needUpdateWorkflowSet ) ;
logger . info ( "needUpdateSet-size:" + needUpdateSet . size ( ) ) ;
//先删除流程再重新同步人员权限
if ( needUpdateSet . size ( ) ! = 0 ) {
@ -130,7 +149,7 @@ public class WorkflowUserCronJob extends BaseCronJob {
List < List < Map < String , Object > > > updateUserList = new LinkedList < > ( ) ;
getUserConditionByWorkflow ( center , needUpdateSet , baseWorkflowName , baseWorkflowCataCode , updateUserList ) ;
//重新同步流程及人员权限
syncWorkflowByHttp ( ACTION_TYPE_ADD_USER , center , needUpdateSet , modeWorkflowName , mod eWorkflowCataCode, headers ) ;
syncWorkflowByHttp ( ACTION_TYPE_ADD_USER , center , needUpdateSet , modeWorkflowName , bas eWorkflowCataCode, headers ) ;
syncUser ( synchronizeUserUrl , updateUserList , headers ) ;
}
}
@ -179,18 +198,20 @@ public class WorkflowUserCronJob extends BaseCronJob {
* @param addSet
* @param baseWorkflowMap
* @param baseWorkflowName
* @param baseWorkflowCataCode
* @param formModeId
* /
private void addWorkflow ( BaseBean bb , Set < String > addSet , Map < String , Set < String > > baseWorkflowMap , Map < String , String > baseWorkflowName , String formModeId ) {
private void addWorkflow ( BaseBean bb , Set < String > addSet , Map < String , Set < String > > baseWorkflowMap , Map < String , String > baseWorkflowName , Map< String , String > baseWorkflowCataCode , String formModeId ) {
String staffIdField = PropBean . getUfPropValue ( "staffIdFieldByCus" ) ;
RecordSet rs = new RecordSet ( ) ;
RecordSet rs2 = new RecordSet ( ) ;
String currentDate = TimeUtil . getCurrentDateString ( ) ;
String onlyCurrentTime = TimeUtil . getOnlyCurrentTimeString ( ) ;
String addSql = "INSERT INTO uf_workflow_auth (userselect,effective,formmodeid,modedatacreatedate,modedatacreatetime,workflowselect,workflowname,staffid ) values (?,?,?,?,?,?,?,?)";
String addSql = "INSERT INTO uf_workflow_auth (userselect,effective,formmodeid,modedatacreatedate,modedatacreatetime,workflowselect,workflowname,staffid ,catacode ) values (?, ?,?,?,?,?,?,?,?)";
for ( String workflowId : addSet ) {
List < List > lists = new ArrayList < > ( ) ;
Set < String > userIds = baseWorkflowMap . get ( workflowId ) ;
String cataCode = baseWorkflowCataCode . get ( workflowId ) ;
for ( String addUserId : userIds ) {
String workflowName = baseWorkflowName . get ( workflowId ) ;
String workCodeQuery = "SELECT " + staffIdField + " as staffId FROM cus_fielddata WHERE id=? and SCOPEID=-1" ;
@ -208,6 +229,7 @@ public class WorkflowUserCronJob extends BaseCronJob {
list . add ( workflowId ) ;
list . add ( workflowName ) ;
list . add ( staffId ) ;
list . add ( cataCode ) ;
lists . add ( list ) ;
}
rs . executeBatchSql ( addSql , lists ) ;