From f600f38c6c23a282b61ed4db1b2da094d695276f Mon Sep 17 00:00:00 2001
From: zhangfeng <1603559716@qq.com>
Date: Fri, 25 Nov 2022 16:43:52 +0800
Subject: [PATCH] 安全物资和设备管理调整
---
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/MaterialClassifyServiceImpl.java | 190 +++++++++++++++++++++++++++++++++++++++-------
1 files changed, 159 insertions(+), 31 deletions(-)
diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/MaterialClassifyServiceImpl.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/MaterialClassifyServiceImpl.java
index b71a9eb..735b542 100644
--- a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/MaterialClassifyServiceImpl.java
+++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/MaterialClassifyServiceImpl.java
@@ -1,25 +1,32 @@
package com.gkhy.safePlatform.equipment.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gkhy.safePlatform.commons.co.ContextCacheUser;
import com.gkhy.safePlatform.commons.enums.ResultCodes;
-import com.gkhy.safePlatform.commons.utils.StringUtils;
+import com.gkhy.safePlatform.commons.query.PageQuery;
+import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
import com.gkhy.safePlatform.commons.vo.ResultVO;
+import com.gkhy.safePlatform.commons.vo.SearchResultVO;
+import com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyDO;
import com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyInfo;
+import com.gkhy.safePlatform.equipment.enums.EquipmentResultCodes;
import com.gkhy.safePlatform.equipment.excepiton.EquipmentException;
+import com.gkhy.safePlatform.equipment.model.dto.req.MaterialClassifyQuery;
import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialClassifyAddReq;
import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialClassifyModReq;
-import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialClassifyQuery;
import com.gkhy.safePlatform.equipment.model.dto.resp.SafeMaterialClassifyDto;
+import com.gkhy.safePlatform.equipment.model.dto.resp.SafeMaterialClassifyStockDto;
import com.gkhy.safePlatform.equipment.service.MaterialClassifyService;
import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialClassifyInfoService;
import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialInfoService;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
@Service("MaterialClassifyService")
public class MaterialClassifyServiceImpl implements MaterialClassifyService {
@@ -29,25 +36,50 @@
private SafeMaterialInfoService safeMaterialInfoService;
@Override
- public ResultVO<List<SafeMaterialClassifyDto>> list(SafeMaterialClassifyQuery query) {
- List<SafeMaterialClassifyInfo> list = safeMaterialClassifyInfoService.listByCondition(query);
- List<SafeMaterialClassifyDto> respList = new ArrayList<>();
- if(!CollectionUtils.isEmpty(list)){
- for(SafeMaterialClassifyInfo classifyInfo : list){
- SafeMaterialClassifyDto respDTO = new SafeMaterialClassifyDto();
- respDTO.setId(classifyInfo.getId());
- respDTO.setMaterialClassifyName(classifyInfo.getMaterialClassifyName());
- respList.add(respDTO);
+ public List<SafeMaterialClassifyDto> list() {
+ List<SafeMaterialClassifyInfo> list = safeMaterialClassifyInfoService.list();
+ //过滤出父级
+ List<SafeMaterialClassifyInfo> parentList = list
+ .stream()
+ .filter(item -> item.getParentId().equals(0l))
+ .collect(Collectors.toList());
+ List<SafeMaterialClassifyDto> respDTOList = new ArrayList<>();
+ //只有二级不采用递归
+ for (SafeMaterialClassifyInfo classifyInfo:parentList) {
+ SafeMaterialClassifyDto respDTO = new SafeMaterialClassifyDto();
+ respDTO.setId(classifyInfo.getId());
+ respDTO.setMaterialClassifyName(classifyInfo.getMaterialClassifyName());
+ respDTO.setParentId(classifyInfo.getParentId());
+ List<SafeMaterialClassifyInfo> childList = list
+ .stream()
+ .filter(item -> item.getParentId().equals(classifyInfo.getId()))
+ .collect(Collectors.toList());
+ List<SafeMaterialClassifyDto> childDTOList = new ArrayList<>();
+ for (SafeMaterialClassifyInfo child:childList){
+ SafeMaterialClassifyDto childDTO = new SafeMaterialClassifyDto();
+ childDTO.setId(child.getId());
+ childDTO.setMaterialClassifyName(child.getMaterialClassifyName());
+ childDTO.setParentId(child.getParentId());
+ childDTOList.add(childDTO);
}
+ respDTO.setChildList(childDTOList);
+ respDTOList.add(respDTO);
}
- return new ResultVO<>(ResultCodes.OK,respList);
+
+ return respDTOList;
}
@Override
public ResultVO save(ContextCacheUser currentUser, SafeMaterialClassifyAddReq req) {
ResultVO resultVO = null;
+
SafeMaterialClassifyInfo classifyInfo = new SafeMaterialClassifyInfo();
classifyInfo.setMaterialClassifyName(req.getMaterialClassifyName());
+ if(null != req.getParentId()){
+ classifyInfo.setParentId(req.getParentId());
+ }else{
+ classifyInfo.setParentId(0l);
+ }
boolean flag = safeMaterialClassifyInfoService.save(classifyInfo);
if (flag){
resultVO = new ResultVO(ResultCodes.OK);
@@ -80,35 +112,131 @@
if(id == null){
throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL);
}
- ResultVO resultVO = null;
- //判断是否被绑定
- int count = safeMaterialInfoService.getCountByClassify(id);
- if(count > 0){
- throw new EquipmentException(ResultCodes.SERVER_DEL_ERROR,"该类型已被绑定,不可删除!");
- }else{
- //如果没有被绑定,逻辑删除
- SafeMaterialClassifyInfo classifyInfo = new SafeMaterialClassifyInfo();
- classifyInfo.setId(id);
- classifyInfo.setDelFlag(1);
- boolean flag = safeMaterialClassifyInfoService.updateById(classifyInfo);
- if (flag){
- resultVO = new ResultVO(ResultCodes.OK);
- }else {
- resultVO = new ResultVO(ResultCodes.SERVER_DEL_ERROR);
+ SafeMaterialClassifyInfo classify = safeMaterialClassifyInfoService.queryById(id);
+ if(null == classify){
+ throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST);
+ }
+ if(0 == classify.getParentId()){//一级
+ List<SafeMaterialClassifyInfo> childrenList = safeMaterialClassifyInfoService.getListByParentId(id);
+ if (childrenList.size()>0){
+ throw new EquipmentException(ResultCodes.SERVER_DEL_ERROR,"改类型存在小类,不可删除!");
+ }
+ }else {//二级
+ //判断是否被绑定
+ int count = safeMaterialInfoService.getCountBySmallClassifyId(id);
+ if(count > 0){
+ throw new EquipmentException(ResultCodes.SERVER_DEL_ERROR,"该类型已被绑定,不可删除!");
}
}
- return resultVO;
+ //如果没有被绑定,逻辑删除
+ SafeMaterialClassifyInfo classifyInfo = new SafeMaterialClassifyInfo();
+ classifyInfo.setId(id);
+ classifyInfo.setDelFlag(1);
+ safeMaterialClassifyInfoService.updateById(classifyInfo);
+
+ return new ResultVO(ResultCodes.OK);
}
@Override
- public ResultVO<SafeMaterialClassifyDto> queryById(Long id) {
+ public SafeMaterialClassifyDto queryById(Long id) {
if(id == null){
throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL);
}
SafeMaterialClassifyInfo classifyInfo = safeMaterialClassifyInfoService.queryById(id);
+ if(null == classifyInfo){
+ throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST);
+ }
+ List<SafeMaterialClassifyInfo> childList = new ArrayList<>();
+ if(0l == classifyInfo.getParentId()){
+ childList = safeMaterialClassifyInfoService.getListByParentId(id);
+ }
SafeMaterialClassifyDto respDTO = new SafeMaterialClassifyDto();
respDTO.setId(classifyInfo.getId());
respDTO.setMaterialClassifyName(classifyInfo.getMaterialClassifyName());
- return new ResultVO<>(ResultCodes.OK,respDTO);
+ respDTO.setParentId(classifyInfo.getParentId());
+ List<SafeMaterialClassifyDto> childDtoList = new ArrayList<>();
+ for (SafeMaterialClassifyInfo child:childList){
+ SafeMaterialClassifyDto childDto = new SafeMaterialClassifyDto();
+ childDto.setId(child.getId());
+ childDto.setMaterialClassifyName(child.getMaterialClassifyName());
+ childDto.setParentId(child.getParentId());
+ childDtoList.add(childDto);
+ }
+ respDTO.setChildList(childDtoList);
+ return respDTO;
}
+
+ /**
+ * 根据小类id获取大小类相关信息
+ * @param smallClassifyId
+ * @return
+ */
+ public SafeMaterialClassifyDO getBigAndSmallClassifyInfo(Long smallClassifyId){
+ if(null == smallClassifyId){
+ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL);
+ }
+ SafeMaterialClassifyDO classifyDO = safeMaterialClassifyInfoService.getBigAndSmallClassify(smallClassifyId);
+ return classifyDO;
+ }
+ /**
+ * 根据小类ids获取小类相关信息
+ * @param ids
+ * @return
+ */
+ public List<SafeMaterialClassifyDto> getClassifyListByIds(List<Long> ids){
+ if(CollectionUtils.isEmpty(ids)){
+ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL);
+ }
+ List<SafeMaterialClassifyInfo> list = safeMaterialClassifyInfoService.getClassifyListByIds(ids);
+ List<SafeMaterialClassifyDto> classifyDtoList = new ArrayList<>();
+ for (SafeMaterialClassifyInfo classifyInfo:list){
+ SafeMaterialClassifyDto classifyDto = new SafeMaterialClassifyDto();
+ BeanUtils.copyProperties(classifyInfo,classifyDto);
+ classifyDtoList.add(classifyDto);
+ }
+ return classifyDtoList;
+ }
+
+ @Override
+ public List<SafeMaterialClassifyDO> getTraceabilityClassifyList(List<Long> smallClassifyIds) {
+ if(CollectionUtils.isEmpty(smallClassifyIds)){
+ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL);
+ }
+ return safeMaterialClassifyInfoService.getTraceabilityClassifyList(smallClassifyIds);
+ }
+
+ @Override
+ public SearchResultVO<List<SafeMaterialClassifyDto>> listByPage(PageQuery<MaterialClassifyQuery> pageQuery) {
+ Page<SafeMaterialClassifyInfo> page = new Page<>(pageQuery.getPageIndex(),pageQuery.getPageSize());
+ List<SafeMaterialClassifyInfo> classifyInfoList = safeMaterialClassifyInfoService.listByPage(page, pageQuery.getSearchParams());
+ List<SafeMaterialClassifyInfo> childList = new ArrayList<>();
+ if (!CollectionUtils.isEmpty(classifyInfoList)) {
+ List<Long> parentIdList = classifyInfoList.stream().map(SafeMaterialClassifyInfo::getId).collect(Collectors.toList());
+ childList = safeMaterialClassifyInfoService.getListByParentIds(parentIdList);
+ }
+ List<SafeMaterialClassifyDto> respList = new ArrayList<>();
+ for(SafeMaterialClassifyInfo classifyInfo:classifyInfoList){
+ SafeMaterialClassifyDto classifyDto = new SafeMaterialClassifyDto();
+ classifyDto.setId(classifyInfo.getId());
+ classifyDto.setMaterialClassifyName(classifyInfo.getMaterialClassifyName());
+ classifyDto.setParentId(classifyInfo.getParentId());
+ //获取子级
+ List<SafeMaterialClassifyInfo> selectList = childList.stream().filter(cl -> cl.getParentId().equals(classifyInfo.getId())).collect(Collectors.toList());
+ List<SafeMaterialClassifyDto> childRespList = new ArrayList<>();
+ if(selectList.size()>0){
+ childRespList = BeanCopyUtils.copyBeanList(selectList,SafeMaterialClassifyDto.class);
+ }
+ classifyDto.setChildList(childRespList);
+ respList.add(classifyDto);
+ }
+ return new SearchResultVO<>(true,
+ page.getCurrent(),
+ page.getSize(),
+ page.getPages(),
+ page.getTotal(),
+ respList,
+ ResultCodes.OK);
+ }
+
+
}
--
Gitblit v1.9.2