1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.workflow.modules.actionsbatch.task;
35
36 import java.util.List;
37 import java.util.Locale;
38
39 import javax.servlet.http.HttpServletRequest;
40
41 import org.apache.commons.collections.CollectionUtils;
42 import org.apache.commons.lang3.StringUtils;
43
44 import fr.paris.lutece.api.user.User;
45 import fr.paris.lutece.plugins.workflow.modules.actionsbatch.service.ActionsBatchService;
46 import fr.paris.lutece.plugins.workflowcore.service.config.ITaskConfigService;
47 import fr.paris.lutece.plugins.workflowcore.service.task.AsynchronousSimpleTask;
48 import fr.paris.lutece.portal.service.i18n.I18nService;
49 import fr.paris.lutece.portal.service.spring.SpringContextService;
50 import fr.paris.lutece.portal.service.util.AppPropertiesService;
51 import fr.paris.lutece.portal.service.workflow.WorkflowService;
52
53
54 public class ActionsBatchTask extends AsynchronousSimpleTask
55 {
56
57
58 private static final String TASK_TITLE = "module.workflow.actionsbatch.title";
59
60
61 private static final ITaskConfigService _taskConfigService = SpringContextService.getBean( "workflow-actionsbatch.actionsBatchTaskConfigService" );
62 private static final WorkflowService _workflowService = WorkflowService.getInstance( );
63
64
65 @Override
66 public void processAsynchronousTask( int parentId, String strResourceType, int nIdResourceHistory, HttpServletRequest request, Locale locale, User user )
67 {
68
69 ActionsBatchTaskConfig config = _taskConfigService.findByPrimaryKey( getId( ) );
70
71 if ( config != null && config.getIdAction( ) > 0 && config.getIdState( ) > 0 && !StringUtils.isBlank( config.getResourceType( ) ) )
72 {
73
74 boolean filterWithExternalParentId = AppPropertiesService.getPropertyBoolean( "actionsbatch.filterWithExternalParentId", false );
75
76
77 List<Integer> listResourceIds ;
78 if ( filterWithExternalParentId )
79 {
80 listResourceIds = _workflowService.getResourceIdListByIdState( config.getIdState( ), config.getResourceType( ), parentId ) ;
81 }
82 else
83 {
84 listResourceIds = _workflowService.getResourceIdListByIdState( config.getIdState( ), config.getResourceType( ) ) ;
85 }
86
87 if ( CollectionUtils.isNotEmpty( listResourceIds ) )
88 {
89 ActionsBatchService.doProcessMassActions( request, config.getResourceType( ), config.getIdAction( ), parentId, locale,
90 user, listResourceIds, true );
91 }
92 }
93
94 }
95
96 @Override
97 public String getTitle( Locale pLocale )
98 {
99 return I18nService.getLocalizedString( TASK_TITLE, pLocale );
100 }
101
102
103 }