From fda72092334505da583304d20e962fab102b0872 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Tue, 9 Apr 2024 10:42:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=A7=91=E5=AE=A4=E5=8C=BB=E4=BF=9D?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ThrConsumeMaterialCategoryController.java | 30 ++++++++++++--- .../thrsys/DeptMaterialCategoryMapper.java | 3 +- .../req/thrsys/UpdateBindCategoryRequest.java | 17 +++++++++ .../ThrConsumeMaterialCategoryService.java | 37 ++++++++++++++++++- 4 files changed, 80 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/glxp/api/req/thrsys/UpdateBindCategoryRequest.java diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThrConsumeMaterialCategoryController.java b/src/main/java/com/glxp/api/controller/thrsys/ThrConsumeMaterialCategoryController.java index 9dbc9d8c6..7edc3f2d4 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThrConsumeMaterialCategoryController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThrConsumeMaterialCategoryController.java @@ -6,13 +6,12 @@ import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.auth.SysMenu; import com.glxp.api.entity.thrsys.ThrConsumeMaterialCategory; import com.glxp.api.entity.thrsys.ThrConsumeMaterialCategoryTree; +import com.glxp.api.req.thrsys.UpdateBindCategoryRequest; import com.glxp.api.service.thrsys.DeptMaterialCategoryService; import com.glxp.api.service.thrsys.ThrConsumeMaterialCategoryService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; @@ -32,7 +31,7 @@ public class ThrConsumeMaterialCategoryController { * * @param deptCode 部门code */ - @GetMapping(value = "/deptCategoryTreeselect/{deptCode}") + @GetMapping(value = "/consumeMaterialCategory/deptCategoryTreeselect/{deptCode}") public BaseResponse deptCategoryTreeselect(@PathVariable("deptCode") Long deptCode) { List list = thrConsumeMaterialCategoryService.selectCategoryList(); Map ajax = new HashMap<>(); @@ -46,9 +45,30 @@ public class ThrConsumeMaterialCategoryController { * * @param deptCode 部门code */ - @GetMapping(value = "/deptCategoryList/{deptCode}") + @GetMapping(value = "/consumeMaterialCategory/deptCategoryList/{deptCode}") public BaseResponse selectListByDeptCode(@PathVariable("deptCode") Long deptCode) { List list = thrConsumeMaterialCategoryService.selectListByDeptCode(deptCode); return ResultVOUtils.success(list); } + + + /** + * 更新绑定关系 + * + */ + @PostMapping(value = "/consumeMaterialCategory/updateBindCategory") + public BaseResponse updateBindCategory(@RequestBody UpdateBindCategoryRequest updateBindCategoryRequest) { + thrConsumeMaterialCategoryService.updateBindCategory(updateBindCategoryRequest); + return ResultVOUtils.success(); + } + + /** + * 删除绑定关系 + * + */ + @DeleteMapping(value = "/consumeMaterialCategory/deleteBindCategory") + public BaseResponse deleteBindCategory(@RequestBody UpdateBindCategoryRequest updateBindCategoryRequest) { + thrConsumeMaterialCategoryService.deleteBindCategory(updateBindCategoryRequest); + return ResultVOUtils.success(); + } } diff --git a/src/main/java/com/glxp/api/dao/thrsys/DeptMaterialCategoryMapper.java b/src/main/java/com/glxp/api/dao/thrsys/DeptMaterialCategoryMapper.java index 43583281d..f9254c10a 100644 --- a/src/main/java/com/glxp/api/dao/thrsys/DeptMaterialCategoryMapper.java +++ b/src/main/java/com/glxp/api/dao/thrsys/DeptMaterialCategoryMapper.java @@ -1,6 +1,7 @@ package com.glxp.api.dao.thrsys; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.thrsys.DeptMaterialCategory; import com.glxp.api.entity.thrsys.ThrConsumeMaterialCategory; import org.apache.ibatis.annotations.Mapper; @@ -8,7 +9,7 @@ import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper -public interface DeptMaterialCategoryMapper extends BaseMapper { +public interface DeptMaterialCategoryMapper extends BaseMapperPlus { List selectCategoryListByDeptCode(Long deptCode); List selectListByDeptCode(Long deptCode); } diff --git a/src/main/java/com/glxp/api/req/thrsys/UpdateBindCategoryRequest.java b/src/main/java/com/glxp/api/req/thrsys/UpdateBindCategoryRequest.java new file mode 100644 index 000000000..54060200d --- /dev/null +++ b/src/main/java/com/glxp/api/req/thrsys/UpdateBindCategoryRequest.java @@ -0,0 +1,17 @@ +package com.glxp.api.req.thrsys; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Data +public class UpdateBindCategoryRequest { + +// @NotNull(message = "类别列表不可为null") + private Long[] deptCategory; + + @NotEmpty(message = "部门不可为空") + private Long deptCode; + +} diff --git a/src/main/java/com/glxp/api/service/thrsys/ThrConsumeMaterialCategoryService.java b/src/main/java/com/glxp/api/service/thrsys/ThrConsumeMaterialCategoryService.java index 9475b5ef3..17b3f8422 100644 --- a/src/main/java/com/glxp/api/service/thrsys/ThrConsumeMaterialCategoryService.java +++ b/src/main/java/com/glxp/api/service/thrsys/ThrConsumeMaterialCategoryService.java @@ -4,9 +4,12 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.tree.Tree; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.glxp.api.dao.thrsys.DeptMaterialCategoryMapper; import com.glxp.api.entity.auth.SysRole; +import com.glxp.api.entity.thrsys.DeptMaterialCategory; import com.glxp.api.entity.thrsys.ThrConsumeMaterialCategoryTree; +import com.glxp.api.req.thrsys.UpdateBindCategoryRequest; import com.glxp.api.res.chs.YbHcflEntityResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.util.TreeBuildUtils; @@ -17,6 +20,7 @@ import com.glxp.api.dao.thrsys.ThrConsumeMaterialCategoryMapper; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import javax.validation.constraints.NotNull; import java.util.*; import java.util.stream.Collectors; @@ -125,7 +129,10 @@ public class ThrConsumeMaterialCategoryService extends ServiceImpl collect = list.stream().sorted(Comparator.comparing(ThrConsumeMaterialCategory::getCategoryId)).collect(Collectors.toList()); + List collect = list.stream().sorted(Comparator.comparing(ThrConsumeMaterialCategory::getCategoryId)). + collect(Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>( + Comparator.comparing(ThrConsumeMaterialCategory::getCategoryId))), ArrayList::new)); return collect; } @@ -186,4 +193,32 @@ public class ThrConsumeMaterialCategoryService extends ServiceImpl uw = new UpdateWrapper<>(); + uw.eq("deptCode",deptCode); + deptMaterialCategoryMapper.delete(uw); + //插入新的绑定 + List lists = new ArrayList<>(deptCategory.length); + for (Long aLong : deptCategory) { + DeptMaterialCategory deptMaterialCategory = new DeptMaterialCategory(); + deptMaterialCategory.setDeptCode(deptCode); + deptMaterialCategory.setCategoryId(aLong); + lists.add(deptMaterialCategory); + } + deptMaterialCategoryMapper.insertBatch(lists); + } + + public void deleteBindCategory(UpdateBindCategoryRequest updateBindCategoryRequest) { + Long deptCode = updateBindCategoryRequest.getDeptCode(); + Long[] deptCategory = updateBindCategoryRequest.getDeptCategory(); + //删除原来的绑定 + UpdateWrapper uw = new UpdateWrapper<>(); + uw.eq("deptCode",deptCode); + uw.in("categoryId",deptCategory); + deptMaterialCategoryMapper.delete(uw); + } }