库存欠缺入库测试
This commit is contained in:
@@ -87,6 +87,18 @@ public class SysOaOutWarehouseController extends BaseController {
|
||||
return iSysOaOutWarehouseService.queryWarehouseIdList(WarehouseId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询仓库出库产品id的列表
|
||||
*
|
||||
* @param projectId 出库产品id
|
||||
*/
|
||||
@SaCheckPermission("oa:oaOutWarehouse:query")
|
||||
@GetMapping("/project/{projectId}")
|
||||
public TableDataInfo<SysOaOutWarehouseVo> queryOutWarehouseByProjectId(@NotNull(message = "项目名不能为空")
|
||||
@PathVariable Long projectId) {
|
||||
return iSysOaOutWarehouseService.queryOutWarehouseByProjectId(projectId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -5,6 +5,8 @@ import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
||||
import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo;
|
||||
import com.ruoyi.oa.mapper.SysOaTaskMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@@ -40,6 +42,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
|
||||
public class SysOaProjectController extends BaseController {
|
||||
|
||||
private final ISysOaProjectService iSysOaProjectService;
|
||||
|
||||
private final SysOaTaskMapper sysOaTaskMapper;
|
||||
|
||||
/**
|
||||
@@ -113,4 +116,13 @@ public class SysOaProjectController extends BaseController {
|
||||
});
|
||||
return toAjax(iSysOaProjectService.deleteWithValidByIds(Arrays.asList(projectIds), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询项目是否存在出库记录
|
||||
*/
|
||||
@SaCheckPermission("oa:project:list")
|
||||
@GetMapping("/outWare/list")
|
||||
public TableDataInfo<SysOaOutWarehouseListVo> outWareList(SysOaOutWarehouseBo bo, PageQuery pageQuery) {
|
||||
return iSysOaProjectService.queryOutWarePageList(bo, pageQuery);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
@@ -16,21 +17,11 @@ import lombok.Data;
|
||||
@ExcelIgnoreUnannotated
|
||||
public class SysOaOutWarehouseListVo {
|
||||
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 出库后对应的项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 出库数量
|
||||
*/
|
||||
private Long amount;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
@@ -38,19 +29,13 @@ public class SysOaOutWarehouseListVo {
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 出库备注
|
||||
* 出库表
|
||||
*/
|
||||
private String remark;
|
||||
private List<SysOaOutWarehouseVo> outWarehouseVoList;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 出库对象id
|
||||
*/
|
||||
private Long warehouseId;
|
||||
|
||||
/**
|
||||
* 出库物料名称
|
||||
*/
|
||||
private String warehouseName;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.ruoyi.oa.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@@ -14,7 +15,7 @@ import lombok.Data;
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class SysOaOutWarehouseVo {
|
||||
public class SysOaOutWarehouseVo extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -48,5 +49,11 @@ public class SysOaOutWarehouseVo {
|
||||
@ExcelProperty(value = "出库对象id")
|
||||
private Long warehouseId;
|
||||
|
||||
/** 库存物料名 */
|
||||
private String warehouseName;
|
||||
|
||||
/** 项目名 */
|
||||
private String projectName;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ public interface SysOaOutWarehouseMapper extends BaseMapperPlus<SysOaOutWarehous
|
||||
/**
|
||||
* 仓库出库筛选(联查)
|
||||
*/
|
||||
List<SysOaOutWarehouseListVo> defineselectList(@Param(value = "bo") SysOaOutWarehouseBo bo, @Param(value = "page") PageQuery pageQuery);
|
||||
List<SysOaOutWarehouseListVo> defineSelectList(@Param(value = "bo") SysOaOutWarehouseBo bo, @Param(value = "page") PageQuery pageQuery);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +1,16 @@
|
||||
package com.ruoyi.oa.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.oa.domain.SysOaOutWarehouse;
|
||||
import com.ruoyi.oa.domain.SysOaProject;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaProjectVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 项目管理Mapper接口
|
||||
@@ -13,4 +20,6 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
*/
|
||||
public interface SysOaProjectMapper extends BaseMapperPlus<SysOaProjectMapper, SysOaProject, SysOaProjectVo> {
|
||||
|
||||
Page<SysOaOutWarehouseListVo> selectPageOutList(@Param("page") Page<SysOaOutWarehouseListVo> page,@Param(Constants.WRAPPER) Wrapper<SysOaProject> queryWrapper);
|
||||
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@@ -62,4 +63,6 @@ public interface ISysOaOutWarehouseService {
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
|
||||
TableDataInfo<SysOaOutWarehouseVo> queryOutWarehouseByProjectId(@NotNull(message = "项目名不能为空") Long projectId);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.ruoyi.oa.service;
|
||||
|
||||
import com.ruoyi.oa.domain.SysOaProject;
|
||||
import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaProjectVo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaProjectBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
@@ -46,4 +47,6 @@ public interface ISysOaProjectService {
|
||||
* 校验并批量删除项目管理信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
TableDataInfo<SysOaOutWarehouseListVo> queryOutWarePageList(SysOaOutWarehouseBo bo, PageQuery pageQuery);
|
||||
}
|
||||
|
||||
@@ -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.defineselectList(bo, pageQuery);
|
||||
List<SysOaOutWarehouseListVo> result = baseMapper.defineSelectList(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 = baseMapper2.selectById(decrease.getWarehouseId());
|
||||
SysOaWarehouse warehouse = warehouseMapper.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());
|
||||
baseMapper2.updateById(warehouse);
|
||||
warehouseMapper.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 = baseMapper2.selectOne(lqw);
|
||||
SysOaWarehouse warehouse = warehouseMapper.selectOne(lqw);
|
||||
Long inventory = warehouse.getInventory();
|
||||
|
||||
//出库多了
|
||||
@@ -180,7 +202,7 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
||||
//可以减少差值
|
||||
baseMapper.updateById(update);
|
||||
warehouse.setInventory(inventory -( amount1 - amount));
|
||||
baseMapper2.updateById(warehouse);
|
||||
warehouseMapper.updateById(warehouse);
|
||||
}
|
||||
else {
|
||||
throw new Error("库存数量不足,无法增加出库数量");
|
||||
@@ -192,7 +214,7 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
||||
//此时增加差值
|
||||
baseMapper.updateById(update);
|
||||
warehouse.setInventory(warehouse.getInventory() + amount - amount1);
|
||||
baseMapper2.updateById(warehouse);
|
||||
warehouseMapper.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 = baseMapper2.selectOne(lqw2);
|
||||
SysOaWarehouse warehouse = warehouseMapper.selectOne(lqw2);
|
||||
|
||||
// 恢复原本出库的数量
|
||||
warehouse.setInventory(warehouse.getInventory() + sysOaOutWarehouse.getAmount());
|
||||
baseMapper2.updateById(warehouse);
|
||||
warehouseMapper.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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
package com.ruoyi.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.ruoyi.oa.domain.SysOaContract;
|
||||
import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.oa.domain.bo.SysOaProjectBo;
|
||||
@@ -111,4 +113,25 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService {
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询项目出库记录
|
||||
*
|
||||
* @param bo
|
||||
* @param pageQuery
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SysOaOutWarehouseListVo> queryOutWarePageList(SysOaOutWarehouseBo bo, PageQuery pageQuery) {
|
||||
Page<SysOaOutWarehouseListVo> page = baseMapper.selectPageOutList(pageQuery.build(), this.buildOutWareQueryWrapper(bo));
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
private QueryWrapper<SysOaProject> buildOutWareQueryWrapper(SysOaOutWarehouseBo bo) {
|
||||
QueryWrapper<SysOaProject> lqw = Wrappers.query();
|
||||
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), "sop.projec_name", bo.getProjectName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getWarehouseName()), "sow.name", bo.getWarehouseName());
|
||||
lqw.orderByDesc("sop.create_time");
|
||||
return lqw;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user