From 882f6a07d77bde88af3cf2f98a7b74a2f60da385 Mon Sep 17 00:00:00 2001 From: wany <13995595726@qq.com> Date: Tue, 27 Aug 2024 14:38:10 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A3=8E=E9=99=A9=E7=AE=A1=E6=8E=A7=E6=B8=85?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/RiskControlInfoController.java | 59 ++++++++++ .../xyt/mapper/RiskControlInfoMapper.java | 17 +++ .../project/xyt/model/RiskControlDictRel.java | 3 + .../service/RiskControlDictRelService.java | 50 ++++++++ .../xyt/service/RiskControlInfoService.java | 107 ++++++++++++++++++ 5 files changed, 236 insertions(+) create mode 100644 src/main/java/com/gunshi/project/xyt/controller/RiskControlInfoController.java create mode 100644 src/main/java/com/gunshi/project/xyt/service/RiskControlDictRelService.java create mode 100644 src/main/java/com/gunshi/project/xyt/service/RiskControlInfoService.java diff --git a/src/main/java/com/gunshi/project/xyt/controller/RiskControlInfoController.java b/src/main/java/com/gunshi/project/xyt/controller/RiskControlInfoController.java new file mode 100644 index 0000000..c67a25d --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/controller/RiskControlInfoController.java @@ -0,0 +1,59 @@ +package com.gunshi.project.xyt.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.gunshi.core.result.R; +import com.gunshi.project.xyt.entity.so.AttCctvBasePage; +import com.gunshi.project.xyt.model.RiskControlInfo; +import com.gunshi.project.xyt.service.RiskControlInfoService; +import com.gunshi.project.xyt.validate.markers.Insert; +import com.gunshi.project.xyt.validate.markers.Update; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +/** + * 描述: 风险管控清单 + * author: xusan + * date: 2024-08-22 14:17:28 + */ +@Tag(name = "风险管控清单") +@RestController +@RequestMapping(value="/risk/info") +public class RiskControlInfoController extends AbstractCommonFileController{ + + @Autowired + private RiskControlInfoService service; + + + @Operation(summary = "新增") + @PostMapping("/insert") + public R insert(@Validated(Insert.class) @RequestBody RiskControlInfo dto) { + return R.ok(service.saveData(dto)); + } + + @Operation(summary = "修改") + @PostMapping("/update") + public R update(@Validated(Update.class) @RequestBody RiskControlInfo dto) { + return R.ok(service.updateData(dto)); + } + + @Operation(summary = "删除") + @GetMapping("/del/{id}") + public R del(@Schema(name = "id") @PathVariable("id") Long id) { + return R.ok(service.delData(id)); + } + + @Operation(summary = "分页") + @PostMapping("/page") + public R> page(@RequestBody @Validated AttCctvBasePage page) { + return R.ok(service.pageQuery(page)); + } + + + @Override + public String getGroupId() { + return "riskControlInfo"; + } +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/mapper/RiskControlInfoMapper.java b/src/main/java/com/gunshi/project/xyt/mapper/RiskControlInfoMapper.java index cfbf20e..4c28523 100644 --- a/src/main/java/com/gunshi/project/xyt/mapper/RiskControlInfoMapper.java +++ b/src/main/java/com/gunshi/project/xyt/mapper/RiskControlInfoMapper.java @@ -1,8 +1,13 @@ package com.gunshi.project.xyt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gunshi.project.xyt.model.RiskControlDictRel; import com.gunshi.project.xyt.model.RiskControlInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** * 描述: 风险管控清单 @@ -12,4 +17,16 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface RiskControlInfoMapper extends BaseMapper { + @Select(""" + + """) + List queryRelList(@Param("ids") List ids); } \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/model/RiskControlDictRel.java b/src/main/java/com/gunshi/project/xyt/model/RiskControlDictRel.java index ca184d0..b0f7d9e 100644 --- a/src/main/java/com/gunshi/project/xyt/model/RiskControlDictRel.java +++ b/src/main/java/com/gunshi/project/xyt/model/RiskControlDictRel.java @@ -48,4 +48,7 @@ public class RiskControlDictRel implements Serializable { @JsonSerialize(using = ToStringSerializer.class) private Long sysDictId; + @TableField(exist = false) + @Schema(description = "字典名称") + private String dictNm; } \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/service/RiskControlDictRelService.java b/src/main/java/com/gunshi/project/xyt/service/RiskControlDictRelService.java new file mode 100644 index 0000000..7002c30 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/service/RiskControlDictRelService.java @@ -0,0 +1,50 @@ +package com.gunshi.project.xyt.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gunshi.project.xyt.mapper.RiskControlDictRelMapper; +import com.gunshi.project.xyt.model.RiskControlDictRel; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 描述: 风险管控关联字典 + * author: xusan + * date: 2024-08-22 14:18:58 + */ +@Service +@Slf4j +@Transactional(rollbackFor = Exception.class) +public class RiskControlDictRelService extends ServiceImpl +{ + + public void saveRel(List result, Long id) { + if (CollectionUtils.isNotEmpty(result)) { + result.stream().forEach(rel->{ + rel.setId(IdWorker.getId()); + rel.setRiskControlId(id); + }); + this.saveBatch(result); + } + + } + + public void deleteRel(Long id) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(RiskControlDictRel::getRiskControlId,id); + this.remove(queryWrapper); + } + + public void updateRel(List result, Long id) { + deleteRel(id); + saveRel(result,id); + } +} + + diff --git a/src/main/java/com/gunshi/project/xyt/service/RiskControlInfoService.java b/src/main/java/com/gunshi/project/xyt/service/RiskControlInfoService.java new file mode 100644 index 0000000..bb0f1d6 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/service/RiskControlInfoService.java @@ -0,0 +1,107 @@ +package com.gunshi.project.xyt.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gunshi.project.xyt.entity.so.AttCctvBasePage; +import com.gunshi.project.xyt.mapper.RiskControlInfoMapper; +import com.gunshi.project.xyt.model.RiskControlDictRel; +import com.gunshi.project.xyt.model.RiskControlInfo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 描述: 风险管控清单 + * author: xusan + * date: 2024-08-22 14:17:28 + */ +@Service +@Slf4j +@Transactional(rollbackFor = Exception.class) +public class RiskControlInfoService extends ServiceImpl +{ + @Autowired + private FileAssociationsService fileService; + + @Autowired + private RiskControlDictRelService riskControlDictRelService; + + public RiskControlInfo saveData(RiskControlInfo dto) { + dto.setId(IdWorker.getId()); + boolean result = this.save(dto); + if (result) { + fileService.saveFile(dto.getFiles(), getGroupId(), String.valueOf(dto.getId())); + riskControlDictRelService.saveRel(dto.getResult(),dto.getId()); + } + return dto; + } + + public RiskControlInfo updateData(RiskControlInfo dto) { + if (Objects.isNull(this.getById(dto.getId()))) { + throw new IllegalArgumentException("当前数据不存在"); + } + boolean result = this.updateById(dto); + if (result) { + fileService.saveFile(dto.getFiles(), getGroupId(), String.valueOf(dto.getId())); + riskControlDictRelService.updateRel(dto.getResult(),dto.getId()); + } + return dto; + } + + public Boolean delData(Long id) { + if (Objects.isNull(this.getById(id))) { + throw new IllegalArgumentException("当前数据不存在"); + } + boolean data = this.removeById(id); + if (data) { + fileService.deleteFile(getGroupId(), id.toString()); + riskControlDictRelService.deleteRel(id); + } + return data; + } + + public String getGroupId() { + return "riskControlInfo"; + } + + public Page pageQuery(AttCctvBasePage page) { + LambdaQueryWrapper query = Wrappers.lambdaQuery(); + if (ObjectUtils.isNotNull(page.getMenuId())) { + query.eq(RiskControlInfo::getMenuId, page.getMenuId()); + } + query.orderByDesc(RiskControlInfo::getCreateDate); + Page res = this.page(page.getPageSo().toPage(), query); + if (res.getRecords() != null) { + fillAttach(res.getRecords()); + fillRel(res.getRecords()); + } + return res; + } + + private void fillRel(List records) { + List ids = records.stream().map(RiskControlInfo::getId).collect(Collectors.toList()); + List relList = this.baseMapper.queryRelList(ids); + Map> map = relList.stream().collect(Collectors.groupingBy(RiskControlDictRel::getRiskControlId)); + for (RiskControlInfo record : records) { + record.setResult(map.get(record.getId())); + } + } + + private void fillAttach(List ret) { + for (RiskControlInfo record : ret) { + record.setFiles(fileService.getFiles(getGroupId(), String.valueOf(record.getId()))); + } + } +} + +