diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
index 60414f7..1fa81be 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
@@ -6,15 +6,13 @@
         <a-row :gutter="24">
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="库区">
-              <a-select
-                show-search
-                placeholder="请选择库区"
-                option-filter-prop="children"
-                v-model="queryParam.zoneCode">
-                <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
-                  {{item.name}}
-                </a-select-option>
-              </a-select>
+              <a-form-model-item   prop="zoneOptions">
+                <j-multi-select-tag
+                  v-model="queryParam.zoneCode"
+                  :options="zoneOptions"
+                  placeholder="请选择">
+                </j-multi-select-tag>
+              </a-form-model-item>
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -171,6 +169,7 @@ export default {
     return {
       zoneList: [],
       description: '库存表管理页面',
+      zoneOptions:[],
       // 表头
       columns: [
         {
@@ -347,6 +346,14 @@ export default {
       getZoneList().then((res) => {
         if (res.success) {
           this.zoneList = res.result
+          //延迟半秒执行,避免组件未加载完,数据已经加载完
+          setTimeout(()=>{
+            //slice可以在数组的任何位置进行删除/添加操作
+            this.zoneOptions.splice(0, 1);
+            for (let i = 0; i < res.result.length; i++) {
+              this.zoneOptions.push({value:res.result[i].code,text:res.result[i].name})
+            }
+          },500)
         }
       });
     },
diff --git a/ant-design-vue-jeecg/src/views/system/modules/UserModal.vue b/ant-design-vue-jeecg/src/views/system/modules/UserModal.vue
index 7c4a6ca..6c57da3 100644
--- a/ant-design-vue-jeecg/src/views/system/modules/UserModal.vue
+++ b/ant-design-vue-jeecg/src/views/system/modules/UserModal.vue
@@ -162,7 +162,7 @@ import moment from 'moment'
 import Vue from 'vue'
 import {ACCESS_TOKEN} from "@/store/mutation-types"
 import {getAction} from '@/api/manage'
-import {addUser, editUser, queryUserRole, queryall, queryWarehouse, getAllWarehouseList, getZoneList} from '@/api/api'
+import {addUser, editUser, queryUserRole, queryall, queryWarehouse, getAllWarehouseList, getZoneList, getAllZoneList} from '@/api/api'
 import {disabledAuthFilter} from "@/utils/authFilter"
 import {duplicateCheck} from '@/api/api'
 
@@ -327,7 +327,7 @@ export default {
       });
     },
     initZoneList() {
-      getZoneList().then((res) => {
+      getAllZoneList().then((res) => {
         if (res.success) {
           this.zoneOptions = res.result.map((item, index, arr) => {
             let c = {label: item.name, value: item.code}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/entity/InventoryTransaction.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/entity/InventoryTransaction.java
index 26c8bd6..2fa4a6a 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/entity/InventoryTransaction.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/entity/InventoryTransaction.java
@@ -47,6 +47,10 @@ public class InventoryTransaction implements Serializable {
     @Excel(name = "容器编码", width = 15)
     @ApiModelProperty(value = "容器编码")
     private String containerCode;
+    /** 库区编码 */
+    @Excel(name = "库区编码", width = 15)
+    @ApiModelProperty(value = "库区编码")
+    private String zoneCode;
     /** 起始库位编码 */
     @Excel(name = "起始库位编码", width = 15)
     @ApiModelProperty(value = "起始库位编码")
@@ -64,6 +68,14 @@ public class InventoryTransaction implements Serializable {
     @Excel(name = "出库单id", width = 15)
     @ApiModelProperty(value = "出库单id")
     private Integer shipmentId;
+    /** 出库单编码 */
+    @Excel(name = "出库单编码", width = 15)
+    @ApiModelProperty(value = "出库单编码")
+    private String shipmentCode;
+    /** 出库单编码 */
+    @Excel(name = "出库单类型", width = 15)
+    @ApiModelProperty(value = "出库单类型")
+    private String shipmentType;
     /** 出库详情id */
     @Excel(name = "出库详情id", width = 15)
     @ApiModelProperty(value = "出库详情id")
@@ -76,6 +88,14 @@ public class InventoryTransaction implements Serializable {
     @Excel(name = "入库单id", width = 15)
     @ApiModelProperty(value = "入库单id")
     private Integer receiptId;
+    /** 入库单编码 */
+    @Excel(name = "入库单编码", width = 15)
+    @ApiModelProperty(value = "入库单编码")
+    private String receiptCode;
+    /** 入库单编码 */
+    @Excel(name = "入库单类型", width = 15)
+    @ApiModelProperty(value = "入库单类型")
+    private String receiptType;
     /** 入库单详情id */
     @Excel(name = "入库单详情id", width = 15)
     @ApiModelProperty(value = "入库单详情id")
@@ -109,19 +129,27 @@ public class InventoryTransaction implements Serializable {
     @Excel(name = "数量", width = 15)
     @ApiModelProperty(value = "数量")
     private BigDecimal qty;
+    /** 入库数量 */
+    @Excel(name = "入库数量", width = 15)
+    @ApiModelProperty(value = "入库数量")
+    private BigDecimal receiptQty;
+    /** 出库数量 */
+    @Excel(name = "出库数量", width = 15)
+    @ApiModelProperty(value = "出库数量")
+    private BigDecimal shipmentQty;
     /** 库存数量 */
     @Excel(name = "库存数量", width = 15)
     @ApiModelProperty(value = "库存数量")
     private BigDecimal inventoryQty;
-    /** 批次 */
+    /** 批次, 批次主要用于成品,比如以生产日期为批次 */
     @Excel(name = "批次", width = 15)
     @ApiModelProperty(value = "批次")
     private String batch;
-    /** 批号 */
+    /** 批号, 批号主要用于原料,记录原料是哪一批 */
     @Excel(name = "批号", width = 15)
     @ApiModelProperty(value = "批号")
     private String lot;
-    /** 项目号 */
+    /** 项目号, 项目号蛀牙用于记录项目 */
     @Excel(name = "项目号", width = 15)
     @ApiModelProperty(value = "项目号")
     private String project;
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
index 16b7c7e..ff54d1a 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
@@ -1076,6 +1076,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             if (receiptDetail == null) {
                 throw new JeecgBootException("未找到ID:" + taskDetail.getReceiptDetailId() + "入库单明细");
             }
+            ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId());
+            if (receiptHeader == null) {
+                throw new JeecgBootException("未找到ID:" + receiptDetail.getReceiptId() + "入库单头");
+            }
             // 操作记录统计用
             taskDetail.setReceiptCode(receiptDetail.getReceiptCode());
             BigDecimal taskQty = receiptDetail.getTaskQty();
@@ -1117,12 +1121,15 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             inventoryTransaction.setWarehouseCode(taskDetail.getWarehouseCode());
             inventoryTransaction.setCompanyCode(taskDetail.getCompanyCode());
             inventoryTransaction.setContainerCode(containerCode);
+            inventoryTransaction.setZoneCode(zoneCode);
             inventoryTransaction.setToLocationCode(toLocationCode);
             inventoryTransaction.setMaterialCode(taskDetail.getMaterialCode());
             inventoryTransaction.setMaterialName(taskDetail.getMaterialName());
             inventoryTransaction.setMaterialSpec(taskDetail.getMaterialSpec());
             inventoryTransaction.setMaterialUnit(taskDetail.getMaterialUnit());
             inventoryTransaction.setReceiptId(taskDetail.getReceiptId());
+            inventoryTransaction.setReceiptCode(receiptHeader.getCode());
+            inventoryTransaction.setReceiptType(receiptHeader.getType());
             inventoryTransaction.setReceiptDetailId(taskDetail.getReceiptDetailId());
             inventoryTransaction.setReceiptContainerDetailId(taskDetail.getReceiptContainerDetailId());
             inventoryTransaction.setBatch(taskDetail.getBatch());
@@ -1130,6 +1137,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             inventoryTransaction.setProject(taskDetail.getProject());
             inventoryTransaction.setInventoryStatus(taskDetail.getInventoryStatus());
             inventoryTransaction.setQty(receiptQty);
+            inventoryTransaction.setReceiptQty(receiptQty);
             // 获得库存数量
             BigDecimal inventoryQty = inventoryDetailService.getSumQty(inventoryDetail);
             inventoryQty = inventoryQty.add(receiptQty);
@@ -1207,6 +1215,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         String fromLocationCode = taskHeader.getFromLocationCode();
         String toLocationCode = taskHeader.getToLocationCode();
         String containerCode = taskHeader.getContainerCode();
+        String zoneCode = taskHeader.getZoneCode();
         int taskType = taskHeader.getTaskType();
         List<TaskDetail> taskDetailList = taskDetailService.getTaskDetailListByTaskId(taskHeader.getId());
         boolean success = false;
@@ -1254,6 +1263,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             if (shipmentDetail == null) {
                 throw new JeecgBootException("完成出库任务, 出库任务没有找到出库详情" + taskDetail.getShipmentDetailId());
             }
+            ShipmentHeader shipmentHeader = shipmentHeaderService.getById(shipmentDetail.getShipmentId());
+            if (shipmentHeader == null) {
+                throw new JeecgBootException("完成出库任务, 出库任务没有找到出库单" + shipmentDetail.getShipmentId());
+            }
             taskDetail.setShipmentCode(shipmentDetail.getShipmentCode());
             int shipmentDetailId = shipmentDetail.getId();
             int status = QuantityConstant.SHIPMENT_HEADER_COMPLETED;
@@ -1302,6 +1315,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             inventoryTransaction.setWarehouseCode(warehouseCode);
             inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode());
             inventoryTransaction.setContainerCode(containerCode);
+            inventoryTransaction.setZoneCode(zoneCode);
             inventoryTransaction.setFromLocationCode(fromLocationCode);
             inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode());
             inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName());
@@ -1309,12 +1323,15 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             inventoryTransaction.setMaterialUnit(inventoryDetail.getMaterialUnit());
             inventoryTransaction.setInventoryStatus(inventoryDetail.getInventoryStatus());
             inventoryTransaction.setShipmentId(taskDetail.getShipmentId());
+            inventoryTransaction.setShipmentCode(shipmentHeader.getCode());
+            inventoryTransaction.setShipmentType(shipmentHeader.getType());
             inventoryTransaction.setShipmentDetailId(taskDetail.getShipmentDetailId());
             inventoryTransaction.setShipmentContainerDetailId(taskDetail.getShipmentContainerDetailId());
             inventoryTransaction.setBatch(inventoryDetail.getBatch());
             inventoryTransaction.setLot(inventoryDetail.getLot());
             inventoryTransaction.setProject(inventoryDetail.getProject());
             inventoryTransaction.setQty(taskDetail.getQty());
+            inventoryTransaction.setShipmentQty(taskDetail.getQty());
             BigDecimal inventoryQty = inventoryDetailService.getSumQty(inventoryDetail);
             inventoryTransaction.setInventoryQty(inventoryQty);
             inventoryTransactionList.add(inventoryTransaction);
@@ -1810,6 +1827,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         String containerCode = taskHeader.getContainerCode();
         String fromLocationCode = taskHeader.getFromLocationCode();
         String toLocationCode = taskHeader.getToLocationCode();
+        String zoneCode = taskHeader.getZoneCode();
         boolean success = false;
         if (StringUtils.isEmpty(fromLocationCode)) {
             return Result.error("完成盘点任务时,起始库位编码为空");
@@ -1933,17 +1951,21 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 InventoryTransaction inventoryTransaction = new InventoryTransaction();
                 inventoryTransaction.setWarehouseCode(taskHeader.getWarehouseCode());
                 inventoryTransaction.setCompanyCode(taskHeader.getCompanyCode());
+                inventoryTransaction.setZoneCode(zoneCode);
                 inventoryTransaction.setContainerCode(child.getContainerCode());
                 inventoryTransaction.setToLocationCode(child.getLocationCode());
                 inventoryTransaction.setType(QuantityConstant.INVENTORY_TRANSACTION_CYCLEINTO);
-                inventoryTransaction.setReceiptId(warehousingOrderId);
-                inventoryTransaction.setReceiptDetailId(receiptDetail.getReceiptId());
+                inventoryTransaction.setReceiptId(receiptDetail.getReceiptId());
+                inventoryTransaction.setReceiptCode(receiptDetail.getReceiptCode());
+                inventoryTransaction.setReceiptType(QuantityConstant.RECEIPT_BILL_TYPE_QTR);
+                inventoryTransaction.setReceiptDetailId(receiptDetail.getId());
                 inventoryTransaction.setMaterialCode(child.getMaterialCode());
                 inventoryTransaction.setMaterialName(child.getMaterialName());
                 inventoryTransaction.setMaterialSpec(child.getMaterialSpec());
                 inventoryTransaction.setMaterialUnit(child.getMaterialUnit());
                 inventoryTransaction.setInventoryStatus(child.getInventoryStatus());
                 inventoryTransaction.setQty(child.getCountedQty());
+                inventoryTransaction.setReceiptQty(child.getCountedQty());
                 inventoryTransaction.setBatch(child.getBatch());
                 inventoryTransaction.setLot(child.getLot());
                 success = inventoryTransactionService.save(inventoryTransaction);
@@ -2006,9 +2028,12 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 inventoryTransaction.setWarehouseCode(taskHeader.getWarehouseCode());
                 inventoryTransaction.setCompanyCode(taskHeader.getCompanyCode());
                 inventoryTransaction.setContainerCode(child.getContainerCode());
+                inventoryTransaction.setZoneCode(zoneCode);
                 inventoryTransaction.setFromLocationCode(child.getLocationCode());
                 inventoryTransaction.setType(QuantityConstant.INVENTORY_TRANSACTION_CYCLEOUT);
-                inventoryTransaction.setShipmentId(outboundOrderId);
+                inventoryTransaction.setShipmentId(shipmentDetail.getShipmentId());
+                inventoryTransaction.setShipmentCode(shipmentDetail.getShipmentCode());
+                inventoryTransaction.setShipmentType(QuantityConstant.SHIPMENT_BILL_TYPE_QTC);
                 inventoryTransaction.setShipmentDetailId(shipmentDetail.getId());
                 inventoryTransaction.setMaterialCode(child.getMaterialCode());
                 inventoryTransaction.setMaterialName(child.getMaterialName());
@@ -2016,6 +2041,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 inventoryTransaction.setMaterialUnit(child.getMaterialUnit());
                 inventoryTransaction.setInventoryStatus(child.getInventoryStatus());
                 inventoryTransaction.setQty(child.getCountedQty());
+                inventoryTransaction.setShipmentQty(child.getCountedQty());
                 inventoryTransaction.setBatch(child.getBatch());
                 inventoryTransaction.setLot(child.getLot());
                 success = inventoryTransactionService.save(inventoryTransaction);
@@ -2128,7 +2154,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         String containerCode = taskHeader.getContainerCode();
         String fromLocationCode = taskHeader.getFromLocationCode();
         String toLocationCode = taskHeader.getToLocationCode();
-
+        String zoneCode = taskHeader.getZoneCode();
         if (StringUtils.isEmpty(containerCode)) {
             return Result.error("完成移库任务时, 托盘号为空");
         }
@@ -2151,6 +2177,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             inventoryDetail.setLocationCode(toLocationCode);
             InventoryTransaction inventoryTransaction = new InventoryTransaction();
             inventoryTransaction.setWarehouseCode(inventoryDetail.getWarehouseCode());
+            inventoryTransaction.setZoneCode(zoneCode);
             inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode());
             inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode());
             inventoryTransaction.setType(QuantityConstant.INVENTORY_TRANSACTION_TRANSFER);