优化及bug修复

This commit is contained in:
mashuai 2025-07-05 13:22:39 +08:00
parent 6e43c00a91
commit 6e438a67e8
8 changed files with 233 additions and 54 deletions

View File

@ -93,4 +93,16 @@ public class BmUnit extends BaseEntity
*/
private Boolean enableFilter;
@ApiModelProperty(value = "领用申请id")
private Long leaseId;
@ApiModelProperty(value = "授权人")
private String leasePerson;
@ApiModelProperty(value = "授权人身份证号")
private String idCard;
/** 班组ID */
private Long teamId;
}

View File

@ -198,4 +198,11 @@ public class MaterialRetainedEquipmentInfo {
* 班组长账号
*/
private String teamLeaderIdCard;
@ApiModelProperty(value = "工程id")
private String proId;
@ApiModelProperty(value = "工程名称")
@Excel(name = "工程名称")
private String proName;
}

View File

@ -31,6 +31,36 @@ public class SelectController {
return service.getUnitList(bmUnit);
}
/**
* todo 领用申请往来单位下拉选专用
* @param bmUnit
* @return
*/
@ApiOperation(value = "领用申请往来单位下拉选")
@PostMapping("getUnitListLease")
public AjaxResult getUnitListLease(@RequestBody BmUnit bmUnit) {
try {
return service.getUnitListLease(bmUnit);
} catch (Exception e) {
return AjaxResult.error("获取数据失败");
}
}
/**
* todo 领用申请往来单位授权人员下拉
* @param bmUnit
* @return
*/
@ApiOperation(value = "领用申请往来单位授权人员下拉")
@PostMapping("getUnitListLeasePerson")
public AjaxResult getUnitListLeasePerson(@RequestBody BmUnit bmUnit) {
try {
return service.getUnitListLeasePerson(bmUnit);
} catch (Exception e) {
return AjaxResult.error("获取数据失败");
}
}
@ApiOperation(value = "工程下拉选")
@PostMapping("getProjectList")
public AjaxResult getProjectList(@RequestBody BmProject bmProject) {

View File

@ -200,4 +200,23 @@ public interface SelectMapper {
* @return
*/
List<AgreementVo> getAgreementInfoBy(SelectDto dto);
/**
* 获取班组下拉选
* @return
*/
List<ProjectTreeNode> getTeam();
/**
* 获取领用申请单位下拉
* @return
*/
List<ProjectTreeNode> getTeamLeaseList(BmUnit bmUnit);
/**
* 获取领用申请单位下拉
* @param bmUnit
* @return
*/
List<BmUnit> getUnitListLeasePerson(BmUnit bmUnit);
}

View File

@ -227,4 +227,18 @@ public interface SelectService {
* @return
*/
AjaxResult getProjectInfo(BmProject bmProject);
/**
* 领用申请往来单位下拉选专用
* @param bmUnit
* @return
*/
AjaxResult getUnitListLease(BmUnit bmUnit);
/**
* 领用申请往来单位授权人员下拉
* @param bmUnit
* @return
*/
AjaxResult getUnitListLeasePerson(BmUnit bmUnit);
}

View File

@ -56,11 +56,24 @@ public class SelectServiceImpl implements SelectService {
List<ProjectTreeNode> list;
try {
list = mapper.getUnitList(bmUnit);
list = list.stream()
.filter(Objects::nonNull)
.filter(unit -> unit.getId() != null && unit.getParentId() != null)
.collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(list)) {
// 创建树形结构数据集合作为参数
ProjectTreeBuild treeBuild = new ProjectTreeBuild(list);
// 原查询结果转换树形结构
groupList = treeBuild.buildTree();
if (bmUnit.getDeptId() != null) {
groupList = treeBuild.buildTree();
} else {
groupList = treeBuild.buildTree();
// 获取已授权班组进行数据拼接
List<ProjectTreeNode> newList = mapper.getTeam();
if (CollectionUtils.isNotEmpty(newList)) {
groupList.addAll(newList);
}
}
}
} catch (Exception e) {
log.error("单位类型树-查询失败", e);
@ -177,6 +190,66 @@ public class SelectServiceImpl implements SelectService {
return AjaxResult.success(list);
}
/**
* 领用申请往来单位下拉选专用
* @param bmUnit
* @return
*/
@Override
public AjaxResult getUnitListLease(BmUnit bmUnit) {
// 获取登陆用户的组织ID
Long thisLoginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
if (null == thisLoginUserDeptId || 0 == thisLoginUserDeptId) {
return AjaxResult.success(Collections.emptyList());
}
// 判断是否开启过滤
if (Objects.nonNull(bmUnit) && Objects.nonNull(bmUnit.getEnableFilter()) && bmUnit.getEnableFilter()) {
bmUnit.setDeptId(thisLoginUserDeptId);
}
if (bmUnit.getIsApp() != null && bmUnit.getIsApp()) {
List<BmUnit> list = mapper.getUnitListApp(bmUnit);
return AjaxResult.success(list);
}
List<ProjectTreeNode> groupList = new ArrayList<>();
List<ProjectTreeNode> list;
try {
list = mapper.getUnitList(bmUnit);
list = list.stream()
.filter(Objects::nonNull)
.filter(unit -> unit.getId() != null && unit.getParentId() != null)
.collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(list)) {
// 创建树形结构数据集合作为参数
ProjectTreeBuild treeBuild = new ProjectTreeBuild(list);
// 原查询结果转换树形结构
if (bmUnit.getDeptId() != null) {
groupList = treeBuild.buildTree();
} else if (bmUnit.getProjectId() != null && bmUnit.getLeaseId() != null) {
groupList = treeBuild.buildTree();
// 获取已授权班组进行数据拼接
List<ProjectTreeNode> newList = mapper.getTeamLeaseList(bmUnit);
if (CollectionUtils.isNotEmpty(newList)) {
groupList.addAll(newList);
}
}
}
} catch (Exception e) {
log.error("单位类型树-查询失败", e);
}
return AjaxResult.success(groupList);
}
/**
* 领用申请往来单位授权人员下拉
* @param bmUnit
* @return
*/
@Override
public AjaxResult getUnitListLeasePerson(BmUnit bmUnit) {
return AjaxResult.success(mapper.getUnitListLeasePerson(bmUnit));
}
// @Override
// public AjaxResult getDictByPidCbx(SelectDto dto) {
// List<SelectVo> list = new ArrayList<>();

View File

@ -58,11 +58,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mt2.type_id AS thirdTypeId,
mt.type_name AS typeModelName,
mt.unit_name AS unit,
IFNULL(mt.lease_price, 0) AS buyPrice,
IFNULL(mt.lease_price, 0) AS buyPrice,
subquery3.proId AS proId,
subquery3.proName AS proName,
IFNULL(subquery1.usNum, 0) AS storeNum,
IFNULL(subquery3.usNum, 0) AS usNum,
IFNULL(subquery1.usNum, 0) + IFNULL(subquery3.usNum, 0)
AS allNum,
AS allNum,
CASE mt.manage_type
WHEN 0 THEN
'编码'
@ -80,71 +82,51 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mt2.type_name AS typeName,
mt2.type_id AS thirdTypeId,
mt.type_name AS typeModelName,
SUM(IFNULL( sai.num, 0 )) AS usNum
SUM(IFNULL( sai.num, 0 )) AS usNum,
bp.pro_name as proName,
bp.pro_id as proId
FROM
slt_agreement_info sai
LEFT JOIN ma_type mt ON mt.type_id = sai.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id
LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id
LEFT JOIN bm_agreement_info bai ON sai.agreement_id = bai.agreement_id
LEFT JOIN bm_project bp ON bai.project_id = bp.pro_id
WHERE
sai.`status` = '0'
AND sai.end_time IS NULL
AND sai.back_id IS NULL
GROUP BY mt.type_id
GROUP BY mt.type_id, bp.pro_id
) AS subquery1
ON mt.type_id = subquery1.type_id
LEFT JOIN (
SELECT
subquery3.type_id,
subquery3.typeName,
subquery3.typeModelName,
IFNULL(subquery3.outNum, 0) AS outNum,
IFNULL(subquery4.backNum, 0) AS backNum,
CASE
WHEN IFNULL(subquery3.outNum, 0) - IFNULL(subquery4.backNum, 0) > 0 THEN
IFNULL(subquery3.outNum, 0) - IFNULL(subquery4.backNum, 0)
ELSE 0
END AS usNum
FROM (
SELECT
mt.type_id,
mt4.type_name AS constructionType,
mt4.type_id AS firstTypeId,
mt3.type_name AS materialType,
mt3.type_id AS secondTypeId,
mt2.type_name AS typeName,
mt2.type_id AS thirdTypeId,
mt.type_name AS typeModelName,
SUM(IFNULL(lod.out_num, 0)) AS outNum
FROM clz_lease_out_details lod
LEFT JOIN ma_type mt ON mt.type_id = lod.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id
LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id
WHERE lod.is_finished = '1'
GROUP BY mt.type_id) AS subquery3
LEFT JOIN (
SELECT
mt.type_id,
mt4.type_name AS constructionType,
mt4.type_id AS firstTypeId,
mt4.type_id AS firstTypeId,
mt3.type_name AS materialType,
mt3.type_id AS secondTypeId,
mt2.type_name AS typeName,
mt2.type_id AS thirdTypeId,
mt.type_name AS typeModelName,
SUM(IFNULL(bcd.back_num, 0)) backNum
FROM clz_back_check_details bcd
LEFT JOIN ma_type mt ON mt.type_id = bcd.type_id
mt3.type_id AS secondTypeId,
mt2.type_name AS typeName,
mt2.type_id AS thirdTypeId,
mt.type_name AS typeModelName,
SUM(IFNULL( sai.num, 0 )) AS usNum,
bp.pro_name as proName,
bp.pro_id as proId
FROM
clz_slt_agreement_info sai
LEFT JOIN ma_type mt ON mt.type_id = sai.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id
LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id
LEFT JOIN ma_machine mm ON mm.ma_id = bcd.ma_id
WHERE bcd.is_finished = '1'
GROUP BY mt.type_id) AS subquery4
ON subquery3.type_id = subquery4.type_id) AS subquery3
LEFT JOIN clz_bm_agreement_info bai ON sai.agreement_id = bai.agreement_id
LEFT JOIN bm_project bp ON bai.project_id = bp.pro_id
WHERE
sai.`status` = '0'
AND sai.end_time IS NULL
AND sai.back_id IS NULL
GROUP BY mt.type_id, bp.pro_id
) AS subquery3
ON mt.type_id = subquery3.type_id
LEFT JOIN ma_type mt2 on mt2.type_id = mt.parent_id
LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id
@ -172,6 +154,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="typeModelName != null and typeModelName != ''">
and mt.type_name like concat('%',#{typeModelName},'%')
</if>
GROUP BY
mt.type_id,
subquery3.proId
</select>
<select id="getMaCodeList"

View File

@ -461,7 +461,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM
bm_unit
WHERE
type_id = 1731
del_flag = '0'
and type_id = 1731
</select>
<select id="getAgreementInfoBy" resultType="com.bonus.material.common.domain.vo.AgreementVo">
@ -477,9 +478,47 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
AND bu.type_id = 36
AND bai.project_id = #{projectId}
</select>
<!-- <select id="getTeamList" resultType="com.bonus.material.common.domain.vo.SelectVo">-->
<!-- SELECT id,-->
<!-- team_name as `name`-->
<!-- FROM `lease_team_info`-->
<!-- </select>-->
<select id="getTeam" resultType="com.bonus.common.biz.domain.ProjectTreeNode">
SELECT
DISTINCT bu.unit_id as id,
bu.unit_name AS name
FROM
bm_unit bu
LEFT JOIN pro_authorize_info pa ON bu.unit_id = pa.team_id
WHERE
bu.del_flag = '0' and pa.del_flag = '0'
and bu.type_id = 1731
</select>
<select id="getTeamLeaseList" resultType="com.bonus.common.biz.domain.ProjectTreeNode">
SELECT
bu.unit_id AS id,
bu.unit_name AS name
FROM
bm_unit bu
LEFT JOIN bm_agreement_info bai ON bu.unit_id = bai.unit_id
LEFT JOIN pro_authorize_info pa ON bu.unit_id = pa.team_id
WHERE
bai.`status` = '1'
AND bai.project_id = #{projectId}
AND pa.lease_id = #{leaseId}
AND bu.del_flag = '0'
AND pa.del_flag = '0'
AND bu.type_id = 1731
</select>
<select id="getUnitListLeasePerson" resultType="com.bonus.material.basic.domain.BmUnit">
SELECT
pau.`name` as leasePerson,
pau.id_number as idCard
FROM
pro_authorize_info pai
LEFT JOIN pro_authorize_user pau ON pai.id = pau.parent_id
AND pau.del_flag = '0'
WHERE
pai.del_flag = '0'
AND pai.lease_id = #{leaseId}
and pai.team_id = #{teamId}
</select>
</mapper>