|
@@ -866,6 +866,22 @@ public class InventoryServiceImpl implements InventoryService {
|
|
updateVo.setQtyAvail(oldInventory.getQtyAvail() - vo.getChangeQty());// 可用数量减少
|
|
updateVo.setQtyAvail(oldInventory.getQtyAvail() - vo.getChangeQty());// 可用数量减少
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // 人工冻结数量 -
|
|
|
|
+ if (vo.getOpType().equals(InventoryOpTypeEnum.FREEZE_QTY_CUT)) {
|
|
|
|
+ updateVo.setQtyLock3(oldInventory.getQtyLock3() - vo.getChangeQty());// 冻结数量减少
|
|
|
|
+ updateVo.setQtyAvail(NumberUtil.add(oldInventory.getQtyAvail(), vo.getChangeQty()));// 可用数量增加
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 人工冻结数量 +
|
|
|
|
+ if (vo.getOpType().equals(InventoryOpTypeEnum.FREEZE_QTY_ADD)) {
|
|
|
|
+ if (oldInventory.getQtyAvail() < vo.getChangeQty()) {
|
|
|
|
+ message.setMsg("库存可用数量不足");
|
|
|
|
+ return message;
|
|
|
|
+ }
|
|
|
|
+ updateVo.setQtyLock3(oldInventory.getQtyLock3() + vo.getChangeQty());// 冻结数量增加
|
|
|
|
+ updateVo.setQtyAvail(oldInventory.getQtyAvail() - vo.getChangeQty());// 可用数量减少
|
|
|
|
+ }
|
|
|
|
+
|
|
// 更新人
|
|
// 更新人
|
|
updateVo.setUpdateByUserCode(vo.getUserCode());
|
|
updateVo.setUpdateByUserCode(vo.getUserCode());
|
|
updateVo.setUpdateByUserId(vo.getUserId());
|
|
updateVo.setUpdateByUserId(vo.getUserId());
|
|
@@ -1363,4 +1379,69 @@ public class InventoryServiceImpl implements InventoryService {
|
|
String msg = "ok";
|
|
String msg = "ok";
|
|
return Message.success(msg, list);
|
|
return Message.success(msg, list);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Message freezeQty(InventoryQueryVo queryvo, User user) {
|
|
|
|
+ Message message = new Message();
|
|
|
|
+ message.setSuccess(false);
|
|
|
|
+ Integer updQty = queryvo.getUpdQty();
|
|
|
|
+ String remark = queryvo.getRemark();
|
|
|
|
+ String inventoryId = queryvo.getInventoryId();
|
|
|
|
+ Inventory nowInventory = get(inventoryId);
|
|
|
|
+ if (nowInventory == null) {
|
|
|
|
+ message.setMsg("库存Id:" + inventoryId + "不存在");
|
|
|
|
+ return message;
|
|
|
|
+ }
|
|
|
|
+ if (updQty == null) {
|
|
|
|
+ message.setMsg("冻结数量不能为空");
|
|
|
|
+ return message;
|
|
|
|
+ }
|
|
|
|
+ if (NumberUtil.isEqualInt(updQty, 0)) {
|
|
|
|
+ message.setMsg("冻结数量不能为0");
|
|
|
|
+ return message;
|
|
|
|
+ }
|
|
|
|
+ if (StringUtil.isEmpty(remark)) {
|
|
|
|
+ message.setMsg("原因备注不能为空");
|
|
|
|
+ return message;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // updQty 正 : 增加冻结数量, 减少可用数量 ; 负: 减少冻结数量,增加可用数量
|
|
|
|
+
|
|
|
|
+ String refNo = inventoryId;
|
|
|
|
+ if (updQty < 0) {
|
|
|
|
+ InventoryVo vo = new InventoryVo();
|
|
|
|
+ vo.setId(nowInventory.getId());
|
|
|
|
+ vo.setDataVersion(nowInventory.getDataVersion());
|
|
|
|
+ vo.setChangeQty(-updQty);
|
|
|
|
+ vo.setOpType(InventoryOpTypeEnum.FREEZE_QTY_CUT);
|
|
|
|
+ vo.setRemark(remark);
|
|
|
|
+ vo.setRefNo(refNo);
|
|
|
|
+ vo.setUserCode(user.getCode());
|
|
|
|
+ vo.setUserId(user.getId());
|
|
|
|
+
|
|
|
|
+ Message cutMessage = updAvail(vo);
|
|
|
|
+ if (!cutMessage.isSuccess()) {
|
|
|
|
+ return cutMessage;
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ InventoryVo vo = new InventoryVo();
|
|
|
|
+ BeanUtil.copy(nowInventory, vo);
|
|
|
|
+ vo.setId(nowInventory.getId());
|
|
|
|
+ vo.setChangeQty(updQty);
|
|
|
|
+ vo.setOpType(InventoryOpTypeEnum.FREEZE_QTY_ADD);
|
|
|
|
+ vo.setRemark(remark);
|
|
|
|
+ vo.setRefNo(refNo);
|
|
|
|
+ vo.setUserCode(user.getCode());
|
|
|
|
+ vo.setUserId(user.getId());
|
|
|
|
+
|
|
|
|
+ Message cutMessage = updAvail(vo);
|
|
|
|
+ if (!cutMessage.isSuccess()) {
|
|
|
|
+ return cutMessage;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ message.setMsg("调整冻结数量成功");
|
|
|
|
+ message.setSuccess(true);
|
|
|
|
+ return message;
|
|
|
|
+ }
|
|
}
|
|
}
|