|
|
@ -95,24 +95,8 @@ public class GroupController { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
// 获取当前部门仓库
|
|
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); |
|
|
|
|
|
// 查询当前用户管理的仓库
|
|
|
|
|
|
List<RoleAndDepository> depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); |
|
|
|
|
|
depositoryAndRole.addAll(roleService.findDepositoryAndRole(userToken.getPosition())); |
|
|
|
|
|
|
|
|
|
|
|
List<Integer> depositoryIdList = new ArrayList<>(); |
|
|
|
|
|
for (Depository depository : depositoryByAdminorg |
|
|
|
|
|
) { |
|
|
|
|
|
depositoryIdList.add(depository.getId()); |
|
|
|
|
|
} |
|
|
|
|
|
for (RoleAndDepository rad : depositoryAndRole |
|
|
|
|
|
) { |
|
|
|
|
|
if (!depositoryIdList.contains(rad.getDepositoryId())) { |
|
|
|
|
|
depositoryIdList.add(rad.getDepositoryId()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Integer> depositoryIdList = roleService.findDepositoryIdForUserHas(userToken); |
|
|
|
|
|
|
|
|
String code = map.get("code").toString(); |
|
|
String code = map.get("code").toString(); |
|
|
|
|
|
|
|
|
@ -128,17 +112,26 @@ public class GroupController { |
|
|
|
|
|
|
|
|
// 用于标识当前组合是否可以正常出库
|
|
|
// 用于标识当前组合是否可以正常出库
|
|
|
boolean flag = true; |
|
|
boolean flag = true; |
|
|
|
|
|
// 定义符合要求的仓库id
|
|
|
|
|
|
List<Integer> satisfyDepositoryIdList = new ArrayList<>(); |
|
|
for (GroupInfo groupInfo : groupByGid) { |
|
|
for (GroupInfo groupInfo : groupByGid) { |
|
|
|
|
|
|
|
|
// 获取详细信息
|
|
|
// 获取详细信息
|
|
|
|
|
|
|
|
|
|
|
|
Integer infoQuantity = groupInfo.getQuantity(); |
|
|
// 获取该物料的库存
|
|
|
// 获取该物料的库存
|
|
|
List<Double> inventoryByMidAndDepository = materialService.findInventoryByGroupInfoAndDepository(groupInfo, depositoryIdList); |
|
|
Map<Integer, Double> inventoryByGroupInfoAndDepository = materialService.findInventoryByGroupInfoAndDepository(groupInfo, depositoryIdList); |
|
|
// 用于标志当前物料库存是否符合要求
|
|
|
// 用于标志当前物料库存是否符合要求
|
|
|
boolean flagForQuantity = false; |
|
|
boolean flagForQuantity = false; |
|
|
for (Double quantity : inventoryByMidAndDepository) { |
|
|
// 获取key 的迭代
|
|
|
|
|
|
for (Integer depositoryId : inventoryByGroupInfoAndDepository.keySet()) { |
|
|
|
|
|
Double quantity = inventoryByGroupInfoAndDepository.get(depositoryId); |
|
|
// 如果库存符合要求
|
|
|
// 如果库存符合要求
|
|
|
if (quantity >= groupInfo.getQuantity()) { |
|
|
if (quantity >= infoQuantity) { |
|
|
flagForQuantity = true; |
|
|
flagForQuantity = true; |
|
|
|
|
|
if (!satisfyDepositoryIdList.contains(depositoryId)) { |
|
|
|
|
|
satisfyDepositoryIdList.add(depositoryId); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
if (!flagForQuantity) { |
|
|
if (!flagForQuantity) { |
|
|
@ -146,6 +139,9 @@ public class GroupController { |
|
|
flag = false; |
|
|
flag = false; |
|
|
errMsg.append(" ").append(groupInfo.getMname()).append(" "); |
|
|
errMsg.append(" ").append(groupInfo.getMname()).append(" "); |
|
|
break; |
|
|
break; |
|
|
|
|
|
} else { |
|
|
|
|
|
List<Depository> depositoryByIds = depositoryService.findDepositoryByIds(satisfyDepositoryIdList); |
|
|
|
|
|
groupInfo.setSatisfyDepositoryList(depositoryByIds); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
@ -208,7 +204,12 @@ public class GroupController { |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
@PostMapping("/findGroupByGname") |
|
|
@PostMapping("/findGroupByGname") |
|
|
public RestResponse findGroupByGname(@RequestBody Map<String, Object> map) { |
|
|
public RestResponse findGroupByGname(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
|
|
String token = request.getHeader("user-token"); |
|
|
|
|
|
if (token == null) { |
|
|
|
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
|
|
|
} |
|
|
|
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
if (map.containsKey("gname")) { |
|
|
if (map.containsKey("gname")) { |
|
|
List<Group> groupOnlyByCondition = groupService.findGroupOnlyByCondition(map); |
|
|
List<Group> groupOnlyByCondition = groupService.findGroupOnlyByCondition(map); |
|
|
int size = groupOnlyByCondition.size(); |
|
|
int size = groupOnlyByCondition.size(); |
|
|
@ -220,6 +221,13 @@ public class GroupController { |
|
|
// 如果刚好只有一个
|
|
|
// 如果刚好只有一个
|
|
|
// 获取当前组合的所有物料数据
|
|
|
// 获取当前组合的所有物料数据
|
|
|
List<GroupInfo> groupByGid = groupService.findGroupByCondition(map); |
|
|
List<GroupInfo> groupByGid = groupService.findGroupByCondition(map); |
|
|
|
|
|
List<Integer> depositoryIdForUserHas = roleService.findDepositoryIdForUserHas(userToken); |
|
|
|
|
|
List<Depository> depositoryByIds = depositoryService.findDepositoryByIds(depositoryIdForUserHas); |
|
|
|
|
|
if (groupByGid != null && groupByGid.size() > 0) { |
|
|
|
|
|
groupByGid.get(0).setSatisfyDepositoryList(depositoryByIds); |
|
|
|
|
|
}else{ |
|
|
|
|
|
groupByGid = new ArrayList<>(); |
|
|
|
|
|
} |
|
|
return new RestResponse(groupByGid, groupByGid.size(), 200); |
|
|
return new RestResponse(groupByGid, groupByGid.size(), 200); |
|
|
|
|
|
|
|
|
} else { |
|
|
} else { |
|
|
@ -373,24 +381,10 @@ public class GroupController { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
// 获取当前部门仓库
|
|
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); |
|
|
|
|
|
|
|
|
|
|
|
// 查询当前用户管理的仓库
|
|
|
|
|
|
List<RoleAndDepository> depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); |
|
|
|
|
|
depositoryAndRole.addAll(roleService.findDepositoryAndRole(userToken.getPosition())); |
|
|
|
|
|
|
|
|
|
|
|
List<Integer> depositoryIdList = new ArrayList<>(); |
|
|
List<Integer> depositoryIdList = new ArrayList<>(); |
|
|
for (Depository depository : depositoryByAdminorg |
|
|
|
|
|
) { |
|
|
depositoryIdList = roleService.findDepositoryIdForUserHas(userToken); |
|
|
depositoryIdList.add(depository.getId()); |
|
|
|
|
|
} |
|
|
|
|
|
for (RoleAndDepository rad : depositoryAndRole |
|
|
|
|
|
) { |
|
|
|
|
|
if (!depositoryIdList.contains(rad.getDepositoryId())) { |
|
|
|
|
|
depositoryIdList.add(rad.getDepositoryId()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 获取当前组合的所有物料数据
|
|
|
// 获取当前组合的所有物料数据
|
|
|
List<GroupInfo> groupByGid = groupService.findGroupByCondition(map); |
|
|
List<GroupInfo> groupByGid = groupService.findGroupByCondition(map); |
|
|
@ -403,29 +397,42 @@ public class GroupController { |
|
|
boolean flag = true; |
|
|
boolean flag = true; |
|
|
|
|
|
|
|
|
if (!"in".equals(type)) { |
|
|
if (!"in".equals(type)) { |
|
|
|
|
|
// 定义符合要求的仓库id
|
|
|
|
|
|
List<Integer> satisfyDepositoryIdList = new ArrayList<>(); |
|
|
for (GroupInfo groupInfo : groupByGid) { |
|
|
for (GroupInfo groupInfo : groupByGid) { |
|
|
|
|
|
|
|
|
// 获取详细信息
|
|
|
// 获取详细信息
|
|
|
// 获取该物料的库存
|
|
|
// 获取该物料的库存
|
|
|
List<Double> inventoryByMidAndDepository = materialService.findInventoryByGroupInfoAndDepository(groupInfo, depositoryIdList); |
|
|
Integer infoQuantity = groupInfo.getQuantity(); |
|
|
|
|
|
|
|
|
// 用于标志当前物料库存是否符合要求
|
|
|
// 用于标志当前物料库存是否符合要求
|
|
|
boolean flagForQuantity = false; |
|
|
boolean flagForQuantity = false; |
|
|
for (Double quantity : inventoryByMidAndDepository) { |
|
|
// 获取该物料在各仓库的库存
|
|
|
// 如果库存符合要求
|
|
|
Map<Integer, Double> inventoryByMidAndDepository = materialService.findInventoryByGroupInfoAndDepository(groupInfo, depositoryIdList); |
|
|
if (quantity >= groupInfo.getQuantity()) { |
|
|
// 获取key的迭代器
|
|
|
|
|
|
for (Integer depositoryId : inventoryByMidAndDepository.keySet()) { |
|
|
|
|
|
Double value = inventoryByMidAndDepository.get(depositoryId); |
|
|
|
|
|
if (value >= infoQuantity) { |
|
|
flagForQuantity = true; |
|
|
flagForQuantity = true; |
|
|
|
|
|
satisfyDepositoryIdList.add(depositoryId); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!flagForQuantity) { |
|
|
if (!flagForQuantity) { |
|
|
// 如果当前不符合
|
|
|
// 如果当前不符合
|
|
|
flag = false; |
|
|
flag = false; |
|
|
errMsg.append(" ").append(groupInfo.getMname()).append(" "); |
|
|
errMsg.append(" ").append(groupInfo.getMname()).append(" "); |
|
|
break; |
|
|
break; |
|
|
|
|
|
} else { |
|
|
|
|
|
List<Depository> depositoryByIds = depositoryService.findDepositoryByIds(satisfyDepositoryIdList); |
|
|
|
|
|
groupInfo.setSatisfyDepositoryList(depositoryByIds); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
if (flag) { |
|
|
if (flag) { |
|
|
|
|
|
|
|
|
return new RestResponse(groupByGid); |
|
|
return new RestResponse(groupByGid); |
|
|
} else { |
|
|
} else { |
|
|
return new RestResponse(null, 666, new StatusInfo("不能出库", "当前组合中的" + errMsg + "在仓库中库存不足")); |
|
|
return new RestResponse(null, 666, new StatusInfo("不能出库", "当前组合中的" + errMsg + "在仓库中库存不足")); |
|
|
@ -580,6 +587,7 @@ public class GroupController { |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 入库审核 |
|
|
* 入库审核 |
|
|
|
|
|
* |
|
|
* @param map |
|
|
* @param map |
|
|
* @param request |
|
|
* @param request |
|
|
* @return |
|
|
* @return |
|
|
@ -613,6 +621,7 @@ public class GroupController { |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 用于获取当前物料在组合中的详细信息 |
|
|
* 用于获取当前物料在组合中的详细信息 |
|
|
|
|
|
* |
|
|
* @param map |
|
|
* @param map |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
@ -777,28 +786,21 @@ public class GroupController { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
// 获取当前部门所拥有的仓库
|
|
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); |
|
|
|
|
|
// 查询当前用户管理的仓库
|
|
|
|
|
|
List<RoleAndDepository> depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); |
|
|
|
|
|
depositoryAndRole.addAll(roleService.findDepositoryAndRole(userToken.getPosition())); |
|
|
|
|
|
|
|
|
|
|
|
List<Integer> depositoryIdList = new ArrayList<>(); |
|
|
|
|
|
for (Depository depository : depositoryByAdminorg |
|
|
|
|
|
) { |
|
|
|
|
|
depositoryIdList.add(depository.getId()); |
|
|
|
|
|
} |
|
|
|
|
|
for (RoleAndDepository rad : depositoryAndRole |
|
|
|
|
|
) { |
|
|
|
|
|
if (!depositoryIdList.contains(rad.getDepositoryId())) { |
|
|
|
|
|
depositoryIdList.add(rad.getDepositoryId()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 获取组合id
|
|
|
// 获取组合id
|
|
|
Integer gid = ObjectFormatUtil.toInteger(map.get("gid")); |
|
|
Integer gid = ObjectFormatUtil.toInteger(map.get("gid")); |
|
|
// 获取组合数量
|
|
|
// 获取组合数量
|
|
|
Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity")); |
|
|
Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity")); |
|
|
|
|
|
List<Integer> depositoryIdList = new ArrayList<>(); |
|
|
|
|
|
if (map.containsKey("depositoryId")) { |
|
|
|
|
|
// 获取选择的仓库
|
|
|
|
|
|
Integer depositoryId = ObjectFormatUtil.toInteger(map.get("depositoryId")); |
|
|
|
|
|
depositoryIdList.add(depositoryId); |
|
|
|
|
|
} else { |
|
|
|
|
|
depositoryIdList = roleService.findDepositoryIdForUserHas(userToken); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
Map<String, String> trueForGroup = isTrueForGroup(gid, quantity, depositoryIdList); |
|
|
Map<String, String> trueForGroup = isTrueForGroup(gid, quantity, depositoryIdList); |
|
|
Boolean flag = Boolean.valueOf(trueForGroup.get("flag")); |
|
|
Boolean flag = Boolean.valueOf(trueForGroup.get("flag")); |
|
|
|
|
|
|
|
|
@ -957,7 +959,6 @@ public class GroupController { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, String> isTrueForGroup(Integer gid, Integer quantity, List<Integer> depositoryIdList) { |
|
|
Map<String, String> isTrueForGroup(Integer gid, Integer quantity, List<Integer> depositoryIdList) { |
|
|
List<GroupInfo> groupInfoByGid = groupService.findGroupInfoByGid(gid); |
|
|
List<GroupInfo> groupInfoByGid = groupService.findGroupInfoByGid(gid); |
|
|
boolean flag = true; |
|
|
boolean flag = true; |
|
|
@ -971,9 +972,11 @@ public class GroupController { |
|
|
boolean flagForInventory = false; |
|
|
boolean flagForInventory = false; |
|
|
|
|
|
|
|
|
// 获取该物料在各仓库的库存
|
|
|
// 获取该物料在各仓库的库存
|
|
|
List<Double> inventoryByMidAndDepository = materialService.findInventoryByGroupInfoAndDepository(groupInfo, depositoryIdList); |
|
|
Map<Integer, Double> inventoryByMidAndDepository = materialService.findInventoryByGroupInfoAndDepository(groupInfo, depositoryIdList); |
|
|
for (Double integer : inventoryByMidAndDepository) { |
|
|
// 获取key的迭代器
|
|
|
if (integer >= totalQuantity) { |
|
|
for (Integer depositoryId : inventoryByMidAndDepository.keySet()) { |
|
|
|
|
|
Double value = inventoryByMidAndDepository.get(depositoryId); |
|
|
|
|
|
if (value >= totalQuantity) { |
|
|
flagForInventory = true; |
|
|
flagForInventory = true; |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
|