dev_xds
姜玉琦 2023-08-12 18:55:28 +08:00
commit ce13a2840b
5 changed files with 94 additions and 22 deletions

View File

@ -1,16 +1,18 @@
package com.yanzhu.jh.bigscreen.web.controller;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.redis.RedisCache;
import com.yanzhu.jh.project.domain.SurProject;
import com.yanzhu.jh.project.service.ISurProjectService;
import com.yanzhu.jh.project.domain.SurProjectBuildNodeData;
import com.yanzhu.jh.project.service.ISurProjectBuildNodeDataService;
import org.aspectj.weaver.loadtime.Aj;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.concurrent.TimeUnit;
@RestController
@RequestMapping("/bgscreen/project")
@ -22,6 +24,10 @@ public class ProjectController {
@Autowired
private ISurProjectBuildNodeDataService surProjectBuildNodeDataService;
@Autowired
private RedisCache redisCache;
@GetMapping("findProjectByDept")
public AjaxResult findProjectByDept(Long deptId){
SurProject surProject=new SurProject();
@ -50,7 +56,50 @@ public class ProjectController {
*/
@GetMapping("getProgressProjects")
public AjaxResult getProgressProjects(){
return AjaxResult.success(isurProjectService.selectProgressProjects());
String key="bgscreen_prj_getProgressProjects";
Object obj=redisCache.getCacheObject(key);
if(obj!=null){
return AjaxResult.success(obj);
}
List<SurProject> list= isurProjectService.selectProgressProjects();
redisCache.setCacheObject(key, list, Constants.BIGSCREEN_QUERY_CACHE, TimeUnit.MINUTES);
return AjaxResult.success(list);
}
@GetMapping("groupByProjectCategory")
public AjaxResult groupByProjectCategory(){
String key="bgscreen_prj_groupByProjectCategory";
Object obj=redisCache.getCacheObject(key);
if(obj!=null){
return AjaxResult.success(obj);
}
List<SurProject> list= isurProjectService.groupByProjectCategory();
redisCache.setCacheObject(key, list, Constants.BIGSCREEN_QUERY_CACHE, TimeUnit.MINUTES);
return AjaxResult.success(list);
}
@PostMapping("groupByCategory")
public AjaxResult groupByCategory(@RequestBody SurProject surProject){
String key="bgscreen_prj_groupByProjectCategory_"+surProject.getId()+"_"+surProject.getDeptId();
Object obj=redisCache.getCacheObject(key);
if(obj!=null){
return AjaxResult.success(obj);
}
List<SurProject> list=isurProjectService.groupByCategory(surProject);
redisCache.setCacheObject(key, list, Constants.BIGSCREEN_QUERY_CACHE, TimeUnit.MINUTES);
return AjaxResult.success(list);
}
@PostMapping("groupByLevel")
public AjaxResult groupByLevel(@RequestBody SurProject surProject){
String key="bgscreen_prj_groupByLevel_"+surProject.getId()+"_"+surProject.getDeptId();
Object obj=redisCache.getCacheObject(key);
if(obj!=null){
return AjaxResult.success(obj);
}
List<SurProject> list=isurProjectService.groupByLevel(surProject);
redisCache.setCacheObject(key, list, Constants.BIGSCREEN_QUERY_CACHE, TimeUnit.MINUTES);
return AjaxResult.success(list);
}
}

View File

@ -75,5 +75,7 @@ public interface SurProjectMapper
public List<SurProject> groupByLevel(SurProject surProject);
public List<SurProject> selectProgressProjects();
public List<SurProject> groupByProjectCategory();
}

View File

@ -60,4 +60,10 @@ public interface ISurProjectService
public int deleteSurProjectById(Long id);
public List<SurProject> selectProgressProjects();
public List<SurProject> groupByProjectCategory();
public List<SurProject> groupByCategory(SurProject surProject);
public List<SurProject> groupByLevel(SurProject surProject);
}

View File

@ -99,4 +99,19 @@ public class SurProjectServiceImpl implements ISurProjectService
public List<SurProject> selectProgressProjects() {
return surProjectMapper.selectProgressProjects();
}
@Override
public List<SurProject> groupByProjectCategory() {
return surProjectMapper.groupByProjectCategory();
}
@Override
public List<SurProject> groupByCategory(SurProject surProject) {
return surProjectMapper.groupByCategory(surProject);
}
@Override
public List<SurProject> groupByLevel(SurProject surProject) {
return surProjectMapper.groupByLevel(surProject);
}
}

View File

@ -280,16 +280,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="groupByCategory" parameterType="SurProject" resultMap="SurProjectResult">
SELECT b.dict_value id,b.dict_label projectName,cnt deptId FROM (
SELECT b.dict_value, b.dict_label,
<choose>
<when test="deptName = 'total'">
SUM(totalInvestment*10000)
</when>
<otherwise>
COUNT(1)
</otherwise>
</choose>
<if test="id==0">COUNT(1)*10000</if>
<if test="id==1">SUM(totalInvestment*10000.0)</if>
<if test="id==2">COUNT(1)*10000</if>
cnt FROM sur_project a, sys_dict_data b WHERE b.dict_type='project_category'
AND a.projectType=b.dict_value
AND a.projectType=b.dict_value and a.isDel=0
<if test="deptId>0">AND deptid=#{deptId}</if>
GROUP BY dict_value,dict_label
) a RIGHT JOIN sys_dict_data b ON a.dict_value=b.dict_value WHERE b.dict_type='project_category' ORDER BY cnt DESC
@ -297,16 +292,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="groupByLevel" parameterType="SurProject" resultMap="SurProjectResult">
SELECT b.dict_value id,b.dict_label projectName,cnt deptId FROM (
SELECT b.dict_value, b.dict_label,
<choose>
<when test="deptName = 'total'">
SUM(totalInvestment*10000)
</when>
<otherwise>
COUNT(1)
</otherwise>
</choose>
<if test="id==0">COUNT(1)*10000</if>
<if test="id==1">SUM(totalInvestment*10000.0)</if>
<if test="id==2">COUNT(1)*10000</if>
cnt FROM sur_project a, sys_dict_data b WHERE b.dict_type='project_level'
AND a.projiectLevel=b.dict_value
AND a.projiectLevel=b.dict_value and a.isDel=0
<if test="deptId>0">AND deptid=#{deptId}</if>
GROUP BY dict_value,dict_label
) a RIGHT JOIN sys_dict_data b ON a.dict_value=b.dict_value WHERE b.dict_type='project_level' ORDER BY cnt DESC
@ -317,4 +308,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where progressVisible = 0
order by projectSort,projectName
</select>
<select id="groupByProjectCategory" parameterType="SurProject" resultMap="SurProjectResult">
SELECT d.dict_value dept_name,d.dict_label projectName,p.projectSchedule ,COUNT(1) deptId FROM
(SELECT * FROM sys_dict_data WHERE dict_type='project_category') d
LEFT JOIN
(SELECT projectType,IF(projectSchedule IS NULL,1,projectSchedule) projectSchedule FROM sur_project WHERE isDel=0 ) p
ON p.projectType=d.dict_value
GROUP BY d.dict_value,d.dict_label,p.projectSchedule
</select>
</mapper>