退料接收
This commit is contained in:
parent
e3476a9dd4
commit
40b5c43c55
|
|
@ -0,0 +1,77 @@
|
|||
package com.bonus.common.biz.domain;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 单位、工程树构建
|
||||
* @author ma_sh
|
||||
*/
|
||||
public class ProjectTreeBuild {
|
||||
|
||||
public List<ProjectTreeNode> nodeList = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* 构造方法
|
||||
* @param nodeList 将数据集合赋值给nodeList,即所有数据作为所有节点。
|
||||
*/
|
||||
public ProjectTreeBuild(List<ProjectTreeNode> nodeList) {
|
||||
this.nodeList = nodeList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取需构建的所有根节点(顶级节点) "0"
|
||||
* @return 所有根节点List集合
|
||||
*/
|
||||
public List<ProjectTreeNode> getRootNode() {
|
||||
// 保存所有根节点(所有根节点的数据)
|
||||
List<ProjectTreeNode> rootNodeList = new ArrayList<>();
|
||||
// treeNode:查询出的每一条数据(节点)
|
||||
for (ProjectTreeNode treeNode : nodeList){
|
||||
// 判断当前节点是否为根节点,此处注意:若parentId类型是String,则要采用equals()方法判断。
|
||||
if ("0".equals(treeNode.getParentId())) {
|
||||
// 是,添加
|
||||
rootNodeList.add(treeNode);
|
||||
}
|
||||
}
|
||||
return rootNodeList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据每一个顶级节点(根节点)进行构建树形结构
|
||||
* @return 构建整棵树
|
||||
*/
|
||||
public List<ProjectTreeNode> buildTree(){
|
||||
// treeNodes:保存一个顶级节点所构建出来的完整树形
|
||||
List<ProjectTreeNode> treeNodes = new ArrayList<ProjectTreeNode>();
|
||||
// getRootNode():获取所有的根节点
|
||||
for (ProjectTreeNode treeRootNode : getRootNode()) {
|
||||
// 将顶级节点进行构建子树
|
||||
treeRootNode = buildChildTree(treeRootNode);
|
||||
// 完成一个顶级节点所构建的树形,增加进来
|
||||
treeNodes.add(treeRootNode);
|
||||
}
|
||||
return treeNodes;
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归-----构建子树形结构
|
||||
* @param pNode 根节点(顶级节点)
|
||||
* @return 整棵树
|
||||
*/
|
||||
public ProjectTreeNode buildChildTree(ProjectTreeNode pNode){
|
||||
List<ProjectTreeNode> childTree = new ArrayList<>();
|
||||
// nodeList:所有节点集合(所有数据)
|
||||
for (ProjectTreeNode treeNode : nodeList) {
|
||||
// 判断当前节点的父节点ID是否等于根节点的ID,即当前节点为其下的子节点
|
||||
if (treeNode.getParentId().equals(pNode.getId())) {
|
||||
// 再递归进行判断当前节点的情况,调用自身方法
|
||||
childTree.add(buildChildTree(treeNode));
|
||||
}
|
||||
}
|
||||
// for循环结束,即节点下没有任何节点,树形构建结束,设置树结果
|
||||
pNode.setChildren(childTree);
|
||||
return pNode;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package com.bonus.common.biz.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 单位、工程节点返回实体类
|
||||
* @author ma_sh
|
||||
*/
|
||||
@Data
|
||||
public class ProjectTreeNode {
|
||||
|
||||
private String id;
|
||||
|
||||
private String name;
|
||||
|
||||
private String parentId;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||
private String level;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||
private List<ProjectTreeNode> children = new ArrayList<>();
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package com.bonus.material.common.mapper;
|
||||
|
||||
import com.bonus.common.biz.domain.ProjectTreeNode;
|
||||
import com.bonus.common.biz.domain.TreeNode;
|
||||
import com.bonus.common.biz.domain.TypeTreeNode;
|
||||
import com.bonus.material.back.domain.BackApplyInfo;
|
||||
|
|
@ -25,7 +26,7 @@ public interface SelectMapper {
|
|||
* @author cwchen
|
||||
* @date 2023/12/20 14:23
|
||||
*/
|
||||
List<BmUnit> getUnitList(BmUnit bmUnit);
|
||||
List<ProjectTreeNode> getUnitList(BmUnit bmUnit);
|
||||
|
||||
/**
|
||||
* 工程下拉选
|
||||
|
|
@ -35,7 +36,7 @@ public interface SelectMapper {
|
|||
* @author cwchen
|
||||
* @date 2023/12/20 15:05
|
||||
*/
|
||||
List<BmProject> getProjectList(BmProject bmProject);
|
||||
List<ProjectTreeNode> getProjectList(BmProject bmProject);
|
||||
|
||||
/**
|
||||
* 机具类型下拉选
|
||||
|
|
|
|||
|
|
@ -1,10 +1,6 @@
|
|||
package com.bonus.material.common.service.impl;
|
||||
|
||||
import com.bonus.common.biz.constant.GlobalConstants;
|
||||
import com.bonus.common.biz.domain.TreeBuild;
|
||||
import com.bonus.common.biz.domain.TreeNode;
|
||||
import com.bonus.common.biz.domain.TypeTreeBuild;
|
||||
import com.bonus.common.biz.domain.TypeTreeNode;
|
||||
import com.bonus.common.biz.domain.*;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.material.back.domain.BackApplyInfo;
|
||||
import com.bonus.material.basic.domain.BmProject;
|
||||
|
|
@ -33,27 +29,50 @@ public class SelectServiceImpl implements SelectService {
|
|||
@Resource(name = "SelectMapper")
|
||||
private SelectMapper mapper;
|
||||
|
||||
/**
|
||||
* 单位下拉类型树
|
||||
* @param bmUnit
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public AjaxResult getUnitList(BmUnit bmUnit) {
|
||||
List<BmUnit> list = new ArrayList<>();
|
||||
List<ProjectTreeNode> groupList = new ArrayList<>();
|
||||
List<ProjectTreeNode> list = new ArrayList<>();
|
||||
try {
|
||||
list = mapper.getUnitList(bmUnit);
|
||||
} catch (Exception e) {
|
||||
log.error("往来单位-查询失败", e);
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
// 创建树形结构(数据集合作为参数)
|
||||
ProjectTreeBuild treeBuild = new ProjectTreeBuild(list);
|
||||
// 原查询结果转换树形结构
|
||||
groupList = treeBuild.buildTree();
|
||||
}
|
||||
return AjaxResult.success(list);
|
||||
} catch (Exception e) {
|
||||
log.error("单位类型树-查询失败", e);
|
||||
}
|
||||
return AjaxResult.success(groupList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 工程类型树
|
||||
* @param bmProject
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public AjaxResult getProjectList(BmProject bmProject) {
|
||||
List<ProjectTreeNode> groupList = new ArrayList<>();
|
||||
List<ProjectTreeNode> list = new ArrayList<>();
|
||||
try {
|
||||
List<BmProject> list = mapper.getProjectList(bmProject);
|
||||
list.removeIf(item -> item == null);
|
||||
return AjaxResult.success(list);
|
||||
} catch (Exception e) {
|
||||
log.error("工程-查询失败", e);
|
||||
list = mapper.getProjectList(bmProject);
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
// 创建树形结构(数据集合作为参数)
|
||||
ProjectTreeBuild treeBuild = new ProjectTreeBuild(list);
|
||||
// 原查询结果转换树形结构
|
||||
groupList = treeBuild.buildTree();
|
||||
}
|
||||
return AjaxResult.success();
|
||||
} catch (Exception e) {
|
||||
log.error("工程类型树-查询失败", e);
|
||||
}
|
||||
return AjaxResult.success(groupList);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -4,42 +4,76 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.bonus.material.common.mapper.SelectMapper">
|
||||
<!--往来单位-->
|
||||
<select id="getUnitList" resultType="com.bonus.material.basic.domain.BmUnit">
|
||||
<select id="getUnitList" resultType="com.bonus.common.biz.domain.ProjectTreeNode">
|
||||
/*根据标段工程id关联协议查询往来单位*/
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
CONCAT( 'dw', sd.dept_id ) AS id,
|
||||
sd.dept_name AS NAME,
|
||||
0 AS parentId,
|
||||
1 AS LEVEL
|
||||
FROM
|
||||
sys_dept sd
|
||||
LEFT JOIN bm_unit bu ON sd.dept_id = bu.dept_id
|
||||
LEFT JOIN bm_agreement_info bai ON bu.unit_id = bai.unit_id
|
||||
AND bai.`status` = '1'
|
||||
LEFT JOIN bm_project bp ON bai.project_id = bp.pro_id
|
||||
AND bp.del_flag = '0'
|
||||
WHERE
|
||||
bu.del_flag = '0'
|
||||
AND sd.del_flag = '0'
|
||||
AND sd.`status` = '0'
|
||||
<if test="projectId != null">
|
||||
SELECT DISTINCT bu.unit_id AS unitId,
|
||||
bu.unit_name AS unitName
|
||||
FROM bm_project bpl
|
||||
LEFT JOIN bm_agreement_info bai ON bpl.pro_id = bai.project_id AND bai.`status` = '1'
|
||||
LEFT JOIN bm_unit bu ON bai.unit_id = bu.unit_id AND bu.del_flag = '0'
|
||||
WHERE bpl.pro_id = #{projectId} AND bpl.del_flag = '0'
|
||||
AND bp.pro_id = #{projectId}
|
||||
</if>
|
||||
<if test="projectId == null">
|
||||
SELECT unit_id AS unitId,
|
||||
unit_name AS unitName
|
||||
FROM bm_unit
|
||||
WHERE del_flag = '0'
|
||||
UNION
|
||||
SELECT DISTINCT
|
||||
CONCAT( 'lx', bu.dept_id, '-', sda.dict_code ) AS id,
|
||||
sda.dict_label AS NAME,
|
||||
CONCAT( 'dw', bu.dept_id ) AS parentId,
|
||||
2 AS LEVEL
|
||||
FROM
|
||||
bm_unit bu
|
||||
LEFT JOIN sys_dict_data sda ON bu.type_id = sda.dict_value
|
||||
AND sda.dict_type = 'bm_unit_type'
|
||||
LEFT JOIN bm_agreement_info bai ON bu.unit_id = bai.unit_id
|
||||
AND bai.`status` = '1'
|
||||
LEFT JOIN bm_project bp ON bai.project_id = bp.pro_id
|
||||
AND bp.del_flag = '0'
|
||||
WHERE
|
||||
bu.del_flag = '0'
|
||||
AND sda.STATUS = '0'
|
||||
<if test="projectId != null">
|
||||
AND bp.pro_id = #{projectId}
|
||||
</if>
|
||||
UNION
|
||||
SELECT
|
||||
bu.unit_id AS id,
|
||||
bu.unit_name AS NAME,
|
||||
CONCAT( 'lx', bu.dept_id, '-', sda.dict_code ) AS parentId,
|
||||
3 AS LEVEL
|
||||
FROM
|
||||
bm_unit bu
|
||||
LEFT JOIN sys_dict_data sda ON bu.type_id = sda.dict_value
|
||||
AND sda.dict_type = 'bm_unit_type'
|
||||
LEFT JOIN bm_agreement_info bai ON bu.unit_id = bai.unit_id
|
||||
AND bai.`status` = '1'
|
||||
LEFT JOIN bm_project bp ON bai.project_id = bp.pro_id
|
||||
AND bp.del_flag = '0'
|
||||
WHERE
|
||||
bu.del_flag = '0'
|
||||
AND sda.STATUS = '0'
|
||||
<if test="projectId != null">
|
||||
AND bp.pro_id = #{projectId}
|
||||
</if>
|
||||
) ff
|
||||
ORDER BY
|
||||
LEVEL
|
||||
</select>
|
||||
|
||||
<!--标段工程-->
|
||||
<select id="getProjectList" resultType="com.bonus.material.basic.domain.BmProject">
|
||||
/*根据往来单位id关联协议查询工程*/
|
||||
<if test="unitId != null">
|
||||
SELECT DISTINCT bp.pro_id AS proId,
|
||||
bp.pro_name AS proName
|
||||
FROM bm_unit bu
|
||||
LEFT JOIN bm_agreement_info bai ON bu.unit_id = bai.unit_id AND bai.`status` = '1'
|
||||
LEFT JOIN bm_project bp ON bai.project_id = bp.pro_id AND bp.del_flag = '0'
|
||||
WHERE bu.unit_id = #{unitId} AND bu.del_flag = '0'
|
||||
</if>
|
||||
<if test="unitId == null">
|
||||
SELECT pro_id AS proId,
|
||||
pro_name AS proName
|
||||
FROM bm_project
|
||||
WHERE del_flag = '0'
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!--机具类型-->
|
||||
<select id="getMaTypeData" resultType="com.bonus.material.common.domain.vo.SelectVo">
|
||||
|
|
@ -221,4 +255,54 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<select id="getProjectList" resultType="com.bonus.common.biz.domain.ProjectTreeNode">
|
||||
/*根据往来单位id关联协议查询工程*/
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
bmp.pro_id AS id,
|
||||
bmp.pro_name AS name,
|
||||
concat( 'gs', bmp.imp_unit ) AS parentId,
|
||||
2 AS level
|
||||
FROM
|
||||
bm_project bmp
|
||||
LEFT JOIN sys_dept sd ON sd.dept_id = bmp.imp_unit
|
||||
LEFT JOIN bm_agreement_info bai ON bai.project_id = bmp.pro_id
|
||||
AND bai.`status` = '1'
|
||||
LEFT JOIN bm_unit bu ON bu.unit_id = bai.unit_id
|
||||
AND bu.del_flag = '0'
|
||||
WHERE
|
||||
sd.del_flag = '0'
|
||||
AND sd.`status` = '0'
|
||||
AND bmp.del_flag = '0'
|
||||
<if test="unitId != null">
|
||||
AND bu.unit_id = #{unitId}
|
||||
</if>
|
||||
UNION
|
||||
SELECT DISTINCT
|
||||
concat( 'gs', sd.dept_id ) AS id,
|
||||
sd.dept_name AS proName,
|
||||
'0' AS parentId,
|
||||
1 AS level
|
||||
FROM
|
||||
sys_dept sd
|
||||
LEFT JOIN bm_project bmp ON sd.dept_id = bmp.imp_unit
|
||||
LEFT JOIN bm_agreement_info bai ON bai.project_id = bmp.pro_id
|
||||
AND bai.`status` = '1'
|
||||
LEFT JOIN bm_unit bu ON bu.unit_id = bai.unit_id
|
||||
WHERE
|
||||
bmp.pro_id IS NOT NULL
|
||||
AND sd.del_flag = '0'
|
||||
AND sd.`status` = '0'
|
||||
AND bmp.del_flag = '0'
|
||||
<if test="unitId != null">
|
||||
AND bu.unit_id = #{unitId}
|
||||
</if>
|
||||
) a
|
||||
ORDER BY
|
||||
level
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -88,7 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
<update id="updateNum">
|
||||
UPDATE purchase_check_details
|
||||
SET bind_num = bind_num + COALESCE(#{num}, 0)
|
||||
SET bind_num = COALESCE(bind_num, 0) + COALESCE(#{num}, 0)
|
||||
WHERE task_id = #{dto.taskId}
|
||||
AND type_id = #{dto.typeId}
|
||||
AND #{num} IS NOT NULL
|
||||
|
|
|
|||
Loading…
Reference in New Issue