From 547e687dbdda61bea74762b2c2c2fc1b6c712850 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Thu, 18 Jul 2024 17:15:35 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=A1=88=E4=BB=B6=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ModelCaseController.java | 10 +- .../supervision/police/dto/ModelCaseDTO.java | 98 +++++++++++++++++++ .../police/service/ModelCaseService.java | 4 +- .../service/impl/ModelCaseServiceImpl.java | 69 ++++++++----- 4 files changed, 154 insertions(+), 27 deletions(-) create mode 100644 src/main/java/com/supervision/police/dto/ModelCaseDTO.java diff --git a/src/main/java/com/supervision/police/controller/ModelCaseController.java b/src/main/java/com/supervision/police/controller/ModelCaseController.java index 88ad97a..2e52692 100644 --- a/src/main/java/com/supervision/police/controller/ModelCaseController.java +++ b/src/main/java/com/supervision/police/controller/ModelCaseController.java @@ -1,8 +1,10 @@ package com.supervision.police.controller; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.supervision.common.domain.R; import com.supervision.police.domain.CasePerson; import com.supervision.police.domain.ModelCase; +import com.supervision.police.dto.ModelCaseDTO; import com.supervision.police.service.ModelCaseService; import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; @@ -21,17 +23,19 @@ public class ModelCaseController { private ModelCaseService modelCaseService; /** - * 查询列表 + * 查询案件列表 * @param modelCase * @param page * @param size * @return */ + @Operation(summary = "查询案件列表") @PostMapping("/queryList") - public R queryList(@RequestBody ModelCase modelCase, + public R> queryList(@RequestBody ModelCase modelCase, @RequestParam(required = false, defaultValue = "1") Integer page, @RequestParam(required = false, defaultValue = "20") Integer size) { - return modelCaseService.queryList(modelCase, page, size); + IPage modelCaseDTOIPage = modelCaseService.queryList(modelCase, page, size); + return R.ok(modelCaseDTOIPage); } /** diff --git a/src/main/java/com/supervision/police/dto/ModelCaseDTO.java b/src/main/java/com/supervision/police/dto/ModelCaseDTO.java new file mode 100644 index 0000000..5dcb30e --- /dev/null +++ b/src/main/java/com/supervision/police/dto/ModelCaseDTO.java @@ -0,0 +1,98 @@ +package com.supervision.police.dto; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.supervision.police.domain.CasePerson; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +@Data +public class ModelCaseDTO { + + @Schema(description = "主键 案件id") + private String id; + + @Schema(description = "案件名称") + private String caseName; + + @Schema(description = "案件类型") + private String caseType; + + @Schema(description = "案件类型名") + private String caseTypeName; + + @Schema(description = "案件状态") + private String caseStatus; + + @Schema(description = "案件状态名") + private String caseStatusName; + + @Schema(description = "作案方式") + private String crimeMode; + + @Schema(description = "作案方式名") + private String crimeModeName; + + @Schema(description = "案件概述") + private String caseDetail; + + @Schema(description = "立案时间") + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date registerTime; + + @Schema(description = "受理时间") + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date acceptTime; + + @Schema(description = "案件行为人") + private CasePerson lawActor; + + @Schema(description = "案件当事人") + private List lawPartyList; + + @Schema(description = "认定结果") + private String identifyResult; + + @Schema(description = "认定结果名") + private String identifyResultName; + + @Schema(description = "综合得分") + private Integer totalScore; + + @Schema(description = "排序序号") + private Integer indexNum; + + @Schema(description = "更新开始时间") + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime updateStartTime; + + @Schema(description = "更新结束时间") + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime updateEndTime; + + @Schema(description = "数据状态") + private String dataStatus; + + @Schema(description = "案件编号") + private String caseNo; + + @Schema(description = "创建人ID") + private String createUserId; + + @Schema(description = "创建时间") + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateUserId; + + @Schema(description = "更新时间") + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/supervision/police/service/ModelCaseService.java b/src/main/java/com/supervision/police/service/ModelCaseService.java index 4a2634f..bdd112f 100644 --- a/src/main/java/com/supervision/police/service/ModelCaseService.java +++ b/src/main/java/com/supervision/police/service/ModelCaseService.java @@ -1,9 +1,11 @@ package com.supervision.police.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.supervision.common.domain.R; import com.supervision.police.domain.CasePerson; import com.supervision.police.domain.ModelCase; +import com.supervision.police.dto.ModelCaseDTO; import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -16,7 +18,7 @@ import java.util.List; */ public interface ModelCaseService extends IService { - R queryList(ModelCase modelCase, Integer page, Integer size); + IPage queryList(ModelCase modelCase, Integer page, Integer size); R checkCaseNo(String caseNo); diff --git a/src/main/java/com/supervision/police/service/impl/ModelCaseServiceImpl.java b/src/main/java/com/supervision/police/service/impl/ModelCaseServiceImpl.java index 2f08ad2..521a7ef 100644 --- a/src/main/java/com/supervision/police/service/impl/ModelCaseServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/ModelCaseServiceImpl.java @@ -1,5 +1,9 @@ package com.supervision.police.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -16,20 +20,20 @@ import com.supervision.police.domain.ComDictionary; import com.supervision.police.domain.ModelAtomicIndex; import com.supervision.police.dto.AtomicIndexDTO; import com.supervision.police.dto.IndexDetail; +import com.supervision.police.dto.ModelCaseDTO; import com.supervision.police.mapper.CasePersonMapper; import com.supervision.police.mapper.ModelCaseMapper; import com.supervision.police.domain.ModelCase; import com.supervision.police.service.ComDictionaryService; import com.supervision.police.service.ModelCaseService; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; -import javax.script.ScriptEngine; -import javax.script.ScriptEngineManager; -import javax.script.ScriptException; import java.io.IOException; import java.util.*; +import java.util.stream.Collectors; /** * 案件表(ModelCase)表服务实现类 @@ -37,17 +41,16 @@ import java.util.*; * @author qmy * @since 2024-07-02 14:51:27 */ +@Slf4j @Service +@RequiredArgsConstructor public class ModelCaseServiceImpl extends ServiceImpl implements ModelCaseService { - @Autowired - private ComDictionaryService comDictionaryService; + private final ComDictionaryService comDictionaryService; - @Autowired - private ModelCaseMapper modelCaseMapper; + private final ModelCaseMapper modelCaseMapper; - @Autowired - private CasePersonMapper casePersonMapper; + private final CasePersonMapper casePersonMapper; /** * 查询列表 @@ -57,26 +60,46 @@ public class ModelCaseServiceImpl extends ServiceImpl queryList(ModelCase modelCase, Integer page, Integer size) { - IPage iPage = new Page<>(page, size); - iPage = modelCaseMapper.selectAll(iPage, modelCase); - List records = iPage.getRecords(); + public IPage queryList(ModelCase modelCase, Integer page, Integer size) { + IPage modelCaseIPage = modelCaseMapper.selectAll(Page.of(page, size), modelCase); + + if (CollUtil.isEmpty(modelCaseIPage.getRecords())){ + return Page.of(page, size); + } + + List caseIdList = modelCaseIPage.getRecords().stream().map(ModelCase::getId).toList(); + + List casePersonList = casePersonMapper.selectList( + Wrappers.lambdaQuery(CasePerson.class).in(CasePerson::getCaseId, caseIdList)); + Map> persionMap = casePersonList.stream().collect( + Collectors.groupingBy(person-> StrUtil.equals(person.getRoleCode(), "1") ? "1" :"2")); List dicts = comDictionaryService.list(); - for (ModelCase mc : records) { - String[] caseTypes = mc.getCaseType().split(","); + + return modelCaseIPage.convert(modelCaseInfo -> { + ModelCaseDTO modelCaseDTO = BeanUtil.toBean(modelCaseInfo, ModelCaseDTO.class, CopyOptions.create().setIgnoreProperties("lawActor")); + String[] caseTypes = modelCaseDTO.getCaseType().split(","); List caseType = new ArrayList<>(); for (String type : caseTypes) { caseType.add(comDictionaryService.getName(dicts, "case_type", type)); } - mc.setCaseTypeName(StringUtils.join(caseType, ",")); - mc.setCaseStatusName(comDictionaryService.getName(dicts, "case_status", mc.getCaseStatus())); - mc.setCrimeModeName(comDictionaryService.getName(dicts, "crime_mode", mc.getCrimeMode())); - mc.setIdentifyResultName(comDictionaryService.getName(dicts, "identify_result", mc.getIdentifyResult())); - } - iPage.setRecords(records); - return R.ok(IPages.buildDataMap(iPage)); + modelCaseDTO.setCaseTypeName(StringUtils.join(caseType, ",")); + modelCaseDTO.setCaseStatusName(comDictionaryService.getName(dicts, "case_status", modelCaseDTO.getCaseStatus())); + modelCaseDTO.setCrimeModeName(comDictionaryService.getName(dicts, "crime_mode", modelCaseDTO.getCrimeMode())); + modelCaseDTO.setIdentifyResultName(comDictionaryService.getName(dicts, "identify_result", modelCaseDTO.getIdentifyResult())); + + modelCaseDTO.setLawActor(CollUtil.getFirst(persionMap.get("1"))); + modelCaseDTO.setLawPartyList(persionMap.get("2")); + return modelCaseDTO; + }); } + /** + * 行为人,当事人信息 + * @param lawActor + * @param lawParty + */ + record lawActorPartyPair(String lawActor, String lawParty){} + @Override public R checkCaseNo(String caseNo) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();