Commit 06416969 by 宋珺琪

数据统计(五色)

parent 6976236c
......@@ -41,5 +41,8 @@ public class DataStatisticsParams {
private String tlms;
//图例颜色
private String tlys;
//统计计算(选择环比或者同比)
private String tjjs;
}
......@@ -161,4 +161,24 @@ public class WaringVo implements Serializable {
@TableField(exist = false)
private String endTime;
@TableField(exist = false)
private String tlms1;
@TableField(exist = false)
private String tlys1;
@TableField(exist = false)
private String tlms2;
@TableField(exist = false)
private String tlys2;
@TableField(exist = false)
private String tlms3;
@TableField(exist = false)
private String tlys3;
@TableField(exist = false)
private String tlms4;
@TableField(exist = false)
private String tlys4;
@TableField(exist = false)
private String tlms5;
@TableField(exist = false)
private String tlys5;
}
......@@ -25,8 +25,7 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@RestController
......@@ -322,13 +321,43 @@ public class WarningController {
skWarningRule.setLrsj(new Date());
skWarningRule.setGxsj(new Date());
skWarningRule.setIsdeleted("0");
ArrayList<String> ms = new ArrayList<>();
//描述和颜色
if (StringUtils.isNotEmpty(waringVo.getTlms1())){
ms.add(waringVo.getTlms1());
} if (StringUtils.isNotEmpty(waringVo.getTlms2())){
ms.add(waringVo.getTlms2());
} if (StringUtils.isNotEmpty(waringVo.getTlms3())){
ms.add(waringVo.getTlms3());
} if (StringUtils.isNotEmpty(waringVo.getTlms4())){
ms.add(waringVo.getTlms4());
} if (StringUtils.isNotEmpty(waringVo.getTlms5())){
ms.add(waringVo.getTlms5());
}
String result = ms.stream().collect(Collectors.joining(","));
skWarningRule.setTlms(result);
ArrayList<String> ys =new ArrayList<>();
if (StringUtils.isNotEmpty(waringVo.getTlys1())){
ys.add(waringVo.getTlys1());
} if (StringUtils.isNotEmpty(waringVo.getTlys2())){
ys.add(waringVo.getTlys2());
} if (StringUtils.isNotEmpty(waringVo.getTlys3())){
ys.add(waringVo.getTlys3());
} if (StringUtils.isNotEmpty(waringVo.getTlys4())){
ys.add(waringVo.getTlys4());
} if (StringUtils.isNotEmpty(waringVo.getTlys5())){
ys.add(waringVo.getTlys5());
}
String result1 = ys.stream().collect(Collectors.joining(","));
skWarningRule.setTlys(result1);
int insert1 = warningRuleMapper.insert(skWarningRule);
return new MapRestResult(200,"ok",null);
}
@PostMapping("DeletemxAndGz")
@ApiOperation(value = "删除模型和规则")
@OperLog(message = "删除模型和规则", operation = OperationType.QUERY)
......
......@@ -322,6 +322,9 @@ public class HnTbStRygxController {
}
//团伙信息集合
List<Map<String, Object>> rythInfoList = (List<Map<String, Object>>) redisTemplate.opsForValue().get(username + ":" + taskId + ":" + TEAM_KEY + teamNum);
if (rythInfoList.size()==0){
return new MapRestResult(200,"暂无数据",null);
}
//指定团伙集合
List<Map<String, Object>> rythInfoByIdList = new ArrayList<>();
......
......@@ -12,6 +12,7 @@ public interface DataStatisticsMapperCqxz {
Map getYearMonthLaDount(DataStatisticsParams params);
//同比
List<Map<String,Object>> getXzqhLaCount(DataStatisticsParams params);
List <SysDictitem> selectXzqhdmBycq();
......@@ -22,4 +23,7 @@ public interface DataStatisticsMapperCqxz {
//如果是父级 获取所有pid为父级代码的code
List<String> getCodeList(String code, String type);
//环比
List<Map<String,Object>> getQYLaCDount(DataStatisticsParams params);
}
......@@ -92,4 +92,43 @@
</if>
</select>
<!--区域立案数-->
<select id="getQYLaCDount" resultType="java.util.Map"
parameterType="com.founder.commonutils.model.newPublicEntity.WarningEntity.DataStatisticsParams">
SELECT COUNT(*) AS "num",xzqhdm as "xzqhdm",(select name from sys_dictitem where groupID='CODE_XZQH' AND
CODE=xzqhdm and scbz = '0') as "xzqhMc"
FROM (
select a.ASJBH,LEFT(a.LADW_GAJGJGDM,6) as xzqhdm
from tb_st_asj a where a.xxsc_pdbz='0'
and ASJFSSJ_ASJFSKSSJ<![CDATA[>=]]> str_to_date(#{xaStartTime},'%Y-%m-%d %H:%i:%s')
and ASJFSSJ_ASJFSKSSJ<![CDATA[<=]]> str_to_date(#{xaEndTime},'%Y-%m-%d %H:%i:%s')
and larq<![CDATA[>=]]> str_to_date(#{startTime},'%Y-%m-%d %H:%i:%s')
and larq<![CDATA[<=]]> str_to_date(#{endTime},'%Y-%m-%d %H:%i:%s')
<if test="xzqhdm!=null and xzqhdm!=''">
and LADW_GAJGJGDM LIKE #{xzqhdm} || '%'
</if>
<if test="ajztdm!=null and ajztdm!=''">
and zcjddm in (${ajztdm})
</if>
<if test="xzlb!=null and xzlb!=''">
and ZATZ_JYQK in (${xzlb})
</if>
<if test="ajlbdm!=null and ajlbdm!=''">
and AJLBDM in (${ajlbdm})
</if>
) s
group by xzqhdm
</select>
<!-- 根据截取的代码模糊查询所有code-->
<select id="getCodeList2" resultType="java.lang.String">
select CODE from sys_dictitem
where scbz='0'
<if test="type!=null and type!=''">
AND GROUPID = #{ type , jdbcType=VARCHAR }
</if>
<if test="code!=null and code!=''">
AND CODE like concat( #{ code , jdbcType=VARCHAR },'%')
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -46,8 +46,6 @@ public class DataStatisticsServiceImpl implements DataStatisticsService {
@Override
public JSONObject getIntegratedTwoMapNew(DataStatisticsParams params) {
JSONObject resultJson = new JSONObject();
String kssj = params.getStartTime();
String jssj = params.getEndTime();
JSONArray threeLa = new JSONArray();
List<Map<String, Object>> mapIn = new ArrayList<>();
......@@ -110,7 +108,6 @@ public class DataStatisticsServiceImpl implements DataStatisticsService {
params.setAjztdm( String.join(",", zcdmList));//实体设置侦察阶段代码
}
String[] split1 = waringVo.getAjlbdm().split(",");
List<String> ajlbdmList = new ArrayList<>();
for (String code : split1) {
......@@ -147,7 +144,7 @@ public class DataStatisticsServiceImpl implements DataStatisticsService {
params.setTlms(waringVo.getTlms());//图例描述
params.setTlys(waringVo.getTlys());//图例颜色
params.setTjjs(waringVo.getTjjs());//图例颜色
return params;
}
......@@ -319,13 +316,16 @@ public class DataStatisticsServiceImpl implements DataStatisticsService {
public List<Map<String, Object>> mapTjNew(DataStatisticsParams params) {
// 设置保留几位小数,这里设置的是保留两位小数
percentInstance.setMinimumFractionDigits(2);
if (params.getTjjs().equals("同比")){
JSONObject j1 = getTqRangeNew(params.getStartTime(), params.getEndTime());
/*当前时间现案时间*/
String startTimela = j1.getString("kssj");
String endTimela = j1.getString("jssj");
/*当前时间同期现案时间*/
/*当前时间同期现案时间 同比时间*/
String startTime2la = j1.getString("startLastTqYear");
String endTime2la = j1.getString("endLastTqYear");
JSONObject afsjTimela = getAfsjRangeNew(startTimela,endTimela);
params.setXaStartTime(afsjTimela.getString("afkssj"));
params.setXaEndTime(afsjTimela.getString("afjssj"));
......@@ -349,8 +349,58 @@ public class DataStatisticsServiceImpl implements DataStatisticsService {
List<Map<String, Object>> list = gtzf(xzqhlaList, xzqhhistoyrlaList);
return list;
} else {
DataStatisticsParams params2 = new DataStatisticsParams();
BeanUtils.copyProperties(params,params2);
JSONObject j1 = getTqRangeNew(params.getStartTime(), params.getEndTime());
/*当前时间现案时间*/
String startThisYear = j1.getString("kssj");
String endThisYear = j1.getString("jssj");
//各区立案数
JSONObject afsjDqfirst1 = getAfsjRange(startThisYear,endThisYear);
params2.setXaStartTime(afsjDqfirst1.getString("afkssj"));
params2.setXaEndTime(afsjDqfirst1.getString("afjssj"));
params2.setStartTime(startThisYear);
params2.setEndTime(endThisYear);
List<Map<String, Object>> bzlaListAll = dataStatisticsMapperCqxz.getQYLaCDount(params2);
bzlaListAll= addNoHaveXzqh(bzlaListAll);
bzlaListAll= tsqxcl(bzlaListAll);
//当前时间环比立案数
JSONObject j2 = getDtHbTime(params.getStartTime(), params.getEndTime());
JSONObject jhb = getTqRangeNew(j2.getString("hbkssj"), j2.getString("hbjssj"));;
/*当前时间现案时间*/
String startHb = jhb.getString("kssj");
String endHb = jhb.getString("jssj");
params2.setXaStartTime(startHb);
params2.setXaEndTime(endHb);
params2.setStartTime(startHb);
params2.setEndTime(endHb);
List<Map<String, Object>> bzlaList2All = dataStatisticsMapperCqxz.getQYLaCDount(params2);
bzlaList2All = addNoHaveXzqh(bzlaList2All);
bzlaList2All = tsqxcl(bzlaList2All);
List<Map<String, Object>> list= gtzf(bzlaListAll, bzlaList2All);
return list;
}
}
// 获取动态环比时间
public JSONObject getDtHbTime(String kssj,String jssj){
JSONObject jsonObject = new JSONObject();
//日期转换,代替以前的SimpleDateFormat
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate startDate = LocalDate.parse(kssj,formatter);
LocalDate endDate = LocalDate.parse(jssj,formatter);
//相差天数
int day = (int) startDate.until(endDate, ChronoUnit.DAYS);
LocalDate startDateHb = startDate.minusDays(day+1);
LocalDate endDateHb = startDate.minusDays(1);
jsonObject.put("hbkssj",startDateHb);
jsonObject.put("hbjssj",endDateHb);
return jsonObject;
}
// 一体化统计new同期时间获取
public JSONObject getTqRangeNew(String kssj, String jssj) {
JSONObject jsonObject = new JSONObject();
......@@ -696,72 +746,42 @@ public class DataStatisticsServiceImpl implements DataStatisticsService {
}
return xzqhlaList;
}
//颜色转换
public List<Map<String,Object>> getMapInColour(List<Map<String,Object>> list,DataStatisticsParams params){
/* 颜色随机 下降或持平
颜色随机 10%(含)
颜色随机 10%-20%(含)
颜色随机 20%-30%(含)
颜色随机 30%以上*/
String[] tlmsList = params.getTlms().split(",");
String[] tlysList = params.getTlys().split(",");
for (int i = 0; i <tlmsList.length; i++) {
String ms = tlmsList[i];
String ys =tlysList[i];
}
String ajlb = "";
// 犯罪形势-电信网络诈骗案件立案数
if(ajlb.equals("004")||ajlb.equals("017")){
for(Map maps:list){
for(Map maps:list) {
String status = maps.get("amplitudeFlag").toString();
float bfs = Float.valueOf(String.valueOf(maps.get("bfs")).replace("%",""));
if(status.equals("increase")||status.equals("centre")){ // 增长
if(bfs<=10){
maps.put("colour","yellow");
}else if(bfs>10&&bfs<=20){
maps.put("colour","orange");
}else if(bfs>20){
maps.put("colour","red");
}
}else if(status.equals("decreasing")){ // 降低
if(bfs>=10){
maps.put("colour","green");
}else{
maps.put("colour","blue");
}
}else if(status.equals("equal")){ // 持平
maps.put("colour","blue");
}
}
}
// 犯罪形势-全部、盗窃案件、入室盗窃立案数、重点案件 现行命案发案(导入) 八类暴力犯罪发案、两抢发案、敲诈勒索发案、性侵发案、寻衅滋事、聚众斗殴案件、九类涉黑
if(ajlb.equals("001")||ajlb.equals("005")||ajlb.equals("011")||ajlb.startsWith("005")||ajlb.startsWith("018")
||Arrays.asList("002","006","012","013","014","015").contains(ajlb)||ajlb.startsWith("002")||ajlb.startsWith("006")||ajlb.startsWith("013")){
for(Map maps:list){
String status = maps.get("amplitudeFlag").toString();
float bfs = Float.valueOf(String.valueOf(maps.get("bfs")).replace("%",""));
if(status.equals("increase")||status.equals("centre")){ // 增长
if(bfs<=10){
maps.put("colour","blue");
}else if(bfs>10&&bfs<=20){
maps.put("colour","yellow");
}else if(bfs>20&&bfs<=30){
maps.put("colour","orange");
}else if(bfs>30){
maps.put("colour","red");
}
}else if(status.equals("decreasing")){ // 降低
maps.put("colour","green");
}else if(status.equals("equal")){ // 持平
maps.put("colour","green");
if( ms.equals("10%(含)") && bfs<=10){
maps.put("tlms",ms);
maps.put("colour",ys);
}else if( ms.equals("10%-20%(含)") && bfs>10&&bfs<=20){
maps.put("tlms",ms);
maps.put("colour",ys);
}else if( ms.equals("20%-30%(含)") && bfs>20&&bfs<=30){
maps.put("tlms",ms);
maps.put("colour",ys);
}else if( ms.equals("30%以上") && bfs>30){
maps.put("tlms",ms);
maps.put("colour",ys);
}
}else if( ms.equals("下降或持平") && (status.equals("decreasing") || status.equals("equal"))){ // 降低 持平
maps.put("tlms",ms);
maps.put("colour",ys);
}
}
}
......
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