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[] 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<UserByPort> 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<String, Object> 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);
// 获取转入物料具体所在库位

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.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<String, Object> param = new HashMap<>();
param.put("parentId", 0);
List<Depository> depositories = depositoryMapper.findDepositoryRecordPByCondition(param);
// 开启对应数量的线程
ExecutorService exs = Executors.newFixedThreadPool(depositories.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 < depositories.size(); i++) {
Depository d = depositories.get(i);
List<Object> childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId(), "");
Map<String, Object> stringObjectMap = InitTreeMenus2(d, childForMaterialTypeByParent);
list.add(stringObjectMap);
Future<Object> future = completionService.submit(new Task(d,""));
futureList.add(future);
}
// 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;
}
@ -366,16 +389,54 @@ public class DepositoryServiceImpl implements DepositoryService {
param.put("adminorg", 361);
List<Depository> depositories = depositoryMapper.findDepositoryRecordPByCondition(param);
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++) {
Depository d = depositories.get(i);
List<Object> childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId(), adminorg);
Map<String, Object> stringObjectMap = InitTreeMenus2(d, childForMaterialTypeByParent);
list.add(stringObjectMap);
Future<Object> future = completionService.submit(new Task(d,adminorg));
futureList.add(future);
}
// 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;
}
// 用于执行线程任务
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;
}
// 用于执行线程任务
class Task implements Callable<Object>{
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.List;
import java.util.Map;
import java.util.concurrent.*;
/**
* @author 金昊霖
@ -184,7 +185,7 @@ public class MaterialTypeServiceImpl implements MaterialTypeService {
* 构造树形选择框
* @return
*/
@Override
/*@Override
public List<Object> InitTreeMenus() {
List<MaterialType> materialTypeNoParent = materialTypeMapper.findMaterialTypeNoParent();
List<Object> list = new ArrayList<>();
@ -195,6 +196,54 @@ public class MaterialTypeServiceImpl implements MaterialTypeService {
list.add(stringObjectMap);
}
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 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) {

6
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<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 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) {

Loading…
Cancel
Save