feat(wms): 出库主子表完成

dev
wanghao 1 month ago
parent 86c32e5342
commit 02af0876e2

@ -52,6 +52,10 @@ public class WmsInventoryDetails extends TenantEntity {
*/ */
private Double inventoryAmount; private Double inventoryAmount;
private Double startInventoryAmount; private Double startInventoryAmount;
/**
*
*/
private String unitName;
/** /**
* *

@ -1,9 +1,9 @@
package org.dromara.wms.domain; package org.dromara.wms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial; import java.io.Serial;
@ -89,4 +89,23 @@ public class WmsOutStockDetails extends TenantEntity {
private Long inventoryDetailsId; private Long inventoryDetailsId;
@TableField(exist = false)
private Double oldInventoryAmount;
@TableField(exist = false)
/**
*
*/
private String productCode;
@TableField(exist = false)
/**
*
*/
private String productName;
@TableField(exist = false)
private String externalBrand;
@TableField(exist = false)
/**
*
*/
private String productSpe;
} }

@ -78,4 +78,8 @@ public class WmsInventoryDetailsBo extends BaseEntity {
*/ */
private String productName; private String productName;
private String externalBrand; private String externalBrand;
/**
*
*/
private String unitName;
} }

@ -8,6 +8,9 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import org.dromara.wms.domain.WmsOutStockDetails;
import java.util.List;
/** /**
* wms_out_stock_bill * wms_out_stock_bill
@ -76,5 +79,7 @@ public class WmsOutStockBillBo extends BaseEntity {
*/ */
private Long warehouseId; private Long warehouseId;
private List<WmsOutStockDetails> outStockDetailsList;
} }

@ -138,4 +138,8 @@ public class WmsInventoryDetailsVo implements Serializable {
* *
*/ */
private String productSpe; private String productSpe;
/**
*
*/
private String unitName;
} }

@ -142,6 +142,20 @@ public class WmsOutStockDetailsVo implements Serializable {
*/ */
@ExcelProperty(value = "库存ID") @ExcelProperty(value = "库存ID")
private Long inventoryDetailsId; private Long inventoryDetailsId;
/**
*
*/
private String productCode;
/**
*
*/
private String productName;
private String externalBrand;
/**
*
*/
private String productSpe;
} }

@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param;
import org.dromara.wms.domain.WmsOutStockDetails; import org.dromara.wms.domain.WmsOutStockDetails;
import org.dromara.wms.domain.vo.WmsOutStockDetailsVo; import org.dromara.wms.domain.vo.WmsOutStockDetailsVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.springframework.stereotype.Repository;
/** /**
* Mapper * Mapper
@ -15,6 +16,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
* @author Yinq * @author Yinq
* @date 2025-11-12 * @date 2025-11-12
*/ */
@Repository
public interface WmsOutStockDetailsMapper extends BaseMapperPlus<WmsOutStockDetails, WmsOutStockDetailsVo> { public interface WmsOutStockDetailsMapper extends BaseMapperPlus<WmsOutStockDetails, WmsOutStockDetailsVo> {
/** /**

@ -1,26 +1,27 @@
package org.dromara.wms.service.impl; package org.dromara.wms.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.system.api.RemoteCodeRuleService; import org.dromara.system.api.RemoteCodeRuleService;
import org.springframework.stereotype.Service; import org.dromara.wms.domain.WmsOutStockBill;
import org.dromara.wms.domain.WmsOutStockDetails;
import org.dromara.wms.domain.bo.WmsOutStockBillBo; import org.dromara.wms.domain.bo.WmsOutStockBillBo;
import org.dromara.wms.domain.vo.WmsOutStockBillVo; import org.dromara.wms.domain.vo.WmsOutStockBillVo;
import org.dromara.wms.domain.WmsOutStockBill;
import org.dromara.wms.mapper.WmsOutStockBillMapper; import org.dromara.wms.mapper.WmsOutStockBillMapper;
import org.dromara.wms.mapper.WmsOutStockDetailsMapper;
import org.dromara.wms.service.IWmsOutStockBillService; import org.dromara.wms.service.IWmsOutStockBillService;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection;
/** /**
* Service * Service
@ -33,8 +34,10 @@ import java.util.Collection;
public class WmsOutStockBillServiceImpl implements IWmsOutStockBillService { public class WmsOutStockBillServiceImpl implements IWmsOutStockBillService {
private final WmsOutStockBillMapper baseMapper; private final WmsOutStockBillMapper baseMapper;
private final WmsOutStockDetailsMapper wmsOutStockDetailsMapper;
@DubboReference @DubboReference
private RemoteCodeRuleService remoteCodeRuleService; private RemoteCodeRuleService remoteCodeRuleService;
/** /**
* *
* *
@ -42,23 +45,23 @@ public class WmsOutStockBillServiceImpl implements IWmsOutStockBillService {
* @return * @return
*/ */
@Override @Override
public WmsOutStockBillVo queryById(Long outStockBillId){ public WmsOutStockBillVo queryById(Long outStockBillId) {
return baseMapper.selectVoById(outStockBillId); return baseMapper.selectVoById(outStockBillId);
} }
/** /**
* *
* *
* @param bo * @param bo
* @param pageQuery * @param pageQuery
* @return * @return
*/ */
@Override @Override
public TableDataInfo<WmsOutStockBillVo> queryPageList(WmsOutStockBillBo bo, PageQuery pageQuery) { public TableDataInfo<WmsOutStockBillVo> queryPageList(WmsOutStockBillBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<WmsOutStockBill> lqw = buildQueryWrapper(bo); MPJLambdaWrapper<WmsOutStockBill> lqw = buildQueryWrapper(bo);
Page<WmsOutStockBillVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); Page<WmsOutStockBillVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
/** /**
* *
@ -75,16 +78,16 @@ public class WmsOutStockBillServiceImpl implements IWmsOutStockBillService {
private MPJLambdaWrapper<WmsOutStockBill> buildQueryWrapper(WmsOutStockBillBo bo) { private MPJLambdaWrapper<WmsOutStockBill> buildQueryWrapper(WmsOutStockBillBo bo) {
Map<String, Object> params = bo.getParams(); Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<WmsOutStockBill> lqw = JoinWrappers.lambda(WmsOutStockBill.class) MPJLambdaWrapper<WmsOutStockBill> lqw = JoinWrappers.lambda(WmsOutStockBill.class)
.selectAll(WmsOutStockBill.class) .selectAll(WmsOutStockBill.class)
.eq(WmsOutStockBill::getDelFlag, "0") .eq(WmsOutStockBill::getDelFlag, "0")
.eq(StringUtils.isNotBlank(bo.getOutStockType()), WmsOutStockBill::getOutStockType, bo.getOutStockType()) .eq(StringUtils.isNotBlank(bo.getOutStockType()), WmsOutStockBill::getOutStockType, bo.getOutStockType())
.eq(bo.getProjectId() != null, WmsOutStockBill::getProjectId, bo.getProjectId()) .eq(bo.getProjectId() != null, WmsOutStockBill::getProjectId, bo.getProjectId())
.eq(bo.getCustomerId() != null, WmsOutStockBill::getCustomerId, bo.getCustomerId()) .eq(bo.getCustomerId() != null, WmsOutStockBill::getCustomerId, bo.getCustomerId())
.eq(StringUtils.isNotBlank(bo.getCustomerUser()), WmsOutStockBill::getCustomerUser, bo.getCustomerUser()) .eq(StringUtils.isNotBlank(bo.getCustomerUser()), WmsOutStockBill::getCustomerUser, bo.getCustomerUser())
.eq(StringUtils.isNotBlank(bo.getOutStockBillStatus()), WmsOutStockBill::getOutStockBillStatus, bo.getOutStockBillStatus()) .eq(StringUtils.isNotBlank(bo.getOutStockBillStatus()), WmsOutStockBill::getOutStockBillStatus, bo.getOutStockBillStatus())
.eq(bo.getWarehouseId() != null, WmsOutStockBill::getWarehouseId, bo.getWarehouseId()) .eq(bo.getWarehouseId() != null, WmsOutStockBill::getWarehouseId, bo.getWarehouseId())
.eq(bo.getCreateTime() != null, WmsOutStockBill::getCreateTime, bo.getCreateTime()) .between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
; WmsOutStockBill::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"));
return lqw; return lqw;
} }
@ -98,10 +101,16 @@ public class WmsOutStockBillServiceImpl implements IWmsOutStockBillService {
public Boolean insertByBo(WmsOutStockBillBo bo) { public Boolean insertByBo(WmsOutStockBillBo bo) {
WmsOutStockBill add = MapstructUtils.convert(bo, WmsOutStockBill.class); WmsOutStockBill add = MapstructUtils.convert(bo, WmsOutStockBill.class);
add.setOutStockCode(remoteCodeRuleService.selectCodeRuleCode("1006")); add.setOutStockCode(remoteCodeRuleService.selectCodeRuleCode("1006"));
add.setOutStockBillStatus("3");
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
if (flag) { if (flag) {
bo.setOutStockBillId(add.getOutStockBillId()); Long outStockBillId = add.getOutStockBillId();
List<WmsOutStockDetails> outStockDetailsList = bo.getOutStockDetailsList();
outStockDetailsList.forEach(item -> {
item.setOutStockBillId(outStockBillId);
});
//插入出库明细
wmsOutStockDetailsMapper.insert(outStockDetailsList);
} }
return flag; return flag;
} }
@ -120,7 +129,6 @@ public class WmsOutStockBillServiceImpl implements IWmsOutStockBillService {
} }
/** /**
* *
* *

@ -1,24 +1,24 @@
package org.dromara.wms.service.impl; package org.dromara.wms.service.impl;
import org.dromara.common.core.utils.MapstructUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.wms.domain.WmsBaseProduct;
import org.dromara.wms.domain.WmsOutStockDetails;
import org.dromara.wms.domain.bo.WmsOutStockDetailsBo; import org.dromara.wms.domain.bo.WmsOutStockDetailsBo;
import org.dromara.wms.domain.vo.WmsOutStockDetailsVo; import org.dromara.wms.domain.vo.WmsOutStockDetailsVo;
import org.dromara.wms.domain.WmsOutStockDetails;
import org.dromara.wms.mapper.WmsOutStockDetailsMapper; import org.dromara.wms.mapper.WmsOutStockDetailsMapper;
import org.dromara.wms.service.IWmsOutStockDetailsService; import org.dromara.wms.service.IWmsOutStockDetailsService;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection;
/** /**
* Service * Service
@ -39,23 +39,23 @@ public class WmsOutStockDetailsServiceImpl implements IWmsOutStockDetailsService
* @return * @return
*/ */
@Override @Override
public WmsOutStockDetailsVo queryById(Long outStockDetailsId){ public WmsOutStockDetailsVo queryById(Long outStockDetailsId) {
return baseMapper.selectVoById(outStockDetailsId); return baseMapper.selectVoById(outStockDetailsId);
} }
/** /**
* *
* *
* @param bo * @param bo
* @param pageQuery * @param pageQuery
* @return * @return
*/ */
@Override @Override
public TableDataInfo<WmsOutStockDetailsVo> queryPageList(WmsOutStockDetailsBo bo, PageQuery pageQuery) { public TableDataInfo<WmsOutStockDetailsVo> queryPageList(WmsOutStockDetailsBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<WmsOutStockDetails> lqw = buildQueryWrapper(bo); MPJLambdaWrapper<WmsOutStockDetails> lqw = buildQueryWrapper(bo);
Page<WmsOutStockDetailsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); Page<WmsOutStockDetailsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
/** /**
* *
@ -72,15 +72,16 @@ public class WmsOutStockDetailsServiceImpl implements IWmsOutStockDetailsService
private MPJLambdaWrapper<WmsOutStockDetails> buildQueryWrapper(WmsOutStockDetailsBo bo) { private MPJLambdaWrapper<WmsOutStockDetails> buildQueryWrapper(WmsOutStockDetailsBo bo) {
Map<String, Object> params = bo.getParams(); Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<WmsOutStockDetails> lqw = JoinWrappers.lambda(WmsOutStockDetails.class) MPJLambdaWrapper<WmsOutStockDetails> lqw = JoinWrappers.lambda(WmsOutStockDetails.class)
.selectAll(WmsOutStockDetails.class) .selectAll(WmsOutStockDetails.class)
.eq(WmsOutStockDetails::getDelFlag, "0") .leftJoin(WmsBaseProduct.class, WmsBaseProduct::getProductId, WmsOutStockDetails::getMaterielId)
.eq(bo.getWarehouseId() != null, WmsOutStockDetails::getWarehouseId, bo.getWarehouseId()) .select(WmsBaseProduct::getProductCode, WmsBaseProduct::getProductName,WmsBaseProduct::getExternalBrand,WmsBaseProduct::getProductSpe)
.eq(bo.getMaterielId() != null, WmsOutStockDetails::getMaterielId, bo.getMaterielId()) // .eq(WmsOutStockDetails::getDelFlag, "0")
.eq(StringUtils.isNotBlank(bo.getBatchNumber()), WmsOutStockDetails::getBatchNumber, bo.getBatchNumber()) .eq(bo.getWarehouseId() != null, WmsOutStockDetails::getWarehouseId, bo.getWarehouseId())
.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null, .eq(bo.getMaterielId() != null, WmsOutStockDetails::getMaterielId, bo.getMaterielId())
WmsOutStockDetails::getCreateTime ,params.get("beginCreateTime"), params.get("endCreateTime")) .eq(StringUtils.isNotBlank(bo.getBatchNumber()), WmsOutStockDetails::getBatchNumber, bo.getBatchNumber())
.eq(bo.getOutStockBillId() != null, WmsOutStockDetails::getOutStockBillId, bo.getOutStockBillId()) .between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
; WmsOutStockDetails::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"))
.eq(bo.getOutStockBillId() != null, WmsOutStockDetails::getOutStockBillId, bo.getOutStockBillId());
return lqw; return lqw;
} }
@ -117,7 +118,7 @@ public class WmsOutStockDetailsServiceImpl implements IWmsOutStockDetailsService
/** /**
* *
*/ */
private void validEntityBeforeSave(WmsOutStockDetails entity){ private void validEntityBeforeSave(WmsOutStockDetails entity) {
//TODO 做一些数据校验,如唯一约束 //TODO 做一些数据校验,如唯一约束
} }
@ -130,7 +131,7 @@ public class WmsOutStockDetailsServiceImpl implements IWmsOutStockDetailsService
*/ */
@Override @Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){ if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验 //TODO 做一些业务上的校验,判断是否需要校验
} }
return baseMapper.deleteByIds(ids) > 0; return baseMapper.deleteByIds(ids) > 0;

Loading…
Cancel
Save