mirror of
https://github.com/zccbbg/wms-ruoyi.git
synced 2024-09-20 11:05:54 +08:00
refactor: 库存不足提示优化
This commit is contained in:
parent
c2b34bd747
commit
fc3d85a08e
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.ruoyi.common.core.constant.HttpStatus;
|
||||||
import com.ruoyi.common.core.exception.ServiceException;
|
import com.ruoyi.common.core.exception.ServiceException;
|
||||||
import com.ruoyi.common.core.utils.MapstructUtils;
|
import com.ruoyi.common.core.utils.MapstructUtils;
|
||||||
import com.ruoyi.common.core.utils.ValidatorUtils;
|
import com.ruoyi.common.core.utils.ValidatorUtils;
|
||||||
|
@ -134,9 +135,14 @@ public class InventoryService extends ServiceImpl<InventoryMapper, Inventory> {
|
||||||
wrapper.eq(Inventory::getWarehouseId, inventoryBo.getWarehouseId());
|
wrapper.eq(Inventory::getWarehouseId, inventoryBo.getWarehouseId());
|
||||||
wrapper.eq(Inventory::getSkuId, inventoryBo.getSkuId());
|
wrapper.eq(Inventory::getSkuId, inventoryBo.getSkuId());
|
||||||
Inventory result = inventoryMapper.selectOne(wrapper);
|
Inventory result = inventoryMapper.selectOne(wrapper);
|
||||||
|
if(result==null){
|
||||||
|
ItemSkuVo itemSkuVo = itemSkuService.queryById(inventoryBo.getSkuId());
|
||||||
|
throw new ServiceException("库存不足", HttpStatus.NOT_ACCEPTABLE,itemSkuVo.getItem().getItemName()+"("+itemSkuVo.getSkuName()+")库存不足,当前库存:0");
|
||||||
|
}
|
||||||
BigDecimal quantity = result.getQuantity().subtract(inventoryBo.getQuantity());
|
BigDecimal quantity = result.getQuantity().subtract(inventoryBo.getQuantity());
|
||||||
if(quantity.signum() == -1){
|
if(quantity.signum() == -1){
|
||||||
throw new ServiceException("库存不足");
|
ItemSkuVo itemSkuVo = itemSkuService.queryById(inventoryBo.getSkuId());
|
||||||
|
throw new ServiceException("库存不足", HttpStatus.NOT_ACCEPTABLE,itemSkuVo.getItem().getItemName()+"("+itemSkuVo.getSkuName()+")库存不足,当前库存:"+result.getQuantity());
|
||||||
}
|
}
|
||||||
result.setQuantity(quantity);
|
result.setQuantity(quantity);
|
||||||
updateList.add(result);
|
updateList.add(result);
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package com.ruoyi.wms.service;
|
package com.ruoyi.wms.service;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.RandomUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
@ -12,6 +11,10 @@ import com.ruoyi.common.core.exception.base.BaseException;
|
||||||
import com.ruoyi.common.core.utils.MapstructUtils;
|
import com.ruoyi.common.core.utils.MapstructUtils;
|
||||||
import com.ruoyi.common.mybatis.core.page.PageQuery;
|
import com.ruoyi.common.mybatis.core.page.PageQuery;
|
||||||
import com.ruoyi.common.mybatis.core.page.TableDataInfo;
|
import com.ruoyi.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import com.ruoyi.wms.domain.bo.ItemSkuBo;
|
||||||
|
import com.ruoyi.wms.domain.entity.ItemSku;
|
||||||
|
import com.ruoyi.wms.domain.vo.ItemSkuVo;
|
||||||
|
import com.ruoyi.wms.domain.vo.ItemVo;
|
||||||
import com.ruoyi.wms.mapper.ItemMapper;
|
import com.ruoyi.wms.mapper.ItemMapper;
|
||||||
import com.ruoyi.wms.mapper.ItemSkuMapper;
|
import com.ruoyi.wms.mapper.ItemSkuMapper;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
@ -20,11 +23,6 @@ import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import com.ruoyi.wms.domain.bo.ItemSkuBo;
|
|
||||||
import com.ruoyi.wms.domain.entity.ItemSku;
|
|
||||||
import com.ruoyi.wms.domain.vo.ItemSkuVo;
|
|
||||||
import com.ruoyi.wms.domain.vo.ItemVo;
|
|
||||||
import com.ruoyi.wms.mapper.ItemCategoryMapper;
|
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
@ -37,8 +35,6 @@ public class ItemSkuService extends ServiceImpl<ItemSkuMapper, ItemSku> {
|
||||||
|
|
||||||
|
|
||||||
private final ItemSkuMapper itemSkuMapper;
|
private final ItemSkuMapper itemSkuMapper;
|
||||||
private final ItemService itemService;
|
|
||||||
private final ItemCategoryMapper itemCategoryMapper;
|
|
||||||
private final InventoryService inventoryService;
|
private final InventoryService inventoryService;
|
||||||
private final ItemMapper itemMapper;
|
private final ItemMapper itemMapper;
|
||||||
|
|
||||||
|
@ -47,7 +43,12 @@ public class ItemSkuService extends ServiceImpl<ItemSkuMapper, ItemSku> {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public ItemSkuVo queryById(Long id) {
|
public ItemSkuVo queryById(Long id) {
|
||||||
return itemSkuMapper.selectVoById(id);
|
ItemSkuVo itemSkuVo = itemSkuMapper.selectVoById(id);
|
||||||
|
if(itemSkuVo!=null){
|
||||||
|
ItemVo itemVo = itemMapper.selectVoById(itemSkuVo.getItemId());
|
||||||
|
itemSkuVo.setItem(itemVo);
|
||||||
|
}
|
||||||
|
return itemSkuVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -142,18 +143,6 @@ public class ItemSkuService extends ServiceImpl<ItemSkuMapper, ItemSku> {
|
||||||
saveOrUpdateBatch(itemSkuList);
|
saveOrUpdateBatch(itemSkuList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 填充sku的编码
|
|
||||||
* @param itemSkuList
|
|
||||||
*/
|
|
||||||
public void setOutSkuId(List<ItemSkuBo> itemSkuList) {
|
|
||||||
for (ItemSkuBo itemSkuBo : itemSkuList) {
|
|
||||||
if (StrUtil.isBlank(itemSkuBo.getBarcode())) {
|
|
||||||
itemSkuBo.setBarcode(RandomUtil.randomNumbers(8));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setItemId(List<ItemSkuBo> itemSkuList,Long itemId) {
|
public void setItemId(List<ItemSkuBo> itemSkuList,Long itemId) {
|
||||||
for (ItemSkuBo itemSkuBo : itemSkuList) {
|
for (ItemSkuBo itemSkuBo : itemSkuList) {
|
||||||
if (StrUtil.isBlank(itemSkuBo.getBarcode())) {
|
if (StrUtil.isBlank(itemSkuBo.getBarcode())) {
|
||||||
|
|
|
@ -71,6 +71,11 @@ public interface HttpStatus {
|
||||||
*/
|
*/
|
||||||
int CONFLICT = 409;
|
int CONFLICT = 409;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 资源不被允许访问
|
||||||
|
*/
|
||||||
|
int NOT_ACCEPTABLE = 406;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 不支持的数据,媒体类型
|
* 不支持的数据,媒体类型
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -30,6 +30,8 @@ public class R<T> implements Serializable {
|
||||||
|
|
||||||
private String msg;
|
private String msg;
|
||||||
|
|
||||||
|
private String detailMessage;
|
||||||
|
|
||||||
private T data;
|
private T data;
|
||||||
|
|
||||||
public static <T> R<T> ok() {
|
public static <T> R<T> ok() {
|
||||||
|
@ -68,6 +70,10 @@ public class R<T> implements Serializable {
|
||||||
return restResult(null, code, msg);
|
return restResult(null, code, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static <T> R<T> fail(int code, String msg,String detailMessage) {
|
||||||
|
return restResult(null, code, msg,detailMessage);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 返回警告消息
|
* 返回警告消息
|
||||||
*
|
*
|
||||||
|
@ -97,6 +103,15 @@ public class R<T> implements Serializable {
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static <T> R<T> restResult(T data, int code, String msg,String detailMessage) {
|
||||||
|
R<T> r = new R<>();
|
||||||
|
r.setCode(code);
|
||||||
|
r.setData(data);
|
||||||
|
r.setMsg(msg);
|
||||||
|
r.setDetailMessage(detailMessage);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
public static <T> Boolean isError(R<T> ret) {
|
public static <T> Boolean isError(R<T> ret) {
|
||||||
return !isSuccess(ret);
|
return !isSuccess(ret);
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,6 +40,12 @@ public final class ServiceException extends RuntimeException {
|
||||||
this.code = code;
|
this.code = code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ServiceException(String message, Integer code,String detailMessage) {
|
||||||
|
this.message = message;
|
||||||
|
this.code = code;
|
||||||
|
this.detailMessage = detailMessage;
|
||||||
|
}
|
||||||
|
|
||||||
public String getDetailMessage() {
|
public String getDetailMessage() {
|
||||||
return detailMessage;
|
return detailMessage;
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,7 +62,7 @@ public class GlobalExceptionHandler {
|
||||||
public R<Void> handleServiceException(ServiceException e, HttpServletRequest request) {
|
public R<Void> handleServiceException(ServiceException e, HttpServletRequest request) {
|
||||||
log.error(e.getMessage());
|
log.error(e.getMessage());
|
||||||
Integer code = e.getCode();
|
Integer code = e.getCode();
|
||||||
return ObjectUtil.isNotNull(code) ? R.fail(code, e.getMessage()) : R.fail(e.getMessage());
|
return ObjectUtil.isNotNull(code) ? R.fail(code, e.getMessage(),e.getDetailMessage()) : R.fail(e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue