柜体出库查询某产品列表开发完成,修正出库业务逻辑

This commit is contained in:
刘宗坤
2024-11-03 15:03:24 +08:00
parent 8f95164c28
commit 256952f0cb
3 changed files with 53 additions and 32 deletions

View File

@@ -39,6 +39,8 @@ public class SysOaOutWarehouseController extends BaseController {
private final ISysOaOutWarehouseService iSysOaOutWarehouseService;
/**
* 查询仓库出库列表
*/
@@ -71,6 +73,20 @@ public class SysOaOutWarehouseController extends BaseController {
return R.ok(iSysOaOutWarehouseService.queryById(id));
}
/**
* 查询仓库出库产品id的列表
*
* @param WarehouseId 出库产品id
*/
@SaCheckPermission("oa:oaOutWarehouse:query")
@GetMapping("/WarehouseIdList/{WarehouseId}")
public TableDataInfo<SysOaOutWarehouseVo> ListByWarehouseId(@NotNull(message = "出库产品ID不能为空")
@PathVariable Long WarehouseId) {
return iSysOaOutWarehouseService.queryWarehouseIdList(WarehouseId);
}
/**
* 新增仓库出库
*/

View File

@@ -22,6 +22,13 @@ public interface ISysOaOutWarehouseService {
*/
SysOaOutWarehouseVo queryById(Long id);
/**
* 查询仓库出库产品id的列表
*
* @param WarehouseId 出库产品id
*/
TableDataInfo<SysOaOutWarehouseVo> queryWarehouseIdList(Long WarehouseId);
/**
* 查询仓库出库列表
*/
@@ -46,4 +53,7 @@ public interface ISysOaOutWarehouseService {
* 校验并批量删除仓库出库信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -43,6 +43,20 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
return baseMapper.selectVoById(id);
}
/**
* 查询仓库出库产品id的列表
*
* @param WarehouseId 出库产品id
*/
@Override
public TableDataInfo<SysOaOutWarehouseVo> queryWarehouseIdList(Long WarehouseId) {
LambdaQueryWrapper<SysOaOutWarehouse> lqw = Wrappers.lambdaQuery();
lqw.eq(SysOaOutWarehouse::getWarehouseId, WarehouseId);
return TableDataInfo.build(baseMapper.selectVoList(lqw));
}
/**
* 查询仓库出库列表
*/
@@ -76,41 +90,20 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
*/
@Override
public Boolean insertByBo(SysOaOutWarehouseBo bo) {
SysOaOutWarehouse add = BeanUtil.toBean(bo, SysOaOutWarehouse.class);
validEntityBeforeSave(add);
// 1、查询出库表中是否已存在该项目的出库记录
LambdaQueryWrapper<SysOaOutWarehouse> lqw = buildQueryWrapper(bo);
lqw.eq( SysOaOutWarehouse::getWarehouseId, add.getWarehouseId());
SysOaOutWarehouse sysOaOutWarehouse = baseMapper.selectOne(lqw);
// 2、查询结果为空不为空 则 增加该条的出库数量,或者查询结果为空 则 添加一条
// 3、删除仓库表中对应项目 ,如果对应仓库表项目数量-出库数量<0出库失败, 反之,成功,则进行项目数量减少的更新
SysOaWarehouse warehouse = baseMapper2.selectById(add.getWarehouseId());
boolean flag;
if(sysOaOutWarehouse != null){
sysOaOutWarehouse.setAmount(sysOaOutWarehouse.getAmount()+add.getAmount());
if(warehouse.getInventory() - sysOaOutWarehouse.getAmount() < 0) {
throw new Error("剩余数量不足,出库失败");
}
else {
warehouse.setInventory(warehouse.getInventory() - sysOaOutWarehouse.getAmount());
baseMapper2.updateById(warehouse);
}
flag = baseMapper.updateById(sysOaOutWarehouse) > 0;
SysOaOutWarehouse decrease = BeanUtil.toBean(bo, SysOaOutWarehouse.class);
validEntityBeforeSave(decrease);
SysOaWarehouse warehouse = baseMapper2.selectById(decrease.getWarehouseId());
// 1 如果对应仓库表项目数量-将要出库数量<0出库失败, 繁殖 增加该条
if(warehouse.getInventory() - decrease.getAmount() < 0) {
throw new Error("剩余数量不足,出库失败");
}
else {
if(warehouse.getInventory() - add.getAmount() < 0) {
throw new Error("剩余数量不足,出库失败");
}
else {
warehouse.setInventory(warehouse.getInventory() - add.getAmount());
baseMapper2.updateById(warehouse);
}
flag = baseMapper.insert(add) > 0;
warehouse.setInventory(warehouse.getInventory() - decrease.getAmount());
baseMapper2.updateById(warehouse);
}
// if (flag) {
// bo.setId(add.getId());
// }
return flag;
// 2、减少仓库表中对应项目的数量
return baseMapper.insert(decrease) > 0;
}
/**
@@ -140,4 +133,6 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}