/** * */ package net.conselldemallorca.helium.webapp.v3.controller; import javax.servlet.http.HttpServletRequest; import net.conselldemallorca.helium.v3.core.api.dto.ExpedientDto; import net.conselldemallorca.helium.v3.core.api.service.ExpedientService; import net.conselldemallorca.helium.webapp.v3.helper.MissatgesHelper; import org.jbpm.JbpmException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; /** * Controlador per a la pàgina d'informació de l'expedient. * * @author Limit Tecnologies <limit@limit.es> */ @Controller @RequestMapping("/v3/expedient") public class ExpedientRegistroController extends BaseExpedientController { @Autowired private ExpedientService expedientService; @RequestMapping(value = "/{expedientId}/registre", method = RequestMethod.GET) public String registre( HttpServletRequest request, @PathVariable Long expedientId, @RequestParam(value = "tipus_retroces", required = false) Integer tipus_retroces, Model model) { ExpedientDto expedient = expedientService.findAmbId(expedientId); if (expedient.isPermisAdministration() || expedient.isPermisSupervision()) { boolean detall = tipus_retroces != null && tipus_retroces == 0; model.addAttribute( "tasques", expedientService.registreFindTasquesPerLogExpedient( expedientId)); model.addAttribute( "inicialProcesInstanceId", expedient.getProcessInstanceId()); model.addAttribute( "tipus_retroces", tipus_retroces); model.addAttribute( "expedient", expedient); model.addAttribute( "logs", expedientService.registreFindLogsOrdenatsPerData( expedient.getId(), detall)); } return "v3/expedientLog"; } @RequestMapping(value = "retrocedir") @ResponseBody public boolean retrocedir( HttpServletRequest request, @RequestParam(value = "id", required = true) Long expedientId, @RequestParam(value = "tipus_retroces", required = false) Integer tipus_retroces, @RequestParam(value = "logId", required = true) Long logId, @RequestParam(value = "retorn", required = true) String retorn, Model model) { boolean response = false; try { expedientService.registreRetrocedir( expedientId, logId, tipus_retroces == null || tipus_retroces != 0); MissatgesHelper.success(request, getMessage(request, "expedient.registre.correcte")); response = true; } catch (JbpmException ex ) { MissatgesHelper.error(request, getMessage(request, "error.executar.retroces") + ": "+ ex.getCause().getMessage()); logger.error(" NUMEROEXPEDIENT:"+expedientId+" No s'ha pogut executar el retrocés", ex); } return response; } @RequestMapping(value = "logRetrocedit") public String logRetrocedit( HttpServletRequest request, @RequestParam(value = "id", required = true) Long expedientId, @RequestParam(value = "logId", required = true) Long logId, Model mod, ModelMap model) { model.addAttribute( "logs", expedientService.registreFindLogsRetroceditsOrdenatsPerData( expedientId, logId)); model.addAttribute( "tasques", expedientService.registreFindTasquesPerLogExpedient( expedientId)); return "v3/expedient/logRetrocedit"; } @RequestMapping(value = "logAccionsTasca") public String logAccionsTasca( HttpServletRequest request, @RequestParam(value = "id", required = true) Long expedientId, @RequestParam(value = "targetId", required = true) Long targetId, ModelMap model) { model.addAttribute( "logs", expedientService.registreFindLogsTascaOrdenatsPerData( expedientId, targetId)); model.addAttribute( "tasques", expedientService.registreFindTasquesPerLogExpedient( expedientId)); return "v3/expedient/logRetrocedit"; } @RequestMapping(value = "scriptForm/{logId}") public String logScript( HttpServletRequest request, @PathVariable Long logId, ModelMap model) { model.addAttribute( "log", expedientService.registreFindLogById( logId)); return "v3/expedient/logScript"; } private static final Logger logger = LoggerFactory.getLogger(ExpedientRegistroController.class); }