diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryChildList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryChildList.vue
index 6ed423e..0788f31 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryChildList.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryChildList.vue
@@ -1,145 +1,64 @@
 <template>
-  <a-card :bordered="false">
-    <!-- 查询区域 -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline" @keyup.enter.native="searchQuery">
-        <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.companyCode">
-                <a-select-option v-for="item in companyList" :key="item.name" :value="item.code">{{
-                    item.name
-                  }}
-                </a-select-option>
-              </a-select>
-            </a-form-item>
-          </a-col>
-          <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-item>
-          </a-col>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="库位编码">
-              <a-input placeholder="请输入库位编码" v-model="queryParam.locationCode"></a-input>
-            </a-form-item>
-          </a-col>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="容器编码">
-              <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
-            </a-form-item>
-          </a-col>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="库存状态">
-              <j-dict-select-tag placeholder="请选择库存状态" v-model="queryParam.inventoryStatus" dictCode="inventory_status"/>
-            </a-form-item>
-          </a-col>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="物料编码">
-              <a-input placeholder="请输入物料编码" v-model="queryParam.materialCode"></a-input>
-            </a-form-item>
-          </a-col>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="物料名称">
-              <a-input placeholder="请输入物料名称" v-model="queryParam.materialName"></a-input>
-            </a-form-item>
-          </a-col>
-          <template v-if="toggleSearchStatus">
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="物料规格">
-                <a-input placeholder="请输入物料规格" v-model="queryParam.materialSpec"></a-input>
-              </a-form-item>
-            </a-col>
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="物料单位">
-                <a-input placeholder="请输入物料单位" v-model="queryParam.materialUnit"></a-input>
-              </a-form-item>
-            </a-col>
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="容器状态">
-                <j-dict-select-tag placeholder="请选择容器状态" v-model="queryParam.containerStatus" dictCode="container_status"/>
-              </a-form-item>
-            </a-col>
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="库龄(天)">
-                <a-input placeholder="请输入库龄(天)" v-model="queryParam.inventoryAge"></a-input>
-              </a-form-item>
-            </a-col>
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="唯一号">
-                <a-input placeholder="请输入唯一号" v-model="queryParam.uniqueCode"></a-input>
-              </a-form-item>
-            </a-col>
-            <a-col :xl="10" :lg="11" :md="12" :sm="24">
-              <a-form-item label="创建日期">
-                <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date>
-                <span class="query-group-split-cust"></span>
-                <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" class="query-group-cust" v-model="queryParam.createTime_end"></j-date>
-              </a-form-item>
-            </a-col>
-          </template>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
-              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
-              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
-            </span>
-          </a-col>
-        </a-row>
-      </a-form>
-    </div>
-    <!-- 查询区域-END -->
-
+  <a-card :bordered="false" :class="'cust-erp-sub-tab'">
     <!-- 操作按钮区域 -->
-    <div class="table-operator">
-      <a-button v-has="'inventoryChild:superSearch'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button v-has="'inventoryChild:export'" type="primary" icon="download" @click="handleExportXls('库存明细')">导出</a-button>
-      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
-        <a-button v-has="'inventoryChild:import'" type="primary" icon="import">导入</a-button>
+    <div class="table-operator" v-if="mainId">
+      <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
+      <a-button v-has="'inventoryDetail:export'" type="primary" icon="download" @click="handleExportXls('库存详情')"
+      >导出
+      </a-button
+      >
+      <a-button v-has="'inventoryDetail:export'" type="primary" icon="download" @click="handleExportXls('库存详情')">导出</a-button>
+      <a-upload
+        v-has="'inventoryDetail:import'"
+        name="file"
+        :showUploadList="false"
+        :multiple="false"
+        :headers="tokenHeader"
+        :action="importExcelUrl"
+        @change="handleImportExcel"
+      >
+        <a-button type="primary" icon="import">导入</a-button>
       </a-upload>
       <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 slot="overlay" v-has="'inventoryDetail:deleteBatch'">
+          <a-menu-item key="1" @click="batchDel">
+            <a-icon type="delete"/>
+            删除
+          </a-menu-item>
         </a-menu>
-        <a-button v-has="'inventoryChild:delete'" style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
+        <a-button style="margin-left: 8px">
+          批量操作
+          <a-icon type="down"/>
+        </a-button>
       </a-dropdown>
     </div>
 
     <!-- table区域-begin -->
     <div>
       <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
+        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择
+        <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
         <a style="margin-left: 24px" @click="onClearSelected">清空</a>
       </div>
 
       <a-table
         ref="table"
         size="middle"
-        :scroll="{x:true}"
         bordered
         rowKey="id"
+        :scroll="{ x: true }"
         :columns="columns"
         :dataSource="dataSource"
         :pagination="ipagination"
         :loading="loading"
-        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
-        class="j-table-force-nowrap"
-        @change="handleTableChange">
+        :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
+        @change="handleTableChange"
+      >
+         <span slot="inventoryStatus_dictText" slot-scope="inventoryStatus_dictText">
+          <a-tag :key="inventoryStatus_dictText" :color="getStatusColor(inventoryStatus_dictText)">
+            {{ inventoryStatus_dictText }}
+          </a-tag>
+        </span>
 
         <span slot="companyCode" slot-scope="companyCode">
           <a-tag :key="companyCode" color="blue">
@@ -147,197 +66,248 @@
           </a-tag>
         </span>
 
-        <span slot="zoneCode" slot-scope="zoneCode">
-          <a-tag :key="zoneCode" color=blue>
-            {{ solutionZoneCode(zoneCode) }}
-          </a-tag>
-        </span>
-
         <template slot="htmlSlot" slot-scope="text">
           <div v-html="text"></div>
         </template>
         <template slot="imgSlot" slot-scope="text">
           <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
-          <img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
+          <img
+            v-else
+            :src="getImgView(text)"
+            height="25px"
+            alt=""
+            style="max-width:80px;font-size: 12px;font-style: italic;"
+          />
         </template>
         <template slot="fileSlot" slot-scope="text">
           <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-          <a-button
-            v-else
-            :ghost="true"
-            type="primary"
-            icon="download"
-            size="small"
-            @click="downloadFile(text)">
+          <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">
             下载
           </a-button>
         </template>
+
         <span slot="action" slot-scope="text, record">
-          <a v-has="'inventoryChild:edit'" @click="handleEdit(record)">编辑</a>
+          <a v-has="'inventoryDetail:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical"/></a>
+          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+            <a v-has="'inventoryDetail:delete'">删除</a>
+          </a-popconfirm>
         </span>
       </a-table>
     </div>
 
-    <inventory-child-modal ref="modalForm" @ok="modalFormOk"></inventory-child-modal>
+    <inventoryDetail-modal ref="modalForm" @ok="modalFormOk" :mainId="mainId"></inventoryDetail-modal>
   </a-card>
 </template>
 
 <script>
-
-import '@/assets/less/TableExpand.less'
-import { mixinDevice } from '@/utils/mixin'
-import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-import InventoryChildModal from './modules/InventoryChildModal'
-import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
-
-import {getCompanyList, getZoneList} from "@api/api";
+import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+import InventoryDetailModal from './modules/InventoryDetailModal'
+import {getCompanyList, getZoneList} from '@/api/api'
 
 export default {
-  name: 'InventoryChildList',
-  mixins:[JeecgListMixin, mixinDevice],
-  components: {
-    InventoryChildModal
+  name: 'InventoryDetailList',
+  mixins: [JeecgListMixin],
+  components: {InventoryDetailModal},
+  props: {
+    mainId: {
+      type: String,
+      default: '',
+      required: false
+    }
+  },
+  watch: {
+    mainId: {
+      immediate: true,
+      handler(val) {
+        if (!this.mainId) {
+          this.clearList()
+        } else {
+          this.queryParam['inventoryHeaderId'] = val
+          this.loadData(1)
+        }
+      }
+    }
   },
-  data () {
+  data() {
     return {
-      zoneList: [],
+      description: '库存表管理页面',
+      disableMixinCreated: true,
       companyList: [],
-      description: '库存明细管理页面',
       // 表头
       columns: [
         {
-          title: '#',
-          dataIndex: '',
-          key:'rowIndex',
-          width:60,
-          align:"center",
-          customRender:function (t,r,index) {
-            return parseInt(index)+1;
-          }
-        },
-        {
-          title:'货主',
-          align:"center",
-          dataIndex: 'companyCode'
-        },
-        {
-          title:'库区',
-          align:"center",
-          dataIndex: 'zoneCode'
+          title: '库存详情ID',
+          align: 'center',
+          dataIndex: 'id'
         },
         {
-          title:'容器状态',
-          align:"center",
-          dataIndex: 'containerStatus_dictText'
+          title: '货主',
+          align: 'center',
+          dataIndex: 'companyCode',
+          key: 'companyCode',
+          scopedSlots: {customRender: 'companyCode'}
         },
+        // {
+        //   title: '库区',
+        //   align: "center",
+        //   dataIndex: 'zoneCode'
+        // },
         {
-          title:'容器编码',
-          align:"center",
+          title: '容器编码',
+          align: 'center',
           dataIndex: 'containerCode'
         },
         {
-          title:'库位编码',
-          align:"center",
+          title: '库位编码',
+          align: 'center',
           dataIndex: 'locationCode'
         },
         {
-          title:'物料编码',
-          align:"center",
+          title: '物料编码',
+          align: 'center',
           dataIndex: 'materialCode'
         },
         {
-          title:'物料名称',
-          align:"center",
+          title: '物料名称',
+          align: 'center',
           dataIndex: 'materialName'
         },
         {
-          title:'物料规格',
-          align:"center",
+          title: '物料规格',
+          align: 'center',
           dataIndex: 'materialSpec'
         },
         {
-          title:'物料单位',
-          align:"center",
+          title: '物料单位',
+          align: 'center',
           dataIndex: 'materialUnit'
         },
         {
-          title:'库存状态',
-          align:"center",
-          dataIndex: 'inventoryStatus_dictText'
+          title: '数量',
+          align: 'center',
+          dataIndex: 'qty'
         },
         {
-          title:'库龄(天)',
-          align:"center",
-          dataIndex: 'inventoryAge'
+          title: '任务锁定数量',
+          align: 'center',
+          dataIndex: 'taskQty'
         },
         {
-          title:'唯一号',
-          align:"center",
-          dataIndex: 'uniqueCode'
+          title: '托盘填充度',
+          align: 'center',
+          dataIndex: 'fillDensity',
+          customRender: text => {
+            return text == null ? '' : text + '%'
+          }
         },
         {
-          title:'创建人',
-          align:"center",
+          title: '库存状态',
+          align: 'center',
+          dataIndex: 'inventoryStatus_dictText',
+          scopedSlots: {customRender: 'inventoryStatus_dictText'}
+        },
+        {
+          title: '批次',
+          align: 'center',
+          dataIndex: 'batch'
+        },
+        {
+          title: '序列号',
+          align: "center",
+          dataIndex: 'sn'
+        },
+        {
+          title: '入库日期',
+          align: 'center',
+          dataIndex: 'receiptDate'
+        },
+        {
+          title: '库龄(天)',
+          align: 'center',
+          dataIndex: 'inventoryAge'
+        },
+        {
+          title: '创建人',
+          align: 'center',
           dataIndex: 'createBy'
         },
         {
-          title:'创建日期',
-          align:"center",
+          title: '创建日期',
+          align: 'center',
           dataIndex: 'createTime'
         },
         {
-          title:'更新人',
-          align:"center",
+          title: '更新人',
+          align: 'center',
           dataIndex: 'updateBy'
         },
         {
-          title:'更新日期',
-          align:"center",
+          title: '更新日期',
+          align: 'center',
           dataIndex: 'updateTime'
         },
         {
           title: '操作',
           dataIndex: 'action',
-          align:"center",
-          fixed:"right",
-          width:147,
-          scopedSlots: { customRender: 'action' }
+          align: 'center',
+          fixed: 'right',
+          width: 147,
+          scopedSlots: {customRender: 'action'}
         }
       ],
       url: {
-        list: "/inventory/inventoryChild/list",
-        delete: "/inventory/inventoryChild/delete",
-        deleteBatch: "/inventory/inventoryChild/deleteBatch",
-        exportXlsUrl: "/inventory/inventoryChild/exportXls",
-        importExcelUrl: "inventory/inventoryChild/importExcel",
-
+        list: '/inventory/inventoryHeader/listInventoryDetailByMainId',
+        delete: '/inventory/inventoryHeader/deleteInventoryDetail',
+        deleteBatch: '/inventory/inventoryHeader/deleteBatchInventoryDetail',
+        exportXlsUrl: '/inventory/inventoryHeader/exportInventoryDetail',
+        importUrl: '/inventory/inventoryHeader/importInventoryDetail'
       },
-      dictOptions:{},
-      superFieldList:[],
+      dictOptions: {
+        containerStatus: []
+      }
     }
   },
   created() {
-  this.getSuperFieldList();
-  this.loadFrom();
+    this.loadFrom()
   },
   computed: {
-    importExcelUrl: function(){
-      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
-    },
+    importExcelUrl() {
+      return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`
+    }
   },
   methods: {
+    getStatusColor(status) {
+      const colors = {
+        '良品': 'green',
+        '报废品': 'purple',
+        '待确认	': 'grey',
+        '次品': 'red',
+        default: 'blue'
+      };
+      return colors[status] || colors.default;
+    },
     loadFrom() {
-      getZoneList().then((res) => {
-        if (res.success) {
-          this.zoneList = res.result
-        }
-      });
+      // getZoneList().then((res) => {
+      //   if (res.success) {
+      //     this.zoneList = res.result
+      //   }
+      // });
       getCompanyList().then(res => {
         if (res.success) {
           this.companyList = res.result
         }
       })
     },
+    // solutionZoneCode(value) {
+    //   var actions = []
+    //   Object.keys(this.zoneList).some((key) => {
+    //     if (this.zoneList[key].code == ('' + value)) {
+    //       actions.push(this.zoneList[key].name)
+    //       return true
+    //     }
+    //   })
+    //   return actions.join('')
+    // },
     solutionCompany(value) {
       var actions = []
       Object.keys(this.companyList).some(key => {
@@ -348,41 +318,14 @@ export default {
       })
       return actions.join('')
     },
-    solutionZoneCode(value) {
-      var actions = []
-      Object.keys(this.zoneList).some((key) => {
-        if (this.zoneList[key].code == ('' + value)) {
-          actions.push(this.zoneList[key].name)
-          return true
-        }
-      })
-      return actions.join('')
-    },
-    initDictConfig(){
-    },
-    getSuperFieldList(){
-      let fieldList=[];
-      fieldList.push({type:'string',value:'companyCode',text:'货主',dictCode:''})
-      fieldList.push({type:'string',value:'zoneCode',text:'库区',dictCode:''})
-      fieldList.push({type:'string',value:'containerStatus',text:'容器状态',dictCode:'container_status'})
-      fieldList.push({type:'string',value:'containerCode',text:'容器编码',dictCode:''})
-      fieldList.push({type:'string',value:'locationCode',text:'库位编码',dictCode:''})
-      fieldList.push({type:'string',value:'materialCode',text:'物料编码',dictCode:''})
-      fieldList.push({type:'string',value:'materialName',text:'物料名称',dictCode:''})
-      fieldList.push({type:'string',value:'materialSpec',text:'物料规格',dictCode:''})
-      fieldList.push({type:'string',value:'materialUnit',text:'物料单位',dictCode:''})
-      fieldList.push({type:'string',value:'inventoryStatus',text:'库存状态',dictCode:'inventory_status'})
-      fieldList.push({type:'int',value:'inventoryAge',text:'库龄(天)',dictCode:''})
-      fieldList.push({type:'string',value:'uniqueCode',text:'唯一号',dictCode:''})
-      fieldList.push({type:'string',value:'createBy',text:'创建人',dictCode:''})
-      fieldList.push({type:'datetime',value:'createTime',text:'创建日期'})
-      fieldList.push({type:'string',value:'updateBy',text:'更新人',dictCode:''})
-      fieldList.push({type:'datetime',value:'updateTime',text:'更新日期'})
-      this.superFieldList = fieldList
+    clearList() {
+      this.dataSource = []
+      this.selectedRowKeys = []
+      this.ipagination.current = 1
     }
   }
 }
 </script>
 <style scoped>
-  @import '~@assets/less/common.less';
+@import '~@assets/less/common.less';
 </style>
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue
index 65503bb..8ea82ed 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue
@@ -189,9 +189,9 @@ export default {
           dataIndex: 'batch'
         },
         // {
-        //   title: '唯一号',
+        //   title: '序列号',
         //   align: "center",
-        //   dataIndex: 'uniqueCode'
+        //   dataIndex: 'sn'
         // },
         {
           title: '入库日期',
diff --git a/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue b/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue
index 5466a9b..bbc0d81 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue
@@ -77,8 +77,8 @@
               </a-form-item>
             </a-col>
             <!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="唯一号">
-                <a-input placeholder="请输入唯一号" v-model="queryParam.uniqueCode"></a-input>
+              <a-form-item label="序列号">
+                <a-input placeholder="请输入序列号" v-model="queryParam.sn"></a-input>
               </a-form-item>
             </a-col> -->
             <a-col :xl="12" :lg="14" :md="16" :sm="24">
@@ -320,9 +320,9 @@ export default {
           dataIndex: 'batch'
         },
         // {
-        //   title:'唯一号',
+        //   title:'序列号',
         //   align:"center",
-        //   dataIndex: 'uniqueCode'
+        //   dataIndex: 'sn'
         // },
         {
           title: '入库日期',
@@ -443,7 +443,7 @@ export default {
       fieldList.push({type: 'BigDecimal', value: 'taskQty', text: '任务锁定数量', dictCode: ''})
       fieldList.push({type: 'string', value: 'inventoryStatus', text: '库存状态', dictCode: 'inventory_status'})
       fieldList.push({type: 'string', value: 'batch', text: '批次', dictCode: ''})
-      // fieldList.push({type:'string',value:'uniqueCode',text:'唯一号',dictCode:''})
+      // fieldList.push({type:'string',value:'sn',text:'序列号',dictCode:''})
       fieldList.push({type: 'datetime', value: 'receiptDate', text: '入库日期'})
       fieldList.push({type: 'int', value: 'inventoryAge', text: '库龄(天)', dictCode: ''})
       fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''})
diff --git a/ant-design-vue-jeecg/src/views/system/inventory/modules/InventoryChildForm.vue b/ant-design-vue-jeecg/src/views/system/inventory/modules/InventoryChildForm.vue
index 511e158..688c790 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/modules/InventoryChildForm.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/modules/InventoryChildForm.vue
@@ -59,8 +59,8 @@
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
-            <a-form-model-item label="唯一号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="uniqueCode">
-              <a-input v-model="model.uniqueCode" placeholder="请输入唯一号"  ></a-input>
+            <a-form-model-item label="序列号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sn">
+              <a-input v-model="model.sn" placeholder="请输入序列号"  ></a-input>
             </a-form-model-item>
           </a-col>
         </a-row>
@@ -106,8 +106,8 @@ validatorRules: {
         materialName: [
             { required: true, message: '请输入物料名称!'},
         ],
-        uniqueCode: [
-            { required: true, message: '请输入唯一号!'},
+        sn: [
+            { required: true, message: '请输入序列号!'},
         ],
 },
         url: {
@@ -160,7 +160,7 @@ validatorRules: {
               that.confirmLoading = false;
             })
           }
-         
+
         })
       },
     }
diff --git a/ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue b/ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue
index 4abc3c8..2ed3407 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue
@@ -2,33 +2,33 @@
   <a-card :bordered="false" :class="'cust-erp-sub-tab'">
     <!-- 操作按钮区域 -->
     <div class="table-operator" v-if="mainId">
-      <!-- <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button> -->
+      <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
       <a-button type="primary" icon="download" @click="handleExportXls('库存详情')">导出</a-button>
     </div>
 
     <!-- table区域-begin -->
     <div>
-      <a-table
+     <a-table
         ref="table"
         size="middle"
         bordered
         rowKey="id"
-        :scroll="{ x: true }"
+        :scroll="{x:true}"
         :columns="columns"
         :dataSource="dataSource"
         :pagination="ipagination"
         :loading="loading"
-        @change="handleTableChange"
-        class='j-table-force-nowrap'
-      >
-      
-      	<span slot="inventoryStatus_dictText" slot-scope="inventoryStatus_dictText">
+        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        @change="handleTableChange">
+
+        <span slot="inventoryStatus_dictText" slot-scope="inventoryStatus_dictText">
           <a-tag :key="inventoryStatus_dictText" :color="getStatusColor(inventoryStatus_dictText)">
             {{ inventoryStatus_dictText }}
           </a-tag>
         </span>
-        
+
         <span slot="companyCode" slot-scope="companyCode">
+
           <a-tag :key="companyCode" color="blue">
             {{ solutionCompany(companyCode) }}
           </a-tag>
@@ -47,13 +47,17 @@
 </template>
 
 <script>
+
 import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 import InventoryDetailModal from '../modules/InventoryDetailModal'
+
 import { getCompanyList, getZoneList } from '@/api/api'
 
 export default {
+
   name: 'InventoryDetailSubTable',
   mixins: [JeecgListMixin],
+
   components: { InventoryDetailModal },
   props: {
     mainId: {
@@ -69,6 +73,7 @@ export default {
         if (!this.mainId) {
           this.clearList()
         } else {
+
           this.queryParam['zoneCode'] = val.split("_")[0];
           this.queryParam['materialCode'] = val.split("_")[1];
           this.loadData(1)
@@ -78,6 +83,7 @@ export default {
   },
   data() {
     return {
+
       description: '库存物料汇总详情页面',
       disableMixinCreated: true,
       companyList: [],
@@ -86,18 +92,22 @@ export default {
       columns: [
         {
           title: '库存详情ID',
+
           align: 'center',
           dataIndex: 'id'
         },
         {
           title: '货主',
+
           align: 'center',
           dataIndex: 'companyCode',
           key: 'companyCode',
+
           scopedSlots: { customRender: 'companyCode' }
         },
         {
           title: '库区',
+
           align: 'center',
           dataIndex: 'zoneCode',
           key: 'zoneCode',
@@ -123,11 +133,6 @@ export default {
           align: 'center',
           dataIndex: 'materialName'
         },
-        // {
-        //   title: '物料规格',
-        //   align: 'center',
-        //   dataIndex: 'materialSpec'
-        // },
         {
           title: '物料单位',
           align: 'center',
@@ -160,9 +165,9 @@ export default {
           dataIndex: 'batch'
         },
         {
-          title: '唯一号',
+          title: '序列号',
           align: 'center',
-          dataIndex: 'uniqueCode'
+          dataIndex: 'sn'
         },
         {
           title: '入库日期',
@@ -191,21 +196,12 @@ export default {
         },
         {
           title: '更新日期',
-          align: 'center'
+          align: 'center',
+          dataIndex: 'updateTime'
         },
-        // {
-        //   title: '操作',
-        //   dataIndex: 'action',
-        //   align: 'center',
-        //   fixed: 'right',
-        //   width: 147,
-        //   scopedSlots: { customRender: 'action' }
-        // }
       ],
       url: {
-        list: '/InventoryMaterialSummary/inventoryMaterialSummary/inventoryMaterialSummaryChild',
-        exportXlsUrl: '/inventory/inventoryHeader/exportInventoryDetail',
-        importUrl: '/inventory/inventoryHeader/importInventoryDetail'
+        importUrl: "/inventory/inventoryHeader/importInventoryDetail",
       },
       dictOptions: {
         containerStatus: []
@@ -213,7 +209,7 @@ export default {
     }
   },
   created() {
-    this.loadFrom()
+    this.loadFrom();
   },
   computed: {
     importExcelUrl() {
@@ -232,6 +228,7 @@ export default {
       return colors[status] || colors.default;
     },
     loadFrom() {
+
       getCompanyList().then(res => {
         if (res.success) {
           this.companyList = res.result
@@ -244,6 +241,7 @@ export default {
       })
     },
     solutionCompany(value) {
+
       let actions = []
       Object.keys(this.companyList).some(key => {
         if (this.companyList[key].code === '' + value) {
diff --git a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue
index aa0d5ef..ef7f163 100644
--- a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue
@@ -117,8 +117,8 @@
           </a-button>
         </template>
         <span slot="action" slot-scope="text, record">
-          <a v-if="record.status == 0 && record.taskType == 200" @click="selectFillPort(record)" v-has="'receiptContainerHeader:fill'"><a-button type="primary">生成任务</a-button> <a-divider type="vertical"/></a>
-          <a v-else-if="record.status == 0" @click="selectContainerStatus(record)" v-has="'receiptContainerHeader:fill'"><a-button type="primary">生成任务</a-button> <a-divider type="vertical"/></a>
+          <a v-if="record.status == 0 && record.taskType == 200" @click="selectFillPort(record)" v-has="'receiptContainerHeader:createTask'"><a-button type="primary">生成任务</a-button> <a-divider type="vertical"/></a>
+          <a v-else-if="record.status == 0" @click="selectContainerStatus(record)" v-has="'receiptContainerHeader:createTask'"><a-button type="primary">生成任务</a-button> <a-divider type="vertical"/></a>
 <!--          <a v-if="record.status == 0 && record.taskType == 200" @click="selectPort(record)" v-has="'receiptContainerHeader:createTask'">生成任务<a-divider type="vertical"/></a>-->
 <!--          <a v-else-if="record.status == 0" @click="createTask(record)" v-has="'receiptContainerHeader:createTask'">生成任务<a-divider type="vertical"/></a>-->
           <a-popconfirm v-if="record.status == 0" v-has="'receiptContainerHeader:delete'" title="确定取消配盘吗?" @confirm="() => handleDelete(record.id)">
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/LocationAllocationServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/LocationAllocationServiceImpl.java
index 7d32058..582b8bd 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/LocationAllocationServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/LocationAllocationServiceImpl.java
@@ -123,6 +123,7 @@ public class LocationAllocationServiceImpl implements LocationAllocationService 
         if (roadWays == null || roadWays.size() == 0) {
             throw new JeecgBootException("分配库位时, 巷道为空");
         }
+        Collections.shuffle(roadWays);
         Integer roadWay = locationAllocationService.getRoadWay(roadWays, warehouseCode);
         // 优先找外侧库位
         LambdaQueryWrapper<Location> locationLambda = Wrappers.lambdaQuery();
@@ -176,6 +177,10 @@ public class LocationAllocationServiceImpl implements LocationAllocationService 
             roadWays = locationList.stream().map(Location::getRoadWay).distinct().collect(toList());
         }
         String lastString = "ORDER BY high asc, layer asc, id asc limit 1";
+        if (roadWays == null || roadWays.size() == 0) {
+            throw new JeecgBootException("分配库位时, 巷道为空");
+        }
+        Collections.shuffle(roadWays);
         Integer roadWay = locationAllocationService.getRoadWay(roadWays, warehouseCode);
         LambdaQueryWrapper<Location> locationLambdaQueryWrapper = Wrappers.lambdaQuery();
         locationLambdaQueryWrapper.eq(Location::getZoneCode, zoneCode).eq(Location::getWarehouseCode, warehouseCode).eq(Location::getRoadWay, roadWay)
@@ -194,11 +199,18 @@ public class LocationAllocationServiceImpl implements LocationAllocationService 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Integer getRoadWay(List<Integer> roadWays, String warehouseCode) {
+        if (StringUtils.isEmpty(roadWays)) {
+            throw new JeecgBootException("分配库位错误,没有巷道");
+        }
+        int roadWay = roadWays.get(0);
         if (roadWays.size() == 1) {
-            return roadWays.get(0);
+            return roadWay;
         }
         roadWays = locationAllocationService.removeRoadWaysByPreLocations(roadWays, warehouseCode);
-        int roadWay = getRoadWayByMaxFreeLocation(roadWays, warehouseCode);
+        if (StringUtils.isEmpty(roadWays)) {
+            return roadWay;
+        }
+        roadWay = getRoadWayByMaxFreeLocation(roadWays, warehouseCode);
         return roadWay;
     }
 
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
index 6c62c6a..9039620 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
@@ -119,6 +119,7 @@ public class WcsServiceImpl implements WcsService {
         String height = warecellDomain.getHeight();
         String taskNo = warecellDomain.getTaskNo();
         String locationCode = null;
+        Integer preTaskNo = 0;
         List<Integer> roadWays = warecellDomain.getRoadWays();
         if (height == null) {
             return Result.error("分配库位时,高度为空");
@@ -139,6 +140,13 @@ public class WcsServiceImpl implements WcsService {
         }
         int taskType = taskHeader.getTaskType();
         String containerCode = taskHeader.getContainerCode();
+        String toLocationCode = taskHeader.getToLocationCode();
+        if (StringUtils.isNotEmpty(toLocationCode)) {
+            WcsTask wcsTask2 = new WcsTask();
+            wcsTask2.setToLocationCode(toLocationCode);
+            wcsTask2.setPreTaskNo(String.valueOf(preTaskNo));
+            return Result.OK(wcsTask2);
+        }
         Container container = containerService.getContainerByCode(containerCode, warehouseCode);
         if (container == null) {
             return Result.error("分配库位时,任务托盘为空");
@@ -228,7 +236,6 @@ public class WcsServiceImpl implements WcsService {
         // 修改任务明细目标库位
         Location location = locationService.getLocationByCode(locationCode, warehouseCode);
         int rowFlag = location.getRowFlag().intValue();
-        Integer preTaskNo = 0;
         // 如果是外侧库位,那么就要判断该库位对应的内侧库位是不是有托盘
         if (rowFlag == QuantityConstant.ROW_OUT) {
             Location insideLocation = locationService.getInsideNear(location);
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryChild/entity/InventoryChild.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryChild/entity/InventoryChild.java
index 9c40ca1..f2a48e6 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryChild/entity/InventoryChild.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryChild/entity/InventoryChild.java
@@ -1,108 +1,107 @@
 package org.jeecg.modules.wms.inventory.inventoryChild.entity;
 
 import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
 import java.util.Date;
-import java.math.BigDecimal;
+
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecg.common.aspect.annotation.Dict;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
 /**
  * @Description: 库存明细
- * @Author: jeecg-boot
- * @Date:   2023-03-24
- * @Version: V1.0
+ * @Author:      jeecg-boot
+ * @Date:        2023-03-24
+ * @Version:     V1.0
  */
 @Data
 @TableName("inventory_child")
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = false)
-@ApiModel(value="inventory_child对象", description="库存明细")
+@ApiModel(value = "inventory_child对象", description = "库存明细")
 public class InventoryChild implements Serializable {
     private static final long serialVersionUID = 1L;
 
-	/**主键*/
-	@TableId(type = IdType.ASSIGN_ID)
+    /** 主键 */
+    @TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "主键")
     private String id;
-	/**库存头ID*/
-	@Excel(name = "库存头ID", width = 15)
+    /** 库存头ID */
+    @Excel(name = "库存头ID", width = 15)
     @ApiModelProperty(value = "库存头ID")
     private Integer inventoryHeaderId;
-	/**仓库编码*/
-	@Excel(name = "仓库编码", width = 15)
+    /** 仓库编码 */
+    @Excel(name = "仓库编码", width = 15)
     @ApiModelProperty(value = "仓库编码")
     private String warehouseCode;
-	/**货主*/
-	@Excel(name = "货主", width = 15)
+    /** 货主 */
+    @Excel(name = "货主", width = 15)
     @ApiModelProperty(value = "货主")
     private String companyCode;
-	/**库区*/
-	@Excel(name = "库区", width = 15)
+    /** 库区 */
+    @Excel(name = "库区", width = 15)
     @ApiModelProperty(value = "库区")
     private String zoneCode;
-	/**容器状态*/
-	@Excel(name = "容器状态", width = 15, dicCode = "container_status")
-	@Dict(dicCode = "container_status")
+    /** 容器状态 */
+    @Excel(name = "容器状态", width = 15, dicCode = "container_status")
+    @Dict(dicCode = "container_status")
     @ApiModelProperty(value = "容器状态")
     private String containerStatus;
-	/**容器编码*/
-	@Excel(name = "容器编码", width = 15)
+    /** 容器编码 */
+    @Excel(name = "容器编码", width = 15)
     @ApiModelProperty(value = "容器编码")
     private String containerCode;
-	/**库位编码*/
-	@Excel(name = "库位编码", width = 15)
+    /** 库位编码 */
+    @Excel(name = "库位编码", width = 15)
     @ApiModelProperty(value = "库位编码")
     private String locationCode;
-	/**物料编码*/
-	@Excel(name = "物料编码", width = 15)
+    /** 物料编码 */
+    @Excel(name = "物料编码", width = 15)
     @ApiModelProperty(value = "物料编码")
     private String materialCode;
-	/**物料名称*/
-	@Excel(name = "物料名称", width = 15)
+    /** 物料名称 */
+    @Excel(name = "物料名称", width = 15)
     @ApiModelProperty(value = "物料名称")
     private String materialName;
-	/**物料规格*/
-	@Excel(name = "物料规格", width = 15)
+    /** 物料规格 */
+    @Excel(name = "物料规格", width = 15)
     @ApiModelProperty(value = "物料规格")
     private String materialSpec;
-	/**物料单位*/
-	@Excel(name = "物料单位", width = 15)
+    /** 物料单位 */
+    @Excel(name = "物料单位", width = 15)
     @ApiModelProperty(value = "物料单位")
     private String materialUnit;
-	/**库存状态*/
-	@Excel(name = "库存状态", width = 15, dicCode = "inventory_status")
-	@Dict(dicCode = "inventory_status")
+    /** 库存状态 */
+    @Excel(name = "库存状态", width = 15, dicCode = "inventory_status")
+    @Dict(dicCode = "inventory_status")
     @ApiModelProperty(value = "库存状态")
     private String inventoryStatus;
-	/**库龄(天)*/
-	@Excel(name = "库龄(天)", width = 15)
+    /** 库龄(天) */
+    @Excel(name = "库龄(天)", width = 15)
     @ApiModelProperty(value = "库龄(天)")
     private Integer inventoryAge;
-	/**唯一号*/
-	@Excel(name = "唯一号", width = 15)
-    @ApiModelProperty(value = "唯一号")
-    private String uniqueCode;
-	/**创建人*/
+    /** 序列号 */
+    @Excel(name = "序列号", width = 15)
+    @ApiModelProperty(value = "序列号")
+    private String sn;
+    /** 创建人 */
     @ApiModelProperty(value = "创建人")
     private String createBy;
-	/**创建日期*/
+    /** 创建日期 */
     @ApiModelProperty(value = "创建日期")
     private Date createTime;
-	/**更新人*/
+    /** 更新人 */
     @ApiModelProperty(value = "更新人")
     private String updateBy;
-	/**更新日期*/
+    /** 更新日期 */
     @ApiModelProperty(value = "更新日期")
     private Date updateTime;
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java
index 23a16a3..e7b8cbf 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java
@@ -106,14 +106,17 @@ public class InventoryDetail implements Serializable {
     @Excel(name = "项目号", width = 15)
     @ApiModelProperty(value = "项目号")
     private String project;
-    /** 唯一号 */
-    @Excel(name = "唯一号", width = 15)
-    @ApiModelProperty(value = "唯一号")
-    private String uniqueCode;
+    /** 序列号 */
+    @Excel(name = "序列号", width = 15)
+    @ApiModelProperty(value = "序列号")
+    private String sn;
     /** 箱码 */
     @Excel(name = "箱码", width = 15)
     @ApiModelProperty(value = "箱码")
     private String boxCode;
+    @Excel(name = "收货日期", width = 15)
+    @ApiModelProperty(value = "收货日期")
+    private Date receiveTime;
     /** 入库日期 */
     @Excel(name = "入库日期", width = 15)
     @ApiModelProperty(value = "入库日期")
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 7ad6bbd..26c8bd6 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
@@ -125,10 +125,10 @@ public class InventoryTransaction implements Serializable {
     @Excel(name = "项目号", width = 15)
     @ApiModelProperty(value = "项目号")
     private String project;
-    /** 唯一号 */
-    @Excel(name = "唯一号", width = 15)
-    @ApiModelProperty(value = "唯一号")
-    private String uniqueCode;
+    /** 序列号 */
+    @Excel(name = "序列号", width = 15)
+    @ApiModelProperty(value = "序列号")
+    private String sn;
     /** 备用字段1 */
     @Excel(name = "备用字段1", width = 15)
     @ApiModelProperty(value = "备用字段1")
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java
index 761483f..3871e07 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java
@@ -48,7 +48,7 @@ public class OperationLogServiceImpl extends ServiceImpl<OperationLogMapper, Ope
                         switch (logDTO.getTag()) {
                             case "入库组盘":
                                 message = "容器编码:{},物料编码:{},数量:{}";
-                                operationLogList.addAll(createOperationLogs(logDTO, ReceiptContainerDetail.class, "getUniqueCode", message, "getReferCode",
+                                operationLogList.addAll(createOperationLogs(logDTO, ReceiptContainerDetail.class, "getsn", message, "getReferCode",
                                     "getReceiptCode", "getWarehouseCode", "getContainerCode", "getMaterialCode", "getQty"));
                                 break;
                         }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java
index c9fd333..00e47b3 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java
@@ -2,6 +2,7 @@ package org.jeecg.modules.wms.receipt.receiptContainerHeader.controller;
 
 import java.io.IOException;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -208,6 +209,7 @@ public class ReceiptContainerHeaderController extends JeecgController<ReceiptCon
     @PostMapping(value = "/addReceiptContainerDetail")
     @RequiresPermissions("receiptContainerDetail:add")
     public Result<String> addReceiptContainerDetail(@RequestBody ReceiptContainerDetail receiptContainerDetail) {
+        receiptContainerDetail.setReceiveTime(new Date());
         receiptContainerDetailService.save(receiptContainerDetail);
         return Result.OK("添加成功!");
     }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java
index 4579470..0d754b0 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java
@@ -97,9 +97,12 @@ public class ReceiptContainerDetail implements Serializable {
     @Excel(name = "项目号", width = 15)
     @ApiModelProperty(value = "项目号")
     private String project;
-    @Excel(name = "唯一号", width = 15)
-    @ApiModelProperty(value = "唯一号")
-    private String uniqueCode;
+    @Excel(name = "序列号", width = 15)
+    @ApiModelProperty(value = "序列号")
+    private String sn;
+    @Excel(name = "收货日期", width = 15)
+    @ApiModelProperty(value = "收货日期")
+    private Date receiveTime;
     /** 备用字段1 */
     @Excel(name = "备用字段1", width = 15)
     @ApiModelProperty(value = "备用字段1")
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java
index 4a1ff6e..be0f943 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java
@@ -179,6 +179,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
             taskDetail.setBatch(receiptContainerDetail.getBatch());
             taskDetail.setLot(receiptContainerDetail.getLot());
             taskDetail.setProject(receiptContainerDetail.getProject());
+            taskDetail.setReceiveTime(receiptContainerDetail.getReceiveTime());
             taskDetailList.add(taskDetail);
             ReceiptDetail receiptDetail = receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId());
             if (receiptDetail == null) {
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/domain/Receive.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/domain/Receive.java
index d9f20df..4b7b423 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/domain/Receive.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/domain/Receive.java
@@ -1,12 +1,12 @@
 package org.jeecg.modules.wms.receipt.receiving.domain;
 
-import lombok.Data;
-
 import java.io.Serializable;
 import java.math.BigDecimal;
 
 import org.jeecg.common.aspect.annotation.Dict;
 
+import lombok.Data;
+
 @Data
 public class Receive implements Serializable {
     private static final long serialVersionUID = 1L;
@@ -15,7 +15,7 @@ public class Receive implements Serializable {
 
     private String containerCode; // 托盘号
 
-    private String uniqueCode;// 唯一号
+    private String sn;// 序列号
 
     private String materialCode;
 
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java
index 36b9317..c40bea8 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java
@@ -2,6 +2,7 @@ package org.jeecg.modules.wms.receipt.receiving.service.impl;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -234,7 +235,7 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl
                 receiptContainerDetail = new ReceiptContainerDetail();
                 receiptContainerDetail.setCompanyCode(receiptDetail.getCompanyCode());
                 receiptContainerDetail.setReferCode(receiptDetail.getReferCode());
-                receiptContainerDetail.setUniqueCode(receive.getUniqueCode());
+                receiptContainerDetail.setSn(receive.getSn());
                 receiptContainerDetail.setContainerCode(receive.getContainerCode());
                 receiptContainerDetail.setReceiptDetailId(receiptDetail.getId());
                 receiptContainerDetail.setReceiptId(receiptDetail.getReceiptId());
@@ -250,6 +251,7 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl
                 receiptContainerDetail.setLot(receiptDetail.getLot());
                 receiptContainerDetail.setProject(receiptDetail.getProject());
                 receiptContainerDetail.setInventoryStatus(receiptDetail.getInventoryStatus());
+                receiptContainerDetail.setReceiveTime(new Date());
                 receiptContainerDetailList.add(receiptContainerDetail);
             }
         }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskDetail.java
index f5cf5a4..c9ef1d5 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskDetail.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskDetail.java
@@ -145,9 +145,13 @@ public class TaskDetail implements Serializable {
     @ApiModelProperty(value = "入库的库存详情id")
     private Integer toInventoryDetailId;
 
-    @Excel(name = "唯一号", width = 15)
-    @ApiModelProperty(value = "唯一号")
-    private String uniqueCode;
+    @Excel(name = "序列号", width = 15)
+    @ApiModelProperty(value = "序列号")
+    private String sn;
+
+    @Excel(name = "收货日期", width = 15)
+    @ApiModelProperty(value = "收货日期")
+    private Date receiveTime;
 
     /** 备用字段1 */
     @Excel(name = "备用字段1", width = 15)
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 b6413b7..16b7c7e 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
@@ -1108,6 +1108,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             inventoryDetail.setBatch(taskDetail.getBatch());
             inventoryDetail.setLot(taskDetail.getLot());
             inventoryDetail.setProject(taskDetail.getProject());
+            inventoryDetail.setReceiveTime(taskDetail.getReceiveTime());
             inventoryDetail.setReceiptDate(new Date());
             inventoryDetailList.add(inventoryDetail);