Browse Source

修改权限设置功能

lwx_dev
erdanergou 3 years ago
parent
commit
79459182fa
  1. 3
      src/main/java/com/dreamchaser/depository_manage/controller/UserController.java
  2. 17
      src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java
  3. 21
      src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml
  4. 8
      src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.java
  5. 16
      src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.xml
  6. 91
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java
  7. 33
      src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java
  8. 1577
      src/main/resources/templates/pages/stockTaking/stockTaking_back.html
  9. 62
      src/test/java/com/dreamchaser/depository_manage/TestForOther.java
  10. 21
      target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml
  11. 16
      target/classes/com/dreamchaser/depository_manage/mapper/RoleMapper.xml

3
src/main/java/com/dreamchaser/depository_manage/controller/UserController.java

@ -303,7 +303,8 @@ public class UserController {
if(roleAndDepositoryByCondition.size() > 0){ if(roleAndDepositoryByCondition.size() > 0){
return CrudUtil.postHandle(-1,-1); return CrudUtil.postHandle(-1,-1);
}else{ }else{
return CrudUtil.postHandle(roleService.addUserOrPostRoleAndDepository(map), 1); Integer integer = roleService.addUserOrPostRoleAndDepository(map);
return CrudUtil.postHandle(integer, integer);
} }
}else{ }else{
List<Depository> depositoryAll = depositoryService.findDepositoryAll(); List<Depository> depositoryAll = depositoryService.findDepositoryAll();

17
src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java

@ -89,6 +89,23 @@ public interface DepositoryMapper {
List<Depository> findDepositoryAll(); List<Depository> findDepositoryAll();
/**
* 根据仓库id查询其子仓库
* @param did
* @return
*/
List<Depository> findDepositoryByParent(Integer did);
/**
* 根据仓库id查询其子仓库批量
* @param list
* @return
*/
List<Depository> findDepositoryByParents(List<Integer> list);
/** /**
* 根据主键id获取对应数据 * 根据主键id获取对应数据
* @param id * @param id

21
src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml

@ -59,6 +59,27 @@
</select> </select>
<select id="findDepositoryByParent" resultMap="depositoryMap" parameterType="int">
SELECT
<include refid="depositoryAndCompany" />
FROM depositoryandcompany dc
Where dc.state != 3 and dc.parentId = #{did}
</select>
<select id="findDepositoryByParents" resultMap="depositoryMap" parameterType="list">
SELECT
<include refid="depositoryAndCompany" />
FROM depositoryandcompany dc
Where dc.state != 3 and dc.parentId in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<!-- 获取当前部门仓库以及公共仓库--> <!-- 获取当前部门仓库以及公共仓库-->
<select id="findDepositoryByAdminorg" resultMap="depositoryMap" parameterType="string"> <select id="findDepositoryByAdminorg" resultMap="depositoryMap" parameterType="string">
SELECT SELECT

8
src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.java

@ -21,6 +21,14 @@ public interface RoleMapper {
*/ */
Integer addUserOrPostRoleAndDepository(Map<String,Object> map); Integer addUserOrPostRoleAndDepository(Map<String,Object> map);
/**
* 添加用户或者岗位权限及管理的仓库
* @param map
* @return
*/
Integer addUserOrPostRoleAndDepositorys(Map<String,Object> map);
/** /**
* 获取仓库和权限名称 * 获取仓库和权限名称
* @param userid * @param userid

16
src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.xml

@ -77,6 +77,22 @@
) )
</insert> </insert>
<insert id="addUserOrPostRoleAndDepositorys" parameterType="map">
INSERT INTO postoruserrole (
id, classes, role,userid,did
)
VALUES
<foreach collection="depositoryIds" index="index" item="did" separator="," >
(#{id},
#{classes},
#{authority},
#{userid},
#{did})
</foreach>
</insert>
<select id="findDepositoryAndRole" parameterType="int" resultMap="depositoryAndrole"> <select id="findDepositoryAndRole" parameterType="int" resultMap="depositoryAndrole">
select select

91
src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java

@ -2411,74 +2411,7 @@ public class MaterialServiceImpl implements MaterialService {
} }
/**
* 用于构造物料树结构
*
* @return
*/
public List<Object> InitTree_Test_New() {
// 获取所有物料类型
List<MaterialType> materialTypeAll = materialTypeMapper.findMaterialTypeAll();
// 物料总数
Integer totalVal = materialTypeAll.size();
// 定义分页数量
double size = 100.0;
// 定义线程数
Integer threadSize = (int) Math.ceil(totalVal / size);
// 定义开启线程数
Integer openThreadSize = 0;
// 开启对应数量的线程
ExecutorService exs = Executors.newFixedThreadPool(threadSize);
// 树结构结果集
List<Object> list = new ArrayList<>();
// 线程结果集
List<Future<Object>> futureList = new ArrayList<Future<Object>>();
// 1.定义CompletionService
CompletionService<Object> completionService = new ExecutorCompletionService<Object>(exs);
// 物料类型id列表
List<Long> materialTypeList = new ArrayList<>();
for (int i = 0; i < materialTypeAll.size(); i++) {
// 获取当前类型
MaterialType materialType = materialTypeAll.get(i);
if (((i + 1) % 100) == 0) { // 如果有100个开启线程进行处理
materialTypeList.add(materialType.getOldId());
Future<Object> future = completionService.submit(new TaskTest_New(materialTypeList));
futureList.add(future); // 添加到结果集
openThreadSize++;
materialTypeList = new ArrayList<>(); // 情况列表
} else {
// 添加id到列表中
materialTypeList.add(materialType.getOldId());
}
}
if (materialTypeList.size() > 0) {
// 如果有剩余,开启线程进行处理
Future<Object> future = completionService.submit(new TaskTest_New(materialTypeList));
futureList.add(future);
openThreadSize++;
}
// 3.获取结果
for (int i = 0; i < openThreadSize; i++) {
Object result = null;
try {
result = completionService.take().get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
list.addAll((Collection<?>) result);
}
exs.shutdown();
// 进行最终的封装
return list;
}
// 构造树形组件数据模板 // 构造树形组件数据模板
public Map<String, Object> InitTreeMenus_New(MaterialType mt, List<Object> children) { public Map<String, Object> InitTreeMenus_New(MaterialType mt, List<Object> children) {
@ -2513,30 +2446,6 @@ public class MaterialServiceImpl implements MaterialService {
return result; return result;
} }
/**
* 用于构造树结构
*
* @param list 树列表
* @param parentId 父级id
* @return
*/
public List<Object> buildTree_New(List<Object> list, Long parentId) {
// 定义树结构
List<Object> result = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
// 构造为jsonObject类
JSONObject jsonObject = new JSONObject((Map<String, Object>) list.get(i));
// 获取当前父级id
Long parentId1 = jsonObject.getLong("parentId");
if (Long.compare(parentId, parentId1) == 0) { // 如果当前类型是其父类
List<Object> objectList = buildTree_New(list, jsonObject.getLong("id")); // 获取当前类型的子类
JSONArray children = jsonObject.getJSONArray("children");
children.addAll(objectList);
result.add(jsonObject);
}
}
return result;
}
/** /**
* 用于构造物料树结构(通过物料名称搜索) * 用于构造物料树结构(通过物料名称搜索)

33
src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java

@ -1,5 +1,7 @@
package com.dreamchaser.depository_manage.service.impl; package com.dreamchaser.depository_manage.service.impl;
import com.dreamchaser.depository_manage.entity.Depository;
import com.dreamchaser.depository_manage.mapper.DepositoryMapper;
import com.dreamchaser.depository_manage.mapper.RoleMapper; import com.dreamchaser.depository_manage.mapper.RoleMapper;
import com.dreamchaser.depository_manage.pojo.RoleAndDepository; import com.dreamchaser.depository_manage.pojo.RoleAndDepository;
import com.dreamchaser.depository_manage.service.RoleService; import com.dreamchaser.depository_manage.service.RoleService;
@ -7,6 +9,7 @@ import com.dreamchaser.depository_manage.utils.ObjectFormatUtil;
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 java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -17,6 +20,9 @@ public class RoleServiceImpl implements RoleService {
@Autowired @Autowired
RoleMapper roleMapper; RoleMapper roleMapper;
@Autowired
DepositoryMapper depositoryMapper;
/** /**
* 添加用户或者岗位权限及管理的仓库 * 添加用户或者岗位权限及管理的仓库
* @param map * @param map
@ -25,7 +31,10 @@ public class RoleServiceImpl implements RoleService {
@Override @Override
public Integer addUserOrPostRoleAndDepository(Map<String, Object> map){ public Integer addUserOrPostRoleAndDepository(Map<String, Object> map){
map.put("authority",0); map.put("authority",0);
return roleMapper.addUserOrPostRoleAndDepository(map); Integer depositoryId = ObjectFormatUtil.toInteger(map.get("depositoryId"));
List<Integer> depositoryByParent = findChildForDepositoryByParent(depositoryId);
map.put("depositoryIds",depositoryByParent);
return roleMapper.addUserOrPostRoleAndDepositorys(map);
} }
/** /**
* 根据使用者id获取角色权限以及管理的正常使用的仓库 * 根据使用者id获取角色权限以及管理的正常使用的仓库
@ -119,4 +128,26 @@ public class RoleServiceImpl implements RoleService {
public List<RoleAndDepository> findRoleAndDepositoryByDepositoryIdForIn(Integer depositoryId) { public List<RoleAndDepository> findRoleAndDepositoryByDepositoryIdForIn(Integer depositoryId) {
return roleMapper.findRoleAndDepositoryByDepositoryIdForIn(depositoryId); return roleMapper.findRoleAndDepositoryByDepositoryIdForIn(depositoryId);
} }
/**
* 获取当前仓库的子仓库
* @param depositoryId 当前待查询仓库id
* @return
*/
// 根据id获取子类
public List<Integer> findChildForDepositoryByParent(Integer depositoryId) {
List<Integer> result = new ArrayList<>();
result.add(depositoryId);
List<Integer> parentId = new ArrayList<>();
parentId.add(depositoryId);
List<Depository> depositoryAll = depositoryMapper.findDepositoryAll();
for (Depository d : depositoryAll) {
if (parentId.contains(d.getParentId())) {
parentId.add(d.getId());
result.add(d.getId());
}
}
return result;
}
} }

1577
src/main/resources/templates/pages/stockTaking/stockTaking_back.html

File diff suppressed because it is too large

62
src/test/java/com/dreamchaser/depository_manage/TestForOther.java

@ -0,0 +1,62 @@
package com.dreamchaser.depository_manage;
import com.dreamchaser.depository_manage.entity.Depository;
import com.dreamchaser.depository_manage.entity.MaterialType;
import com.dreamchaser.depository_manage.mapper.DepositoryMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.ArrayList;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestForOther {
@Autowired
DepositoryMapper depositoryMapper;
@Test
public void run() {
Depository depositoryById = depositoryMapper.findDepositoryById(9);
List<Integer> childForDepositoryByParent = findChildForDepositoryByParent(depositoryById);
System.out.println(childForDepositoryByParent);
}
// 根据id获取子类
public List<Integer> findChildForDepositoryByParent(Depository depository) {
List<Integer> result = new ArrayList<>();
result.add(depository.getId());
List<Integer> parentId = new ArrayList<>();
parentId.add(depository.getId());
List<Depository> depositoryAll = depositoryMapper.findDepositoryAll();
for (Depository d : depositoryAll) {
if (parentId.contains(d.getParentId())) {
parentId.add(d.getId());
result.add(d.getId());
}
}
return result;
}
/**
* 判断当前id是否在ids中
*
* @param parentList
* @param id
* @return
*/
public Boolean isTrueForParent(List<Integer> parentList, Integer id) {
for (Integer aLong : parentList) {
if (Integer.compare(aLong, id) == 0) {
return true;
}
}
return false;
}
}

21
target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml

@ -59,6 +59,27 @@
</select> </select>
<select id="findDepositoryByParent" resultMap="depositoryMap" parameterType="int">
SELECT
<include refid="depositoryAndCompany" />
FROM depositoryandcompany dc
Where dc.state != 3 and dc.parentId = #{did}
</select>
<select id="findDepositoryByParents" resultMap="depositoryMap" parameterType="list">
SELECT
<include refid="depositoryAndCompany" />
FROM depositoryandcompany dc
Where dc.state != 3 and dc.parentId in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<!-- 获取当前部门仓库以及公共仓库--> <!-- 获取当前部门仓库以及公共仓库-->
<select id="findDepositoryByAdminorg" resultMap="depositoryMap" parameterType="string"> <select id="findDepositoryByAdminorg" resultMap="depositoryMap" parameterType="string">
SELECT SELECT

16
target/classes/com/dreamchaser/depository_manage/mapper/RoleMapper.xml

@ -77,6 +77,22 @@
) )
</insert> </insert>
<insert id="addUserOrPostRoleAndDepositorys" parameterType="map">
INSERT INTO postoruserrole (
id, classes, role,userid,did
)
VALUES
<foreach collection="depositoryIds" index="index" item="did" separator="," >
(#{id},
#{classes},
#{authority},
#{userid},
#{did})
</foreach>
</insert>
<select id="findDepositoryAndRole" parameterType="int" resultMap="depositoryAndrole"> <select id="findDepositoryAndRole" parameterType="int" resultMap="depositoryAndrole">
select select

Loading…
Cancel
Save