Commit d72ac13f authored by Zheng Yi Fan's avatar Zheng Yi Fan

[add] 新增路口报警优化分析接口

parent 5588df8d
package net.wanji.opt.controllerv2.judgeanalysis;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.framework.i18n.I18nResourceBundle;
import net.wanji.common.framework.rest.JsonViewObject;
......@@ -16,11 +11,12 @@ import net.wanji.opt.controllerv2.judgeanalysis.design.response.crossproblem.Cro
import net.wanji.opt.controllerv2.judgeanalysis.design.response.crossproblem.CrossProblemTimeDirReasonResult;
import net.wanji.opt.entity.judgeanalysis.AnalysisProblemCrossDay;
import net.wanji.opt.servicev2.judgeanalysis.AnalysisProblemCrossDayService;
import org.springframework.beans.factory.annotation.Autowired;
import net.wanji.opt.vo2.CrossOptAnalysisVO;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.ws.rs.core.MediaType;
import java.util.List;
import java.util.Map;
......@@ -38,15 +34,9 @@ import java.util.Map;
@RequestMapping("/analysis-problem-cross-day")
@Slf4j
public class AnalysisProblemCrossDayController {
@Autowired
@Resource
private AnalysisProblemCrossDayService analysisProblemCrossDayService;
@ApiOperation(value = "单路口-问题数量总览", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiImplicitParams({
......@@ -133,5 +123,26 @@ public class AnalysisProblemCrossDayController {
return JsonViewObject.newInstance().success(null);
}
@ApiOperation(value = "路口报警优化分析", notes = "路口报警优化分析", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "crossID", value = "路口ID", required = true, dataType = "String"),
@ApiImplicitParam(name = "date", value = "日期", required = true, dataType = "String"),
})
@GetMapping(value = "/getCrossOptAnalysis")
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = CrossOptAnalysisVO.class),
})
public JsonViewObject getCrossOptAnalysis(String crossID, String date) {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
try {
CrossOptAnalysisVO info = analysisProblemCrossDayService.getCrossOptAnalysis(crossID, date);
return jsonViewObject.success(info);
} catch (Exception e) {
log.error("获取路口优化分析失败", e);
return jsonViewObject.fail("获取路口优化分析失败");
}
}
}
\ No newline at end of file
package net.wanji.opt.dao.mapper.judgeanalysis;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.wanji.opt.entity.judgeanalysis.AnalysisProblemCrossDay;
import net.wanji.opt.entity.judgeanalysis.CrossPoint;
import net.wanji.opt.synthesis.pojo.CrossOptAnalysisEntity;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.wanji.opt.entity.judgeanalysis.CrossPoint;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface AnalysisProblemCrossDayMapper extends BaseMapper<AnalysisProblemCrossDay>{
/**
......@@ -108,6 +107,9 @@ public interface AnalysisProblemCrossDayMapper extends BaseMapper<AnalysisProble
List<AnalysisProblemCrossDay> selectSingerByProblemTrend(Map<String, Object> map);
/**
* 获取路口优化数据
*/
List<CrossOptAnalysisEntity> getCrossOptAnalysis(@Param("crossID") String crossID, @Param("date") String date);
}
......@@ -7,7 +7,6 @@ import net.wanji.opt.synthesis.pojo.CrossRealTimeAlarmEntity;
import net.wanji.opt.synthesis.pojo.TrunkLineCrossProblemEntity;
import net.wanji.opt.synthesis.pojo.TrunkLineProblemDescribeEntity;
import net.wanji.opt.synthesis.pojo.vo.CrossOrGreenWaveTypeEntity;
import net.wanji.opt.vo2.CrossRealTimeAlarmVO;
import net.wanji.opt.vo2.TrunkLineCrossProblemVO;
import org.springframework.stereotype.Service;
......@@ -144,7 +143,7 @@ public class TrunkLineImpl implements TrunkLineService {
* @param status 状态
* @return 方向状态数组[方向1, 状态1, 方向2, 状态2]
*/
public String[] getDirStatus(Integer inDir, Integer outDir, String[] dirs, Integer status) {
private String[] getDirStatus(Integer inDir, Integer outDir, String[] dirs, Integer status) {
Map<String, String> IODirMap = getDirName(inDir, outDir);
String[] result = new String[4];
......
package net.wanji.opt.servicev2.judgeanalysis;
import net.wanji.opt.entity.judgeanalysis.AnalysisProblemCrossDay;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import net.wanji.opt.entity.judgeanalysis.AnalysisProblemCrossDay;
import net.wanji.opt.vo2.CrossOptAnalysisVO;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
import java.util.Map;
import java.util.Objects;
/**
* <p>
......@@ -69,5 +67,11 @@ public interface AnalysisProblemCrossDayService extends IService<AnalysisProblem
Map<String, Object> selectSingerByProblemTrend(String crossId, Integer startTime, Integer endTime) throws ParseException;
/**
* 路口优化信息
*
* @param crossID 路口ID
* @param date 日期
*/
CrossOptAnalysisVO getCrossOptAnalysis(String crossID, String date);
}
package net.wanji.opt.synthesis.pojo;
import lombok.Data;
@Data
public class CrossOptAnalysisEntity {
private String status;
private Integer num;
}
package net.wanji.opt.vo2;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "CrossOptAnalysisVO", description = "优化分析-路口报警优化分析")
public class CrossOptAnalysisVO {
@ApiModelProperty(value = "优化总数")
private Integer total = 0;
@ApiModelProperty(value = "已优化")
private Integer optimized = 0;
@ApiModelProperty(value = "未优化")
private Integer unoptimized = 0;
}
......@@ -338,6 +338,22 @@
GROUP BY dt, t1.event_type
ORDER BY dt
</select>
<select id="getCrossOptAnalysis" parameterType="map"
resultType="net.wanji.opt.synthesis.pojo.CrossOptAnalysisEntity">
select (
case
t.opt_status
when 0 then '未优化'
when 1 then '已优化'
end
) status,
count(0) num
from t_event_optimize_info t
where 1 = 1
and t.cross_id = #{crossID}
and t.dt = #{date}
group by status
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment