diff --git a/src/main/java/com/huaheng/api/wcs/domain/WcsTask.java b/src/main/java/com/huaheng/api/wcs/domain/WcsTask.java
index 376c2a7..3176255 100644
--- a/src/main/java/com/huaheng/api/wcs/domain/WcsTask.java
+++ b/src/main/java/com/huaheng/api/wcs/domain/WcsTask.java
@@ -18,6 +18,9 @@ public class WcsTask implements Serializable {
     //任务号
     private String taskNo;
 
+    //前置任务
+    private String preTaskNo;
+
     //任务类型
     private String taskType;
 
@@ -46,7 +49,7 @@ public class WcsTask implements Serializable {
     private String locationCode;
 
     //优先级,int,默认100 ,数字越小优先级越高",必填
-    private int priority;
+    private Integer priority;
 
     //巷道
     private String roadWay;
diff --git a/src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java
index 6d37e20..bde0822 100644
--- a/src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java
+++ b/src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java
@@ -90,12 +90,21 @@ public class TaskAssignServiceImpl implements TaskAssignService {
         //3、转换实体,初始化wcs任务实体
         WcsTask wcsTask = new WcsTask();
         wcsTask.setTaskNo(taskHeader.getId().toString());
+        wcsTask.setPreTaskNo("0");
         wcsTask.setTaskType(taskHeader.getTaskType().toString());
-        wcsTask.setFromPort("0");
+        wcsTask.setFromPort("1000");
         wcsTask.setToPort("0");
         wcsTask.setContainerCode(taskHeader.getContainerCode());
-        wcsTask.setFromLocationCode(taskHeader.getFromLocation());
-        wcsTask.setToLocationCode(taskHeader.getToLocation());
+        if(StringUtils.isEmpty(taskHeader.getFromLocation())){
+            wcsTask.setFromLocationCode("0");
+        }else {
+            wcsTask.setFromLocationCode(taskHeader.getFromLocation());
+        }
+        if(StringUtils.isEmpty(taskHeader.getToLocation())){
+            wcsTask.setToLocationCode("0");
+        }else {
+            wcsTask.setToLocationCode(taskHeader.getToLocation());
+        }
         wcsTask.setPriority(100);
         wcsTask.setRemark("0");
         wcsTask.setPlatform(platform);
@@ -112,7 +121,11 @@ public class TaskAssignServiceImpl implements TaskAssignService {
             TaskDetails details = new TaskDetails();
             details.setMaterialCode(item.getMaterialCode());
             details.setMaterialName(item.getMaterialName());
-            details.setUnit(item.getMaterialUnit());
+            if(StringUtils.isEmpty(item.getMaterialUnit())){
+                details.setUnit("PCS");
+            }else {
+                details.setUnit(item.getMaterialUnit());
+            }
             details.setQty(item.getQty());
             details.setReferLineNo(item.getId().toString());
             taskDetails.add(details);
diff --git a/src/main/java/com/huaheng/api/wcs/service/taskCancel/TaskCancelServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/taskCancel/TaskCancelServiceImpl.java
index b8683ca..027dd51 100644
--- a/src/main/java/com/huaheng/api/wcs/service/taskCancel/TaskCancelServiceImpl.java
+++ b/src/main/java/com/huaheng/api/wcs/service/taskCancel/TaskCancelServiceImpl.java
@@ -22,7 +22,6 @@ public class TaskCancelServiceImpl implements TaskCancelService {
      * 2、转换实体
      * 3、发送数据
      * @param id
-     * @param reason
      * @return
      */
     @Override
@@ -40,7 +39,7 @@ public class TaskCancelServiceImpl implements TaskCancelService {
 
         //3、发送数据
         String param="wcs";
-        String url=addressService.selectAddress(param)+"TaskCance";
+        String url=addressService.selectAddress(param)+"TaskCancel";
         String JsonParam = JSON.toJSONString(wcsTask);
         String result = HttpUtils.bodypost(url, JsonParam);
         if(StringUtils.isEmpty(result)){
diff --git a/src/main/java/com/huaheng/api/wcs/service/taskFinish/TaskFinishServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/taskFinish/TaskFinishServiceImpl.java
index d487d5f..6355658 100644
--- a/src/main/java/com/huaheng/api/wcs/service/taskFinish/TaskFinishServiceImpl.java
+++ b/src/main/java/com/huaheng/api/wcs/service/taskFinish/TaskFinishServiceImpl.java
@@ -1,9 +1,12 @@
 package com.huaheng.api.wcs.service.taskFinish;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.huaheng.api.wcs.domain.TaskFinishDomain;
 import com.huaheng.common.support.Convert;
 import com.huaheng.common.utils.StringUtils;
 import com.huaheng.framework.web.domain.AjaxResult;
+import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
 import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -21,6 +24,22 @@ public class TaskFinishServiceImpl implements TaskFinishService {
         if(StringUtils.isEmpty(taskFinishDomain.getTaskNo())){
             return AjaxResult.error("任务号为空");
         }
+        if(taskFinishDomain.getIsEmptyOut() == 1){
+            LambdaQueryWrapper<TaskHeader> lam = Wrappers.lambdaQuery();
+            lam.eq(TaskHeader::getId,Integer.valueOf(taskFinishDomain.getTaskNo()));
+            TaskHeader taskHeader = taskHeaderService.getOne(lam);
+            if(taskHeader == null){
+                return AjaxResult.error("wms系统没有此任务号");
+            }
+            if(StringUtils.isEmpty(taskHeader.getExceptionCode())) {
+                taskHeader.setExceptionCode("空托出库");
+                Boolean flag = taskHeaderService.updateById(taskHeader);
+                if (flag == false) {
+                    return AjaxResult.error("修改任务失败,空出处理失败");
+                }
+            }
+            return AjaxResult.success("成功");
+        }
         try{
             ajaxResult=taskHeaderService.completeTaskByWMS(Convert.toIntArray(taskFinishDomain.getTaskNo()));
         } catch (Exception e) {
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 3d8d985..e53a9e8 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
@@ -365,6 +365,9 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             if (task.getStatus() >= QuantityConstant.TASK_STATUS_RELEASE) {
                 return AjaxResult.error("任务" + taskId + "已经下发,请不要重复下发,操作中止");
             }
+
+            // 给wcs传递任务
+            taskAssignService.wcsTaskAssign(task);
             //修改任务头表
             task.setId(taskId);
             task.setStatus(QuantityConstant.TASK_STATUS_RELEASE);
@@ -431,8 +434,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
 //                }
 //            }
 
-//            给wcs传递任务
-            taskAssignService.wcsTaskAssign(task);
         }
         return AjaxResult.success("执行下发任务成功", task);
     }