柜体出库查询某产品列表开发完成,修正出库业务逻辑
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 新增仓库出库
|
||||
*/
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user