/** * */ package net.conselldemallorca.helium.webapp.v3.controller; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import net.conselldemallorca.helium.v3.core.api.dto.SeleccioOpcioDto; import net.conselldemallorca.helium.v3.core.api.service.TascaService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; 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 fer consultes als dominis de dins d'un expedient. * * Emprat pels camps de tipus suggest dels formularis de les tasques * i dels filtres de consultes per tipus. * * @author Limit Tecnologies <limit@limit.es> */ @Controller @RequestMapping("/v3/domini") public class ExpedientConsultaDominioController extends BaseExpedientController { @Autowired private TascaService tascaService; @RequestMapping(value = "/consulta", method = RequestMethod.GET) @ResponseBody public List<SeleccioOpcioDto> consultaCamp( HttpServletRequest request, @RequestParam(value = "taskId", required = false) String taskId, @RequestParam(value = "processInstanceId", required = false) String processInstanceId, @RequestParam(value = "campId", required = true) Long campId, @RequestParam(value = "q", required = false) String textInicial, @RequestParam(value = "valors", required = false) String valors, ModelMap model) { return tascaService.findValorsPerCampDesplegable( taskId, null, campId, null, textInicial, null, null, getMapDelsValors(valors)); } private Map<String, Object> getMapDelsValors(String valors) { if (valors == null) return null; Map<String, Object> resposta = new HashMap<String, Object>(); String[] parelles = valors.split(","); for (int i = 0; i < parelles.length; i++) { String[] parts = parelles[i].split(":"); if (parts.length == 2) resposta.put(parts[0], parts[1]); } return resposta; } @RequestMapping(value = "/consulta/inicial/{taskId}/{campId}/{codi}", method = RequestMethod.GET) @ResponseBody public SeleccioOpcioDto consultaCampInicial( @PathVariable(value = "taskId") String taskId, @PathVariable(value = "campId") Long campId, @PathVariable(value = "codi") String codi, ModelMap model) { List<SeleccioOpcioDto> opcions = tascaService.findValorsPerCampDesplegable( taskId, null, campId, null, null, null, null, null); for (SeleccioOpcioDto sel : opcions) { if (sel.getCodi().equals(codi)) { return sel; } } return new SeleccioOpcioDto(); } @RequestMapping(value = "/consulta/{taskId}/{campId}/{valor}", method = RequestMethod.GET) @ResponseBody public List<SeleccioOpcioDto> consultaCampValor( @PathVariable (value = "taskId") String taskId, @PathVariable (value = "campId") Long campId, @PathVariable (value = "valor") String textInicial, ModelMap model) { return tascaService.findValorsPerCampDesplegable( taskId, null, campId, null, textInicial, null, null, null); } @RequestMapping(value = "/consulta/inicial/{campId}/{codi}", method = RequestMethod.GET) @ResponseBody public SeleccioOpcioDto consultaCampInicial( @PathVariable (value = "campId") Long campId, @PathVariable (value = "codi") String codi, ModelMap model) { List<SeleccioOpcioDto> opcions = tascaService.findValorsPerCampDesplegable( null, null, campId, codi, null, null, null, null); for (SeleccioOpcioDto sel : opcions) { if (sel.getCodi().equals(codi)) { return sel; } } return new SeleccioOpcioDto(); } @RequestMapping(value = "/consulta/{campId}/{valor}", method = RequestMethod.GET) @ResponseBody public List<SeleccioOpcioDto> consultaCampValor( @PathVariable (value = "campId") Long campId, @PathVariable (value = "valor") String valor, ModelMap model) { return tascaService.findValorsPerCampDesplegable( null, null, campId, null, valor, null, null, null); } }