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)); 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 * @param where

View File

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

View File

@ -77,4 +77,6 @@ public interface ISurProjectBuildNodeDataService
* @return * @return
*/ */
public List<SurProjectBuildNodeData> selectCurrent(SurProjectBuildNodeData where); 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) { public List<SurProjectBuildNodeData> selectCurrent(SurProjectBuildNodeData where) {
return surProjectBuildNodeDataMapper.selectCurrent(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 id="selectScheduledAlerts" parameterType="SurProjectBuildNodeData" resultMap="SurProjectBuildNodeDataResultNode">
SELECT * FROM vw_sur_project_build_node_data_current WHERE id IN ( 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 WHERE LENGTH(node_lvl)=2
<if test="projectId !=null and projectId !=0">and project_id=#{projectId}</if> <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> <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> <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 GROUP BY project_id)) b WHERE a.project_id=b.project_id AND LEFT(a.node_lvl,2)=b.node_lvl
</select> </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> </mapper>