diff --git a/src/main/java/com/huaheng/api/wcs/controller/EmptyOutHandle.java b/src/main/java/com/huaheng/api/wcs/controller/EmptyOutHandle.java
index 1a8e2fd..369aef8 100644
--- a/src/main/java/com/huaheng/api/wcs/controller/EmptyOutHandle.java
+++ b/src/main/java/com/huaheng/api/wcs/controller/EmptyOutHandle.java
@@ -32,7 +32,7 @@ public class EmptyOutHandle extends BaseController {
     @ResponseBody
     public AjaxResult EmptyOutHandle(@RequestBody Map<String,String> map) {
         String taskNo = map.get("taskNo");
-        AjaxResult ajaxResult =emptyOutHandleService.EmptyOutHandle(taskNo);
+        AjaxResult ajaxResult = emptyOutHandleService.EmptyOutHandle(taskNo);
         return ajaxResult;
     }
 
diff --git a/src/main/java/com/huaheng/api/wcs/controller/OverrideHandle.java b/src/main/java/com/huaheng/api/wcs/controller/OverrideHandle.java
index c874851..7fb1cdf 100644
--- a/src/main/java/com/huaheng/api/wcs/controller/OverrideHandle.java
+++ b/src/main/java/com/huaheng/api/wcs/controller/OverrideHandle.java
@@ -7,8 +7,10 @@ import com.huaheng.framework.aspectj.lang.annotation.Log;
 import com.huaheng.framework.aspectj.lang.constant.BusinessType;
 import com.huaheng.framework.web.controller.BaseController;
 import com.huaheng.framework.web.domain.AjaxResult;
+import com.huaheng.pc.receipt.reservation.domain.Reservation;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -28,12 +30,11 @@ public class OverrideHandle extends BaseController {
     private OverrideHandleService overrideHandleService;
 
     @Log(title = "wcs重入处理", action = BusinessType.INSERT)
-    @PostMapping("/ReenterHandle")
+    @PostMapping("/reenterHandle")
     @ApiOperation("wcs重入处理")
     @ResponseBody
-    public AjaxResult ReenterHandle(@RequestBody TaskFinishDomain taskFinishDomain) {
+    public AjaxResult reenterHandle(@RequestBody TaskFinishDomain taskFinishDomain) {
         return overrideHandleService.OverrideHandle(taskFinishDomain);
     }
 
-
 }
diff --git a/src/main/java/com/huaheng/api/wcs/controller/TaskFinish.java b/src/main/java/com/huaheng/api/wcs/controller/TaskFinish.java
index 0aea296..2da3f91 100644
--- a/src/main/java/com/huaheng/api/wcs/controller/TaskFinish.java
+++ b/src/main/java/com/huaheng/api/wcs/controller/TaskFinish.java
@@ -32,9 +32,9 @@ public class TaskFinish extends BaseController {
     @PostMapping("/complete")
     @ApiOperation("wcs任务完成")
     @ResponseBody
-    public AjaxResult TaskFinish(@RequestBody TaskFinishDomain taskFinishDomain)
+    public AjaxResult complete(@RequestBody TaskFinishDomain taskFinishDomain)
     {
-        AjaxResult ajaxResult =taskFinishService.completeTaskByWCS(taskFinishDomain) ;
+        AjaxResult ajaxResult = taskFinishService.completeTaskByWCS(taskFinishDomain);
         return ajaxResult;
     }
 
diff --git a/src/main/java/com/huaheng/api/wcs/domain/TaskFinishDomain.java b/src/main/java/com/huaheng/api/wcs/domain/TaskFinishDomain.java
index 53176b0..b47eae1 100644
--- a/src/main/java/com/huaheng/api/wcs/domain/TaskFinishDomain.java
+++ b/src/main/java/com/huaheng/api/wcs/domain/TaskFinishDomain.java
@@ -28,4 +28,6 @@ public class TaskFinishDomain {
     //重量
     private String Weight;
 
+    private String warehouseCode;
+
 }
diff --git a/src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java
index 8f98a07..5bd5c90 100644
--- a/src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java
+++ b/src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java
@@ -1,6 +1,7 @@
 package com.huaheng.api.wcs.service.emptyOutHandle;
 
 import com.huaheng.api.wcs.domain.WcsTask;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.utils.StringUtils;
 import com.huaheng.framework.web.domain.AjaxResult;
 import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
@@ -35,17 +36,19 @@ public class EmptyOutHandleServiceImpl implements EmptyOutHandleService {
 
         //2、根据任务号查找任务
         TaskHeader taskHeader = taskHeaderService.getById(Integer.valueOf(taskNo));
-        if(taskHeader == null){
+        if(taskHeader == null) {
             return AjaxResult.error("任务号错误,没有找到该任务");
         }
-        if(taskHeader.getStatus() == 100){
+
+        if(taskHeader.getStatus().intValue() == QuantityConstant.TASK_STATUS_COMPLETED){
             return AjaxResult.error("任务已完成");
         }
 
         //3、修改该任务为空出,过后处理
         taskHeader.setExceptionCode("空出处理");
+        taskHeader.setIsEmptyOut(QuantityConstant.EMPTY_OUT);
         Boolean flag = taskHeaderService.updateById(taskHeader);
-        if(flag == false){
+        if(flag == false) {
             return AjaxResult.error("修改任务失败,空出处理失败");
         }
         return AjaxResult.success("空出处理成功");
diff --git a/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java
index 00b237e..b3484eb 100644
--- a/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java
+++ b/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java
@@ -5,12 +5,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.huaheng.api.wcs.domain.TaskFinishDomain;
+import com.huaheng.api.wcs.service.warecellAllocation.LocationAllocationService;
 import com.huaheng.api.wcs.service.warecellAllocation.WarecellAllocationService;
 import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.exception.service.ServiceException;
 import com.huaheng.common.utils.StringUtils;
 import com.huaheng.common.utils.security.ShiroUtils;
 import com.huaheng.framework.web.domain.AjaxResult;
+import com.huaheng.framework.web.service.ConfigService;
 import com.huaheng.pc.config.FilterConfigDetail.domain.FilterConfigDetail;
 import com.huaheng.pc.config.FilterConfigDetail.service.FilterConfigDetailService;
 import com.huaheng.pc.config.container.domain.Container;
@@ -19,6 +21,8 @@ import com.huaheng.pc.config.location.domain.Location;
 import com.huaheng.pc.config.location.service.LocationService;
 import com.huaheng.pc.config.locationType.domain.LocationType;
 import com.huaheng.pc.config.locationType.service.LocationTypeService;
+import com.huaheng.pc.config.material.domain.Material;
+import com.huaheng.pc.config.material.service.MaterialService;
 import com.huaheng.pc.receipt.receiptContainerDetail.domain.ReceiptContainerDetail;
 import com.huaheng.pc.receipt.receiptContainerDetail.service.ReceiptContainerDetailService;
 import com.huaheng.pc.receipt.receiptContainerHeader.domain.ReceiptContainerHeader;
@@ -63,6 +67,12 @@ public class OverrideHandleServiceImpl implements OverrideHandleService {
     private ReceivingService receivingService;
     @Resource
     private ContainerService containerService;
+    @Resource
+    private LocationAllocationService locationAllocationService;
+    @Resource
+    private ConfigService configService;
+    @Resource
+    private MaterialService materialService;
     /**
      * 重入处理
      * 1、判断非空字段
@@ -77,7 +87,7 @@ public class OverrideHandleServiceImpl implements OverrideHandleService {
         String taskNo = taskFinishDomain.getTaskNo();
 
         //1、判断非空字段
-        if(StringUtils.isEmpty(taskNo)){
+        if(StringUtils.isEmpty(taskNo)) {
             return AjaxResult.error("任务号为空");
         }
 
@@ -86,9 +96,9 @@ public class OverrideHandleServiceImpl implements OverrideHandleService {
         if(taskHeader == null){
             return AjaxResult.error("任务号错误,没有找到该任务");
         }
-
+        String warehouseCode = taskHeader.getWarehouseCode();
         int status = taskHeader.getStatus();
-        if(status == QuantityConstant.TASK_STATUS_COMPLETED){
+        if(status == QuantityConstant.TASK_STATUS_COMPLETED) {
             return AjaxResult.error("任务已完成");
         }
 
@@ -96,7 +106,7 @@ public class OverrideHandleServiceImpl implements OverrideHandleService {
         //修改原来目的库位的状态
         LambdaQueryWrapper<Location> locationLam = Wrappers.lambdaQuery();
         locationLam.eq(Location::getCode,taskHeader.getToLocation())
-                .eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode());
+                .eq(Location::getWarehouseCode, warehouseCode);
         Location location = locationService.getOne(locationLam);
         if(location == null) {
             return AjaxResult.error("此任务的原目的库位在系统中不存在");
@@ -104,26 +114,23 @@ public class OverrideHandleServiceImpl implements OverrideHandleService {
         location.setStatus(QuantityConstant.STATUS_LOCATION_EMPTY);
         location.setContainerCode("");
         Boolean flag = locationService.updateById(location);
-        if(flag == false){
+        if(flag == false) {
             return AjaxResult.error("修改此任务的原目的库位错误");
         }
-
-
         /**
          *  查看新库位有两种情况
          *  1、重入的库位由wcs提供
          *  2、重入的库位由wms提供
          */
-
         Location newlocation = new Location();
         String newLocationCode = null;
         String redirectionLocation = taskFinishDomain.getRedirectionLocationCode();
         //重入的库位由wcs提供
-        if(!"0".equals(redirectionLocation)) {
+        if(redirectionLocation != null && !"0".equals(redirectionLocation)) {
             LambdaQueryWrapper<Location> locationLa = Wrappers.lambdaQuery();
             locationLa.eq(Location::getCode, redirectionLocation)
                     .eq(Location::getStatus,QuantityConstant.STATUS_LOCATION_EMPTY)
-                    .eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode());
+                    .eq(Location::getWarehouseCode, warehouseCode);
             newlocation = locationService.getOne(locationLa);
             if (newlocation == null) {
                 throw new ServiceException("新目的库位在系统中不存在或非空闲");
@@ -131,55 +138,39 @@ public class OverrideHandleServiceImpl implements OverrideHandleService {
             if(StringUtils.isNotEmpty(newlocation.getContainerCode())){
                 throw new ServiceException("新目的库位在系统中已经有容器");
             }
-        }else {
+        } else {
             //重入的库位由wms提供
             //查询任务明细
-            LambdaQueryWrapper<TaskDetail> taskDetailLambda = Wrappers.lambdaQuery();
-            taskDetailLambda.eq(TaskDetail::getTaskId, taskFinishDomain.getTaskNo());
-            List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambda);
-            String locatingRule = warecellAllocationService.taskPositioning();
-            String[] locatingRules = locatingRule.split("cut");
-            LambdaQueryWrapper<Location> locationLambda = Wrappers.lambdaQuery();
-            locationLambda.last(locatingRules[0]);
-            locationLambda.eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode());
-            List<Location> locationList = locationService.list(locationLambda);
-            List<Location> removeLocaationList = new ArrayList<>();
-            for(Location location1 : locationList) {
-                if (taskHeaderService.getUncompleteTaskInNear(location1) > 0) {
-                    removeLocaationList.add(location1);
-                } else {
-                    break;
-                }
+            String value = configService.getKey(QuantityConstant.RULE_ALLOCATION);
+            if (StringUtils.isEmpty(value)) {
+                return AjaxResult.error("未绑定定位规则");
             }
-            locationList.removeAll(removeLocaationList);
-            if (locationList == null || locationList.size() == 0) {
-                locationLambda.last(locatingRules[1]);
-                locationList = locationService.list(locationLambda);
-                removeLocaationList = new ArrayList<>();
-                for(Location location1 : locationList) {
-                    if (taskHeaderService.getUncompleteTaskInNear(location1) > 0) {
-                        removeLocaationList.add(location1);
-                    } else {
-                        break;
-                    }
-                }
-                locationList.removeAll(removeLocaationList);
+            int allocationRule = Integer.parseInt(value);
+            List<String> locationTypeCodeList = new ArrayList<>();
+            String locationType = location.getLocationType();
+            if(StringUtils.isNotEmpty(locationType)) {
+                locationTypeCodeList.add(locationType);
+            }
+            int high = location.getHigh();
+            String destination = location.getArea();
+            String containerCode = taskHeader.getContainerCode();
+            List<TaskDetail> taskDetailList = taskDetailService.findByTaskId(taskHeader.getId());
+            String materialCode = taskDetailList.get(0).getMaterialCode();
+            Material material = materialService.findAllByCode(materialCode, warehouseCode);
+            String materialAreaCode = material.getMaterialAreaCode();
+            String locationCode = locationAllocationService.allocation(allocationRule,
+                    locationTypeCodeList, high, destination, warehouseCode, containerCode, materialAreaCode);
+            if (StringUtils.isEmpty(locationCode)) {
+                return AjaxResult.error("没有库位可分配");
             }
-
-            LambdaQueryWrapper<LocationType> lambdaQueryWrapper2 = Wrappers.lambdaQuery();
-            List<LocationType> locationTypeList = locationTypeService.list(lambdaQueryWrapper2);
-            //根据定位规则查询库位编码
-            QueryWrapper<Location> locationLambdaQueryWrapper = new QueryWrapper<>();
-            locationLambdaQueryWrapper.eq("1", 1).last(locatingRules[0]);
-            newlocation = locationService.getOne(locationLambdaQueryWrapper);
-            Container container = containerService.getContainerByCode(taskHeader.getContainerCode());
-            String locationCode = receivingService.filter(locationList, locationTypeList, container);
-            newLocationCode = locationCode;
             if (taskHeader.getInternalTaskType().equals(QuantityConstant.TASK_INTENERTYPE_RECEIPT)) {
                 //查询入库组盘明细
                 List<ReceiptContainerDetail> receiptContainerDetailList = new ArrayList<>();
-                for (TaskDetail taskDetail : taskDetailList) {
-                    receiptContainerDetailList.add(receiptContainerDetailService.getById(taskDetail.getAllocationId()));
+                if(taskDetailList != null) {
+                    for (TaskDetail taskDetail : taskDetailList) {
+                        receiptContainerDetailList.add(receiptContainerDetailService.
+                                getById(taskDetail.getAllocationId()));
+                    }
                 }
                 ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getById(receiptContainerDetailList.get(0).getReceiptContainerId());
                 LambdaUpdateWrapper<ReceiptContainerDetail> wrapper = Wrappers.lambdaUpdate();
@@ -189,27 +180,35 @@ public class OverrideHandleServiceImpl implements OverrideHandleService {
                 receiptContainerHeader.setToLocation(locationCode);
                 receiptContainerHeaderService.updateById(receiptContainerHeader);
             }
+            newLocationCode = locationCode;
+        }
+        if (StringUtils.isEmpty(newLocationCode)) {
+            return AjaxResult.error("没有库位可以分配");
         }
+        locationService.updateStatus(newLocationCode, QuantityConstant.STATUS_LOCATION_LOCK, warehouseCode);
+        String toLocationCode = taskHeader.getToLocation();
 
         //修改任务
         taskHeader.setToLocation(newLocationCode);
         taskHeader.setExceptionCode("重入处理");
+        taskHeader.setIsDoubleIn(QuantityConstant.DOUBLE_IN);
+        taskHeader.setOriginLocation(toLocationCode);
         if(!taskHeaderService.updateById(taskHeader)){
             throw new ServiceException("修改此任务错误");
         }
 
         //修改子任务
         LambdaQueryWrapper<TaskDetail> taskDetailLam = Wrappers.lambdaQuery();
-        taskDetailLam.eq(TaskDetail::getWarehouseCode,ShiroUtils.getWarehouseCode())
+        taskDetailLam.eq(TaskDetail::getWarehouseCode, warehouseCode)
                 .eq(TaskDetail::getTaskId,taskHeader.getId());
         List<TaskDetail> taskDetails = taskDetailService.list(taskDetailLam);
         List<TaskDetail> taskDetailList = new ArrayList<>();
-        if(taskDetails != null && taskDetails.size()> 0){
+        if(taskDetails != null && taskDetails.size()> 0) {
             for(TaskDetail taskDetail : taskDetails){
                 taskDetail.setToLocation(newLocationCode);
                 taskDetailList.add(taskDetail);
             }
-            if(!taskDetailService.updateBatchById(taskDetailList)){
+            if(!taskDetailService.updateBatchById(taskDetailList)) {
                 throw new ServiceException("修改此任务的明细错误");
             }
         }
diff --git a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationService.java b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationService.java
index 3868091..ccbaf4d 100644
--- a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationService.java
+++ b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationService.java
@@ -6,7 +6,7 @@ import java.util.List;
 
 public interface LocationAllocationService {
 
-   String allocation(int locationRule, List<String> locationTypeCodeList, int high, String destination, String warehouseCode, String containerCode, String materialAreaCode);
+   String allocation(int locationRule, List<String> locationTypeCodeList, int high, String area, String warehouseCode, String containerCode, String materialAreaCode);
 
 
 }
diff --git a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java
index 729bfde..2803acb 100644
--- a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java
+++ b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java
@@ -39,7 +39,8 @@ public class LocationAllocationServiceImpl implements LocationAllocationService 
     private TaskHeaderService taskHeaderService;
 
     @Override
-    public String allocation(int locationRule, List<String> locationTypeCodeList, int high, String area, String warehouseCode, String containerCode, String materialAreaCode) {
+    public String allocation(int locationRule, List<String> locationTypeCodeList,
+             int high, String area, String warehouseCode, String containerCode, String materialAreaCode) {
         LambdaQueryWrapper<Container> containerLambdaQueryWrapper = Wrappers.lambdaQuery();
         containerLambdaQueryWrapper.eq(Container::getCode, containerCode)
                 .eq(Container::getWarehouseCode, warehouseCode);
diff --git a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java
index 0ec3d1c..ebe9f69 100644
--- a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java
+++ b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java
@@ -146,7 +146,7 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService 
             return AjaxResult.error("任务已经完成,不能再分库位");
         }
         String containerCode = taskHeader.getContainerCode();
-        Container container = containerService.getContainerByCode(containerCode);
+        Container container = containerService.getContainerByCode(containerCode, warehouseCode);
         if(container == null) {
             return AjaxResult.error("分配库位时,任务托盘为空");
         }
@@ -197,14 +197,13 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService 
             return AjaxResult.error("没有库位可分配");
         }
 
-        if (StringUtils.isNotEmpty(locationCode)) {
-            locationService.updateStatus(locationCode, QuantityConstant.STATUS_LOCATION_LOCK, warehouseCode);
-            if (StringUtils.isNotEmpty(taskHeader.getToLocation()) && !locationCode.equals(taskHeader.getToLocation())) {
-                locationService.updateStatus(taskHeader.getToLocation(), QuantityConstant.STATUS_LOCATION_EMPTY, warehouseCode);
-            }
-        } else {
-            throw new ServiceException("定位失败,请检查定位规则是否正确");
+        locationService.updateStatus(locationCode, QuantityConstant.STATUS_LOCATION_LOCK, warehouseCode);
+        if (StringUtils.isNotEmpty(taskHeader.getToLocation()) &&
+                !locationCode.equals(taskHeader.getToLocation())) {
+            locationService.updateStatus(taskHeader.getToLocation(),
+                    QuantityConstant.STATUS_LOCATION_EMPTY, warehouseCode);
         }
+
         if (receiptContainerDetailList != null && receiptContainerDetailList.size() > 0) {
             //更新库位编码到组盘头表
             ReceiptContainerDetail receiptContainerDetail = receiptContainerDetailList.get(0);
diff --git a/src/main/java/com/huaheng/common/constant/QuantityConstant.java b/src/main/java/com/huaheng/common/constant/QuantityConstant.java
index f3b980f..2806e8c 100644
--- a/src/main/java/com/huaheng/common/constant/QuantityConstant.java
+++ b/src/main/java/com/huaheng/common/constant/QuantityConstant.java
@@ -410,5 +410,12 @@ public class QuantityConstant {
     public static final int RYTASK_STATUS_RUN = 0;
     public static final int RYTASK_STATUS_STOP = 1;
 
+    public static final int DOUBLE_IN = 1;
+    public static final int NORMAL_IN = 0;
+
+    public static final int EMPTY_OUT = 1;
+    public static final int NORMAL_OUT = 0;
+
+
     public static String ryTask_warehouse_code;
 }
diff --git a/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java b/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java
index 527e74c..518ff91 100644
--- a/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java
+++ b/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java
@@ -29,6 +29,7 @@ public interface ContainerService extends IService<Container>{
 
     Container getContainerByCode(String containCode);
 
+    Container getContainerByCode(String containCode, String warehouseCode);
 
     //获得空货架编号
     List<Container> selectListShelf();
diff --git a/src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java b/src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java
index 311e7d9..7aba79d 100644
--- a/src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java
@@ -177,6 +177,11 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container
         return containerMapper.findAllByCode(code, ShiroUtils.getWarehouseCode());
     }
 
+    @Override
+    public Container getContainerByCode(String containCode, String warehouseCode) {
+        return containerMapper.findAllByCode(containCode, warehouseCode);
+    }
+
 
     @Override
     public List<Container> selectListShelf() {
diff --git a/src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java b/src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java
index 0834745..fc828ed 100644
--- a/src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java
+++ b/src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.exception.service.ServiceException;
 import com.huaheng.common.support.Convert;
 import com.huaheng.common.utils.StringUtils;
@@ -19,12 +20,17 @@ import com.huaheng.pc.inventory.adjustDetail.domain.AdjustDetail;
 import com.huaheng.pc.inventory.adjustDetail.service.AdjustDetailService;
 import com.huaheng.pc.inventory.adjustHeader.domain.AdjustHeader;
 import com.huaheng.pc.inventory.adjustHeader.mapper.AdjustHeaderMapper;
+import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
+import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService;
+import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader;
+import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.List;
 
 
@@ -37,6 +43,10 @@ public class adjustDetailController extends BaseController {
     private AdjustHeaderMapper adjustHeaderMapper;
     @Resource
     private AdjustDetailService adjustDetailService;
+    @Resource
+    private InventoryDetailService inventoryDetailService;
+    @Resource
+    private InventoryHeaderService inventoryHeaderService;
 
 
 
@@ -168,6 +178,25 @@ public class adjustDetailController extends BaseController {
                 return AjaxResult.error("不能重复调整!");
             }
             ajaxResult1 = adjustDetailService.updateAdjustDetail(adjustDetailEdit);
+            InventoryDetail inventoryDetail = inventoryDetailService.getById(adjustDetailEdit.getInventoryDetailId());
+            if(inventoryDetail != null) {
+                InventoryHeader header = inventoryHeaderService.getById(inventoryDetail.getInventoryHeaderId());
+                LambdaQueryWrapper<InventoryDetail> inventory = Wrappers.lambdaQuery();
+                inventory.eq(InventoryDetail::getInventoryHeaderId, header.getId());
+                List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventory);
+                BigDecimal totalQty = new BigDecimal(0);
+                int totalLines = 0;
+                for (InventoryDetail inventoryDetail3 : inventoryDetailList) {
+                    totalQty = totalQty.add(inventoryDetail3.getQty());
+                    totalLines++;
+                }
+                header.setTotalQty(totalQty);
+                header.setTotalLines(totalLines);
+                header.setContainerStatus(QuantityConstant.STATUS_CONTAINER_SOME);
+                LambdaQueryWrapper<InventoryHeader> wrapper = Wrappers.lambdaQuery();
+                wrapper.eq(InventoryHeader::getId, header.getId());
+                inventoryHeaderService.update(header, wrapper);
+            }
         }
         return ajaxResult1;
     }
diff --git a/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java b/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java
index d6bbf3d..71898fd 100644
--- a/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java
@@ -183,11 +183,9 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj
         if(adjustDetail.getStatus() == 1){
             AjaxResult.error("该单据已调整,不允许再次调整!" );
         }
-        //查询调整的库存明细
-        InventoryDetail inventoryDetail;
         //调整单中不带库存明细时不查询
         if(adjustDetail.getInventoryDetailId() != null) {
-            inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId());
+            InventoryDetail inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId());
             if (!adjustDetail.getLocationCode().equals(inventoryDetail.getLocationCode()) ||
                     !adjustDetail.getContainerCode().equals(inventoryDetail.getContainerCode())) {
                 return AjaxResult.error("调整单和所调整库存的库位容器不符,前检查数据");
@@ -318,6 +316,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj
         inventoryDetail.setLastUpdated(new Date());
         inventoryDetailService.saveOrUpdate(inventoryDetail);
 
+
         //写入库存交易,2条一条出,一条入
         //调整出
         InventoryTransaction inventoryTransaction = new InventoryTransaction();
diff --git a/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java b/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java
index 7190196..2fb3ad7 100644
--- a/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java
+++ b/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java
@@ -62,7 +62,7 @@ public class ShippingCombinationService {
         slam.eq(ShipmentPreference::getCode,configValue.getIdentifier())
                 .eq(ShipmentPreference::getWarehouseCode,configValue.getWarehouseCode());
         ShipmentPreference shipmentPreference = shipmentPreferenceService.getOne(slam);
-        if(shipmentPreference == null){
+        if(shipmentPreference == null) {
             throw new ServiceException("仓库的出库配置中出库首选项不存在");
         }
 
diff --git a/src/main/resources/templates/config/container/container.html b/src/main/resources/templates/config/container/container.html
index 6f178ab..83e7dbc 100644
--- a/src/main/resources/templates/config/container/container.html
+++ b/src/main/resources/templates/config/container/container.html
@@ -58,7 +58,7 @@
 				<i class="fa fa-trash-o"></i> 删除
 			</a>
 
-                <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.batPrint()" shiro:hasPermission="config:container:print">
+			<a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.batPrint()" shiro:hasPermission="config:container:print">
 				<i class="fa fa-plus"></i> 打印
 			</a>
 		</div>
diff --git a/src/main/resources/templates/config/location/location.html b/src/main/resources/templates/config/location/location.html
index 5205a50..4eb1e85 100644
--- a/src/main/resources/templates/config/location/location.html
+++ b/src/main/resources/templates/config/location/location.html
@@ -72,10 +72,10 @@
 			<a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="config:location:add">
 				<i class="fa fa-plus"></i> 新增
 			</a>
-			<a class="btn btn-outline btn-primary btn-rounded" onclick="addBatch()" shiro:hasPermission="config:location:addBatch">
+			<a class="btn btn-outline btn-primary btn-rounded" onclick="addBatch()" shiro:hasPermission="config:location:add">
 				<i class="fa fa-plus-square-o"></i> 批量新增
 			</a>
-			<a class="btn btn-outline btn-primary btn-rounded" onclick="editBatch()" shiro:hasPermission="config:location:addBatch">
+			<a class="btn btn-outline btn-primary btn-rounded" onclick="editBatch()" shiro:hasPermission="config:location:edit">
 				<i class="fa fa-edit"></i> 批量修改
 			</a>
             <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.batPrint()" shiro:hasPermission="inventory:inventoryTransaction:report">