diff --git a/src/test/java/com/dreamchaser/depository_manage/TestFoFindDepositoryMaterial.java b/src/test/java/com/dreamchaser/depository_manage/TestFoFindDepositoryMaterial.java deleted file mode 100644 index df608704..00000000 --- a/src/test/java/com/dreamchaser/depository_manage/TestFoFindDepositoryMaterial.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.dreamchaser.depository_manage; - -import com.dreamchaser.depository_manage.entity.*; -import com.dreamchaser.depository_manage.pojo.ApplicationInRecordP; -import com.dreamchaser.depository_manage.pojo.ApplicationOutRecordP; -import com.dreamchaser.depository_manage.pojo.DepositoryRecordP; -import com.dreamchaser.depository_manage.pojo.InventoryP; -import com.dreamchaser.depository_manage.service.DepositoryRecordService; -import com.dreamchaser.depository_manage.service.DepositoryService; -import com.dreamchaser.depository_manage.service.MaterialService; -import com.dreamchaser.depository_manage.service.StockTakingService; -import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil; -import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; -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 javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@SpringBootTest -@RunWith(SpringRunner.class) -public class TestFoFindDepositoryMaterial { - - @Autowired - DepositoryService depositoryService; - - @Autowired - DepositoryRecordService depositoryRecordService; - - @Autowired - MaterialService materialService; - - @Autowired - StockTakingService stockTakingService; - - @Test - public void Test(){ - UserByPort userByPort = LinkInterfaceUtil.FindUserById(78, null); - Boolean allSonDepository = findAllSonDepositoryOfRelevancy("48",null); - System.out.println(allSonDepository); - - } - - - /** - * 根据父级编号查询所有关联信息 - * - * @param did - * @return - */ - public Boolean findAllSonDepositoryOfRelevancy(String did, HttpServletRequest request) { - // 判断当前仓库是否存在物料 - boolean materialByDepository = findMaterialByDepository(did); - // 判断当前仓库是否有相关订单 - boolean depositoryRecord = findDepositoryRecord(did); - if (materialByDepository || depositoryRecord) { - return true; - } - // 查询当前仓库 - Depository depositoryById = depositoryService.findDepositoryById(ObjectFormatUtil.toInteger(did)); - // 查询当前仓库及子仓库 - List childForDepositoryByParent = findChildForDepositoryByParent(depositoryById); - List depositories = depositoryService.selectDepositoryRecordByIds(childForDepositoryByParent); - for (Depository depository : depositories) { - String depositoryId = depository.getId().toString(); - if (findMaterialByDepository(depositoryId) || findDepositoryRecord(depositoryId)) { - return true; - } - } - return false; - } - - /** - * 根据仓库编号判断该仓库是否有物品 - * - * @param depositoryId 待查询仓库id - * @return - */ - public boolean findMaterialByDepository(String depositoryId) { - Map param = new HashMap<>(); - param.put("state", 1); - param.put("depositoryId", depositoryId); - List materialPByCondition = materialService.findInventory(param); - return materialPByCondition.size() > 0; - } - - /** - * 根据仓库编号查询与其有关的订单信息 - * @param depositoryId 待查询仓库id - * @return - */ - public Boolean findDepositoryRecord(String depositoryId) { - Map param = new HashMap<>(); - param.put("depositoryId", depositoryId); - List inRecordPList = depositoryRecordService.findApplicationInRecordByDepository(depositoryId); - List outRecordPList = depositoryRecordService.findApplicationOutRecordByDepository(depositoryId); - List stockTakingList = stockTakingService.findStockTakingByCondition(param); - return inRecordPList.size() > 0 || outRecordPList.size() > 0 || stockTakingList.size() > 0; - } - - - /** - * 用于获取当前仓库的所有子类 - * @param d 待查询仓库 - * @return - */ - public List findChildForDepositoryByParent(Depository d) { - // 用于存储最终返回结果 - List result = new ArrayList<>(); - result.add(d.getId()); - // 父级 - List parentId = new ArrayList<>(); - parentId.add(d.getId()); - // 查询所有仓库正常使用的仓库 - List depositoryAll = depositoryService.findDepositoryAll(); - for (Depository depository : depositoryAll) { - if (isTrueForParent(parentId, depository.getParentId())) { - parentId.add(depository.getId()); - result.add(depository.getId()); - } - } - return result; - } - - /** - * 判断当前id是否在ids中 - * - * @param parentList 父级列表 - * @param id 待判断id - * @return - */ - public Boolean isTrueForParent(List parentList, Integer id) { - for (Integer aLong : parentList) { - if (Long.compare(aLong, id) == 0) { - return true; - } - } - return false; - } - -} diff --git a/src/test/java/com/dreamchaser/depository_manage/TestForDepositoryTree.java b/src/test/java/com/dreamchaser/depository_manage/TestForDepositoryTree.java deleted file mode 100644 index 2de316a8..00000000 --- a/src/test/java/com/dreamchaser/depository_manage/TestForDepositoryTree.java +++ /dev/null @@ -1,320 +0,0 @@ -package com.dreamchaser.depository_manage; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.dreamchaser.depository_manage.entity.Depository; -import com.dreamchaser.depository_manage.entity.Place; -import com.dreamchaser.depository_manage.entity.User; -import com.dreamchaser.depository_manage.entity.UserByPort; -import com.dreamchaser.depository_manage.mapper.DepositoryMapper; -import com.dreamchaser.depository_manage.mapper.PlaceMapper; -import com.dreamchaser.depository_manage.mapper.RoleMapper; -import com.dreamchaser.depository_manage.pojo.RoleAndDepository; -import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil; -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.*; -import java.util.concurrent.*; - -@SpringBootTest -@RunWith(SpringRunner.class) -public class TestForDepositoryTree { - - @Autowired - DepositoryMapper depositoryMapper; - - @Autowired - PlaceMapper placeMapper; - - @Autowired - RoleMapper roleMapper; - @Test - public void test(){ - UserByPort userByPort = LinkInterfaceUtil.FindUserById(6235, null); - List objectList1 = InitTreeMenus("102",userByPort); - System.out.println(JSONObject.toJSONString(objectList1)); - } - public List InitTreeMenus(String adminorg, UserByPort userByPort) { - // 定义结果集 - List list = new ArrayList<>(); - - // 定义仓库id列表 - List depositoryIdList = new ArrayList<>(); - // 获取所有仓库 - List depositoryAll = depositoryMapper.findDepositoryAll(); - Integer totalVal = depositoryAll.size(); - - // 定义分页数量 - double size = 10.0; - - // 定义线程数 - Integer threadSize = (int) Math.ceil(totalVal / size); - - // 定义开启线程数目 - Integer openThreadSize = 0; - // 开启对应数量的线程 - ExecutorService exs = Executors.newFixedThreadPool(threadSize); - // 线程结果集 - List> futureList = new ArrayList>(); - - // 1.定义CompletionService - CompletionService completionService = new ExecutorCompletionService(exs); - for (int i = 0; i < depositoryAll.size(); i++) { - // 获取当前类型 - Depository depository = depositoryAll.get(i); - if (((i + 1) % 10) == 0) { // 如果有10个开启线程进行处理 - depositoryIdList.add(depository.getId()); - Future future = completionService.submit(new Task(depositoryIdList,adminorg,userByPort)); - openThreadSize++; - futureList.add(future); // 添加到结果集 - depositoryIdList = new ArrayList<>(); // 情况列表 - } else { - // 添加id到列表中 - depositoryIdList.add(depository.getId()); - } - } - - if (depositoryIdList.size() > 0) { - // 如果有剩余,开启线程进行处理 - Future future = completionService.submit(new Task(depositoryIdList,adminorg,userByPort)); - 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(); - // 获取当前用户所管理的仓库 - for (int i = 0; i < list.size(); i++) { - JSONObject jsonObject = new JSONObject((Map) list.get(i)); - Integer parentId = jsonObject.getInteger("parentId"); - if(Integer.compare(parentId,0) != 0) { - if (!checkList(list, parentId)) { - // 如果当前列表中不存在其父级 - Depository depositoryById = depositoryMapper.findDepositoryById(parentId); - list.add(InitTreeMenus2(depositoryById, new ArrayList<>())); - } - } - } - return list; - } - - - // 用于执行线程任务 - class Task implements Callable { - - // 仓库 - List depositoryIdList; - // 部门 - String adminorg; - // 当前登录用户 - UserByPort userByPort; - - public Task(List depositoryIdList,String adminorg,UserByPort userByPort){ - this.depositoryIdList = depositoryIdList; - this.adminorg = adminorg; - this.userByPort = userByPort; - } - @Override - public Object call() throws Exception { - /** - * 获取当前仓库id对应的仓库 - */ - List depositories = depositoryMapper.selectDepositoryByIds(depositoryIdList); - // 获取当前用户管理的仓库 - List depositoryAndRole = roleMapper.findDepositoryAndRole(userByPort.getId()); - // 定义树结构结果集 - List list = new ArrayList<>(); - // 定义线程池 - ExecutorService exs = Executors.newFixedThreadPool(depositories.size()); - // 线程结果集 - List> futureList = new ArrayList>(); - - // 1.定义CompletionService用于获取结果 - CompletionService completionService = new ExecutorCompletionService(exs); - - // 定义开启线程数 - Integer openThreadSize = 0; - for (int i = 0; i < depositories.size(); i++) { - // 获取当前仓库信息 - Depository depository = depositories.get(i); - if("".equals(adminorg)||"361".equals(adminorg)){ - Future submit = completionService.submit(new PlaceTask(depository)); - futureList.add(submit); - openThreadSize++; - }else{ - if(adminorg.equals(depository.getAdminorg()) || checkDidInDepositoryIdList(depository.getId(),depositoryAndRole)){ - Future submit = completionService.submit(new PlaceTask(depository)); - futureList.add(submit); - openThreadSize++; - } - } - - } - 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.add(result); - } - return list; - } - } - - - /** - * 用于给仓库添加对应的库位 - */ - class PlaceTask implements Callable{ - - Depository d; - - PlaceTask(Depository d){ - this.d = d; - } - - @Override - public Object call() throws Exception { - // 获取当前仓库下的库位 - List objectList = AddPlaceByDid(d); - - // 将其构造成对应的树形结构类型 - Map map = InitTreeMenus2(d, objectList); - return map; - } - } - - - // 在仓库后添加库位信息 - public List AddPlaceByDid(Depository d) { - if (d != null) { - // 获取当前仓库下的所有库位 - List result = new ArrayList<>(); - // 获取该仓库的排 - List placeXByDid = placeMapper.findPlaceXByDid(d.getId()); - if (placeXByDid.size() > 0) { - for (int i = 1; i <= placeXByDid.get(0); i++) { - Map placeX = new HashMap<>(); - placeX.put("title", "第" + i + "排货架"); - placeX.put("id", -1); - Map param = new HashMap<>(); - param.put("did", d.getId()); - param.put("x", i); - List placeByCondition = placeMapper.findPlaceByCondition(param); - if (placeByCondition.size() > 0) { - List children = new ArrayList<>(); - for (int k = 1; k <= placeByCondition.size(); k++) { - Map map = new HashMap<>(); - map.put("title", placeByCondition.get(k - 1).getCode()); - map.put("id", d.getId() + "-" + placeByCondition.get(k - 1).getId()); - children.add(map); - } - placeX.put("children", children); - } - // 获取该仓库该排的列数 - result.add(placeX); - } - } - return result; - } else { - return null; - } - } - - - // 构造树形组件数据模板 - public Map InitTreeMenus2(Depository d, List children) { - if (d != null) { - Map map = new HashMap<>(); - map.put("title", d.getDname()); - map.put("id", d.getId()); - map.put("children", children); - map.put("parentId",d.getParentId()); - return map; - } else { - return null; - } - } - - - /** - * 用于构造树结构 - * @param list 树列表 - * @param parentId 父级id - * @return - */ - public List buildTree_New(List list,Integer 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.getInteger("id")); // 获取当前类型的子类 - JSONArray children = jsonObject.getJSONArray("children"); - children.addAll(objectList); - result.add(jsonObject); - } - } - return result; - } - - - /** - * 判断当前父级id是否在列表中 - * @param list - * @param parentId - * @return - */ - public Boolean checkList(List list,Integer parentId){ - for (int i = 0; i < list.size(); i++) { - JSONObject jsonObject = new JSONObject((Map) list.get(i)); - Integer pid = jsonObject.getInteger("id"); - if(Integer.compare(pid,parentId) == 0){ - return true; - } - } - return false; - } - - - /** - * 用于判断当前仓库是否是用户所管理的仓库 - * @param depositoryId 仓库id - * @param list 用户管理仓库列表 - * @return - */ - public boolean checkDidInDepositoryIdList(Integer depositoryId,List list){ - for (RoleAndDepository roleAndDepository : list) { - if (Integer.compare(depositoryId, roleAndDepository.getDepositoryId()) == 0) { - // 是其所管理的仓库 - return true; - } - } - return false; - } - - - -} diff --git a/src/test/java/com/dreamchaser/depository_manage/TestForGroupTree.java b/src/test/java/com/dreamchaser/depository_manage/TestForGroupTree.java deleted file mode 100644 index 8193378c..00000000 --- a/src/test/java/com/dreamchaser/depository_manage/TestForGroupTree.java +++ /dev/null @@ -1,218 +0,0 @@ -package com.dreamchaser.depository_manage; - - -import com.alibaba.fastjson.JSONObject; -import com.dreamchaser.depository_manage.entity.Depository; -import com.dreamchaser.depository_manage.entity.Group; -import com.dreamchaser.depository_manage.entity.GroupInfo; -import com.dreamchaser.depository_manage.entity.UserByPort; -import com.dreamchaser.depository_manage.mapper.GroupMapper; -import com.dreamchaser.depository_manage.pojo.RoleAndDepository; -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.*; -import java.util.concurrent.*; - -@SpringBootTest -@RunWith(SpringRunner.class) -public class TestForGroupTree { - - @Autowired - GroupMapper groupMapper; - - @Test - public void Test(){ - List list = InitTreeMenus(""); - System.out.println(JSONObject.toJSONString(list)); - } - - - /** - * 用于构造组合树 - * @param gname - * @return - */ - public List InitTreeMenus(String gname) { - // 定义结果集 - List list = new ArrayList<>(); - - // 获取所有使用中的组合 - List allGroupOnly = groupMapper.findAllGroupOnly(gname); - - // 获取当前总数 - Integer totalVal = allGroupOnly.size(); - - // 定义分页数量 - double size = 10.0; - - // 定义线程数 - Integer threadSize = (int) Math.ceil(totalVal / size); - - // 定义开启线程数目 - Integer openThreadSize = 0; - // 开启对应数量的线程 - ExecutorService exs = Executors.newFixedThreadPool(threadSize); - // 线程结果集 - List> futureList = new ArrayList>(); - - // 1.定义CompletionService - CompletionService completionService = new ExecutorCompletionService(exs); - - - // 定义组合id列表 - List groupIdList = new ArrayList<>(); - - - for (int i = 0; i < allGroupOnly.size(); i++) { - Group group = allGroupOnly.get(i); - if (((i + 1) % 10) == 0) { // 如果有10个开启线程进行处理 - groupIdList.add(group.getId()); - Future future = completionService.submit(new Task(groupIdList)); - openThreadSize++; - futureList.add(future); // 添加到结果集 - groupIdList = new ArrayList<>(); // 情况列表 - } else { - // 添加id到列表中 - groupIdList.add(group.getId()); - } - } - if (groupIdList.size() > 0) { - // 如果有剩余,开启线程进行处理 - Future future = completionService.submit(new Task(groupIdList)); - futureList.add(future); - openThreadSize++; - } - - for (int i = 0; i < openThreadSize; i++) { - Object result = null; - try { - result = completionService.take().get(); - } catch (InterruptedException | ExecutionException e) { - e.printStackTrace(); - } - list.addAll((Collection) result); - } - return list; - } - - // 用于执行线程任务 - class Task implements Callable { - - // 组合id列表 - List groupIdList; - - - public Task(List groupIdList){ - this.groupIdList = groupIdList; - - } - @Override - public Object call() throws Exception { - /** - * 获取当前组合id对应的组合 - */ - List groupByGids = groupMapper.findGroupByGids(groupIdList); - - // 开启对应数量的线程 - ExecutorService exs = Executors.newFixedThreadPool(groupByGids.size()); - // 线程结果集 - List> futureList = new ArrayList>(); - - // 1.定义CompletionService - CompletionService completionService = new ExecutorCompletionService(exs); - - - // 定义结果集 - List list = new ArrayList<>(); - - for (int i = 0; i < groupByGids.size(); i++) { - // 获取组合具体信息 - Group group = groupByGids.get(i); - // 开启线程 - Future submit = completionService.submit(new TaskForGroupInfo(group)); - futureList.add(submit); - } - - for (int i = 0; i < groupByGids.size(); i++) { - Object result = null; - try { - result = completionService.take().get(); - } catch (InterruptedException | ExecutionException e) { - e.printStackTrace(); - } - list.add(result); - } - return list; - } - } - - class TaskForGroupInfo implements Callable{ - - Group group; - TaskForGroupInfo(Group group){ - this.group = group; - } - - @Override - public Object call() throws Exception - { - // 用于获取当前组合的具体信息 - Map paramForGroup = new HashMap<>(); - paramForGroup.put("gid",group.getId()); - // 获取当前组合的具体信息 - List groupByCondition = groupMapper.findGroupByCondition(paramForGroup); - // 定义子类结果集 - List resultForChildren = new ArrayList<>(); - for (GroupInfo groupInfo : groupByCondition) { - Map stringObjectMap = InitTreeMenus(groupInfo); - resultForChildren.add(stringObjectMap); - } - Map stringObjectMap = InitTreeMenus(group, resultForChildren); - return stringObjectMap; - } - } - - - - /** - * 构造树形组件数据模板 - * @param g 组合 - * @param children 子类 - * @return - */ - public Map InitTreeMenus(Group g, List children) { - if (g != null) { - Map map = new HashMap<>(); - map.put("title", g.getGname()); - map.put("id", g.getId()); - map.put("children", children); - return map; - } else { - return null; - } - } - - - /** - * 构造树形组件的子组件模板 - * @param g 组合详细信息 - * @return - */ - public Map InitTreeMenus(GroupInfo g) { - if (g != null) { - Map map = new HashMap<>(); - map.put("title", g.getMname()); - map.put("id", g.getId()); - return map; - } else { - return null; - } - } - - - -} diff --git a/src/test/java/com/dreamchaser/depository_manage/TestForManagerTree.java b/src/test/java/com/dreamchaser/depository_manage/TestForManagerTree.java deleted file mode 100644 index 8cae96d2..00000000 --- a/src/test/java/com/dreamchaser/depository_manage/TestForManagerTree.java +++ /dev/null @@ -1,172 +0,0 @@ -package com.dreamchaser.depository_manage; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.dreamchaser.depository_manage.config.PortConfig; -import com.dreamchaser.depository_manage.entity.*; -import com.dreamchaser.depository_manage.pojo.AdministrationP; -import com.dreamchaser.depository_manage.service.impl.CompanyServiceImpl; -import com.dreamchaser.depository_manage.utils.HttpUtils; -import com.sun.org.apache.xml.internal.security.Init; -import org.apache.http.protocol.HTTP; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -import javax.management.relation.RelationSupport; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.*; - -@SpringBootTest -@RunWith(SpringRunner.class) -public class TestForManagerTree { - - @Test - public void test(){ - - List allUserByAdministration = findAllUserByAdministration("309", null); - // 开启对应数量的线程 - ExecutorService exs = Executors.newFixedThreadPool(allUserByAdministration.size()); - // 结果集 - List list = new ArrayList<>(); - List> futureList = new ArrayList>(); - // 1.定义CompletionService - CompletionService completionService = new ExecutorCompletionService(exs); - - // 开启对应数目的线程 - for (int i = 0; i < allUserByAdministration.size(); i++) { - ThreeAboutMan threeAboutMan = allUserByAdministration.get(i); - // 开启线程 - Future submit = completionService.submit(new InitManagerTree(threeAboutMan)); - futureList.add(submit); - } - - // 收集结果 - for (int i = 0; i < allUserByAdministration.size(); i++) { - Object result = null; - try { - result = completionService.take().get(); - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } - list.add(result); - } - System.out.println(JSONObject.toJSONString(list)); - } - - - /** - * 用于构造人员树 - */ - class InitManagerTree implements Callable{ - - ThreeAboutMan threeAboutMan; - - InitManagerTree(ThreeAboutMan threeAboutMan){ - this.threeAboutMan = threeAboutMan; - } - - @Override - public Object call() throws Exception { - // 获取当前树结构的children - List children = InitTrees(threeAboutMan); - // 构造结构 - Map map = InitTree(threeAboutMan, children); - return map; - } - } - - - /** - * 用于获取行政组织树(包括成员) - * @param id 查询id - * @param userToken 登录用户 - * @return - */ - public List findAllUserByAdministration(String id,UserByPort userToken){ - String url = PortConfig.external_url +"/org/govthreeaboutman"; - Map map = new HashMap<>(); - map.put("id",id); - map.put("level",0); - map.put("all",1); - String jsonString = JSONObject.toJSONString(map); - JSONObject paramObject = JSONObject.parseObject(jsonString); - String post = null; - try { - post = HttpUtils.send(url,paramObject, HTTP.UTF_8,userToken); - } catch (IOException e) { - e.printStackTrace(); - } - JSONObject jsonObject = JSONObject.parseObject(post); - JSONObject data = (JSONObject) jsonObject.get("data"); - JSONArray list = (JSONArray) data.get("three"); - if(list == null){ - list = new JSONArray(); - } - List threeAboutManList = new ArrayList<>(); - for (int i = 0; i < list.size(); i++) { - ThreeAboutMan threeAboutMan = JSONObject.toJavaObject((JSON) list.get(i), ThreeAboutMan.class); - threeAboutManList.add(threeAboutMan); - } - return threeAboutManList; - } - - /** - * 用于构造人员列表 - * @param threeAboutMan - * @return - */ - public List InitTrees(ThreeAboutMan threeAboutMan){ - // 获取当前部门的部门负责人 - List result = new ArrayList<>(); - List child = threeAboutMan.getChild(); - if(child != null){ - for (int i = 0; i < child.size(); i++) { - ThreeAboutMan threeAboutMan1 = child.get(i); - if(Integer.compare(threeAboutMan1.getIsman(),1) == 0){ - // 如果当前数据是部门 - - // 递归查询当前树 - List childrenList = InitTrees(threeAboutMan1); - Map map = InitTree(threeAboutMan1, childrenList); - result.add(map); - }else{ - // 如果是人员 - - Map children = new HashMap<>(); - children.put("title",threeAboutMan1.getName()); - children.put("id",threeAboutMan1.getNumber()); - result.add(children); - } - } - } - return result; - } - - - /** - * 用于构造树形模板 - * @param threeAboutMan - * @param children - * @return - */ - public Map InitTree(ThreeAboutMan threeAboutMan,List children){ - if (threeAboutMan != null) { - Map map = new HashMap<>(); - map.put("title", threeAboutMan.getName()); - map.put("id", threeAboutMan.getNumber()); - map.put("children", children); - return map; - } else { - return null; - } - } -} diff --git a/src/test/java/com/dreamchaser/depository_manage/TestForMaterialTree.java b/src/test/java/com/dreamchaser/depository_manage/TestForMaterialTree.java deleted file mode 100644 index f7c94409..00000000 --- a/src/test/java/com/dreamchaser/depository_manage/TestForMaterialTree.java +++ /dev/null @@ -1,264 +0,0 @@ -package com.dreamchaser.depository_manage; - - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.dreamchaser.depository_manage.entity.*; -import com.dreamchaser.depository_manage.mapper.MaterialMapper; -import com.dreamchaser.depository_manage.mapper.MaterialTypeMapper; -import com.dreamchaser.depository_manage.service.*; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.test.context.junit4.SpringRunner; - -import java.util.*; -import java.util.concurrent.*; - -@SpringBootTest -@RunWith(SpringRunner.class) -public class TestForMaterialTree { - - - @Autowired - MaterialService materialService; - - @Autowired - MaterialMapper materialMapper; - - @Autowired - MaterialTypeMapper materialTypeMapper; - - @Autowired - RedisTemplate redisTemplate; - - @org.junit.Test - public void test1(){ - List objectList = buildTree_New(InitTree_Test_New(), Long.valueOf(0)); - } - - - /** - * 用于深度拷贝列表 - * - * @param oldList - * @param - * @return - */ - public static List deepCopy(List oldList) { - List newList = (List) Arrays.asList(new Object[oldList.size()]); - Collections.copy(newList, oldList); - return newList; - } - - /** - * 用于构造物料树结构 - * @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); - - // 开启对应数量的线程 - 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); // 添加到结果集 - materialTypeList = new ArrayList<>(); // 情况列表 - } else { - // 添加id到列表中 - materialTypeList.add(materialType.getOldId()); - } - } - - if (materialTypeList.size() > 0) { - // 如果有剩余,开启线程进行处理 - Future future = completionService.submit(new TaskTest_New(materialTypeList)); - futureList.add(future); - } - - // 3.获取结果 - for (int i = 0; i < threadSize; i++) { - Object result = null; - try { - result = completionService.take().get(); - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } - list.addAll((Collection) result); - } - // 进行最终的封装 - return list; - } - - // 用于执行测试新算法 - class TaskTest_New implements Callable { - - // 待处理的物料类型id列表 - List materialTypeIdList; - - public TaskTest_New(List materialTypeByCondition) { - this.materialTypeIdList = materialTypeByCondition; - } - - @Override - public Object call() throws Exception { - - // 定义树结构结果集 - List list = new ArrayList<>(); - // 查询当前物料类型id列表中的物料类型 - List materialByTypeIds = materialMapper.findMaterialByTypeIds(materialTypeIdList); - // 查询当前物料类型所包含的物料 - List materialTypeByOldIds = materialTypeMapper.findMaterialTypeByOldIds(materialTypeIdList); - - // 定义线程集 - ExecutorService exs = Executors.newFixedThreadPool(materialTypeByOldIds.size()); - // 定义线程结果集 - List> futureList = new ArrayList>(); - - // 1.定义CompletionService - CompletionService completionService = new ExecutorCompletionService(exs); - - for (int i = 0; i < materialTypeByOldIds.size(); i++) { - // 获取当前物料类型 - MaterialType mt = materialTypeByOldIds.get(i); - // 开启对应线程 - Future future = completionService.submit(new MtTaskTest_New(mt, materialByTypeIds)); - // 添加到线程结果列表 - futureList.add(future); - } - // 3.获取结果 - for (int i = 0; i < materialTypeIdList.size(); i++) { - Object result = null; - try { - result = completionService.take().get(); - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } - list.add(result); - } - return list; - } - - - } - - // 用于执行测试新算法 - class MtTaskTest_New implements Callable { - - MaterialType mt; // 物料类型 - List materiaList; // 物料列表 - - public MtTaskTest_New(MaterialType mt, List materiaList) { - this.mt = mt; - this.materiaList = materiaList; - } - - @Override - public Object call() throws Exception { - - // 开启对应数量的线程 - List materialList = new ArrayList<>(); - for (int i = 0; i < materiaList.size(); i++) { - Material material = materiaList.get(i); - // 如果当前物料是当前物料类型下的物料 - if (Long.compare(material.getMaterialTypeId(), mt.getOldId()) == 0) { - materialList.add(material); - } - } - // 将物料打包成树结构对应结果 - List objectList = AddMaterialByType_New(materialList); - // 封装成对应的结构 - Map objectMap = InitTreeMenus_New(mt, objectList); - return objectMap; - } - } - - // 构造树形组件数据模板 - public Map InitTreeMenus_New(MaterialType mt, List children) { - if (mt != null) { - Map map = new HashMap<>(); - map.put("title", mt.getTname()); - map.put("id", mt.getOldId()); - map.put("parentId",mt.getParentId()); - map.put("children", children); - return map; - } else { - return null; - } - } - - // 在类别后添加物料名称 - public List AddMaterialByType_New(List materialList) { - List result = new ArrayList<>(); - for (int i = 0; i < materialList.size(); i++) { - Material material = materialList.get(i); - Map map = new HashMap<>(); - String version = material.getVersion(); - if (version == null) { - version = ""; - } - - String title = material.getMname() + ",规格型号: " + version; - map.put("title", title); - map.put("id", material.getId()); - result.add(map); - } - 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/test/java/com/dreamchaser/depository_manage/TestForMaterialTypeTree.java b/src/test/java/com/dreamchaser/depository_manage/TestForMaterialTypeTree.java deleted file mode 100644 index 5735558f..00000000 --- a/src/test/java/com/dreamchaser/depository_manage/TestForMaterialTypeTree.java +++ /dev/null @@ -1,174 +0,0 @@ -package com.dreamchaser.depository_manage; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.dreamchaser.depository_manage.entity.Material; -import com.dreamchaser.depository_manage.entity.MaterialType; -import com.dreamchaser.depository_manage.mapper.MaterialTypeMapper; -import com.dreamchaser.depository_manage.service.MaterialTypeService; -import com.dreamchaser.depository_manage.service.impl.MaterialTypeServiceImpl; -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.data.redis.core.RedisTemplate; -import org.springframework.test.context.junit4.SpringRunner; - -import java.util.*; -import java.util.concurrent.*; - -@SpringBootTest -@RunWith(SpringRunner.class) -public class TestForMaterialTypeTree { - @Autowired - MaterialTypeMapper materialTypeMapper; - - @Autowired - private RedisTemplate redisTemplateForHash; - - @Test - public void Test(){ - String key = "user:6235"; - String minRecord = (String) redisTemplateForHash.opsForHash().get(key,"minRecord"); - if(minRecord != null){ - // 获取子订单键值 - String[] split = minRecord.replace("[","").replace("]","").split(","); - for (int i = 0; i < split.length; i++) { - System.out.println(split[i]); - } - } - } - - - public List InitTreeMenus() { - // 获取所有物料类型 - 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)); - openThreadSize++; - futureList.add(future); // 添加到结果集 - 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; - } - - // 用于执行测试新算法 - class TaskTest_New implements Callable { - - // 待处理的物料类型id列表 - List materialTypeIdList; - - public TaskTest_New(List materialTypeByCondition) { - this.materialTypeIdList = materialTypeByCondition; - } - - @Override - public Object call() throws Exception { - - // 定义树结构结果集 - List list = new ArrayList<>(); - // 查询当前物料类型id列表中的物料类型 - List materialTypeByOldIds = materialTypeMapper.findMaterialTypeByOldIds(materialTypeIdList); - - for (int i = 0; i < materialTypeByOldIds.size(); i++) { - MaterialType mt = materialTypeByOldIds.get(i); - Map map = InitTreeMenus(mt, new ArrayList<>()); - list.add(map); - } - return list; - } - - - } - - // 构造树形组件数据模板 - public Map InitTreeMenus(MaterialType mt, List children) { - if (mt != null) { - Map map = new HashMap<>(); - map.put("title", mt.getTname()); - map.put("id", mt.getOldId()); - map.put("parentId",mt.getParentId()); - map.put("children",children); - return map; - } else { - return null; - } - } - - /** - * 用于构造树结构 - * @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/test/java/com/dreamchaser/depository_manage/TestForOther.java b/src/test/java/com/dreamchaser/depository_manage/TestForOther.java deleted file mode 100644 index 136cc046..00000000 --- a/src/test/java/com/dreamchaser/depository_manage/TestForOther.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.dreamchaser.depository_manage; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.dreamchaser.depository_manage.EPSON.EPDM.EPDMEnumrations; -import com.dreamchaser.depository_manage.EPSON.EPDM.EPDMMediaLayoutRange; -import com.dreamchaser.depository_manage.config.PortConfig; -import com.dreamchaser.depository_manage.config.QyWxConfig; -import com.dreamchaser.depository_manage.controller.EPSON.AddMediaLayoutDlg; -import com.dreamchaser.depository_manage.controller.EPSON.PrintSettingsDlg; -import com.dreamchaser.depository_manage.entity.Depository; -import com.dreamchaser.depository_manage.entity.EPSON.EPDM.MEDIA_LAYOUT; -import com.dreamchaser.depository_manage.entity.qywxDepartment; -import com.dreamchaser.depository_manage.service.DepositoryService; -import com.dreamchaser.depository_manage.service.impl.EPSON.EPDM.EPDMWrapper; -import com.dreamchaser.depository_manage.service.impl.EPSON.EPDM.EPDMWrapperImpl; -import com.sun.jna.*; -import com.sun.jna.ptr.IntByReference; -import com.sun.jna.win32.W32APIOptions; -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.io.*; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -/** - * 专用于测试琐碎实例 - */ -@SpringBootTest -@RunWith(SpringRunner.class) -public class TestForOther { - - @Autowired - DepositoryService depositoryService; - - @Test - public void Test() throws IOException { - // 51 - -// qywxDepartment qyWxDepartment = QyWxConfig.getQyWxDepartment("123456789", 73); -// System.out.println(qyWxDepartment.getDepartment_leader().get(0)); -// Map portInfo = PortConfig.findUserByQyWxUserId("WoBenShanLiang_3"); -// System.out.println(portInfo); - - - Depository topDepositoryByDepository = depositoryService.findTopDepositoryByDepository(10); - System.out.println(topDepositoryByDepository); - } - - - - -} diff --git a/src/test/java/com/dreamchaser/depository_manage/TestForSelectMaterialByName.java b/src/test/java/com/dreamchaser/depository_manage/TestForSelectMaterialByName.java deleted file mode 100644 index bbd15e44..00000000 --- a/src/test/java/com/dreamchaser/depository_manage/TestForSelectMaterialByName.java +++ /dev/null @@ -1,273 +0,0 @@ -package com.dreamchaser.depository_manage; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.dreamchaser.depository_manage.entity.Material; -import com.dreamchaser.depository_manage.entity.MaterialType; -import com.dreamchaser.depository_manage.mapper.MaterialMapper; -import com.dreamchaser.depository_manage.mapper.MaterialTypeMapper; -import com.dreamchaser.depository_manage.service.MaterialService; -import org.apache.poi.ss.formula.functions.T; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.test.context.junit4.SpringRunner; - -import java.util.*; -import java.util.concurrent.*; - -@SpringBootTest -@RunWith(SpringRunner.class) -public class TestForSelectMaterialByName { - - @Autowired - MaterialService materialService; - - @Autowired - MaterialMapper materialMapper; - - @Autowired - MaterialTypeMapper materialTypeMapper; - - @Autowired - RedisTemplate redisTemplate; - - @org.junit.Test - public void test1() { - List list = buildTreeForSelectName(InitTreeForSelectName("切四A菇")); - System.out.println(JSONObject.toJSONString(list)); - } - - - /** - * 用于深度拷贝列表 - * - * @param oldList - * @param - * @return - */ - public static List deepCopy(List oldList) { - List newList = (List) Arrays.asList(new Object[oldList.size()]); - Collections.copy(newList, oldList); - return newList; - } - - /** - * 用于构造物料树结构(通过物料名称搜索) - * - * @return - */ - public List InitTreeForSelectName(String mname) { - // 获取所有物料类型 - List materialTypeAll = materialTypeMapper.findMaterialTypeAll(); - // 物料总数 - Integer totalVal = materialTypeAll.size(); - - // 定义分页数量 - double size = 100.0; - - // 定义线程数 - Integer threadSize = (int) Math.ceil(totalVal / size); - - // 开启对应数量的线程 - 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 TaskTestForSelectMname(materialTypeList, mname)); - futureList.add(future); // 添加到结果集 - materialTypeList = new ArrayList<>(); // 情况列表 - } else { - // 添加id到列表中 - materialTypeList.add(materialType.getOldId()); - } - } - - if (materialTypeList.size() > 0) { - // 如果有剩余,开启线程进行处理 - Future future = completionService.submit(new TaskTestForSelectMname(materialTypeList, mname)); - futureList.add(future); - } - - // 3.获取结果 - for (int i = 0; i < threadSize; i++) { - Object result = null; - try { - result = completionService.take().get(); - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } - list.addAll((Collection) result); - } - // 进行最终的封装 - return list; - } - - // 用于执行测试新算法(通过物料名称搜索) - class TaskTestForSelectMname implements Callable { - - // 待处理的物料类型id列表 - List materialTypeIdList; - String mname; - - public TaskTestForSelectMname(List materialTypeByCondition, String mname) { - this.materialTypeIdList = materialTypeByCondition; - this.mname = mname; - } - - @Override - public Object call() throws Exception { - - // 定义树结构结果集 - List list = new ArrayList<>(); - // 查询当前物料类型id列表中的物料类型 - Map paramForMnameAndMtid = new HashMap<>(); - paramForMnameAndMtid.put("list", materialTypeIdList); - paramForMnameAndMtid.put("mname", mname); - List materialByTypeIds = materialMapper.findMaterialByTypeIdsAndMname(paramForMnameAndMtid); - // 查询当前物料类型所包含的物料 - List materialTypeByOldIds = materialTypeMapper.findMaterialTypeByOldIds(materialTypeIdList); - - // 定义线程集 - ExecutorService exs = Executors.newFixedThreadPool(materialTypeByOldIds.size()); - // 定义线程结果集 - List> futureList = new ArrayList>(); - - // 1.定义CompletionService - CompletionService completionService = new ExecutorCompletionService(exs); - - for (int i = 0; i < materialTypeByOldIds.size(); i++) { - // 获取当前物料类型 - MaterialType mt = materialTypeByOldIds.get(i); - // 开启对应线程 - Future future = completionService.submit(new MtTaskTestForSelectMname(mt, materialByTypeIds, mname)); - // 添加到线程结果列表 - futureList.add(future); - } - // 3.获取结果 - for (int i = 0; i < materialTypeIdList.size(); i++) { - Object result = null; - try { - result = completionService.take().get(); - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } - list.add(result); - } - return list; - } - - - } - - // 用于执行测试新算法(通过物料名称搜索) - class MtTaskTestForSelectMname implements Callable { - - MaterialType mt; // 物料类型 - List materiaList; // 物料列表 - String mname; - - public MtTaskTestForSelectMname(MaterialType mt, List materiaList, String mname) { - this.mt = mt; - this.materiaList = materiaList; - this.mname = mname; - } - - @Override - public Object call() throws Exception { - - // 开启对应数量的线程 - List materialList = new ArrayList<>(); - for (int i = 0; i < materiaList.size(); i++) { - Material material = materiaList.get(i); - // 如果当前物料是当前物料类型下的物料 - if (Long.compare(material.getMaterialTypeId(), mt.getOldId()) == 0) { - materialList.add(material); - } - } - // 将物料打包成树结构对应结果 - List objectList = AddMaterialByTypeForSelectMname(materialList); - // 封装成对应的结构 - Map objectMap = InitTreeMenusForSelectName(mt, objectList); - return objectMap; - } - } - - // 构造树形组件数据模板(通过物料名称搜索) - public Map InitTreeMenusForSelectName(MaterialType mt, List children) { - if (mt != null) { - Map map = new HashMap<>(); - map.put("title", mt.getTname()); - map.put("id", mt.getOldId()); - map.put("parentId", mt.getParentId()); - map.put("children", children); - return map; - } else { - return null; - } - } - - // 在类别后添加物料名称(通过物料名称搜索) - public List AddMaterialByTypeForSelectMname(List materialList) { - List result = new ArrayList<>(); - for (int i = 0; i < materialList.size(); i++) { - Material material = materialList.get(i); - Map map = new HashMap<>(); - String version = material.getVersion(); - if (version == null) { - version = ""; - } - - String title = material.getMname() + ",规格型号: " + version; - map.put("title", title); - map.put("id", material.getId()); - result.add(map); - } - return result; - } - - /** - * 用于构造树结构(通过物料名称搜索) - * - * @param list 树列表 - * @return - */ - public List buildTreeForSelectName(List list) { - // 定义树结构 - List result = new ArrayList<>(); - for (int i = 0; i < list.size(); i++) { - // 构造为jsonObject类 - JSONObject jsonObject = new JSONObject((Map) list.get(i)); - JSONArray children = jsonObject.getJSONArray("children"); - if(children.size() > 0){ - result.add(jsonObject); - } -// // 获取当前父级id -// Long parentId1 = jsonObject.getLong("parentId"); -// if (Long.compare(parentId, parentId1) == 0) { // 如果当前类型是其父类 -// List objectList = buildTreeForSelectName(list, jsonObject.getLong("id")); // 获取当前类型的子类 -// JSONArray children = jsonObject.getJSONArray("children"); -// children.addAll(objectList); -// result.add(jsonObject); -// } - - } - return result; - } -} diff --git a/src/test/java/com/dreamchaser/depository_manage/TestForThisWeekInventory.java b/src/test/java/com/dreamchaser/depository_manage/TestForThisWeekInventory.java deleted file mode 100644 index 02c752d7..00000000 --- a/src/test/java/com/dreamchaser/depository_manage/TestForThisWeekInventory.java +++ /dev/null @@ -1,259 +0,0 @@ -package com.dreamchaser.depository_manage; - -import com.alibaba.fastjson.JSONObject; -import com.dreamchaser.depository_manage.entity.UserByPort; -import com.dreamchaser.depository_manage.mapper.DepositoryMapper; -import com.dreamchaser.depository_manage.mapper.DepositoryRecordMapper; -import com.dreamchaser.depository_manage.mapper.MaterialTypeMapper; -import com.dreamchaser.depository_manage.mapper.RoleMapper; -import com.dreamchaser.depository_manage.pojo.InventoryByDname; -import com.dreamchaser.depository_manage.service.DepositoryRecordService; -import com.dreamchaser.depository_manage.service.DepositoryService; -import com.dreamchaser.depository_manage.service.MaterialTypeService; -import com.dreamchaser.depository_manage.utils.DateUtil; -import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil; -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.text.SimpleDateFormat; -import java.util.*; - -@SpringBootTest -@RunWith(SpringRunner.class) -public class TestForThisWeekInventory { - - - @Autowired - MaterialTypeService materialTypeService; - - @Autowired - DepositoryRecordService depositoryRecordService; - - @Autowired - DepositoryRecordMapper depositoryRecordMapper; - - @Autowired - DepositoryMapper depositoryMapper; - - @Autowired - MaterialTypeMapper materialTypeMapper; - - @Autowired - DepositoryService depositoryService; - - @Autowired - RoleMapper roleMapper; - @Test - public void test(){ - - - UserByPort userByPort = LinkInterfaceUtil.FindUserById(78, null); - //获取获取系统的当前日历对象 - Calendar instance = Calendar.getInstance(); - int weekDay = instance.get(Calendar.DAY_OF_WEEK); - weekDay = weekDay - 1; // 具体周几 - //只获取今天 - Map depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort); - // 获取遍历器 - Iterator it = depositoryAllNameAndId.keySet().iterator(); - // 获取日期 - SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); - Long now = DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime())); - instance.add(Calendar.DATE, 1); - // 明天 - Long tomorrow = DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime())); - // 仓库名称列表 - List depositoryName = new ArrayList<>(); - // 各仓库对应入库数目 - Map yesterdayData = new HashMap<>(); - Map show_data = new HashMap<>(); - // 各仓库当前库存数目 - Map todayInventory = new HashMap<>(); - instance.add(Calendar.DATE, -2); - Long yesterday = DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime())); - while (it.hasNext()) { - // 遍历 Map并计算各仓库的入库数 - Object key = it.next(); - // 添加仓库名称 - depositoryName.add(key.toString()); - // 获取仓库对应的id - Integer val = (Integer) depositoryAllNameAndId.get(key); - // 获取今天内的入/出库,额度 - Integer depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(tomorrow, now, Integer.parseInt("1"), val); - todayInventory.put(key.toString(), depositoryRecordByDate1); - //获取昨天的入/出库,额度 - Integer yesterdayInData = depositoryRecordService.findApplicationRecordByDate(now, yesterday, Integer.parseInt("1"), val); - // 添加到结果集 - yesterdayData.put(key.toString(), yesterdayInData); - List drCountbyDrName = new ArrayList<>(); - drCountbyDrName.add(depositoryRecordByDate1); - show_data.put(key.toString(), ((ArrayList) drCountbyDrName).clone()); - } - System.out.println(yesterdayData); - - } - - - - public Map getThisWeekInventoryByDName(DepositoryService depositoryService, DepositoryRecordService depositoryRecordService, UserByPort user) { - Calendar instance = Calendar.getInstance(); - SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); - int weekDay = instance.get(Calendar.DAY_OF_WEEK); - weekDay = weekDay - 1; - // 获取所有仓库名称 - Map depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(user); - Iterator it = depositoryAllNameAndId.keySet().iterator(); - //result用来接收每个仓库每天的库存 - List result = new ArrayList<>(); - // map用来存储仓库与库存的映射 - Map map = new HashMap<>(); - // 只获取当天 - List toDayInventoryByDNameTest = depositoryService.getToDayInventoryByDNameTest(); - System.out.println("当前仓库中的库存记录为:"+JSONObject.toJSONString(toDayInventoryByDNameTest)); - if (weekDay == 1) { - while (it.hasNext()) { - int i; - String key = it.next().toString(); - String dname = key.split(",")[0]; - Integer inventoryByDname = getInventoryByDname(dname, toDayInventoryByDNameTest); - result.add(inventoryByDname); - map.put(key, ((ArrayList) result).clone()); - result.clear(); - } - } else { - int now = instance.get(Calendar.DAY_OF_WEEK) - 1 == 0 ? 7 : instance.get(Calendar.DAY_OF_WEEK) - 1; - List days = new ArrayList<>(); - days.add(DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime()))); - Boolean flag = false; - while (now - 1 > 0) { - now--; - instance.add(Calendar.DATE, -1); - long format = DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime())); - days.add(format); - } - while (it.hasNext()) { - int i; - String key = it.next().toString(); - int j = 0; - - // 获取今天容量 - String dname = key.split(",")[0]; - Integer inventoryByDname = getInventoryByDname(dname, toDayInventoryByDNameTest); - result.add(inventoryByDname); - // 判断当天是否有出入口记录 - - Calendar IsInOut = Calendar.getInstance(); - Long start = DateUtil.DateTimeByDayToTimeStamp(formatter.format(IsInOut.getTime())); - IsInOut.add(Calendar.DATE, 1); - Long end = DateUtil.DateTimeByDayToTimeStamp(formatter.format(IsInOut.getTime())); - // 判断今天是否有出入库记录 - Integer inCount = depositoryRecordService.findApplicationInRecordByDate(end, start, null); - Integer OutCount = depositoryRecordService.findApplicationOutRecordByDate(end, start, null); - if (inCount > 0 || OutCount > 0) { - flag = true; - } - for (i = 0; i < days.size() - 1; i++) { - // 获取本周周一日期 - String mondayOnThisWeek = DateUtil.getMondayOnThisWeek(); - if (mondayOnThisWeek.equals(DateUtil.TimeStampToDateTime(days.get(i)))) { - break; - } - // 当前日期额度 - Integer aDouble = result.get(j++); - // 获取当前仓库 - Integer val = (Integer) depositoryAllNameAndId.get(key); - // 如果今天有出入库记录 - if (flag) { - Integer inRecordByDate = depositoryRecordService.findApplicationInRecordByDate(end, start, val); - Integer OutRecordByDate = depositoryRecordService.findApplicationOutRecordByDate(end, start, val); - aDouble = aDouble - inRecordByDate + OutRecordByDate; - flag = false; - } - // 获取一段时间内的入库额度 - //测试 - 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 warehouserCount1 = (int)aDouble - depositoryRecordByDateByIn1 + depositoryRecordByDateByOut1; - result.add(warehouserCount1); - } - Collections.reverse(result); - map.put(key.toString(), ((ArrayList) result).clone()); - result.clear(); - } - } - return map; - } - - - - - /** - * 获取本月之前的月份 - * - * @return - */ - public static Map getPreviousMonth() { - Calendar instance = Calendar.getInstance(); - SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); - Map source = new HashMap<>(); - List sourceList = new ArrayList<>(); - int month = instance.get(Calendar.MONTH) + 1; - ArrayList months = new ArrayList<>(); - while (month > 0) { - instance.set(Calendar.MONTH, month); - instance.set(Calendar.DAY_OF_MONTH, 1); - source.put("month", month + "月"); - months.add(DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime()))); - month--; - sourceList.add(((HashMap) source).clone()); - } - instance.set(Calendar.MONTH, month); - instance.set(Calendar.DAY_OF_MONTH, 1); - months.add(DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime()))); - Map map = new HashMap<>(); - map.put("months", months); - map.put("sourceList", sourceList); - return map; - } - - - /** - * 获取当前仓库下的库存 - * @param dname - * @param list - * @return - */ - public Integer getInventoryByDname(String dname,List list){ - for (InventoryByDname inventoryByDname : list) { - if (dname.equals(inventoryByDname.getDname())) { - return inventoryByDname.getInventory(); - } - } - return 0; - } - /** - * 获取上周一到本周一的日期 - * - * @return - */ - public static List getLastTimeInterval() { - Calendar calendar = Calendar.getInstance(); - ArrayList lastTime = new ArrayList<>(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; - int offset1 = 1 - dayOfWeek; - calendar.add(Calendar.DATE, offset1 - 7); - lastTime.add(DateUtil.DateTimeByDayToTimeStamp(sdf.format(calendar.getTime()))); - for (int i = 0; i < 7; i++) { - calendar.add(Calendar.DATE, 1); - lastTime.add(DateUtil.DateTimeByDayToTimeStamp(sdf.format(calendar.getTime()))); - } - return lastTime; - } - -} - diff --git a/src/test/java/com/dreamchaser/depository_manage/TestForgetBeforeInventoryByMonth.java b/src/test/java/com/dreamchaser/depository_manage/TestForgetBeforeInventoryByMonth.java deleted file mode 100644 index 0c5466cd..00000000 --- a/src/test/java/com/dreamchaser/depository_manage/TestForgetBeforeInventoryByMonth.java +++ /dev/null @@ -1,153 +0,0 @@ -package com.dreamchaser.depository_manage; - -import com.dreamchaser.depository_manage.entity.Depository; -import com.dreamchaser.depository_manage.entity.UserByPort; -import com.dreamchaser.depository_manage.pojo.InventoryByDname; -import com.dreamchaser.depository_manage.service.DepositoryRecordService; -import com.dreamchaser.depository_manage.service.DepositoryService; -import com.dreamchaser.depository_manage.utils.DateUtil; -import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil; -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.text.SimpleDateFormat; -import java.util.*; - -@SpringBootTest -@RunWith(SpringRunner.class) -public class TestForgetBeforeInventoryByMonth { - - @Autowired - DepositoryService depositoryService; - - @Autowired - DepositoryRecordService depositoryRecordService; - - @Test - public void test(){ - Map todayInventory = new HashMap<>(); - UserByPort userByPort = LinkInterfaceUtil.FindUserById(78, null); - List beforeInventoryByMonth = getBeforeInventoryByMonth(depositoryService, todayInventory, depositoryRecordService, userByPort); - } - - - public List getBeforeInventoryByMonth(DepositoryService depositoryService, Map todayInventory, DepositoryRecordService depositoryRecordService, UserByPort userByPort) { - List depositoryAll = depositoryService.findDepositoryByAdminorgAndUser(userByPort); - // 获取该用户管理的仓库 - Map previousMonth = getPreviousMonth(); - List months = (List) previousMonth.get("months"); - List sourceList = (List) previousMonth.get("sourceList"); - Calendar instance = Calendar.getInstance(); - SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); - instance.add(Calendar.MONTH, 1); - instance.set(Calendar.DATE, 1); - List result = new ArrayList<>(); - String month = formatter.format(instance.getTime()); - List toDayInventoryByDNameTest = depositoryService.getToDayInventoryByDNameTest(); - for (int i = 0; i < depositoryAll.size(); i++) { - String dname = depositoryAll.get(i).getDname(); - Integer todayDepositoryInventory = getInventoryByDname(dname,toDayInventoryByDNameTest); - result.add(todayDepositoryInventory); - todayInventory.put(dname,todayDepositoryInventory); - ((Map) sourceList.get(0)).put(dname, result.get(i)); - } - for (int num = 0; num < months.size() - 1; num++) { - int k = 0; - for (int j = 0; j < depositoryAll.size(); j++) { - // 获取该仓库本月库存 - Map parmIn = new HashMap<>(); - Map parmOut = new HashMap<>(); - // 获取每月入库总额 - parmIn.put("type", 1); - parmIn.put("state", "已入库"); - parmIn.put("depository_id", depositoryAll.get(j).getId()); - parmIn.put("start", months.get(num + 1)); - parmIn.put("end", months.get(num)); - // 获取每月出库总额 - parmOut.put("type", 2); - parmOut.put("state", "已出库"); - parmOut.put("depository_id", depositoryAll.get(j).getId()); - parmOut.put("start", months.get(num + 1)); - parmOut.put("end", months.get(num)); - // 获取月份中入库物料的总额 - // 测试 - Integer wareHouseInCountByMonth1 = depositoryRecordService.findMaterialCountByMonth2(parmIn); - // 获取月份中出库物料的总额 - // 测试 - Integer wareHouseOutCountByMonth1 = depositoryRecordService.findMaterialCountByMonth2(parmOut); - // 获取当前月库存容量 - // 测试 - Integer wareHouseCount1 = result.get(k++) - wareHouseInCountByMonth1 + wareHouseOutCountByMonth1; - - result.add(wareHouseCount1); - ((Map) sourceList.get(num)).put(depositoryAll.get(j).getDname(), wareHouseCount1); - } - for (int i = 0; i < depositoryAll.size(); i++) { - result.remove(0); - } - } - System.out.println("之前:"); - System.out.println(sourceList); - System.out.println(result); - for (int i = 0; i < depositoryAll.size(); i++) { - String dname = depositoryAll.get(i).getDname(); - Integer todayDepositoryInventory = getInventoryByDname(dname,toDayInventoryByDNameTest); - ((Map) sourceList.get(0)).put(dname, todayDepositoryInventory); - } - System.out.println("之后:"); - System.out.println(sourceList); - List barSource = new ArrayList<>(); - barSource.add("month"); - for (int i = 0; i < depositoryAll.size(); i++) { - barSource.add(depositoryAll.get(i).getDname()); - } - sourceList.add(barSource); - return sourceList; - } - /** - * 获取当前仓库下的库存 - * @param dname - * @param list - * @return - */ - public Integer getInventoryByDname(String dname,List list){ - for (InventoryByDname inventoryByDname : list) { - if (dname.equals(inventoryByDname.getDname())) { - return inventoryByDname.getInventory(); - } - } - return 0; - } - - /** - * 获取本月之前的月份 - * - * @return - */ - public static Map getPreviousMonth() { - Calendar instance = Calendar.getInstance(); - SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM"); - Map source = new HashMap<>(); - List sourceList = new ArrayList<>(); - int month = instance.get(Calendar.MONTH) + 1; - ArrayList months = new ArrayList<>(); - while (month > 0) { - instance.set(Calendar.MONTH, month); - instance.set(Calendar.DAY_OF_MONTH, -1); - source.put("month", month + "月"); - months.add(DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()))); - month--; - sourceList.add(((HashMap) source).clone()); - } - instance.set(Calendar.MONTH, month); - instance.set(Calendar.DAY_OF_MONTH, 1); - months.add(DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()))); - Map map = new HashMap<>(); - map.put("months", months); - map.put("sourceList", sourceList); - return map; - } -} diff --git a/src/test/java/com/dreamchaser/depository_manage/TestForgetMapData.java b/src/test/java/com/dreamchaser/depository_manage/TestForgetMapData.java deleted file mode 100644 index 60794166..00000000 --- a/src/test/java/com/dreamchaser/depository_manage/TestForgetMapData.java +++ /dev/null @@ -1,174 +0,0 @@ -package com.dreamchaser.depository_manage; - -import com.dreamchaser.depository_manage.entity.MaterialType; -import com.dreamchaser.depository_manage.entity.UserByPort; -import com.dreamchaser.depository_manage.service.DepositoryRecordService; -import com.dreamchaser.depository_manage.service.DepositoryService; -import com.dreamchaser.depository_manage.service.MaterialTypeService; -import com.dreamchaser.depository_manage.utils.DateUtil; -import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil; -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.text.SimpleDateFormat; -import java.util.*; -import java.util.concurrent.*; - -@SpringBootTest -@RunWith(SpringRunner.class) -public class TestForgetMapData { - - @Autowired - MaterialTypeService materialTypeService; - @Autowired - DepositoryRecordService depositoryRecordService; - @Autowired - DepositoryService depositoryService; - - - @Test - public void Test(){ - UserByPort userByPort = LinkInterfaceUtil.FindUserById(78, null); - Map depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort); - Iterator it = depositoryAllNameAndId.keySet().iterator(); - List depositoryName = new ArrayList<>(); - // 各仓库对应入库数目 - Map yesterdayData = new HashMap<>(); - // 每天各仓库入库数目 - Map show_data = new HashMap<>(); - // 各仓库当前库存数目 - Map todayInventory = new HashMap<>(); - //获取获取系统的当前日历对象 - Calendar instance = Calendar.getInstance(); - // 获取日期 - SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); - Long now = DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime())); - instance.add(Calendar.DATE, 1); - Long tomorrow = DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime())); - instance.add(Calendar.DATE, -2); - String yesterday = formatter.format(instance.getTime()); - while (it.hasNext()) { - // 遍历 Map并计算各仓库的入库数 - Object key = it.next(); - depositoryName.add(key.toString()); - Integer val = (Integer) depositoryAllNameAndId.get(key); - // 获取一段时间内的库存额度 - Integer depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(tomorrow, now, Integer.parseInt("1"), val); - Integer toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString()); - todayInventory.put(key.toString(), toDayInventoryByDName); - yesterdayData.put(key.toString(), depositoryRecordByDate1); - List drCountbyDrName = new ArrayList<>(); - drCountbyDrName.add(depositoryRecordByDate1); - show_data.put(key.toString(), ((ArrayList) drCountbyDrName).clone()); - } - } - - // 中国地图数据 - public Map getMapData(String type){ - List mapDataList = new ArrayList<>(); - Map previousMonth1 = getPreviousMonth(); - List sourceList1 = (List) previousMonth1.get("sourceList"); - ArrayList title = new ArrayList<>(); - title.add("product"); - for (int i = sourceList1.size() - 1; i >= 0; i--) { - title.add(((Map) sourceList1.get(i)).get("month")); - } - mapDataList.add(title); - - // 获取所有顶级类别 - List materialTypeAll = materialTypeService.findMaterialTypeNoParent(); - // 定义对应数量的线程池 - ExecutorService exs = Executors.newFixedThreadPool(materialTypeAll.size()); - // 结果集 - List> futureList = new ArrayList>(); - // 1.定义CompletionService - CompletionService completionService = new ExecutorCompletionService(exs); - - for (int i = 0; i < materialTypeAll.size(); i++) { - MaterialType mt = materialTypeAll.get(i); - Future future = completionService.submit(new findMapData(previousMonth1,type,mt)); - futureList.add(future); - } - for (int i = 0; i < materialTypeAll.size(); i++) { - Object result = null; - try { - result = completionService.take().get(); - } catch (InterruptedException | ExecutionException e) { - e.printStackTrace(); - } - mapDataList.add(result); - } - Map mapData =new HashMap<>(); - mapData.put("mapDataList", mapDataList); - return mapData; - } - - class findMapData implements Callable{ - String type ; - MaterialType mt; - Map previousMonth1; - findMapData( Map previousMonth1,String type ,MaterialType mt){ - this.previousMonth1 = previousMonth1; - this.type = type; - this.mt = mt; - } - - @Override - public Object call() throws Exception { - List productData = new ArrayList<>(); - List months1 = (List) previousMonth1.get("months"); - productData.add(mt.getTname()); - for (int j = months1.size() - 1; j > 0; j--) { - Map parm = new HashMap<>(); - parm.put("type", Integer.parseInt(type)); - if (Integer.parseInt(type) == 1) { - parm.put("state", "已入库"); - } else if (Integer.parseInt(type) == 2) { - parm.put("state", "已出库"); - } - parm.put("start", months1.get(j)); - parm.put("end", months1.get(j - 1)); - parm.put("oldId", mt.getOldId()); - //根据条件获取月份中物料的总额 - // 测试 - Integer materialCountByMonth1 = depositoryRecordService.findMaterialCountByMonth2(parm); - productData.add(materialCountByMonth1); - } - return productData; - } - } - - - /** - * 获取本月之前的月份 - * - * @return - */ - public static Map getPreviousMonth() { - Calendar instance = Calendar.getInstance(); - SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); - Map source = new HashMap<>(); - List sourceList = new ArrayList<>(); - int month = instance.get(Calendar.MONTH) + 1; - ArrayList months = new ArrayList<>(); - while (month > 0) { - instance.set(Calendar.MONTH, month); - instance.set(Calendar.DAY_OF_MONTH, 1); - source.put("month", month + "月"); - months.add(DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime()))); - month--; - sourceList.add(((HashMap) source).clone()); - } - instance.set(Calendar.MONTH, month); - instance.set(Calendar.DAY_OF_MONTH, 1); - months.add(DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime()))); - Map map = new HashMap<>(); - map.put("months", months); - map.put("sourceList", sourceList); - return map; - } - -} diff --git a/src/test/java/com/dreamchaser/depository_manage/TestForgetShowData.java b/src/test/java/com/dreamchaser/depository_manage/TestForgetShowData.java deleted file mode 100644 index 31cedd22..00000000 --- a/src/test/java/com/dreamchaser/depository_manage/TestForgetShowData.java +++ /dev/null @@ -1,302 +0,0 @@ -package com.dreamchaser.depository_manage; - -import com.alibaba.fastjson.JSONObject; -import com.dreamchaser.depository_manage.entity.MaterialType; -import com.dreamchaser.depository_manage.entity.UserByPort; -import com.dreamchaser.depository_manage.mapper.DepositoryMapper; -import com.dreamchaser.depository_manage.mapper.DepositoryRecordMapper; -import com.dreamchaser.depository_manage.mapper.MaterialTypeMapper; -import com.dreamchaser.depository_manage.mapper.RoleMapper; -import com.dreamchaser.depository_manage.service.DepositoryRecordService; -import com.dreamchaser.depository_manage.service.DepositoryService; -import com.dreamchaser.depository_manage.service.MaterialTypeService; -import com.dreamchaser.depository_manage.utils.DateUtil; -import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil; -import lombok.Data; -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.data.redis.core.RedisTemplate; -import org.springframework.test.context.junit4.SpringRunner; - -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.concurrent.*; - -@SpringBootTest -@RunWith(SpringRunner.class) -public class TestForgetShowData { - - @Autowired - MaterialTypeService materialTypeService; - - @Autowired - DepositoryRecordService depositoryRecordService; - - @Autowired - DepositoryRecordMapper depositoryRecordMapper; - - @Autowired - DepositoryMapper depositoryMapper; - - @Autowired - MaterialTypeMapper materialTypeMapper; - - @Autowired - DepositoryService depositoryService; - - @Autowired - RoleMapper roleMapper; - - @Autowired - RedisTemplate redisTemplate; - - - @Test - public void Test() { - UserByPort userByPort = LinkInterfaceUtil.FindUserById(78, null); - Map map = new HashMap<>(); - List depositoryName = new ArrayList<>(); - Map showData = getShowData("1", userByPort, map, depositoryName); - System.out.println(JSONObject.toJSONString(showData)); - } - - // 用于获取折线图 - - public Map getShowData(String type, UserByPort userByPort, Map yesterdayData, List depositoryName) { - // 获取各仓库名称以及id - Map depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort); - // 获取遍历器 - Iterator it = depositoryAllNameAndId.keySet().iterator(); - // 仓库名称列表 - //获取获取系统的当前日历对象 - Calendar instance = Calendar.getInstance(); - // 获取日期 - SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); - int now = instance.get(Calendar.DAY_OF_WEEK) - 1 == 0 ? 7 : instance.get(Calendar.DAY_OF_WEEK) - 1; - List days = new ArrayList<>(); // 周一至今的每天 - instance.add(Calendar.DATE, 1); - days.add(DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime()))); - instance.add(Calendar.DATE, -1); - days.add(DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime()))); - while (now - 1 > 0) { - now--; - instance.add(Calendar.DATE, -1); - Long format = DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime())); - days.add(format); - } - - // 定义线程 - ExecutorService exs = Executors.newFixedThreadPool(depositoryAllNameAndId.size()); - // 结果集 - List> futureList = new ArrayList>(); - // 1.定义CompletionService - CompletionService completionService = new ExecutorCompletionService(exs); - - // 每天各仓库入库数目 - Map show_data = new HashMap<>(); - while (it.hasNext()) { - Object next = it.next(); - getApplicationRecordByDate getApplicationRecordByDate = new getApplicationRecordByDate(type, next, days, depositoryAllNameAndId); - getApplicationRecordByDate.setShow_data(show_data); - getApplicationRecordByDate.setDepositoryName(depositoryName); - getApplicationRecordByDate.setYesterdayData(yesterdayData); - Future future = completionService.submit(getApplicationRecordByDate); - futureList.add(future); - } - - for (int i = 0; i < depositoryAllNameAndId.size(); i++) { - Object result = null; - try { - result = completionService.take().get(); - } catch (InterruptedException | ExecutionException e) { - e.printStackTrace(); - } - } - - return show_data; - } - - @Data - class getApplicationRecordByDate implements Callable { - Object key; - List days; - Map depositoryAllNameAndId; - List depositoryName; - Map yesterdayData; - String type; - Map show_data; - - getApplicationRecordByDate(String type, Object key, List days, Map depositoryAllNameAndId) { - this.key = key; - this.depositoryAllNameAndId = depositoryAllNameAndId; - this.days = days; - this.type = type; - } - - @Override - public Object call() throws Exception { - int i; - List drCountbyDrName = new ArrayList<>(); - for (i = days.size() - 1; i > 0; i--) { - // 遍历 Map并计算各仓库的入库数 - if (i == days.size() - 1) { - depositoryName.add(key.toString()); - } - Integer val = depositoryAllNameAndId.get(key); - // 获取一段时间内的库存额度 - Integer depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(days.get(i - 1), days.get(i), Integer.parseInt(type), val); - drCountbyDrName.add(depositoryRecordByDate1); - if (i == 2) { - yesterdayData.put(key.toString(), depositoryRecordByDate1); - } - } - show_data.put(key.toString(), drCountbyDrName); - return null; - } - } - - //获取本月及之前月份各种类别入/出库总量 - public List getSourceList(String type) { - - Map previousMonth = getPreviousMonth(); - List months = (List) previousMonth.get("months"); - List sourceList = (List) previousMonth.get("sourceList"); - ExecutorService exs = Executors.newFixedThreadPool(months.size()); - // 结果集 - List> futureList = new ArrayList>(); - // 1.定义CompletionService - CompletionService completionService = new ExecutorCompletionService(exs); - for (int num = 0; num < months.size() - 1; num++) { - Map map = (Map) sourceList.get(num); - Future future = completionService.submit(new getSourceListTask(map, type, months.get(num + 1).toString(), months.get(num).toString())); - futureList.add(future); - } - for (int i = 0; i < months.size() - 1; i++) { - Object result = null; - try { - result = completionService.take(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - List barSource = new ArrayList<>(); - barSource.add("month"); - List materialTypeAll = materialTypeService.findMaterialTypeNoParent(); - for (int i = 0; i < materialTypeAll.size(); i++) { - barSource.add(materialTypeAll.get(i).getTname()); - } - sourceList.add(barSource); - return sourceList; - } - - - // 具体执行getSourceList逻辑 - class getSourceListTask implements Callable { - - String type; - String start; - String end; - Map map; - - getSourceListTask(Map map, String type, String start, String end) { - this.map = map; - this.type = type; - this.start = start; - this.end = end; - } - - @Override - public Object call() throws Exception { - List materialTypeAll = materialTypeService.findMaterialTypeNoParent(); - ExecutorService exs = Executors.newFixedThreadPool(materialTypeAll.size()); - // 结果集 - List> futureList = new ArrayList>(); - // 1.定义CompletionService - CompletionService completionService = new ExecutorCompletionService(exs); - - for (int j = 0; j < materialTypeAll.size(); j++) { - Map parm = new HashMap<>(); - parm.put("type", Integer.parseInt(type)); - if (Integer.parseInt(type) == 1) { - parm.put("state", "已入库"); - } else if (Integer.parseInt(type) == 2) { - parm.put("state", "已出库"); - } - parm.put("start", start); - parm.put("end", end); - parm.put("oldId", materialTypeAll.get(j).getOldId()); - //根据条件获取月份中物料的总额 - // 测试 - - Future future = completionService.submit(new findMaterialCountTaskForSourceList(parm)); - futureList.add(future); - } - for (int i = 0; i < materialTypeAll.size(); i++) { - Object result = null; - try { - result = completionService.take().get(); - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } - map.putAll((Map) result); - } - return map; - } - } - - - // 根据条件获取月份中物料的总额用于sourcelist - class findMaterialCountTaskForSourceList implements Callable { - - Map map; - - findMaterialCountTaskForSourceList(Map map) { - this.map = map; - } - - @Override - public Object call() throws Exception { - Map result = new HashMap<>(); - Integer materialCountByMonth1 = depositoryRecordService.findMaterialCountByMonth2(map); - Long oldId = Long.valueOf(map.get("oldId").toString()); - MaterialType materialTypeByOldId = materialTypeService.findMaterialTypeByOldId(oldId); - result.put(materialTypeByOldId.getTname(), materialCountByMonth1); - return result; - } - } - - - /** - * 获取本月之前的月份 - * - * @return - */ - public static Map getPreviousMonth() { - Calendar instance = Calendar.getInstance(); - SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); - Map source = new HashMap<>(); - List sourceList = new ArrayList<>(); - int month = instance.get(Calendar.MONTH) + 1; - ArrayList months = new ArrayList<>(); - while (month > 0) { - instance.set(Calendar.MONTH, month); - instance.set(Calendar.DAY_OF_MONTH, 1); - source.put("month", month + "月"); - months.add(DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime()))); - month--; - sourceList.add(((HashMap) source).clone()); - } - instance.set(Calendar.MONTH, month); - instance.set(Calendar.DAY_OF_MONTH, 1); - months.add(DateUtil.DateTimeByDayToTimeStamp(formatter.format(instance.getTime()))); - Map map = new HashMap<>(); - map.put("months", months); - map.put("sourceList", sourceList); - return map; - } - -} diff --git a/src/test/java/com/dreamchaser/depository_manage/TestForgetSourceList.java b/src/test/java/com/dreamchaser/depository_manage/TestForgetSourceList.java deleted file mode 100644 index 44c3d274..00000000 --- a/src/test/java/com/dreamchaser/depository_manage/TestForgetSourceList.java +++ /dev/null @@ -1,218 +0,0 @@ -package com.dreamchaser.depository_manage; - -import com.dreamchaser.depository_manage.entity.MaterialType; -import com.dreamchaser.depository_manage.mapper.MaterialTypeMapper; -import com.dreamchaser.depository_manage.service.DepositoryRecordService; -import com.dreamchaser.depository_manage.service.DepositoryService; -import com.dreamchaser.depository_manage.service.MaterialTypeService; -import com.dreamchaser.depository_manage.utils.DateUtil; -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.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.concurrent.*; - -@SpringBootTest -@RunWith(SpringRunner.class) -public class TestForgetSourceList { - - @Autowired - DepositoryRecordService depositoryRecordService; - - @Autowired - DepositoryService depositoryService; - - @Autowired - MaterialTypeService materialTypeService; - - @Autowired - MaterialTypeMapper materialTypeMapper; - - - @Test - public void Test(){ - List sourceList = getSourceList("1"); - System.out.println(sourceList); -// getPreviousMonth(); - } - - // 根据id获取子类 - public List findChildForMaterialTypeByParent(MaterialType mt) { - List result = new ArrayList<>(); - result.add(mt.getOldId()); - List parentId = new ArrayList<>(); - parentId.add(mt.getOldId()); - List materialTypeAll = materialTypeMapper.findMaterialTypeAll(); - for (int i = 0; i < materialTypeAll.size(); i++) { - MaterialType materialType = materialTypeAll.get(i); - if (isTrueForParent(parentId, materialType.getParentId())) { - parentId.add(materialType.getOldId()); - result.add(materialType.getOldId()); - } - } - return result; - } - - public Boolean isTrueForParent(List parentList, Long id) { - for (Long aLong : parentList) { - if (Long.compare(aLong, id) == 0) { - return true; - } - } - return false; - } - - //获取本月及之前月份各种类别入/出库总量 - public List getSourceList(String type){ - - List materialTypeAll = materialTypeService.findMaterialTypeNoParent(); - Map previousMonth = getPreviousMonth(); - List months = (List) previousMonth.get("months"); - List sourceList = (List) previousMonth.get("sourceList"); - ExecutorService exs = Executors.newFixedThreadPool(months.size()); - // 结果集 - List> futureList = new ArrayList>(); - // 1.定义CompletionService - CompletionService completionService = new ExecutorCompletionService(exs); - for (int num = 0; num < months.size() - 1; num++) { - Map map = (Map) sourceList.get(num); - Future future = completionService.submit(new getSourceListTask(map,type,months.get(num + 1).toString(),months.get(num).toString(),materialTypeAll)); - futureList.add(future); - } - for (int i = 0; i < months.size() - 1; i++) { - Object result = null; - try { - result = completionService.take(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - List barSource = new ArrayList<>(); - barSource.add("month"); - for (int i = 0; i < materialTypeAll.size(); i++) { - barSource.add(materialTypeAll.get(i).getTname()); - } - sourceList.add(barSource); - return sourceList; - } - - - // 具体执行getSourceList逻辑 - class getSourceListTask implements Callable { - - String type; - String start; - String end; - Map map; - List materialTypeAll; - getSourceListTask(Map map, String type, String start, String end,List materialTypeAll){ - this.map = map; - this.type = type; - this.start = start; - this.end = end; - this.materialTypeAll = materialTypeAll; - } - @Override - public Object call() throws Exception { - ExecutorService exs = Executors.newFixedThreadPool(materialTypeAll.size()); - // 结果集 - List> futureList = new ArrayList>(); - // 1.定义CompletionService - CompletionService completionService = new ExecutorCompletionService(exs); - - for (int j = 0; j < materialTypeAll.size(); j++) { - Map parm = new HashMap<>(); - parm.put("type", Integer.parseInt(type)); - if (Integer.parseInt(type) == 1) { - parm.put("state", "已入库"); - } else if (Integer.parseInt(type) == 2) { - parm.put("state", "已出库"); - } - parm.put("start",start); - parm.put("end", end); - parm.put("oldId", materialTypeAll.get(j).getOldId()); - //根据条件获取月份中物料的总额 - // 测试 - - Future future = completionService.submit(new findMaterialCountTaskForSourceList(parm)); - futureList.add(future); - } - for (int i = 0; i < materialTypeAll.size(); i++) { - Object result = null; - try { - result = completionService.take().get(); - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } - map.putAll((Map) result); - } - return map; - } - } - - - // 根据条件获取月份中物料的总额用于sourcelist - class findMaterialCountTaskForSourceList implements Callable { - - Map map; - findMaterialCountTaskForSourceList(Map map){ - this.map = map; - } - @Override - public Object call() throws Exception { - Map result = new HashMap<>(); - Integer materialCountByMonth1 = depositoryRecordService.findMaterialCountByMonth2(map); - Long oldId = Long.valueOf(map.get("oldId").toString()); - MaterialType materialTypeByOldId = materialTypeService.findMaterialTypeByOldId(oldId); - result.put(materialTypeByOldId.getTname(),materialCountByMonth1); - return result; - } - } - - - /** - * 获取本月之前的月份 - * - * @return - */ - public static Map getPreviousMonth() { - Calendar instance = Calendar.getInstance(); - SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM"); - Map source = new HashMap<>(); - List sourceList = new ArrayList<>(); - int month = instance.get(Calendar.MONTH) + 1; - // 获取下个月 - instance.add(Calendar.MONTH,1); - Long nextMonth = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime())); - ArrayList months = new ArrayList<>(); - months.add(nextMonth); - instance.add(Calendar.MONTH,-1); - - while (month > 0) { - instance.set(Calendar.MONTH, month); - instance.set(Calendar.DAY_OF_MONTH, -1); - source.put("month", month + "月"); - months.add(DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()))); - month--; - sourceList.add(((HashMap) source).clone()); - } - instance.set(Calendar.MONTH, month); - instance.add(Calendar.MONTH, 1); - Map map = new HashMap<>(); - map.put("months", months); - map.put("sourceList", sourceList); - return map; - } - - - - -} -