diff --git a/src/main/java/com/pms/ocp/common/constants/CodeEnum.java b/src/main/java/com/pms/ocp/common/constants/CodeEnum.java index 882e30d8db2232f90fc8245a8f396bbafbf5da9b..90cdc11d603326d6dd333b1b906c1a84d12c8e61 100644 --- a/src/main/java/com/pms/ocp/common/constants/CodeEnum.java +++ b/src/main/java/com/pms/ocp/common/constants/CodeEnum.java @@ -41,7 +41,8 @@ public enum CodeEnum { */ NO_DATA("555", "数据库数据异常", false), UP_DATA_FAIL("401005", "更新失败", false), - INSERT_FAIL("401006", "插入数据失败", false); + INSERT_FAIL("401006", "插入数据失败", false), + DELETE_FAIL("401007", "修改失败", false); /** * 构造函数 diff --git a/src/main/java/com/pms/ocp/common/constants/ResultCode.java b/src/main/java/com/pms/ocp/common/constants/ResultCode.java index cf05925d81b1436dec374fc3e5e6d5781b4062f2..a4e292fbd2f813ffee58450d76f22e700b54c688 100644 --- a/src/main/java/com/pms/ocp/common/constants/ResultCode.java +++ b/src/main/java/com/pms/ocp/common/constants/ResultCode.java @@ -87,6 +87,7 @@ public enum ResultCode { ROLE_EXIST(10007, "角色定义已存在!"), CODE_EXIST(10008, "编码已存在!"), NAME_EXIST(10009, "名称已存在!"), + NO_DELETE(10010, "无法删除,有关联数据!"), USER_ORGANIZATION_LEVEL_ERROR(10023, "用户组织机构关联层级有误!"), USER_ORGANIZATION_INFO_ERROR(10024,"用户组织机构信息有误!"), TOKEN_INVALID(9997, "登录失效,请重新登录!"), diff --git a/src/main/java/com/pms/ocp/common/utils/PageUtil.java b/src/main/java/com/pms/ocp/common/utils/PageUtil.java index 4e56e7a5d0857a86b48886e20354dcb05c979662..58644e95146864ac9dbe6574d7b94d30fdb090fc 100644 --- a/src/main/java/com/pms/ocp/common/utils/PageUtil.java +++ b/src/main/java/com/pms/ocp/common/utils/PageUtil.java @@ -43,7 +43,7 @@ public class PageUtil { */ Integer number; - public void pageUtil(Integer page, Integer size, List list) { + public void startPage(Integer page, Integer size, List list) { List list1 = list.stream().skip((page - 1) * size).limit(size).collect(Collectors.toList()); int length = list.size(); this.first = (page == 0);//是否第一页 diff --git a/src/main/java/com/pms/ocp/controller/ModelClassifyController.java b/src/main/java/com/pms/ocp/controller/ModelClassifyController.java index 29bca8a34c327c7e206787be3db3918fbc1d410e..4e513c43cdd92e33d90acded481c0af267cf8b97 100644 --- a/src/main/java/com/pms/ocp/controller/ModelClassifyController.java +++ b/src/main/java/com/pms/ocp/controller/ModelClassifyController.java @@ -1,6 +1,6 @@ package com.pms.ocp.controller; -import com.github.pagehelper.PageInfo; +import com.pms.ocp.common.constants.ResultCode; import com.pms.ocp.model.entity.ModelClassify; import com.pms.ocp.model.vo.OcpModelGroupVO; import com.pms.ocp.model.vo.ResponseVO; @@ -29,8 +29,6 @@ public class ModelClassifyController { /** * 模型分类导航 - * - * @param searchCondition 分类名称 * @return pms.ocp.model.vo.ResponseVO * @author huxiuwu * @date 2022/3/9 @@ -85,4 +83,31 @@ public class ModelClassifyController { public ResponseVO update(@RequestBody List list) { return modelClassifyService.update(list); } + + /** + * 删除模型分类 + **/ + @ApiOperation("删除模型分类") + @PostMapping("/delete") + public ResponseVO delete(@RequestBody ModelClassify modelClassify) { + + Integer integer = modelClassifyService.deleteModelClassify(modelClassify.getObjId(), modelClassify.getModelGroupCode(), modelClassify.getGroupCompanyCode()); + if (integer.intValue() == -1) { + ResponseVO.ok(ResultCode.NO_DELETE); + } + return ResponseVO.ok(integer); + } + + /** + * 删除 + * + * @return pms.ocp.model.vo.ResponseVO + * @author huxiuwu + * @date 2022/3/9 + **/ + @ApiOperation("删除") + @GetMapping("/delete") + public ResponseVO delete(String modelGroupCode) { + return modelClassifyService.delete(modelGroupCode); + } } diff --git a/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java b/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java index 317214d8a72762c0d239842afa66c31b4e2ac7a6..45bf59b468fd9ef66c449ac1469da8f8c57d794f 100644 --- a/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java +++ b/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java @@ -10,7 +10,6 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; -import java.lang.reflect.Type; import java.util.Date; import java.util.List; @@ -99,8 +98,8 @@ public class OcpModelGroupVO implements Serializable { private Integer isDelete; @TableField(exist = false) - @ApiModelProperty(value = "层级") - private int level; + @ApiModelProperty(value = "是否拥有子类") + private boolean isHasChildren; /** * 子类集合 */ diff --git a/src/main/java/com/pms/ocp/service/ModelClassifyService.java b/src/main/java/com/pms/ocp/service/ModelClassifyService.java index 7975b41dc0a0ba419200c9faa4ed65554e7ebccf..06d6b41b5840d440ec55e27da6269fa10ea4fe75 100644 --- a/src/main/java/com/pms/ocp/service/ModelClassifyService.java +++ b/src/main/java/com/pms/ocp/service/ModelClassifyService.java @@ -19,4 +19,16 @@ public interface ModelClassifyService { ResponseVO subclassDetailsList(int currentPage,int pageSize,String parentGroupCode,String subclassGroupName); ResponseVO update(List list); + + ResponseVO delete(String modelGroupCode); + + /** + * 删除模型分类 + * + * @param objId + * @param modelCode + * @param groupCompanyCode + * @return + */ + Integer deleteModelClassify(String objId, String modelCode, String groupCompanyCode); } diff --git a/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java index 15cd98dc3c8e7453c024a54094d2a9184ce62b72..1707f8d7e8d467e0a882793cf8329585e055074d 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java @@ -54,9 +54,10 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { /** * 右侧子类详情列表 - * 这边是右侧详情页,需求是点击右侧导航树上的分类显示该分类的所有子集, - * 所以第一次查询查询到所有并将其转换为key为其分类编码,value为其本身 - * 的map.第二次是根据搜素框的值进行模糊查询 + * 这边是右侧详情页,需求是点击右侧导航树上的分类显示该分类的所有子集, + * 所以第一次查询查询到所有并将其转换为key为其分类编码,value为其本身 + * 的map.第二次是根据搜素框的值进行模糊查询 + * * @return pms.ocp.model.vo.ResponseVO * @author huxiuwu * @date 2022/3/9 > @@ -73,10 +74,12 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { List dimConditionList = this.selectByCondition(null,subclassGroupName); //递归获取模糊查询后属于parentGroupCode子集 List childrenList = findChildren(dimConditionList, ocpModelGroupVO, new LinkedList<>()); - PageUtil pageUtil = new PageUtil<>(); - pageUtil.pageUtil(currentPage,pageSize,childrenList); + List sortList = childrenList.stream().sorted(Comparator.comparing(OcpModelGroupVO::getGroupCtime).reversed()).collect(Collectors.toList()); + PageUtil pageUtil = new PageUtil<>(); + pageUtil.startPage(currentPage, pageSize, sortList); return ResponseVO.ok(pageUtil); } + /** * 修改 * @@ -94,6 +97,20 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { return ResponseVO.ok(); } + /** + * 删除 + * @return pms.ocp.model.vo.ResponseVO + * @author huxiuwu + * @date 2022/3/9 + **/ + @Override + public ResponseVO delete(String modelGroupCode) { + if (!ocpService.removeById(modelGroupCode)) { + return ResponseVO.error(CodeEnum.DELETE_FAIL); + } + return ResponseVO.ok(); + } + /** * 新增 * @@ -120,29 +137,34 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { * @param * @return void **/ - private List findChildren(List groupList, OcpModelGroupVO parent,List childList) { + private List findChildren(List groupList, OcpModelGroupVO parent, List childList) { + for (OcpModelGroupVO vo : groupList) { //遍历出父id等于参数的id,add进子节点集合 - if (parent!= null + if (parent != null && parent.getModelGroupCode() .equals(vo.getModelGroupPcode()) - && !"".equals(parent.getModelGroupCode())) { - //递归遍历下一级 - vo.setModelGroupPName(parent.getModelGroupName()); - if (!childList.remove(vo)){ - childList.add(vo); - } - findChildren(groupList, vo, childList); + && !"".equals(parent.getModelGroupCode()) + && !parent.getModelGroupCode().equals(vo.getModelGroupCode())) { + parent.setHasChildren(true); + vo.setModelGroupPName(parent.getModelGroupName()); + if (!childList.remove(vo)) { + childList.add(vo); + } + //递归下一级 + findChildren(groupList, vo, childList); } } return childList; } + /** * 构建树节点 - * @author huxiuwu - * @date 2022/3/10 + * * @param treeNodes 需要构建的list * @return List + * @author huxiuwu + * @date 2022/3/10 **/ private List build(List treeNodes) { List result = new ArrayList<>(); @@ -155,7 +177,8 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { //得到自己的父类 OcpModelGroupVO parent = nodeMap.get(node.getModelGroupPcode()); if (parent != null && (node.getModelGroupPcode().equals(parent.getModelGroupCode())) - && (!"".equals(node.getModelGroupPcode())|| !"".equals(parent.getModelGroupCode()))) { + && (!"".equals(node.getModelGroupPcode())|| !"".equals(parent.getModelGroupCode())) + && !parent.getModelGroupCode().equals(node.getModelGroupCode())) { //防止每次都new list或者只是使用该对象就new对象浪费内存或者覆盖上一次记录 if (parent.getChildrenList() == null) { parent.setChildrenList(new LinkedList<>()); @@ -178,27 +201,62 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { * @param parent 父类 * @param treeNodes 需要遍历list **/ - private void addLevel(OcpModelGroupVO parent, List treeNodes) { - int level = parent.getLevel(); - parent.setLevel(level++); - for (OcpModelGroupVO treeNode : treeNodes) { - if (treeNode != null && parent.getModelGroupCode().equals(treeNode.getModelGroupPcode())){ - addLevel(treeNode,treeNodes); - } - } - } +// private void addLevel(OcpModelGroupVO parent, List treeNodes) { +// int level = parent.getLevel(); +// parent.setLevel(level++); +// for (OcpModelGroupVO treeNode : treeNodes) { +// if (treeNode != null && parent.getModelGroupCode().equals(treeNode.getModelGroupPcode())) { +// addLevel(treeNode, treeNodes); +// } +// } +// } /** * 生成构造器 * @author huxiuwu * @date 2022/3/10 * @param searchCondition * @return List + * @author huxiuwu + * @date 2022/3/10 **/ private List selectByCondition(String... searchCondition) { QueryWrapper queryWrapper = new QueryWrapper<>(); //根据是否传入搜索条件创建构造器进行查询 queryWrapper.eq(StringUtils.isNotEmpty(searchCondition[0]), "model_group_pcode", searchCondition[0]) - .like(StringUtils.isNotEmpty(searchCondition[1]),"model_group_name", searchCondition[1]).orderBy(false,false,"group_ctime"); + .like(StringUtils.isNotEmpty(searchCondition[1]),"model_group_name", searchCondition[1]); return classifyMapper.selectList(queryWrapper); } + + /** + * 删除模型分类 + * + * @param objId + * @param modelGroupCode + * @param groupCompanyCode + * @return + */ + @Override + public Integer deleteModelClassify(String objId, String modelGroupCode, String groupCompanyCode) { + + QueryWrapper queryWrapper = new QueryWrapper(); + + if (StringUtils.isNotEmpty(modelGroupCode)) { + queryWrapper.lambda().eq(OcpModelGroupVO::getModelGroupCode, modelGroupCode); + } + + List opList = classifyMapper.selectList(queryWrapper); + + if (!opList.isEmpty()) { + if (StringUtils.isNotEmpty(objId)) { + queryWrapper.lambda().eq(OcpModelGroupVO::getObjId, objId); + } + + if (StringUtils.isNotEmpty(groupCompanyCode)) { + queryWrapper.lambda().eq(OcpModelGroupVO::getGroupCompanyCode, groupCompanyCode); + } + return classifyMapper.delete(queryWrapper); + } + return -1; + + } }