package cn.huge.module.cases.controller.web; import cn.huge.base.common.bo.R; import cn.huge.base.common.utils.DateUtils; import cn.huge.base.common.utils.ObjectUtils; import cn.huge.base.common.utils.ReturnFailUtils; import cn.huge.base.common.utils.ReturnSucUtils; import cn.huge.base.config.CurrentUser; import cn.huge.module.casebook.consts.ByCaseConstsEnum; import cn.huge.module.cases.domain.bo.CasePersonCountBO; import cn.huge.module.cases.domain.dto.*; import cn.huge.module.cases.domain.po.CaseAgent; import cn.huge.module.cases.domain.po.CaseInfo; import cn.huge.module.cases.domain.po.CaseInfo2; import cn.huge.module.cases.domain.vo.CaseVo; import cn.huge.module.cases.service.CaseInfoService; import cn.huge.module.cases.service.CaseRepeatService; import cn.huge.module.draft.service.CasedraftInfoService; import cn.huge.module.mediate.constant.CaseBaseConstsEnum; import cn.huge.module.utils.TimeUtils; import com.alibaba.excel.EasyExcel; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.web.bind.annotation.*; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.net.URLEncoder; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.*; /** * @title: 纠纷信息主表接口api-web端 * @description: 纠纷信息主表接口api-web端 * @company: hugeinfo * @author: wangwh * @time: 2024-08-27 10:00:57 * @version: 1.0.0 */ @Slf4j @RestController @RequestMapping("/api/web/caseInfo") public class CaseInfoWebController { @Autowired(required = false) private HttpServletRequest request; @Autowired private CaseInfoService service; @Autowired private CasedraftInfoService casedraftInfoService; @Autowired private CaseRepeatService caseRepeatService; private Map getParameterOverview() { Map terms = new HashMap<>(); String startDate = request.getParameter("startDate"); String endDate = request.getParameter("endDate"); terms.put("startDate", startDate); terms.put("endDate", endDate); terms.put("areaType", "2"); // 属地市 String queCity = request.getParameter("queCity"); if (StringUtils.isNotBlank(queCity)) { terms.put("queCity", queCity); terms.put("areaType", "2"); terms.put("areaCode", queCity); } // 属地区 String queArea = request.getParameter("queArea"); if (StringUtils.isNotBlank(queArea)) { terms.put("queArea", queArea); terms.put("areaType", "3"); terms.put("areaCode", queArea); } // 属地街道 String queRoad = request.getParameter("queRoad"); if (StringUtils.isNotBlank(queRoad)) { terms.put("queRoad", queRoad); terms.put("areaType", "4"); terms.put("areaCode", queRoad); } // 属地社区 String queVillage = request.getParameter("queVillage"); if (StringUtils.isNotBlank(queVillage)) { terms.put("queVillage", queVillage); terms.put("areaType", "4"); terms.put("areaCode", queVillage); } return terms; } private Map getParameterAll() { Map terms = getParameter(); // // 来访时间 String visitTimeStart = request.getParameter("visitTimeStart"); String visitTimeEnd = request.getParameter("visitTimeEnd"); if (StringUtils.isNotBlank(visitTimeStart) && StringUtils.isNotBlank(visitTimeEnd)) { terms.put("visitTimeStart", visitTimeStart + " 00:00:00"); terms.put("visitTimeEnd", visitTimeEnd + " 23:59:59"); } String createStart = request.getParameter("createStart"); String createEnd = request.getParameter("createEnd"); if (StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) { terms.put("createStart", createStart + " 00:00:00"); terms.put("createEnd", createEnd + " 23:59:59"); } String closeStart = request.getParameter("closeStart"); String closeEnd = request.getParameter("closeEnd"); if (StringUtils.isNotBlank(closeStart) && StringUtils.isNotBlank(closeEnd)) { terms.put("createStart", closeStart + " 00:00:00"); terms.put("createEnd", closeEnd + " 23:59:59"); } String fileStart = request.getParameter("fileStart"); String fileEnd = request.getParameter("fileEnd"); if (StringUtils.isNotBlank(fileStart) && StringUtils.isNotBlank(fileEnd)) { terms.put("createStart", fileStart + " 00:00:00"); terms.put("createEnd", fileEnd + " 23:59:59"); } String queRoad = request.getParameter("queRoad"); if (StringUtils.isNotBlank(queRoad)) { terms.put("areaType", "2"); } // 实际调解组织编号 String mediateUnitId = request.getParameter("mediateUnitId"); if (StringUtils.isNotBlank(mediateUnitId)) { terms.put("mediateUnitId", mediateUnitId); } // 配合组织,多个用,隔开 String assistUnitId = request.getParameter("assistUnitId"); if (StringUtils.isNotBlank(assistUnitId)) { terms.put("assistUnitId", assistUnitId); } // 实际调解组织编号 String mediateUnitName = request.getParameter("mediateUnitName"); if (StringUtils.isNotBlank(mediateUnitName)) { terms.put("mediateUnitName", mediateUnitName); } // 配合组织,多个用,隔开 String assistUnitName = request.getParameter("assistUnitName"); if (StringUtils.isNotBlank(assistUnitName)) { terms.put("assistUnitName", assistUnitName); } // 配合组织,多个用,隔开 String evaluateGrade = request.getParameter("evaluateGrade"); if (StringUtils.isNotBlank(evaluateGrade)) { terms.put("evaluateGrade", evaluateGrade); } // 配合组织,多个用,隔开 String mediResult = request.getParameter("mediResult"); if (StringUtils.isNotBlank(mediResult)) { terms.put("mediResult", mediResult); } //经办人ID String mediatorId = request.getParameter("mediatorId"); if (StringUtils.isNotBlank(mediatorId)) { terms.put("mediatorId", mediatorId); } //经办人ID String mediator = request.getParameter("mediator"); if (StringUtils.isNotBlank(mediator)) { terms.put("mediator", mediator); } //经办人ID String systemSource = request.getParameter("systemSource"); if (StringUtils.isNotBlank(systemSource)) { terms.put("systemSource", systemSource); } String peopleNum = request.getParameter("peopleNum"); if (StringUtils.isNotBlank(peopleNum)) { String[] split = peopleNum.split("-"); String number = split[0]; if (number.equals("0") && split.length == 1) { terms.put("peopleNumEnd", split[0]); } else { terms.put("peopleNumStart", split[0]); if (split.length > 1) { terms.put("peopleNumEnd", split[1]); } } } String amount = request.getParameter("amount"); if (StringUtils.isNotBlank(amount)) { String[] split = amount.split("-"); String number = split[0]; if (number.equals("0") && split.length == 1) { terms.put("amountEnd", split[0]); } else { terms.put("amountStart", split[0]); if (split.length > 1) { terms.put("amountEnd", split[1]); } } } return terms; } /** * 获取请求URL参数 * * @return Map */ private Map getParameter() { Map terms = Maps.newHashMap(); // 主键编号 String id = request.getParameter("id"); if (StringUtils.isNotBlank(id)) { terms.put("id", id); } // 事项标题 String caseTitle = request.getParameter("caseTitle"); if (StringUtils.isNotBlank(caseTitle)) { terms.put("caseTitle", caseTitle); } // 事项编号 String caseRef = request.getParameter("caseRef"); if (StringUtils.isNotBlank(caseRef)) { terms.put("caseRef", caseRef); } // 事项等级 String caseLevel = request.getParameter("caseLevel"); if (StringUtils.isNotBlank(caseLevel)) { terms.put("caseLevel", caseLevel); } // 来访时间 String visitTime = request.getParameter("visitTime"); if (StringUtils.isNotBlank(visitTime)) { terms.put("visitTime", visitTime); } // 来访人数 String visitPeopleNum = request.getParameter("visitPeopleNum"); if (StringUtils.isNotBlank(visitPeopleNum)) { terms.put("visitPeopleNum", visitPeopleNum); } // 调解类型 String mediType = request.getParameter("mediType"); if (StringUtils.isNotBlank(mediType)) { terms.put("mediType", mediType); } // 调解类型名称 String mediTypeName = request.getParameter("mediTypeName"); if (StringUtils.isNotBlank(mediTypeName)) { terms.put("mediTypeName", mediTypeName); } // 纠纷一级类型 String caseTypeFirst = request.getParameter("caseTypeFirst"); if (StringUtils.isNotBlank(caseTypeFirst)) { terms.put("caseTypeFirst", caseTypeFirst); } // 纠纷一级类型名称 String caseTypeFirstName = request.getParameter("caseTypeFirstName"); if (StringUtils.isNotBlank(caseTypeFirstName)) { terms.put("caseTypeFirstName", caseTypeFirstName); } // 纠纷类型 String caseType = request.getParameter("caseType"); if (StringUtils.isNotBlank(caseType)) { terms.put("caseType", caseType); } // 纠纷类型名称 String caseTypeName = request.getParameter("caseTypeName"); if (StringUtils.isNotBlank(caseTypeName)) { terms.put("caseTypeName", caseTypeName); } // 纠纷发生时间 String occurTime = request.getParameter("occurTime"); if (StringUtils.isNotBlank(occurTime)) { terms.put("occurTime", occurTime); } // 纠纷发生地详细地址 String addr = request.getParameter("addr"); if (StringUtils.isNotBlank(addr)) { terms.put("addr", addr); } // 纠纷发生地经度 String lng = request.getParameter("lng"); if (StringUtils.isNotBlank(lng)) { terms.put("lng", lng); } // 纠纷发生地纬度 String lat = request.getParameter("lat"); if (StringUtils.isNotBlank(lat)) { terms.put("lat", lat); } // 纠纷发生地网格地址 String wgAddr = request.getParameter("wgAddr"); if (StringUtils.isNotBlank(wgAddr)) { terms.put("wgAddr", wgAddr); } // 纠纷发生地网格地址经度 String wgLng = request.getParameter("wgLng"); if (StringUtils.isNotBlank(wgLng)) { terms.put("wgLng", wgLng); } // 纠纷发生地网格地址纬度 String wgLat = request.getParameter("wgLat"); if (StringUtils.isNotBlank(wgLat)) { terms.put("wgLat", wgLat); } // 问题属地省 String queProv = request.getParameter("queProv"); if (StringUtils.isNotBlank(queProv)) { terms.put("queProv", queProv); } // 问题属地省名称 String queProvName = request.getParameter("queProvName"); if (StringUtils.isNotBlank(queProvName)) { terms.put("queProvName", queProvName); } // 问题属地市 String queCity = request.getParameter("queCity"); if (StringUtils.isNotBlank(queCity)) { terms.put("queCity", queCity); } // 问题属地市名称 String queCityName = request.getParameter("queCityName"); if (StringUtils.isNotBlank(queCityName)) { terms.put("queCityName", queCityName); } // 问题属地区 String queArea = request.getParameter("queArea"); if (StringUtils.isNotBlank(queArea)) { terms.put("queArea", queArea); } // 问题属地区名称 String queAreaName = request.getParameter("queAreaName"); if (StringUtils.isNotBlank(queAreaName)) { terms.put("queAreaName", queAreaName); } // 问题属地街道 String queRoad = request.getParameter("queRoad"); if (StringUtils.isNotBlank(queRoad)) { terms.put("queRoad", queRoad); } // 问题属地街道名称 String queRoadName = request.getParameter("queRoadName"); if (StringUtils.isNotBlank(queRoadName)) { terms.put("queRoadName", queRoadName); } // 问题属地社区 String queVillage = request.getParameter("queVillage"); if (StringUtils.isNotBlank(queVillage)) { terms.put("queVillage", queVillage); } // 问题属地社区名称 String queVillageName = request.getParameter("queVillageName"); if (StringUtils.isNotBlank(queVillageName)) { terms.put("queVillageName", queVillageName); } // 涉及人数 String peopleNum = request.getParameter("peopleNum"); if (StringUtils.isNotBlank(peopleNum)) { terms.put("peopleNum", peopleNum); } // 涉及金额 String amount = request.getParameter("amount"); if (StringUtils.isNotBlank(amount)) { terms.put("amount", amount); } // 涉及人群 String crowd = request.getParameter("crowd"); if (StringUtils.isNotBlank(crowd)) { terms.put("crowd", crowd); } // 涉及人群名称 String crowdName = request.getParameter("crowdName"); if (StringUtils.isNotBlank(crowdName)) { terms.put("crowdName", crowdName); } // 事项来源 String canal = request.getParameter("canal"); if (StringUtils.isNotBlank(canal)) { terms.put("canal", canal); } // 事项来源名称 String canalName = request.getParameter("canalName"); if (StringUtils.isNotBlank(canalName)) { terms.put("canalName", canalName); } // 来访形式 String visitWay = request.getParameter("visitWay"); if (StringUtils.isNotBlank(visitWay)) { terms.put("visitWay", visitWay); } // 来访形式名称 String visitWayName = request.getParameter("visitWayName"); if (StringUtils.isNotBlank(visitWayName)) { terms.put("visitWayName", visitWayName); } // 事项概况 String caseDes = request.getParameter("caseDes"); if (StringUtils.isNotBlank(caseDes)) { terms.put("caseDes", caseDes); } // 事项申请 String caseClaim = request.getParameter("caseClaim"); if (StringUtils.isNotBlank(caseClaim)) { terms.put("caseClaim", caseClaim); } // 是否重大矛盾纠纷,0:否,1:是 String majorStatus = request.getParameter("majorStatus"); if (StringUtils.isNotBlank(majorStatus)) { terms.put("majorStatus", majorStatus); } // 纠纷来源 String source = request.getParameter("source"); if (StringUtils.isNotBlank(source)) { terms.put("source", source); } // 纠纷来源名称 String sourceName = request.getParameter("sourceName"); if (StringUtils.isNotBlank(sourceName)) { terms.put("sourceName", sourceName); } // 矛调号 String caseNo = request.getParameter("caseNo"); if (StringUtils.isNotBlank(caseNo)) { terms.put("caseNo", caseNo); } // 民诉前调号 String mediateNo = request.getParameter("mediateNo"); if (StringUtils.isNotBlank(mediateNo)) { terms.put("mediateNo", mediateNo); } // 民诉前调书号 String mediateBookNo = request.getParameter("mediateBookNo"); if (StringUtils.isNotBlank(mediateBookNo)) { terms.put("mediateBookNo", mediateBookNo); } // 诉讼案号 String civilNo = request.getParameter("civilNo"); if (StringUtils.isNotBlank(civilNo)) { terms.put("civilNo", civilNo); } // 申请方当事人名称 String plaintiffs = request.getParameter("plaintiffs"); if (StringUtils.isNotBlank(plaintiffs)) { terms.put("plaintiffs", plaintiffs); } // 申请方代理人名称 String pagents = request.getParameter("pagents"); if (StringUtils.isNotBlank(pagents)) { terms.put("pagents", pagents); } // 被申请方当事人名称 String defendants = request.getParameter("defendants"); if (StringUtils.isNotBlank(defendants)) { terms.put("defendants", defendants); } // 被申请方代理人名称 String dagents = request.getParameter("dagents"); if (StringUtils.isNotBlank(dagents)) { terms.put("dagents", dagents); } // 登记组织编号 String inputUnitId = request.getParameter("inputUnitId"); if (StringUtils.isNotBlank(inputUnitId)) { terms.put("inputUnitId", inputUnitId); } // 登记组织名称 String inputUnitName = request.getParameter("inputUnitName"); if (StringUtils.isNotBlank(inputUnitName)) { terms.put("inputUnitName", inputUnitName); } // 登记人编号 String inputUserId = request.getParameter("inputUserId"); if (StringUtils.isNotBlank(inputUserId)) { terms.put("inputUserId", inputUserId); } // 登记人名称 String inputUserName = request.getParameter("inputUserName"); if (StringUtils.isNotBlank(inputUserName)) { terms.put("inputUserName", inputUserName); } // 登记方式,1:正常登记,2:案件导入 String inputWay = request.getParameter("inputWay"); if (StringUtils.isNotBlank(inputWay)) { terms.put("inputWay", inputWay); } // 事项状态,1:待分派,2:待签收,3:待受理,4:化解中,5:结案审核,6:待评价,7:已归档,8:不予受理 String status = request.getParameter("status"); if (StringUtils.isNotBlank(status)) { terms.put("status", status); } // 事项状态名称 String statusName = request.getParameter("statusName"); if (StringUtils.isNotBlank(statusName)) { terms.put("statusName", statusName); } // 事项进度,1:来访登记,2:事件流转,3:办理反馈,4:结案申请,5:当事人评价,6:结案归档 String process = request.getParameter("process"); if (StringUtils.isNotBlank(process)) { terms.put("process", process); } // 事项进度名称 String processName = request.getParameter("processName"); if (StringUtils.isNotBlank(processName)) { terms.put("processName", processName); } // 对外展示事项进度,1:待受理,2:化解中,3:已结案,4:不予受理 String infoProcess = request.getParameter("process"); if (StringUtils.isNotBlank(infoProcess)) { terms.put("infoProcess", infoProcess); } // 对外展示事项进度 String infoProcessName = request.getParameter("infoProcessName"); if (StringUtils.isNotBlank(infoProcessName)) { terms.put("infoProcessName", infoProcessName); } // 小程序是否可见,0:不可见,1:可见 String partyShow = request.getParameter("partyShow"); if (StringUtils.isNotBlank(partyShow)) { terms.put("partyShow", partyShow); } // 意向调解组织编号 String wantUnitId = request.getParameter("wantUnitId"); if (StringUtils.isNotBlank(wantUnitId)) { terms.put("wantUnitId", wantUnitId); } // 意向调解组织名称 String wantUnitName = request.getParameter("wantUnitName"); if (StringUtils.isNotBlank(wantUnitName)) { terms.put("wantUnitName", wantUnitName); } // 意向调解员编号 String wantUserId = request.getParameter("wantUserId"); if (StringUtils.isNotBlank(wantUserId)) { terms.put("wantUserId", wantUserId); } // 意向调解员名称 String wantUserName = request.getParameter("wantUserName"); if (StringUtils.isNotBlank(wantUserName)) { terms.put("wantUserName", wantUserName); } // 删除状态,0:未删除,1:已删除 String deleteStatus = request.getParameter("deleteStatus"); if (StringUtils.isNotBlank(deleteStatus)) { terms.put("deleteStatus", deleteStatus); } // 顾客编号 String custId = request.getParameter("custId"); if (StringUtils.isNotBlank(custId)) { terms.put("custId", custId); } // 创建时间区间 String createStart = request.getParameter("createStart"); String createEnd = request.getParameter("createEnd"); if (StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) { terms.put("createStart", createStart); terms.put("createEnd", createEnd); } // 更新时间区间 String updateStart = request.getParameter("updateStart"); String updateEnd = request.getParameter("updateEnd"); if (StringUtils.isNotBlank(updateStart) && StringUtils.isNotBlank(updateEnd)) { terms.put("updateStart", updateStart); terms.put("updateEnd", updateEnd); } // 协同推送-二级分类 String canalSecond = request.getParameter("canalSecond"); if (StringUtils.isNotBlank(canalSecond)) { terms.put("canalSecond", canalSecond); } // 协同推送-二级分类名称 String canalSecondName = request.getParameter("canalSecondName"); if (StringUtils.isNotBlank(canalSecondName)) { terms.put("canalSecondName", canalSecondName); } // 是否扬言风险案件,0:否,1:是 String isRisk = request.getParameter("isRisk"); if (StringUtils.isNotBlank(isRisk)) { terms.put("isRisk", isRisk); } // 结案协议类型 String agreeType = request.getParameter("agreeType"); if (StringUtils.isNotBlank(agreeType)) { terms.put("agreeType", agreeType); } return terms; } /** * 条件查询多个 * * @return Object * @url {ctx}/api/web/caseInfo/listQuery */ @GetMapping("/listQuery") public Object listQuery() { try { Map terms = getParameter(); return ReturnSucUtils.getRepInfo(service.listTerms(terms)); } catch (Exception e) { return ReturnFailUtils.getRepInfo(); } } /** * 条件查询多个 * * @return Object * @url {ctx}/api/web/caseInfo/listQuery */ @GetMapping("/listQuery2") public R> listQuery2(CaseVo caseVo) { try { return R.ok(service.selectByLastTime(caseVo)); } catch (Exception e) { return R.fail(); } } /** * 条件分页查询 * * @param page 页码 * @param size 每页数量 * @return Object * @url {ctx}/api/web/caseInfo/pageQuery */ @GetMapping("/pageQuery") public Object pageQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) { try { Map terms = getParameter(); Sort sort = Sort.by(Sort.Direction.DESC, "create_time"); PageRequest pageRequest = PageRequest.of(page - 1, size, sort); Page caseInfoPage = service.pageQuery(pageRequest, terms); return ReturnSucUtils.getRepInfo("处理成功", caseInfoPage); } catch (Exception e) { return ReturnFailUtils.getRepInfo(); } } /** * 根据编号查询单个 * * @param id 主键编号 * @return Object * @url {ctx}/api/web/caseInfo/getById */ @GetMapping("/getById") public Object getById(@RequestParam(value = "id") String id) { try { return ReturnSucUtils.getRepInfo(service.getById(id)); } catch (Exception e) { return ReturnFailUtils.getRepInfo(); } } /** * 根据主键单个 * * @param id 主键编号 * @return Object * @url {ctx}/api/web/caseInfo/deleteById */ @GetMapping("/deleteById") public Object deleteById(@RequestParam(value = "id") String id) { try { service.removeById(id); return ReturnSucUtils.getRepInfo(); } catch (Exception e) { return ReturnFailUtils.getRepInfo(); } } /** * 根据主键单个 * * @return Object * @url {ctx}/api/web/caseInfo/deleteById */ @PostMapping("/deleteCaseById") public Object deleteCaseById(@RequestBody CaseInfo caseInfo) { try { service.deleteCaseById(caseInfo.getId()); return ReturnSucUtils.getRepInfo(); } catch (Exception e) { log.error(e.getMessage()); return ReturnFailUtils.getRepInfo(); } } /** * 新增或更新对象 * * @param caseInfo 实体对象 * @return Object * @url {ctx}/api/web/caseInfo/saveCaseInfo */ @PostMapping("/saveCaseInfo") public Object saveCaseInfo(@RequestBody CaseInfo caseInfo) { try { service.saveCaseInfo(caseInfo); return ReturnSucUtils.getRepInfo(); } catch (Exception e) { log.error(e.getMessage()); return ReturnFailUtils.getRepInfo(); } } /** * PC端-纠纷登记-根据坐标信息入格 * * @param caseId 纠纷编号 * @url {ctx}/api/web/caseInfo/setGridInfoById */ @PostMapping("/setGridInfoById") public Object setGridInfoById(@RequestParam String caseId) { try { service.setGridInfoById(caseId); } catch (Exception e) { return ReturnFailUtils.getRepInfo(e.getMessage()); } return ReturnSucUtils.getRepInfo(caseId); } /** * PC端-纠纷登记-保存纠纷信息-正常案件 * * @param registerSaveDTO 实体对象 * @url {ctx}/api/web/caseInfo/caseRegister */ @PostMapping("/caseRegister") public Object caseRegister(@CurrentUser String userId, @RequestBody RegisterSaveDTO registerSaveDTO) { try { // if (StringUtils.isEmpty(registerSaveDTO.getQueRoad())) { // return ReturnFailUtils.getRepInfo("问题属地镇街不能为空,请重新选择!"); // } String caseId = service.caseRegister(registerSaveDTO, userId); //如果存在草稿,则删除 casedraftInfoService.deleteCaseDraft(registerSaveDTO.getId()); return ReturnSucUtils.getRepInfo(caseId); } catch (Exception e) { return ReturnFailUtils.getRepInfo(e.getMessage()); } } /** * PC端-正式案件-查询纠纷信息 * * @param id 纠纷编号 * @return Object * @url {ctx}/api/web/caseInfo/getCaseInfo?id= */ @GetMapping("/getCaseInfo") public Object getCaseInfo(@RequestParam(value = "id") String id) { try { return ReturnSucUtils.getRepInfo(service.getCaseInfo(id)); } catch (Exception e) { return ReturnFailUtils.getRepInfo(e.getMessage()); } } /** * PC端-查询档案信息 * * @param id 纠纷编号 * @return Object * @url {ctx}/api/web/caseInfo/getCaseArchivesInfo?id= */ @GetMapping("/getCaseArchivesInfo") public Object getCaseArchivesInfo(@RequestParam(value = "id") String id) { try { return ReturnSucUtils.getRepInfo(service.getCaseArchivesInfo(id)); } catch (Exception e) { return ReturnFailUtils.getRepInfo(e.getMessage()); } } /** * 综合查询 * * @param page 页码 * @param size 每页数量 * @return Object * @url {ctx}/api/web/caseInfo/pageQueryAll */ @GetMapping("/pageQueryAll") public Object pageQueryAll(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) { try { Map terms = getParameterAll(); Sort sort = null; String sortName = null; String sortColmnStr = request.getParameter("sortColmn"); String sortTypeStr = request.getParameter("sortType"); int sortColmn = 1; int sortType = 1; if (StringUtils.isNotBlank(sortColmnStr)) { sortColmn = Integer.valueOf(sortColmnStr); } if (StringUtils.isNotBlank(sortTypeStr)) { sortType = Integer.valueOf(sortTypeStr); } switch (sortColmn) { case 1: sortName = "a.create_time"; break; case 2: sortName = "b.close_time"; break; } switch (sortType) { case 1: sort = Sort.by(Sort.Direction.ASC, sortName); break; case 2: sort = Sort.by(Sort.Direction.DESC, sortName); break; } if (ObjectUtils.isEmpty(sort)) { sort = Sort.by(Sort.Direction.DESC, "a.create_time"); } PageRequest pageRequest = PageRequest.of(page - 1, size, sort); Page caseInfoPage = service.pageQueryAll(pageRequest, terms); return ReturnSucUtils.getRepInfo("处理成功", caseInfoPage); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.pageQueryAll]请求异常:" + e, e); return ReturnFailUtils.getRepInfo(); } } /** * 解纷态势-区域列表 * * @param page 页码 * @param size 每页数量 * @return Object * @url {ctx}/api/web/caseInfo/pageQueryArea */ @GetMapping("/pageQueryArea") public Object pageQueryArea(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) { try { Map terms = getParameterAll(); Sort sort = null; String sortName = null; String sortColmnStr = request.getParameter("sortColmn"); String sortTypeStr = request.getParameter("sortType"); String areaType = request.getParameter("areaType"); terms.put("areaType", areaType); String unitGrades = request.getParameter("unitGrades"); if(ObjectUtils.isNotEmpty(unitGrades)){ String[] split = unitGrades.split(","); List unitGradeList = new ArrayList<>(); for (String s : split) { unitGradeList.add(s); } terms.put("unitGrades", unitGradeList); } //统计条件 resolveType 1-化解中,2-已结案,3-不予受理 String resolveType = request.getParameter("resolveType"); if(ObjectUtils.isNotEmpty(unitGrades)){ terms.put("resolveType", resolveType); } int sortColmn = 1; int sortType = 1; if (StringUtils.isNotBlank(sortColmnStr)) { sortColmn = Integer.valueOf(sortColmnStr); } if (StringUtils.isNotBlank(sortTypeStr)) { sortType = Integer.valueOf(sortTypeStr); } switch (sortColmn) { case 1: sortName = "a.create_time"; break; case 2: sortName = "b.close_time"; break; } switch (sortType) { case 1: sort = Sort.by(Sort.Direction.ASC, sortName); break; case 2: sort = Sort.by(Sort.Direction.DESC, sortName); break; } if (ObjectUtils.isEmpty(sort)) { sort = Sort.by(Sort.Direction.DESC, "a.create_time"); } PageRequest pageRequest = PageRequest.of(page - 1, size, sort); Page caseInfoPage = service.pageQueryArea(pageRequest, terms); return ReturnSucUtils.getRepInfo("处理成功", caseInfoPage); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.pageQueryAll]请求异常:" + e, e); return ReturnFailUtils.getRepInfo(); } } /** * 综合查询-导出 * * @return Object * @url {ctx}/api/web/caseInfo/exportQueryAll */ @RequestMapping("/exportQueryAll") public Object exportQueryAll(HttpServletResponse response) { try { Map terms = getParameterAll(); String createStart = request.getParameter("createStart"); String createEnd = request.getParameter("createEnd"); if(ObjectUtils.isEmpty(createStart) || ObjectUtils.isEmpty(createEnd)){ return ReturnFailUtils.getRepInfo("请选择登记时间区间"); } //计算两个时间的天数 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate date1 = LocalDate.parse(createStart, formatter); LocalDate date2 = LocalDate.parse(createEnd, formatter); long daysBetween = ChronoUnit.DAYS.between(date1, date2); if(daysBetween > 366){ return ReturnFailUtils.getRepInfo("选择登记时间区间不能大于1年"); } Sort sort = Sort.by(Sort.Direction.DESC, "a.create_time"); PageRequest pageRequest = PageRequest.of(0, 100000, sort); terms.put("report", "report"); Page caseInfoPage = service.pageQueryAll(pageRequest, terms); List excelList = new ArrayList<>(); if (ObjectUtils.isNotEmpty(caseInfoPage.getContent())) { int i = 1; for (CasePageDTO casePageDTO : caseInfoPage.getContent()) { String extreme = "否"; CaseInfoWeExcelDTO caseInfoWeExcelDTO = new CaseInfoWeExcelDTO(); BeanUtils.copyProperties(casePageDTO, caseInfoWeExcelDTO); caseInfoWeExcelDTO.setSysSource("本系统"); Map personMap = new HashMap<>(); //申请人 if(ObjectUtils.isNotEmpty(casePageDTO.getPlaintiffList())){ StringBuffer sb = new StringBuffer(); for (CasePersonWeDTO casePersonWeDTO : casePageDTO.getPlaintiffList()) { if(ObjectUtils.isNotEmpty(casePersonWeDTO.getExtreme()) && casePersonWeDTO.getExtreme().equals(1)){ extreme = "是"; } personMap.put(casePersonWeDTO.getId(), casePersonWeDTO.getTrueName()); if(CaseBaseConstsEnum.PERSON_CLASS_1.getIndex().equals(casePersonWeDTO.getPerClass())){ sb.append(casePersonWeDTO.getTrueName()); if(ObjectUtils.isNotEmpty(casePersonWeDTO.getCertiNo())){ sb.append("(").append(casePersonWeDTO.getCertiNo()).append(")"); } sb.append("、"); }else{ sb.append(casePersonWeDTO.getTrueName()); if(ObjectUtils.isNotEmpty(casePersonWeDTO.getOrgaCode())){ sb.append("(").append(casePersonWeDTO.getOrgaCode()).append(")"); } sb.append("、"); } } //申请代理人 if(ObjectUtils.isNotEmpty(casePageDTO.getAgentList())){ for (CaseAgentWeDTO caseAgentWeDTO : casePageDTO.getAgentList()) { if (CaseBaseConstsEnum.PERSON_TYPE_3.getIndex().equals(caseAgentWeDTO.getPerType())) { sb.append(caseAgentWeDTO.getTrueName()); sb.append("("); if(ObjectUtils.isNotEmpty(caseAgentWeDTO.getCertiNo())){ sb.append(caseAgentWeDTO.getCertiNo()).append(","); } sb.append("代理对象:"); if(ObjectUtils.isNotEmpty(personMap.get(caseAgentWeDTO.getPersonId()))){ String[] split = caseAgentWeDTO.getPersonId().split(","); Boolean isfrist = true; for (String personId : split) { if(isfrist){ sb.append(personMap.get(personId)); isfrist = false; }else{ sb.append(",").append(personMap.get(personId)); } } } sb.append(")").append("、"); } } } caseInfoWeExcelDTO.setPlaintiffs(sb.substring(0, sb.length() - 1)); } //被申请人 if(ObjectUtils.isNotEmpty(casePageDTO.getDefendantList())){ StringBuffer sb = new StringBuffer(); for (CasePersonWeDTO casePersonWeDTO : casePageDTO.getDefendantList()) { personMap.put(casePersonWeDTO.getId(), casePersonWeDTO.getTrueName()); if(CaseBaseConstsEnum.PERSON_CLASS_1.getIndex().equals(casePersonWeDTO.getPerClass())){ sb.append(casePersonWeDTO.getTrueName()); if(ObjectUtils.isNotEmpty(casePersonWeDTO.getCertiNo())){ sb.append("(").append(casePersonWeDTO.getCertiNo()).append(")"); } sb.append("、"); }else{ sb.append(casePersonWeDTO.getTrueName()); if(ObjectUtils.isNotEmpty(casePersonWeDTO.getOrgaCode())){ sb.append("(").append(casePersonWeDTO.getOrgaCode()).append(")"); } sb.append("、"); } } //被申请代理人 if(ObjectUtils.isNotEmpty(casePageDTO.getAgentList())){ for (CaseAgentWeDTO caseAgentWeDTO : casePageDTO.getAgentList()) { if (CaseBaseConstsEnum.PERSON_TYPE_4.getIndex().equals(caseAgentWeDTO.getPerType())) { sb.append(caseAgentWeDTO.getTrueName()); sb.append("("); if(ObjectUtils.isNotEmpty(caseAgentWeDTO.getCertiNo())){ sb.append(caseAgentWeDTO.getCertiNo()).append(","); } sb.append("代理对象:"); if(ObjectUtils.isNotEmpty(personMap.get(caseAgentWeDTO.getPersonId()))){ String[] split = caseAgentWeDTO.getPersonId().split(","); Boolean isfrist = true; for (String personId : split) { if(isfrist){ sb.append(personMap.get(personId)); isfrist = false; }else{ sb.append(",").append(personMap.get(personId)); } } } sb.append(")").append("、"); } } } caseInfoWeExcelDTO.setDefendants(sb.substring(0, sb.length() - 1)); } caseInfoWeExcelDTO.setCloseTime(DateUtils.DateToString(casePageDTO.getCloseTime(), "yyyy/MM/dd")); caseInfoWeExcelDTO.setCreateTime(DateUtils.DateToString(casePageDTO.getCreateTime(), "yyyy/MM/dd")); caseInfoWeExcelDTO.setVisitTime(DateUtils.DateToString(casePageDTO.getVisitTime(), "yyyy/MM/dd")); caseInfoWeExcelDTO.setOccurTime(DateUtils.DateToString(casePageDTO.getOccurTime(), "yyyy/MM/dd")); caseInfoWeExcelDTO.setPeopleNum(casePageDTO.getPeopleNum()+""); caseInfoWeExcelDTO.setAmount(casePageDTO.getAmount()+""); caseInfoWeExcelDTO.setExtreme(extreme); if(ObjectUtils.isNotEmpty(casePageDTO.getMajorStatus())){ switch (casePageDTO.getMajorStatus()) { case 1: caseInfoWeExcelDTO.setMajorStatus("是"); break; case 0: caseInfoWeExcelDTO.setMajorStatus("否"); break; } } caseInfoWeExcelDTO.setSort(i+""); i++; excelList.add(caseInfoWeExcelDTO); } } String fileName = "矛盾纠纷应用纠纷数据台账.xlsx"; response.setCharacterEncoding("UTF-8"); response.setHeader("content-Type", "application/vnd.ms-excel;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); ServletOutputStream outputStream = response.getOutputStream(); EasyExcel.write(outputStream, CaseInfoWeExcelDTO.class).sheet("矛盾纠纷应用纠纷数据台账").doWrite(excelList); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.exportQueryAll]请求异常:" + e, e); } return ReturnSucUtils.getRepInfo("处理成功"); } /** * 解纷态势 * * @return Object * @url {ctx}/api/web/caseInfo/statistics * @CurrentUser String userId */ @GetMapping("/statistics") public Object statistics(@CurrentUser String userId) { try { // String userId = "2409240631181052"; Map terms = getParameterAll(); return ReturnSucUtils.getRepInfo("处理成功", service.statistics(terms, userId)); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.statistics]请求异常:" + e, e); return ReturnFailUtils.getRepInfo(); } } /** * 工作统计 * * @return Object * @url {ctx}/api/web/caseInfo/workStatistics * @CurrentUser String userId */ @GetMapping("/workStatistics") public Object workStatistics(@CurrentUser String userId) { try { Map terms = getParameterAll(); //统计类型 1-个人,2-单位 String workType = request.getParameter("workType"); if (ObjectUtils.isNotEmpty(workType)) { terms.put("workType", workType); } return ReturnSucUtils.getRepInfo("处理成功", service.workStatistics(terms, userId)); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.workStatistics]请求异常:" + e, e); return ReturnFailUtils.getRepInfo(); } } /** * 解纷态势 * * @return Object * @url {ctx}/api/web/caseInfo/exportStatisticsArea * @CurrentUser String userId */ @GetMapping("/exportStatisticsArea") public Object exportStatisticsArea(HttpServletResponse response) { try { Map terms = getParameterAll(); CaseStatisticsBaseDTO statistics = service.statistics(terms, null); List excelList = new ArrayList<>(); if(ObjectUtils.isNotEmpty(statistics.getAreaList())){ int i = 1; for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : statistics.getAreaList()) { CaseInfoWeAreaExcelDTO caseInfoWeAreaExcelDTO = new CaseInfoWeAreaExcelDTO(); BeanUtils.copyProperties(caseStatisticsAreaDTO, caseInfoWeAreaExcelDTO); caseInfoWeAreaExcelDTO.setSort(i+""); caseInfoWeAreaExcelDTO.setFinishNUm(caseStatisticsAreaDTO.getResolveNum()+caseStatisticsAreaDTO.getUnResolveNum()); excelList.add(caseInfoWeAreaExcelDTO); i++; } } String fileName = "矛盾纠纷应用纠纷地区统计数据.xlsx"; response.setCharacterEncoding("UTF-8"); response.setHeader("content-Type", "application/vnd.ms-excel;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); ServletOutputStream outputStream = response.getOutputStream(); EasyExcel.write(outputStream, CaseInfoWeAreaExcelDTO.class).sheet("矛盾纠纷应用纠纷地区统计数据").doWrite(excelList); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.exportStatisticsArea]请求异常:" + e, e); } return ReturnSucUtils.getRepInfo("处理成功"); } /** * 解纷态势-纠纷类型 * * @return Object * @url {ctx}/api/web/caseInfo/statisticsCaseType * @CurrentUser String userId */ @GetMapping("/statisticsCaseType") public Object statisticsCaseType(@CurrentUser String userId) { try { Map terms = getParameterAll(); return ReturnSucUtils.getRepInfo("处理成功", service.statisticsCaseType(terms, userId)); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.statistics]请求异常:" + e, e); return ReturnFailUtils.getRepInfo(); } } /** * 小程序是否可见修改修改 * * @return Object * @url {ctx}/api/web/caseInfo/updateVisibleStatus * @CurrentUser String userId */ @PostMapping("/updateVisibleStatus") public Object updateVisibleStatus(@RequestBody CaseInfo caseInfo) { try { service.updateCaseInfo(caseInfo); return ReturnSucUtils.getRepInfo(); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.statistics]请求异常:" + e, e); return ReturnFailUtils.getRepInfo(); } } /** * 个人查询 * * @param page 页码 * @param size 每页数量 * @return Object * @url {ctx}/api/web/caseInfo/pagePerson */ @GetMapping("/pagePerson") public Object pagePerson(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size, @RequestParam(value = "certiNo") String certiNo) { try { Map terms = getParameterAll(); Sort sort = null; String sortName = null; String sortColmnStr = request.getParameter("sortColmn"); String sortTypeStr = request.getParameter("sortType"); int sortColmn = 1; int sortType = 1; if (StringUtils.isNotBlank(sortColmnStr)) { sortColmn = Integer.valueOf(sortColmnStr); } if (StringUtils.isNotBlank(sortTypeStr)) { sortType = Integer.valueOf(sortTypeStr); } switch (sortColmn) { case 1: sortName = "a.create_time"; break; case 2: sortName = "b.close_time"; break; } switch (sortType) { case 1: sort = Sort.by(Sort.Direction.ASC, sortName); break; case 2: sort = Sort.by(Sort.Direction.DESC, sortName); break; } if (ObjectUtils.isEmpty(sort)) { sort = Sort.by(Sort.Direction.DESC, "a.create_time"); } PageRequest pageRequest = PageRequest.of(page - 1, size, sort); Page caseInfoPage = service.pagePerson(pageRequest, terms, certiNo); return ReturnSucUtils.getRepInfo("处理成功", caseInfoPage); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.pageQueryAll]请求异常:" + e, e); return ReturnFailUtils.getRepInfo(); } } /** * 个人查询统计 * * @return Object * @url {ctx}/api/web/caseInfo/countPerson */ @GetMapping("/countPerson") public Object countPerson(@RequestParam(value = "certiNo") String certiNo) { try { CasePersonCountBO casePersonCountBO = service.countPerson(certiNo); return ReturnSucUtils.getRepInfo("处理成功", casePersonCountBO); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.pageQueryAll]请求异常:" + e, e); return ReturnFailUtils.getRepInfo(); } } /** * 概况统计 * * @return Object * @url {ctx}/api/web/caseInfo/overview */ @GetMapping(value = "overview") public Object overview() { try { Map terms = getParameterOverview(); return ReturnSucUtils.getRepInfo(service.overview(terms)); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.overview]请求异常:" + e, e); return ReturnFailUtils.getRepInfo(); } } /** * 综合查询-导出 * * @return Object * @url {ctx}/api/web/caseInfo/exportOverview */ @RequestMapping("/exportOverview") public void exportOverview(HttpServletResponse response) { try { Map terms = getParameterOverview(); CaseOverviewDTO overview = service.overview(terms); List childList = overview.getChildList(); childList.add(overview.getParent()); List excelList = new ArrayList<>(); if (ObjectUtils.isNotEmpty(childList)) { for (CaseOverviewDetailDTO child : childList) { CaseOverviewRoadExcelDTO caseOverviewExcelDTO = new CaseOverviewRoadExcelDTO(); BeanUtils.copyProperties(child, caseOverviewExcelDTO); excelList.add(caseOverviewExcelDTO); } } String fileName = "系统使用情况.xlsx"; response.setCharacterEncoding("UTF-8"); response.setHeader("content-Type", "application/vnd.ms-excel;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); ServletOutputStream outputStream = response.getOutputStream(); if ("2".equals(terms.get("areaType"))) { EasyExcel.write(outputStream, CaseOverviewAreaExcelDTO.class).sheet("系统使用情况").doWrite(excelList); } else { EasyExcel.write(outputStream, CaseOverviewRoadExcelDTO.class).sheet("系统使用情况").doWrite(excelList); } } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.exportOverview]请求异常:" + e, e); } } /** * 解纷态势 * * @return Object * @url {ctx}/api/web/caseInfo/ledger * @CurrentUser String userId */ @GetMapping("/ledger") public Object ledger(@CurrentUser String userId) { try { Map terms = getParameterAll(); // 查询类型 1-本系统,2-12345,3-人民调解,4-信访,5-劳动仲裁,6-非警务纠纷 String ledgerType = request.getParameter("ledgerType"); //所有表里面的数据都是本系统,其他的后续会新建表存储 if(ObjectUtils.isNotEmpty(ledgerType) && !"1".equals(ledgerType)){ terms.put("canal", "-1"); } return ReturnSucUtils.getRepInfo("处理成功", service.ledger(terms, userId, ledgerType)); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.ledger]请求异常:" + e, e); return ReturnFailUtils.getRepInfo(); } } /** * 解纷态势 * * @return Object * @url {ctx}/api/web/caseInfo/ledgerCount * @CurrentUser String userId */ @GetMapping("/ledgerCount") public Object ledgerCount(@CurrentUser String userId) { try { Map terms = getParameterAll(); // 查询类型 1-本系统,2-12345,3-人民调解,4-信访,5-劳动仲裁,6-非警务纠纷 String ledgerType = request.getParameter("ledgerType"); //所有表里面的数据都是本系统,其他的后续会新建表存储 if(ObjectUtils.isNotEmpty(ledgerType) && !"1".equals(ledgerType)){ terms.put("canal", "-1"); } return ReturnSucUtils.getRepInfo("处理成功", service.ledgerCount(terms, userId)); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.ledger]请求异常:" + e, e); return ReturnFailUtils.getRepInfo(); } } /** * 查询重复事项 * @url {ctx}/api/web/caseInfo/listRepeatCase * @param caseId 案件编号 * @param userId 登录用户 * @return Object */ @GetMapping("/listRepeatCase") public Object listRepeatCase( @RequestParam(value = "caseId") String caseId, @CurrentUser String userId) { try { return ReturnSucUtils.getRepInfo(caseRepeatService.listRepeatCase(caseId)); } catch (Exception e) { log.error("Controller接口[CaseInfoWebController.listRepeatCase]请求异常:" + e, e); return ReturnFailUtils.getRepInfo(); } } /** * * 协同推送-网格推送案件入库 * @param registerSaveDTO 实体对象 * @url {ctx}/api/web/caseInfo/gridCaseRegister */ @PostMapping("/gridCaseRegister") public Object gridCaseRegister(@RequestBody RegisterSaveDTO registerSaveDTO) { try { String caseId = service.gridCaseRegister(registerSaveDTO); return ReturnSucUtils.getRepInfo(caseId); } catch (Exception e) { return ReturnFailUtils.getRepInfo(e.getMessage()); } } }