diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java
index 45f170a..bc7bd60 100644
--- a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java
+++ b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java
@@ -52,6 +52,8 @@ public class CycleCountDetailController extends BaseController {
     private CycleCountDetailService cycleCountDetailService;
     @Resource
     private CycleCountHeaderService cycleCountHeaderService;
+    @Resource
+    private InventoryDetailService inventoryDetailService;
 
 
 
@@ -178,11 +180,15 @@ public class CycleCountDetailController extends BaseController {
         for (Integer id : detailsIds)
         {
             //只允许删除新建状态下的盘点明细。
-            CycleCountDetail cyclecountDetailFor = cycleCountDetailService.getById(id);
-            if(cyclecountDetailFor.getEnableStatus() > 1){
+            CycleCountDetail cyclecountDetails = cycleCountDetailService.getById(id);
+            if(cyclecountDetails.getEnableStatus() > 5){
                 return AjaxResult.error("盘点已开始执行,不允许删除该盘点明细!");
             }
             cycleCountDetailService.removeById(id);
+            //取消库存盘点状态
+            InventoryDetail inventoryDetail = inventoryDetailService.getById(cyclecountDetails.getInventoryDetailId());
+            inventoryDetail.setLockCode("");
+            inventoryDetailService.saveOrUpdate(inventoryDetail);
         }
         return AjaxResult.success("删除成功!");
     }
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 5903736..87a1b29 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
@@ -111,7 +111,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
             ccd.setLastUpdated(new Date());
             ccd.setLastUpdatedBy(ShiroUtils.getLoginName());
             this.save(ccd);
-            //更新库存锁
+            //更新库存盘点锁
             inventoryDetail.setLockCode("cyclecount");
             inventoryDetailService.saveOrUpdate(inventoryDetail);
         }
@@ -280,6 +280,8 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
         cycleCountDetail.setLastUpdated(new Date());
         cycleCountDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
         cycleCountDetail.setEnableStatus(5);
+        cycleCountDetail.setTaskHeaderId(task.getId());
+        cycleCountDetail.setTaskDetailId(taskDetail.getId());
         this.saveOrUpdate(cycleCountDetail);
 
         //修改主单状态
diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
index 65625bb..1116ed7 100644
--- a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
@@ -935,7 +935,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             item.setLastUpdated(new Date());   //更新时间
             list.add(item);
         }
-        if (taskDetailService.saveOrUpdateBatch(list) == false || taskHeaderService.saveOrUpdate(taskHeader) == false) {
+        if (taskDetailService.saveOrUpdateBatch(list) == false ||
+                taskHeaderService.saveOrUpdate(taskHeader) == false) {
             throw new ServiceException("任务单据状态更新失败!");
         }
         //释放库位状态
@@ -951,13 +952,49 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     @Transactional
     @Override
     public AjaxResult completeCycleCountTask(TaskHeader taskHeader){
-        /*盘点完成,传入任务主单,查出任务明细,通过任务明细查找盘点的明细单,完成任务同时,修改盘点细单和主单的状态*/
-
-
-
+        /*盘点完成,传入任务主单,查出任务明细,通过任务明细查找盘点的明细单,
+        完成任务同时,修改盘点细单和主单的状态,完成后库存锁复位*/
+        //修改任务主单状态
+        taskHeader.setStatus(100);
+        taskHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户
+        taskHeader.setLastUpdated(new Date());   //更新时间
+        //task更新明细单状态
+        TaskDetail taskDetail = new TaskDetail();
+        taskDetail.setWarehouseCode(taskHeader.getWarehouseCode());
+        taskDetail.setTaskType(taskHeader.getTaskType());
+        taskDetail.setTaskId(taskHeader.getId());
+        LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(taskDetail);
+        List<TaskDetail> taskDetailList = taskDetailService.list(lambdaQueryWrapper);//查询子单
+        List<TaskDetail> list = new CopyOnWriteArrayList<>();
+        //修改任务明细状态的同时查找到盘点明细的条目并修改状态,最后修改主单状态
+        List<CycleCountDetail> cycleCountDetailList = new CopyOnWriteArrayList<>();
+        for(TaskDetail item:taskDetailList){
+            item.setStatus(100);
+            item.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户
+            item.setLastUpdated(new Date());   //更新时间
+            list.add(item);
 
+            CycleCountDetail cycleCountDetail = cycleCountDetailService.getById(item.getBillDetailId());//盘点明细
+            cycleCountDetail.setEnableStatus(100);
+            cycleCountDetail.setCompletedBy(ShiroUtils.getLoginName());
+            cycleCountDetail.setCompletedAt(new Date());
+            cycleCountDetailList.add(cycleCountDetail);
+            //取消库存盘点锁
+            InventoryDetail inventoryDetail = inventoryDetailService.getById(cycleCountDetail.getInventoryDetailId());
+            inventoryDetail.setLockCode("");
+            inventoryDetailService.saveOrUpdate(inventoryDetail);
+        }
+        if ( taskHeaderService.saveOrUpdate(taskHeader) == false ||
+                taskDetailService.saveOrUpdateBatch(list) == false ||
+                cycleCountDetailService.saveOrUpdateBatch(cycleCountDetailList) == false) {
+            throw new ServiceException("盘点任务单据状态更新失败!");
+        }
+        //更新主单状态
+        cycleCountHeaderService.updataHeaderStatus(cycleCountDetailList.get(0).getCycleCountHeadCode());
+        //释放库位
+        locationService.updateStatus(cycleCountDetailList.get(0).getLocationCode(), "empty");
+        return AjaxResult.success("完成盘点任务");
 
-        return null;
     }
 
     /**