自处理案件统计

This commit is contained in:
Renpc-kilig 2024-04-15 16:12:19 +08:00
parent 79bc386be5
commit bb0a564ae4
7 changed files with 1639 additions and 1181 deletions

View File

@ -14,6 +14,7 @@ import com.cm.systemcity.pojo.vos.IdsVO;
import com.cm.systemcity.pojo.vos.reportcase.*; import com.cm.systemcity.pojo.vos.reportcase.*;
import com.cm.systemcity.service.readstate.IReadStateService; import com.cm.systemcity.service.readstate.IReadStateService;
import com.cm.systemcity.service.reportcase.IReportCaseService; import com.cm.systemcity.service.reportcase.IReportCaseService;
import com.cm.systemcity.service.reportcase.impl.ReportCaseServiceImpl;
import freemarker.template.TemplateException; import freemarker.template.TemplateException;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -624,4 +625,22 @@ public class ReportCaseController extends AbstractController {
reportCaseService.updateReportCase(params); reportCaseService.updateReportCase(params);
return new SuccessResult(); return new SuccessResult();
} }
/**
* 区域下数据数量
* 需要传入 areaParentId 统计该地区下级信息
*/
@GetMapping("data-counts/{level}")
public List<CaseCountDTO> dataCount(@PathVariable("level") Integer level){
Map<String, Object> params = requestParams();
return reportCaseService.dataCount(level, params);
}
@ApiOperation(value = "导出自上报案件数量", notes = "导出自上报案件数量接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("export-datacount")
public void exportDataCount(HttpServletResponse response) throws Exception {
Map<String, Object> params = requestParams();
reportCaseService.exportDataCount(response, params);
}
} }

View File

@ -384,4 +384,6 @@ public interface IReportCaseDao {
List<HandleDepartmentDTO> listDept(Map<String, Object> params); List<HandleDepartmentDTO> listDept(Map<String, Object> params);
Integer countReportCaseAssign(Map<String, Object> reportCaseAssignMap); Integer countReportCaseAssign(Map<String, Object> reportCaseAssignMap);
List<Map<String, Object>> countData(Map<String, Object> params);
} }

View File

@ -0,0 +1,80 @@
package com.cm.systemcity.pojo.dtos.reportcase;
import io.swagger.annotations.ApiModelProperty;
/**
* @author xwangs
* @create 2020-12-07 14:29
* @description
*/
public class CaseCountDTO {
@ApiModelProperty(name = "name", value = "级别")
private String name;
@ApiModelProperty(name = "count", value = "数量")
private String count;
@ApiModelProperty(name = "level", value = "级别")
private Integer level;
@ApiModelProperty(name = "dataId", value = "数据ID")
private String dataId;
@ApiModelProperty(name = "prpeDataId", value = "上一级数据ID")
private String prpeDataId;
@ApiModelProperty(name = "dataId", value = "上一级级别")
private Integer prpeLevel;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCount() {
return count;
}
public void setCount(String count) {
this.count = count;
}
public Integer getLevel() {
return level;
}
public void setLevel(Integer level) {
this.level = level;
}
public String getDataId() {
return dataId;
}
public void setDataId(String dataId) {
this.dataId = dataId;
}
public String getPrpeDataId() {
return prpeDataId;
}
public void setPrpeDataId(String prpeDataId) {
this.prpeDataId = prpeDataId;
}
public Integer getPrpeLevel() {
return prpeLevel;
}
public void setPrpeLevel(Integer prpeLevel) {
this.prpeLevel = prpeLevel;
}
@Override
public String toString() {
return "CaseCountDTO{" +
"name='" + name + '\'' +
", count='" + count + '\'' +
'}';
}
}

View File

@ -9,6 +9,7 @@ import com.cm.common.result.SuccessResult;
import com.cm.common.result.SuccessResultData; import com.cm.common.result.SuccessResultData;
import com.cm.common.result.SuccessResultList; import com.cm.common.result.SuccessResultList;
import com.cm.systemcity.pojo.dtos.reportcase.*; import com.cm.systemcity.pojo.dtos.reportcase.*;
import com.cm.systemcity.service.reportcase.impl.ReportCaseServiceImpl;
import freemarker.template.TemplateException; import freemarker.template.TemplateException;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -492,5 +493,9 @@ public interface IReportCaseService {
SuccessResultList<List<ReportCaseDTO>> listReportCaseComplex(ListPage page); SuccessResultList<List<ReportCaseDTO>> listReportCaseComplex(ListPage page);
void removeToComplexCases(Map<String, Object> params); void removeToComplexCases(java.util.Map<java.lang.String,java.lang.Object> params);
List<CaseCountDTO> dataCount(Integer level, Map<String, Object> params);
void exportDataCount(HttpServletResponse response, Map<String, Object> params);
} }

View File

@ -1,5 +1,6 @@
package com.cm.systemcity.service.reportcase.impl; package com.cm.systemcity.service.reportcase.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cm.common.component.SecurityComponent; import com.cm.common.component.SecurityComponent;
@ -15,7 +16,6 @@ import com.cm.common.plugin.oauth.service.department.IDepartmentService;
import com.cm.common.plugin.pojo.dtos.file.FileInfoWithPathDTO; import com.cm.common.plugin.pojo.dtos.file.FileInfoWithPathDTO;
import com.cm.common.pojo.ListPage; import com.cm.common.pojo.ListPage;
import com.cm.common.pojo.bos.UserInfoBO; import com.cm.common.pojo.bos.UserInfoBO;
import com.cm.common.pojo.dtos.FileDTO;
import com.cm.common.result.SuccessResult; import com.cm.common.result.SuccessResult;
import com.cm.common.result.SuccessResultData; import com.cm.common.result.SuccessResultData;
import com.cm.common.result.SuccessResultList; import com.cm.common.result.SuccessResultList;
@ -23,7 +23,6 @@ import com.cm.common.token.app.AppTokenManager;
import com.cm.common.token.app.entity.AppToken; import com.cm.common.token.app.entity.AppToken;
import com.cm.common.token.app.entity.AppTokenUser; import com.cm.common.token.app.entity.AppTokenUser;
import com.cm.common.utils.DateUtil; import com.cm.common.utils.DateUtil;
import com.cm.common.utils.RequestUtil;
import com.cm.common.utils.UUIDUtil; import com.cm.common.utils.UUIDUtil;
import com.cm.common.utils.ZipUtil; import com.cm.common.utils.ZipUtil;
import com.cm.common.utils.point.Point; import com.cm.common.utils.point.Point;
@ -34,6 +33,7 @@ import com.cm.systemcity.pojo.ImageBase64;
import com.cm.systemcity.pojo.dtos.AreaPointsDTO; import com.cm.systemcity.pojo.dtos.AreaPointsDTO;
import com.cm.systemcity.pojo.dtos.areapoints.GridAndPointsDTO; import com.cm.systemcity.pojo.dtos.areapoints.GridAndPointsDTO;
import com.cm.systemcity.pojo.dtos.bindingdepartment.BindingDepartmentDTO; import com.cm.systemcity.pojo.dtos.bindingdepartment.BindingDepartmentDTO;
import com.cm.systemcity.pojo.dtos.community.CommunityDTO;
import com.cm.systemcity.pojo.dtos.dict.DictDTO; import com.cm.systemcity.pojo.dtos.dict.DictDTO;
import com.cm.systemcity.pojo.dtos.readstate.ReadStateDTO; import com.cm.systemcity.pojo.dtos.readstate.ReadStateDTO;
import com.cm.systemcity.pojo.dtos.reportcase.*; import com.cm.systemcity.pojo.dtos.reportcase.*;
@ -60,12 +60,10 @@ import org.joda.time.format.DateTimeFormat;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*; import java.io.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.URLEncoder;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -2122,4 +2120,160 @@ public class ReportCaseServiceImpl extends BaseService implements IReportCaseSer
} }
return !PointUtil.isPointInPoly(point, points); return !PointUtil.isPointInPoly(point, points);
} }
@Override
public List<CaseCountDTO> dataCount(Integer level, Map<String, Object> params) {
switch (level) {
case 1:
return dataCountLevel1(params);
case 2:
return dataCountLevel2(params);
case 3:
return dataCountLevel3(params);
case 4:
return dataCountLevel4(params);
}
return new ArrayList<>();
}
@Override
public void exportDataCount(HttpServletResponse response, Map<String, Object> params) {
Integer level = Integer.parseInt(params.get("level").toString());
List<CaseCountDTO> caseCountDTOS = dataCount(level, params);
String excelName = "自处理案件统计";
String fileName = null;
try {
fileName = URLEncoder.encode(excelName, "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
String [] headers = {"序号", "级别", "数量"};
List<List<String>> listHeader = new ArrayList<>();
for(String item : headers) {
List<String> title = new ArrayList<>();
title.add(item);
listHeader.add(title);
}
List<List<Object>> listData = new ArrayList<>();
int i = 0;
for (CaseCountDTO caseCountDTO : caseCountDTOS) {
i++;
List<Object> data = new ArrayList<>();
data.add(i);
data.add(caseCountDTO.getName());
data.add(caseCountDTO.getCount());
listData.add(data);
}
try {
EasyExcel.write(response.getOutputStream()).sheet("自处理案件统计").head(listHeader).doWrite(listData);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
/**
* 全区数据
*
* @param params
*/
private List<CaseCountDTO> dataCountLevel1(Map<String, Object> params) {
List<Map<String, Object>> resultMap = reportCaseDao.countData(params);
CaseCountDTO caseCountDTO = new CaseCountDTO();
caseCountDTO.setName("全区");
caseCountDTO.setCount(resultMap.get(0).get("count").toString());
caseCountDTO.setLevel(1);
List<CaseCountDTO> caseCountDTOList = new ArrayList<>();
caseCountDTOList.add(caseCountDTO);
return caseCountDTOList;
}
/**
* 街道数据
*
* @param params
*/
private List<CaseCountDTO> dataCountLevel2(Map<String, Object> params) {
// 获取所有的街道数据
params.put("dictParentId", "9d179f05-3ea0-48f7-853c-d3b7124b791c");
params.put("area", "yes");
List<Map<String, Object>> resultMapList = reportCaseDao.countData(params);
List<DictDTO> dictDTOS = dictService.listDict(params);
List<CaseCountDTO> caseCountDTOList = new ArrayList<>();
for (DictDTO dictDTO : dictDTOS) {
for (Map<String, Object> stringObjectMap : resultMapList) {
if (dictDTO.getDictId().equals(stringObjectMap.get("areaId").toString())) {
CaseCountDTO caseCountDTO = new CaseCountDTO();
caseCountDTO.setName(dictDTO.getDictName());
caseCountDTO.setCount(stringObjectMap.get("count").toString());
caseCountDTO.setDataId(stringObjectMap.get("areaId").toString());
caseCountDTO.setLevel(2);
caseCountDTO.setPrpeLevel(1);
caseCountDTO.setPrpeDataId("9d179f05-3ea0-48f7-853c-d3b7124b791c");
caseCountDTOList.add(caseCountDTO);
}
}
}
return caseCountDTOList;
}
/**
* 社区数据
*
* @param params
*/
private List<CaseCountDTO> dataCountLevel3(Map<String, Object> params) {
// 获取所有的街道数据
List<CommunityDTO> communityDTOS = communityService.listCommunity(params);
params.put("community", "yes");
if(null == params.get("areaId")) {
throw new SearchException("areaId不能为空");
}
List<Map<String, Object>> resultMapList = reportCaseDao.countData(params);
List<CaseCountDTO> caseCountDTOList = new ArrayList<>();
for (CommunityDTO communityDTO : communityDTOS) {
for (Map<String, Object> stringObjectMap : resultMapList) {
if (communityDTO.getCommunityId().equals(stringObjectMap.get("communityId").toString())) {
CaseCountDTO caseCountDTO = new CaseCountDTO();
caseCountDTO.setName(communityDTO.getCommunityName());
caseCountDTO.setCount(stringObjectMap.get("count").toString());
caseCountDTO.setDataId(stringObjectMap.get("communityId").toString());
caseCountDTO.setLevel(3);
caseCountDTO.setPrpeLevel(2);
caseCountDTO.setPrpeDataId(params.get("areaId").toString());
caseCountDTOList.add(caseCountDTO);
}
}
}
return caseCountDTOList;
}
/**
* 网格员数据
*
* @param params
*/
private List<CaseCountDTO> dataCountLevel4(Map<String, Object> params) {
params.put("creator", "yes");
if(null == params.get("communityId")) {
throw new SearchException("communityId不能为空");
}
List<Map<String, Object>> maps = reportCaseDao.countData(params);
List<CaseCountDTO> caseCountDTOList = new ArrayList<>();
for (Map<String, Object> map : maps) {
CaseCountDTO caseCountDTO = new CaseCountDTO();
caseCountDTO.setName(map.get("caseReporter").toString());
caseCountDTO.setCount(map.get("count").toString());
caseCountDTO.setDataId(map.get("creator").toString());
caseCountDTO.setLevel(4);
caseCountDTO.setPrpeLevel(3);
caseCountDTO.setPrpeDataId(params.get("prpeDataId").toString());
caseCountDTO.setDataId(params.get("communityId").toString());
caseCountDTOList.add(caseCountDTO);
}
return caseCountDTOList;
}
} }

View File

@ -35,19 +35,22 @@
<result property="handleUserName" column="handle_user_name"/> <result property="handleUserName" column="handle_user_name"/>
</resultMap> </resultMap>
<resultMap id="reportCaseRegisterDTO" type="com.cm.systemcity.pojo.dtos.reportcase.ReportCaseRegisterDTO" extends="reportCaseDTO"> <resultMap id="reportCaseRegisterDTO" type="com.cm.systemcity.pojo.dtos.reportcase.ReportCaseRegisterDTO"
extends="reportCaseDTO">
<result property="communityBossId" column="community_boss_id"/> <result property="communityBossId" column="community_boss_id"/>
<result property="communityBossName" column="community_boss_name"/> <result property="communityBossName" column="community_boss_name"/>
<result property="acceptUserName" column="accept_user_name"/> <result property="acceptUserName" column="accept_user_name"/>
<result property="acceptDate" column="accept_date"/> <result property="acceptDate" column="accept_date"/>
</resultMap> </resultMap>
<resultMap id="reportCaseAssignDTO" type="com.cm.systemcity.pojo.dtos.reportcase.ReportCaseAssignDTO" extends="reportCaseDTO"> <resultMap id="reportCaseAssignDTO" type="com.cm.systemcity.pojo.dtos.reportcase.ReportCaseAssignDTO"
extends="reportCaseDTO">
<result property="registerUserName" column="register_user_name"/> <result property="registerUserName" column="register_user_name"/>
<result property="registerDate" column="register_date"/> <result property="registerDate" column="register_date"/>
</resultMap> </resultMap>
<resultMap id="reportCaseHandleDTO" type="com.cm.systemcity.pojo.dtos.reportcase.ReportCaseHandleDTO" extends="reportCaseDTO"> <resultMap id="reportCaseHandleDTO" type="com.cm.systemcity.pojo.dtos.reportcase.ReportCaseHandleDTO"
extends="reportCaseDTO">
<result property="caseId" column="case_id"/> <result property="caseId" column="case_id"/>
<result property="handleUserId" column="handle_user_id"/> <result property="handleUserId" column="handle_user_id"/>
<result property="handleUserName" column="handle_user_name"/> <result property="handleUserName" column="handle_user_name"/>
@ -56,7 +59,8 @@
<result property="handleCreateTime" column="handle_create_time"/> <result property="handleCreateTime" column="handle_create_time"/>
</resultMap> </resultMap>
<resultMap id="reportCaseInspectDTO" type="com.cm.systemcity.pojo.dtos.reportcase.ReportCaseInspectDTO" extends="reportCaseDTO"> <resultMap id="reportCaseInspectDTO" type="com.cm.systemcity.pojo.dtos.reportcase.ReportCaseInspectDTO"
extends="reportCaseDTO">
<result property="handleUserId" column="handle_user_id"/> <result property="handleUserId" column="handle_user_id"/>
<result property="handleUserName" column="handle_user_name"/> <result property="handleUserName" column="handle_user_name"/>
<result property="handleTime" column="handle_time"/> <result property="handleTime" column="handle_time"/>
@ -66,7 +70,8 @@
<result property="handleDate" column="handle_date"/> <result property="handleDate" column="handle_date"/>
</resultMap> </resultMap>
<resultMap id="reportCaseCloseDTO" type="com.cm.systemcity.pojo.dtos.reportcase.ReportCaseCloseDTO" extends="reportCaseDTO"> <resultMap id="reportCaseCloseDTO" type="com.cm.systemcity.pojo.dtos.reportcase.ReportCaseCloseDTO"
extends="reportCaseDTO">
<result property="handleUserId" column="inspect_user_id"/> <result property="handleUserId" column="inspect_user_id"/>
<result property="handleUserName" column="handle_user_name"/> <result property="handleUserName" column="handle_user_name"/>
<result property="handleTime" column="handle_time"/> <result property="handleTime" column="handle_time"/>
@ -111,6 +116,16 @@
<result property="departmentName" column="department_name"/> <result property="departmentName" column="department_name"/>
</resultMap> </resultMap>
<resultMap id="countMap" type="java.util.Map">
<result property="count" column="count"/>
<result property="areaId" column="area_id"/>
<result property="areaName" column="area_name"/>
<result property="communityId" column="community_id"/>
<result property="communityName" column="community_name"/>
<result property="caseReporter" column="case_reporter"/>
<result property="creator" column="creator"/>
</resultMap>
<select id="listPageReportDelete" parameterType="map" resultMap="reportCaseDTO"> <select id="listPageReportDelete" parameterType="map" resultMap="reportCaseDTO">
SELECT SELECT
t1.report_case_id, t1.report_case_id,
@ -242,8 +257,7 @@
<!-- 新增上报案件 --> <!-- 新增上报案件 -->
<insert id="saveReportCase" parameterType="map"> <insert id="saveReportCase" parameterType="map">
INSERT INTO city_report_case( INSERT INTO city_report_case(report_case_id,
report_case_id,
case_number, case_number,
area_id, area_id,
area_name, area_name,
@ -269,9 +283,8 @@
gmt_create, gmt_create,
modifier, modifier,
gmt_modified, gmt_modified,
is_delete is_delete)
) VALUES( VALUES (#{reportCaseId},
#{reportCaseId},
#{caseNumber}, #{caseNumber},
#{areaId}, #{areaId},
#{areaName}, #{areaName},
@ -297,8 +310,7 @@
#{gmtCreate}, #{gmtCreate},
#{modifier}, #{modifier},
#{gmtModified}, #{gmtModified},
#{isDelete} #{isDelete})
)
</insert> </insert>
<!-- 删除上报案件 --> <!-- 删除上报案件 -->
@ -638,19 +650,14 @@
</select> </select>
<select id="getReportCaseForDel" parameterType="map" resultMap="reportCaseDTO"> <select id="getReportCaseForDel" parameterType="map" resultMap="reportCaseDTO">
SELECT SELECT t1.*
t1.* FROM city_report_case t1
FROM WHERE t1.report_case_id = #{reportCaseId} LIMIT 1
city_report_case t1
WHERE
t1.report_case_id = #{reportCaseId}
LIMIT 1
</select> </select>
<!-- 新增上报案件受理信息 --> <!-- 新增上报案件受理信息 -->
<insert id="saveReportCaseAccept" parameterType="map"> <insert id="saveReportCaseAccept" parameterType="map">
INSERT INTO city_report_case_accept( INSERT INTO city_report_case_accept(case_id,
case_id,
community_boss_id, community_boss_id,
community_boss_name, community_boss_name,
accept_status, accept_status,
@ -661,9 +668,8 @@
gmt_create, gmt_create,
modifier, modifier,
gmt_modified, gmt_modified,
is_delete is_delete)
) VALUES( VALUES (#{caseId},
#{caseId},
#{communityBossId}, #{communityBossId},
#{communityBossName}, #{communityBossName},
#{acceptStatus}, #{acceptStatus},
@ -674,8 +680,7 @@
#{gmtCreate}, #{gmtCreate},
#{modifier}, #{modifier},
#{gmtModified}, #{gmtModified},
#{isDelete} #{isDelete})
)
</insert> </insert>
<!-- 修改上报案件受理信息 --> <!-- 修改上报案件受理信息 -->
@ -709,8 +714,7 @@
<!-- 新增案件立案信息 --> <!-- 新增案件立案信息 -->
<insert id="saveReportCaseRegister" parameterType="map"> <insert id="saveReportCaseRegister" parameterType="map">
INSERT INTO city_report_case_register( INSERT INTO city_report_case_register(case_id,
case_id,
register_opinion, register_opinion,
register_user_name, register_user_name,
is_assign, is_assign,
@ -718,9 +722,8 @@
gmt_create, gmt_create,
modifier, modifier,
gmt_modified, gmt_modified,
is_delete is_delete)
) VALUES( VALUES (#{caseId},
#{caseId},
#{registerOpinion}, #{registerOpinion},
#{registerUserName}, #{registerUserName},
#{isAssign}, #{isAssign},
@ -728,8 +731,7 @@
#{gmtCreate}, #{gmtCreate},
#{modifier}, #{modifier},
#{gmtModified}, #{gmtModified},
#{isDelete} #{isDelete})
)
</insert> </insert>
<!-- 修改案件立案信息 --> <!-- 修改案件立案信息 -->
@ -754,8 +756,7 @@
<!-- 新增案件下派信息 --> <!-- 新增案件下派信息 -->
<insert id="saveReportCaseAssign" parameterType="map"> <insert id="saveReportCaseAssign" parameterType="map">
INSERT INTO city_report_case_assign( INSERT INTO city_report_case_assign(case_id,
case_id,
handle_user_type, handle_user_type,
handle_user_id, handle_user_id,
handle_user_name, handle_user_name,
@ -767,9 +768,7 @@
gmt_create, gmt_create,
modifier, modifier,
gmt_modified, gmt_modified,
is_delete is_delete) VALUE ( #{caseId},
) VALUE(
#{caseId},
#{handleUserType}, #{handleUserType},
#{handleUserId}, #{handleUserId},
#{handleUserName}, #{handleUserName},
@ -815,14 +814,10 @@
</update> </update>
<select id="countReportCaseAssign" parameterType="map" resultType="java.lang.Integer"> <select id="countReportCaseAssign" parameterType="map" resultType="java.lang.Integer">
SELECT SELECT COUNT(*)
COUNT(*) FROM city_report_case_assign
FROM WHERE is_delete = 0
city_report_case_assign AND case_id = #{caseId}
WHERE
is_delete = 0
AND
case_id = #{caseId}
</select> </select>
@ -1170,8 +1165,7 @@
<!-- 案件待处理详情 --> <!-- 案件待处理详情 -->
<select id="getReportCaseHandle" parameterType="map" resultMap="reportCaseHandleDTO"> <select id="getReportCaseHandle" parameterType="map" resultMap="reportCaseHandleDTO">
SELECT SELECT t1.report_case_id,
t1.report_case_id,
t1.case_number, t1.case_number,
t1.area_id, t1.area_id,
t1.area_name, t1.area_name,
@ -1192,12 +1186,7 @@
t1.is_deny, t1.is_deny,
t1.is_self, t1.is_self,
t1.case_reporter, t1.case_reporter,
t1.creator, t1.creator, LEFT (t1.gmt_create, 19) gmt_create, t2.handle_user_id, t2.handle_user_name, t2.handle_time, LEFT (t2.gmt_create, 19) assign_date
LEFT(t1.gmt_create, 19) gmt_create,
t2.handle_user_id,
t2.handle_user_name,
t2.handle_time,
LEFT(t2.gmt_create, 19) assign_date
FROM FROM
city_report_case t1 city_report_case t1
INNER JOIN INNER JOIN
@ -1218,8 +1207,7 @@
<!-- 新增案件处理 --> <!-- 新增案件处理 -->
<insert id="saveReportCaseHandle" parameterType="map"> <insert id="saveReportCaseHandle" parameterType="map">
INSERT INTO city_report_case_handle( INSERT INTO city_report_case_handle(case_id,
case_id,
handle_user_name, handle_user_name,
handle_time, handle_time,
handle_timeout, handle_timeout,
@ -1230,9 +1218,8 @@
gmt_create, gmt_create,
modifier, modifier,
gmt_modified, gmt_modified,
is_delete is_delete)
) VALUES( VALUES (#{caseId},
#{caseId},
#{handleUserName}, #{handleUserName},
#{handleTime}, #{handleTime},
#{handleTimeout}, #{handleTimeout},
@ -1243,8 +1230,7 @@
#{gmtCreate}, #{gmtCreate},
#{modifier}, #{modifier},
#{gmtModified}, #{gmtModified},
#{isDelete} #{isDelete})
)
</insert> </insert>
<!-- 待检查案件列表 --> <!-- 待检查案件列表 -->
@ -1433,8 +1419,7 @@
<!-- 新增案件检查 --> <!-- 新增案件检查 -->
<insert id="saveReportCaseInspect" parameterType="map"> <insert id="saveReportCaseInspect" parameterType="map">
INSERT INTO city_report_case_inspect( INSERT INTO city_report_case_inspect(case_id,
case_id,
inspect_user_name, inspect_user_name,
inspect_photos, inspect_photos,
inspect_opinion, inspect_opinion,
@ -1444,9 +1429,8 @@
gmt_create, gmt_create,
modifier, modifier,
gmt_modified, gmt_modified,
is_delete is_delete)
) VALUES( VALUES (#{caseId},
#{caseId},
#{inspectUserName}, #{inspectUserName},
#{inspectPhotos}, #{inspectPhotos},
#{inspectOpinion}, #{inspectOpinion},
@ -1456,40 +1440,35 @@
#{gmtCreate}, #{gmtCreate},
#{modifier}, #{modifier},
#{gmtModified}, #{gmtModified},
#{isDelete} #{isDelete})
)
</insert> </insert>
<!-- 删除案件下派信息 --> <!-- 删除案件下派信息 -->
<delete id="removeReportCaseAssign" parameterType="map"> <delete id="removeReportCaseAssign" parameterType="map">
DELETE FROM DELETE
city_report_case_assign FROM city_report_case_assign
WHERE WHERE case_id = #{caseId}
case_id = #{caseId}
</delete> </delete>
<!-- 删除案件处理信息 --> <!-- 删除案件处理信息 -->
<delete id="removeReportCaseHandle" parameterType="map"> <delete id="removeReportCaseHandle" parameterType="map">
DELETE FROM DELETE
city_report_case_handle FROM city_report_case_handle
WHERE WHERE case_id = #{caseId}
case_id = #{caseId}
</delete> </delete>
<!-- 删除立案信息 --> <!-- 删除立案信息 -->
<delete id="removeReportCaseRegister" parameterType="map"> <delete id="removeReportCaseRegister" parameterType="map">
DELETE FROM DELETE
city_report_case_register FROM city_report_case_register
WHERE WHERE case_id = #{caseId}
case_id = #{caseId}
</delete> </delete>
<!-- 删除受理信息 --> <!-- 删除受理信息 -->
<delete id="removeReportCaseAccept" parameterType="map"> <delete id="removeReportCaseAccept" parameterType="map">
DELETE FROM DELETE
city_report_case_accept FROM city_report_case_accept
WHERE WHERE case_id = #{caseId}
case_id = #{caseId}
</delete> </delete>
<!-- 待结案案件列表 --> <!-- 待结案案件列表 -->
@ -1656,8 +1635,7 @@
<!-- 新增案件结案 --> <!-- 新增案件结案 -->
<insert id="saveReportCaseClose" parameterType="map"> <insert id="saveReportCaseClose" parameterType="map">
INSERT INTO city_report_case_close( INSERT INTO city_report_case_close(case_id,
case_id,
close_user_name, close_user_name,
close_opinion, close_opinion,
is_placeonfile, is_placeonfile,
@ -1665,9 +1643,7 @@
gmt_create, gmt_create,
modifier, modifier,
gmt_modified, gmt_modified,
is_delete is_delete) VALUE ( #{caseId},
) VALUE (
#{caseId},
#{closeUserName}, #{closeUserName},
#{closeOpinion}, #{closeOpinion},
#{isPlaceonfile}, #{isPlaceonfile},
@ -1681,8 +1657,7 @@
<!-- 保存案件日志 --> <!-- 保存案件日志 -->
<insert id="saveReportCaseLog" parameterType="map"> <insert id="saveReportCaseLog" parameterType="map">
INSERT INTO city_report_case_log( INSERT INTO city_report_case_log(case_id,
case_id,
option_type, option_type,
user_id, user_id,
user_name, user_name,
@ -1694,9 +1669,8 @@
handle_user_name, handle_user_name,
handle_time, handle_time,
handle_status, handle_status,
gmt_create gmt_create)
) VALUES( VALUES (#{caseId},
#{caseId},
#{optionType}, #{optionType},
#{userId}, #{userId},
#{userName}, #{userName},
@ -1708,8 +1682,7 @@
#{handleUserName}, #{handleUserName},
#{handleTime}, #{handleTime},
#{handleStatus}, #{handleStatus},
#{gmtCreate} #{gmtCreate})
)
</insert> </insert>
<!-- 统计我的案件 --> <!-- 统计我的案件 -->
@ -1739,8 +1712,7 @@
<!-- 我的代办案件列表(包括待办和待检查) --> <!-- 我的代办案件列表(包括待办和待检查) -->
<select id="listPageTotalReportCaseHandleOfMine" parameterType="map" resultMap="reportCaseInspectDTO"> <select id="listPageTotalReportCaseHandleOfMine" parameterType="map" resultMap="reportCaseInspectDTO">
SELECT SELECT t1.report_case_id,
t1.report_case_id,
t1.case_number, t1.case_number,
t1.area_id, t1.area_id,
t1.area_name, t1.area_name,
@ -1760,24 +1732,20 @@
t1.is_deny, t1.is_deny,
t1.is_self, t1.is_self,
t1.case_reporter, t1.case_reporter,
t1.creator, t1.creator, LEFT (t1.gmt_create, 19) gmt_create, t3.creator handle_user_id, t3.handle_user_name, t3.handle_time, t3.handle_timeout, t3.handle_opinion, t3.handle_photos, LEFT (t3.gmt_create, 19) handle_date
LEFT(t1.gmt_create, 19) gmt_create,
t3.creator handle_user_id,
t3.handle_user_name,
t3.handle_time,
t3.handle_timeout,
t3.handle_opinion,
t3.handle_photos,
LEFT(t3.gmt_create, 19) handle_date
FROM city_report_case t1 FROM city_report_case t1
LEFT JOIN city_report_case_assign t2 ON t1.report_case_id = t2.case_id AND t2.is_delete = 0 LEFT JOIN city_report_case_assign t2
ON t1.report_case_id = t2.case_id AND t2.is_delete = 0
LEFT JOIN city_report_case_handle t3 ON t1.report_case_id = t3.case_id AND t3.is_delete = 0 LEFT JOIN city_report_case_handle t3 ON t1.report_case_id = t3.case_id AND t3.is_delete = 0
WHERE WHERE
t1.is_delete = 0 t1.is_delete = 0
AND ( AND (
t1.case_status = 3 AND FIND_IN_SET(#{userId}, t2.handle_user_id) t1.case_status = 3
AND FIND_IN_SET(#{userId}
, t2.handle_user_id)
OR OR
t1.case_status = 4 AND t1.creator = #{userId} t1.case_status = 4
AND t1.creator = #{userId}
) )
ORDER BY ORDER BY
t1.gmt_create DESC t1.gmt_create DESC
@ -1785,13 +1753,10 @@
<!-- 统计我的待办(包括待办和检查) --> <!-- 统计我的待办(包括待办和检查) -->
<select id="countTotalHandleOfMine" parameterType="map" resultType="Integer"> <select id="countTotalHandleOfMine" parameterType="map" resultType="Integer">
SELECT SELECT COUNT(*)
COUNT(*) FROM city_report_case t1
FROM
city_report_case t1
LEFT JOIN city_report_case_assign t2 ON t1.report_case_id = t2.case_id AND t2.is_delete = 0 LEFT JOIN city_report_case_assign t2 ON t1.report_case_id = t2.case_id AND t2.is_delete = 0
WHERE WHERE t1.is_delete = 0
t1.is_delete = 0
AND ( AND (
t1.case_status = 3 AND FIND_IN_SET(#{userId}, t2.handle_user_id) t1.case_status = 3 AND FIND_IN_SET(#{userId}, t2.handle_user_id)
OR OR
@ -1801,8 +1766,7 @@
<!-- 案件日志列表 --> <!-- 案件日志列表 -->
<select id="listReportCaseLog" parameterType="map" resultMap="reportCaseLogDTO"> <select id="listReportCaseLog" parameterType="map" resultMap="reportCaseLogDTO">
SELECT SELECT case_id,
case_id,
option_type, option_type,
user_id, user_id,
user_name, user_name,
@ -1813,8 +1777,7 @@
handle_user_id, handle_user_id,
handle_user_name, handle_user_name,
handle_time, handle_time,
handle_status, handle_status, LEFT (gmt_create, 19) gmt_create
LEFT(gmt_create, 19) gmt_create
FROM FROM
city_report_case_log city_report_case_log
WHERE WHERE
@ -1935,30 +1898,23 @@
<!-- 统计处理案件数量 --> <!-- 统计处理案件数量 -->
<select id="countHandleReportCase" parameterType="map" resultType="Integer"> <select id="countHandleReportCase" parameterType="map" resultType="Integer">
SELECT SELECT COUNT(*)
COUNT(*) FROM city_report_case_handle
FROM WHERE is_delete = 0
city_report_case_handle
WHERE
is_delete = 0
</select> </select>
<!-- 异常案件数量 --> <!-- 异常案件数量 -->
<select id="countExceptionReportCase" parameterType="map" resultType="Integer"> <select id="countExceptionReportCase" parameterType="map" resultType="Integer">
SELECT SELECT COUNT(*)
COUNT(*) FROM city_report_case
FROM WHERE case_status <![CDATA[ < ]]> 0
city_report_case
WHERE
case_status <![CDATA[ < ]]> 0
</select> </select>
<!-- 案件转发--> <!-- 案件转发-->
<update id="forwardReportCase" parameterType="map"> <update id="forwardReportCase" parameterType="map">
UPDATE city_report_case SET UPDATE city_report_case
case_flow_forward = #{caseFlowForward} SET case_flow_forward = #{caseFlowForward}
WHERE WHERE report_case_id = #{reportCaseId}
report_case_id = #{reportCaseId}
</update> </update>
<!-- 查询案件已处理列表--> <!-- 查询案件已处理列表-->
@ -2116,75 +2072,59 @@
<!--获取案件检查人的信息--> <!--获取案件检查人的信息-->
<select id="getCaseHandleByCaseId" parameterType="map" resultType="map"> <select id="getCaseHandleByCaseId" parameterType="map" resultType="map">
SELECT SELECT handle_user_name handleUserName,
handle_user_name handleUserName,
gmt_create handleCreateTime, gmt_create handleCreateTime,
handle_opinion handleOpinion, handle_opinion handleOpinion,
handle_photos handlePhotos handle_photos handlePhotos
FROM FROM city_report_case_handle
city_report_case_handle WHERE is_delete = '0'
WHERE is_delete = '0' AND case_id = #{caseId} AND case_id = #{caseId}
</select> </select>
<select id="listRoleByUserId" parameterType="string" resultType="map"> <select id="listRoleByUserId" parameterType="string" resultType="map">
SELECT SELECT role_id roleId
role_id roleId FROM sys_role_user
FROM WHERE user_id = #{userId}
sys_role_user
WHERE
user_id = #{userId}
</select> </select>
<select id="listRoleByUserIdRoleId" parameterType="map" resultType="map"> <select id="listRoleByUserIdRoleId" parameterType="map" resultType="map">
SELECT SELECT role_id roleId
role_id roleId FROM sys_role_user
FROM WHERE user_id = #{userId}
sys_role_user
WHERE
user_id = #{userId}
AND role_id = #{roleId} AND role_id = #{roleId}
</select> </select>
<select id="listDeptByUserId" parameterType="string" resultType="map"> <select id="listDeptByUserId" parameterType="string" resultType="map">
SELECT SELECT department_id departmentId,
department_id departmentId,
user_id userId user_id userId
FROM FROM sys_department_user
sys_department_user WHERE user_id = #{userId}
WHERE
user_id = #{userId}
</select> </select>
<select id="listUserByDeptId" parameterType="string" resultType="map"> <select id="listUserByDeptId" parameterType="string" resultType="map">
SELECT SELECT t1.department_id departmentId,
t1.department_id departmentId,
t1.user_id userId, t1.user_id userId,
t2.user_name userName, t2.user_name userName,
t2.user_avatar userAvatar, t2.user_avatar userAvatar,
t2.user_phone userPhone t2.user_phone userPhone
FROM FROM sys_department_user t1
sys_department_user t1
LEFT JOIN sys_user t2 ON t1.user_id = t2.user_id LEFT JOIN sys_user t2 ON t1.user_id = t2.user_id
WHERE WHERE t2.is_delete = '0'
t2.is_delete = '0'
AND t2.user_id IS NOT NULL AND t2.user_id IS NOT NULL
AND t1.department_id = #{departmentId} AND t1.department_id = #{departmentId}
</select> </select>
<select id="listUserFromCommunityBoss" parameterType="map" resultType="map"> <select id="listUserFromCommunityBoss" parameterType="map" resultType="map">
SELECT SELECT t1.community_boss_id communityBossId,
t1.community_boss_id communityBossId,
t1.community_boss_user_id userId, t1.community_boss_user_id userId,
t2.user_name userName, t2.user_name userName,
t2.user_avatar userAvatar, t2.user_avatar userAvatar,
t2.user_phone userPhone, t2.user_phone userPhone,
t2.user_username userUsername t2.user_username userUsername
FROM FROM city_community_boss t1
city_community_boss t1
LEFT JOIN sys_user t2 ON t1.community_boss_user_id = t2.user_id LEFT JOIN sys_user t2 ON t1.community_boss_user_id = t2.user_id
LEFT JOIN city_community_boss_community t3 ON t1.community_boss_id = t3.community_boss_id LEFT JOIN city_community_boss_community t3 ON t1.community_boss_id = t3.community_boss_id
WHERE WHERE t1.is_delete = '0'
t1.is_delete = '0'
AND t2.is_delete = '0' AND t2.is_delete = '0'
AND t1.community_boss_level = #{communityBossLevel} AND t1.community_boss_level = #{communityBossLevel}
AND t1.area_id = #{areaId} AND t1.area_id = #{areaId}
@ -2193,11 +2133,8 @@
</select> </select>
<insert id="saveNPersonRole" parameterType="map"> <insert id="saveNPersonRole" parameterType="map">
INSERT INTO sys_role_user ( INSERT INTO sys_role_user (role_id, user_id)
role_id, user_id values (#{roleId}, #{userId})
) values (
#{roleId}, #{userId}
)
</insert> </insert>
<!-- 案件待处理列表 --> <!-- 案件待处理列表 -->
@ -2288,5 +2225,48 @@
</if> </if>
</select> </select>
<select id="countData" parameterType="map" resultMap="countMap">
SELECT
<if test="area != null and area != ''">
area_id,
area_name,
</if>
<if test="community != null and community != ''">
community_id,
community_name,
</if>
<if test="creator != null and creator != ''">
case_reporter,
creator,
</if>
COUNT(*) count
FROM city_report_case
WHERE is_self = 1
AND is_delete = 0
<if test="area != null and area != ''">
GROUP BY area_id
</if>
<if test="community != null and community != ''">
AND area_id = #{areaId}
GROUP BY community_id
</if>
<if test="creator != null and creator != ''">
AND community_id = #{communityId}
GROUP BY creator
</if>
<!--<if test="areaList != null and areaList.size > 0">
AND area_id IN
<foreach collection="areaList" index="index" open="(" separator="," close=")">
#{areaList[${index}]}
</foreach>
</if>
<if test="communityList != null and communityList.size > 0">
AND community_id IN
<foreach collection="communityList" index="index" open="(" separator="," close=")">
#{communityList[${index}]}
</foreach>
</if>-->
</select>
</mapper> </mapper>

View File

@ -0,0 +1,218 @@
<!doctype html>
<html lang="en">
<head>
<base href="/servicecity/">
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11,chrome=1"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-row">
<div class="layui-card" id="left-card-div" style="">
<div class="layui-card-body">
<div style="padding: 10px 0px; border-bottom: 1px solid #DDDDDD;text-align: right">
<button typeof="button" id="backToArea" class="layui-btn layui-btn-sm">返回上级</button>
<button typeof="button" id="exportExcel" class="layui-btn layui-btn-sm">导出本级数据</button>
</div>
<div>
<table class="layui-table">
<colgroup>
<col width="200">
<col width="150">
</colgroup>
<thead>
<tr>
<th style="text-align: center;">级别</th>
<th style="text-align: center;">数量</th>
</tr>
</thead>
<tbody id="areaUserCountBox"></tbody>
<script type="text/html" id="areaUserCountTemplate">
{{# for(var i = 0, item; item = d[i++];) { }}
<tr>
<td style="text-align: center;">
<a href="javascript:void(0)"
data-hansubarea="{{item.name}}" class="change-area"
style="color: #0a54a6;text-decoration: underline"
data-level="{{item.level}}"
data-dataId="{{item.dataId}}"
data-prpeLevel="{{item.prpeLevel}}"
data-prpeDataId="{{item.prpeDataId}}">{{item.name}}</a>
</td>
<td style="text-align: center;">
<a href="javascript:void(0)">{{item.count}}</a>
</td>
</tr>
{{# } }}
</script>
</table>
</div>
</div>
</div>
</div>
</div>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script>
layui.config({
base: 'assets/layuiadmin/'
}).extend({
index: 'lib/index'
}).use(['index', 'table', 'laytpl', 'laydate', 'common'], function () {
var $ = layui.$;
var $win = $(window);
var table = layui.table;
var admin = layui.admin;
var laydate = layui.laydate;
var laytpl = layui.laytpl;
var common = layui.common;
var resizeTimeout = null;
var tableUrl = 'api/building/listpage';
var residentialId = top.restAjax.params(window.location.href).residentialId;
var dataMsg = {
url: '',
dataId: '',
level: '',
nowLevel: '',
nowDataId: ''
};
var areaCode = '';
$('#left-card-div').height($win.height() - 30);
$('#left-card-div').css('overflow', 'auto');
function initData() {
listAreaUserCounts('api/reportcase/data-counts/{level}', 1, '');
}
initData();
function listAreaUserCounts(url, level, searchData, prpeDataId) {
var loadIndex = layer.load(0, {shade: 0.3});
top.restAjax.get(top.restAjax.path(url, [level, searchData, prpeDataId]),
{}, null, function (code, data) {
debugger
dataMsg.nowLevel = data[0].level;
dataMsg.nowDataId = data[0].dataId;
dataMsg.level = data[0].prpeLevel;
dataMsg.dataId = data[0].prpeDataId;
console.log(dataMsg)
laytpl(document.getElementById('areaUserCountTemplate').innerHTML).render(data, function (html) {
document.getElementById('areaUserCountBox').innerHTML = html;
});
layer.close(loadIndex);
}, function (code, data) {
top.dialog.msg(data.msg);
});
}
// 绑定点击区域切换事件
$(document).on('click', '.change-area', function () {
var level = $(this).data().level;
level+=1;
var dataId = $(this).data().dataid;
var url = '';
if(level == 2) {
url = 'api/reportcase/data-counts/{level}';
}
if(level == 3) {
url = 'api/reportcase/data-counts/{level}?areaId={areaId}';
}
if(level == 4) {
url = 'api/reportcase/data-counts/{level}?communityId={communityId}&prpeDataId={prpeDataId}';
}
if(level > 4) {
return false;
}
listAreaUserCounts(url, level, dataId, dataMsg.dataId);
reloadTable();
});
// 返回上级
$(document).on('click', '#backToArea', function () {
var level = dataMsg.level;
var dataId = dataMsg.dataId;
var url;
debugger
if(level == 1) {
url = 'api/reportcase/data-counts/{level}';
}
if(level == 2) {
url = 'api/reportcase/data-counts/{level}';
}
if(level == 3) {
url = 'api/reportcase/data-counts/{level}?areaId={areaId}';
}
if(level == 4) {
url = 'api/reportcase/data-counts/{level}?communityId={communityId}';
}
listAreaUserCounts(url, level, dataId);
reloadTable();
});
// 导出数据
$(document).on('click', '#exportExcel', function () {
top.dialog.msg('确定导出吗?', {
time: 0,
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
shade: 0.3,
yes: function (index) {
top.dialog.close(index);
var level = dataMsg.nowLevel;
var dataId = dataMsg.nowDataId;
var url;
if(level == 1) {
url = 'api/reportcase/export-datacount?level={level}';
}
if(level == 2) {
url = 'api/reportcase/export-datacount?level={level}';
}
if(level == 3) {
url = 'api/reportcase/export-datacount?level={level}&areaId={areaId}';
}
if(level == 4) {
url = 'api/reportcase/export-datacount?level={level}&communityId={communityId}&prpeDataId={prpeDataId}';
}
window.open(top.restAjax.path(url, [level, dataId, dataMsg.dataId]));
}
});
});
// 重载表格
function reloadTable(currentPage) {
table.reload('dataTable', {
url: top.restAjax.path(tableUrl, [residentialId]),
where: {
keywords: $('#keywords').val(),
startTime: $('#startTime').val(),
endTime: $('#endTime').val()
},
page: {
curr: currentPage
},
height: $win.height() - 90,
});
}
// 事件 - 页面变化
$win.on('resize', function () {
clearTimeout(resizeTimeout);
resizeTimeout = setTimeout(function () {
reloadTable();
}, 500);
});
});
</script>
</body>
</html>