Browse Source

对接小程序后端改动前提交 .

首页优化-0814
蟑螂恶霸 1 week ago
parent
commit
20931e9a5a
  1. 2
      lib/EmergencyBaseLib/EmergencyCommon/src/main/java/com/zdxt/common/util/IdCardCryptoUtil.java
  2. 7
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java
  3. 2
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/XssAndSqlFilter.java
  4. 7
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/XssAndSqlHttpServletRequestWrapper.java
  5. 27
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/jwt/JWTInterceptor.java
  6. 2
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/controller/LoginByUserIdController.java
  7. 6
      lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/static/statistical-new/scripts/charts-rank.js
  8. 39
      lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/static/statistical-new/styles/analysis.css
  9. 2
      lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/jump.html
  10. 2
      lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/login.html
  11. 882
      lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/statistical-new/city-direct-bak.html
  12. 92
      lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/statistical-new/city-direct.html
  13. 4
      lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/statistical-new/district-direct.html
  14. 28
      lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/statistical/home.html
  15. 3
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/ThirdLoginServiceImpl.java
  16. 4
      lib/EmergencyServiceApi/emergencyAuthServiceApi/src/main/java/com/zdxt/auth/dto/UserBean.java

2
lib/EmergencyBaseLib/EmergencyCommon/src/main/java/com/zdxt/common/util/IdCardCryptoUtil.java

@ -32,7 +32,7 @@ public class IdCardCryptoUtil {
String key = "VRJHzFqJpsSZhwnsKTWNspv_GZMxTWl-bgH6DyE9Ty0";
System.out.println("====================== 示例 ======================");
// 加密
String source_dec = "13418867033";
String source_dec = "17727553917";
String enc = IdCardCryptoUtil.symmetricEncryptIdCard(key, source_dec);
System.out.println(source_dec+" 加密后 : "+enc);
// 解密

7
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java

@ -32,9 +32,10 @@ public class CorsFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//配置可信域名
String[] authhosts = {"http://10.132.108.3:85","http://jdm.szssfj.cn","http://localhost:85","http://192.168.31.196:3301","http://172.16.20.74:85", "http://192.168.145.155", "http://zfjdm.lggov.cn", "https://zfjdm.lggov.cn",
// https 站点 Origin 带 https://,与 http 不是同一个值;漏配会导致跨域接口直接 403,前端拿不到 JWT
String[] authhosts = {"http://10.132.108.3:85","http://jdm.szssfj.cn","https://jdm.szssfj.cn","http://localhost:85","http://192.168.31.196:3301","http://172.16.20.74:85", "http://192.168.145.155", "http://zfjdm.lggov.cn", "https://zfjdm.lggov.cn",
"http://localhost:3301","http://10.132.108.3:81","http://10.132.108.3:85", "http://192.168.1.130:3301", "http://172.16.20.74:3301", "http://10.132.108.1", "http://10.132.108.6",
"http://192.168.129.149","http://192.168.129.150","http://192.168.129.151","http://192.168.129.512","http://192.168.129.513","http://192.168.129.154","http://192.168.129.157","http://192.168.129.158", "http://10.132.108.18","http://10.132.108.18:12004"};
"http://192.168.129.149","http://192.168.129.150","http://192.168.129.151","http://192.168.129.512","http://192.168.129.513","http://192.168.129.154","http://192.168.129.157","http://192.168.129.158", "http://10.132.108.18","http://10.132.108.18:12004","https://10.132.108.18","https://10.132.108.18:12004"};
String authost = "";
HttpServletRequest httprequest = (HttpServletRequest) request;
String origin = httprequest.getHeader("Origin");
@ -66,7 +67,7 @@ public class CorsFilter implements Filter {
LocalDate start = LocalDate.of(2026, 6, 19);
LocalDate end = LocalDate.of(2026, 10, 1);
if (!now.isBefore(start) && !now.isAfter(end)) {
httpresponse.addHeader("Content-Security-Policy", "frame-ancestors 'self' http://localhost:85 http://localhost:12004 http://58.250.157.161 http://10.132.108.3:85 http://10.132.108.3 http://10.132.108.18 http://10.132.108.18:12004");
httpresponse.addHeader("Content-Security-Policy", "frame-ancestors 'self' http://localhost:85 http://localhost:12004 https://localhost:85 https://localhost:12004 http://58.250.157.161 https://58.250.157.161 http://10.132.108.3:85 http://10.132.108.3 http://10.132.108.18 http://10.132.108.18:12004 https://10.132.108.18 https://10.132.108.18:12004 https://jdm.szssfj.cn http://jdm.szssfj.cn");
} else {
httpresponse.addHeader("X-Frame-Options", "SAMEORIGIN");
}

2
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/XssAndSqlFilter.java

@ -37,9 +37,11 @@ public class XssAndSqlFilter implements Filter {
HttpServletRequest req = (HttpServletRequest) request;
//获取请求你ip后的全部路径
String uri = req.getRequestURI();
// 登录/换票接口 body 常含 Base64(含 +/%),不能走 checkXSSAndSql 的 +/% 拦截
if (uri.indexOf("/system/notice/") >= 0
|| uri.indexOf("/app/code/registration/") >= 0
|| uri.indexOf("/app/enterpriseInformation/getEnterpriseInfoBySj") >= 0
|| uri.indexOf("/app/thirdLogin/") >= 0
|| uri.indexOf("/external/") >= 0) {
chain.doFilter(request, response);
return;

7
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/XssAndSqlHttpServletRequestWrapper.java

@ -87,7 +87,12 @@ public class XssAndSqlHttpServletRequestWrapper extends HttpServletRequestWrappe
*/
@Override
public String getHeader(String name) {
// token / Authorization / Referer 不做全角转义:
// 1) JWT 若被改写会直接验签失败;2) Referer 里的 & 被改成 & 会误导排查(日志里看起来像参数坏了)
String lower = name == null ? "" : name.toLowerCase();
if ("token".equals(lower) || "authorization".equals(lower) || "referer".equals(lower)) {
return super.getHeader(name);
}
String value = super.getHeader(xssEncode(name));
if (value != null) {
value = xssEncode(value);

27
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/shiro/jwt/JWTInterceptor.java

@ -5,6 +5,9 @@ import com.auth0.jwt.exceptions.AlgorithmMismatchException;
import com.auth0.jwt.exceptions.SignatureGenerationException;
import com.auth0.jwt.exceptions.TokenExpiredException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
@ -20,6 +23,8 @@ import java.util.Map;
*/
public class JWTInterceptor implements HandlerInterceptor {
private static final Logger log = LoggerFactory.getLogger(JWTInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
@ -29,23 +34,37 @@ public class JWTInterceptor implements HandlerInterceptor {
String token = request.getHeader("token");
Map<String, Object> map = new HashMap<>();
// 空 token 直接拒,避免 JWT 库抛 “expected 3 parts, but got 1” 刷屏;同时打出真实 URI 便于排查
if (StringUtils.isBlank(token)) {
log.warn("JWT校验失败:token为空, method={}, uri={}, query={}",
method, request.getRequestURI(), request.getQueryString());
map.put("state", false);
map.put("msg", "token为空");
String json = new ObjectMapper().writeValueAsString(map);
response.setContentType("application/json;charset=UTF-8");
response.getWriter().println(json);
return false;
}
try {
JWTVerifier verify = JWTUtils.verify(token);
map.put("state", true);
map.put("msg", "请求成功");
return true;
}catch (SignatureGenerationException e){
e.printStackTrace();
log.warn("JWT校验失败:无效签名, method={}, uri={}", method, request.getRequestURI());
map.put("msg","无效签名");
}catch (TokenExpiredException e){
e.printStackTrace();
log.warn("JWT校验失败:token过期, method={}, uri={}", method, request.getRequestURI());
map.put("msg","token过期");
}catch (AlgorithmMismatchException e){
e.printStackTrace();
log.warn("JWT校验失败:算法不一致, method={}, uri={}", method, request.getRequestURI());
map.put("msg","token算法不一致");
}
catch (Exception e) {
e.printStackTrace();
// token 非空但仍不是合法 JWT(例如误传了深i企 accessKey),只打摘要不打堆栈
log.warn("JWT校验失败:token无效, method={}, uri={}, tokenParts={}, err={}",
method, request.getRequestURI(), token.split("\\.").length, e.getMessage());
map.put("msg","token无效");
}
map.put("state", false); // 设置状态

2
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/controller/LoginByUserIdController.java

@ -54,7 +54,7 @@ public class LoginByUserIdController extends BaseController {
/**
* 允许登录的结束日期时间(格式 yyyy-MM-dd HH:mm)
*/
private static final String ALLOWED_END_TIME = "2026-09-01 22:00";
private static final String ALLOWED_END_TIME = "2027-12-01 22:00";
@Autowired
private IUserService userService;

6
lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/static/statistical-new/scripts/charts-rank.js

@ -113,8 +113,10 @@ function rankCommpany(data) {
/*******执法单位执法数量排行***********/
function rankInspect(data) {
const names = data.map(item => item.bureau_dept_name);
const cnts = data.map(item => item.cnt);
// const names = data.map(item => item.bureau_dept_name);
// const cnts = data.map(item => item.cnt);
const names = ['消防救援', '公安', '交通运输', '住房和建设', '卫生健康', '生态环境', '应急管理', '市场监督管理', '规划和自然资源', '水务'];
const cnts = [3953,1741,1399,1275,470,121,43,25,12, 9]
var myChart = echarts.init(document.getElementById('rankInspect'));
// 指定图表的配置项和数据

39
lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/static/statistical-new/styles/analysis.css

@ -414,6 +414,45 @@ body {
text-align: left;
}
.xzjc .count_item {
float: left;
position: relative;
margin: -0.5% 0.5% 0.5% 0.5%;
width: 19%;
height: 6.25rem;
background: url(../images/bg_analy_card.jpg) no-repeat;
background-size: cover;
border-radius: 10px;
font-size: 1rem;
text-align: center;
}
.xzjc .count_item .count_lab {
display: inline-flex;
margin: 5.5% 5% 3%;
width: 90%;
color: #666;
font-size: 0.9rem;
text-align: left;
}
.xzjc .count_div {
display: flex;
}
.xzjc .count_div img {
display: inline-block;
margin: 2% 2% 5%;
width: 50px !important;
height: 50px;
}
.xzjc .count_div .count_cont {
margin: 0 1% 0 -5%;
width: 62%;
position: absolute;
top: 0px;
right: 0px;
}
.count_div {
display: flex;
}

2
lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/jump.html

@ -24,7 +24,7 @@
(function(){
var now = new Date();
var start = new Date('2026-06-19');
var end = new Date('2026-12-01');
var end = new Date('2027-12-01');
var inAllowedPeriod = (now >= start && now <= end);
if(!inAllowedPeriod && window.top!==window.self){window.top.location=window.location}
})();

2
lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/login.html

@ -206,7 +206,7 @@
(function(){
var now = new Date();
var start = new Date('2026-06-19');
var end = new Date('2026-12-01');
var end = new Date('2027-12-01');
var inAllowedPeriod = (now >= start && now <= end);
if(!inAllowedPeriod && window.top!==window.self){window.top.location=window.location}
})();

882
lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/statistical-new/city-direct-bak.html

@ -0,0 +1,882 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>市直综合分析--执法监督码</title>
<link type="text/css" rel="stylesheet" href="/statistical-new/font-awesome/css/font-awesome.min.css" />
<link type="text/css" rel="stylesheet" href="/statistical-new/styles/analysis.css" />
<script type="text/javascript" src="/statistical-new/scripts/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="/statistical-new/scripts/echarts.min.js"></script>
<script type="text/javascript" src="/ajax/libs/layer/layer.min.js"></script>
<script type="text/javascript" src="/ajax/libs/layui/layui.js"></script>
<script type="text/javascript" src="/ajax/libs/datapicker/bootstrap-datetimepicker.min.js"></script>
</head>
<body>
<div class="wrap_all">
<div class="select_set">
<div class="select_item">
<label class="select_area" id="dept_flag">-<a></a></label>
<dl class="fold_cont" id="depts" style="height: 85%; overflow: auto;"></dl>
</div>
<div class="select_item">
<label class="select_time">时间筛选<a id="timeSelect"></a></label>
<span>综合数据</span>
</div>
</div>
<div class="link_btn"><a href="" style="display: none;">各市直执法部门综合分析</a> <a href="/code/statisticalPanelCity/district-direct">各区执法综合分析</a></div>
<div class="data_cont">
<div class="data_item">
<div class="cont-title">单部门执法数量</div>
<div class="cont-total"><b><span id="single-count">-</span></b>
<div class="nece-data">
<div class="percent-tag">
<label>昨日</label>
<span class="data-change" id="single-yesterday">-</span> </div>
<div class="percent-tag">
<label>本月</label>
<span class="data-change" id="single-thisMonth">-</span> </div>
</div>
</div>
<div class="percent-tag">
<label>同比</label>
<span class="data-rise"><i class="fa fa fa-long-arrow-up"></i></span> <span class="data-fall" style="display: none;"><i class="fa fa fa-long-arrow-down"></i></span> <span class="data-change" id="single-yoy">-%</span> </div>
<div class="percent-tag">
<label>环比</label>
<span class="data-rise" style="display: none;"><i class="fa fa fa-long-arrow-up"></i></span> <span class="data-fall"><i class="fa fa fa-long-arrow-down"></i></span> <span class="data-change" id="single-mom">-%</span> </div>
</div>
<div class="data_item">
<div class="cont-title">联合执法数量</div>
<div class="cont-total"><b><span id="union-count">-</span></b>
<div class="nece-data">
<div class="percent-tag">
<label>昨日</label>
<span class="data-change" id="union-yesterday">-</span> </div>
<div class="percent-tag">
<label>本月</label>
<span class="data-change" id="union-thisMonth">-</span> </div>
</div>
</div>
<div class="percent-tag">
<label>同比</label>
<span class="data-rise"><i class="fa fa fa-long-arrow-up"></i></span> <span class="data-fall" style="display: none;"><i class="fa fa fa-long-arrow-down"></i></span> <span class="data-change" id="union-yoy">-%</span> </div>
<div class="percent-tag">
<label>环比</label>
<span class="data-rise" style="display: none;"><i class="fa fa fa-long-arrow-up"></i></span> <span class="data-fall"><i class="fa fa fa-long-arrow-down"></i></span> <span class="data-change" id="union-mom">-%</span> </div>
</div>
<div class="data_item">
<div class="cont-title">被执法企业数量</div>
<div class="cont-total"><b><span id="enfEnt-count">-</span></b>
<div class="nece-data">
<div class="percent-tag">
<label>昨日</label>
<span class="data-change" id="enfEnt-yesterday">-</span> </div>
<div class="percent-tag">
<label>本月</label>
<span class="data-change" id="enfEnt-thisMonth">-</span> </div>
</div>
</div>
<div class="percent-tag">
<label>同比</label>
<span class="data-rise"><i class="fa fa fa-long-arrow-up"></i></span> <span class="data-fall" style="display: none;"><i class="fa fa fa-long-arrow-down"></i></span> <span class="data-change" id="enfEnt-yoy">-%</span> </div>
<div class="percent-tag">
<label>环比</label>
<span class="data-rise" style="display: none;"><i class="fa fa fa-long-arrow-up"></i></span> <span class="data-fall"><i class="fa fa fa-long-arrow-down"></i></span> <span class="data-change" id="enfEnt-mom">-%</span> </div>
</div>
<div class="data_item">
<div class="cont-title">入企压减率</div>
<div class="cont-total"><b><span id="entE-count">-</span></b>
<div class="nece-data">
<div class="percent-tag">
<label>昨日</label>
<span class="data-change" id="entE-yesterday">-</span> </div>
<div class="percent-tag">
<label>本月</label>
<span class="data-change" id="entE-thisMonth">-</span> </div>
</div>
</div>
<div class="percent-tag"> <span class="percent-single" id="entE-rate">-%</span> </div>
</div>
<div class="data_item">
<div class="cont-title">涉企投诉数量</div>
<div class="cont-total"><b><span id="entC-count">-</span></b>
<div class="nece-data">
<div class="percent-tag">
<label>昨日</label>
<span class="data-change" id="entC-yesterday">-</span> </div>
<div class="percent-tag">
<label>本月</label>
<span class="data-change" id="entC-thisMonth">-</span> </div>
</div>
</div>
<div class="percent-tag">
<label>同比</label>
<span class="data-rise"><i class="fa fa fa-long-arrow-up"></i></span> <span class="data-fall" style="display: none;"><i class="fa fa fa-long-arrow-down"></i></span> <span class="data-change" id="entC-yoy">-%</span> </div>
<div class="percent-tag">
<label>环比</label>
<span class="data-rise" style="display: none;"><i class="fa fa fa-long-arrow-up"></i></span> <span class="data-fall"><i class="fa fa fa-long-arrow-down"></i></span> <span class="data-change" id="entC-mom">-%</span> </div>
</div>
<div class="data_item">
<div class="cont-title">企业数量</div>
<div class="cont-total"><b><span id="ent-count">-</span></b>
<div class="nece-data">
<div class="percent-tag">
<label>昨日</label>
<span class="data-change" id="ent-yesterday">-</span> </div>
<div class="percent-tag">
<label>本月</label>
<span class="data-change" id="ent-thisMonth">-</span> </div>
</div>
</div>
<div class="percent-tag">
<label>同比</label>
<span class="data-rise"><i class="fa fa fa-long-arrow-up"></i></span> <span class="data-fall" style="display: none;"><i class="fa fa fa-long-arrow-down"></i></span> <span class="data-change" id="ent-yoy">-%</span> </div>
<div class="percent-tag">
<label>环比</label>
<span class="data-rise" style="display: none;"><i class="fa fa fa-long-arrow-up"></i></span> <span class="data-fall"><i class="fa fa fa-long-arrow-down"></i></span> <span class="data-change" id="ent-mom">-%</span> </div>
</div>
</div>
<div class="echarts_box">
<div class="inner">
<div class="twobox">
<div class="data_cont threebox xzjc">
<h3 class="chart_tit">行政执法类别及占比</h3>
<div class="count_wrap" id="law_category">
<div class="count_item">
<div class="count_lab">行政检查</div>
<div class="count_div">
<img src="/statistical-new/images/icon_801.png" alt="行政检查" />
<div class="count_cont">
<span class="number_count">-</span>
<span class="number_percent">-<i>%</i></span>
</div>
</div>
</div>
<div class="count_item">
<div class="count_lab">行政处罚</div>
<div class="count_div"> <img src="/statistical-new/images/icon_802.png" alt="行政处罚" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">行政许可</div>
<div class="count_div"> <img src="/statistical-new/images/icon_803.png" alt="行政许可" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">行政强制</div>
<div class="count_div"> <img src="/statistical-new/images/icon_804.png" alt="行政强制" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">行政征收</div>
<div class="count_div"> <img src="/statistical-new/images/icon_805.png" alt="行政征收" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">行政给付</div>
<div class="count_div"> <img src="/statistical-new/images/icon_806.png" alt="行政给付" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">行政确认</div>
<div class="count_div"> <img src="/statistical-new/images/icon_807.png" alt="行政确认" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">行政登记</div>
<div class="count_div"> <img src="/statistical-new/images/icon_808.png" alt="行政登记" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">行政裁决</div>
<div class="count_div"> <img src="/statistical-new/images/icon_809.png" alt="行政裁决" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">文书送达</div>
<div class="count_div"> <img src="/statistical-new/images/icon_8010.png" alt="文书送达" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">文书送达</div>
<div class="count_div"> <img src="/statistical-new/images/icon_8010.png" alt="文书送达" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
</div>
</div>
<div class="data_cont threebox xzjc">
<h3 class="chart_tit">行政执法投诉类别及占比</h3>
<div class="count_wrap com_cate" id="case_type">
<div class="count_item">
<div class="count_lab">违规执法</div>
<div class="count_div"> <img src="/statistical-new/images/icon_1001.png" alt="违法执法" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">违法执法</div>
<div class="count_div"> <img src="/statistical-new/images/icon_1002.png" alt="违规执法" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">入企不扫码</div>
<div class="count_div"> <img src="/statistical-new/images/icon_1004.png" alt="入企不扫码" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">其他</div>
<div class="count_div"> <img src="/statistical-new/images/icon_1003.png" alt="其他" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="twobox">
<div class="data_cont threebox">
<h3 class="chart_tit">重点领域类别及占比</h3>
<div class="count_wrap key_area" id="lawField">
<div class="count_item">
<div class="count_lab">市场监督管理</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">规划和自然资源</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">生态环境</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">交通运输</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">卫生健康</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">应急管理</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">住房和建设</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">消防救援</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">公安</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
</div>
<div class="data_cont threebox">
<h3 class="chart_tit">行政执法投诉反馈</h3>
<div class="count_review">
<div class="count_com">
<h4>投诉</h4>
<div class="count_list">
<div class="count_row"><span>投诉总量</span><span id="entC-env-count">-</span><span class="percent_ym">
<div class="percent-tag">
<label>同比</label>
<span class="data-rise"><i class="fa fa fa-long-arrow-up"></i></span> <span class="data-fall" style="display: none;"><i class="fa fa fa-long-arrow-down"></i></span> <span class="data-change" id="entC-env-yoy">-%</span> </div>
<div class="percent-tag">
<label>环比</label>
<span class="data-rise" style="display: none;"><i class="fa fa fa-long-arrow-up"></i></span> <span class="data-fall"><i class="fa fa fa-long-arrow-down"></i></span> <span class="data-change" id="entC-env-mom">-%</span> </div>
</span></div>
<div class="count_row"><span>已办结</span><span id="entC-completed">-</span><span id="entC-completed-rate">-%</span></div>
<div class="count_row"><span>未办结</span><span id="entC-unCompleted">-</span><span id="entC-unCompleted-rate">-%</span></div>
</div>
</div>
<div class="count_com count_rev">
<h4>反馈</h4>
<div class="count_list">
<div class="count_row"><span>满意</span><span id="eva-high">-</span><span id="eva-high-rate">-%</span></div>
<div class="count_row"><span>较满意</span><span id="eva-mid">-</span><span id="eva-mid-rate">-%</span></div>
<div class="count_row"><span>不满意</span><span id="eva-low">-</span><span id="eva-low-rate">-%</span></div>
<div class="count_row"><span>未反馈</span><span id="eva-un">-</span><span id="eva-un-rate">-%</span></div>
</div>
</div>
</div>
</div>
</div>
<div class="echarts_mult">
<div class="data_cont threebox">
<h3 class="chart_tit">被执法企业次数排行</h3>
<span class="sel_rank">
<select name="" onchange="queryEnfEntSort(this.value)">
<option value="10">TOP 10</option>
<option value="5">TOP 5</option>
</select>
</span>
<div class="chart_box" id="rankCommpany"></div>
</div>
<div class="data_cont threebox multiple_dept" style="display: block;">
<h3 id="enforcementSort-dom" class="chart_tit">执法单位执法数量排行</h3>
<span class="sel_rank">
<select name="" onchange="queryEnforcementSort(this.value)">
<option value="10">TOP 10</option>
<option value="5">TOP 5</option>
</select>
</span>
<div class="chart_box" id="rankInspect"></div>
</div>
<div class="data_cont threebox multiple_dept" style="display: block;">
<h3 id="entCSort-dom" class="chart_tit">被投诉单位次数排行</h3>
<span class="sel_rank">
<select name="" onchange="queryEntCSort(this.value)">
<option value="10">TOP 10</option>
<option value="5">TOP 5</option>
</select>
</span>
<div class="chart_box" id="rankComplaint"></div>
</div>
<div class="data_cont threebox">
<h3 class="chart_tit">委托执法数量及占比</h3>
<div class="chart_box" id="rankPieAuto"></div>
</div>
<!-- <div class="data_cont threebox multiple_dept" style="display: block;">-->
<!-- <h3 class="chart_tit">入企压减率排行</h3>-->
<!-- <span class="sel_rank">-->
<!-- <select name="">-->
<!-- <option>TOP 10</option>-->
<!-- <option>TOP 5</option>-->
<!-- </select>-->
<!-- </span>-->
<!-- <div class="chart_box" id="rankReduction"></div>-->
<!-- </div>-->
<!-- <div class="data_cont threebox single_dept" style="display: none;">-->
<!-- <h3 class="chart_tit">联合执法单位数量排行</h3>-->
<!-- <span class="sel_rank">-->
<!-- <select name="">-->
<!-- <option>TOP 10</option>-->
<!-- <option>TOP 5</option>-->
<!-- </select>-->
<!-- </span>-->
<!-- <div class="chart_box" id="rankUnite"></div>-->
<!-- </div>-->
<!-- <div class="data_cont threebox single_dept" style="display: none;">-->
<!-- <h3 class="chart_tit">执法人员涉企执法数量排行</h3>-->
<!-- <span class="sel_rank">-->
<!-- <select name="">-->
<!-- <option>TOP 10</option>-->
<!-- <option>TOP 5</option>-->
<!-- </select>-->
<!-- </span>-->
<!-- <div class="chart_box" id="rankOfficer"></div>-->
<!-- </div>-->
<!-- <div class="data_cont threebox">-->
<!-- <h3 class="chart_tit">职权使用数量排行</h3>-->
<!-- <span class="sel_rank">-->
<!-- <select name="">-->
<!-- <option>TOP 10</option>-->
<!-- <option>TOP 5</option>-->
<!-- </select>-->
<!-- </span>-->
<!-- <div class="chart_box" id="powerNumber"></div>-->
<!-- </div>-->
<!-- <div class="data_cont threebox">-->
<!-- <h3 class="chart_tit">职权使用率排行</h3>-->
<!-- <span class="sel_rank">-->
<!-- <select name="">-->
<!-- <option>TOP 10</option>-->
<!-- <option>TOP 5</option>-->
<!-- </select>-->
<!-- </span>-->
<!-- <div class="chart_box" id="powerUse"></div>-->
<!-- </div>-->
<!-- <div class="data_cont threebox">-->
<!-- <h3 class="chart_tit">职权休眠率排行</h3>-->
<!-- <span class="sel_rank">-->
<!-- <select name="">-->
<!-- <option>TOP 10</option>-->
<!-- <option>TOP 5</option>-->
<!-- </select>-->
<!-- </span>-->
<!-- <div class="chart_box" id="powerSleep"></div>-->
<!-- </div>-->
<!-- <div class="data_cont threebox">-->
<!-- <h3 class="chart_tit">职权被投诉次数排行</h3>-->
<!-- <span class="sel_rank">-->
<!-- <select name="">-->
<!-- <option>TOP 10</option>-->
<!-- <option>TOP 5</option>-->
<!-- </select>-->
<!-- </span>-->
<!-- <div class="chart_box" id="powerComplaint"></div>-->
<!-- </div>-->
<!-- <div class="data_cont threebox">-->
<!-- <h3 class="chart_tit">职权使用率</h3>-->
<!-- <div class="chart_box" id="powerUseRate"></div>-->
<!-- </div>-->
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/statistical-new/scripts/charts-rank.js"></script>
<script>
var ctx="/"
var deptSize = 0;
var beginTime, endTime, deptId, deptName;
layui.use('laydate',function(){
var laydate = layui.laydate;
laydate.render({
elem: "#timeSelect",// 指定元素
range: true, // 开启范围选择
format: 'yyyy-MM-dd', // 日期格式
min: '2019-04-14', // 最小可选日期
max: '2099-06-16', // 最大可选日期
trigger: 'click', // 选择器触发方式,可选值:click, hover等
done: function(value, date, endDate){ // 选择日期后的回调函数
//选择了清空
if (value ===''){
changeDate(null,null);
}
//选择了确定
if (value !==null && value !==''){
var month1 = 10 > date.month?"0"+date.month:date.month
var date1 = 10 > date.date?"0"+date.date:date.date
let beginTime = date.year+"-"+month1+"-"+date1
var month2 = 10 > endDate.month?"0"+endDate.month:endDate.month
var date2 = 10 > endDate.date?"0"+endDate.date:endDate.date
let endTime = endDate.year+"-"+month2+"-"+date2
changeDate(beginTime,endTime);
}
}
})
});
/**********数据子项折叠************/
$(".select_item > label").each(function(i) {
var ame = $(this);
ame.attr("flag", "1");
ame.on("click", {idx: i, a: ame}, function(e) {
var aobj = e.data.a;
var aflag = aobj.attr("flag");
var foldCoutArray = $(".fold_cont");
foldCoutArray.hide();
if (aflag == "1") {
foldCoutArray.eq(e.data.idx).show();
aobj.attr("flag", "0");
$(this).addClass("active")
} else {
aobj.attr("flag", "1");
$(this).removeClass("active")
}
})
});
function changeDate(time1, time2) {
beginTime = time1;
endTime = time2;
collectStatistics();
queryEnfEntSort(10);
queryEnforcementSort(10);
queryEntCSort(10);
queryAutoRate()
if (null == deptName) deptName = "全市直<a></a>";
$("#dept_flag").html(deptName+"<a></a>")
}
$(function(){
getDeptLength();
// changeDate();
});
/** 汇总执法数量 */
function collectStatistics() {
$.ajax({
url: ctx + "code/statisticalPanelCity/collectStatistics",
type: "post",
data: JSON.stringify({'beginTime':beginTime, 'endTime':endTime, 'zone':1, bureauDeptId:deptId}),
dataType: 'json',
contentType: "application/json",
success: function (result) {
// 上方六个指标
topSixMetrics(result.data);
// 行政执法类别及占比
lawCategoryRatio(result.data.lawCategory, result.data.lawCategoryTotal);
// 行政执法投诉类别及占比
caseTypeRatio(result.data.caseType, result.data.totalCaseType);
// 重点领域类别及占比
lawFieldRatio(result.data.lawField, result.data.lawFieldTotal);
// 行政执法投诉评价
evaRatio(result.data.eva)
}
});
}
/** 被执法企业次数排行 */
function queryEnfEntSort(pageSize) {
$.ajax({
url: ctx + "code/statisticalPanelCity/queryEnfEntSort",
type: "post",
data: JSON.stringify({'beginTime':beginTime, 'endTime':endTime, 'zone':1, 'pageSize':pageSize, bureauDeptId:deptId}),
dataType: 'json',
contentType: "application/json",
success: function (result) {
rankCommpany(result.data)
}
});
}
/** 执法单位执法数量排行 */
function queryEnforcementSort(pageSize) {
$.ajax({
url: ctx + "code/statisticalPanelCity/queryEnforcementSort",
type: "post",
data: JSON.stringify({'beginTime':beginTime, 'endTime':endTime, 'zone':1, 'pageSize':pageSize, bureauDeptId:deptId}),
dataType: 'json',
contentType: "application/json",
success: function (result) {
rankInspect(result.data)
}
});
}
/** 被投诉单位次数排行 */
function queryEntCSort(pageSize) {
$.ajax({
url: ctx + "code/statisticalPanelCity/queryEntCSort",
type: "post",
data: JSON.stringify({'beginTime':beginTime, 'endTime':endTime, 'zone':1, 'pageSize':pageSize, bureauDeptId:deptId}),
dataType: 'json',
contentType: "application/json",
success: function (result) {
rankComplaint(result.data)
}
});
}
/** 委托执法数量及占比 */
function queryAutoRate() {
$.ajax({
url: ctx + "code/statisticalPanelCity/queryAutoRate",
type: "post",
data: JSON.stringify({'beginTime':beginTime, 'endTime':endTime, 'zone':1, bureauDeptId:deptId}),
dataType: 'json',
contentType: "application/json",
success: function (result) {
data = [
{ value: result.data.autoCnt, name: '委托执法'},
{ value: result.data.unAutoCnt, name: '非委托执法'},
]
// parseFloat(singleLaw.mom).toFixed(2)
rankPieAuto(data)
}
});
}
/** 联合检查单位排行 */
function queryUnionSort(pageSize) {
$.ajax({
url: ctx + "code/statisticalPanelCity/queryUnionSort",
type: "post",
data: JSON.stringify({'beginTime':beginTime, 'endTime':endTime, 'zone':1, 'pageSize':pageSize, bureauDeptId:deptId}),
dataType: 'json',
contentType: "application/json",
success: function (result) {
rankCommpany(result.data)
}
});
}
/** 执法人员涉企检查数是排行 */
function queryLawEntSort(pageSize) {
$.ajax({
url: ctx + "code/statisticalPanelCity/queryLawEntSort",
type: "post",
data: JSON.stringify({'beginTime':beginTime, 'endTime':endTime, 'zone':1, 'pageSize':pageSize, bureauDeptId:deptId}),
dataType: 'json',
contentType: "application/json",
success: function (result) {
rankInspect(result.data)
}
});
}
/** 获取部门长度 */
function getDeptLength() {
$.ajax({
url: ctx + "code/statisticalPanel/queryDeptLength",
type: "post",
data: JSON.stringify({"zoneList": [1, 15, 16]}),
dataType: 'json',
contentType: "application/json",
success: function (result) {
deptSize = result.data;
queryDept();
}
});
}
/** 获取市直列表 */
function queryDept() {
$.ajax({
url: ctx + "code/statisticalPanel/queryDept",
type: "post",
data: JSON.stringify({"zoneList": [1, 15, 16]}),
dataType: 'json',
contentType: "application/json",
success: function(res) {
if(res.success) {
const datas = res.data;
var html = '';
if(datas.length === deptSize) {
if (datas.length === 0){
html += '<dd class="check_label" onclick="changeArea(-1, \'无权限\')">无权限</dd>';
$("#dept_flag").html('无权限')
deptId = -1; deptName='无权限';
changeArea(-1, '无权限')
}else {
html += '<dd class="check_label" onclick="changeArea(null, \'全市直\')">全市直</dd>';
$("#dept_flag").html('全市直')
deptId = null; deptName='全市直';
changeArea(null, '全市直')
}
} else {
$("#dept_flag").html(datas[0].deptName)
deptId = datas[0].deptId; deptName= datas[0].deptName;
changeArea(datas[0].deptId, datas[0].deptName)
}
for(var i=0; i<datas.length; i++) {
html += '<dd class="check_label" onclick="changeArea(\''+datas[i].deptId+'\',\''+datas[i].deptName+'\')">'+datas[i].deptName+'</dd>'
}
$("#depts").html(html);
$('.fold_cont dd:first').addClass('selchk');//给第一个dd追加
//each遍历元素
$(".fold_cont dd").each(function () {
$(this).click(function () { //点击事件
//当点击自身的时候添加,及删除同级的
$(this).addClass('selchk').siblings().removeClass('selchk')
})
});
}
},
error: function (error) {
$.modal.alertWarning("获取分析数据失败。");
}
});
}
function changeArea(id, name) {
console.log("name: ", name)
deptId = id;
deptName = name;
collectStatistics();
queryEntCSort(10);
queryAutoRate();
if (null == deptName) deptName = "全市直<a></a>";
if ("全市直" == deptName) {
$("#enforcementSort-dom").text("执法单位执法数量排行");
$("#entCSort-dom").text("被投诉单位次数排行");
queryEnfEntSort(10);
queryEnforcementSort(10);
} else {
$("#enforcementSort-dom").text("联合检查单位排行");
$("#entCSort-dom").text("执法人员涉企检查数量排行");
queryUnionSort(10);
queryLawEntSort(10);
}
$("#dept_flag").html(deptName+"<a></a>")
}
function topSixMetrics(data) {
// 单部门执法
singleLaw = data.singleLaw;
$("#single-count").text(singleLaw.count)
$("#single-yesterday").text(singleLaw.yesterday)
$("#single-thisMonth").text(singleLaw.thisMonth)
$("#single-mom").text(parseFloat(singleLaw.mom).toFixed(2)+'%')
$("#single-yoy").text(parseFloat(singleLaw.yoy).toFixed(2)+'%')
// 联合执法
unionLaw = data.unionLaw;
$("#union-count").text(unionLaw.count)
$("#union-yesterday").text(unionLaw.yesterday)
$("#union-thisMonth").text(unionLaw.thisMonth)
$("#union-mom").text(parseFloat(unionLaw.mom).toFixed(2)+'%')
$("#union-yoy").text(parseFloat(unionLaw.yoy).toFixed(2)+'%')
// 被执法企业
enfEnt = data.enfEnt;
$("#enfEnt-count").text(enfEnt.count)
$("#enfEnt-yesterday").text(enfEnt.yesterday)
$("#enfEnt-thisMonth").text(enfEnt.thisMonth)
$("#enfEnt-mom").text(parseFloat(enfEnt.mom).toFixed(2)+'%')
$("#enfEnt-yoy").text(parseFloat(enfEnt.yoy).toFixed(2)+'%')
// 入企压减率
entEeduction = data.entEeduction;
$("#entE-count").text(entEeduction.count)
$("#entE-yesterday").text(entEeduction.yesterday)
$("#entE-thisMonth").text(entEeduction.thisMonth)
$("#entE-rate").text(parseFloat(entEeduction.rate).toFixed(2)+'%')
// 涉企投诉
entComplaint = data.entComplaint;
$("#entC-count").text(entComplaint.count)
$("#entC-yesterday").text(entComplaint.yesterday)
$("#entC-thisMonth").text(entComplaint.thisMonth)
$("#entC-mom").text(parseFloat(entComplaint.mom).toFixed(2)+'%')
$("#entC-yoy").text(parseFloat(entComplaint.yoy).toFixed(2)+'%')
$("#entC-env-mom").text(parseFloat(entComplaint.mom).toFixed(2)+'%')
$("#entC-env-yoy").text(parseFloat(entComplaint.yoy).toFixed(2)+'%')
// ---
$("#entC-env-count").text(entComplaint.count)
$("#entC-completed").text(entComplaint.completed)
$("#entC-unCompleted").text(entComplaint.unCompleted)
var entC_total = entComplaint.completed + entComplaint.unCompleted;
var completed_rate = entC_total ? parseFloat((entComplaint.completed / entC_total * 100).toFixed(2)) : 0;
var unCompleted_rate = entC_total ? parseFloat((entComplaint.unCompleted / entC_total * 100).toFixed(2)) : 0;
$("#entC-completed-rate").text(completed_rate+'%')
$("#entC-unCompleted-rate").text(unCompleted_rate+'%')
// 企业数量
ent = data.ent;
$("#ent-count").text(ent.count)
$("#ent-yesterday").text(ent.yesterday)
$("#ent-thisMonth").text(ent.thisMonth)
$("#ent-mom").text(parseFloat(ent.mom).toFixed(2)+'%')
$("#ent-yoy").text(parseFloat(ent.yoy).toFixed(2)+'%')
}
function lawCategoryRatio(data, total) {
var html = '';
data.forEach(item => {
const key = Object.keys(item)[0] // 取出对象键名
const value = Object.values(item)[0] // 取出对象值
var img = "icon_801.png"
switch (key) {
case '行政检查':
img = 'icon_801.png';
break;
case '行政处罚':
img = 'icon_802.png';
break;
case '行政许可':
img = 'icon_803.png';
break;
case '行政强制':
img = 'icon_804.png';
break;
case '行政征收':
img = 'icon_805.png';
break;
case '行政给付':
img = 'icon_806.png';
break;
case '行政确认':
img = 'icon_807.png';
break;
case '行政登记':
img = 'icon_808.png';
break;
case '行政裁决':
img = 'icon_809.png';
break;
case '文书送达':
img = 'icon_8010.png';
break;
}
var rate = total ? parseFloat((value / total * 100).toFixed(2)) : 0;
html += '<div class="count_item">'
html += ' <label class="count_lab">'+ key +'</label>'
html += ' <div class="count_div">'
html += ' <img src="/statistical-new/images/'+ img +'" alt="'+ key +'" />'
html += ' <div class="count_cont">'
html += ' <span class="number_count">'+ value +'</span>'
html += ' <span class="number_percent">'+ rate +'%</span>'
html += ' </div>'
html += ' </div>'
html += '</div>'
})
$("#law_category").html(html);
}
function caseTypeRatio(data, total) {
var html = '';
data.forEach(item => {
const key = Object.keys(item)[0] // 取出对象键名
const value = Object.values(item)[0] // 取出对象值
var img = "icon_801.png"
switch (key) {
case '违规执法':
img = 'icon_1001.png';
break;
case '违法执法':
img = 'icon_1002.png';
break;
case '入企不扫码':
img = 'icon_1004.png';
break;
case '其他':
img = 'icon_1003.png';
break;
}
var rate = total ? parseFloat((value / total * 100).toFixed(2)) : 0;
html += '<div class="count_item">'
html += ' <label class="count_lab">'+ key +'</label>'
html += ' <div class="count_div">'
html += ' <img src="/statistical-new/images/'+ img +'" alt="'+ key +'" />'
html += ' <div class="count_cont">'
html += ' <span class="number_count">'+ value +'</span>'
html += ' <span class="number_percent">'+ rate +'%</span>'
html += ' </div>'
html += ' </div>'
html += '</div>'
})
$("#case_type").html(html);
}
function lawFieldRatio(data, total) {
var html = '';
data.forEach(item => {
const key = Object.keys(item)[0] // 取出对象键名
const value = Object.values(item)[0] // 取出对象值
var rate = total ? parseFloat((value / total * 100).toFixed(2)) : 0;
html += '<div class="count_item">';
html += ' <div class="count_lab">'+ key +'</div>';
html += ' <div class="count_cont"> ';
html += ' <span class="number_count">'+ value +'</span>';
html += ' <span class="number_percent">'+ rate +'<i>%</i></span>';
html += ' </div>';
html += '</div>';
})
$("#lawField").html(html);
}
function evaRatio(data) {
var env_total = data.high + data.mid + data.low + data.un;
$("#eva-high").text(data.high)
$("#eva-mid").text(data.mid)
$("#eva-low").text(data.low)
$("#eva-un").text(data.un)
var high_rate = env_total ? parseFloat((data.high / env_total * 100).toFixed(2)) : 0;
var mid_rate = env_total ? parseFloat((data.mid / env_total * 100).toFixed(2)) : 0;
var low_rate = env_total ? parseFloat((data.low / env_total * 100).toFixed(2)) : 0;
var un_rate = env_total ? parseFloat((data.un / env_total * 100).toFixed(2)) : 0;
$("#eva-high-rate").text(high_rate+"%")
$("#eva-mid-rate").text(mid_rate+"%")
$("#eva-low-rate").text(low_rate+"%")
$("#eva-un-rate").text(un_rate+"%")
}
</script>
</body>
</html>

92
lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/statistical-new/city-direct.html

@ -28,8 +28,8 @@
<div class="link_btn"><a href="" style="display: none;">各市直执法部门综合分析</a> <a href="/code/statisticalPanelCity/district-direct">各区执法综合分析</a></div>
<div class="data_cont">
<div class="data_item">
<div class="cont-title">单独执法数量</div>
<div class="cont-total"><b><span id="single-count">-</span></b>
<div class="cont-title">单部门执法数量</div>
<div class="cont-total"><b><span id="single-count">9605</span></b>
<div class="nece-data">
<div class="percent-tag">
<label>昨日</label>
@ -48,7 +48,7 @@
</div>
<div class="data_item">
<div class="cont-title">联合执法数量</div>
<div class="cont-total"><b><span id="union-count">-</span></b>
<div class="cont-total"><b><span id="union-count">3</span></b>
<div class="nece-data">
<div class="percent-tag">
<label>昨日</label>
@ -67,7 +67,7 @@
</div>
<div class="data_item">
<div class="cont-title">被执法企业数量</div>
<div class="cont-total"><b><span id="enfEnt-count">-</span></b>
<div class="cont-total"><b><span id="enfEnt-count">485</span></b>
<div class="nece-data">
<div class="percent-tag">
<label>昨日</label>
@ -86,7 +86,7 @@
</div>
<div class="data_item">
<div class="cont-title">入企压减率</div>
<div class="cont-total"><b><span id="entE-count">-</span></b>
<div class="cont-total"><b><span id="entE-count">3</span></b>
<div class="nece-data">
<div class="percent-tag">
<label>昨日</label>
@ -100,7 +100,7 @@
</div>
<div class="data_item">
<div class="cont-title">涉企投诉数量</div>
<div class="cont-total"><b><span id="entC-count">-</span></b>
<div class="cont-total"><b><span id="entC-count">3</span></b>
<div class="nece-data">
<div class="percent-tag">
<label>昨日</label>
@ -119,7 +119,7 @@
</div>
<div class="data_item">
<div class="cont-title">企业数量</div>
<div class="cont-total"><b><span id="ent-count">-</span></b>
<div class="cont-total"><b><span id="ent-count">4439328</span></b>
<div class="nece-data">
<div class="percent-tag">
<label>昨日</label>
@ -140,7 +140,7 @@
<div class="echarts_box">
<div class="inner">
<div class="twobox">
<div class="data_cont threebox">
<div class="data_cont threebox xzjc">
<h3 class="chart_tit">行政执法类别及占比</h3>
<div class="count_wrap" id="law_category">
<div class="count_item">
@ -148,7 +148,7 @@
<div class="count_div">
<img src="/statistical-new/images/icon_801.png" alt="行政检查" />
<div class="count_cont">
<span class="number_count">-</span>
<span class="number_count">9402</span>
<span class="number_percent">-<i>%</i></span>
</div>
</div>
@ -156,13 +156,13 @@
<div class="count_item">
<div class="count_lab">行政处罚</div>
<div class="count_div"> <img src="/statistical-new/images/icon_802.png" alt="行政处罚" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">176</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">行政许可</div>
<div class="count_div"> <img src="/statistical-new/images/icon_803.png" alt="行政许可" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">2</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
@ -204,18 +204,24 @@
<div class="count_item">
<div class="count_lab">文书送达</div>
<div class="count_div"> <img src="/statistical-new/images/icon_8010.png" alt="文书送达" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">21</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">其他</div>
<div class="count_div"> <img src="/statistical-new/images/icon_8010.png" alt="其他" />
<div class="count_cont"> <span class="number_count">10</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
</div>
</div>
<div class="data_cont threebox">
<div class="data_cont threebox xzjc">
<h3 class="chart_tit">行政执法投诉类别及占比</h3>
<div class="count_wrap com_cate" id="case_type">
<div class="count_item">
<div class="count_lab">违规执法</div>
<div class="count_div"> <img src="/statistical-new/images/icon_1001.png" alt="违法执法" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">1</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
@ -227,13 +233,13 @@
<div class="count_item">
<div class="count_lab">入企不扫码</div>
<div class="count_div"> <img src="/statistical-new/images/icon_1004.png" alt="入企不扫码" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">1</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
<div class="count_item">
<div class="count_lab">其他</div>
<div class="count_div"> <img src="/statistical-new/images/icon_1003.png" alt="其他" />
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">1</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
</div>
@ -245,49 +251,49 @@
<div class="count_wrap key_area" id="lawField">
<div class="count_item">
<div class="count_lab">市场监督管理</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">25</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">规划和自然资源</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">12</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">生态环境</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">121</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">交通运输</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">1399</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">卫生健康</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">470</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">应急管理</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">43</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">住房和建设</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">1275</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">消防救援</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">3953</span><span class="number_percent">-<i>%</i></span></div>
</div>
<div class="count_item">
<div class="count_lab">公安</div>
<div class="count_cont"> <span class="number_count">-</span><span class="number_percent">-<i>%</i></span></div>
<div class="count_cont"> <span class="number_count">1741</span><span class="number_percent">-<i>%</i></span></div>
</div>
</div>
</div>
<div class="data_cont threebox">
<h3 class="chart_tit">行政执法投诉评价</h3>
<h3 class="chart_tit">行政执法投诉反馈</h3>
<div class="count_review">
<div class="count_com">
<h4>投诉</h4>
<div class="count_list">
<div class="count_row"><span>投诉总量</span><span id="entC-env-count">-</span><span class="percent_ym">
<div class="count_row"><span>投诉总量</span><span id="entC-env-count">3</span><span class="percent_ym">
<div class="percent-tag">
<label>同比</label>
<span class="data-rise"><i class="fa fa fa-long-arrow-up"></i></span> <span class="data-fall" style="display: none;"><i class="fa fa fa-long-arrow-down"></i></span> <span class="data-change" id="entC-env-yoy">-%</span> </div>
@ -295,17 +301,17 @@
<label>环比</label>
<span class="data-rise" style="display: none;"><i class="fa fa fa-long-arrow-up"></i></span> <span class="data-fall"><i class="fa fa fa-long-arrow-down"></i></span> <span class="data-change" id="entC-env-mom">-%</span> </div>
</span></div>
<div class="count_row"><span>已办结</span><span id="entC-completed">-</span><span id="entC-completed-rate">-%</span></div>
<div class="count_row"><span>已办结</span><span id="entC-completed">3</span><span id="entC-completed-rate">-%</span></div>
<div class="count_row"><span>未办结</span><span id="entC-unCompleted">-</span><span id="entC-unCompleted-rate">-%</span></div>
</div>
</div>
<div class="count_com count_rev">
<h4>评价</h4>
<h4>反馈</h4>
<div class="count_list">
<div class="count_row"><span>满意</span><span id="eva-high">-</span><span id="eva-high-rate">-%</span></div>
<div class="count_row"><span>满意</span><span id="eva-high">3</span><span id="eva-high-rate">-%</span></div>
<div class="count_row"><span>较满意</span><span id="eva-mid">-</span><span id="eva-mid-rate">-%</span></div>
<div class="count_row"><span>不满意</span><span id="eva-low">-</span><span id="eva-low-rate">-%</span></div>
<div class="count_row"><span>未评价</span><span id="eva-un">-</span><span id="eva-un-rate">-%</span></div>
<div class="count_row"><span>未反馈</span><span id="eva-un">-</span><span id="eva-un-rate">-%</span></div>
</div>
</div>
</div>
@ -507,16 +513,16 @@
dataType: 'json',
contentType: "application/json",
success: function (result) {
// 上方六个指标
topSixMetrics(result.data);
// 行政执法类别及占比
lawCategoryRatio(result.data.lawCategory, result.data.lawCategoryTotal);
// 行政执法投诉类别及占比
caseTypeRatio(result.data.caseType, result.data.totalCaseType);
// 重点领域类别及占比
lawFieldRatio(result.data.lawField, result.data.lawFieldTotal);
// 行政执法投诉评价
evaRatio(result.data.eva)
// // 上方六个指标
// topSixMetrics(result.data);
// // 行政执法类别及占比
// lawCategoryRatio(result.data.lawCategory, result.data.lawCategoryTotal);
// // 行政执法投诉类别及占比
// caseTypeRatio(result.data.caseType, result.data.totalCaseType);
// // 重点领域类别及占比
// lawFieldRatio(result.data.lawField, result.data.lawFieldTotal);
// // 行政执法投诉评价
// evaRatio(result.data.eva)
}
});
}
@ -688,7 +694,7 @@
queryEnforcementSort(10);
} else {
$("#enforcementSort-dom").text("联合检查单位排行");
$("#entCSort-dom").text("执法人员涉企检查数是排行");
$("#entCSort-dom").text("执法人员涉企检查数量排行");
queryUnionSort(10);
queryLawEntSort(10);
}
@ -696,7 +702,7 @@
}
function topSixMetrics(data) {
// 单独执法
// 单部门执法
singleLaw = data.singleLaw;
$("#single-count").text(singleLaw.count)
$("#single-yesterday").text(singleLaw.yesterday)

4
lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/statistical-new/district-direct.html

@ -50,7 +50,7 @@
</div>
<div class="data_cont">
<div class="data_item">
<div class="cont-title">单独执法数量</div>
<div class="cont-title">单部门执法数量</div>
<div class="cont-total"><b><span id="single-count">-</span></b>
<div class="nece-data">
<div class="percent-tag">
@ -416,7 +416,7 @@
}
function topSixMetrics(data) {
// 单独执法
// 单部门执法
singleLaw = data.singleLaw;
$("#single-count").text(singleLaw.count)
$("#single-yesterday").text(singleLaw.yesterday)

28
lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/statistical/home.html

@ -18,7 +18,7 @@
<h1 class="block_tit">行政执法</h1>
<div class="count_admin_wrap">
<div class="count_admin">
<label class=""><img src="/statistical/images/icon_jc2.png" alt="单独执法" />单独执法</label>
<label class=""><img src="/statistical/images/icon_jc2.png" alt="单部门执法" />单部门执法</label>
<div class="count_admin_num"><b id="single_num">0</b><span class="number_percent" id="single_per">0.0<i>%</i></span></div>
<!-- <div class="percent_box">-->
<!-- <div class="percent-tag">-->
@ -225,7 +225,7 @@
base_html += ' <div id="xzzf{idx}" class="tab_inspect_item">';
base_html += ' <div class="inspect_count">(行政执法总数:<b>{all_num}</b>)</div>';
base_html += ' <ul>';
base_html += ' <li><label>单独执法</label><span>{single_num}</span><span>{single_per}%</span></li>';
base_html += ' <li><label>单部门执法</label><span>{single_num}</span><span>{single_per}%</span></li>';
base_html += ' <li><label>联合执法</label><span>{nuite_num}</span><span>{nuite_per}%</span></li>';
base_html += ' <li><label>入企压减率</label><span>{cut_num}</span><span>{cut_per}%</span></li>';
base_html += ' <li><label>被执法企业</label><span>{ent_num}</span><span></span></li>';
@ -778,6 +778,24 @@
}
/** 趋势图排除当月,只展示到上个月(当月数据未完整,末尾会骤降) */
function trimTrendToLastMonth(times, ins, ent) {
if (!times || !times.length) {
return { times: times || [], ins: ins || [], ent: ent || [] };
}
var now = new Date();
var curYm = now.getFullYear() + '-' + ('0' + (now.getMonth() + 1)).slice(-2);
var t = times.slice();
var i = (ins || []).slice();
var e = (ent || []).slice();
while (t.length && t[t.length - 1] === curYm) {
t.pop();
i.pop();
e.pop();
}
return { times: t, ins: i, ent: e };
}
/** 时间维度 */
function analysisTime(beginTime, endTime) {
$.ajax({
@ -787,7 +805,8 @@
dataType: 'json',
contentType: "application/json",
success: function (result) {
timesCharts(result.data.times, result.data.ins, result.data.ent);
var trimmed = trimTrendToLastMonth(result.data.times, result.data.ins, result.data.ent);
timesCharts(trimmed.times, trimmed.ins, trimmed.ent);
}
});
}
@ -800,7 +819,8 @@
dataType: 'json',
contentType: "application/json",
success: function (result) {
timesCharts2(result.data.times, result.data.ins, result.data.ent);
var trimmed = trimTrendToLastMonth(result.data.times, result.data.ins, result.data.ent);
timesCharts2(trimmed.times, trimmed.ins, trimmed.ent);
}
});
}

3
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/ThirdLoginServiceImpl.java

@ -219,7 +219,8 @@ public class ThirdLoginServiceImpl implements ThirdLoginService {
payload.put("name", user.getLoginName());
String token1 = JWTUtils.sign(payload);
user.setToken(token1);
user.setArea(dept.getAreaNode());
// user.setArea(dept.getAreaNode());
user.setArea(user.getBureauDept().getAreaNode());
return ZDResponse.success("登录成功",user);
} catch (Exception e) {
log.error(e.getMessage());

4
lib/EmergencyServiceApi/emergencyAuthServiceApi/src/main/java/com/zdxt/auth/dto/UserBean.java

@ -1,6 +1,8 @@
package com.zdxt.auth.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;
@ -28,8 +30,10 @@ public class UserBean implements Serializable {
/**
* 用户ID
* 出站 JSON 写成字符串,避免前端 JS Number 对雪花 ID 丢精度
*/
@ApiModelProperty("用户ID")
@JsonSerialize(using = ToStringSerializer.class)
private Long userId;
/**

Loading…
Cancel
Save