diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaOutWarehouseController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaOutWarehouseController.java index 0c2dc83..a6a80ee 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaOutWarehouseController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaOutWarehouseController.java @@ -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 ListByWarehouseId(@NotNull(message = "出库产品ID不能为空") + @PathVariable Long WarehouseId) { + return iSysOaOutWarehouseService.queryWarehouseIdList(WarehouseId); + } + + + /** * 新增仓库出库 */ diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaOutWarehouseService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaOutWarehouseService.java index 278f231..1baf494 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaOutWarehouseService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaOutWarehouseService.java @@ -22,6 +22,13 @@ public interface ISysOaOutWarehouseService { */ SysOaOutWarehouseVo queryById(Long id); + /** + * 查询仓库出库产品id的列表 + * + * @param WarehouseId 出库产品id + */ + TableDataInfo queryWarehouseIdList(Long WarehouseId); + /** * 查询仓库出库列表 */ @@ -46,4 +53,7 @@ public interface ISysOaOutWarehouseService { * 校验并批量删除仓库出库信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java index 9be8f34..1773622 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java @@ -43,6 +43,20 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { return baseMapper.selectVoById(id); } + + /** + * 查询仓库出库产品id的列表 + * + * @param WarehouseId 出库产品id + */ + @Override + public TableDataInfo queryWarehouseIdList(Long WarehouseId) { + LambdaQueryWrapper 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 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; } + + }