Browse Source

修改库存转移时所处库位显示不全问题

lwx_dev
erdanergou 3 years ago
parent
commit
2a5db7e823
  1. 17
      src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java
  2. 35
      src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java
  3. 20
      src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java

17
src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java

@ -396,6 +396,9 @@ public class MaterialController {
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); UserByPort userToken = (UserByPort) request.getAttribute("userToken");
// 获取当前部门仓库 // 获取当前部门仓库
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString());
// 查询当前用户管理的仓库
List<RoleAndDepository> depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId());
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
String code = map.get("code").toString(); String code = map.get("code").toString();
String type = map.get("type").toString(); String type = map.get("type").toString();
@ -414,6 +417,17 @@ public class MaterialController {
break; break;
} }
} }
if(inventoryPByCondition.size() <= 0) {
for (RoleAndDepository depository : depositoryAndRole
) {
param.put("depositoryId", depository.getDepositoryId());
// 查找当前用户部门仓库中是否存在该物料
inventoryPByCondition = materialService.findInventory(param);
if (inventoryPByCondition.size() > 0) {
break;
}
}
}
MaterialP mp = null; MaterialP mp = null;
InventoryP ip = null; InventoryP ip = null;
Map<String, Object> paramByPrice = new HashMap<>(); Map<String, Object> paramByPrice = new HashMap<>();
@ -435,7 +449,8 @@ public class MaterialController {
List<SplitInfo> splitInfoByMid = splitUnitService.findSplitInfoByMid(ip.getMid()); List<SplitInfo> splitInfoByMid = splitUnitService.findSplitInfoByMid(ip.getMid());
ip.setSplitInfoList(splitInfoByMid); ip.setSplitInfoList(splitInfoByMid);
return new RestResponse(ip, 1, 200); return new RestResponse(ip, 1, 200);
} else if ("in".equals(type)) { }
else if ("in".equals(type)) {
param.put("code", code); param.put("code", code);
materialPByCondition = materialService.findMaterialPByCondition(param); materialPByCondition = materialService.findMaterialPByCondition(param);
if (materialPByCondition.size() > 0) { if (materialPByCondition.size() > 0) {

35
src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java

@ -208,17 +208,42 @@ public class PlaceController {
@PostMapping("/findPlaceByMid") @PostMapping("/findPlaceByMid")
public RestResponse findPlaceByMid(@RequestBody Map<String,Object> map, HttpServletRequest request){ public RestResponse findPlaceByMid(@RequestBody Map<String,Object> map, HttpServletRequest request){
UserByPort userToken= (UserByPort) request.getAttribute("userToken"); UserByPort userToken= (UserByPort) request.getAttribute("userToken");
// 查询当前用户部门所拥有的仓库
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString());
// 查询当前用户管理的仓库
List<RoleAndDepository> depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId());
Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); Integer mid = ObjectFormatUtil.toInteger(map.get("mid"));
Inventory inventoryById = materialService.findInventoryById(mid);
List<PlaceP> placeList = new ArrayList<>(); List<PlaceP> placeList = new ArrayList<>();
Map<String, Object> param = new HashMap<>();
param.put("mcode", inventoryById.getCode());
List<Integer> depositoryIdList = new ArrayList<>();
for (Depository depository : depositoryByAdminorg) { for (Depository depository : depositoryByAdminorg) {
List<PlaceP> placeByMidAndDid = placeService.findPlaceByMidAndDid(mid, depository.getId()); depositoryIdList.add(depository.getId());
for (PlaceP placeP : placeByMidAndDid) { }
int index = placeList.indexOf(placeP); for (RoleAndDepository depository : depositoryAndRole) {
if (index == -1) { if(!depositoryIdList.contains(depository.getDepositoryId())){
placeList.add(placeP); depositoryIdList.add(depository.getDepositoryId());
}
}
List<InventoryP> inventoryPList = new ArrayList<>();
for (Integer depositoryId:depositoryIdList
) {
param.put("depositoryId", depositoryId);
// 查找当前用户部门仓库中是否存在该物料
inventoryPList.addAll(materialService.findInventory(param));
}
for (Integer depositoryId:depositoryIdList){
for (InventoryP inventory : inventoryPList) {
List<PlaceP> placeByMidAndDid = placeService.findPlaceByMidAndDid(inventory.getId(), depositoryId);
for (PlaceP placeP : placeByMidAndDid) {
int index = placeList.indexOf(placeP);
if (index == -1) {
placeList.add(placeP);
}
} }
} }
} }
return new RestResponse(placeList); return new RestResponse(placeList);
} }

20
src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java

@ -1,9 +1,7 @@
package com.dreamchaser.depository_manage.service.impl; package com.dreamchaser.depository_manage.service.impl;
import com.dreamchaser.depository_manage.entity.Depository; import com.dreamchaser.depository_manage.entity.*;
import com.dreamchaser.depository_manage.entity.MaterialAndPlace; import com.dreamchaser.depository_manage.mapper.MaterialMapper;
import com.dreamchaser.depository_manage.entity.PidOrDidAndCode;
import com.dreamchaser.depository_manage.entity.Place;
import com.dreamchaser.depository_manage.mapper.PlaceMapper; import com.dreamchaser.depository_manage.mapper.PlaceMapper;
import com.dreamchaser.depository_manage.mapper.QrCodeMapper; import com.dreamchaser.depository_manage.mapper.QrCodeMapper;
import com.dreamchaser.depository_manage.pojo.MaterialAndPlaceForView; import com.dreamchaser.depository_manage.pojo.MaterialAndPlaceForView;
@ -31,6 +29,9 @@ public class PlaceServiceImpl implements PlaceService {
@Autowired @Autowired
QrCodeMapper qrCodeMapper; QrCodeMapper qrCodeMapper;
@Autowired
MaterialMapper materialMapper;
/** /**
* 查找所有库位 * 查找所有库位
* @return * @return
@ -200,17 +201,18 @@ public class PlaceServiceImpl implements PlaceService {
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();
map.put("mid",mid); map.put("mid",mid);
map.put("did",depositoryId); map.put("did",depositoryId);
Inventory inventoryById = materialMapper.findInventoryById(mid);
List<Place> placeByCondition = placeMapper.findPlaceByMidAndDid(map); List<Place> placeByCondition = placeMapper.findPlaceByMidAndDid(map);
List<PlaceP> placePList = new ArrayList<>(); List<PlaceP> placePList = new ArrayList<>();
for (int i = 0; i < placeByCondition.size(); i++) { for (Place place : placeByCondition) {
Place place = placeByCondition.get(i);
PlaceP pp = new PlaceP(place); PlaceP pp = new PlaceP(place);
Integer did = place.getDid(); Integer did = place.getDid();
if(did != 0){ if (did != 0) {
Depository depositoryRecordById = depositoryService.findDepositoryById(did); Depository depositoryRecordById = depositoryService.findDepositoryById(did);
pp.setDepositoryName(depositoryRecordById.getDname()); pp.setDepositoryName(depositoryRecordById.getDname());
}else{ } else {
pp.setDepositoryName("默认库位"); Depository depositoryById = depositoryService.findDepositoryById(inventoryById.getDepositoryId());
pp.setDepositoryName(depositoryById.getDname());
} }
placePList.add(pp); placePList.add(pp);
} }

Loading…
Cancel
Save