柜体出库查询某产品列表开发完成,修正出库业务逻辑
This commit is contained in:
@@ -39,6 +39,8 @@ public class SysOaOutWarehouseController extends BaseController {
|
|||||||
|
|
||||||
private final ISysOaOutWarehouseService iSysOaOutWarehouseService;
|
private final ISysOaOutWarehouseService iSysOaOutWarehouseService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询仓库出库列表
|
* 查询仓库出库列表
|
||||||
*/
|
*/
|
||||||
@@ -71,6 +73,20 @@ public class SysOaOutWarehouseController extends BaseController {
|
|||||||
return R.ok(iSysOaOutWarehouseService.queryById(id));
|
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);
|
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);
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,20 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
|||||||
return baseMapper.selectVoById(id);
|
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
|
@Override
|
||||||
public Boolean insertByBo(SysOaOutWarehouseBo bo) {
|
public Boolean insertByBo(SysOaOutWarehouseBo bo) {
|
||||||
SysOaOutWarehouse add = BeanUtil.toBean(bo, SysOaOutWarehouse.class);
|
SysOaOutWarehouse decrease = BeanUtil.toBean(bo, SysOaOutWarehouse.class);
|
||||||
validEntityBeforeSave(add);
|
validEntityBeforeSave(decrease);
|
||||||
// 1、查询出库表中是否已存在该项目的出库记录
|
SysOaWarehouse warehouse = baseMapper2.selectById(decrease.getWarehouseId());
|
||||||
LambdaQueryWrapper<SysOaOutWarehouse> lqw = buildQueryWrapper(bo);
|
// 1 如果对应仓库表项目数量-将要出库数量<0,出库失败, 繁殖 , 增加该条
|
||||||
lqw.eq( SysOaOutWarehouse::getWarehouseId, add.getWarehouseId());
|
if(warehouse.getInventory() - decrease.getAmount() < 0) {
|
||||||
SysOaOutWarehouse sysOaOutWarehouse = baseMapper.selectOne(lqw);
|
throw new Error("剩余数量不足,出库失败");
|
||||||
// 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;
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(warehouse.getInventory() - add.getAmount() < 0) {
|
warehouse.setInventory(warehouse.getInventory() - decrease.getAmount());
|
||||||
throw new Error("剩余数量不足,出库失败");
|
baseMapper2.updateById(warehouse);
|
||||||
}
|
|
||||||
else {
|
|
||||||
warehouse.setInventory(warehouse.getInventory() - add.getAmount());
|
|
||||||
baseMapper2.updateById(warehouse);
|
|
||||||
}
|
|
||||||
flag = baseMapper.insert(add) > 0;
|
|
||||||
}
|
}
|
||||||
// if (flag) {
|
|
||||||
// bo.setId(add.getId());
|
// 2、减少仓库表中对应项目的数量
|
||||||
// }
|
return baseMapper.insert(decrease) > 0;
|
||||||
return flag;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -140,4 +133,6 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
|||||||
}
|
}
|
||||||
return baseMapper.deleteBatchIds(ids) > 0;
|
return baseMapper.deleteBatchIds(ids) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user