The following document contains the results of PMD's CPD 6.13.0.
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/ModifyDraftCategoryTaskComponent.java | 78 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/ModifyTicketCategoryTaskComponent.java | 78 |
private static final String TEMPLATE_TASK_MODIFY_TICKET_CATEGORY_CONFIG = "admin/plugins/workflow/modules/ticketing/task_modify_ticket_category_config.html";
// MARKS
private static final String MARK_CONFIG = "config";
private static final String MARK_CONFIG_ALL_ENTRY = "form_entries";
private static final String MARK_CONFIG_SELECTED_ENTRY = "selected_form_entry";
private static final String MARK_ID_TASK = "id_task";
// Message reply
private static final String MESSAGE_MODIFY_TICKET_ATTRIBUTE_ERROR = "module.workflow.ticketing.task_modify_ticket_attribute.error";
@Inject
private TicketFormService _ticketFormService;
private static final String PROPERTY_ACCOUNT_NUMBER_REGEXP = "module.workflow.ticketingfacilfamilles.workflow.automatic_assignment.accountNumberRegexp";
private static final String PROPERTY_FF_CODE = "module.workflow.ticketingfacilfamilles.workflow.automatic_assignment.accountNumberFieldCode";
private static final String MESSAGE_ERROR_FACIL_EMPTY_VALIDATION = "ticketing.validation.ticket.TicketFacilNumber.size";
private static final String MESSAGE_ERROR_FACIL_REGEX_VALIDATION = "ticketing.validation.ticket.TicketFacilNumber.regex";
/**
* {@inheritDoc}
*/
@Override
public String getDisplayConfigForm( HttpServletRequest request, Locale locale, ITask task )
{
TaskModifyTicketCategoryConfig config = getTaskConfigService( ).findByPrimaryKey( task.getId( ) );
EntryFilter entryFilter = new EntryFilter( );
entryFilter.setResourceType( TicketingConstants.RESOURCE_TYPE_INPUT );
entryFilter.setEntryParentNull( EntryFilter.FILTER_TRUE );
entryFilter.setFieldDependNull( EntryFilter.FILTER_TRUE );
entryFilter.setIdIsComment( EntryFilter.FILTER_FALSE );
List<Entry> lReferenceEntry = EntryHome.getEntryList( entryFilter );
Map<String, Object> model = new HashMap<>( );
model.put( MARK_CONFIG, config );
model.put( MARK_CONFIG_ALL_ENTRY, mergeConfigAndReference( config, lReferenceEntry ) );
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_TASK_MODIFY_TICKET_CATEGORY_CONFIG, locale, model );
return template.getHtml( );
}
private ReferenceList mergeConfigAndReference( TaskModifyTicketCategoryConfig config, List<Entry> lReferenceEntry )
{
ReferenceList refList = new ReferenceList( );
for ( Entry refEntry : lReferenceEntry )
{
ReferenceItem refItem = new ReferenceItem( );
refItem.setCode( Integer.toString( refEntry.getIdEntry( ) ) );
refItem.setName( refEntry.getTitle( ) + " (" + refEntry.getEntryType( ).getTitle( ) + ")" );
refItem.setChecked( config.getSelectedEntries( ).contains( refEntry.getIdEntry( ) ) );
refList.add( refItem );
}
return refList;
}
/**
* {@inheritDoc}
*/
@Override
public String doSaveConfig( HttpServletRequest request, Locale locale, ITask task )
{
TaskModifyTicketCategoryConfig config = getTaskConfigService( ).findByPrimaryKey( task.getId( ) );
String [ ] tSelectedEntries = new String [ ] { };
config.clearSelectedEntries( );
if ( request.getParameterValues( MARK_CONFIG_SELECTED_ENTRY ) != null )
{
tSelectedEntries = request.getParameterValues( MARK_CONFIG_SELECTED_ENTRY );
}
for ( String strSelectedEntry : tSelectedEntries )
{
config.addSelectedEntry( Integer.parseInt( strSelectedEntry ) );
}
getTaskConfigService( ).update( config );
return null;
}
/**
* {@inheritDoc}
*/
@Override
public String getDisplayTaskForm( int nIdResource, String strResourceType, HttpServletRequest request, Locale locale, ITask task )
{
Ticket ticket = getTicket( nIdResource, strResourceType );
_ticketFormService.saveTicketInSession( request.getSession( ), ticket );
Map<String, Object> model = getModel( ticket );
model.put( TicketingConstants.MARK_TICKET_CATEGORIES_TREE, TicketCategoryService.getInstance( true ).getCategoriesTree( ).getTreeJSONObject( ) );
model.put( TicketingConstants.MARK_TICKET_CATEGORIES_DEPTHS, TicketCategoryService.getInstance( true ).getCategoriesTree( ).getDepths( ) );
model.put( MARK_ID_TASK, task.getId( ) );
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_TASK_MODIFY_TICKET_CATEGORY_FORM, locale, model );
return template.getHtml( );
}
/**
* {@inheritDoc}
*/
@Override
public String doValidateTask( int nIdResource, String strResourceType, HttpServletRequest request, Locale locale, ITask task )
{
Ticket ticket = getTicket( nIdResource, strResourceType );
StringBuilder strError = new StringBuilder( StringUtils.EMPTY );
List<String> listErrors = new ArrayList<>( );
TicketCategoryValidatorResult categoryValidatorResult = new TicketCategoryValidator( request, locale ).validateTicketCategory( );
// Check if a category have been selected
if ( !categoryValidatorResult.isTicketCategoryValid( ) )
{
categoryValidatorResult.getListValidationErrors( ).stream( ).forEach( listErrors::add );
}
// Validate the selection of items
if ( categoryValidatorResult.isTicketCategoryValid( ) )
{
List<GenericAttributeError> listFormErrors = new ArrayList<>( );
TaskModifyTicketCategoryConfig config = getTaskConfigService( ).findByPrimaryKey( task.getId( ) );
List<Entry> listEntry = TicketFormService.getFilterInputs( ticket.getTicketCategory( ).getId( ), config.getSelectedEntries( ) );
boolean hasFFError = false;
for ( Entry entry : listEntry )
{
listFormErrors.addAll( _ticketFormService.getResponseEntry( request, entry.getIdEntry( ), request.getLocale( ), ticket ) );
// O2T 79251: contrôle facil'famille
if ( !hasFFError && isDomainFacilFamille( categoryValidatorResult.getTicketCategory( ) ) )
{
for ( GenericAttributeError error : listFormErrors )
{
if ( error.getErrorMessage( ).contains( "Facil'Famille" ) || error.getErrorMessage( ).contains( UtilConstants.CATEGORY_LABEL_PARIS_FAMILLE ) )
{
hasFFError = true;
break;
}
}
if ( !hasFFError && entry.getCode( ).equals( AppPropertiesService.getProperty( PROPERTY_FF_CODE ) ) )
{
String strFacilFamilleNumber = request.getParameter( "attribute" + entry.getIdEntry( ) );
if ( strFacilFamilleNumber != null )
{
if ( strFacilFamilleNumber.trim( ).isEmpty( ) )
{
GenericAttributeError formError = new GenericAttributeError( );
formError.setErrorMessage( I18nService.getLocalizedString( MESSAGE_ERROR_FACIL_EMPTY_VALIDATION, request.getLocale( ) ) );
listFormErrors.add( formError );
hasFFError = true;
}
else
if ( !strFacilFamilleNumber.matches( AppPropertiesService.getProperty( PROPERTY_ACCOUNT_NUMBER_REGEXP ) ) )
{
GenericAttributeError formError = new GenericAttributeError( );
formError.setErrorMessage( I18nService.getLocalizedString( MESSAGE_ERROR_FACIL_REGEX_VALIDATION, request.getLocale( ) ) );
listFormErrors.add( formError );
hasFFError = true;
}
}
}
}
}
// O2T 79251: contrôle facil'famille
if ( listEntry.isEmpty( ) && isDomainFacilFamille( categoryValidatorResult.getTicketCategory( ) ) )
{
GenericAttributeError facilFamilleError = getFacilFamilleError( request );
if ( facilFamilleError != null )
{
listFormErrors.add( facilFamilleError );
}
}
if ( !listFormErrors.isEmpty( ) )
{
for ( GenericAttributeError formError : listFormErrors )
{
strError.append( formError.getErrorMessage( ) ).append( "<br/>" );
}
listErrors.add( strError.toString( ) );
}
}
if ( !listErrors.isEmpty( ) )
{
return AdminMessageService.getMessageUrl( request, MESSAGE_MODIFY_TICKET_ATTRIBUTE_ERROR, listErrors.toArray( ), AdminMessage.TYPE_STOP );
}
return null;
}
private GenericAttributeError getFacilFamilleError( HttpServletRequest request )
{
String strFacilFamilleNumber = request.getParameter( "attribute202" );
if ( strFacilFamilleNumber != null )
{
if ( strFacilFamilleNumber.trim( ).isEmpty( ) )
{
GenericAttributeError formError = new GenericAttributeError( );
formError.setErrorMessage( I18nService.getLocalizedString( MESSAGE_ERROR_FACIL_EMPTY_VALIDATION, request.getLocale( ) ) );
return formError;
}
else
if ( !strFacilFamilleNumber.matches( AppPropertiesService.getProperty( PROPERTY_ACCOUNT_NUMBER_REGEXP ) ) )
{
GenericAttributeError formError = new GenericAttributeError( );
formError.setErrorMessage( I18nService.getLocalizedString( MESSAGE_ERROR_FACIL_REGEX_VALIDATION, request.getLocale( ) ) );
return formError;
}
}
return null;
}
private boolean isDomainFacilFamille( TicketCategory category )
{
if ( category != null )
{
if ( category.getDepth( ).getDepthNumber( ) > 1 )
{
return isDomainFacilFamille( category.getParent( ) );
}
else
if ( category.getDepth( ).getDepthNumber( ) == 1 )
{
return category.getLabel( ).equals( UtilConstants.CATEGORY_LABEL_PARIS_FAMILLE );
}
else
{
// ne devrait pas se produire (0 ou négatif)
return false;
}
}
return false;
}
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskModifyDraftCategory.java | 74 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskModifyTicketCategory.java | 74 |
private static final String MESSAGE_MODIFY_TICKET_CATEGORY_INFORMATION = "module.workflow.ticketing.task_modify_ticket_category.information";
private static final String MESSAGE_MODIFY_TICKET_ATTRIBUTE_INFORMATION = "module.workflow.ticketing.task_modify_ticket_attribute.information";
private static final String MESSAGE_NO_VALUE = "module.workflow.ticketing.task_modify_ticket_category.noValue";
// PARAMETERS
public static final String PARAMETER_TICKET_CATEGORY_ID = "id_ticket_category";
public static final String PARAMETER_TICKET_DOMAIN_ID = "id_ticket_domain";
public static final String PARAMETER_TICKET_TYPE_ID = "id_ticket_type";
public static final String SEPARATOR = " - ";
// Beans
private static final String BEAN_MODIFY_TICKET_CATEGORY_CONFIG_SERVICE = "workflow-ticketing.taskModifyTicketCategoryConfigService";
@Inject
private TicketFormService _ticketFormService;
@Inject
@Named( BEAN_MODIFY_TICKET_CATEGORY_CONFIG_SERVICE )
private ITaskConfigService _taskModifyTicketCategoryConfigService;
@Override
public String processTicketingTask( int nIdResourceHistory, HttpServletRequest request, Locale locale )
{
String strTaskInformation = StringUtils.EMPTY;
Ticket ticket = getTicket( nIdResourceHistory );
String [ ] listPreviousTicketCategoryLabel = new String [ TicketCategoryService.getInstance( ).getCategoriesTree( ).getMaxDepthNumber( )];
Arrays.fill( listPreviousTicketCategoryLabel, "" );
if ( ticket != null )
{
for ( TicketCategory ticketCategory : ticket.getBranch( ) )
{
listPreviousTicketCategoryLabel [ticketCategory.getCategoryType( ).getDepthNumber( ) - 1] = ticketCategory.getLabel( );
}
// Validate the TicketCategory
TicketCategoryValidatorResult categoryValidatorResult = new TicketCategoryValidator( request, locale ).validateTicketCategory( );
ticket.setTicketCategory( categoryValidatorResult.getTicketCategory( ) );
TicketHome.update( ticket );
for ( TicketCategory ticketCategory : ticket.getBranch( ) )
{
String strPreviousCategoryLabel = listPreviousTicketCategoryLabel [ticketCategory.getCategoryType( ).getDepthNumber( ) - 1];
if ( !strPreviousCategoryLabel.equals( ticketCategory.getLabel( ) ) )
{
strTaskInformation += MessageFormat.format( I18nService.getLocalizedString( MESSAGE_MODIFY_TICKET_CATEGORY_INFORMATION, locale ),
ticketCategory.getCategoryType( ).getLabel( ),
StringUtils.isNotEmpty( strPreviousCategoryLabel ) ? strPreviousCategoryLabel
: I18nService.getLocalizedString( MESSAGE_NO_VALUE, locale ),
StringUtils.isNotEmpty( ticketCategory.getLabel( ) ) ? ticketCategory.getLabel( )
: I18nService.getLocalizedString( MESSAGE_NO_VALUE, locale ) );
}
}
if ( ticket.getTicketCategory( ).getId( ) > 0 )
{
TaskModifyTicketCategoryConfig config = _taskModifyTicketCategoryConfigService.findByPrimaryKey( getId( ) );
List<Entry> listEntry = TicketFormService.getFilterInputs( ticket.getTicketCategory( ).getId( ), config.getSelectedEntries( ) );
// save current values, clear ticket
List<Response> listCurrentResponse = ticket.getListResponse( );
ticket.setListResponse( new ArrayList<>( ) );
List<Response> listResponseToAdd = new ArrayList<>( );
List<Integer> listResponseIdToDelete = new ArrayList<>( );
// loop on filtered entry
for ( Entry entry : listEntry )
{
String strPreviousAttributeValue = StringUtils.EMPTY;
String strNewAttributeValue = StringUtils.EMPTY;
int nIdCurrentResponse = -1;
// current value
Iterator<Response> iterator = listCurrentResponse.iterator( );
while ( iterator.hasNext( ) )
{
Response response = iterator.next( );
if ( response.getEntry( ).getIdEntry( ) == entry.getIdEntry( ) )
{
if ( response.getResponseValue( ) != null )
{
strPreviousAttributeValue += ( " " + response.getResponseValue( ) );
}
else
if ( ( response.getFile( ) != null ) && ( response.getFile( ).getTitle( ) != null ) )
{
strPreviousAttributeValue += ( " " + response.getFile( ).getTitle( ) );
}
// clear the response
nIdCurrentResponse = response.getIdResponse( );
iterator.remove( );
break;
}
}
// new value
_ticketFormService.getResponseEntry( request, entry.getIdEntry( ), locale, ticket );
Response responseNew = null;
for ( Response response : ticket.getListResponse( ) )
{
if ( response.getEntry( ).getIdEntry( ) == entry.getIdEntry( ) )
{
if ( response.getResponseValue( ) != null )
{
strNewAttributeValue += ( " " + response.getResponseValue( ) );
}
else
if ( ( response.getFile( ) != null ) && ( response.getFile( ).getTitle( ) != null ) )
{
strNewAttributeValue += ( " " + response.getFile( ).getTitle( ) );
}
responseNew = response;
break;
}
}
// compare
if ( !strPreviousAttributeValue.equals( strNewAttributeValue ) )
{
strTaskInformation += MessageFormat.format(
I18nService.getLocalizedString( MESSAGE_MODIFY_TICKET_ATTRIBUTE_INFORMATION, Locale.FRENCH ), entry.getTitle( ),
strPreviousAttributeValue, strNewAttributeValue );
if ( nIdCurrentResponse != -1 )
{
listResponseIdToDelete.add( nIdCurrentResponse );
}
if ( responseNew != null )
{
listResponseToAdd.add( responseNew );
}
}
}
// remove generic attributes responses updated
for ( int nIdResponse : listResponseIdToDelete )
{
TicketHome.removeTicketResponse( ticket.getId( ), nIdResponse );
}
// add new responses
for ( Response response : listResponseToAdd )
{
response = ResponseUtil.createResponse( response );
if ( response.getFile( ) != null )
{
// retrait archivage
}
TicketHome.insertTicketResponse( ticket.getId( ), response.getIdResponse( ) );
}
}
if ( !TicketUtils.isAuthorized( ticket, TicketCategory.PERMISSION_VIEW_DETAIL, AdminUserService.getAdminUser( request ) ) )
{
request.setAttribute( TicketingConstants.ATTRIBUTE_REDIRECT_AFTER_WORKFLOW_ACTION, REDIRECT_TO_LIST );
}
}
if ( !strTaskInformation.equals( StringUtils.EMPTY ) )
{
strTaskInformation = strTaskInformation.substring( 0, strTaskInformation.length( ) - 5 );
}
return strTaskInformation;
}
@Override
public String getTitle( Locale locale )
{
return I18nService.getLocalizedString( MESSAGE_MODIFY_DRAFT_CATEGORY, locale ); | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAgent.java | 164 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAttachments.java | 191 |
}
/**
* Keep in list only the id_file still exists in core_file
*
* @param idFileList
* the list of id file
* @return the clean list of id file
*/
private List<Integer> cleanIdCoreList( List<Integer> idFileList )
{
List<Integer> cleanidList = new ArrayList<>( );
for ( Integer idFile : idFileList )
{
if ( TicketPjHome.isFileExistInCoreFile( idFile ) && !TicketPjHome.isFileExistInTicketPj( idFile ) )
{
File file = FileHome.findByPrimaryKey( idFile );
if ( TicketPjHome.isFileExistInCorePhysicalFile( file.getPhysicalFile( ).getIdPhysicalFile( ) ) )
{
cleanidList.add( idFile );
}
}
}
return cleanidList;
}
/**
* Manage pj for agent
*
* @param idCoreUploadFinal
* the list of id file to complete
* @param ticket
* the ticket
* @param isUsagerPj
* true if the pj is from usager otherwise false
*/
private void managePjforS3ForAgent( List<Integer> idCoreUploadFinal, Ticket ticket, boolean isUsagerPj )
{
insertTicketPjFromList( idCoreUploadFinal, ticket, isUsagerPj );
}
/**
* Manage Pj fron id_response list
*
* @param idResponseTotal
* the list of id response to complete
* @param ticket
* the ticket
*/
private void managePjforS3WithIdResponse( List<Integer> idResponseTotal, Ticket ticket )
{
Map<Integer, Integer> coreIdFileAgentFromIdResponseList = TicketHome.selectCoreFileForAgentPjMap( idResponseTotal );
if ( !coreIdFileAgentFromIdResponseList.isEmpty( ) )
{
// usager false
insertTicketPjFromMap( coreIdFileAgentFromIdResponseList, ticket, false );
}
}
/**
* Find the final list of id core from workflow_task_upload_files
*
* @param idHistory
* the id history
* @param idCoreUploadFinal
* the list of id file to complete
* @return the final list of id core from workflow_task_upload_files
*/
private List<Integer> findIsFileFromTaskUploadFiles( int idHistory, List<Integer> idCoreUploadFinal )
{
List<Integer> idCoreUploadFound = TicketTransfertPjService.findUploadFiles( idHistory );
idCoreUploadFinal.addAll( idCoreUploadFound );
return idCoreUploadFinal;
}
/**
* Find the final list of id core from workflow_task_ticketing_information
*
* @param idHistory
* the id history
* @param idResponseTotal
* the list of id response to complete
* @return the final list of id core from workflow_task_ticketing_information
*/
private List<Integer> findIdResponseFromTaskInfo( int idHistory, List<Integer> idResponseTotal )
{
List<Integer> idResponseFromTaskInfo = ticketTaskInfoService( idHistory );
idResponseTotal.addAll( idResponseFromTaskInfo );
return idResponseTotal;
}
/**
* Find the final list of id core from workflow_task_notify_gru_history
*
* @param idHistory
* the id history
* @param idResponseTotal
* the list of id response to complete
* @return the final list of id core from workflow_task_notify_gru_history
*/
private List<Integer> findIdResponseFromNotifyHistory( int idHistory, List<Integer> idResponseTotal )
{
List<Integer> idResponseFromNotifyHistory = ticketNotifyHsitoryService( idHistory );
idResponseTotal.addAll( idResponseFromNotifyHistory );
return idResponseTotal;
}
/**
* Insert pj in ticketing_ticket_pj and update file name in core_file with a id File list
*
* @param idFileList
* the id pj list
* @param ticket
* the ticket
* @param isUsagerPj
* true if the pj is from usager otherwise false
*/
private void insertTicketPjFromList( List<Integer> idFileList, Ticket ticket, boolean isUsagerPj )
{
idFileList = cleanIdCoreList( idFileList );
insertTicketPj( idFileList, ticket, isUsagerPj );
}
/**
* Insert pj in ticketing_ticket_pj from id file list
*
* @param idFileList
* the id file list
* @param ticket
* the ticket
* @param isUsagerPj
* true if the pj is from usager otherwise false
*/
private void insertTicketPj( List<Integer> idFileList, Ticket ticket, boolean isUsagerPj )
{
if ( ( null != idFileList ) && !idFileList.isEmpty( ) )
{
for ( Integer idFile : idFileList )
{
TicketPj pj = new TicketPj( );
for ( Response response : ticket.getListResponse( ) )
{
if ( ( null != response.getFile( ) ) && ( response.getFile( ).getIdFile( ) == idFile ) )
{
pj.setIdResponse( response.getIdResponse( ) );
break;
}
}
if ( !TicketPjHome.isCoupleIdFileIdResponseExistInTicketPj( pj.getIdResponse( ), idFile ) )
{
pj.setIdTicket( ticket.getId( ) );
pj.setIdFile( idFile );
pj.setUrlTicketing( "" );
pj.setStockageTicketing( 0 );
pj.setUsager( isUsagerPj );
TicketPjHome.create( pj );
}
}
}
}
/**
* Insert pj in ticketing_ticket_pj from id file and id response map
*
* @param idsMaps
* the id file id response map
* @param ticket
* the ticket
* @param isUsagerPj
* true if the pj is from usager otherwise false
*/
private void insertTicketPjFromMap( Map<Integer, Integer> idsMaps, Ticket ticket, boolean isUsagerPj )
{
if ( ( null != idsMaps ) && !idsMaps.isEmpty( ) )
{
for ( Entry<Integer, Integer> entry : idsMaps.entrySet( ) )
{
if ( !TicketPjHome.isCoupleIdFileIdResponseExistInTicketPj( entry.getKey( ), entry.getValue( ) ) )
{
TicketPj pj = new TicketPj( );
pj.setIdTicket( ticket.getId( ) );
pj.setIdFile( entry.getValue( ) );
pj.setIdResponse( entry.getKey( ) );
pj.setUrlTicketing( "" );
pj.setStockageTicketing( 0 );
pj.setUsager( isUsagerPj );
TicketPjHome.create( pj );
}
}
}
}
/**
* find historic data From task info table
*
* @param ticket
* the ticket to anonymizes
*/
private List<Integer> ticketTaskInfoService( int idHistory )
{
String valueInfo = _daoTaskInfo.getInfoHistoryValueByIdHistory( idHistory, _plugin );
List<Integer> idResponseTotal = new ArrayList<>( );
if ( !valueInfo.isEmpty( ) )
{
String valueInfoUpdated = _daoTaskInfo.getInfoHistoryValueByIdHistory( idHistory, _plugin );
if ( valueInfoUpdated.contains( "a href=" ) )
{
List<Integer> idResponseListForAgent = TicketTransfertPjService.extractIdResponse( valueInfoUpdated );
idResponseTotal.addAll( idResponseListForAgent );
}
}
return idResponseTotal;
}
/**
* find historic data From task info table
*
* @param ticket
* the ticket to anonymizes
*/
private List<Integer> ticketNotifyHsitoryService( int idHistory )
{
Map<String, String> valueNotifyMessages = _daoAnonymisation.loadMessageNotifyHIstoryTotal( idHistory, _plugin );
List<Integer> idResponseTotal = new ArrayList<>( );
if ( ( null != valueNotifyMessages ) && !valueNotifyMessages.isEmpty( ) )
{
for ( Map.Entry<String, String> mapEntry : valueNotifyMessages.entrySet( ) )
{
if ( ( null != mapEntry.getValue( ) ) && mapEntry.getValue( ).contains( "a href=" ) )
{
List<Integer> idResponseListForAgent = TicketTransfertPjService.extractIdResponse( mapEntry.getValue( ) );
idResponseTotal.addAll( idResponseListForAgent );
}
}
}
return idResponseTotal;
}
@Override
public String getTitle( Locale locale )
{
return I18nService.getLocalizedString( MESSAGE_AUTOMATIC_CENTRALIZATION_PJ, locale );
}
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskModifyDraft.java | 140 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskModifyTicket.java | 134 |
response = ResponseUtil.createResponse( response );
TicketHome.insertTicketResponse( ticket.getId( ), response.getIdResponse( ) );
} );
// Delete old responses
mapEntry.getValue( ).forEach( response ->
{
TicketPj pj = TicketPjHome.findIdPjFromIdResponse( response.getIdResponse( ) );
if ( ( null != pj ) && ( pj.getStockageTicketing( ) != 0 ) )
{
deletePj( pj );
}
TicketHome.removeTicketResponse( ticket.getId( ), response.getIdResponse( ) );
} );
strTaskInformation += I18nService.getLocalizedString( MESSAGE_MODIFY_TICKET_ATTACHMENT, locale );
}
TicketAsynchronousUploadHandler.getHandler( ).removeSessionFiles( request.getSession( ).getId( ) );
_ticketFormService.removeTicketFromSession( request.getSession( ) );
// Populate the Ticket
Ticket ticketWithNewData = new Ticket( );
ticketWithNewData.setTicketCategory( new TicketCategory( ) ); // -- to not generate validation error on this field
BeanUtil.populate( ticketWithNewData, request );
int idArrondissement = Integer.parseInt( request.getParameter( "id_arrondissement" ) );
Arrondissement arr = ArrondissementHome.findByPrimaryKey( idArrondissement );
ticketWithNewData.setArrondissement( arr );
// Update the ticket adress
TicketAddress ticketAdressToValidate = new TicketAddress( );
BeanUtil.populate( ticketAdressToValidate, request );
if ( ticket != null )
{
// Update the user title
int nNewUserTitleId = ticketWithNewData.getIdUserTitle( );
if ( nNewUserTitleId != ticket.getIdUserTitle( ) )
{
String strCurrentUserTitle = ticket.getUserTitle( );
String strNewUserTitle = UserTitleHome.findByPrimaryKey( nNewUserTitleId ).getLabel( );
ticket.setIdUserTitle( nNewUserTitleId );
ticket.setUserTitle( strNewUserTitle );
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_USER_TITLE_INFORMATION, strCurrentUserTitle, strNewUserTitle, locale );
}
// Update the lastname
String strNewLatsname = ticketWithNewData.getLastname( );
String strCurrentLastname = ticket.getLastname( );
if ( !strCurrentLastname.equals( strNewLatsname ) )
{
ticket.setLastname( strNewLatsname );
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_LASTNAME_INFORMATION, strCurrentLastname, strNewLatsname, locale );
}
// Update the firstname
String strNewFirstname = ticketWithNewData.getFirstname( );
String strCurrentFirstname = ticket.getFirstname( );
if ( !strCurrentFirstname.equals( strNewFirstname ) )
{
ticket.setFirstname( strNewFirstname );
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_FIRSTNAME_INFORMATION, strCurrentFirstname, strNewFirstname, locale );
}
// Update the email
String strNewEmail = ticketWithNewData.getEmail( );
String strCurrentEmail = ticket.getEmail( );
if ( ( strNewEmail != null ) && !strNewEmail.equals( strCurrentEmail ) )
{
ticket.setEmail( strNewEmail );
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_EMAIL_INFORMATION, strCurrentEmail, strNewEmail, locale );
}
// Update the fixed phone number
String strNewFixedPhoneNumer = ticketWithNewData.getFixedPhoneNumber( );
String strCurrentFixedPhoneNumber = ticket.getFixedPhoneNumber( );
if ( ( strNewFixedPhoneNumer != null ) && !strNewFixedPhoneNumer.equals( strCurrentFixedPhoneNumber ) )
{
ticket.setFixedPhoneNumber( strNewFixedPhoneNumer );
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_FIXED_PHONE_NUMBER_INFORMATION, strCurrentFixedPhoneNumber, strNewFixedPhoneNumer, locale );
}
// Update the mobile phone number
String strNewMobilePhoneNumber = ticketWithNewData.getMobilePhoneNumber( );
String strCurrentMobilePhoneNumber = ticket.getMobilePhoneNumber( );
if ( ( strNewMobilePhoneNumber != null ) && !strNewMobilePhoneNumber.equals( strCurrentMobilePhoneNumber ) )
{
ticket.setMobilePhoneNumber( strNewMobilePhoneNumber );
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_MOBILE_PHONE_NUMBER_INFORMATION, strCurrentMobilePhoneNumber, strNewMobilePhoneNumber, locale );
}
// Update the Address
String strNewAdress = ticketAdressToValidate.getAddress( );
String strNewAdressDetail = ticketAdressToValidate.getAddressDetail( );
String strNewPostalCode = ticketAdressToValidate.getPostalCode( );
String strNewCity = ticketAdressToValidate.getCity( ); | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskModifyDraft.java | 281 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskModifyTicket.java | 265 |
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_QUARTIER_INFORMATION, strCurrentQuartier, newQuartier.getLabel( ), locale );
}
ticket.setTicketAddress( currentTicketAddress );
} else
{
if ( StringUtils.isNotBlank( strNewAdress ) || StringUtils.isNotBlank( strNewAdressDetail ) || StringUtils.isNotBlank( strNewPostalCode ) || StringUtils.isNotBlank( strNewCity ) )
{
TicketAddress newTicketAddress = new TicketAddress( );
// Update the address
newTicketAddress.setAddress( strNewAdress );
if ( StringUtils.isNotBlank( strNewAdress ) )
{
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_ADDRESS_INFORMATION, StringUtils.EMPTY, strNewAdress, locale );
}
// Update the address detail
newTicketAddress.setAddressDetail( strNewAdressDetail );
if ( StringUtils.isNotBlank( strNewAdressDetail ) )
{
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_ADDRESS_DETAIL_INFORMATION, StringUtils.EMPTY, strNewAdressDetail, locale );
}
// Update the city
newTicketAddress.setCity( strNewCity );
if ( StringUtils.isNotBlank( strNewCity ) )
{
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_CITY_INFORMATION, StringUtils.EMPTY, strNewCity, locale );
}
// Update the postal code
newTicketAddress.setPostalCode( strNewPostalCode );
if ( StringUtils.isNotBlank( strNewPostalCode ) )
{
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_POSTAL_CODE_INFORMATION, StringUtils.EMPTY, strNewPostalCode, locale );
}
ticket.setTicketAddress( newTicketAddress );
}
}
// Update the arrondissement
Arrondissement newArrondissement = ticketWithNewData.getArrondissement( );
Arrondissement currentArrondissement = ticket.getArrondissement( );
if ( ( newArrondissement != null ) && ( newArrondissement.getId( ) != currentArrondissement.getId( ) ) )
{
ticket.setArrondissement( newArrondissement );
String strNewArrondissement = newArrondissement.getId( ) < 5 ? "Paris Centre" : String.valueOf( newArrondissement.getId( ) );
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_ARRONDISSEMNT_INFORMATION, String.valueOf( currentArrondissement.getId( ) ), strNewArrondissement, locale );
}
// Update the contact mode
int nNewContactModeId = ticketWithNewData.getIdContactMode( );
if ( ticket.getIdContactMode( ) != nNewContactModeId )
{
String strCurrentContactMode = ticket.getContactMode( );
String strNewContactMode = ContactModeHome.findByPrimaryKey( nNewContactModeId ).getCode( );
ticket.setIdContactMode( nNewContactModeId );
ticket.setContactMode( strNewContactMode );
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_CONTACT_MODE_INFORMATION, strCurrentContactMode, strNewContactMode, locale );
}
// Update the comment
String strNewComment = ticketWithNewData.getTicketComment( );
String strCurrentTicketComment = ticket.getTicketComment( );
if ( ( strNewComment != null ) && !strNewComment.equals( strCurrentTicketComment ) )
{
ticket.setTicketComment( strNewComment );
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_COMMENT_INFORMATION, strCurrentTicketComment, strNewComment, locale );
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/ModifyDraftTaskComponent.java | 147 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/ModifyTicketTaskComponent.java | 133 |
model.put( MARK_QUARTIER_LIST, QuartierHome.getQuartiersReferenceList( ) );
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_TASK_MODIFY_TICKET_FORM, locale, model );
return template.getHtml( );
}
/**
* {@inheritDoc}
*/
@Override
public String doValidateTask( int nIdResource, String strResourceType, HttpServletRequest request, Locale locale, ITask task )
{
// Validate the selection of items
List<ErrorMessage> listErrors = valideTicket( request );
if ( !listErrors.isEmpty( ) )
{
UrlItem urlReturnFromErros = new UrlItem( JSP_VIEW_TICKET );
urlReturnFromErros.addParameter( TicketingConstants.PARAMETER_ID_TICKET, nIdResource );
return AdminMessageService.getMessageUrl( request, MESSAGE_MODIFY_TICKET_ERROR,
WorkflowTicketingUtils.formatValidationErrors( request, listErrors ), urlReturnFromErros.getUrl( ), AdminMessage.TYPE_ERROR );
}
return null;
}
/**
* Method used to validate informations for the new ticket modification
*/
private List<ErrorMessage> valideTicket( HttpServletRequest request )
{
List<ErrorMessage> listErrors = new ArrayList<>( );
// Populate the Ticket
Ticket ticketToValidate = new Ticket( );
ticketToValidate.setTicketCategory( new TicketCategory( ) ); // -- to not generate validation error on this field
BeanUtil.populate( ticketToValidate, request );
// Update the ticket adress
TicketAddress ticketAdressToValidate = new TicketAddress( );
BeanUtil.populate( ticketAdressToValidate, request );
ticketToValidate.setTicketAddress( ticketAdressToValidate );
// Validate the ticket
listErrors.addAll( validateBean( ticketToValidate, request.getLocale( ) ) );
// Validate the contact mode
String strContactModeFilled = new FormValidator( request ).isContactModeFilled( );
if ( strContactModeFilled != null )
{
listErrors.add( new MVCMessage( strContactModeFilled ) );
}
// The validation for the ticket comment size
String strNewComment = ticketToValidate.getTicketComment( );
if ( FormValidator.countCharTicketComment( strNewComment ) > 5000 )
{
listErrors.add( new MVCMessage( I18nService.getLocalizedString( MESSAGE_ERROR_COMMENT_VALIDATION, request.getLocale( ) ) ) );
}
return listErrors;
}
/**
* Validate a bean. his method convert the String result of the validateBean method of the TicketValidator to MVCMessage
*
* @param request
* @param bean
* @param strPrefix
* @return listErrors : the list of all validations errors
*/
private List<ErrorMessage> validateBean( Ticket ticket, Locale locale )
{
List<ErrorMessage> listErrors = new ArrayList<>( );
List<String> listTicketValidationErrors = new TicketValidator( locale ).validateBean( ticket );
if ( listTicketValidationErrors.isEmpty( ) )
{
return listErrors;
}
else
{
for ( String errorValidation : listTicketValidationErrors )
{
listErrors.add( new MVCMessage( errorValidation ) );
}
}
return listErrors;
}
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/AssignTicketToUnitTaskComponent.java | 86 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/AssignUpTicketTaskComponent.java | 84 |
@Override
public String getDisplayConfigForm( HttpServletRequest request, Locale locale, ITask task )
{
Map<String, Object> model = new HashMap<>( );
TaskAssignTicketToUnitConfig config = getTaskConfigService( ).findByPrimaryKey( task.getId( ) );
model.put( MARK_CONFIG_TITLE, I18nService.getLocalizedString( CONFIG_TITLE_KEY, request.getLocale( ) ) );
if ( config != null )
{
model.put( MARK_LEVEL_1, config.isLevel1( ) );
model.put( MARK_LEVEL_2, config.isLevel2( ) );
model.put( MARK_LEVEL_3, config.isLevel3( ) );
}
else
{
model.put( MARK_LEVEL_1, false );
model.put( MARK_LEVEL_2, false );
model.put( MARK_LEVEL_3, false );
}
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_TASK_ASSIGN_TICKET_TO_UNIT_CONFIG, locale, model );
return template.getHtml( );
}
/**
* {@inheritDoc}
*/
@Override
public String doSaveConfig( HttpServletRequest request, Locale locale, ITask task )
{
TaskAssignTicketToUnitConfig config = getTaskConfigService( ).findByPrimaryKey( task.getId( ) );
boolean level1 = StringUtils.isNotEmpty( request.getParameter( MARK_LEVEL_1 ) );
boolean level2 = StringUtils.isNotEmpty( request.getParameter( MARK_LEVEL_2 ) );
boolean level3 = StringUtils.isNotEmpty( request.getParameter( MARK_LEVEL_3 ) );
if ( config == null )
{
config = new TaskAssignTicketToUnitConfig( );
config.setIdTask( task.getId( ) );
config.setLevel1( level1 );
config.setLevel2( level2 );
config.setLevel3( level3 );
getTaskConfigService( ).create( config );
}
else
{
config.setLevel1( level1 );
config.setLevel2( level2 );
config.setLevel3( level3 );
getTaskConfigService( ).update( config );
}
return null;
}
/**
* {@inheritDoc}
*/
@Override
public String getDisplayTaskForm( int nIdResource, String strResourceType, HttpServletRequest request, Locale locale, ITask task )
{ | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskModifyDraft.java | 239 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskModifyTicket.java | 230 |
Quartier newQuartier = QuartierHome.getQuartierByCode( String.valueOf( idQuartier ) );
TicketAddress currentTicketAddress = ticket.getTicketAddress( );
if ( currentTicketAddress != null )
{
// Update the address
if ( ( ( null != currentTicketAddress.getAddress( ) ) && ( !currentTicketAddress.getAddress( ).equals( strNewAdress ) ) )
|| ( ( null == currentTicketAddress.getAddress( ) ) && ( null != strNewAdress ) ) )
{
String strCurrentAddress = currentTicketAddress.getAddress( );
currentTicketAddress.setAddress( strNewAdress );
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_ADDRESS_INFORMATION, strCurrentAddress, strNewAdress, locale );
}
// Update the address detail
if ( ( ( null != currentTicketAddress.getAddressDetail( ) ) && ( !currentTicketAddress.getAddressDetail( ).equals( strNewAdressDetail ) ) )
|| ( ( null == currentTicketAddress.getAddressDetail( ) ) && ( null != strNewAdressDetail ) ) )
{
String strCurrentAddressDetail = currentTicketAddress.getAddressDetail( );
currentTicketAddress.setAddressDetail( strNewAdressDetail );
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_ADDRESS_DETAIL_INFORMATION, strCurrentAddressDetail, strNewAdressDetail, locale );
}
// Update the city
if ( ( ( null != currentTicketAddress.getCity( ) ) && ( !currentTicketAddress.getCity( ).equals( strNewCity ) ) )
|| ( ( null == currentTicketAddress.getCity( ) ) && ( null != strNewCity ) ) )
{
String strCurrentCity = currentTicketAddress.getCity( );
currentTicketAddress.setCity( strNewCity );
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_CITY_INFORMATION, strCurrentCity, strNewCity, locale );
}
// Update the postal code
if ( ( ( null != currentTicketAddress.getPostalCode( ) ) && ( !currentTicketAddress.getPostalCode( ).equals( strNewPostalCode ) ) )
|| ( ( null == currentTicketAddress.getPostalCode( ) ) && ( null != strNewPostalCode ) ) )
{
String strCurrentPostalCode = currentTicketAddress.getPostalCode( );
currentTicketAddress.setPostalCode( strNewPostalCode );
strTaskInformation += formatInfoMessage( MESSAGE_MODIFY_TICKET_POSTAL_CODE_INFORMATION, strCurrentPostalCode, strNewPostalCode, locale );
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAgent.java | 86 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAttachments.java | 89 |
TransactionManager.beginTransaction( _plugin );
// recuperation des PJ agent par id_history
List<Integer> idResponseTotal = new ArrayList<>( );
List<Integer> idCoreUploadFinal = new ArrayList<>( );
List<Integer> idHistoryList = _daoResourceHist.getIdHistoryListByResource( ticket.getId( ), _plugin );
for ( int idHistory : idHistoryList )
{
// tables workflow_task_ticketing_information et workflow_task_notify_gru_history
idResponseTotal = searchPjFromTaskInfoAndNotifyHistory( idHistory, idResponseTotal );
// table workflow_task_upload_files
idCoreUploadFinal = searchPjFromTaskUploadFiles( idHistory, idCoreUploadFinal );
}
if ( !idResponseTotal.isEmpty( ) )
{
managePjforS3WithIdResponse( idResponseTotal, ticket );
}
if ( !idCoreUploadFinal.isEmpty( ) )
{
// usager false
managePjforS3ForAgent( idCoreUploadFinal, ticket, false );
}
} catch ( Exception e )
{
TransactionManager.rollBack( _plugin );
AppLogService.error( e );
}
TransactionManager.commitTransaction( _plugin );
// no information stored in the history
return null;
}
/**
* Search ditinct id_core from workflow_task_upload_files
*
* @param idHistory
* the id history
* @param idCoreUploadFinal
* the list of id file to complete
* @return the list of distinct id_file
*/
private List<Integer> searchPjFromTaskUploadFiles( int idHistory, List<Integer> idCoreUploadFinal )
{
List<Integer> idCoreUploadList = findIsFileFromTaskUploadFiles( idHistory, idCoreUploadFinal );
if ( !idCoreUploadList.isEmpty( ) )
{
idCoreUploadFinal.addAll( idCoreUploadList );
}
return idCoreUploadFinal.stream( ).distinct( ).collect( Collectors.toList( ) );
}
/**
* Search list of distinct id_response
*
* @param idHistory
* the id history
* @param idResponseTotal
* the list of id response to complete
* @return the list of distinct id_response
*/
private List<Integer> searchPjFromTaskInfoAndNotifyHistory( int idHistory, List<Integer> idResponseTotal )
{
List<Integer> idResponseTaskInfoList = findIdResponseFromTaskInfo( idHistory, idResponseTotal );
List<Integer> idResponseNotifyHistoryList = findIdResponseFromNotifyHistory( idHistory, idResponseTotal );
if ( !idResponseTaskInfoList.isEmpty( ) )
{
idResponseTotal.addAll( idResponseTaskInfoList );
}
if ( !idResponseNotifyHistoryList.isEmpty( ) )
{
idResponseTotal.addAll( idResponseNotifyHistoryList );
}
return idResponseTotal.stream( ).distinct( ).collect( Collectors.toList( ) );
}
/**
* Keep in list only the id_file still exists in core_file
*
* @param idFileList
* the list of id file
* @return the clean list of id file
*/
private List<Integer> cleanIdCoreList( List<Integer> idFileList ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/NotifyWaitingTicketTaskComponent.java | 139 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/TicketEmailExternalUserTaskComponent.java | 415 |
MessageDirectionExternalUser.RE_AGENT_TO_EXTERNAL_USER.getLocalizedMessage( locale ) );
model.put( MARK_MESSAGE_DIRECTIONS_LIST, listMessageDirections );
model.put( MARK_CONFIG_FOLLOW_ACTION_ID, StringUtils.EMPTY );
model.put( MARK_CONFIG_CONTACT_ATTRIBUTE, StringUtils.EMPTY );
model.put( MARK_CONFIG_DEFAULT_SUBJECT, StringUtils.EMPTY );
if ( config != null )
{
model.put( MARK_MESSAGE_DIRECTION, config.getMessageDirectionExternalUser( ).ordinal( ) );
if ( config.getIdFollowingAction( ) != null )
{
model.put( MARK_CONFIG_FOLLOW_ACTION_ID, config.getIdFollowingAction( ) );
}
if ( config.getIdContactAttribute( ) != null )
{
model.put( MARK_CONFIG_CONTACT_ATTRIBUTE, config.getIdContactAttribute( ) );
}
if ( config.getDefaultSubject( ) != null )
{
model.put( MARK_CONFIG_DEFAULT_SUBJECT, config.getDefaultSubject( ) );
}
}
else
{
model.put( MARK_MESSAGE_DIRECTION, MessageDirectionExternalUser.AGENT_TO_EXTERNAL_USER );
}
model.put( MARK_CONFIG, config );
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_TASK_TICKET_CONFIG, locale, model );
return template.getHtml( );
}
/**
* {@inheritDoc}
*/
@Override
public String doSaveConfig( HttpServletRequest request, Locale locale, ITask task )
{
Integer nMessageDirectionId = getParameterAsInteger( request.getParameter( PARAMETER_MESSAGE_DIRECTION ) );
Integer nIdFollowingAction = getParameterAsInteger( request.getParameter( PARAMETER_FOLLOW_ACTION_ID ) );
Integer nIdContactAttribute = getParameterAsInteger( request.getParameter( PARAMETER_CONTACT_ATTRIBUTE ) );
String strDefaultSubject = request.getParameter( PARAMETER_DEFAULT_SUBJECT ); | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskModifyDraft.java | 112 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskModifyTicket.java | 105 |
return I18nService.getLocalizedString( MESSAGE_TASK_MODIFY_DRAFT, locale );
}
@Override
protected String processTicketingTask( int nIdResourceHistory, HttpServletRequest request, Locale locale )
{
String strTaskInformation = StringUtils.EMPTY;
Ticket ticket = getTicket( nIdResourceHistory );
// save current values, clear ticket
List<Response> listCurrentResponse = ticket.getListResponse( );
// Gets Map of Response by idEntry
Map<Integer, List<Response>> currentResponsesByIdEntry = listCurrentResponse.stream( )
.filter( r -> StringUtils.equals( r.getEntry( ).getEntryType( ).getBeanName( ), EntryTypeFile.BEAN_NAME ) ).collect( Collectors.groupingBy( r -> r.getEntry( ).getIdEntry( ) ) );
for ( Map.Entry<Integer, List<Response>> mapEntry : currentResponsesByIdEntry.entrySet( ) )
{
Entry entry = EntryHome.findByPrimaryKey( mapEntry.getKey( ) );
_ticketFormService.getResponseEntry( request, entry.getIdEntry( ), locale, ticket );
List<Response> newResponsesForEntry = ticket.getListResponse( ).stream( ).filter( r -> ( r.getEntry( ).getIdEntry( ) == entry.getIdEntry( ) ) && ( r.getIdResponse( ) == 0 ) )
.collect( Collectors.toList( ) );
// Create new responses
newResponsesForEntry.forEach( response ->
{ | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/TicketPjMigrationDaemon.java | 419 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAgent.java | 354 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAttachments.java | 381 |
}
}
}
/**
* find historic data From task info table
*
* @param ticket
* the ticket to anonymizes
*/
private List<Integer> ticketTaskInfoService( int idHistory )
{
String valueInfo = _daoTaskInfo.getInfoHistoryValueByIdHistory( idHistory, _plugin );
List<Integer> idResponseTotal = new ArrayList<>( );
if ( !valueInfo.isEmpty( ) )
{
String valueInfoUpdated = _daoTaskInfo.getInfoHistoryValueByIdHistory( idHistory, _plugin );
if ( valueInfoUpdated.contains( "a href=" ) )
{
List<Integer> idResponseListForAgent = TicketTransfertPjService.extractIdResponse( valueInfoUpdated );
idResponseTotal.addAll( idResponseListForAgent );
}
}
return idResponseTotal;
}
/**
* find historic data From task info table
*
* @param ticket
* the ticket to anonymizes
*/
private List<Integer> ticketNotifyHsitoryService( int idHistory )
{
Map<String, String> valueNotifyMessages = _daoAnonymisation.loadMessageNotifyHIstoryTotal( idHistory, _plugin );
List<Integer> idResponseTotal = new ArrayList<>( );
if ( ( null != valueNotifyMessages ) && !valueNotifyMessages.isEmpty( ) )
{
for ( Map.Entry<String, String> mapEntry : valueNotifyMessages.entrySet( ) )
{
if ( ( null != mapEntry.getValue( ) ) && mapEntry.getValue( ).contains( "a href=" ) )
{
List<Integer> idResponseListForAgent = TicketTransfertPjService.extractIdResponse( mapEntry.getValue( ) );
idResponseTotal.addAll( idResponseListForAgent );
}
}
}
return idResponseTotal;
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/ModifyDraftTaskComponent.java | 103 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/ModifyTicketTaskComponent.java | 99 |
private static final String MESSAGE_MODIFY_TICKET_ERROR = "module.workflow.ticketing.task_modify_ticket.error";
private static final String MESSAGE_ERROR_COMMENT_VALIDATION = "ticketing.validation.ticket.TicketComment.size";
@Inject
private TicketFormService _ticketFormService;
/**
* {@inheritDoc}
*/
@Override
public String getDisplayTaskForm( int nIdResource, String strResourceType, HttpServletRequest request, Locale locale, ITask task )
{
Ticket ticket = getTicket( nIdResource, strResourceType );
Map<String, Object> model = getModel( ticket );
model.put( MARK_HANDLER, TicketAsynchronousUploadHandler.getHandler( ) );
List<Entry> listEntries = new ArrayList<>( );
List<Response> responseList = ticket.getListResponse( );
// Get the list of file type entry with distinct idEntry
listEntries = responseList.stream( ).map( Response::getEntry )
.filter( e -> StringUtils.equals( e.getEntryType( ).getBeanName( ), EntryTypeFile.BEAN_NAME ) )
.collect( Collectors.groupingBy( Entry::getIdEntry ) ).values( ).stream( ).flatMap( group -> group.stream( ).limit( 1 ) )
.collect( Collectors.toList( ) );
_ticketFormService.saveTicketInSession( request.getSession( ), ticket );
String htmlForm = _ticketFormService.getHtmlForm( listEntries, request.getLocale( ), false, request ); | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyDaemon.java | 256 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyLevel3Daemon.java | 234 |
|| ( nIdActionRetourFromTerrainNiv3 <= 0 ) || ( nIdActionRetourFromContribNiv2 <= 0 ) || ( nIdActionRetourFromContribNiv3 <= 0 ) )
{
sbLog.append( "Paramétrage des id de workflow GRU incorrect, vérifier fichiers properties" );
AppLogService.error( "Paramétrage des id de workflow GRU incorrect, vérifier fichiers properties" );
return false;
}
if ( nbRelanceMax < 1 )
{
// relance desactivée
sbLog.append( "Paramétrage relance_auto.nb_relance_max inf. à 1, relance desactivée" );
AppLogService.error( "Paramétrage relance_auto.nb_relance_max inférieur à 1, relance desactivée" );
return false;
}
return true;
}
/**
* Relance si pas de date de dernière relance
*
* @param ticket
* ticket
* @param dateExecution
* date d'exécution
*/
private void processRelanceNoDate( Ticket ticket, Date dateExecution )
{
ticket.setDateDerniereRelance( new Timestamp( dateExecution.getTime( ) ) );
ticket.setNbRelance( 1 );
// mise à jour du ticket (sans màj de la date d'update)
// update date true si retour de sollicitation, false si relance auto
TicketHome.update( ticket, false );
// Relance automatique
_workflowService.doProcessAction( ticket.getId( ), Ticket.TICKET_RESOURCE_TYPE, nIdActionRelance, null, null, null, true );
}
/**
* Relance avec contrôle de la date de dernière relance
*
* @param ticket
* ticket
* @param dateDerniereRelance
* date de dernière relance
* @param dateExecution
* date d'exécution
* @return nombre de tickets relancé (0 ou 1)
*/
private int processRelance( Ticket ticket, Timestamp dateDerniereRelance, Date dateExecution )
{
Date dateLimiteRelance = getDatelimiteRelance( dateDerniereRelance );
if ( dateLimiteRelance.before( dateExecution ) )
{
ticket.setDateDerniereRelance( new Timestamp( dateExecution.getTime( ) ) );
ticket.setNbRelance( ticket.getNbRelance( ) + 1 );
// mise à jour du ticket (sans màj de la date d'update)
// update date true si retour de sollicitation, false si relance auto
TicketHome.update( ticket, false );
// Relance automatique
_workflowService.doProcessAction( ticket.getId( ), Ticket.TICKET_RESOURCE_TYPE, nIdActionRelance, null, null, null, true );
return 1;
}
return 0;
}
/**
* Gère le retour en fonction de la dernière action manuelle
*
* @param ticket
* ticket
* @param dateExecution
* date d'exécution
* @return nombre de tickets en retour (0 ou 1)
*/
private int processRetour( Ticket ticket, Timestamp dateDerniereRelance, Date dateExecution ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAgent.java | 271 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAttachments.java | 298 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeUsager.java | 136 |
}
/**
* Insert pj in ticketing_ticket_pj and update file name in core_file with a id File list
*
* @param idFileList
* the id pj list
* @param ticket
* the ticket
* @param isUsagerPj
* true if the pj is from usager otherwise false
*/
private void insertTicketPjFromList( List<Integer> idFileList, Ticket ticket, boolean isUsagerPj )
{
idFileList = cleanIdCoreList( idFileList );
insertTicketPj( idFileList, ticket, isUsagerPj );
}
/**
* Insert pj in ticketing_ticket_pj from id file list
*
* @param idFileList
* the id file list
* @param ticket
* the ticket
* @param isUsagerPj
* true if the pj is from usager otherwise false
*/
private void insertTicketPj( List<Integer> idFileList, Ticket ticket, boolean isUsagerPj )
{
if ( ( null != idFileList ) && !idFileList.isEmpty( ) )
{
for ( Integer idFile : idFileList )
{
TicketPj pj = new TicketPj( );
for ( Response response : ticket.getListResponse( ) )
{
if ( ( null != response.getFile( ) ) && ( response.getFile( ).getIdFile( ) == idFile ) )
{
pj.setIdResponse( response.getIdResponse( ) );
break;
}
}
if ( !TicketPjHome.isCoupleIdFileIdResponseExistInTicketPj( pj.getIdResponse( ), idFile ) )
{
pj.setIdTicket( ticket.getId( ) );
pj.setIdFile( idFile );
pj.setUrlTicketing( "" );
pj.setStockageTicketing( 0 );
pj.setUsager( isUsagerPj );
TicketPjHome.create( pj );
}
}
}
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeInit.java | 129 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeUsager.java | 151 |
insertTicketPj( idFileList, ticket, isUsagerPj );
}
/**
* Insert pj in ticketing_ticket_pj from id file list
*
* @param idFileList
* the id file list
* @param ticket
* the ticket
* @param isUsagerPj
* true if the pj is from usager otherwise false
*/
private void insertTicketPj( List<Integer> idFileList, Ticket ticket, boolean isUsagerPj )
{
if ( ( null != idFileList ) && !idFileList.isEmpty( ) )
{
for ( Integer idFile : idFileList )
{
TicketPj pj = new TicketPj( );
for ( Response response : ticket.getListResponse( ) )
{
if ( ( null != response.getFile( ) ) && ( response.getFile( ).getIdFile( ) == idFile ) )
{
pj.setIdResponse( response.getIdResponse( ) );
break;
}
}
if ( !TicketPjHome.isCoupleIdFileIdResponseExistInTicketPj( pj.getIdResponse( ), idFile ) )
{
pj.setIdTicket( ticket.getId( ) );
pj.setIdFile( idFile );
pj.setUrlTicketing( "" );
pj.setStockageTicketing( 0 );
pj.setUsager( isUsagerPj );
TicketPjHome.create( pj );
}
}
}
}
@Override
public String getTitle( Locale locale )
{
return I18nService.getLocalizedString( MESSAGE_AUTOMATIC_CENTRALIZATION_PJ, locale );
}
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyDaemon.java | 175 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyLevel3Daemon.java | 155 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyUsagerDaemon.java | 155 |
|| ( resourceHistory.getAction( ).getId( ) == nIdActionSolliciterFromContribNiv3 ) )
{
int nRelance = processRelance( ticket, resourceHistory.getCreationDate( ), dateExecution );
nNbTicketRelance = nNbTicketRelance + nRelance;
isTicketUpdated = ( nRelance == 1 );
break;
}
}
}
else
if ( nNbRelance < nbRelanceMax )
{
int nRelance = processRelance( ticket, dateDerniereRelance, dateExecution );
nNbTicketRelance = nNbTicketRelance + nRelance;
isTicketUpdated = ( nRelance == 1 );
}
else
{
int nRelance = processRetour( ticket, dateDerniereRelance, dateExecution );
nNbTicketRetour = nNbTicketRetour + nRelance;
isTicketUpdated = ( nRelance == 1 );
}
}
}
catch( Exception e )
{
AppLogService.error( "Erreur du traitement du ticket " + nIdResource, e );
if ( ( ticket != null ) && ( ticket.getNbRelance( ) != nNbRelance ) )
{
// si le ticket a été mis à jour mais a eu une erreur
ticket.setNbRelance( nNbRelance );
ticket.setDateDerniereRelance( dateDerniereRelance );
TicketHome.update( ticket, false );
isTicketUpdated = true;
}
}
finally
{
if ( isTicketUpdated )
{
// Index: store the Ticket in the table for the daemon
IndexerActionHome.create( TicketIndexerActionUtil.createIndexerActionFromTicket( ticket ) );
}
}
}
sbLog.append( "Nombre de tickets au statut " )
.append( _workflowService.getState( nIdStateWaiting, Ticket.TICKET_RESOURCE_TYPE, nIdWorkflow, null ).getName( ) ).append( " dont :" ); | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/TicketPjMigrationDaemon.java | 165 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAttachments.java | 123 |
}
/**
* Search ditinct id_core from workflow_task_upload_files
*
* @param idHistory
* the id history
* @param idCoreUploadFinal
* the list of id file to complete
* @return the list of distinct id_file
*/
private List<Integer> searchPjFromTaskUploadFiles( int idHistory, List<Integer> idCoreUploadFinal )
{
List<Integer> idCoreUploadList = findIsFileFromTaskUploadFiles( idHistory, idCoreUploadFinal );
if ( !idCoreUploadList.isEmpty( ) )
{
idCoreUploadFinal.addAll( idCoreUploadList );
}
return idCoreUploadFinal.stream( ).distinct( ).collect( Collectors.toList( ) );
}
/**
* Search list of distinct id_response
*
* @param idHistory
* the id history
* @param idResponseTotal
* the list of id response to complete
* @return the list of distinct id_response
*/
private List<Integer> searchPjFromTaskInfoAndNotifyHistory( int idHistory, List<Integer> idResponseTotal )
{
List<Integer> idResponseTaskInfoList = findIdResponseFromTaskInfo( idHistory, idResponseTotal );
List<Integer> idResponseNotifyHistoryList = findIdResponseFromNotifyHistory( idHistory, idResponseTotal );
if ( !idResponseTaskInfoList.isEmpty( ) )
{
idResponseTotal.addAll( idResponseTaskInfoList );
}
if ( !idResponseNotifyHistoryList.isEmpty( ) )
{
idResponseTotal.addAll( idResponseNotifyHistoryList );
}
return idResponseTotal.stream( ).distinct( ).collect( Collectors.toList( ) );
}
/**
* Manage pj for usager
*
* @param ticket
* the ticket
*/
private void managePjforS3ForUsager( Ticket ticket )
{
List<Integer> usagerAttachment = TicketTransfertPjService.findUsagerAttachment( ticket ); | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyDaemon.java | 399 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyUsagerDaemon.java | 314 |
_workflowService.doProcessAction( ticket.getId( ), Ticket.TICKET_RESOURCE_TYPE, nIdActionRetourFromContribNiv3, null, null, null,
true );
return 1;
}
else
{
AppLogService.error( "Dernière action manuelle non trouvée pour le ticket " + ticket.getId( ) );
}
}
return 0;
}
/**
* Renvoie la date de prochaine relance
*
* @param dateDerniereRelance
* date de dernière relance
* @return date limite de relance
*/
private Date getDatelimiteRelance( Timestamp dateDerniereRelance )
{
Calendar calendarLimiteRelance = Calendar.getInstance( );
calendarLimiteRelance.setTime( dateDerniereRelance );
if ( isMinuteMode == 1 )
{
calendarLimiteRelance.add( Calendar.MINUTE, nFrequence );
// date dernière relance + n minutes
}
else
{
// date à 00h 00mn 00s
calendarLimiteRelance.set( Calendar.HOUR_OF_DAY, 0 );
calendarLimiteRelance.set( Calendar.MINUTE, 0 );
calendarLimiteRelance.set( Calendar.SECOND, 0 );
calendarLimiteRelance.set( Calendar.MILLISECOND, 0 );
calendarLimiteRelance.add( Calendar.DAY_OF_YEAR, nFrequence );
// date dernière relance + n jours
}
return calendarLimiteRelance.getTime( );
}
/**
*
* @param nIdResource
* identifiant de la ressource
* @param nIdWorkflow
* identifiant du workflow
* @return identifiant de la dernière action si dans la liste des actions de sollicitation
*/
private int getLastManualActionSollicitation( int nIdResource, int nIdWorkflow )
{
List<ResourceHistory> listAllHistoryByResource = _resourceHistoryService.getAllHistoryByResource( nIdResource, Ticket.TICKET_RESOURCE_TYPE,
nIdWorkflow );
if ( ( listAllHistoryByResource != null ) && !listAllHistoryByResource.isEmpty( ) )
{
// récupération de la dernière action manuelle de sollicitation
for ( int i = 0; i < listAllHistoryByResource.size( ); i++ ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAttachments.java | 167 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeUsager.java | 87 |
}
/**
* Manage pj for usager
*
* @param ticket
* the ticket
*/
private void managePjforS3ForUsager( Ticket ticket )
{
List<Integer> usagerAttachment = TicketTransfertPjService.findUsagerAttachment( ticket );
List<Integer> idUsagerResponseToDelete = TicketPjHome.getIdResponsePjUsagerToDelete( ticket.getId( ) );
if ( ( null != idUsagerResponseToDelete ) && !idUsagerResponseToDelete.isEmpty( ) )
{
TicketPjHome.removePjUsager( idUsagerResponseToDelete );
}
if ( ( null != usagerAttachment ) && !usagerAttachment.isEmpty( ) )
{
// usager true
insertTicketPjFromList( usagerAttachment, ticket, true );
}
}
/**
* Keep in list only the id_file still exists in core_file
*
* @param idFileList
* the list of id file
* @return the clean list of id file
*/
private List<Integer> cleanIdCoreList( List<Integer> idFileList )
{
List<Integer> cleanidList = new ArrayList<>( );
for ( Integer idFile : idFileList )
{
if ( TicketPjHome.isFileExistInCoreFile( idFile ) && !TicketPjHome.isFileExistInTicketPj( idFile ) )
{
File file = FileHome.findByPrimaryKey( idFile );
if ( TicketPjHome.isFileExistInCorePhysicalFile( file.getPhysicalFile( ).getIdPhysicalFile( ) ) )
{
cleanidList.add( idFile );
}
}
}
return cleanidList;
}
/**
* Manage pj for agent
*
* @param idCoreUploadFinal
* the list of id file to complete
* @param ticket
* the ticket
* @param isUsagerPj
* true if the pj is from usager otherwise false
*/
private void managePjforS3ForAgent( List<Integer> idCoreUploadFinal, Ticket ticket, boolean isUsagerPj ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAgent.java | 286 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAttachments.java | 313 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeInit.java | 129 |
insertTicketPj( idFileList, ticket, isUsagerPj );
}
/**
* Insert pj in ticketing_ticket_pj from id file list
*
* @param idFileList
* the id file list
* @param ticket
* the ticket
* @param isUsagerPj
* true if the pj is from usager otherwise false
*/
private void insertTicketPj( List<Integer> idFileList, Ticket ticket, boolean isUsagerPj )
{
if ( ( null != idFileList ) && !idFileList.isEmpty( ) )
{
for ( Integer idFile : idFileList )
{
TicketPj pj = new TicketPj( );
for ( Response response : ticket.getListResponse( ) )
{
if ( ( null != response.getFile( ) ) && ( response.getFile( ).getIdFile( ) == idFile ) )
{
pj.setIdResponse( response.getIdResponse( ) );
break;
}
}
if ( !TicketPjHome.isCoupleIdFileIdResponseExistInTicketPj( pj.getIdResponse( ), idFile ) )
{
pj.setIdTicket( ticket.getId( ) );
pj.setIdFile( idFile );
pj.setUrlTicketing( "" );
pj.setStockageTicketing( 0 );
pj.setUsager( isUsagerPj );
TicketPjHome.create( pj );
}
}
}
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/TicketingTaskComponent.java | 239 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/TicketingTaskComponent.java | 277 |
protected static ReferenceList getUnitsList( AdminUser user, List<Integer> levelList )
{
List<AssigneeUnit> listUnitByLevel = new ArrayList<>( );
for ( Integer level : levelList )
{
listUnitByLevel
.addAll( SupportEntityHome.getSupportEntityListByLevel( level ).stream( ).map( SupportEntity::getUnit ).collect( Collectors.toList( ) ) );
}
ReferenceList lstRef = new ReferenceList( listUnitByLevel.size( ) );
ReferenceItem emptyReferenceItem = new ReferenceItem( );
emptyReferenceItem.setCode( StringUtils.EMPTY );
emptyReferenceItem.setName( I18nService.getLocalizedString( MESSAGE_DEFAULT_LABEL_ENTITY_TASK_FORM, Locale.FRANCE ) );
emptyReferenceItem.setChecked( true );
lstRef.add( emptyReferenceItem );
for ( AssigneeUnit unit : listUnitByLevel )
{
if ( RBACService.isAuthorized( unit, AssigneeUnit.PERMISSION_ASSIGN, (User) user ) )
{
lstRef.addItem( unit.getUnitId( ), unit.getName( ) );
}
}
return lstRef;
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/TicketPjMigrationDaemon.java | 165 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAgent.java | 120 |
}
/**
* Search ditinct id_core from workflow_task_upload_files
*
* @param idHistory
* the id history
* @param idCoreUploadFinal
* the list of id file to complete
* @return the list of distinct id_file
*/
private List<Integer> searchPjFromTaskUploadFiles( int idHistory, List<Integer> idCoreUploadFinal )
{
List<Integer> idCoreUploadList = findIsFileFromTaskUploadFiles( idHistory, idCoreUploadFinal );
if ( !idCoreUploadList.isEmpty( ) )
{
idCoreUploadFinal.addAll( idCoreUploadList );
}
return idCoreUploadFinal.stream( ).distinct( ).collect( Collectors.toList( ) );
}
/**
* Search list of distinct id_response
*
* @param idHistory
* the id history
* @param idResponseTotal
* the list of id response to complete
* @return the list of distinct id_response
*/
private List<Integer> searchPjFromTaskInfoAndNotifyHistory( int idHistory, List<Integer> idResponseTotal )
{
List<Integer> idResponseTaskInfoList = findIdResponseFromTaskInfo( idHistory, idResponseTotal );
List<Integer> idResponseNotifyHistoryList = findIdResponseFromNotifyHistory( idHistory, idResponseTotal );
if ( !idResponseTaskInfoList.isEmpty( ) )
{
idResponseTotal.addAll( idResponseTaskInfoList );
}
if ( !idResponseNotifyHistoryList.isEmpty( ) )
{
idResponseTotal.addAll( idResponseNotifyHistoryList );
}
return idResponseTotal.stream( ).distinct( ).collect( Collectors.toList( ) );
}
/**
* Manage pj for usager
*
* @param ticket
* the ticket
*/
private void managePjforS3ForUsager( Ticket ticket ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/config/TaskNotifyWaitingTicketConfigDAO.java | 97 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/config/TaskTicketEmailExternalUserConfigDAO.java | 100 |
public void store( TaskNotifyWaitingTicketConfig config )
{
try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE, WorkflowTicketingPlugin.getPlugin( ) ) )
{
int nIndex = 1;
daoUtil.setInt( nIndex++, config.getMessageDirectionExternalUser( ).ordinal( ) );
if ( config.getIdFollowingAction( ) == null )
{
daoUtil.setIntNull( nIndex++ );
}
else
{
daoUtil.setInt( nIndex++, config.getIdFollowingAction( ) );
}
if ( config.getIdContactAttribute( ) == null )
{
daoUtil.setIntNull( nIndex++ );
}
else
{
daoUtil.setInt( nIndex++, config.getIdContactAttribute( ) );
}
if ( config.getDefaultSubject( ) == null )
{
daoUtil.setString( nIndex++, StringUtils.EMPTY );
}
else
{
daoUtil.setString( nIndex++, config.getDefaultSubject( ) );
}
daoUtil.setInt( nIndex, config.getIdTask( ) ); | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskModifyDraft.java | 355 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskModifyTicket.java | 333 |
ticket.setIdAdminBOInit( user.getUserId( ) );
}
// Update the ticket
TicketHome.update( ticket );
}
// In the case when there are no modifications
if ( strTaskInformation.equals( StringUtils.EMPTY ) )
{
strTaskInformation = I18nService.getLocalizedString( MESSAGE_MODIFY_TICKET_NO_MODIFICATIONS_INFORMATION, locale );
}
return strTaskInformation;
}
/**
* Return the message formated for the modification of informations of the ticket
*
* @param strKey
* : the key of the message
* @param strOldValue
* : the value which has been replaced
* @param strNewValue
* : the new value
* @param locale
* @return the message formated
*/
private String formatInfoMessage( String strKey, String strOldValue, String strNewValue, Locale locale )
{
return MessageFormat.format( I18nService.getLocalizedString( strKey, locale ), evaluateValue( strOldValue, locale ), evaluateValue( strNewValue, locale ) );
}
/**
* Return the value if it's not empty otherwise return a default message
*
* @param strValue
* : the value to evaluate
* @param locale
* @return the value or the default message
*/
private String evaluateValue( String strValue, Locale locale )
{
return ( StringUtils.isBlank( strValue ) ? I18nService.getLocalizedString( NOT_FILLED_INFORMATION, locale ) : strValue );
}
private void deletePj( TicketPj pj )
{
String profil = STroisService.findTheProfilAndServerS3( pj.getStockageTicketing( ), SERVEUR_SIDE );
StockageService stockageService = new StockageService( profil );
stockageService.deleteFileOnS3Serveur( pj.getUrlTicketing( ) );
}
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/message/TicketEmailExternalUserMessageDAO.java | 227 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/message/TicketEmailExternalUserMessageDAO.java | 258 |
try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_FIRST_MESSAGE, WorkflowTicketingPlugin.getPlugin( ) ) )
{
daoUtil.setInt( 1, nIdTicket );
daoUtil.executeQuery( );
int nIndex = 1;
if ( daoUtil.next( ) )
{
emailExternalUserMessage = new TicketEmailExternalUserMessage( );
emailExternalUserMessage.setIdMessageExternalUser( daoUtil.getInt( nIndex++ ) );
emailExternalUserMessage.setIdTicket( daoUtil.getInt( nIndex++ ) );
emailExternalUserMessage.setEmailRecipients( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setEmailRecipientsCc( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setMessageQuestion( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setMessageResponse( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setIsAnswered( daoUtil.getBoolean( nIndex++ ) );
emailExternalUserMessage.setEmailSubject( daoUtil.getString( nIndex++ ) );
}
}
return emailExternalUserMessage;
}
/**
* {@inheritDoc}
*/
@Override
public TicketEmailExternalUserMessage loadLastByIdTicket( int nIdTicket ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyDaemon.java | 293 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyUsagerDaemon.java | 251 |
}
/**
* Relance avec contrôle de la date de dernière relance
*
* @param ticket
* ticket
* @param dateDerniereRelance
* date de dernière relance
* @param dateExecution
* date d'exécution
* @return nombre de tickets relancé (0 ou 1)
*/
private int processRelance( Ticket ticket, Timestamp dateDerniereRelance, Date dateExecution )
{
Date dateLimiteRelance = getDatelimiteRelance( dateDerniereRelance );
if ( dateLimiteRelance.before( dateExecution ) )
{
ticket.setDateDerniereRelance( new Timestamp( dateExecution.getTime( ) ) );
ticket.setNbRelance( ticket.getNbRelance( ) + 1 );
// mise à jour du ticket (sans màj de la date d'update)
// update date true si retour de sollicitation, false si relance auto
TicketHome.update( ticket, false );
// Relance automatique
_workflowService.doProcessAction( ticket.getId( ), Ticket.TICKET_RESOURCE_TYPE, nIdActionRelance, null, null, null, true );
return 1;
}
return 0;
}
/**
* Gère le retour en fonction de la dernière action manuelle
*
* @param ticket
* ticket
* @param dateExecution
* date d'exécution
* @return nombre de tickets en retour (0 ou 1)
*/
private int processRetour( Ticket ticket, Timestamp dateDerniereRelance, Date dateExecution )
{
Date dateLimiteRelance = getDatelimiteRelance( dateDerniereRelance );
if ( dateLimiteRelance.before( dateExecution ) )
{
// retour sollicitation
int nIdDerniereActionManuelle = getLastManualActionSollicitation( ticket.getId( ), nIdWorkflow );
if ( nIdDerniereActionManuelle == nIdActionSolliciterFromTerrainNiv2 ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/config/TaskNotifyWaitingTicketConfigDAO.java | 56 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/config/TaskTicketEmailExternalUserConfigDAO.java | 56 |
public void insert( TaskNotifyWaitingTicketConfig config )
{
try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT, WorkflowTicketingPlugin.getPlugin( ) ) )
{
int nIndex = 1;
daoUtil.setInt( nIndex++, config.getIdTask( ) );
daoUtil.setInt( nIndex++, config.getMessageDirectionExternalUser( ).ordinal( ) );
if ( config.getIdFollowingAction( ) == null )
{
daoUtil.setIntNull( nIndex++ );
}
else
{
daoUtil.setInt( nIndex++, config.getIdFollowingAction( ) );
}
if ( config.getIdContactAttribute( ) == null )
{
daoUtil.setIntNull( nIndex++ );
}
else
{
daoUtil.setInt( nIndex++, config.getIdContactAttribute( ) );
}
if ( config.getDefaultSubject( ) == null )
{
daoUtil.setString( nIndex, StringUtils.EMPTY ); | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyDaemon.java | 144 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyUsagerDaemon.java | 127 |
sbLog.append( "Aucun ticket au statut en attente d'une réponse" );
return sbLog.toString( );
}
// boucle sur les tickets
for ( int nIdResource : listResourceWaitingId )
{
int nNbRelance = 0;
Timestamp dateDerniereRelance = null;
Ticket ticket = null;
boolean isTicketUpdated = false;
try
{
ticket = TicketHome.findByPrimaryKey( nIdResource );
if ( ticket != null )
{
nNbRelance = ticket.getNbRelance( );
dateDerniereRelance = ticket.getDateDerniereRelance( );
if ( ( dateDerniereRelance == null ) || ( nNbRelance == 0 ) )
{
List<ResourceHistory> allHistory = _resourceHistoryService.getAllHistoryByResource( ticket.getId( ), Ticket.TICKET_RESOURCE_TYPE,
nIdWorkflow );
allHistory.sort( Comparator.comparing( ResourceHistory::getCreationDate ).reversed( ) ); // tri du plus récent au plus ancien
for ( ResourceHistory resourceHistory : allHistory )
{
// pas de dernière relance, récupération de la date de dernière sollicitation
if ( ( resourceHistory.getAction( ).getId( ) == nIdActionSolliciterFromTerrainNiv2 ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskNotifyWaitingTicket.java | 198 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskTicketEmailExternalUser.java | 191 |
AdminUser user = AdminUserHome.findUserByLogin( AdminUserHome.findUserByEmail( emailRecipient ) );
TicketEmailExternalUserRecipient infosEmailExternalUser = new TicketEmailExternalUserRecipient( );
infosEmailExternalUser.setIdResourceHistory( nIdResourceHistory );
infosEmailExternalUser.setIdTask( getId( ) );
infosEmailExternalUser.setEmail( user.getEmail( ) );
List<ExternalUser> listUsers = _externalUserDAO.findExternalUser( user.getLastName( ), user.getEmail( ),
String.valueOf( config.getIdContactAttribute( ) ), null, null );
if ( ( listUsers != null ) && !listUsers.isEmpty( ) )
{
infosEmailExternalUser.setField( listUsers.iterator( ).next( ).getAdditionalAttribute( ) );
}
infosEmailExternalUser.setName( user.getLastName( ) );
infosEmailExternalUser.setFirstName( user.getFirstName( ) );
_ticketEmailExternalUserRecipientDAO.insert( infosEmailExternalUser );
}
}
String [ ] emailRecipientsCc; | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyDaemon.java | 223 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyLevel3Daemon.java | 203 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyUsagerDaemon.java | 203 |
.append( _workflowService.getState( nIdStateWaiting, Ticket.TICKET_RESOURCE_TYPE, nIdWorkflow, null ).getName( ) ).append( " dont :" );
sbLog.append( "\n " ).append( nNbTicketRelance ).append( " tickets relancés" );
sbLog.append( "\n " ).append( nNbTicketRetour ).append( " tickets en retour de sollicitation" );
AppLogService.info( sbLog.toString( ) );
return sbLog.toString( );
}
/**
* Vérifie les paramètres configurés
*
* @param sbLog
* logs
* @return true si conf OK, false sinon
*/
private boolean isConfParamOK( StringBuilder sbLog )
{
if ( _workflowService == null )
{
_workflowService = WorkflowService.getInstance( );
}
if ( ( nIdWorkflow <= 0 ) || !_workflowService.isAvailable( ) )
{
// pas de workflow trouvé
sbLog.append( "Workflow GRU non trouvé" );
AppLogService.error( "Workflow GRU non trouvé" );
return false;
}
if ( ( nIdActionRelance <= 0 ) || ( nIdStateWaiting <= 0 ) || ( nIdActionSolliciterFromTerrainNiv2 <= 0 ) || ( nIdActionSolliciterFromTerrainNiv3 <= 0 ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/message/TicketEmailExternalUserMessageDAO.java | 198 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/message/TicketEmailExternalUserMessageDAO.java | 229 |
daoUtil.setInt( 1, nIdMessageExternalUser );
daoUtil.executeQuery( );
int nIndex = 1;
if ( daoUtil.next( ) )
{
emailExternalUserMessage = new TicketEmailExternalUserMessage( );
emailExternalUserMessage.setIdMessageExternalUser( daoUtil.getInt( nIndex++ ) );
emailExternalUserMessage.setIdTicket( daoUtil.getInt( nIndex++ ) );
emailExternalUserMessage.setEmailRecipients( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setEmailRecipientsCc( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setMessageQuestion( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setMessageResponse( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setIsAnswered( daoUtil.getBoolean( nIndex++ ) );
emailExternalUserMessage.setEmailSubject( daoUtil.getString( nIndex++ ) );
}
}
return emailExternalUserMessage;
}
/**
* {@inheritDoc}
*/
@Override
public TicketEmailExternalUserMessage loadFirstByIdTicket( int nIdTicket ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/message/TicketEmailExternalUserMessageDAO.java | 198 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/message/TicketEmailExternalUserMessageDAO.java | 260 |
daoUtil.setInt( 1, nIdMessageExternalUser );
daoUtil.executeQuery( );
int nIndex = 1;
if ( daoUtil.next( ) )
{
emailExternalUserMessage = new TicketEmailExternalUserMessage( );
emailExternalUserMessage.setIdMessageExternalUser( daoUtil.getInt( nIndex++ ) );
emailExternalUserMessage.setIdTicket( daoUtil.getInt( nIndex++ ) );
emailExternalUserMessage.setEmailRecipients( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setEmailRecipientsCc( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setMessageQuestion( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setMessageResponse( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setIsAnswered( daoUtil.getBoolean( nIndex++ ) );
emailExternalUserMessage.setEmailSubject( daoUtil.getString( nIndex++ ) );
}
}
return emailExternalUserMessage;
}
/**
* {@inheritDoc}
*/
@Override
public TicketEmailExternalUserMessage loadFirstByIdTicket( int nIdTicket ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/config/TaskNotifyWaitingTicketConfigDAO.java | 103 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/config/TaskTicketEmailExternalUserConfigDAO.java | 63 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/config/TaskTicketEmailExternalUserConfigDAO.java | 106 |
daoUtil.setInt( nIndex++, config.getMessageDirectionExternalUser( ).ordinal( ) );
if ( config.getIdFollowingAction( ) == null )
{
daoUtil.setIntNull( nIndex++ );
}
else
{
daoUtil.setInt( nIndex++, config.getIdFollowingAction( ) );
}
if ( config.getIdContactAttribute( ) == null )
{
daoUtil.setIntNull( nIndex++ );
}
else
{
daoUtil.setInt( nIndex++, config.getIdContactAttribute( ) );
}
if ( config.getDefaultSubject( ) == null )
{
daoUtil.setString( nIndex++, StringUtils.EMPTY );
}
else
{
daoUtil.setString( nIndex++, config.getDefaultSubject( ) );
}
daoUtil.setInt( nIndex, config.getIdTask( ) ); | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskNotifyWaitingTicket.java | 260 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskTicketEmailExternalUser.java | 247 |
String strEmailRecipients = firstEmailsAgentDemand.getEmailRecipients( );
String strEmailRecipientsCc = firstEmailsAgentDemand.getEmailRecipientsCc( );
String strSubject = firstEmailsAgentDemand.getEmailSubject( );
// Create message item
TicketEmailExternalUserMessage emailExternalUser = new TicketEmailExternalUserMessage( );
emailExternalUser.setIdTicket( ticket.getId( ) );
emailExternalUser.setMessageQuestion( strAgentMessage );
emailExternalUser.setEmailRecipients( strEmailRecipients );
emailExternalUser.setEmailRecipientsCc( strEmailRecipientsCc );
emailExternalUser.setEmailSubject( strSubject );
_ticketEmailExternalUserDemandDAO.createQuestion( emailExternalUser );
// Create resource item
TicketEmailExternalUserHistory emailExternalUserHistory = new TicketEmailExternalUserHistory( );
emailExternalUserHistory.setIdResourceHistory( nIdResourceHistory );
emailExternalUserHistory.setIdTask( getId( ) );
emailExternalUserHistory.setIdMessageExternalUser( emailExternalUser.getIdMessageExternalUser( ) );
_ticketEmailExternalUserHistoryDAO.insert( emailExternalUserHistory );
}
/**
* Process external user to agent task (response)
*
* @param nIdResourceHistory
* resourceHistory ID
* @param ticket
* the current ticket
* @param request
* HttpRequest from doAction
*/
private void processExternalUserTask( int nIdResourceHistory, Ticket ticket, HttpServletRequest request ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/TicketPjMigrationDaemon.java | 292 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAgent.java | 221 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAttachments.java | 248 |
insertTicketPjFromMap( coreIdFileAgentFromIdResponseListClean, ticket, false );
}
}
/**
* Find the final list of id core from workflow_task_upload_files
*
* @param idHistory
* the id history
* @param idCoreUploadFinal
* the list of id file to complete
* @return the final list of id core from workflow_task_upload_files
*/
private List<Integer> findIsFileFromTaskUploadFiles( int idHistory, List<Integer> idCoreUploadFinal )
{
List<Integer> idCoreUploadFound = TicketTransfertPjService.findUploadFiles( idHistory );
idCoreUploadFinal.addAll( idCoreUploadFound );
return idCoreUploadFinal;
}
/**
* Find the final list of id core from workflow_task_ticketing_information
*
* @param idHistory
* the id history
* @param idResponseTotal
* the list of id response to complete
* @return the final list of id core from workflow_task_ticketing_information
*/
private List<Integer> findIdResponseFromTaskInfo( int idHistory, List<Integer> idResponseTotal )
{
List<Integer> idResponseFromTaskInfo = ticketTaskInfoService( idHistory );
idResponseTotal.addAll( idResponseFromTaskInfo );
return idResponseTotal;
}
/**
* Find the final list of id core from workflow_task_notify_gru_history
*
* @param idHistory
* the id history
* @param idResponseTotal
* the list of id response to complete
* @return the final list of id core from workflow_task_notify_gru_history
*/
private List<Integer> findIdResponseFromNotifyHistory( int idHistory, List<Integer> idResponseTotal )
{
List<Integer> idResponseFromNotifyHistory = ticketNotifyHsitoryService( idHistory );
idResponseTotal.addAll( idResponseFromNotifyHistory );
return idResponseTotal;
}
/**
* Insert pj in ticketing_ticket_pj and update file name in core_file with a id File list
*
* @param idFileList
* the id pj list
* @param ticket
* the ticket
* @param isUsagerPj
* true if the pj is from usager otherwise false
*/
private void insertTicketPjAndCleanIdCoreList( List<Integer> idFileList, Ticket ticket, boolean isUsagerPj ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/config/TaskNotifyWaitingTicketConfig.java | 41 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/config/TaskTicketEmailExternalUserConfig.java | 43 |
public class TaskNotifyWaitingTicketConfig extends TaskConfig
{
@NotNull
private MessageDirectionExternalUser _messageDirectionExternalUser;
private Integer _nIdFollowingAction;
private Integer _nIdContactAttribute;
private String _strDefaultSubject;
/**
* Gives the message direction
*
* @return the message direction
*/
public MessageDirectionExternalUser getMessageDirectionExternalUser( )
{
return _messageDirectionExternalUser;
}
/**
* Sets the message direction
*
* @param messageDirectionExternalUser
* the message direction to set
*/
public void setMessageDirectionExternalUser( MessageDirectionExternalUser messageDirectionExternalUser )
{
_messageDirectionExternalUser = messageDirectionExternalUser;
}
/**
* @return the idFollowingAction
*/
public Integer getIdFollowingAction( )
{
return _nIdFollowingAction;
}
/**
* @param nIdFollowingAction
* the idFollowingAction to set
*/
public void setIdFollowingAction( Integer nIdFollowingAction )
{
_nIdFollowingAction = nIdFollowingAction;
}
/**
* @return true if the direction is agent to external user
*/
public boolean isMessageToExternalUser( )
{
return MessageDirectionExternalUser.AGENT_TO_EXTERNAL_USER.equals( _messageDirectionExternalUser );
}
/**
* @return the idContactAttribute
*/
public Integer getIdContactAttribute( )
{
return _nIdContactAttribute;
}
/**
* @param nIdContactAttribute
* Id Contact Attribute
*/
public void setIdContactAttribute( Integer nIdContactAttribute )
{
_nIdContactAttribute = nIdContactAttribute;
}
public String getDefaultSubject( )
{
return _strDefaultSubject;
}
public void setDefaultSubject( String defaultSubject )
{
_strDefaultSubject = defaultSubject;
}
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/TicketPjMigrationDaemon.java | 117 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAttachments.java | 84 |
try
{
TransactionManager.beginTransaction( _plugin );
// recuperation des PJ usager
managePjforS3ForUsager( ticket );
// recuperation des PJ agent par id_history
List<Integer> idResponseTotal = new ArrayList<>( );
List<Integer> idCoreUploadFinal = new ArrayList<>( );
List<Integer> idHistoryList = _daoResourceHist.getIdHistoryListByResource( ticket.getId( ), _plugin );
for ( int idHistory : idHistoryList )
{
// tables workflow_task_ticketing_information et workflow_task_notify_gru_history
idResponseTotal = searchPjFromTaskInfoAndNotifyHistory( idHistory, idResponseTotal );
// table workflow_task_upload_files
idCoreUploadFinal = searchPjFromTaskUploadFiles( idHistory, idCoreUploadFinal );
}
if ( !idResponseTotal.isEmpty( ) )
{
managePjforS3WithIdResponse( idResponseTotal, ticket );
}
if ( !idCoreUploadFinal.isEmpty( ) )
{
// usager false
managePjforS3ForAgent( idCoreUploadFinal, ticket, false );
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/message/TicketEmailExternalUserMessageDAO.java | 298 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/message/TicketEmailExternalUserMessageDAO.java | 334 |
while ( daoUtil.next( ) )
{
nIndex = 1;
emailExternalUserMessage = new TicketEmailExternalUserMessage( );
emailExternalUserMessage.setIdMessageExternalUser( daoUtil.getInt( nIndex++ ) );
emailExternalUserMessage.setIdTicket( daoUtil.getInt( nIndex++ ) );
emailExternalUserMessage.setEmailRecipients( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setEmailRecipientsCc( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setMessageQuestion( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setMessageResponse( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setIsAnswered( daoUtil.getBoolean( nIndex++ ) );
emailExternalUserMessage.setEmailSubject( daoUtil.getString( nIndex++ ) ); | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyDaemon.java | 408 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyLevel3Daemon.java | 301 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyUsagerDaemon.java | 323 |
}
return 0;
}
/**
* Renvoie la date de prochaine relance
*
* @param dateDerniereRelance
* date de dernière relance
* @return date limite de relance
*/
private Date getDatelimiteRelance( Timestamp dateDerniereRelance )
{
Calendar calendarLimiteRelance = Calendar.getInstance( );
calendarLimiteRelance.setTime( dateDerniereRelance );
if ( isMinuteMode == 1 )
{
calendarLimiteRelance.add( Calendar.MINUTE, nFrequence );
// date dernière relance + n minutes
}
else
{
// date à 00h 00mn 00s
calendarLimiteRelance.set( Calendar.HOUR_OF_DAY, 0 );
calendarLimiteRelance.set( Calendar.MINUTE, 0 );
calendarLimiteRelance.set( Calendar.SECOND, 0 );
calendarLimiteRelance.set( Calendar.MILLISECOND, 0 );
calendarLimiteRelance.add( Calendar.DAY_OF_YEAR, nFrequence );
// date dernière relance + n jours
}
return calendarLimiteRelance.getTime( );
}
/**
*
* @param nIdResource
* identifiant de la ressource
* @param nIdWorkflow
* identifiant du workflow
* @return identifiant de la dernière action si dans la liste des actions de sollicitation
*/
private int getLastManualActionSollicitation( int nIdResource, int nIdWorkflow ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/TicketingTaskComponent.java | 211 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/TicketingTaskComponent.java | 249 |
ReferenceList lstRef = new ReferenceList( listUnitByLevel.size( ) );
ReferenceItem emptyReferenceItem = new ReferenceItem( );
emptyReferenceItem.setCode( StringUtils.EMPTY );
emptyReferenceItem.setName( I18nService.getLocalizedString( MESSAGE_DEFAULT_LABEL_ENTITY_TASK_FORM, Locale.FRANCE ) );
emptyReferenceItem.setChecked( true );
lstRef.add( emptyReferenceItem );
for ( AssigneeUnit unit : listUnitByLevel )
{
if ( RBACService.isAuthorized( unit, AssigneeUnit.PERMISSION_ASSIGN, (User) user ) )
{
lstRef.addItem( unit.getUnitId( ), unit.getName( ) );
}
}
return lstRef;
}
/**
* Load the data of all the unit objects allowed for assignment and returns them in form of a collection
*
* @param user
* connected admin user
* @param levelList
* the level list
* @return the list which contains the data of all the unit objects
*/
protected static ReferenceList getUnitsList( AdminUser user, List<Integer> levelList ) | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/config/TaskNotifyWaitingTicketConfigDAO.java | 150 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/config/TaskTicketEmailExternalUserConfigDAO.java | 156 |
config = new TaskNotifyWaitingTicketConfig( );
config.setIdTask( daoUtil.getInt( nIndex++ ) );
config.setMessageDirectionExternalUser( MessageDirectionExternalUser.valueOf( daoUtil.getInt( nIndex++ ) ) );
String strIdFollowingAction = daoUtil.getString( nIndex++ );
if ( StringUtils.isNotEmpty( strIdFollowingAction ) )
{
config.setIdFollowingAction( Integer.parseInt( strIdFollowingAction ) );
}
String strIdContactAttribute = daoUtil.getString( nIndex++ );
if ( StringUtils.isNotEmpty( strIdContactAttribute ) )
{
config.setIdContactAttribute( Integer.parseInt( strIdContactAttribute ) );
}
config.setDefaultSubject( daoUtil.getString( nIndex ) ); | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/TicketPjMigrationDaemon.java | 122 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/task/TaskAutomaticCentralizeAgent.java | 86 |
managePjforS3ForUsager( ticket );
// recuperation des PJ agent par id_history
List<Integer> idResponseTotal = new ArrayList<>( );
List<Integer> idCoreUploadFinal = new ArrayList<>( );
List<Integer> idHistoryList = _daoResourceHist.getIdHistoryListByResource( ticket.getId( ), _plugin );
for ( int idHistory : idHistoryList )
{
// tables workflow_task_ticketing_information et workflow_task_notify_gru_history
idResponseTotal = searchPjFromTaskInfoAndNotifyHistory( idHistory, idResponseTotal );
// table workflow_task_upload_files
idCoreUploadFinal = searchPjFromTaskUploadFiles( idHistory, idCoreUploadFinal );
}
if ( !idResponseTotal.isEmpty( ) )
{
managePjforS3WithIdResponse( idResponseTotal, ticket );
}
if ( !idCoreUploadFinal.isEmpty( ) )
{
// usager false
managePjforS3ForAgent( idCoreUploadFinal, ticket, false );
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/config/TaskNotifyWaitingTicketConfigDAO.java | 63 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/config/TaskNotifyWaitingTicketConfigDAO.java | 103 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/config/TaskTicketEmailExternalUserConfigDAO.java | 106 |
daoUtil.setInt( nIndex++, config.getMessageDirectionExternalUser( ).ordinal( ) );
if ( config.getIdFollowingAction( ) == null )
{
daoUtil.setIntNull( nIndex++ );
}
else
{
daoUtil.setInt( nIndex++, config.getIdFollowingAction( ) );
}
if ( config.getIdContactAttribute( ) == null )
{
daoUtil.setIntNull( nIndex++ );
}
else
{
daoUtil.setInt( nIndex++, config.getIdContactAttribute( ) );
}
if ( config.getDefaultSubject( ) == null )
{
daoUtil.setString( nIndex, StringUtils.EMPTY ); | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/message/TicketEmailExternalUserMessageDAO.java | 206 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/message/TicketEmailExternalUserMessageDAO.java | 237 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/message/TicketEmailExternalUserMessageDAO.java | 268 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/business/email/message/TicketEmailExternalUserMessageDAO.java | 301 |
emailExternalUserMessage = new TicketEmailExternalUserMessage( );
emailExternalUserMessage.setIdMessageExternalUser( daoUtil.getInt( nIndex++ ) );
emailExternalUserMessage.setIdTicket( daoUtil.getInt( nIndex++ ) );
emailExternalUserMessage.setEmailRecipients( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setEmailRecipientsCc( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setMessageQuestion( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setMessageResponse( daoUtil.getString( nIndex++ ) );
emailExternalUserMessage.setIsAnswered( daoUtil.getBoolean( nIndex++ ) );
emailExternalUserMessage.setEmailSubject( daoUtil.getString( nIndex++ ) ); | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/TicketingTaskComponent.java | 211 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/web/task/TicketingTaskComponent.java | 287 |
ReferenceList lstRef = new ReferenceList( listUnitByLevel.size( ) );
ReferenceItem emptyReferenceItem = new ReferenceItem( );
emptyReferenceItem.setCode( StringUtils.EMPTY );
emptyReferenceItem.setName( I18nService.getLocalizedString( MESSAGE_DEFAULT_LABEL_ENTITY_TASK_FORM, Locale.FRANCE ) );
emptyReferenceItem.setChecked( true );
lstRef.add( emptyReferenceItem );
for ( AssigneeUnit unit : listUnitByLevel )
{
if ( RBACService.isAuthorized( unit, AssigneeUnit.PERMISSION_ASSIGN, (User) user ) )
{
lstRef.addItem( unit.getUnitId( ), unit.getName( ) );
}
}
return lstRef;
} | |
| File | Line |
|---|---|
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyDaemon.java | 107 |
| fr/paris/lutece/plugins/workflow/modules/ticketing/service/daemon/NotifyLevel3Daemon.java | 90 |
private int nIdActionRetourFromContribNiv3 = AppPropertiesService.getPropertyInt( "workflow-ticketing.actions.id.return.sollicite.contrib_un",
TicketingConstants.PROPERTY_UNSET_INT );
// nombre de relances maximum avant retour de la sollicitation
private int nbRelanceMax = PluginConfigurationService.getInt( PluginConfigurationService.PROPERTY_RELANCE_NB_MAX, 3 );
// durée en jours entre chaque relance
private int nFrequence = PluginConfigurationService.getInt( PluginConfigurationService.PROPERTY_RELANCE_FREQUENCE, 10 );
@Override
public void run( )
{
setLastRunLogs( processNotification( ) );
}
private String processNotification( )
{
StringBuilder sbLog = new StringBuilder( );
boolean isParamOK = isConfParamOK( sbLog );
if ( !isParamOK )
{
return sbLog.toString( );
}
// Date execution
Date dateExecution = new Date( );
int nNbTicketRelance = 0;
int nNbTicketRetour = 0;
// step 0: récupération des ressources au statut "En attente d'une reponse"
List<Integer> listResourceWaitingId = _workflowService.getResourceIdListByIdState( nIdStateWaiting, Ticket.TICKET_RESOURCE_TYPE ); | |