工程管理

This commit is contained in:
mashuai 2024-10-18 15:13:39 +08:00
parent 8f87295d6a
commit 25481aa6af
7 changed files with 35 additions and 161 deletions

View File

@ -1,19 +1,12 @@
package com.bonus.material.basic.controller; package com.bonus.material.basic.controller;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.bonus.common.core.constant.SecurityConstants;
import com.bonus.common.log.enums.OperaType; import com.bonus.common.log.enums.OperaType;
import com.bonus.material.common.annotation.PreventRepeatSubmit; import com.bonus.material.common.annotation.PreventRepeatSubmit;
import com.bonus.system.api.RemoteDictDataService; import com.bonus.system.api.RemoteDictDataService;
import com.bonus.system.api.domain.SysDictData;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -55,13 +48,12 @@ public class BmUnitController extends BaseController
* 查询往来单位管理列表 * 查询往来单位管理列表
*/ */
@ApiOperation(value = "查询往来单位管理列表") @ApiOperation(value = "查询往来单位管理列表")
@RequiresPermissions("basic:unit:list") //@RequiresPermissions("basic:unit:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(BmUnit bmUnit) public TableDataInfo list(BmUnit bmUnit)
{ {
startPage(); startPage();
List<BmUnit> list = bmUnitService.selectBmUnitList(bmUnit); List<BmUnit> list = bmUnitService.selectBmUnitList(bmUnit);
extracted(list);
return getDataTable(list); return getDataTable(list);
} }
@ -76,37 +68,10 @@ public class BmUnitController extends BaseController
public void export(HttpServletResponse response, BmUnit bmUnit) public void export(HttpServletResponse response, BmUnit bmUnit)
{ {
List<BmUnit> list = bmUnitService.selectBmUnitList(bmUnit); List<BmUnit> list = bmUnitService.selectBmUnitList(bmUnit);
extracted(list);
ExcelUtil<BmUnit> util = new ExcelUtil<BmUnit>(BmUnit.class); ExcelUtil<BmUnit> util = new ExcelUtil<BmUnit>(BmUnit.class);
util.exportExcel(response, list, "往来单位管理数据"); util.exportExcel(response, list, "往来单位管理数据");
} }
/**
* 将字典数据转换为 BmUnit 对象
* @param list
*/
private void extracted(List<BmUnit> list) {
AjaxResult ajaxResult = remoteDictDataService.dictType("bm_unit_type", SecurityConstants.INNER);
// 假设 ajaxResult.get("data") 返回的是 List<LinkedHashMap>
List<LinkedHashMap> rawData = (List<LinkedHashMap>) ajaxResult.get("data");
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// rawData 转换为 SysDictData 列表
List<SysDictData> dataList = rawData.stream()
.map(rawDatum -> objectMapper.convertValue(rawDatum, SysDictData.class))
.collect(Collectors.toList());
// 使用 Map 存储字典数据以提高查找速度
Map<String, String> dictMap = dataList.stream()
.collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel));
// 更新 BmUnit 列表
list.forEach(unit -> {
String typeName = dictMap.get(unit.getTypeId().toString());
if (typeName != null) {
unit.setTypeName(typeName);
}
});
}
/** /**
* 获取往来单位管理详细信息 * 获取往来单位管理详细信息
*/ */

View File

@ -1,15 +1,10 @@
package com.bonus.material.basic.controller; package com.bonus.material.basic.controller;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.bonus.common.biz.domain.TreeSelect;
import com.bonus.common.log.enums.OperaType; import com.bonus.common.log.enums.OperaType;
import com.bonus.material.common.annotation.PreventRepeatSubmit; import com.bonus.material.common.annotation.PreventRepeatSubmit;
import com.bonus.system.api.RemoteUserService;
import com.bonus.system.api.domain.SysDept;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
@ -23,10 +18,6 @@ import com.bonus.material.basic.service.IBmUnitPersonService;
import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/** /**
* 往来单位管理Controller * 往来单位管理Controller
* *
@ -41,37 +32,6 @@ public class BmUnitPersonController extends BaseController
@Autowired @Autowired
private IBmUnitPersonService bmUnitPersonService; private IBmUnitPersonService bmUnitPersonService;
@Resource
private RemoteUserService remoteUserService;
/**
* 查询部门下拉树
*/
@ApiOperation(value = "查询部门下拉树")
@GetMapping("/getDeptUserTree")
public AjaxResult selectDeptTree(SysDept dept) {
AjaxResult ajaxResult = remoteUserService.deptTree(dept, null);
List<TreeSelect> data = (List<TreeSelect>) ajaxResult.get("data");
if (CollectionUtils.isEmpty(data)) {
return AjaxResult.success();
}
List<TreeSelect> branches = getBranches(data);
return AjaxResult.success(branches);
}
private List<TreeSelect> getBranches(List<TreeSelect> data) {
List<TreeSelect> branches = new ArrayList<>();
for (TreeSelect company : data) {
if (company.getChildren() != null) {
for (TreeSelect child : company.getChildren()) {
// 添加分公司
branches.add(child);
}
}
}
return branches;
}
/** /**
* 绑定往来单位人员列表 * 绑定往来单位人员列表
*/ */
@ -85,7 +45,6 @@ public class BmUnitPersonController extends BaseController
return bmUnitPersonService.insertBmUnitPerson(bmUnitPerson); return bmUnitPersonService.insertBmUnitPerson(bmUnitPerson);
} }
/** /**
* 解绑往来单位人员列表 * 解绑往来单位人员列表
*/ */

View File

@ -29,11 +29,4 @@ public interface BmUnitPersonMapper
* @return 结果 * @return 结果
*/ */
public int deleteBmUnitPersonByID(Long unitId); public int deleteBmUnitPersonByID(Long unitId);
/**
* 查询部门树
* @param unitPerson
* @return
*/
List<TreeNode> selectDeptTree(BmUnitPerson unitPerson);
} }

View File

@ -28,11 +28,4 @@ public interface IBmUnitPersonService
*/ */
public AjaxResult deleteBmUnitPersonByID(Long unitId); public AjaxResult deleteBmUnitPersonByID(Long unitId);
/**
* 查询部门下拉树结构
* @param unitPerson
* @return
*/
AjaxResult selectDeptTree(BmUnitPerson unitPerson);
} }

View File

@ -65,26 +65,4 @@ public class BmUnitPersonServiceImpl implements IBmUnitPersonService
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
} }
/**
* 查询部门下拉树结构
* @param unitPerson
* @return
*/
@Override
public AjaxResult selectDeptTree(BmUnitPerson unitPerson) {
List<TreeNode> groupList = new ArrayList<>();
List<TreeNode> list = new ArrayList<>();
try {
list = bmUnitPersonMapper.selectDeptTree(unitPerson);
if (CollectionUtils.isNotEmpty(list)) {
// 创建树形结构数据集合作为参数
TreeBuild treeBuild = new TreeBuild(list);
// 原查询结果转换树形结构
groupList = treeBuild.buildTree();
}
} catch (Exception e) {
}
return AjaxResult.success(groupList);
}
} }

View File

@ -1,21 +1,31 @@
package com.bonus.material.basic.service.impl; package com.bonus.material.basic.service.impl;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
import cn.hutool.core.util.PhoneUtil; import cn.hutool.core.util.PhoneUtil;
import com.alibaba.nacos.common.utils.CollectionUtils; import com.alibaba.nacos.common.utils.CollectionUtils;
import com.bonus.common.biz.enums.HttpCodeEnum; import com.bonus.common.biz.enums.HttpCodeEnum;
import com.bonus.common.core.constant.SecurityConstants;
import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils; import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.system.api.RemoteDictDataService;
import com.bonus.system.api.domain.SysDictData;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.bonus.material.basic.mapper.BmUnitMapper; import com.bonus.material.basic.mapper.BmUnitMapper;
import com.bonus.material.basic.domain.BmUnit; import com.bonus.material.basic.domain.BmUnit;
import com.bonus.material.basic.service.IBmUnitService; import com.bonus.material.basic.service.IBmUnitService;
import javax.annotation.Resource;
/** /**
* 往来单位管理Service业务层处理 * 往来单位管理Service业务层处理
* *
@ -28,6 +38,9 @@ public class BmUnitServiceImpl implements IBmUnitService
@Autowired @Autowired
private BmUnitMapper bmUnitMapper; private BmUnitMapper bmUnitMapper;
@Resource
private RemoteDictDataService remoteDictDataService;
/** /**
* 查询往来单位管理 * 查询往来单位管理
* *
@ -50,15 +63,35 @@ public class BmUnitServiceImpl implements IBmUnitService
public List<BmUnit> selectBmUnitList(BmUnit bmUnit) public List<BmUnit> selectBmUnitList(BmUnit bmUnit)
{ {
List<BmUnit> bmUnitList = bmUnitMapper.selectBmUnitList(bmUnit); List<BmUnit> bmUnitList = bmUnitMapper.selectBmUnitList(bmUnit);
extracted(bmUnitList);
return bmUnitList;
}
private void extracted(List<BmUnit> bmUnitList) {
AjaxResult ajaxResult = remoteDictDataService.dictType("bm_unit_type", SecurityConstants.INNER);
// 假设 ajaxResult.get("data") 返回的是 List<LinkedHashMap>
List<LinkedHashMap> rawData = (List<LinkedHashMap>) ajaxResult.get("data");
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// rawData 转换为 SysDictData 列表
List<SysDictData> dataList = rawData.stream()
.map(rawDatum -> objectMapper.convertValue(rawDatum, SysDictData.class))
.collect(Collectors.toList());
// 使用 Map 存储字典数据以提高查找速度
Map<String, String> dictMap = dataList.stream()
.collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel));
if (CollectionUtils.isNotEmpty(bmUnitList)) { if (CollectionUtils.isNotEmpty(bmUnitList)) {
for (BmUnit unit : bmUnitList) { for (BmUnit unit : bmUnitList) {
if (unit.getUnitId() != null) { if (unit.getUnitId() != null) {
//根据单位id去人员绑定中查询是否绑定赋值绑定状态 //根据单位id去人员绑定中查询是否绑定赋值绑定状态
unit.setIsBind(bmUnitMapper.selectBmUnitPersonByUnitId(unit.getUnitId()) > 0 ? 1 : 0); unit.setIsBind(bmUnitMapper.selectBmUnitPersonByUnitId(unit.getUnitId()) > 0 ? 1 : 0);
} }
String typeName = dictMap.get(unit.getTypeId().toString());
if (typeName != null) {
unit.setTypeName(typeName);
}
} }
} }
return bmUnitList;
} }
/** /**

View File

@ -4,53 +4,6 @@ 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.basic.mapper.BmUnitPersonMapper"> <mapper namespace="com.bonus.material.basic.mapper.BmUnitPersonMapper">
<select id="selectDeptTree" resultType="com.bonus.common.biz.domain.TreeNode">
<choose>
<!-- 当 isTree 为 1 时执行 -->
<when test="isTree != null and isTree == 1">
SELECT
d.dept_id AS id,
d.parent_id AS parentId,
d.ancestors,
d.dept_name AS label,
d.order_num,
d.leader,
d.phone,
d.email,
d.status,
d.del_flag,
d.create_by,
d.create_time
FROM sys_dept d
WHERE d.del_flag = '0'
AND d.status = '0'
AND (LENGTH(d.ancestors) - LENGTH(REPLACE(d.ancestors, ',', ''))) + 1 != 3
</when>
<!-- 否则执行默认查询 -->
<otherwise>
SELECT
*
FROM
(
SELECT
d.dept_id AS id,
d.parent_id AS parentId,
d.dept_name AS label
FROM sys_dept d
WHERE d.del_flag = '0'
AND d.STATUS = '0'
UNION
SELECT
su.user_id AS id,
su.dept_id AS parentId,
su.user_name AS label
FROM sys_user su
LEFT JOIN sys_dept sd ON su.dept_id = sd.dept_id
) AS combined_results
</otherwise>
</choose>
</select>
<insert id="insertBmUnitPerson" parameterType="com.bonus.material.basic.domain.BmUnitPerson"> <insert id="insertBmUnitPerson" parameterType="com.bonus.material.basic.domain.BmUnitPerson">
insert into bm_unit_person insert into bm_unit_person
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">