Compare commits
10 Commits
5e69e3eb12
...
b96e254bcb
Author | SHA1 | Date | |
---|---|---|---|
|
b96e254bcb | ||
|
256a073e8a | ||
|
bb0a564ae4 | ||
|
79bc386be5 | ||
|
adebd6d8e5 | ||
|
8348de3159 | ||
|
e4310149a3 | ||
|
3a76278b7b | ||
|
88b170dbd2 | ||
|
e4232cc0d9 |
13
readme.md
13
readme.md
@ -1,3 +1,16 @@
|
||||
# 20231206迭代`未上线`
|
||||
|
||||
## 表结构调整
|
||||
|
||||
### city_community
|
||||
|
||||
| 字段 | 类型 | 默认值 | 描述 | 操作 |
|
||||
|---------------------------|---------|-----|---------|----|
|
||||
| base_grid_count | int(11) | | 基础网格数量 | 新增 |
|
||||
| base_community_boss_count | int(11) | | 基础网格员数量 | 新增 |
|
||||
| base_house_count | int(11) | | 基础户数 | 新增 |
|
||||
| base_population_count | int(11) | | 基础人口数量 | 新增 |
|
||||
|
||||
# 20231023迭代`已上线`
|
||||
|
||||
## 表结构调整
|
||||
|
@ -98,6 +98,10 @@ public class CommunityController extends AbstractController {
|
||||
params.put("areaName", communityVO.getAreaName());
|
||||
params.put("communitySummary", communityVO.getCommunitySummary());
|
||||
params.put("jumpSystemUrl", communityVO.getJumpSystemUrl());
|
||||
params.put("baseGridCount", communityVO.getBaseGridCount());
|
||||
params.put("baseCommunityBossCount", communityVO.getBaseCommunityBossCount());
|
||||
params.put("baseHouseCount", communityVO.getBaseHouseCount());
|
||||
params.put("basePopulationCount", communityVO.getBasePopulationCount());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "社区列表", notes = "社区列表接口")
|
||||
|
@ -105,7 +105,7 @@ public class DictController extends AbstractController {
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("listdict/{dictParentId}")
|
||||
public List<DictDTO> listDict(@PathVariable("dictParentId") String dictParentId) throws SearchException {
|
||||
Map<String, Object> params = getParams();
|
||||
Map<String, Object> params = requestParams();
|
||||
params.put("dictParentId", dictParentId);
|
||||
return dictService.listDict(params);
|
||||
}
|
||||
|
@ -14,11 +14,15 @@ import com.cm.systemcity.pojo.vos.IdsVO;
|
||||
import com.cm.systemcity.pojo.vos.reportcase.*;
|
||||
import com.cm.systemcity.service.readstate.IReadStateService;
|
||||
import com.cm.systemcity.service.reportcase.IReportCaseService;
|
||||
import com.cm.systemcity.service.reportcase.impl.ReportCaseServiceImpl;
|
||||
import freemarker.template.TemplateException;
|
||||
import io.swagger.annotations.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@ -57,7 +61,7 @@ public class ReportCaseController extends AbstractController {
|
||||
* 恢复已删除案件
|
||||
*/
|
||||
@GetMapping("update-back-delete-case/{reportCaseId}")
|
||||
public SuccessResult updateBackDeleteCase(@PathVariable("reportCaseId") String reportCaseId){
|
||||
public SuccessResult updateBackDeleteCase(@PathVariable("reportCaseId") String reportCaseId) {
|
||||
Map<String, Object> query = new HashMap<>(8);
|
||||
query.put("reportCaseId", reportCaseId);
|
||||
reportCaseService.updateBackDeleteCase(query);
|
||||
@ -68,12 +72,13 @@ public class ReportCaseController extends AbstractController {
|
||||
* 恢复已争议案件
|
||||
*/
|
||||
@GetMapping("update-back-disputed-case/{reportCaseId}")
|
||||
public SuccessResult updateBackDisputedCase(@PathVariable("reportCaseId") String reportCaseId){
|
||||
public SuccessResult updateBackDisputedCase(@PathVariable("reportCaseId") String reportCaseId) {
|
||||
Map<String, Object> query = new HashMap<>(8);
|
||||
query.put("reportCaseId", reportCaseId);
|
||||
reportCaseService.updateBackDisputedCase(query);
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* 已删除案件列表
|
||||
*/
|
||||
@ -83,6 +88,7 @@ public class ReportCaseController extends AbstractController {
|
||||
page.setParams(params);
|
||||
return reportCaseService.listPageReportDelete(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 已删除且有争议案件
|
||||
*/
|
||||
@ -127,6 +133,18 @@ public class ReportCaseController extends AbstractController {
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "删除为复杂案件", notes = "删除为复杂案件接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "ids", value = "上报案件ID列表,用下划线分隔", paramType = "path", example = "1_2_3")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@DeleteMapping("remove-to-complex-cases/{id}")
|
||||
public SuccessResult removeToComplexCases(@PathVariable("id") String id) throws RemoveException {
|
||||
Map<String, Object> params = getParams();
|
||||
params.put("reportCaseIds", Arrays.asList(id));
|
||||
reportCaseService.removeToComplexCases(params);
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "上报案件修改", notes = "上报案件修改接口")
|
||||
@ -269,6 +287,15 @@ public class ReportCaseController extends AbstractController {
|
||||
return reportCaseService.listPageReportCase(page);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "导出案件详情", notes = "导出案件详情接口")
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("export-reportcase")
|
||||
public void exportReportCase(HttpServletResponse response, ListPage page) throws Exception {
|
||||
Map<String, Object> params = requestParams();
|
||||
page.setParams(params);
|
||||
reportCaseService.exportReportCase(response, page);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "上报案件受理", notes = "上报案件受理接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "caseId", value = "案件ID", paramType = "path")
|
||||
@ -308,7 +335,7 @@ public class ReportCaseController extends AbstractController {
|
||||
@ApiOperation(value = "案件自动转派", notes = "案件自动转派")
|
||||
@PostMapping("save-report-case-auto-accept/{caseId}")
|
||||
public SuccessResult saveReportCaseAutoAccept(@PathVariable("caseId") String caseId,
|
||||
@RequestBody Map<String, Object> params){
|
||||
@RequestBody Map<String, Object> params) {
|
||||
params.put("caseId", caseId);
|
||||
return reportCaseService.saveReportCaseAutoAccept(params);
|
||||
}
|
||||
@ -488,6 +515,25 @@ public class ReportCaseController extends AbstractController {
|
||||
return reportCaseService.listReportCaseException(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 已删除且有争议案件
|
||||
*/
|
||||
@ApiOperation(value = "复杂案件列表(caseStatus=99)", notes = "复杂案件列表接口(caseStatus=99)")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "page", value = "当前页码", paramType = "form", dataType = "Integer", defaultValue = "1"),
|
||||
@ApiImplicitParam(name = "rows", value = "显示数量", paramType = "form", dataType = "Integer", defaultValue = "20"),
|
||||
@ApiImplicitParam(name = "keywords", value = "关键字", paramType = "form", dataType = "String"),
|
||||
@ApiImplicitParam(name = "startTime", value = "开始时间", paramType = "form", dataType = "String"),
|
||||
@ApiImplicitParam(name = "endTime", value = "结束时间", paramType = "form", dataType = "String")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("list-page-report-complex")
|
||||
public SuccessResultList<List<ReportCaseDTO>> listPageReportComplex(ListPage page) throws SearchException {
|
||||
Map<String, Object> params = requestParams();
|
||||
page.setParams(params);
|
||||
return reportCaseService.listReportCaseComplex(page);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "案件日志列表", notes = "案件日志列表接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "caseId", value = "案件ID", paramType = "path"),
|
||||
@ -562,6 +608,7 @@ public class ReportCaseController extends AbstractController {
|
||||
|
||||
/**
|
||||
* 首页根据案件类别查询
|
||||
*
|
||||
* @param idsVO
|
||||
* @return
|
||||
* @throws SearchException
|
||||
@ -571,10 +618,29 @@ public class ReportCaseController extends AbstractController {
|
||||
Map<String, Object> params = requestParams();
|
||||
return reportCaseService.listReportByCaseTypes(params);
|
||||
}
|
||||
|
||||
@GetMapping("update-case-flow-type")
|
||||
public SuccessResult updateCaseFlowType(){
|
||||
public SuccessResult updateCaseFlowType() {
|
||||
Map<String, Object> params = requestParams();
|
||||
reportCaseService.updateReportCase(params);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -232,4 +232,6 @@ public interface ICommunityBossDao {
|
||||
List<Map<String, Object>> listGridUser(Map<String, Object> query);
|
||||
|
||||
void deleteCommunityAndGridUserBind(Map<String, Object> query);
|
||||
|
||||
List<Map<String, Object>> getRoleUser(Map<String, Object> reqParams);
|
||||
}
|
||||
|
@ -385,5 +385,17 @@ public interface IReportCaseDao {
|
||||
|
||||
Integer countReportCaseAssign(Map<String, Object> reportCaseAssignMap);
|
||||
|
||||
List<Map<String, Object>> selfCountData(Map<String, Object> params);
|
||||
|
||||
List<Map<String, Object>> allCountData(Map<String, Object> params);
|
||||
|
||||
Integer handleCountData(Map<String, Object> params);
|
||||
|
||||
Integer queryCountWithTempTable(Map<String, Object> params);
|
||||
|
||||
void createTempTable(Map<String, Object> params);
|
||||
|
||||
void insertIntoTempTable(Map<String, Object> params);
|
||||
|
||||
void cleanUpTempTable();
|
||||
}
|
||||
|
68
src/main/java/com/cm/systemcity/pojo/ImageBase64.java
Normal file
68
src/main/java/com/cm/systemcity/pojo/ImageBase64.java
Normal file
@ -0,0 +1,68 @@
|
||||
package com.cm.systemcity.pojo;
|
||||
|
||||
public class ImageBase64 {
|
||||
|
||||
private String fileId;
|
||||
private String fileName;
|
||||
private String fileBase64;
|
||||
private Double fileWidth;
|
||||
private Double fileHeight;
|
||||
private String filePath;
|
||||
private String fileType;
|
||||
|
||||
public String getFileId() {
|
||||
return fileId;
|
||||
}
|
||||
|
||||
public void setFileId(String fileId) {
|
||||
this.fileId = fileId;
|
||||
}
|
||||
|
||||
public String getFileName() {
|
||||
return fileName;
|
||||
}
|
||||
|
||||
public void setFileName(String fileName) {
|
||||
this.fileName = fileName;
|
||||
}
|
||||
|
||||
public String getFileBase64() {
|
||||
return fileBase64;
|
||||
}
|
||||
|
||||
public void setFileBase64(String fileBase64) {
|
||||
this.fileBase64 = fileBase64;
|
||||
}
|
||||
|
||||
public Double getFileWidth() {
|
||||
return fileWidth;
|
||||
}
|
||||
|
||||
public void setFileWidth(Double fileWidth) {
|
||||
this.fileWidth = fileWidth;
|
||||
}
|
||||
|
||||
public Double getFileHeight() {
|
||||
return fileHeight;
|
||||
}
|
||||
|
||||
public void setFileHeight(Double fileHeight) {
|
||||
this.fileHeight = fileHeight;
|
||||
}
|
||||
|
||||
public String getFilePath() {
|
||||
return filePath;
|
||||
}
|
||||
|
||||
public void setFilePath(String filePath) {
|
||||
this.filePath = filePath;
|
||||
}
|
||||
|
||||
public String getFileType() {
|
||||
return fileType;
|
||||
}
|
||||
|
||||
public void setFileType(String fileType) {
|
||||
this.fileType = fileType;
|
||||
}
|
||||
}
|
@ -32,6 +32,15 @@ public class CommunityDTO implements Serializable {
|
||||
@ApiModelProperty(name = "jumpSystemUrl", value = "跳转地址")
|
||||
private String jumpSystemUrl;
|
||||
|
||||
@ApiModelProperty(name = "baseGridCount", value = "基础网格数量")
|
||||
private Integer baseGridCount;
|
||||
@ApiModelProperty(name = "baseCommunityBossCount", value = "基础网格员数量")
|
||||
private Integer baseCommunityBossCount;
|
||||
@ApiModelProperty(name = "baseHouseCount", value = "基础户数")
|
||||
private Integer baseHouseCount;
|
||||
@ApiModelProperty(name = "basePopulationCount", value = "基础人口数量")
|
||||
private Integer basePopulationCount;
|
||||
|
||||
public String getCommunityId() {
|
||||
return communityId;
|
||||
}
|
||||
@ -96,4 +105,35 @@ public class CommunityDTO implements Serializable {
|
||||
this.jumpSystemUrl = jumpSystemUrl;
|
||||
}
|
||||
|
||||
public Integer getBaseGridCount() {
|
||||
return baseGridCount;
|
||||
}
|
||||
|
||||
public void setBaseGridCount(Integer baseGridCount) {
|
||||
this.baseGridCount = baseGridCount;
|
||||
}
|
||||
|
||||
public Integer getBaseCommunityBossCount() {
|
||||
return baseCommunityBossCount;
|
||||
}
|
||||
|
||||
public void setBaseCommunityBossCount(Integer baseCommunityBossCount) {
|
||||
this.baseCommunityBossCount = baseCommunityBossCount;
|
||||
}
|
||||
|
||||
public Integer getBaseHouseCount() {
|
||||
return baseHouseCount;
|
||||
}
|
||||
|
||||
public void setBaseHouseCount(Integer baseHouseCount) {
|
||||
this.baseHouseCount = baseHouseCount;
|
||||
}
|
||||
|
||||
public Integer getBasePopulationCount() {
|
||||
return basePopulationCount;
|
||||
}
|
||||
|
||||
public void setBasePopulationCount(Integer basePopulationCount) {
|
||||
this.basePopulationCount = basePopulationCount;
|
||||
}
|
||||
}
|
@ -63,4 +63,6 @@ public class CommunityBossDTO implements Serializable {
|
||||
private String communityName;
|
||||
@ApiModelProperty(name = "gridSummary", value = "网格描述")
|
||||
private String gridSummary;
|
||||
private String gridIds;
|
||||
private String gridNames;
|
||||
}
|
@ -0,0 +1,112 @@
|
||||
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 = "selfCount", value = "自处理数量")
|
||||
private String selfCount;
|
||||
@ApiModelProperty(name = "allCount", value = "总上报数量")
|
||||
private String allCount;
|
||||
@ApiModelProperty(name = "handleCount", value = "已处理数量")
|
||||
private String handleCount;
|
||||
@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;
|
||||
@ApiModelProperty(name = "userId", value = "网格员ID")
|
||||
private String userId;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getSelfCount() {
|
||||
return selfCount;
|
||||
}
|
||||
|
||||
public void setSelfCount(String selfCount) {
|
||||
this.selfCount = selfCount;
|
||||
}
|
||||
|
||||
public String getAllCount() {
|
||||
return allCount;
|
||||
}
|
||||
|
||||
public void setAllCount(String allCount) {
|
||||
this.allCount = allCount;
|
||||
}
|
||||
|
||||
public String getHandleCount() {
|
||||
return handleCount;
|
||||
}
|
||||
|
||||
public void setHandleCount(String handleCount) {
|
||||
this.handleCount = handleCount;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CaseCountDTO{" +
|
||||
"name='" + name + '\'' +
|
||||
", selfCount='" + selfCount + '\'' +
|
||||
", allCount='" + allCount + '\'' +
|
||||
", handleCount='" + handleCount + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
@ -34,7 +34,7 @@ public class ReportCaseDTO {
|
||||
private String communityName;
|
||||
@ApiModelProperty(name = "caseSource", value = "来源")
|
||||
private String caseSource;
|
||||
@ApiModelProperty(name = "caseStatus", value = "状态")
|
||||
@ApiModelProperty(name = "caseStatus", value = "状态(值=99为复杂案件)")
|
||||
private String caseStatus;
|
||||
@ApiModelProperty(name = "caseTypeId", value = "类型ID")
|
||||
private String caseTypeId;
|
||||
|
@ -26,6 +26,14 @@ public class CommunityVO {
|
||||
private String areaName;
|
||||
@ApiModelProperty(name = "jumpSystemUrl", value = "跳转地址")
|
||||
private String jumpSystemUrl;
|
||||
@ApiModelProperty(name = "baseGridCount", value = "基础网格数量")
|
||||
private Integer baseGridCount;
|
||||
@ApiModelProperty(name = "baseCommunityBossCount", value = "基础网格员数量")
|
||||
private Integer baseCommunityBossCount;
|
||||
@ApiModelProperty(name = "baseHouseCount", value = "基础户数")
|
||||
private Integer baseHouseCount;
|
||||
@ApiModelProperty(name = "basePopulationCount", value = "基础人口数量")
|
||||
private Integer basePopulationCount;
|
||||
|
||||
public String getCommunityName() {
|
||||
return communityName;
|
||||
@ -75,4 +83,35 @@ public class CommunityVO {
|
||||
this.jumpSystemUrl = jumpSystemUrl;
|
||||
}
|
||||
|
||||
public Integer getBaseGridCount() {
|
||||
return baseGridCount;
|
||||
}
|
||||
|
||||
public void setBaseGridCount(Integer baseGridCount) {
|
||||
this.baseGridCount = baseGridCount;
|
||||
}
|
||||
|
||||
public Integer getBaseCommunityBossCount() {
|
||||
return baseCommunityBossCount;
|
||||
}
|
||||
|
||||
public void setBaseCommunityBossCount(Integer baseCommunityBossCount) {
|
||||
this.baseCommunityBossCount = baseCommunityBossCount;
|
||||
}
|
||||
|
||||
public Integer getBaseHouseCount() {
|
||||
return baseHouseCount;
|
||||
}
|
||||
|
||||
public void setBaseHouseCount(Integer baseHouseCount) {
|
||||
this.baseHouseCount = baseHouseCount;
|
||||
}
|
||||
|
||||
public Integer getBasePopulationCount() {
|
||||
return basePopulationCount;
|
||||
}
|
||||
|
||||
public void setBasePopulationCount(Integer basePopulationCount) {
|
||||
this.basePopulationCount = basePopulationCount;
|
||||
}
|
||||
}
|
@ -145,15 +145,15 @@ public class AreaPointsServiceImpl extends AbstractService implements IAreaPoint
|
||||
return easyUITreeDTOs;
|
||||
}
|
||||
|
||||
private List<EasyUITreeDTO> setArea(){
|
||||
private List<EasyUITreeDTO> setArea() {
|
||||
List<EasyUITreeDTO> resList = new ArrayList<>();
|
||||
Map<String, Object> param = new HashMap<>(4);
|
||||
param.put("dictParentId", "9d179f05-3ea0-48f7-853c-d3b7124b791c");
|
||||
// 查询街道
|
||||
List<DictDTO> areaList = dictService.listDict(param);
|
||||
for(DictDTO item : areaList){
|
||||
for (DictDTO item : areaList) {
|
||||
// 剔除专管员区域(画网格用)
|
||||
if("e64a0a05-45ca-4452-a869-a4dcbff74593".equals(item.getDictId())){
|
||||
if ("e64a0a05-45ca-4452-a869-a4dcbff74593".equals(item.getDictId())) {
|
||||
continue;
|
||||
}
|
||||
EasyUITreeDTO dto = new EasyUITreeDTO();
|
||||
@ -169,13 +169,13 @@ public class AreaPointsServiceImpl extends AbstractService implements IAreaPoint
|
||||
return resList;
|
||||
}
|
||||
|
||||
private List<EasyUITreeDTO> setCommunity(String areaId){
|
||||
private List<EasyUITreeDTO> setCommunity(String areaId) {
|
||||
List<EasyUITreeDTO> resList = new ArrayList<>();
|
||||
Map<String, Object> param = new HashMap<>(4);
|
||||
param.put("areaId", areaId);
|
||||
// 查询社区
|
||||
List<CommunityDTO> communityDTOS = communityService.listCommunity(param);
|
||||
for (CommunityDTO item : communityDTOS){
|
||||
for (CommunityDTO item : communityDTOS) {
|
||||
EasyUITreeDTO dto = new EasyUITreeDTO();
|
||||
dto.setId("community_" + item.getCommunityId());
|
||||
dto.setText(item.getCommunityName());
|
||||
@ -189,13 +189,13 @@ public class AreaPointsServiceImpl extends AbstractService implements IAreaPoint
|
||||
return resList;
|
||||
}
|
||||
|
||||
private List<EasyUITreeDTO> setGridUser(String areaId, String communityId){
|
||||
private List<EasyUITreeDTO> setGridUser(String areaId, String communityId) {
|
||||
List<EasyUITreeDTO> resList = new ArrayList<>();
|
||||
Map<String, Object> param = new HashMap<>(4);
|
||||
param.put("areaId", areaId);
|
||||
param.put("communityId", communityId);
|
||||
List<CommunityBossDTO> list = communityBossService.listGridUser(param);
|
||||
for (CommunityBossDTO item : list){
|
||||
for (CommunityBossDTO item : list) {
|
||||
EasyUITreeDTO dto = new EasyUITreeDTO();
|
||||
dto.setId("areaUser_" + item.getCommunityBossUserId());
|
||||
dto.setText(item.getCommunityBossName());
|
||||
@ -203,6 +203,28 @@ public class AreaPointsServiceImpl extends AbstractService implements IAreaPoint
|
||||
dto.setAreaId(areaId);
|
||||
dto.setChildren(new ArrayList<>());
|
||||
dto.setNodeTag("user");
|
||||
|
||||
// 网格列表
|
||||
if (org.apache.commons.lang3.StringUtils.isNotBlank(item.getGridNames())) {
|
||||
String gridIds = item.getGridIds().toString();
|
||||
String[] gridIdArray = gridIds.split(",");
|
||||
String codeNames = item.getGridNames().toString();
|
||||
String[] codeNameArray = codeNames.split(",");
|
||||
List<EasyUITreeDTO> easyUITreeDTOS = new ArrayList<>();
|
||||
for (int i = 0; i < codeNameArray.length; i++) {
|
||||
String codeName = codeNameArray[i];
|
||||
EasyUITreeDTO easyUITreeDTO = new EasyUITreeDTO();
|
||||
easyUITreeDTO.setId("grid_" + gridIdArray[i]);
|
||||
easyUITreeDTO.setText(codeName);
|
||||
easyUITreeDTO.setIconCls("");
|
||||
easyUITreeDTO.setAreaId(areaId);
|
||||
easyUITreeDTO.setNodeTag("grid");
|
||||
easyUITreeDTOS.add(easyUITreeDTO);
|
||||
}
|
||||
dto.setChildren(easyUITreeDTOS);
|
||||
} else {
|
||||
dto.setChildren(new ArrayList<>());
|
||||
}
|
||||
resList.add(dto);
|
||||
}
|
||||
return resList;
|
||||
@ -225,20 +247,41 @@ public class AreaPointsServiceImpl extends AbstractService implements IAreaPoint
|
||||
return resList;
|
||||
}
|
||||
|
||||
private List<EasyUITreeDTO> setNPerson(String departmentId){
|
||||
private List<EasyUITreeDTO> setNPerson(String departmentId) {
|
||||
List<EasyUITreeDTO> resList = new ArrayList<>();
|
||||
Map<String, Object> param = new HashMap<>(4);
|
||||
param.put("departmentId", departmentId);
|
||||
List<Map<String, Object>> list = bindingDepartmentService.listNPerson(param);
|
||||
for(Map<String, Object> item : list ){
|
||||
for (Map<String, Object> item : list) {
|
||||
EasyUITreeDTO dto = new EasyUITreeDTO();
|
||||
dto.setId("nPerson_" + item.get("userId"));
|
||||
dto.setText(item.get("userName").toString());
|
||||
dto.setIconCls("icon-person");
|
||||
dto.setAreaId("");
|
||||
dto.setDepartmentId(departmentId);
|
||||
dto.setChildren(new ArrayList<>());
|
||||
dto.setNodeTag("user");
|
||||
// 网格列表
|
||||
if (item.get("gridNames") != null && !StringUtils.isEmpty(item.get("gridNames").toString())) {
|
||||
String gridIds = item.get("gridIds").toString();
|
||||
String[] gridIdArray = gridIds.split(",");
|
||||
String codeNames = item.get("gridNames").toString();
|
||||
String[] codeNameArray = codeNames.split(",");
|
||||
List<EasyUITreeDTO> easyUITreeDTOS = new ArrayList<>();
|
||||
for (int i = 0; i < codeNameArray.length; i++) {
|
||||
String codeName = codeNameArray[i];
|
||||
EasyUITreeDTO easyUITreeDTO = new EasyUITreeDTO();
|
||||
easyUITreeDTO.setId("grid_" + gridIdArray[i]);
|
||||
easyUITreeDTO.setText(codeName);
|
||||
easyUITreeDTO.setIconCls("");
|
||||
easyUITreeDTO.setAreaId("");
|
||||
easyUITreeDTO.setDepartmentId(departmentId);
|
||||
easyUITreeDTO.setNodeTag("grid");
|
||||
easyUITreeDTOS.add(easyUITreeDTO);
|
||||
}
|
||||
dto.setChildren(easyUITreeDTOS);
|
||||
} else {
|
||||
dto.setChildren(new ArrayList<>());
|
||||
}
|
||||
resList.add(dto);
|
||||
}
|
||||
return resList;
|
||||
|
@ -230,4 +230,6 @@ public interface ICommunityBossService {
|
||||
List<CommunityBossDTO> listGridUser(Map<String, Object> params);
|
||||
|
||||
List<CommunityBossDTO> listCommunityBossByLevel(int level);
|
||||
|
||||
List<Map<String, Object>> getRoleUser(Map<String, Object> reqParams);
|
||||
}
|
||||
|
@ -389,6 +389,18 @@ public class CommunityBossServiceImpl extends AbstractService implements ICommun
|
||||
gridUser.setCommunityBossName(item.get("user_name").toString());
|
||||
if (relationGridList != null && relationGridList.size() > 0) {
|
||||
gridUser.setCommunityBossName("[有网格] " + item.get("user_name").toString());
|
||||
String gridIds = "";
|
||||
String gridNames = "";
|
||||
for (Map<String, Object> relationGridMap : relationGridList) {
|
||||
if (!gridIds.isEmpty()) {
|
||||
gridIds += ",";
|
||||
gridNames += ",";
|
||||
}
|
||||
gridIds += relationGridMap.get("gridId");
|
||||
gridNames += relationGridMap.get("gridName");
|
||||
}
|
||||
gridUser.setGridIds(gridIds);
|
||||
gridUser.setGridNames(gridNames);
|
||||
}
|
||||
gridUser.setCommunityBossUserId(item.get("community_boss_user_id").toString());
|
||||
list.add(gridUser);
|
||||
@ -709,4 +721,9 @@ public class CommunityBossServiceImpl extends AbstractService implements ICommun
|
||||
List<Map<String, Object>> nPeopleList = communityBossDao.listNPeopleByRoleId(roleId);
|
||||
return nPeopleList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> getRoleUser(Map<String, Object> reqParams) {
|
||||
return communityBossDao.getRoleUser(reqParams);
|
||||
}
|
||||
}
|
@ -9,7 +9,11 @@ import com.cm.common.result.SuccessResult;
|
||||
import com.cm.common.result.SuccessResultData;
|
||||
import com.cm.common.result.SuccessResultList;
|
||||
import com.cm.systemcity.pojo.dtos.reportcase.*;
|
||||
import com.cm.systemcity.service.reportcase.impl.ReportCaseServiceImpl;
|
||||
import freemarker.template.TemplateException;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@ -125,6 +129,14 @@ public interface IReportCaseService {
|
||||
*/
|
||||
SuccessResultList<List<ReportCaseDTO>> listPageReportCase(ListPage page) throws SearchException;
|
||||
|
||||
/**
|
||||
* 导出案件
|
||||
*
|
||||
* @param params
|
||||
*/
|
||||
void exportReportCase(HttpServletResponse response, ListPage page) throws Exception;
|
||||
|
||||
|
||||
/**
|
||||
* 我的上报案件
|
||||
*
|
||||
@ -367,6 +379,7 @@ public interface IReportCaseService {
|
||||
|
||||
/**
|
||||
* 案件总数和比率统计
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@ -374,6 +387,7 @@ public interface IReportCaseService {
|
||||
|
||||
/**
|
||||
* 案件数据展示统计
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@ -381,6 +395,7 @@ public interface IReportCaseService {
|
||||
|
||||
/**
|
||||
* 镇街案件受理分页列表
|
||||
*
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
@ -388,6 +403,7 @@ public interface IReportCaseService {
|
||||
|
||||
/**
|
||||
* 案件转发
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@ -395,6 +411,7 @@ public interface IReportCaseService {
|
||||
|
||||
/**
|
||||
* 案件回退
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@ -402,6 +419,7 @@ public interface IReportCaseService {
|
||||
|
||||
/**
|
||||
* 职能部门案件处理情况(超时或未处理)
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@ -409,6 +427,7 @@ public interface IReportCaseService {
|
||||
|
||||
/**
|
||||
* 职能部门案件得分情况统计
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@ -416,6 +435,7 @@ public interface IReportCaseService {
|
||||
|
||||
/**
|
||||
* 职能部门案件督查
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@ -423,6 +443,7 @@ public interface IReportCaseService {
|
||||
|
||||
/**
|
||||
* 街镇村案件督查
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@ -430,6 +451,7 @@ public interface IReportCaseService {
|
||||
|
||||
/**
|
||||
* 重新受理异常案件
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@ -437,6 +459,7 @@ public interface IReportCaseService {
|
||||
|
||||
/**
|
||||
* 2021-12-30 案件自动转派
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@ -446,6 +469,7 @@ public interface IReportCaseService {
|
||||
|
||||
/**
|
||||
* 已删除案件列表
|
||||
*
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
@ -456,6 +480,7 @@ public interface IReportCaseService {
|
||||
|
||||
/**
|
||||
* 恢复已删除案件
|
||||
*
|
||||
* @param query
|
||||
*/
|
||||
void updateBackDeleteCase(Map<String, Object> query);
|
||||
@ -466,4 +491,11 @@ public interface IReportCaseService {
|
||||
ReportCaseDTO getReportCaseForDel(Map<String, Object> params);
|
||||
|
||||
|
||||
SuccessResultList<List<ReportCaseDTO>> listReportCaseComplex(ListPage page);
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -1,14 +1,19 @@
|
||||
package com.cm.systemcity.service.reportcase.impl;
|
||||
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cm.common.component.SecurityComponent;
|
||||
import com.cm.common.config.properties.FileProperties;
|
||||
import com.cm.common.constants.ISystemConstant;
|
||||
import com.cm.common.exception.RemoveException;
|
||||
import com.cm.common.exception.SaveException;
|
||||
import com.cm.common.exception.SearchException;
|
||||
import com.cm.common.exception.UpdateException;
|
||||
import com.cm.common.exception.base.SystemException;
|
||||
import com.cm.common.plugin.dao.file.IFileDao;
|
||||
import com.cm.common.plugin.oauth.service.department.IDepartmentService;
|
||||
import com.cm.common.plugin.pojo.dtos.file.FileInfoWithPathDTO;
|
||||
import com.cm.common.pojo.ListPage;
|
||||
import com.cm.common.pojo.bos.UserInfoBO;
|
||||
import com.cm.common.result.SuccessResult;
|
||||
@ -19,13 +24,16 @@ import com.cm.common.token.app.entity.AppToken;
|
||||
import com.cm.common.token.app.entity.AppTokenUser;
|
||||
import com.cm.common.utils.DateUtil;
|
||||
import com.cm.common.utils.UUIDUtil;
|
||||
import com.cm.common.utils.ZipUtil;
|
||||
import com.cm.common.utils.point.Point;
|
||||
import com.cm.common.utils.point.PointUtil;
|
||||
import com.cm.systemcity.consts.ISystemCityConsts;
|
||||
import com.cm.systemcity.dao.reportcase.IReportCaseDao;
|
||||
import com.cm.systemcity.pojo.ImageBase64;
|
||||
import com.cm.systemcity.pojo.dtos.AreaPointsDTO;
|
||||
import com.cm.systemcity.pojo.dtos.areapoints.GridAndPointsDTO;
|
||||
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.readstate.ReadStateDTO;
|
||||
import com.cm.systemcity.pojo.dtos.reportcase.*;
|
||||
@ -38,8 +46,13 @@ import com.cm.systemcity.service.readstate.IReadStateService;
|
||||
import com.cm.systemcity.service.reportcase.IReportCaseService;
|
||||
import com.cm.systemcity.service.userpoints.IUserPointsService;
|
||||
import com.cm.systemcity.service.worknote.IWorkNoteService;
|
||||
import com.cm.systemcity.utils.ImageUtil;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import freemarker.template.Configuration;
|
||||
import freemarker.template.Template;
|
||||
import freemarker.template.TemplateException;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.Days;
|
||||
@ -47,11 +60,16 @@ import org.joda.time.format.DateTimeFormat;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.net.URLEncoder;
|
||||
import java.text.NumberFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -102,6 +120,18 @@ public class ReportCaseServiceImpl extends BaseService implements IReportCaseSer
|
||||
private IDictService dictService;
|
||||
@Autowired
|
||||
private IUserPointsService userPointsService;
|
||||
@Autowired
|
||||
private IFileDao fileDao;
|
||||
@Autowired
|
||||
private FileProperties fileProperties;
|
||||
private final Configuration freemarkerConfiguration = new Configuration(Configuration.VERSION_2_3_22);
|
||||
|
||||
public ReportCaseServiceImpl() {
|
||||
freemarkerConfiguration.setClassForTemplateLoading(ReportCaseServiceImpl.class, "/ftl/reportcase");
|
||||
freemarkerConfiguration.setDefaultEncoding("UTF-8");
|
||||
freemarkerConfiguration.setLocale(Locale.CHINESE);
|
||||
freemarkerConfiguration.setEncoding(Locale.CHINESE, "UTF-8");
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuccessResult updateReportCaseException(Map<String, Object> params) throws UpdateException, SaveException {
|
||||
@ -315,6 +345,24 @@ public class ReportCaseServiceImpl extends BaseService implements IReportCaseSer
|
||||
return reportCaseDao.getReportCaseForDel(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuccessResultList<List<ReportCaseDTO>> listReportCaseComplex(ListPage page) {
|
||||
setNPersonAreaParams(page.getParams());
|
||||
page.getParams().put("caseStatus", 99);
|
||||
// caseStatus=99为复杂案件
|
||||
PageHelper.startPage(page.getPage(), page.getRows());
|
||||
List<ReportCaseDTO> deleteList = reportCaseDao.listPageReportDelete(page.getParams());
|
||||
PageInfo<ReportCaseDTO> pageInfo = new PageInfo<>(deleteList);
|
||||
return new SuccessResultList<>(deleteList, pageInfo.getPageNum(), pageInfo.getTotal());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeToComplexCases(Map<String, Object> params) {
|
||||
setUpdateInfo(params);
|
||||
params.put("caseStatus", 99);
|
||||
reportCaseDao.removeToDisputedCases(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReportCaseDTO getReportCase(String token, Map<String, Object> params) throws SearchException {
|
||||
ReportCaseDTO dto = reportCaseDao.getReportCase(params);
|
||||
@ -371,6 +419,228 @@ public class ReportCaseServiceImpl extends BaseService implements IReportCaseSer
|
||||
return new SuccessResultList<>(reportCaseDTOs, pageInfo.getPageNum(), pageInfo.getTotal());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exportReportCase(HttpServletResponse response, ListPage page) throws Exception {
|
||||
SuccessResultList<List<ReportCaseDTO>> successResultList = listPageReportCase(page);
|
||||
List<ReportCaseDTO> reportCaseDTOs = successResultList.getRows();
|
||||
if (reportCaseDTOs.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
// 查询到所有的文件
|
||||
List<String> fileIds = new ArrayList<>();
|
||||
reportCaseDTOs.forEach(reportCaseDTO -> {
|
||||
fileIds.addAll(listReportPhotos(reportCaseDTO.getCasePhotos()));
|
||||
});
|
||||
Map<String, ImageBase64> imageBase64Map = image2ImageBase64(fileIds);
|
||||
|
||||
String baseExportPath = fileProperties.getUploadPath() + "ReportCaseDetail" + File.separator + DateUtil.getSdfTimes();
|
||||
File baseExportFolder = new File(baseExportPath);
|
||||
if (!baseExportFolder.exists()) {
|
||||
baseExportFolder.mkdirs();
|
||||
}
|
||||
Template template = freemarkerConfiguration.getTemplate("case-detail.ftl", ISystemConstant.CHARSET_UTF8);
|
||||
|
||||
// 等待完成
|
||||
CompletableFuture<Void> allOf = CompletableFuture.allOf(reportCaseDTOs.parallelStream().map(reportCaseDTO -> CompletableFuture.runAsync(() -> {
|
||||
// 案件图片列表
|
||||
List<String> imageIds = listReportPhotos(reportCaseDTO.getCasePhotos());
|
||||
List<ImageBase64> caseImages = new ArrayList<>();
|
||||
imageIds.forEach(imageId -> {
|
||||
ImageBase64 imageBase64 = imageBase64Map.get(imageId);
|
||||
if (imageBase64 == null) {
|
||||
return;
|
||||
}
|
||||
caseImages.add(imageBase64);
|
||||
});
|
||||
|
||||
Map<String, Object> model = new HashMap<>();
|
||||
model.put("caseImages", caseImages);
|
||||
model.put("ajbh", reportCaseDTO.getCaseNumber());
|
||||
model.put("dqmc", reportCaseDTO.getAreaName());
|
||||
model.put("sqmc", reportCaseDTO.getCommunityName());
|
||||
model.put("ajlx", getCaseStatus(reportCaseDTO.getCaseStatus()));
|
||||
model.put("ajly", getCaseSource(reportCaseDTO.getCaseSource()));
|
||||
model.put("zxcl", reportCaseDTO.getIsSelf() == 1 ? "是" : "否");
|
||||
model.put("sbsj", reportCaseDTO.getReportDate());
|
||||
model.put("sbry", reportCaseDTO.getCaseReporter());
|
||||
model.put("ajzt", reportCaseDTO.getCaseStatus());
|
||||
model.put("ajnr", reportCaseDTO.getCaseContent());
|
||||
model.put("ajwz", reportCaseDTO.getCasePosition());
|
||||
model.put("jd", reportCaseDTO.getCaseLongitude());
|
||||
model.put("wd", reportCaseDTO.getCaseLatitude());
|
||||
model.put("clr", StringUtils.isNotBlank(reportCaseDTO.getHandleUserName()) ? String.format("【%s】%s", reportCaseDTO.getHandleUserDepartmentName(), reportCaseDTO.getHandleUserName()) : "-");
|
||||
model.put("clsj", StringUtils.isNotBlank(reportCaseDTO.getHandleCreateTime()) ? reportCaseDTO.getHandleCreateTime() : "-");
|
||||
|
||||
List<Map<String, Object>> caseLogModals = listCaseLogModal(reportCaseDTO.getReportCaseId());
|
||||
model.put("caseLogs", caseLogModals);
|
||||
|
||||
try (Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(baseExportPath + File.separator + String.format("【%s-%s-%s】%s-%s.doc", reportCaseDTO.getAreaName(), reportCaseDTO.getCommunityName(), reportCaseDTO.getCaseTypeName(), reportCaseDTO.getCaseReporter(), reportCaseDTO.getCaseNumber()))), "UTF-8"))) {
|
||||
template.process(model, writer);
|
||||
} catch (IOException | TemplateException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
})).toArray(CompletableFuture[]::new));
|
||||
// 阻塞直到所有任务完成
|
||||
allOf.join();
|
||||
|
||||
String zipName = baseExportPath + ".zip";
|
||||
// 打包
|
||||
ZipUtil.zip(baseExportPath, zipName);
|
||||
// 下载
|
||||
try (FileInputStream fileInputStream = new FileInputStream(zipName);
|
||||
OutputStream outputStream = response.getOutputStream();) {
|
||||
response.setHeader("content-type", "application/octet-stream");
|
||||
response.setContentType("application/octet-stream");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=" + System.currentTimeMillis() + ".zip");
|
||||
byte[] buf = new byte[1024];
|
||||
for (int len = 0; (len = fileInputStream.read(buf)) != -1; ) {
|
||||
outputStream.write(buf, 0, len);
|
||||
}
|
||||
outputStream.flush();
|
||||
} catch (FileNotFoundException var7) {
|
||||
LOG.error(var7.getMessage(), var7);
|
||||
throw new SystemException(var7);
|
||||
}
|
||||
|
||||
FileUtils.forceDelete(new File(zipName));
|
||||
LOG.debug("压缩包 {}:删除成功", zipName);
|
||||
FileUtils.deleteDirectory(new File(baseExportPath));
|
||||
LOG.debug("文件夹 {}:删除成功", baseExportPath);
|
||||
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> listCaseLogModal(String reportCaseId) {
|
||||
List<Map<String, Object>> caseLogModals = new ArrayList<>();
|
||||
// 日志
|
||||
List<ReportCaseLogDTO> caseLogs = listCaseLog(reportCaseId);
|
||||
caseLogs.forEach(caseLogDTO -> {
|
||||
List<String> imageIds = listReportPhotos(caseLogDTO.getUserPhotos());
|
||||
List<ImageBase64> imageBase64s = image2ImageBase64List(imageIds);
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("clsj", caseLogDTO.getGmtCreate());
|
||||
map.put("czlx", caseLogDTO.getOptionType());
|
||||
map.put("czry", caseLogDTO.getUserName());
|
||||
map.put("sjhm", StringUtils.isNotBlank(caseLogDTO.getUserPhone()) ? caseLogDTO.getUserPhone() : "无");
|
||||
map.put("clzt", StringUtils.equals(caseLogDTO.getHandleStatus(), "1") ? "[处理成功]" : "[处理失败]");
|
||||
map.put("czsm", StringUtils.isNotBlank(caseLogDTO.getUserOpinion()) ? caseLogDTO.getUserOpinion() : "无");
|
||||
map.put("smtps", imageBase64s);
|
||||
caseLogModals.add(map);
|
||||
});
|
||||
return caseLogModals;
|
||||
}
|
||||
|
||||
/**
|
||||
* 案件日志
|
||||
*
|
||||
* @param reportCaseId
|
||||
* @return
|
||||
*/
|
||||
private List<ReportCaseLogDTO> listCaseLog(String reportCaseId) {
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("caseId", reportCaseId);
|
||||
return listReportCaseLog(params);
|
||||
}
|
||||
|
||||
|
||||
private String getCaseStatus(String caseStatus) {
|
||||
String value;
|
||||
switch (caseStatus) {
|
||||
case "0":
|
||||
value = "待受理";
|
||||
break;
|
||||
case "1":
|
||||
value = "待立案";
|
||||
break;
|
||||
case "2":
|
||||
value = "待转派";
|
||||
break;
|
||||
case "3":
|
||||
value = "待处理";
|
||||
break;
|
||||
case "4":
|
||||
value = "待检查";
|
||||
break;
|
||||
case "5":
|
||||
value = "待结案";
|
||||
break;
|
||||
case "6":
|
||||
value = "已归档";
|
||||
break;
|
||||
case "7":
|
||||
value = "删除且有争议";
|
||||
break;
|
||||
default:
|
||||
value = "异常";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
private String getCaseSource(String source) {
|
||||
if (StringUtils.equals("1", source)) {
|
||||
return "群众举报";
|
||||
} else if (StringUtils.equals("2", source)) {
|
||||
return "巡检采集";
|
||||
} else if (StringUtils.equals("3", source)) {
|
||||
return "专管员上报";
|
||||
}
|
||||
return "未知";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param fileIds
|
||||
* @return
|
||||
*/
|
||||
private Map<String, ImageBase64> image2ImageBase64(List<String> fileIds) {
|
||||
Map<String, ImageBase64> imageBase64Map = new HashMap<>();
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put("fileIds", fileIds);
|
||||
List<FileInfoWithPathDTO> fileInfoWithPathDTOS = fileDao.listFileInfoWithPath(params);
|
||||
fileInfoWithPathDTOS.forEach(fileInfoWithPathDTO -> {
|
||||
if (imageBase64Map.get(fileInfoWithPathDTO.getFileId()) != null) {
|
||||
return;
|
||||
}
|
||||
ImageUtil.Image image = ImageUtil.image2Base64String(fileInfoWithPathDTO.getFilePath(), 76);
|
||||
ImageBase64 imageBase64 = new ImageBase64();
|
||||
imageBase64.setFileId(fileInfoWithPathDTO.getFileId());
|
||||
imageBase64.setFileName(fileInfoWithPathDTO.getFileName());
|
||||
imageBase64.setFileType(fileInfoWithPathDTO.getFileType());
|
||||
imageBase64.setFilePath(fileInfoWithPathDTO.getFilePath());
|
||||
imageBase64.setFileBase64(image.getBase64());
|
||||
imageBase64.setFileWidth(250D);
|
||||
imageBase64.setFileHeight(image.getHeight() / (image.getWidth() / 250D));
|
||||
imageBase64Map.put(fileInfoWithPathDTO.getFileId(), imageBase64);
|
||||
});
|
||||
return imageBase64Map;
|
||||
}
|
||||
|
||||
private List<ImageBase64> image2ImageBase64List(List<String> fileIds) {
|
||||
if (fileIds == null || fileIds.isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put("fileIds", fileIds);
|
||||
List<FileInfoWithPathDTO> fileInfoWithPathDTOS = fileDao.listFileInfoWithPath(params);
|
||||
return fileInfoWithPathDTOS.stream().map(fileInfoWithPathDTO -> {
|
||||
ImageUtil.Image image = ImageUtil.image2Base64String(fileInfoWithPathDTO.getFilePath(), 76);
|
||||
ImageBase64 imageBase64 = new ImageBase64();
|
||||
imageBase64.setFileId(fileInfoWithPathDTO.getFileId());
|
||||
imageBase64.setFileName(fileInfoWithPathDTO.getFileName());
|
||||
imageBase64.setFileType(fileInfoWithPathDTO.getFileType());
|
||||
imageBase64.setFilePath(fileInfoWithPathDTO.getFilePath());
|
||||
imageBase64.setFileBase64(image.getBase64());
|
||||
imageBase64.setFileWidth(250D);
|
||||
imageBase64.setFileHeight(image.getHeight() / (image.getWidth() / 250D));
|
||||
return imageBase64;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private List<String> listReportPhotos(String photos) {
|
||||
if (StringUtils.isBlank(photos)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return Arrays.stream(photos.split(",")).filter(fileId -> !StringUtils.isBlank(fileId)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置专管员区域参数
|
||||
*
|
||||
@ -1850,4 +2120,361 @@ public class ReportCaseServiceImpl extends BaseService implements IReportCaseSer
|
||||
}
|
||||
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.getAllCount());
|
||||
data.add(caseCountDTO.getHandleCount());
|
||||
data.add(caseCountDTO.getSelfCount());
|
||||
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>> allCountMap = reportCaseDao.allCountData(params);
|
||||
params.put("isSelf", "yes");
|
||||
List<Map<String, Object>> resultMap = reportCaseDao.selfCountData(params);
|
||||
Integer handleCount = reportCaseDao.handleCountData(params);
|
||||
CaseCountDTO dto = new CaseCountDTO();
|
||||
dto.setName("全区");
|
||||
dto.setSelfCount(resultMap.get(0).get("count").toString());
|
||||
dto.setAllCount(String.valueOf(allCountMap.size()));
|
||||
dto.setHandleCount(handleCount.toString());
|
||||
dto.setLevel(1);
|
||||
List<CaseCountDTO> caseCountDTOList = new ArrayList<>();
|
||||
caseCountDTOList.add(dto);
|
||||
|
||||
List<String> caseIdList = new ArrayList<>();
|
||||
for (Map<String, Object> stringObjectMap : allCountMap) {
|
||||
caseIdList.add(stringObjectMap.get("caseId").toString());
|
||||
}
|
||||
|
||||
params.put("caseIds", caseIdList);
|
||||
/*Integer i = reportCaseDao.handleCountData(params);
|
||||
caseCountDTOList.get(0).setHandleCount(i.toString());*/
|
||||
|
||||
final int batchSize = 5000;
|
||||
int start = 0;
|
||||
int totalHandleCount = 0;
|
||||
while (start < caseIdList.size()) {
|
||||
int end = Math.min(start + batchSize, caseIdList.size());
|
||||
List<String> batchCaseIds = caseIdList.subList(start, end);
|
||||
|
||||
params.put("caseIds", batchCaseIds);
|
||||
/* reportCaseDao.createTempTable(params);
|
||||
reportCaseDao.insertIntoTempTable(params);
|
||||
Integer i1 = reportCaseDao.queryCountWithTempTable(params);
|
||||
reportCaseDao.cleanUpTempTable();*/
|
||||
Integer i1 = reportCaseDao.handleCountData(params);
|
||||
totalHandleCount += i1;
|
||||
|
||||
start += batchSize;
|
||||
}
|
||||
|
||||
// 更新DTO
|
||||
caseCountDTOList.get(0).setHandleCount(String.valueOf(totalHandleCount));
|
||||
|
||||
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>> allCountMap = reportCaseDao.allCountData(params);
|
||||
params.put("isSelf", "yes");
|
||||
List<Map<String, Object>> resultMapList = reportCaseDao.selfCountData(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.setSelfCount(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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, List<String>> caseIdMap = new HashMap<>();
|
||||
for (CaseCountDTO caseCountDTO : caseCountDTOList) {
|
||||
List<String> caseIdList = new ArrayList<>();
|
||||
int allCount = 0;
|
||||
for (Map<String, Object> stringObjectMap : allCountMap) {
|
||||
if (caseCountDTO.getDataId().equals(stringObjectMap.get("areaId").toString())) {
|
||||
caseIdList.add(stringObjectMap.get("caseId").toString());
|
||||
allCount++;
|
||||
caseCountDTO.setAllCount(Integer.toString(allCount));
|
||||
}
|
||||
}
|
||||
caseIdMap.put(caseCountDTO.getDataId(), caseIdList);
|
||||
}
|
||||
|
||||
/*for (String key : caseIdMap.keySet()) {
|
||||
params.put("caseIds", caseIdMap.get(key));
|
||||
Integer i = reportCaseDao.handleCountData(params);
|
||||
for (CaseCountDTO caseCountDTO : caseCountDTOList) {
|
||||
if (key.equals(caseCountDTO.getDataId())) {
|
||||
caseCountDTO.setHandleCount(i.toString());
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
for (String key : caseIdMap.keySet()) {
|
||||
params.put("caseIds", caseIdMap.get(key));
|
||||
final int batchSize = 5000;
|
||||
int start = 0;
|
||||
int totalHandleCount = 0;
|
||||
while (start < caseIdMap.get(key).size()) {
|
||||
int end = Math.min(start + batchSize, caseIdMap.get(key).size());
|
||||
List<String> batchCaseIds = caseIdMap.get(key).subList(start, end);
|
||||
|
||||
params.put("caseIds", batchCaseIds);
|
||||
/* reportCaseDao.createTempTable(params);
|
||||
reportCaseDao.insertIntoTempTable(params);
|
||||
Integer i1 = reportCaseDao.queryCountWithTempTable(params);
|
||||
reportCaseDao.cleanUpTempTable();*/
|
||||
Integer i1 = reportCaseDao.handleCountData(params);
|
||||
totalHandleCount += i1;
|
||||
|
||||
start += batchSize;
|
||||
}
|
||||
for (CaseCountDTO caseCountDTO : caseCountDTOList) {
|
||||
if (key.equals(caseCountDTO.getDataId())) {
|
||||
caseCountDTO.setHandleCount(String.valueOf(totalHandleCount));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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>> allCountMap = reportCaseDao.allCountData(params);
|
||||
params.put("isSelf", "yes");
|
||||
List<Map<String, Object>> resultMapList = reportCaseDao.selfCountData(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.setSelfCount(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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, List<String>> caseIdMap = new HashMap<>();
|
||||
for (CaseCountDTO caseCountDTO : caseCountDTOList) {
|
||||
List<String> caseIdList = new ArrayList<>();
|
||||
int allCount = 0;
|
||||
for (Map<String, Object> stringObjectMap : allCountMap) {
|
||||
if (caseCountDTO.getDataId().equals(stringObjectMap.get("communityId").toString())) {
|
||||
caseIdList.add(stringObjectMap.get("caseId").toString());
|
||||
allCount++;
|
||||
caseCountDTO.setAllCount(Integer.toString(allCount));
|
||||
}
|
||||
}
|
||||
caseIdMap.put(caseCountDTO.getDataId(), caseIdList);
|
||||
}
|
||||
|
||||
/*for (String key : caseIdMap.keySet()) {
|
||||
params.put("caseIds", caseIdMap.get(key));
|
||||
Integer i = reportCaseDao.handleCountData(params);
|
||||
for (CaseCountDTO caseCountDTO : caseCountDTOList) {
|
||||
if (key.equals(caseCountDTO.getDataId())) {
|
||||
caseCountDTO.setHandleCount(i.toString());
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
for (String key : caseIdMap.keySet()) {
|
||||
params.put("caseIds", caseIdMap.get(key));
|
||||
final int batchSize = 5000;
|
||||
int start = 0;
|
||||
int totalHandleCount = 0;
|
||||
while (start < caseIdMap.get(key).size()) {
|
||||
int end = Math.min(start + batchSize, caseIdMap.get(key).size());
|
||||
List<String> batchCaseIds = caseIdMap.get(key).subList(start, end);
|
||||
|
||||
params.put("caseIds", batchCaseIds);
|
||||
/* reportCaseDao.createTempTable(params);
|
||||
reportCaseDao.insertIntoTempTable(params);
|
||||
Integer i1 = reportCaseDao.queryCountWithTempTable(params);
|
||||
reportCaseDao.cleanUpTempTable();*/
|
||||
Integer i1 = reportCaseDao.handleCountData(params);
|
||||
totalHandleCount += i1;
|
||||
|
||||
start += batchSize;
|
||||
}
|
||||
for (CaseCountDTO caseCountDTO : caseCountDTOList) {
|
||||
if (key.equals(caseCountDTO.getDataId())) {
|
||||
caseCountDTO.setHandleCount(String.valueOf(totalHandleCount));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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>> allCountMap = reportCaseDao.allCountData(params);
|
||||
params.put("isSelf", "yes");
|
||||
List<Map<String, Object>> maps = reportCaseDao.selfCountData(params);
|
||||
List<CaseCountDTO> caseCountDTOList = new ArrayList<>();
|
||||
for (Map<String, Object> map : maps) {
|
||||
CaseCountDTO caseCountDTO = new CaseCountDTO();
|
||||
caseCountDTO.setUserId(map.get("creator").toString());
|
||||
caseCountDTO.setName(map.get("caseReporter").toString());
|
||||
caseCountDTO.setSelfCount(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);
|
||||
}
|
||||
|
||||
Map<String, List<String>> caseIdMap = new HashMap<>();
|
||||
for (CaseCountDTO caseCountDTO : caseCountDTOList) {
|
||||
List<String> caseIdList = new ArrayList<>();
|
||||
int allCount = 0;
|
||||
for (Map<String, Object> stringObjectMap : allCountMap) {
|
||||
if (caseCountDTO.getUserId().equals(stringObjectMap.get("creator").toString())) {
|
||||
caseIdList.add(stringObjectMap.get("caseId").toString());
|
||||
allCount++;
|
||||
caseCountDTO.setAllCount(Integer.toString(allCount));
|
||||
}
|
||||
}
|
||||
caseIdMap.put(caseCountDTO.getDataId(), caseIdList);
|
||||
}
|
||||
|
||||
/*for (String key : caseIdMap.keySet()) {
|
||||
params.put("caseIds", caseIdMap.get(key));
|
||||
Integer i = reportCaseDao.handleCountData(params);
|
||||
for (CaseCountDTO caseCountDTO : caseCountDTOList) {
|
||||
if (key.equals(caseCountDTO.getDataId())) {
|
||||
caseCountDTO.setHandleCount(i.toString());
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
for (String key : caseIdMap.keySet()) {
|
||||
params.put("caseIds", caseIdMap.get(key));
|
||||
final int batchSize = 5000;
|
||||
int start = 0;
|
||||
int totalHandleCount = 0;
|
||||
while (start < caseIdMap.get(key).size()) {
|
||||
int end = Math.min(start + batchSize, caseIdMap.get(key).size());
|
||||
List<String> batchCaseIds = caseIdMap.get(key).subList(start, end);
|
||||
|
||||
params.put("caseIds", batchCaseIds);
|
||||
/* reportCaseDao.createTempTable(params);
|
||||
reportCaseDao.insertIntoTempTable(params);
|
||||
Integer i1 = reportCaseDao.queryCountWithTempTable(params);
|
||||
reportCaseDao.cleanUpTempTable();*/
|
||||
Integer i1 = reportCaseDao.handleCountData(params);
|
||||
totalHandleCount += i1;
|
||||
|
||||
start += batchSize;
|
||||
}
|
||||
for (CaseCountDTO caseCountDTO : caseCountDTOList) {
|
||||
if (key.equals(caseCountDTO.getDataId())) {
|
||||
caseCountDTO.setHandleCount(String.valueOf(totalHandleCount));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return caseCountDTOList;
|
||||
}
|
||||
}
|
@ -42,7 +42,6 @@ import com.cm.systemcity.service.community.ICommunityService;
|
||||
import com.cm.systemcity.service.communityboss.ICommunityBossService;
|
||||
import com.cm.systemcity.service.dict.IDictService;
|
||||
import com.cm.systemcity.service.userpoints.IUserPointsService;
|
||||
import javafx.scene.layout.GridPane;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
|
101
src/main/java/com/cm/systemcity/utils/BigDataResult2.java
Normal file
101
src/main/java/com/cm/systemcity/utils/BigDataResult2.java
Normal file
@ -0,0 +1,101 @@
|
||||
package com.cm.systemcity.utils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class BigDataResult2 {
|
||||
|
||||
private List<CountClass> countClass;
|
||||
|
||||
private String msg = "加载成功";
|
||||
|
||||
private String state = "200";
|
||||
|
||||
public List<CountClass> getCountClass() {
|
||||
if(null == countClass) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return countClass;
|
||||
}
|
||||
|
||||
public void setCountClass(List<CountClass> countClass) {
|
||||
this.countClass = countClass;
|
||||
}
|
||||
|
||||
public static BigDataResult2 getInstance() {
|
||||
return new BigDataResult2();
|
||||
}
|
||||
|
||||
public String getMsg() {
|
||||
return msg == null ? "" : msg;
|
||||
}
|
||||
|
||||
public void setMsg(String msg) {
|
||||
this.msg = msg;
|
||||
}
|
||||
|
||||
public String getState() {
|
||||
return state == null ? "" : state;
|
||||
}
|
||||
|
||||
public void setState(String state) {
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
public BigDecimal getRatio(Double val1, Double val2, int decimal){
|
||||
if(val2 == 0d || val1 == 0d){
|
||||
return new BigDecimal(0);
|
||||
}
|
||||
BigDecimal ratioDecimal = new BigDecimal(( val1 / val2 ) * 100);
|
||||
ratioDecimal.setScale(decimal,BigDecimal.ROUND_HALF_UP);
|
||||
return ratioDecimal;
|
||||
}
|
||||
|
||||
public String lastMonth() {
|
||||
LocalDate today = LocalDate.now();
|
||||
today = today.minusMonths(1);
|
||||
DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM");
|
||||
return formatters.format(today);
|
||||
}
|
||||
|
||||
public static class CountClass {
|
||||
private String dateTime;
|
||||
private Integer bossCount;
|
||||
private Integer zgyCount;
|
||||
|
||||
public CountClass(String dateTime, Integer bossCount, Integer zgyCount) {
|
||||
this.dateTime = dateTime;
|
||||
this.bossCount = bossCount;
|
||||
this.zgyCount = zgyCount;
|
||||
}
|
||||
|
||||
public String getDateTime() {
|
||||
return dateTime;
|
||||
}
|
||||
|
||||
public void setDateTime(String dateTime) {
|
||||
this.dateTime = dateTime;
|
||||
}
|
||||
|
||||
public Integer getBossCount() {
|
||||
return bossCount;
|
||||
}
|
||||
|
||||
public void setBossCount(Integer bossCount) {
|
||||
this.bossCount = bossCount;
|
||||
}
|
||||
|
||||
public Integer getZgyCount() {
|
||||
return zgyCount;
|
||||
}
|
||||
|
||||
public void setZgyCount(Integer zgyCount) {
|
||||
this.zgyCount = zgyCount;
|
||||
}
|
||||
}
|
||||
}
|
153
src/main/java/com/cm/systemcity/utils/ImageUtil.java
Normal file
153
src/main/java/com/cm/systemcity/utils/ImageUtil.java
Normal file
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
server:
|
||||
port: 7022
|
||||
url: http://192.168.0.15:7022/servicecity
|
||||
url: http://192.168.0.4:7022/servicecity
|
||||
title: 生态环保网格化监督平台
|
||||
servlet:
|
||||
context-path: /servicecity
|
||||
@ -24,11 +24,12 @@ spring:
|
||||
max-request-size: 1GB
|
||||
datasource:
|
||||
druid:
|
||||
url: jdbc:mysql://127.0.0.1:3306/db_btgxq_city?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&autoReconnect=true&failOverReadOnly=false&useSSL=false
|
||||
# url: jdbc:mysql://192.168.0.151:3306/db_btgxq_city?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&autoReconnect=true&failOverReadOnly=false&useSSL=false
|
||||
url: jdbc:mysql://localhost:3306/db_btgxq?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&autoReconnect=true&failOverReadOnly=false&useSSL=false
|
||||
db-type: mysql
|
||||
driver-class-name: com.mysql.jdbc.Driver
|
||||
username: root
|
||||
password: root
|
||||
password: 123456
|
||||
initial-size: 2
|
||||
min-idle: 2
|
||||
max-active: 10
|
||||
@ -55,7 +56,7 @@ spring:
|
||||
config: classpath:ehcache.xml
|
||||
data:
|
||||
mongodb:
|
||||
uri: mongodb://city:city@127.0.0.1:27017/systemcity
|
||||
uri: mongodb://city:city@192.168.0.156:27017/systemcity
|
||||
|
||||
# 数据库
|
||||
mybatis:
|
||||
@ -81,7 +82,7 @@ file:
|
||||
# 安全
|
||||
security:
|
||||
oauth2:
|
||||
oauth-server: http://192.168.0.15:7021/usercenter
|
||||
oauth-server: http://192.168.0.4:7021/usercenter
|
||||
oauth-logout: ${security.oauth2.oauth-server}/logout?redirect_uri=${server.url}
|
||||
client:
|
||||
client-id: c024a89b35b04d4d8b5b4ea4d66a8acb
|
||||
|
5834
src/main/resources/ftl/reportcase/case-detail-source.ftl
Normal file
5834
src/main/resources/ftl/reportcase/case-detail-source.ftl
Normal file
File diff suppressed because it is too large
Load Diff
2223
src/main/resources/ftl/reportcase/case-detail.ftl
Normal file
2223
src/main/resources/ftl/reportcase/case-detail.ftl
Normal file
File diff suppressed because it is too large
Load Diff
@ -159,12 +159,15 @@
|
||||
t2.user_name userName,
|
||||
t2.user_phone userPhone,
|
||||
t3.relation_id relationId,
|
||||
t4.department_id departmentId
|
||||
t4.department_id departmentId,
|
||||
GROUP_CONCAT(t5.grid_id) gridIds,
|
||||
GROUP_CONCAT(t5.grid_name) gridNames
|
||||
FROM
|
||||
sys_role_user t1
|
||||
LEFT JOIN sys_user t2 ON t1.user_id = t2.user_id
|
||||
LEFT JOIN map_grid_relation t3 ON t1.user_id = t3.relation_id
|
||||
LEFT JOIN sys_department_user t4 ON t1.user_id = t4.user_id
|
||||
LEFT JOIN map_grid t5 ON t5.grid_id = t3.grid_id AND t5.is_delete = 0
|
||||
WHERE
|
||||
t1.role_id = 'bc405346-8714-4ded-89ac-9cc4d755f66a'
|
||||
AND t2.is_delete = '0'
|
||||
@ -177,6 +180,12 @@
|
||||
<if test="userName != null and userName !=''">
|
||||
AND t2.user_name = #{userName}
|
||||
</if>
|
||||
GROUP BY
|
||||
t1.user_id,
|
||||
t2.user_name,
|
||||
t2.user_phone,
|
||||
t3.relation_id,
|
||||
t4.department_id
|
||||
ORDER BY LENGTH(t3.relation_id) DESC
|
||||
</select>
|
||||
|
||||
|
@ -10,6 +10,10 @@
|
||||
<result property="areaId" column="area_id"/>
|
||||
<result property="areaName" column="area_name"/>
|
||||
<result property="jumpSystemUrl" column="jump_system_url"/>
|
||||
<result property="baseGridCount" column="base_grid_count"/>
|
||||
<result property="baseCommunityBossCount" column="base_community_boss_count"/>
|
||||
<result property="baseHouseCount" column="base_house_count"/>
|
||||
<result property="basePopulationCount" column="base_population_count"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 新增社区 -->
|
||||
@ -22,6 +26,10 @@
|
||||
area_id,
|
||||
area_name,
|
||||
jump_system_url,
|
||||
base_grid_count,
|
||||
base_community_boss_count,
|
||||
base_house_count,
|
||||
base_population_count,
|
||||
creator,
|
||||
gmt_create,
|
||||
modifier,
|
||||
@ -35,6 +43,10 @@
|
||||
#{areaId},
|
||||
#{areaName},
|
||||
#{jumpSystemUrl},
|
||||
#{baseGridCount},
|
||||
#{baseCommunityBossCount},
|
||||
#{baseHouseCount},
|
||||
#{basePopulationCount},
|
||||
#{creator},
|
||||
#{gmtCreate},
|
||||
#{modifier},
|
||||
@ -80,6 +92,18 @@
|
||||
</if>
|
||||
<if test="jumpSystemUrl != null and jumpSystemUrl != ''">
|
||||
jump_system_url = #{jumpSystemUrl},
|
||||
</if>
|
||||
<if test="baseGridCount != null">
|
||||
base_grid_count = #{baseGridCount},
|
||||
</if>
|
||||
<if test="baseCommunityBossCount != null">
|
||||
base_community_boss_count = #{baseCommunityBossCount},
|
||||
</if>
|
||||
<if test="baseHouseCount != null">
|
||||
base_house_count = #{baseHouseCount},
|
||||
</if>
|
||||
<if test="basePopulationCount != null">
|
||||
base_population_count = #{basePopulationCount},
|
||||
</if>
|
||||
modifier = #{modifier},
|
||||
gmt_modified = #{gmtModified}
|
||||
|
@ -71,6 +71,10 @@
|
||||
<result column="community_boss_id" property="communityBossId"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="userMap" type="java.util.Map">
|
||||
<result property="userId" column="user_id"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 新增网格长 -->
|
||||
<insert id="saveCommunityBoss" parameterType="map" flushCache="true">
|
||||
INSERT INTO city_community_boss(
|
||||
@ -703,4 +707,8 @@
|
||||
DELETE FROM city_community_boss_community where community_boss_id = #{communityBossId}
|
||||
</delete>
|
||||
|
||||
<select id="getRoleUser" parameterType="map" resultMap="userMap">
|
||||
SELECT user_id FROM sys_role_user WHERE role_id = #{roleId}
|
||||
</select>
|
||||
|
||||
</mapper>
|
@ -108,15 +108,40 @@
|
||||
</select>
|
||||
|
||||
<select id="listMapGrid" parameterType="map" resultType="map">
|
||||
select *
|
||||
from map_grid
|
||||
select
|
||||
*
|
||||
from
|
||||
map_grid mg
|
||||
where
|
||||
is_delete = '0'
|
||||
mg.is_delete = '0'
|
||||
<if test="gridId !=null and gridId !=''">
|
||||
and grid_id = #{gridId}
|
||||
and mg.grid_id = #{gridId}
|
||||
</if>
|
||||
<if test="areaCode !=null and areaCode !=''">
|
||||
and area_code LIKE CONCAT('%',CONCAT(#{areaCode}, '%'))
|
||||
and mg.area_code LIKE CONCAT('%',#{areaCode}, '%')
|
||||
</if>
|
||||
<if test="keywords != null and keywords != ''">
|
||||
AND (
|
||||
mg.grid_name LIKE CONCAT('%', #{keywords}, '%')
|
||||
OR
|
||||
mg.grid_id IN (
|
||||
SELECT
|
||||
mgr.grid_id
|
||||
FROM
|
||||
map_grid_relation mgr
|
||||
INNER JOIN
|
||||
sys_user su
|
||||
ON
|
||||
mgr.relation_id = su.user_id
|
||||
WHERE
|
||||
su.is_delete = 0
|
||||
AND (
|
||||
su.user_username LIKE CONCAT('%', #{keywords}, '%')
|
||||
OR
|
||||
su.user_name LIKE CONCAT('%', #{keywords}, '%')
|
||||
)
|
||||
)
|
||||
)
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
@ -150,6 +150,10 @@
|
||||
#{dictIds[${index}]}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="isHide != null">
|
||||
AND
|
||||
t1.is_hide = #{isHide}
|
||||
</if>
|
||||
<choose>
|
||||
<when test="sort != null and (sort == 'dictName' or sort == 'dictCode' or sort == 'dictOrder')">
|
||||
ORDER BY
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -671,6 +671,21 @@ BaiduMap.prototype.initBackgroundGrid = function (option) {
|
||||
polygon.addEventListener('click', function (event) {
|
||||
option.onClick(backgroundGrid, event);
|
||||
});
|
||||
polygon.addEventListener('mouseover', function(event) {
|
||||
if(option.onMouseover) {
|
||||
option.onMouseover(backgroundGrid, event);
|
||||
}
|
||||
})
|
||||
polygon.addEventListener('mouseout', function(event) {
|
||||
if(option.onMouseout) {
|
||||
option.onMouseout(backgroundGrid, event);
|
||||
}
|
||||
})
|
||||
polygon.addEventListener('mousemove', function(event) {
|
||||
if(option.onMousemove) {
|
||||
option.onMousemove(backgroundGrid, event);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
for (var i = 0, backgroundGrid; backgroundGrid = option.gridArray[i++];) {
|
||||
|
@ -116,7 +116,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/jquery-3.5.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vendor/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vendor/animate-numbers/jquery.animateNumbers.js"></script>
|
||||
|
@ -65,7 +65,7 @@
|
||||
<div id="mapContainer" style="width:100%;height:100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/jquery-3.5.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/easyui/jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/easyui/locale/easyui-lang-zh_CN.js"></script>
|
||||
|
@ -41,7 +41,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=mlfOah4gWM1FjEo9CmlI64zK6MhyiMPW"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map-0.0.1.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -154,7 +154,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({
|
||||
|
@ -15,7 +15,7 @@
|
||||
<div id="app">
|
||||
<div id="mapContainer"></div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/jquery-3.5.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vue.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/common.js"></script>
|
||||
|
@ -112,7 +112,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
|
||||
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
|
||||
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
|
||||
|
@ -118,7 +118,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
|
||||
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
|
||||
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
|
||||
|
@ -90,7 +90,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
|
||||
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
|
||||
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
|
||||
|
@ -90,7 +90,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
|
||||
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
|
||||
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
|
||||
|
@ -101,6 +101,10 @@
|
||||
return '-';
|
||||
}
|
||||
},
|
||||
{field: 'baseGridCount', width: 150, title: '网格数量', align: 'center'},
|
||||
{field: 'baseCommunityBossCount', width: 150, title: '网格员数量', align: 'center'},
|
||||
{field: 'baseHouseCount', width: 150, title: '户数', align: 'center'},
|
||||
{field: 'basePopulationCount', width: 150, title: '人口数量', align: 'center'},
|
||||
]
|
||||
],
|
||||
page: true,
|
||||
@ -122,7 +126,7 @@
|
||||
url: top.restAjax.path(tableUrl, []),
|
||||
where: {
|
||||
keywords: $('#keywords').val(),
|
||||
areaId : $('#area').val()
|
||||
areaId : areaId
|
||||
},
|
||||
page: {
|
||||
curr: currentPage
|
||||
|
@ -46,6 +46,33 @@
|
||||
<input type="text" name="communityOrder" id="communityOrder" placeholder="请输入排序" value="1" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" style="font-weight: bold;">基础信息</label>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">网格数量</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="baseGridCount" placeholder="请输入基础网格数量" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">网格员数量</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="baseCommunityBossCount" placeholder="请输入基础网格员数量" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">户数</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="baseHouseCount" placeholder="请输入基础户数" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">人口数量</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="basePopulationCount" placeholder="请输入基础人口数量" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-layout-admin">
|
||||
<div class="layui-input-block">
|
||||
|
@ -46,6 +46,33 @@
|
||||
<input type="text" name="communityOrder" id="communityOrder" placeholder="请输入排序" value="1" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" style="font-weight: bold;">基础信息</label>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">网格数量</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="baseGridCount" placeholder="请输入基础网格数量" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">网格员数量</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="baseCommunityBossCount" placeholder="请输入基础网格员数量" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">户数</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="baseHouseCount" placeholder="请输入基础户数" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">人口数量</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="basePopulationCount" placeholder="请输入基础人口数量" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-layout-admin">
|
||||
<div class="layui-input-block">
|
||||
@ -83,7 +110,11 @@
|
||||
communitySummary : data.communitySummary,
|
||||
communityOrder : data.communityOrder,
|
||||
areaId : data.areaId,
|
||||
areaName : data.areaName
|
||||
areaName : data.areaName,
|
||||
baseGridCount: data.baseGridCount,
|
||||
baseCommunityBossCount: data.baseCommunityBossCount,
|
||||
baseHouseCount: data.baseHouseCount,
|
||||
basePopulationCount: data.basePopulationCount,
|
||||
});
|
||||
form.render(null, 'dataForm');
|
||||
}, function(code, data) {
|
||||
|
@ -177,6 +177,7 @@
|
||||
url: top.restAjax.path(tableUrl, []),
|
||||
where: {
|
||||
keywords: $('#keywords').val(),
|
||||
communityBossLevel: communityBossLevel,
|
||||
areaId: $('#areaId').val()
|
||||
},
|
||||
page: {
|
||||
|
@ -65,7 +65,7 @@
|
||||
<div id="mapContainer" style="width:100%;height:100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/jquery-3.5.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/easyui/jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/easyui/locale/easyui-lang-zh_CN.js"></script>
|
||||
|
@ -301,7 +301,7 @@
|
||||
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/jquery-3.5.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vue.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/common.js"></script>
|
||||
|
@ -193,7 +193,7 @@
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/jquery-3.5.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vue.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/common.js"></script>
|
||||
|
226
src/main/resources/static/route/reportcase/list-area-case.html
Normal file
226
src/main/resources/static/route/reportcase/list-area-case.html
Normal file
@ -0,0 +1,226 @@
|
||||
<!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="130">
|
||||
<col width="130">
|
||||
<col width="130">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="text-align: center;">级别</th>
|
||||
<th style="text-align: center;">已上报数量</th>
|
||||
<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.allCount}}</a>
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<a href="javascript:void(0)">{{item.handleCount}}</a>
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<a href="javascript:void(0)">{{item.selfCount}}</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) {
|
||||
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;
|
||||
|
||||
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>
|
436
src/main/resources/static/route/reportcase/list_complex.html
Normal file
436
src/main/resources/static/route/reportcase/list_complex.html
Normal file
@ -0,0 +1,436 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<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" type="text/css" href="assets/js/vendor/swiper3/css/swiper.min.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
|
||||
<!-- 图片 -->
|
||||
<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">
|
||||
<link rel="stylesheet" href="assets/js/vendor/zTree3/css/metroStyle/metroStyle.css"/>
|
||||
<style>
|
||||
.layui-table-cell{
|
||||
height: auto;
|
||||
}
|
||||
.layui-table-body td{
|
||||
height: 210px;
|
||||
}
|
||||
.layui-table img{
|
||||
max-width: 100%;
|
||||
}
|
||||
.info-row {border-bottom: 1px dotted;}
|
||||
.info-row:last-child {border: none;}
|
||||
.info-row .col-left {width:30%;height:28px;text-align:center;border-right:1px dotted;display:inline-block;padding:5px;vertical-align:top;}
|
||||
.info-row .col-right {width:70%;display:inline-block;padding:5px;vertical-align:top;}
|
||||
.info-row .col-line {width:100%;color:black;text-align:center;display:block;padding:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
|
||||
.info-row .col-line .fa {color: red; margin-right: 5px;}
|
||||
.info-row .col-content {width:100%;display:inline-block;padding:5px;height:86px;overflow:auto;white-space:normal;word-break:break-all;word-wrap:break-word;vertical-align:top;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-fluid layui-anim layui-anim-fadein">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<div class="test-table-reload-btn layui-form" style="margin-bottom: 5px;">
|
||||
<div class="layui-inline">
|
||||
<input type="text" id="caseNumber" class="layui-input search-item" placeholder="案件编号" style="height: 38px;width:150px;" autocomplete="off">
|
||||
</div>
|
||||
<div class="layui-inline" id="areaSelectTemplateBox" style="width: 150px;"></div>
|
||||
<script id="areaSelectTemplate" type="text/html">
|
||||
<select id="areaId" name="areaId">
|
||||
<option value="">选择街镇</option>
|
||||
{{# for(var i = 0, item; item = d[i++];) { }}
|
||||
<option value="{{item.dictId}}">{{item.dictName}}</option>
|
||||
{{# } }}
|
||||
</select>
|
||||
</script>
|
||||
<div class="layui-inline" id="caseTypeSelectTemplateBox" style="width: 150px;"></div>
|
||||
<script id="caseTypeSelectTemplate" type="text/html">
|
||||
<select id="caseTypeId" name="caseTypeId" lay-filter="changeCaseType">
|
||||
<option value="">案件类型</option>
|
||||
{{# for(var i = 0, item; item = d[i++];) { }}
|
||||
<option value="{{item.dictId}}">{{item.dictName}}</option>
|
||||
{{# } }}
|
||||
</select>
|
||||
</script>
|
||||
<div class="layui-inline" id="childCaseTypeSelectTemplateBox" style="width: 150px;"></div>
|
||||
<script id="childCaseTypeSelectTemplate" type="text/html">
|
||||
<select id="childCaseTypeId" name="childCaseTypeId">
|
||||
<option value="">案件子类型</option>
|
||||
{{# for(var i = 0, item; item = d[i++];) { }}
|
||||
<option value="{{item.dictId}}">{{item.dictName}}</option>
|
||||
{{# } }}
|
||||
</select>
|
||||
</script>
|
||||
<div class="layui-inline" id="deptContainer"></div>
|
||||
<div class="layui-inline">
|
||||
<input type="text" id="startTime" class="layui-input search-item"
|
||||
readonly="readonly" placeholder="开始时间" style="height: 38px;width:150px;cursor: pointer" autocomplete="off">
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<input type="text" id="endTime" class="layui-input search-item"
|
||||
readonly="readonly" placeholder="结束时间" style="height: 38px;width:150px;cursor: pointer" autocomplete="off">
|
||||
</div>
|
||||
<button type="button" id="search" class="layui-btn layui-btn-sm">
|
||||
<i class="fa fa-lg fa-search"></i> 搜索
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<!-- 图片 -->
|
||||
<script type="text/javascript" src="assets/js/vendor/swiper3/js/swiper.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vendor/viewer/viewer.min.js"></script>
|
||||
<!-- 图片 -->
|
||||
|
||||
<script type="text/javascript">
|
||||
layui.config({
|
||||
base: 'assets/layuiadmin/'
|
||||
}).extend({
|
||||
index: 'lib/index'
|
||||
}).use(['index', 'table', 'laytpl', 'form','laydate', 'selecttree'], function() {
|
||||
var $ = layui.$;
|
||||
var $win = $(window);
|
||||
var laytpl = layui.laytpl;
|
||||
var table = layui.table;
|
||||
var admin = layui.admin;
|
||||
var form = layui.form;
|
||||
var laydate = layui.laydate;
|
||||
var selecttree = layui.selecttree;
|
||||
var tableUrl = 'api/reportcase/list-page-report-complex'
|
||||
|
||||
selecttree.dept({
|
||||
elem: '#deptContainer',
|
||||
name: 'dept',
|
||||
});
|
||||
|
||||
// 初始化表格
|
||||
function initTable() {
|
||||
table.render({
|
||||
elem: '#dataTable',
|
||||
id: 'dataTable',
|
||||
url: top.restAjax.path(getParamsUrl(tableUrl), []),
|
||||
width: admin.screen() > 1 ? '100%' : '',
|
||||
height: $win.height() - 100,
|
||||
limit: 10,
|
||||
limits: [10, 20, 40, 80, 100, 200],
|
||||
request: {
|
||||
pageName: 'page',
|
||||
limitName: 'rows'
|
||||
},
|
||||
cols: [[
|
||||
{field:'rowNum', width:60, title: '序号', fixed: 'left', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
|
||||
{type:'checkbox', fixed: 'left'},
|
||||
{width: 300, title: '案件图片', align:'center',
|
||||
templet: function(row) {
|
||||
var photos = row.casePhotos.split(',')
|
||||
var value = '<div id="photo_'+ row.reportCaseId +'" class="swiper-container" style="width:100%;">' +
|
||||
'<div class="swiper-wrapper" style="width:100%">';
|
||||
for(var i = 0, item = photos[i]; item = photos[i++];) {
|
||||
value += '<div class="swiper-slide" style="width:100%;">' +
|
||||
'<img class="swiper-lazy" src="route/file/downloadfile/true/'+ item +'" style="width:270px;height:180px;cursor:pointer;"/>' +
|
||||
'<div class="swiper-lazy-preloader"></div>' +
|
||||
'</div>';
|
||||
}
|
||||
value += '</div><div id="photo_swiper_'+ row.reportCaseId +'" class="swiper-pagination"></div></div>';
|
||||
setTimeout(function() {
|
||||
new Swiper('#photo_'+ row.reportCaseId, {
|
||||
lazyLoading: true,
|
||||
autoplay: 3000,
|
||||
pagination : '#photo_swiper_'+ row.reportCaseId,
|
||||
paginationClickable :true,
|
||||
});
|
||||
new Viewer(document.getElementById('photo_'+ row.reportCaseId));
|
||||
}, 50);
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{width: 450, title: '案件信息', align: 'center',
|
||||
templet: function (row) {
|
||||
var caseFlowType = row.caseFlowType;
|
||||
if(caseFlowType == '1'){
|
||||
caseFlowType = '(职能部门案件)';
|
||||
} else {
|
||||
caseFlowType = '(街镇案件)'
|
||||
}
|
||||
var value = '<div style="text-align: left">'+
|
||||
'<div class="info-row"><span class="col-left">案件编号</span><span class="col-right">'+ row.caseNumber +'</span></div>'+
|
||||
'<div class="info-row"><span class="col-left">所在地区</span><span class="col-right">'+ row.areaName +'</span></div>'+
|
||||
'<div class="info-row"><span class="col-left">所在社区</span><span class="col-right">'+ row.communityName +'</span></div>'+
|
||||
'<div class="info-row"><span class="col-left">案件类型</span><span class="col-right">'+ caseFlowType + row.caseTypeName +'</span></div>'+
|
||||
'<div class="info-row"><span class="col-left">操作</span>' +
|
||||
'<span class="col-right">'+
|
||||
'<div class="btn-group btn-group-xs">' +
|
||||
'<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" lay-event="showEvent">详情</button>'+
|
||||
'<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" lay-event="caseFlowEvent">流程</button>'+
|
||||
'<button type="button" class="layui-btn layui-btn-danger layui-btn-sm" lay-event="reportBack">恢复</button>'+
|
||||
'</div>'+
|
||||
'</span>'+
|
||||
'</div>'+
|
||||
'</div>'
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{width: 300, title: '案件内容', align: 'center',
|
||||
templet: function (row) {
|
||||
var value = '<div style="text-align: left">'+
|
||||
'<div class="info-row"><span class="col-left">案件来源</span><span class="col-right">'+ sourceFormatter(row.caseSource) +'</span></div>'+
|
||||
'<div class="info-row"><a href="javascript:;" class="col-line" lay-event="showLocation"><i class="fa fa-map-marker"></i>'+ row.casePosition +'</a></div>'+
|
||||
'<div class="info-row"><span class="col-content">'+ row.caseContent +'</span></div>'+
|
||||
'</div>';
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{width: 250, title: '案件状态', align: 'center',
|
||||
templet: function (row) {
|
||||
var value = '<div style="text-align: left">'+
|
||||
'<div class="info-row"><span class="col-left">上报时间</span><span class="col-right">'+ row.reportDate +'</span></div>'+
|
||||
'<div class="info-row"><span class="col-left">上报人员</span><span class="col-right">'+ row.caseReporter +'</span></div>'+
|
||||
'<div class="info-row"><span class="col-left">删除时间</span><span class="col-right">'+ row.gmtModified +'</span></div>'+
|
||||
'<div class="info-row"><span class="col-left">处理人员</span><span class="col-right">'+ row.handleUserName +'</span></div>'+
|
||||
'</div>';
|
||||
return value;
|
||||
}
|
||||
}
|
||||
]],
|
||||
page: true,
|
||||
parseData: function(data) {
|
||||
return {
|
||||
'code': 0,
|
||||
'msg': '',
|
||||
'count': data.total,
|
||||
'data': data.rows
|
||||
};
|
||||
},
|
||||
});
|
||||
}
|
||||
setTimeout(function(){
|
||||
initTable();
|
||||
},500);
|
||||
|
||||
// 重载表格
|
||||
function reloadTable(currentPage) {
|
||||
table.reload('dataTable', {
|
||||
url: top.restAjax.path(getParamsUrl(tableUrl), []),
|
||||
page: {
|
||||
curr: currentPage
|
||||
},
|
||||
height: $win.height() - 100,
|
||||
});
|
||||
}
|
||||
|
||||
//初始化地区
|
||||
function initArea(){
|
||||
top.restAjax.get('api/dict/listdict/9d179f05-3ea0-48f7-853c-d3b7124b791c', {}, null, function(code, data) {
|
||||
laytpl(document.getElementById('areaSelectTemplate').innerHTML).render(data, function(html) {
|
||||
document.getElementById('areaSelectTemplateBox').innerHTML = html;
|
||||
});
|
||||
form.render('select');
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
});
|
||||
}
|
||||
initArea();
|
||||
|
||||
//初始化案件类型
|
||||
function initCaseType(){
|
||||
top.restAjax.get('api/dict/listdict/46d108b2-4ef9-4f6f-b30c-0c700e3ee852', {}, null, function(code, data) {
|
||||
laytpl(document.getElementById('caseTypeSelectTemplate').innerHTML).render(data, function(html) {
|
||||
document.getElementById('caseTypeSelectTemplateBox').innerHTML = html;
|
||||
});
|
||||
form.render('select');
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
});
|
||||
}
|
||||
initCaseType();
|
||||
|
||||
//初始化子案件类型
|
||||
function initChildCaseType(parentId){
|
||||
if(typeof(parentId) === 'undefined' || '' == parentId){
|
||||
laytpl(document.getElementById('childCaseTypeSelectTemplate').innerHTML).render([], function(html) {
|
||||
document.getElementById('childCaseTypeSelectTemplateBox').innerHTML = html;
|
||||
});
|
||||
}
|
||||
top.restAjax.get('api/dict/listdict/' + parentId, {}, null, function(code, data) {
|
||||
laytpl(document.getElementById('childCaseTypeSelectTemplate').innerHTML).render(data, function(html) {
|
||||
document.getElementById('childCaseTypeSelectTemplateBox').innerHTML = html;
|
||||
});
|
||||
form.render('select');
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
});
|
||||
}
|
||||
initChildCaseType();
|
||||
|
||||
//初始化时间
|
||||
function initDateTime(){
|
||||
laydate.render({
|
||||
elem: '#startTime'
|
||||
,value: ''
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#endTime'
|
||||
,value: ''
|
||||
});
|
||||
}
|
||||
initDateTime();
|
||||
|
||||
function getParamsUrl(url) {
|
||||
var areaId = $('#areaId').val();
|
||||
var caseTypeId = $('#caseTypeId').val();
|
||||
var childCaseTypeId = $('#childCaseTypeId').val();
|
||||
var startTime = $('#startTime').val();
|
||||
var endTime = $('#endTime').val();
|
||||
var caseNumber = $('#caseNumber').val();
|
||||
var deptId = $('#deptId').val();
|
||||
var params = '?t='+ new Date().getTime();
|
||||
if('' != areaId && 'undefined' != typeof(areaId)) {
|
||||
params += '&areaId='+ areaId;
|
||||
}
|
||||
if(childCaseTypeId) {
|
||||
caseTypeId = childCaseTypeId;
|
||||
}
|
||||
if(caseTypeId) {
|
||||
params += '&caseTypeId='+ caseTypeId;
|
||||
}
|
||||
if('' != startTime) {
|
||||
params += '&startTime='+ startTime;
|
||||
}
|
||||
if('' != endTime) {
|
||||
params += '&endTime='+ endTime;
|
||||
}
|
||||
if('' != caseNumber) {
|
||||
params += '&caseNumber='+ caseNumber;
|
||||
}
|
||||
if('' != deptId) {
|
||||
params += '&departmentId='+ deptId;
|
||||
}
|
||||
return url + params;
|
||||
}
|
||||
|
||||
// 来源格式化
|
||||
function sourceFormatter(val) {
|
||||
var value;
|
||||
switch (val) {
|
||||
case '1':
|
||||
value = '群众举报';
|
||||
break;
|
||||
case '2':
|
||||
value = '巡检采集';
|
||||
break;
|
||||
case '3':
|
||||
value = '专管员上报';
|
||||
break;
|
||||
default:
|
||||
value = '未知';
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
// 案件状态
|
||||
function caseStatusFormatter(val) {
|
||||
var value;
|
||||
switch (val) {
|
||||
case '0':
|
||||
value = '待受理';
|
||||
break;
|
||||
case '1':
|
||||
value = '待立案';
|
||||
break;
|
||||
case '2':
|
||||
value = '待转派';
|
||||
break;
|
||||
case '3':
|
||||
value = '待处理';
|
||||
break;
|
||||
case '4':
|
||||
value = '待检查';
|
||||
break;
|
||||
case '5':
|
||||
value = '待结案';
|
||||
break;
|
||||
case '6':
|
||||
value = '已归档';
|
||||
break;
|
||||
case '7':
|
||||
value = '删除且有争议';
|
||||
break;
|
||||
default:
|
||||
value = '异常';
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
table.on('tool(dataTable)', function(obj) {
|
||||
if(obj.event === 'showEvent'){
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '详情',
|
||||
closeBtn: 1,
|
||||
area: ['70%', '80%'],
|
||||
shadeClose: true,
|
||||
anim: 2,
|
||||
content: top.restAjax.path('route/reportcase/show.html?reportCaseId={id}',
|
||||
[obj.data.reportCaseId]),
|
||||
end: function() {
|
||||
}
|
||||
});
|
||||
}
|
||||
if(obj.event === 'caseFlowEvent'){
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '案件流程',
|
||||
closeBtn: 1,
|
||||
area: ['50%', '60%'],
|
||||
shadeClose: true,
|
||||
anim: 2,
|
||||
content: top.restAjax.path('route/reportcase/list_case_log.html?reportCaseId={id}',
|
||||
[obj.data.reportCaseId]),
|
||||
end: function() {
|
||||
}
|
||||
});
|
||||
}
|
||||
if(obj.event === 'reportBack'){
|
||||
top.dialog.confirm('确定恢复案件吗?', function(index) {
|
||||
top.dialog.close(index);
|
||||
top.restAjax.get(top.restAjax.path('api/reportcase/update-back-disputed-case/{reportCaseId}',
|
||||
[obj.data.reportCaseId]), {}, null, function(code, data) {
|
||||
top.dialog.msg('恢复完成');
|
||||
reloadTable();
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
});
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
form.on('select(changeCaseType)',function(data){
|
||||
if(data.value == ''){
|
||||
$('#childCaseTypeId').val('');
|
||||
initChildCaseType();
|
||||
} else {
|
||||
initChildCaseType(data.value);
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('click', '#search', function() {
|
||||
reloadTable(1);
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -13,6 +13,7 @@
|
||||
<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">
|
||||
<link rel="stylesheet" href="assets/js/vendor/zTree3/css/metroStyle/metroStyle.css"/>
|
||||
<style>
|
||||
.layui-table-cell{
|
||||
height: auto;
|
||||
@ -66,6 +67,7 @@
|
||||
{{# } }}
|
||||
</select>
|
||||
</script>
|
||||
<div class="layui-inline" id="deptContainer"></div>
|
||||
<div class="layui-inline">
|
||||
<input type="text" id="startTime" class="layui-input search-item"
|
||||
readonly="readonly" placeholder="开始时间" style="height: 38px;width:150px;cursor: pointer" autocomplete="off">
|
||||
@ -77,6 +79,9 @@
|
||||
<button type="button" id="search" class="layui-btn layui-btn-sm">
|
||||
<i class="fa fa-lg fa-search"></i> 搜索
|
||||
</button>
|
||||
<button type="button" id="export" class="layui-btn layui-btn-sm layui-btn-primary">
|
||||
<i class="fa fa-lg fa-cloud-download"></i> 导出当前列表
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
|
||||
@ -96,7 +101,7 @@
|
||||
base: 'assets/layuiadmin/'
|
||||
}).extend({
|
||||
index: 'lib/index'
|
||||
}).use(['index', 'table', 'laytpl', 'form','laydate'], function() {
|
||||
}).use(['index', 'table', 'laytpl', 'form','laydate', 'selecttree'], function() {
|
||||
var $ = layui.$;
|
||||
var $win = $(window);
|
||||
var laytpl = layui.laytpl;
|
||||
@ -104,9 +109,15 @@
|
||||
var admin = layui.admin;
|
||||
var form = layui.form;
|
||||
var laydate = layui.laydate;
|
||||
var selecttree = layui.selecttree;
|
||||
var tableUrl = 'api/reportcase/listpagereportcase?caseStatus=6';
|
||||
var dataLoading = false;
|
||||
|
||||
selecttree.dept({
|
||||
elem: '#deptContainer',
|
||||
name: 'dept',
|
||||
});
|
||||
|
||||
// 初始化表格
|
||||
function initTable() {
|
||||
dataLoading = true;
|
||||
@ -159,9 +170,10 @@
|
||||
'<div class="info-row"><span class="col-left">操作</span>' +
|
||||
'<span class="col-right">'+
|
||||
'<div class="btn-group btn-group-xs">' +
|
||||
'<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" lay-event="showEvent">详情</button>'+
|
||||
'<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" lay-event="caseFlowEvent">流程</button>'+
|
||||
'<button type="button" class="layui-btn layui-btn-danger layui-btn-sm" lay-event="disputedEvent">争议案件</button>'+
|
||||
'<button type="button" class="layui-btn layui-btn-normal layui-btn-xs" lay-event="showEvent">详情</button>'+
|
||||
'<button type="button" class="layui-btn layui-btn-warm layui-btn-xs" lay-event="caseFlowEvent">流程</button>'+
|
||||
'<button type="button" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="disputedEvent">争议案件</button>'+
|
||||
'<button type="button" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="complexEvent">复杂案件</button>'+
|
||||
'</div>'+
|
||||
'</span>'+
|
||||
'</div>'+
|
||||
@ -227,7 +239,9 @@
|
||||
|
||||
//初始化地区
|
||||
function initArea(){
|
||||
top.restAjax.get('api/dict/listdict/9d179f05-3ea0-48f7-853c-d3b7124b791c', {}, null, function(code, data) {
|
||||
top.restAjax.get('api/dict/listdict/9d179f05-3ea0-48f7-853c-d3b7124b791c', {
|
||||
isHide: 0
|
||||
}, null, function(code, data) {
|
||||
laytpl(document.getElementById('areaSelectTemplate').innerHTML).render(data, function(html) {
|
||||
document.getElementById('areaSelectTemplateBox').innerHTML = html;
|
||||
});
|
||||
@ -288,13 +302,15 @@
|
||||
var childCaseTypeId = $('#childCaseTypeId').val();
|
||||
var startTime = $('#startTime').val();
|
||||
var endTime = $('#endTime').val();
|
||||
var deptId = $('#deptId').val();
|
||||
var params = '&t='+ new Date().getTime();
|
||||
if('' != areaId && 'undefined' != typeof(areaId)) {
|
||||
params += '&areaId='+ areaId;
|
||||
}
|
||||
if('' != caseTypeId && '' != childCaseTypeId) {
|
||||
params += '&caseTypeId='+ childCaseTypeId;
|
||||
} else {
|
||||
if(childCaseTypeId) {
|
||||
caseTypeId = childCaseTypeId;
|
||||
}
|
||||
if(caseTypeId) {
|
||||
params += '&caseTypeId='+ caseTypeId;
|
||||
}
|
||||
if('' != startTime) {
|
||||
@ -303,6 +319,9 @@
|
||||
if('' != endTime) {
|
||||
params += '&endTime='+ endTime;
|
||||
}
|
||||
if('' != deptId) {
|
||||
params += '&departmentId='+ deptId;
|
||||
}
|
||||
return url + params;
|
||||
}
|
||||
|
||||
@ -459,6 +478,32 @@
|
||||
}
|
||||
});
|
||||
}
|
||||
if(obj.event === 'complexEvent') {
|
||||
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 layIndex;
|
||||
top.restAjax.delete(top.restAjax.path('api/reportcase/remove-to-complex-cases/{id}', [obj.data.reportCaseId]), {}, null, function (code, data) {
|
||||
// success
|
||||
top.dialog.msg(top.dataMessage.deleteSuccess, {time: 1000}, function () {
|
||||
reloadTable();
|
||||
});
|
||||
}, function (code, data) {
|
||||
// error
|
||||
top.dialog.msg(data.msg);
|
||||
}, function () {
|
||||
// before
|
||||
layIndex = top.dialog.msg('正在提交...', {icon: 16, time: 0, shade: 0.3});
|
||||
}, function () {
|
||||
// complete
|
||||
top.dialog.close(layIndex);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('select(changeCaseType)',function(data){
|
||||
@ -478,6 +523,21 @@
|
||||
reloadTable(1);
|
||||
});
|
||||
|
||||
$(document).on('click', '#export', function() {
|
||||
var page = $('.layui-laypage').find('.layui-laypage-skip .layui-input').val();
|
||||
var rows = $('.layui-laypage-limits').find('option:selected').val();
|
||||
top.dialog.msg('确定导出吗?案件越多导出时间越长,请耐心等待,误操作。', {
|
||||
time: 0,
|
||||
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
|
||||
shade: 0.3,
|
||||
yes: function (index) {
|
||||
top.dialog.close(index);
|
||||
window.open(top.restAjax.path(getParamsUrl('api/reportcase/export-reportcase?caseStatus=6&page={page}&rows={rows}'), [page, rows]))
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$(document).on('click', '#deleteTableData', function() {
|
||||
var checkStatus = table.checkStatus('dataTable');
|
||||
if(checkStatus.data.length == 0){
|
||||
|
@ -16,7 +16,7 @@
|
||||
<div id="content" class="edit-content" style="padding: 0px;">
|
||||
<div id="mapContainer" style="width:100%;height:520px;border:1px solid silver;"></div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/jquery-3.5.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vendor/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vue.min.js"></script>
|
||||
|
@ -194,7 +194,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({
|
||||
|
@ -174,7 +174,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({
|
||||
|
@ -194,7 +194,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({
|
||||
|
@ -16,7 +16,7 @@
|
||||
<div id="content" class="edit-content" style="padding: 0px;">
|
||||
<div id="mapContainer" style="width:100%;height:520px;border:1px solid silver;"></div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/jquery-3.5.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vendor/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vue.min.js"></script>
|
||||
|
@ -195,7 +195,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({
|
||||
|
@ -174,7 +174,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({
|
||||
|
@ -244,7 +244,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({
|
||||
|
@ -16,7 +16,7 @@
|
||||
<div id="content" class="edit-content" style="padding: 0px;">
|
||||
<div id="mapContainer" style="width:100%;height:520px;border:1px solid silver;"></div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/jquery-3.5.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vendor/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vue.min.js"></script>
|
||||
|
@ -199,7 +199,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({
|
||||
|
@ -167,7 +167,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({
|
||||
|
@ -199,7 +199,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({
|
||||
|
@ -15,7 +15,7 @@
|
||||
<div id="app">
|
||||
<div id="mapContainer"></div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/jquery-3.5.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vue.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/common.js"></script>
|
||||
|
@ -58,7 +58,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map-0.0.1.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -58,7 +58,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map-0.0.1.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -61,7 +61,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map-0.0.1.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -61,7 +61,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map-0.0.1.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -41,7 +41,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map-0.0.1.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -41,7 +41,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map-0.0.1.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -53,6 +53,70 @@
|
||||
.anchorBL{
|
||||
display:none;
|
||||
}
|
||||
.search-container {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: 50%;
|
||||
margin-left: -205px;
|
||||
z-index: 1000;
|
||||
padding: 5px;
|
||||
background-color: #FFF;
|
||||
box-shadow: 3px 3px 5px rgba(0,0,0,0.3);
|
||||
}
|
||||
.search-container input {
|
||||
outline: none;
|
||||
width: 300px;
|
||||
height: 32px;
|
||||
border: 1px solid #e6e6e6;
|
||||
}
|
||||
.search-container button {
|
||||
height: 32px;
|
||||
background-color: rgba(34, 190, 239, 0.6);
|
||||
border: none;
|
||||
color: #FFF;
|
||||
}
|
||||
.search-container button:hover {
|
||||
background-color: rgba(34, 190, 239, 0.8);
|
||||
}
|
||||
.search-container button:active {
|
||||
background-color: rgba(34, 190, 239, 1);
|
||||
}
|
||||
.grid-info {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
max-width: 600px;
|
||||
background-color: #FFFFFF;
|
||||
padding: 5px;
|
||||
}
|
||||
.grid-info .users {
|
||||
font-size: 0;
|
||||
}
|
||||
.grid-info .users span {
|
||||
font-size: 13px;
|
||||
}
|
||||
.grid-info .users span:after {
|
||||
content: '|';
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.grid-info .users span:last-child:after {
|
||||
content: ''
|
||||
}
|
||||
.grid-info:after {
|
||||
content: ' ';
|
||||
display: block;
|
||||
position: absolute;
|
||||
bottom: -20px;
|
||||
left: 0;
|
||||
border-width: 10px;
|
||||
border-style: solid;
|
||||
border-left-color: #FFFFFF;
|
||||
border-top-color: #FFFFFF;
|
||||
border-right-color: transparent;
|
||||
border-bottom-color: transparent;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@ -96,14 +160,36 @@
|
||||
<i id="arrow" class="fa fa-angle-double-up"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-container">
|
||||
<span>关键字</span>
|
||||
<input type="text" id="searchInput" placeholder="请输入网格员姓名或网格编号" v-model="keywords"/>
|
||||
<button type="button" id="searchBtn" @click="onSearch"><i class="fa fa-search"></i> 搜索</button>
|
||||
</div>
|
||||
<!--<div style="padding:5px;border:1px solid silver;background-color:#FFF;position:absolute;top:5px;right:5px;z-index:10000;" v-cloak>
|
||||
<span>经度: <i>{{location.lng}}</i></span>,
|
||||
<span>纬度: <i>{{location.lat}}</i></span>
|
||||
</div>-->
|
||||
<div id="mapContainer"></div>
|
||||
<div class="grid-info" id="gridInfo">
|
||||
<div class="grid">
|
||||
<span>网格名称:</span>
|
||||
<span class="grid-name" id="gridName">网格名称啥的</span>
|
||||
</div>
|
||||
<div class="area">
|
||||
<span>地区:</span>
|
||||
<span class="area-name" id="areaName">地区/社区</span>
|
||||
</div>
|
||||
<div class="line">
|
||||
<hr style="margin-top: 5px; margin-bottom: 5px"/>
|
||||
</div>
|
||||
<div class="users" id="gridUsers">
|
||||
<span>XXXXX</span>
|
||||
<span>XXXXX</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/library/AreaRestriction/1.2/src/AreaRestriction_min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/jquery-3.5.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vendor/bootstrap/js/bootstrap.min.js"></script>
|
||||
@ -111,7 +197,7 @@
|
||||
<script type="text/javascript" src="assets/js/easyui/locale/easyui-lang-zh_CN.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vue.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/common.js"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map-0.0.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map-0.0.1.min.js?v=20240201"></script>
|
||||
<script type="text/javascript" src="assets/js/vendor/layer/layer.js"></script>
|
||||
<script type="text/javascript">
|
||||
new Vue({
|
||||
@ -141,7 +227,10 @@
|
||||
},
|
||||
personTreeSelectNodes: [],
|
||||
isAllCheck: false,
|
||||
isTakeUserArea: false
|
||||
isTakeUserArea: false,
|
||||
keywords: '',
|
||||
mouseOverGridId: '',
|
||||
mouseOverTimeout: null
|
||||
},
|
||||
methods: {
|
||||
// 创建地图实例
|
||||
@ -225,7 +314,49 @@
|
||||
if(self.isTakeUserArea) {
|
||||
self.getAreaUsersInfo(item.id);
|
||||
}
|
||||
}
|
||||
},
|
||||
onMouseover: function(item, event) {
|
||||
var $gridInfo = $('#gridInfo');
|
||||
$gridInfo.hide();
|
||||
self.mouseOverGridId = item.gridId;
|
||||
if(self.mouseOverTimeout) {
|
||||
clearTimeout(self.mouseOverTimeout);
|
||||
}
|
||||
self.mouseOverTimeout = setTimeout(function() {
|
||||
top.restAjax.get(top.restAjax.path('app/data-external-release/get-big-data-grid-detail', []), {gridId : item.id}, null, function(code, data) {
|
||||
console.log(data);
|
||||
$('#gridName').text(data.gridInfo.gridName);
|
||||
$('#areaName').text(data.gridInfo.areaName);
|
||||
var users = '';
|
||||
$.each(data.gridUser, function(index, item) {
|
||||
users += `<span>${item.userName}:${item.userPhone}</span>`
|
||||
});
|
||||
var $gridUsers = $('#gridUsers');
|
||||
$gridUsers.empty();
|
||||
$gridUsers.append(users);
|
||||
$gridInfo.show();
|
||||
}, function(code, data) {
|
||||
dialog.msg(data.msg);
|
||||
});
|
||||
}, 1000);
|
||||
},
|
||||
onMouseout: function() {
|
||||
$('#gridInfo').hide();
|
||||
if(self.mouseOverTimeout) {
|
||||
clearTimeout(self.mouseOverTimeout);
|
||||
}
|
||||
},
|
||||
onMousemove: function(item, event) {
|
||||
if(self.mouseOverGridId !== item.gridId) {
|
||||
return;
|
||||
}
|
||||
var pixel = event.pixel;
|
||||
var $gridInfo = $('#gridInfo');
|
||||
$gridInfo.css({
|
||||
top: pixel.y - ($gridInfo.height() + 30) +'px',
|
||||
left: pixel.x +'px'
|
||||
})
|
||||
},
|
||||
});
|
||||
}
|
||||
if(typeof(addPoints) != 'undefined') {
|
||||
@ -272,6 +403,10 @@
|
||||
var userId = node.id.replace(/nPerson_/g, '');
|
||||
self.initGridUserV2(node.nodeTag, 15, userId);
|
||||
}
|
||||
if(node.nodeTag == 'grid'){
|
||||
var gridId = node.id.replace(/grid_/g, '');
|
||||
self.initGridUserV2(node.nodeTag, 17, gridId);
|
||||
}
|
||||
},
|
||||
onLoadSuccess: function() {
|
||||
var node = $('#areaTree').tree('find', 'areaTop');
|
||||
@ -536,6 +671,31 @@
|
||||
var self = this;
|
||||
self.map.map.setViewport(points);
|
||||
},
|
||||
onSearch: function() {
|
||||
var self = this;
|
||||
if(!self.keywords) {
|
||||
layer.msg('请输入关键字');
|
||||
return;
|
||||
}
|
||||
self.map.clearMap();
|
||||
top.restAjax.get(top.restAjax.path('app/data-external-release/list-map-grid-search', []), {
|
||||
keywords: encodeURI(self.keywords)
|
||||
}, null, function(code, data) {
|
||||
if(typeof (data) != 'undefined' && data.length > 0){
|
||||
// 划片
|
||||
self.takeUserArea(data);
|
||||
if(data[0]['gridPointList'].length <= 0){
|
||||
return;
|
||||
}
|
||||
self.map.setCenterAndZoom({
|
||||
lng: data[0]['gridPointList'][0].lng,
|
||||
lat: data[0]['gridPointList'][0].lat
|
||||
}, 15);
|
||||
}
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted: function() {
|
||||
var self = this;
|
||||
|
@ -87,7 +87,7 @@
|
||||
<div id="mapContainer" style="width:100%;height:100%;overflow-x: hidden;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/GeoUtils_min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/jquery-3.5.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/easyui/jquery.easyui.min.js"></script>
|
||||
|
@ -116,7 +116,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=mlfOah4gWM1FjEo9CmlI64zK6MhyiMPW"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/library/AreaRestriction/1.2/src/AreaRestriction_min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map-0.0.1.min.js?v=5"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
|
@ -86,7 +86,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?type=webgl&v=1.0&ak=mlfOah4gWM1FjEo9CmlI64zK6MhyiMPW"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?type=webgl&v=1.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map-0.0.1.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -81,7 +81,7 @@
|
||||
<div id="mapContainer" style="width:100%;height:100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/jquery-3.5.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/easyui/jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/easyui/locale/easyui-lang-zh_CN.js"></script>
|
||||
|
@ -77,7 +77,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({
|
||||
|
@ -77,7 +77,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({
|
||||
|
@ -77,7 +77,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({
|
||||
|
@ -75,7 +75,7 @@
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=oWU9RD4ihDHAafexgI6XOrTK8lDatRju"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/jquery-3.5.1.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vendor/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="assets/js/vendor/chosen/chosen.jquery.min.js"></script>
|
||||
|
@ -25,7 +25,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=mlfOah4gWM1FjEo9CmlI64zK6MhyiMPW"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map/baidu-map-1.0.0.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script th:inline="javascript">
|
||||
|
@ -121,7 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=mlfOah4gWM1FjEo9CmlI64zK6MhyiMPW"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map/baidu-map-1.0.0.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script src="assets/js/layui-select.js"></script>
|
||||
|
@ -25,7 +25,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=mlfOah4gWM1FjEo9CmlI64zK6MhyiMPW"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map/baidu-map-1.0.0.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script src="assets/js/layui-select.js"></script>
|
||||
|
@ -108,7 +108,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=mlfOah4gWM1FjEo9CmlI64zK6MhyiMPW"></script>
|
||||
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=pFMM3KjMlPlpzEGTXwB5vdj6cDCfB6Py"></script>
|
||||
<script type="text/javascript" src="assets/js/baidu-map/baidu-map-1.0.0.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script src="assets/js/layui-select.js"></script>
|
||||
|
3620
src/test/java/com/cm/systemcity/Base64ImgTest.java
Normal file
3620
src/test/java/com/cm/systemcity/Base64ImgTest.java
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user