项目管理分析,整体效能分析
This commit is contained in:
parent
c1ddca32fc
commit
46ac46b659
|
|
@ -30,7 +30,7 @@ public class OverallEfficiencyAnalysisController extends BaseController {
|
|||
* @param overallEfficiency 传参
|
||||
* @return 查询整体效能分析
|
||||
*/
|
||||
@GetMapping("selectOverallEfficiencyData")
|
||||
@GetMapping("/selectOverallEfficiencyData")
|
||||
public AjaxResult selectOverallEfficiencyData(OverallEfficiency overallEfficiency) {
|
||||
try {
|
||||
return overallEfficiencyAnalysisService.selectOverallEfficiencyData(overallEfficiency);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public class ProjectDataController extends BaseController {
|
|||
* @param projectData 传参
|
||||
* @return 项目管理分析
|
||||
*/
|
||||
@GetMapping("selectProjectData")
|
||||
@GetMapping("/selectProjectData")
|
||||
public AjaxResult selectProjectData(ProjectData projectData) {
|
||||
try {
|
||||
return projectDataService.selectProjectData(projectData);
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import com.securitycontrol.screen.mapper.OverallEfficiencyAnalysisMapper;
|
|||
import com.securitycontrol.screen.service.OverallEfficiencyAnalysisService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -37,32 +38,64 @@ public class OverallEfficiencyAnalysisServiceImpl implements OverallEfficiencyAn
|
|||
res.put("天气",overallEfficiencyList);
|
||||
//获取施工天数
|
||||
OverallEfficiency overallEfficiencyNew = overallEfficiencyAnalysisMapper.getPlanDay(overallEfficiency);
|
||||
res.put("计划施工天数",overallEfficiencyNew.getPlanDay());
|
||||
res.put("有效施工天数",overallEfficiencyNew.getEffectiveDay());
|
||||
if (StringUtils.isEmpty(overallEfficiencyNew)){
|
||||
res.put("计划施工天数",0);
|
||||
res.put("有效施工天数",0);
|
||||
}else {
|
||||
res.put("计划施工天数",overallEfficiencyNew.getPlanDay());
|
||||
res.put("有效施工天数",overallEfficiencyNew.getEffectiveDay());
|
||||
}
|
||||
|
||||
//质量分析
|
||||
SjProjectQualityVo sjProjectQuality = overallEfficiencyAnalysisMapper.getSjProjectQuality();
|
||||
res.put("总验收项",sjProjectQuality.getTotalItem());
|
||||
res.put("已验收项",sjProjectQuality.getAcceptItem());
|
||||
res.put("验收率",sjProjectQuality.getAcceptRate());
|
||||
res.put("主设备试验调试一次通过率",sjProjectQuality.getMainAcceptRate());
|
||||
if (StringUtils.isEmpty(overallEfficiencyNew)){
|
||||
res.put("总验收项",0);
|
||||
res.put("已验收项",0);
|
||||
res.put("验收率",0);
|
||||
res.put("主设备试验调试一次通过率",0);
|
||||
}else {
|
||||
res.put("总验收项",sjProjectQuality.getTotalItem());
|
||||
res.put("已验收项",sjProjectQuality.getAcceptItem());
|
||||
res.put("验收率",sjProjectQuality.getAcceptRate());
|
||||
res.put("主设备试验调试一次通过率",sjProjectQuality.getMainAcceptRate());
|
||||
}
|
||||
|
||||
//安全预警
|
||||
List<SjProjectSafety> sjProjectSafetyList = overallEfficiencyAnalysisMapper.getSjProjectSafety(overallEfficiency);
|
||||
res.put("安全预警",sjProjectSafetyList);
|
||||
//进度分析
|
||||
OverallEfficiency overallEfficiencyProgress = overallEfficiencyAnalysisMapper.getProgress(overallEfficiency);
|
||||
res.put("当前进度",overallEfficiencyProgress.getCurrentProgress()+"%");
|
||||
res.put("计划进度",overallEfficiencyProgress.getPlanProgress()+"%");
|
||||
res.put("进度偏差",overallEfficiencyProgress.getDeviationPercent()+"%");
|
||||
if (StringUtils.isEmpty(overallEfficiencyProgress)){
|
||||
res.put("当前进度",0);
|
||||
res.put("计划进度",0);
|
||||
res.put("进度偏差",0);
|
||||
}else {
|
||||
res.put("当前进度",overallEfficiencyProgress.getCurrentProgress()+"%");
|
||||
res.put("计划进度",overallEfficiencyProgress.getPlanProgress()+"%");
|
||||
res.put("进度偏差",overallEfficiencyProgress.getDeviationPercent()+"%");
|
||||
}
|
||||
//成本分析 1--计划 2--实际
|
||||
overallEfficiency.setDataType("1");
|
||||
OverallEfficiency overallEfficiencyCost = overallEfficiencyAnalysisMapper.getCost(overallEfficiency);
|
||||
overallEfficiency.setDataType("2");
|
||||
OverallEfficiency overallEfficiencyCost2 = overallEfficiencyAnalysisMapper.getCost(overallEfficiency);
|
||||
res.put("计划成本",overallEfficiencyCost.getDataMoney());
|
||||
res.put("实际成本",overallEfficiencyCost2.getDataMoney());
|
||||
BigDecimal difference = overallEfficiencyCost2.getDataMoney().subtract(overallEfficiencyCost.getDataMoney()); // B - A
|
||||
BigDecimal ratio = difference.divide(overallEfficiencyCost.getDataMoney(), 2, RoundingMode.HALF_UP); // 除法,保留scale位小数,四舍五入
|
||||
res.put("缩减成本",ratio+"%");
|
||||
if(StringUtils.isEmpty(overallEfficiencyCost)){
|
||||
res.put("计划成本",BigDecimal.ZERO);
|
||||
}else {
|
||||
res.put("计划成本",overallEfficiencyCost.getDataMoney());
|
||||
}
|
||||
if(StringUtils.isEmpty(overallEfficiencyCost2)){
|
||||
res.put("实际成本",BigDecimal.ZERO);
|
||||
}else {
|
||||
res.put("实际成本",overallEfficiencyCost2.getDataMoney());
|
||||
}
|
||||
if(StringUtils.isEmpty(overallEfficiencyCost) || StringUtils.isEmpty(overallEfficiencyCost2)){
|
||||
res.put("实际成本",BigDecimal.ZERO);
|
||||
}else {
|
||||
BigDecimal difference = overallEfficiencyCost2.getDataMoney().subtract(overallEfficiencyCost.getDataMoney()); // B - A
|
||||
BigDecimal ratio = difference.divide(overallEfficiencyCost.getDataMoney(), 2, RoundingMode.HALF_UP); // 除法,保留scale位小数,四舍五入
|
||||
res.put("缩减成本",ratio+"%");
|
||||
}
|
||||
return AjaxResult.success(res);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import com.securitycontrol.screen.mapper.SjConstructionProgressMapper;
|
|||
import com.securitycontrol.screen.service.ProjectDataService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -45,26 +46,25 @@ public class ProjectDataServiceImpl implements ProjectDataService {
|
|||
overallEfficiency.setEndTime(projectData.getEndTime());
|
||||
//进度分析
|
||||
OverallEfficiency overallEfficiencyProgress = overallEfficiencyAnalysisMapper.getProgress(overallEfficiency);
|
||||
res.put("当前工程进度",overallEfficiencyProgress.getCurrentProgress()+"%");
|
||||
if (StringUtils.isEmpty(overallEfficiencyProgress)){
|
||||
res.put("当前工程进度",0);
|
||||
}else {
|
||||
res.put("当前工程进度",overallEfficiencyProgress.getCurrentProgress()+"%");
|
||||
}
|
||||
|
||||
//成本分析 1--计划 2--实际
|
||||
overallEfficiency.setDataType("1");
|
||||
OverallEfficiency overallEfficiencyCost = overallEfficiencyAnalysisMapper.getCost(overallEfficiency);
|
||||
overallEfficiency.setDataType("2");
|
||||
OverallEfficiency overallEfficiencyCost2 = overallEfficiencyAnalysisMapper.getCost(overallEfficiency);
|
||||
BigDecimal ratio = overallEfficiencyCost2.getDataMoney().divide(overallEfficiencyCost.getDataMoney(), 2, RoundingMode.HALF_UP); // 除法,保留scale位小数,四舍五入
|
||||
res.put("当前成本投入",ratio+"%");
|
||||
if (StringUtils.isEmpty(overallEfficiencyCost) || StringUtils.isEmpty(overallEfficiencyCost2) ){
|
||||
res.put("当前成本投入",0);
|
||||
}else {
|
||||
BigDecimal ratio = overallEfficiencyCost2.getDataMoney().divide(overallEfficiencyCost.getDataMoney(), 2, RoundingMode.HALF_UP); // 除法,保留scale位小数,四舍五入
|
||||
res.put("当前成本投入",ratio+"%");
|
||||
}
|
||||
//折线图
|
||||
SjConstructionProgress o = new SjConstructionProgress();
|
||||
String sql = "SELECT DATE_ADD("+projectData.getStartTime()+", INTERVAL (ones.a + tens.a * 10) DAY) AS dt\n" +
|
||||
" FROM\n" +
|
||||
" (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3\n" +
|
||||
" UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7\n" +
|
||||
" UNION ALL SELECT 8 UNION ALL SELECT 9) AS ones\n" +
|
||||
" CROSS JOIN\n" +
|
||||
" (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3\n" +
|
||||
" UNION ALL SELECT 4 UNION ALL SELECT 5) AS tens\n" +
|
||||
" WHERE DATE_ADD("+projectData.getStartTime()+", INTERVAL (ones.a + tens.a * 10) DAY) <= "+projectData.getEndTime();
|
||||
o.setSql(sql);
|
||||
o.setEndTime(projectData.getEndTime());
|
||||
o.setStartTime(projectData.getStartTime());
|
||||
List<SjConstructionProgress> echartsList = sjConstructionProgressMapper.selectProProgress(o);
|
||||
|
|
@ -72,7 +72,7 @@ public class ProjectDataServiceImpl implements ProjectDataService {
|
|||
.collect(Collectors.groupingBy(SjConstructionProgress::getProType));
|
||||
res.put("项目情况详情",groupedByProTypeEcharts);
|
||||
//今日风险
|
||||
Integer countNum=0 ;
|
||||
int countNum=0 ;
|
||||
projectData.setDateTime(DateUtils.getDate());
|
||||
List<ProjectData> projectSafetyDataList = projectDataMapper.getTodaySafety(projectData);
|
||||
for (ProjectData projectDataNew:projectSafetyDataList) {
|
||||
|
|
@ -98,10 +98,10 @@ public class ProjectDataServiceImpl implements ProjectDataService {
|
|||
projectDataCountNum.setNum(countNum);
|
||||
projectSafetyDataList2.add(projectDataCountNum);
|
||||
res.put("项目风险",projectSafetyDataList2);
|
||||
Integer xhCount = projectDataMapper.getXhSafety(projectData);
|
||||
int xhCount = projectDataMapper.getXhSafety(projectData);
|
||||
res.put("已销号风险",xhCount);
|
||||
res.put("剩余风险",countNum-xhCount);
|
||||
Integer twoCount = projectDataMapper.getTwoSafety(projectData);
|
||||
int twoCount = projectDataMapper.getTwoSafety(projectData);
|
||||
res.put("剩余二级及以上风险",twoCount);
|
||||
return AjaxResult.success(res);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
SELECT
|
||||
SUM(
|
||||
DATEDIFF(LEAST(plan_end_time, #{endTime}), GREATEST(plan_start_time, #{startTime})) + 1
|
||||
) AS total_plan_days,
|
||||
) AS planDay,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN start_time IS NOT NULL AND end_time IS NOT NULL THEN
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
)
|
||||
ELSE 0
|
||||
END
|
||||
) AS total_actual_days
|
||||
) AS effectiveDay
|
||||
FROM
|
||||
sj_construction_progress
|
||||
WHERE
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
|
||||
<select id="getCost" resultType="com.securitycontrol.screen.domain.ProjectData">
|
||||
select date_time,data_money
|
||||
select date_time as dateTime,data_money as dataMoney
|
||||
from sj_project_manage where data_type= #{dataType}
|
||||
and date_time between #{startTime} and #{endTime}
|
||||
</select>
|
||||
|
|
|
|||
Loading…
Reference in New Issue