Compare commits

...

10 Commits

Author SHA1 Message Date
Renpc-kilig
b96e254bcb 案件统计需求修改。
新增本年处理案件
2024-04-22 15:37:44 +08:00
Renpc-kilig
256a073e8a 案件统计需求修改。 2024-04-17 17:32:23 +08:00
Renpc-kilig
bb0a564ae4 自处理案件统计 2024-04-15 16:12:19 +08:00
Renpc-kilig
79bc386be5 新增复杂案件 2024-04-10 10:49:51 +08:00
TS-QD1
adebd6d8e5 修改百度地图key 2024-03-27 16:42:30 +08:00
TS-QD1
8348de3159 首页搜索,和标签信息 2024-02-01 16:09:12 +08:00
TS-QD1
e4310149a3 增加导出图片压缩大小功能 2024-01-19 16:36:45 +08:00
TS-QD1
3a76278b7b 修改百度地图的APIKEY 2024-01-19 16:36:17 +08:00
TS-QD1
88b170dbd2 归档案件增加部门条件 2024-01-08 17:31:16 +08:00
TS-QD1
e4232cc0d9 社区管理增加基础人口字段 2023-12-11 09:13:18 +08:00
83 changed files with 15657 additions and 1485 deletions

View File

@ -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迭代`已上线`
## 表结构调整

View File

@ -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 = "社区列表接口")

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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();
}

View 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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}

View File

@ -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 + '\'' +
'}';
}
}

View File

@ -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;

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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;
}
}

View File

@ -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;

View 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;
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -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>

View File

@ -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}

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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++];) {

View File

@ -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>

View File

@ -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>

View File

@ -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">

View File

@ -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({

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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">

View File

@ -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) {

View File

@ -177,6 +177,7 @@
url: top.restAjax.path(tableUrl, []),
where: {
keywords: $('#keywords').val(),
communityBossLevel: communityBossLevel,
areaId: $('#areaId').val()
},
page: {

View File

@ -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>

View File

@ -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>

View File

@ -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>

View 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>

View 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>

View File

@ -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){

View File

@ -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>

View File

@ -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({

View File

@ -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({

View File

@ -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({

View File

@ -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>

View File

@ -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({

View File

@ -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({

View File

@ -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({

View File

@ -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>

View File

@ -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({

View File

@ -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({

View File

@ -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({

View File

@ -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>

View File

@ -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">

View File

@ -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">

View File

@ -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">

View File

@ -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">

View File

@ -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">

View File

@ -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">

View File

@ -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;

View File

@ -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>

View File

@ -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>

View File

@ -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">

View File

@ -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>

View File

@ -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({

View File

@ -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({

View File

@ -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({

View File

@ -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>

View File

@ -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">

View File

@ -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>

View File

@ -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>

View File

@ -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>

File diff suppressed because one or more lines are too long