diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/controller/SelectController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/controller/SelectController.java index a9a6f090..09d4287b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/controller/SelectController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/controller/SelectController.java @@ -42,6 +42,12 @@ public class SelectController { return service.getMaTypeData(dto); } + @ApiOperation(value = "标准配置下拉选") + @PostMapping("getConfigList") + public AjaxResult getConfigList(@RequestBody BmUnit bmUnit) { + return service.getConfigList(bmUnit); + } + /** * 机具类型下拉选 * @param dto diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/mapper/SelectMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/mapper/SelectMapper.java index 1215e8ef..7ae511ed 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/mapper/SelectMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/mapper/SelectMapper.java @@ -165,4 +165,11 @@ public interface SelectMapper { * @return */ List getMaType(SelectDto dto); + + /** + * 获取标准配置下拉选 + * @param bmUnit + * @return + */ + List getConfigList(BmUnit bmUnit); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/SelectService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/SelectService.java index 0c365494..d6a1aa7f 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/SelectService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/SelectService.java @@ -199,4 +199,11 @@ public interface SelectService { * @return */ AjaxResult getMaType(SelectDto dto); + + /** + * 标准配置下拉选 + * @param bmUnit + * @return + */ + AjaxResult getConfigList(BmUnit bmUnit); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/impl/SelectServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/impl/SelectServiceImpl.java index 46e604ee..c59ca988 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/impl/SelectServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/common/service/impl/SelectServiceImpl.java @@ -96,6 +96,24 @@ public class SelectServiceImpl implements SelectService { return AjaxResult.success(list); } + @Override + public AjaxResult getConfigList(BmUnit bmUnit) { + List groupList = new ArrayList<>(); + List list; + try { + list = mapper.getConfigList(bmUnit); + if (CollectionUtils.isNotEmpty(list)) { + // 创建树形结构(数据集合作为参数) + ProjectTreeBuild treeBuild = new ProjectTreeBuild(list); + // 原查询结果转换树形结构 + groupList = treeBuild.buildTree(); + } + } catch (Exception e) { + log.error("标准配置-查询失败", e); + } + return AjaxResult.success(groupList); + } + // @Override // public AjaxResult getDictByPidCbx(SelectDto dto) { // List list = new ArrayList<>(); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/StandardConfigManageController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/StandardConfigManageController.java new file mode 100644 index 00000000..d3818741 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/StandardConfigManageController.java @@ -0,0 +1,120 @@ +package com.bonus.material.ma.controller; + +import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.log.annotation.SysLog; +import com.bonus.common.log.enums.OperaType; +import com.bonus.common.security.annotation.RequiresPermissions; +import com.bonus.material.common.annotation.PreventRepeatSubmit; +import com.bonus.material.ma.domain.StandardConfigBean; +import com.bonus.material.ma.domain.Type; +import com.bonus.material.ma.domain.vo.StandardConfigDetailsVo; +import com.bonus.material.ma.service.StandardConfigManageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; + +/** + * 机械设备标准配置管理Controller + * + * @author hay + */ +@Api(tags = "机械设备标准配置管理接口") +@RestController +@RequestMapping("/standardConfig") +public class StandardConfigManageController extends BaseController { + + @Resource + private StandardConfigManageService service; + + /** + * 标准配置下拉树 + */ + @ApiOperation(value = "标准配置下拉树") + @GetMapping("/getConfigTreeSelect") + public AjaxResult getMaTypeTreeSelect(@RequestParam(required = false, defaultValue = "", value = "configName") String configName, + @RequestParam(required = false, defaultValue = "", value = "parentId") String parentId) { + return service.getConfigTreeSelect(configName, parentId); + } + + /** + * 根据左配置id查询右表格 + */ + @ApiOperation(value = "根据左配置id查询右表格") + @GetMapping("/getListByConfigId") + public AjaxResult getListByConfigId(StandardConfigDetailsVo bean) { + return service.getListByConfigId(bean); + } + + /** + * 新增标准配置 + */ + @ApiOperation(value = "新增标准配置") + @SysLog(title = "机械设备标准配置管理", businessType = OperaType.INSERT, module = "机械设备标准配置管理->新增标准配置") + @PostMapping(value = "/add") + public AjaxResult add(@RequestBody StandardConfigBean bean) { + return toAjax(service.insertConfig(bean)); + } + + + /** + * 修改标准配置 + */ + @ApiOperation(value = "修改标准配置") + @SysLog(title = "机械设备标准配置管理", businessType = OperaType.UPDATE, module = "机械设备标准配置管理->修改标准配置") + @PostMapping(value = "/edit") + public AjaxResult edit(@RequestBody StandardConfigBean bean) { + return toAjax(service.updateConfig(bean)); + } + + /** + * 删除标准配置 + */ + @ApiOperation(value = "删除标准配置") + @SysLog(title = "机械设备标准配置管理", businessType = OperaType.DELETE, module = "机械设备标准配置管理->删除标准配置") + @PostMapping("/del") + public AjaxResult remove(@RequestBody StandardConfigBean bean) { + return service.deleteConfigByConfigId(bean); + } + + /** + * 新增标准配置明细 + */ + @ApiOperation(value = "新增标准配置明细") + @SysLog(title = "机械设备标准配置管理", businessType = OperaType.INSERT, module = "机械设备标准配置管理->新增标准配置明细") + @PostMapping(value = "/addConfigDetails") + public AjaxResult addConfigDetails(@RequestBody StandardConfigDetailsVo bean) { + int result = service.addConfigDetails(bean); + if (result == 0){ + return AjaxResult.error("操作失败!"); + } else if (result == -2){ + return AjaxResult.error("该类型下已存在该配置!"); + } else if (result >0){ + return AjaxResult.success(); + } else { + return AjaxResult.error("操作失败!"); + } + } + + /** + * 修改标准配置明细 + */ + @ApiOperation(value = "修改标准配置明细") + @SysLog(title = "机械设备标准配置管理", businessType = OperaType.UPDATE, module = "机械设备标准配置管理->修改标准配置明细") + @PostMapping(value = "/editConfigDetails") + public AjaxResult editConfigDetails(@RequestBody StandardConfigDetailsVo bean) { + return toAjax(service.updateConfigDetails(bean)); + } + + /** + * 删除标准配置明细 + */ + @ApiOperation(value = "删除标准配置明细") + @SysLog(title = "机械设备标准配置管理", businessType = OperaType.DELETE, module = "机械设备标准配置管理->删除标准配置明细") + @PostMapping("/delConfigDetails") + public AjaxResult delConfigDetails(@RequestBody StandardConfigDetailsVo bean) { + return service.delConfigDetails(bean); + } + +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/StandardConfigBean.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/StandardConfigBean.java new file mode 100644 index 00000000..4704d2ea --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/StandardConfigBean.java @@ -0,0 +1,61 @@ +package com.bonus.material.ma.domain; + +import com.bonus.common.core.annotation.Excel; +import com.bonus.common.core.web.domain.BaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 物资类型对象 ma_type + * @author syruan + */ +@EqualsAndHashCode(callSuper = false) +@Data +@ToString +public class StandardConfigBean extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 配置id */ + @ApiModelProperty(value = "配置id") + private Long Id; + + /** 配置id */ + @ApiModelProperty(value = "配置id") + private Long configId; + + /** 配置名称 */ + @ApiModelProperty(value = "配置名称") + private String configName; + + + /** 上级ID */ + @ApiModelProperty(value = "上级ID") + private Long parentId; + + + /** 层级 */ + @ApiModelProperty(value = "层级") + private String level; + + + /** 删除标志(0代表存在 2代表删除) */ + private String delFlag; + + + private String keyword; + + /** 子节点 */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children = new ArrayList<>(); + +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/vo/StandardConfigDetailsVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/vo/StandardConfigDetailsVo.java new file mode 100644 index 00000000..e73b40ef --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/vo/StandardConfigDetailsVo.java @@ -0,0 +1,81 @@ +package com.bonus.material.ma.domain.vo; + +import com.bonus.common.core.annotation.Excel; +import com.bonus.material.ma.domain.Type; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + +/** +* @description 机械设备标准配置详情 +* @author hay +* @date 2025/2/14 14:02 +*/ +@Getter +@Setter +public class StandardConfigDetailsVo extends Type { + + /** 配置ID */ + @ApiModelProperty(value = "配置ID") + private Long configId; + + /** 配置详情ID */ + @ApiModelProperty(value = "配置详情ID") + private Long detailsId; + + /** 仓库Id */ + @ApiModelProperty(value = "仓库Id") + private Long houseId; + + @ApiModelProperty(value = "仓库名称") + private String houseName; + + @ApiModelProperty(value = "施工类型") + private String constructionType; + + @ApiModelProperty(value = "物资类型") + private String materialType; + + @ApiModelProperty(value = "物资名称") + private String typeName; + + @ApiModelProperty(value = "规格ID") + private Long typeId; + + @ApiModelProperty(value = "规格型号") + private String typeModelName; + + @ApiModelProperty(value = "计量单位") + private String unit; + + @ApiModelProperty(value = "数量") + private BigDecimal num; + + @ApiModelProperty(value = "备注") + private String remark; + + @ApiModelProperty(value = "创建者") + private String createBy; + + @ApiModelProperty(value = "创建时间") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @ApiModelProperty(value = "更新者") + private String updateBy; + + @ApiModelProperty(value = "更新时间 ") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + @ApiModelProperty(value = "关键字") + private String keyWord; + +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/StandardConfigManageMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/StandardConfigManageMapper.java new file mode 100644 index 00000000..49a62245 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/StandardConfigManageMapper.java @@ -0,0 +1,109 @@ +package com.bonus.material.ma.mapper; + +import com.bonus.common.biz.domain.lease.LeaseOutDetails; +import com.bonus.material.ma.domain.MaTypeHistory; +import com.bonus.material.ma.domain.StandardConfigBean; +import com.bonus.material.ma.domain.Type; +import com.bonus.material.ma.domain.vo.MaTypeConfigVo; +import com.bonus.material.ma.domain.vo.MaTypeSelectVo; +import com.bonus.material.ma.domain.vo.MaTypeVo; +import com.bonus.material.ma.domain.vo.StandardConfigDetailsVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.Collection; +import java.util.List; + +/** + * 机械设备标准配置管理Mapper接口 + * @author hay + */ +@Mapper +public interface StandardConfigManageMapper { + + /** + * 查询机械设备标准配置管理树 + * @return + */ + List selectStandardConfigTree(); + + /** + * 根据level层级和typeID 查询父级ID + * @param bean + * @return + */ + List selectParentId(StandardConfigDetailsVo bean); + + /** + * 根据父级ID 查询子级 + * @param configId + * @param bean + * @return + */ + List getListByParentId(@Param("configId") Long configId,@Param("bean") StandardConfigDetailsVo bean); + + /** + * 根据配置id 查询配置详情 + * @param configName + * @param parentId + * @return + */ + StandardConfigBean queryByNameAndParentId(@Param("configName") String configName, @Param("parentId") Long parentId); + + /** + * 新增配置 + * @param bean + * @return + */ + int insertConfig(StandardConfigBean bean); + + /** + * 修改配置 + * @param bean + * @return + */ + int updateConfig(StandardConfigBean bean); + + /** + * 根据配置id 查询配置详情 + * @param configId + * @return + */ + List selectByConfigId(Long configId); + + /** + * 根据配置id 删除配置 + * @param bean + * @return + */ + int deleteConfigByConfigId(StandardConfigBean bean); + + /** + * 根据configId和typeId 查询是否存在数据 + * @param bean + * @return + */ + int getCountById(StandardConfigDetailsVo bean); + + /** + * 新增配置详情 + * @param bean + * @return + */ + int addConfigDetails(StandardConfigDetailsVo bean); + + /** + * 修改配置详情 + * @param bean + * @return + */ + int updateConfigDetails(StandardConfigDetailsVo bean); + + /** + * 删除配置详情 + * @param bean + * @return + */ + int delConfigDetails(StandardConfigDetailsVo bean); +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/StandardConfigManageService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/StandardConfigManageService.java new file mode 100644 index 00000000..42c6c5be --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/StandardConfigManageService.java @@ -0,0 +1,77 @@ +package com.bonus.material.ma.service; + +import com.bonus.common.biz.domain.TreeSelect; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.ma.domain.MaTypeHistory; +import com.bonus.material.ma.domain.StandardConfigBean; +import com.bonus.material.ma.domain.Type; +import com.bonus.material.ma.domain.vo.MaTypeConfigVo; +import com.bonus.material.ma.domain.vo.MaTypeSelectVo; +import com.bonus.material.ma.domain.vo.MaTypeVo; +import com.bonus.material.ma.domain.vo.StandardConfigDetailsVo; + +import java.util.List; + +/** + * 机械设备标准配置管理Service接口 + * @author hay + */ +public interface StandardConfigManageService { + + /** + * 查询机械设备标准配置管理树结构信息 + * @param configName + * @param parentId + * @return + */ + AjaxResult getConfigTreeSelect(String configName, String parentId); + + /** + * 根据左配置id查询右表格 + * @param bean + * @return + */ + AjaxResult getListByConfigId(StandardConfigDetailsVo bean); + + /** + * 新增机械设备标准配置管理 + * @param bean + * @return + */ + int insertConfig(StandardConfigBean bean); + + /** + * 修改机械设备标准配置管理 + * @param bean + * @return + */ + int updateConfig(StandardConfigBean bean); + + /** + * 删除机械设备标准配置管理 + * @param bean + * @return + */ + AjaxResult deleteConfigByConfigId(StandardConfigBean bean); + + /** + * 新增机械设备标准配置管理明细 + * @param bean + * @return + */ + int addConfigDetails(StandardConfigDetailsVo bean); + + /** + * 修改机械设备标准配置管理明细 + * @param bean + * @return + */ + int updateConfigDetails(StandardConfigDetailsVo bean); + + /** + * 删除机械设备标准配置管理明细 + * @param bean + * @return + */ + AjaxResult delConfigDetails(StandardConfigDetailsVo bean); +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/StandardConfigManageServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/StandardConfigManageServiceImpl.java new file mode 100644 index 00000000..90fc8153 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/StandardConfigManageServiceImpl.java @@ -0,0 +1,241 @@ +package com.bonus.material.ma.service.impl; + +import cn.hutool.core.convert.Convert; +import com.bonus.common.biz.config.ListPagingUtil; +import com.bonus.common.biz.domain.TreeSelect; +import com.bonus.common.biz.enums.HttpCodeEnum; +import com.bonus.common.core.utils.DateUtils; +import com.bonus.common.core.utils.ServletUtils; +import com.bonus.common.core.utils.StringUtils; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.material.ma.domain.StandardConfigBean; +import com.bonus.material.ma.domain.Type; +import com.bonus.material.ma.domain.vo.MaTypeVo; +import com.bonus.material.ma.domain.vo.StandardConfigDetailsVo; +import com.bonus.material.ma.mapper.StandardConfigManageMapper; +import com.bonus.material.ma.mapper.TypeMapper; +import com.bonus.material.ma.service.StandardConfigManageService; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 机械设备标准配置管理Service业务层实现 + * + * @author hay + */ +@Service +public class StandardConfigManageServiceImpl implements StandardConfigManageService { + + @Resource + private StandardConfigManageMapper mapper; + + + @Override + public AjaxResult getConfigTreeSelect(String configName, String parentId) { + // 定义最终接口返回集合 + List treeSelectResultList = new ArrayList<>(); + try { + // 1.顶级节点及子节点数据全部查询完毕 + treeSelectResultList = this.getConfigTree(configName, parentId); + return AjaxResult.success(treeSelectResultList); + } catch (Exception e) { + e.printStackTrace(); + return AjaxResult.success(treeSelectResultList); + } + } + + @Override + public AjaxResult getListByConfigId(StandardConfigDetailsVo bean) { + List list = new ArrayList<>(); + Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1); + Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10); + try { + //根据level层级和配置id 查询父级ID + List parentIds = mapper.selectParentId(bean); + if (CollectionUtils.isEmpty(parentIds)) { + return AjaxResult.success(new ArrayList<>()); + } + for (Integer parentId : parentIds) { + list.addAll(mapper.getListByParentId(parentId.longValue(), bean)); + } + return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list)); + } catch (Exception e) { + e.printStackTrace(); + return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, new ArrayList<>())); + } + } + + @Override + public int insertConfig(StandardConfigBean bean) { + //根据类型名称判断,去重 + StandardConfigBean bean1 = mapper.queryByNameAndParentId(bean.getConfigName(), bean.getParentId()); + if (bean1 != null) { + throw new RuntimeException("同级下类型配置存在重复!"); + } + bean.setLevel(String.valueOf(2)); + bean.setCreateTime(DateUtils.getNowDate()); + bean.setCreateBy(SecurityUtils.getUserId().toString()); + int count = mapper.insertConfig(bean); + return count; + } + + @Override + public int updateConfig(StandardConfigBean bean) { + //根据类型名称判断,去重 + StandardConfigBean bean1 = mapper.queryByNameAndParentId(bean.getConfigName(), bean.getParentId()); + if (bean1 != null && !bean1.getConfigId().equals(bean1.getConfigId())) { + throw new RuntimeException("同级下类型配置存在重复!"); + } + bean.setUpdateTime(DateUtils.getNowDate()); + bean.setUpdateBy(SecurityUtils.getUserId().toString()); + int updateResult = mapper.updateConfig(bean); + return updateResult; + } + + @Override + public AjaxResult deleteConfigByConfigId(StandardConfigBean bean) { + if (StringUtils.isNull(bean.getConfigId())){ + return AjaxResult.error("删除失败,缺少参数"); + } + //根据configId查询删除类型下属是否有关联,有关联无法删除 + List list = mapper.selectByConfigId(bean.getConfigId()); + if (list!=null && list.size()>0) { + return AjaxResult.error("该类型下有子类型,无法删除"); + } + bean.setUpdateTime(DateUtils.getNowDate()); + bean.setUpdateBy(SecurityUtils.getUserId().toString()); + int result = mapper.deleteConfigByConfigId(bean); + if (result > 0) { + return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg(), result); + } + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); + } + + @Override + public int addConfigDetails(StandardConfigDetailsVo bean) { + try { + //根据configId和typeId 查询是否存在数据 + int count = mapper.getCountById(bean); + if (count > 0) { + return -2; + } + bean.setCreateTime(DateUtils.getNowDate()); + bean.setCreateBy(SecurityUtils.getUserId().toString()); + int result = mapper.addConfigDetails(bean); + return result; + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + @Override + public int updateConfigDetails(StandardConfigDetailsVo bean) { + try { + bean.setUpdateTime(DateUtils.getNowDate()); + bean.setUpdateBy(SecurityUtils.getUserId().toString()); + int result = mapper.updateConfigDetails(bean); + return result; + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + @Override + public AjaxResult delConfigDetails(StandardConfigDetailsVo bean) { + try { + if (StringUtils.isNull(bean.getDetailsId())){ + return AjaxResult.error("删除失败,缺少参数"); + } + int result = mapper.delConfigDetails(bean); + return AjaxResult.success(result); + } catch (Exception e) { + e.printStackTrace(); + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); + } + } + + public List getConfigTree(String typeName, String parentId) { + List standardConfigs = mapper.selectStandardConfigTree(); + List builtConfigList = buildConfigTree(standardConfigs); + + // 查询顶级节点的仓库配置信息 + + // 如果没有查询到那么返回空 + return builtConfigList.stream() + .filter(Objects::nonNull) + .map(this::convertToTreeSelect) + .collect(Collectors.toList()); + } + + public List buildConfigTree(List configList) { + List returnList = new ArrayList(); + List tempList = configList.stream().map(StandardConfigBean::getId).collect(Collectors.toList()); + for (StandardConfigBean maType : configList) { + // 如果是顶级节点, 遍历该父节点的所有子节点 + if (!tempList.contains(maType.getParentId())) { + recursionFn(configList, maType); + returnList.add(maType); + } + } + if (returnList.isEmpty()) { + returnList = configList; + } + return returnList; + } + + /** + * 递归列表 + */ + private void recursionFn(List list, StandardConfigBean t) { + // 得到子节点列表 + List childList = getChildList(list, t); + t.setChildren(childList); + for (StandardConfigBean tChild : childList) { + if (hasChild(list, tChild)) { + recursionFn(list, tChild); + } + } + } + + /** + * 得到子节点列表 + */ + private List getChildList(List list, StandardConfigBean t) { + List tlist = new ArrayList<>(); + for (StandardConfigBean n : list) { + if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getId().longValue()) { + tlist.add(n); + } + } + return tlist; + } + + /** + * 判断是否有子节点 + */ + private boolean hasChild(List list, StandardConfigBean t) { + return !getChildList(list, t).isEmpty(); + } + + /** + * 通过构造函数将 Type对象 转换为 TreeSelect -- 并递归处理子节点 + * + * @param type 要进行转换的object对象 + */ + private TreeSelect convertToTreeSelect(StandardConfigBean type) { + List children = type.getChildren().stream() + .filter(Objects::nonNull) + .map(this::convertToTreeSelect) + .collect(Collectors.toList()); + return new TreeSelect(type.getId(), type.getConfigName(), null, Integer.valueOf(type.getLevel()), type.getParentId(), children); + } +} diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/common/SelectMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/common/SelectMapper.xml index 9d3ea3c2..a6466ec7 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/common/SelectMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/common/SelectMapper.xml @@ -388,4 +388,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and parent_id = #{typeId} + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/StandardConfigManageMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/StandardConfigManageMapper.xml new file mode 100644 index 00000000..a980b087 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/StandardConfigManageMapper.xml @@ -0,0 +1,198 @@ + + + + + insert into bm_standard_config( + `name`, + parent_id, + level, + create_by, + create_time, + update_by, + update_time + ) + values( + #{configName}, + #{parentId}, + #{level}, + #{createBy}, + #{createTime}, + #{createBy}, + #{createTime} + ) + + + insert into bm_standard_config_details( + config_id, + type_id, + create_by, + create_time, + update_by, + update_time + ) + values( + #{configId}, + #{typeId}, + #{createBy}, + #{createTime}, + #{createBy}, + #{createTime} + ) + + + update bm_standard_config + set + + `name` = #{configName}, + + + parent_id = #{parentId}, + + + level = #{level}, + + update_by = #{updateBy}, + update_time = #{updateTime} + where id = #{configId} + + + + update bm_standard_config + set + del_flag = 2, + update_by = #{updateBy}, + update_time = #{updateTime} + where id = #{configId} + + + update bm_standard_config_details + set + + num = #{num}, + + + remark = #{remark}, + + update_by = #{updateBy}, + update_time = #{updateTime} + where id = #{detailsId} + + + + update bm_standard_config_details + set + del_flag = 2, + update_by = #{updateBy}, + update_time = #{updateTime} + where id = #{detailsId} + + + + + + + + + +