修复入库管理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.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.StockInRequest;
import cn.qihangerp.module.stock.service.WmsStockInService;
import cn.qihangerp.module.stock.service.ErpStockInService;
import cn.qihangerp.security.common.BaseController;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
@ -18,9 +18,9 @@ import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/stockIn")
public class StockInController extends BaseController {
private final WmsStockInService stockInService;
private final ErpStockInService stockInService;
@GetMapping("/list")
public TableDataInfo list(WmsStockIn bo, PageQuery pageQuery)
public TableDataInfo list(ErpStockIn bo, PageQuery pageQuery)
{
var pageList = stockInService.queryPageList(bo,pageQuery);
return getDataTable(pageList);
@ -47,7 +47,7 @@ public class StockInController extends BaseController {
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
WmsStockIn entry = stockInService.getDetailAndItemById(id);
ErpStockIn entry = stockInService.getDetailAndItemById(id);
return success(entry);
}

View File

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

View File

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

View File

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

View File

@ -1,7 +1,7 @@
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;
/**
@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-09-22 16:28:57
* @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;
import cn.qihangerp.module.stock.domain.WmsStockIn;
import cn.qihangerp.module.stock.domain.ErpStockIn;
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
* @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;
import cn.qihangerp.module.stock.domain.WmsStockInItem;
import cn.qihangerp.module.stock.domain.ErpStockInItem;
import com.baomidou.mybatisplus.extension.service.IService;
/**
@ -9,6 +9,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @description 针对表wms_stock_in_item(入库单明细)的数据库操作Service
* @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;
import cn.qihangerp.common.PageQuery;
import cn.qihangerp.common.PageResult;
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.StockInRequest;
import com.baomidou.mybatisplus.extension.service.IService;
@ -14,10 +15,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @description 针对表wms_stock_in(入库单)的数据库操作Service
* @createDate 2024-09-22 16:10:08
*/
public interface WmsStockInService extends IService<WmsStockIn> {
PageResult<WmsStockIn> queryPageList(WmsStockIn bo, PageQuery pageQuery);
public interface ErpStockInService extends IService<ErpStockIn> {
PageResult<ErpStockIn> queryPageList(ErpStockIn bo, PageQuery pageQuery);
ResultVo<Long> createEntry(Long userId, String userName, StockInCreateRequest 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;
import cn.qihangerp.module.stock.domain.WmsStockInItem;
import cn.qihangerp.module.stock.mapper.WmsStockInItemMapper;
import cn.qihangerp.module.stock.service.WmsStockInItemService;
import cn.qihangerp.module.stock.domain.ErpStockInItem;
import cn.qihangerp.module.stock.mapper.ErpStockInItemMapper;
import cn.qihangerp.module.stock.service.ErpStockInItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@ -13,8 +13,8 @@ import org.springframework.stereotype.Service;
* @createDate 2024-09-22 16:28:57
*/
@Service
public class WmsStockInItemServiceImpl extends ServiceImpl<WmsStockInItemMapper, WmsStockInItem>
implements WmsStockInItemService {
public class ErpStockInItemServiceImpl extends ServiceImpl<ErpStockInItemMapper, ErpStockInItem>
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.service.OGoodsInventoryBatchService;
import cn.qihangerp.module.goods.service.OGoodsInventoryService;
import cn.qihangerp.module.stock.domain.WmsStockIn;
import cn.qihangerp.module.stock.domain.WmsStockInItem;
import cn.qihangerp.module.stock.mapper.WmsStockInMapper;
import cn.qihangerp.module.stock.domain.ErpStockIn;
import cn.qihangerp.module.stock.domain.ErpStockInItem;
import cn.qihangerp.module.stock.mapper.ErpStockInMapper;
import cn.qihangerp.module.stock.request.StockInCreateItem;
import cn.qihangerp.module.stock.request.StockInCreateRequest;
import cn.qihangerp.module.stock.request.StockInItem;
import cn.qihangerp.module.stock.request.StockInRequest;
import cn.qihangerp.module.stock.service.WmsStockInItemService;
import cn.qihangerp.module.stock.service.WmsStockInService;
import cn.qihangerp.module.stock.service.ErpStockInItemService;
import cn.qihangerp.module.stock.service.ErpStockInService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -41,23 +41,23 @@ import java.util.stream.Collectors;
*/
@AllArgsConstructor
@Service
public class WmsStockInServiceImpl extends ServiceImpl<WmsStockInMapper, WmsStockIn>
implements WmsStockInService {
private final WmsStockInMapper mapper;
private final WmsStockInItemService inItemService;
public class ErpStockInServiceImpl extends ServiceImpl<ErpStockInMapper, ErpStockIn>
implements ErpStockInService {
private final ErpStockInMapper mapper;
private final ErpStockInItemService inItemService;
private final OGoodsInventoryBatchService inventoryBatchService;
private final OGoodsInventoryService inventoryService;
@Override
public PageResult<WmsStockIn> queryPageList(WmsStockIn bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsStockIn> queryWrapper = new LambdaQueryWrapper<WmsStockIn>()
.eq( bo.getStatus()!=null,WmsStockIn::getStatus, bo.getStatus())
.eq( bo.getStockInType()!=null,WmsStockIn::getStockInType, bo.getStockInType())
.eq(StringUtils.isNotBlank(bo.getStockInNum()),WmsStockIn::getStockInNum, bo.getStockInNum())
.eq(StringUtils.isNotBlank(bo.getSourceNo()),WmsStockIn::getSourceNo, bo.getSourceNo())
.eq(bo.getSourceId()!=null,WmsStockIn::getSourceId, bo.getSourceId())
public PageResult<ErpStockIn> queryPageList(ErpStockIn bo, PageQuery pageQuery) {
LambdaQueryWrapper<ErpStockIn> queryWrapper = new LambdaQueryWrapper<ErpStockIn>()
.eq( bo.getStatus()!=null, ErpStockIn::getStatus, bo.getStatus())
.eq( bo.getStockInType()!=null, ErpStockIn::getStockInType, bo.getStockInType())
.eq(StringUtils.isNotBlank(bo.getStockInNum()), ErpStockIn::getStockInNum, bo.getStockInNum())
.eq(StringUtils.isNotBlank(bo.getSourceNo()), ErpStockIn::getSourceNo, bo.getSourceNo())
.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);
}
@ -78,7 +78,7 @@ public class WmsStockInServiceImpl extends ServiceImpl<WmsStockInMapper, WmsStoc
(Collectors.groupingBy(x -> x.getGoodsId()));
Long total = request.getItemList().stream().mapToLong(StockInCreateItem::getQuantity).sum();
//添加主表信息
WmsStockIn insert = new WmsStockIn();
ErpStockIn insert = new ErpStockIn();
insert.setStockInNum(request.getStockInNum());
insert.setStockInType(request.getStockInType());
insert.setStockInOperator(request.getStockInOperator());
@ -95,9 +95,9 @@ public class WmsStockInServiceImpl extends ServiceImpl<WmsStockInMapper, WmsStoc
mapper.insert(insert);
//添加子表信息
List<WmsStockInItem> itemList = new ArrayList<>();
List<ErpStockInItem> itemList = new ArrayList<>();
for(StockInCreateItem item: request.getItemList()){
WmsStockInItem inItem = new WmsStockInItem();
ErpStockInItem inItem = new ErpStockInItem();
inItem.setStockInId(insert.getId());
inItem.setStockInType(insert.getStockInType());
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.getItemList().isEmpty()) return ResultVo.error(ResultVoEnum.ParamsError, "缺少入库数据");
WmsStockIn wmsStockIn = mapper.selectById(request.getStockInId());
if (wmsStockIn == null) return ResultVo.error(ResultVoEnum.NotFound, "没有找到入库单");
else if (wmsStockIn.getStatus() == 2) {
ErpStockIn erpStockIn = mapper.selectById(request.getStockInId());
if (erpStockIn == null) return ResultVo.error(ResultVoEnum.NotFound, "没有找到入库单");
else if (erpStockIn.getStatus() == 2) {
return ResultVo.error(ResultVoEnum.SystemException, "入库单状态不能入库");
}
@ -144,7 +144,7 @@ public class WmsStockInServiceImpl extends ServiceImpl<WmsStockInMapper, WmsStoc
// 开始入库
for (var item:waitList) {
// 查询明细
WmsStockInItem stockInItem = inItemService.getById(item.getId());
ErpStockInItem stockInItem = inItemService.getById(item.getId());
if(stockInItem == null){
return ResultVo.error(ResultVoEnum.DataError, "数据错误!没有找到入库单明细");
}
@ -195,11 +195,11 @@ public class WmsStockInServiceImpl extends ServiceImpl<WmsStockInMapper, WmsStoc
}
@Override
public WmsStockIn getDetailAndItemById(Long id) {
WmsStockIn wmsStockIn = mapper.selectById(id);
if(wmsStockIn!=null){
wmsStockIn.setItemList(inItemService.list(new LambdaQueryWrapper<WmsStockInItem>().eq(WmsStockInItem::getStockInId,id)));
return wmsStockIn;
public ErpStockIn getDetailAndItemById(Long id) {
ErpStockIn erpStockIn = mapper.selectById(id);
if(erpStockIn !=null){
erpStockIn.setItemList(inItemService.list(new LambdaQueryWrapper<ErpStockInItem>().eq(ErpStockInItem::getStockInId,id)));
return erpStockIn;
}else
return null;
}

View File

@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<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"/>
<result property="stockInId" column="stock_in_id" jdbcType="BIGINT"/>
<result property="stockInType" column="stock_in_type" jdbcType="INTEGER"/>

View File

@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<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"/>
<result property="stockInNum" column="stock_in_num" jdbcType="VARCHAR"/>
<result property="stockInType" column="stock_in_type" jdbcType="INTEGER"/>