|
|
|
@ -6,10 +6,12 @@ import com.dreamchaser.depository_manage.entity.*; |
|
|
|
import com.dreamchaser.depository_manage.exception.MyException; |
|
|
|
import com.dreamchaser.depository_manage.pojo.GroupInfoP; |
|
|
|
import com.dreamchaser.depository_manage.pojo.RestResponse; |
|
|
|
import com.dreamchaser.depository_manage.pojo.RoleAndDepository; |
|
|
|
import com.dreamchaser.depository_manage.pojo.StatusInfo; |
|
|
|
import com.dreamchaser.depository_manage.service.DepositoryService; |
|
|
|
import com.dreamchaser.depository_manage.service.GroupService; |
|
|
|
import com.dreamchaser.depository_manage.service.MaterialService; |
|
|
|
import com.dreamchaser.depository_manage.service.RoleService; |
|
|
|
import com.dreamchaser.depository_manage.service.impl.QyWxOperationService; |
|
|
|
import com.dreamchaser.depository_manage.utils.*; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
@ -40,6 +42,9 @@ public class GroupController { |
|
|
|
@Autowired |
|
|
|
private RedisTemplate<String, String> redisTemplateForHash; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private RoleService roleService; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 用于添加一条组合记录 |
|
|
|
@ -85,6 +90,22 @@ public class GroupController { |
|
|
|
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); |
|
|
|
// 获取当前部门仓库
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); |
|
|
|
// 查询当前用户管理的仓库
|
|
|
|
List<RoleAndDepository> depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); |
|
|
|
|
|
|
|
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()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
String code = map.get("code").toString(); |
|
|
|
|
|
|
|
// 获取组合编码
|
|
|
|
@ -103,7 +124,7 @@ public class GroupController { |
|
|
|
// 获取详细信息
|
|
|
|
|
|
|
|
// 获取该物料的库存
|
|
|
|
List<Integer> inventoryByMidAndDepository = materialService.findInventoryByMidAndDepository(groupInfo, depositoryByAdminorg); |
|
|
|
List<Integer> inventoryByMidAndDepository = materialService.findInventoryByMidAndDepository(groupInfo, depositoryIdList); |
|
|
|
// 用于标志当前物料库存是否符合要求
|
|
|
|
boolean flagForQuantity = false; |
|
|
|
for (Integer quantity : inventoryByMidAndDepository) { |
|
|
|
@ -343,6 +364,21 @@ public class GroupController { |
|
|
|
// 获取当前部门仓库
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); |
|
|
|
|
|
|
|
// 查询当前用户管理的仓库
|
|
|
|
List<RoleAndDepository> depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); |
|
|
|
|
|
|
|
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<GroupInfo> groupByGid = groupService.findGroupByCondition(map); |
|
|
|
|
|
|
|
@ -358,7 +394,7 @@ public class GroupController { |
|
|
|
|
|
|
|
// 获取详细信息
|
|
|
|
// 获取该物料的库存
|
|
|
|
List<Integer> inventoryByMidAndDepository = materialService.findInventoryByMidAndDepository(groupInfo, depositoryByAdminorg); |
|
|
|
List<Integer> inventoryByMidAndDepository = materialService.findInventoryByMidAndDepository(groupInfo, depositoryIdList); |
|
|
|
// 用于标志当前物料库存是否符合要求
|
|
|
|
boolean flagForQuantity = false; |
|
|
|
for (Integer quantity : inventoryByMidAndDepository) { |
|
|
|
@ -628,38 +664,29 @@ public class GroupController { |
|
|
|
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); |
|
|
|
// 获取当前部门所拥有的仓库
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); |
|
|
|
// 查询当前用户管理的仓库
|
|
|
|
List<RoleAndDepository> depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); |
|
|
|
|
|
|
|
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
|
|
|
|
Integer gid = ObjectFormatUtil.toInteger(map.get("gid")); |
|
|
|
// 获取组合数量
|
|
|
|
Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity")); |
|
|
|
List<GroupInfo> groupInfoByGid = groupService.findGroupInfoByGid(gid); |
|
|
|
// 用于标志该数量是否合法
|
|
|
|
boolean flag = true; |
|
|
|
// 用于存储不符合数量的物料名称
|
|
|
|
String mname = ""; |
|
|
|
for (GroupInfo groupInfo : groupInfoByGid) { |
|
|
|
// 获取具体信息
|
|
|
|
|
|
|
|
// 获取本次要出库的实际的数量
|
|
|
|
Integer totalQuantity = groupInfo.getQuantity() * quantity; |
|
|
|
// 用于标志是否可以满足库存要求
|
|
|
|
boolean flagForInventory = false; |
|
|
|
|
|
|
|
// 获取该物料在各仓库的库存
|
|
|
|
List<Integer> inventoryByMidAndDepository = materialService.findInventoryByMidAndDepository(groupInfo, depositoryByAdminorg); |
|
|
|
for (Integer integer : inventoryByMidAndDepository) { |
|
|
|
if (integer >= totalQuantity) { |
|
|
|
flagForInventory = true; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
Map<String, String> trueForGroup = isTrueForGroup(gid, quantity, depositoryIdList); |
|
|
|
Boolean flag = Boolean.valueOf(trueForGroup.get("flag")); |
|
|
|
|
|
|
|
if (!flagForInventory) { |
|
|
|
// 如果概述了不合法
|
|
|
|
flag = false; |
|
|
|
} |
|
|
|
mname = groupInfo.getMname(); |
|
|
|
} |
|
|
|
String mname = trueForGroup.get("mname"); |
|
|
|
return new RestResponse(flag,200,new StatusInfo(mname,mname)); |
|
|
|
} else { |
|
|
|
throw new MyException("缺少必要参数"); |
|
|
|
@ -693,6 +720,24 @@ public class GroupController { |
|
|
|
departMentHeadQyWxName.append("PangFuZhen").append(","); |
|
|
|
map.put("departmenthead", departmentHeadId.toString()); |
|
|
|
|
|
|
|
// 获取当前部门所拥有的仓库
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); |
|
|
|
// 查询当前用户管理的仓库
|
|
|
|
List<RoleAndDepository> depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); |
|
|
|
|
|
|
|
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()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 执行结果
|
|
|
|
Integer integer = 0; |
|
|
|
// 实际结果
|
|
|
|
@ -702,6 +747,12 @@ public class GroupController { |
|
|
|
String type = (String) map.get("type"); |
|
|
|
if ("one".equals(type)) { |
|
|
|
Integer gid = ObjectFormatUtil.toInteger(map.get("id")); |
|
|
|
Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity")); |
|
|
|
Map<String, String> trueForGroup = isTrueForGroup(gid, quantity, depositoryIdList); |
|
|
|
boolean flag = Boolean.parseBoolean(trueForGroup.get("flag")); |
|
|
|
if(!flag){ |
|
|
|
return new RestResponse("", 666, new StatusInfo("仓库中"+trueForGroup.get("mname")+"库存不足","仓库中"+trueForGroup.get("mname")+"库存不足" )); |
|
|
|
} |
|
|
|
map.put("gid", gid); |
|
|
|
List<GroupInfo> groupInfoByGid = groupService.findGroupInfoByGid(gid); |
|
|
|
if (groupInfoByGid != null) { |
|
|
|
@ -713,10 +764,17 @@ public class GroupController { |
|
|
|
List<String> params = new ArrayList<>(); |
|
|
|
// 获取当前提交数
|
|
|
|
List<Integer> gids = (List<Integer>) map.get("gids"); |
|
|
|
List<String> quantitys = (List<String>) map.get("quantitys"); |
|
|
|
List<Integer> quantitys = (List<Integer>) map.get("quantitys"); |
|
|
|
for (int i = 0; i < gids.size(); i++) { |
|
|
|
|
|
|
|
Integer temp = gids.get(i); |
|
|
|
String quantity = quantitys.get(i); |
|
|
|
Integer quantity = quantitys.get(i); |
|
|
|
|
|
|
|
Map<String, String> trueForGroup = isTrueForGroup(temp, quantity, depositoryIdList); |
|
|
|
boolean flag = Boolean.parseBoolean(trueForGroup.get("flag")); |
|
|
|
if(!flag){ |
|
|
|
return new RestResponse("", 666, new StatusInfo("仓库中"+trueForGroup.get("mname")+"库存不足","仓库中"+trueForGroup.get("mname")+"库存不足" )); |
|
|
|
} |
|
|
|
List<GroupInfo> groupInfoByGid = groupService.findGroupInfoByGid(temp); |
|
|
|
if (groupInfoByGid != null) { |
|
|
|
result += groupInfoByGid.size(); |
|
|
|
@ -756,4 +814,39 @@ public class GroupController { |
|
|
|
return CrudUtil.postHandle(integer, result); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String,String> isTrueForGroup(Integer gid,Integer quantity,List<Integer> depositoryIdList){ |
|
|
|
List<GroupInfo> groupInfoByGid = groupService.findGroupInfoByGid(gid); |
|
|
|
Boolean flag = true; |
|
|
|
String mname = ""; |
|
|
|
for (GroupInfo groupInfo : groupInfoByGid) { |
|
|
|
// 获取具体信息
|
|
|
|
|
|
|
|
// 获取本次要出库的实际的数量
|
|
|
|
Integer totalQuantity = groupInfo.getQuantity() * quantity; |
|
|
|
// 用于标志是否可以满足库存要求
|
|
|
|
boolean flagForInventory = false; |
|
|
|
|
|
|
|
// 获取该物料在各仓库的库存
|
|
|
|
List<Integer> inventoryByMidAndDepository = materialService.findInventoryByMidAndDepository(groupInfo, depositoryIdList); |
|
|
|
for (Integer integer : inventoryByMidAndDepository) { |
|
|
|
if (integer >= totalQuantity) { |
|
|
|
flagForInventory = true; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (!flagForInventory) { |
|
|
|
// 如果概述了不合法
|
|
|
|
flag = false; |
|
|
|
} |
|
|
|
mname = groupInfo.getMname(); |
|
|
|
} |
|
|
|
Map<String,String> result = new HashMap<>(); |
|
|
|
result.put("flag",flag.toString()); |
|
|
|
result.put("mname",mname); |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|