diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java index 975aea54..0fdf72d4 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java @@ -295,7 +295,7 @@ public class DepositoryRecordController { List departmentHeadByUsers = findDepartmentHeadByUser(userToken); StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder(); - /* for (int i = 0; i < departmentHeadByUsers.size(); i++) { + /*for (int i = 0; i < departmentHeadByUsers.size(); i++) { departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); }*/ @@ -607,7 +607,7 @@ public class DepositoryRecordController { List departmentHeadByUsers = findDepartmentHeadByUser(userToken); StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder(); - /* for (int i = 0; i < departmentHeadByUsers.size(); i++) { + /*for (int i = 0; i < departmentHeadByUsers.size(); i++) { departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); }*/ @@ -785,7 +785,7 @@ public class DepositoryRecordController { List departmentHeadByUsers = findDepartmentHeadByUser(userToken); StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder(); - /* for (int i = 0; i < departmentHeadByUsers.size(); i++) { + /*for (int i = 0; i < departmentHeadByUsers.size(); i++) { departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); }*/ @@ -892,7 +892,7 @@ public class DepositoryRecordController { List departmentHeadByUsers = findDepartmentHeadByUser(userToken); StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder(); - /* for (int i = 0; i < departmentHeadByUsers.size(); i++) { + /*for (int i = 0; i < departmentHeadByUsers.size(); i++) { departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); }*/ diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java index 044c23ae..1e38e4e2 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java @@ -617,11 +617,11 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { String depositoryManagerIds = record.getDepositoryManager(); String[] depositoryManagers = depositoryManagerIds.split(","); StringBuilder depositoryManagerByQyWx = new StringBuilder(); -// for (int i = 0; i < depositoryManagers.length; i++) { -// Integer uid = ObjectFormatUtil.toInteger(depositoryManagers[i]); -// UserByPort depositoryManager = PageController.FindUserById(uid, userByPort); + for (int i = 0; i < depositoryManagers.length; i++) { + Integer uid = ObjectFormatUtil.toInteger(depositoryManagers[i]); + UserByPort depositoryManager = PageController.FindUserById(uid, userByPort); // depositoryManagerByQyWx.append(depositoryManager.getWorkwechat()+","); -// } + } depositoryManagerByQyWx.append("PangFuZhen,"); JSONObject jsonObject = qyWxOperationService.sendCcMessageToUsers(depositoryManagerByQyWx.toString(), record.getId()); @@ -913,10 +913,10 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { List departmentHeadByUser = PortConfig.findDepartmentHeadByUser(company, null); StringBuilder depositoryManager = new StringBuilder(); StringBuilder QyWxUid = new StringBuilder(); -// for (int i = 0; i < departmentHeadByUser.size(); i++) { -// depositoryManager.append(departmentHeadByUser.get(i).getId() + ","); + for (int i = 0; i < departmentHeadByUser.size(); i++) { + depositoryManager.append(departmentHeadByUser.get(i).getId() + ","); // QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat()+","); -// } + } QyWxUid.append("PangFuZhen"+","); map.put("depositoryManager", depositoryManager.toString()); // 向仓储中心负责人发送新的消息 @@ -1058,6 +1058,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { materialMapper.insertMaterial(insert); // 查询该记录 + /*Integer id =ObjectFormatUtil.toInteger(insert.get("id")); + Material byId = materialMapper.findMaterialById(id); + */ Map temp = new HashMap<>(); temp.put("code", materialById.getCode()); temp.put("depositoryId", transferRecor.getToId()); @@ -1072,7 +1075,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { Place toPlace = placeMapper.findPlaceById(transferRecor.getToPlaceId()); toPlace.setQuantity(toPlace.getQuantity() + quantity); placeMapper.UpdatePlace(toPlace); // 修改转入库位额度 - toPlaceTemp.put("mid", materialById.getId()); + + toPlaceTemp.put("mid", inventory.getId()); toPlaceTemp.put("pid", toPlace.getId()); toPlaceTemp.put("quantity", quantity); // 获取转入物料具体所在库位 diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java index 7116a1ac..ec19fc8c 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java @@ -18,6 +18,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.*; @Service public class DepositoryServiceImpl implements DepositoryService { @@ -343,12 +344,34 @@ public class DepositoryServiceImpl implements DepositoryService { Map param = new HashMap<>(); param.put("parentId", 0); List depositories = depositoryMapper.findDepositoryRecordPByCondition(param); + + // 开启对应数量的线程 + ExecutorService exs = Executors.newFixedThreadPool(depositories.size()); + // 结果集 List list = new ArrayList<>(); + List> futureList = new ArrayList>(); + + // 1.定义CompletionService + CompletionService completionService = new ExecutorCompletionService(exs); + + for (int i = 0; i < depositories.size(); i++) { Depository d = depositories.get(i); - List childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId(), ""); - Map stringObjectMap = InitTreeMenus2(d, childForMaterialTypeByParent); - list.add(stringObjectMap); + Future future = completionService.submit(new Task(d,"")); + futureList.add(future); + } + + // 3.获取结果 + for(int i=0;i depositories = depositoryMapper.findDepositoryRecordPByCondition(param); List list = new ArrayList<>(); + + // 开启对应数量的线程 + ExecutorService exs = Executors.newFixedThreadPool(depositories.size()); + // 结果集 + List> futureList = new ArrayList>(); + + // 1.定义CompletionService + CompletionService completionService = new ExecutorCompletionService(exs); for (int i = 0; i < depositories.size(); i++) { Depository d = depositories.get(i); - List childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId(), adminorg); - Map stringObjectMap = InitTreeMenus2(d, childForMaterialTypeByParent); - list.add(stringObjectMap); + Future future = completionService.submit(new Task(d,adminorg)); + futureList.add(future); + } + + // 3.获取结果 + for(int i=0;i { + + Depository d; + String adminorg; + + public Task(Depository d,String adminorg){ + this.d = d; + this.adminorg = adminorg; + } + @Override + public Object call() throws Exception { + List childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId(), adminorg); + Map stringObjectMap = InitTreeMenus2(d, childForMaterialTypeByParent); + return stringObjectMap; + } + } + /** * 获取当前部门以及公共仓库 * 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 70231396..4a7bbfa7 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 @@ -631,6 +631,7 @@ public class MaterialServiceImpl implements MaterialService { return list; } + // 用于执行线程任务 class Task implements Callable{ MaterialType mt; diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java index 8ba13506..c2ac2ca3 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java @@ -12,6 +12,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.*; /** * @author 金昊霖 @@ -184,7 +185,7 @@ public class MaterialTypeServiceImpl implements MaterialTypeService { * 构造树形选择框 * @return */ - @Override + /*@Override public List InitTreeMenus() { List materialTypeNoParent = materialTypeMapper.findMaterialTypeNoParent(); List list = new ArrayList<>(); @@ -195,6 +196,54 @@ public class MaterialTypeServiceImpl implements MaterialTypeService { list.add(stringObjectMap); } return list; + }*/ + @Override + public List InitTreeMenus() { + List materialTypeNoParent = materialTypeMapper.findMaterialTypeNoParent(); + // 开启对应数量的线程 + ExecutorService exs = Executors.newFixedThreadPool(materialTypeNoParent.size()); + // 结果集 + List list = new ArrayList<>(); + List> futureList = new ArrayList>(); + + // 1.定义CompletionService + CompletionService completionService = new ExecutorCompletionService(exs); + + for (int i = 0; i < materialTypeNoParent.size(); i++) { + MaterialType mt = materialTypeNoParent.get(i); + Future future = completionService.submit(new Task(mt)); + futureList.add(future); + } + // 3.获取结果 + for(int i=0;i { + + MaterialType mt; + + public Task(MaterialType mt){ + this.mt = mt; + } + @Override + public Object call() throws Exception { + List childForMaterialTypeByParent = findChildForMaterialTypeByParent(mt.getOldId()); + Map stringObjectMap = InitTreeMenus(mt,childForMaterialTypeByParent); + return stringObjectMap; + } } // 构造树形组件数据模板 diff --git a/src/main/resources/templates/pages/application/application-transfer.html b/src/main/resources/templates/pages/application/application-transfer.html index 31fce9f3..282c937a 100644 --- a/src/main/resources/templates/pages/application/application-transfer.html +++ b/src/main/resources/templates/pages/application/application-transfer.html @@ -707,7 +707,7 @@ var codeChildren = parent.childNodes[7]; var materialChildren = parent.childNodes[5]; var codeItem = codeChildren.childNodes[3].childNodes; - var codeValue = codeItem[1]; + var codeValue = codeItem[1].childNodes[1]; var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes; var materialName = materialItem[1]; var materialId = materialName.parentNode.parentNode.childNodes[3]; @@ -736,6 +736,9 @@ if(code === undefined){ code = ""; } + console.log(d) + console.log(codeItem) + console.log(codeValue) codeValue.value = code; $('#place').empty(); $.each(placeList, function (index, item) { diff --git a/src/test/java/com/dreamchaser/depository_manage/Test.java b/src/test/java/com/dreamchaser/depository_manage/Test.java index 30398238..cae3551f 100644 --- a/src/test/java/com/dreamchaser/depository_manage/Test.java +++ b/src/test/java/com/dreamchaser/depository_manage/Test.java @@ -69,13 +69,11 @@ import org.xml.sax.InputSource; public class Test { - @Autowired - MaterialService materialService; + @org.junit.Test public void test1() throws AesException, IOException, ParserConfigurationException, SAXException { - List objectList = materialService.InitTreeMenus(""); - System.out.println(objectList); + } diff --git a/target/classes/templates/pages/application/application-transfer.html b/target/classes/templates/pages/application/application-transfer.html index 31fce9f3..282c937a 100644 --- a/target/classes/templates/pages/application/application-transfer.html +++ b/target/classes/templates/pages/application/application-transfer.html @@ -707,7 +707,7 @@ var codeChildren = parent.childNodes[7]; var materialChildren = parent.childNodes[5]; var codeItem = codeChildren.childNodes[3].childNodes; - var codeValue = codeItem[1]; + var codeValue = codeItem[1].childNodes[1]; var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes; var materialName = materialItem[1]; var materialId = materialName.parentNode.parentNode.childNodes[3]; @@ -736,6 +736,9 @@ if(code === undefined){ code = ""; } + console.log(d) + console.log(codeItem) + console.log(codeValue) codeValue.value = code; $('#place').empty(); $.each(placeList, function (index, item) {