diff --git a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/config/WarehouseList.vue b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/config/WarehouseList.vue
index e038bca..1df409d 100644
--- a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/config/WarehouseList.vue
+++ b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/config/WarehouseList.vue
@@ -38,19 +38,19 @@
 
     <!-- 操作按钮区域 -->
     <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
+      <a-button  v-has="'warehouse:add'"  @click="handleAdd" type="primary" icon="plus">新增</a-button>
       <a-button type="primary" icon="download" @click="handleExportXls('仓库')">导出</a-button>
       <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
         <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
       <!-- 高级查询区域 -->
       <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
-      <a-dropdown v-if="selectedRowKeys.length > 0">
-        <a-menu slot="overlay">
-          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
-        </a-menu>
-        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
-      </a-dropdown>
+<!--      <a-dropdown v-if="selectedRowKeys.length > 0">-->
+<!--        <a-menu slot="overlay">-->
+<!--          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>-->
+<!--        </a-menu>-->
+<!--        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>-->
+<!--      </a-dropdown>-->
     </div>
 
     <!-- table区域-begin -->
diff --git a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/ShipmentDetailList.vue b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/ShipmentDetailList.vue
index 2385221..c166d86 100644
--- a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/ShipmentDetailList.vue
+++ b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/ShipmentDetailList.vue
@@ -62,7 +62,7 @@
         </template>
 
         <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
+          <a @click="edit(record)">编辑</a>
           <a-divider type="vertical" />
           <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
             <a>删除</a>
@@ -73,6 +73,7 @@
     </div>
 
     <shipmentDetail-modal ref="modalForm" @ok="modalFormOk" :mainId="mainId"></shipmentDetail-modal>
+    <shipment-detail-edit-modal ref="modalEditForm" @ok="modalFormOk" :mainId="mainId"></shipment-detail-edit-modal>
   </a-card>
 </template>
 
@@ -80,11 +81,12 @@
 
   import { JeecgListMixin } from '@/mixins/JeecgListMixin'
   import ShipmentDetailModal from './modules/ShipmentDetailModal'
+  import ShipmentDetailEditModal from './modules/ShipmentDetailEditModal'
 
   export default {
     name: "ShipmentDetailList",
     mixins:[JeecgListMixin],
-    components: { ShipmentDetailModal },
+    components: { ShipmentDetailEditModal, ShipmentDetailModal },
     props:{
       mainId:{
         type:String,
@@ -215,8 +217,12 @@
         this.dataSource=[]
         this.selectedRowKeys=[]
         this.ipagination.current = 1
-      }
-
+      },
+      edit (record) {
+        this.$refs.modalEditForm.edit(record);
+        this.$refs.modalEditForm.title = "编辑";
+        this.$refs.modalEditForm.disableSubmit = false;
+      },
     }
   }
 </script>
diff --git a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentDetailEditModal.vue b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentDetailEditModal.vue
index cae713e..02ecc70 100644
--- a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentDetailEditModal.vue
+++ b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentDetailEditModal.vue
@@ -11,21 +11,37 @@
     <a-spin :spinning="confirmLoading">
       <a-form-model ref="form" :model="model" :rules="validatorRules">
         <a-row>
-          <a-form-model-item label="物料" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialCode">
-            <j-search-select-tag
-              v-model="model.materialCode"
-              :dictOptions="materialList"
-              :trigger-change="true"
-              placeholder="请选择物料编码"
-              @change="searchMaterial">
-            </j-search-select-tag>
-          </a-form-model-item>
+          <a-col :span="24">
+            <a-form-model-item label="物料编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialCode">
+              <a-input v-model="model.materialCode"placeholder="请输入物料编码" style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
+            <a-form-model-item label="物料名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialName">
+              <a-input v-model="model.materialName"placeholder="请输入物料名称" style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
+            <a-form-model-item label="物料规格" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialSpec">
+              <a-input v-model="model.materialSpec"placeholder="请输入单据数量" style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
+            <a-form-model-item label="物料单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialUnit">
+              <a-input v-model="model.materialUnit"placeholder="请输入物料单位" style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
           <a-col :span="24">
             <a-form-model-item label="单据数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qty">
               <a-input-number v-model="model.qty"placeholder="请输入单据数量" style="width: 100%" />
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
+            <a-form-model-item label="已收数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskQty">
+              <a-input-number v-model="model.taskQty"placeholder="请输入已收数量" style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
             <a-form-model-item label="库存状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inventoryStatus">
               <j-dict-select-tag type="list" v-model="model.inventoryStatus" dictCode="inventory_status" placeholder="请选择库存状态" />
             </a-form-model-item>
@@ -35,6 +51,11 @@
               <a-input v-model="model.batch"placeholder="请输入批次" ></a-input>
             </a-form-model-item>
           </a-col>
+          <a-col :span="24">
+            <a-form-model-item label="单据状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="status">
+              <j-dict-select-tag type="list" v-model="model.status" dictCode="shipment_status" placeholder="请选择单据状态" />
+            </a-form-model-item>
+          </a-col>
         </a-row>
       </a-form-model>
     </a-spin>
@@ -48,7 +69,7 @@
   import {searchMaterialByCode} from '@/api/api'
 
   export default {
-    name: "ShipmentDetailModal",
+    name: "ShipmentDetailEditModal",
     components: {
     },
     props:{
diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/controller/WarehouseController.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/controller/WarehouseController.java
index d72eda4..7c6f620 100644
--- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/controller/WarehouseController.java
+++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/controller/WarehouseController.java
@@ -115,6 +115,10 @@ public class WarehouseController extends JeecgController<Warehouse, IWarehouseSe
 	@DeleteMapping(value = "/delete")
 	@RequiresPermissions("warehouse:delete")
 	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		List<Warehouse> warehouseList = warehouseService.getAllWarehouseList();
+		if(warehouseList.size() == 1) {
+			return Result.error("不能删除唯一的仓库");
+		}
 		warehouseService.removeById(id);
 		return Result.OK("删除成功!");
 	}
@@ -130,6 +134,10 @@ public class WarehouseController extends JeecgController<Warehouse, IWarehouseSe
 	@DeleteMapping(value = "/deleteBatch")
 	@RequiresPermissions("warehouse:delete")
 	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		List<Warehouse> warehouseList = warehouseService.getAllWarehouseList();
+		if(warehouseList.size() == 1) {
+			return Result.error("不能删除唯一的仓库");
+		}
 		this.warehouseService.removeByIds(Arrays.asList(ids.split(",")));
 		return Result.OK("批量删除成功!");
 	}
diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/IWarehouseService.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/IWarehouseService.java
index 719cd19..14a4207 100644
--- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/IWarehouseService.java
+++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/IWarehouseService.java
@@ -3,6 +3,8 @@ package org.jeecg.modules.wms.config.warehouse.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.wms.config.warehouse.entity.Warehouse;
 
+import java.util.List;
+
 /**
  * @Description: 仓库
  * @Author: jeecg-boot
@@ -11,4 +13,5 @@ import org.jeecg.modules.wms.config.warehouse.entity.Warehouse;
  */
 public interface IWarehouseService extends IService<Warehouse> {
 
+    public List<Warehouse> getAllWarehouseList();
 }
diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/impl/WarehouseServiceImpl.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/impl/WarehouseServiceImpl.java
index f835e6d..3143145 100644
--- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/impl/WarehouseServiceImpl.java
+++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/impl/WarehouseServiceImpl.java
@@ -7,6 +7,8 @@ import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.util.List;
+
 /**
  * @Description: 仓库
  * @Author: jeecg-boot
@@ -16,4 +18,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper, Warehouse> implements IWarehouseService {
 
+    @Override
+    public List<Warehouse> getAllWarehouseList() {
+        return list();
+    }
 }
diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/controller/shipmentCombinationController.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/controller/shipmentCombinationController.java
index a317b3f..fb4ba79 100644
--- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/controller/shipmentCombinationController.java
+++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/controller/shipmentCombinationController.java
@@ -132,4 +132,18 @@ public class shipmentCombinationController {
         }
         return Result.OK(portList);
     }
+
+
+    /**
+     * 匹配库存
+     * @return
+     */
+    @AutoLog(value = "出库组盘-选取库存")
+    @ApiOperation(value="出库组盘-选取库存", notes="出库组盘-选取库存")
+    @PostMapping("/getInventoryFromShipmentDetail")
+    @ResponseBody
+    public Result getInventoryFromShipmentDetail(@RequestParam(name="id",required=true) Integer id, HttpServletRequest req) {
+
+        return shipmentCombinationService.getInventoryFromShipmentDetail(id);
+    }
 }
diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/IShipmentCombinationService.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/IShipmentCombinationService.java
index afbb188..579f288 100644
--- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/IShipmentCombinationService.java
+++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/IShipmentCombinationService.java
@@ -24,4 +24,6 @@ public interface IShipmentCombinationService {
     public Result combination(CombinationModel combinationModel);
 
     public Result createShipmentTask(ShipmentContainerHeader shipmentContainerHeader, String warehouseCode);
+
+    public Result getInventoryFromShipmentDetail(Integer shipmentDetailId);
 }
diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java
index dcba590..2bf57d2 100644
--- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java
+++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.wms.config.container.entity.Container;
 import org.jeecg.modules.wms.config.container.service.IContainerService;
+import org.jeecg.modules.wms.config.container.service.impl.ContainerServiceImpl;
 import org.jeecg.modules.wms.config.location.entity.Location;
 import org.jeecg.modules.wms.config.location.service.ILocationService;
 import org.jeecg.modules.wms.config.material.entity.Material;
@@ -545,4 +546,23 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi
 
         return Result.OK("生成出库任务成功");
     }
+
+    @Override
+    public Result getInventoryFromShipmentDetail(Integer shipmentDetailId) {
+        ShipmentDetail shipmentDetail = shipmentDetailService.getById(shipmentDetailId);
+        if(shipmentDetail == null){
+            return Result.error("找不到出库单详情");
+        }
+        String warehouseCode = shipmentDetail.getWarehouseCode();
+        List<InventoryDetail> inventoryDetailList = getInventorys(shipmentDetail);
+        if(inventoryDetailList.size() == 0) {
+            return Result.error("该物料没有库存或没有符合出库规则的库存");
+        }
+        List<InventoryDetail> removeInventoryList = new ArrayList<>();
+        for(InventoryDetail inventoryDetail : inventoryDetailList) {
+            String containerCode = inventoryDetail.getContainerCode();
+            Container container =
+        }
+        return null;
+    }
 }
diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-dev.yml b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-dev.yml
index cb741eb..03ad129 100644
--- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-dev.yml
+++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-dev.yml
@@ -131,9 +131,9 @@ spring:
         connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
       datasource:
         master:
-          url: jdbc:mysql://localhost:3306/wms4?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
+          url: jdbc:mysql://172.16.29.45:3306/wms4?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
           username: root
-          password: HHsoft123.
+          password: hhsoftware
           driver-class-name: com.mysql.cj.jdbc.Driver
           # 多数据源配置
           #multi-datasource1: