@@ -2,6 +2,7 @@ package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil ;
import cn.hutool.core.util.ObjectUtil ;
import com.baomidou.mybatisplus.core.metadata.IPage ;
import com.ruoyi.common.core.domain.R ;
import com.ruoyi.common.utils.StringUtils ;
import com.ruoyi.common.core.page.TableDataInfo ;
@@ -16,7 +17,9 @@ import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBoList;
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo ;
import com.ruoyi.oa.mapper.SysOaProjectMapper ;
import com.ruoyi.oa.mapper.SysOaWarehouseMapper ;
import com.ruoyi.oa.service.ISysOaWarehouseService ;
import lombok.RequiredArgsConstructor ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.stereotype.Service ;
import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo ;
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseVo ;
@@ -43,7 +46,13 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
private final SysOaOutWarehouseMapper baseMapper ;
private final SysOaWarehouseMapper baseMapper2 ;
@Autowired
private SysOaWarehouseMapper warehouseMapper ;
@Autowired
private SysOaProjectMapper projectMapper ;
/**
* 查询仓库出库
@@ -63,6 +72,9 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
public TableDataInfo < SysOaOutWarehouseVo > queryWarehouseIdList ( Long WarehouseId ) {
LambdaQueryWrapper < SysOaOutWarehouse > lqw = Wrappers . lambdaQuery ( ) ;
lqw . eq ( SysOaOutWarehouse : : getWarehouseId , WarehouseId ) ;
for ( SysOaOutWarehouseVo sysOaOutWarehouseVo : baseMapper . selectVoList ( lqw ) ) {
sysOaOutWarehouseVo . setWarehouseName ( warehouseMapper . selectById ( sysOaOutWarehouseVo . getWarehouseId ( ) ) . getName ( ) ) ;
}
return TableDataInfo . build ( baseMapper . selectVoList ( lqw ) ) ;
}
@@ -74,6 +86,12 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
public TableDataInfo < SysOaOutWarehouseListVo > queryPageList ( SysOaOutWarehouseBo bo , PageQuery pageQuery ) {
// LambdaQueryWrapper<SysOaOutWarehouse> lqw = buildQueryWrapper(bo);
// Page<SysOaOutWarehouseVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
// for (SysOaOutWarehouseVo record : result.getRecords()) {
// record.setWarehouseName(warehouseMapper.selectVoById(record.getWarehouseId()).getName());
// record.setProjectName(warehouseMapper.selectVoById(record.getProjectId()).getName());
// }
// TODO 这么写分页失效
pageQuery . setPageNum ( ObjectUtil . defaultIfNull ( pageQuery . getPageNum ( ) , 1 ) ) ;
pageQuery . setPageSize ( ObjectUtil . defaultIfNull ( pageQuery . getPageSize ( ) , Integer . MAX_VALUE ) ) ;
if ( pageQuery . getPageNum ( ) < = 0 ) {
@@ -83,7 +101,11 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
pageQuery . setPageSize ( Integer . MAX_VALUE ) ;
}
pageQuery . setPageNum ( ( pageQuery . getPageNum ( ) - 1 ) * pageQuery . getPageSize ( ) ) ;
List < SysOaOutWarehouseListVo > result = baseMapper . defines electList ( bo , pageQuery ) ;
List < SysOaOutWarehouseListVo > result = baseMapper . defineS electList ( bo , pageQuery ) ;
// IPage<SysOaOutWarehouseListVo> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize());
// page.setRecords(result);
// page.setTotal()
return TableDataInfo . build ( result ) ;
}
@@ -114,7 +136,7 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
public Boolean insertByBo ( SysOaOutWarehouseBo bo ) {
SysOaOutWarehouse decrease = toBean ( bo , SysOaOutWarehouse . class ) ;
validEntityBeforeSave ( decrease ) ;
SysOaWarehouse warehouse = ba seMapper2 . selectById ( decrease . getWarehouseId ( ) ) ;
SysOaWarehouse warehouse = warehou seMapper. selectById ( decrease . getWarehouseId ( ) ) ;
// 1 如果对应仓库表项目数量-将要出库数量<0, 出库失败, 繁殖 , 增加该条
if ( warehouse = = null ) {
throw new Error ( " 已不存在该物料 " + decrease . getWarehouseId ( ) ) ;
@@ -124,7 +146,7 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
}
else {
warehouse . setInventory ( warehouse . getInventory ( ) - decrease . getAmount ( ) ) ;
ba seMapper2 . updateById ( warehouse ) ;
warehou seMapper. updateById ( warehouse ) ;
}
// 2、减少仓库表中对应项目的数量
@@ -170,7 +192,7 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
//找出库存表对应的那条数据 的库存数量
LambdaQueryWrapper < SysOaWarehouse > lqw = Wrappers . lambdaQuery ( ) ;
lqw . eq ( SysOaWarehouse : : getId , update . getWarehouseId ( ) ) ;
SysOaWarehouse warehouse = ba seMapper2 . selectOne ( lqw ) ;
SysOaWarehouse warehouse = warehou seMapper. selectOne ( lqw ) ;
Long inventory = warehouse . getInventory ( ) ;
//出库多了
@@ -180,7 +202,7 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
//可以减少差值
baseMapper . updateById ( update ) ;
warehouse . setInventory ( inventory - ( amount1 - amount ) ) ;
ba seMapper2 . updateById ( warehouse ) ;
warehou seMapper. updateById ( warehouse ) ;
}
else {
throw new Error ( " 库存数量不足,无法增加出库数量 " ) ;
@@ -192,7 +214,7 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
//此时增加差值
baseMapper . updateById ( update ) ;
warehouse . setInventory ( warehouse . getInventory ( ) + amount - amount1 ) ;
ba seMapper2 . updateById ( warehouse ) ;
warehou seMapper. updateById ( warehouse ) ;
}
else {
throw new Error ( " 出库数量不能为负 " ) ;
@@ -230,15 +252,31 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
//选出相对应的 库存表中那一条的数据
LambdaQueryWrapper < SysOaWarehouse > lqw2 = Wrappers . lambdaQuery ( ) ;
lqw2 . eq ( SysOaWarehouse : : getId , sysOaOutWarehouse . getWarehouseId ( ) ) ;
SysOaWarehouse warehouse = ba seMapper2 . selectOne ( lqw2 ) ;
SysOaWarehouse warehouse = warehou seMapper. selectOne ( lqw2 ) ;
// 恢复原本出库的数量
warehouse . setInventory ( warehouse . getInventory ( ) + sysOaOutWarehouse . getAmount ( ) ) ;
ba seMapper2 . updateById ( warehouse ) ;
warehou seMapper. updateById ( warehouse ) ;
} ) ;
boolean flag = baseMapper . deleteBatchIds ( ids ) > 0 ;
return flag ;
}
/**
* 根据项目id查出库
* @param projectId
* @return
*/
@Override
public TableDataInfo < SysOaOutWarehouseVo > queryOutWarehouseByProjectId ( Long projectId ) {
LambdaQueryWrapper < SysOaOutWarehouse > lqw = Wrappers . lambdaQuery ( ) ;
lqw . eq ( SysOaOutWarehouse : : getProjectId , projectId ) ;
List < SysOaOutWarehouseVo > sysOaOutWarehouseVos = baseMapper . selectVoList ( lqw ) ;
for ( SysOaOutWarehouseVo sysOaOutWarehouseVo : sysOaOutWarehouseVos ) {
sysOaOutWarehouseVo . setWarehouseName ( warehouseMapper . selectById ( sysOaOutWarehouseVo . getWarehouseId ( ) ) . getName ( ) ) ;
}
return TableDataInfo . build ( sysOaOutWarehouseVos ) ;
}
}