修复入库管理bug

This commit is contained in:
Richie 2025-06-05 18:44:52 +08:00
parent 1871325394
commit b39bb183e7
12 changed files with 56 additions and 54 deletions

View File

@ -6,10 +6,10 @@ import cn.qihangerp.common.PageQuery;
import cn.qihangerp.common.ResultVo; import cn.qihangerp.common.ResultVo;
import cn.qihangerp.common.TableDataInfo; import cn.qihangerp.common.TableDataInfo;
import cn.qihangerp.module.stock.domain.WmsStockIn; import cn.qihangerp.module.stock.domain.ErpStockIn;
import cn.qihangerp.module.stock.request.StockInCreateRequest; import cn.qihangerp.module.stock.request.StockInCreateRequest;
import cn.qihangerp.module.stock.request.StockInRequest; import cn.qihangerp.module.stock.request.StockInRequest;
import cn.qihangerp.module.stock.service.WmsStockInService; import cn.qihangerp.module.stock.service.ErpStockInService;
import cn.qihangerp.security.common.BaseController; import cn.qihangerp.security.common.BaseController;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -18,9 +18,9 @@ import org.springframework.web.bind.annotation.*;
@RestController @RestController
@RequestMapping("/stockIn") @RequestMapping("/stockIn")
public class StockInController extends BaseController { public class StockInController extends BaseController {
private final WmsStockInService stockInService; private final ErpStockInService stockInService;
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(WmsStockIn bo, PageQuery pageQuery) public TableDataInfo list(ErpStockIn bo, PageQuery pageQuery)
{ {
var pageList = stockInService.queryPageList(bo,pageQuery); var pageList = stockInService.queryPageList(bo,pageQuery);
return getDataTable(pageList); return getDataTable(pageList);
@ -47,7 +47,7 @@ public class StockInController extends BaseController {
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) public AjaxResult getInfo(@PathVariable("id") Long id)
{ {
WmsStockIn entry = stockInService.getDetailAndItemById(id); ErpStockIn entry = stockInService.getDetailAndItemById(id);
return success(entry); return success(entry);
} }

View File

@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping("/stockOut") @RequestMapping("/stockOut")
public class StockOutController extends BaseController { public class StockOutController extends BaseController {
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(OGoodsSku bo, PageQuery pageQuery) public TableDataInfo list(OGoodsSku bo, PageQuery pageQuery)
{ {

View File

@ -14,7 +14,7 @@ import lombok.Data;
* @TableName wms_stock_in * @TableName wms_stock_in
*/ */
@Data @Data
public class WmsStockIn implements Serializable { public class ErpStockIn implements Serializable {
/** /**
* 主键ID * 主键ID
*/ */
@ -102,7 +102,7 @@ public class WmsStockIn implements Serializable {
private Date updateTime; private Date updateTime;
@TableField(exist = false) @TableField(exist = false)
private List<WmsStockInItem> itemList; private List<ErpStockInItem> itemList;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }

View File

@ -11,7 +11,7 @@ import lombok.Data;
* @TableName wms_stock_in_item * @TableName wms_stock_in_item
*/ */
@Data @Data
public class WmsStockInItem implements Serializable { public class ErpStockInItem implements Serializable {
/** /**
* *
*/ */

View File

@ -1,7 +1,7 @@
package cn.qihangerp.module.stock.mapper; package cn.qihangerp.module.stock.mapper;
import cn.qihangerp.module.stock.domain.WmsStockInItem; import cn.qihangerp.module.stock.domain.ErpStockInItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-09-22 16:28:57 * @createDate 2024-09-22 16:28:57
* @Entity cn.qihangerp.wms.domain.WmsStockInItem * @Entity cn.qihangerp.wms.domain.WmsStockInItem
*/ */
public interface WmsStockInItemMapper extends BaseMapper<WmsStockInItem> { public interface ErpStockInItemMapper extends BaseMapper<ErpStockInItem> {
} }

View File

@ -1,7 +1,7 @@
package cn.qihangerp.module.stock.mapper; package cn.qihangerp.module.stock.mapper;
import cn.qihangerp.module.stock.domain.WmsStockIn; import cn.qihangerp.module.stock.domain.ErpStockIn;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-09-22 16:10:08 * @createDate 2024-09-22 16:10:08
* @Entity cn.qihangerp.wms.domain.WmsStockIn * @Entity cn.qihangerp.wms.domain.WmsStockIn
*/ */
public interface WmsStockInMapper extends BaseMapper<WmsStockIn> { public interface ErpStockInMapper extends BaseMapper<ErpStockIn> {
} }

View File

@ -1,7 +1,7 @@
package cn.qihangerp.module.stock.service; package cn.qihangerp.module.stock.service;
import cn.qihangerp.module.stock.domain.WmsStockInItem; import cn.qihangerp.module.stock.domain.ErpStockInItem;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
/** /**
@ -9,6 +9,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @description 针对表wms_stock_in_item(入库单明细)的数据库操作Service * @description 针对表wms_stock_in_item(入库单明细)的数据库操作Service
* @createDate 2024-09-22 16:28:57 * @createDate 2024-09-22 16:28:57
*/ */
public interface WmsStockInItemService extends IService<WmsStockInItem> { public interface ErpStockInItemService extends IService<ErpStockInItem> {
} }

View File

@ -1,10 +1,11 @@
package cn.qihangerp.module.stock.service; package cn.qihangerp.module.stock.service;
import cn.qihangerp.common.PageQuery; import cn.qihangerp.common.PageQuery;
import cn.qihangerp.common.PageResult; import cn.qihangerp.common.PageResult;
import cn.qihangerp.common.ResultVo; import cn.qihangerp.common.ResultVo;
import cn.qihangerp.module.stock.domain.WmsStockIn; import cn.qihangerp.module.stock.domain.ErpStockIn;
import cn.qihangerp.module.stock.request.StockInCreateRequest; import cn.qihangerp.module.stock.request.StockInCreateRequest;
import cn.qihangerp.module.stock.request.StockInRequest; import cn.qihangerp.module.stock.request.StockInRequest;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
@ -14,10 +15,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @description 针对表wms_stock_in(入库单)的数据库操作Service * @description 针对表wms_stock_in(入库单)的数据库操作Service
* @createDate 2024-09-22 16:10:08 * @createDate 2024-09-22 16:10:08
*/ */
public interface WmsStockInService extends IService<WmsStockIn> { public interface ErpStockInService extends IService<ErpStockIn> {
PageResult<WmsStockIn> queryPageList(WmsStockIn bo, PageQuery pageQuery); PageResult<ErpStockIn> queryPageList(ErpStockIn bo, PageQuery pageQuery);
ResultVo<Long> createEntry(Long userId, String userName, StockInCreateRequest request); ResultVo<Long> createEntry(Long userId, String userName, StockInCreateRequest request);
ResultVo<Long> stockIn(Long userId, String userName, StockInRequest request); ResultVo<Long> stockIn(Long userId, String userName, StockInRequest request);
WmsStockIn getDetailAndItemById(Long id); ErpStockIn getDetailAndItemById(Long id);
} }

View File

@ -1,8 +1,8 @@
package cn.qihangerp.module.stock.service.impl; package cn.qihangerp.module.stock.service.impl;
import cn.qihangerp.module.stock.domain.WmsStockInItem; import cn.qihangerp.module.stock.domain.ErpStockInItem;
import cn.qihangerp.module.stock.mapper.WmsStockInItemMapper; import cn.qihangerp.module.stock.mapper.ErpStockInItemMapper;
import cn.qihangerp.module.stock.service.WmsStockInItemService; import cn.qihangerp.module.stock.service.ErpStockInItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -13,8 +13,8 @@ import org.springframework.stereotype.Service;
* @createDate 2024-09-22 16:28:57 * @createDate 2024-09-22 16:28:57
*/ */
@Service @Service
public class WmsStockInItemServiceImpl extends ServiceImpl<WmsStockInItemMapper, WmsStockInItem> public class ErpStockInItemServiceImpl extends ServiceImpl<ErpStockInItemMapper, ErpStockInItem>
implements WmsStockInItemService { implements ErpStockInItemService {
} }

View File

@ -10,15 +10,15 @@ import cn.qihangerp.module.goods.domain.OGoodsInventory;
import cn.qihangerp.module.goods.domain.OGoodsInventoryBatch; import cn.qihangerp.module.goods.domain.OGoodsInventoryBatch;
import cn.qihangerp.module.goods.service.OGoodsInventoryBatchService; import cn.qihangerp.module.goods.service.OGoodsInventoryBatchService;
import cn.qihangerp.module.goods.service.OGoodsInventoryService; import cn.qihangerp.module.goods.service.OGoodsInventoryService;
import cn.qihangerp.module.stock.domain.WmsStockIn; import cn.qihangerp.module.stock.domain.ErpStockIn;
import cn.qihangerp.module.stock.domain.WmsStockInItem; import cn.qihangerp.module.stock.domain.ErpStockInItem;
import cn.qihangerp.module.stock.mapper.WmsStockInMapper; import cn.qihangerp.module.stock.mapper.ErpStockInMapper;
import cn.qihangerp.module.stock.request.StockInCreateItem; import cn.qihangerp.module.stock.request.StockInCreateItem;
import cn.qihangerp.module.stock.request.StockInCreateRequest; import cn.qihangerp.module.stock.request.StockInCreateRequest;
import cn.qihangerp.module.stock.request.StockInItem; import cn.qihangerp.module.stock.request.StockInItem;
import cn.qihangerp.module.stock.request.StockInRequest; import cn.qihangerp.module.stock.request.StockInRequest;
import cn.qihangerp.module.stock.service.WmsStockInItemService; import cn.qihangerp.module.stock.service.ErpStockInItemService;
import cn.qihangerp.module.stock.service.WmsStockInService; import cn.qihangerp.module.stock.service.ErpStockInService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -41,23 +41,23 @@ import java.util.stream.Collectors;
*/ */
@AllArgsConstructor @AllArgsConstructor
@Service @Service
public class WmsStockInServiceImpl extends ServiceImpl<WmsStockInMapper, WmsStockIn> public class ErpStockInServiceImpl extends ServiceImpl<ErpStockInMapper, ErpStockIn>
implements WmsStockInService { implements ErpStockInService {
private final WmsStockInMapper mapper; private final ErpStockInMapper mapper;
private final WmsStockInItemService inItemService; private final ErpStockInItemService inItemService;
private final OGoodsInventoryBatchService inventoryBatchService; private final OGoodsInventoryBatchService inventoryBatchService;
private final OGoodsInventoryService inventoryService; private final OGoodsInventoryService inventoryService;
@Override @Override
public PageResult<WmsStockIn> queryPageList(WmsStockIn bo, PageQuery pageQuery) { public PageResult<ErpStockIn> queryPageList(ErpStockIn bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsStockIn> queryWrapper = new LambdaQueryWrapper<WmsStockIn>() LambdaQueryWrapper<ErpStockIn> queryWrapper = new LambdaQueryWrapper<ErpStockIn>()
.eq( bo.getStatus()!=null,WmsStockIn::getStatus, bo.getStatus()) .eq( bo.getStatus()!=null, ErpStockIn::getStatus, bo.getStatus())
.eq( bo.getStockInType()!=null,WmsStockIn::getStockInType, bo.getStockInType()) .eq( bo.getStockInType()!=null, ErpStockIn::getStockInType, bo.getStockInType())
.eq(StringUtils.isNotBlank(bo.getStockInNum()),WmsStockIn::getStockInNum, bo.getStockInNum()) .eq(StringUtils.isNotBlank(bo.getStockInNum()), ErpStockIn::getStockInNum, bo.getStockInNum())
.eq(StringUtils.isNotBlank(bo.getSourceNo()),WmsStockIn::getSourceNo, bo.getSourceNo()) .eq(StringUtils.isNotBlank(bo.getSourceNo()), ErpStockIn::getSourceNo, bo.getSourceNo())
.eq(bo.getSourceId()!=null,WmsStockIn::getSourceId, bo.getSourceId()) .eq(bo.getSourceId()!=null, ErpStockIn::getSourceId, bo.getSourceId())
; ;
Page<WmsStockIn> pages = mapper.selectPage(pageQuery.build(), queryWrapper); Page<ErpStockIn> pages = mapper.selectPage(pageQuery.build(), queryWrapper);
return PageResult.build(pages); return PageResult.build(pages);
} }
@ -78,7 +78,7 @@ public class WmsStockInServiceImpl extends ServiceImpl<WmsStockInMapper, WmsStoc
(Collectors.groupingBy(x -> x.getGoodsId())); (Collectors.groupingBy(x -> x.getGoodsId()));
Long total = request.getItemList().stream().mapToLong(StockInCreateItem::getQuantity).sum(); Long total = request.getItemList().stream().mapToLong(StockInCreateItem::getQuantity).sum();
//添加主表信息 //添加主表信息
WmsStockIn insert = new WmsStockIn(); ErpStockIn insert = new ErpStockIn();
insert.setStockInNum(request.getStockInNum()); insert.setStockInNum(request.getStockInNum());
insert.setStockInType(request.getStockInType()); insert.setStockInType(request.getStockInType());
insert.setStockInOperator(request.getStockInOperator()); insert.setStockInOperator(request.getStockInOperator());
@ -95,9 +95,9 @@ public class WmsStockInServiceImpl extends ServiceImpl<WmsStockInMapper, WmsStoc
mapper.insert(insert); mapper.insert(insert);
//添加子表信息 //添加子表信息
List<WmsStockInItem> itemList = new ArrayList<>(); List<ErpStockInItem> itemList = new ArrayList<>();
for(StockInCreateItem item: request.getItemList()){ for(StockInCreateItem item: request.getItemList()){
WmsStockInItem inItem = new WmsStockInItem(); ErpStockInItem inItem = new ErpStockInItem();
inItem.setStockInId(insert.getId()); inItem.setStockInId(insert.getId());
inItem.setStockInType(insert.getStockInType()); inItem.setStockInType(insert.getStockInType());
inItem.setSourceNo(insert.getSourceNo()); inItem.setSourceNo(insert.getSourceNo());
@ -127,9 +127,9 @@ public class WmsStockInServiceImpl extends ServiceImpl<WmsStockInMapper, WmsStoc
if (request.getWarehouseId() == null) return ResultVo.error(ResultVoEnum.ParamsError, "缺少参数warehouseId"); if (request.getWarehouseId() == null) return ResultVo.error(ResultVoEnum.ParamsError, "缺少参数warehouseId");
if (request.getItemList().isEmpty()) return ResultVo.error(ResultVoEnum.ParamsError, "缺少入库数据"); if (request.getItemList().isEmpty()) return ResultVo.error(ResultVoEnum.ParamsError, "缺少入库数据");
WmsStockIn wmsStockIn = mapper.selectById(request.getStockInId()); ErpStockIn erpStockIn = mapper.selectById(request.getStockInId());
if (wmsStockIn == null) return ResultVo.error(ResultVoEnum.NotFound, "没有找到入库单"); if (erpStockIn == null) return ResultVo.error(ResultVoEnum.NotFound, "没有找到入库单");
else if (wmsStockIn.getStatus() == 2) { else if (erpStockIn.getStatus() == 2) {
return ResultVo.error(ResultVoEnum.SystemException, "入库单状态不能入库"); return ResultVo.error(ResultVoEnum.SystemException, "入库单状态不能入库");
} }
@ -144,7 +144,7 @@ public class WmsStockInServiceImpl extends ServiceImpl<WmsStockInMapper, WmsStoc
// 开始入库 // 开始入库
for (var item:waitList) { for (var item:waitList) {
// 查询明细 // 查询明细
WmsStockInItem stockInItem = inItemService.getById(item.getId()); ErpStockInItem stockInItem = inItemService.getById(item.getId());
if(stockInItem == null){ if(stockInItem == null){
return ResultVo.error(ResultVoEnum.DataError, "数据错误!没有找到入库单明细"); return ResultVo.error(ResultVoEnum.DataError, "数据错误!没有找到入库单明细");
} }
@ -195,11 +195,11 @@ public class WmsStockInServiceImpl extends ServiceImpl<WmsStockInMapper, WmsStoc
} }
@Override @Override
public WmsStockIn getDetailAndItemById(Long id) { public ErpStockIn getDetailAndItemById(Long id) {
WmsStockIn wmsStockIn = mapper.selectById(id); ErpStockIn erpStockIn = mapper.selectById(id);
if(wmsStockIn!=null){ if(erpStockIn !=null){
wmsStockIn.setItemList(inItemService.list(new LambdaQueryWrapper<WmsStockInItem>().eq(WmsStockInItem::getStockInId,id))); erpStockIn.setItemList(inItemService.list(new LambdaQueryWrapper<ErpStockInItem>().eq(ErpStockInItem::getStockInId,id)));
return wmsStockIn; return erpStockIn;
}else }else
return null; return null;
} }

View File

@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.qihangerp.module.wms.mapper.WmsStockInItemMapper"> <mapper namespace="cn.qihangerp.module.wms.mapper.WmsStockInItemMapper">
<resultMap id="BaseResultMap" type="cn.qihangerp.module.stock.domain.WmsStockInItem"> <resultMap id="BaseResultMap" type="cn.qihangerp.module.stock.domain.ErpStockInItem">
<id property="id" column="id" jdbcType="BIGINT"/> <id property="id" column="id" jdbcType="BIGINT"/>
<result property="stockInId" column="stock_in_id" jdbcType="BIGINT"/> <result property="stockInId" column="stock_in_id" jdbcType="BIGINT"/>
<result property="stockInType" column="stock_in_type" jdbcType="INTEGER"/> <result property="stockInType" column="stock_in_type" jdbcType="INTEGER"/>

View File

@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.qihangerp.module.wms.mapper.WmsStockInMapper"> <mapper namespace="cn.qihangerp.module.wms.mapper.WmsStockInMapper">
<resultMap id="BaseResultMap" type="cn.qihangerp.module.stock.domain.WmsStockIn"> <resultMap id="BaseResultMap" type="cn.qihangerp.module.stock.domain.ErpStockIn">
<id property="id" column="id" jdbcType="BIGINT"/> <id property="id" column="id" jdbcType="BIGINT"/>
<result property="stockInNum" column="stock_in_num" jdbcType="VARCHAR"/> <result property="stockInNum" column="stock_in_num" jdbcType="VARCHAR"/>
<result property="stockInType" column="stock_in_type" jdbcType="INTEGER"/> <result property="stockInType" column="stock_in_type" jdbcType="INTEGER"/>