diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcProjectTypeController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcProjectTypeController.java index 4e88bb5ea..e6620279b 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcProjectTypeController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcProjectTypeController.java @@ -76,6 +76,14 @@ public class QcProjectTypeController extends BaseController { return toAjax(qcProjectTypeService.insertQcProjectType(qcProjectType)); } + /** + * 方案树 + */ + @GetMapping("/projectTypeTree") + public AjaxResult projectTypeTree (QcProjectType qcProjectType) { + return success(qcProjectTypeService.selectProjectTypeTree(qcProjectType)); + } + /** * 修改检验方案维护 */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProjectType.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProjectType.java index 2f4ccba7f..a22abe7b0 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProjectType.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProjectType.java @@ -5,6 +5,9 @@ import org.apache.commons.lang3.builder.ToStringStyle; import com.op.common.core.annotation.Excel; import com.op.common.core.web.domain.BaseEntity; +import java.util.ArrayList; +import java.util.List; + /** * 检验方案维护对象 qc_project_type * @@ -57,6 +60,8 @@ public class QcProjectType extends BaseEntity { private String productGroupName; private String productGroup; + private List children = new ArrayList<>(); + public String getProductGroupName() { return productGroupName; } @@ -145,6 +150,14 @@ public class QcProjectType extends BaseEntity { this.version = version; } + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/vo/TreeSelect.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/vo/TreeSelect.java index 42cba682e..e280650c1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/vo/TreeSelect.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/vo/TreeSelect.java @@ -3,6 +3,7 @@ package com.op.quality.domain.vo; import com.fasterxml.jackson.annotation.JsonInclude; import com.op.quality.domain.QcGoal; import com.op.quality.domain.QcMaterialGroup; +import com.op.quality.domain.QcProjectType; import javax.xml.bind.annotation.XmlEnum; @@ -50,6 +51,12 @@ public class TreeSelect implements Serializable { this.children = qcGoal.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); } + public TreeSelect(QcProjectType projectType) { + this.id = projectType.getProjectTypeCode(); + this.label = projectType.getProjectTypeName(); + this.children = projectType.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); + } + public String getId() { return id; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcProjectTypeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcProjectTypeService.java index 54724c795..ce05f3c9c 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcProjectTypeService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcProjectTypeService.java @@ -3,6 +3,7 @@ package com.op.quality.service; import java.util.List; import com.op.quality.domain.QcProjectType; +import com.op.quality.domain.vo.TreeSelect; /** * 检验方案维护Service接口 @@ -58,4 +59,6 @@ public interface IQcProjectTypeService { * @return 结果 */ public int deleteQcProjectTypeById(String id); + + List selectProjectTypeTree(QcProjectType qcProjectType); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProjectTypeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProjectTypeServiceImpl.java index 10ed574a2..da44063c8 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProjectTypeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProjectTypeServiceImpl.java @@ -1,11 +1,15 @@ package com.op.quality.service.impl; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.SpringUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; +import com.op.quality.domain.vo.TreeSelect; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.mapper.QcProjectTypeMapper; @@ -106,4 +110,23 @@ public class QcProjectTypeServiceImpl implements IQcProjectTypeService { public int deleteQcProjectTypeById(String id) { return qcProjectTypeMapper.deleteQcProjectTypeById(id); } + + @Override + public List selectProjectTypeTree(QcProjectType qcProjectType) { + List qcProjectTypeList = SpringUtils.getAopProxy(this).selectQcProjectTypeList(qcProjectType); + return buildProjectTreeSelect(qcProjectTypeList); + } + + private List buildProjectTreeSelect(List qcProjectTypeList) { + // 根节点 + QcProjectType rootTree = new QcProjectType(); + rootTree.setProjectTypeCode("projectType0"); + rootTree.setProjectTypeName("检验方案"); + // 设置二级节点 + rootTree.setChildren(qcProjectTypeList); + // 因为只有二层,直接构造树 + List projectTypeTree = new ArrayList<>(); + projectTypeTree.add(rootTree); + return projectTypeTree.stream().map(TreeSelect::new).collect(Collectors.toList()); + } } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml index 6877a4b59..067d046d1 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml @@ -50,7 +50,7 @@ and attr1 = #{attr1} and factory_code = #{factoryCode} and judge = #{judge} - project_type = #{projectType} + and project_type = #{projectType} and del_flag = '0' order by create_time