|
|
@ -20,6 +20,7 @@ import javax.servlet.http.HttpServletRequest; |
|
|
import java.io.IOException; |
|
|
import java.io.IOException; |
|
|
import java.math.BigDecimal; |
|
|
import java.math.BigDecimal; |
|
|
import java.util.*; |
|
|
import java.util.*; |
|
|
|
|
|
import java.util.concurrent.TimeUnit; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* @author Dreamchaser |
|
|
* @author Dreamchaser |
|
|
@ -41,7 +42,7 @@ public class MaterialController { |
|
|
PlaceService placeService; |
|
|
PlaceService placeService; |
|
|
|
|
|
|
|
|
@Autowired |
|
|
@Autowired |
|
|
RedisTemplate<Object, Object> redisTemplate; |
|
|
RedisTemplate<String, String> redisTemplate; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
@Autowired |
|
|
@ -75,7 +76,7 @@ public class MaterialController { |
|
|
public RestResponse findInventoryForStockTaking(@RequestParam Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse findInventoryForStockTaking(@RequestParam Map<String, Object> map, HttpServletRequest request) { |
|
|
Integer depositoryId = ObjectFormatUtil.toInteger(map.get("depositoryId")); |
|
|
Integer depositoryId = ObjectFormatUtil.toInteger(map.get("depositoryId")); |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -99,7 +100,7 @@ public class MaterialController { |
|
|
@GetMapping("/findInventoryForGroup") |
|
|
@GetMapping("/findInventoryForGroup") |
|
|
public RestResponse findInventoryForGroup(@RequestParam Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse findInventoryForGroup(@RequestParam Map<String, Object> map, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -147,7 +148,7 @@ public class MaterialController { |
|
|
@GetMapping("/findInventory") |
|
|
@GetMapping("/findInventory") |
|
|
public RestResponse findInventory(@RequestParam Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse findInventory(@RequestParam Map<String, Object> map, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -176,7 +177,7 @@ public class MaterialController { |
|
|
if (!flag) { |
|
|
if (!flag) { |
|
|
// 如果不是一次成功
|
|
|
// 如果不是一次成功
|
|
|
page = ObjectFormatUtil.toInteger(map.get("page")); |
|
|
page = ObjectFormatUtil.toInteger(map.get("page")); |
|
|
if(page == null){ |
|
|
if (page == null) { |
|
|
page = 1; |
|
|
page = 1; |
|
|
} |
|
|
} |
|
|
if (size - list.size() != size) { |
|
|
if (size - list.size() != size) { |
|
|
@ -310,7 +311,7 @@ public class MaterialController { |
|
|
String mname = (String) map.get("mname"); |
|
|
String mname = (String) map.get("mname"); |
|
|
String type = (String) map.get("type"); |
|
|
String type = (String) map.get("type"); |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -327,11 +328,12 @@ public class MaterialController { |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 用于根据物料id获取物料基础信息 |
|
|
* 用于根据物料id获取物料基础信息 |
|
|
|
|
|
* |
|
|
* @param map |
|
|
* @param map |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
@PostMapping("/findOnlyMaterialById") |
|
|
@PostMapping("/findOnlyMaterialById") |
|
|
public RestResponse findOnlyMaterialById(@RequestBody Map<String,String> map){ |
|
|
public RestResponse findOnlyMaterialById(@RequestBody Map<String, String> map) { |
|
|
Material materialById = materialService.findMaterialById(ObjectFormatUtil.toInteger(map.get("id"))); |
|
|
Material materialById = materialService.findMaterialById(ObjectFormatUtil.toInteger(map.get("id"))); |
|
|
return new RestResponse(materialById); |
|
|
return new RestResponse(materialById); |
|
|
} |
|
|
} |
|
|
@ -345,7 +347,7 @@ public class MaterialController { |
|
|
@GetMapping("/findMatrialById") |
|
|
@GetMapping("/findMatrialById") |
|
|
public RestResponse findMatrialById(@RequestParam(value = "mid", required = false) String mid, @RequestParam(value = "type", required = false) String type, HttpServletRequest request) { |
|
|
public RestResponse findMatrialById(@RequestParam(value = "mid", required = false) String mid, @RequestParam(value = "type", required = false) String type, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -404,7 +406,7 @@ public class MaterialController { |
|
|
@RequestParam(value = "pid", required = false) String pid, |
|
|
@RequestParam(value = "pid", required = false) String pid, |
|
|
HttpServletRequest request) { |
|
|
HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -461,7 +463,7 @@ public class MaterialController { |
|
|
@GetMapping("/findMatrialByCode") |
|
|
@GetMapping("/findMatrialByCode") |
|
|
public RestResponse findMatrialByCode(@RequestParam Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse findMatrialByCode(@RequestParam Map<String, Object> map, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -558,7 +560,7 @@ public class MaterialController { |
|
|
@PostMapping("/findInventoryByCondition") |
|
|
@PostMapping("/findInventoryByCondition") |
|
|
public RestResponse findInventoryByCondition(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse findInventoryByCondition(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -642,27 +644,45 @@ public class MaterialController { |
|
|
@PostMapping("/temporaryValue") |
|
|
@PostMapping("/temporaryValue") |
|
|
public RestResponse temporaryValue(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse temporaryValue(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
ArrayList arrayList = (ArrayList) map.get("materialList"); |
|
|
if (map.containsKey("id")) { |
|
|
ArrayList materailList = new ArrayList(); |
|
|
String s = map.get("id").toString(); |
|
|
for (int i = 0; i < arrayList.size(); i++) { |
|
|
String key = "WMS_temporaryValue" + userByPort.getNumber(); |
|
|
if (materailList.indexOf(arrayList.get(i)) == -1) { |
|
|
List<String> range = redisTemplate.opsForList().range(key, 0, -1); |
|
|
materailList.add(arrayList.get(i)); |
|
|
if (range != null) { |
|
|
|
|
|
if (!range.contains(s)) { |
|
|
|
|
|
redisTemplate.opsForList().rightPush(key,s); |
|
|
|
|
|
redisTemplate.expire(key,DateUtil.getSecondsNextEarlyMorning(), TimeUnit.SECONDS); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
return new RestResponse(); |
|
|
|
|
|
} else { |
|
|
|
|
|
return CrudUtil.insertHandle(-1, 0); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@PostMapping("/delTemporaryValue") |
|
|
|
|
|
public void delTemporaryValue(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
|
|
String token = request.getHeader("user-token"); |
|
|
|
|
|
if (token == null) { |
|
|
|
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
|
|
|
} |
|
|
|
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
|
|
|
if (map.containsKey("id")) { |
|
|
|
|
|
String s = map.get("id").toString(); |
|
|
|
|
|
redisTemplate.opsForList().remove("WMS_temporaryValue" + userByPort.getNumber(), 0, s); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
map.put("materialList", materailList); |
|
|
|
|
|
redisTemplate.opsForValue().set("scanQrCodeValue" + userByPort.getNumber(), JSONObject.toJSONString(map)); |
|
|
|
|
|
return new RestResponse(); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 将入库物料数据暂存到redis中
|
|
|
// 将入库物料数据暂存到redis中
|
|
|
@PostMapping("/temporaryValueForMaterial") |
|
|
@PostMapping("/temporaryValueForMaterial") |
|
|
public RestResponse temporaryValueForMaterial(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse temporaryValueForMaterial(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -675,7 +695,7 @@ public class MaterialController { |
|
|
@PostMapping("/temporaryBarCodeValueForMaterial") |
|
|
@PostMapping("/temporaryBarCodeValueForMaterial") |
|
|
public RestResponse temporaryBarCodeValueForMaterial(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse temporaryBarCodeValueForMaterial(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -684,60 +704,12 @@ public class MaterialController { |
|
|
return new RestResponse(200); |
|
|
return new RestResponse(200); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 判断当前扫描的物料是否存在
|
|
|
|
|
|
@GetMapping("/IsMaterialExist") |
|
|
|
|
|
public RestResponse IsMaterialExist(HttpServletRequest request) { |
|
|
|
|
|
String token = request.getHeader("user-token"); |
|
|
|
|
|
if(token == null){ |
|
|
|
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
|
|
|
} |
|
|
|
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
|
|
|
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<>(); |
|
|
|
|
|
|
|
|
|
|
|
for (Object o : materialList) { |
|
|
|
|
|
JSONObject obj = (JSONObject) o; |
|
|
|
|
|
map.put("code", obj.get("code")); |
|
|
|
|
|
if (depository != null) { |
|
|
|
|
|
map.put("depositoryId", depository.get("did")); |
|
|
|
|
|
} |
|
|
|
|
|
if (place != null) { |
|
|
|
|
|
map.put("depositoryId", place.get("depositoryId")); |
|
|
|
|
|
} |
|
|
|
|
|
List<MaterialP> inventory = materialService.findMaterial(map); |
|
|
|
|
|
if (inventory.size() > 0) { |
|
|
|
|
|
MaterialP materialP = inventory.get(0); |
|
|
|
|
|
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()); |
|
|
|
|
|
newMaterialList.add(params); |
|
|
|
|
|
} else { |
|
|
|
|
|
// 没有该物料
|
|
|
|
|
|
continue; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
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") |
|
|
@PostMapping("/MaterialQuantityIsTrue") |
|
|
public RestResponse MaterialQuantityIsTrue(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse MaterialQuantityIsTrue(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -763,7 +735,7 @@ public class MaterialController { |
|
|
// 如果是基础单位
|
|
|
// 如果是基础单位
|
|
|
for (InventoryP inventoryP : inventoryPList) { |
|
|
for (InventoryP inventoryP : inventoryPList) { |
|
|
double integer = inventoryP.getBaseUnitQuantity(); |
|
|
double integer = inventoryP.getBaseUnitQuantity(); |
|
|
if (quantity <= (integer - (int)(inventoryP.getNumberOfTemporary() / 100))) { // 如果当前数量合适则跳出循环
|
|
|
if (quantity <= (integer - (int) (inventoryP.getNumberOfTemporary() / 100))) { // 如果当前数量合适则跳出循环
|
|
|
flag = true; |
|
|
flag = true; |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
@ -853,54 +825,12 @@ public class MaterialController { |
|
|
return new RestResponse(s); |
|
|
return new RestResponse(s); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 获取扫描结果并跳转到入库
|
|
|
|
|
|
@GetMapping("/application_in_scanQrCode") |
|
|
|
|
|
public RestResponse applicationInScanQrCode(HttpServletRequest request) { |
|
|
|
|
|
String token = request.getHeader("user-token"); |
|
|
|
|
|
if(token == null){ |
|
|
|
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
|
|
|
} |
|
|
|
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
|
|
|
// 获取当前用户所在部门拥有的仓库
|
|
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userByPort.getMaindeparment().toString()); |
|
|
|
|
|
String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue" + userByPort.getNumber()).toString(); |
|
|
|
|
|
redisTemplate.delete("scanQrCodeValue" + userByPort.getNumber()); |
|
|
|
|
|
JSONObject jsonObject = JSONObject.parseObject(scanQrCodeValue); |
|
|
|
|
|
JSONArray materialListByJson = jsonObject.getJSONArray("materialList"); |
|
|
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
|
|
List<MaterialP> materialPList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < materialListByJson.size(); i++) { |
|
|
|
|
|
JSONObject material = (JSONObject) materialListByJson.get(i); |
|
|
|
|
|
List<PlaceP> placePList = new ArrayList<>(); |
|
|
|
|
|
param.put("mcode", material.getString("code")); |
|
|
|
|
|
MaterialP mp = new MaterialP(materialService.findMaterialById(material.getInteger("mid"))); |
|
|
|
|
|
// 获取物料与条形码的对应关系
|
|
|
|
|
|
param.put("codeFlag", 1); |
|
|
|
|
|
List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(param); |
|
|
|
|
|
for (int j = 0; j < depositoryByAdminorg.size(); j++) { |
|
|
|
|
|
Depository depository = depositoryByAdminorg.get(j); |
|
|
|
|
|
param.put("mcode", material.getString("code")); |
|
|
|
|
|
param.put("depositoryId", depository.getId()); |
|
|
|
|
|
List<InventoryP> inventory = materialService.findInventory(param); |
|
|
|
|
|
if (inventory.size() > 0) { |
|
|
|
|
|
List<PlaceP> place = placeService.findPlaceByMidAndDid(inventory.get(0).getId(), depository.getId()); |
|
|
|
|
|
placePList.addAll(place); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
mp.setPlacePList(placePList); |
|
|
|
|
|
mp.setMaterialAndBarCodeList(materialByBarCodeByCondition); |
|
|
|
|
|
materialPList.add(mp); |
|
|
|
|
|
} |
|
|
|
|
|
jsonObject.put("materialList", materialPList); |
|
|
|
|
|
return new RestResponse(jsonObject); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 获取扫描结果并跳转到入库
|
|
|
// 获取扫描结果并跳转到入库
|
|
|
@PostMapping("/qywxApplicationInScanQrCode") |
|
|
@PostMapping("/qywxApplicationInScanQrCode") |
|
|
public RestResponse qywxApplicationInScanQrCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse qywxApplicationInScanQrCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -962,7 +892,7 @@ public class MaterialController { |
|
|
@PostMapping("/qywxApplicationOutScanQrCode") |
|
|
@PostMapping("/qywxApplicationOutScanQrCode") |
|
|
public RestResponse qywxApplicationOutScanQrCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse qywxApplicationOutScanQrCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -1025,68 +955,6 @@ public class MaterialController { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取扫描结果并跳转到盘点
|
|
|
|
|
|
@PostMapping("/stockTaking_scanQrCode") |
|
|
|
|
|
public RestResponse stockTakingScanQrCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
|
|
String token = request.getHeader("user-token"); |
|
|
|
|
|
if(token == null){ |
|
|
|
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
|
|
|
} |
|
|
|
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
|
|
|
// 获取当前用户所在部门拥有的仓库
|
|
|
|
|
|
String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue" + userByPort.getNumber()).toString(); |
|
|
|
|
|
redisTemplate.delete("scanQrCodeValue" + userByPort.getNumber()); |
|
|
|
|
|
JSONObject jsonObject = JSONObject.parseObject(scanQrCodeValue); |
|
|
|
|
|
// 获取扫描的物料
|
|
|
|
|
|
JSONArray materialListByJson = jsonObject.getJSONArray("materialList"); |
|
|
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
|
|
List<InventoryP> materialPList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
String placeId = (String) map.get("placeId"); |
|
|
|
|
|
for (int i = 0; i < materialListByJson.size(); i++) { |
|
|
|
|
|
Boolean flag = true; |
|
|
|
|
|
JSONObject material = (JSONObject) materialListByJson.get(i); |
|
|
|
|
|
param.put("mcode", material.getString("code")); |
|
|
|
|
|
InventoryP mp = new InventoryP(materialService.findInventoryById(material.getInteger("mid"))); |
|
|
|
|
|
// 获取物料与条形码的对应关系
|
|
|
|
|
|
param.put("codeFlag", 1); |
|
|
|
|
|
List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(param); |
|
|
|
|
|
param.put("mcode", material.getString("code")); |
|
|
|
|
|
param.put("depositoryId", map.get("depositoryId")); |
|
|
|
|
|
List<InventoryP> inventory = materialService.findInventory(param); |
|
|
|
|
|
if (inventory.size() > 0) { |
|
|
|
|
|
InventoryP materialP = inventory.get(0); |
|
|
|
|
|
if (!"0".equals(placeId)) { |
|
|
|
|
|
// 如果不是默认库位
|
|
|
|
|
|
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(ObjectFormatUtil.toInteger(placeId), materialP.getId()); |
|
|
|
|
|
if (placeAndMaterialByMidAndPid == null) { |
|
|
|
|
|
// 如果当前物料不在该库位
|
|
|
|
|
|
flag = false; |
|
|
|
|
|
} |
|
|
|
|
|
mp.setQuantity((double)placeAndMaterialByMidAndPid.getQuantity() / 100); |
|
|
|
|
|
} else { |
|
|
|
|
|
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(0, materialP.getId()); |
|
|
|
|
|
if (placeAndMaterialByMidAndPid == null) { |
|
|
|
|
|
// 如果当前物料不在该库位
|
|
|
|
|
|
flag = false; |
|
|
|
|
|
} |
|
|
|
|
|
mp.setQuantity((double)placeAndMaterialByMidAndPid.getQuantity() / 100); |
|
|
|
|
|
} |
|
|
|
|
|
mp = materialP; |
|
|
|
|
|
} else { |
|
|
|
|
|
flag = false; |
|
|
|
|
|
} |
|
|
|
|
|
mp.setMaterialAndBarCodeList(materialByBarCodeByCondition); |
|
|
|
|
|
if (flag) { |
|
|
|
|
|
// 如果可以添加
|
|
|
|
|
|
|
|
|
|
|
|
materialPList.add(mp); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
jsonObject.put("materialList", materialPList); |
|
|
|
|
|
return new RestResponse(jsonObject); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 获取扫描结果并跳转到盘点
|
|
|
// 获取扫描结果并跳转到盘点
|
|
|
@PostMapping("/qywxStockTakingScanQrCode") |
|
|
@PostMapping("/qywxStockTakingScanQrCode") |
|
|
public RestResponse qywxStockTakingScanQrCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse qywxStockTakingScanQrCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
@ -1128,7 +996,7 @@ public class MaterialController { |
|
|
// 如果当前物料不在该库位
|
|
|
// 如果当前物料不在该库位
|
|
|
flag = false; |
|
|
flag = false; |
|
|
} else { |
|
|
} else { |
|
|
materialP.setQuantity((double)placeAndMaterialByMidAndPid.getQuantity()/100); |
|
|
materialP.setQuantity((double) placeAndMaterialByMidAndPid.getQuantity() / 100); |
|
|
} |
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(0, materialP.getId()); |
|
|
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(0, materialP.getId()); |
|
|
@ -1136,7 +1004,7 @@ public class MaterialController { |
|
|
// 如果当前物料不在该库位
|
|
|
// 如果当前物料不在该库位
|
|
|
flag = false; |
|
|
flag = false; |
|
|
} else { |
|
|
} else { |
|
|
materialP.setQuantity((double)placeAndMaterialByMidAndPid.getQuantity()/100); |
|
|
materialP.setQuantity((double) placeAndMaterialByMidAndPid.getQuantity() / 100); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
mp = materialP; |
|
|
mp = materialP; |
|
|
@ -1161,63 +1029,12 @@ public class MaterialController { |
|
|
return new RestResponse(null); |
|
|
return new RestResponse(null); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 获取条形码扫描结果
|
|
|
|
|
|
@GetMapping("/application_in_scanBarCode") |
|
|
|
|
|
public RestResponse applicationInScanBarCode(HttpServletRequest request) { |
|
|
|
|
|
String token = request.getHeader("user-token"); |
|
|
|
|
|
if(token == null){ |
|
|
|
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
|
|
|
} |
|
|
|
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
|
|
|
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<>(); |
|
|
|
|
|
// 获取当前用户所在部门拥有的仓库
|
|
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userByPort.getMaindeparment().toString()); |
|
|
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
|
|
for (int i = 0; i < barCodeList.size(); i++) { |
|
|
|
|
|
// 获取具体的条形码
|
|
|
|
|
|
String barCode = barCodeList.getString(i); |
|
|
|
|
|
// 获取条形码与物料的映射
|
|
|
|
|
|
MaterialAndBarCode materialByBarCode = null; |
|
|
|
|
|
for (int j = 0; j < depositoryByAdminorg.size(); j++) { |
|
|
|
|
|
param.put("depositoryId", depositoryByAdminorg.get(j).getId()); |
|
|
|
|
|
param.put("barCode", barCode); |
|
|
|
|
|
// 通过仓库与条形码获取对应关系
|
|
|
|
|
|
materialByBarCode = materialService.findMaterialByBarCodeByBarCodeAndDepositoryId(param); |
|
|
|
|
|
if (materialByBarCode != null) { |
|
|
|
|
|
// 如果获取到对应关系
|
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (materialByBarCode == null) { |
|
|
|
|
|
// 如果没有获取到
|
|
|
|
|
|
materialByBarCode = materialService.findMaterialByBarCode(barCode); |
|
|
|
|
|
} |
|
|
|
|
|
materialList.add(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); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取企业微信条形码扫描结果
|
|
|
// 获取企业微信条形码扫描结果
|
|
|
@PostMapping("/qywxApplicationInScanBarCode") |
|
|
@PostMapping("/qywxApplicationInScanBarCode") |
|
|
public RestResponse qywxApplicationInScanBarCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse qywxApplicationInScanBarCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -1254,67 +1071,11 @@ public class MaterialController { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取条形码扫描结果
|
|
|
|
|
|
@GetMapping("/application_transfer_scanBarCode") |
|
|
|
|
|
public RestResponse applicationTransferScanBarCode(HttpServletRequest request) { |
|
|
|
|
|
String token = request.getHeader("user-token"); |
|
|
|
|
|
if(token == null){ |
|
|
|
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
|
|
|
} |
|
|
|
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
|
|
|
// 获取当前用户部门所拥有仓库
|
|
|
|
|
|
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); |
|
|
|
|
|
// 获取条形码与物料的映射
|
|
|
|
|
|
MaterialAndBarCode materialByBarCode = materialService.findMaterialByBarCode(barCode); |
|
|
|
|
|
Boolean isExist = false; |
|
|
|
|
|
List<PlaceP> placePList = new ArrayList<>(); |
|
|
|
|
|
for (int j = 0; j < depositoryByAdminorg.size(); j++) { |
|
|
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
|
|
param.put("depositoryId", depositoryByAdminorg.get(j).getId()); |
|
|
|
|
|
param.put("mcode", materialByBarCode.getMcode()); |
|
|
|
|
|
List<InventoryP> inventory = materialService.findInventory(param); |
|
|
|
|
|
if (inventory.size() > 0) { |
|
|
|
|
|
// 如果存在该物料
|
|
|
|
|
|
InventoryP 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); |
|
|
|
|
|
materialList.add(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); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取条形码扫描结果
|
|
|
// 获取条形码扫描结果
|
|
|
@PostMapping("/qywxApplicationOutScanBarCode") |
|
|
@PostMapping("/qywxApplicationOutScanBarCode") |
|
|
public RestResponse qywxApplicationOutScanBarCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse qywxApplicationOutScanBarCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -1364,135 +1125,11 @@ public class MaterialController { |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 获取条形码扫描结果
|
|
|
|
|
|
@PostMapping("/stockTaking_scanBarCode") |
|
|
|
|
|
public RestResponse stockTakingScanBarCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
|
|
|
String token = request.getHeader("user-token"); |
|
|
|
|
|
if(token == null){ |
|
|
|
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
|
|
|
} |
|
|
|
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
|
|
|
// 获取当前用户部门所拥有仓库
|
|
|
|
|
|
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<InventoryP> materialList = new ArrayList<>(); |
|
|
|
|
|
String placeId = (String) map.get("placeId"); |
|
|
|
|
|
// 用于存储没有对应关系的条形码
|
|
|
|
|
|
List<String> barCodeListByNoMaterial = new ArrayList<>(); |
|
|
|
|
|
for (int i = 0; i < barCodeList.size(); i++) { |
|
|
|
|
|
// 获取具体的条形码
|
|
|
|
|
|
String barCode = barCodeList.getString(i); |
|
|
|
|
|
// 获取条形码与物料的映射
|
|
|
|
|
|
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("mcode", materialByBarCode.getMcode()); |
|
|
|
|
|
List<InventoryP> inventory = materialService.findInventory(param); |
|
|
|
|
|
InventoryP mp = new InventoryP(); |
|
|
|
|
|
if (inventory.size() > 0) { |
|
|
|
|
|
// 如果存在该物料
|
|
|
|
|
|
InventoryP materialP = inventory.get(0); |
|
|
|
|
|
Map<String, Object> paramByBarCode = new HashMap<>(); |
|
|
|
|
|
paramByBarCode.put("mcode", materialP.getCode()); |
|
|
|
|
|
paramByBarCode.put("codeFlag", 1); |
|
|
|
|
|
List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(paramByBarCode); |
|
|
|
|
|
materialP.setMaterialAndBarCodeList(materialByBarCodeByCondition); |
|
|
|
|
|
isExist = true; |
|
|
|
|
|
if (!"0".equals(placeId)) { |
|
|
|
|
|
// 如果不是默认库位
|
|
|
|
|
|
// 获取物料与库位的对应关系
|
|
|
|
|
|
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(ObjectFormatUtil.toInteger(placeId), materialP.getId()); |
|
|
|
|
|
if (placeAndMaterialByMidAndPid == null) { |
|
|
|
|
|
isExist = false; |
|
|
|
|
|
} else { |
|
|
|
|
|
mp.setQuantity((double)placeAndMaterialByMidAndPid.getQuantity()/100); |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
// 获取物料与库位的对应关系
|
|
|
|
|
|
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(0, materialP.getId()); |
|
|
|
|
|
if (placeAndMaterialByMidAndPid == null) { |
|
|
|
|
|
isExist = false; |
|
|
|
|
|
} else { |
|
|
|
|
|
mp.setQuantity((double)placeAndMaterialByMidAndPid.getQuantity() / 100); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
mp = materialP; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
if (isExist) { |
|
|
|
|
|
materialList.add(mp); |
|
|
|
|
|
} |
|
|
|
|
|
// 如果当前条形码不存对应物料
|
|
|
|
|
|
} else { |
|
|
|
|
|
barCodeListByNoMaterial.add(barCode); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (flag) { |
|
|
|
|
|
String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue" + userByPort.getNumber()).toString(); |
|
|
|
|
|
redisTemplate.delete("scanQrCodeValue" + userByPort.getNumber()); |
|
|
|
|
|
JSONObject parseObject = JSONObject.parseObject(scanQrCodeValue); |
|
|
|
|
|
// 获取扫描的物料
|
|
|
|
|
|
JSONArray materialListByJson = jsonObject.getJSONArray("materialList"); |
|
|
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
|
|
for (int i = 0; i < materialListByJson.size(); i++) { |
|
|
|
|
|
Boolean tempflag = true; |
|
|
|
|
|
JSONObject material = (JSONObject) materialListByJson.get(i); |
|
|
|
|
|
param.put("mcode", material.getString("code")); |
|
|
|
|
|
InventoryP mp = new InventoryP(materialService.findInventoryById(material.getInteger("mid"))); |
|
|
|
|
|
// 获取物料与条形码的对应关系
|
|
|
|
|
|
param.put("codeFlag", 1); |
|
|
|
|
|
List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(param); |
|
|
|
|
|
param.put("mcode", material.getString("code")); |
|
|
|
|
|
param.put("depositoryId", map.get("depositoryId")); |
|
|
|
|
|
List<InventoryP> inventory = materialService.findInventory(param); |
|
|
|
|
|
if (inventory.size() > 0) { |
|
|
|
|
|
InventoryP materialP = inventory.get(0); |
|
|
|
|
|
if (!"0".equals(placeId)) { |
|
|
|
|
|
// 如果不是默认库位
|
|
|
|
|
|
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(ObjectFormatUtil.toInteger(placeId), materialP.getId()); |
|
|
|
|
|
if (placeAndMaterialByMidAndPid == null) { |
|
|
|
|
|
// 如果当前物料不在该库位
|
|
|
|
|
|
tempflag = false; |
|
|
|
|
|
} |
|
|
|
|
|
mp.setQuantity((double)placeAndMaterialByMidAndPid.getQuantity() / 100); |
|
|
|
|
|
} else { |
|
|
|
|
|
// 获取物料与库位的对应关系
|
|
|
|
|
|
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(0, materialP.getId()); |
|
|
|
|
|
if (placeAndMaterialByMidAndPid == null) { |
|
|
|
|
|
tempflag = false; |
|
|
|
|
|
} |
|
|
|
|
|
mp.setQuantity((double)placeAndMaterialByMidAndPid.getQuantity() / 100); |
|
|
|
|
|
} |
|
|
|
|
|
mp = materialP; |
|
|
|
|
|
} else { |
|
|
|
|
|
tempflag = false; |
|
|
|
|
|
} |
|
|
|
|
|
mp.setMaterialAndBarCodeList(materialByBarCodeByCondition); |
|
|
|
|
|
if (tempflag) { |
|
|
|
|
|
// 如果可以添加
|
|
|
|
|
|
materialList.add(mp); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
result.put("materialList", materialList); |
|
|
|
|
|
result.put("barCodeListByNoMaterial", barCodeListByNoMaterial); |
|
|
|
|
|
return new RestResponse(result); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@PostMapping("/qywxStockTakingScanBarCode") |
|
|
@PostMapping("/qywxStockTakingScanBarCode") |
|
|
public RestResponse qywxStockTakingScanBarCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse qywxStockTakingScanBarCode(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -1531,7 +1168,7 @@ public class MaterialController { |
|
|
if (placeAndMaterialByMidAndPid == null) { |
|
|
if (placeAndMaterialByMidAndPid == null) { |
|
|
isExist = false; |
|
|
isExist = false; |
|
|
} else { |
|
|
} else { |
|
|
mp.setQuantity((double)placeAndMaterialByMidAndPid.getQuantity() / 100); |
|
|
mp.setQuantity((double) placeAndMaterialByMidAndPid.getQuantity() / 100); |
|
|
} |
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
// 获取物料与库位的对应关系
|
|
|
// 获取物料与库位的对应关系
|
|
|
@ -1539,7 +1176,7 @@ public class MaterialController { |
|
|
if (placeAndMaterialByMidAndPid == null) { |
|
|
if (placeAndMaterialByMidAndPid == null) { |
|
|
isExist = false; |
|
|
isExist = false; |
|
|
} else { |
|
|
} else { |
|
|
mp.setQuantity((double)placeAndMaterialByMidAndPid.getQuantity()/100); |
|
|
mp.setQuantity((double) placeAndMaterialByMidAndPid.getQuantity() / 100); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -1561,7 +1198,7 @@ public class MaterialController { |
|
|
for (MaterialAndProducedDate materialAndProducedDate : materialAndProducedDateByMid) { |
|
|
for (MaterialAndProducedDate materialAndProducedDate : materialAndProducedDateByMid) { |
|
|
// 获取当前生产日期
|
|
|
// 获取当前生产日期
|
|
|
producedDateList.add(DateUtil.TimeStampToDateTimeForDay(materialAndProducedDate.getProducedDate())); |
|
|
producedDateList.add(DateUtil.TimeStampToDateTimeForDay(materialAndProducedDate.getProducedDate())); |
|
|
material.setQuantity((double)materialAndProducedDate.getInventory() / 100); |
|
|
material.setQuantity((double) materialAndProducedDate.getInventory() / 100); |
|
|
} |
|
|
} |
|
|
List<SplitInfo> splitInfoByMid = splitUnitService.findSplitInfoByMid(material.getMid()); |
|
|
List<SplitInfo> splitInfoByMid = splitUnitService.findSplitInfoByMid(material.getMid()); |
|
|
material.setSplitInfoList(splitInfoByMid); |
|
|
material.setSplitInfoList(splitInfoByMid); |
|
|
@ -1576,7 +1213,7 @@ public class MaterialController { |
|
|
@GetMapping("/findMaterialByBarCode") |
|
|
@GetMapping("/findMaterialByBarCode") |
|
|
public RestResponse findMaterialByBarCode(@RequestParam String barCode, HttpServletRequest request) { |
|
|
public RestResponse findMaterialByBarCode(@RequestParam String barCode, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -1653,7 +1290,7 @@ public class MaterialController { |
|
|
List<SplitInfo> splitInfoByMid = splitUnitService.findSplitInfoByMid(materialP.getMid()); |
|
|
List<SplitInfo> splitInfoByMid = splitUnitService.findSplitInfoByMid(materialP.getMid()); |
|
|
materialP.setSplitInfoList(splitInfoByMid); |
|
|
materialP.setSplitInfoList(splitInfoByMid); |
|
|
materialP.setMaterialAndBarCodeList(materialByBarCodeByCondition); |
|
|
materialP.setMaterialAndBarCodeList(materialByBarCodeByCondition); |
|
|
materialP.setBaseUnitQuantity((double)pm.getQuantity() / 100); |
|
|
materialP.setBaseUnitQuantity((double) pm.getQuantity() / 100); |
|
|
return new RestResponse(materialP, 1, 200); |
|
|
return new RestResponse(materialP, 1, 200); |
|
|
} else { |
|
|
} else { |
|
|
return new RestResponse("", 0, 200); |
|
|
return new RestResponse("", 0, 200); |
|
|
@ -1680,7 +1317,7 @@ public class MaterialController { |
|
|
List<SplitInfo> splitInfoByMid = splitUnitService.findSplitInfoByMid(materialP.getMid()); |
|
|
List<SplitInfo> splitInfoByMid = splitUnitService.findSplitInfoByMid(materialP.getMid()); |
|
|
materialP.setSplitInfoList(splitInfoByMid); |
|
|
materialP.setSplitInfoList(splitInfoByMid); |
|
|
materialP.setMaterialAndBarCodeList(materialByBarCodeByCondition); |
|
|
materialP.setMaterialAndBarCodeList(materialByBarCodeByCondition); |
|
|
materialP.setQuantity((double)pm.getQuantity()/100); |
|
|
materialP.setQuantity((double) pm.getQuantity() / 100); |
|
|
return new RestResponse(materialP, 1, 200); |
|
|
return new RestResponse(materialP, 1, 200); |
|
|
} else { |
|
|
} else { |
|
|
return new RestResponse("", 0, 200); |
|
|
return new RestResponse("", 0, 200); |
|
|
@ -1703,7 +1340,7 @@ public class MaterialController { |
|
|
@PostMapping("/findMatrialByCodeForTaking") |
|
|
@PostMapping("/findMatrialByCodeForTaking") |
|
|
public RestResponse findMatrialByCodeForTaking(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse findMatrialByCodeForTaking(@RequestBody Map<String, Object> map, HttpServletRequest request) { |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -1738,7 +1375,7 @@ public class MaterialController { |
|
|
// 如果当前库位没有该物料
|
|
|
// 如果当前库位没有该物料
|
|
|
mp = null; |
|
|
mp = null; |
|
|
} else { |
|
|
} else { |
|
|
mp.setQuantity((double)placeAndMaterialByMidAndPid.getQuantity()/100); |
|
|
mp.setQuantity((double) placeAndMaterialByMidAndPid.getQuantity() / 100); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} else { |
|
|
} else { |
|
|
@ -1748,7 +1385,7 @@ public class MaterialController { |
|
|
// 如果当前库位没有该物料
|
|
|
// 如果当前库位没有该物料
|
|
|
mp = null; |
|
|
mp = null; |
|
|
} else { |
|
|
} else { |
|
|
mp.setQuantity((double)placeAndMaterialByMidAndPid.getQuantity()/100); |
|
|
mp.setQuantity((double) placeAndMaterialByMidAndPid.getQuantity() / 100); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
@ -1763,7 +1400,7 @@ public class MaterialController { |
|
|
// 获取当前生产日期
|
|
|
// 获取当前生产日期
|
|
|
producedDateList.add(DateUtil.TimeStampToDateTimeForDay(materialAndProducedDate.getProducedDate())); |
|
|
producedDateList.add(DateUtil.TimeStampToDateTimeForDay(materialAndProducedDate.getProducedDate())); |
|
|
if (flagForQuantity) { |
|
|
if (flagForQuantity) { |
|
|
mp.setQuantity((double)materialAndProducedDate.getInventory()/100); |
|
|
mp.setQuantity((double) materialAndProducedDate.getInventory() / 100); |
|
|
flagForQuantity = false; |
|
|
flagForQuantity = false; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -1872,7 +1509,7 @@ public class MaterialController { |
|
|
String mname = (String) map.get("mname"); |
|
|
String mname = (String) map.get("mname"); |
|
|
String type = (String) map.get("type"); |
|
|
String type = (String) map.get("type"); |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
token = (String) request.getSession().getAttribute("userToken"); |
|
|
} |
|
|
} |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
UserByPort userToken = AuthenticationTokenPool.getUserToken(token); |
|
|
@ -1975,8 +1612,8 @@ public class MaterialController { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@PostMapping("/findSplitInventoryByUnit") |
|
|
@PostMapping("/findSplitInventoryByUnit") |
|
|
public RestResponse findSplitInventoryByUnit(@RequestBody Map<String,Object> map){ |
|
|
public RestResponse findSplitInventoryByUnit(@RequestBody Map<String, Object> map) { |
|
|
if(map.containsKey("id")){ |
|
|
if (map.containsKey("id")) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取当前的计量单位
|
|
|
// 获取当前的计量单位
|
|
|
@ -1985,23 +1622,23 @@ public class MaterialController { |
|
|
Integer id = ObjectFormatUtil.toInteger(map.get("id")); |
|
|
Integer id = ObjectFormatUtil.toInteger(map.get("id")); |
|
|
// 获取库存记录
|
|
|
// 获取库存记录
|
|
|
Inventory inventory = materialService.findInventoryById(id); |
|
|
Inventory inventory = materialService.findInventoryById(id); |
|
|
if("-1".equals(unit)){ |
|
|
if ("-1".equals(unit)) { |
|
|
return new RestResponse((double)(inventory.getQuantity() / 100)); |
|
|
return new RestResponse((double) (inventory.getQuantity() / 100)); |
|
|
}else{ |
|
|
} else { |
|
|
Map<String,Object> paramForSplitInfoStringObjectMap = new HashMap<>(); |
|
|
Map<String, Object> paramForSplitInfoStringObjectMap = new HashMap<>(); |
|
|
paramForSplitInfoStringObjectMap.put("mid",inventory.getMid()); |
|
|
paramForSplitInfoStringObjectMap.put("mid", inventory.getMid()); |
|
|
paramForSplitInfoStringObjectMap.put("newUnit",unit); |
|
|
paramForSplitInfoStringObjectMap.put("newUnit", unit); |
|
|
SplitInfo splitInfoByMidAndUnit = splitUnitService.findSplitInfoByMidAndUnit(paramForSplitInfoStringObjectMap); |
|
|
SplitInfo splitInfoByMidAndUnit = splitUnitService.findSplitInfoByMidAndUnit(paramForSplitInfoStringObjectMap); |
|
|
List<PlaceP> placeByMidAndDid = placeService.findPlaceByMidAndDid(inventory.getId(), inventory.getDepositoryId()); |
|
|
List<PlaceP> placeByMidAndDid = placeService.findPlaceByMidAndDid(inventory.getId(), inventory.getDepositoryId()); |
|
|
double allInventory = 0.0; |
|
|
double allInventory = 0.0; |
|
|
for (PlaceP placeP:placeByMidAndDid |
|
|
for (PlaceP placeP : placeByMidAndDid |
|
|
) { |
|
|
) { |
|
|
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(placeP.getId(), inventory.getId()); |
|
|
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(placeP.getId(), inventory.getId()); |
|
|
allInventory += splitUnitService.findAllInventoryForSplitInfo(-1, placeAndMaterialByMidAndPid, splitInfoByMidAndUnit.getId(), 0, true); |
|
|
allInventory += splitUnitService.findAllInventoryForSplitInfo(-1, placeAndMaterialByMidAndPid, splitInfoByMidAndUnit.getId(), 0, true); |
|
|
} |
|
|
} |
|
|
return new RestResponse(allInventory); |
|
|
return new RestResponse(allInventory); |
|
|
} |
|
|
} |
|
|
}else{ |
|
|
} else { |
|
|
throw new MyException("缺少必要参数"); |
|
|
throw new MyException("缺少必要参数"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -2011,14 +1648,14 @@ public class MaterialController { |
|
|
public RestResponse findMaterialByConditionForStockTaking(@RequestParam Map<String, Object> map, HttpServletRequest request) { |
|
|
public RestResponse findMaterialByConditionForStockTaking(@RequestParam Map<String, Object> map, HttpServletRequest request) { |
|
|
if (map.containsKey("mid")) { |
|
|
if (map.containsKey("mid")) { |
|
|
String mid = (String) map.get("mid"); |
|
|
String mid = (String) map.get("mid"); |
|
|
if("".equals(mid)){ |
|
|
if ("".equals(mid)) { |
|
|
return new RestResponse(null); |
|
|
return new RestResponse(null); |
|
|
} |
|
|
} |
|
|
String token = request.getHeader("user-token"); |
|
|
String token = request.getHeader("user-token"); |
|
|
if(token == null){ |
|
|
if (token == null) { |
|
|
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<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); |
|
|
// 查询当前用户管理的仓库
|
|
|
// 查询当前用户管理的仓库
|
|
|
@ -2036,11 +1673,11 @@ public class MaterialController { |
|
|
depositoryIdList.add(rad.getDepositoryId()); |
|
|
depositoryIdList.add(rad.getDepositoryId()); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
map.put("userTokenId",userToken.getId()); |
|
|
map.put("userTokenId", userToken.getId()); |
|
|
List<MaterialAndPlaceForViewP> materialAndPlaceForViews = materialService.findInventoryByMidAndDepository(map, depositoryIdList); |
|
|
List<MaterialAndPlaceForViewP> materialAndPlaceForViews = materialService.findInventoryByMidAndDepository(map, depositoryIdList); |
|
|
Integer count = placeService.findPlaceAndMaterialCountByDidsAndMid(depositoryIdList, map); |
|
|
Integer count = placeService.findPlaceAndMaterialCountByDidsAndMid(depositoryIdList, map); |
|
|
return new RestResponse(materialAndPlaceForViews,count,200); |
|
|
return new RestResponse(materialAndPlaceForViews, count, 200); |
|
|
}else{ |
|
|
} else { |
|
|
return new RestResponse(null); |
|
|
return new RestResponse(null); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|