dev_xds
姜玉琦 2023-08-20 15:46:47 +08:00
commit ff14675b64
5 changed files with 50 additions and 1 deletions

View File

@ -26,6 +26,15 @@ public class ProjectBuildNodeController {
return AjaxResult.success(surProjectBuildNodeDataService.selectScheduledAlerts(where));
}
/**
* -
* @param where
* @return
*/
@PostMapping("/countCompletionRate")
public AjaxResult countCompletionRate(@RequestBody SurProjectBuildNodeData where){
return AjaxResult.success(surProjectBuildNodeDataService.countCompletionRate(where));
}
/**
*
* @param where

View File

@ -72,4 +72,6 @@ public interface SurProjectBuildNodeDataMapper
* @return
*/
public List<SurProjectBuildNodeData> selectCurrent(SurProjectBuildNodeData where);
public List<SurProjectBuildNodeData> countCompletionRate(SurProjectBuildNodeData where);
}

View File

@ -77,4 +77,6 @@ public interface ISurProjectBuildNodeDataService
* @return
*/
public List<SurProjectBuildNodeData> selectCurrent(SurProjectBuildNodeData where);
public List<SurProjectBuildNodeData> countCompletionRate(SurProjectBuildNodeData where);
}

View File

@ -175,4 +175,9 @@ public class SurProjectBuildNodeDataServiceImpl implements ISurProjectBuildNodeD
public List<SurProjectBuildNodeData> selectCurrent(SurProjectBuildNodeData where) {
return surProjectBuildNodeDataMapper.selectCurrent(where);
}
@Override
public List<SurProjectBuildNodeData> countCompletionRate(SurProjectBuildNodeData where) {
return surProjectBuildNodeDataMapper.countCompletionRate(where);
}
}

View File

@ -145,7 +145,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectScheduledAlerts" parameterType="SurProjectBuildNodeData" resultMap="SurProjectBuildNodeDataResultNode">
SELECT * FROM vw_sur_project_build_node_data_current WHERE id IN (
SELECT MIN(id) FROM vw_sur_project_build_node_data_current
SELECT MAX(id) FROM vw_sur_project_build_node_data_current
WHERE LENGTH(node_lvl)=2
<if test="projectId !=null and projectId !=0">and project_id=#{projectId}</if>
<if test="id!=null and id!=0">and project_id in (SELECT id FROM sur_project WHERE deptid=#{id})</if>
@ -161,4 +161,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="projectId !=null and projectId !=0">and project_id=#{projectId}</if>
GROUP BY project_id)) b WHERE a.project_id=b.project_id AND LEFT(a.node_lvl,2)=b.node_lvl
</select>
<select id="countCompletionRate" parameterType="SurProjectBuildNodeData" resultMap="SurProjectBuildNodeDataResultNode">
SELECT IF(b.cnt,b.cnt,0) id ,IF(c.cnt,c.cnt,0) node_id,a.project_id,a.projectName,a.node_text,a.node_lvl FROM (
SELECT * FROM vw_sur_project_build_node_data_current WHERE id IN (
SELECT MAX(id) FROM vw_sur_project_build_node_data_current
WHERE LENGTH(node_lvl)=2
<if test="projectId !=null and projectId !=0">and project_id=#{projectId}</if>
<if test="id!=null and id!=0">and project_id in (SELECT id FROM sur_project WHERE deptid=#{id})</if>
GROUP BY project_id)) a LEFT JOIN (
SELECT a.project_id,COUNT(1) cnt FROM vw_sur_project_build_node_data_current a,
(SELECT * FROM vw_sur_project_build_node_data_current WHERE id IN (
SELECT MAX(id) FROM vw_sur_project_build_node_data_current
WHERE LENGTH(node_lvl)=2
<if test="projectId !=null and projectId !=0">and project_id=#{projectId}</if>
<if test="id!=null and id!=0">and project_id in (SELECT id FROM sur_project WHERE deptid=#{id})</if>
GROUP BY project_id)) b WHERE a.project_id=b.project_id AND LEFT(a.node_lvl,2)=b.node_lvl AND LENGTH(a.node_lvl)>2
GROUP BY a.project_id) b ON a.project_id =b.project_id
LEFT JOIN(
SELECT a.project_id,COUNT(1) cnt FROM vw_sur_project_build_node_data_current a,
(SELECT * FROM vw_sur_project_build_node_data_current WHERE id IN (
SELECT MAX(id) FROM vw_sur_project_build_node_data_current
WHERE LENGTH(node_lvl)=2
<if test="projectId !=null and projectId !=0">and project_id=#{projectId}</if>
<if test="id!=null and id!=0">and project_id in (SELECT id FROM sur_project WHERE deptid=#{id})</if>
GROUP BY project_id)) b WHERE a.project_id=b.project_id AND LEFT(a.node_lvl,2)=b.node_lvl AND LENGTH(a.node_lvl)>2 AND a.end_date IS NOT NULL
GROUP BY a.project_id
) c ON a.project_id=c.project_id
</select>
</mapper>