dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/UserLoginDTO.java
@@ -36,6 +36,10 @@ * 用户单位 */ private String unit; /** * 用户单位类型 */ private int unitType; /** * 用户部门 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtAccountService.java
@@ -262,7 +262,8 @@ CtUnit ctUnit = ctUnitService.getById(ctUser.getUnitId()); if (ObjectUtils.isNotEmpty(ctUnit)) { if (ctUnit.getUnitGrade() == UserBaseConsts.UNIT_GRADE_3 && ctUnit.getUnitType() == UserBaseConsts.UNIT_TYPE_102) { userLoginDTO.setUnit(ctUnit.getUnitDes()); userLoginDTO.setUnit(ctUnit.getUnitName()); userLoginDTO.setUnitType(ctUnit.getUnitType()); // CtUnit parentCtUnit = ctUnitService.getById(ctUnit.getParentId()); // if (ObjectUtils.isNotEmpty(parentCtUnit)) {1 // userLoginDTO.setUnit(parentCtUnit.getUnitName()); @@ -271,6 +272,7 @@ // } } else { userLoginDTO.setUnit(ctUnit.getUnitName()); userLoginDTO.setUnitType(ctUnit.getUnitType()); } } else { userLoginDTO.setUnit(ctUser.getUnitName()); @@ -578,6 +580,7 @@ log.info("xsdctUnit:{}", ctUnit); ctUnitService.saveCtUnit(ctUnit); userLoginDTO.setUnit(ctUnit.getUnitName()); userLoginDTO.setUnitType(ctUnit.getUnitType()); ctUser.setUnitName(ctUnit.getUnitName()); ctUser.setUnitId(ctUnit.getId()); ctUserService.updateCtUser(ctUser); @@ -639,6 +642,10 @@ userLoginDTO.setUserId(ctUser.getId()); userLoginDTO.setTrueName(ctUser.getTrueName()); userLoginDTO.setUnit(ctUser.getUnitName()); CtUnit byId = ctUnitService.getById(ctUser.getUnitId()); if (byId != null) { userLoginDTO.setUnitType(byId.getUnitType()); } userLoginDTO.setDept(ctUser.getDeptName()); userLoginDTO.setPhone(ctUser.getMobile()); userLoginDTO.setCustId(ctUser.getCustId()); dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java
@@ -179,6 +179,12 @@ terms.put("systemSource", systemSource); } //市民编码 String cityCode = request.getParameter("cityCode"); if (StringUtils.isNotBlank(cityCode)) { terms.put("cityCode", cityCode); } String peopleNum = request.getParameter("peopleNum"); if (StringUtils.isNotBlank(peopleNum)) { String[] split = peopleNum.split("-"); @@ -858,7 +864,7 @@ String areaType = request.getParameter("areaType"); terms.put("areaType", areaType); String unitGrades = request.getParameter("unitGrades"); if(ObjectUtils.isNotEmpty(unitGrades)){ if (ObjectUtils.isNotEmpty(unitGrades)) { String[] split = unitGrades.split(","); List<String> unitGradeList = new ArrayList<>(); for (String s : split) { @@ -868,7 +874,7 @@ } //统计条件 resolveType 1-化解中,2-已结案,3-不予受理 String resolveType = request.getParameter("resolveType"); if(ObjectUtils.isNotEmpty(unitGrades)){ if (ObjectUtils.isNotEmpty(unitGrades)) { terms.put("resolveType", resolveType); } @@ -921,7 +927,7 @@ Map<String, Object> terms = getParameterAll(); String createStart = request.getParameter("createStart"); String createEnd = request.getParameter("createEnd"); if(ObjectUtils.isEmpty(createStart) || ObjectUtils.isEmpty(createEnd)){ if (ObjectUtils.isEmpty(createStart) || ObjectUtils.isEmpty(createEnd)) { return ReturnFailUtils.getRepInfo("请选择登记时间区间"); } //计算两个时间的天数 @@ -929,7 +935,7 @@ LocalDate date1 = LocalDate.parse(createStart, formatter); LocalDate date2 = LocalDate.parse(createEnd, formatter); long daysBetween = ChronoUnit.DAYS.between(date1, date2); if(daysBetween > 366){ if (daysBetween > 366) { return ReturnFailUtils.getRepInfo("选择登记时间区间不能大于1年"); } @@ -945,47 +951,47 @@ CaseInfoWeExcelDTO caseInfoWeExcelDTO = new CaseInfoWeExcelDTO(); BeanUtils.copyProperties(casePageDTO, caseInfoWeExcelDTO); caseInfoWeExcelDTO.setSysSource("本系统"); Map<String,String> personMap = new HashMap<>(); Map<String, String> personMap = new HashMap<>(); //申请人 if(ObjectUtils.isNotEmpty(casePageDTO.getPlaintiffList())){ if (ObjectUtils.isNotEmpty(casePageDTO.getPlaintiffList())) { StringBuffer sb = new StringBuffer(); for (CasePersonWeDTO casePersonWeDTO : casePageDTO.getPlaintiffList()) { if(ObjectUtils.isNotEmpty(casePersonWeDTO.getExtreme()) && casePersonWeDTO.getExtreme().equals(1)){ 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())){ if (CaseBaseConstsEnum.PERSON_CLASS_1.getIndex().equals(casePersonWeDTO.getPerClass())) { sb.append(casePersonWeDTO.getTrueName()); if(ObjectUtils.isNotEmpty(casePersonWeDTO.getCertiNo())){ if (ObjectUtils.isNotEmpty(casePersonWeDTO.getCertiNo())) { sb.append("(").append(casePersonWeDTO.getCertiNo()).append(")"); } sb.append("、"); }else{ } else { sb.append(casePersonWeDTO.getTrueName()); if(ObjectUtils.isNotEmpty(casePersonWeDTO.getOrgaCode())){ if (ObjectUtils.isNotEmpty(casePersonWeDTO.getOrgaCode())) { sb.append("(").append(casePersonWeDTO.getOrgaCode()).append(")"); } sb.append("、"); } } //申请代理人 if(ObjectUtils.isNotEmpty(casePageDTO.getAgentList())){ 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())){ if (ObjectUtils.isNotEmpty(caseAgentWeDTO.getCertiNo())) { sb.append(caseAgentWeDTO.getCertiNo()).append(","); } sb.append("代理对象:"); if(ObjectUtils.isNotEmpty(personMap.get(caseAgentWeDTO.getPersonId()))){ if (ObjectUtils.isNotEmpty(personMap.get(caseAgentWeDTO.getPersonId()))) { String[] split = caseAgentWeDTO.getPersonId().split(","); Boolean isfrist = true; for (String personId : split) { if(isfrist){ if (isfrist) { sb.append(personMap.get(personId)); isfrist = false; }else{ } else { sb.append(",").append(personMap.get(personId)); } } @@ -997,42 +1003,42 @@ caseInfoWeExcelDTO.setPlaintiffs(sb.substring(0, sb.length() - 1)); } //被申请人 if(ObjectUtils.isNotEmpty(casePageDTO.getDefendantList())){ 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())){ if (CaseBaseConstsEnum.PERSON_CLASS_1.getIndex().equals(casePersonWeDTO.getPerClass())) { sb.append(casePersonWeDTO.getTrueName()); if(ObjectUtils.isNotEmpty(casePersonWeDTO.getCertiNo())){ if (ObjectUtils.isNotEmpty(casePersonWeDTO.getCertiNo())) { sb.append("(").append(casePersonWeDTO.getCertiNo()).append(")"); } sb.append("、"); }else{ } else { sb.append(casePersonWeDTO.getTrueName()); if(ObjectUtils.isNotEmpty(casePersonWeDTO.getOrgaCode())){ if (ObjectUtils.isNotEmpty(casePersonWeDTO.getOrgaCode())) { sb.append("(").append(casePersonWeDTO.getOrgaCode()).append(")"); } sb.append("、"); } } //被申请代理人 if(ObjectUtils.isNotEmpty(casePageDTO.getAgentList())){ 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())){ if (ObjectUtils.isNotEmpty(caseAgentWeDTO.getCertiNo())) { sb.append(caseAgentWeDTO.getCertiNo()).append(","); } sb.append("代理对象:"); if(ObjectUtils.isNotEmpty(personMap.get(caseAgentWeDTO.getPersonId()))){ if (ObjectUtils.isNotEmpty(personMap.get(caseAgentWeDTO.getPersonId()))) { String[] split = caseAgentWeDTO.getPersonId().split(","); Boolean isfrist = true; for (String personId : split) { if(isfrist){ if (isfrist) { sb.append(personMap.get(personId)); isfrist = false; }else{ } else { sb.append(",").append(personMap.get(personId)); } } @@ -1047,10 +1053,10 @@ 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.setPeopleNum(casePageDTO.getPeopleNum() + ""); caseInfoWeExcelDTO.setAmount(casePageDTO.getAmount() + ""); caseInfoWeExcelDTO.setExtreme(extreme); if(ObjectUtils.isNotEmpty(casePageDTO.getMajorStatus())){ if (ObjectUtils.isNotEmpty(casePageDTO.getMajorStatus())) { switch (casePageDTO.getMajorStatus()) { case 1: caseInfoWeExcelDTO.setMajorStatus("是"); @@ -1060,7 +1066,7 @@ break; } } caseInfoWeExcelDTO.setSort(i+""); caseInfoWeExcelDTO.setSort(i + ""); i++; excelList.add(caseInfoWeExcelDTO); } @@ -1132,13 +1138,13 @@ Map<String, Object> terms = getParameterAll(); CaseStatisticsBaseDTO statistics = service.statistics(terms, null); List<CaseInfoWeAreaExcelDTO> excelList = new ArrayList<>(); if(ObjectUtils.isNotEmpty(statistics.getAreaList())){ 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()); caseInfoWeAreaExcelDTO.setSort(i + ""); caseInfoWeAreaExcelDTO.setFinishNUm(caseStatisticsAreaDTO.getResolveNum() + caseStatisticsAreaDTO.getUnResolveNum()); excelList.add(caseInfoWeAreaExcelDTO); i++; } @@ -1331,7 +1337,7 @@ String ledgerType = request.getParameter("ledgerType"); //所有表里面的数据都是本系统,其他的后续会新建表存储 if(ObjectUtils.isNotEmpty(ledgerType) && !"1".equals(ledgerType)){ if (ObjectUtils.isNotEmpty(ledgerType) && !"1".equals(ledgerType)) { terms.put("canal", "-1"); } return ReturnSucUtils.getRepInfo("处理成功", service.ledger(terms, userId, ledgerType)); @@ -1356,7 +1362,7 @@ String ledgerType = request.getParameter("ledgerType"); //所有表里面的数据都是本系统,其他的后续会新建表存储 if(ObjectUtils.isNotEmpty(ledgerType) && !"1".equals(ledgerType)){ if (ObjectUtils.isNotEmpty(ledgerType) && !"1".equals(ledgerType)) { terms.put("canal", "-1"); } return ReturnSucUtils.getRepInfo("处理成功", service.ledgerCount(terms, userId)); @@ -1368,13 +1374,14 @@ /** * 查询重复事项 * @url {ctx}/api/web/caseInfo/listRepeatCase * * @param caseId 案件编号 * @param userId 登录用户 * @return Object * @url {ctx}/api/web/caseInfo/listRepeatCase */ @GetMapping("/listRepeatCase") public Object listRepeatCase( @RequestParam(value = "caseId") String caseId, @CurrentUser String userId) { public Object listRepeatCase(@RequestParam(value = "caseId") String caseId, @CurrentUser String userId) { try { return ReturnSucUtils.getRepInfo(caseRepeatService.listRepeatCase(caseId)); } catch (Exception e) { @@ -1384,8 +1391,8 @@ } /** * * 协同推送-网格推送案件入库 * * @param registerSaveDTO 实体对象 * @url {ctx}/api/web/caseInfo/gridCaseRegister */ @@ -1398,4 +1405,9 @@ return ReturnFailUtils.getRepInfo(e.getMessage()); } } @GetMapping("/getCaseNo") public R<String> getCaseNo(@CurrentUser String userId) { return service.createCaseNo(userId); } } dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml
@@ -139,7 +139,10 @@ <!-- 表 --> <sql id='table-name'>dyh_case_info</sql> <sql id="column-part-all"> a.id, a . id , a.status, a.status_name, a.canal, @@ -187,7 +190,8 @@ </sql> <!-- 字段 --> <sql id="column-part"> id, id , case_title, case_ref, case_level, @@ -392,7 +396,8 @@ </if> <if test="terms.caseTypeFirstList != null and terms.caseTypeFirstList.size > 0"> and a.case_type_first in <foreach collection="terms.caseTypeFirstList" item="caseTypeFirst" index="index" open="(" separator="," close=")"> <foreach collection="terms.caseTypeFirstList" item="caseTypeFirst" index="index" open="(" separator="," close=")"> #{caseTypeFirst} </foreach> </if> @@ -415,7 +420,8 @@ and (b.belong_unit_id is not null and c.city = #{terms.queCity} <if test="terms.unitGrades != null and terms.unitGrades.size > 0"> and c.unit_grade in <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")"> <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")"> #{unitGrade} </foreach> </if> @@ -430,7 +436,8 @@ close=")"> #{unitGrade} </foreach> </if>) </if> ) or (b.belong_unit_id is null and a.que_city = #{terms.queCity}) ) </if> @@ -438,7 +445,8 @@ and (b.belong_unit_id is not null and c.area = #{terms.queArea} <if test="terms.unitGrades != null and terms.unitGrades.size > 0"> and c.unit_grade in <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")"> <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")"> #{unitGrade} </foreach> </if> @@ -448,7 +456,8 @@ and ((b.belong_unit_id is not null and c.area = #{terms.queArea} <if test="terms.unitGrades != null and terms.unitGrades.size > 0"> and c.unit_grade in <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")"> <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")"> #{unitGrade} </foreach> </if> @@ -461,7 +470,8 @@ and (b.belong_unit_id is not null and c.road = #{terms.queRoad} <if test="terms.unitGrades != null and terms.unitGrades.size > 0"> and c.unit_grade in <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")"> <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")"> #{unitGrade} </foreach> </if> @@ -472,7 +482,8 @@ and ((b.belong_unit_id is not null and c.road = #{terms.queRoad} <if test="terms.unitGrades != null and terms.unitGrades.size > 0"> and c.unit_grade in <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")"> <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")"> #{unitGrade} </foreach> </if> @@ -483,7 +494,8 @@ and (b.belong_unit_id is not null and c.village = #{terms.queVillage} <if test="terms.unitGrades != null and terms.unitGrades.size > 0"> and c.unit_grade in <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")"> <foreach collection="terms.unitGrades" item="unitGrade" index="index" open="(" separator="," close=")"> #{unitGrade} </foreach> </if> @@ -576,6 +588,9 @@ <if test="terms.fileStart != null and terms.fileStart !='' and terms.fileEnd != null and terms.fileEnd !=''"> and (DATE_FORMAT(b.file_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{terms.fileStart} and DATE_FORMAT(b.file_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{terms.fileEnd}) </if> <if test="terms.cityCode != null and terms.cityCode !=''"> and e.citizen_event_code = #{terms.cityCode} </if> </where> </if> @@ -962,7 +977,8 @@ <select id="pageTermsCaseRegister" resultType="cn.huge.module.cases.domain.dto.CaseRegisterDTO"> SELECT t1.id as caseId,t1.create_time as createTime,t1.input_user_name as inputUserName,t1.status_name as statusName,t1.case_level as t1.id as caseId,t1.create_time as createTime,t1.input_user_name as inputUserName,t1.status_name as statusName,t1.case_level as caseLevel,t1.canal_name as canalName, t1.case_type_first_name as caseTypeFirstName,t1.case_type_name as caseTypeName,t1.plaintiffs as plaintiffs,t1.defendants as defendants,t2.medi_result_name as mediResultName, @@ -986,7 +1002,7 @@ </select> <select id="countTermsCaseRegister" resultType="java.lang.Long" > <select id="countTermsCaseRegister" resultType="java.lang.Long"> SELECT count(t1.id) FROM @@ -1001,6 +1017,9 @@ from dyh_case_info a LEFT JOIN dyh_case_info_unfold b on a.id = b.id LEFT JOIN dyh_ct_unit c ON b.belong_unit_id = c.id <if test="terms.cityCode != null and terms.cityCode !=''"> left join dyh_th_grid_citizen_event e on e.case_id = a.id </if> <include refid="where-part-all"/> </select> @@ -1012,6 +1031,9 @@ dyh_case_info a LEFT JOIN dyh_case_info_unfold b on a.id = b.id LEFT JOIN dyh_ct_unit c ON b.belong_unit_id = c.id left join (select id ,case_id from dyh_case_task group by case_id) d on a.id = d.case_id <if test="terms.cityCode != null and terms.cityCode !=''"> left join dyh_th_grid_citizen_event e on e.case_id = a.id </if> <include refid="where-part-all"/> <if test="page.sort != null"> <foreach collection="page.sort" item="s" index="index" separator="," open="order by "> @@ -1066,16 +1088,20 @@ <select id="statisticsArea" resultType="cn.huge.module.cases.domain.dto.CaseStatisticsAreaDTO"> SELECT <if test='terms.areaType == null or terms.areaType =="1"'> IF(c.city is null,a.que_city,c.city) as areaCode,IF(c.city_name is null,a.que_city_name,c.city_name) as areaName, IF(c.city is null,a.que_city,c.city) as areaCode,IF(c.city_name is null,a.que_city_name,c.city_name) as areaName, </if> <if test='terms.areaType != null and terms.areaType =="2"'> IF(c.area is null,a.que_area,c.area) as areaCode,IF(c.area_name is null,a.que_area_name,c.area_name) as areaName, IF(c.area is null,a.que_area,c.area) as areaCode,IF(c.area_name is null,a.que_area_name,c.area_name) as areaName, </if> <if test='terms.areaType != null and terms.areaType =="3"'> IF(c.road is null,a.que_road,c.road) as areaCode,IF(c.road_name is null,a.que_road_name,c.road_name) as areaName, IF(c.road is null,a.que_road,c.road) as areaCode,IF(c.road_name is null,a.que_road_name,c.road_name) as areaName, </if> <if test='terms.areaType != null and terms.areaType =="4"'> IF(c.village is null,a.que_village,c.village) as areaCode,IF(c.village_name is null,a.que_village_name,c.village_name) as areaName, IF(c.village is null,a.que_village,c.village) as areaCode,IF(c.village_name is null,a.que_village_name,c.village_name) as areaName, </if> c.unit_grade as unitGrade, count(1) as caseNum, @@ -1121,7 +1147,7 @@ sum(case when a.case_level = 2 then 1 else 0 end) as twoLevelNum, sum(case when a.case_level = 3 then 1 else 0 end) as threeLevelNum, sum(case when a.info_process = 2 then 1 when a.info_process = 1 then 1 else 0 end) as processNum, when a.info_process = 1 then 1 else 0 end) as processNum, sum(case when a.info_process = 3 and b.medi_result = '22_00025-1' then 1 else 0 end) as finishNum, sum(case when a.info_process = 4 then 1 else 0 end) as rejectNum, sum(case when a.info_process = 3 and b.medi_result = '22_00025-2' then 1 else 0 end) as failNum, @@ -1278,14 +1304,20 @@ <if test='terms.areaType != null and terms.areaType =="4"'> ifnull(t2.village_name, '本级') as areaName,ifnull(t2.village, '1') as areaCode, </if> count(distinct case when (t1.node_id = 'DSRPJ' or t1.node_id = 'JAGD' or t1.node_id = 'ZJ_DFP' or t1.node_id = 'QJ_DFP' or t1.node_id = 'SJ_DFP' or t1.node_id = 'DFP' or t1.node_id = 'ZJ_DSL' or t1.node_id = 'QJ_DSL' or t1.node_id = 'SJ_DSL' or t1.node_id = 'DSL' or t1.node_id = 'QJ_SBSH' or t1.node_id = 'SJ_SBSH' or t1.node_id = 'HTSH' or t1.node_id = 'ZJ_HTSH' count(distinct case when (t1.node_id = 'DSRPJ' or t1.node_id = 'JAGD' or t1.node_id = 'ZJ_DFP' or t1.node_id = 'QJ_DFP' or t1.node_id = 'SJ_DFP' or t1.node_id = 'DFP' or t1.node_id = 'ZJ_DSL' or t1.node_id = 'QJ_DSL' or t1.node_id = 'SJ_DSL' or t1.node_id = 'DSL' or t1.node_id = 'QJ_SBSH' or t1.node_id = 'SJ_SBSH' or t1.node_id = 'HTSH' or t1.node_id = 'ZJ_HTSH' or t1.node_id = 'QJ_HTSH' or t1.node_id = 'SJ_HTSH')then t1.id end) as flowAllNum, count(distinct case when (t1.node_id = 'ZJ_DFP' or t1.node_id = 'QJ_DFP' or t1.node_id = 'SJ_DFP' or t1.node_id = 'DFP') then t1.id end) as flowJbNum, count(distinct case when (t1.node_id = 'ZJ_DSL' or t1.node_id = 'QJ_DSL' or t1.node_id = 'SJ_DSL' or t1.node_id = 'DSL') then t1.id end) as flowSlNum, count(distinct case when (t1.node_id = 'ZJ_DFP' or t1.node_id = 'QJ_DFP' or t1.node_id = 'SJ_DFP' or t1.node_id = 'DFP') then t1.id end) as flowJbNum, count(distinct case when (t1.node_id = 'ZJ_DSL' or t1.node_id = 'QJ_DSL' or t1.node_id = 'SJ_DSL' or t1.node_id = 'DSL') then t1.id end) as flowSlNum, count(distinct case when (t1.node_id = 'QJ_SBSH' or t1.node_id = 'SJ_SBSH') then t1.id end) as flowSbNum, count(distinct case when (t1.node_id = 'HTSH' or t1.node_id = 'ZJ_HTSH' or t1.node_id = 'QJ_HTSH' or t1.node_id = 'SJ_HTSH') then t1.id end) as flowHtNum, count(distinct case when (t1.node_id = 'HTSH' or t1.node_id = 'ZJ_HTSH' or t1.node_id = 'QJ_HTSH' or t1.node_id = 'SJ_HTSH') then t1.id end) as flowHtNum, count(distinct case when (t1.node_id = 'DSRPJ' or t1.node_id = 'JAGD') then t1.id end) as flowBjNum from (SELECT case_id, node_id, handle_time, create_time, cande_unit_id, id, status @@ -1296,9 +1328,11 @@ where status = 2 or (status = 1 and (node_id = 'DSRPJ' or node_id = 'JAGD')) ) s WHERE rn = 1 AND ((DATE_FORMAT(s.handle_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.startDate} and DATE_FORMAT(s.handle_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.endDate}) OR DATE_FORMAT(s.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.startDate} and DATE_FORMAT(s.handle_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.endDate}) OR DATE_FORMAT(s.create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.startDate} and DATE_FORMAT(s.create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.endDate}) group by s.case_id) t1 left join dyh_ct_unit t2 on (t1.cande_unit_id = t2.id) or (t1.cande_unit_id is null and t2.id = (select mediate_unit_id from dyh_case_info_unfold where id = t1.case_id)) left join dyh_ct_unit t2 on (t1.cande_unit_id = t2.id) or (t1.cande_unit_id is null and t2.id = (select mediate_unit_id from dyh_case_info_unfold where id = t1.case_id)) <where> <if test="terms.queCity != null and terms.queCity !=''"> and t2.city = #{terms.queCity} @@ -1362,7 +1396,8 @@ </if> count(distinct case when t2.info_process = 1 or t2.info_process = 2 then t2.id end) as sourceHjzNum, count(distinct case when t2.info_process = 3 and t3.medi_result = '22_00025-1' then t2.id end) as sourceHjcgNum, count(distinct case when t2.info_process = 3 and t3.medi_result = '22_00025-2' then t2.id end) as sourceHjbcgNum, count(distinct case when t2.info_process = 3 and t3.medi_result = '22_00025-2' then t2.id end) as sourceHjbcgNum, count(distinct case when t2.info_process = 4 then t2.id end) as sourceByslNum from (SELECT case_id, node_id, create_time, cande_unit_id, id, status,handle_result FROM ( @@ -1370,7 +1405,8 @@ ROW_NUMBER() OVER (PARTITION BY case_id ORDER BY node_type desc, create_time DESC) AS rn FROM dyh_case_task where node_id != 'DSRPJ' and delete_status = 0 ) s WHERE rn = 1 group by s.case_id)t1 left join dyh_case_info t2 on t2.id = t1.case_id left join dyh_case_info_unfold t3 on t2.id = t3.id WHERE rn = 1 group by s.case_id)t1 left join dyh_case_info t2 on t2.id = t1.case_id left join dyh_case_info_unfold t3 on t2.id = t3.id left join dyh_ct_unit t4 on t3.belong_unit_id = t4.id <where> and t2.delete_status = 0 and t4.delete_status = 0 @@ -1453,21 +1489,24 @@ </select> <update id="deleteCaseById"> update dyh_case_info set delete_status = 1,update_time = #{updateTime} where id = #{id} update dyh_case_info set delete_status = 1, update_time = #{updateTime} where id = #{id} </update> <!-- 统计指定canal值下按canal_second分组的案件数量 --> <select id="countByCanalSecond" resultType="cn.huge.module.cases.domain.dto.CaseStatisticsTypeDTO"> SELECT a.canal_second as caseType, COUNT(*) as caseNum a.canal_second as caseType, COUNT(*) as caseNum FROM dyh_case_info a inner JOIN dyh_case_info_unfold b on a.id = b.id LEFT JOIN dyh_ct_unit c ON b.belong_unit_id = c.id <include refid="where-part-all"/> GROUP BY a.canal_second a.canal_second </select> <!-- 统计分析(基础) --> dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseInfoDTO.java
@@ -61,5 +61,7 @@ */ private String tcqk; private String cityCode; } dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
@@ -1,5 +1,6 @@ package cn.huge.module.cases.service; import cn.huge.base.common.bo.R; import cn.huge.base.common.exception.ServiceException; import cn.huge.base.common.utils.*; import cn.huge.module.casebook.consts.ByCaseTypeEnum; @@ -119,6 +120,8 @@ private CaseWindupApplyService caseWindupApplyService; @Autowired private CasePersonService casePersonService; @Autowired private ThGridCitizenEventService thGridCitizenEventService; /** @@ -311,13 +314,13 @@ generateQrCodeRequestVo.setBusinessSource("02"); generateQrCodeRequestVo.setGenerateUnifiedCode(true); generateQrCodeRequestVo.setInfoSource("03"); log.info("xsdgridCode:{}",registerSaveDTO.getQueArea()); log.info("xsdgridCode:{}", registerSaveDTO.getQueArea()); String area = this.formatGridCode(registerSaveDTO.getQueArea()); log.info("xsdgridCode:{}",area); log.info("xsdgridCode:{}", area); generateQrCodeRequestVo.setGridCode(area); caseInfo.setCaseRef(sysClient.getCaseRefByGenerateQrCode(generateQrCodeRequestVo)); // 获取调解案号 caseInfo.setCaseNo(utilsClient.createCaseNo(ctUnitDTO.getArea())); // caseInfo.setCaseNo(utilsClient.createCaseNo(ctUnitDTO.getArea())); caseInfo.setVisitWay(CaseBaseConstsEnum.getVisitWayByCanal(caseInfo.getCanal()).getIndex()); caseInfo.setVisitWayName(CaseBaseConstsEnum.getVisitWayByCanal(caseInfo.getCanal()).getDes()); if (caseInfo.getCanal().equals(CaseBaseConstsEnum.CASE_CANAL_3.getIndex())) { @@ -607,6 +610,10 @@ caseInfoDTO.setIsRisk(caseInfoUnfold.getIsRisk()); caseInfoDTO.setTcqk(caseInfoUnfold.getTcqk()); } ThGridCitizenEvent thGridCitizenEvent = thGridCitizenEventService.getByCaseId(caseId); if (thGridCitizenEvent != null) { caseInfoDTO.setCityCode(thGridCitizenEvent.getCitizenEventCode()); } } else { CasebookInfo casebookInfo = casebookInfoService.getById(caseId); if (ObjectUtils.isNotEmpty(casebookInfo)) { @@ -824,7 +831,7 @@ generateQrCodeRequestVo.setGridCode(area); caseInfo.setCaseRef(sysClient.getCaseRefByGenerateQrCode(generateQrCodeRequestVo)); // 生产调解案号 caseInfo.setCaseNo(utilsClient.createCaseNo(caseInfo.getQueArea())); // caseInfo.setCaseNo(utilsClient.createCaseNo(caseInfo.getQueArea())); log.info("xsdcaseInfo:{}", caseInfo); caseInfoUnfold.setId(caseInfo.getId()); caseInfoUnfold.setCreateTime(nowDate); @@ -2271,7 +2278,7 @@ return caseOverviewDetailDTOs; } public CaseStatisticsBaseDTO ledger(Map<String, Object> terms, String userId,String ledgerType) throws IOException { public CaseStatisticsBaseDTO ledger(Map<String, Object> terms, String userId, String ledgerType) throws IOException { terms.put("statistics", "1"); CtUnitDTO ctUnitDTO = null; @@ -2355,7 +2362,7 @@ List<CaseStatisticsAreaDTO> areaList = new ArrayList<>(); //本系统或者全部的时候才去查询数据 if(ObjectUtils.isEmpty(ledgerType) || "1".equals(ledgerType)){ if (ObjectUtils.isEmpty(ledgerType) || "1".equals(ledgerType)) { caseStatisticsBaseDTO = statisticsProcess(terms); //区域数据统计 @@ -2695,7 +2702,7 @@ } // 获取调解案号 caseInfo.setCaseNo(utilsClient.createCaseNo(ctUnitDTO.getArea())); // caseInfo.setCaseNo(utilsClient.createCaseNo(ctUnitDTO.getArea())); caseInfo.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_4.getIndex()); caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_4.getDes()); if (StringUtils.isEmpty(caseInfo.getCanal())) { @@ -2770,4 +2777,9 @@ .insert(5, "-") .toString(); } public R<String> createCaseNo(String userId) { CtUnitDTO unitByUserId = custClient.getUnitByUserId(userId); return R.ok(utilsClient.createCaseNo(unitByUserId.getArea())); } } dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/ThGridCitizenEventService.java
@@ -1,6 +1,8 @@ package cn.huge.module.cases.service; import cn.huge.module.cases.domain.dto.CaseAndEventInfoDTO; import cn.huge.module.cases.domain.po.ThGridCitizenEvent; import org.apache.ibatis.annotations.Param; /** * @title: 市民工单事件表服务接口 @@ -18,4 +20,6 @@ * @return 整合后的案件和工单信息 */ CaseAndEventInfoDTO integrateCaseAndEventInfo(String caseId); ThGridCitizenEvent getByCaseId(String caseId); } dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/impl/ThGridCitizenEventServiceImpl.java
@@ -63,4 +63,9 @@ return dto; } @Override public ThGridCitizenEvent getByCaseId(String caseId) { return thGridCitizenEventMapper.getByCaseId(caseId); } } dyh-service/dyh-sys/src/main/java/cn/huge/module/ai/AiChatController.java
New file @@ -0,0 +1,109 @@ package cn.huge.module.ai; import cn.huge.base.common.bo.R; import cn.huge.base.common.utils.HttpClientUtils; import cn.huge.base.common.utils.ReturnFailUtils; import cn.huge.base.common.utils.ReturnSucUtils; import cn.huge.module.ai.domain.AiBodyDto; import cn.huge.module.ai.domain.AiRequestVo; import cn.huge.module.sy.domain.po.SyTimeLimit; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.net.http.HttpClient; import java.util.HashMap; import java.util.Map; @RestController @RequestMapping("/api/web/ai/chat") @Slf4j public class AiChatController { private String url = "http://10.202.1.102:9002/"; @PostMapping("/risk") public R<String> risk(@RequestBody AiRequestVo aiRequestVo) { String postUrl = url + "v1/workflows/run"; initHead("Bearer app-8ylvZOHf2fOgTGfe28MYtHDD"); String s = ""; try { s = HttpClientUtils.httpPostRaw(postUrl, JSON.toJSONString(aiRequestVo), initHead("Bearer app-8ylvZOHf2fOgTGfe28MYtHDD"), "utf-8"); } catch (Exception e) { throw new RuntimeException(e); } JSONObject object = JSONObject.parseObject(s); if (object != null) { JSONObject data = object.getJSONObject("data"); if (data != null) { JSONObject outputs = data.getJSONObject("outputs"); if (outputs != null) { JSONObject body = outputs.getJSONObject("body"); if (body != null) { return R.ok(body.getJSONObject("data").getString("is_risk_ai")); } } } } log.info("xsd:{}", object); return R.ok("0"); } @PostMapping("/chat") public R<AiBodyDto> chat(@RequestBody AiRequestVo aiRequestVo) { String postUrl = url + "v1/chat-messages"; String s = ""; AiBodyDto aiBodyDto = new AiBodyDto(); try { s = HttpClientUtils.httpPostRaw(postUrl, JSON.toJSONString(aiRequestVo), initHead("Bearer app-8naZjGyj8a129EuUP2Jb6n7T"), "utf-8"); } catch (Exception e) { throw new RuntimeException(e); } JSONObject object = JSONObject.parseObject(s); if (object != null) { String conversation_id = object.getString("conversation_id"); String answer = object.getString("answer"); aiBodyDto.setAnswer(answer); aiBodyDto.setConversationId(conversation_id); } log.info("xsd:{}", aiBodyDto); return R.ok(aiBodyDto); } @PostMapping("/strategy") public R<AiBodyDto> strategy(@RequestBody AiRequestVo aiRequestVo) { String postUrl = url + "v1/workflows/run"; String s = ""; AiBodyDto aiBodyDto = new AiBodyDto(); try { s = HttpClientUtils.httpPostRaw(postUrl, JSON.toJSONString(aiRequestVo), initHead("Bearer app-WMriHFsAozx0FECkopW2Z6X1"), "utf-8"); } catch (Exception e) { throw new RuntimeException(e); } JSONObject object = JSONObject.parseObject(s); if (object != null) { JSONObject data = object.getJSONObject("data"); if (data != null) { JSONObject outputs = data.getJSONObject("outputs"); if (outputs != null) { String text = outputs.getString("text"); aiBodyDto.setAnswer(text); } } } log.info("xsd:{}", aiBodyDto); return R.ok(aiBodyDto); } private Map<String, String> initHead(String token) { Map<String, String> head = new HashMap<>(); head.put("Content-Type", "application/json"); head.put("Authorization", token); return head; } } dyh-service/dyh-sys/src/main/java/cn/huge/module/ai/domain/AiBodyDto.java
New file @@ -0,0 +1,10 @@ package cn.huge.module.ai.domain; import lombok.Data; @Data public class AiBodyDto { private String response_mode; private String conversationId; private String answer; } dyh-service/dyh-sys/src/main/java/cn/huge/module/ai/domain/AiRequestVo.java
New file @@ -0,0 +1,17 @@ package cn.huge.module.ai.domain; import lombok.Data; @Data public class AiRequestVo { private Inputs inputs; private String response_mode; private String user; private String query; private String conversation_id; @Data public static class Inputs{ private String caseId; private String caseText; } }