Browse Source

2022年10月21日22:58:05

纪新园 3 years ago
parent
commit
8b9187a8e2
26 changed files with 866 additions and 433 deletions
  1. 5 0
      blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/Delivery.java
  2. 12 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderStatisticAnalysisVO.java
  3. 7 1
      blade-service-api/blade-stock-api/src/main/java/org/springblade/stock/entity/StockGoods.java
  4. 10 0
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java
  5. 6 0
      blade-service/blade-client/src/main/java/org/springblade/client/RedisClient.java
  6. 14 3
      blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescController.java
  7. 7 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/controller/GoodsDescController.java
  8. 1 0
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/receiving/ImportReCeVingController.java
  9. 3 2
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java
  10. 1 1
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java
  11. 1 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/entrance/EntranceOrderController.java
  12. 16 3
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportEnquiryController.java
  13. 6 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml
  14. 14 12
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  15. 10 7
      blade-service/blade-stock/src/main/java/org/springblade/stock/controller/StockGoodsController.java
  16. 1 1
      blade-service/blade-stock/src/main/java/org/springblade/stock/mapper/StockGoodsMapper.java
  17. 7 4
      blade-service/blade-stock/src/main/java/org/springblade/stock/mapper/StockGoodsMapper.xml
  18. 1 1
      blade-service/blade-stock/src/main/java/org/springblade/stock/service/IStockGoodsService.java
  19. 2 2
      blade-service/blade-stock/src/main/java/org/springblade/stock/service/impl/StockGoodsServiceImpl.java
  20. 15 0
      blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserClient.java
  21. 144 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/excel/RubberStockDto.java
  22. 399 357
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java
  23. 16 8
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.java
  24. 96 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.xml
  25. 42 17
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderService.java
  26. 30 13
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

+ 5 - 0
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/Delivery.java

@@ -214,6 +214,11 @@ public class Delivery implements Serializable {
 	@ApiModelProperty(value = "合同号")
 	private String contractNumber;
 	/**
+	 * 合同类型
+	 */
+	@ApiModelProperty(value = "合同类型")
+	private String orderType;
+	/**
 	 * 业务员
 	 */
 	@ApiModelProperty(value = "业务员")

+ 12 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderStatisticAnalysisVO.java

@@ -65,6 +65,18 @@ public class OrderStatisticAnalysisVO
 	//币别汇率
 	private BigDecimal exchangeRate;
 
+	//是否开票
+	private String isInvoicing;
+
+	//开票日期
+	private Date invoicingDate;
+
+	//保证金金额
+	private BigDecimal bondAmount;
+
+	//收款日期
+	private Date collectionDate;
+
 
 
 }

+ 7 - 1
blade-service-api/blade-stock-api/src/main/java/org/springblade/stock/entity/StockGoods.java

@@ -52,6 +52,12 @@ public class StockGoods implements Serializable {
 	*/
 		@ApiModelProperty(value = "仓库/库区id")
 		private Long storageId;
+
+	/**
+	 * 仓库/库区id
+	 */
+	@TableField(exist = false)
+	private String storageIds;
 	/**
 	* 商品id
 	*/
@@ -319,7 +325,7 @@ public class StockGoods implements Serializable {
 	/**
 	 * 合同类型
 	 */
-	@TableField(exist = false)
+	@ApiModelProperty(value = "合同类型")
 	private String orderType;
 
 

+ 10 - 0
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java

@@ -61,6 +61,7 @@ public interface IUserClient {
 	String GET_USER_PAGE=API_PREFIX+"/getUserPage";
 	String USER_BY_IDS = API_PREFIX+ "/selectUserIds";
 	String USER_ALL = API_PREFIX+ "/selectUserAll";
+	String LOGIN_BY_ACCOUNT = API_PREFIX+ "/loginByAccount";
 
 	@GetMapping(LIST_USER_BY_ROLE_ID)
 	R<List<User>> listUserByRoleId(@RequestParam("roleId")Long roleId);
@@ -185,4 +186,13 @@ public interface IUserClient {
 	@GetMapping(USER_ALL)
 	List<User> selectUserAll();
 
+	/**
+	 * 获取用户信息(通过账号)
+	 *
+	 * @param
+	 * @return
+	 */
+	@GetMapping(LOGIN_BY_ACCOUNT)
+	User loginByAccount(@RequestParam("account") String account);
+
 }

+ 6 - 0
blade-service/blade-client/src/main/java/org/springblade/client/RedisClient.java

@@ -53,12 +53,14 @@ public class RedisClient implements IRedisClient {
 			//用户
 			if (redisTemplate.hasKey(RedisKey.REDIS_USER)) {
 				redisTemplate.opsForValue().set(RedisKey.REDIS_USER, userClient.selectUserAll(), 30, TimeUnit.DAYS);
+				redisTemplate.persist(type);
 			} else {
 				redisTemplate.opsForValue().getAndSet(RedisKey.REDIS_USER, userClient.selectUserAll());
 			}
 			//商品
 			if (redisTemplate.hasKey(RedisKey.REDIS_GOODS)) {
 				redisTemplate.opsForValue().set(RedisKey.REDIS_GOODS, goodsDescClient.selectGoodsDescAll(), 30, TimeUnit.DAYS);
+				redisTemplate.persist(type);
 			} else {
 				redisTemplate.opsForValue().getAndSet(RedisKey.REDIS_GOODS, goodsDescClient.selectGoodsDescAll());
 			}
@@ -70,6 +72,7 @@ public class RedisClient implements IRedisClient {
 			if (ObjectUtils.isNotNull(list)) {
 				if (redisTemplate.hasKey(RedisKey.REDIS_CORPS)) {
 					redisTemplate.opsForValue().set(RedisKey.REDIS_CORPS, list, 30, TimeUnit.DAYS);
+					redisTemplate.persist(type);
 				} else {
 					redisTemplate.opsForValue().getAndSet(RedisKey.REDIS_CORPS, list);
 				}
@@ -77,18 +80,21 @@ public class RedisClient implements IRedisClient {
 			//仓库
 			if (redisTemplate.hasKey(RedisKey.REDIS_STORAGE_TYPE)) {
 				redisTemplate.opsForValue().set(RedisKey.REDIS_STORAGE_TYPE, iStorageClient.selectStorageTypeAll(), 30, TimeUnit.DAYS);
+				redisTemplate.persist(type);
 			} else {
 				redisTemplate.opsForValue().getAndSet(RedisKey.REDIS_STORAGE_TYPE, iStorageClient.selectStorageTypeAll());
 			}
 			//库区
 			if (redisTemplate.hasKey(RedisKey.REDIS_STORAGE_DESC)) {
 				redisTemplate.opsForValue().set(RedisKey.REDIS_STORAGE_DESC, iStorageClient.selectStorageDescAll(), 30, TimeUnit.DAYS);
+				redisTemplate.persist(type);
 			} else {
 				redisTemplate.opsForValue().getAndSet(RedisKey.REDIS_STORAGE_DESC, iStorageClient.selectStorageDescAll());
 			}
 			//库存
 			if (redisTemplate.hasKey(RedisKey.STOCK_GOODS)) {
 				redisTemplate.opsForValue().set(RedisKey.STOCK_GOODS, stockGoodsClient.selectStockGoodsAll(), 30, TimeUnit.DAYS);
+				redisTemplate.persist(type);
 			} else {
 				redisTemplate.opsForValue().getAndSet(RedisKey.STOCK_GOODS, stockGoodsClient.selectStockGoodsAll());
 			}

+ 14 - 3
blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescController.java

@@ -4,6 +4,7 @@ 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.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
@@ -70,6 +71,7 @@ public class CorpsDescController extends BladeController {
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入corpsDesc")
 	public R<CorpsDesc> detail(CorpsDesc corpsDesc) {
+		redisClient.basicData("corps");
 		CorpsDesc detail = corpsDescService.getMessageByID(corpsDesc);
 		return R.data(detail);
 	}
@@ -81,6 +83,7 @@ public class CorpsDescController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入corpsDesc")
 	public R<IPage<CorpsDescVO>> list(CorpsDescVO corpsDesc, Query query) {
+		redisClient.basicData("corps");
 		// 默认查有效的
 		corpsDesc.setIsDeleted(0);
 		corpsDesc.setTenantId(SecureUtil.getTenantId());
@@ -137,6 +140,7 @@ public class CorpsDescController extends BladeController {
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入corpsDesc")
 	public R<IPage<CorpsDescVO>> page(CorpsDescVO corpsDesc, Query query) {
+		redisClient.basicData("corps");
 		corpsDesc.setIsDeleted(0);//默认查有效的
 		corpsDesc.setTenantId(SecureUtil.getTenantId());
 		IPage<CorpsDescVO> pages = corpsDescService.selectCorpsDescPage(Condition.getPage(query), corpsDesc);
@@ -257,6 +261,7 @@ public class CorpsDescController extends BladeController {
 	@ApiOperationSupport(order = 12)
 	@ApiOperation(value = "导入客户资料", notes = "传入excel")
 	public R importUser(@RequestParam("file") MultipartFile file, @RequestParam("corpType") String corpType) {
+		redisClient.basicData("corps");
 		List<CorpsExcel> excelList = ExcelUtil.read(file, CorpsExcel.class);
 		if (CollectionUtils.isEmpty(excelList)) {
 			throw new SecurityException("数据不能为空");
@@ -271,6 +276,7 @@ public class CorpsDescController extends BladeController {
 	@ApiOperationSupport(order = 12)
 	@ApiOperation(value = "导入公司主体", notes = "传入excel")
 	public R importCompanyDesc(@RequestParam("file") MultipartFile file) {
+		redisClient.basicData("corps");
 		List<CorpsCompanyExcel> excelList = ExcelUtil.read(file, CorpsCompanyExcel.class);
 		if (CollectionUtils.isEmpty(excelList)) {
 			throw new SecurityException("数据不能为空");
@@ -285,6 +291,7 @@ public class CorpsDescController extends BladeController {
 	@ApiOperationSupport(order = 12)
 	@ApiOperation(value = "导入供应商信息", notes = "传入excel")
 	public R importSupplierDesc(@RequestParam("file") MultipartFile file) {
+		redisClient.basicData("corps");
 		List<CorpsSupplierExcel> excelList = ExcelUtil.read(file, CorpsSupplierExcel.class);
 		if (CollectionUtils.isEmpty(excelList)) {
 			throw new SecurityException("数据不能为空");
@@ -510,6 +517,7 @@ public class CorpsDescController extends BladeController {
 		if (StringUtils.isBlank(corpsDesc.getCorpType())) {
 			throw new SecurityException("缺少必要的参数,客户类型");
 		}
+		redisClient.basicData("corps");
 		//获取客户类别及其子类别
 		List<Long> corpsTypeIdList = new ArrayList<>();
 		if (StringUtils.isNotBlank(corpsDesc.getCorpsTypeName())) {
@@ -595,7 +603,7 @@ public class CorpsDescController extends BladeController {
 	@ApiOperationSupport(order = 11)
 	@ApiOperation(value = "所有客户信息", notes = "获得客户信息")
 	public R<List<CorpsDesc>> bidingCorpsList(CorpsDescVO corpsDesc) {
-
+		redisClient.basicData("corps");
 		LambdaQueryWrapper<CorpsDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(CorpsDesc::getIsDeleted, 0);
 		lambdaQueryWrapper.eq(CorpsDesc::getTenantId, SecureUtil.getTenantId());
@@ -634,6 +642,7 @@ public class CorpsDescController extends BladeController {
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "导入数据", notes = "传入excel")
 	public R importFleetData(MultipartFile file) {
+		redisClient.basicData("corps");
 		List<FleetExcel> excelList = ExcelUtil.read(file, FleetExcel.class);
 		if (CollectionUtil.isEmpty(excelList)) {
 			throw new SecurityException("数据不能为空");
@@ -659,6 +668,7 @@ public class CorpsDescController extends BladeController {
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "导入数据", notes = "传入excel")
 	public R importFactoryData(MultipartFile file) {
+		redisClient.basicData("corps");
 		List<FactoryExcel> excelList = ExcelUtil.read(file, FactoryExcel.class);
 		if (CollectionUtil.isEmpty(excelList)) {
 			throw new SecurityException("数据不能为空");
@@ -711,11 +721,12 @@ public class CorpsDescController extends BladeController {
 	 * 分页 客户详情
 	 */
 	@GetMapping("/listAll")
-	public R<List<CorpsDescVO>> listAll() {
+	public R<List<CorpsDescVO>> listAll(@RequestParam("corpType") String corpType) {
+		redisClient.basicData("corps");
 		QueryWrapper<CorpsDesc> queryWrapper = new QueryWrapper<>();
 		queryWrapper.eq("is_deleted",0);
 		queryWrapper.eq("tenant_id",AuthUtil.getTenantId());
-		queryWrapper.eq("corp_type","GS");
+		queryWrapper.apply(ObjectUtils.isNotNull(corpType),"find_in_set(corp_type,'"+corpType+"')");
 		List<CorpsDesc> pages = corpsDescService.list(queryWrapper);
 		List<CorpsDescVO> corpsDescVOList = new ArrayList<>();
 		if (CollectionUtils.isNotEmpty(pages)) {

+ 7 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/controller/GoodsDescController.java

@@ -109,6 +109,7 @@ public class GoodsDescController extends BladeController {
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入goodsDesc")
 	public R<GoodsDesc> detail(GoodsDesc goodsDesc) {
+		redisClient.basicData("goods");
 		goodsDesc.setTenantId(AuthUtil.getTenantId());
 		goodsDesc.setType(GoodsTypeEnum.GOODS.getType());
 		GoodsDesc detail = goodsDescService.getMessageById(goodsDesc);
@@ -122,6 +123,7 @@ public class GoodsDescController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入goodsDesc")
 	public R<IPage<GoodsDescVO>> list(GoodsDescVO goodsDesc, Query query) {
+		redisClient.basicData("goods");
 		goodsDesc.setTenantId(SecureUtil.getTenantId());
 		goodsDesc.setIsDeleted(0);
 		IPage<GoodsDescVO> pages = goodsDescService.selectGoodsDescPage(Condition.getPage(query), goodsDesc);
@@ -141,6 +143,7 @@ public class GoodsDescController extends BladeController {
 					 @RequestParam(name = "goodsTypeId", required = false) String goodsTypeId,
 					 @RequestParam(name = "belongToCorpId", required = false) String belongToCorpId,
 					 @RequestParam(name = "artsVision", required = false) String artsVision) {
+		redisClient.basicData("goods");
 
 		LambdaQueryWrapper<GoodsDesc> goodsDescLambdaQueryWrapper = new LambdaQueryWrapper<>();
 
@@ -203,6 +206,7 @@ public class GoodsDescController extends BladeController {
 
 	@GetMapping("/product")
 	public R<?> product(GoodsDesc goodsDesc) {
+		redisClient.basicData("goods");
 		return R.data(goodsDescService.getProductList(goodsDesc));
 	}
 
@@ -210,6 +214,7 @@ public class GoodsDescController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入goodsDesc")
 	public R list(@RequestParam(name = "id") String id) {
+		redisClient.basicData("goods");
 		GoodsDesc goodsDesc = goodsDescService.getById(id);
 
 		List<GoodsPrice> priceList = goodsPriceService.list(new LambdaQueryWrapper<GoodsPrice>()
@@ -271,6 +276,7 @@ public class GoodsDescController extends BladeController {
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入goodsDesc")
 	public R<IPage<GoodsDescVO>> page(GoodsDescVO goodsDesc, Query query) {
+		redisClient.basicData("goods");
 		goodsDesc.setTenantId(AuthUtil.getTenantId());
 		goodsDesc.setType(GoodsTypeEnum.GOODS.getType());
 		IPage<GoodsDescVO> pages = goodsDescService.selectGoodsDescPage(Condition.getPage(query), goodsDesc);
@@ -503,6 +509,7 @@ public class GoodsDescController extends BladeController {
 	 */
 	@GetMapping("/goodsTypeList")
 	public R<?> GoodsTypeList() {
+		redisClient.basicData("goods");
 		LambdaQueryWrapper<GoodsType> typeLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		typeLambdaQueryWrapper.eq(GoodsType::getTenantId, AuthUtil.getTenantId());
 		typeLambdaQueryWrapper.eq(GoodsType::getIsDeleted, 0);

+ 1 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/receiving/ImportReCeVingController.java

@@ -110,6 +110,7 @@ public class ImportReCeVingController extends BladeController {
 		lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getBusinessEndDate()), Delivery::getBusinessDate, delivery.getBusinessEndDate());//收货日期结束
 		lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getCreateUser()), Delivery::getCreateUser, delivery.getCreateUser());//制单人
 		lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getStorageId()), Delivery::getStorageId, delivery.getStorageId());//仓库
+		lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getOrderType()), Delivery::getOrderType, delivery.getOrderType());//合同类型
 		lambdaQueryWrapper.orderByDesc(Delivery::getCreateTime);
 		IPage<Delivery> pages = deliveryService.page(Condition.getPage(query), lambdaQueryWrapper);
 		//解决回显字段问题

+ 3 - 2
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java

@@ -544,7 +544,7 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 	 * @param storageId 仓库id
 	 * @param deliveryItems 明细信息
 	 */
-	public StockGoods saveStock(String tradeType,Long corpId,Long storageId,DeliveryItems deliveryItems){
+	public StockGoods saveStock(String tradeType,Long corpId,Long storageId,DeliveryItems deliveryItems,String orderType){
 		StockGoods stockGoods = new StockGoods();
 		stockGoods.setGoodsId(deliveryItems.getItemId());//商品id
 
@@ -576,6 +576,7 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 			stockGoods.setBalanceVolumn(deliveryItems.getBillWeight());//结余码单重量
 
 			stockGoods.setTradeType("JK");
+			stockGoods.setOrderType(orderType);
 		}
 		//国内
 		else if(tradeType.equals(OrderTypeEnum.DOMESTIC.getType()))
@@ -809,7 +810,7 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 				deliveryItems.setDeliveryAmount((stock.getInAmount().divide(stock.getInQuantity(), 5, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP).multiply(deliveryItems.getActualQuantity()));
 				StockGoodsVO serviceStock = this.getStock(tradeType, null, allotStorageId, deliveryItems);
 				if (serviceStock == null){
-					this.saveStock(tradeType,null,allotStorageId,deliveryItems);
+					this.saveStock(tradeType,null,allotStorageId,deliveryItems,null);
 				}else {
 					serviceStock.setInQuantity(serviceStock.getInQuantity().add( deliveryItems.getActualQuantity()));//入库数量 加
 					serviceStock.setSurplusRouteQuantity(serviceStock.getSurplusRouteQuantity().add(deliveryItems.getActualQuantity()));//可用数量 加

+ 1 - 1
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -721,7 +721,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 				if (!"GN".equals(select.getTradeType())) {
 					//新增库存单
 					if (stock == null) {
-						StockGoods stockGoods = iDeliveryItemsService.saveStock(select.getTradeType(), select.getCorpId(), select.getStorageId(), e);
+						StockGoods stockGoods = iDeliveryItemsService.saveStock(select.getTradeType(), select.getCorpId(), select.getStorageId(), e,select.getOrderType());
 						//更新收货单明细库存
 						e.setInventoryNumber(stockGoods.getSurplusRouteQuantity());
 						e.setInWeight(stockGoods.getInWeight());

+ 1 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/entrance/EntranceOrderController.java

@@ -140,6 +140,7 @@ public class EntranceOrderController extends BladeController {
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderRemark()),Order::getOrderRemark,order.getOrderRemark());//备注
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderAmount()),Order::getOrderAmount,order.getOrderAmount());//合同金额
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSalesName()),Order::getSalesName,order.getSalesName());//业务员
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getOrderType()),Order::getOrderType,order.getOrderType());//业务员
 		lambdaQueryWrapper.orderByDesc(Order::getId);
 		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(page.getRecords())){

+ 16 - 3
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportEnquiryController.java

@@ -5,6 +5,7 @@ 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.ObjectUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.trade.purchase.order.enums.OrderTypeEnum;
 import io.swagger.annotations.Api;
@@ -147,18 +148,30 @@ public class ExportEnquiryController extends BladeController {
 			page.getRecords().stream().forEach(item -> {
 				if (item.getCorpId() != null) {
 					if (ObjectUtil.isNotEmpty(corpList)) {
-						item.setCorpsName(corpList.stream().filter(e -> e.getId().equals(item.getCorpId())).findFirst().get().getCname());
+						CorpsDesc corpsDesc = corpList.stream().filter(d -> d.getId().equals(item.getCorpId())).findFirst().orElse(null);
+						if (ObjectUtils.isNotNull(corpsDesc)){
+							item.setCorpsName(corpsDesc.getCname());
+						}
+//						item.setCorpsName(corpList.stream().filter(e -> e.getId().equals(item.getCorpId())).findFirst().get().getCname());
 					}
 				}
 				if (item.getBelongToCorpId() != null) {
 					if (ObjectUtil.isNotEmpty(belongToCorpList)) {
-						item.setBelongToCorpName(belongToCorpList.stream().filter(e -> e.getId().equals(item.getBelongToCorpId())).findFirst().get().getCname());
+						CorpsDesc corpsDesc = belongToCorpList.stream().filter(d -> d.getId().equals(item.getBelongToCorpId())).findFirst().orElse(null);
+						if (ObjectUtils.isNotNull(corpsDesc)){
+							item.setCorpsName(corpsDesc.getCname());
+						}
+//						item.setBelongToCorpName(belongToCorpList.stream().filter(e -> e.getId().equals(item.getBelongToCorpId())).findFirst().get().getCname());
 					}
 				}
 				//制单人名字
 				if (item.getCreateUser() != null) {
 					if (ObjectUtil.isNotEmpty(createUserList)) {
-						item.setCreateUserName(createUserList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst().get().getRealName());
+						User user = createUserList.stream().filter(d -> d.getId().equals(item.getCreateUser())).findFirst().orElse(null);
+						if (ObjectUtils.isNotNull(user)){
+							item.setCorpsName(user.getRealName());
+						}
+//						item.setCreateUserName(createUserList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst().get().getRealName());
 					}
 				}
 				//获取订单明细

+ 6 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml

@@ -408,7 +408,11 @@
         a.order_no as orderNo,
         a.bill_weight as billWeight,
         a.invoice_weight as invoiceWeight,
-        b.*
+        b.*,
+        fs.invoice_time As invoicingDate,
+        fs.settlement_date As collectionDate,
+        a.deposit As bondAmount,
+        IF(invoice_time,1,2) As isInvoicing
         from business_order a  left join
         (
         SELECT
@@ -439,6 +443,7 @@
         )
         order by  a.create_time desc
       )   b  on a.order_no=b.orgOrderNo
+        join finance_settlement fs on a.order_no = fs.Src_OrderNo
       where  a.bill_type='CG' and  a.trade_type='JK' and a.is_deleted = 0
         <if test='startTime != null and endTime!= null'>
             and a.create_time between #{startTime} and #{endTime}

+ 14 - 12
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -343,7 +343,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				// 采购金额求和
 				BigDecimal reduce = list.stream().reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getPurchaseAmount().multiply(y.getOrderQuantity())), BigDecimal::add);
 				// 金额求和
-				BigDecimal amount = list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+//				BigDecimal amount = list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);  //旧
+				BigDecimal amount = list.stream().map(OrderItems::getOutFactoryPrice).reduce(BigDecimal.ZERO, BigDecimal::add);//新
 				//毛利额 = 销售金额-采购金额-预计海运费-本次使用返利+应收费用(除包装费)
 				BigDecimal grossProfit = amount.subtract(reduce.add(order.getPredictOceanFreight())).subtract(order.getCreateProfit() == null ? BigDecimal.ZERO : order.getCreateProfit());
 				//国内主表需要总重量总体积
@@ -374,11 +375,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				//总提价
 				orderMessage.setCartonWeight(cartonWeight);
 			} else if (CollectionUtils.isNotEmpty(list) && order.getTradeType().equals(OrderTypeEnum.EXPORT.getType())) {
-				// 出口的毛利额=销售价 * 汇率 - (采购价+配件价格)    毛利率 =毛利额/(采购单价+配件价格)旧
-				// 出口的毛利额=出厂价 * 汇率 - (采购价+配件价格)    毛利率 =毛利额/(采购单价+配件价格)新
+				// 出口的毛利额=销售价 * 汇率 - (采购价+配件价格)    毛利率 =毛利额/(采购单价+配件价格)
 				// 金额求和
-//				BigDecimal amount = list.stream().reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getPrice().multiply(y.getOrderQuantity())), BigDecimal::add);
-				BigDecimal amount = list.stream().reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getOutFactoryPrice().multiply(y.getOrderQuantity())), BigDecimal::add);
+				BigDecimal amount = list.stream().reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getPrice().multiply(y.getOrderQuantity())), BigDecimal::add);
+//				BigDecimal amount = list.stream().reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getOutFactoryPrice().multiply(y.getOrderQuantity())), BigDecimal::add);
 				// 采购金额求和
 				BigDecimal purchaseAmount = list.stream().reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getPurchaseAmount().multiply(y.getOrderQuantity())), BigDecimal::add);
 				// 配件金额求和
@@ -422,7 +422,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			R<List<Map<String, Object>>> corpMessage = corpsDescClient.getCorpsMessage(orderMessage.getCorpId().toString());
 			if (corpMessage.isSuccess() && corpMessage.getData() != null) {
 				orderMessage.setCorpName(corpMessage.getData());
-				orderMessage.setCorpsName(corpMessage.getData().get(0).get("cname").toString());
+				if (corpMessage.getData().size() > 0) {
+					orderMessage.setCorpsName(corpMessage.getData().get(0).get("cname").toString());
+				}
 			}
 		}
 		// 获取销售公司中文名
@@ -1651,7 +1653,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 							feesMap.put("unit", "40HC");
 							feesMap.put("price", orderCostItem.getFortyHc());
 						}
-					} else {//杂费
+					} else if (orderCostItem.getType() == 3){//杂费
 						//杂费 = 票费用/汇率  || 票费用
 						amount = amount.add(orderCostItem.getTicket());
 						feesMap.put("unit", "JOB");
@@ -1703,7 +1705,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 							feesMap.put("unit", "40HC");
 							feesMap.put("price", orderCostItem.getFortyHc());
 						}
-					} else {//杂费
+					} else if (orderCostItem.getType() == 3){//杂费
 						//杂费 = 票费用/汇率  || 票费用
 						amount = amount.add(orderCostItem.getTicket());
 						feesMap.put("unit", "JOB");
@@ -1725,12 +1727,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 		//分摊费用额 = 总费用/总货值
 		amountF = amount.divide(order.getTotalValue(), MathContext.DECIMAL32);
-		amountF = amountF.setScale(2, BigDecimal.ROUND_HALF_UP);
-		amount = amount.setScale(2, BigDecimal.ROUND_HALF_UP);
+		amountF = amountF.setScale(10, BigDecimal.ROUND_HALF_UP);
+		amount = amount.setScale(10, BigDecimal.ROUND_HALF_UP);
 
 
-		map.put("amount", amount);
-		map.put("amountF", amountF);
+		map.put("amount", amount.toString());
+		map.put("amountF", amountF.toString());
 		map.put("fees", mapList);
 		return map;
 	}

+ 10 - 7
blade-service/blade-stock/src/main/java/org/springblade/stock/controller/StockGoodsController.java

@@ -189,7 +189,7 @@ public class StockGoodsController extends BladeController {
 				}
 			}
 
-			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(),stockGoods.getOrderType());
 			List<StockGoods> records = iPage.getRecords();
 			if (CollectionUtils.isNotEmpty(records)) {
 				records.forEach(item -> {
@@ -221,13 +221,16 @@ public class StockGoodsController extends BladeController {
 						}
 					}
 					//获取仓库信息
-					if (item.getStorageId() != null) {
-						//仓库信息
-						StorageDesc storageDesc = iStorageClient.findById(item.getStorageId());
-						if (storageDesc != null) {
-							item.setStockName(storageDesc.getCname());
+					if (item.getStorageIds() != null) {
+						String[] ids = item.getStorageIds().split(",");
+						if (ids.length>0){
+							//仓库信息
+//							StorageDesc storageDesc = iStorageClient.findById(item.getStorageId());
+							StorageDesc storageDesc = iStorageClient.findById(Long.parseLong(ids[0]));
+							if (storageDesc != null) {
+								item.setStockName(storageDesc.getCname());
+							}
 						}
-
 					}
 					if (item.getUpdateUser() != null) {
 						R<User> updateUser = userClient.userInfoById(item.getUpdateUser());

+ 1 - 1
blade-service/blade-stock/src/main/java/org/springblade/stock/mapper/StockGoodsMapper.java

@@ -44,7 +44,7 @@ public interface StockGoodsMapper extends BaseMapper<StockGoods> {
 	 */
 	List<StockGoodsVO> selectStockGoodsPage(IPage page, StockGoodsVO stockGoods);
 
-	IPage<StockGoods> groupByStock(IPage<StockGoods> iPage, @Param("tenantId") String tenantId, @Param("contractNumber") String contractNumber, @Param("billNo") String billNo, @Param("goodId") Long goodId, @Param("createStartTime") String createStartTime, @Param("createEndTime") String createEndTime);
+	IPage<StockGoods> groupByStock(IPage<StockGoods> iPage, @Param("tenantId") String tenantId, @Param("contractNumber") String contractNumber, @Param("billNo") String billNo, @Param("goodId") Long goodId, @Param("createStartTime") String createStartTime, @Param("createEndTime") String createEndTime,@Param("orderType")String orderType);
 
 	List<AppStockVO> selectAppStockPage(IPage<AppStockVO> page, @Param("stock") AppStockVO appStockVO);
 

+ 7 - 4
blade-service/blade-stock/src/main/java/org/springblade/stock/mapper/StockGoodsMapper.xml

@@ -60,7 +60,6 @@
 	a.bill_no as billNo,
 	a.contract_number as contractNumber,
 	a.goods_id as goodsId,
-	a.storage_id as storageId,
 	sum(a.surplus_route_quantity) as surplusRouteQuantity,
 	sum(a.in_weight) as inWeight ,
 	sum(a.in_quantity) as inQuantity,
@@ -68,7 +67,9 @@
 	sum(a.out_weight) as outWeight ,
 	sum(a.balance_quantity) as balanceQuantity ,
 	sum(a.balance_weight) as balanceWeight,
-    a.cntr_no AS cntrNo
+        GROUP_CONCAT( a.cntr_no ) AS cntrNo,
+        GROUP_CONCAT( a.order_type ) AS orderType,
+        GROUP_CONCAT(a.storage_id) AS storageIds
     FROM
 	business_stock_goods a
     where a.tenant_id=#{tenantId}
@@ -78,13 +79,15 @@
         <if test='billNo != null and billNo!= ""'>
             and a.bill_no=#{billNo}
         </if>
-        <if test='goodId != null and goodId!= ""'>
+        <if test='goodId != null'>
             and a.goods_id=#{goodId}
         </if>
+      <if test='orderType != null and orderType!= ""'>
+            and a.order_type = #{orderType}
+        </if>
         <if test='createStartTime != null and createStartTime!= "" and createEndTime != null and createEndTime!= ""  ' >
             and a.create_time between #{createStartTime} and #{createEndTime}
         </if>
-
     GROUP BY
 	a.bill_no,
 	a.contract_number,

+ 1 - 1
blade-service/blade-stock/src/main/java/org/springblade/stock/service/IStockGoodsService.java

@@ -93,7 +93,7 @@ public interface IStockGoodsService extends IService<StockGoods> {
 	int updateStockGoods(StockGoods stockGoods);
 
 
-	IPage<StockGoods> groupByStock(IPage<StockGoods> iPage, String tenantId, String contractNumber, String billNo, Long goodId, String createStartTime, String createEndTime);
+	IPage<StockGoods> groupByStock(IPage<StockGoods> iPage, String tenantId, String contractNumber, String billNo, Long goodId, String createStartTime, String createEndTime,String orderType);
 
 	/**
 	 * 自定义分页

+ 2 - 2
blade-service/blade-stock/src/main/java/org/springblade/stock/service/impl/StockGoodsServiceImpl.java

@@ -296,8 +296,8 @@ public class StockGoodsServiceImpl extends ServiceImpl<StockGoodsMapper, StockGo
 	}
 
 	@Override
-	public IPage<StockGoods> groupByStock(IPage<StockGoods> iPage, String tenantId, String contractNumber, String billNo, Long goodId, String createStartTime, String createEndTime) {
-		return baseMapper.groupByStock(iPage, AuthUtil.getTenantId(), contractNumber, billNo, goodId, createStartTime, createEndTime);
+	public IPage<StockGoods> groupByStock(IPage<StockGoods> iPage, String tenantId, String contractNumber, String billNo, Long goodId, String createStartTime, String createEndTime,String orderType) {
+		return baseMapper.groupByStock(iPage, AuthUtil.getTenantId(), contractNumber, billNo, goodId, createStartTime, createEndTime,orderType);
 	}
 
 	@Override

+ 15 - 0
blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserClient.java

@@ -147,6 +147,21 @@ public class UserClient implements IUserClient {
 		return service.list(userLambdaQueryWrapper);
 	}
 
+
+	/**
+	 * 获取用户信息(通过账号)
+	 *
+	 * @param
+	 * @return
+	 */
+	@Override
+	public User loginByAccount(String account) {
+		LambdaQueryWrapper<User> userLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		userLambdaQueryWrapper.eq(User::getAccount,account);
+		userLambdaQueryWrapper.eq(User::getIsDeleted,0);
+		return service.getOne(userLambdaQueryWrapper);
+	}
+
 	/**
 	 * 获取用户
 	 * @param user

+ 144 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/excel/RubberStockDto.java

@@ -0,0 +1,144 @@
+package com.trade.purchase.excel;
+
+import io.swagger.models.auth.In;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 采木云入库导入
+ */
+@Data
+public class RubberStockDto {
+
+	/**
+	 * 采购供应商id
+	 */
+	private Long corpIdC;
+	/**
+	 * 采购供应商名
+	 */
+	private String corpNameC;
+	/**
+	 * 采购品种id
+	 */
+	private Long itemIdC;
+	/**
+	 * 采购品种id
+	 */
+	private String itemNameC;
+	/**
+	 * 采购所属公司id
+	 */
+	private Long belongToCorpIdC;
+	/**
+	 * 采购所属公司名
+	 */
+	private String belongToCorpNameC;
+	/**
+	 * 采购交货时间
+	 */
+	private Date requiredArrivalDateC;
+
+	/**
+	 * 采购交货时间(开始)
+	 */
+	private Date requiredArrivalDateStartC;
+	/**
+	 * 采购交货时间(结束)
+	 */
+	private Date requiredArrivalDateEndC;
+
+	/**
+	 * 采购发表重量
+	 */
+	private BigDecimal invoiceWeightC;
+	/**
+	 * 采购单价
+	 */
+	private BigDecimal priceC;
+	/**
+	 * 采购合同金额
+	 */
+	private BigDecimal amountC;
+	/**
+	 * 采购付款情况
+	 */
+	private String balanceAmountC;
+	/**
+	 * 销售合同号
+	 */
+	private String orderNoX;
+	/**
+	 * 销售公司Id
+	 */
+	private Long belongToCorpIdX;
+	/**
+	 * 销售公司名
+	 */
+	private String belongToCorpNameX;
+	/**
+	 * 销售客户ID
+	 */
+	private Long corpIdX;
+	/**
+	 * 销售客户名
+	 */
+	private String corpNameX;
+	/**
+	 * 销售合同单价
+	 */
+	private BigDecimal priceX;
+	/**
+	 * 销售数量
+	 */
+	private BigDecimal orderQuantityX;
+	/**
+	 * 销售合同金额
+	 */
+	private BigDecimal amountX;
+	/**
+	 * 销售业务结束日期
+	 */
+	private Date plannedDeliveryDateX;
+
+	/**
+	 * 销售业务结束日期(开始)
+	 */
+	private Date plannedDeliveryDateStartX;
+	/**
+	 * 销售业务结束日期(结束)
+	 */
+	private Date plannedDeliveryDateEndX;
+
+	/**
+	 * 提单号
+	 */
+	private String billNoX;
+	/**
+	 * 业务员
+	 */
+	private String salesName;
+	/**
+	 * 含税毛利
+	 */
+	private BigDecimal profit;
+	/**
+	 * 不含税毛利
+	 */
+	private BigDecimal NoProfit;
+	/**
+	 * 销售收款情况
+	 */
+	private String balanceAmountX;
+
+	/**
+	 * 销售收款情况
+	 */
+	private String tenantId;
+
+	private Integer current;
+	private Integer size;
+
+}

+ 399 - 357
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java

@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.trade.purchase.excel.PurchaseOrderAExcel;
 import com.trade.purchase.excel.PurchaseOrderExcel;
+import com.trade.purchase.excel.RubberStockDto;
 import com.trade.purchase.order.dto.OrderSubmitDto;
 import com.trade.purchase.order.entity.*;
 import com.trade.purchase.order.enums.OrderTypeEnum;
@@ -30,6 +31,7 @@ import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.entity.GoodsDesc;
 import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IGoodsDescClient;
+import org.springblade.client.feign.IRedisClient;
 import org.springblade.client.vo.GoodsDescVO;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.log.exception.ServiceException;
@@ -42,6 +44,7 @@ import org.springblade.core.tool.utils.*;
 import org.springblade.system.feign.IDictBizClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springframework.web.multipart.MultipartFile;
@@ -76,11 +79,15 @@ public class PurchaseOrderController extends BladeController {
 
 	private ICorpsDescClient corpsDescClient;//获取客户信息
 
-    private IGoodsDescClient goodsDescClient;
+	private IGoodsDescClient goodsDescClient;
 
-    private IUserClient userClient;
+	private IUserClient userClient;
 
-    private IDictBizClient dictBizClient;
+	private IDictBizClient dictBizClient;
+
+	private IRedisClient redisClient;
+
+	private final RedisTemplate<String, Object> redisTemplate;
 
 
 	/**
@@ -92,14 +99,13 @@ public class PurchaseOrderController extends BladeController {
 	public R<OrderVO> detail(@PathVariable(value = "id") String id) {
 
 		R<OrderVO> orderMessage = orderService.getOrderMessage(id);
-		if(orderMessage.isSuccess()&&orderMessage.getData()!=null)
-		{
+		if (orderMessage.isSuccess() && orderMessage.getData() != null) {
 			R<User> user1 = userClient.userInfoById(orderMessage.getData().getUpdateUser());
-			if (user1.isSuccess() && user1.getData() != null){
+			if (user1.isSuccess() && user1.getData() != null) {
 				orderMessage.getData().setUpdateUserName(user1.getData().getName());
 			}
 			R<User> user = userClient.userInfoById(orderMessage.getData().getCreateUser());
-			if (user.isSuccess() && user.getData() != null){
+			if (user.isSuccess() && user.getData() != null) {
 				orderMessage.getData().setCreateUserName(user.getData().getName());
 			}
 
@@ -107,24 +113,24 @@ public class PurchaseOrderController extends BladeController {
 			if (CollectionUtil.isNotEmpty(orderItemsList)) {
 				String updateUserIds = "";//修改人
 				String createUserIds = "";//创建人
-				for (OrderItems orderItems : orderItemsList){
-					if (ObjectUtil.isNotEmpty(orderItems.getUpdateUser())){
+				for (OrderItems orderItems : orderItemsList) {
+					if (ObjectUtil.isNotEmpty(orderItems.getUpdateUser())) {
 						updateUserIds = updateUserIds + orderItems.getUpdateUser() + ",";
 					}
-					if (ObjectUtil.isNotEmpty(orderItems.getCreateUser())){
+					if (ObjectUtil.isNotEmpty(orderItems.getCreateUser())) {
 						createUserIds = createUserIds + orderItems.getCreateUser() + ",";
 					}
 				}
 				List<User> updateUser = userClient.selectUserIds(updateUserIds);
 				List<User> createUser = userClient.selectUserIds(createUserIds);
-				orderItemsList.forEach(e->{
-					if (e.getUpdateUser() != null){
-						if (ObjectUtil.isNotEmpty(updateUser)){
+				orderItemsList.forEach(e -> {
+					if (e.getUpdateUser() != null) {
+						if (ObjectUtil.isNotEmpty(updateUser)) {
 							e.setUpdateUserName(updateUser.stream().filter(d -> d.getId().equals(e.getUpdateUser())).findFirst().get().getName());
 						}
 					}
-					if (e.getCreateUser() != null){
-						if (ObjectUtil.isNotEmpty(createUser)){
+					if (e.getCreateUser() != null) {
+						if (ObjectUtil.isNotEmpty(createUser)) {
 							e.setUpdateUserName(createUser.stream().filter(d -> d.getId().equals(e.getCreateUser())).findFirst().get().getName());
 						}
 					}
@@ -140,112 +146,103 @@ public class PurchaseOrderController extends BladeController {
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "采购订单表列表(内贸 外贸 出口)", notes = "传入order")
-	public R<?> list( @RequestParam(name = "current", defaultValue = "1") Integer current,
-								 @RequestParam(name = "size", defaultValue = "10") Integer size,
-					 			 @RequestParam(value = "billNo",required = false) String billNo,//提单号
-					 			 @RequestParam(value = "orderNo",required = false) String orderNo,//合同号
-					 			 @RequestParam(value = "tradeType",required = false) String tradeType,//贸易类型
-								 @RequestParam(value = "strCorpName",required = false) String strCorpName,//供应商名称
-								 @RequestParam(value = "corpId",required = false) String corpId,//供应商id
-								 @RequestParam(value = "strPurchaserName",required = false) String strPurchaserName,//采购商名称
-								 @RequestParam(value = "salesName",required = false) String salesName,//业务员
-					  			 @RequestParam(value = "orgOrderNo",required = false) String orgOrderNo,//来源单号
-					             @RequestParam(value = "banksAccountName",required = false) String banksAccountName,//公司户头
-								  @RequestParam(value = "packageRemarks",required = false) String packageRemarks,//包装要求
-								  @RequestParam(value = "createUser",required = false) Long createUser,//制单人
-					             @RequestParam(value = "paymentType",required = false) String paymentType,//付款方式
-					             @RequestParam(value = "createStartTime",required = false) String createStartTime,//制单日期
-					             @RequestParam(value = "createEndTime",required = false) String createEndTime,//制单日期
-
-
-								 @RequestParam(value = "businesStartDate",required = false) String businesStartDate,//订单开始时间  busines_date
-								 @RequestParam(value = "businesEndDate",required = false) String businesEndDate,//订单结束时间
-								 @RequestParam(value = "accountsCollectionStartDate",required = false) String accountsCollectionStartDate,//应收(付)款开始时间  accounts_collection_date
-								 @RequestParam(value = "accountsCollectionEndDate",required = false) String accountsCollectionEndDate,//应收(付)款结束时间
-
-								 @RequestParam(value = "dateOfStartArrival",required = false) String dateOfStartArrival,//实际到港开始日期 date_of_arrival
-								 @RequestParam(value = "dateOfEndArrival",required = false) String dateOfEndArrival,//实际到港结束时间,
-
-								 @RequestParam(value = "requiredDeliveryStartDate",required = false) String requiredDeliveryStartDate,//要求发货开始日期  required_delivery_date
-								 @RequestParam(value = "requiredDeliveryEndDate",required = false) String requiredDeliveryEndDate,//要求发货结束时间
-
-								 @RequestParam(value = "requiredArrivalStartDate",required = false) String requiredArrivalStartDate,//要求到货开始日期  required_arrival_date
-								 @RequestParam(value = "requiredArrivalEndDate",required = false) String requiredArrivalEndDate,//要求到货结束日期
-
-					             @RequestParam(value = "creditStartDate",required = false) String creditStartDate,//信用证到期日-开始日期  credit_date
-					             @RequestParam(value = "creditEndDate",required = false) String creditEndDate,//信用证到期日-结束时间
-					             @RequestParam(value = "gathering",required = false) Integer gathering,//是否付款 0 已付款 1 未付款
-					             @RequestParam(value = "createFreight",required = false) Integer createFreight,//是否生成发货 0 否 1 是
-					             @RequestParam(value = "orderType",required = false) String orderType,//是否生成发货 0 否 1 是
-								 Order order
-								)
-	{
-
-		QueryWrapper<Order> queryWrapper =new QueryWrapper<>();
-		queryWrapper.eq("trade_type",tradeType);
-
-        //供应商
-		if(StringUtils.isNotBlank(strCorpName))
-		{
+	public R<?> list(@RequestParam(name = "current", defaultValue = "1") Integer current,
+					 @RequestParam(name = "size", defaultValue = "10") Integer size,
+					 @RequestParam(value = "billNo", required = false) String billNo,//提单号
+					 @RequestParam(value = "orderNo", required = false) String orderNo,//合同号
+					 @RequestParam(value = "tradeType", required = false) String tradeType,//贸易类型
+					 @RequestParam(value = "strCorpName", required = false) String strCorpName,//供应商名称
+					 @RequestParam(value = "corpId", required = false) String corpId,//供应商id
+					 @RequestParam(value = "strPurchaserName", required = false) String strPurchaserName,//采购商名称
+					 @RequestParam(value = "salesName", required = false) String salesName,//业务员
+					 @RequestParam(value = "orgOrderNo", required = false) String orgOrderNo,//来源单号
+					 @RequestParam(value = "banksAccountName", required = false) String banksAccountName,//公司户头
+					 @RequestParam(value = "packageRemarks", required = false) String packageRemarks,//包装要求
+					 @RequestParam(value = "createUser", required = false) Long createUser,//制单人
+					 @RequestParam(value = "paymentType", required = false) String paymentType,//付款方式
+					 @RequestParam(value = "createStartTime", required = false) String createStartTime,//制单日期
+					 @RequestParam(value = "createEndTime", required = false) String createEndTime,//制单日期
+
+
+					 @RequestParam(value = "businesStartDate", required = false) String businesStartDate,//订单开始时间  busines_date
+					 @RequestParam(value = "businesEndDate", required = false) String businesEndDate,//订单结束时间
+					 @RequestParam(value = "accountsCollectionStartDate", required = false) String accountsCollectionStartDate,//应收(付)款开始时间  accounts_collection_date
+					 @RequestParam(value = "accountsCollectionEndDate", required = false) String accountsCollectionEndDate,//应收(付)款结束时间
+
+					 @RequestParam(value = "dateOfStartArrival", required = false) String dateOfStartArrival,//实际到港开始日期 date_of_arrival
+					 @RequestParam(value = "dateOfEndArrival", required = false) String dateOfEndArrival,//实际到港结束时间,
+
+					 @RequestParam(value = "requiredDeliveryStartDate", required = false) String requiredDeliveryStartDate,//要求发货开始日期  required_delivery_date
+					 @RequestParam(value = "requiredDeliveryEndDate", required = false) String requiredDeliveryEndDate,//要求发货结束时间
+
+					 @RequestParam(value = "requiredArrivalStartDate", required = false) String requiredArrivalStartDate,//要求到货开始日期  required_arrival_date
+					 @RequestParam(value = "requiredArrivalEndDate", required = false) String requiredArrivalEndDate,//要求到货结束日期
+
+					 @RequestParam(value = "creditStartDate", required = false) String creditStartDate,//信用证到期日-开始日期  credit_date
+					 @RequestParam(value = "creditEndDate", required = false) String creditEndDate,//信用证到期日-结束时间
+					 @RequestParam(value = "gathering", required = false) Integer gathering,//是否付款 0 已付款 1 未付款
+					 @RequestParam(value = "createFreight", required = false) Integer createFreight,//是否生成发货 0 否 1 是
+					 @RequestParam(value = "orderType", required = false) String orderType,//是否生成发货 0 否 1 是
+					 Order order
+	) {
+
+		QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("trade_type", tradeType);
+
+		//供应商
+		if (StringUtils.isNotBlank(strCorpName)) {
 			List<CorpsDesc> corpsDescs = corpsDescClient.listCorpByName(strCorpName);
-			if(CollectionUtils.isNotEmpty(corpsDescs))
-			{
+			if (CollectionUtils.isNotEmpty(corpsDescs)) {
 				List<Long> corpIds = corpsDescs.stream().map(CorpsDesc::getId).collect(Collectors.toList());
-				queryWrapper.in("corp_id",corpIds);
-			}
-			else
-			{
-				return R.data(Collections.EMPTY_LIST,"暂无相关数据");
+				queryWrapper.in("corp_id", corpIds);
+			} else {
+				return R.data(Collections.EMPTY_LIST, "暂无相关数据");
 			}
 		}
 		//采购商
-		if(StringUtils.isNotBlank(strPurchaserName))
-		{
+		if (StringUtils.isNotBlank(strPurchaserName)) {
 			List<CorpsDesc> corpsDescs = corpsDescClient.listCorpByName(strPurchaserName);
-			if(CollectionUtils.isNotEmpty(corpsDescs))
-			{
+			if (CollectionUtils.isNotEmpty(corpsDescs)) {
 				List<Long> purchaserIds = corpsDescs.stream().map(CorpsDesc::getId).collect(Collectors.toList());
-				queryWrapper.in("purchaser_id",purchaserIds);
-			}
-            else
-			{
-				return R.data(Collections.EMPTY_LIST,"暂无相关数据");
+				queryWrapper.in("purchaser_id", purchaserIds);
+			} else {
+				return R.data(Collections.EMPTY_LIST, "暂无相关数据");
 			}
 
 		}
-		queryWrapper.like(StringUtils.isNotBlank(banksAccountName),"banks_account_name",banksAccountName);
-		queryWrapper.like(StringUtils.isNotBlank(packageRemarks),"package_remarks",packageRemarks);
-		queryWrapper.like(StringUtils.isNotBlank(salesName),"sales_name",salesName);
-		queryWrapper.like(StringUtils.isNotBlank(orderNo),"order_no",orderNo);
-		queryWrapper.like(StringUtils.isNotBlank(paymentType),"payment_type",paymentType);
-		queryWrapper.like(StringUtils.isNotBlank(orgOrderNo),"org_order_no", orgOrderNo);//来源单号
-		queryWrapper.eq(StringUtils.isNotBlank(corpId),"corp_id",corpId);
-		queryWrapper.eq("tenant_id",AuthUtil.getTenantId());
-		queryWrapper.eq(createUser!=null,"create_user",createUser);
-		queryWrapper.eq("bill_type",OrderTypeEnum.PURCHASE.getType());
-		queryWrapper.eq("trade_type",order.getTradeType());
-		queryWrapper.like(StringUtils.isNotBlank(billNo),"bill_no",billNo);
-		queryWrapper.between(StringUtils.isNotBlank(createStartTime)&&StringUtils.isNotBlank(createEndTime),"create_time",createStartTime,createEndTime);
-		queryWrapper.between(StringUtils.isNotBlank(businesStartDate)&&StringUtils.isNotBlank(businesEndDate),"busines_date",businesStartDate,businesEndDate);
-		queryWrapper.between(StringUtils.isNotBlank(accountsCollectionStartDate)&&StringUtils.isNotBlank(accountsCollectionEndDate),"accounts_collection_date",accountsCollectionStartDate,accountsCollectionEndDate);
-		queryWrapper.between(StringUtils.isNotBlank(dateOfStartArrival)&&StringUtils.isNotBlank(dateOfEndArrival),"date_of_arrival",dateOfStartArrival,dateOfEndArrival);
-		queryWrapper.between(StringUtils.isNotBlank(requiredDeliveryStartDate)&&StringUtils.isNotBlank(requiredDeliveryEndDate),"required_delivery_date",requiredDeliveryStartDate,requiredDeliveryEndDate);
-		queryWrapper.between(StringUtils.isNotBlank(requiredArrivalStartDate)&&StringUtils.isNotBlank(requiredArrivalEndDate),"required_arrival_date",requiredArrivalStartDate,requiredArrivalEndDate);
-		queryWrapper.between(StringUtils.isNotBlank(creditStartDate)&&StringUtils.isNotBlank(creditEndDate),"credit_date",creditStartDate,creditEndDate);
-		queryWrapper.eq(StringUtils.isNotBlank(orderType),"order_type",orderType);
-		if (gathering != null && gathering == 0){
-			queryWrapper.le("balance_amount",BigDecimal.ZERO);
-			queryWrapper.gt("settlment_amount",BigDecimal.ZERO);
-		}else if (gathering != null && gathering == 1){
-			queryWrapper.eq("settlment_amount",BigDecimal.ZERO);
+		queryWrapper.like(StringUtils.isNotBlank(banksAccountName), "banks_account_name", banksAccountName);
+		queryWrapper.like(StringUtils.isNotBlank(packageRemarks), "package_remarks", packageRemarks);
+		queryWrapper.like(StringUtils.isNotBlank(salesName), "sales_name", salesName);
+		queryWrapper.like(StringUtils.isNotBlank(orderNo), "order_no", orderNo);
+		queryWrapper.like(StringUtils.isNotBlank(paymentType), "payment_type", paymentType);
+		queryWrapper.like(StringUtils.isNotBlank(orgOrderNo), "org_order_no", orgOrderNo);//来源单号
+		queryWrapper.eq(StringUtils.isNotBlank(corpId), "corp_id", corpId);
+		queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+		queryWrapper.eq(createUser != null, "create_user", createUser);
+		queryWrapper.eq("bill_type", OrderTypeEnum.PURCHASE.getType());
+		queryWrapper.eq("trade_type", order.getTradeType());
+		queryWrapper.like(StringUtils.isNotBlank(billNo), "bill_no", billNo);
+		queryWrapper.between(StringUtils.isNotBlank(createStartTime) && StringUtils.isNotBlank(createEndTime), "create_time", createStartTime, createEndTime);
+		queryWrapper.between(StringUtils.isNotBlank(businesStartDate) && StringUtils.isNotBlank(businesEndDate), "busines_date", businesStartDate, businesEndDate);
+		queryWrapper.between(StringUtils.isNotBlank(accountsCollectionStartDate) && StringUtils.isNotBlank(accountsCollectionEndDate), "accounts_collection_date", accountsCollectionStartDate, accountsCollectionEndDate);
+		queryWrapper.between(StringUtils.isNotBlank(dateOfStartArrival) && StringUtils.isNotBlank(dateOfEndArrival), "date_of_arrival", dateOfStartArrival, dateOfEndArrival);
+		queryWrapper.between(StringUtils.isNotBlank(requiredDeliveryStartDate) && StringUtils.isNotBlank(requiredDeliveryEndDate), "required_delivery_date", requiredDeliveryStartDate, requiredDeliveryEndDate);
+		queryWrapper.between(StringUtils.isNotBlank(requiredArrivalStartDate) && StringUtils.isNotBlank(requiredArrivalEndDate), "required_arrival_date", requiredArrivalStartDate, requiredArrivalEndDate);
+		queryWrapper.between(StringUtils.isNotBlank(creditStartDate) && StringUtils.isNotBlank(creditEndDate), "credit_date", creditStartDate, creditEndDate);
+		queryWrapper.eq(StringUtils.isNotBlank(orderType), "order_type", orderType);
+		if (gathering != null && gathering == 0) {
+			queryWrapper.le("balance_amount", BigDecimal.ZERO);
+			queryWrapper.gt("settlment_amount", BigDecimal.ZERO);
+		} else if (gathering != null && gathering == 1) {
+			queryWrapper.eq("settlment_amount", BigDecimal.ZERO);
 		}
 
-		if (ObjectUtils.isNotNull(createFreight)){
-			queryWrapper.eq("create_freight",createFreight);
+		if (ObjectUtils.isNotNull(createFreight)) {
+			queryWrapper.eq("create_freight", createFreight);
 		}
 		queryWrapper.orderByDesc("create_time");
-		Page<Order> page=new Page<>(current,size);
-		IPage<Order> pages = orderService.page(page,queryWrapper);
+		Page<Order> page = new Page<>(current, size);
+		IPage<Order> pages = orderService.page(page, queryWrapper);
 		List<Order> records = pages.getRecords();
 
 		String belongToCorpIds = "";//所属公司
@@ -254,20 +251,20 @@ public class PurchaseOrderController extends BladeController {
 		String corpIds = "";//供应商
 		String purchaserIds = "";//采购商
 
-		for (Order orders : records){
-			if (ObjectUtil.isNotEmpty(orders.getCorpId())){
+		for (Order orders : records) {
+			if (ObjectUtil.isNotEmpty(orders.getCorpId())) {
 				belongToCorpIds = belongToCorpIds + orders.getBelongToCorpId() + ",";
 			}
-			if (ObjectUtil.isNotEmpty(orders.getCreateUser())){
+			if (ObjectUtil.isNotEmpty(orders.getCreateUser())) {
 				createUserIds = createUserIds + orders.getCreateUser() + ",";
 			}
-			if (ObjectUtil.isNotEmpty(orders.getUpdateUser())){
+			if (ObjectUtil.isNotEmpty(orders.getUpdateUser())) {
 				updateUserIds = updateUserIds + orders.getUpdateUser() + ",";
 			}
-			if (ObjectUtil.isNotEmpty(orders.getCorpId())){
+			if (ObjectUtil.isNotEmpty(orders.getCorpId())) {
 				corpIds = corpIds + orders.getCorpId() + ",";
 			}
-			if (ObjectUtil.isNotEmpty(orders.getPurchaserId())){
+			if (ObjectUtil.isNotEmpty(orders.getPurchaserId())) {
 				purchaserIds = purchaserIds + orders.getPurchaserId();
 			}
 		}
@@ -278,49 +275,44 @@ public class PurchaseOrderController extends BladeController {
 		List<CorpsDesc> corpList = corpsDescClient.selectByCorpIds(corpIds);
 		List<CorpsDesc> purchaserList = corpsDescClient.selectByCorpIds(purchaserIds);
 
-		if(CollectionUtils.isNotEmpty(records))
-		{
-			records.forEach(e->{
+		if (CollectionUtils.isNotEmpty(records)) {
+			records.forEach(e -> {
 				//所属公司
-				if(e.getBelongToCorpId()!=null)
-				{
+				if (e.getBelongToCorpId() != null) {
 					if (ObjectUtil.isNotEmpty(belongToCorpList)) {
 						e.setBelongToCorpName(belongToCorpList.stream().filter(d -> d.getId().equals(e.getBelongToCorpId())).findFirst().get().getCname());
 					}
 				}
 
 				//制单人名字
-				if(e.getCreateUser()!=null)
-				{
+				if (e.getCreateUser() != null) {
 					if (ObjectUtil.isNotEmpty(createUserList)) {
 						e.setCreateUserName(createUserList.stream().filter(d -> d.getId().equals(e.getCreateUser())).findFirst().get().getRealName());
 					}
 				}
 
 				//修改制单人名字
-				if(e.getUpdateUser()!=null)
-				{
+				if (e.getUpdateUser() != null) {
 					if (ObjectUtil.isNotEmpty(updateUserList)) {
 						e.setUpdateUserName(updateUserList.stream().filter(d -> d.getId().equals(e.getUpdateUser())).findFirst().get().getRealName());
 					}
 				}
 
 				//获取供应商中文名
-				if (e.getCorpId() != null){
+				if (e.getCorpId() != null) {
 					if (ObjectUtil.isNotEmpty(corpList)) {
 						e.setStrCorpName(corpList.stream().filter(d -> d.getId().equals(e.getCorpId())).findFirst().get().getCname());
 					}
 				}
 				//获取采购商中文名
-				if (e.getPurchaserId() != null){
+				if (e.getPurchaserId() != null) {
 					if (ObjectUtil.isNotEmpty(purchaserList)) {
 						e.setStrPurchaserName(purchaserList.stream().filter(d -> d.getId().equals(e.getPurchaserId())).findFirst().get().getCname());
 					}
 				}
 
 				List<OrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<OrderItems>().eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getPid, e.getId()));
-				if(CollectionUtils.isNotEmpty(orderItemsList))
-				{
+				if (CollectionUtils.isNotEmpty(orderItemsList)) {
 					//子项总件数
 					BigDecimal orderQuantity = orderItemsList.stream().map(OrderItems::getOrderQuantity)
 						.filter(Objects::nonNull)
@@ -353,120 +345,110 @@ public class PurchaseOrderController extends BladeController {
 	@GetMapping("/selOrderExport")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "采购订单表列表导出", notes = "传入order")
-	public void selOrderExport( @RequestParam(name = "current", defaultValue = "1") Integer current,
-					  @RequestParam(name = "size", defaultValue = "10") Integer size,
-					  @RequestParam(value = "billNo",required = false) String billNo,//提单号
-					  @RequestParam(value = "orderNo",required = false) String orderNo,//合同号
-					  @RequestParam(value = "tradeType",required = false) String tradeType,//贸易类型
-					  @RequestParam(value = "strCorpName",required = false) String strCorpName,//供应商名称
-					  @RequestParam(value = "corpId",required = false) String corpId,//供应商id
-					  @RequestParam(value = "strPurchaserName",required = false) String strPurchaserName,//采购商名称
-					  @RequestParam(value = "salesName",required = false) String salesName,//业务员
-					  @RequestParam(value = "orgOrderNo",required = false) String orgOrderNo,//来源单号
-					  @RequestParam(value = "banksAccountName",required = false) String banksAccountName,//公司户头
-					  @RequestParam(value = "packageRemarks",required = false) String packageRemarks,//包装要求
-					  @RequestParam(value = "createUser",required = false) Long createUser,//制单人
-					  @RequestParam(value = "paymentType",required = false) String paymentType,//付款方式
-					  @RequestParam(value = "createStartTime",required = false) String createStartTime,//制单日期
-					  @RequestParam(value = "createEndTime",required = false) String createEndTime,//制单日期
-
-
-					  @RequestParam(value = "businesStartDate",required = false) String businesStartDate,//订单开始时间  busines_date
-					  @RequestParam(value = "businesEndDate",required = false) String businesEndDate,//订单结束时间
-					  @RequestParam(value = "accountsCollectionStartDate",required = false) String accountsCollectionStartDate,//应收(付)款开始时间  accounts_collection_date
-					  @RequestParam(value = "accountsCollectionEndDate",required = false) String accountsCollectionEndDate,//应收(付)款结束时间
-
-					  @RequestParam(value = "dateOfStartArrival",required = false) String dateOfStartArrival,//实际到港开始日期 date_of_arrival
-					  @RequestParam(value = "dateOfEndArrival",required = false) String dateOfEndArrival,//实际到港结束时间,
-
-					  @RequestParam(value = "requiredDeliveryStartDate",required = false) String requiredDeliveryStartDate,//要求发货开始日期  required_delivery_date
-					  @RequestParam(value = "requiredDeliveryEndDate",required = false) String requiredDeliveryEndDate,//要求发货结束时间
-
-					  @RequestParam(value = "requiredArrivalStartDate",required = false) String requiredArrivalStartDate,//要求到货开始日期  required_arrival_date
-					  @RequestParam(value = "requiredArrivalEndDate",required = false) String requiredArrivalEndDate,//要求到货结束日期
-
-					  @RequestParam(value = "creditStartDate",required = false) String creditStartDate,//信用证到期日-开始日期  credit_date
-					  @RequestParam(value = "creditEndDate",required = false) String creditEndDate,//信用证到期日-结束时间
-					  @RequestParam(value = "gathering",required = false) Integer gathering,//是否付款 0 已付款 1 未付款
-					  Order order,HttpServletResponse response
-	)
-	{
-
-		QueryWrapper<Order> queryWrapper =new QueryWrapper<>();
-		queryWrapper.eq(StringUtils.isNotBlank(tradeType), "trade_type",tradeType);
+	public void selOrderExport(@RequestParam(name = "current", defaultValue = "1") Integer current,
+							   @RequestParam(name = "size", defaultValue = "10") Integer size,
+							   @RequestParam(value = "billNo", required = false) String billNo,//提单号
+							   @RequestParam(value = "orderNo", required = false) String orderNo,//合同号
+							   @RequestParam(value = "tradeType", required = false) String tradeType,//贸易类型
+							   @RequestParam(value = "strCorpName", required = false) String strCorpName,//供应商名称
+							   @RequestParam(value = "corpId", required = false) String corpId,//供应商id
+							   @RequestParam(value = "strPurchaserName", required = false) String strPurchaserName,//采购商名称
+							   @RequestParam(value = "salesName", required = false) String salesName,//业务员
+							   @RequestParam(value = "orgOrderNo", required = false) String orgOrderNo,//来源单号
+							   @RequestParam(value = "banksAccountName", required = false) String banksAccountName,//公司户头
+							   @RequestParam(value = "packageRemarks", required = false) String packageRemarks,//包装要求
+							   @RequestParam(value = "createUser", required = false) Long createUser,//制单人
+							   @RequestParam(value = "paymentType", required = false) String paymentType,//付款方式
+							   @RequestParam(value = "createStartTime", required = false) String createStartTime,//制单日期
+							   @RequestParam(value = "createEndTime", required = false) String createEndTime,//制单日期
+
+
+							   @RequestParam(value = "businesStartDate", required = false) String businesStartDate,//订单开始时间  busines_date
+							   @RequestParam(value = "businesEndDate", required = false) String businesEndDate,//订单结束时间
+							   @RequestParam(value = "accountsCollectionStartDate", required = false) String accountsCollectionStartDate,//应收(付)款开始时间  accounts_collection_date
+							   @RequestParam(value = "accountsCollectionEndDate", required = false) String accountsCollectionEndDate,//应收(付)款结束时间
+
+							   @RequestParam(value = "dateOfStartArrival", required = false) String dateOfStartArrival,//实际到港开始日期 date_of_arrival
+							   @RequestParam(value = "dateOfEndArrival", required = false) String dateOfEndArrival,//实际到港结束时间,
+
+							   @RequestParam(value = "requiredDeliveryStartDate", required = false) String requiredDeliveryStartDate,//要求发货开始日期  required_delivery_date
+							   @RequestParam(value = "requiredDeliveryEndDate", required = false) String requiredDeliveryEndDate,//要求发货结束时间
+
+							   @RequestParam(value = "requiredArrivalStartDate", required = false) String requiredArrivalStartDate,//要求到货开始日期  required_arrival_date
+							   @RequestParam(value = "requiredArrivalEndDate", required = false) String requiredArrivalEndDate,//要求到货结束日期
+
+							   @RequestParam(value = "creditStartDate", required = false) String creditStartDate,//信用证到期日-开始日期  credit_date
+							   @RequestParam(value = "creditEndDate", required = false) String creditEndDate,//信用证到期日-结束时间
+							   @RequestParam(value = "gathering", required = false) Integer gathering,//是否付款 0 已付款 1 未付款
+							   Order order, HttpServletResponse response
+	) {
+
+		QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq(StringUtils.isNotBlank(tradeType), "trade_type", tradeType);
 
 		//供应商
-		if(StringUtils.isNotBlank(strCorpName))
-		{
+		if (StringUtils.isNotBlank(strCorpName)) {
 			List<CorpsDesc> corpsDescs = corpsDescClient.listCorpByName(strCorpName);
-			if(CollectionUtils.isNotEmpty(corpsDescs))
-			{
+			if (CollectionUtils.isNotEmpty(corpsDescs)) {
 				List<Long> corpIds = corpsDescs.stream().map(CorpsDesc::getId).collect(Collectors.toList());
-				queryWrapper.in("corp_id",corpIds);
+				queryWrapper.in("corp_id", corpIds);
 			}
 		}
 		//采购商
-		if(StringUtils.isNotBlank(strPurchaserName))
-		{
+		if (StringUtils.isNotBlank(strPurchaserName)) {
 			List<CorpsDesc> corpsDescs = corpsDescClient.listCorpByName(strPurchaserName);
-			if(CollectionUtils.isNotEmpty(corpsDescs))
-			{
+			if (CollectionUtils.isNotEmpty(corpsDescs)) {
 				List<Long> purchaserIds = corpsDescs.stream().map(CorpsDesc::getId).collect(Collectors.toList());
-				queryWrapper.in("purchaser_id",purchaserIds);
+				queryWrapper.in("purchaser_id", purchaserIds);
 			}
 		}
-		queryWrapper.like(StringUtils.isNotBlank(banksAccountName),"banks_account_name",banksAccountName);
-		queryWrapper.like(StringUtils.isNotBlank(packageRemarks),"package_remarks",packageRemarks);
-		queryWrapper.like(StringUtils.isNotBlank(salesName),"sales_name",salesName);
-		queryWrapper.like(StringUtils.isNotBlank(orderNo),"order_no",orderNo);
-		queryWrapper.like(StringUtils.isNotBlank(paymentType),"payment_type",paymentType);
-		queryWrapper.like(StringUtils.isNotBlank(orgOrderNo),"org_order_no", orgOrderNo);//来源单号
-		queryWrapper.eq(StringUtils.isNotBlank(corpId),"corp_id",corpId);
-		queryWrapper.eq("tenant_id",AuthUtil.getTenantId());
-		queryWrapper.eq(createUser!=null,"create_user",createUser);
-		queryWrapper.eq("bill_type",OrderTypeEnum.PURCHASE.getType());
-		queryWrapper.eq(StringUtils.isNotBlank(order.getTradeType()), "trade_type",order.getTradeType());
-		queryWrapper.like(StringUtils.isNotBlank(billNo),"bill_no", billNo);
-		queryWrapper.between(StringUtils.isNotBlank(createStartTime)&&StringUtils.isNotBlank(createEndTime),"create_time",createStartTime,createEndTime);
-		queryWrapper.between(StringUtils.isNotBlank(businesStartDate)&&StringUtils.isNotBlank(businesEndDate),"busines_date",businesStartDate,businesEndDate);
-		queryWrapper.between(StringUtils.isNotBlank(accountsCollectionStartDate)&&StringUtils.isNotBlank(accountsCollectionEndDate),"accounts_collection_date",accountsCollectionStartDate,accountsCollectionEndDate);
-		queryWrapper.between(StringUtils.isNotBlank(dateOfStartArrival)&&StringUtils.isNotBlank(dateOfEndArrival),"date_of_arrival",dateOfStartArrival,dateOfEndArrival);
-		queryWrapper.between(StringUtils.isNotBlank(requiredDeliveryStartDate)&&StringUtils.isNotBlank(requiredDeliveryEndDate),"required_delivery_date",requiredDeliveryStartDate,requiredDeliveryEndDate);
-		queryWrapper.between(StringUtils.isNotBlank(requiredArrivalStartDate)&&StringUtils.isNotBlank(requiredArrivalEndDate),"required_arrival_date",requiredArrivalStartDate,requiredArrivalEndDate);
-		queryWrapper.between(StringUtils.isNotBlank(creditStartDate)&&StringUtils.isNotBlank(creditEndDate),"credit_date",creditStartDate,creditEndDate);
-		if (gathering != null && gathering == 0){
-			queryWrapper.eq("balance_amount",BigDecimal.ZERO);
-		}else if (gathering != null && gathering == 1){
-			queryWrapper.gt("balance_amount",BigDecimal.ZERO);
+		queryWrapper.like(StringUtils.isNotBlank(banksAccountName), "banks_account_name", banksAccountName);
+		queryWrapper.like(StringUtils.isNotBlank(packageRemarks), "package_remarks", packageRemarks);
+		queryWrapper.like(StringUtils.isNotBlank(salesName), "sales_name", salesName);
+		queryWrapper.like(StringUtils.isNotBlank(orderNo), "order_no", orderNo);
+		queryWrapper.like(StringUtils.isNotBlank(paymentType), "payment_type", paymentType);
+		queryWrapper.like(StringUtils.isNotBlank(orgOrderNo), "org_order_no", orgOrderNo);//来源单号
+		queryWrapper.eq(StringUtils.isNotBlank(corpId), "corp_id", corpId);
+		queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+		queryWrapper.eq(createUser != null, "create_user", createUser);
+		queryWrapper.eq("bill_type", OrderTypeEnum.PURCHASE.getType());
+		queryWrapper.eq(StringUtils.isNotBlank(order.getTradeType()), "trade_type", order.getTradeType());
+		queryWrapper.like(StringUtils.isNotBlank(billNo), "bill_no", billNo);
+		queryWrapper.between(StringUtils.isNotBlank(createStartTime) && StringUtils.isNotBlank(createEndTime), "create_time", createStartTime, createEndTime);
+		queryWrapper.between(StringUtils.isNotBlank(businesStartDate) && StringUtils.isNotBlank(businesEndDate), "busines_date", businesStartDate, businesEndDate);
+		queryWrapper.between(StringUtils.isNotBlank(accountsCollectionStartDate) && StringUtils.isNotBlank(accountsCollectionEndDate), "accounts_collection_date", accountsCollectionStartDate, accountsCollectionEndDate);
+		queryWrapper.between(StringUtils.isNotBlank(dateOfStartArrival) && StringUtils.isNotBlank(dateOfEndArrival), "date_of_arrival", dateOfStartArrival, dateOfEndArrival);
+		queryWrapper.between(StringUtils.isNotBlank(requiredDeliveryStartDate) && StringUtils.isNotBlank(requiredDeliveryEndDate), "required_delivery_date", requiredDeliveryStartDate, requiredDeliveryEndDate);
+		queryWrapper.between(StringUtils.isNotBlank(requiredArrivalStartDate) && StringUtils.isNotBlank(requiredArrivalEndDate), "required_arrival_date", requiredArrivalStartDate, requiredArrivalEndDate);
+		queryWrapper.between(StringUtils.isNotBlank(creditStartDate) && StringUtils.isNotBlank(creditEndDate), "credit_date", creditStartDate, creditEndDate);
+		if (gathering != null && gathering == 0) {
+			queryWrapper.eq("balance_amount", BigDecimal.ZERO);
+		} else if (gathering != null && gathering == 1) {
+			queryWrapper.gt("balance_amount", BigDecimal.ZERO);
 		}
 		queryWrapper.orderByDesc("create_time");
 		List<Order> records = orderService.list(queryWrapper);
-		if(CollectionUtils.isNotEmpty(records))
-		{
-			records.forEach(e->{
+		if (CollectionUtils.isNotEmpty(records)) {
+			records.forEach(e -> {
 				//制单人名字
-				if(e.getCreateUser()!=null)
-				{
+				if (e.getCreateUser() != null) {
 					R<User> userR = userClient.userInfoById(e.getCreateUser());
-					if(userR.isSuccess())
-					{
+					if (userR.isSuccess()) {
 						e.setCreateUserName(userR.getData().getRealName());
 					}
 				}
 
 				//获取供应商中文名
-				if (e.getCorpId() != null){
+				if (e.getCorpId() != null) {
 					R<CorpsDesc> corpMessage1 = corpsDescClient.getCorpMessage(e.getCorpId());
-					if(corpMessage1.getData()!=null)
-					{
+					if (corpMessage1.getData() != null) {
 						e.setStrCorpName(corpMessage1.getData().getCname());
 					}
 
 				}
 
 				List<OrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<OrderItems>().eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getPid, e.getId()));
-				if(CollectionUtils.isNotEmpty(orderItemsList))
-				{
+				if (CollectionUtils.isNotEmpty(orderItemsList)) {
 					//子项总件数
 					BigDecimal orderQuantity = orderItemsList.stream().map(OrderItems::getOrderQuantity)
 						.filter(Objects::nonNull)
@@ -494,155 +476,140 @@ public class PurchaseOrderController extends BladeController {
 	 * 销售或采购订单表导出
 	 */
 	@GetMapping("/selOrderExportA")
-	public void selOrderExportA( @RequestParam(name = "current", defaultValue = "1") Integer current,
-					  @RequestParam(name = "size", defaultValue = "10") Integer size,
-					  @RequestParam(value = "billNo",required = false) String billNo,//提单号
-					  @RequestParam(value = "orderNo",required = false) String orderNo,//合同号
-					  @RequestParam(value = "tradeType",required = false) String tradeType,//贸易类型
-					  @RequestParam(value = "strCorpName",required = false) String strCorpName,//供应商名称
-					  @RequestParam(value = "corpId",required = false) String corpId,//供应商id
-					  @RequestParam(value = "strPurchaserName",required = false) String strPurchaserName,//采购商名称
-					  @RequestParam(value = "salesName",required = false) String salesName,//业务员
-
-					  @RequestParam(value = "banksAccountName",required = false) String banksAccountName,//公司户头
-					  @RequestParam(value = "packageRemarks",required = false) String packageRemarks,//包装要求
-					  @RequestParam(value = "createUser",required = false) Long createUser,//制单人
-					  @RequestParam(value = "paymentType",required = false) String paymentType,//付款方式
-					  @RequestParam(value = "createStartTime",required = false) String createStartTime,//制单日期
-					  @RequestParam(value = "createEndTime",required = false) String createEndTime,//制单日期
-
-
-					  @RequestParam(value = "businesStartDate",required = false) String businesStartDate,//订单开始时间  busines_date
-					  @RequestParam(value = "businesEndDate",required = false) String businesEndDate,//订单结束时间
-					  @RequestParam(value = "accountsCollectionStartDate",required = false) String accountsCollectionStartDate,//应收(付)款开始时间  accounts_collection_date
-					  @RequestParam(value = "accountsCollectionEndDate",required = false) String accountsCollectionEndDate,//应收(付)款结束时间
-
-					  @RequestParam(value = "dateOfStartArrival",required = false) String dateOfStartArrival,//实际到港开始日期 date_of_arrival
-					  @RequestParam(value = "dateOfEndArrival",required = false) String dateOfEndArrival,//实际到港结束时间,
-
-					  @RequestParam(value = "requiredDeliveryStartDate",required = false) String requiredDeliveryStartDate,//要求发货开始日期  required_delivery_date
-					  @RequestParam(value = "requiredDeliveryEndDate",required = false) String requiredDeliveryEndDate,//要求发货结束时间
-
-					  @RequestParam(value = "requiredArrivalStartDate",required = false) String requiredArrivalStartDate,//要求到货开始日期  required_arrival_date
-					  @RequestParam(value = "requiredArrivalEndDate",required = false) String requiredArrivalEndDate,//要求到货结束日期
-
-					  @RequestParam(value = "creditStartDate",required = false) String creditStartDate,//信用证到期日-开始日期  credit_date
-					  @RequestParam(value = "creditEndDate",required = false) String creditEndDate,//信用证到期日-结束时间
-					  @RequestParam(value = "gathering",required = false) Integer gathering,//是否付款 0 已付款 1 未付款
-					  @RequestParam(value = "createFreight",required = false) Integer createFreight,//是否生成发货 0 否 1 是
-					  Order order,HttpServletResponse response
-	)
-	{
-
-		QueryWrapper<Order> queryWrapper =new QueryWrapper<>();
-		queryWrapper.eq("trade_type",tradeType);
+	public void selOrderExportA(@RequestParam(name = "current", defaultValue = "1") Integer current,
+								@RequestParam(name = "size", defaultValue = "10") Integer size,
+								@RequestParam(value = "billNo", required = false) String billNo,//提单号
+								@RequestParam(value = "orderNo", required = false) String orderNo,//合同号
+								@RequestParam(value = "tradeType", required = false) String tradeType,//贸易类型
+								@RequestParam(value = "strCorpName", required = false) String strCorpName,//供应商名称
+								@RequestParam(value = "corpId", required = false) String corpId,//供应商id
+								@RequestParam(value = "strPurchaserName", required = false) String strPurchaserName,//采购商名称
+								@RequestParam(value = "salesName", required = false) String salesName,//业务员
+
+								@RequestParam(value = "banksAccountName", required = false) String banksAccountName,//公司户头
+								@RequestParam(value = "packageRemarks", required = false) String packageRemarks,//包装要求
+								@RequestParam(value = "createUser", required = false) Long createUser,//制单人
+								@RequestParam(value = "paymentType", required = false) String paymentType,//付款方式
+								@RequestParam(value = "createStartTime", required = false) String createStartTime,//制单日期
+								@RequestParam(value = "createEndTime", required = false) String createEndTime,//制单日期
+
+
+								@RequestParam(value = "businesStartDate", required = false) String businesStartDate,//订单开始时间  busines_date
+								@RequestParam(value = "businesEndDate", required = false) String businesEndDate,//订单结束时间
+								@RequestParam(value = "accountsCollectionStartDate", required = false) String accountsCollectionStartDate,//应收(付)款开始时间  accounts_collection_date
+								@RequestParam(value = "accountsCollectionEndDate", required = false) String accountsCollectionEndDate,//应收(付)款结束时间
+
+								@RequestParam(value = "dateOfStartArrival", required = false) String dateOfStartArrival,//实际到港开始日期 date_of_arrival
+								@RequestParam(value = "dateOfEndArrival", required = false) String dateOfEndArrival,//实际到港结束时间,
+
+								@RequestParam(value = "requiredDeliveryStartDate", required = false) String requiredDeliveryStartDate,//要求发货开始日期  required_delivery_date
+								@RequestParam(value = "requiredDeliveryEndDate", required = false) String requiredDeliveryEndDate,//要求发货结束时间
+
+								@RequestParam(value = "requiredArrivalStartDate", required = false) String requiredArrivalStartDate,//要求到货开始日期  required_arrival_date
+								@RequestParam(value = "requiredArrivalEndDate", required = false) String requiredArrivalEndDate,//要求到货结束日期
+
+								@RequestParam(value = "creditStartDate", required = false) String creditStartDate,//信用证到期日-开始日期  credit_date
+								@RequestParam(value = "creditEndDate", required = false) String creditEndDate,//信用证到期日-结束时间
+								@RequestParam(value = "gathering", required = false) Integer gathering,//是否付款 0 已付款 1 未付款
+								@RequestParam(value = "createFreight", required = false) Integer createFreight,//是否生成发货 0 否 1 是
+								Order order, HttpServletResponse response
+	) {
+
+		QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("trade_type", tradeType);
 
 		//供应商
-		if(StringUtils.isNotBlank(strCorpName))
-		{
+		if (StringUtils.isNotBlank(strCorpName)) {
 			List<CorpsDesc> corpsDescs = corpsDescClient.listCorpByName(strCorpName);
-			if(CollectionUtils.isNotEmpty(corpsDescs))
-			{
+			if (CollectionUtils.isNotEmpty(corpsDescs)) {
 				List<Long> corpIds = corpsDescs.stream().map(CorpsDesc::getId).collect(Collectors.toList());
-				queryWrapper.in("corp_id",corpIds);
+				queryWrapper.in("corp_id", corpIds);
 			}
 		}
 		//采购商
-		if(StringUtils.isNotBlank(strPurchaserName))
-		{
+		if (StringUtils.isNotBlank(strPurchaserName)) {
 			List<CorpsDesc> corpsDescs = corpsDescClient.listCorpByName(strPurchaserName);
-			if(CollectionUtils.isNotEmpty(corpsDescs))
-			{
+			if (CollectionUtils.isNotEmpty(corpsDescs)) {
 				List<Long> purchaserIds = corpsDescs.stream().map(CorpsDesc::getId).collect(Collectors.toList());
-				queryWrapper.in("purchaser_id",purchaserIds);
+				queryWrapper.in("purchaser_id", purchaserIds);
 			}
 		}
-		queryWrapper.like(StringUtils.isNotBlank(banksAccountName),"banks_account_name",banksAccountName);
-		queryWrapper.like(StringUtils.isNotBlank(packageRemarks),"package_remarks",packageRemarks);
-		queryWrapper.like(StringUtils.isNotBlank(salesName),"sales_name",salesName);
-		queryWrapper.like(StringUtils.isNotBlank(orderNo),"order_no",orderNo);
-		queryWrapper.like(StringUtils.isNotBlank(paymentType),"payment_type",paymentType);
-		queryWrapper.eq(StringUtils.isNotBlank(corpId),"corp_id",corpId);
-		queryWrapper.eq("tenant_id",AuthUtil.getTenantId());
-		queryWrapper.eq(createUser!=null,"create_user",createUser);
-		queryWrapper.eq("bill_type",OrderTypeEnum.PURCHASE.getType());
-		queryWrapper.eq("trade_type",order.getTradeType());
-		queryWrapper.like(StringUtils.isNotBlank(billNo),"bill_no",billNo);
-		queryWrapper.between(StringUtils.isNotBlank(createStartTime)&&StringUtils.isNotBlank(createEndTime),"create_time",createStartTime,createEndTime);
-		queryWrapper.between(StringUtils.isNotBlank(businesStartDate)&&StringUtils.isNotBlank(businesEndDate),"busines_date",businesStartDate,businesEndDate);
-		queryWrapper.between(StringUtils.isNotBlank(accountsCollectionStartDate)&&StringUtils.isNotBlank(accountsCollectionEndDate),"accounts_collection_date",accountsCollectionStartDate,accountsCollectionEndDate);
-		queryWrapper.between(StringUtils.isNotBlank(dateOfStartArrival)&&StringUtils.isNotBlank(dateOfEndArrival),"date_of_arrival",dateOfStartArrival,dateOfEndArrival);
-		queryWrapper.between(StringUtils.isNotBlank(requiredDeliveryStartDate)&&StringUtils.isNotBlank(requiredDeliveryEndDate),"required_delivery_date",requiredDeliveryStartDate,requiredDeliveryEndDate);
-		queryWrapper.between(StringUtils.isNotBlank(requiredArrivalStartDate)&&StringUtils.isNotBlank(requiredArrivalEndDate),"required_arrival_date",requiredArrivalStartDate,requiredArrivalEndDate);
-		queryWrapper.between(StringUtils.isNotBlank(creditStartDate)&&StringUtils.isNotBlank(creditEndDate),"credit_date",creditStartDate,creditEndDate);
-		if (gathering != null && gathering == 0){
-			queryWrapper.le("balance_amount",BigDecimal.ZERO);
-			queryWrapper.gt("settlment_amount",BigDecimal.ZERO);
-		}else if (gathering != null && gathering == 1){
-			queryWrapper.eq("settlment_amount",BigDecimal.ZERO);
+		queryWrapper.like(StringUtils.isNotBlank(banksAccountName), "banks_account_name", banksAccountName);
+		queryWrapper.like(StringUtils.isNotBlank(packageRemarks), "package_remarks", packageRemarks);
+		queryWrapper.like(StringUtils.isNotBlank(salesName), "sales_name", salesName);
+		queryWrapper.like(StringUtils.isNotBlank(orderNo), "order_no", orderNo);
+		queryWrapper.like(StringUtils.isNotBlank(paymentType), "payment_type", paymentType);
+		queryWrapper.eq(StringUtils.isNotBlank(corpId), "corp_id", corpId);
+		queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+		queryWrapper.eq(createUser != null, "create_user", createUser);
+		queryWrapper.eq("bill_type", OrderTypeEnum.PURCHASE.getType());
+		queryWrapper.eq("trade_type", order.getTradeType());
+		queryWrapper.like(StringUtils.isNotBlank(billNo), "bill_no", billNo);
+		queryWrapper.between(StringUtils.isNotBlank(createStartTime) && StringUtils.isNotBlank(createEndTime), "create_time", createStartTime, createEndTime);
+		queryWrapper.between(StringUtils.isNotBlank(businesStartDate) && StringUtils.isNotBlank(businesEndDate), "busines_date", businesStartDate, businesEndDate);
+		queryWrapper.between(StringUtils.isNotBlank(accountsCollectionStartDate) && StringUtils.isNotBlank(accountsCollectionEndDate), "accounts_collection_date", accountsCollectionStartDate, accountsCollectionEndDate);
+		queryWrapper.between(StringUtils.isNotBlank(dateOfStartArrival) && StringUtils.isNotBlank(dateOfEndArrival), "date_of_arrival", dateOfStartArrival, dateOfEndArrival);
+		queryWrapper.between(StringUtils.isNotBlank(requiredDeliveryStartDate) && StringUtils.isNotBlank(requiredDeliveryEndDate), "required_delivery_date", requiredDeliveryStartDate, requiredDeliveryEndDate);
+		queryWrapper.between(StringUtils.isNotBlank(requiredArrivalStartDate) && StringUtils.isNotBlank(requiredArrivalEndDate), "required_arrival_date", requiredArrivalStartDate, requiredArrivalEndDate);
+		queryWrapper.between(StringUtils.isNotBlank(creditStartDate) && StringUtils.isNotBlank(creditEndDate), "credit_date", creditStartDate, creditEndDate);
+		if (gathering != null && gathering == 0) {
+			queryWrapper.le("balance_amount", BigDecimal.ZERO);
+			queryWrapper.gt("settlment_amount", BigDecimal.ZERO);
+		} else if (gathering != null && gathering == 1) {
+			queryWrapper.eq("settlment_amount", BigDecimal.ZERO);
 		}
 
-		if (ObjectUtils.isNotNull(createFreight)){
-			queryWrapper.eq("create_freight",createFreight);
+		if (ObjectUtils.isNotNull(createFreight)) {
+			queryWrapper.eq("create_freight", createFreight);
 		}
 		queryWrapper.orderByDesc("create_time");
-		Page<Order> page=new Page<>(current,size);
-		IPage<Order> pages = orderService.page(page,queryWrapper);
+		Page<Order> page = new Page<>(current, size);
+		IPage<Order> pages = orderService.page(page, queryWrapper);
 		List<Order> records = pages.getRecords();
-		if(CollectionUtils.isNotEmpty(records))
-		{
-			records.forEach(e->{
+		if (CollectionUtils.isNotEmpty(records)) {
+			records.forEach(e -> {
 				//所属公司
-				if(e.getBelongToCorpId()!=null)
-				{
+				if (e.getBelongToCorpId() != null) {
 					R<CorpsDesc> corpMessage3 = corpsDescClient.getCorpMessage(e.getBelongToCorpId());
-					if(corpMessage3.getData()!=null)
-					{
+					if (corpMessage3.getData() != null) {
 						e.setBelongToCorpName(corpMessage3.getData().getCname());
 					}
 				}
 
 				//制单人名字
-				if(e.getCreateUser()!=null)
-				{
+				if (e.getCreateUser() != null) {
 					R<User> userR = userClient.userInfoById(e.getCreateUser());
-					if(userR.isSuccess())
-					{
+					if (userR.isSuccess()) {
 						e.setCreateUserName(userR.getData().getRealName());
 					}
 				}
 
 				//修改制单人名字
-				if(e.getUpdateUser()!=null)
-				{
+				if (e.getUpdateUser() != null) {
 					R<User> userR = userClient.userInfoById(e.getUpdateUser());
-					if(userR.isSuccess())
-					{
+					if (userR.isSuccess()) {
 						e.setUpdateUserName(userR.getData().getRealName());
 					}
 				}
 
 				//获取供应商中文名
-				if (e.getCorpId() != null){
+				if (e.getCorpId() != null) {
 					R<CorpsDesc> corpMessage1 = corpsDescClient.getCorpMessage(e.getCorpId());
-					if(corpMessage1.getData()!=null)
-					{
+					if (corpMessage1.getData() != null) {
 						e.setStrCorpName(corpMessage1.getData().getCname());
 					}
 
 				}
 				//获取采购商中文名
-				if (e.getPurchaserId() != null){
+				if (e.getPurchaserId() != null) {
 					R<CorpsDesc> corpMessage2 = corpsDescClient.getCorpMessage(e.getPurchaserId());
-					if(corpMessage2.getData()!=null)
-					{
+					if (corpMessage2.getData() != null) {
 						e.setStrPurchaserName(corpMessage2.getData().getCname());
 					}
 				}
 
 				List<OrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<OrderItems>().eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getPid, e.getId()));
-				if(CollectionUtils.isNotEmpty(orderItemsList))
-				{
+				if (CollectionUtils.isNotEmpty(orderItemsList)) {
 					//子项总件数
 					BigDecimal orderQuantity = orderItemsList.stream().map(OrderItems::getOrderQuantity)
 						.filter(Objects::nonNull)
@@ -673,8 +640,7 @@ public class PurchaseOrderController extends BladeController {
 	@PostMapping("/submit")
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入order")
-	public R<String> submit(@Valid @RequestBody OrderSubmitDto submitDto)
-	{
+	public R<String> submit(@Valid @RequestBody OrderSubmitDto submitDto) {
 		/*if(ObjectUtil.isEmpty(submitDto.getBillType())||ObjectUtil.isEmpty(submitDto.getSrcId())||ObjectUtil.isEmpty(submitDto.getBusinesDate()))
 		{
 			throw new ServiceException("来源、合同日期、贸易类型不能为空!");
@@ -690,13 +656,13 @@ public class PurchaseOrderController extends BladeController {
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "删除", notes = "传入ids")
 	public R<String> remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		if (ObjectUtils.isNotNull(ids)){
+		if (ObjectUtils.isNotNull(ids)) {
 			List<Long> arrs = Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList());
-			for (Long arr:arrs) {
+			for (Long arr : arrs) {
 				LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-				lambdaQueryWrapper.eq(OrderItems::getPid,arr);
-				List<OrderItems> orderItemsList =  orderItemsService.list(lambdaQueryWrapper);
-				if (ObjectUtils.isNotNull(orderItemsList)){
+				lambdaQueryWrapper.eq(OrderItems::getPid, arr);
+				List<OrderItems> orderItemsList = orderItemsService.list(lambdaQueryWrapper);
+				if (ObjectUtils.isNotNull(orderItemsList)) {
 					return R.fail("该采购订单存在明细,无法删除订单");
 				}
 			}
@@ -746,22 +712,20 @@ public class PurchaseOrderController extends BladeController {
 		return R.status(orderFilesService.removeById(order.getId()));
 	}
 
-    @GetMapping("getItemByPid")
+	@GetMapping("getItemByPid")
 	@ApiOperation(value = "查询采购订单的子明细", notes = "通过采购订单的id查询")
-	public R getItemByPid(@RequestParam(value = "id",required = true)Long id)
-	{
-		LambdaQueryWrapper<OrderItems> lambdaQueryWrapper=new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(OrderItems::getPid,id);
+	public R getItemByPid(@RequestParam(value = "id", required = true) Long id) {
+		LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(OrderItems::getPid, id);
 		List<OrderItems> itemsList = orderItemsService.list(lambdaQueryWrapper);
 		return R.data(itemsList);
 	}
 
 	@GetMapping("getSysNo")
 	@ApiOperation(value = "采购订单获取系统编号prefix=GN JK CK", notes = "采购订单获取系统编号prefix=GN JK CK")
-	public R  getSysNo(@RequestParam(value = "prefix",required = true)String prefix,
-					   @RequestParam(value = "tradeType",required = true)String tradeType)
-	{
-		return orderService.getSysNo(prefix,tradeType);
+	public R getSysNo(@RequestParam(value = "prefix", required = true) String prefix,
+					  @RequestParam(value = "tradeType", required = true) String tradeType) {
+		return orderService.getSysNo(prefix, tradeType);
 	}
 
 	@GetMapping("getItemListByConditions")
@@ -771,32 +735,27 @@ public class PurchaseOrderController extends BladeController {
 									 @RequestParam(name = "tradeType", required = true) String tradeType,
 									 @RequestParam(name = "orderNo", required = false) String orderNo,
 									 @RequestParam(name = "corpId", required = false) Long corpId,
-									 @RequestParam(name = "startDate", required = false) String  startDate,
-									 @RequestParam(name = "endDate", required = false) String  endDate
-									 )
-	{
-		Page<OrderDTO> page=new Page<>(current,size);
+									 @RequestParam(name = "startDate", required = false) String startDate,
+									 @RequestParam(name = "endDate", required = false) String endDate
+	) {
+		Page<OrderDTO> page = new Page<>(current, size);
 		IPage<OrderDTO> iPage = orderService.listOrderItem(page, tradeType, orderNo, corpId, startDate, endDate);
-		if(CollectionUtils.isNotEmpty(iPage.getRecords()))
-		{
-			iPage.getRecords().forEach(e->{
+		if (CollectionUtils.isNotEmpty(iPage.getRecords())) {
+			iPage.getRecords().forEach(e -> {
 				//商品信息
 				R<GoodsDescVO> goodsDescVOR = goodsDescClient.selectGoodsMessage(e.getItemId());
-				if(goodsDescVOR.isSuccess())
-				{
+				if (goodsDescVOR.isSuccess()) {
 					GoodsDescVO descVO = goodsDescVOR.getData();
-					if(descVO!=null)
-					{
+					if (descVO != null) {
 						e.setPriceCategoryNames(descVO.getCname());
 					}
 
 				}
 				//供应商信息
-				if (e.getCorpId() != null){
+				if (e.getCorpId() != null) {
 
 					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(e.getCorpId());
-					if(corpMessage.getData()!=null)
-					{
+					if (corpMessage.getData() != null) {
 						e.setCorpName(corpMessage.getData().getCname());
 
 					}
@@ -806,6 +765,7 @@ public class PurchaseOrderController extends BladeController {
 		}
 		return R.data(iPage);
 	}
+
 	/**
 	 * 分页 订单明细表
 	 */
@@ -814,12 +774,12 @@ public class PurchaseOrderController extends BladeController {
 	@ApiOperation(value = "分页", notes = "传入orderItems")
 	public R<IPage<OrderItems>> list(OrderItems orderItems, Query query) {
 		LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(OrderItems::getIsDeleted,0);
-		lambdaQueryWrapper.eq(OrderItems::getTenantId,SecureUtil.getTenantId());
-		lambdaQueryWrapper.eq(Func.isNotEmpty(orderItems.getPid()),OrderItems::getPid,orderItems.getPid());
-		lambdaQueryWrapper.eq(Func.isNotEmpty(orderItems.getId()),OrderItems::getId,orderItems.getId());
+		lambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0);
+		lambdaQueryWrapper.eq(OrderItems::getTenantId, SecureUtil.getTenantId());
+		lambdaQueryWrapper.eq(Func.isNotEmpty(orderItems.getPid()), OrderItems::getPid, orderItems.getPid());
+		lambdaQueryWrapper.eq(Func.isNotEmpty(orderItems.getId()), OrderItems::getId, orderItems.getId());
 		IPage<OrderItems> pages = orderItemsService.page(Condition.getPage(query), lambdaQueryWrapper);
-		if (CollectionUtils.isNotEmpty(pages.getRecords())){
+		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
 			pages.getRecords().forEach(item -> {
 
 				R<User> user1 = userClient.userInfoById(item.getUpdateUser());
@@ -875,15 +835,15 @@ public class PurchaseOrderController extends BladeController {
 		if (CollectionUtils.isEmpty(excelList)) {
 			throw new SecurityException("数据不能为空");
 		}
-		for (OrderItemsExecl orderItemsExecl:excelList) {
+		for (OrderItemsExecl orderItemsExecl : excelList) {
 			GoodsDesc goodsDesc = goodsDescClient.getGoodsDescByCname(orderItemsExecl.getPriceCategoryNames());
-			if (ObjectUtils.isNotNull(goodsDesc)){
+			if (ObjectUtils.isNotNull(goodsDesc)) {
 				orderItemsExecl.setPriceCategory(goodsDesc.getId());
-			}else{
+			} else {
 				throw new SecurityException("商品类别未识别");
 			}
-			R<Long> cntrTypeId = dictBizClient.getId("boxModel",orderItemsExecl.getCntrType());
-			if (ObjectUtils.isNull(cntrTypeId)){
+			R<Long> cntrTypeId = dictBizClient.getId("boxModel", orderItemsExecl.getCntrType());
+			if (ObjectUtils.isNull(cntrTypeId)) {
 				throw new SecurityException("箱型未识别");
 			}
 		}
@@ -897,11 +857,93 @@ public class PurchaseOrderController extends BladeController {
 	@ApiOperationSupport(order = 11)
 	@ApiOperation(value = "Feign-审核不通过", notes = "传入财务id")
 	public R repealCancel(@RequestBody Order order) {
-		if (order.getId() == null){
-			throw  new SecurityException("缺少必要的参数");
+		if (order.getId() == null) {
+			throw new SecurityException("缺少必要的参数");
 		}
 		orderService.repealCancel(order);
 		return R.success("操作成功");
 	}
 
+	/**
+	 * 橡胶库存
+	 */
+	@PostMapping("/rubberStock")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "RubberStockDto", notes = "RubberStockDto")
+	public R<IPage<RubberStockDto>> rubberStock(@RequestBody RubberStockDto rubberStockDto, Query query) {
+		IPage<RubberStockDto> iPage = new Page<>();
+		int current = rubberStockDto.getCurrent() == null ? 1 : rubberStockDto.getCurrent();
+		int size = rubberStockDto.getSize() == null ? 1 : rubberStockDto.getSize();
+		iPage.setCurrent(current);
+		iPage.setSize(size);
+		IPage<RubberStockDto> pages = orderService.rubberStock(iPage, rubberStockDto);
+		//客户
+		List<CorpsDesc> corpsDescList = castToList(redisTemplate.opsForValue().get("corps"), CorpsDesc.class);
+		if (ObjectUtils.isNull(corpsDescList)) {
+			CorpsDesc corpsDesc = new CorpsDesc();
+			corpsDesc.setTenantId(AuthUtil.getTenantId());
+			corpsDescList = corpsDescClient.getCorp(corpsDesc);
+			redisClient.basicData("all");
+		}
+		//商品
+		List<GoodsDesc> goodsList = castToList(redisTemplate.opsForValue().get("goods"), GoodsDesc.class);
+		for (RubberStockDto rubberStock : pages.getRecords()) {
+			//获取供应商中文名
+			CorpsDesc corpMessage = corpsDescList.stream().filter(corp -> corp.getId().equals(rubberStock.getCorpIdC())).findFirst().orElse(null);
+			if (ObjectUtils.isNotNull(corpMessage)) {
+				rubberStock.setCorpNameC(corpMessage.getCname());
+			}
+			//采购公司
+			CorpsDesc corpMessage1 = corpsDescList.stream().filter(corp -> corp.getId().equals(rubberStock.getBelongToCorpIdC())).findFirst().orElse(null);
+			if (ObjectUtils.isNotNull(corpMessage1)) {
+				rubberStock.setBelongToCorpNameC(corpMessage1.getCname());
+			}
+			//客户
+			CorpsDesc corpMessage2 = corpsDescList.stream().filter(corp -> corp.getId().equals(rubberStock.getCorpIdX())).findFirst().orElse(null);
+			if (ObjectUtils.isNotNull(corpMessage2)) {
+				rubberStock.setCorpNameX(corpMessage2.getCname());
+			}
+			//销售公司
+			CorpsDesc corpMessage3 = corpsDescList.stream().filter(corp -> corp.getId().equals(rubberStock.getBelongToCorpIdX())).findFirst().orElse(null);
+			if (ObjectUtils.isNotNull(corpMessage3)) {
+				rubberStock.setBelongToCorpNameX(corpMessage3.getCname());
+			}
+			//品名
+			GoodsDesc goodsDesc = goodsList.stream().filter(goods -> goods.getId().equals(rubberStock.getItemIdC())).findFirst().orElse(null);
+			if (ObjectUtils.isNotNull(goodsDesc)) {
+				rubberStock.setItemNameC(goodsDesc.getCname());
+			}
+			if(ObjectUtils.isNotNull(rubberStock.getAmountX()) && ObjectUtils.isNotNull(rubberStock.getAmountC())){
+				rubberStock.setProfit(rubberStock.getAmountX().subtract(rubberStock.getAmountC()));
+				rubberStock.setNoProfit(rubberStock.getAmountX().subtract(rubberStock.getAmountC()));
+			}else{
+				rubberStock.setProfit(new BigDecimal(0.00));
+				rubberStock.setNoProfit(new BigDecimal(0.00));
+			}
+
+		}
+		return R.data(pages);
+	}
+
+	/**
+	 * 将Object转换成List类型
+	 *
+	 * @param obj   Object对象
+	 * @param clazz 数据类型
+	 * @param <T>   泛型类型
+	 * @return List类型
+	 */
+	public static <T> List<T> castToList(Object obj, Class<T> clazz) {
+		List<T> resList = new ArrayList<>();
+		// 如果不是List<?>对象,是没有办法转换的
+		if (obj instanceof List<?>) {
+			for (Object o : (List<?>) obj) {
+				// 将对应的元素进行类型转换
+				resList.add(clazz.cast(o));
+			}
+			return resList;
+		}
+		return resList;
+	}
+
 }

+ 16 - 8
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.java

@@ -2,8 +2,10 @@ package com.trade.purchase.order.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.trade.purchase.excel.GeneralLedgerExcel;
 import com.trade.purchase.excel.PurchaseOrderExcel;
+import com.trade.purchase.excel.RubberStockDto;
 import com.trade.purchase.order.entity.Order;
 import com.trade.purchase.order.vo.OrderTotalDTO;
 import com.trade.purchase.order.vo.OrderVO;
@@ -34,26 +36,32 @@ public interface OrderMapper extends BaseMapper<Order> {
 	/**
 	 * 库存总账
 	 *
-	 * @param page
 	 * @param order
 	 * @return
 	 */
-	List<GeneralLedgerExcel> generalLedgerList(IPage page, @Param("Order") OrderTotalDTO order);
+	List<GeneralLedgerExcel> generalLedgerTotal(@Param("Order") OrderTotalDTO order);
 
 	/**
-	 * 库存总账
+	 * 库存总账(商品)
 	 *
-	 * @param order
 	 * @return
 	 */
-	List<GeneralLedgerExcel> generalLedgerTotal(@Param("Order") OrderTotalDTO order);
+	List<Map<String, Object>> generalLedgerListByGoods(@Param("tenantId") String tenantId);
+
+	List<Map<String, Object>> salesTrends(@Param("tenantId") String tenantId, @Param("year") String year);
 
 	/**
-	 * 库存总账(商品)
+	 * 库存总账
 	 *
+	 * @param page
+	 * @param order
 	 * @return
 	 */
-	List<Map<String, Object>> generalLedgerListByGoods(@Param("tenantId") String tenantId);
+	List<GeneralLedgerExcel> generalLedgerList(IPage page, @Param("Order") OrderTotalDTO order);
 
-	List<Map<String, Object>> salesTrends(@Param("tenantId") String tenantId, @Param("year") String year);
+	/**
+	 * @param rubberStockDto
+	 * @return
+	 */
+	List<RubberStockDto> rubberStock(IPage<RubberStockDto> page, @Param("rubberStockDto") RubberStockDto rubberStockDto);
 }

+ 96 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.xml

@@ -606,4 +606,100 @@
         </if>
         order by bo.busines_date
     </select>
+    <select id="rubberStock" resultType="com.trade.purchase.excel.RubberStockDto">
+        SELECT
+            boC.corp_id AS corpIdC,
+            boCi.item_id AS itemIdC,
+            boC.belong_to_corp_id AS belongToCorpIdC,
+            boC.required_arrival_date AS requiredArrivalDateC,
+            boC.invoice_weight AS invoiceWeightC,
+            boCi.price AS priceC,
+            boCi.amount AS amountC,
+            boC.balance_amount AS balanceAmountC,
+            boX.order_no AS orderNoX,
+            boX.belong_to_corp_id AS belongToCorpIdX,
+            boX.corp_id AS corpIdX,
+            boX.price AS priceX,
+            boX.order_quantity AS orderQuantityX,
+            boX.amount AS amountX,
+            boX.planned_delivery_date AS plannedDeliveryDateX,
+            boX.bill_no AS billNoX,
+            boX.sales_name AS salesName,
+            boX.if_tax AS ifTax,
+            boX.balance_amount AS balanceAmountX
+        FROM
+            business_order boC
+                LEFT JOIN (
+                SELECT
+                    bo.sys_no,
+                    bo.order_no,
+                    bo.belong_to_corp_id,
+                    bo.planned_delivery_date,
+                    bo.balance_amount,
+                    bo.sales_name,
+                    boXi.if_tax,
+                    bo.corp_id,
+                    boXi.price,
+                    boXi.order_quantity,
+                    boXi.amount,
+                    boXi.bill_no,
+                    bo.bill_no as bill_noS,
+                    boXi.storage_id,
+                    boXi.freight
+                FROM
+                    business_order bo
+                        LEFT JOIN business_order_items boXi ON bo.id = boXi.pid
+                WHERE
+                    bo.is_deleted = 0
+                  AND bo.bill_type = 'XS'
+                    AND bo.order_type = '橡胶'
+        <if test="rubberStockDto.tenantId !=null and rubberStockDto.tenantId != ''">
+            and bo.tenant_id = #{rubberStockDto.tenantId}
+        </if>
+        <if test="rubberStockDto.corpIdX !=null">
+            and bo.corp_id = #{rubberStockDto.corpIdX}
+        </if>
+        <if test="rubberStockDto.belongToCorpIdX !=null">
+            and bo.belong_to_corp_id = #{rubberStockDto.belongToCorpIdX}
+        </if>
+        <if test="rubberStockDto.plannedDeliveryDateStartX !=null ">
+            and bo.planned_delivery_date &gt;= #{rubberStockDto.plannedDeliveryDateStartX}
+        </if>
+        <if test="rubberStockDto.plannedDeliveryDateEndX !=null">
+            and bo.planned_delivery_date &lt;= #{rubberStockDto.plannedDeliveryDateEndX}
+        </if>
+        <if test="rubberStockDto.orderNoX !=null and rubberStockDto.orderNoX != ''">
+            and bo.bill_no like CONCAT(CONCAT('%', #{rubberStockDto.orderNoX}), '%')
+        </if>
+        <if test="rubberStockDto.billNoX !=null and rubberStockDto.billNoX != ''">
+            and boXi.bill_no like CONCAT(CONCAT('%', #{rubberStockDto.billNoX}), '%')
+        </if>
+        <if test="rubberStockDto.salesName !=null and rubberStockDto.salesName != ''">
+            and bo.sales_name like CONCAT(CONCAT('%', #{rubberStockDto.salesName}), '%')
+        </if>
+            ) boX ON boC.bill_no = boX.bill_noS
+                LEFT JOIN business_order_items boCi ON boC.id = boCi.pid
+        WHERE
+            boC.is_deleted = 0
+          AND boC.bill_type = 'CG'
+            AND boC.order_type = '橡胶'
+        <if test="rubberStockDto.tenantId != null and rubberStockDto.tenantId != ''">
+            and boC.tenant_id = #{rubberStockDto.tenantId}
+        </if>
+        <if test="rubberStockDto.corpIdC !=null">
+            and boC.corp_id = #{rubberStockDto.corpIdC}
+        </if>
+        <if test="rubberStockDto.itemIdC !=null">
+            and boCi.item_id = #{rubberStockDto.itemIdC}
+        </if>
+        <if test="rubberStockDto.belongToCorpIdC !=null">
+            and boC.belong_to_corp_id = #{rubberStockDto.belongToCorpIdC}
+        </if>
+        <if test="rubberStockDto.requiredArrivalDateStartC !=null ">
+            and boC.required_arrival_date &gt;= #{rubberStockDto.requiredArrivalDateStartC}
+        </if>
+        <if test="rubberStockDto.requiredArrivalDateEndC !=null">
+            and boC.required_arrival_date &lt;= #{rubberStockDto.requiredArrivalDateEndC}
+        </if>
+    </select>
 </mapper>

+ 42 - 17
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderService.java

@@ -5,19 +5,15 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.trade.purchase.excel.CMYWarehousingExcel;
 import com.trade.purchase.excel.GeneralLedgerExcel;
 import com.trade.purchase.excel.PurchaseOrderExcel;
-import com.trade.purchase.financing.vo.FinancingVO;
+import com.trade.purchase.excel.RubberStockDto;
 import com.trade.purchase.order.dto.OrderSubmitDto;
 import com.trade.purchase.order.entity.Order;
 import com.trade.purchase.order.vo.OrderDTO;
 import com.trade.purchase.order.vo.OrderTotalDTO;
 import com.trade.purchase.order.vo.OrderVO;
-import lombok.Synchronized;
-import org.apache.ibatis.annotations.Param;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
-import org.springframework.web.bind.annotation.RequestParam;
 
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -64,10 +60,12 @@ public interface IOrderService extends IService<Order> {
 
 	/**
 	 * 报价单生成采购询价单
+	 *
 	 * @param order
 	 * @return
 	 */
 	R<OrderVO> savePurchaseEnquiry(Order order);
+
 	/**
 	 * 自定义分页
 	 *
@@ -79,10 +77,12 @@ public interface IOrderService extends IService<Order> {
 
 	/**
 	 * 保存船务询价信息
+	 *
 	 * @param submitDto
 	 * @return
 	 */
 	R<OrderSubmitDto> saveShippingMessage(OrderSubmitDto submitDto);
+
 	/**
 	 * 获取船务询价详情
 	 *
@@ -93,35 +93,43 @@ public interface IOrderService extends IService<Order> {
 
 	/**
 	 * 生成系统编号
-	 * @param prefix  业务类型
+	 *
+	 * @param prefix    业务类型
 	 * @param tradeType 贸易类型
 	 * @return
 	 */
-	R  getSysNo(String prefix,String tradeType);
+	R getSysNo(String prefix, String tradeType);
 
 
 	/**
 	 * 后续审批流确认采购订单
+	 *
 	 * @param order
 	 * @return
 	 */
 	void check(OrderVO order);
+
 	/**
 	 * 提交购询价单
+	 *
 	 * @param order
 	 * @return
 	 */
 	R<OrderSubmitDto> submit(OrderSubmitDto order);
+
 	/**
 	 * 保存采购询价信息
+	 *
 	 * @param submitDto
 	 * @return
 	 */
 	R<OrderSubmitDto> savePurchase(OrderSubmitDto submitDto);
 
-	IPage<OrderDTO>  listOrderItem(IPage<OrderDTO> iPage, String tradeType, String orderNo,  Long corpId,  String startDate,String endDate);
+	IPage<OrderDTO> listOrderItem(IPage<OrderDTO> iPage, String tradeType, String orderNo, Long corpId, String startDate, String endDate);
+
 	/**
 	 * 提交船务询价信息
+	 *
 	 * @param submitDto
 	 * @return
 	 */
@@ -129,6 +137,7 @@ public interface IOrderService extends IService<Order> {
 
 	/**
 	 * 经销商确认销售订单
+	 *
 	 * @param order
 	 * @return
 	 */
@@ -140,10 +149,11 @@ public interface IOrderService extends IService<Order> {
 	 */
 	List<PurchaseOrderExcel> selOrderExport(Order order);
 
-    void repealCancel(Order order);
+	void repealCancel(Order order);
 
 	/**
 	 * 采木云入库导入
+	 *
 	 * @param excelList
 	 * @return
 	 */
@@ -151,6 +161,7 @@ public interface IOrderService extends IService<Order> {
 
 	/**
 	 * 采木云新增入库
+	 *
 	 * @param submitDto
 	 * @return
 	 */
@@ -158,6 +169,7 @@ public interface IOrderService extends IService<Order> {
 
 	/**
 	 * 采木云入库修改
+	 *
 	 * @param submitDto
 	 * @return
 	 */
@@ -165,6 +177,7 @@ public interface IOrderService extends IService<Order> {
 
 	/**
 	 * 采木云入库新增或修改
+	 *
 	 * @param submitDto
 	 * @return
 	 */
@@ -172,18 +185,20 @@ public interface IOrderService extends IService<Order> {
 
 	/**
 	 * 入出库审批提交
+	 *
 	 * @param order
 	 */
 	void checkWarehousing(OrderSubmitDto order);
 
-	R passCheck(Long id,int times);
+	R passCheck(Long id, int times);
 
-	R underReview(Long id,int times);
+	R underReview(Long id, int times);
 
-	R passCancel(Long id,int times);
+	R passCancel(Long id, int times);
 
 	/**
 	 * 库存总账
+	 *
 	 * @param page
 	 * @param order
 	 * @return
@@ -192,12 +207,14 @@ public interface IOrderService extends IService<Order> {
 
 	/**
 	 * 库存总账(商品)
+	 *
 	 * @return
 	 */
 	List<Map<String, Object>> generalLedgerListByGoods();
 
 	/**
 	 * 入出库确认
+	 *
 	 * @param id
 	 * @return
 	 */
@@ -205,6 +222,7 @@ public interface IOrderService extends IService<Order> {
 
 	/**
 	 * 入出库盘点撤销请核
+	 *
 	 * @param submitDto
 	 * @return
 	 */
@@ -213,10 +231,11 @@ public interface IOrderService extends IService<Order> {
 	/**
 	 * 状态修改
 	 */
-	boolean withdraw(Long id, String type, int status, String isIssue,String toolType,String scanningComparison);
+	boolean withdraw(Long id, String type, int status, String isIssue, String toolType, String scanningComparison);
 
 	/**
 	 * 木材库列表查询
+	 *
 	 * @param order
 	 * @param query
 	 * @return
@@ -233,6 +252,7 @@ public interface IOrderService extends IService<Order> {
 
 	/**
 	 * app扫码比对
+	 *
 	 * @param id
 	 * @param map
 	 * @return
@@ -241,6 +261,7 @@ public interface IOrderService extends IService<Order> {
 
 	/**
 	 * app扫码添加明细
+	 *
 	 * @param billNo
 	 * @param id
 	 * @return
@@ -248,23 +269,27 @@ public interface IOrderService extends IService<Order> {
 	R scanningCodeAdd(String billNo, Long id);
 
 	/**
-	 *
 	 * @param year
 	 * @return
 	 */
-    List<Map<String, Object>> salesTrends(String year);
+	List<Map<String, Object>> salesTrends(String year);
 
 	/**
-	 *
 	 * @param order
 	 * @return
 	 */
 	List<GeneralLedgerExcel> generalLedgerTotal(OrderTotalDTO order);
 
 	/**
-	 *
 	 * @param order
 	 * @return
 	 */
 	List<GeneralLedgerExcel> generalLedgerListAll(OrderTotalDTO order);
+
+	/**
+	 * @param page
+	 * @param rubberStockDto
+	 * @return
+	 */
+	IPage<RubberStockDto> rubberStock(IPage<RubberStockDto> page, RubberStockDto rubberStockDto);
 }

+ 30 - 13
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -17,6 +17,7 @@ import com.trade.purchase.agreement.service.impl.AgreementitemsServiceImpl;
 import com.trade.purchase.excel.CMYWarehousingExcel;
 import com.trade.purchase.excel.GeneralLedgerExcel;
 import com.trade.purchase.excel.PurchaseOrderExcel;
+import com.trade.purchase.excel.RubberStockDto;
 import com.trade.purchase.exception.OrderException;
 import com.trade.purchase.financing.entity.Financing;
 import com.trade.purchase.financing.service.impl.FinancingServiceImpl;
@@ -209,7 +210,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	public R<OrderVO> getOrderMessage(String id) {
 		//客户
 		List<CorpsDesc> corpsDescList = castToList(redisTemplate.opsForValue().get("corps"), CorpsDesc.class);
-		if (ObjectUtils.isNull(corpsDescList)){
+		if (ObjectUtils.isNull(corpsDescList)) {
 			CorpsDesc corpsDesc = new CorpsDesc();
 			corpsDesc.setTenantId(AuthUtil.getTenantId());
 			corpsDescList = corpsDescClient.getCorp(corpsDesc);
@@ -231,7 +232,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		BeanUtil.copyProperties(orderMessage, vo);
 		/*OrderVO vo = OrderMapstructMapper.INSTANCE.toVo(orderMessage);*/
 		//获取创建人中文名
-		if (ObjectUtils.isNotNull(userList)){
+		if (ObjectUtils.isNotNull(userList)) {
 			User createUser = userList.stream().filter(user -> user.getId().equals(vo.getCreateUser())).findFirst().orElse(null);
 			if (ObjectUtils.isNotNull(createUser)) {
 				vo.setCreateUserName(createUser.getName());
@@ -991,7 +992,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public List<CMYWarehousingExcel> warehousing(List<CMYWarehousingExcel> excelList) {
 		//商品
-		List<GoodsDesc> goodsList = castToList(redisTemplate.opsForValue().get("goods"), GoodsDesc.class);
+		List<GoodsDesc> goodsList = new ArrayList<>();
+		 goodsList = castToList(redisTemplate.opsForValue().get("goods"), GoodsDesc.class);
+		if (ObjectUtils.isNull(goodsList)) {
+			goodsList = goodsDescClient.selectGoodsDescAll();
+			redisClient.basicData("all");
+		}
 		//库区
 		List<StorageDesc> storageDescList = castToList(redisTemplate.opsForValue().get("storageDesc"), StorageDesc.class);
 
@@ -1111,9 +1117,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				orderItemsMapper.insert(orderItems);
 				balanceNumber = balanceNumber.add(orderItems.getBalanceNumber());
 				balanceMoney = balanceMoney.add(orderItems.getBalanceMoney());
-				if (ObjectUtils.isNotNull(orderItems.getCname())){
+				if (ObjectUtils.isNotNull(orderItems.getCname())) {
 					goodsName.add(orderItems.getCname());
-				}else{
+				} else {
 					goodsName.add(orderItems.getGoodsName());
 				}
 			}
@@ -1209,9 +1215,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 				balanceNumber = balanceNumber.add(orderItems.getBalanceNumber());
 				balanceMoney = balanceMoney.add(orderItems.getBalanceMoney());
-				if (ObjectUtils.isNotNull(orderItems.getCname())){
+				if (ObjectUtils.isNotNull(orderItems.getCname())) {
 					goodsName.add(orderItems.getCname());
-				}else{
+				} else {
 					goodsName.add(orderItems.getGoodsName());
 				}
 			}
@@ -1337,9 +1343,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				} else {
 					balanceNumber = balanceNumber.add(new BigDecimal(0));
 				}
-				if (ObjectUtils.isNotNull(orderItems.getCname())){
+				if (ObjectUtils.isNotNull(orderItems.getCname())) {
 					goodsName.add(orderItems.getCname());
-				}else{
+				} else {
 					goodsName.add(orderItems.getGoodsName());
 				}
 			}
@@ -2090,7 +2096,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						oneCode = oneCode.replace("/home/minio", "http://121.37.83.47");
 						item.setOneCode(oneCode);
 						//生成二维码
-						String qRCode = QRCodeTest.generateQRCode(qRCodeFile, item.getId()+"");
+						String qRCode = QRCodeTest.generateQRCode(qRCodeFile, item.getId() + "");
 						//替换地址
 						qRCode = qRCode.replace("/home/minio", "http://121.37.83.47");
 						item.setQrCode(qRCode);
@@ -2146,7 +2152,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	public IPage<Order> selectOrderList(Order order, Query query) {
 		//客户
 		List<CorpsDesc> corpsDescList = castToList(redisTemplate.opsForValue().get("corps"), CorpsDesc.class);
-		if (ObjectUtils.isNull(corpsDescList)){
+		if (ObjectUtils.isNull(corpsDescList)) {
 			CorpsDesc corpsDesc = new CorpsDesc();
 			corpsDesc.setTenantId(AuthUtil.getTenantId());
 			corpsDescList = corpsDescClient.getCorp(corpsDesc);
@@ -2162,7 +2168,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			.eq("tenant_id", AuthUtil.getTenantId())
 			.eq(ObjectUtils.isNotNull(order.getBillType()), "bill_type", order.getBillType())
 			.eq("trade_type", OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType())
-			.eq(ObjectUtils.isNotNull(order.getCaseNo()),"case_no", order.getCaseNo())
+			.eq(ObjectUtils.isNotNull(order.getCaseNo()), "case_no", order.getCaseNo())
 			.eq(ObjectUtils.isNotNull(order.getBusinessType()), "business_type", order.getBusinessType());
 		if (ObjectUtils.isNotNull(order.getPurchaser())) {
 			//货权人
@@ -2203,7 +2209,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					queryWrapper.eq("status", arrs[i]);
 				}
 			}*/
-			queryWrapper.in(ObjectUtils.isNotNull(arrs),"status",arrs);
+			queryWrapper.in(ObjectUtils.isNotNull(arrs), "status", arrs);
 		}
 		queryWrapper.apply(ObjectUtils.isNotNull(order.getCreateStartTime()), "DATE_FORMAT(stock_time,'%Y-%m-%d') >= DATE_FORMAT('" + order.getCreateStartTime() + "','%Y-%m-%d')")
 			.apply(ObjectUtils.isNotNull(order.getCreateEndTime()), "DATE_FORMAT(stock_time,'%Y-%m-%d') <= DATE_FORMAT('" + order.getCreateEndTime() + "','%Y-%m-%d')")
@@ -2373,6 +2379,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	/**
+	 * @param page
+	 * @param rubberStockDto
+	 * @return
+	 */
+	@Override
+	public IPage<RubberStockDto> rubberStock(IPage<RubberStockDto> page, RubberStockDto rubberStockDto) {
+//		List<RubberStockDto> rubberStockDtoList =  baseMapper.rubberStock(rubberStockDto);
+		return page.setRecords(baseMapper.rubberStock(page, rubberStockDto));
+	}
+
+	/**
 	 * 订单生成账单 并且推送财务消息
 	 *
 	 * @param order    订单信息