Browse Source

录入明细接口合并 2022年7月22日15点05分

纪新园 3 years ago
parent
commit
1331880ee5

+ 14 - 0
blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/feign/IPriceItemClient.java

@@ -1,5 +1,6 @@
 package org.springblade.mocha.feign;
 
+import io.swagger.annotations.ApiParam;
 import org.springblade.common.constant.LauncherConstant;
 import org.springblade.core.tool.api.R;
 import org.springblade.mocha.entity.PriceItem;
@@ -8,6 +9,8 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 价格管理对外访问接口
@@ -20,6 +23,7 @@ public interface IPriceItemClient {
 	String UPDATE_PRICE_ITEM = API_PREFIX + "/updatePriceItem";
 	String GET_MARKET_PRICE = API_PREFIX + "/getMarketPrice";
 	String GET_PURCHASE_PRICE = API_PREFIX + "/getPurchasePrice";
+	String GET_SALE_PRICE = API_PREFIX + "/getSalePrice";
 
 	/**
 	 * 修改价格管理的销售价格
@@ -47,4 +51,14 @@ public interface IPriceItemClient {
 	 */
 	@GetMapping(GET_PURCHASE_PRICE)
 	R getPurchasePrice(@RequestParam("code") String code);
+
+	/**
+	 * 获取销售价格
+	 * @param code
+	 * @return jxy
+	 */
+	@GetMapping(GET_SALE_PRICE)
+	List<Map<String,BigDecimal>> getSalePrice(@ApiParam(value = "大字", required = true) @RequestParam String code,
+											  @ApiParam(value = "是否运费", required = true) @RequestParam Integer isFreight,
+											  @ApiParam(value = "是否标签", required = true) @RequestParam Integer isLabel);
 }

+ 28 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/feign/IOrderItemsClient.java

@@ -1,5 +1,6 @@
 package org.springblade.purchase.sales.feign;
 
+import io.swagger.annotations.ApiParam;
 import org.springblade.common.constant.LauncherConstant;
 import org.springblade.core.tool.api.R;
 import org.springblade.purchase.sales.entity.OrderFees;
@@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 @FeignClient(
 	value = LauncherConstant.APPLICATION_PURCHASE_SALES_NAME
@@ -25,6 +27,8 @@ public interface IOrderItemsClient {
 	String SUBMIT = API_PREFIX + "/submit";
 	String GET_BY_ID = API_PREFIX + "/getById";
 	String SUBMITPAY = API_PREFIX +"/submitPay";
+	String HISTORY_PRICE = API_PREFIX +"/historyPrice";
+	String LOT_NO = API_PREFIX +"/lotNo";
 
 	/**
 	 * 修改订单明细发货数量
@@ -56,4 +60,28 @@ public interface IOrderItemsClient {
 	@GetMapping(SUBMITPAY)
 	R submitPay(@RequestParam("id") Long id);
 
+
+	/**
+	 * 经销商获取历史采购或者销售价格
+	 * @param itemId 商品id
+	 * @param typeId 是否获取最新价格 为空是 不为空为否
+	 * @param billType 采购价格或者销售价格
+	 * @param tradeType 贸易类型 国内 进口 出口 经销商
+	 * @return
+	 */
+	@GetMapping(HISTORY_PRICE)
+	List<Map<String, Object>> historyPrice(@RequestParam(value = "itemId") Long itemId,
+										   @RequestParam(value = "typeId", required = false)  Long typeId,
+										   @RequestParam(value = "billType")  String billType,
+										   @RequestParam(value = "tradeType")  String tradeType);
+
+
+	/**
+	 * 获取商品对应的批次号
+	 */
+	@GetMapping(LOT_NO)
+	List<Map<String, Object>> lotNo(@ApiParam(value = "itemId", required = true) @RequestParam Long itemId,
+									@ApiParam(value = "storageId", required = true) @RequestParam Long storageId,
+									@ApiParam(value = "tradeType", required = true) @RequestParam String tradeType);
+
 }

+ 0 - 3
blade-service-api/blade-stock-api/src/main/java/org/springblade/stock/feign/IStockGoodsClient.java

@@ -1,8 +1,6 @@
 package org.springblade.stock.feign;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.common.constant.LauncherConstant;
-import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.stock.entity.StockGoods;
 import org.springblade.stock.vo.StockGoodsVO;
@@ -12,7 +10,6 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
-import javax.validation.Valid;
 import java.math.BigDecimal;
 import java.util.List;
 

+ 44 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/feign/PriceItemClient.java

@@ -1,8 +1,10 @@
 package org.springblade.mocha.feign;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import lombok.AllArgsConstructor;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
@@ -16,7 +18,9 @@ import springfox.documentation.annotations.ApiIgnore;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 @NonDS
@@ -65,4 +69,44 @@ public class PriceItemClient implements IPriceItemClient{
 	public R getPurchasePrice(String code) {
 		return R.data(priceItemService.getPurchasePrice(SecureUtil.getTenantId(),code));
 	}
+
+	/**
+	 * 获取销售价格
+	 * @param code
+	 * @return
+	 */
+	@Override
+	public List<Map<String,BigDecimal>> getSalePrice(String code, Integer isFreight, Integer isLabel) {
+		List<Map<String,BigDecimal>> mapList=new ArrayList<>();
+		LambdaQueryWrapper<PriceItem> priceItemLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		priceItemLambdaQueryWrapper
+			.eq(PriceItem::getIsDeleted,0)
+			.eq(PriceItem::getTenantId, AuthUtil.getTenantId())
+			.eq(PriceItem::getCode,code);
+		List<PriceItem> priceItemList = priceItemService.list(priceItemLambdaQueryWrapper);
+
+		if(CollectionUtils.isNotEmpty(priceItemList))
+		{
+			priceItemList.forEach(e->{
+				BigDecimal saleMoney=BigDecimal.ZERO;
+				BigDecimal reduce=e.getSalesPrice();
+				BigDecimal freight=BigDecimal.ZERO;
+				BigDecimal label=BigDecimal.ZERO;
+				if(isFreight!=null && isFreight==1)
+				{
+					freight=e.getFreightFees();
+				}
+				if(isLabel!=null && isLabel==1)
+				{
+					label=e.getLabelFees();
+				}
+				saleMoney=(reduce.add(freight)).add(label);
+
+				Map<String,BigDecimal> map=new HashMap<>();
+				map.put("salePrice",saleMoney);
+				mapList.add(map);
+			});
+		}
+		return mapList;
+	}
 }

+ 30 - 16
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderItemsController.java

@@ -18,6 +18,7 @@ package org.springblade.purchase.sales.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
@@ -36,10 +37,7 @@ import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderItems;
-import org.springblade.purchase.sales.excel.DatasetExcel;
-import org.springblade.purchase.sales.excel.DealerOrderItem;
-import org.springblade.purchase.sales.excel.OrderItemsExcel;
-import org.springblade.purchase.sales.excel.PolicyExcel;
+import org.springblade.purchase.sales.excel.*;
 import org.springblade.purchase.sales.service.IOrderItemsService;
 import org.springblade.purchase.sales.vo.DatasetVO;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
@@ -264,11 +262,12 @@ public class OrderItemsController extends BladeController {
 	public void datesetExport(DatasetVO datasetVO, HttpServletResponse response) {
 		List<DatasetVO> dataset = orderItemsService.dataset(datasetVO);
 		List<DatasetExcel> list = new ArrayList<>();
-		if (CollectionUtils.isNotEmpty(dataset)){
+		if (CollectionUtils.isNotEmpty(dataset)) {
 			list = BeanUtil.copy(dataset, DatasetExcel.class);
 		}
 		ExcelUtil.export(response, "数据明细(N)", "数据明细(N)", list, DatasetExcel.class);
 	}
+
 	/**
 	 * 批量删除 订单明细表
 	 */
@@ -276,12 +275,12 @@ public class OrderItemsController extends BladeController {
 	@ApiOperationSupport(order = 18)
 	@ApiOperation(value = "批量删除 订单明细表", notes = "传入ids")
 	public R removeList(@RequestBody OrderVO orderVO) {
-		if (StringUtils.isBlank(orderVO.getIds())){
+		if (StringUtils.isBlank(orderVO.getIds())) {
 			throw new SecurityException("请选择要删除的数据");
 		}
 		List<Long> list = Func.toLongList(orderVO.getIds());
-		if (CollectionUtils.isNotEmpty(list)){
-			list.stream().forEach(item ->{
+		if (CollectionUtils.isNotEmpty(list)) {
+			list.stream().forEach(item -> {
 				OrderItems orderItems = new OrderItems();
 				orderItems.setId(item);
 				orderItems.setIsDeleted(1);
@@ -291,6 +290,7 @@ public class OrderItemsController extends BladeController {
 		}
 		return R.fail("删除失败");
 	}
+
 	/**
 	 * 导入订单明细模板
 	 */
@@ -304,29 +304,43 @@ public class OrderItemsController extends BladeController {
 
 	/**
 	 * 导入销售政策
-	 * @param file 文件
+	 *
+	 * @param file       文件
 	 * @param policyName 政策名
-	 * @param salesType 销售政策类别 1特价促销 2买赠促销
+	 * @param salesType  销售政策类别 1特价促销 2买赠促销
 	 * @return
 	 */
 	@PostMapping("/importPolicy")
 	@ApiOperationSupport(order = 20)
 	@ApiOperation(value = "导入销售政策", notes = "传入excel")
-	public R importPolicy(@RequestParam("file") MultipartFile file,@RequestParam("policyName") Long policyName,
+	public R importPolicy(@RequestParam("file") MultipartFile file, @RequestParam("policyName") Long policyName,
 						  @RequestParam("salesType") String salesType) {
 		List<PolicyExcel> excelList = ExcelUtil.read(file, PolicyExcel.class);
 		if (CollectionUtils.isEmpty(excelList)) {
 			throw new SecurityException("数据不能为空");
 		}
-		if (policyName == null){
+		if (policyName == null) {
 			throw new SecurityException("政策名不能为空");
 		}
-		return orderItemsService.importPolicy(excelList, false,policyName,salesType);
+		return orderItemsService.importPolicy(excelList, false, policyName, salesType);
 	}
+
 	@GetMapping("/submitPay")
-	R submitPay(@RequestParam("id") Long id)
-	{
-		return  R.status(orderItemsService.submitPay(id));
+	R submitPay(@RequestParam("id") Long id) {
+		return R.status(orderItemsService.submitPay(id));
+	}
+
+	/**
+	 * 录入明细
+	 */
+	@PostMapping("/salesOrderEntry")
+	@ApiOperationSupport(order = 15)
+	@ApiOperation(value = "录入订单明细")
+	public R salesOrderEntry(@RequestBody SalesOrderEntryDto salesOrderEntryDto) {
+		if (ObjectUtils.isEmpty(salesOrderEntryDto)) {
+			throw new SecurityException("数据不能为空");
+		}
+		return orderItemsService.salesOrderEntry(salesOrderEntryDto);
 	}
 
 }

+ 31 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/excel/SalesOrderEntryDto.java

@@ -0,0 +1,31 @@
+package org.springblade.purchase.sales.excel;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 销售订单录入明细(合并)请求参数类
+ */
+@Data
+public class SalesOrderEntryDto {
+
+
+	//是否运费
+	private Integer isFreight;
+	//是否标签
+	private Integer isLabel;
+	//
+	private Long typeId;
+	//
+	private String billType;
+	//
+	private String tradeType;
+	//
+	private Long storageId;
+
+	private Long goodsId;
+
+	private List<salesOrderEntry> salesOrderEntry;
+
+}

+ 13 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/excel/salesOrderEntry.java

@@ -0,0 +1,13 @@
+package org.springblade.purchase.sales.excel;
+
+import lombok.Data;
+
+@Data
+public class salesOrderEntry {
+
+	//大字
+	private String code;
+
+	//
+	private Long itemId;
+}

+ 26 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderItemsClient.java

@@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.deliver.goods.enums.DeliveryEnum;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.service.IOrderItemsService;
@@ -14,6 +15,7 @@ import springfox.documentation.annotations.ApiIgnore;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 @Slf4j
 @NonDS
@@ -123,4 +125,28 @@ public class OrderItemsClient implements IOrderItemsClient {
 		return R.status(orderItemsService.submitPay(id));
 	}
 
+	/**
+	 * 经销商获取历史采购或者销售价格
+	 * @param itemId 商品id
+	 * @param typeId 是否获取最新价格 为空是 不为空为否
+	 * @param billType 采购价格或者销售价格
+	 * @param tradeType 贸易类型 国内 进口 出口 经销商
+	 * @return
+	 */
+	@Override
+	public List<Map<String, Object>> historyPrice(Long itemId, Long typeId, String billType, String tradeType) {
+		return orderItemsService.historyPrice(itemId,typeId,billType,tradeType);
+	}
+
+	/**
+	 * 获取商品对应的批次号
+	 */
+	@Override
+	public List<Map<String, Object>> lotNo(Long itemId, Long storageId, String tradeType) {
+		if (itemId == null || storageId == null || StringUtil.isBlank(tradeType)){
+			throw new SecurityException("缺少必要的参数");
+		}
+		return orderItemsService.lotNo(itemId,storageId,tradeType);
+	}
+
 }

+ 12 - 7
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java

@@ -18,14 +18,10 @@ package org.springblade.purchase.sales.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
-import org.apache.ibatis.annotations.Param;
 import org.springblade.core.tool.api.R;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderItems;
-import org.springblade.purchase.sales.excel.DealerOrderItem;
-import org.springblade.purchase.sales.excel.OrderItemsExcel;
-import org.springblade.purchase.sales.excel.PolicyExcel;
-import org.springblade.purchase.sales.excel.orderItemStat;
+import org.springblade.purchase.sales.excel.*;
 import org.springblade.purchase.sales.vo.*;
 
 import java.math.BigDecimal;
@@ -73,7 +69,7 @@ public interface IOrderItemsService extends IService<OrderItems> {
 	 * @param isCovered
 	 * @return
 	 */
-	R<Map<String,Object>> importUser(List<OrderItemsExcel> data, Boolean isCovered);
+	R<Map<String, Object>> importUser(List<OrderItemsExcel> data, Boolean isCovered);
 
 	/**
 	 * 经销商导入订单明细
@@ -203,6 +199,7 @@ public interface IOrderItemsService extends IService<OrderItems> {
 	 * @return
 	 */
 	IPage<DatasetVO> dataset(IPage<DatasetVO> page, DatasetVO datasetVO);
+
 	/**
 	 * 订单明细导入政策
 	 *
@@ -210,7 +207,7 @@ public interface IOrderItemsService extends IService<OrderItems> {
 	 * @param isCovered
 	 * @return
 	 */
-	R<Map<String,Object>> importPolicy(List<PolicyExcel> data, Boolean isCovered,Long policyName,String salesType);
+	R<Map<String, Object>> importPolicy(List<PolicyExcel> data, Boolean isCovered, Long policyName, String salesType);
 
 	/**
 	 * 更新生成货款状态
@@ -218,4 +215,12 @@ public interface IOrderItemsService extends IService<OrderItems> {
 	 * @param id 订单主表id
 	 */
 	boolean submitPay(Long id);
+
+	/**
+	 * 录入明细
+	 *
+	 * @param salesOrderEntryDto
+	 * @return
+	 */
+	R salesOrderEntry(SalesOrderEntryDto salesOrderEntryDto);
 }

+ 50 - 9
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java

@@ -41,10 +41,7 @@ import org.springblade.mocha.feign.ISalesPolicyClient;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.entity.OrderParts;
-import org.springblade.purchase.sales.excel.DealerOrderItem;
-import org.springblade.purchase.sales.excel.OrderItemsExcel;
-import org.springblade.purchase.sales.excel.PolicyExcel;
-import org.springblade.purchase.sales.excel.orderItemStat;
+import org.springblade.purchase.sales.excel.*;
 import org.springblade.purchase.sales.mapper.OrderItemsMapper;
 import org.springblade.purchase.sales.mapper.OrderPartsMapper;
 import org.springblade.purchase.sales.service.IOrderItemsService;
@@ -102,6 +99,11 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 	//获取政策
 	private final ISalesPolicyClient salesPolicyClient;
 
+	private final IPriceItemClient iPriceItemClient;
+
+	private final IStockGoodsClient iStockGoodsClient;
+
+
 	@Override
 	public IPage<OrderItemsVO> selectOrderItemsPage(IPage<OrderItemsVO> page, OrderItemsVO orderItems) {
 		return page.setRecords(baseMapper.selectOrderItemsPage(page, orderItems));
@@ -113,8 +115,8 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 	}
 
 	@Override
-	public R<Map<String,Object>> importUser(List<OrderItemsExcel> data, Boolean isCovered) {
-		Map<String,Object> map = new HashMap<>();
+	public R<Map<String, Object>> importUser(List<OrderItemsExcel> data, Boolean isCovered) {
+		Map<String, Object> map = new HashMap<>();
 		List<OrderItems> list = new ArrayList<>();//导入成功
 		List<String> lose = new ArrayList<>();//导入失败的
 		data.forEach(item -> {
@@ -147,12 +149,12 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 					orderItems.setStorageQuantity(new BigDecimal(BigInteger.ZERO));
 				}
 				list.add(orderItems);
-			}else {
+			} else {
 				lose.add(item.getCode());
 			}
 		});
-		map.put("list",list);
-		map.put("lose",lose);
+		map.put("list", list);
+		map.put("lose", lose);
 		return R.data(map);
 	}
 
@@ -623,4 +625,43 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 		return integer != null && integer > 0;
 	}
 
+	/**
+	 * 录入明细
+	 *
+	 * @param salesOrderEntryDto
+	 * @return
+	 */
+	@Override
+	public R salesOrderEntry(SalesOrderEntryDto salesOrderEntryDto) {
+		List<Map<String, Object>> resultMap = new ArrayList<>();
+		for (salesOrderEntry salesOrderEntry : salesOrderEntryDto.getSalesOrderEntry()) {
+			//获取销售价格
+			List<Map<String, BigDecimal>> mapList = iPriceItemClient.getSalePrice(salesOrderEntry.getCode(), salesOrderEntryDto.getIsFreight(), salesOrderEntryDto.getIsLabel());
+
+			//经销商获取历史采购或者销售价格
+			List<Map<String, Object>> historicalProcurement = baseMapper.historyPrice(salesOrderEntry.getItemId(), salesOrderEntryDto.getTypeId(), salesOrderEntryDto.getBillType(), salesOrderEntryDto.getTradeType(), SecureUtil.getTenantId());
+
+			//获取商品对应的批次号
+			List<Map<String, Object>> batch = baseMapper.lotNo(salesOrderEntry.getItemId(), salesOrderEntryDto.getStorageId(), salesOrderEntryDto.getTradeType(), SecureUtil.getTenantId());
+
+
+			//获取详情
+			StockGoods stockGoods = new StockGoods();
+			stockGoods.setGoodsId(salesOrderEntry.getItemId());
+			stockGoods.setTradeType(salesOrderEntryDto.getTradeType());
+			stockGoods.setStorageId(salesOrderEntryDto.getStorageId());
+			StockGoods detail = iStockGoodsClient.getOneStock(stockGoods);
+
+			Map<String, Object> map = new HashMap<>();
+
+			map.put("salePrice", mapList);
+			map.put("historicalProcurement", historicalProcurement);
+			map.put("stockGoodsDetail", detail);
+			map.put("goodsBatch", batch);
+			resultMap.add(map);
+		}
+
+		return R.data(resultMap);
+	}
+
 }

+ 83 - 109
blade-service/blade-stock/src/main/java/org/springblade/stock/feign/StockGoodsClient.java

@@ -2,20 +2,16 @@ package org.springblade.stock.feign;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.poi.ss.formula.functions.T;
-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.mp.support.Condition;
-import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tenant.annotation.NonDS;
@@ -24,19 +20,14 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.stock.entity.StockGoods;
 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.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
-import javax.validation.Valid;
 import java.math.BigDecimal;
-import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Date;
 import java.util.List;
 
 @Slf4j
@@ -44,7 +35,7 @@ import java.util.List;
 @ApiIgnore()
 @RestController
 @AllArgsConstructor
-public class StockGoodsClient implements IStockGoodsClient{
+public class StockGoodsClient implements IStockGoodsClient {
 
 	private IStockGoodsService stockGoodsService;//库存
 
@@ -58,9 +49,9 @@ public class StockGoodsClient implements IStockGoodsClient{
 	@Override
 	@GetMapping("stockgoods/stocklist")
 	public List<StockGoods> list(String code, String cname, String brandItem, String placeProduction, String typeno, String typenoOne, String typenoTwo, String stockName,
-									 String brand, String tenantId, String createStartTime, String createEndTime, String size, String current) {
+								 String brand, String tenantId, String createStartTime, String createEndTime, String size, String current) {
 
-		StockGoodsVO stockGoods=new StockGoodsVO();
+		StockGoodsVO stockGoods = new StockGoodsVO();
 		stockGoods.setCode(code);
 		stockGoods.setCname(cname);
 		stockGoods.setBrandItem(brandItem);
@@ -75,48 +66,44 @@ public class StockGoodsClient implements IStockGoodsClient{
 		stockGoods.setCreateEndTime(createEndTime);
 
 
-
-
 		LambdaQueryWrapper<StockGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(Func.isNotEmpty(stockGoods.getTenantId()),StockGoods::getTenantId,stockGoods.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());
-		if(Func.isNotEmpty(stockGoods.getCname()))
-		{
+		lambdaQueryWrapper.eq(Func.isNotEmpty(stockGoods.getTenantId()), StockGoods::getTenantId, stockGoods.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());
+		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.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());//制单日期结束
 
 		List<StockGoods> stockGoodsList = stockGoodsService.list(lambdaQueryWrapper);
-		if (CollectionUtils.isNotEmpty(stockGoodsList)){
-			stockGoodsList.stream().forEach(item ->{
+		if (CollectionUtils.isNotEmpty(stockGoodsList)) {
+			stockGoodsList.stream().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());
 					}
-					if (StringUtils.isNotBlank(goodsMessage.getData().getSpecsOne())){
+					if (StringUtils.isNotBlank(goodsMessage.getData().getSpecsOne())) {
 						item.setTypenoOne(goodsMessage.getData().getSpecsOne());
 					}
-					if (StringUtils.isNotBlank(goodsMessage.getData().getSpecsTwo())){
+					if (StringUtils.isNotBlank(goodsMessage.getData().getSpecsTwo())) {
 						item.setTypenoTwo(goodsMessage.getData().getSpecsTwo());
 					}
 					item.setCname(goodsMessage.getData().getCname());
@@ -124,8 +111,6 @@ public class StockGoodsClient implements IStockGoodsClient{
 				}
 
 
-
-
 			});
 		}
 		return stockGoodsList;
@@ -133,24 +118,26 @@ public class StockGoodsClient implements IStockGoodsClient{
 
 	/**
 	 * 查询库存总账 是否存在
-	 * @param corpId 客户id
-	 * @param storageId 仓库id
-	 * @param goodId 商品id
-	 * @param itemType 产品规格型号
-	 * @param lotNo 批次号
-	 * @param cntrNo 箱号
-	 * @param billNo 提单号
+	 *
+	 * @param corpId         客户id
+	 * @param storageId      仓库id
+	 * @param goodId         商品id
+	 * @param itemType       产品规格型号
+	 * @param lotNo          批次号
+	 * @param cntrNo         箱号
+	 * @param billNo         提单号
 	 * @param contractNumber 合同号
 	 * @return
 	 */
 	@Override
 	@GetMapping(SELECT_STOKE)
-	public R<StockGoodsVO> selectStock(Long corpId, Long storageId, Long goodId, String itemType, String lotNo,String cntrNo,String billNo,String contractNumber,String tradeType) {
-		return R.data(stockGoodsService.selectStock(corpId,storageId,goodId,itemType,lotNo,cntrNo,billNo,contractNumber,tradeType));
+	public R<StockGoodsVO> selectStock(Long corpId, Long storageId, Long goodId, String itemType, String lotNo, String cntrNo, String billNo, String contractNumber, String tradeType) {
+		return R.data(stockGoodsService.selectStock(corpId, storageId, goodId, itemType, lotNo, cntrNo, billNo, contractNumber, tradeType));
 	}
 
 	/**
 	 * 新增库存总账
+	 *
 	 * @param stockGoods
 	 * @return
 	 */
@@ -162,6 +149,7 @@ public class StockGoodsClient implements IStockGoodsClient{
 
 	/**
 	 * 订单商品明细获取库存
+	 *
 	 * @param stockGoods
 	 * @return
 	 */
@@ -171,30 +159,27 @@ public class StockGoodsClient implements IStockGoodsClient{
 		stockGoods.setTenantId(SecureUtil.getTenantId());
 		stockGoods.setIsDeleted(0);
 		List<StockGoods> list = stockGoodsService.list(new QueryWrapper<StockGoods>().setEntity(stockGoods));
-		BigDecimal reduce=null;
-		if(CollectionUtils.isNotEmpty(list))
-		{
+		BigDecimal reduce = null;
+		if (CollectionUtils.isNotEmpty(list)) {
 			reduce = list.stream().filter(e -> e.getSurplusRouteQuantity() != null).map(StockGoods::getSurplusRouteQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
-		}
-		else
-		{
-			reduce=new BigDecimal("0");
+		} else {
+			reduce = new BigDecimal("0");
 		}
 		return R.data(reduce);
 	}
 
 	@Override
 	@GetMapping(GET_STOCK_BY_CONDITIONS)
-	public R<StockGoods> getStockByCondition(StockGoods stockGoods)
-	{
+	public R<StockGoods> getStockByCondition(StockGoods stockGoods) {
 		QueryWrapper<StockGoods> queryWrapper = Condition.getQueryWrapper(stockGoods);
-		queryWrapper.eq("tenant_id",AuthUtil.getTenantId());
-		queryWrapper.eq("is_deleted",0);
-	    return 	R.data(stockGoodsService.getOne(queryWrapper));
+		queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+		queryWrapper.eq("is_deleted", 0);
+		return R.data(stockGoodsService.getOne(queryWrapper));
 	}
 
 	/**
 	 * 修改库存总账
+	 *
 	 * @param stockGoods
 	 * @return
 	 */
@@ -206,6 +191,7 @@ public class StockGoodsClient implements IStockGoodsClient{
 
 	/**
 	 * 根据库存账id获取库存信息
+	 *
 	 * @param id
 	 * @return
 	 */
@@ -215,8 +201,7 @@ public class StockGoodsClient implements IStockGoodsClient{
 	}
 
 	@Override
-	public StockGoods getOneStock(StockGoods stockGoods)
-	{
+	public StockGoods getOneStock(StockGoods stockGoods) {
 		stockGoods.setTenantId(AuthUtil.getTenantId());
 		QueryWrapper<StockGoods> queryWrapper = Condition.getQueryWrapper(stockGoods);
 
@@ -225,30 +210,27 @@ public class StockGoodsClient implements IStockGoodsClient{
 
 	@Override
 	@GetMapping(LIST_STOCK_BY_CONDITIONS)
-	public List<StockGoods> listStockByCondition(StockGoods stockGoods)
-	{
-		LambdaQueryWrapper<StockGoods> stockGoodsLambdaQueryWrapper=new LambdaQueryWrapper<>();
+	public List<StockGoods> listStockByCondition(StockGoods stockGoods) {
+		LambdaQueryWrapper<StockGoods> stockGoodsLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		stockGoodsLambdaQueryWrapper
-			.eq(stockGoods.getStorageId()!=null,StockGoods::getStorageId,stockGoods.getStorageId())
-			.eq(stockGoods.getCorpId()!=null,StockGoods::getCorpId,stockGoods.getCorpId())
-			.eq(stockGoods.getGoodsId()!=null,StockGoods::getGoodsId,stockGoods.getGoodsId())
-			.eq(StringUtils.isNotBlank(stockGoods.getTradeType()),StockGoods::getTradeType,stockGoods.getTradeType())
-			.eq(StringUtils.isNotBlank(stockGoods.getItemType()),StockGoods::getItemType,stockGoods.getItemType())
-			.eq(StringUtils.isNotBlank(stockGoods.getContractNumber()),StockGoods::getContractNumber,stockGoods.getContractNumber())
-			.eq(StringUtils.isNotBlank(stockGoods.getBillNo()),StockGoods::getBillNo,stockGoods.getBillNo())
-			.eq(StringUtils.isNotBlank(stockGoods.getCntrNo()),StockGoods::getCntrNo,stockGoods.getCntrNo())
-			.eq(StockGoods::getIsDeleted,0)
-			.eq(StockGoods::getTenantId,SecureUtil.getTenantId());
+			.eq(stockGoods.getStorageId() != null, StockGoods::getStorageId, stockGoods.getStorageId())
+			.eq(stockGoods.getCorpId() != null, StockGoods::getCorpId, stockGoods.getCorpId())
+			.eq(stockGoods.getGoodsId() != null, StockGoods::getGoodsId, stockGoods.getGoodsId())
+			.eq(StringUtils.isNotBlank(stockGoods.getTradeType()), StockGoods::getTradeType, stockGoods.getTradeType())
+			.eq(StringUtils.isNotBlank(stockGoods.getItemType()), StockGoods::getItemType, stockGoods.getItemType())
+			.eq(StringUtils.isNotBlank(stockGoods.getContractNumber()), StockGoods::getContractNumber, stockGoods.getContractNumber())
+			.eq(StringUtils.isNotBlank(stockGoods.getBillNo()), StockGoods::getBillNo, stockGoods.getBillNo())
+			.eq(StringUtils.isNotBlank(stockGoods.getCntrNo()), StockGoods::getCntrNo, stockGoods.getCntrNo())
+			.eq(StockGoods::getIsDeleted, 0)
+			.eq(StockGoods::getTenantId, SecureUtil.getTenantId());
 		List<StockGoods> goodsList = stockGoodsService.list(stockGoodsLambdaQueryWrapper);
-		if(CollectionUtils.isNotEmpty(goodsList))
-		{
-			goodsList.forEach(e->{
+		if (CollectionUtils.isNotEmpty(goodsList)) {
+			goodsList.forEach(e -> {
 				//获取仓库信息
-				if (e.getStorageId() != null){
+				if (e.getStorageId() != null) {
 					//仓库信息
 					StorageDesc storageDesc = iStorageClient.findById(e.getStorageId());
-					if(storageDesc!=null)
-					{
+					if (storageDesc != null) {
 						e.setStockName(storageDesc.getCname());
 					}
 
@@ -256,9 +238,7 @@ public class StockGoodsClient implements IStockGoodsClient{
 			});
 
 			return goodsList;
-		}
-		else
-		{
+		} else {
 			return Collections.EMPTY_LIST;
 		}
 
@@ -266,30 +246,27 @@ public class StockGoodsClient implements IStockGoodsClient{
 
 	@Override
 	@PostMapping(POST_LIST_STOCK_BY_CONDITIONS)
-	public List<StockGoods> postListStockByCondition(StockGoods stockGoods)
-	{
-		LambdaQueryWrapper<StockGoods> stockGoodsLambdaQueryWrapper=new LambdaQueryWrapper<>();
+	public List<StockGoods> postListStockByCondition(StockGoods stockGoods) {
+		LambdaQueryWrapper<StockGoods> stockGoodsLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		stockGoodsLambdaQueryWrapper
-			.eq(stockGoods.getStorageId()!=null,StockGoods::getStorageId,stockGoods.getStorageId())
-			.eq(stockGoods.getCorpId()!=null,StockGoods::getCorpId,stockGoods.getCorpId())
-			.eq(stockGoods.getGoodsId()!=null,StockGoods::getGoodsId,stockGoods.getGoodsId())
-			.eq(StringUtils.isNotBlank(stockGoods.getTradeType()),StockGoods::getTradeType,stockGoods.getTradeType())
-			.eq(StringUtils.isNotBlank(stockGoods.getItemType()),StockGoods::getItemType,stockGoods.getItemType())
-			.eq(StringUtils.isNotBlank(stockGoods.getContractNumber()),StockGoods::getContractNumber,stockGoods.getContractNumber())
-			.eq(StringUtils.isNotBlank(stockGoods.getBillNo()),StockGoods::getBillNo,stockGoods.getBillNo())
-			.eq(StringUtils.isNotBlank(stockGoods.getCntrNo()),StockGoods::getCntrNo,stockGoods.getCntrNo())
-			.eq(StockGoods::getIsDeleted,0)
-			.eq(StockGoods::getTenantId,stockGoods.getTenantId());
+			.eq(stockGoods.getStorageId() != null, StockGoods::getStorageId, stockGoods.getStorageId())
+			.eq(stockGoods.getCorpId() != null, StockGoods::getCorpId, stockGoods.getCorpId())
+			.eq(stockGoods.getGoodsId() != null, StockGoods::getGoodsId, stockGoods.getGoodsId())
+			.eq(StringUtils.isNotBlank(stockGoods.getTradeType()), StockGoods::getTradeType, stockGoods.getTradeType())
+			.eq(StringUtils.isNotBlank(stockGoods.getItemType()), StockGoods::getItemType, stockGoods.getItemType())
+			.eq(StringUtils.isNotBlank(stockGoods.getContractNumber()), StockGoods::getContractNumber, stockGoods.getContractNumber())
+			.eq(StringUtils.isNotBlank(stockGoods.getBillNo()), StockGoods::getBillNo, stockGoods.getBillNo())
+			.eq(StringUtils.isNotBlank(stockGoods.getCntrNo()), StockGoods::getCntrNo, stockGoods.getCntrNo())
+			.eq(StockGoods::getIsDeleted, 0)
+			.eq(StockGoods::getTenantId, stockGoods.getTenantId());
 		List<StockGoods> goodsList = stockGoodsService.list(stockGoodsLambdaQueryWrapper);
-		if(CollectionUtils.isNotEmpty(goodsList))
-		{
-			goodsList.forEach(e->{
+		if (CollectionUtils.isNotEmpty(goodsList)) {
+			goodsList.forEach(e -> {
 				//获取仓库信息
-				if (e.getStorageId() != null){
+				if (e.getStorageId() != null) {
 					//仓库信息
 					StorageDesc storageDesc = iStorageClient.findById(e.getStorageId());
-					if(storageDesc!=null)
-					{
+					if (storageDesc != null) {
 						e.setStockName(storageDesc.getCname());
 					}
 
@@ -297,9 +274,7 @@ public class StockGoodsClient implements IStockGoodsClient{
 			});
 
 			return goodsList;
-		}
-		else
-		{
+		} else {
 			return Collections.EMPTY_LIST;
 		}
 	}
@@ -307,11 +282,10 @@ public class StockGoodsClient implements IStockGoodsClient{
 	@Override
 	@GetMapping(GET_STOCK_NUMBER)
 	public BigDecimal getStockNumber(Long goodId, String tenantId) {
-		BigDecimal reduce=BigDecimal.ZERO;//库存
+		BigDecimal reduce = BigDecimal.ZERO;//库存
 		BigDecimal bigDecimal = stockGoodsService.selectStockNumber(tenantId, goodId);
 
-		if(bigDecimal != null)
-		{
+		if (bigDecimal != null) {
 			reduce = bigDecimal;
 		}
 		return reduce;