|
|
|
@ -41,109 +41,155 @@ public class MaterialController { |
|
|
|
PlaceService placeService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private RedisTemplate<Object,Object> redisTemplate; |
|
|
|
private RedisTemplate<Object, Object> redisTemplate; |
|
|
|
|
|
|
|
/** |
|
|
|
* 根据物料进行查询 |
|
|
|
* |
|
|
|
* @param map |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@GetMapping("/material") |
|
|
|
public RestResponse findMaterial(@RequestParam Map<String,Object> map){ |
|
|
|
public RestResponse findMaterial(@RequestParam Map<String, Object> map) { |
|
|
|
List<MaterialP> materialPByCondition = materialService.findMaterialPByCondition(map); |
|
|
|
return new RestResponse(materialPByCondition,materialService.findCountByCondition(map),200); |
|
|
|
return new RestResponse(materialPByCondition, materialService.findCountByCondition(map), 200); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询库存 |
|
|
|
* |
|
|
|
* @param map |
|
|
|
* @param request |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@GetMapping("/findInventory") |
|
|
|
public RestResponse findInventory(@RequestParam Map<String,Object> map,HttpServletRequest request){ |
|
|
|
UserByPort userToken= (UserByPort) request.getAttribute("userToken"); |
|
|
|
public RestResponse findInventory(@RequestParam Map<String, Object> map, HttpServletRequest request) { |
|
|
|
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); |
|
|
|
// 查询当前用户管理的仓库
|
|
|
|
List<RoleAndDepository> depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); |
|
|
|
// 查询当前用户部门拥有的仓库
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); |
|
|
|
// 定义仓库编号列表
|
|
|
|
List<Integer> didList = new ArrayList<>(); |
|
|
|
|
|
|
|
List<MaterialP> list = new ArrayList<>(); |
|
|
|
Integer total = 0; |
|
|
|
Integer size = 10,page = 1; // 定义每页展示数量
|
|
|
|
if(!(map.containsKey("depositoryId")||map.containsKey("code")||map.containsKey("mname"))){ |
|
|
|
for (int i = 0; i < depositoryByAdminorg.size(); i++) { |
|
|
|
map.put("depositoryId",depositoryByAdminorg.get(i).getId()); |
|
|
|
Integer did = depositoryByAdminorg.get(i).getId(); |
|
|
|
didList.add(did); |
|
|
|
map.put("depositoryId", did); |
|
|
|
List<MaterialP> inventory = materialService.findInventory(map); |
|
|
|
list.addAll(inventory); |
|
|
|
total += materialService.findInventoryCount(map); |
|
|
|
} |
|
|
|
|
|
|
|
if (map.containsKey("size")) { |
|
|
|
size = ObjectFormatUtil.toInteger(map.get("size")); |
|
|
|
} |
|
|
|
for (RoleAndDepository roleAndDepository : depositoryAndRole) { |
|
|
|
List<MaterialP> materialByDepository = materialService.findMaterialByDepository(roleAndDepository.getDepositoryId()); |
|
|
|
Integer depositoryId = roleAndDepository.getDepositoryId(); |
|
|
|
if(didList.contains(depositoryId)){ |
|
|
|
// 如果当前仓库编号存在
|
|
|
|
continue; // 跳过本次循环
|
|
|
|
} |
|
|
|
map.put("depositoryId", depositoryId); |
|
|
|
if(list.size() < size){ |
|
|
|
// 如果当前数目不足
|
|
|
|
if (map.containsKey("page")){ |
|
|
|
// 当前页
|
|
|
|
page=ObjectFormatUtil.toInteger(map.get("page")); |
|
|
|
} |
|
|
|
// 计算所有页数
|
|
|
|
Double pageAll = Math.ceil(total / size); |
|
|
|
// 判断当前是在全新一页还是包含上述内容
|
|
|
|
if(size - list.size() != size){ |
|
|
|
// 如果当前不是崭新一页
|
|
|
|
map.put("begin",0); |
|
|
|
}else{ |
|
|
|
map.put("begin",(page-1)*size-total); |
|
|
|
} |
|
|
|
map.put("size",size - list.size()); |
|
|
|
List<MaterialP> materialByDepository = materialService.findMaterialByDepository(map); |
|
|
|
list.addAll(materialByDepository); |
|
|
|
total += list.size(); |
|
|
|
} |
|
|
|
return new RestResponse(list,total,200); |
|
|
|
total += materialService.findMaterialByDepositoryCount(map); |
|
|
|
} |
|
|
|
} |
|
|
|
else{ |
|
|
|
List<MaterialP> inventory = materialService.findInventory(map); |
|
|
|
list.addAll(inventory); |
|
|
|
total += materialService.findInventoryCount(map); |
|
|
|
} |
|
|
|
return new RestResponse(list, total, 200); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 添加一条物料记录 |
|
|
|
* |
|
|
|
* @param map |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@PostMapping("/material_add") |
|
|
|
public RestResponse materialAdd(@RequestBody Map<String,Object> map){ |
|
|
|
public RestResponse materialAdd(@RequestBody Map<String, Object> map) { |
|
|
|
return CrudUtil.postHandle(materialService.insertMaterial(map), 1); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 执行删除操作,将状态改为删除 |
|
|
|
* |
|
|
|
* @param map |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@PostMapping("/material_del") |
|
|
|
public RestResponse deletematerial(@RequestBody Map<String,Object> map){ |
|
|
|
if (map.containsKey("id")){ |
|
|
|
Integer id= ObjectFormatUtil.toInteger(map.get("id")); |
|
|
|
return CrudUtil.deleteHandle(materialService.changeStateToDeletedById(id),1); |
|
|
|
}else if (map.containsKey("ids")){ |
|
|
|
List<Integer> ids=(List<Integer>) map.get("ids"); |
|
|
|
return CrudUtil.deleteHandle(materialService.changeStateToDeletedByIds(ids),ids.size()); |
|
|
|
}else { |
|
|
|
public RestResponse deletematerial(@RequestBody Map<String, Object> map) { |
|
|
|
if (map.containsKey("id")) { |
|
|
|
Integer id = ObjectFormatUtil.toInteger(map.get("id")); |
|
|
|
return CrudUtil.deleteHandle(materialService.changeStateToDeletedById(id), 1); |
|
|
|
} else if (map.containsKey("ids")) { |
|
|
|
List<Integer> ids = (List<Integer>) map.get("ids"); |
|
|
|
return CrudUtil.deleteHandle(materialService.changeStateToDeletedByIds(ids), ids.size()); |
|
|
|
} else { |
|
|
|
throw new MyException("所需请求参数缺失!"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 修改物料信息 |
|
|
|
* |
|
|
|
* @param map |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@PostMapping("/material_edit") |
|
|
|
public RestResponse updateDepository(@RequestBody Map<String,Object> map){ |
|
|
|
if(map.containsKey("state")){ |
|
|
|
map.put("state",1); |
|
|
|
}else{ |
|
|
|
map.put("state",2); |
|
|
|
public RestResponse updateDepository(@RequestBody Map<String, Object> map) { |
|
|
|
if (map.containsKey("state")) { |
|
|
|
map.put("state", 1); |
|
|
|
} else { |
|
|
|
map.put("state", 2); |
|
|
|
} |
|
|
|
return CrudUtil.postHandle(materialService.updateMaterial(map),1); |
|
|
|
return CrudUtil.postHandle(materialService.updateMaterial(map), 1); |
|
|
|
} |
|
|
|
|
|
|
|
@PostMapping("realDeleteMaterial") |
|
|
|
public RestResponse RealDeleteMaterial(@RequestBody Map<String,Object> map){ |
|
|
|
if(map.containsKey("id")){ |
|
|
|
public RestResponse RealDeleteMaterial(@RequestBody Map<String, Object> map) { |
|
|
|
if (map.containsKey("id")) { |
|
|
|
Integer id = (Integer) map.get("id"); |
|
|
|
return CrudUtil.deleteHandle(materialService.deleteMaterialById(id),1); |
|
|
|
}else{ |
|
|
|
return CrudUtil.deleteHandle(materialService.deleteMaterialById(id), 1); |
|
|
|
} else { |
|
|
|
throw new MyException("所需请求参数缺失!"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@PostMapping("/treeMenus") |
|
|
|
public RestResponse InitTreeMenus(@RequestBody Map<String, Object> map, HttpServletRequest request){ |
|
|
|
public RestResponse InitTreeMenus(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
String mname = (String) map.get("mname"); |
|
|
|
String type = (String) map.get("type"); |
|
|
|
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); |
|
|
|
Integer maindeparment = userToken.getMaindeparment(); |
|
|
|
List<Object> list = new ArrayList<>(); |
|
|
|
if("1".equals(type)){ |
|
|
|
if ("1".equals(type)) { |
|
|
|
list = materialService.InitTreeMenus(mname); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
list = materialService.InitTreeMenus(mname, String.valueOf(maindeparment)); |
|
|
|
} |
|
|
|
|
|
|
|
@ -153,14 +199,15 @@ public class MaterialController { |
|
|
|
|
|
|
|
/** |
|
|
|
* 根据id获取物料 |
|
|
|
* |
|
|
|
* @param mid |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@GetMapping("/findMatrialById") |
|
|
|
public RestResponse findMatrialById(@RequestParam(value = "mid",required = false) String mid,HttpServletRequest request){ |
|
|
|
UserByPort userToken= (UserByPort) request.getAttribute("userToken"); |
|
|
|
if("".equals(mid)){ |
|
|
|
return new RestResponse("",0,200); |
|
|
|
public RestResponse findMatrialById(@RequestParam(value = "mid", required = false) String mid, HttpServletRequest request) { |
|
|
|
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); |
|
|
|
if ("".equals(mid)) { |
|
|
|
return new RestResponse("", 0, 200); |
|
|
|
} |
|
|
|
Material materialById = materialService.findMaterialById(ObjectFormatUtil.toInteger(mid)); |
|
|
|
List<PlaceP> placePList = new ArrayList<>(); |
|
|
|
@ -169,32 +216,33 @@ public class MaterialController { |
|
|
|
List<PlaceP> placeByMidAndDid = placeService.findPlaceByMidAndDid(ObjectFormatUtil.toInteger(mid), depositoryByAdminorg.get(i).getId()); |
|
|
|
placePList.addAll(placeByMidAndDid); |
|
|
|
} |
|
|
|
Map<String,Object> map = new HashMap<>(); |
|
|
|
map.put("materialById",materialById); |
|
|
|
map.put("placeList",placePList); |
|
|
|
return new RestResponse(map,1,200); |
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
map.put("materialById", materialById); |
|
|
|
map.put("placeList", placePList); |
|
|
|
return new RestResponse(map, 1, 200); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 根据物料编码获取物料 |
|
|
|
* |
|
|
|
* @param map |
|
|
|
* @param request |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@GetMapping("/findMatrialByCode") |
|
|
|
public RestResponse findMatrialByCode(@RequestParam Map<String,Object> map,HttpServletRequest request){ |
|
|
|
UserByPort userToken= (UserByPort) request.getAttribute("userToken"); |
|
|
|
public RestResponse findMatrialByCode(@RequestParam Map<String, Object> map, HttpServletRequest request) { |
|
|
|
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); |
|
|
|
// 获取当前部门仓库
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); |
|
|
|
Map<String,Object> param = new HashMap<>(); |
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
String code = map.get("code").toString(); |
|
|
|
String type = map.get("type").toString(); |
|
|
|
if("".equals(code)){ |
|
|
|
return new RestResponse(null,1,200); |
|
|
|
if ("".equals(code)) { |
|
|
|
return new RestResponse(null, 1, 200); |
|
|
|
} |
|
|
|
param.put("code",code); |
|
|
|
param.put("code", code); |
|
|
|
List<MaterialP> materialPByCondition = new ArrayList<>(); |
|
|
|
if("out".equals(type)) { |
|
|
|
if ("out".equals(type)) { |
|
|
|
// 如果是出库
|
|
|
|
for (int i = 0; i < depositoryByAdminorg.size(); i++) { |
|
|
|
param.put("depositoryId", depositoryByAdminorg.get(i).getId()); |
|
|
|
@ -204,20 +252,20 @@ public class MaterialController { |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
}else{ // 如果是入库
|
|
|
|
} else { // 如果是入库
|
|
|
|
materialPByCondition = materialService.findMaterialPByCondition(param); |
|
|
|
} |
|
|
|
MaterialP mp = null; |
|
|
|
if(materialPByCondition.size() > 0){ |
|
|
|
if (materialPByCondition.size() > 0) { |
|
|
|
mp = materialPByCondition.get(0); |
|
|
|
} |
|
|
|
return new RestResponse(mp,1,200); |
|
|
|
return new RestResponse(mp, 1, 200); |
|
|
|
} |
|
|
|
|
|
|
|
@PostMapping("/findMaterialByCondition") |
|
|
|
public RestResponse findMaterialByCondition(@RequestBody Map<String, Object> map){ |
|
|
|
public RestResponse findMaterialByCondition(@RequestBody Map<String, Object> map) { |
|
|
|
List<MaterialP> materialPByCondition = materialService.findMaterialPByCondition(map); |
|
|
|
return new RestResponse(materialPByCondition,materialService.findCountByCondition(map),200); |
|
|
|
return new RestResponse(materialPByCondition, materialService.findCountByCondition(map), 200); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -226,82 +274,92 @@ public class MaterialController { |
|
|
|
public RestResponse createQrCode(@RequestParam("mid") Integer mid) { |
|
|
|
Material materialById = materialService.findMaterialById(mid); |
|
|
|
// 二维码保存信息
|
|
|
|
Map<String,Object> code = new HashMap<>(); |
|
|
|
code.put("mname",materialById.getMname()); |
|
|
|
code.put("mcode",materialById.getCode()); |
|
|
|
code.put("verison",materialById.getVersion()); |
|
|
|
code.put("quantity",materialById.getQuantity()); |
|
|
|
Map<String, Object> code = new HashMap<>(); |
|
|
|
code.put("mname", materialById.getMname()); |
|
|
|
code.put("mcode", materialById.getCode()); |
|
|
|
code.put("verison", materialById.getVersion()); |
|
|
|
code.put("quantity", materialById.getQuantity()); |
|
|
|
try { |
|
|
|
return RestResponse.CreateQrCode(code); |
|
|
|
} catch (IOException e) { |
|
|
|
return new RestResponse("err: "+e.getMessage(),678,new StatusInfo("失败","请联系开发人员")); |
|
|
|
return new RestResponse("err: " + e.getMessage(), 678, new StatusInfo("失败", "请联系开发人员")); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 将数据暂存到redis中
|
|
|
|
// 将扫描结果数据暂存到redis中
|
|
|
|
@PostMapping("/temporaryValue") |
|
|
|
public RestResponse temporaryValue(@RequestBody Map<String,Object> map,HttpServletRequest request){ |
|
|
|
public RestResponse temporaryValue(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); |
|
|
|
ArrayList arrayList = (ArrayList) map.get("materialList"); |
|
|
|
ArrayList materailList = new ArrayList(); |
|
|
|
for (int i = 0; i < arrayList.size(); i++) { |
|
|
|
if(materailList.indexOf(arrayList.get(i)) == -1){ |
|
|
|
if (materailList.indexOf(arrayList.get(i)) == -1) { |
|
|
|
materailList.add(arrayList.get(i)); |
|
|
|
} |
|
|
|
} |
|
|
|
map.put("materialList",materailList); |
|
|
|
redisTemplate.opsForValue().set("scanQrCodeValue"+userByPort.getNumber(),JSONObject.toJSONString(map)); |
|
|
|
map.put("materialList", materailList); |
|
|
|
redisTemplate.opsForValue().set("scanQrCodeValue" + userByPort.getNumber(), JSONObject.toJSONString(map)); |
|
|
|
return new RestResponse(); |
|
|
|
} |
|
|
|
|
|
|
|
// 将入库物料数据暂存到redis中
|
|
|
|
@PostMapping("/temporaryValueForMaterial") |
|
|
|
public RestResponse temporaryValueForMaterial(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); |
|
|
|
// 存入mids
|
|
|
|
redisTemplate.opsForValue().set("temporaryValueForMaterial" + userByPort.getNumber(), JSONObject.toJSONString(map)); |
|
|
|
return new RestResponse(200); |
|
|
|
} |
|
|
|
|
|
|
|
// 判断当前扫描的物料是否存在
|
|
|
|
@GetMapping("/IsMaterialExist") |
|
|
|
public RestResponse IsMaterialExist(HttpServletRequest request){ |
|
|
|
public RestResponse IsMaterialExist(HttpServletRequest request) { |
|
|
|
UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); |
|
|
|
String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue"+userByPort.getNumber()).toString(); |
|
|
|
redisTemplate.delete("scanQrCodeValue"+userByPort.getNumber()); |
|
|
|
String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue" + userByPort.getNumber()).toString(); |
|
|
|
redisTemplate.delete("scanQrCodeValue" + userByPort.getNumber()); |
|
|
|
JSONObject jsonObject = JSONObject.parseObject(scanQrCodeValue); |
|
|
|
JSONObject depository = (JSONObject) jsonObject.get("depository"); // 扫描的仓库
|
|
|
|
JSONObject place = (JSONObject) jsonObject.get("place"); // 扫描的库位
|
|
|
|
JSONArray materialList = (JSONArray) jsonObject.get("materialList"); // 扫描的物料集合
|
|
|
|
ArrayList<Object> newMaterialList = new ArrayList(); |
|
|
|
Map<String,Object> map = new HashMap<>(); |
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
|
|
|
|
for (int i = 0; i < materialList.size(); i++) { |
|
|
|
JSONObject obj = (JSONObject) materialList.get(i);; |
|
|
|
map.put("code",obj.get("code")); |
|
|
|
if(depository != null){ |
|
|
|
map.put("depositoryId",depository.get("did")); |
|
|
|
JSONObject obj = (JSONObject) materialList.get(i); |
|
|
|
; |
|
|
|
map.put("code", obj.get("code")); |
|
|
|
if (depository != null) { |
|
|
|
map.put("depositoryId", depository.get("did")); |
|
|
|
} |
|
|
|
if(place != null){ |
|
|
|
map.put("depositoryId",place.get("depositoryId")); |
|
|
|
if (place != null) { |
|
|
|
map.put("depositoryId", place.get("depositoryId")); |
|
|
|
} |
|
|
|
List<MaterialP> inventory = materialService.findInventory(map); |
|
|
|
if(inventory.size() > 0){ |
|
|
|
if (inventory.size() > 0) { |
|
|
|
MaterialP materialP = inventory.get(0); |
|
|
|
Map<String,Object> params = new HashMap<>(); |
|
|
|
Map<String, Object> params = new HashMap<>(); |
|
|
|
// 有该物料
|
|
|
|
// 重新缓存到redis中
|
|
|
|
params.put("mid",materialP.getId()); |
|
|
|
params.put("mname",materialP.getMname()); |
|
|
|
params.put("code",materialP.getCode()); |
|
|
|
params.put("version",materialP.getVersion()); |
|
|
|
params.put("mid", materialP.getId()); |
|
|
|
params.put("mname", materialP.getMname()); |
|
|
|
params.put("code", materialP.getCode()); |
|
|
|
params.put("version", materialP.getVersion()); |
|
|
|
newMaterialList.add(params); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
// 没有该物料
|
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
map.put("depository",depository); |
|
|
|
map.put("place",place); |
|
|
|
map.put("materialList",newMaterialList); |
|
|
|
redisTemplate.opsForValue().set("scanQrCodeValue"+userByPort.getNumber(),JSONObject.toJSONString(map)); |
|
|
|
map.put("depository", depository); |
|
|
|
map.put("place", place); |
|
|
|
map.put("materialList", newMaterialList); |
|
|
|
redisTemplate.opsForValue().set("scanQrCodeValue" + userByPort.getNumber(), JSONObject.toJSONString(map)); |
|
|
|
return new RestResponse(); |
|
|
|
} |
|
|
|
|
|
|
|
//用于判断当前出库数量是否合适
|
|
|
|
@PostMapping("/MaterialQuantityIsTrue") |
|
|
|
public RestResponse MaterialQuantityIsTrue(@RequestBody Map<String,Object> map,HttpServletRequest request){ |
|
|
|
public RestResponse MaterialQuantityIsTrue(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); |
|
|
|
// 当前出库数量
|
|
|
|
Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity")); |
|
|
|
@ -311,12 +369,12 @@ public class MaterialController { |
|
|
|
// 获取当前用户所在部门关闭的仓库及公共仓库
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userByPort.getMaindeparment().toString()); |
|
|
|
for (int i = 0; i < depositoryByAdminorg.size(); i++) { |
|
|
|
map.put("depositoryId",depositoryByAdminorg.get(i).getId()); |
|
|
|
map.put("depositoryId", depositoryByAdminorg.get(i).getId()); |
|
|
|
List<MaterialP> inventory = materialService.findInventory(map); |
|
|
|
if(inventory.size() > 0){ // 如果有库存
|
|
|
|
if (inventory.size() > 0) { // 如果有库存
|
|
|
|
for (int j = 0; j < inventory.size(); j++) { |
|
|
|
MaterialP materialP = inventory.get(j); |
|
|
|
if(quantity <= materialP.getQuantity()){ // 如果当前数量合适则跳出循环
|
|
|
|
if (quantity <= materialP.getQuantity()) { // 如果当前数量合适则跳出循环
|
|
|
|
flag = true; |
|
|
|
break; |
|
|
|
} |
|
|
|
|