diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java
index 4e033aa..bb4655a 100644
--- a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java
@@ -175,8 +175,9 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
     @Override
     @Transactional
     public AjaxResult createCycleCoutTaskByDetailId(Integer cycleCoutdetailId) {
-        /*任务主表中存在库位,在盘点明细中生成任务时,不同的库位生成不同的主任务*/
-
+        /*任务主表中存在库位,在盘点明细中生成任务时,不同的容器生成不同的主任务*/
+        //在盘点单生成任务并执行后,同一容器的物料仍然可以生成任务,否则任务已完成则无法添加任务100
+        //检查状态不为100的任务,在有和下发的盘点单容器相同的任务时,把该条明细的任务写入到当前相同容器的任务里
 
         CycleCountDetail cycleCountDetail = this.getById(cycleCoutdetailId);
         if(cycleCountDetail == null ){
@@ -193,29 +194,67 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
         if(StringUtils.isEmpty(loc.getContainerCode())){
             return AjaxResult.error(cycleCountDetail.getLocationCode()+"没有托盘,操作失败");
         }
+
+        //查询任务头和明细有相同容器,没有就新增任务头和明细
+
+        LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery();
+        taskHeaderLambdaQueryWrapper
+                .lt(TaskHeader::getStatus,100)
+                .eq(TaskHeader::getWarehouseCode,ShiroUtils.getWarehouseCode())
+                .eq(TaskHeader::getCompanyCode,cycleCountDetail.getCompanyCode())
+                .eq(TaskHeader::getInternalTaskType,700)
+                .eq(TaskHeader::getTaskType,700)
+                .eq(TaskHeader::getContainerCode,cycleCountDetail.getContainerCode());//容器
+        List<TaskHeader> taskHeaderList = taskHeaderService.list(taskHeaderLambdaQueryWrapper);
+
+        TaskHeader taskHeader = new TaskHeader();
         TaskHeader task = new TaskHeader();
-        task.setWarehouseCode(ShiroUtils.getWarehouseCode());
-        task.setCompanyCode(cycleCountDetail.getCompanyCode());
-        task.setInternalTaskType(700);
-        task.setTaskType(700);
-        task.setContainerCode(cycleCountDetail.getContainerCode());
-        task.setStatus(0);
-        task.setFromLocation(cycleCountDetail.getLocationCode());
-        task.setToLocation(cycleCountDetail.getLocationCode());
-        task.setCreated(new Date());
-        task.setCreatedBy(ShiroUtils.getLoginName());
-        task.setLastUpdatedBy(ShiroUtils.getLoginName());
-        task.setLastUpdated(new Date());
-        if(taskHeaderService.save(task)){
-            //锁定库位状态
-            locationService.updateStatus(loc.getContainerCode(),"lock");
+        TaskDetail taskDetail = new TaskDetail();
+
+        if(taskHeaderList == null){
+
+            //存在相同容器的主任务直接加入该条主任务的明细
+            task.setWarehouseCode(ShiroUtils.getWarehouseCode());
+            task.setCompanyCode(cycleCountDetail.getCompanyCode());
+            task.setInternalTaskType(700);
+            task.setTaskType(700);
+            task.setContainerCode(cycleCountDetail.getContainerCode());
+            task.setStatus(0);
+            task.setFromLocation(cycleCountDetail.getLocationCode());
+            task.setToLocation(cycleCountDetail.getLocationCode());
+            task.setCreated(new Date());
+            task.setCreatedBy(ShiroUtils.getLoginName());
+            task.setLastUpdatedBy(ShiroUtils.getLoginName());
+            task.setLastUpdated(new Date());
+            if(taskHeaderService.save(task)){
+                //锁定库位状态
+                locationService.updateStatus(loc.getContainerCode(),"lock");
+            }else{
+                throw new ServiceException("盘点任务主表生成失败!");
+            }
+            //写入任务细表
+            taskDetail.setTaskId(task.getId());//主单ID
+            taskDetail.setTaskType(task.getTaskType());
+            taskDetail.setFromLocation(task.getFromLocation());
+            taskDetail.setToLocation(task.getToLocation());
+            taskDetail.setContainerCode(task.getContainerCode());
+            taskDetail.setInternalTaskType(task.getTaskType());
+            taskDetail.setWarehouseCode(task.getWarehouseCode());
+            cycleCountDetail.setTaskHeaderId(task.getId()); //盘点明细修改状态task数据源
         }else{
-            throw new ServiceException("盘点任务主表生成失败!");
+
+            //取其中一条主单即可
+            taskHeader = taskHeaderList.get(0);
+            taskDetail.setTaskId(taskHeader.getId());//主单ID
+            taskDetail.setTaskType(taskHeader.getTaskType());
+            taskDetail.setFromLocation(taskHeader.getFromLocation());
+            taskDetail.setToLocation(taskHeader.getToLocation());
+            taskDetail.setContainerCode(taskHeader.getContainerCode());
+            taskDetail.setInternalTaskType(taskHeader.getTaskType());
+            taskDetail.setWarehouseCode(taskHeader.getWarehouseCode());
+            cycleCountDetail.setTaskHeaderId(taskHeader.getId());//盘点明细修改状态taskHeader数据源
         }
-        //写入任务细表
-        TaskDetail taskDetail = new TaskDetail();
-        taskDetail.setTaskId(task.getId());//主单ID
-        taskDetail.setTaskType(task.getTaskType());
+
         taskDetail.setBillCode(cycleCountDetail.getCycleCountHeadCode());
         taskDetail.setBillDetailId(cycleCountDetail.getId());
         taskDetail.setMaterialCode(cycleCountDetail.getMaterialCode());
@@ -226,26 +265,23 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
         taskDetail.setFromInventoryId(cycleCountDetail.getInventoryDetailId());
         taskDetail.setLot(cycleCountDetail.getLot());
         taskDetail.setProjectNo(cycleCountDetail.getProjectNo());
-        taskDetail.setInternalTaskType(task.getTaskType());
-        taskDetail.setWarehouseCode(task.getWarehouseCode());
         taskDetail.setCompanyCode(cycleCountDetail.getCompanyCode());
-        taskDetail.setFromLocation(task.getFromLocation());
-        taskDetail.setToLocation(task.getToLocation());
-        taskDetail.setContainerCode(task.getContainerCode());
         taskDetail.setCreated(new Date());
         taskDetail.setCreatedBy(ShiroUtils.getLoginName());
         taskDetail.setLastUpdated(new Date());
         taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
         if(taskDetailService.save(taskDetail) == false){
             throw new ServiceException("盘点任务明细生成失败!");
-        }
+            }
+
         //修改细单状态
         cycleCountDetail.setTaskHeaderId(taskDetail.getId());
-        cycleCountDetail.setTaskHeaderId(task.getId());
+        //cycleCountDetail.setTaskHeaderId(task.getId());
         cycleCountDetail.setLastUpdated(new Date());
         cycleCountDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
         cycleCountDetail.setEnableStatus(5);
         this.saveOrUpdate(cycleCountDetail);
+
         //修改主单状态
         CycleCountHeader cycleCountHeader = new CycleCountHeader();
         cycleCountHeader.setCode(cycleCountDetail.getCycleCountHeadCode());
@@ -253,7 +289,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
         cycleCountHeader.setCompanyCode(cycleCountDetail.getCompanyCode());
         LambdaQueryWrapper<CycleCountHeader> lamb = Wrappers.lambdaQuery(cycleCountHeader);
         cycleCountHeader = cycleCountHeaderService.getOne(lamb);
-        cycleCountHeader.setStatusCyc(10);
+        cycleCountHeader.setStatusCyc(5);
         cycleCountHeaderService.saveOrUpdate(cycleCountHeader);
         return AjaxResult.success("盘点任务生成成功");
     }