diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/MaType.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/MaType.java new file mode 100644 index 00000000..86612033 --- /dev/null +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/MaType.java @@ -0,0 +1,107 @@ +package com.bonus.common.biz.domain; + +import com.bonus.common.core.web.domain.BaseEntity; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class MaType extends BaseEntity implements Serializable { + private static final long serialVersionUID = 135108051525707131L; + + private Integer isExport; + /** + * id + */ + private String id; + /** + * 上级id + */ + private String parentId; + /** + * 名称 + */ + private String name; + + /** + * 父级名称 + */ + private String parentName; + + /** + * 编码 + */ + private String code; + + /** + * 层级 + */ + private String level; + /** + * 库存 + */ + private Integer storageNum; + /** + * 计量单位id + */ + private String unitId; + + /** + * 计量单位名称 + */ + private String unitName; + /** + * 采购单价 + */ + private Integer buyPrice; + /** + * 租赁单价 + */ + private Integer leasePrice; + /** + * 管理类型(0是编码 1数量) + */ + private String manageType; + /** + * 是否启用 + */ + private String isActive; + /** + * 额定载荷 + */ + private String rateLoad; + /** + * 试验载荷 + */ + private String testLoad; + /** + * 持荷时间 (分钟) + */ + private String holdTime; + /** + * 文件路径 + */ + private String fileUrl; + /** + * 数据所属 + */ + private String companyId; + + /** + * 是否试验(0 否 1是) + */ + private String isTest; + + /** 子节点 */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children = new ArrayList<>(); + +} + diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/SysDeptTree.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/SysDeptTree.java new file mode 100644 index 00000000..2482c4e1 --- /dev/null +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/SysDeptTree.java @@ -0,0 +1,89 @@ +package com.bonus.common.biz.domain; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 部门表(SysDept)实体类 + * + * @author makejava + * @since 2024-08-15 13:44:56 + */ +@Data +public class SysDeptTree implements Serializable { + + private static final long serialVersionUID = 991828482042492876L; + + /** + * 二级树标识 1代表查询二级树 + */ + private Integer isTree; + + /** + * 更新时间 + */ + private Date updateTime; + /** + * 更新者 + */ + private String updateBy; + /** + * 创建时间 + */ + private Date createTime; + /** + * 创建者 + */ + private String createBy; + /** + * 删除标志(0代表存在 2代表删除) + */ + private String delFlag; + /** + * 部门状态(0正常 1停用) + */ + private String status; + /** + * 邮箱 + */ + private String email; + /** + * 联系电话 + */ + private String phone; + /** + * 负责人 + */ + private String leader; + /** + * 显示顺序 + */ + private Integer orderNum; + /** + * 部门名称 + */ + private String deptName; + /** + * 祖级列表 + */ + private String ancestors; + /** + * 父部门id + */ + private String parentId; + /** + * 部门id + */ + private String deptId; + + /** 子节点 */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children = new ArrayList<>(); + +} + diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/TreeSelect.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/TreeSelect.java new file mode 100644 index 00000000..6318aaf7 --- /dev/null +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/TreeSelect.java @@ -0,0 +1,65 @@ +package com.bonus.common.biz.domain; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.List; +import java.util.stream.Collectors; + +/** + * TreeSelect树结构实体类 + * @author ruoyi + */ +@Setter +@Getter +public class TreeSelect implements Serializable +{ + private static final long serialVersionUID = 1L; + + /** 节点ID */ + private Integer id; + + /** 节点名称 */ + private String label; + + private Integer level; + + /** + * 编码 + */ + private String code; + + private Integer parentId; + + private String companyId; + + /** 子节点 */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children; + + private List userList; + + public TreeSelect(SysDeptTree dept) { + this.id = Integer.valueOf(dept.getDeptId()); + this.parentId = Integer.valueOf(dept.getParentId()); + this.label = dept.getDeptName(); + this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + public TreeSelect(MaType maType) { + this.parentId = Integer.valueOf(maType.getParentId()); + this.code = maType.getCode(); + this.level = Integer.valueOf(maType.getLevel()); + this.id = Integer.valueOf(maType.getId()); + this.label = maType.getName(); + this.companyId = maType.getCompanyId(); + this.children = maType.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + public TreeSelect() { + + } +} + diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmUnitPersonController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmUnitPersonController.java index c1b2c9e2..d71fc907 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmUnitPersonController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmUnitPersonController.java @@ -2,6 +2,9 @@ package com.bonus.material.basic.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; + +import com.bonus.common.biz.domain.SysDeptTree; +import com.bonus.common.biz.domain.TreeSelect; import com.bonus.common.log.enums.OperaType; import com.bonus.material.common.annotation.PreventRepeatSubmit; import io.swagger.annotations.Api; @@ -51,6 +54,16 @@ public class BmUnitPersonController extends BaseController return getDataTable(list); } + /** + * 查询部门用户下拉树 + */ + @ApiOperation(value = "查询部门用户下拉树") + @GetMapping("/getDeptUserTree") + public AjaxResult selectDeptTree(SysDeptTree sysDept) { + List deptList = bmUnitPersonService.selectDeptTree(sysDept); + return AjaxResult.success(deptList); + } + /** * 导出往来单位管理列表 */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmUnitTypeController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmUnitTypeController.java index 751a7d6c..4364595d 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmUnitTypeController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmUnitTypeController.java @@ -41,11 +41,14 @@ public class BmUnitTypeController extends BaseController { @ApiOperation(value = "查询往来单位类型管理列表") @RequiresPermissions("basic:unitType:list") @GetMapping("/list") - public TableDataInfo list(BmUnitType bmUnitType) + public AjaxResult list(BmUnitType bmUnitType) { + if (bmUnitType.getIsAll() != null) { + return AjaxResult.success(bmUnitTypeService.selectBmUnitList(bmUnitType)); + } startPage(); List list = bmUnitTypeService.selectBmUnitList(bmUnitType); - return getDataTable(list); + return AjaxResult.success(getDataTable(list)); } @ApiOperation(value = "获取往来单位类型详细信息") diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmUnitType.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmUnitType.java index 4b06402f..9a4a0fe6 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmUnitType.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmUnitType.java @@ -12,6 +12,8 @@ import lombok.Data; @Data public class BmUnitType extends BaseEntity { + private Integer isAll; + @ApiModelProperty(value = "主键id") private Long typeId; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmUnitPersonMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmUnitPersonMapper.java index dc5bfe89..0031eb27 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmUnitPersonMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmUnitPersonMapper.java @@ -1,6 +1,8 @@ package com.bonus.material.basic.mapper; import java.util.List; + +import com.bonus.common.biz.domain.SysDeptTree; import com.bonus.material.basic.domain.BmUnitPerson; /** @@ -58,4 +60,11 @@ public interface BmUnitPersonMapper * @return 结果 */ public int deleteBmUnitPersonByIDs(Long[] IDs); + + /** + * 查询部门树 + * @param sysDept + * @return + */ + List selectDeptTree(SysDeptTree sysDept); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmUnitTypeMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmUnitTypeMapper.java index fd6be0f7..a026fe47 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmUnitTypeMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmUnitTypeMapper.java @@ -50,4 +50,11 @@ public interface BmUnitTypeMapper { * @return */ int deleteBmUnitTypeByUnitTypeIds(Long typeId); + + /** + * 根据主键查询单位类型 + * @param typeId + * @return + */ + int select(Long typeId); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/IBmUnitPersonService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/IBmUnitPersonService.java index f754ef52..49f268df 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/IBmUnitPersonService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/IBmUnitPersonService.java @@ -1,6 +1,9 @@ package com.bonus.material.basic.service; import java.util.List; + +import com.bonus.common.biz.domain.SysDeptTree; +import com.bonus.common.biz.domain.TreeSelect; import com.bonus.material.basic.domain.BmUnitPerson; /** @@ -58,4 +61,11 @@ public interface IBmUnitPersonService * @return 结果 */ public int deleteBmUnitPersonByID(Long ID); + + /** + * 查询部门下拉树结构 + * @param sysDept + * @return + */ + List selectDeptTree(SysDeptTree sysDept); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmUnitPersonServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmUnitPersonServiceImpl.java index 7532dec7..f1d33062 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmUnitPersonServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmUnitPersonServiceImpl.java @@ -1,7 +1,14 @@ package com.bonus.material.basic.service.impl; +import java.util.ArrayList; +import java.util.Iterator; import java.util.List; +import java.util.stream.Collectors; + +import com.bonus.common.biz.domain.SysDeptTree; +import com.bonus.common.biz.domain.TreeSelect; import com.bonus.common.core.utils.DateUtils; +import com.bonus.common.core.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.bonus.material.basic.mapper.BmUnitPersonMapper; @@ -93,4 +100,74 @@ public class BmUnitPersonServiceImpl implements IBmUnitPersonService { return bmUnitPersonMapper.deleteBmUnitPersonByID(ID); } + + /** + * 查询部门下拉树结构 + * @param sysDept + * @return + */ + @Override + public List selectDeptTree(SysDeptTree sysDept) { + List deptList = bmUnitPersonMapper.selectDeptTree(sysDept); + return buildDeptTreeSelect(deptList); + } + + private List buildDeptTreeSelect(List deptList) { + List deptTrees = buildDeptTree(deptList); + return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + private List buildDeptTree(List deptList) { + List returnList = new ArrayList<>(); + List tempList = deptList.stream().map(SysDeptTree::getDeptId).collect(Collectors.toList()); + for (SysDeptTree sysDept : deptList) { + // 如果是顶级节点, 遍历该父节点的所有子节点 + if (!tempList.contains(sysDept.getParentId())) { + recursionFn(deptList, sysDept); + returnList.add(sysDept); + } + } + if (returnList.isEmpty()) { + returnList = deptList; + } + return returnList; + } + + /** + * 递归列表 + */ + private void recursionFn(List list, SysDeptTree t) { + // 得到子节点列表 + List childList = getChildList(list, t); + t.setChildren(childList); + for (SysDeptTree tChild : childList) { + if (hasChild(list, tChild)) { + recursionFn(list, tChild); + } + } + } + + /** + * 得到子节点列表 + */ + private List getChildList(List list, SysDeptTree t) { + List tlist = new ArrayList<>(); + Iterator it = list.iterator(); + while (it.hasNext()) { + SysDeptTree n = (SysDeptTree) it.next(); + if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().equals(t.getDeptId())) { + tlist.add(n); + } + } + return tlist; + } + + /** + * 判断是否有子节点 + */ + private boolean hasChild(List list, SysDeptTree t) { + return getChildList(list, t).size() > 0 ? true : false; + } + + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmUnitTypeServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmUnitTypeServiceImpl.java index 810a986b..3295096b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmUnitTypeServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmUnitTypeServiceImpl.java @@ -2,9 +2,11 @@ package com.bonus.material.basic.service.impl; import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.biz.enums.HttpCodeEnum; +import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.security.utils.SecurityUtils; import com.bonus.material.basic.domain.BmUnitType; import com.bonus.material.basic.mapper.BmUnitTypeMapper; import com.bonus.material.basic.service.IBmUnitTypeService; @@ -66,6 +68,8 @@ public class BmUnitTypeServiceImpl implements IBmUnitTypeService { if (unitType != null) { return AjaxResult.error(HttpCodeEnum.NAME_DUPLICATE.getCode(), HttpCodeEnum.NAME_DUPLICATE.getMsg()); } + bmUnitType.setCreateBy(SecurityUtils.getUserId().toString()); + bmUnitType.setCreateTime(DateUtils.getNowDate()); int result = bmUnitTypeMapper.insertBmUnitType(bmUnitType); if (result > 0) { return AjaxResult.success(); @@ -87,6 +91,8 @@ public class BmUnitTypeServiceImpl implements IBmUnitTypeService { return AjaxResult.error(HttpCodeEnum.NAME_DUPLICATE.getCode(), HttpCodeEnum.NAME_DUPLICATE.getMsg()); } } + bmUnitType.setUpdateBy(SecurityUtils.getUserId().toString()); + bmUnitType.setUpdateTime(DateUtils.getNowDate()); int result = bmUnitTypeMapper.updateBmUnitType(bmUnitType); if (result > 0) { return AjaxResult.success(); @@ -102,6 +108,10 @@ public class BmUnitTypeServiceImpl implements IBmUnitTypeService { @Override public AjaxResult deleteBmUnitTypeByUnitTypeIds(Long typeId) { //首先根据单位类型查询是否关联单位 + int count = bmUnitTypeMapper.select(typeId); + if (count > 0) { + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "该单位类型关联相关单位,无法删除"); + } int result = bmUnitTypeMapper.deleteBmUnitTypeByUnitTypeIds(typeId); if (result > 0) { return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg(), result); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmUnitPersonMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmUnitPersonMapper.xml index 9adb072a..717054d4 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmUnitPersonMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmUnitPersonMapper.xml @@ -28,7 +28,54 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where ID = #{ID} - + + + insert into bm_unit_person diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmUnitTypeMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmUnitTypeMapper.xml index eb59f898..21fe9b0c 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmUnitTypeMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmUnitTypeMapper.xml @@ -58,4 +58,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select type_id as typeId, type_name as typeName, company_id as companyId, del_flag as delFlag from bm_unit_type where del_flag = '0' and type_name = #{typeName} + + \ No newline at end of file