diff --git a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java index 7de6a57..53cc0d5 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java @@ -226,9 +226,15 @@ public class ProcessController { */ @ResponseBody @GetMapping("/projects") - public List> query(@RequestParam String q) { - return projectRepository.findBudgetPassedProjects(q) - .stream() + public List> query(@RequestParam String q, @RequestParam ProcessType processType) { + List projects = Collections.emptyList(); + if (processType == ProcessType.procurement_contract) { + projects = projectRepository.findBudgetPassedProjects(q); + } + else if (processType == ProcessType.sale_contract) { + projects = projectRepository.findBudgetPassedProjectsForSaleContract(q); + } + return projects.stream() .map(project -> { HashMap map = new HashMap<>(); map.put("id", project.getId()); diff --git a/src/main/java/cn/palmte/work/model/ProjectRepository.java b/src/main/java/cn/palmte/work/model/ProjectRepository.java index 1fbd56b..55b55aa 100644 --- a/src/main/java/cn/palmte/work/model/ProjectRepository.java +++ b/src/main/java/cn/palmte/work/model/ProjectRepository.java @@ -48,4 +48,15 @@ public interface ProjectRepository extends JpaRepository { nativeQuery = true) List findBudgetPassedProjects(@Param("q") String query); + /** + * 查询预算通过的项目 + */ + @Query(value = "select distinct p.* from project p left join project_process pp on p.id = pp.project_id " + + "where (p.`status` > 5 or (p.`status` = 5 and p.approve_status_budget = 2)) " + + " and (p.`project_no` like concat('%', :q, '%') or p.`name` like concat('%', :q, '%')) " + + " and (pp.process_type is null or (pp.process_type <> 'sale_contract' and " + + " (select pps.process_type from project_process pps where pps.id = pp.id) <> 'procurement_contract'))", + nativeQuery = true) + List findBudgetPassedProjectsForSaleContract(@Param("q") String query); + } diff --git a/src/main/resources/templates/admin/business/process-new.ftl b/src/main/resources/templates/admin/business/process-new.ftl index 3835f95..0c87e2f 100644 --- a/src/main/resources/templates/admin/business/process-new.ftl +++ b/src/main/resources/templates/admin/business/process-new.ftl @@ -851,7 +851,7 @@ callback([]) return } - fetch("${base}/process/projects?q=" + q) + fetch("${base}/process/projects?q=" + q + "&processType=" + this.processType) .then(checkStatus) .then(parseJSON) .then(data => {