This commit is contained in:
mashuai 2025-11-11 11:21:00 +08:00
parent 5484ed45d6
commit aa913f67dc
7 changed files with 182 additions and 3 deletions

View File

@ -49,6 +49,17 @@ public class SelectController {
return service.getUnitList(bmUnit); return service.getUnitList(bmUnit);
} }
/**
* todo 领料申请往来单位下拉选,剔除已结算单位数据
* @param bmUnit
* @return
*/
@ApiOperation(value = "领料申请往来单位下拉选")
@PostMapping("getMaterialUnitList")
public AjaxResult getMaterialUnitList(@RequestBody BmUnit bmUnit) {
return service.getMaterialUnitList(bmUnit);
}
@ApiOperation(value = "单位下拉选--项目部--过滤班组") @ApiOperation(value = "单位下拉选--项目部--过滤班组")
@PostMapping("getUnitProDepList") @PostMapping("getUnitProDepList")
public AjaxResult getUnitProDepList(@RequestBody BmUnit bmUnit) { public AjaxResult getUnitProDepList(@RequestBody BmUnit bmUnit) {
@ -106,7 +117,7 @@ public class SelectController {
} }
/** /**
* 领料工程下拉选 * todo 领料申请工程下拉选,剔除已结算工程数据
* @param bmProject * @param bmProject
* @return * @return
*/ */

View File

@ -471,4 +471,11 @@ public interface SelectMapper {
* @return * @return
*/ */
List<ProjectTreeNode> selectMaterialProjectList(BmProject bmProject); List<ProjectTreeNode> selectMaterialProjectList(BmProject bmProject);
/**
* 获取单位下拉选
* @param bmUnit
* @return
*/
List<ProjectTreeNode> getMaterialUnitList(BmUnit bmUnit);
} }

View File

@ -304,4 +304,11 @@ public interface SelectService {
* @return * @return
*/ */
AjaxResult getMaterialProjectList(BmProject bmProject); AjaxResult getMaterialProjectList(BmProject bmProject);
/**
* 领料单位下拉选
* @param bmUnit
* @return
*/
AjaxResult getMaterialUnitList(BmUnit bmUnit);
} }

View File

@ -650,6 +650,67 @@ public class SelectServiceImpl implements SelectService {
return AjaxResult.success(groupList); return AjaxResult.success(groupList);
} }
/**
* 领料单位下拉选
* @param bmUnit
* @return
*/
@Override
public AjaxResult getMaterialUnitList(BmUnit bmUnit) {
// 性能监控开始
long startTime = System.currentTimeMillis();
Map<String, Long> stepTimes = new LinkedHashMap<>();
log.info("=== getUnitList开始执行参数: {}", bmUnit);
// 步骤1: 获取登陆用户的组织ID
long step1Start = System.currentTimeMillis();
Long thisLoginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
stepTimes.put("获取用户组织ID", System.currentTimeMillis() - step1Start);
if (null == thisLoginUserDeptId || 0 == thisLoginUserDeptId) {
long totalTime = System.currentTimeMillis() - startTime;
log.info("用户组织ID为空直接返回空列表总耗时: {}ms", totalTime);
return AjaxResult.success(Collections.emptyList());
}
// 步骤3: 判断是否是app模式
if (bmUnit.getIsApp() != null && bmUnit.getIsApp()) {
long appStart = System.currentTimeMillis();
List<BmUnit> list = mapper.getUnitListApp(bmUnit);
stepTimes.put("App模式查询", System.currentTimeMillis() - appStart);
return AjaxResult.success(list);
}
List<ProjectTreeNode> groupList = new ArrayList<>();
List<ProjectTreeNode> list;
try {
// 步骤4: 数据库查询
list = mapper.getMaterialUnitList(bmUnit);
// 步骤5: 数据过滤
if (list != null) {
list = list.stream()
.filter(Objects::nonNull)
.filter(unit -> unit.getId() != null && unit.getParentId() != null)
.collect(Collectors.toList());
if (bmUnit.isEnableFilterTeam()) {
list.removeIf(item -> Objects.equals("0101", item.getTypeKey()));
}
}
if (CollectionUtils.isNotEmpty(list)) {
groupList = buildTreeEfficiently(list);
}
} catch (Exception e) {
log.error("单位类型树-查询失败", e);
}
return AjaxResult.success(groupList);
}
@Override @Override
public AjaxResult getDeviceTypeTree(SelectDto dto) { public AjaxResult getDeviceTypeTree(SelectDto dto) {
List<TreeNode> groupList = new ArrayList<>(); List<TreeNode> groupList = new ArrayList<>();

View File

@ -787,7 +787,11 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService {
|| leaseApplyInfo.getStatusList().containsAll(Arrays.asList(3, 4, 5))) { || leaseApplyInfo.getStatusList().containsAll(Arrays.asList(3, 4, 5))) {
// 过滤sortedList中leaseSignUrl或者leaseSignId不为空的数据 // 过滤sortedList中leaseSignUrl或者leaseSignId不为空的数据
sortedList = sortedList.stream() sortedList = sortedList.stream()
.filter(item -> StringUtils.isNotBlank(item.getSignUrl()) || item.getSignId() != null) .filter(item ->
// 状态等于4时为出库完成直接保留
item.getTaskStatus() == 4
// 状态不等于4时需满足 signUrl非空 signId非空
|| (StringUtils.isNotBlank(item.getSignUrl()) || item.getSignId() != null))
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
} }

View File

@ -1509,7 +1509,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
material, material,
car_code as carCode, car_code as carCode,
add_date as addDate, add_date as addDate,
code as code code as code,
remark as remark
FROM FROM
bm_exit_permit bm_exit_permit
WHERE WHERE

View File

@ -1458,4 +1458,92 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ORDER BY ORDER BY
level level
</select> </select>
<select id="getMaterialUnitList" 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,
null AS typeKey
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' AND bai.is_slt = '0'
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'
AND bu.type_id != 1731
<if test="projectId != null">
AND bp.pro_id = #{projectId}
</if>
<if test="unitId != null">
AND bu.unit_id = #{unitId}
</if>
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,
sda.dict_value AS typeKey
FROM
bm_unit bu
LEFT JOIN sys_dict_data sda ON bu.type_id = sda.dict_code
AND sda.dict_type = 'bm_unit_type'
LEFT JOIN bm_agreement_info bai ON bu.unit_id = bai.unit_id
AND bai.`status` = '1' AND bai.is_slt = '0'
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'
AND bu.type_id != 1731
<if test="projectId != null">
AND bp.pro_id = #{projectId}
</if>
<if test="unitId != null">
AND bu.unit_id = #{unitId}
</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,
sda.dict_value AS typeKey
FROM
bm_unit bu
LEFT JOIN sys_dict_data sda ON bu.type_id = sda.dict_code
AND sda.dict_type = 'bm_unit_type'
LEFT JOIN bm_agreement_info bai ON bu.unit_id = bai.unit_id
AND bai.`status` = '1' AND bai.is_slt = '0'
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'
AND bu.type_id != 1731
<if test="projectId != null">
AND bp.pro_id = #{projectId}
</if>
<if test="unitId != null">
AND bu.unit_id = #{unitId}
</if>
) ff
ORDER BY
LEVEL
</select>
</mapper> </mapper>