|
|
@@ -17,23 +17,21 @@
|
|
|
package org.springblade.stock.controller;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
|
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
-
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
-import javax.validation.Valid;
|
|
|
-
|
|
|
import org.springblade.client.entity.CorpsDesc;
|
|
|
import org.springblade.client.entity.StorageDesc;
|
|
|
import org.springblade.client.feign.ICorpsDescClient;
|
|
|
import org.springblade.client.feign.IGoodsDescClient;
|
|
|
import org.springblade.client.feign.IStorageClient;
|
|
|
import org.springblade.client.vo.GoodsDescVO;
|
|
|
+import org.springblade.core.boot.ctrl.BladeController;
|
|
|
import org.springblade.core.excel.util.ExcelUtil;
|
|
|
import org.springblade.core.mp.support.Condition;
|
|
|
import org.springblade.core.mp.support.Query;
|
|
|
@@ -41,17 +39,17 @@ import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.secure.utils.SecureUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
+import org.springblade.stock.entity.StockGoods;
|
|
|
import org.springblade.stock.excel.StockGoodsExcel;
|
|
|
+import org.springblade.stock.service.IStockGoodsService;
|
|
|
+import org.springblade.stock.vo.StockGoodsVO;
|
|
|
import org.springblade.system.user.entity.User;
|
|
|
import org.springblade.system.user.feign.IUserClient;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
-import org.springblade.stock.entity.StockGoods;
|
|
|
-import org.springblade.stock.vo.StockGoodsVO;
|
|
|
-import org.springblade.stock.service.IStockGoodsService;
|
|
|
-import org.springblade.core.boot.ctrl.BladeController;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import javax.validation.Valid;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
@@ -68,10 +66,22 @@ import java.util.List;
|
|
|
public class StockGoodsController extends BladeController {
|
|
|
|
|
|
private final IStockGoodsService stockGoodsService;
|
|
|
- private ICorpsDescClient corpsDescClient;//获取客户信息
|
|
|
- private IGoodsDescClient goodsDescClient;//商品信息
|
|
|
- private IUserClient userClient;//用户信息
|
|
|
- private IStorageClient iStorageClient;//库区信息
|
|
|
+ /**
|
|
|
+ * 获取客户信息
|
|
|
+ */
|
|
|
+ private final ICorpsDescClient corpsDescClient;
|
|
|
+ /**
|
|
|
+ * 商品信息
|
|
|
+ */
|
|
|
+ private final IGoodsDescClient goodsDescClient;
|
|
|
+ /**
|
|
|
+ * 用户信息
|
|
|
+ */
|
|
|
+ private final IUserClient userClient;
|
|
|
+ /**
|
|
|
+ * 库区信息
|
|
|
+ */
|
|
|
+ private final IStorageClient iStorageClient;
|
|
|
|
|
|
/**
|
|
|
* 详情
|
|
|
@@ -92,52 +102,50 @@ public class StockGoodsController extends BladeController {
|
|
|
@ApiOperation(value = "分页", notes = "传入stockGoods")
|
|
|
public R<IPage<StockGoods>> list(StockGoodsVO stockGoods, Query query) {
|
|
|
//不区分箱号
|
|
|
- if(stockGoods.getIsCntrON()==0)
|
|
|
- {
|
|
|
+ if (stockGoods.getIsCntrON() == 0) {
|
|
|
List<Long> list = new ArrayList<>();
|
|
|
if (StringUtils.isNotBlank(stockGoods.getCode()) || StringUtils.isNotBlank(stockGoods.getCname()) || StringUtils.isNotBlank(stockGoods.getBrand())
|
|
|
|| StringUtils.isNotBlank(stockGoods.getBrandItem()) || StringUtils.isNotBlank(stockGoods.getPlaceProduction()) || StringUtils.isNotBlank(stockGoods.getTypeno())
|
|
|
- || StringUtils.isNotBlank(stockGoods.getTypenoOne())){
|
|
|
- list = goodsDescClient.getGoodId(stockGoods.getCode(),stockGoods.getCname(),stockGoods.getBrand(),stockGoods.getBrandItem(),
|
|
|
- stockGoods.getPlaceProduction(),stockGoods.getTypeno(),stockGoods.getTypenoOne());
|
|
|
+ || StringUtils.isNotBlank(stockGoods.getTypenoOne())) {
|
|
|
+ list = goodsDescClient.getGoodId(stockGoods.getCode(), stockGoods.getCname(), stockGoods.getBrand(), stockGoods.getBrandItem(),
|
|
|
+ stockGoods.getPlaceProduction(), stockGoods.getTypeno(), stockGoods.getTypenoOne());
|
|
|
}
|
|
|
LambdaQueryWrapper<StockGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
lambdaQueryWrapper.eq(StockGoods::getTenantId, SecureUtil.getTenantId());
|
|
|
- lambdaQueryWrapper.eq(StockGoods::getIsDeleted,0);
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(stockGoods.getBillNo()),StockGoods::getBillNo,stockGoods.getBillNo());
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(stockGoods.getContractNumber()),StockGoods::getContractNumber,stockGoods.getContractNumber());
|
|
|
+ lambdaQueryWrapper.eq(StockGoods::getIsDeleted, 0);
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(stockGoods.getBillNo()), StockGoods::getBillNo, stockGoods.getBillNo());
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(stockGoods.getContractNumber()), StockGoods::getContractNumber, stockGoods.getContractNumber());
|
|
|
|
|
|
- if(Func.isNotEmpty(stockGoods.getCname()))
|
|
|
- {
|
|
|
+ if (Func.isNotEmpty(stockGoods.getCname())) {
|
|
|
List<Long> goodId = goodsDescClient.getGoodId(null, stockGoods.getCname(), null, null, null, null, null);
|
|
|
- if(CollectionUtils.isNotEmpty(goodId))
|
|
|
- {
|
|
|
+ if (CollectionUtils.isNotEmpty(goodId)) {
|
|
|
lambdaQueryWrapper.in(StockGoods::getGoodsId, goodId);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getBrandItem()),StockGoods::getBrandItem,stockGoods.getBrandItem());//花纹
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getPlaceProduction()),StockGoods::getPlaceProduction,stockGoods.getPlaceProduction());//产地
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getBrand()),StockGoods::getBrand,stockGoods.getBrand());//品牌
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getTypeno()),StockGoods::getTypeno,stockGoods.getTypeno());//规格
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getTypenoOne()),StockGoods::getTypenoOne,stockGoods.getTypenoOne());//规格1
|
|
|
- lambdaQueryWrapper.ge(Func.isNotEmpty(stockGoods.getCreateStartTime()),StockGoods::getCreateTime,stockGoods.getCreateStartTime());//制单日期开始
|
|
|
- lambdaQueryWrapper.le(Func.isNotEmpty(stockGoods.getCreateEndTime()),StockGoods::getCreateTime,stockGoods.getCreateEndTime());//制单日期结束
|
|
|
- lambdaQueryWrapper.or();
|
|
|
- lambdaQueryWrapper.in(Func.isNotEmpty(list),StockGoods::getGoodsId,list);
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(stockGoods.getStorageId()), StockGoods::getStorageId, stockGoods.getStorageId());
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getBrandItem()), StockGoods::getBrandItem, stockGoods.getBrandItem());//花纹
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getPlaceProduction()), StockGoods::getPlaceProduction, stockGoods.getPlaceProduction());//产地
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getBrand()), StockGoods::getBrand, stockGoods.getBrand());//品牌
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getTypeno()), StockGoods::getTypeno, stockGoods.getTypeno());//规格
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getTypenoOne()), StockGoods::getTypenoOne, stockGoods.getTypenoOne());//规格1
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getTypenoTwo()), StockGoods::getTypenoTwo, stockGoods.getTypenoTwo());//速级
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(stockGoods.getCreateStartTime()), StockGoods::getCreateTime, stockGoods.getCreateStartTime());//制单日期开始
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(stockGoods.getCreateEndTime()), StockGoods::getCreateTime, stockGoods.getCreateEndTime());//制单日期结束
|
|
|
+ lambdaQueryWrapper.in(Func.isNotEmpty(list), StockGoods::getGoodsId, list);
|
|
|
IPage<StockGoods> pages = stockGoodsService.page(Condition.getPage(query), lambdaQueryWrapper);
|
|
|
- if (CollectionUtils.isNotEmpty(pages.getRecords())){
|
|
|
- pages.getRecords().stream().forEach(item ->{
|
|
|
+ if (CollectionUtils.isNotEmpty(pages.getRecords())) {
|
|
|
+ pages.getRecords().forEach(item -> {
|
|
|
//获取商品信息
|
|
|
R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(item.getGoodsId());
|
|
|
- if (goodsMessage.isSuccess() && goodsMessage.getData() != null){
|
|
|
- if (StringUtils.isNotBlank(goodsMessage.getData().getBrand())){
|
|
|
+ if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
|
|
|
+ if (StringUtils.isNotBlank(goodsMessage.getData().getBrand())) {
|
|
|
item.setBrand(goodsMessage.getData().getBrand());
|
|
|
}
|
|
|
- if (StringUtils.isNotBlank(goodsMessage.getData().getBrandItem())){
|
|
|
+ if (StringUtils.isNotBlank(goodsMessage.getData().getBrandItem())) {
|
|
|
item.setBrandItem(goodsMessage.getData().getBrandItem());
|
|
|
}
|
|
|
- if (StringUtils.isNotBlank(goodsMessage.getData().getTypeno())){
|
|
|
+ if (StringUtils.isNotBlank(goodsMessage.getData().getTypeno())) {
|
|
|
item.setTypeno(goodsMessage.getData().getTypeno());
|
|
|
}
|
|
|
item.setCname(goodsMessage.getData().getCname());
|
|
|
@@ -145,29 +153,28 @@ public class StockGoodsController extends BladeController {
|
|
|
}
|
|
|
//获取客户信息
|
|
|
R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());
|
|
|
- if (corpMessage.isSuccess() && corpMessage.getData() != null){
|
|
|
+ if (corpMessage.isSuccess() && corpMessage.getData() != null) {
|
|
|
item.setCorpName(corpMessage.getData().getCname());
|
|
|
}
|
|
|
//获取用户信息
|
|
|
- if (item.getCreateUser() != null){
|
|
|
+ if (item.getCreateUser() != null) {
|
|
|
R<User> createUser = userClient.userInfoById(item.getCreateUser());
|
|
|
- if (createUser.isSuccess() && createUser.getData() != null){
|
|
|
+ if (createUser.isSuccess() && createUser.getData() != null) {
|
|
|
item.setCreateUserName(createUser.getData().getName());
|
|
|
}
|
|
|
}
|
|
|
//获取仓库信息
|
|
|
- if (item.getStorageId() != null){
|
|
|
+ if (item.getStorageId() != null) {
|
|
|
//仓库信息
|
|
|
StorageDesc storageDesc = iStorageClient.findById(item.getStorageId());
|
|
|
- if(storageDesc!=null)
|
|
|
- {
|
|
|
+ if (storageDesc != null) {
|
|
|
item.setStockName(storageDesc.getCname());
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- if (item.getUpdateUser() != null){
|
|
|
+ if (item.getUpdateUser() != null) {
|
|
|
R<User> updateUser = userClient.userInfoById(item.getUpdateUser());
|
|
|
- if (updateUser.isSuccess() && updateUser.getData() != null){
|
|
|
+ if (updateUser.isSuccess() && updateUser.getData() != null) {
|
|
|
item.setUpdateUserName(updateUser.getData().getName());
|
|
|
}
|
|
|
}
|
|
|
@@ -176,34 +183,29 @@ public class StockGoodsController extends BladeController {
|
|
|
return R.data(pages);
|
|
|
}
|
|
|
//区分箱号查询
|
|
|
- else if(stockGoods.getIsCntrON()==1)
|
|
|
- {
|
|
|
- Long goodId=null;
|
|
|
- if(Func.isNotEmpty(stockGoods.getCname()))
|
|
|
- {
|
|
|
+ else if (stockGoods.getIsCntrON() == 1) {
|
|
|
+ Long goodId = null;
|
|
|
+ if (Func.isNotEmpty(stockGoods.getCname())) {
|
|
|
List<Long> longs = goodsDescClient.getGoodId(null, stockGoods.getCname(), null, null, null, null, null);
|
|
|
- if(CollectionUtils.isNotEmpty(longs))
|
|
|
- {
|
|
|
- goodId=longs.get(0).longValue();
|
|
|
+ if (CollectionUtils.isNotEmpty(longs)) {
|
|
|
+ goodId = longs.get(0);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
- IPage<StockGoods> iPage = stockGoodsService.groupByStock(Condition.getPage(query), AuthUtil.getTenantId(),stockGoods.getContractNumber(),stockGoods.getBillNo(),goodId,stockGoods.getCreateStartTime(),stockGoods.getCreateEndTime());
|
|
|
+ IPage<StockGoods> iPage = stockGoodsService.groupByStock(Condition.getPage(query), AuthUtil.getTenantId(), stockGoods.getContractNumber(), stockGoods.getBillNo(), goodId, stockGoods.getCreateStartTime(), stockGoods.getCreateEndTime());
|
|
|
List<StockGoods> records = iPage.getRecords();
|
|
|
- if(CollectionUtils.isNotEmpty(records))
|
|
|
- {
|
|
|
- records.forEach(item->{
|
|
|
+ if (CollectionUtils.isNotEmpty(records)) {
|
|
|
+ records.forEach(item -> {
|
|
|
//获取商品信息
|
|
|
R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(item.getGoodsId());
|
|
|
- if (goodsMessage.isSuccess() && goodsMessage.getData() != null){
|
|
|
- if (StringUtils.isNotBlank(goodsMessage.getData().getBrand())){
|
|
|
+ if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
|
|
|
+ if (StringUtils.isNotBlank(goodsMessage.getData().getBrand())) {
|
|
|
item.setBrand(goodsMessage.getData().getBrand());
|
|
|
}
|
|
|
- if (StringUtils.isNotBlank(goodsMessage.getData().getBrandItem())){
|
|
|
+ if (StringUtils.isNotBlank(goodsMessage.getData().getBrandItem())) {
|
|
|
item.setBrandItem(goodsMessage.getData().getBrandItem());
|
|
|
}
|
|
|
- if (StringUtils.isNotBlank(goodsMessage.getData().getTypeno())){
|
|
|
+ if (StringUtils.isNotBlank(goodsMessage.getData().getTypeno())) {
|
|
|
item.setTypeno(goodsMessage.getData().getTypeno());
|
|
|
}
|
|
|
item.setCname(goodsMessage.getData().getCname());
|
|
|
@@ -211,29 +213,28 @@ public class StockGoodsController extends BladeController {
|
|
|
}
|
|
|
//获取客户信息
|
|
|
R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());
|
|
|
- if (corpMessage.isSuccess() && corpMessage.getData() != null){
|
|
|
+ if (corpMessage.isSuccess() && corpMessage.getData() != null) {
|
|
|
item.setCorpName(corpMessage.getData().getCname());
|
|
|
}
|
|
|
//获取用户信息
|
|
|
- if (item.getCreateUser() != null){
|
|
|
+ if (item.getCreateUser() != null) {
|
|
|
R<User> createUser = userClient.userInfoById(item.getCreateUser());
|
|
|
- if (createUser.isSuccess() && createUser.getData() != null){
|
|
|
+ if (createUser.isSuccess() && createUser.getData() != null) {
|
|
|
item.setCreateUserName(createUser.getData().getName());
|
|
|
}
|
|
|
}
|
|
|
//获取仓库信息
|
|
|
- if (item.getStorageId() != null){
|
|
|
+ if (item.getStorageId() != null) {
|
|
|
//仓库信息
|
|
|
StorageDesc storageDesc = iStorageClient.findById(item.getStorageId());
|
|
|
- if(storageDesc!=null)
|
|
|
- {
|
|
|
+ if (storageDesc != null) {
|
|
|
item.setStockName(storageDesc.getCname());
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- if (item.getUpdateUser() != null){
|
|
|
+ if (item.getUpdateUser() != null) {
|
|
|
R<User> updateUser = userClient.userInfoById(item.getUpdateUser());
|
|
|
- if (updateUser.isSuccess() && updateUser.getData() != null){
|
|
|
+ if (updateUser.isSuccess() && updateUser.getData() != null) {
|
|
|
item.setUpdateUserName(updateUser.getData().getName());
|
|
|
}
|
|
|
}
|
|
|
@@ -242,13 +243,9 @@ public class StockGoodsController extends BladeController {
|
|
|
}
|
|
|
iPage.setRecords(records);
|
|
|
return R.data(iPage);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
+ } else {
|
|
|
return R.fail("操作失败");
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -302,6 +299,7 @@ public class StockGoodsController extends BladeController {
|
|
|
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
|
|
|
return R.status(stockGoodsService.removeByIds(Func.toLongList(ids)));
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 导出模板
|
|
|
*/
|
|
|
@@ -312,6 +310,7 @@ public class StockGoodsController extends BladeController {
|
|
|
List<StockGoodsExcel> list = new ArrayList<>();
|
|
|
ExcelUtil.export(response, "导入模板-库存更新", "库存导入数据表", list, StockGoodsExcel.class);
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 导入库存
|
|
|
*/
|
|
|
@@ -320,11 +319,12 @@ public class StockGoodsController extends BladeController {
|
|
|
@ApiOperation(value = "导入库存", notes = "传入excel")
|
|
|
public R importUser(@RequestParam("file") MultipartFile file) {
|
|
|
List<StockGoodsExcel> excelList = ExcelUtil.read(file, StockGoodsExcel.class);
|
|
|
- if (CollectionUtils.isEmpty(excelList)){
|
|
|
+ if (CollectionUtils.isEmpty(excelList)) {
|
|
|
throw new SecurityException("数据不能为空");
|
|
|
}
|
|
|
- return stockGoodsService.importUser(excelList,false);
|
|
|
+ return stockGoodsService.importUser(excelList, false);
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 详情
|
|
|
*/
|
|
|
@@ -332,17 +332,17 @@ public class StockGoodsController extends BladeController {
|
|
|
@ApiOperationSupport(order = 13)
|
|
|
@ApiOperation(value = "详情", notes = "传入stockGoods")
|
|
|
public R<StockGoods> message(StockGoods stockGoods) {
|
|
|
- if (stockGoods.getGoodsId() == null){
|
|
|
+ if (stockGoods.getGoodsId() == null) {
|
|
|
throw new SecurityException("缺少必要的参数");
|
|
|
}
|
|
|
LambdaQueryWrapper<StockGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- lambdaQueryWrapper.eq(StockGoods::getGoodsId,stockGoods.getGoodsId());//商品id
|
|
|
- lambdaQueryWrapper.eq(StockGoods::getTenantId,SecureUtil.getTenantId());//租户id
|
|
|
- lambdaQueryWrapper.eq(StockGoods::getTradeType,stockGoods.getTradeType());//贸易类型
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(stockGoods.getStorageId()),StockGoods::getStorageId,stockGoods.getStorageId());
|
|
|
- lambdaQueryWrapper.isNull(Func.isEmpty(stockGoods.getStorageId()),StockGoods::getStorageId);
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(stockGoods.getLotNo()),StockGoods::getLotNo,stockGoods.getLotNo());
|
|
|
- lambdaQueryWrapper.isNull(Func.isEmpty(stockGoods.getLotNo()),StockGoods::getLotNo);
|
|
|
+ lambdaQueryWrapper.eq(StockGoods::getGoodsId, stockGoods.getGoodsId());//商品id
|
|
|
+ lambdaQueryWrapper.eq(StockGoods::getTenantId, SecureUtil.getTenantId());//租户id
|
|
|
+ lambdaQueryWrapper.eq(StockGoods::getTradeType, stockGoods.getTradeType());//贸易类型
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(stockGoods.getStorageId()), StockGoods::getStorageId, stockGoods.getStorageId());
|
|
|
+ lambdaQueryWrapper.isNull(Func.isEmpty(stockGoods.getStorageId()), StockGoods::getStorageId);
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(stockGoods.getLotNo()), StockGoods::getLotNo, stockGoods.getLotNo());
|
|
|
+ lambdaQueryWrapper.isNull(Func.isEmpty(stockGoods.getLotNo()), StockGoods::getLotNo);
|
|
|
StockGoods detail = stockGoodsService.getOne(lambdaQueryWrapper);
|
|
|
return R.data(detail);
|
|
|
}
|