refactor: 库存不足提示优化

This commit is contained in:
zccbbg 2024-09-15 21:55:46 +08:00
parent c2b34bd747
commit fc3d85a08e
6 changed files with 44 additions and 23 deletions

View file

@ -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);

View file

@ -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())) {

View file

@ -71,6 +71,11 @@ public interface HttpStatus {
*/ */
int CONFLICT = 409; int CONFLICT = 409;
/**
* 资源不被允许访问
*/
int NOT_ACCEPTABLE = 406;
/** /**
* 不支持的数据媒体类型 * 不支持的数据媒体类型
*/ */

View file

@ -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);
} }

View file

@ -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;
} }

View file

@ -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());
} }
/** /**