Browse Source

给岗位设置仓库权限完成

lwx_dev
erdanergou 3 years ago
parent
commit
077a018f8d
  1. 62
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java
  2. 32
      src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.java
  3. 110
      src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.xml
  4. 17
      src/main/java/com/dreamchaser/depository_manage/service/RoleService.java
  5. 105
      src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java
  6. 93
      src/main/resources/templates/pages/authorization/depositoryOpen.html
  7. 4
      src/main/resources/templates/pages/material/material-add.html
  8. 110
      target/classes/com/dreamchaser/depository_manage/mapper/RoleMapper.xml
  9. 4
      target/classes/templates/pages/material/material-add.html

62
src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java

@ -226,7 +226,7 @@ public class DepositoryController {
Integer depositoryRecordByDateByIn1 = depositoryRecordService.findApplicationInRecordByDate(days.get(i), days.get(i + 1), val); Integer depositoryRecordByDateByIn1 = depositoryRecordService.findApplicationInRecordByDate(days.get(i), days.get(i + 1), val);
// 获取一段时间内的出库额度 // 获取一段时间内的出库额度
Integer depositoryRecordByDateByOut1 = depositoryRecordService.findApplicationOutRecordByDate(days.get(i), days.get(i + 1), val); Integer depositoryRecordByDateByOut1 = depositoryRecordService.findApplicationOutRecordByDate(days.get(i), days.get(i + 1), val);
Double warehouserCount1 = aDouble - depositoryRecordByDateByIn1 + depositoryRecordByDateByOut1; Double warehouserCount1 = aDouble - depositoryRecordByDateByIn1 + depositoryRecordByDateByOut1;
result.add(warehouserCount1); result.add(warehouserCount1);
} }
Collections.reverse(result); Collections.reverse(result);
@ -379,7 +379,7 @@ public class DepositoryController {
// 获取某个月某物料出库总额 // 获取某个月某物料出库总额
// 测试 // 测试
Double wareHouseOutCountByMonth1 = depositoryRecordService.findMaterialCountByMonth2(parmOut); Double wareHouseOutCountByMonth1 = depositoryRecordService.findMaterialCountByMonth2(parmOut);
Double wareHouseCount1 = (double)productData.get(k++) - wareHouseInCountByMonth1 + wareHouseOutCountByMonth1; Double wareHouseCount1 = (double) productData.get(k++) - wareHouseInCountByMonth1 + wareHouseOutCountByMonth1;
productData.add(wareHouseCount1); productData.add(wareHouseCount1);
} }
List<Object> result = new ArrayList<>(); List<Object> result = new ArrayList<>();
@ -956,12 +956,12 @@ public class DepositoryController {
show_data.put(key.toString(), drCountbyDrName.clone()); show_data.put(key.toString(), drCountbyDrName.clone());
} }
} else { } else {
Future<Object> future = completionService.submit(new distributeTasks(depositoryAllNameAndId,type, 1, userByPort, yesterdayData, depositoryName)); Future<Object> future = completionService.submit(new distributeTasks(depositoryAllNameAndId, type, 1, userByPort, yesterdayData, depositoryName));
futureList.add(future); futureList.add(future);
taskNum += 1; taskNum += 1;
} }
// 获取本月及之前月份各种类别入/出库总量 // 获取本月及之前月份各种类别入/出库总量
Future<Object> future = completionService.submit(new distributeTasks(depositoryAllNameAndId,type, 3, userByPort, yesterdayData, depositoryName)); Future<Object> future = completionService.submit(new distributeTasks(depositoryAllNameAndId, type, 3, userByPort, yesterdayData, depositoryName));
futureList.add(future); futureList.add(future);
taskNum += 1; taskNum += 1;
// 中国地图数据 // 中国地图数据
@ -971,7 +971,7 @@ public class DepositoryController {
Map<String, Object> mapData = new HashMap<>(); Map<String, Object> mapData = new HashMap<>();
if (!"0".equals(type)) { if (!"0".equals(type)) {
Future<Object> future1 = completionService.submit(new distributeTasks(depositoryAllNameAndId,type, 4, userByPort, yesterdayData, depositoryName)); Future<Object> future1 = completionService.submit(new distributeTasks(depositoryAllNameAndId, type, 4, userByPort, yesterdayData, depositoryName));
futureList.add(future1); futureList.add(future1);
taskNum += 1; taskNum += 1;
} }
@ -1004,14 +1004,14 @@ public class DepositoryController {
if ("0".equals(type)) { if ("0".equals(type)) {
// 如果是获取库存 // 如果是获取库存
distributeTasks distributeTasks1 = new distributeTasks(depositoryAllNameAndId,type, 5, userByPort, yesterdayData, depositoryName); distributeTasks distributeTasks1 = new distributeTasks(depositoryAllNameAndId, type, 5, userByPort, yesterdayData, depositoryName);
distributeTasks1.setTodayInventory(todayInventory); distributeTasks1.setTodayInventory(todayInventory);
distributeTasks1.setDepositoryService(depositoryService); distributeTasks1.setDepositoryService(depositoryService);
distributeTasks1.setDepositoryRecordService(depositoryRecordService); distributeTasks1.setDepositoryRecordService(depositoryRecordService);
distributeTasks distributeTasks2 = new distributeTasks(depositoryAllNameAndId,type, 6, userByPort, yesterdayData, depositoryName); distributeTasks distributeTasks2 = new distributeTasks(depositoryAllNameAndId, type, 6, userByPort, yesterdayData, depositoryName);
distributeTasks2.setDepositoryService(depositoryService); distributeTasks2.setDepositoryService(depositoryService);
distributeTasks2.setDepositoryRecordService(depositoryRecordService); distributeTasks2.setDepositoryRecordService(depositoryRecordService);
distributeTasks distributeTasks3 = new distributeTasks(depositoryAllNameAndId,type, 7, userByPort, yesterdayData, depositoryName); distributeTasks distributeTasks3 = new distributeTasks(depositoryAllNameAndId, type, 7, userByPort, yesterdayData, depositoryName);
distributeTasks3.setDepositoryService(depositoryService); distributeTasks3.setDepositoryService(depositoryService);
distributeTasks3.setDepositoryRecordService(depositoryRecordService); distributeTasks3.setDepositoryRecordService(depositoryRecordService);
Future<Object> future1 = completionService.submit(distributeTasks1); Future<Object> future1 = completionService.submit(distributeTasks1);
@ -1062,7 +1062,7 @@ public class DepositoryController {
return resMap; return resMap;
} }
public Map<String, Object> getShowData(Map<String, Integer> depositoryAllNameAndId,String type, UserByPort userByPort, Map<String, Double> yesterdayData, List<String> depositoryName) { public Map<String, Object> getShowData(Map<String, Integer> depositoryAllNameAndId, String type, UserByPort userByPort, Map<String, Double> yesterdayData, List<String> depositoryName) {
// 获取遍历器 // 获取遍历器
Iterator it = depositoryAllNameAndId.keySet().iterator(); Iterator it = depositoryAllNameAndId.keySet().iterator();
// 仓库名称列表 // 仓库名称列表
@ -1417,7 +1417,6 @@ public class DepositoryController {
} }
// 构造库位树 // 构造库位树
@GetMapping("/treeMenus_Place") @GetMapping("/treeMenus_Place")
public RestResponse InitTreeMenus_Place(@RequestParam(value = "depositoryId") Integer depositoryId) { public RestResponse InitTreeMenus_Place(@RequestParam(value = "depositoryId") Integer depositoryId) {
@ -1427,7 +1426,7 @@ public class DepositoryController {
} }
@GetMapping("/treeMenusOnlyDepository") @GetMapping("/treeMenusOnlyDepository")
public RestResponse treeMenusOnlyDepository(){ public RestResponse treeMenusOnlyDepository() {
List<Object> list = new ArrayList<>(); List<Object> list = new ArrayList<>();
list = depositoryService.InitTreeMenusOnlyDepository(); list = depositoryService.InitTreeMenusOnlyDepository();
return new RestResponse(list); return new RestResponse(list);
@ -1491,6 +1490,7 @@ public class DepositoryController {
/** /**
* 用于打印图片 * 用于打印图片
*
* @param map * @param map
* @param request * @param request
* @param response * @param response
@ -1509,7 +1509,7 @@ public class DepositoryController {
String name = depository.getDname() + "-" + place.getKingdeecode(); String name = depository.getDname() + "-" + place.getKingdeecode();
String qrCode = CreateQrCodeUtil.CreateBarCode128(qrCodeByDepository, name, 60, 200); String qrCode = CreateQrCodeUtil.CreateBarCode128(qrCodeByDepository, name, 60, 200);
try { try {
File file = ZipMultiFileUtil.base64ToFile(qrCode,name); File file = ZipMultiFileUtil.base64ToFile(qrCode, name);
qrCodeListForPlaces.add(file); qrCodeListForPlaces.add(file);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
@ -1520,7 +1520,7 @@ public class DepositoryController {
String name = depository.getDname(); String name = depository.getDname();
String qrCode = CreateQrCodeUtil.CreateBarCode128(qrCodeByDepository, name, 60, 200); String qrCode = CreateQrCodeUtil.CreateBarCode128(qrCodeByDepository, name, 60, 200);
try { try {
File file = ZipMultiFileUtil.base64ToFile(qrCode,name); File file = ZipMultiFileUtil.base64ToFile(qrCode, name);
qrCodeListForPlaces.add(file); qrCodeListForPlaces.add(file);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
@ -1531,31 +1531,44 @@ public class DepositoryController {
/** /**
* 用于设置仓库可见范围权限 * 用于设置仓库可见范围权限
* @param map 存储数据 *
* @param map 存储数据
* @param request 请求 * @param request 请求
* @return * @return
*/ */
@PostMapping("/setWarehouseVisiblePermission") @PostMapping("/setWarehouseVisiblePermission")
public RestResponse setWarehouseVisiblePermission(@RequestBody Map<String,Object> map,HttpServletRequest request){ public RestResponse setWarehouseVisiblePermission(@RequestBody Map<String, Object> map, HttpServletRequest request) {
if(map.containsKey("type")){ if (map.containsKey("type")) {
// 获取当前登录的用户 // 获取当前登录的用户
String token = request.getHeader("user-token"); String token = request.getHeader("user-token");
if (token == null) { if (token == null) {
token = (String) request.getSession().getAttribute("userToken"); token = (String) request.getSession().getAttribute("userToken");
} }
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); UserByPort userToken = AuthenticationTokenPool.getUserToken(token);
map.put("userId",userToken.getId()); map.put("userId", userToken.getId());
// 添加时影响的行数
Integer integer = roleService.addWarehouseVisiblePermission(map);
// 需要添加的数量 // 需要添加的数量
Integer count = ObjectFormatUtil.toInteger(map.get("count")); Integer count = ObjectFormatUtil.toInteger(map.get("count"));
return CrudUtil.insertHandle(count,integer); // 操作时影响的行数
}else{ Integer integer = 0;
if (count == 0) {
// 如果要删除
} else {
// 如果不是删除
integer = roleService.setWarehouseVisiblePermission(map);
}
return CrudUtil.insertHandle(count, integer);
} else {
throw new MyException("缺少必要参数"); throw new MyException("缺少必要参数");
} }
} }
@PostMapping("/findWarehouseVisiblePermission")
public RestResponse findWarehouseVisiblePermission(@RequestBody Map<String, Object> map){
List<Integer> list = roleService.findDepositoryIdForWarehouseVisiblePermissionByCondition(map);
return new RestResponse(list);
}
/** /**
* 用于获取当前仓库的所有子类 * 用于获取当前仓库的所有子类
* *
@ -1596,6 +1609,7 @@ public class DepositoryController {
return false; return false;
} }
// 用于分发任务 // 用于分发任务
@Data @Data
class distributeTasks implements Callable<Object> { class distributeTasks implements Callable<Object> {
@ -1610,7 +1624,7 @@ public class DepositoryController {
Map<String, Object> todayInventory; // 当前仓库的额度 Map<String, Object> todayInventory; // 当前仓库的额度
Map<String, Integer> depositoryAllNameAndId; // 仓库名称与仓库id的映射 Map<String, Integer> depositoryAllNameAndId; // 仓库名称与仓库id的映射
distributeTasks(Map<String, Integer> depositoryAllNameAndId,String type, int taskType, UserByPort userByPort, Map<String, Double> yesterdayData, List<String> depositoryName) { distributeTasks(Map<String, Integer> depositoryAllNameAndId, String type, int taskType, UserByPort userByPort, Map<String, Double> yesterdayData, List<String> depositoryName) {
this.depositoryAllNameAndId = depositoryAllNameAndId;// 仓库名称与仓库id映射 this.depositoryAllNameAndId = depositoryAllNameAndId;// 仓库名称与仓库id映射
this.taskType = taskType; // 任务类型 this.taskType = taskType; // 任务类型
this.type = type; // 请求类型 this.type = type; // 请求类型
@ -1626,7 +1640,7 @@ public class DepositoryController {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
if (1 == taskType) { if (1 == taskType) {
Map<String, Object> showData = getShowData(depositoryAllNameAndId,type, userByPort, yesterdayData, depositoryName); Map<String, Object> showData = getShowData(depositoryAllNameAndId, type, userByPort, yesterdayData, depositoryName);
result.put("show_data", showData); result.put("show_data", showData);
} else if (2 == taskType) { } else if (2 == taskType) {
@ -1802,6 +1816,4 @@ public class DepositoryController {
} }
} }

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

@ -182,4 +182,36 @@ public interface RoleMapper {
*/ */
Integer addWarehouseVisiblePermission(Map<String,Object> map); Integer addWarehouseVisiblePermission(Map<String,Object> map);
/**
* 根据条件查询可见范围的数量
* @param map 待查询数据
* @return
*/
Integer findWarehouseVisiblePermissionCountByCondition(Map<String,Object> map);
/**
* 根据条件删除仓库可见范围
* @param map
* @return
*/
Integer delWarehouseVisiblePermissionByCondition(Map<String,Object> map);
/**
* 根据条件获取在可视范围内的仓库id
* @param map
* @return
*/
List<Integer> findDepositoryIdForWarehouseVisiblePermissionByCondition(Map<String,Object> map);
/**
* 根据条件获取可视范围内的仓库数量
* @param map
* @return
*/
Integer findDepositoryIDCountForWarehouseVisiblePermissionByCondition(Map<String,Object> map);
} }

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

@ -5,13 +5,13 @@
<mapper namespace="com.dreamchaser.depository_manage.mapper.RoleMapper"> <mapper namespace="com.dreamchaser.depository_manage.mapper.RoleMapper">
<!-- 字段映射(权限) --> <!-- 字段映射(权限) -->
<!-- 权限映射--> <!-- 权限映射-->
<resultMap id="postoruserroleMap" type="com.dreamchaser.depository_manage.entity.PostOrUserRole"> <resultMap id="postoruserroleMap" type="com.dreamchaser.depository_manage.entity.PostOrUserRole">
<id column="id" property="id" jdbcType="INTEGER" /> <id column="id" property="id" jdbcType="INTEGER"/>
<result column="classes" property="classes" jdbcType="INTEGER" /> <result column="classes" property="classes" jdbcType="INTEGER"/>
<result column="role" property="role" jdbcType="INTEGER" /> <result column="role" property="role" jdbcType="INTEGER"/>
<result column="userid" property="userid" jdbcType="INTEGER" /> <result column="userid" property="userid" jdbcType="INTEGER"/>
<result column="did" property="did" jdbcType="INTEGER" /> <result column="did" property="did" jdbcType="INTEGER"/>
</resultMap> </resultMap>
<resultMap id="depositoryAndrole" type="com.dreamchaser.depository_manage.pojo.RoleAndDepository"> <resultMap id="depositoryAndrole" type="com.dreamchaser.depository_manage.pojo.RoleAndDepository">
@ -27,7 +27,7 @@
</resultMap> </resultMap>
<resultMap id="materialTypeAndRole" type="com.dreamchaser.depository_manage.pojo.RoleAndMaterialType"> <resultMap id="materialTypeAndRole" type="com.dreamchaser.depository_manage.pojo.RoleAndMaterialType">
<id column="id" property="id" jdbcType="INTEGER" /> <id column="id" property="id" jdbcType="INTEGER"/>
<result column="classes" property="classes" jdbcType="INTEGER"/> <result column="classes" property="classes" jdbcType="INTEGER"/>
<result column="mtid" property="mtid" jdbcType="INTEGER"/> <result column="mtid" property="mtid" jdbcType="INTEGER"/>
<result column="uid" property="uid" jdbcType="INTEGER"/> <result column="uid" property="uid" jdbcType="INTEGER"/>
@ -50,7 +50,6 @@
</sql> </sql>
<update id="updateUserOrPostRoleAndDepository" parameterType="map"> <update id="updateUserOrPostRoleAndDepository" parameterType="map">
update postoruserrole update postoruserrole
<set> <set>
@ -107,11 +106,11 @@
</insert> </insert>
<insert id="addUserOrPostRoleAndDepositorys" parameterType="map"> <insert id="addUserOrPostRoleAndDepositorys" parameterType="map">
INSERT INTO postoruserrole ( INSERT INTO postoruserrole (
id, classes, role,userid,did id, classes, role,userid,did
) )
VALUES VALUES
<foreach collection="depositoryIds" index="index" item="did" separator="," > <foreach collection="depositoryIds" index="index" item="did" separator=",">
(#{id}, (#{id},
#{classes}, #{classes},
#{authority}, #{authority},
@ -137,7 +136,7 @@
id, classes,uid,mtid id, classes,uid,mtid
) )
VALUES VALUES
<foreach collection="mtIds" index="index" item="mtid" separator="," > <foreach collection="mtIds" index="index" item="mtid" separator=",">
(#{id}, (#{id},
#{classes}, #{classes},
#{userid}, #{userid},
@ -147,8 +146,6 @@
</insert> </insert>
<select id="findDepositoryAndRole" parameterType="int" resultMap="depositoryAndrole"> <select id="findDepositoryAndRole" parameterType="int" resultMap="depositoryAndrole">
select select
<include refid="roleNameAnddepositoryName"/> <include refid="roleNameAnddepositoryName"/>
@ -240,8 +237,6 @@
</select> </select>
<select id="findRoleAndDepositoryById" parameterType="int" resultMap="depositoryAndrole"> <select id="findRoleAndDepositoryById" parameterType="int" resultMap="depositoryAndrole">
select select
<include refid="roleNameAnddepositoryName"/> <include refid="roleNameAnddepositoryName"/>
@ -265,22 +260,89 @@
</delete> </delete>
<insert id="addWarehouseVisiblePermission"> <insert id="addWarehouseVisiblePermission">
insert into depositoryopenrole (id,did,uid,`type`,state,`time`,userId) insert into depositoryopenrole (id,did,uid,`type`,`time`,userId)
values values
<foreach collection="depositoryIdList" item="did" index="index" separator=","> <foreach collection="depositoryIdList" item="did" index="index" separator=",">
( (
#{id}, #{id},
#{did}, #{did},
#{uid}, #{uid},
#{type}, #{type},
#{state}, #{time},
#{time}, #{userId}
#{userId}
) )
</foreach> </foreach>
ON duplicate KEY UPDATE time=values(time),userId=values(userId) ON duplicate KEY UPDATE time=values(time),userId=values(userId)
</insert> </insert>
<select id="findWarehouseVisiblePermissionCountByCondition" parameterType="map" resultType="int">
select
COUNT(*)
from depositoryopenrole
where 1 = 1
<if test="type != null and type != ''">
and `type` = #{type}
</if>
<if test="userId != null and userId != ''">
and userId = #{userId}
</if>
and uid in
<foreach collection="uidList" index="index" item="uid" open="(" separator="," close=")">
#{uid}
</foreach>
<if test="depositoryIdList != null and depositoryIdList !=''">
and did in
<foreach collection="depositoryIdList" index="index" item="did" open="(" separator="," close=")">
#{did}
</foreach>
</if>
</select>
<delete id="delWarehouseVisiblePermissionByCondition" parameterType="map">
delete
from depositoryopenrole
where
`type` = #{type}
<if test="uidList != null and uidList !=''">
and uid in
<foreach collection="uidList" index="index" item="uid" open="(" separator="," close=")">
#{uid}
</foreach>
</if>
<if test="uid != null and uid != ''">
and uid = #{uid}
</if>
and did in
<foreach collection="depositoryIdList" index="index" item="did" open="(" separator="," close=")">
#{did}
</foreach>
</delete>
<select id="findDepositoryIdForWarehouseVisiblePermissionByCondition" parameterType="map" resultType="int">
select
did
from depositoryopenrole
where 1 = 1
<if test="type != null and type != ''">
and `type` = #{type}
</if>
and uid = #{uid}
</select>
<select id="findDepositoryIDCountForWarehouseVisiblePermissionByCondition" parameterType="map" resultType="int">
select
COUNT(*)
from depositoryopenrole
where 1 = 1
<if test="type != null and type != ''">
and `type` = #{type}
</if>
and uid = #{uid}
</select>
</mapper> </mapper>

17
src/main/java/com/dreamchaser/depository_manage/service/RoleService.java

@ -159,6 +159,21 @@ public interface RoleService {
* @param map 添加具体数据 * @param map 添加具体数据
* @return * @return
*/ */
Integer addWarehouseVisiblePermission(Map<String,Object> map); Integer setWarehouseVisiblePermission(Map<String,Object> map);
/**
* 用于删除权限
* @param map 待删除数据
*/
Integer delWarehouseVisiblePermission(Map<String,Object> map);
/**
* 根据调剂获取在可视范围内的仓库id
* @param map 待查询调剂
* @return
*/
List<Integer> findDepositoryIdForWarehouseVisiblePermissionByCondition(Map<String,Object> map);
} }

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

@ -277,18 +277,15 @@ public class RoleServiceImpl implements RoleService {
* @return * @return
*/ */
@Override @Override
public Integer addWarehouseVisiblePermission(Map<String, Object> map) { public Integer setWarehouseVisiblePermission(Map<String, Object> map) {
// 获取当前赋值的权限类型 // 获取当前赋值的权限类型
String type = (String) map.get("type"); String type = (String) map.get("type");
// 定义返回结果 // 定义返回结果
Integer result = 0; Integer result = 0;
// 用于插入权限列表 // 用于插入权限列表
Map<String, Object> paramForInsert = new HashMap<>(); Map<String, Object> paramForInsert = new HashMap<>();
paramForInsert.put("userId", map.get("userId"));
paramForInsert.put("time", System.currentTimeMillis());
paramForInsert.put("depositoryIdList", map.get("depositoryIds"));
paramForInsert.put("state", 1);
List<Object> userIds = (List<Object>) map.get("userIds");
if ("person".equals(type)) { if ("person".equals(type)) {
// 如果是对人员赋权 // 如果是对人员赋权
paramForInsert.put("type", 1); paramForInsert.put("type", 1);
@ -298,14 +295,102 @@ public class RoleServiceImpl implements RoleService {
} else { } else {
throw new MyException("未知参数错误"); throw new MyException("未知参数错误");
} }
for (Object userId : userIds // 获取当前要处理的数量
) { Integer count = ObjectFormatUtil.toInteger(map.get("count"));
paramForInsert.put("uid", userId);
result += roleMapper.addWarehouseVisiblePermission(paramForInsert); List<Object> userIds = (List<Object>) map.get("userIds");
paramForInsert.put("uidList", userIds);
// 获取当前要处理用于及其仓库的数量
Integer countByCondition = roleMapper.findWarehouseVisiblePermissionCountByCondition(paramForInsert);
if (countByCondition > count) {
// 当前数量小于已存在的数量,则代表权限删除
result = countByCondition - delWarehouseVisiblePermission(map);
} else {
paramForInsert.put("depositoryIdList", map.get("depositoryIds"));
paramForInsert.put("userId", map.get("userId"));
paramForInsert.put("time", System.currentTimeMillis());
// 用于查询当前可见的仓库id数量
Map<String, Object> paramForCount = new HashMap<>();
paramForCount.put("type", paramForInsert.get("type"));
for (Object userId : userIds
) {
paramForInsert.put("uid", userId);
paramForCount.put("uid", userId);
Integer paramCount = roleMapper.findDepositoryIDCountForWarehouseVisiblePermissionByCondition(paramForCount);
result += (roleMapper.addWarehouseVisiblePermission(paramForInsert) - paramCount);
}
} }
return result; return result;
} }
/**
* 用于删除权限
*
* @param map 待删除数据
*/
@Override
public Integer delWarehouseVisiblePermission(Map<String, Object> map) {
// 获取当前赋值的权限类型
Map<String, Object> paramForDelete = new HashMap<>();
Integer integer = 0;
String type = (String) map.get("type");
if ("person".equals(type)) {
// 如果是对人员赋权
paramForDelete.put("type", 1);
} else if ("post".equals(type)) {
// 如果是对岗位赋权
paramForDelete.put("type", 2);
} else {
throw new MyException("未知参数错误");
}
List<Object> userIds = (List<Object>) map.get("userIds");
List<Integer> depositoryIds = (List<Integer>) map.get("depositoryIds");
if (depositoryIds.size() == 0) {
// 如果是要删除所有的
paramForDelete.put("uidList", userIds);
// 删除当前所有的权限
integer = roleMapper.delWarehouseVisiblePermissionByCondition(paramForDelete);
} else {
// 如果不是所有
for (Object uid : userIds
) {
paramForDelete.put("uid", uid);
// 获取当前用户所拥有的权限
List<Integer> depositoryIdList = roleMapper.findDepositoryIdForWarehouseVisiblePermissionByCondition(paramForDelete);
// 获取当前已拥有的与新拥有的差集
depositoryIdList.removeAll(depositoryIds);
paramForDelete.put("depositoryIdList", depositoryIdList);
integer += roleMapper.delWarehouseVisiblePermissionByCondition(paramForDelete);
}
}
return integer;
}
/**
* 根据调剂获取在可视范围内的仓库id
*
* @param map 待查询调剂
* @return
*/
@Override
public List<Integer> findDepositoryIdForWarehouseVisiblePermissionByCondition(Map<String, Object> map) {
String type = (String) map.get("type");
if ("person".equals(type)) {
// 如果是对人员赋权
map.put("type", 1);
} else if ("post".equals(type)) {
// 如果是对岗位赋权
map.put("type", 2);
} else {
throw new MyException("未知参数错误");
}
return roleMapper.findDepositoryIdForWarehouseVisiblePermissionByCondition(map);
}
/** /**
* 获取当前仓库的子仓库 * 获取当前仓库的子仓库

93
src/main/resources/templates/pages/authorization/depositoryOpen.html

@ -202,9 +202,8 @@
beforeSend: function () { beforeSend: function () {
}, },
success: function (d) { success: function (d) {
var data2 = d.data;
depositoryTree.reload({ depositoryTree.reload({
data: data2 data: d.data
}); });
}, },
@ -215,6 +214,27 @@
, id: "postTree" , id: "postTree"
, showCheckbox: true //是否显示复选框 , showCheckbox: true //是否显示复选框
, data: [] , data: []
, click: function (obj) {
let data = obj.data; //得到当前点击的节点数据
let elem = obj.elem;
if ("-1" === data.orgid) {
// 如果点击的是岗位
let postId = data.id; // 岗位id
$.ajax({
url: "/repository/findWarehouseVisiblePermission",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify({"type": "post", "uid": postId}),
success: function (res) {
let data = res.data;
depositoryTree.reload();
tree.setChecked('depositoryTree', data);
tree.setChecked('postTree',[postId])
}
})
}
}
}); });
@ -232,25 +252,51 @@
} }
// 获取选中的仓库树id // 获取选中的仓库树id
let allTreeId = getAllTreeId(treeData); let allTreeId = getAllTreeId(treeData);
if(userIds.length > 0){ if (userIds.length > 0) {
let req = {}; if (!flagForForm) {
req.userIds = userIds; flagForForm = true;
req.depositoryIds = allTreeId; let req = {};
req.type = tabType; req.userIds = userIds;
req.count = userIds.length * allTreeId.length; req.depositoryIds = allTreeId;
$.ajax({ req.type = tabType;
url:"/repository/setWarehouseVisiblePermission", req.count = userIds.length * allTreeId.length;
type: 'post', $.ajax({
dataType: 'json', url: "/repository/setWarehouseVisiblePermission",
contentType: "application/json;charset=utf-8", type: 'post',
data: JSON.stringify(req), dataType: 'json',
success :function() { contentType: "application/json;charset=utf-8",
} data: JSON.stringify(req),
}) beforeSend: function () {
}else{ this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
layer.msg("请选中赋权岗位或人员",{ },
icon:5, success: function (res) {
time:1000 layer.close(this.layerIndex);
if (res.status >= 300) {
layer.msg(res.statusInfo.message, {
icon: 5,
time: 1000
}, function () {
location.reload();
});//失败的表情
flagForForm = false;
} else {
layer.msg("设置成功!", {
icon: 6,//成功的表情
time: 1000
}, //1秒关闭(如果不配置,默认是3秒)
function () {
//do something
location.reload();
});
}
}
})
}
} else {
layer.msg("请选中赋权岗位或人员", {
icon: 5,
time: 1000
}) })
} }
@ -272,7 +318,10 @@
idList.push(temp.id); idList.push(temp.id);
} }
} else { } else {
idList.push(temp.id); if (temp.children.length === 0) {
// 如果是底层仓库
idList.push(temp.id);
}
} }
if (temp.children !== null && temp.children !== undefined && temp.children.length > 0) { if (temp.children !== null && temp.children !== undefined && temp.children.length > 0) {
// 如果存在子树 // 如果存在子树

4
src/main/resources/templates/pages/material/material-add.html

@ -265,6 +265,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
flagForForm = false;
return; return;
} else { } else {
layer.msg("添加成功!", { layer.msg("添加成功!", {
@ -304,9 +305,6 @@
}) })
}); });
$('body').on('click', '[data-refresh]', function () {
location.reload();
})
}); });
</script> </script>

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

@ -5,13 +5,13 @@
<mapper namespace="com.dreamchaser.depository_manage.mapper.RoleMapper"> <mapper namespace="com.dreamchaser.depository_manage.mapper.RoleMapper">
<!-- 字段映射(权限) --> <!-- 字段映射(权限) -->
<!-- 权限映射--> <!-- 权限映射-->
<resultMap id="postoruserroleMap" type="com.dreamchaser.depository_manage.entity.PostOrUserRole"> <resultMap id="postoruserroleMap" type="com.dreamchaser.depository_manage.entity.PostOrUserRole">
<id column="id" property="id" jdbcType="INTEGER" /> <id column="id" property="id" jdbcType="INTEGER"/>
<result column="classes" property="classes" jdbcType="INTEGER" /> <result column="classes" property="classes" jdbcType="INTEGER"/>
<result column="role" property="role" jdbcType="INTEGER" /> <result column="role" property="role" jdbcType="INTEGER"/>
<result column="userid" property="userid" jdbcType="INTEGER" /> <result column="userid" property="userid" jdbcType="INTEGER"/>
<result column="did" property="did" jdbcType="INTEGER" /> <result column="did" property="did" jdbcType="INTEGER"/>
</resultMap> </resultMap>
<resultMap id="depositoryAndrole" type="com.dreamchaser.depository_manage.pojo.RoleAndDepository"> <resultMap id="depositoryAndrole" type="com.dreamchaser.depository_manage.pojo.RoleAndDepository">
@ -27,7 +27,7 @@
</resultMap> </resultMap>
<resultMap id="materialTypeAndRole" type="com.dreamchaser.depository_manage.pojo.RoleAndMaterialType"> <resultMap id="materialTypeAndRole" type="com.dreamchaser.depository_manage.pojo.RoleAndMaterialType">
<id column="id" property="id" jdbcType="INTEGER" /> <id column="id" property="id" jdbcType="INTEGER"/>
<result column="classes" property="classes" jdbcType="INTEGER"/> <result column="classes" property="classes" jdbcType="INTEGER"/>
<result column="mtid" property="mtid" jdbcType="INTEGER"/> <result column="mtid" property="mtid" jdbcType="INTEGER"/>
<result column="uid" property="uid" jdbcType="INTEGER"/> <result column="uid" property="uid" jdbcType="INTEGER"/>
@ -50,7 +50,6 @@
</sql> </sql>
<update id="updateUserOrPostRoleAndDepository" parameterType="map"> <update id="updateUserOrPostRoleAndDepository" parameterType="map">
update postoruserrole update postoruserrole
<set> <set>
@ -107,11 +106,11 @@
</insert> </insert>
<insert id="addUserOrPostRoleAndDepositorys" parameterType="map"> <insert id="addUserOrPostRoleAndDepositorys" parameterType="map">
INSERT INTO postoruserrole ( INSERT INTO postoruserrole (
id, classes, role,userid,did id, classes, role,userid,did
) )
VALUES VALUES
<foreach collection="depositoryIds" index="index" item="did" separator="," > <foreach collection="depositoryIds" index="index" item="did" separator=",">
(#{id}, (#{id},
#{classes}, #{classes},
#{authority}, #{authority},
@ -137,7 +136,7 @@
id, classes,uid,mtid id, classes,uid,mtid
) )
VALUES VALUES
<foreach collection="mtIds" index="index" item="mtid" separator="," > <foreach collection="mtIds" index="index" item="mtid" separator=",">
(#{id}, (#{id},
#{classes}, #{classes},
#{userid}, #{userid},
@ -147,8 +146,6 @@
</insert> </insert>
<select id="findDepositoryAndRole" parameterType="int" resultMap="depositoryAndrole"> <select id="findDepositoryAndRole" parameterType="int" resultMap="depositoryAndrole">
select select
<include refid="roleNameAnddepositoryName"/> <include refid="roleNameAnddepositoryName"/>
@ -240,8 +237,6 @@
</select> </select>
<select id="findRoleAndDepositoryById" parameterType="int" resultMap="depositoryAndrole"> <select id="findRoleAndDepositoryById" parameterType="int" resultMap="depositoryAndrole">
select select
<include refid="roleNameAnddepositoryName"/> <include refid="roleNameAnddepositoryName"/>
@ -265,22 +260,89 @@
</delete> </delete>
<insert id="addWarehouseVisiblePermission"> <insert id="addWarehouseVisiblePermission">
insert into depositoryopenrole (id,did,uid,`type`,state,`time`,userId) insert into depositoryopenrole (id,did,uid,`type`,`time`,userId)
values values
<foreach collection="depositoryIdList" item="did" index="index" separator=","> <foreach collection="depositoryIdList" item="did" index="index" separator=",">
( (
#{id}, #{id},
#{did}, #{did},
#{uid}, #{uid},
#{type}, #{type},
#{state}, #{time},
#{time}, #{userId}
#{userId}
) )
</foreach> </foreach>
ON duplicate KEY UPDATE time=values(time),userId=values(userId) ON duplicate KEY UPDATE time=values(time),userId=values(userId)
</insert> </insert>
<select id="findWarehouseVisiblePermissionCountByCondition" parameterType="map" resultType="int">
select
COUNT(*)
from depositoryopenrole
where 1 = 1
<if test="type != null and type != ''">
and `type` = #{type}
</if>
<if test="userId != null and userId != ''">
and userId = #{userId}
</if>
and uid in
<foreach collection="uidList" index="index" item="uid" open="(" separator="," close=")">
#{uid}
</foreach>
<if test="depositoryIdList != null and depositoryIdList !=''">
and did in
<foreach collection="depositoryIdList" index="index" item="did" open="(" separator="," close=")">
#{did}
</foreach>
</if>
</select>
<delete id="delWarehouseVisiblePermissionByCondition" parameterType="map">
delete
from depositoryopenrole
where
`type` = #{type}
<if test="uidList != null and uidList !=''">
and uid in
<foreach collection="uidList" index="index" item="uid" open="(" separator="," close=")">
#{uid}
</foreach>
</if>
<if test="uid != null and uid != ''">
and uid = #{uid}
</if>
and did in
<foreach collection="depositoryIdList" index="index" item="did" open="(" separator="," close=")">
#{did}
</foreach>
</delete>
<select id="findDepositoryIdForWarehouseVisiblePermissionByCondition" parameterType="map" resultType="int">
select
did
from depositoryopenrole
where 1 = 1
<if test="type != null and type != ''">
and `type` = #{type}
</if>
and uid = #{uid}
</select>
<select id="findDepositoryIDCountForWarehouseVisiblePermissionByCondition" parameterType="map" resultType="int">
select
COUNT(*)
from depositoryopenrole
where 1 = 1
<if test="type != null and type != ''">
and `type` = #{type}
</if>
and uid = #{uid}
</select>
</mapper> </mapper>

4
target/classes/templates/pages/material/material-add.html

@ -265,6 +265,7 @@
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 layer.msg(data.statusInfo.message);//失败的表情
flagForForm = false;
return; return;
} else { } else {
layer.msg("添加成功!", { layer.msg("添加成功!", {
@ -304,9 +305,6 @@
}) })
}); });
$('body').on('click', '[data-refresh]', function () {
location.reload();
})
}); });
</script> </script>

Loading…
Cancel
Save