Browse Source

优化树形选择框的构造

lwx_dev
erdanergou 3 years ago
parent
commit
663e658905
  1. 20
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  2. 73
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java
  3. 1
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java
  4. 51
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java
  5. 5
      src/main/resources/templates/pages/application/application-transfer.html
  6. 6
      src/test/java/com/dreamchaser/depository_manage/Test.java
  7. 5
      target/classes/templates/pages/application/application-transfer.html

20
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 depositoryManagerIds = record.getDepositoryManager();
String[] depositoryManagers = depositoryManagerIds.split(","); String[] depositoryManagers = depositoryManagerIds.split(",");
StringBuilder depositoryManagerByQyWx = new StringBuilder(); StringBuilder depositoryManagerByQyWx = new StringBuilder();
// for (int i = 0; i < depositoryManagers.length; i++) { for (int i = 0; i < depositoryManagers.length; i++) {
// Integer uid = ObjectFormatUtil.toInteger(depositoryManagers[i]); Integer uid = ObjectFormatUtil.toInteger(depositoryManagers[i]);
// UserByPort depositoryManager = PageController.FindUserById(uid, userByPort); UserByPort depositoryManager = PageController.FindUserById(uid, userByPort);
// depositoryManagerByQyWx.append(depositoryManager.getWorkwechat()+","); // depositoryManagerByQyWx.append(depositoryManager.getWorkwechat()+",");
// } }
depositoryManagerByQyWx.append("PangFuZhen,"); depositoryManagerByQyWx.append("PangFuZhen,");
JSONObject jsonObject = qyWxOperationService.sendCcMessageToUsers(depositoryManagerByQyWx.toString(), record.getId()); JSONObject jsonObject = qyWxOperationService.sendCcMessageToUsers(depositoryManagerByQyWx.toString(), record.getId());
@ -913,10 +913,10 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
List<UserByPort> departmentHeadByUser = PortConfig.findDepartmentHeadByUser(company, null); List<UserByPort> departmentHeadByUser = PortConfig.findDepartmentHeadByUser(company, null);
StringBuilder depositoryManager = new StringBuilder(); StringBuilder depositoryManager = new StringBuilder();
StringBuilder QyWxUid = new StringBuilder(); StringBuilder QyWxUid = new StringBuilder();
// for (int i = 0; i < departmentHeadByUser.size(); i++) { for (int i = 0; i < departmentHeadByUser.size(); i++) {
// depositoryManager.append(departmentHeadByUser.get(i).getId() + ","); depositoryManager.append(departmentHeadByUser.get(i).getId() + ",");
// QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat()+","); // QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat()+",");
// } }
QyWxUid.append("PangFuZhen"+","); QyWxUid.append("PangFuZhen"+",");
map.put("depositoryManager", depositoryManager.toString()); map.put("depositoryManager", depositoryManager.toString());
// 向仓储中心负责人发送新的消息 // 向仓储中心负责人发送新的消息
@ -1058,6 +1058,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
materialMapper.insertMaterial(insert); materialMapper.insertMaterial(insert);
// 查询该记录 // 查询该记录
/*Integer id =ObjectFormatUtil.toInteger(insert.get("id"));
Material byId = materialMapper.findMaterialById(id);
*/
Map<String, Object> temp = new HashMap<>(); Map<String, Object> temp = new HashMap<>();
temp.put("code", materialById.getCode()); temp.put("code", materialById.getCode());
temp.put("depositoryId", transferRecor.getToId()); temp.put("depositoryId", transferRecor.getToId());
@ -1072,7 +1075,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
Place toPlace = placeMapper.findPlaceById(transferRecor.getToPlaceId()); Place toPlace = placeMapper.findPlaceById(transferRecor.getToPlaceId());
toPlace.setQuantity(toPlace.getQuantity() + quantity); toPlace.setQuantity(toPlace.getQuantity() + quantity);
placeMapper.UpdatePlace(toPlace); // 修改转入库位额度 placeMapper.UpdatePlace(toPlace); // 修改转入库位额度
toPlaceTemp.put("mid", materialById.getId());
toPlaceTemp.put("mid", inventory.getId());
toPlaceTemp.put("pid", toPlace.getId()); toPlaceTemp.put("pid", toPlace.getId());
toPlaceTemp.put("quantity", quantity); toPlaceTemp.put("quantity", quantity);
// 获取转入物料具体所在库位 // 获取转入物料具体所在库位

73
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.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.*;
@Service @Service
public class DepositoryServiceImpl implements DepositoryService { public class DepositoryServiceImpl implements DepositoryService {
@ -343,12 +344,34 @@ public class DepositoryServiceImpl implements DepositoryService {
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("parentId", 0); param.put("parentId", 0);
List<Depository> depositories = depositoryMapper.findDepositoryRecordPByCondition(param); List<Depository> depositories = depositoryMapper.findDepositoryRecordPByCondition(param);
// 开启对应数量的线程
ExecutorService exs = Executors.newFixedThreadPool(depositories.size());
// 结果集
List<Object> list = new ArrayList<>(); List<Object> list = new ArrayList<>();
List<Future<Object>> futureList = new ArrayList<Future<Object>>();
// 1.定义CompletionService
CompletionService<Object> completionService = new ExecutorCompletionService<Object>(exs);
for (int i = 0; i < depositories.size(); i++) { for (int i = 0; i < depositories.size(); i++) {
Depository d = depositories.get(i); Depository d = depositories.get(i);
List<Object> childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId(), ""); Future<Object> future = completionService.submit(new Task(d,""));
Map<String, Object> stringObjectMap = InitTreeMenus2(d, childForMaterialTypeByParent); futureList.add(future);
list.add(stringObjectMap); }
// 3.获取结果
for(int i=0;i<depositories.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; return list;
} }
@ -366,16 +389,54 @@ public class DepositoryServiceImpl implements DepositoryService {
param.put("adminorg", 361); param.put("adminorg", 361);
List<Depository> depositories = depositoryMapper.findDepositoryRecordPByCondition(param); List<Depository> depositories = depositoryMapper.findDepositoryRecordPByCondition(param);
List<Object> list = new ArrayList<>(); List<Object> list = new ArrayList<>();
// 开启对应数量的线程
ExecutorService exs = Executors.newFixedThreadPool(depositories.size());
// 结果集
List<Future<Object>> futureList = new ArrayList<Future<Object>>();
// 1.定义CompletionService
CompletionService<Object> completionService = new ExecutorCompletionService<Object>(exs);
for (int i = 0; i < depositories.size(); i++) { for (int i = 0; i < depositories.size(); i++) {
Depository d = depositories.get(i); Depository d = depositories.get(i);
List<Object> childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId(), adminorg); Future<Object> future = completionService.submit(new Task(d,adminorg));
Map<String, Object> stringObjectMap = InitTreeMenus2(d, childForMaterialTypeByParent); futureList.add(future);
list.add(stringObjectMap); }
// 3.获取结果
for(int i=0;i<depositories.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; return list;
} }
// 用于执行线程任务
class Task implements Callable<Object> {
Depository d;
String adminorg;
public Task(Depository d,String adminorg){
this.d = d;
this.adminorg = adminorg;
}
@Override
public Object call() throws Exception {
List<Object> childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId(), adminorg);
Map<String, Object> stringObjectMap = InitTreeMenus2(d, childForMaterialTypeByParent);
return stringObjectMap;
}
}
/** /**
* 获取当前部门以及公共仓库 * 获取当前部门以及公共仓库
* *

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

@ -631,6 +631,7 @@ public class MaterialServiceImpl implements MaterialService {
return list; return list;
} }
// 用于执行线程任务
class Task implements Callable<Object>{ class Task implements Callable<Object>{
MaterialType mt; MaterialType mt;

51
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.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.*;
/** /**
* @author 金昊霖 * @author 金昊霖
@ -184,7 +185,7 @@ public class MaterialTypeServiceImpl implements MaterialTypeService {
* 构造树形选择框 * 构造树形选择框
* @return * @return
*/ */
@Override /*@Override
public List<Object> InitTreeMenus() { public List<Object> InitTreeMenus() {
List<MaterialType> materialTypeNoParent = materialTypeMapper.findMaterialTypeNoParent(); List<MaterialType> materialTypeNoParent = materialTypeMapper.findMaterialTypeNoParent();
List<Object> list = new ArrayList<>(); List<Object> list = new ArrayList<>();
@ -195,6 +196,54 @@ public class MaterialTypeServiceImpl implements MaterialTypeService {
list.add(stringObjectMap); list.add(stringObjectMap);
} }
return list; return list;
}*/
@Override
public List<Object> InitTreeMenus() {
List<MaterialType> materialTypeNoParent = materialTypeMapper.findMaterialTypeNoParent();
// 开启对应数量的线程
ExecutorService exs = Executors.newFixedThreadPool(materialTypeNoParent.size());
// 结果集
List<Object> list = new ArrayList<>();
List<Future<Object>> futureList = new ArrayList<Future<Object>>();
// 1.定义CompletionService
CompletionService<Object> completionService = new ExecutorCompletionService<Object>(exs);
for (int i = 0; i < materialTypeNoParent.size(); i++) {
MaterialType mt = materialTypeNoParent.get(i);
Future<Object> future = completionService.submit(new Task(mt));
futureList.add(future);
}
// 3.获取结果
for(int i=0;i<materialTypeNoParent.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 Task implements Callable<Object> {
MaterialType mt;
public Task(MaterialType mt){
this.mt = mt;
}
@Override
public Object call() throws Exception {
List<Object> childForMaterialTypeByParent = findChildForMaterialTypeByParent(mt.getOldId());
Map<String, Object> stringObjectMap = InitTreeMenus(mt,childForMaterialTypeByParent);
return stringObjectMap;
}
} }
// 构造树形组件数据模板 // 构造树形组件数据模板

5
src/main/resources/templates/pages/application/application-transfer.html

@ -707,7 +707,7 @@
var codeChildren = parent.childNodes[7]; var codeChildren = parent.childNodes[7];
var materialChildren = parent.childNodes[5]; var materialChildren = parent.childNodes[5];
var codeItem = codeChildren.childNodes[3].childNodes; 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 materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1]; var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3]; var materialId = materialName.parentNode.parentNode.childNodes[3];
@ -736,6 +736,9 @@
if(code === undefined){ if(code === undefined){
code = ""; code = "";
} }
console.log(d)
console.log(codeItem)
console.log(codeValue)
codeValue.value = code; codeValue.value = code;
$('#place').empty(); $('#place').empty();
$.each(placeList, function (index, item) { $.each(placeList, function (index, item) {

6
src/test/java/com/dreamchaser/depository_manage/Test.java

@ -69,13 +69,11 @@ import org.xml.sax.InputSource;
public class Test { public class Test {
@Autowired
MaterialService materialService;
@org.junit.Test @org.junit.Test
public void test1() throws AesException, IOException, ParserConfigurationException, SAXException { public void test1() throws AesException, IOException, ParserConfigurationException, SAXException {
List<Object> objectList = materialService.InitTreeMenus("");
System.out.println(objectList);
} }

5
target/classes/templates/pages/application/application-transfer.html

@ -707,7 +707,7 @@
var codeChildren = parent.childNodes[7]; var codeChildren = parent.childNodes[7];
var materialChildren = parent.childNodes[5]; var materialChildren = parent.childNodes[5];
var codeItem = codeChildren.childNodes[3].childNodes; 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 materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1]; var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3]; var materialId = materialName.parentNode.parentNode.childNodes[3];
@ -736,6 +736,9 @@
if(code === undefined){ if(code === undefined){
code = ""; code = "";
} }
console.log(d)
console.log(codeItem)
console.log(codeValue)
codeValue.value = code; codeValue.value = code;
$('#place').empty(); $('#place').empty();
$.each(placeList, function (index, item) { $.each(placeList, function (index, item) {

Loading…
Cancel
Save