|
|
|
@ -1,5 +1,6 @@ |
|
|
|
package com.dreamchaser.depository_manage.controller; |
|
|
|
|
|
|
|
import cn.hutool.core.lang.Snowflake; |
|
|
|
import com.alibaba.fastjson.JSONArray; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.dreamchaser.depository_manage.config.JM_3DES; |
|
|
|
@ -349,20 +350,32 @@ public class MaterialController { |
|
|
|
|
|
|
|
|
|
|
|
// 构造物料二维码
|
|
|
|
@GetMapping("/createQrCode") |
|
|
|
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()); |
|
|
|
@PostMapping("/createQrCode") |
|
|
|
public RestResponse createQrCode(@RequestBody Map<String, Object> map) { |
|
|
|
// 通过雪花算法计算随机数
|
|
|
|
Snowflake snowflake = new Snowflake(10, 10, true); |
|
|
|
String qrCode = snowflake.nextIdStr(); |
|
|
|
|
|
|
|
Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); |
|
|
|
Material material = materialService.findMaterialById(mid); |
|
|
|
|
|
|
|
String qrCodeByMcode = materialService.findQrCodeByMcode(material.getCode()); |
|
|
|
|
|
|
|
if (qrCodeByMcode == null) { |
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
param.put("mcode", material.getCode()); |
|
|
|
param.put("qrCode", qrCode); |
|
|
|
materialService.addQrCodeByMaterial(param); |
|
|
|
} else { |
|
|
|
qrCode = qrCodeByMcode; |
|
|
|
} |
|
|
|
try { |
|
|
|
return RestResponse.CreateQrCode(code); |
|
|
|
// 二维码保存信息
|
|
|
|
return RestResponse.CreateQrCode(qrCode); |
|
|
|
} catch (IOException e) { |
|
|
|
return new RestResponse("err: " + e.getMessage(), 678, new StatusInfo("失败", "请联系开发人员")); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 将扫描结果数据暂存到redis中
|
|
|
|
@ -524,6 +537,88 @@ public class MaterialController { |
|
|
|
return new RestResponse(jsonObject); |
|
|
|
} |
|
|
|
|
|
|
|
// 获取扫描结果并跳转到入库
|
|
|
|
@PostMapping("/qywxApplicationInScanQrCode") |
|
|
|
public RestResponse qywxApplicationInScanQrCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); |
|
|
|
// 获取当前用户所在部门拥有的仓库
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userByPort.getMaindeparment().toString()); |
|
|
|
// 获取当前扫描的二维码
|
|
|
|
String qrCode = (String) map.get("qrCode"); |
|
|
|
// 根据扫描的二维码获取对应的物料编码
|
|
|
|
String mcode = materialService.findMaterialCodeByQrCode(qrCode); |
|
|
|
// 根据物料编码获取物料
|
|
|
|
Material material = materialService.findMaterialByCode(mcode); |
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
List<PlaceP> placePList = new ArrayList<>(); |
|
|
|
param.put("mcode", mcode); |
|
|
|
|
|
|
|
MaterialP mp = new MaterialP(material); |
|
|
|
// 获取物料与条形码的对应关系
|
|
|
|
List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(param); |
|
|
|
for (int j = 0; j < depositoryByAdminorg.size(); j++) { |
|
|
|
Depository depository = depositoryByAdminorg.get(j); |
|
|
|
param.put("code", material.getCode()); |
|
|
|
param.put("depositoryId", depository.getId()); |
|
|
|
// 获取当前仓库下是否有当前物料的库存
|
|
|
|
List<MaterialP> inventory = materialService.findInventory(param); |
|
|
|
if (inventory.size() > 0) { |
|
|
|
mp = inventory.get(0); |
|
|
|
List<PlaceP> place = placeService.findPlaceByMidAndDid(mp.getId(), depository.getId()); |
|
|
|
placePList.addAll(place); |
|
|
|
} |
|
|
|
} |
|
|
|
// 设置当前物料在相关仓库下的所有库位
|
|
|
|
mp.setPlacePList(placePList); |
|
|
|
// 设置物料与条形码的对应关系
|
|
|
|
mp.setMaterialAndBarCodeList(materialByBarCodeByCondition); |
|
|
|
return new RestResponse(mp); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 获取扫描结果并跳转到库存转移
|
|
|
|
@PostMapping("/qywxApplicationTransferScanQrCode") |
|
|
|
public RestResponse qywxApplicationTransferScanQrCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); |
|
|
|
// 获取当前用户所在部门拥有的仓库
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userByPort.getMaindeparment().toString()); |
|
|
|
// 获取当前扫描的二维码
|
|
|
|
String qrCode = (String) map.get("qrCode"); |
|
|
|
// 根据扫描的二维码获取对应的物料编码
|
|
|
|
String mcode = materialService.findMaterialCodeByQrCode(qrCode); |
|
|
|
// 根据物料编码获取物料
|
|
|
|
Material material = materialService.findMaterialByCode(mcode); |
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
List<PlaceP> placePList = new ArrayList<>(); |
|
|
|
param.put("mcode", mcode); |
|
|
|
|
|
|
|
MaterialP mp = null; |
|
|
|
// 获取物料与条形码的对应关系
|
|
|
|
List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(param); |
|
|
|
Boolean flag = false; |
|
|
|
for (int j = 0; j < depositoryByAdminorg.size(); j++) { |
|
|
|
Depository depository = depositoryByAdminorg.get(j); |
|
|
|
param.put("code", material.getCode()); |
|
|
|
param.put("depositoryId", depository.getId()); |
|
|
|
// 获取当前仓库下是否有当前物料的库存
|
|
|
|
List<MaterialP> inventory = materialService.findInventory(param); |
|
|
|
if (inventory.size() > 0) { |
|
|
|
mp = inventory.get(0); |
|
|
|
List<PlaceP> place = placeService.findPlaceByMidAndDid(mp.getId(), depository.getId()); |
|
|
|
placePList.addAll(place); |
|
|
|
flag = true; |
|
|
|
} |
|
|
|
} |
|
|
|
if (flag) { |
|
|
|
// 设置当前物料在相关仓库下的所有库位
|
|
|
|
mp.setPlacePList(placePList); |
|
|
|
// 设置物料与条形码的对应关系
|
|
|
|
mp.setMaterialAndBarCodeList(materialByBarCodeByCondition); |
|
|
|
} |
|
|
|
return new RestResponse(mp); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 获取扫描结果并跳转到盘点
|
|
|
|
@PostMapping("/stockTaking_scanQrCode") |
|
|
|
@ -582,6 +677,60 @@ public class MaterialController { |
|
|
|
return new RestResponse(jsonObject); |
|
|
|
} |
|
|
|
|
|
|
|
// 获取扫描结果并跳转到盘点
|
|
|
|
@PostMapping("/qywxStockTakingScanQrCode") |
|
|
|
public RestResponse qywxStockTakingScanQrCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
// 获取扫描的物料
|
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
String placeId = (String) map.get("placeId"); |
|
|
|
|
|
|
|
// 获取当前扫描的二维码
|
|
|
|
String qrCode = (String) map.get("qrCode"); |
|
|
|
// 根据扫描的二维码获取对应的物料编码
|
|
|
|
String mcode = materialService.findMaterialCodeByQrCode(qrCode); |
|
|
|
// 根据物料编码获取物料
|
|
|
|
Material material = materialService.findMaterialByCode(mcode); |
|
|
|
// 用于标识是否成功获取
|
|
|
|
boolean flag = true; |
|
|
|
param.put("mcode", material.getCode()); |
|
|
|
MaterialP mp = new MaterialP(material); |
|
|
|
// 获取物料与条形码的对应关系
|
|
|
|
List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(param); |
|
|
|
param.put("code", material.getCode()); |
|
|
|
param.put("depositoryId", map.get("depositoryId")); |
|
|
|
List<MaterialP> inventory = materialService.findInventory(param); |
|
|
|
if (inventory.size() > 0) { |
|
|
|
MaterialP materialP = inventory.get(0); |
|
|
|
if (!"0".equals(placeId)) { |
|
|
|
// 如果不是默认库位
|
|
|
|
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(ObjectFormatUtil.toInteger(placeId), materialP.getId()); |
|
|
|
if (placeAndMaterialByMidAndPid == null) { |
|
|
|
// 如果当前物料不在该库位
|
|
|
|
flag = false; |
|
|
|
}else{ |
|
|
|
mp.setQuantity(placeAndMaterialByMidAndPid.getQuantity()); |
|
|
|
} |
|
|
|
} else { |
|
|
|
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(0, materialP.getId()); |
|
|
|
if (placeAndMaterialByMidAndPid == null) { |
|
|
|
// 如果当前物料不在该库位
|
|
|
|
flag = false; |
|
|
|
}else{ |
|
|
|
mp.setQuantity(placeAndMaterialByMidAndPid.getQuantity()); |
|
|
|
} |
|
|
|
} |
|
|
|
mp = materialP; |
|
|
|
} else { |
|
|
|
flag = false; |
|
|
|
} |
|
|
|
mp.setMaterialAndBarCodeList(materialByBarCodeByCondition); |
|
|
|
if (flag) { |
|
|
|
// 如果成功获取
|
|
|
|
return new RestResponse(mp); |
|
|
|
} |
|
|
|
return new RestResponse(null); |
|
|
|
} |
|
|
|
|
|
|
|
// 获取条形码扫描结果
|
|
|
|
@GetMapping("/application_in_scanBarCode") |
|
|
|
public RestResponse applicationInScanBarCode(HttpServletRequest request) { |
|
|
|
@ -630,6 +779,37 @@ public class MaterialController { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 获取企业微信条形码扫描结果
|
|
|
|
@PostMapping("/qywxApplicationInScanBarCode") |
|
|
|
public RestResponse qywxApplicationInScanBarCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); |
|
|
|
String qrCode = (String) map.get("qrCode"); |
|
|
|
Map<String, Object> result = new HashMap<>(); |
|
|
|
List<Object> materialList = new ArrayList<>(); |
|
|
|
// 获取当前用户所在部门拥有的仓库
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); |
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
// 获取条形码与物料的映射
|
|
|
|
MaterialAndBarCode materialByBarCode = null; |
|
|
|
for (int j = 0; j < depositoryByAdminorg.size(); j++) { |
|
|
|
param.put("depositoryId", depositoryByAdminorg.get(j).getId()); |
|
|
|
param.put("barCode", qrCode); |
|
|
|
// 通过仓库与条形码获取对应关系
|
|
|
|
materialByBarCode = materialService.findMaterialByBarCodeByBarCodeAndDepositoryId(param); |
|
|
|
if (materialByBarCode != null) { |
|
|
|
// 如果获取到对应关系
|
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (materialByBarCode == null) { |
|
|
|
// 如果没有获取到
|
|
|
|
materialByBarCode = materialService.findMaterialByBarCode(qrCode); |
|
|
|
} |
|
|
|
result.put("material", materialByBarCode); |
|
|
|
return new RestResponse(result); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 获取条形码扫描结果
|
|
|
|
@GetMapping("/application_transfer_scanBarCode") |
|
|
|
public RestResponse applicationTransferScanBarCode(HttpServletRequest request) { |
|
|
|
@ -681,28 +861,54 @@ public class MaterialController { |
|
|
|
return new RestResponse(result); |
|
|
|
} |
|
|
|
|
|
|
|
@PostMapping("/qywxApplicationTransferScanBarCode") |
|
|
|
public RestResponse qywxApplicationTransferScanBarCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); |
|
|
|
// 获取当前用户部门所拥有仓库
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userByPort.getMaindeparment().toString()); |
|
|
|
// 获取扫描的条形码
|
|
|
|
String qrCode = (String) map.get("qrCode"); |
|
|
|
// 获取条形码与物料的映射
|
|
|
|
MaterialAndBarCode materialByBarCode = materialService.findMaterialByBarCode(qrCode); |
|
|
|
if (materialByBarCode != null) { |
|
|
|
for (int j = 0; j < depositoryByAdminorg.size(); j++) { |
|
|
|
List<PlaceP> placePList = new ArrayList<>(); |
|
|
|
Boolean isExist = false; |
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
param.put("depositoryId", depositoryByAdminorg.get(j).getId()); |
|
|
|
param.put("code", materialByBarCode.getMcode()); |
|
|
|
List<MaterialP> inventory = materialService.findInventory(param); |
|
|
|
if (inventory.size() > 0) { |
|
|
|
// 如果存在该物料
|
|
|
|
MaterialP materialP = inventory.get(0); |
|
|
|
materialByBarCode.setMid(materialP.getId()); |
|
|
|
List<PlaceP> placeByMidAndDid = placeService.findPlaceByMidAndDid(materialP.getId(), depositoryByAdminorg.get(j).getId()); |
|
|
|
placePList.addAll(placeByMidAndDid); |
|
|
|
isExist = true; |
|
|
|
} |
|
|
|
if (isExist) { |
|
|
|
materialByBarCode.setPlacePList(placePList); |
|
|
|
return new RestResponse(materialByBarCode); |
|
|
|
} |
|
|
|
} |
|
|
|
return new RestResponse(null); |
|
|
|
} |
|
|
|
return new RestResponse(null); |
|
|
|
} |
|
|
|
|
|
|
|
// 获取条形码扫描结果
|
|
|
|
@GetMapping("/application_out_scanBarCode") |
|
|
|
public RestResponse applicationOutScanBarCode(HttpServletRequest request) { |
|
|
|
@PostMapping("/qywxApplicationOutScanBarCode") |
|
|
|
public RestResponse qywxApplicationOutScanBarCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); |
|
|
|
// 获取当前用户部门所拥有仓库
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userByPort.getMaindeparment().toString()); |
|
|
|
String scanBarCodeValue = redisTemplate.opsForValue().get("temporaryBarCodeValueForMaterial" + userByPort.getNumber()).toString(); |
|
|
|
redisTemplate.delete("temporaryBarCodeValueForMaterial" + userByPort.getNumber()); |
|
|
|
JSONObject jsonObject = JSONObject.parseObject(scanBarCodeValue); |
|
|
|
JSONArray barCodeList = (JSONArray) jsonObject.get("barCodeList"); |
|
|
|
// 获取标志位,用于判断是否扫描二维码
|
|
|
|
Boolean flag = jsonObject.getBoolean("flag"); |
|
|
|
Map<String, Object> result = new HashMap<>(); |
|
|
|
List<Object> materialList = new ArrayList<>(); |
|
|
|
for (int i = 0; i < barCodeList.size(); i++) { |
|
|
|
// 获取具体的条形码
|
|
|
|
String barCode = barCodeList.getString(i); |
|
|
|
String barCode = (String) map.get("qrCode"); |
|
|
|
// 获取条形码与物料的映射
|
|
|
|
MaterialAndBarCode materialByBarCode = materialService.findMaterialByBarCode(barCode); |
|
|
|
Boolean isExist = false; |
|
|
|
if (materialByBarCode != null) { |
|
|
|
List<PlaceP> placePList = new ArrayList<>(); |
|
|
|
for (int j = 0; j < depositoryByAdminorg.size(); j++) { |
|
|
|
Boolean isExist = false; |
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
param.put("depositoryId", depositoryByAdminorg.get(j).getId()); |
|
|
|
param.put("code", materialByBarCode.getMcode()); |
|
|
|
@ -715,23 +921,16 @@ public class MaterialController { |
|
|
|
placePList.addAll(placeByMidAndDid); |
|
|
|
isExist = true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (isExist) { |
|
|
|
materialByBarCode.setPlacePList(placePList); |
|
|
|
materialList.add(materialByBarCode); |
|
|
|
return new RestResponse(materialByBarCode); |
|
|
|
} |
|
|
|
} |
|
|
|
result.put("materialList", materialList); |
|
|
|
if (flag) { |
|
|
|
String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue" + userByPort.getNumber()).toString(); |
|
|
|
redisTemplate.delete("scanQrCodeValue" + userByPort.getNumber()); |
|
|
|
JSONObject parseObject = JSONObject.parseObject(scanQrCodeValue); |
|
|
|
result.put("depository", parseObject.get("depository")); |
|
|
|
result.put("place", parseObject.get("place")); |
|
|
|
} |
|
|
|
return new RestResponse(result); |
|
|
|
return new RestResponse(null); |
|
|
|
} |
|
|
|
return new RestResponse(null); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 获取条形码扫描结果
|
|
|
|
@PostMapping("/stockTaking_scanBarCode") |
|
|
|
@ -851,6 +1050,68 @@ public class MaterialController { |
|
|
|
return new RestResponse(result); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@PostMapping("/qywxStockTakingScanBarCode") |
|
|
|
public RestResponse qywxStockTakingScanBarCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); |
|
|
|
// 获取具体的条形码
|
|
|
|
String barCode = (String) map.get("qrCode"); |
|
|
|
Map<String, Object> result = new HashMap<>(); |
|
|
|
MaterialP material = null; |
|
|
|
String placeId = (String) map.get("placeId"); |
|
|
|
// 用于存储没有对应关系的条形码
|
|
|
|
List<String> barCodeListByNoMaterial = new ArrayList<>(); |
|
|
|
|
|
|
|
// 获取条形码与物料的映射
|
|
|
|
MaterialAndBarCode materialByBarCode = materialService.findMaterialByBarCode(barCode); |
|
|
|
if (materialByBarCode != null) { |
|
|
|
// 如果存在对应关系
|
|
|
|
Boolean isExist = false; |
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
// 判断所在仓库
|
|
|
|
param.put("depositoryId", map.get("depositoryId")); |
|
|
|
param.put("code", materialByBarCode.getMcode()); |
|
|
|
List<MaterialP> inventory = materialService.findInventory(param); |
|
|
|
MaterialP mp = new MaterialP(); |
|
|
|
if (inventory.size() > 0) { |
|
|
|
// 如果存在该物料
|
|
|
|
MaterialP materialP = inventory.get(0); |
|
|
|
// 设置标志位true
|
|
|
|
isExist = true; |
|
|
|
if (!"0".equals(placeId)) { |
|
|
|
// 如果不是默认库位
|
|
|
|
// 获取物料与库位的对应关系
|
|
|
|
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(ObjectFormatUtil.toInteger(placeId), materialP.getId()); |
|
|
|
if (placeAndMaterialByMidAndPid == null) { |
|
|
|
isExist = false; |
|
|
|
} else { |
|
|
|
mp.setQuantity(placeAndMaterialByMidAndPid.getQuantity()); |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 获取物料与库位的对应关系
|
|
|
|
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(0, materialP.getId()); |
|
|
|
if (placeAndMaterialByMidAndPid == null) { |
|
|
|
isExist = false; |
|
|
|
} else { |
|
|
|
mp.setQuantity(placeAndMaterialByMidAndPid.getQuantity()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
mp = materialP; |
|
|
|
|
|
|
|
} |
|
|
|
if (isExist) { |
|
|
|
material = mp; |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 如果当前条形码不存对应物料
|
|
|
|
barCodeListByNoMaterial.add(barCode); |
|
|
|
} |
|
|
|
result.put("material", material); |
|
|
|
result.put("barCodeListByNoMaterial", barCodeListByNoMaterial); |
|
|
|
return new RestResponse(result); |
|
|
|
} |
|
|
|
|
|
|
|
// 通过条形码获取物料信息
|
|
|
|
@GetMapping("/findMaterialByBarCode") |
|
|
|
public RestResponse findMaterialByBarCode(@RequestParam String barCode, HttpServletRequest request) { |
|
|
|
@ -1004,4 +1265,65 @@ public class MaterialController { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 用于查询当前扫描的二维码为仓库还是物料 |
|
|
|
* @param map |
|
|
|
* @param request |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@PostMapping("/qywxScanCodeOut") |
|
|
|
public RestResponse qywxScanCodeOut(@RequestBody Map<String,Object> map,HttpServletRequest request){ |
|
|
|
String qrCode = (String) map.get("qrCode"); |
|
|
|
String materialCode = materialService.findMaterialCodeByQrCode(qrCode); |
|
|
|
Map<String,Object> result = new HashMap<>(); |
|
|
|
// 0为非法码,1为物料,2为库位,3为仓库
|
|
|
|
Integer flag = 0; |
|
|
|
if(materialCode != null){ |
|
|
|
// 如果当前不为空,则扫描的为物料二维码
|
|
|
|
flag = 1; |
|
|
|
Material materialByCode = materialService.findMaterialByCode(materialCode); |
|
|
|
result.put("material",materialByCode); |
|
|
|
}else{ |
|
|
|
// 如果为空,则扫描的为条形码
|
|
|
|
MaterialAndBarCode materialByBarCode = materialService.findMaterialByBarCode(qrCode); |
|
|
|
if(materialByBarCode != null){ |
|
|
|
// 如果不为空,则扫描的为物料条形码
|
|
|
|
Material material = materialService.findMaterialById(materialByBarCode.getMid()); |
|
|
|
flag = 1; |
|
|
|
result.put("material",material); |
|
|
|
}else{ |
|
|
|
// 如果为空,则扫描的可能为库位码
|
|
|
|
PidOrDidAndCode locationByQrCode = placeService.findLocationByQrCode(qrCode); |
|
|
|
if(locationByQrCode != null){ |
|
|
|
// 如果不为空,则是库位码
|
|
|
|
|
|
|
|
// 1为库位2为仓库
|
|
|
|
Integer locationFlag = locationByQrCode.getFlag(); |
|
|
|
if(Integer.compare(locationFlag,1) == 0){ |
|
|
|
// 如果是库位
|
|
|
|
Place placeById = placeService.findPlaceById(ObjectFormatUtil.toInteger(locationByQrCode.getPid())); |
|
|
|
|
|
|
|
List<MaterialAndPlace> placeAndMaterialByPid = placeService.findPlaceAndMaterialByPid(placeById.getId()); |
|
|
|
PlaceP pp = new PlaceP(placeById); |
|
|
|
List<String> mcodeList = new ArrayList<>(); |
|
|
|
for (int i = 0; i < placeAndMaterialByPid.size(); i++) { |
|
|
|
MaterialAndPlace materialAndPlace = placeAndMaterialByPid.get(i); |
|
|
|
Material materialById = materialService.findMaterialById(materialAndPlace.getMid()); |
|
|
|
mcodeList.add(materialById.getCode()); |
|
|
|
} |
|
|
|
pp.setMcodeList(mcodeList); |
|
|
|
result.put("place",pp); |
|
|
|
flag = 2; |
|
|
|
}else{ |
|
|
|
// 如果是仓库
|
|
|
|
Depository depository = depositoryService.findDepositoryRecordById(ObjectFormatUtil.toInteger(locationByQrCode.getDepositoryId())); |
|
|
|
result.put("depository",depository); |
|
|
|
flag = 3; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
result.put("flag",flag); |
|
|
|
return new RestResponse(result); |
|
|
|
} |
|
|
|
} |
|
|
|
|