diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java b/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java index 40b4a08f..8379adda 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java @@ -303,7 +303,8 @@ public class UserController { if(roleAndDepositoryByCondition.size() > 0){ return CrudUtil.postHandle(-1,-1); }else{ - return CrudUtil.postHandle(roleService.addUserOrPostRoleAndDepository(map), 1); + Integer integer = roleService.addUserOrPostRoleAndDepository(map); + return CrudUtil.postHandle(integer, integer); } }else{ List depositoryAll = depositoryService.findDepositoryAll(); diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java index e623fa4f..47ffd975 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java @@ -89,6 +89,23 @@ public interface DepositoryMapper { List findDepositoryAll(); + /** + * 根据仓库id查询其子仓库 + * @param did + * @return + */ + List findDepositoryByParent(Integer did); + + + /** + * 根据仓库id查询其子仓库(批量) + * @param list + * @return + */ + List findDepositoryByParents(List list); + + + /** * 根据主键id获取对应数据 * @param id diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml index fdebabd2..90021ff8 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml @@ -59,6 +59,27 @@ + + + + + + + + select diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java index bf54c55d..f4d2c5eb 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java @@ -2411,74 +2411,7 @@ public class MaterialServiceImpl implements MaterialService { } - /** - * 用于构造物料树结构 - * - * @return - */ - public List InitTree_Test_New() { - // 获取所有物料类型 - List 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 list = new ArrayList<>(); - // 线程结果集 - List> futureList = new ArrayList>(); - - // 1.定义CompletionService - CompletionService completionService = new ExecutorCompletionService(exs); - // 物料类型id列表 - List 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 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 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 InitTreeMenus_New(MaterialType mt, List children) { @@ -2513,30 +2446,6 @@ public class MaterialServiceImpl implements MaterialService { return result; } - /** - * 用于构造树结构 - * - * @param list 树列表 - * @param parentId 父级id - * @return - */ - public List buildTree_New(List list, Long parentId) { - // 定义树结构 - List result = new ArrayList<>(); - for (int i = 0; i < list.size(); i++) { - // 构造为jsonObject类 - JSONObject jsonObject = new JSONObject((Map) list.get(i)); - // 获取当前父级id - Long parentId1 = jsonObject.getLong("parentId"); - if (Long.compare(parentId, parentId1) == 0) { // 如果当前类型是其父类 - List objectList = buildTree_New(list, jsonObject.getLong("id")); // 获取当前类型的子类 - JSONArray children = jsonObject.getJSONArray("children"); - children.addAll(objectList); - result.add(jsonObject); - } - } - return result; - } /** * 用于构造物料树结构(通过物料名称搜索) diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java index f485b01f..3c67f225 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java @@ -1,5 +1,7 @@ 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.pojo.RoleAndDepository; 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.stereotype.Service; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -17,6 +20,9 @@ public class RoleServiceImpl implements RoleService { @Autowired RoleMapper roleMapper; + @Autowired + DepositoryMapper depositoryMapper; + /** * 添加用户或者岗位权限及管理的仓库 * @param map @@ -25,7 +31,10 @@ public class RoleServiceImpl implements RoleService { @Override public Integer addUserOrPostRoleAndDepository(Map map){ map.put("authority",0); - return roleMapper.addUserOrPostRoleAndDepository(map); + Integer depositoryId = ObjectFormatUtil.toInteger(map.get("depositoryId")); + List depositoryByParent = findChildForDepositoryByParent(depositoryId); + map.put("depositoryIds",depositoryByParent); + return roleMapper.addUserOrPostRoleAndDepositorys(map); } /** * 根据使用者id获取角色权限以及管理的正常使用的仓库 @@ -119,4 +128,26 @@ public class RoleServiceImpl implements RoleService { public List findRoleAndDepositoryByDepositoryIdForIn(Integer depositoryId) { return roleMapper.findRoleAndDepositoryByDepositoryIdForIn(depositoryId); } + + + /** + * 获取当前仓库的子仓库 + * @param depositoryId 当前待查询仓库id + * @return + */ + // 根据id获取子类 + public List findChildForDepositoryByParent(Integer depositoryId) { + List result = new ArrayList<>(); + result.add(depositoryId); + List parentId = new ArrayList<>(); + parentId.add(depositoryId); + List depositoryAll = depositoryMapper.findDepositoryAll(); + for (Depository d : depositoryAll) { + if (parentId.contains(d.getParentId())) { + parentId.add(d.getId()); + result.add(d.getId()); + } + } + return result; + } } diff --git a/src/main/resources/templates/pages/stockTaking/stockTaking_back.html b/src/main/resources/templates/pages/stockTaking/stockTaking_back.html new file mode 100644 index 00000000..6878f210 --- /dev/null +++ b/src/main/resources/templates/pages/stockTaking/stockTaking_back.html @@ -0,0 +1,1577 @@ + + + + + 仓库盘点 + + + + + + + + + + +
+
+ + +
+
+ + + + + \ No newline at end of file diff --git a/src/test/java/com/dreamchaser/depository_manage/TestForOther.java b/src/test/java/com/dreamchaser/depository_manage/TestForOther.java new file mode 100644 index 00000000..79d7780e --- /dev/null +++ b/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 childForDepositoryByParent = findChildForDepositoryByParent(depositoryById); + System.out.println(childForDepositoryByParent); + } + + // 根据id获取子类 + public List findChildForDepositoryByParent(Depository depository) { + List result = new ArrayList<>(); + result.add(depository.getId()); + List parentId = new ArrayList<>(); + parentId.add(depository.getId()); + List 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 parentList, Integer id) { + for (Integer aLong : parentList) { + if (Integer.compare(aLong, id) == 0) { + return true; + } + } + return false; + } +} diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml index fdebabd2..90021ff8 100644 --- a/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml +++ b/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml @@ -59,6 +59,27 @@ + + + + + + + + select