Browse Source

修改不同权限部门看到的可视化界面

lwx_dev
erdanergou 3 years ago
parent
commit
691e33684d
  1. 58
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java
  2. 8
      src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java
  3. 92
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java
  4. 9
      src/test/java/com/dreamchaser/depository_manage/OtherTest.java

58
src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java

@ -1,6 +1,7 @@
package com.dreamchaser.depository_manage.controller;
import com.alibaba.excel.util.ListUtils;
import com.dreamchaser.depository_manage.config.PublicConfig;
import com.dreamchaser.depository_manage.entity.*;
import com.dreamchaser.depository_manage.exception.MyException;
import com.dreamchaser.depository_manage.pojo.*;
@ -231,8 +232,8 @@ public class DepositoryController {
userKey = (String) request.getSession().getAttribute("userKey");
}
UserByPort userToken = AuthenticationTokenPool.getUserToken(token);
String finalUserKey = userKey;
String finalToken = token;
String finalUserKey = userKey;
String finalToken = token;
if (map.containsKey("id")) {
Integer id = ObjectFormatUtil.toInteger(map.get("id"));
HandlesOtherFunctionalThreadPool.execute(() -> UpdateSonState(id.toString(), 3, true, finalUserKey, finalToken));
@ -242,7 +243,7 @@ public class DepositoryController {
List<Integer> ids = (List<Integer>) map.get("ids");
for (Integer integer : ids) {
String id = integer.toString();
HandlesOtherFunctionalThreadPool.execute(() -> UpdateSonState(id, 3, true, finalUserKey,finalToken));
HandlesOtherFunctionalThreadPool.execute(() -> UpdateSonState(id, 3, true, finalUserKey, finalToken));
}
return CrudUtil.deleteHandle(depositoryService.changeStateToDeletedByIds(ids), ids.size());
} else {
@ -289,14 +290,14 @@ public class DepositoryController {
int state = ((int) map.get("state"));
String id = (String) map.get("id");
if (state == 2) {
String finalUserKey = userKey;
String finalToken = token;
String finalUserKey = userKey;
String finalToken = token;
if (map.containsKey("envelop")) {
// 封库
HandlesOtherFunctionalThreadPool.execute(() -> UpdateSonState(id, state, true, finalUserKey, finalToken));
} else {
// 禁用仓库
HandlesOtherFunctionalThreadPool.execute(() -> UpdateSonState(id, state, false, finalUserKey,finalToken));
HandlesOtherFunctionalThreadPool.execute(() -> UpdateSonState(id, state, false, finalUserKey, finalToken));
}
}
return CrudUtil.insertHandle(depositoryService.updateDepository(map), 1);
@ -307,15 +308,15 @@ public class DepositoryController {
*
* @param parentId
*/
public void UpdateSonState(String parentId, Integer state, boolean envelop, String userKey,String token) {
public void UpdateSonState(String parentId, Integer state, boolean envelop, String userKey, String token) {
Map<String, Object> param = new HashMap<>();
param.put("parentId", parentId);
// 获取当前仓库所有子仓库
List<Depository> depositoryRecordPByCondition = depositoryService.findDepositoryByCondition(param, userKey,token);
List<Depository> depositoryRecordPByCondition = depositoryService.findDepositoryByCondition(param, userKey, token);
for (Depository depository : depositoryRecordPByCondition) {
int depositoryId = depository.getId();
UpdateSonState(String.valueOf(depositoryId), state, envelop, userKey,token);
UpdateSonState(String.valueOf(depositoryId), state, envelop, userKey, token);
Map<String, Object> map = new HashMap<>();
map.put("id", depositoryId);
map.put("state", state);
@ -383,7 +384,12 @@ public class DepositoryController {
show_weekday.add("周日");
// 获取各仓库名称以及id
Map<String, Integer> depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort);
Map<String, Integer> depositoryAllNameAndId = new HashMap<>();
if (PublicConfig.roleAdminorgList.contains(userByPort.getMaindeparment())) {
depositoryAllNameAndId = depositoryService.findAllDepositoryNameAndId();
} else {
depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort);
}
Iterator it = depositoryAllNameAndId.keySet().iterator();
@ -426,8 +432,7 @@ public class DepositoryController {
show_data.putAll((Map<?, ?>) result);
}
depository_data.put("data", show_data);
}
else {
} else {
// 定义线程
int threadSize = depositoryAllNameAndId.size();
ExecutorService exs = new ThreadPoolExecutor(threadSize, threadSize, 100, TimeUnit.SECONDS, new LinkedBlockingQueue<>(threadSize));
@ -487,8 +492,12 @@ public class DepositoryController {
show_weekday.add("周日");
// 获取各仓库名称以及id
Map<String, Integer> depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort);
Map<String, Integer> depositoryAllNameAndId = new HashMap<>();
if (PublicConfig.roleAdminorgList.contains(userByPort.getMaindeparment())) {
depositoryAllNameAndId = depositoryService.findAllDepositoryNameAndId();
} else {
depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort);
}
Map<String, Object> depository_data = new HashMap<>();
depository_data.put("week", show_weekday);
if ("0".equals(type)) {
@ -529,7 +538,12 @@ public class DepositoryController {
show_weekday.add("周日");
// 获取各仓库名称以及id
Map<String, Integer> depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort);
Map<String, Integer> depositoryAllNameAndId = new HashMap<>();
if (PublicConfig.roleAdminorgList.contains(userByPort.getMaindeparment())) {
depositoryAllNameAndId = depositoryService.findAllDepositoryNameAndId();
} else {
depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort);
}
int threadSize = 10;
ExecutorService exs = new ThreadPoolExecutor(threadSize, threadSize, 100, TimeUnit.SECONDS, new LinkedBlockingQueue<>(threadSize));
@ -841,12 +855,11 @@ public class DepositoryController {
Material materialById = materialService.findMaterialById(Integer.parseInt(mid));
Map<String, Object> param = new HashMap<>();
param.put("depositoryId", materialById.getDepositoryId());
List<Depository> depositoryId = depositoryService.findDepositoryByCondition(param, userKey,token);
List<Depository> depositoryId = depositoryService.findDepositoryByCondition(param, userKey, token);
return new RestResponse(depositoryId.get(0), 1, 200);
}
/**
* 查找仓库内是否有物品
*
@ -1212,7 +1225,12 @@ public class DepositoryController {
* @return
*/
Map<Object, Object> getBarChartData(UserByPort userByPort) {
Map<String, Integer> depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort);
Map<String, Integer> depositoryAllNameAndId = new HashMap<>();
if (PublicConfig.roleAdminorgList.contains(userByPort.getMaindeparment())) {
depositoryAllNameAndId = depositoryService.findAllDepositoryNameAndId();
} else {
depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort);
}
int threadSize = 2;
ExecutorService exs = new ThreadPoolExecutor(threadSize, threadSize, 100, TimeUnit.SECONDS, new LinkedBlockingQueue<>(threadSize));
@ -1499,11 +1517,11 @@ public class DepositoryController {
for (i = days.size() - 1; i > 0; i--) {
// 遍历 Map并计算各仓库的入库数
// 获取一段时间内的库存额度
Double depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(days.get(i), days.get(i-1), Integer.parseInt(type), val);
Double depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(days.get(i), days.get(i - 1), Integer.parseInt(type), val);
drCountbyDrName.add(depositoryRecordByDate1);
}
Collections.reverse(drCountbyDrName);
map.put("data",drCountbyDrName);
map.put("data", drCountbyDrName);
result.put(val, map);
return result;
}

8
src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java

@ -120,11 +120,17 @@ public interface DepositoryService {
/**
* 查询所有仓库名称即对应编号
* 查询当前用户所拥有的所有仓库名称即对应编号
* @return
*/
Map<String,Integer> findDepositoryAllNameAndId(UserByPort user);
/**
* 查询所有仓库名称即对应编号
* @return
*/
Map<String,Integer> findAllDepositoryNameAndId();
/**
* 根据名称或编码获取当前仓库库存容量

92
src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java

@ -3,6 +3,7 @@ package com.dreamchaser.depository_manage.service.impl;
import cn.hutool.core.lang.Snowflake;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.dreamchaser.depository_manage.config.PublicConfig;
import com.dreamchaser.depository_manage.entity.*;
import com.dreamchaser.depository_manage.mapper.*;
import com.dreamchaser.depository_manage.pojo.InventoryByDname;
@ -47,7 +48,7 @@ public class DepositoryServiceImpl implements DepositoryService {
* @return 影响条数
*/
@Override
public Integer insertDepository(Map<String, Object> map, String userKey,String token) {
public Integer insertDepository(Map<String, Object> map, String userKey, String token) {
// 获取当前仓库拼音首字母
String dname = (String) map.get("dname");
String dnamePinYin = WordUtil.getPinYinHeadChar(dname);
@ -61,12 +62,12 @@ public class DepositoryServiceImpl implements DepositoryService {
List<Depository> condition = depositoryMapper.findDepositoryByCondition(temp);
// 公司编号
Integer cid = ObjectFormatUtil.toInteger(map.get("cid"));
String companyName = LinkInterfaceUtil.getCompany(cid, userKey,token).getName();
String companyName = LinkInterfaceUtil.getCompany(cid, userKey, token).getName();
String adminorgName = "";
// 部门编号
if (!"".equals(map.get("adminorg"))) {
Integer adminorg = ObjectFormatUtil.toInteger(map.get("adminorg"));
adminorgName = LinkInterfaceUtil.getCompany(adminorg, userKey,token).getName();
adminorgName = LinkInterfaceUtil.getCompany(adminorg, userKey, token).getName();
}
// 公司简称
companyName = WordUtil.getPinYinHeadChar(companyName);
@ -98,7 +99,7 @@ public class DepositoryServiceImpl implements DepositoryService {
// 部门编号
if (!"".equals(map.get("adminorg"))) {
Integer adminorg = ObjectFormatUtil.toInteger(map.get("adminorg"));
adminorgName = LinkInterfaceUtil.getCompany(adminorg, userKey,token).getName();
adminorgName = LinkInterfaceUtil.getCompany(adminorg, userKey, token).getName();
adminorgName = WordUtil.getPinYinHeadChar(adminorgName).substring(0, 2);
}
// 获取父仓库编码
@ -132,7 +133,7 @@ public class DepositoryServiceImpl implements DepositoryService {
* @return 影响条数
*/
@Override
public List<Depository> findDepositoryByCondition(Map<String, Object> map, String userKey,String token) {
public List<Depository> findDepositoryByCondition(Map<String, Object> map, String userKey, String token) {
Integer size = 10, page = 1;
if (map.containsKey("size")) {
size = ObjectFormatUtil.toInteger(map.get("size"));
@ -150,7 +151,7 @@ public class DepositoryServiceImpl implements DepositoryService {
List<Depository> list = depositoryMapper.findDepositoryByCondition(map);
for (Depository depository : list) {
if (!depository.getAdminorg().isEmpty()) {
Administration company = LinkInterfaceUtil.getCompany(ObjectFormatUtil.toInteger(depository.getAdminorg()), userKey,token);
Administration company = LinkInterfaceUtil.getCompany(ObjectFormatUtil.toInteger(depository.getAdminorg()), userKey, token);
depository.setAdminorgName(company.getName());
}
}
@ -280,6 +281,7 @@ public class DepositoryServiceImpl implements DepositoryService {
/**
* 查询顶级仓库
*
* @return
*/
@Override
@ -303,7 +305,6 @@ public class DepositoryServiceImpl implements DepositoryService {
}
/**
* 获取本部门以及个人管理仓库的名称和id
*
@ -316,46 +317,77 @@ public class DepositoryServiceImpl implements DepositoryService {
Integer adminorg = user.getMaindeparment();
// 获取当前用户所在部门管理的仓库
List<Depository> depositoryByAdminorg = depositoryMapper.findDepositoryByAdminorg(adminorg.toString());
List<Integer> depositoryParentIdList = new ArrayList<>();
List<Depository> depositoryList = new ArrayList<>();
// 仓库id列表
// 添加到id列表
for (Depository depository : depositoryByAdminorg) {
int parentId = depository.getParentId();
Integer id = depository.getId();
if (parentId != 0) {
List<Depository> depositoryByParent = depositoryMapper.findDepositoryByParent(id);
if (depositoryByParent.size() == 0) {
map.put(depository.getDname() + "," + depository.getCode(), id);
} else {
if (depository.getAdminorg().equals(adminorg.toString())) {
for (Depository d : depositoryByParent) {
map.put(d.getDname() + "," + d.getCode(), d.getId());
}
}
}
depositoryList.add(depository);
depositoryParentIdList.add(parentId);
}
}
for (Depository depository : depositoryList
) {
Integer id = depository.getId();
if (!depositoryParentIdList.contains(id)) {
map.put(depository.getDname() + "," + depository.getCode(), id);
}
}
// 获取当前用户管理的仓库
List<RoleAndDepository> depositoryAndRole = roleMapper.findDepositoryAndRole(user.getId());
List<RoleAndDepository> roleAndDepositoryList = new ArrayList<>();
depositoryParentIdList = new ArrayList<>();
for (RoleAndDepository roleAndDepository : depositoryAndRole) {
int parentId = roleAndDepository.getParentId();
Integer id = roleAndDepository.getDepositoryId();
if (parentId != 0) {
List<Depository> depositoryByParent = depositoryMapper.findDepositoryByParent(id);
if (depositoryByParent.size() == 0) {
map.put(roleAndDepository.getDepositoryName() + "," + roleAndDepository.getDepositoryCode(), id);
} else {
if (roleAndDepository.getDepositoryAdminorg().equals(adminorg.toString())) {
for (Depository d : depositoryByParent) {
map.put(d.getDname() + "," + d.getCode(), d.getId());
}
}
}
roleAndDepositoryList.add(roleAndDepository);
depositoryParentIdList.add(parentId);
}
}
for (RoleAndDepository roleAndDepository : roleAndDepositoryList) {
Integer id = roleAndDepository.getDepositoryId();
if (!depositoryParentIdList.contains(id)) {
map.put(roleAndDepository.getDepositoryName() + "," + roleAndDepository.getDepositoryCode(), id);
}
}
return map;
}
/**
* 查询所有仓库名称即对应编号
*
* @return
*/
@Override
public Map<String, Integer> findAllDepositoryNameAndId() {
List<Depository> depositoryAll = depositoryMapper.findDepositoryAll();
Map<String, Integer> map = new HashMap<>();
List<Integer> depositoryParentIdList = new ArrayList<>();
List<Depository> depositoryList = new ArrayList<>();
for (Depository depository : depositoryAll
) {
int parentId = depository.getParentId();
if (parentId != 0) {
depositoryList.add(depository);
depositoryParentIdList.add(parentId);
}
}
for (Depository depository : depositoryList
) {
int id = depository.getId();
if (!depositoryParentIdList.contains(id)) {
map.put(depository.getDname() + "," + depository.getCode(), id);
}
}
return map;
}
@ -818,7 +850,6 @@ public class DepositoryServiceImpl implements DepositoryService {
}
// 根据id获取子类
public List<Long> findChildForMaterialTypeByParent(Long mtId) {
List<Long> result = new ArrayList<>();
@ -836,7 +867,6 @@ public class DepositoryServiceImpl implements DepositoryService {
}
private boolean hasDepository(List<Depository> list, Depository o) {
boolean flag = false;
for (Depository depository : list) {

9
src/test/java/com/dreamchaser/depository_manage/OtherTest.java

@ -47,6 +47,9 @@ public class OtherTest {
@Autowired
DepositoryMapper depositoryMapper;
@Autowired
DepositoryService depositoryService;
@Autowired
QyWxOperationService qyWxOperationService;
@ -94,6 +97,12 @@ public class OtherTest {
}
@Test
public void someTest(){
Map<String, Integer> allDepositoryNameAndId = depositoryService.findAllDepositoryNameAndId();
System.out.println(JSONObject.toJSONString(allDepositoryNameAndId));
}
@Test
public void main() {
ExecutorService exs = new ThreadPoolExecutor(10, 100, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<>(10),new ThreadPoolExecutor.DiscardPolicy());

Loading…
Cancel
Save