Browse Source

2022年9月21日10:44:10

纪新园 3 years ago
parent
commit
c7577c2bd4
29 changed files with 817 additions and 363 deletions
  1. 6 0
      blade-common/pom.xml
  2. 24 0
      blade-common/src/main/java/org/springblade/common/execl/ExcelProperty.java
  3. 19 0
      blade-common/src/main/java/org/springblade/common/execl/ExcelPropertyCheck.java
  4. 1 1
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/agreement/entity/Agreement.java
  5. 5 1
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/financing/entity/Financing.java
  6. 12 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/Order.java
  7. 21 3
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderItems.java
  8. 1 1
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/vo/OrderTotalDTO.java
  9. 9 2
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderItemsController.java
  10. 13 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java
  11. 8 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/IAccService.java
  12. 12 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/AccServiceImpl.java
  13. 13 7
      blade-service/trade-purchase/src/main/java/com/trade/purchase/agreement/controller/AgreementController.java
  14. 10 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/agreement/controller/AgreementitemsController.java
  15. 12 6
      blade-service/trade-purchase/src/main/java/com/trade/purchase/agreement/service/impl/AgreementServiceImpl.java
  16. 43 61
      blade-service/trade-purchase/src/main/java/com/trade/purchase/excel/CMYWarehousingExcel.java
  17. 129 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/excel/GeneralLedgerExcel.java
  18. 52 39
      blade-service/trade-purchase/src/main/java/com/trade/purchase/financing/controller/FinancingController.java
  19. 2 1
      blade-service/trade-purchase/src/main/java/com/trade/purchase/financing/mapper/FinancingMapper.java
  20. 11 3
      blade-service/trade-purchase/src/main/java/com/trade/purchase/financing/mapper/FinancingMapper.xml
  21. 2 1
      blade-service/trade-purchase/src/main/java/com/trade/purchase/financing/service/IFinancingService.java
  22. 2 1
      blade-service/trade-purchase/src/main/java/com/trade/purchase/financing/service/impl/FinancingServiceImpl.java
  23. 88 65
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/WoodHarvestingCloudController.java
  24. 3 2
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.java
  25. 30 24
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.xml
  26. 6 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderItemsService.java
  27. 12 3
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderService.java
  28. 56 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderItemsServiceImpl.java
  29. 215 142
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

+ 6 - 0
blade-common/pom.xml

@@ -16,6 +16,12 @@
 
     <dependencies>
 
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>3.1.1</version>
+        </dependency>
+
         <!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
         <dependency>
             <groupId>com.google.zxing</groupId>

+ 24 - 0
blade-common/src/main/java/org/springblade/common/execl/ExcelProperty.java

@@ -0,0 +1,24 @@
+package org.springblade.common.execl;
+
+import com.alibaba.excel.converters.AutoConverter;
+import com.alibaba.excel.converters.Converter;
+
+import java.lang.annotation.*;
+
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+@Inherited
+public @interface ExcelProperty {
+
+	String[] value() default {""}; //导出时对应字段的表头名称
+
+	int index() default -1;//排列顺序,最好不要配默认按字段顺序。
+
+	int order() default Integer.MAX_VALUE; //同上
+
+	Class<? extends Converter<?>> converter() default AutoConverter .class; //转换器
+
+	String format() default ""; //格式划输出
+
+
+}

+ 19 - 0
blade-common/src/main/java/org/springblade/common/execl/ExcelPropertyCheck.java

@@ -0,0 +1,19 @@
+package org.springblade.common.execl;
+
+import java.lang.annotation.*;
+
+@Target({ElementType.FIELD, ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@Inherited
+@Documented
+public @interface ExcelPropertyCheck {
+
+	boolean required() default true; //是否为空,默认不为空。
+
+	boolean checkFormat() default false; //是否进行格式检验,默认不进行。
+
+	int type() default -1; //格式检验类型,int 已经支持的类型有 0->ip、1->端口、2->时间日期格式
+
+	int length() default -1; //长度校验, int 字符串的长度,-1不进行校验
+
+}

+ 1 - 1
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/agreement/entity/Agreement.java

@@ -79,7 +79,7 @@ public class Agreement implements Serializable {
 	 * 货物品名,t_goods 中的no或 name,模糊查找选择后,存储f_id,显示name
 	 */
 	@ApiModelProperty(value = "货物品名,t_goods 中的no或 name,模糊查找选择后,存储f_id,显示name")
-	private Long goodsId;
+	private String goodsId;
 
 	//货物品名
 	@TableField(exist = false)

+ 5 - 1
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/financing/entity/Financing.java

@@ -71,7 +71,7 @@ public class Financing implements Serializable {
 	 */
 	@ApiModelProperty(value = "融资日期")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
-	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date financingDate;
 	/**
 	 * 融资金额
@@ -150,12 +150,16 @@ public class Financing implements Serializable {
 	 * 融资开始日期
 	 */
 	@TableField(exist = false)
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date financingStartDate;
 
 	/**
 	 * 融资结束日期
 	 */
 	@TableField(exist = false)
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date financingEndDate;
 
 	/**

+ 12 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/Order.java

@@ -788,9 +788,15 @@ public class Order extends OrderBase {
 	private Date requiredArrivalStartDate;
 	@TableField(exist = false)
 	private Date requiredArrivalEndDate;
+
 	@TableField(exist = false)
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date createStartTime;
+
 	@TableField(exist = false)
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date createEndTime;
 
 	//请核标识  1采购 2销售
@@ -826,4 +832,10 @@ public class Order extends OrderBase {
 	 */
 	@ApiModelProperty(value = "出库状态")
 	private int specialCheckStatus;
+
+	/**
+	 * 采木云是否出库状态(app)
+	 */
+	@TableField(exist = false)
+	private String specialCheckStatusApp;
 }

+ 21 - 3
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderItems.java

@@ -498,13 +498,13 @@ public class OrderItems extends OrderBase {
 	 * 长度(m)
 	 */
 	@ApiModelProperty(value = "长度(m)")
-	private BigDecimal length;
+	private String length;
 
 	/**
 	 * 宽度(mm)
 	 */
 	@ApiModelProperty(value = "宽度(mm)")
-	private BigDecimal width;
+	private String width;
 
 	/**
 	 * 宽度明细
@@ -516,7 +516,7 @@ public class OrderItems extends OrderBase {
 	 * 厚度(mm)
 	 */
 	@ApiModelProperty(value = "厚度(mm)")
-	private BigDecimal thickness;
+	private String thickness;
 
 	/**
 	 * 片数
@@ -571,4 +571,22 @@ public class OrderItems extends OrderBase {
 	 */
 	@ApiModelProperty(value = "扫描比对")
 	private String scanningComparison;
+
+	/**
+	 * 盈亏量
+	 */
+	@ApiModelProperty(value = "盈亏量")
+	private BigDecimal surplusLoss;
+
+	/**
+	 * 是否已出库
+	 */
+	@ApiModelProperty(value = "是否已出库")
+	private String isIssue;
+
+	/**
+	 * 订单类型
+	 */
+	@ApiModelProperty(value = "订单类型")
+	private String billType;
 }

+ 1 - 1
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/vo/OrderTotalDTO.java

@@ -48,7 +48,7 @@ public class OrderTotalDTO extends OrderItems {
 	 * 仓库id
 	 */
 	@ApiModelProperty(value = "仓库id")
-	private Long storageId;
+	private Long warehouseId;
 
 	/**
 	 * 车船号

+ 9 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderItemsController.java

@@ -35,6 +35,7 @@ import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
@@ -190,8 +191,14 @@ public class OrderItemsController extends BladeController {
 					if (ObjectUtils.isNotNull(deliveryList1)) {
 						return R.fail(500, "该订单已生成发货单不允许删除");
 					}
-				}else{
-					return R.fail(500, "未知异常");
+				} else if ("BJ".equals(order.getBillType())) {//销售删除判断
+					//查看是否已生成发货单
+					QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
+					queryWrapper.eq("tenant_id", AuthUtil.getTenantId()).eq("is_deleted",0).eq("src_id",order.getId()).eq("bill_type","XS").eq("trade_type","CK");
+					Order order1 = orderService.getOne(queryWrapper);
+					if (ObjectUtils.isNotNull(order1)) {
+						return R.fail(500, "该订单已生成销售单不允许删除");
+					}
 				}
 			}
 		}

+ 13 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java

@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.trade.purchase.financing.entity.Financing;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -49,6 +50,7 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 财务账单 控制器
@@ -314,4 +316,15 @@ public class AccController extends BladeController {
 		accService.updateByOrderId(orderId);
 	}
 
+	/**
+	 * 融资总账
+	 */
+	@GetMapping("/accountList")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入financing")
+	public R<List<Map<String,Object>>> accountList(Acc acc) {
+		List<Map<String,Object>> list = accService.accountList(acc);
+		return R.data(list);
+	}
+
 }

+ 8 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/service/IAccService.java

@@ -24,6 +24,7 @@ import org.springblade.finance.vo.CostMessage;
 import org.springblade.finance.vojo.Acc;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 财务账单 服务类
@@ -71,4 +72,11 @@ public interface IAccService extends IService<Acc> {
 	List<CostMessage> salaryProfit(AccVO accVO);
 
 	void updateByOrderId(Long orderId);
+
+	/**
+	 * 应收应付总账
+	 * @param acc
+	 * @return
+	 */
+    List<Map<String, Object>> accountList(Acc acc);
 }

+ 12 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/AccServiceImpl.java

@@ -170,4 +170,16 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 		baseMapper.updateByOrderId(orderId);
 	}
 
+	/**
+	 * 应收应付总账
+	 * @param acc
+	 * @return
+	 */
+	@Override
+	public List<Map<String, Object>> accountList(Acc acc) {
+		List<Map<String, Object>> mapList = new ArrayList<>();
+
+		return mapList;
+	}
+
 }

+ 13 - 7
blade-service/trade-purchase/src/main/java/com/trade/purchase/agreement/controller/AgreementController.java

@@ -92,13 +92,13 @@ public class AgreementController extends BladeController {
 			if (ObjectUtils.isNotNull(agreement1.getWarehouseId())) {
 				String[] arrs = agreement1.getWarehouseId().split(",");
 				String[] warehouseName = new String[arrs.length];
-				for (String arr : arrs) {
+				for (int i = 0; i < arrs.length; i++) {
 					//仓库
-					StorageType storageType = iStorageClient.getStorageType(Long.parseLong(arr));
+					StorageType storageType = iStorageClient.getStorageType(Long.parseLong(arrs[i]));
 					if (ObjectUtils.isNotNull(storageType)) {
-
+						warehouseName[i] = storageType.getCname();
 					}
-					agreement1.setWarehouseName(warehouseName.toString());
+					agreement.setWarehouseName(warehouseName.toString());
 				}
 			}
 
@@ -111,9 +111,15 @@ public class AgreementController extends BladeController {
 			}
 			//客户
 			if (ObjectUtils.isNotNull(agreement1.getGoodsId())) {
-				R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(agreement1.getGoodsId());
-				if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
-					agreement1.setGoodsName(goodsMessage.getData().getCname());
+				String[] arrs = agreement1.getGoodsId().split(",");
+				String[] goodsName = new String[arrs.length];
+				for (int i = 0; i < arrs.length; i++) {
+					//客户
+					R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(Long.parseLong(arrs[i]));
+					if (ObjectUtils.isNotNull(goodsMessage.getData())) {
+						goodsName[i] = goodsMessage.getData().getCname();
+					}
+					agreement.setWarehouseName(goodsName.toString());
 				}
 			}
 			//部门

+ 10 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/agreement/controller/AgreementitemsController.java

@@ -122,5 +122,15 @@ public class AgreementitemsController extends BladeController {
 		return R.status(agreementitemsService.removeByIds(Func.toLongList(ids)));
 	}
 
+	/**
+	 * 删除 仓储费明细表
+	 */
+	@PostMapping("/removeById")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R removeById(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(agreementitemsService.removeById(ids));
+	}
+
 
 }

+ 12 - 6
blade-service/trade-purchase/src/main/java/com/trade/purchase/agreement/service/impl/AgreementServiceImpl.java

@@ -124,11 +124,11 @@ public class AgreementServiceImpl extends ServiceImpl<AgreementMapper, Agreement
 			if (ObjectUtils.isNotNull(agreement.getWarehouseId())) {
 				String[] arrs = agreement.getWarehouseId().split(",");
 				String[] warehouseName = new String[arrs.length];
-				for (String arr : arrs) {
+				for (int i = 0; i < arrs.length; i++) {
 					//仓库
-					StorageType storageType = iStorageClient.getStorageType(Long.parseLong(arr));
+					StorageType storageType = iStorageClient.getStorageType(Long.parseLong(arrs[i]));
 					if (ObjectUtils.isNotNull(storageType)) {
-
+						warehouseName[i] = storageType.getCname();
 					}
 					agreement.setWarehouseName(warehouseName.toString());
 				}
@@ -143,9 +143,15 @@ public class AgreementServiceImpl extends ServiceImpl<AgreementMapper, Agreement
 			}
 			//客户
 			if (ObjectUtils.isNotNull(agreement.getGoodsId())) {
-				R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(agreement.getGoodsId());
-				if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
-					agreement.setGoodsName(goodsMessage.getData().getCname());
+				String[] arrs = agreement.getGoodsId().split(",");
+				String[] goodsName = new String[arrs.length];
+				for (int i = 0; i < arrs.length; i++) {
+					//仓库
+					R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(Long.parseLong(arrs[i]));
+					if (ObjectUtils.isNotNull(goodsMessage.getData())) {
+						goodsName[i] = goodsMessage.getData().getCname();
+					}
+					agreement.setWarehouseName(goodsName.toString());
 				}
 			}
 			//部门

+ 43 - 61
blade-service/trade-purchase/src/main/java/com/trade/purchase/excel/CMYWarehousingExcel.java

@@ -1,16 +1,14 @@
 package com.trade.purchase.excel;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import com.alibaba.excel.annotation.write.style.ContentRowHeight;
 import com.alibaba.excel.annotation.write.style.HeadRowHeight;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springblade.common.execl.ExcelPropertyCheck;
 
 import java.math.BigDecimal;
-import java.util.Date;
 
 /**
  * 采木云入库导入
@@ -22,81 +20,48 @@ import java.util.Date;
 public class CMYWarehousingExcel {
 
 	/**
-	 * 仓库
-	 */
-	@ExcelProperty(value = "仓库")
-	private String storageName;
-	/**
 	 * 库区
 	 */
-	@ExcelProperty(value = "库区")
+	@ExcelProperty(value = "库区(必填)")
+	@ExcelPropertyCheck(required = false)
 	private String reservoirAreaName;
 
 	/**
-	 * 箱号
-	 */
-	@ExcelProperty(value = "箱号")
-	private String containerNo;
-	/**
-	 * 业务类型
-	 */
-	@ExcelProperty(value = "业务类型")
-	private String billType;
-
-	/**
-	 * 供应商
-	 */
-	@ExcelProperty(value = "供应商")
-	private String corpName;
-	/**
-	 * 货权人
-	 */
-	@ExcelProperty(value = "货权人")
-	private String purchaserName;
-	/**
-	 * 车船号
-	 */
-	@ExcelProperty(value = "车船号")
-	private String vehicleShipNumber;
-	/**
-	 * 入库日期
-	 */
-	@ExcelProperty(value = "入库日期")
-	private Date businesDate;
-
-	/**
-	 * 结算方式
+	 * 库区Id
 	 */
-	@ExcelProperty(value = "结算方式")
-	private String procurementMethod;
+	@ExcelIgnore
+	private Long storageId;
 
 	/**
-	 * 付款方式
+	 * 箱号
 	 */
-	@ExcelProperty(value = "付款方式")
-	private String paymentType;
+	@ExcelProperty(value = "箱号")
+	private String containerNo;
 
 	/**
-	 * 备注
+	 * 品名
 	 */
-	@ExcelProperty(value = "备注")
-	private String orderRemark;
+	@ExcelProperty(value = "品名(必填)")
+	@ExcelPropertyCheck(required = false)
+	private String goodsName;
 
 	/**
-	 * 品名
+	 * 品名id
 	 */
-	@ExcelProperty(value = "品名")
-	private String goodsName;
+	@ExcelIgnore
+	private Long itemId;
 
 	/**
 	 * 等级
 	 */
-	@ExcelProperty(value = "等级")
+	@ExcelProperty(value = "等级(必填)")
+	@ExcelPropertyCheck(required = false)
 	private String grade;
 	/**
 	 * 品牌
 	 */
-	@ExcelProperty(value = "品牌")
+	@ExcelProperty(value = "品牌(必填)")
+	@ExcelPropertyCheck(required = false)
 	private String itemType;
 	/**
 	 * 产地
@@ -131,24 +96,35 @@ public class CMYWarehousingExcel {
 	/**
 	 * 捆包号
 	 */
-	@ExcelProperty(value = "捆包号")
+	@ExcelProperty(value = "捆包号(必填)")
+	@ExcelPropertyCheck(required = false)
 	private String packingNo;
 
 	/**
 	 * 片数
 	 */
-	@ExcelProperty(value = "片数")
+	@ExcelProperty(value = "片数(必填)")
+	@ExcelPropertyCheck(required = false)
 	private BigDecimal sliceNumber;
 	/**
 	 * 入库数量
 	 */
-	@ExcelProperty(value = "入库数量")
-	private BigDecimal storageQuantity;
+	@ExcelProperty(value = "入库数量(必填)")
+	@ExcelPropertyCheck(required = false)
+	private BigDecimal storageInQuantity;
+
+	/**
+	 * 入库单位
+	 */
+	@ExcelProperty(value = "入库单位(必填)")
+	@ExcelPropertyCheck(required = false)
+	private String unit;
 
 	/**
 	 * 入库单价
 	 */
-	@ExcelProperty(value = "入库单价")
+	@ExcelProperty(value = "入库单价(必填)")
+	@ExcelPropertyCheck(required = false)
 	private BigDecimal price;
 
 	/**
@@ -157,5 +133,11 @@ public class CMYWarehousingExcel {
 	@ExcelProperty(value = "入库总金额(元)")
 	private BigDecimal storageAmount;
 
+	/**
+	 * 备注
+	 */
+	@ExcelProperty(value = "备注")
+	private String remarks;
+
 
 }

+ 129 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/excel/GeneralLedgerExcel.java

@@ -0,0 +1,129 @@
+package com.trade.purchase.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class GeneralLedgerExcel {
+
+	/**
+	 * 品名
+	 */
+	@ExcelProperty(value = "品名")
+	private String goodsName;
+
+	/**
+	 * 长
+	 */
+	@ExcelProperty(value = "长")
+	private BigDecimal length;
+
+	/**
+	 * 宽
+	 */
+	@ExcelProperty(value = "宽")
+	private BigDecimal width;
+
+	/**
+	 * 宽度明细
+	 */
+	@ExcelProperty(value = "宽度明细")
+	private String widthItem;
+
+	/**
+	 * 厚
+	 */
+	@ExcelProperty(value = "厚")
+	private BigDecimal thickness;
+
+	/**
+	 * 捆包号
+	 */
+	@ExcelProperty(value = "捆包号")
+	private String billNo;
+	/**
+	 * 品牌
+	 */
+	@ExcelProperty(value = "片数")
+	private BigDecimal sliceNumber;
+	/**
+	 * 可用库存
+	 */
+	@ExcelProperty(value = "可用库存")
+	private BigDecimal balanceNumber;
+
+	/**
+	 * 库存单价
+	 */
+	@ExcelProperty(value = "库存单价")
+	private BigDecimal price;
+
+	/**
+	 * 库存金额
+	 */
+	@ExcelProperty(value = "库存金额")
+	private BigDecimal balanceMoney;
+
+	/**
+	 * 仓库
+	 */
+	@ExcelProperty(value = "仓库")
+	private String warehouse;
+
+	/**
+	 * 库区
+	 */
+	@ExcelProperty(value = "库区")
+	private String storageName;
+
+	/**
+	 * 品牌
+	 */
+	@ExcelProperty(value = "品牌")
+	private String itemType;
+
+	/**
+	 * 等级
+	 */
+	@ExcelProperty(value = "等级")
+	private String grade;
+	/**
+	 * 产地
+	 */
+	@ExcelProperty(value = "产地")
+	private String itemProp;
+
+	/**
+	 * 供应商
+	 */
+	@ExcelProperty(value = "供应商")
+	private String corpName;
+
+	/**
+	 * 车船号
+	 */
+	@ExcelProperty(value = "车船号")
+	private String vehicleShipNumber;
+
+	/**
+	 * 货权人
+	 */
+	@ExcelProperty(value = "货权人")
+	private String purchaser;
+
+	/**
+	 * 提单号
+	 */
+	@ExcelProperty(value = "提单号")
+	private String morderNo;
+
+
+}

+ 52 - 39
blade-service/trade-purchase/src/main/java/com/trade/purchase/financing/controller/FinancingController.java

@@ -24,7 +24,6 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.trade.purchase.financing.entity.Financing;
 import com.trade.purchase.financing.service.IFinancingService;
 import com.trade.purchase.financing.vo.FinancingVO;
-import com.trade.purchase.order.entity.Order;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -41,8 +40,10 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 融资表 控制器
@@ -78,14 +79,14 @@ public class FinancingController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入financing")
 	public R<IPage<Financing>> list(Financing financing, Query query) {
-		QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
+		QueryWrapper<Financing> queryWrapper = new QueryWrapper<>();
 		queryWrapper.eq("is_deleted", 0)
 			.eq("tenant_id", AuthUtil.getTenantId())
 			.eq(ObjectUtils.isNotNull(financing.getCorpId()), "corp_id", financing.getCorpId())
-			.ge(ObjectUtils.isNotNull(financing.getFinancingStartDate()), "financing_date", financing.getFinancingStartDate())
-			.le(ObjectUtils.isNotNull(financing.getFinancingEndDate()), "financing_date", financing.getFinancingEndDate())
+			.ge(ObjectUtils.isNotNull(financing.getFinancingStartDate()), "date_format(financing_date,'%Y-%m-%d')", financing.getFinancingStartDate())
+			.le(ObjectUtils.isNotNull(financing.getFinancingEndDate()), "date_format(financing_date,'%Y-%m-%d')", financing.getFinancingEndDate())
 			.orderByDesc("create_time");
-		IPage<Financing> pages = financingService.page(Condition.getPage(query), Condition.getQueryWrapper(financing));
+		IPage<Financing> pages = financingService.page(Condition.getPage(query), queryWrapper);
 		List<Financing> financingList = pages.getRecords();
 		for (Financing financings : financingList) {
 			//供应商
@@ -211,13 +212,20 @@ public class FinancingController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入financing")
 	public R<IPage<Financing>> financingAccountList(Financing financing, Query query) {
-		QueryWrapper<Financing> queryWrapper = new QueryWrapper<>();
-		queryWrapper.eq("is_deleted", 0);
-		queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
 		//判断是否选择客户
 		if (ObjectUtils.isNotNull(financing.getCorpId())) {
+			QueryWrapper<Financing> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("is_deleted", 0);
+			queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+			queryWrapper.eq("status", 3);
 			queryWrapper.eq("corp_id", financing.getCorpId());
-			queryWrapper.apply("date_format(financing_date,'%Y-%m') = date_format(" + financing.getFinancingDate() + ",'%Y-%m')");
+			if (ObjectUtils.isNull(financing.getFinancingDate())) {
+				queryWrapper.apply("date_format(financing_date,'%Y-%m') = date_format(now(),'%Y-%m')");
+			} else {
+				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+				String format = sdf.format(financing.getFinancingDate());
+				queryWrapper.eq("date_format(financing_date,'%Y-%m')", format);
+			}
 			//查询该客户本月数据
 			List<Financing> financingList = financingService.list(queryWrapper);
 
@@ -226,44 +234,41 @@ public class FinancingController extends BladeController {
 			//获取该客户上期结余金额
 			financing.setIsDeleted(0);
 			financing.setTenantId(AuthUtil.getTenantId());
-			BigDecimal lastIssueAmount = financingService.selectlastIssueAmount(financing);
-
+			BigDecimal lastIssueAmount = new BigDecimal("0");
+			Map<String,BigDecimal> map  = financingService.selectlastIssueAmount(financing);
+			if (ObjectUtils.isNotNull(map)) {
+				lastIssueAmount = map.get("repaymentAmount").subtract(map.get("currentIssueAmount"));
+			}
 			//本期借款金额
 			BigDecimal currentIssueAmount = new BigDecimal(0);
 
 			//本期还款金额
 			BigDecimal repaymentAmount = new BigDecimal(0);
 
-			//本期结余金额
-			BigDecimal balanceAmount = new BigDecimal(0);
-
 			//便利该客户本月数据 计算借款、还款,结余金额
 			for (Financing financings : financingList) {
 				//本期还款金额
-				if (ObjectUtils.isNotNull(financings.getFinancingType()) && "1".equals(financings.getFinancingType())) {
+				if (ObjectUtils.isNotNull(financings.getFinancingType()) && "2".equals(financings.getFinancingType())) {
 					repaymentAmount = repaymentAmount.add(financings.getFinancingAmount());
-				} else if (ObjectUtils.isNotNull(financings.getFinancingType()) && "2".equals(financings.getFinancingType())) {
+				} else if (ObjectUtils.isNotNull(financings.getFinancingType()) && "1".equals(financings.getFinancingType())) {
 					//本期借款金额
-					currentIssueAmount = repaymentAmount.add(financings.getFinancingAmount());
+					currentIssueAmount = currentIssueAmount.add(financings.getFinancingAmount());
 				}
-				//本期结余金额
-				balanceAmount = balanceAmount.add(financings.getFinancingAmount());
-
 			}
 			Financing financing1 = new Financing();
-			financing1.setCorpId(financingList.get(0).getCorpId());
+			financing1.setCorpId(financing.getCorpId());
 			//客户
-			if (ObjectUtils.isNotNull(financingList.get(0).getCorpId())) {
-				R<CorpsDesc> corpsDesc = corpsDescClient.getCorpMessage(financingList.get(0).getCorpId());
+			if (ObjectUtils.isNotNull(financing.getCorpId())) {
+				R<CorpsDesc> corpsDesc = corpsDescClient.getCorpMessage(financing.getCorpId());
 				if (corpsDesc.isSuccess()) {
 					financing1.setCorpName(corpsDesc.getData().getCname());
 				}
 			}
 
-			financing1.setLastIssueAmount((ObjectUtils.isNotNull(lastIssueAmount)) ? new BigDecimal(0) : lastIssueAmount);
+			financing1.setLastIssueAmount(lastIssueAmount);
 			financing1.setCurrentIssueAmount(currentIssueAmount);
 			financing1.setRepaymentAmount(repaymentAmount);
-			financing1.setBalanceAmount(balanceAmount);
+			financing1.setBalanceAmount(repaymentAmount.subtract(currentIssueAmount));
 			newFinancingList.add(financing1);
 
 			//返回数据
@@ -290,43 +295,51 @@ public class FinancingController extends BladeController {
 				if (corpsDesc.isSuccess()) {
 					financings.setCorpName(corpsDesc.getData().getCname());
 				}
+				QueryWrapper<Financing> queryWrapper = new QueryWrapper<>();
+				queryWrapper.eq("is_deleted", 0);
+				queryWrapper.eq("status", 3);
+				queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
 				queryWrapper.eq("corp_id", financings.getCorpId());
-				queryWrapper.apply("date_format(financing_date,'%Y-%m') = date_format(" + financing.getFinancingDate() + ",'%Y-%m')");
+				if (ObjectUtils.isNull(financing.getFinancingDate())) {
+					queryWrapper.apply("date_format(financing_date,'%Y-%m') = date_format(now(),'%Y-%m')");
+				} else {
+					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+					String format = sdf.format(financing.getFinancingDate());
+					queryWrapper.eq("date_format(financing_date,'%Y-%m')", format);
+				}
 				List<Financing> financingsList = financingService.list(queryWrapper);
+
 				financing.setCorpId(financings.getCorpId());
 				financing.setIsDeleted(0);
 				financing.setTenantId(AuthUtil.getTenantId());
-				BigDecimal lastIssueAmount = financingService.selectlastIssueAmount(financing);
+				BigDecimal lastIssueAmount = new BigDecimal("0");
+				Map<String,BigDecimal> map  = financingService.selectlastIssueAmount(financing);
+				if (ObjectUtils.isNotNull(map)) {
+					lastIssueAmount = map.get("repaymentAmount").subtract(map.get("currentIssueAmount"));
+				}
 
 				BigDecimal currentIssueAmount = new BigDecimal(0);
 
 				BigDecimal repaymentAmount = new BigDecimal(0);
 
-				BigDecimal balanceAmount = new BigDecimal(0);
 				for (Financing financingss : financingsList) {
 					//本期还款金额
-					if (ObjectUtils.isNotNull(financingss.getFinancingType()) && "1".equals(financingss.getFinancingType())) {
+					if (ObjectUtils.isNotNull(financingss.getFinancingType()) && "2".equals(financingss.getFinancingType())) {
 						repaymentAmount = repaymentAmount.add(financingss.getFinancingAmount());
-					} else if (ObjectUtils.isNotNull(financingss.getFinancingType()) && "2".equals(financingss.getFinancingType())) {
+					} else if (ObjectUtils.isNotNull(financingss.getFinancingType()) && "1".equals(financingss.getFinancingType())) {
 						//本期借款金额
-						currentIssueAmount = repaymentAmount.add(financingss.getFinancingAmount());
+						currentIssueAmount = currentIssueAmount.add(financingss.getFinancingAmount());
 					}
-					//本期结余金额
-					balanceAmount = balanceAmount.add(financingss.getFinancingAmount());
 				}
-				financings.setLastIssueAmount((ObjectUtils.isNotNull(lastIssueAmount)) ? new BigDecimal(0) : lastIssueAmount);
+				financings.setLastIssueAmount(lastIssueAmount);
 				financings.setCurrentIssueAmount(currentIssueAmount);
 				financings.setRepaymentAmount(repaymentAmount);
-				financings.setBalanceAmount(balanceAmount);
+				financings.setBalanceAmount(repaymentAmount.subtract(currentIssueAmount));
 				financingList.add(financings);
 			}
 			//返回数据
 			IPage<Financing> page = new Page<>();
 			page.setRecords(financingList);
-			/*page.setTotal(1);
-			page.setSize(1);
-			page.setCurrent(1);
-			page.setPages(1);*/
 			return R.data(page);
 		}
 	}

+ 2 - 1
blade-service/trade-purchase/src/main/java/com/trade/purchase/financing/mapper/FinancingMapper.java

@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 融资表 Mapper 接口
@@ -46,7 +47,7 @@ public interface FinancingMapper extends BaseMapper<Financing> {
 	 * @param financing
 	 * @return
 	 */
-    BigDecimal selectlastIssueAmount(Financing financing);
+    Map<String,BigDecimal> selectlastIssueAmount(Financing financing);
 
 	/**
 	 * 通过客户进行分组查询

+ 11 - 3
blade-service/trade-purchase/src/main/java/com/trade/purchase/financing/mapper/FinancingMapper.xml

@@ -22,6 +22,7 @@
         <result column="update_time" property="updateTime"/>
         <result column="status" property="status"/>
         <result column="is_deleted" property="isDeleted"/>
+        <result column="financing_type" property="financingType"/>
     </resultMap>
 
 
@@ -29,13 +30,20 @@
         select * from warehouse_financing where is_deleted = 0
     </select>
 
-    <select id="selectlastIssueAmount" resultType="java.math.BigDecimal">
-        SELECT sum(financing_amount)
+    <select id="selectlastIssueAmount" resultType="Map">
+        SELECT sum(if(financing_type = '1',financing_amount,0)) as repaymentAmount,
+                sum(if(financing_type = '2',financing_amount,0)) as currentIssueAmount
         FROM warehouse_financing
         WHERE
               is_deleted = 0
+          and status = 3
           and corp_id = #{corpId}
-          and date_format(financing_date,'%Y-%m') &lt; date_format(#{financingDate},'%Y-%m')
+          <if test="financingDate == null">
+              and date_format(financing_date,'%Y-%m') &lt; date_format(now(),'%Y-%m')
+          </if>
+        <if test="financingDate != null">
+            and date_format(financing_date,'%Y-%m') &lt; date_format(#{financingDate},'%Y-%m')
+        </if>
     </select>
     <select id="selectListCorpId" resultType="java.lang.Long">
         SELECT corp_id

+ 2 - 1
blade-service/trade-purchase/src/main/java/com/trade/purchase/financing/service/IFinancingService.java

@@ -24,6 +24,7 @@ import org.springblade.core.tool.api.R;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 融资表 服务类
@@ -75,7 +76,7 @@ public interface IFinancingService extends IService<Financing> {
 	 * @param financing
 	 * @return
 	 */
-    BigDecimal selectlastIssueAmount(Financing financing);
+	Map<String,BigDecimal> selectlastIssueAmount(Financing financing);
 
 	/**
 	 * 通过客户进行分组查询

+ 2 - 1
blade-service/trade-purchase/src/main/java/com/trade/purchase/financing/service/impl/FinancingServiceImpl.java

@@ -44,6 +44,7 @@ import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 融资表 服务实现类
@@ -248,7 +249,7 @@ public class FinancingServiceImpl extends ServiceImpl<FinancingMapper, Financing
 	 * @return
 	 */
 	@Override
-	public BigDecimal selectlastIssueAmount(Financing financing) {
+	public Map<String,BigDecimal> selectlastIssueAmount(Financing financing) {
 		return baseMapper.selectlastIssueAmount(financing);
 	}
 

+ 88 - 65
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/WoodHarvestingCloudController.java

@@ -5,15 +5,17 @@ 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.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.trade.purchase.excel.CMYWarehousingExcel;
+import com.trade.purchase.excel.GeneralLedgerExcel;
 import com.trade.purchase.financing.entity.Financing;
 import com.trade.purchase.financing.service.IFinancingService;
 import com.trade.purchase.order.dto.OrderSubmitDto;
 import com.trade.purchase.order.entity.Order;
 import com.trade.purchase.order.entity.OrderItems;
 import com.trade.purchase.order.enums.OrderTypeEnum;
+import com.trade.purchase.order.service.IOrderFilesService;
 import com.trade.purchase.order.service.IOrderItemsService;
 import com.trade.purchase.order.service.IOrderService;
 import com.trade.purchase.order.vo.OrderTotalDTO;
@@ -23,7 +25,6 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.CorpsDesc;
-import org.springblade.client.entity.GoodsDesc;
 import org.springblade.client.entity.StorageType;
 import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IGoodsDescClient;
@@ -32,7 +33,6 @@ import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.system.user.entity.User;
@@ -62,6 +62,8 @@ public class WoodHarvestingCloudController {
 
 	private final IOrderService orderService;
 
+	private final IOrderFilesService orderFilesService;
+
 	private final IOrderItemsService orderItemsService;
 
 	private final IStorageClient iStorageClient;
@@ -121,18 +123,42 @@ public class WoodHarvestingCloudController {
 			.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.getBusinessType()), "business_type", order.getBusinessType())
-			.eq(ObjectUtils.isNotNull(order.getPurchaserId()), "purchaser_id", order.getPurchaserId())
-			.like(ObjectUtils.isNotNull(order.getSysNo()), "sys_no", order.getSysNo())
+			.eq(ObjectUtils.isNotNull(order.getBusinessType()), "business_type", order.getBusinessType());
+		if (ObjectUtils.isNotNull(order.getPurchaser())) {
+			//货权人
+			R<CorpsDesc> corpsDesc = corpsDescClient.getCorpByName(order.getPurchaser(), AuthUtil.getTenantId());
+			if (corpsDesc.isSuccess()) {
+				queryWrapper.eq(ObjectUtils.isNotNull(order.getPurchaserId()), "purchaser_id", corpsDesc.getData().getId());
+			}
+		} else {
+			queryWrapper.eq(ObjectUtils.isNotNull(order.getPurchaserId()), "purchaser_id", order.getPurchaserId());
+		}
+		if (ObjectUtils.isNotNull(order.getStorageName())) {
+			//仓库
+			StorageType storageType = iStorageClient.storageTypeName(order.getStorageName());
+			if (ObjectUtils.isNotNull(storageType)) {
+				queryWrapper.eq("storage_id", storageType.getId());
+			}
+		} else {
+			queryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), "storage_id", order.getStorageId());
+		}
+		queryWrapper.like(ObjectUtils.isNotNull(order.getSysNo()), "sys_no", order.getSysNo())
 			.like(ObjectUtils.isNotNull(order.getBillNo()), "bill_no", order.getBillNo())
 			.like(ObjectUtils.isNotNull(order.getVehicleShipNumber()), "vehicle_ship_number", order.getVehicleShipNumber())
-			.eq(ObjectUtils.isNotNull(order.getCorpId()), "corp_id", order.getCorpId())
-			.eq(ObjectUtils.isNotNull(order.getStorageId()), "storage_id", order.getStorageId())
-			.like(ObjectUtils.isNotNull(order.getOrderRemark()), "order_remark", order.getOrderRemark())
+			.eq(ObjectUtils.isNotNull(order.getCorpId()), "corp_id", order.getCorpId());
+		if (ObjectUtils.isNotNull(order.getSpecialCheckStatusApp())) {
+			queryWrapper.eq("special_check_status", 0);
+		}else{
+			if (OrderTypeEnum.INVENTORY.getType().equals(order.getBillType())){
+				queryWrapper.eq("special_check_status", 1);
+				queryWrapper.eq("status", 3);
+			}
+		}
+		queryWrapper.like(ObjectUtils.isNotNull(order.getOrderRemark()), "order_remark", order.getOrderRemark())
 			.eq(ObjectUtils.isNotNull(order.getStatus()), "status", order.getStatus())
-			.ge(ObjectUtils.isNotNull(order.getCreateStartTime()), "stock_time", order.getCreateStartTime())
-			.le(ObjectUtils.isNotNull(order.getCreateEndTime()), "stock_time", order.getCreateEndTime())
-			.orderByDesc("create_time");
+			.ge(ObjectUtils.isNotNull(order.getCreateStartTime()), "DATE_FORMAT(stock_time,'%Y-%m-%d')", order.getCreateStartTime())
+			.le(ObjectUtils.isNotNull(order.getCreateEndTime()), "DATE_FORMAT(stock_time,'%Y-%m-%d')", order.getCreateEndTime())
+			.orderByDesc("stock_time");
 		IPage<Order> pages = orderService.page(Condition.getPage(query), queryWrapper);
 		List<Order> orderList = pages.getRecords();
 		for (Order orders : orderList) {
@@ -161,20 +187,6 @@ public class WoodHarvestingCloudController {
 			if (userR.isSuccess()) {
 				orders.setSalesName(userR.getData().getName());
 			}
-			/*// 查询订单明细信息
-			List<OrderItems> orderItemsList = orderItemsService.list(Wrappers.<OrderItems>lambdaQuery()
-				.eq(OrderItems::getPid, orders.getId()).eq(OrderItems::getTenantId, SecureUtil.getTenantId())
-				.eq(OrderItems::getIsDeleted, 0).orderByAsc(OrderItems::getSort));
-			for (OrderItems orderItems : orderItemsList) {
-				//供应商
-				if (ObjectUtils.isNotNull(orderItems.getItemId())) {
-					GoodsDesc goodsDesc = goodsDescClient.getGoodsDescDetail(orderItems.getItemId());
-					if (ObjectUtils.isNotNull(goodsDesc)) {
-						orderItems.setGoodsName(goodsDesc.getCname());
-					}
-				}
-			}
-			orders.setItemsList(orderItemsList);*/
 		}
 		return R.data(pages);
 	}
@@ -232,10 +244,28 @@ public class WoodHarvestingCloudController {
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "删除", notes = "传入id")
 	public R<String> removeById(@ApiParam(value = "传入id", required = true) @RequestParam String id) {
+		QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("pid", id);
+		queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+		queryWrapper.eq("is_deleted", 0);
+		List<OrderItems> orderItemsList = orderItemsService.list(queryWrapper);
+		if (orderItemsList.size() > 0) {
+			return R.fail("该单据存在明细不能删除");
+		}
 		return R.status(orderService.removeById(id));
 	}
 
 	/**
+	 * 删除
+	 */
+	@PostMapping("/removeByItemId")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "删除", notes = "传入id")
+	public R removeByItemId(@ApiParam(value = "传入itemId", required = true)@RequestParam String itemId) {
+		return R.data(orderItemsService.removeByItemId(itemId));
+	}
+
+	/**
 	 * 入出库提交审批
 	 *
 	 * @param submitDto
@@ -276,9 +306,9 @@ public class WoodHarvestingCloudController {
 		List<Order> orderList = orderService.list(orderLambdaQueryWrapper);
 		BigDecimal storageAmount = orderList.stream().map(Order::getStorageAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
 		int num = financing.signum();
-		if (num == -1){
+		if (num == -1) {
 			if (storageAmount.compareTo(financing.abs()) < 0) {
-				return R.data("您的现有资产已不足融资金额,请先还款在进行操作");
+				return R.data("融资金额:" + financing + "大于 库存金额 :" + storageAmount + " 不能出库");
 			}
 		}
 		return R.data("操作成功");
@@ -325,40 +355,7 @@ public class WoodHarvestingCloudController {
 		if (ObjectUtils.isNull(id)) {
 			return R.fail("缺少必要参数");
 		}
-		Order order = orderService.getById(id);
-		if (ObjectUtils.isNotNull(order)) {
-			if ("CK".equals(order.getBillType())) {
-				QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
-				queryWrapper.eq("pid", order.getId());
-				queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
-				queryWrapper.eq("is_deleted", 0);
-				List<OrderItems> orderItemsList = orderItemsService.list(queryWrapper);
-				for (OrderItems orderItems : orderItemsList) {
-					orderItems.setScanningComparison("Y");
-					orderItems.setUpdateTime(new Date());
-					orderItems.setUpdateUser(AuthUtil.getUserId());
-					orderItemsService.updateById(orderItems);
-				}
-				LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
-				RKOrderLambdaQueryWrapper
-					.eq(Order::getIsDeleted, 0)
-					.eq(Order::getOrderNo, order.getOrderNo())
-					.eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
-					.eq(Order::getTenantId, AuthUtil.getTenantId());
-				Order RKOrder = orderService.getOne(RKOrderLambdaQueryWrapper);
-				if (RKOrder == null) {
-					throw new SecurityException("更新入库数据失败");
-				}
-				RKOrder.setSpecialCheckStatus(1);
-				orderService.updateById(RKOrder);
-			}
-			order.setConfirmStatus("1");
-			order.setUpdateTime(new Date());
-			order.setUpdateUser(AuthUtil.getUserId());
-			orderService.updateById(order);
-		}
-
-		return R.data(order);
+		return R.data(orderService.updateOutInStatus(id));
 	}
 
 	/**
@@ -417,10 +414,26 @@ public class WoodHarvestingCloudController {
 	@GetMapping("/generalLedgerList")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "库存总账", notes = "传入order")
-	public R<List<Map<String, Object>>> generalLedgerList(OrderTotalDTO order, Query query) {
+	public R<IPage<GeneralLedgerExcel>> generalLedgerList(OrderTotalDTO order, Query query) {
 		order.setTenantId(AuthUtil.getTenantId());
-		List<Map<String, Object>> mapList = orderService.generalLedgerList(query, order);
-		return R.data(mapList);
+		IPage<GeneralLedgerExcel> pages = orderService.generalLedgerList(Condition.getPage(query), order);
+		return R.data(pages);
+	}
+
+	/**
+	 * 库存导出
+	 */
+	@GetMapping("/generalLedgerExport")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "库存导出", notes = "传入order")
+	public void generalLedgerExport(OrderTotalDTO order, Query query,HttpServletResponse response) {
+		order.setTenantId(AuthUtil.getTenantId());
+		IPage<GeneralLedgerExcel> pages = orderService.generalLedgerList(Condition.getPage(query), order);
+		if (ObjectUtils.isNotNull(pages.getRecords())){
+			ExcelUtil.export(response, "库存数据导出", "库存数据", pages.getRecords(), GeneralLedgerExcel.class);
+		}else{
+			throw new SecurityException("未查到数据,导出失败");
+		}
 	}
 
 	/**
@@ -433,4 +446,14 @@ public class WoodHarvestingCloudController {
 		return R.data(mapList);
 	}
 
+	/**
+	 * 文件删除
+	 */
+	@PostMapping("/removeByFileId")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "删除", notes = "传入FileId")
+	public R removeByFileId(@ApiParam(value = "传入ids", required = true)@RequestParam String ids) {
+		return R.data(orderFilesService.removeById(ids));
+	}
+
 }

+ 3 - 2
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.java

@@ -2,6 +2,7 @@ package com.trade.purchase.order.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.trade.purchase.excel.GeneralLedgerExcel;
 import com.trade.purchase.excel.PurchaseOrderExcel;
 import com.trade.purchase.order.vo.OrderDTO;
 import com.trade.purchase.order.vo.OrderTotalDTO;
@@ -34,11 +35,11 @@ public interface OrderMapper extends BaseMapper<Order> {
 
 	/**
 	 * 库存总账
-	 * @param query
+	 * @param page
 	 * @param order
 	 * @return
 	 */
-    List<Map<String, Object>> generalLedgerList(@Param("query") Query query, @Param("Order") OrderTotalDTO order);
+    List<GeneralLedgerExcel> generalLedgerList(IPage page, @Param("Order") OrderTotalDTO order);
 
 	/**
 	 * 库存总账(商品)

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

@@ -350,7 +350,7 @@
         </where>
     </select>
 
-    <select id="generalLedgerList" parameterType="com.trade.purchase.order.vo.OrderTotalDTO" resultType="java.util.Map">
+    <select id="generalLedgerList" parameterType="com.trade.purchase.order.vo.OrderTotalDTO" resultType="com.trade.purchase.excel.GeneralLedgerExcel">
         SELECT
         boi.id AS id,
         boi.item_id AS itemId,
@@ -376,12 +376,12 @@
         bo.sys_no AS sysNo
         FROM
         business_order_items boi
-        LEFT JOIN business_order bo ON boi.pid = bo.id
-        LEFT JOIN basic_storage_type bst ON bo.storage_id = bst.id
-        LEFT JOIN basic_storage_desc bsc ON boi.storage_id = bsc.id
-        LEFT JOIN basic_goods_desc bgd ON boi.item_id = bgd.id
-        LEFT JOIN basic_corps_desc bcd ON bo.corp_id = bcd.id
-        LEFT JOIN basic_corps_desc bcd1 ON bo.purchaser_id = bcd1.id
+         JOIN business_order bo ON boi.pid = bo.id
+         JOIN basic_storage_type bst ON bo.storage_id = bst.id
+         JOIN basic_storage_desc bsc ON boi.storage_id = bsc.id
+         JOIN basic_goods_desc bgd ON boi.item_id = bgd.id
+         JOIN basic_corps_desc bcd ON bo.corp_id = bcd.id
+         JOIN basic_corps_desc bcd1 ON bo.purchaser_id = bcd1.id
         WHERE
         boi.is_deleted = 0
         AND bo.is_deleted = 0
@@ -389,7 +389,7 @@
         and bo.bill_type = 'RK'
         and bo.trade_type = 'CMY'
         and bo.confirm_status = 1
-        AND bo.special_check_status = 1
+        AND bo.special_check_status = 0
         <if test="Order.sysNo!=null and Order.sysNo != ''">
             and bo.sys_no=#{Order.sysNo}
         </if>
@@ -403,46 +403,48 @@
             and bo.busines_date &lt;= #{businesEndDate}
         </if>
         <if test="Order.corpId!=null">
-            and find_in_set(bo.corp_id,#{Order.corpId})
+            and bo.corp_id=#{Order.corpId}
+        </if>
+        <if test="Order.billNo!=null and Order.morderNo != ''">
+            and boi.bill_no = #{Order.billNo}
         </if>
         <if test="Order.purchaserId!=null">
-            and find_in_set(bo.purchaser_id,#{Order.purchaserId})
+            and bo.purchaser_id = #{Order.purchaserId}
         </if>
         <if test="Order.warehouseId!=null">
-            and find_in_set(bo.storage_id,#{Order.warehouseId})
+            and bo.storage_id = #{Order.warehouseId}
         </if>
         <if test="Order.tenantId!=null and Order.tenantId != ''">
             and bo.tenant_id = #{Order.tenantId}
         </if>
         <if test="Order.itemId!=null and Order.itemId != ''">
-            and find_in_set(boi.item_id,#{Order.itemId})
+            and boi.item_id = #{Order.itemId}
         </if>
-        <if test="Order.length!=null and Order.length != ''">
-            and boi.length=#{Order.length}
+        <if test="Order.length!=null">
+            and boi.length = #{Order.length}
         </if>
         <if test="Order.width!=null and Order.width != ''">
-            and boi.width=#{Order.width}
+            and boi.width = #{Order.width}
         </if>
          <if test="Order.thickness!=null and Order.thickness != ''">
-            and boi.thickness=#{Order.thickness}
+            and boi.thickness = #{Order.thickness}
         </if>
          <if test="Order.vehicleShipNumber!=null and Order.vehicleShipNumber != ''">
-            and bo.vehicle_ship_number=#{Order.vehicleShipNumber}
+            and bo.vehicle_ship_number = #{Order.vehicleShipNumber}
         </if>
          <if test="Order.itemType!=null and Order.itemType != ''">
             and bo.item_type=#{Order.itemType}
         </if>
          <if test="Order.grade!=null and Order.grade != ''">
-            and boi.grade=#{Order.grade}
+            and boi.grade = #{Order.grade}
         </if>
          <if test="Order.storageId!=null">
-            and find_in_set(boi.storage_id,#{Order.storageId})
+            and boi.storage_id = #{Order.storageId}
         </if>
          <if test="Order.unit!=null and Order.unit != ''">
-            and boi.unit=#{Order.unit}
+            and boi.unit = #{Order.unit}
         </if>
         order by bo.busines_date
-        LIMIT #{query.current},#{query.size}
     </select>
 
 
@@ -464,20 +466,24 @@
                         JOIN business_order_items boi ON bg.id = boi.item_id
                         JOIN business_order bo ON boi.pid = bo.id
                 WHERE
-                bg.is_deleted = 0
-                    boi.is_deleted = 0
+                    bg.is_deleted = 0
+                    AND boi.is_deleted = 0
                     AND bo.is_deleted = 0
                     and bo.status = 3
                     and bo.bill_type = 'RK'
                     and bo.trade_type = 'CMY'
                     and bo.confirm_status = 1
                     AND bo.special_check_status = 1
-                    <if test="tenantId!=null and tenantId != ''">
+                    <if test="tenantId != null and tenantId != ''">
                         and bg.tenant_id = #{tenantId}
                         and bo.tenant_id = #{tenantId}
                     </if>
                 GROUP BY
                     boi.item_id
             ) AS nu ON nu.id = bgd.id
+        where bgd.is_deleted = 0
+        <if test="tenantId != null and tenantId != ''">
+            and bgd.tenant_id = #{tenantId}
+        </if>
     </select>
 </mapper>

+ 6 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderItemsService.java

@@ -22,4 +22,10 @@ public interface IOrderItemsService extends IService<OrderItems> {
 	 */
 	IPage<OrderItemsVO> selectOrderItemsPage(IPage<OrderItemsVO> page, OrderItemsVO orderItems);
 
+	/**
+	 * 删除出库明细,入库明细还原状态
+	 * @param itemId
+	 * @return
+	 */
+    int removeByItemId(String itemId);
 }

+ 12 - 3
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderService.java

@@ -3,7 +3,9 @@ package com.trade.purchase.order.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 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.order.dto.OrderSubmitDto;
 import com.trade.purchase.order.entity.Order;
 import com.trade.purchase.order.vo.OrderDTO;
@@ -143,7 +145,7 @@ public interface IOrderService extends IService<Order> {
 	 * @param excelList
 	 * @return
 	 */
-	List<Order> warehousing(List<CMYWarehousingExcel> excelList);
+	List<CMYWarehousingExcel> warehousing(List<CMYWarehousingExcel> excelList);
 
 	/**
 	 * 采木云新增入库
@@ -180,15 +182,22 @@ public interface IOrderService extends IService<Order> {
 
 	/**
 	 * 库存总账
-	 * @param query
+	 * @param page
 	 * @param order
 	 * @return
 	 */
-    List<Map<String, Object>> generalLedgerList(Query query, OrderTotalDTO order);
+	IPage<GeneralLedgerExcel> generalLedgerList(IPage<GeneralLedgerExcel> page, OrderTotalDTO order);
 
 	/**
 	 * 库存总账(商品)
 	 * @return
 	 */
 	List<Map<String, Object>> generalLedgerListByGoods();
+
+	/**
+	 * 入出库确认
+	 * @param id
+	 * @return
+	 */
+	Order updateOutInStatus(Long id);
 }

+ 56 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderItemsServiceImpl.java

@@ -1,12 +1,18 @@
 package com.trade.purchase.order.service.impl;
 
+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.extension.service.impl.ServiceImpl;
+import com.trade.purchase.order.entity.Order;
 import com.trade.purchase.order.entity.OrderItems;
+import com.trade.purchase.order.enums.OrderTypeEnum;
 import com.trade.purchase.order.mapper.OrderItemsMapper;
+import com.trade.purchase.order.mapper.OrderMapper;
 import com.trade.purchase.order.service.IOrderItemsService;
 import com.trade.purchase.order.vo.OrderItemsVO;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springframework.stereotype.Service;
@@ -23,12 +29,62 @@ import java.util.List;
 @Service
 public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderItems> implements IOrderItemsService {
 
+	private OrderMapper orderMapper;
+
 	@Override
 	public IPage<OrderItemsVO> selectOrderItemsPage(IPage<OrderItemsVO> page, OrderItemsVO orderItems) {
 		return page.setRecords(baseMapper.selectOrderItemsPage(page, orderItems));
 	}
 
 	/**
+	 * 删除出库明细,入库明细还原状态
+	 * @param itemId
+	 * @return
+	 */
+	@Override
+	public int removeByItemId(String itemId) {
+		QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("id", itemId);
+		queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+		queryWrapper.eq("is_deleted", 0);
+		OrderItems orderItems = baseMapper.selectOne(queryWrapper);
+		if (ObjectUtils.isNull(orderItems)){
+			throw new SecurityException("未查到明细信息");
+		}
+
+		Order order = orderMapper.selectById(orderItems.getPid());
+		if (ObjectUtils.isNull(order)){
+			throw new SecurityException("未查到主单据信息");
+		}
+		if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getBillType())){
+			QueryWrapper<Order> orderQueryWrapper = new QueryWrapper<>();
+			orderQueryWrapper.eq("order_no", order.getOrderNo());
+			orderQueryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+			orderQueryWrapper.eq("trade_type", OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType());
+			orderQueryWrapper.eq("bill_type", OrderTypeEnum.WAREHOUSING.getType());
+			orderQueryWrapper.eq("is_deleted", 0);
+
+			Order RkOrder = orderMapper.selectOne(orderQueryWrapper);
+			if (ObjectUtils.isNull(RkOrder)){
+				throw new SecurityException("未查到入库单据信息");
+			}
+			QueryWrapper<OrderItems> RkOrderItemsQueryWrapper = new QueryWrapper<>();
+			RkOrderItemsQueryWrapper.eq("pid", RkOrder.getId());
+			RkOrderItemsQueryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+			RkOrderItemsQueryWrapper.eq("is_deleted", 0);
+			RkOrderItemsQueryWrapper.eq("bill_no", orderItems.getBillNo());
+			OrderItems RkOrderItems = baseMapper.selectOne(RkOrderItemsQueryWrapper);
+			if (ObjectUtils.isNotNull(RkOrderItems)) {
+				RkOrderItems.setIsIssue("1");
+				baseMapper.updateById(RkOrderItems);
+			}else{
+				throw new SecurityException("未找到入库明细信息");
+			}
+		}
+		return baseMapper.deleteById(itemId);
+	}
+
+	/**
 	 * 保存订单明细信息
 	 *
 	 * @param list 订单明细

+ 215 - 142
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -15,6 +15,7 @@ import com.trade.purchase.agreement.entity.Agreementitems;
 import com.trade.purchase.agreement.service.impl.AgreementServiceImpl;
 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.exception.OrderException;
 import com.trade.purchase.financing.service.impl.FinancingServiceImpl;
@@ -44,7 +45,6 @@ import org.springblade.client.feign.*;
 import org.springblade.client.vo.GoodsDescVO;
 import org.springblade.common.utils.BarCodeTest;
 import org.springblade.common.utils.QRCodeTest;
-import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
@@ -966,128 +966,34 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	 * @return
 	 */
 	@Override
-	public List<Order> warehousing(List<CMYWarehousingExcel> excelList) {
-		List<Order> orderList = new ArrayList<>();
-		Order order = new Order();
-		//获取系统编号
-		R billNo = serialClient.getBillNo(OrderTypeEnum.WAREHOUSING.getType(), OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType(), OrderTypeEnum.PURCHASE.getType());
-		if (!billNo.isSuccess()) {
-			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-			throw new Error("生成系统编号失败");
-		}
-		order.setSysNo(billNo.getData().toString());//入库单号
-		order.setBillType(OrderTypeEnum.WAREHOUSING.getType());//业务类型
-		order.setTradeType(OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType());//类型
-		boolean storageName = excelList.stream().allMatch(list -> list.getStorageName().equals(excelList.get(0).getStorageName()));
-		if (storageName) {
-			//仓库
-			StorageType storageType = iStorageClient.storageTypeName(excelList.get(0).getStorageName());
-			if (ObjectUtils.isNotNull(storageType)) {
-				order.setStorageId(storageType.getId());
-			}
-		} else {
-			throw new Error("导入数据存在多个仓库,不允许导入");
-		}
-		boolean purchaser = excelList.stream().allMatch(list -> list.getStorageName().equals(excelList.get(0).getStorageName()));
-		if (purchaser) {
-			R<CorpsDesc> corpsDesc = corpsDescClient.getCorpByName(excelList.get(0).getStorageName(), AuthUtil.getTenantId());
-			if (corpsDesc.isSuccess()) {
-				order.setPurchaser(excelList.get(0).getPurchaserName());//货权人
-				order.setPurchaserId(corpsDesc.getData().getId());
-			}
-		} else {
-			throw new Error("导入数据存在多个货权人,不允许导入");
-		}
-		boolean businesDate = excelList.stream().allMatch(list -> list.getStorageName().equals(excelList.get(0).getStorageName()));
-		if (businesDate) {
-			//入库时间
-			if (ObjectUtils.isNotNull(excelList.get(0).getBusinesDate())) {
-				order.setStockTime(excelList.get(0).getBusinesDate());
-			} else {
-				order.setStockTime(new Date());
-			}
-		} else {
-			throw new Error("导入数据存在多个入库时间,不允许导入");
-		}
+	public List<CMYWarehousingExcel> warehousing(List<CMYWarehousingExcel> excelList) {
 
-		boolean corpName = excelList.stream().allMatch(list -> list.getStorageName().equals(excelList.get(0).getCorpName()));
-		if (corpName) {
-			//供应商
-			CorpsDesc corpsDesc = corpsDescClient.getCorpsDesc(excelList.get(0).getCorpName(), OrderTypeEnum.SUPPLIER.getType());
-			if (ObjectUtils.isNotNull(corpsDesc)) {
-				order.setCorpId(corpsDesc.getId());
-			}
-		} else {
-			throw new Error("导入数据存在多个供应商,不允许导入");
-		}
-		boolean vehicleShipNumber = excelList.stream().allMatch(list -> list.getStorageName().equals(excelList.get(0).getVehicleShipNumber()));
-		if (vehicleShipNumber) {
-			order.setVehicleShipNumber(excelList.get(0).getVehicleShipNumber());//车船号
-		} else {
-			throw new Error("导入数据存在多个车船号,不允许导入");
-		}
-		boolean businessType = excelList.stream().allMatch(list -> list.getStorageName().equals(excelList.get(0).getBillType()));
-		if (businessType) {
-			order.setBusinessType(excelList.get(0).getBillType());//业务类型
-		} else {
-			throw new Error("导入数据存在多个业务类型,不允许导入");
-		}
-		order.setCreateUser(AuthUtil.getUserId());
-		order.setCreateTime(new Date());
-		order.setTenantId(AuthUtil.getTenantId());
-		order.setBillNo(excelList.stream().map(CMYWarehousingExcel::getPackingNo).collect(Collectors.toList()).toString());
-		baseMapper.insert(order);
-		BigDecimal balanceNumber = new BigDecimal(0);
-		BigDecimal balanceMoney = new BigDecimal(0);
 		for (CMYWarehousingExcel cMYWarehousingExcel : excelList) {
+
 			OrderItems orderItems = new OrderItems();
-			orderItems.setPid(order.getId());
 
 			orderItems.setContainerNo(cMYWarehousingExcel.getContainerNo());//箱号
-			//库区
-			StorageDesc storageDesc = iStorageClient.getName(cMYWarehousingExcel.getReservoirAreaName());
-			if (ObjectUtils.isNotNull(storageDesc)) {
-				orderItems.setStorageId(storageDesc.getId());
+			if (ObjectUtils.isNotNull(cMYWarehousingExcel.getReservoirAreaName())) {
+				//库区
+				StorageDesc storageDesc = iStorageClient.getName(cMYWarehousingExcel.getReservoirAreaName());
+				if (ObjectUtils.isNotNull(storageDesc)) {
+					cMYWarehousingExcel.setStorageId(storageDesc.getId());
+				} else {
+					throw new Error(cMYWarehousingExcel.getReservoirAreaName() + "库区不存在,请先维护信息在导入");
+				}
 			}
-			//品名
-			GoodsDesc goodsDesc = goodsDescClient.getGoodsDescByCname(cMYWarehousingExcel.getGoodsName());
-			if (ObjectUtils.isNotNull(goodsDesc)) {
-				orderItems.setItemId(goodsDesc.getId());
-			} else {
-				throw new Error(cMYWarehousingExcel.getGoodsName() + "品名不存在,请先维护信息在导入");
+			if (ObjectUtils.isNotNull(cMYWarehousingExcel.getGoodsName())) {
+				//品名
+				GoodsDesc goodsDesc = goodsDescClient.getGoodsDescByCname(cMYWarehousingExcel.getGoodsName());
+				if (ObjectUtils.isNotNull(goodsDesc)) {
+					cMYWarehousingExcel.setItemId(goodsDesc.getId());
+				} else {
+					throw new Error(cMYWarehousingExcel.getGoodsName() + "品名不存在,请先维护信息在导入");
+				}
 			}
-			orderItems.setRemarks(cMYWarehousingExcel.getOrderRemark());//备注
-			orderItems.setProcurementMethod(cMYWarehousingExcel.getProcurementMethod());//结算方式
-			orderItems.setPaymentType(cMYWarehousingExcel.getPaymentType());//付款方式
-			orderItems.setGrade(cMYWarehousingExcel.getGrade());//等级
-			orderItems.setItemType(cMYWarehousingExcel.getItemType());//品牌
-			orderItems.setItemProp(cMYWarehousingExcel.getItemProp());//产地
-			orderItems.setLength(cMYWarehousingExcel.getLength());//长度(m)
-			orderItems.setWidth(cMYWarehousingExcel.getWidth());//宽度(mm)
-			orderItems.setWidthItem(cMYWarehousingExcel.getWidthItem());//宽度明细
-			orderItems.setThickness(cMYWarehousingExcel.getThickness());//厚度(mm)
-			orderItems.setSliceNumber(cMYWarehousingExcel.getSliceNumber());//片数
-			orderItems.setBillNo(cMYWarehousingExcel.getPackingNo());//捆包号
-			orderItems.setStorageInQuantity(cMYWarehousingExcel.getStorageQuantity());//入库量
-			orderItems.setStorageAmount(cMYWarehousingExcel.getStorageAmount());//入库总金额(元)
-			orderItems.setPrice(cMYWarehousingExcel.getPrice());//入库单价
-			orderItems.setBalanceNumber(cMYWarehousingExcel.getStorageQuantity());//结余量
-			orderItems.setBalanceMoney(cMYWarehousingExcel.getStorageAmount());//结余金额
-
-			orderItems.setCreateTime(new Date());
-			orderItems.setCreateUser(AuthUtil.getUserId());
-			orderItems.setCreateUserName(AuthUtil.getUserName());
-			orderItems.setTenantId(AuthUtil.getTenantId());
-			orderItemsMapper.insert(orderItems);
-			balanceNumber = balanceNumber.add(cMYWarehousingExcel.getStorageQuantity());
-			balanceMoney = balanceMoney.add(cMYWarehousingExcel.getStorageAmount());
-		}
-		order.setStorageQuantity(balanceNumber);//入库量
-		order.setStorageAmount(balanceMoney);//入库金额
-		order.setUpdateUser(AuthUtil.getUserId());
-		order.setUpdateTime(new Date());
-		baseMapper.updateById(order);
-		return orderList;
+
+		}
+		return excelList;
 	}
 
 	/**
@@ -1118,6 +1024,25 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		submitDto.setTenantId(AuthUtil.getTenantId());
 		submitDto.setBusinesDate(submitDto.getStockTime());
 		baseMapper.insert(submitDto);
+
+		LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		RKOrderLambdaQueryWrapper
+			.eq(Order::getIsDeleted, 0)
+			.eq(Order::getOrderNo, submitDto.getOrderNo())
+			.eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
+			.eq(Order::getTenantId, AuthUtil.getTenantId());
+		Order RKOrder = baseMapper.selectOne(RKOrderLambdaQueryWrapper);
+		if (RKOrder == null) {
+			throw new SecurityException("更新入库数据失败");
+		}
+		//入库明细
+		LambdaQueryWrapper<OrderItems> RKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		RKOrderItemsLambdaQueryWrapper
+			.eq(OrderItems::getIsDeleted, 0)
+			.eq(OrderItems::getPid, RKOrder.getId())
+			.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
+		List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
+
 		BigDecimal balanceNumber = new BigDecimal(0);
 		BigDecimal balanceMoney = new BigDecimal(0);
 		if (ObjectUtils.isNotNull(orderItemsList)) {
@@ -1128,22 +1053,29 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						.eq(OrderItems::getGoodType, 0)
 						.eq(OrderItems::getBillNo, orderItems.getBillNo())
 						.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
+						.eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
 						.eq(OrderItems::getIsDeleted, 0);
 					List<OrderItems> orderItemsBillNo = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
 					if (ObjectUtils.isNotNull(orderItemsBillNo)) {
 						throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
 					}
+				} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(submitDto.getBillType())) {
+					for (OrderItems items : RKOrderItemsList) {
+						if (items.getBillNo().equals(orderItems.getBillNo())) {
+							items.setIsIssue("2");
+							orderItemsMapper.updateById(items);
+						}
+					}
 				}
+				orderItems.setBillType(OrderTypeEnum.WAREHOUSING.getType());
 				orderItems.setPid(submitDto.getId());
 				orderItems.setCreateTime(new Date());
 				orderItems.setCreateUser(AuthUtil.getUserId());
 				orderItems.setCreateUserName(AuthUtil.getUserName());
 				orderItems.setTenantId(AuthUtil.getTenantId());
-				orderItems.setBalanceNumber(orderItems.getStorageAmount());//结余量
-				orderItems.setBalanceMoney(orderItems.getPurchaseQuantity());//结余金额
+				orderItems.setBalanceMoney(orderItems.getStorageAmount());
+				orderItems.setBalanceNumber(orderItems.getStorageInQuantity());
 				orderItemsMapper.insert(orderItems);
-				orderItems.setStorageQuantity(ObjectUtils.isNull(orderItems.getStorageQuantity()) ? new BigDecimal(0) : orderItems.getStorageQuantity());
-				orderItems.setStorageAmount(ObjectUtils.isNull(orderItems.getStorageAmount()) ? new BigDecimal(0) : orderItems.getStorageAmount());
 				balanceNumber = balanceNumber.add(orderItems.getStorageInQuantity());
 				balanceMoney = balanceMoney.add(orderItems.getStorageAmount());
 			}
@@ -1182,13 +1114,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						.eq(OrderItems::getGoodType, 0)
 						.eq(OrderItems::getBillNo, orderItems.getBillNo())
 						.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
+						.eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
 						.eq(OrderItems::getIsDeleted, 0);
 					orderItemsBillNo = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
 				}
 				orderItems.setPid(submitDto.getId());
 				orderItems.setTenantId(AuthUtil.getTenantId());
-				orderItems.setBalanceNumber(orderItems.getStorageAmount());//结余量
-				orderItems.setBalanceMoney(orderItems.getPurchaseQuantity());//结余金额
+				orderItems.setBalanceNumber(orderItems.getPurchaseQuantity());//结余量
+				orderItems.setBalanceMoney(orderItems.getStorageAmount());//结余金额
 				if (ObjectUtils.isNotNull(orderItems.getId())) {
 					if (orderItemsBillNo.size() > 1) {
 						throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
@@ -1206,8 +1139,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					orderItems.setCreateUserName(AuthUtil.getUserName());
 					orderItemsMapper.insert(orderItems);
 				}
-				orderItems.setStorageQuantity(ObjectUtils.isNull(orderItems.getStorageQuantity()) ? new BigDecimal(0) : orderItems.getStorageQuantity());
-				orderItems.setStorageAmount(ObjectUtils.isNull(orderItems.getStorageAmount()) ? new BigDecimal(0) : orderItems.getStorageAmount());
 				balanceNumber = balanceNumber.add(orderItems.getStorageInQuantity());
 				balanceMoney = balanceMoney.add(orderItems.getStorageAmount());
 			}
@@ -1258,6 +1189,25 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			submitDto.setCreateTime(new Date());
 			baseMapper.insert(submitDto);
 		}
+
+		LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		RKOrderLambdaQueryWrapper
+			.eq(Order::getIsDeleted, 0)
+			.eq(Order::getOrderNo, submitDto.getOrderNo())
+			.eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
+			.eq(Order::getTenantId, AuthUtil.getTenantId());
+		Order RKOrder = baseMapper.selectOne(RKOrderLambdaQueryWrapper);
+		if (RKOrder == null) {
+			throw new SecurityException("更新入库数据失败");
+		}
+		//入库明细
+		LambdaQueryWrapper<OrderItems> RKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		RKOrderItemsLambdaQueryWrapper
+			.eq(OrderItems::getIsDeleted, 0)
+			.eq(OrderItems::getPid, RKOrder.getId())
+			.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
+		List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
+
 		BigDecimal balanceNumber = new BigDecimal(0);
 		BigDecimal balanceMoney = new BigDecimal(0);
 		if (ObjectUtils.isNotNull(orderItemsList)) {
@@ -1269,16 +1219,25 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						.eq(OrderItems::getGoodType, 0)
 						.eq(OrderItems::getBillNo, orderItems.getBillNo())
 						.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
+						.eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
 						.eq(OrderItems::getIsDeleted, 0);
 					orderItemsBillNo = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
 					if (orderItemsBillNo.size() > 1) {
 						throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
 					}
+					orderItems.setBillType(OrderTypeEnum.WAREHOUSING.getType());
+				} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(submitDto.getBillType())) {
+					for (OrderItems items : RKOrderItemsList) {
+						if (items.getBillNo().equals(orderItems.getBillNo())) {
+							items.setIsIssue("2");
+							orderItemsMapper.updateById(items);
+						}
+					}
 				}
 				orderItems.setPid(submitDto.getId());
 				orderItems.setTenantId(AuthUtil.getTenantId());
-				orderItems.setBalanceNumber(orderItems.getStorageAmount());//结余量
-				orderItems.setBalanceMoney(orderItems.getPurchaseQuantity());//结余金额
+				orderItems.setBalanceNumber(orderItems.getPurchaseQuantity());//结余量
+				orderItems.setBalanceMoney(orderItems.getStorageAmount());//结余金额
 				if (ObjectUtils.isNotNull(orderItems.getId())) {
 					if (orderItemsBillNo.size() > 1) {
 						throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
@@ -1296,8 +1255,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					orderItems.setCreateUserName(AuthUtil.getUserName());
 					orderItemsMapper.insert(orderItems);
 				}
-				orderItems.setStorageQuantity(ObjectUtils.isNull(orderItems.getStorageQuantity()) ? new BigDecimal(0) : orderItems.getStorageQuantity());
-				orderItems.setStorageAmount(ObjectUtils.isNull(orderItems.getStorageAmount()) ? new BigDecimal(0) : orderItems.getStorageAmount());
 				balanceNumber = balanceNumber.add(orderItems.getStorageInQuantity());
 				balanceMoney = balanceMoney.add(orderItems.getStorageAmount());
 			}
@@ -1391,6 +1348,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				.eq(OrderItems::getIsDeleted, 0);
 			List<OrderItems> orderItems = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
 			if (CollectionUtils.isNotEmpty(orderItems)) {
+				order.setOrderItemsList(orderItems);
 				auditProecessDTO.setOrderQuantity(orderItems.stream().map(OrderItems::getOrderQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 				auditProecessDTO.setAmount(orderItems.stream().map(OrderItems::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 				//生成一维码图片
@@ -1458,7 +1416,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			order.setThisUsedProfit(salesOrder.getThisUsedProfit());
 			order.setPurchaserId(salesOrder.getPurchaserId());
 			order.setStorageId(salesOrder.getStorageId());
-			order.setOrgOrderNo(order.getOrgOrderNo());
+			order.setOrgOrderNo(salesOrder.getOrgOrderNo());
 			order.setOrderRemark(salesOrder.getOrderRemark());
 			order.setStorageQuantity(salesOrder.getStorageQuantity());
 			order.setBillNo(salesOrder.getBillNo());
@@ -1506,8 +1464,43 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			}
 			//出库时修改是否出库
 			if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getBillType())) {
-				order.setSpecialCheckStatus(1);
-				RKOrder.setSpecialCheckStatus(1);
+				LambdaQueryWrapper<OrderItems> PDOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+				PDOrderItemsLambdaQueryWrapper
+					.eq(OrderItems::getIsDeleted, 0)
+					.eq(OrderItems::getPid, order.getId())
+					.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
+				//出库明细
+				List<OrderItems> CkOrderItemsList = orderItemsMapper.selectList(PDOrderItemsLambdaQueryWrapper);
+				//入库明细
+				LambdaQueryWrapper<OrderItems> RKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+				RKOrderItemsLambdaQueryWrapper
+					.eq(OrderItems::getIsDeleted, 0)
+					.eq(OrderItems::getPid, RKOrder.getId())
+					.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
+				List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
+				int count = 0;
+				for (OrderItems orderItems : CkOrderItemsList) {
+					for (OrderItems RKOrderItems : RKOrderItemsList) {
+						//判断盘点与入库明细捆包号是否相等 true修改入库盘点量,结余量,结余金额
+						if (orderItems.getBillNo().equals(RKOrderItems.getBillNo())) {
+							if (RKOrderItems.getIsIssue().equals("3")) {
+								throw new SecurityException("捆包号:" + RKOrderItems.getBillNo() + "已出库");
+							} else {
+								RKOrderItems.setIsIssue("1");
+								orderItems.setIsIssue("1");
+							}
+							orderItemsMapper.updateById(RKOrderItems);
+							orderItemsMapper.updateById(orderItems);
+						}
+						if (RKOrderItems.getIsIssue().equals("3")) {
+							count++;
+						}
+					}
+				}
+				if (count == RKOrderItemsList.size()) {
+					order.setSpecialCheckStatus(1);
+					RKOrder.setSpecialCheckStatus(1);
+				}
 				baseMapper.updateById(RKOrder);
 			} else if (OrderTypeEnum.INVENTORY.getType().equals(order.getBillType())) {
 				LambdaQueryWrapper<OrderItems> PDOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -1531,6 +1524,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 							RKOrderItems.setInventory(orderItems.getInventory());
 							RKOrderItems.setBalanceNumber(orderItems.getBalanceNumber());
 							RKOrderItems.setBalanceMoney(orderItems.getBalanceMoney());
+							RKOrderItems.setSurplusLoss(orderItems.getSurplusLoss());
+							if (RKOrderItems.getIsIssue().equals("3")) {
+								throw new SecurityException("捆包号:" + RKOrderItems.getBillNo() + "已出库");
+							}
 							orderItemsMapper.updateById(RKOrderItems);
 						}
 					}
@@ -1576,14 +1573,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	/**
 	 * 库存总账
 	 *
-	 * @param query
+	 * @param page
 	 * @param order
 	 * @return
 	 */
 	@Override
-	public List<Map<String, Object>> generalLedgerList(Query query, OrderTotalDTO order) {
-		List<Map<String, Object>> mapList = baseMapper.generalLedgerList(query, order);
-		return mapList;
+	public IPage<GeneralLedgerExcel> generalLedgerList(IPage<GeneralLedgerExcel> page, OrderTotalDTO order) {
+		return page.setRecords(baseMapper.generalLedgerList(page, order));
 	}
 
 	/**
@@ -1597,6 +1593,74 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	/**
+	 * 入出库确认
+	 *
+	 * @param id
+	 * @return
+	 */
+	@Override
+	public Order updateOutInStatus(Long id) {
+		Order order = orderMapper.selectById(id);
+		if (ObjectUtils.isNotNull(order)) {
+			if ("CK".equals(order.getBillType())) {
+				QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
+				queryWrapper.eq("pid", order.getId());
+				queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+				queryWrapper.eq("is_deleted", 0);
+				List<OrderItems> orderItemsList = orderItemsMapper.selectList(queryWrapper);
+				for (OrderItems orderItems : orderItemsList) {
+					orderItems.setScanningComparison("Y");
+					orderItems.setUpdateTime(new Date());
+					orderItems.setUpdateUser(AuthUtil.getUserId());
+					orderItemsMapper.updateById(orderItems);
+				}
+				LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+				RKOrderLambdaQueryWrapper
+					.eq(Order::getIsDeleted, 0)
+					.eq(Order::getOrderNo, order.getOrderNo())
+					.eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
+					.eq(Order::getTenantId, AuthUtil.getTenantId());
+				Order RKOrder = orderMapper.selectOne(RKOrderLambdaQueryWrapper);
+				if (RKOrder == null) {
+					throw new SecurityException("更新入库数据失败");
+				}
+				RKOrder.setSpecialCheckStatus(1);
+				orderMapper.updateById(RKOrder);
+
+				QueryWrapper<OrderItems> RKqueryWrapper = new QueryWrapper<>();
+				RKqueryWrapper.eq("pid", RKOrder.getId());
+				RKqueryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+				RKqueryWrapper.eq("is_deleted", 0);
+				List<OrderItems> RKderItemsList = orderItemsMapper.selectList(queryWrapper);
+				for (OrderItems orderItems : RKderItemsList) {
+					orderItems.setIsIssue("3");
+					orderItems.setUpdateTime(new Date());
+					orderItems.setUpdateUser(AuthUtil.getUserId());
+					orderItemsMapper.updateById(orderItems);
+				}
+
+			} else if ("RK".equals(order.getBillType())) {
+				QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
+				queryWrapper.eq("pid", order.getId());
+				queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+				queryWrapper.eq("is_deleted", 0);
+				List<OrderItems> orderItemsList = orderItemsMapper.selectList(queryWrapper);
+				for (OrderItems orderItems : orderItemsList) {
+					orderItems.setIsIssue("1");
+					orderItems.setUpdateTime(new Date());
+					orderItems.setUpdateUser(AuthUtil.getUserId());
+					orderItemsMapper.updateById(orderItems);
+				}
+			}
+			order.setConfirmStatus("1");
+			order.setUpdateTime(new Date());
+			order.setUpdateUser(AuthUtil.getUserId());
+			orderMapper.updateById(order);
+		}
+		return order;
+	}
+
+	/**
 	 * 订单生成账单 并且推送财务消息
 	 *
 	 * @param order    订单信息
@@ -1619,9 +1683,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				order.setCorpName(corpMessage.getData().getCname());
 			}
 		}
-		BigDecimal amount = BigDecimal.ZERO;//对账金额   销售订单生成的金额  销售金额-本次使用返利金额+费用明细
-		BigDecimal quantity = BigDecimal.ZERO;//对账数量 数量为 就是轮胎条数的和
-		BigDecimal price = BigDecimal.ZERO;//对账单价
 		ApplyDTO applyDTO = new ApplyDTO();
 		applyDTO.setBillType(billType);
 		applyDTO.setTradeType(order.getTradeType());
@@ -1635,6 +1696,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 		//判断是否未仓储费
 		if (!OrderTypeEnum.STORAGE_FEE.getType().equals(itemType)) {
+
+			BigDecimal amount = BigDecimal.ZERO;//对账金额   销售订单生成的金额  销售金额-本次使用返利金额+费用明细
+			BigDecimal quantity = BigDecimal.ZERO;//对账数量 数量为 就是轮胎条数的和
+			BigDecimal price = BigDecimal.ZERO;//对账单价
+
 			//获取订单明细信息
 			LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
 			orderItemsLambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0);
@@ -1683,6 +1749,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					items.setRemarks(order.getOrderRemark());
 					items.setSrcBillNo(order.getBillNo());
 					items.setStatusJT(1);
+					items.setBillNo(order.getBillNo());
 					//获取费用id
 					R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
 					if (fees.isSuccess() && fees.getData() != null) {
@@ -1733,6 +1800,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 			}
 		} else {
+			BigDecimal amount = BigDecimal.ZERO;//对账金额   销售订单生成的金额  销售金额-本次使用返利金额+费用明细
 			List<Items> itemsList = new ArrayList<>();
 			Items items = new Items();
 			items.setItemType("仓储费");
@@ -1766,8 +1834,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				.eq(Agreement::getCorpId, order.getPurchaserId())
 				.eq(Agreement::getFeetypeId, "0")
 				.eq(Agreement::getDelFlag, "0")
-				.eq(Agreement::getTenantId, AuthUtil.getTenantId())
-				.apply("FIND_IN_SET(" + order.getStorageId() + ",warehouse_id)");
+				.eq(Agreement::getStatus, "0")
+				.eq(Agreement::getTenantId, AuthUtil.getTenantId());
+			if (order.getOrderItemsList().size() > 0) {
+				agreementLambdaQueryWrapper.apply("FIND_IN_SET(" + order.getOrderItemsList().get(0).getItemId() + ",goods_id)");
+			}
+			agreementLambdaQueryWrapper.apply("FIND_IN_SET(" + order.getStorageId() + ",warehouse_id)");
 			Agreement agreement = agreementService.getOne(agreementLambdaQueryWrapper);
 			if (agreement == null) {
 				throw new SecurityException("未找到仓储费协议");
@@ -1805,10 +1877,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					count++;
 				}
 			}
-			quantity = RKoOrder.getStorageQuantity();
 			//账单数据
+			items.setPrice(amount);
 			items.setAmount(amount);
-			items.setQuantity(quantity);
+			items.setQuantity(new BigDecimal("1"));
 			items.setSrcOrderno(order.getOrgOrderNo());
 			items.setCorpId(order.getPurchaserId());
 			items.setSrcParentId(order.getId());
@@ -1821,6 +1893,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			items.setRemarks(order.getOrderRemark());
 			items.setSrcBillNo(order.getBillNo());
 			items.setStatusJT(1);
+			items.setBillNo(order.getBillNo());
 			//获取费用id
 			R<FeesDesc> fees = feesDescClient.getFeesByName("仓储费");
 			if (fees.isSuccess() && fees.getData() != null) {