退料接收
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;
|
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.TreeNode;
|
||||||
import com.bonus.common.biz.domain.TypeTreeNode;
|
import com.bonus.common.biz.domain.TypeTreeNode;
|
||||||
import com.bonus.material.back.domain.BackApplyInfo;
|
import com.bonus.material.back.domain.BackApplyInfo;
|
||||||
|
|
@ -25,7 +26,7 @@ public interface SelectMapper {
|
||||||
* @author cwchen
|
* @author cwchen
|
||||||
* @date 2023/12/20 14:23
|
* @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
|
* @author cwchen
|
||||||
* @date 2023/12/20 15:05
|
* @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;
|
package com.bonus.material.common.service.impl;
|
||||||
|
|
||||||
import com.bonus.common.biz.constant.GlobalConstants;
|
import com.bonus.common.biz.domain.*;
|
||||||
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.core.web.domain.AjaxResult;
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
import com.bonus.material.back.domain.BackApplyInfo;
|
import com.bonus.material.back.domain.BackApplyInfo;
|
||||||
import com.bonus.material.basic.domain.BmProject;
|
import com.bonus.material.basic.domain.BmProject;
|
||||||
|
|
@ -33,27 +29,50 @@ public class SelectServiceImpl implements SelectService {
|
||||||
@Resource(name = "SelectMapper")
|
@Resource(name = "SelectMapper")
|
||||||
private SelectMapper mapper;
|
private SelectMapper mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单位下拉类型树
|
||||||
|
* @param bmUnit
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AjaxResult getUnitList(BmUnit bmUnit) {
|
public AjaxResult getUnitList(BmUnit bmUnit) {
|
||||||
List<BmUnit> list = new ArrayList<>();
|
List<ProjectTreeNode> groupList = new ArrayList<>();
|
||||||
|
List<ProjectTreeNode> list = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
list = mapper.getUnitList(bmUnit);
|
list = mapper.getUnitList(bmUnit);
|
||||||
} catch (Exception e) {
|
if (CollectionUtils.isNotEmpty(list)) {
|
||||||
log.error("往来单位-查询失败", e);
|
// 创建树形结构(数据集合作为参数)
|
||||||
|
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
|
@Override
|
||||||
public AjaxResult getProjectList(BmProject bmProject) {
|
public AjaxResult getProjectList(BmProject bmProject) {
|
||||||
|
List<ProjectTreeNode> groupList = new ArrayList<>();
|
||||||
|
List<ProjectTreeNode> list = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
List<BmProject> list = mapper.getProjectList(bmProject);
|
list = mapper.getProjectList(bmProject);
|
||||||
list.removeIf(item -> item == null);
|
if (CollectionUtils.isNotEmpty(list)) {
|
||||||
return AjaxResult.success(list);
|
// 创建树形结构(数据集合作为参数)
|
||||||
} catch (Exception e) {
|
ProjectTreeBuild treeBuild = new ProjectTreeBuild(list);
|
||||||
log.error("工程-查询失败", e);
|
// 原查询结果转换树形结构
|
||||||
|
groupList = treeBuild.buildTree();
|
||||||
}
|
}
|
||||||
return AjaxResult.success();
|
} catch (Exception e) {
|
||||||
|
log.error("工程类型树-查询失败", e);
|
||||||
|
}
|
||||||
|
return AjaxResult.success(groupList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -4,42 +4,76 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.bonus.material.common.mapper.SelectMapper">
|
<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关联协议查询往来单位*/
|
/*根据标段工程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">
|
<if test="projectId != null">
|
||||||
SELECT DISTINCT bu.unit_id AS unitId,
|
AND bp.pro_id = #{projectId}
|
||||||
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'
|
|
||||||
</if>
|
</if>
|
||||||
<if test="projectId == null">
|
UNION
|
||||||
SELECT unit_id AS unitId,
|
SELECT DISTINCT
|
||||||
unit_name AS unitName
|
CONCAT( 'lx', bu.dept_id, '-', sda.dict_code ) AS id,
|
||||||
FROM bm_unit
|
sda.dict_label AS NAME,
|
||||||
WHERE del_flag = '0'
|
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>
|
</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>
|
||||||
|
|
||||||
<!--标段工程-->
|
|
||||||
<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">
|
<select id="getMaTypeData" resultType="com.bonus.material.common.domain.vo.SelectVo">
|
||||||
|
|
@ -221,4 +255,54 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
|
|
@ -88,7 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
|
||||||
<update id="updateNum">
|
<update id="updateNum">
|
||||||
UPDATE purchase_check_details
|
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}
|
WHERE task_id = #{dto.taskId}
|
||||||
AND type_id = #{dto.typeId}
|
AND type_id = #{dto.typeId}
|
||||||
AND #{num} IS NOT NULL
|
AND #{num} IS NOT NULL
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue