diff --git a/ant-design-vue-jeecg/src/api/api.js b/ant-design-vue-jeecg/src/api/api.js
index be32270..c980b75 100644
--- a/ant-design-vue-jeecg/src/api/api.js
+++ b/ant-design-vue-jeecg/src/api/api.js
@@ -283,6 +283,8 @@ export const cantaleverReceipt = (params) => postAction('/task/taskHeader/cantal
 export const receiptStageingReceipt = (params) => postAction('/task/taskHeader/receiptStageingReceipt', params)
 //快速入库
 export const stageingReceipt = (params) => postAction('/task/taskHeader/stageingReceipt', params)
+//铁芯库入库
+export const ironCoreReceipt = (params) => postAction('/task/taskHeader/ironCoreReceipt', params)
 //快速出库,批量快速出整托
 export const shipmentInventoryHeader = (params) => postAction('/inventory/inventoryHeader/shipmentInventoryHeader', params)
 //快速出库,批量快速出库存详情
diff --git a/ant-design-vue-jeecg/src/views/system/task/AllTaskHeaderList.vue b/ant-design-vue-jeecg/src/views/system/task/AllTaskHeaderList.vue
index 5ea9936..6b0e8ce 100644
--- a/ant-design-vue-jeecg/src/views/system/task/AllTaskHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/task/AllTaskHeaderList.vue
@@ -94,6 +94,7 @@
       <a-button v-has="'taskHeader:quickReceipt'" @click="stageingReceipt()" type="primary">货架暂存区入库</a-button>
       <a-button v-has="'taskHeader:quickReceipt'" @click="cantaleverReceipt()" type="primary">悬臂库入库</a-button>
       <a-button v-has="'taskHeader:quickReceipt'" @click="cantaleverStageingReceipt()" type="primary">悬臂库暂存区入库</a-button>
+      <a-button v-has="'taskHeader:quickReceipt'" @click="ironCoreReceipt()" type="primary">铁芯库入库</a-button>
       <a-button v-has="'taskHeader:callReceiptBox'" @click="callReceiptBox()" type="primary" >呼叫入库有货托盘</a-button>
       <a-button v-has="'taskHeader:callReceiptBox'" @click="callReceiptEmptyBox()" type="primary" >呼叫入库空托盘</a-button>
       <a-button v-has="'taskHeader:emptyOut'" @click="createEmptyOut()" type="primary">空托出库</a-button>
@@ -214,6 +215,7 @@
     <shipment-material-modal ref="shipmentMaterialModal" @ok="modalFormOk"></shipment-material-modal>
     <CantaleverShipmentModal ref="cantaleverShipmentModal" @ok="modalFormOk"></CantaleverShipmentModal>
     <CantaleverStageingReceiptModal ref="cantaleverStageingReceiptModal" @ok="modalFormOk"></CantaleverStageingReceiptModal>
+    <IronCoreReceiptModal ref="ironCoreReceiptModal" @ok="modalFormOk"></IronCoreReceiptModal>
 
   </a-card>
 </template>
@@ -226,7 +228,7 @@ import {getAction} from '@/api/manage'
 import TaskDetailList from './TaskDetailList'
 import {initDictOptions, filterMultiDictText} from '@/components/dict/JDictSelectUtil'
 import '@/assets/less/TableExpand.less'
-import {completeTaskByWMS, cancelTask, switchTask} from '@/api/api'
+import {completeTaskByWMS, cancelTask, switchTask, ironCoreReceipt} from '@/api/api'
 import {execute} from '@/api/api'
 import {getZoneList, handleEmptyOut, handlePickupError, handleDoubleIn} from '@/api/api'
 import EmptyInTaskModal from './modules/EmptyInTaskModal'
@@ -247,11 +249,13 @@ import ShipmentMaterialModal from "@views/system/task/modules/ShipmentMaterialMo
 import CantaleverTaskModal from "@views/system/task/modules/CantaleverTaskModal.vue";
 import CantaleverShipmentModal from "@views/system/task/modules/CantaleverShipmentModal.vue";
 import CantaleverStageingReceiptModal from "@views/system/task/modules/CantaleverStageingReceiptModal.vue";
+import IronCoreReceiptModal from "@views/system/task/modules/IronCoreReceiptModal.vue";
 
 export default {
   name: "AllTaskHeaderList",
   mixins: [JeecgListMixin],
   components: {
+    IronCoreReceiptModal,
     CantaleverStageingReceiptModal,
     CantaleverShipmentModal,
     CantaleverTaskModal,
@@ -604,6 +608,10 @@ export default {
       this.$refs.cantaleverStageingReceiptModal.edit();
       this.$refs.cantaleverStageingReceiptModal.title = "悬臂暂存区入库";
     },
+    ironCoreReceipt(){
+      this.$refs.ironCoreReceiptModal.edit();
+      this.$refs.ironCoreReceiptModal.title = "铁芯库入库";
+    },
     callReceiptBox() {
       this.$refs.modalForm5.edit();
       this.$refs.modalForm5.title = "呼叫入库有货托盘";
diff --git a/ant-design-vue-jeecg/src/views/system/task/modules/IronCoreReceiptModal.vue b/ant-design-vue-jeecg/src/views/system/task/modules/IronCoreReceiptModal.vue
new file mode 100644
index 0000000..e6ff8aa
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/system/task/modules/IronCoreReceiptModal.vue
@@ -0,0 +1,179 @@
+<template>
+  <a-modal
+    :title="title"
+    :width="800"
+    :visible="visible"
+    :maskClosable="false"
+    :confirmLoading="confirmLoading"
+    @ok="handleOk"
+    @cancel="handleCancel">
+
+    <a-spin :spinning="confirmLoading">
+      <a-form-model ref="form" :label-col="labelCol" :wrapper-col="wrapperCol" :model="model">
+        <!-- 主表单区域 -->
+        <a-row class="form-row" :gutter="24">
+          <a-col :lg="8">
+            <a-form-model-item label="托盘号"   :rules="[{ required: true, message: '请输入托盘号!' }]">
+              <a-input placeholder="请输入托盘号" v-model="quickMainModel.containerCode"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :lg="10">
+            <a-form-model-item label="入库口">
+<!--              <a-input placeholder="请输入入库口" v-model="quickMainModel.toPort"/>-->
+              <j-search-select-tag
+                placeholder="请选择入库口"
+                v-model="quickMainModel.toPort"
+                dict="port,name,code,type='3'"
+                :pageSize="5"
+                :async="true">
+              </j-search-select-tag>
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+      <!-- 子表单区域 -->
+      <a-tabs defaultActiveKey="1">
+        <a-tab-pane tab="物料信息" key="1">
+          <div>
+            <a-row type="flex" style="margin-bottom:10px" :gutter="24">
+              <a-col :span="12">物料编码</a-col>
+              <a-col :span="8">数量</a-col>
+              <a-col :span="4">操作</a-col>
+            </a-row>
+            <a-row type="flex" style="margin-bottom:-20px" :gutter="24" v-for="(item, index) in quickMainModel.receiptEntityList" :key="index">
+              <a-col style="display: none">
+                <a-form-model-item>
+                  <a-input placeholder="id" v-model="item.id"/>
+                </a-form-model-item>
+              </a-col>
+              <a-col :span="12">
+                <a-form-model-item>
+                  <j-search-select-tag
+                    placeholder="请选择"
+                    v-model="item.materialCode"
+                    :dict="'material,name,code'"
+                    :pageSize="8"
+                    :async="true">
+                  </j-search-select-tag>
+                </a-form-model-item>
+              </a-col>
+              <a-col :span="8">
+                <a-form-model-item>
+                  <a-input placeholder="数量" v-model="item.qty"/>
+                </a-form-model-item>
+              </a-col>
+              <a-col :span="4">
+                <a-form-model-item>
+                  <a-icon type="minus-circle" @click="delRowCustom(index)" style="fontSize :20px"/>
+                </a-form-model-item>
+              </a-col>
+            </a-row>
+            <a-button type="dashed" style="width: 100%;margin-top: 10px" @click="addRowCustom"><a-icon type="plus"/>添加物料信息</a-button>
+          </div>
+        </a-tab-pane>
+      </a-tabs>
+      </a-form-model>
+    </a-spin>
+  </a-modal>
+</template>
+
+<script>
+
+import JEditableTable from '@/components/jeecg/JEditableTable'
+import {execute, ironCoreReceipt, quickReceipt} from '@/api/api'
+import JDate from '@/components/jeecg/JDate'
+import JSelectMultiCanUseContainer from "../../../../components/jeecgbiz/JSelectMultiCanUseContainer";
+
+export default {
+  name: 'IronCoreReceiptModal',
+  components: {
+    JDate, JEditableTable,JSelectMultiCanUseContainer
+  },
+  data() {
+    return {
+      title: '铁芯库入库',
+      visible: false,
+      confirmLoading: false,
+      model: {},
+      labelCol: {
+        xs: {span: 24},
+        sm: {span: 4}
+      },
+      wrapperCol: {
+        xs: {span: 24},
+        sm: {span: 24}
+      },
+      activeKey: '1',
+      quickMainModel: {
+        receiptEntityList: [{}],
+      },
+      // 客户信息
+      url: {
+        add: '/test/jeecgOrderMain/add',
+        edit: '/test/jeecgOrderMain/edit',
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+    handleOk() {
+      this.validateFields()
+    },
+    handleCancel() {
+      this.visible = false
+    },
+
+    addRowCustom() {
+      this.quickMainModel.receiptEntityList.push({});
+      this.$forceUpdate();
+    },
+    delRowCustom(index) {
+      console.log(index)
+      this.quickMainModel.receiptEntityList.splice(index, 1);
+      this.$forceUpdate();
+    },
+    addRowTicket() {
+      this.quickMainModel.jeecgOrderTicketList.push({});
+      console.log(this.quickMainModel.jeecgOrderTicketList)
+      this.$forceUpdate();
+    },
+    delRowTicket(index) {
+      console.log(index)
+      this.quickMainModel.jeecgOrderTicketList.splice(index, 1);
+      this.$forceUpdate();
+    },
+
+    edit(record) {
+      this.visible = true
+      this.activeKey = '1'
+      this.quickMainModel = Object.assign({
+        receiptEntityList: [{}]
+      }, record);
+    },
+    /** 触发表单验证 */
+    validateFields() {
+      // 触发表单验证
+      this.$refs.form.validate(valid => {
+        //alert(JSON.stringify(this.quickMainModel));
+        this.receipt(this.quickMainModel);
+      })
+    },
+
+    receipt(record) {
+      this.confirmLoading = true
+      this.model = Object.assign({}, record);
+      ironCoreReceipt(this.model).then((res) => {
+        this.loading = false;
+        if (res.success) {
+          this.$message.success(res.message);
+          this.$emit('ok');
+          this.visible = false
+        } else {
+          this.$message.error(res.message);
+        }
+        this.confirmLoading = false
+      });
+    },
+  }
+}
+</script>
\ No newline at end of file
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/entity/WcsTask.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/entity/WcsTask.java
index a6ac212..e59c797 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/entity/WcsTask.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/entity/WcsTask.java
@@ -122,4 +122,13 @@ public class WcsTask {
     @ApiModelProperty(value = "顺序数量")
     private int sequenceNumber;
 
+    /**
+     * 位置
+     */
+    private int position;
+
+    /**
+     * 长度
+     */
+    private int length;
 }
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 0d754b0..d273aa8 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
@@ -128,6 +128,10 @@ public class ReceiptContainerDetail implements Serializable {
     @ApiModelProperty(value = "更新日期")
     private Date updateTime;
 
+    /** 位置 */
+    @ApiModelProperty(value = "位置")
+    private Integer position;
+
     public void setQty(BigDecimal qty) {
         if (qty.compareTo(BigDecimal.ZERO) <= 0) {
             throw new JeecgBootException("入库组盘数量必须大于0");
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 3729c4d..8bfb22a 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
@@ -240,6 +240,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
             taskDetail.setLot(receiptContainerDetail.getLot());
             taskDetail.setProject(receiptContainerDetail.getProject());
             taskDetail.setSn(receiptContainerDetail.getSn());
+            taskDetail.setPosition(receiptContainerDetail.getPosition());
             taskDetail.setReceiveTime(receiptContainerDetail.getReceiveTime());
             taskDetailList.add(taskDetail);
             ReceiptDetail receiptDetail = receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId());
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/IReceiveService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/IReceiveService.java
index 7043373..b00a4b6 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/IReceiveService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/IReceiveService.java
@@ -25,6 +25,11 @@ public interface IReceiveService extends IService<Receive> {
     Result<ReceiptContainerHeader> receivingB(List<Receive> receiveList, String warehouseCode);
 
     /**
+     * 铁芯堆垛组盘
+     */
+    Result<ReceiptContainerHeader> receivingIronCore(List<Receive> receiveList, String warehouseCode);
+
+    /**
      * 立库组盘和生成任务
      */
     Result<TaskHeader> receivingAndCreateTask(List<Receive> receiveList, String warehouseCode);
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 a6d8324..001f984 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
@@ -369,6 +369,217 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl
 
     @Override
     @Transactional(rollbackFor = Exception.class)
+    public Result<ReceiptContainerHeader> receivingIronCore(List<Receive> receiveList, String warehouseCode) {
+        log.info("开始入库组盘");
+        boolean success = false;
+        if (receiveList == null || receiveList.size() == 0) {
+            return Result.error("入库组盘,收货信息为空");
+        }
+        if (StringUtils.isEmpty(warehouseCode)) {
+            return Result.error("入库组盘,仓库编码为空");
+        }
+        String containerCode = receiveList.get(0).getContainerCode();
+        if (StringUtils.isEmpty(containerCode)) {
+            return Result.error("入库组盘,容器编码为空");
+        }
+        Container container = containerService.getContainerByCode(containerCode, warehouseCode);
+        if (container == null) {
+            return Result.error("入库组盘,根据容器编码 " + containerCode + ", 没有找到容器");
+        }
+        String fromLocationCode = container.getLocationCode();
+        if (StringUtils.isNotEmpty(fromLocationCode)) {
+            Location location = locationService.getLocationByCode(fromLocationCode, warehouseCode);
+            if (location == null) {
+                return Result.error("入库组盘,根据库位编码 " + fromLocationCode + ", 没有找到库位");
+            }
+            String value = parameterConfigurationService.getValueByZoneCode(QuantityConstant.RULE_RECEIPT_TASK, container.getZoneCode());
+            if (StringUtils.isNotEmpty(value)) {
+                int shipmentTaskRule = Integer.parseInt(value);
+                if (shipmentTaskRule == QuantityConstant.RULE_TASK_WHOLE) {
+                    return Result.error("入库组盘," + containerCode + "不允许有补充入库");
+                }
+            }
+        }
+        int callBox = QuantityConstant.NOT_CALL_BOX;
+        TaskHeader callBoxTask = taskHeaderService.getUnCompleteTaskByContainerCode(containerCode, warehouseCode);
+        if (callBoxTask != null) {
+            callBox = callBoxTask.getCallBox();
+        }
+        // 如果不是呼叫料盒,那么要判断容器状态
+        if (callBox == QuantityConstant.NOT_CALL_BOX) {
+            String containerStatus = container.getStatus();
+            if (containerStatus.equals(QuantityConstant.STATUS_CONTAINER_LOCK)) {
+                return Result.error("入库组盘,容器被锁定不能用于收货" + containerCode);
+            }
+            String containerFillStatus = container.getFillStatus();
+            if (!StringUtils.isEmpty(containerFillStatus) && containerFillStatus.equals(QuantityConstant.STATUS_CONTAINER_FILL_FULL)) {
+                return Result.error("入库组盘,容器已经是满盘不能用于收货" + containerCode);
+            }
+        }
+        String containerTypeCode = container.getContainerTypeCode();
+        if (StringUtils.isEmpty(containerTypeCode)) {
+            return Result.error("入库组盘,容器类型编码为空" + containerCode);
+        }
+        ContainerType containerType = containerTypeService.getContainerTypeByCode(containerTypeCode, warehouseCode);
+        if (containerType == null) {
+            return Result.error("入库组盘,容器类型为空" + containerCode);
+        }
+        ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.getUnCompleteShipmentContainerByCode(containerCode, warehouseCode);
+        if (shipmentContainerHeader != null) {
+            return Result.error("入库组盘,容器" + containerCode + "不能有出库配盘");
+        }
+        int taskType = QuantityConstant.TASK_TYPE_WHOLERECEIPT;
+        if (StringUtils.isNotEmpty(fromLocationCode)) {
+            taskType = QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT;
+            throw new JeecgBootException("铁芯库组盘,不能做补充入库");
+        }
+        ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getUnCompleteReceiptContainerByCode(containerCode, warehouseCode);
+        if (receiptContainerHeader != null) {
+            if (receiptContainerHeader.getStatus() >= QuantityConstant.RECEIPT_CONTAINER_TASK) {
+                throw new JeecgBootException("入库组盘,容器已经生成任务,不能放物料了!");
+            }
+        } else {
+            receiptContainerHeader = new ReceiptContainerHeader();
+            receiptContainerHeader.setWarehouseCode(warehouseCode);
+            receiptContainerHeader.setContainerCode(containerCode);
+            receiptContainerHeader.setContainerTypeCode(containerTypeCode);
+            receiptContainerHeader.setStatus(QuantityConstant.RECEIPT_CONTAINER_BUILD);
+            receiptContainerHeader.setTaskType(taskType);
+            receiptContainerHeader.setFromLocationCode(fromLocationCode);
+            if (taskType == QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT) {
+                String value = parameterConfigurationService.getValueByZoneCode(QuantityConstant.RULE_TASK_LOCATION, container.getZoneCode());
+                int taskLocationRule = Integer.parseInt(value);
+                if (taskLocationRule == QuantityConstant.RULE_TASK_SET_LOCATION) {
+                    receiptContainerHeader.setToLocationCode(fromLocationCode);
+                }
+            }
+            success = receiptContainerHeaderService.save(receiptContainerHeader);
+            if (!success) {
+                throw new JeecgBootException("入库组盘,保存入库组盘头失败");
+            }
+        }
+        List<ReceiptDetail> receiptDetailList = new ArrayList<>();
+        List<ReceiptContainerDetail> receiptContainerDetailList = new ArrayList<>();
+        int position = 0;
+        for (Receive receive : receiveList) {
+            position++;
+            ReceiptDetail receiptDetail = receiptDetailService.getById(receive.getId());
+            if (receiptDetail == null) {
+                throw new JeecgBootException("入库组盘,没有找到入库单详情ID:" + receive.getId());
+            }
+            // 可收数量
+            BigDecimal qty = receiptDetail.getQty().subtract(receiptDetail.getTaskQty());
+            // 收货数量
+            BigDecimal taskQty = receive.getTaskQty();
+            if (qty == null || taskQty == null) {
+                throw new JeecgBootException("入库组盘,物料编码:" + receive.getMaterialCode() + " 收货数量或可收数量为空");
+            }
+            if (taskQty.compareTo(BigDecimal.ZERO) < 0) {
+                throw new JeecgBootException("入库组盘,物料编码:" + receive.getMaterialCode() + " 收货数量不能小于0,收货数量:" + taskQty + "可收数量:" + qty);
+            }
+            if (taskQty.compareTo(qty) > 0) {
+                throw new JeecgBootException("入库组盘,物料编码:" + receive.getMaterialCode() + " 收货数量不能大于可收数量,收货数量:" + taskQty + "可收数量:" + qty);
+            }
+            // 入库单明细为0 跳过组盘
+            if (taskQty.compareTo(BigDecimal.ZERO) <= 0) {
+                continue;
+            }
+            ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId());
+            if (receiptHeader == null) {
+                throw new JeecgBootException("入库组盘,没有找到入库单ID:" + receiptDetail.getReceiptId());
+            }
+            if (!receiptHeader.getWarehouseCode().equals(warehouseCode)) {
+                throw new JeecgBootException("入库组盘,入库单操作仓库错误,请选择 " + receiptHeader.getWarehouseCode() + " 操作");
+            }
+            String materialCode = receiptDetail.getMaterialCode();
+            if (StringUtils.isEmpty(materialCode)) {
+                throw new JeecgBootException("入库组盘,物料编码为空");
+            }
+            Material material = materialService.getMaterialByCode(materialCode);
+            if (material == null) {
+                throw new JeecgBootException("入库组盘," + materialCode + "物料不存在");
+            }
+            BigDecimal receiptQty = receiptDetail.getQty();
+            BigDecimal receiptTaskQty = receiptDetail.getTaskQty();
+            receiptTaskQty = receiptTaskQty.add(taskQty);
+            if (receiptTaskQty.compareTo(receiptQty) > 0) {
+                throw new JeecgBootException("入库组盘,收货数量不能大于单据数量");
+            }
+
+            receiptDetail.setTaskQty(receiptTaskQty);
+            ReceiptDetail receiptDetail1 = new ReceiptDetail();
+            receiptDetail1.setReceiptId(receiptDetail.getReceiptId());
+            receiptDetail1.setId(receiptDetail.getId());
+            receiptDetail1.setTaskQty(receiptTaskQty);
+            receiptDetail1.setStatus(QuantityConstant.RECEIPT_HEADER_RECEIVING);
+            if (receiptTaskQty.equals(receiptQty)) {
+                receiptDetail1.setStatus(QuantityConstant.RECEIPT_HEADER_WAIT_SHELF);
+            }
+            receiptDetailList.add(receiptDetail1);
+
+//            LambdaQueryWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
+//            receiptContainerDetailLambdaQueryWrapper.eq(ReceiptContainerDetail::getReceiptId, receiptDetail.getReceiptId())
+//                    .eq(ReceiptContainerDetail::getReceiptDetailId, receiptDetail.getId())
+//                    .eq(StringUtils.isNotEmpty(receive.getSn()), ReceiptContainerDetail::getSn, receive.getSn())
+//                    .eq(ReceiptContainerDetail::getReceiptContainerId, receiptContainerHeader.getId());
+//            ReceiptContainerDetail receiptContainerDetail = receiptContainerDetailService.getOne(receiptContainerDetailLambdaQueryWrapper);
+//            if (receiptContainerDetail != null) {
+//                // 如果是已经组过的详情,那么直接相加收货数量
+//                ReceiptContainerDetail receiptContainerDetail1 = new ReceiptContainerDetail();
+//                receiptContainerDetail1.setId(receiptContainerDetail.getId());
+//                receiptContainerDetail1.setQty(receiptContainerDetail.getQty().add(taskQty));
+//                if (!receiptContainerDetailService.updateById(receiptContainerDetail1)) {
+//                    throw new JeecgBootException("入库组盘, 更新入库组盘明细失败");
+//                }
+//            } else {
+            ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
+            receiptContainerDetail.setCompanyCode(receiptDetail.getCompanyCode());
+            receiptContainerDetail.setReferCode(receiptDetail.getReferCode());
+            receiptContainerDetail.setSn(receive.getSn());
+            receiptContainerDetail.setContainerCode(receive.getContainerCode());
+            receiptContainerDetail.setReceiptDetailId(receiptDetail.getId());
+            receiptContainerDetail.setReceiptId(receiptDetail.getReceiptId());
+            receiptContainerDetail.setReceiptCode(receiptDetail.getReceiptCode());
+            receiptContainerDetail.setReceiptContainerId(receiptContainerHeader.getId());
+            receiptContainerDetail.setWarehouseCode(receiptDetail.getWarehouseCode());
+            receiptContainerDetail.setMaterialCode(receiptDetail.getMaterialCode());
+            receiptContainerDetail.setMaterialName(receiptDetail.getMaterialName());
+            receiptContainerDetail.setMaterialSpec(receiptDetail.getMaterialSpec());
+            receiptContainerDetail.setMaterialUnit(receiptDetail.getMaterialUnit());
+            receiptContainerDetail.setQty(taskQty);
+            receiptContainerDetail.setBatch(receiptDetail.getBatch());
+            receiptContainerDetail.setLot(receiptDetail.getLot());
+            receiptContainerDetail.setPosition(position);
+            receiptContainerDetail.setProject(receiptDetail.getProject());
+            receiptContainerDetail.setInventoryStatus(receiptDetail.getInventoryStatus());
+            receiptContainerDetailList.add(receiptContainerDetail);
+        }
+        if (CollectionUtils.isEmpty(receiptDetailList)) {
+            throw new JeecgBootException("入库组盘,请填入收货数量");
+        }
+        success = receiptDetailService.updateBatchById(receiptDetailList);
+        if (!success) {
+            throw new JeecgBootException("入库组盘,批量更新入库单详情失败");
+        }
+        List<Integer> receiptIdList = receiptDetailList.stream().map(ReceiptDetail::getReceiptId).distinct().collect(Collectors.toList());
+        for (Integer receiptId : receiptIdList) {
+            if (!receiptHeaderService.updateReceiptHeaderStatus(receiptId)) {
+                throw new JeecgBootException("入库组盘, 更新入库单明细失败");
+            }
+        }
+        if (receiptContainerDetailList.size() > 0) {
+            success = receiptContainerDetailService.saveBatch(receiptContainerDetailList);
+            if (!success) {
+                throw new JeecgBootException("入库组盘,保存入库组盘详情失败");
+            }
+        }
+        LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));
+        log.info("完成入库组盘");
+        return Result.OK("入库组盘成功", receiptContainerHeader);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result flatReceive(List<Receive> receiveList, String containerCode, String warehouseCode) {
         log.info("开始平库入库组盘");
         boolean success = false;
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java
index 5041eb4..54e065e 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java
@@ -1009,6 +1009,26 @@ public class TaskHeaderController extends HuahengBaseController {
     }
 
     /**
+     * 铁芯库入库
+     * @return
+     */
+    @AutoLog(value = "铁芯库入库", operateType = 2)
+    @PostMapping("ironCoreReceipt")
+    @ApiOperation("铁芯库入库")
+    public Result ironCoreReceipt(@RequestBody QucikReceiptEntity qucikReceiptEntity, HttpServletRequest req) {
+        String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req);
+        qucikReceiptEntity.setWarehouseCode(warehouseCode);
+        Result result = handleMultiProcess("ironCoreReceipt", new MultiProcessListener() {
+            @Override
+            public Result<?> doProcess() {
+                Result result = taskHeaderService.ironCoreReceipt(qucikReceiptEntity);
+                return result;
+            }
+        });
+        return result;
+    }
+
+    /**
      * 质检登记
      * @return
      */
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java
index 9a358ca..fcd8084 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java
@@ -303,6 +303,14 @@ public interface ITaskHeaderService extends IService<TaskHeader> {
      */
     Result completeCantaleverReceiptTask(TaskHeader taskHeader);
 
+
+    /**
+     * 完成入库
+     * @param  taskHeader
+     * @return
+     */
+    Result completeIconCoreReceiptTask(TaskHeader taskHeader);
+
     /**
      * 完成出库
      * @param  taskHeader
@@ -511,6 +519,12 @@ public interface ITaskHeaderService extends IService<TaskHeader> {
      * add
      * @return
      */
+    Result ironCoreReceipt(QucikReceiptEntity qucikReceiptEntity);
+
+    /**
+     * add
+     * @return
+     */
     Result receiptStageingReceipt(QucikReceiptEntity qucikReceiptEntity);
 
 
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 55907e5..865e166 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
@@ -277,6 +277,9 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         if (fromLocation.getZoneCode().equals(QuantityConstant.ZONE_B)) {
             return Result.error("创建移库任务时,悬架式立库不支持这种移库方式");
         }
+        if (fromLocation.getZoneCode().equals(QuantityConstant.ZONE_C)) {
+            return Result.error("创建移库任务时,铁芯库不支持移库");
+        }
         Location toLocation = locationService.getLocationByCode(toLocationCode, warehouseCode);
         if (toLocation == null) {
             return Result.error("创建移库任务时,目标库位:" + toLocationCode + "未找到");
@@ -1109,6 +1112,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             case QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT:
                 if (zoneCode.equals(QuantityConstant.ZONE_B)) {
                     result = taskHeaderService.completeCantaleverReceiptTask(taskHeader);
+                } else  if (zoneCode.equals(QuantityConstant.ZONE_C)) {
+                    result = taskHeaderService.completeIconCoreReceiptTask(taskHeader);
                 } else {
                     result = taskHeaderService.completeReceiptTask(taskHeader);
                 }
@@ -2128,6 +2133,182 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         return Result.ok("完成入库任务");
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result completeIconCoreReceiptTask(TaskHeader taskHeader) {
+        if (taskHeader == null) {
+            return Result.error("入库任务未找到,执行中止");
+        }
+        log.info("开始完成入库任务, 任务号" + taskHeader.getId());
+        String warehouseCode = taskHeader.getWarehouseCode();
+        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;
+        if (taskHeader.getStatus().equals(QuantityConstant.TASK_STATUS_COMPLETED)) {
+            return Result.ok("入库任务(" + taskHeader.getId() + ")已经是完成的!");
+        }
+        if (taskDetailList.isEmpty()) {
+            throw new JeecgBootException("完成入库任务时, 入库任务明细为空");
+        }
+        Location toLocation = locationService.getLocationByCode(toLocationCode, warehouseCode);
+        if (toLocation == null) {
+            return Result.error("完成入库任务时,没有找到目的库位");
+        }
+        if (StringUtils.isEmpty(zoneCode)) {
+            return Result.error("完成入库任务时,没有找到目的库区编码");
+        }
+        Zone zone = zoneService.getZoneByCode(zoneCode, warehouseCode);
+        if (zone == null) {
+            return Result.error("完成入库任务时,没有找到库区");
+        }
+        String zoneType = zone.getType();
+        InventoryHeader inventoryHeader = inventoryHeaderService.getInventoryHeaderByContainerCode(containerCode, warehouseCode);
+        if (inventoryHeader == null) {
+            inventoryHeader = new InventoryHeader();
+            inventoryHeader.setWarehouseCode(warehouseCode);
+            inventoryHeader.setCompanyCode(taskHeader.getCompanyCode());
+            inventoryHeader.setZoneCode(zoneCode);
+            inventoryHeader.setContainerCode(containerCode);
+            inventoryHeader.setLocationCode(toLocationCode);
+            inventoryHeader.setTotalWeight(taskHeader.getWeight());
+            inventoryHeader.setCreateBy(taskHeader.getCreateBy());
+            inventoryHeader.setContainerStatus(QuantityConstant.STATUS_CONTAINER_EMPTY);
+            inventoryHeader.setEnable(QuantityConstant.STATUS_ENABLE);
+            if (!inventoryHeaderService.save(inventoryHeader)) {
+                throw new JeecgBootException("完成入库任务时, 添加库存头失败");
+            }
+        }
+
+        List<InventoryDetail> inventoryDetailList = new ArrayList<>();
+        List<InventoryTransaction> inventoryTransactionList = new ArrayList<>();
+        List<ReceiptDetail> receiptDetaiList = new ArrayList<>();
+        for (TaskDetail taskDetail : taskDetailList) {
+            ReceiptDetail receiptDetail = receiptDetailService.getById(taskDetail.getReceiptDetailId());
+            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 qty = receiptDetail.getQty();
+            BigDecimal receiptDetailReceiptQty = receiptDetail.getReceiptQty();
+            receiptDetailReceiptQty = receiptDetailReceiptQty.add(taskDetail.getQty());
+            int receiptId = receiptDetail.getReceiptId();
+            ReceiptDetail updateReceiptDetail = new ReceiptDetail();
+            updateReceiptDetail.setId(receiptDetail.getId());
+            updateReceiptDetail.setReceiptId(receiptId);
+            updateReceiptDetail.setReceiptQty(receiptDetailReceiptQty);
+            if (receiptDetailReceiptQty.compareTo(qty) >= 0) {
+                updateReceiptDetail.setStatus(QuantityConstant.RECEIPT_HEADER_COMPLETED);
+            } else {
+                updateReceiptDetail.setStatus(QuantityConstant.RECEIPT_HEADER_SHELF);
+            }
+            receiptDetaiList.add(updateReceiptDetail);
+            if (!receiptDetailService.updateById(updateReceiptDetail)) {
+                throw new JeecgBootException("完成入库任务时,更新入库单详情失败");
+            }
+            // 计算换算单位数量
+            materialMultipleService.materialMultiple(taskDetail);
+            InventoryDetail inventoryDetail = new InventoryDetail();
+            inventoryDetail.setInventoryHeaderId(inventoryHeader.getId());
+            inventoryDetail.setWarehouseCode(warehouseCode);
+            inventoryDetail.setCompanyCode(taskDetail.getCompanyCode());
+            inventoryDetail.setZoneCode(zoneCode);
+            inventoryDetail.setZoneType(zoneType);
+            inventoryDetail.setContainerCode(taskHeader.getContainerCode());
+            inventoryDetail.setLocationCode(toLocationCode);
+            inventoryDetail.setMaterialCode(taskDetail.getMaterialCode());
+            inventoryDetail.setMaterialName(taskDetail.getMaterialName());
+            inventoryDetail.setMaterialSpec(taskDetail.getMaterialSpec());
+            inventoryDetail.setMaterialUnit(taskDetail.getMaterialUnit());
+            inventoryDetail.setQty(taskDetail.getQty());
+            inventoryDetail.setInventoryStatus(taskDetail.getInventoryStatus());
+            inventoryDetail.setBatch(taskDetail.getBatch());
+            inventoryDetail.setLot(taskDetail.getLot());
+            inventoryDetail.setProject(taskDetail.getProject());
+            inventoryDetail.setSn(taskDetail.getSn());
+            inventoryDetail.setPosition(taskDetail.getPosition());
+            inventoryDetail.setReceiveTime(taskDetail.getReceiveTime());
+            inventoryDetail.setReceiptDate(new Date());
+            inventoryDetailList.add(inventoryDetail);
+
+            InventoryTransaction inventoryTransaction = new InventoryTransaction();
+            inventoryTransaction.setType(QuantityConstant.INVENTORY_TRANSACTION_RECEIPT);
+            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());
+            inventoryTransaction.setLot(taskDetail.getLot());
+            inventoryTransaction.setProject(taskDetail.getProject());
+            inventoryTransaction.setSn(taskDetail.getSn());
+            inventoryTransaction.setInventoryStatus(taskDetail.getInventoryStatus());
+            inventoryTransaction.setReceiptQty(taskDetail.getQty());
+            inventoryTransaction.setQty(taskDetail.getQty());
+            // 获得库存总数
+            BigDecimal inventoryQty = inventoryDetailService.getInventorySumQty(inventoryDetail);
+            // 获得物料在这个托盘上的库存数
+            BigDecimal containerInventoryQty = inventoryDetailService.getContainerInventorySumQty(inventoryDetail);
+            inventoryQty = inventoryQty.add(taskDetail.getQty());
+            containerInventoryQty = containerInventoryQty.add(taskDetail.getQty());
+            inventoryTransaction.setInventoryQty(inventoryQty);
+            inventoryTransaction.setContainerInventoryQty(containerInventoryQty);
+            inventoryTransactionList.add(inventoryTransaction);
+        }
+
+        success = receiptContainerHeaderService.updateStatusById(QuantityConstant.RECEIPT_CONTAINER_FINISHED, taskHeader.getReceiptContainerHeaderId());
+        if (!success) {
+            throw new JeecgBootException("完成入库任务时,更新入库组盘头表状态失败");
+        }
+        success = inventoryDetailService.saveBatch(inventoryDetailList);
+        if (!success) {
+            throw new JeecgBootException("完成入库任务时,保存库存详情失败");
+        }
+        success = inventoryTransactionService.saveBatch(inventoryTransactionList);
+        if (!success) {
+            throw new JeecgBootException("完成入库任务时,保存库存交易失败");
+        }
+//        if (!taskHeaderService.combineInventoryDetail(containerCode, warehouseCode)) {
+//            throw new JeecgBootException("完成入库任务时, 合并入库库存失败");
+//        }
+        List<Integer> receiptIdList = receiptDetaiList.stream().map(ReceiptDetail::getReceiptId).distinct().collect(Collectors.toList());
+        for (Integer receiptId : receiptIdList) {
+            success = receiptHeaderService.updateReceiptHeaderStatus(receiptId);
+            if (!success) {
+                throw new JeecgBootException("完成入库任务时,更新入库单头失败");
+            }
+        }
+        Result result = taskHeaderService.completeTaskUnLockContainerAndLocation(taskHeader.getContainerFillStatus(), taskType, containerCode, fromLocationCode,
+                toLocationCode, warehouseCode);
+        if (!result.isSuccess()) {
+            throw new JeecgBootException(result.getMessage());
+        }
+        success = taskHeaderService.updateStatusById(QuantityConstant.TASK_STATUS_COMPLETED, taskHeader.getId());
+        if (!success) {
+            throw new JeecgBootException("完成入库任务时,保存任务头失败");
+        }
+        receiptDetaiList = receiptDetaiList.stream().filter(t -> t.getStatus().equals(QuantityConstant.RECEIPT_HEADER_COMPLETED)).collect(Collectors.toList());
+        log.info("完成入库任务, 任务号:" + taskHeader.getId());
+        return Result.ok("完成入库任务");
+    }
+
     /**
      * 完成出库任务
      * @param  taskHeader 任务
@@ -3309,6 +3490,124 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
 
     @Override
     @Transactional(rollbackFor = Exception.class)
+    public Result ironCoreReceipt(QucikReceiptEntity qucikReceiptEntity) {
+        boolean success = false;
+        String containerCode = qucikReceiptEntity.getContainerCode();
+        List<ReceiptEntity> receiptEntityList = qucikReceiptEntity.getReceiptEntityList();
+        String toPort = qucikReceiptEntity.getToPort();
+        String warehouseCode = qucikReceiptEntity.getWarehouseCode();
+        List<Receive> receiveList = new ArrayList<>();
+        if (StringUtils.isEmpty(containerCode)) {
+            return Result.error("快速入库,容器编码为空");
+        }
+        if (StringUtils.isEmpty(warehouseCode)) {
+            return Result.error("快速入库,仓库编码为空");
+        }
+        if (StringUtils.isEmpty(receiptEntityList)) {
+            return Result.error("快速入库,入库信息为空");
+        }
+        Container container = containerService.getContainerByCode(containerCode, warehouseCode);
+        if (container == null) {
+            return Result.error("快速入库,没有找到容器" + containerCode);
+        }
+        Port port = portService.getPortByCode(toPort, warehouseCode);
+        if (port != null) {
+            int portType = Integer.parseInt(port.getType());
+            if (portType == QuantityConstant.PORT_TYPE_OUT) {
+                return Result.error("快速入库,不能选择出库口" + toPort);
+            }
+        }
+        String receiptType = QuantityConstant.RECEIPT_BILL_TYPE_QTR;
+        String remark = "快速入库";
+        ReceiptHeader receiptHeader = new ReceiptHeader();
+        receiptHeader.setWarehouseCode(warehouseCode);
+        receiptHeader.setCompanyCode(QuantityConstant.DEFAULT_COMPANY);
+        receiptHeader.setType(receiptType);
+        receiptHeader.setRemark(remark);
+        Result result = receiptHeaderService.saveReceiptHeader(receiptHeader);
+        if (!result.isSuccess()) {
+            throw new JeecgBootException("快速入库, 创建入库单头失败" + result.getMessage());
+        }
+        for (ReceiptEntity receiptEntity : receiptEntityList) {
+            BigDecimal qty = receiptEntity.getQty();
+            String materialCode = receiptEntity.getMaterialCode();
+            if (StringUtils.isEmpty(materialCode)) {
+                throw new JeecgBootException("快速入库, 物料编码为空");
+            }
+            if (qty == null) {
+                throw new JeecgBootException("快速入库, 数量必须填写");
+            }
+            if (qty.compareTo(BigDecimal.ZERO) <= 0) {
+                throw new JeecgBootException("快速入库, 数量必须大于0");
+            }
+            ReceiptDetail receiptDetail = new ReceiptDetail();
+            receiptDetail.setWarehouseCode(warehouseCode);
+            receiptDetail.setCompanyCode(QuantityConstant.DEFAULT_COMPANY);
+            receiptDetail.setReceiptCode(receiptHeader.getCode());
+            receiptDetail.setReceiptId(receiptHeader.getId());
+            receiptDetail.setStatus(QuantityConstant.RECEIPT_HEADER_BUILD);
+            receiptDetail.setQty(qty);
+            Material material = materialService.getMaterialByCode(materialCode);
+            if (material == null) {
+                throw new JeecgBootException("快速入库, 获取物料:" + materialCode + " 信息失败");
+            }
+            receiptDetail.setInventoryStatus(QuantityConstant.QUALITY_GOOD);
+            receiptDetail.setMaterialCode(materialCode);
+            receiptDetail.setMaterialName(material.getName());
+            receiptDetail.setMaterialSpec(material.getSpec());
+            receiptDetail.setMaterialUnit(material.getUnit());
+            success = receiptDetailService.save(receiptDetail);
+            if (!success) {
+                throw new JeecgBootException("快速入库, 保存入库单详情失败");
+            }
+
+            Receive receive = new Receive();
+            receive.setId(receiptDetail.getId());
+            receive.setContainerCode(containerCode);
+            receive.setMaterialCode(materialCode);
+            receive.setMaterialName(receiptDetail.getMaterialName());
+            receive.setMaterialSpec(receiptDetail.getMaterialSpec());
+            receive.setMaterialUnit(receiptDetail.getMaterialUnit());
+            receive.setInventoryStatus(receiptDetail.getInventoryStatus());
+            receive.setQty(receiptDetail.getQty());
+            receive.setTaskQty(receiptDetail.getQty());
+            receiveList.add(receive);
+        }
+        Result<ReceiptContainerHeader> taskResult = receiveService.receivingIronCore(receiveList, warehouseCode);
+        if (!taskResult.isSuccess()) {
+            throw new JeecgBootException(result.getMessage());
+        }
+//        result = receiptContainerHeaderService.createReceiptTask(taskResult.getResult(), warehouseCode);
+//        if (!success) {
+//            throw new JeecgBootException(result.getMessage());
+//        }
+        ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getUnCompleteReceiptContainerByCode(containerCode, warehouseCode);
+        if (receiptContainerHeader == null) {
+            throw new JeecgBootException(result.getMessage());
+        }
+        receiptContainerHeader.setToPort(toPort);
+        success = receiptContainerHeaderService.updateById(receiptContainerHeader);
+        if (!success) {
+            throw new JeecgBootException("快速入库,更新入库组盘头失败");
+        }
+        result = receiptContainerHeaderService.createReceiptTask(receiptContainerHeader, warehouseCode);
+        if (!result.isSuccess()) {
+            throw new JeecgBootException(result.getMessage());
+        }
+        TaskHeader taskHeader = (TaskHeader)result.getResult();
+        if (taskHeader.getTaskType() == QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT) {
+            if (port == null) {
+                throw new JeecgBootException("快速入库, 生成补充任务时必须有入库口");
+            }
+        }
+        if (!receiptHeaderService.updateReceiptHeader(receiptHeader.getId())) {
+            throw new JeecgBootException("快速入库, 更新入库表单头失败");
+        }
+        return Result.OK("快速入库成功");
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result receiptStageingReceipt(QucikReceiptEntity qucikReceiptEntity) {
         boolean success = false;
         String containerCode = qucikReceiptEntity.getContainerCode();