diff --git a/src/main/java/com/huaheng/common/constant/QuantityConstant.java b/src/main/java/com/huaheng/common/constant/QuantityConstant.java
new file mode 100644
index 0000000..252a0fe
--- /dev/null
+++ b/src/main/java/com/huaheng/common/constant/QuantityConstant.java
@@ -0,0 +1,352 @@
+package com.huaheng.common.constant;
+
+/**
+ * 数字自定义常量
+ *
+ * @author  ricard
+ */
+public class QuantityConstant {
+    /**
+     * 1、入库单状态
+     * 2、出库单状态
+     * 3、单据上传状态
+     * 4、入库组盘状态
+     * 5、出库组盘状态
+     * 6、任务类型
+     * 7、任务状态
+     * 8、波次状态
+     * 9、质检状态
+     * 10、盘点状态
+     * 11、库存交易类型
+     * 12、调整单状态
+     * 13、任务内部类型
+     * 14、质检单类型
+     */
+
+    //1、入库单状态
+
+    //新建
+    public static final Integer RECEIPT_HEADER_BUILD = 0;
+
+    //等待审核
+    public static final Integer RECEIPT_HEADER_MODERATED = 5;
+
+    //驳回
+    public static final Integer RECEIPT_HEADER_TURNDOWN = 10;
+
+    //作废
+    public static final Integer RECEIPT_HEADER_OBSOLETE = 20;
+
+    //订单池
+    public static final Integer RECEIPT_HEADER_POOL = 100;
+
+    //入库预约
+    public static final Integer RECEIPT_HEADER_RESERVATION = 120;
+
+    //入库到货
+    public static final Integer RECEIPT_HEADER_ARRIVAL = 150;
+
+    //入库质检
+    public static final Integer RECEIPT_HEADER_CHECK = 180;
+
+    //收货
+    public static final Integer RECEIPT_HEADER_RECEIVING = 200;
+
+    //定位
+    public static final Integer RECEIPT_HEADER_POSITION = 240;
+
+    //等待上架
+    public static final Integer RECEIPT_HEADER_WAIT = 280;
+
+    //上架
+    public static final Integer RECEIPT_HEADER_SHELF = 300;
+
+    //过账
+    public static final Integer RECEIPT_HEADER_POSTING = 800;
+
+    //回传
+    public static final Integer RECEIPT_HEADER_RETURN = 900;
+
+
+
+
+
+    //2、出库单状态
+
+    //新建
+    public static final Integer SHIPMENT_HEADER_BUILD = 0;
+
+    //订单池
+    public static final Integer SHIPMENT_HEADER_POOL = 100;
+
+    //出库预约
+    public static final Integer SHIPMENT_HEADER_RESERVATION = 120;
+
+    //订单分析
+    public static final Integer SHIPMENT_HEADER_ANALYSIS = 150;
+
+    //波次
+    public static final Integer SHIPMENT_HEADER_WAVE = 200;
+
+    //出库组盘
+    public static final Integer SHIPMENT_HEADER_GROUPDISK = 300;
+
+    //拣货完成
+    public static final Integer SHIPMENT_HEADER_COMPLETED = 500;
+
+    //发运
+    public static final Integer SHIPMENT_HEADER_SHIPPING = 800;
+
+    //回传
+    public static final Integer SHIPMENT_HEADER_RETURN = 900;
+
+
+
+
+    //3、单据上传状态
+
+    //未上传
+    public static final Integer UPLOAD_NOT = 0;
+
+    //上传失败
+    public static final Integer UPLOAD_FAILED = 10;
+
+    //上架完成
+    public static final Integer UPLOAD_SUCCESS = 20;
+
+
+
+
+    //4、入库组盘状态
+
+    //新建
+    public static final Integer RECEIPT_CONTAINER_BUILD = 0;
+
+    //生成任务
+    public static final Integer RECEIPT_CONTAINER_TASK= 10;
+
+    //上架完成
+    public static final Integer RECEIPT_CONTAINER_FINISHED = 20;
+
+    //复核完成
+    public static final Integer RECEIPT_CONTAINER_REVIEWSUCCESS = 30;
+
+
+
+    //5、出库组盘状态
+
+    //新建
+    public static final Integer SHIPMENT_CONTAINER_BUILD = 0;
+
+    //生成任务
+    public static final Integer SHIPMENT_CONTAINER_TASK= 10;
+
+    //拣货完成
+    public static final Integer SHIPMENT_CONTAINER_FINISHED = 20;
+
+    //复核完成
+    public static final Integer SHIPMENT_CONTAINER_REVIEWSUCCESS = 30;
+
+
+
+    //6、任务类型
+
+    //整盘入库
+    public static final Integer TASK_TYPE_WHOLERECEIPT = 100;
+
+    //补充入库
+    public static final Integer TASK_TYPE_SUPPLEMENTRECEIPT = 200;
+
+    //整盘出库
+    public static final Integer TASK_TYPE_WHOLESHIPMENT = 300;
+
+    //分拣出库
+    public static final Integer TASK_TYPE_SORTINGSHIPMENT = 400;
+
+    //空容器入库
+    public static final Integer TASK_TYPE_EMPTYRECEIPT = 500;
+
+    //空容器出库
+    public static final Integer TASK_TYPE_EMPTYSHIPMENT = 600;
+
+    //盘点
+    public static final Integer TASK_TYPE_CYCLECOUNT = 700;
+
+    //移库
+    public static final Integer TASK_TYPE_TRANSFER = 800;
+
+    //出库查看
+    public static final Integer TASK_TYPE_VIEW = 900;
+
+
+
+    //7、任务状态
+
+    //生成任务
+    public static final Integer TASK_STATUS_BUILD = 1;
+
+    //下达任务
+    public static final Integer TASK_STATUS_RELEASE = 10;
+
+    //开始执行
+    public static final Integer TASK_STATUS_RUNNING = 20;
+
+    //任务完成
+    public static final Integer TASK_STATUS_COMPLETED = 100;
+
+
+    //8、波次状态
+
+    //新建波次
+    public static final Integer WAVE_STATUS_BUILD = 0;
+
+    //开始波次
+    public static final Integer WAVE_STATUS_START = 100;
+
+    //剔除不符合条件订单
+    public static final Integer WAVE_STATUS_EXCLUDE = 150;
+
+    //指定分配规则
+    public static final Integer WAVE_STATUS_ASSIGN = 200;
+
+    //分配库存
+    public static final Integer WAVE_STATUS_ALLOCATION = 300;
+
+    //订单分组
+    public static final Integer WAVE_STATUS_GROUPING = 400;
+
+    //创建货箱
+    public static final Integer WAVE_STATUS_CREATECONTAINER = 500;
+
+    //生成任务
+    public static final Integer WAVE_STATUS_BUILDTASK = 600;
+
+    //结束波次
+    public static final Integer WAVE_STATUS_END = 900;
+
+    //失败
+    public static final Integer WAVE_STATUS_FAILED = 999;
+
+
+
+    //9、质检状态
+
+    //新建
+    public static final Integer CHECK_STATUS_BUILD = 0;
+
+    //质检中
+    public static final Integer CHECK_STATUS_IN = 10;
+
+    //质检完成
+    public static final Integer CHECK_STATUS_COMPLETED = 20;
+
+
+
+    //10、盘点状态
+
+    //新建
+    public static final Integer CYCLECOUNT_STATUS_BUILD = 1;
+
+    //盘点任务生成
+    public static final Integer CYCLECOUNT_STATUS_BUILDTASK = 5;
+
+    //执行中
+    public static final Integer CYCLECOUNT_STATUS_EXECUTING = 10;
+
+    //已登记
+    public static final Integer CYCLECOUNT_STATUS_REGISTERED= 15;
+
+    //审核
+    public static final Integer CYCLECOUNT_STATUS_REVIEW = 30;
+
+    //关闭
+    public static final Integer CYCLECOUNT_STATUS_CLOSE = 99;
+
+    //盘点完成
+    public static final Integer CYCLECOUNT_STATUS_COMPLETED = 100;
+
+    //已生成调整单
+    public static final Integer CYCLECOUNT_STATUS_GENERATEADJUST = 101;
+
+
+
+    //11、库存交易类型
+
+    //入库
+    public static final Integer INVENTORY_TRANSACTION_RECEIPT = 10;
+
+    //出库
+    public static final Integer INVENTORY_TRANSACTION_SHIPMENT = 20;
+
+    //调整入
+    public static final Integer INVENTORY_TRANSACTION_ADJUSTINTO = 30;
+
+    //调整出
+    public static final Integer INVENTORY_TRANSACTION_ADJUSTOUT = 40;
+
+    //调整属性
+    public static final Integer INVENTORY_TRANSACTION_ADJUSTPROPERTIES = 50;
+
+    //盘点
+    public static final Integer INVENTORY_TRANSACTION_CYCLECOUNT = 60;
+
+    //移库入
+    public static final Integer INVENTORY_TRANSACTION_TRANSFERINTO = 70;
+
+    //移库出
+    public static final Integer INVENTORY_TRANSACTION_TRANSFEROUT = 80;
+
+
+    //12、调整单状态
+
+    //未批准
+    public static final Integer ADJUST_STATUS_NOAPPROVED = 0;
+
+    //已批准
+    public static final Integer ADJUST_STATUS_APPROVED = 1;
+
+    //待调整
+    public static final Integer ADJUST_STATUS_WAIT = 2;
+
+    //已调整
+    public static final Integer ADJUST_STATUS_STOP = 3;
+
+
+    //13、任务内部类型
+
+    //上架任务
+    public static final Integer TASK_INTENERTYPE_SHELF = 100;
+
+    //拣货任务
+    public static final Integer TASK_INTENERTYPE_PICKING = 200;
+
+    //补货任务
+    public static final Integer TASK_INTENERTYPE_SUPPLEMENT = 300;
+
+    //工作任务
+    public static final Integer TASK_INTENERTYPE_WORK = 400;
+
+    //质检任务
+    public static final Integer TASK_INTENERTYPE_CHECK = 500;
+
+    //移库任务
+    public static final Integer TASK_INTENERTYPE_TRANSFER = 600;
+
+    //盘点任务
+    public static final Integer TASK_INTENERTYPE_CYCLECOUNT = 700;
+
+
+
+    //13、质检单类型
+
+    //入库质检
+    public static final Integer CHECK_TYPE_RECEIPT = 100;
+
+    //在库全检
+    public static final Integer CHECK_TYPE_FULL = 200;
+
+    //在库抽检
+    public static final Integer CHECK_TYPE_SELECT = 300;
+
+
+}
diff --git a/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java b/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java
index ba3888a..9a520a9 100644
--- a/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java
+++ b/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java
@@ -2,6 +2,7 @@ package com.huaheng.pc.check.checkDetail.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.exception.service.ServiceException;
 import com.huaheng.common.support.Convert;
 import com.huaheng.common.utils.security.ShiroUtils;
@@ -58,7 +59,7 @@ public class CheckDetailService extends ServiceImpl<CheckDetailMapper, CheckDeta
         checkDetail.setCheckBy(ShiroUtils.getLoginName());
         checkDetail.setCheckAt(new Date());
 
-        checkDetail.setStatus("20");
+        checkDetail.setStatus((QuantityConstant.CHECK_STATUS_COMPLETED).toString());
         checkDetail.setLastUpdated(new Date());
         checkDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
         if (!this.updateById(checkDetail)){
@@ -71,7 +72,7 @@ public class CheckDetailService extends ServiceImpl<CheckDetailMapper, CheckDeta
         //判断头表下所有明细是否全部完成
         boolean result = false;
         for (CheckDetail checkDetail1 : checkDetails){
-            if ("20".equals(checkDetail1.getStatus())){
+            if ((QuantityConstant.CHECK_STATUS_COMPLETED).toString().equals(checkDetail1.getStatus())){
                 result = true;
             } else {
                 result = false;
@@ -80,7 +81,7 @@ public class CheckDetailService extends ServiceImpl<CheckDetailMapper, CheckDeta
         if (result){
             CheckHeader checkHeader = new CheckHeader();
             checkHeader.setId(checkDetail.getCheckHeaderId());
-            checkHeader.setStatus("30");
+            checkHeader.setStatus((QuantityConstant.CHECK_STATUS_COMPLETED).toString());
             if ( !checkHeaderService.updateById(checkHeader)){
                 throw new ServiceException("质检头表更新失败");
             }
diff --git a/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java b/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java
index a611dea..8b7b16c 100644
--- a/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java
+++ b/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fasterxml.jackson.databind.ser.Serializers;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.support.Convert;
 import com.huaheng.common.utils.StringUtils;
 import com.huaheng.common.utils.security.ShiroUtils;
@@ -134,7 +135,7 @@ public class CheckingRegisterController extends BaseController {
                     List emptyList = checkingRegisterService.emptyList(checkingRegister.getCheckDetailId());
                     return getMpDataTable(emptyList, Long.valueOf(emptyList.size()));
                 }
-                if (!"20".equals(checkDetail.getStatus())){
+                if (!(QuantityConstant.CHECK_STATUS_COMPLETED).toString().equals(checkDetail.getStatus())){
                     //未完成质检list
                     List notCompleteList = checkingRegisterService.notCompleteList(checkingRegister.getCheckDetailId());
                     return getMpDataTable(notCompleteList, Long.valueOf(notCompleteList.size()));
@@ -149,7 +150,7 @@ public class CheckingRegisterController extends BaseController {
                     List emptyList = checkingRegisterService.emptyList(checkingRegister.getCheckDetailId());
                     return getMpDataTable(emptyList, Long.valueOf(emptyList.size()));
                 }
-                if (!"20".equals(checkDetail.getStatus())){
+                if (!(QuantityConstant.CHECK_STATUS_COMPLETED).toString().equals(checkDetail.getStatus())){
                     //未完成质检list
                     List notCompleteList = checkingRegisterService.notCompleteList(checkingRegister.getCheckDetailId());
                     return getMpDataTable(notCompleteList, Long.valueOf(notCompleteList.size()));
diff --git a/src/main/java/com/huaheng/pc/config/cycleCountPreference/controller/cycleCountPreferenceController.java b/src/main/java/com/huaheng/pc/config/cycleCountPreference/controller/cycleCountPreferenceController.java
index 8c4d5a1..b90d9a0 100644
--- a/src/main/java/com/huaheng/pc/config/cycleCountPreference/controller/cycleCountPreferenceController.java
+++ b/src/main/java/com/huaheng/pc/config/cycleCountPreference/controller/cycleCountPreferenceController.java
@@ -44,6 +44,8 @@ public class cycleCountPreferenceController extends BaseController {
 
     private String prefix = "config/cycleCountPreference";
 
+
+    @RequiresPermissions("config:cycleCountPreference:view")
     @GetMapping()
     public String cyclecountHeader()
     {
@@ -53,7 +55,7 @@ public class cycleCountPreferenceController extends BaseController {
     /**
      * 查询盘点单主列表
      */
-    //@RequiresPermissions("inventory:cycleCount:list")
+    @RequiresPermissions("config:cycleCountPreference:list")
     @PostMapping("/list")
     @Log(title = "配置-库存配置",operating = "盘点首选项", action = BusinessType.GRANT)
     @ResponseBody
@@ -102,7 +104,7 @@ public class cycleCountPreferenceController extends BaseController {
     /**
      * 新增保存盘点首选项
      */
-    //@RequiresPermissions("config:receiptPreference:add")
+    @RequiresPermissions("config:cycleCountPreference:add")
     @Log(title = "配置-盘点首选项", operating = "新增盘点首选项", action = BusinessType.INSERT)
     @PostMapping("/addSave")
     @ResponseBody
@@ -125,7 +127,7 @@ public class cycleCountPreferenceController extends BaseController {
     /**
      * 修改保存盘点首选项
      */
-    //@RequiresPermissions("config:receiptPreference:edit")
+    @RequiresPermissions("config:cycleCountPreference:edit")
     @Log(title = "通用-盘点首选项", operating = "修改盘点首选项", action = BusinessType.UPDATE)
     @PostMapping("/edit")
     @ResponseBody
@@ -151,7 +153,7 @@ public class cycleCountPreferenceController extends BaseController {
     /**
      * 删除盘点首选项
      */
-    //@RequiresPermissions("config:receiptPreference:remove")
+    @RequiresPermissions("config:cycleCountPreference:remove")
     @Log(title = "通用-盘点首选项", operating = "删除盘点首选项", action = BusinessType.DELETE)
     @PostMapping( "/remove")
     @ResponseBody
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 724fd2c..0ea378d 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
@@ -2,6 +2,7 @@ package com.huaheng.pc.inventory.adjustDetail.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.utils.StringUtils;
 import com.huaheng.common.utils.security.ShiroUtils;
 import com.huaheng.framework.web.domain.AjaxResult;
@@ -89,6 +90,11 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj
                 return AjaxResult.error("没有该条库存明细");
             }
         }
+        //明细单据的上层单编码需要和主单一直,主单空值则不判断
+        if(StringUtils.isNotEmpty(adjustHeader.getCycleCountCode()) || StringUtils.isNotEmpty(adjustHeader.getCheckCode())){
+            adjustDetail.setCycleCountCode(adjustHeader.getCycleCountCode());
+            adjustDetail.setCheckCode(adjustHeader.getCheckCode());
+        }
         //检查盘点单
         if(StringUtils.isNotEmpty(adjustDetail.getCycleCountCode())){
            CycleCountDetail cycleCountDetail = cycleCountDetailService.getById(adjustDetail.getCheckDetailId());
@@ -248,7 +254,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj
         inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode());
         inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode());
         inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode());
-        inventoryTransaction.setTransactionType(40);
+        inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTOUT );
         inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode());
         inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName());
         inventoryTransaction.setMaterialSpec(inventoryDetail.getMaterialSpec());
@@ -308,7 +314,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj
         inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode());
         inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode());
         inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode());
-        inventoryTransaction.setTransactionType(40);
+        inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTOUT );
         inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode());
         inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName());
         inventoryTransaction.setMaterialSpec(inventoryDetail.getMaterialSpec());
@@ -341,7 +347,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj
         inventoryTransaction2.setCompanyCode(inventoryDetail.getCompanyCode());
         inventoryTransaction2.setLocationCode(inventoryDetail.getLocationCode());
         inventoryTransaction2.setContainerCode(inventoryDetail.getContainerCode());
-        inventoryTransaction2.setTransactionType(30);
+        inventoryTransaction2.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTINTO);
         inventoryTransaction2.setMaterialCode(inventoryDetail.getMaterialCode());
         inventoryTransaction2.setMaterialName(inventoryDetail.getMaterialName());
         inventoryTransaction2.setMaterialSpec(inventoryDetail.getMaterialSpec());
@@ -450,7 +456,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj
         inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode());
         inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode());
         inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode());
-        inventoryTransaction.setTransactionType(30);
+        inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTINTO);
         inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode());
         inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName());
         inventoryTransaction.setMaterialSpec(inventoryDetail.getMaterialSpec());
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 ca767fc..bfbed10 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
@@ -3,6 +3,7 @@ package com.huaheng.pc.inventory.cycleCountDetail.service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+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;
@@ -75,7 +76,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
         cycleCountHeader.setCompanyCode(cycleCountDetail.getCompanyCode());
         LambdaQueryWrapper<CycleCountHeader> lambdaQueryWrapper = Wrappers.lambdaQuery(cycleCountHeader);
         cycleCountHeader = cycleCountHeaderService.getOne(lambdaQueryWrapper);
-        if(cycleCountHeader.getStatusCyc() < 10 ){
+        if(cycleCountHeader.getStatusCyc() < QuantityConstant.CYCLECOUNT_STATUS_EXECUTING){
             //主单状态小于10则修改
             cycleCountHeader.setStatusCyc(status);  //主单状态
             cycleCountHeaderService.saveOrUpdate(cycleCountHeader);
@@ -103,7 +104,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
         if(cyclecountHeader==null){
             return AjaxResult.error("盘点主单据不存在");
         }
-        if(cyclecountHeader.getStatusCyc() > 1){
+        if(cyclecountHeader.getStatusCyc() > QuantityConstant.CYCLECOUNT_STATUS_BUILD){
             return AjaxResult.error("盘点单非新建状态,无法再添加明细");
         }
         //默认盘点配置,首选项
@@ -195,7 +196,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
         int count = 0;
         int countErr = 0;
         for(CycleCountDetail item:list){
-            if(item.getEnableStatus() < 5 && item.getTaskHeaderId() == null){
+            if(item.getEnableStatus() < QuantityConstant.CYCLECOUNT_STATUS_BUILDTASK && item.getTaskHeaderId() == null){
                 AjaxResult result = this.createCycleCoutTaskByDetailId(item.getId());
                 if(result.getCode()==200){
                     count++;
@@ -246,11 +247,11 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
         //查询任务头和明细有相同容器,没有就新增任务头和明细
         LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery();
         taskHeaderLambdaQueryWrapper
-                .lt(TaskHeader::getStatus,100)
+                .lt(TaskHeader::getStatus,QuantityConstant.TASK_STATUS_COMPLETED)
                 .eq(TaskHeader::getWarehouseCode,ShiroUtils.getWarehouseCode())
                 .eq(TaskHeader::getCompanyCode,cycleCountDetail.getCompanyCode())
-                .eq(TaskHeader::getInternalTaskType,700)
-                .eq(TaskHeader::getTaskType,700)
+                .eq(TaskHeader::getInternalTaskType,QuantityConstant.TASK_INTENERTYPE_CYCLECOUNT)
+                .eq(TaskHeader::getTaskType,QuantityConstant.TASK_TYPE_CYCLECOUNT)
                 .eq(TaskHeader::getContainerCode,cycleCountDetail.getContainerCode());//容器
         List<TaskHeader> taskHeaderList = taskHeaderService.list(taskHeaderLambdaQueryWrapper);
 
@@ -260,10 +261,10 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
             //存在相同容器的主任务直接加入该条主任务的明细
             task.setWarehouseCode(ShiroUtils.getWarehouseCode());
             task.setCompanyCode(cycleCountDetail.getCompanyCode());
-            task.setInternalTaskType(700);
-            task.setTaskType(700);
+            task.setInternalTaskType(QuantityConstant.TASK_INTENERTYPE_CYCLECOUNT);
+            task.setTaskType(QuantityConstant.TASK_TYPE_CYCLECOUNT);
             task.setContainerCode(cycleCountDetail.getContainerCode());
-            task.setStatus(0);
+            task.setStatus(QuantityConstant.TASK_STATUS_BUILD);
             task.setFromLocation(cycleCountDetail.getLocationCode());
             task.setToLocation(cycleCountDetail.getLocationCode());
             task.setCreated(new Date());
@@ -320,7 +321,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
         //cycleCountDetail.setTaskHeaderId(task.getId());
         cycleCountDetail.setLastUpdated(new Date());
         cycleCountDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
-        cycleCountDetail.setEnableStatus(5);
+        cycleCountDetail.setEnableStatus(QuantityConstant.CYCLECOUNT_STATUS_BUILDTASK);
         cycleCountDetail.setTaskHeaderId(task.getId());
         cycleCountDetail.setTaskDetailId(taskDetail.getId());
         this.saveOrUpdate(cycleCountDetail);
@@ -331,7 +332,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
         cycleCountHeader.setCompanyCode(cycleCountDetail.getCompanyCode());
         LambdaQueryWrapper<CycleCountHeader> lamb = Wrappers.lambdaQuery(cycleCountHeader);
         cycleCountHeader = cycleCountHeaderService.getOne(lamb);
-        cycleCountHeader.setStatusCyc(5);
+        cycleCountHeader.setStatusCyc(QuantityConstant.CYCLECOUNT_STATUS_BUILDTASK);
         cycleCountHeaderService.saveOrUpdate(cycleCountHeader);
         return AjaxResult.success("盘点任务生成成功");
     }
@@ -354,10 +355,10 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
         LambdaQueryWrapper<CycleCountHeader> cycleCountHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(cycleCountHeader);
          cycleCountHeader = cycleCountHeaderService.getOne(cycleCountHeaderLambdaQueryWrapper); //主单
         //任务执行后再实盘登记
-        if(cyclecountDetail.getEnableStatus() < 10){
+        if(cyclecountDetail.getEnableStatus() < QuantityConstant.CYCLECOUNT_STATUS_EXECUTING){
             return AjaxResult.error("盘点任务未执行不能登记数量!");
         }
-        if(cyclecountDetail.getEnableStatus() == 100){
+        if(cyclecountDetail.getEnableStatus() == QuantityConstant.CYCLECOUNT_STATUS_COMPLETED){
             return AjaxResult.error("盘点任务完成后不能再登记数量!");
         }
         if(cycleCountHeader == null){
@@ -380,7 +381,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
         }
         cyclecountDetail.setCountedQty(qty);
         cyclecountDetail.setGapQty(qty.subtract(cyclecountDetail.getSystemQty()));
-        cyclecountDetail.setEnableStatus(15);
+        cyclecountDetail.setEnableStatus(QuantityConstant.CYCLECOUNT_STATUS_REGISTERED);
         cyclecountDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
         cyclecountDetail.setLastUpdated(new Date());
         this.saveOrUpdate(cyclecountDetail);
@@ -454,7 +455,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
                 item.setCycleCountHeadCode(cycleCountHeaderCode1);
                 item.setCountedQty(null);
                 item.setGapQty(BigDecimal.ZERO);
-                item.setEnableStatus(1);
+                item.setEnableStatus(QuantityConstant.CYCLECOUNT_STATUS_BUILD);
                 item.setCreatedBy(ShiroUtils.getLoginName());
                 item.setCreated(new Date());
                 cycleCountDetailList.add(item);
diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderServiceImpl.java
index 60dee9f..e6bf6f7 100644
--- a/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderServiceImpl.java
@@ -2,6 +2,7 @@ package com.huaheng.pc.inventory.cycleCountHeader.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.exception.service.ServiceException;
 import com.huaheng.common.utils.security.ShiroUtils;
 import com.huaheng.framework.web.domain.AjaxResult;
@@ -66,9 +67,9 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl<CycleCountHeaderMap
         List<CycleCountDetail> list = cycleCountDetailService.list(lam);
         //当有子单的状态为100时触发主单的完成状态
         //100状态只有全部完成才写入主单
-        long count100 = list.stream().filter(t->t.getEnableStatus() == 100).count(); //明细已完成的条数
+        long count100 = list.stream().filter(t->t.getEnableStatus() == QuantityConstant.CYCLECOUNT_STATUS_COMPLETED).count(); //明细已完成的条数
         if(count100 == list.size() ){
-            cyclecountHeader.setStatusCyc(100);
+            cyclecountHeader.setStatusCyc(QuantityConstant.CYCLECOUNT_STATUS_COMPLETED);
             this.saveOrUpdate(cyclecountHeader);
         }
         //有任何子单没有完成则主单不修改为100
@@ -149,7 +150,7 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl<CycleCountHeaderMap
 
         //查询该条盘点单头 id
         CycleCountHeader cyclecountHeader = cycleCountHeaderMapper.selectById(id);
-        if(cyclecountHeader.getStatusCyc() < 100){
+        if(cyclecountHeader.getStatusCyc() < QuantityConstant.CYCLECOUNT_STATUS_COMPLETED){
             //查询是否已生成差异单
             throw new ServiceException("该条盘点单无法生成调整单,必须为盘点任务完成,请检查状态!");
         }
@@ -212,7 +213,7 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl<CycleCountHeaderMap
         }
         adjustDetailService.saveBatch(adjustDetails);
         //修改盘点主单状态为已生成差异单
-        cyclecountHeader.setStatusCyc(101);
+        cyclecountHeader.setStatusCyc(QuantityConstant.CYCLECOUNT_STATUS_GENERATEADJUST);
         this.saveOrUpdate(cyclecountHeader);
 
         return AjaxResult.success("差异调整及明细单生成完毕!");
diff --git a/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java b/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java
index 8a55605..1dc07b0 100644
--- a/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java
@@ -2,6 +2,7 @@ package com.huaheng.pc.inventory.inventoryDetail.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+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;
@@ -92,10 +93,10 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe
         TaskHeader taskHeader = new TaskHeader();
         taskHeader.setWarehouseCode(inventoryDetail.getWarehouseCode());
         taskHeader.setCompanyCode(inventoryDetail.getCompanyCode());
-        taskHeader.setInternalTaskType(200);
-        taskHeader.setTaskType(900);
+        taskHeader.setInternalTaskType(QuantityConstant.TASK_INTENERTYPE_PICKING);
+        taskHeader.setTaskType(QuantityConstant.TASK_TYPE_VIEW);
         taskHeader.setContainerCode(inventoryDetail.getContainerCode());
-        taskHeader.setStatus(0);
+        taskHeader.setStatus(QuantityConstant.TASK_STATUS_BUILD);
         taskHeader.setFromLocation(inventoryDetail.getLocationCode());
         taskHeader.setToLocation(inventoryDetail.getLocationCode());
         taskHeader.setCreated(new Date());
@@ -178,9 +179,9 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe
             CheckHeader checkHeader = new CheckHeader();
             //判断入库单明细与该单已选中质检的库存明细比较,得出质检单的类型
             if(inventoryDetailList.size()>inventoryDetails.size()){
-                checkHeader.setType("300");
+                checkHeader.setType(QuantityConstant.CHECK_TYPE_SELECT.toString());
             }else {
-                checkHeader.setType("200");
+                checkHeader.setType(QuantityConstant.CHECK_TYPE_FULL.toString());
             }
 
             //生成质检单号code
@@ -196,7 +197,7 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe
             checkHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());
             checkHeader.setReferCode(code);
             checkHeader.setEnable(1);
-            checkHeader.setStatus("0");
+            checkHeader.setStatus(QuantityConstant.CHECK_STATUS_BUILD.toString());
             checkHeader.setCreatedBy(ShiroUtils.getLoginName());
             Boolean flag=checkHeaderService.save(checkHeader);
             if(flag == false){
@@ -211,7 +212,7 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe
                 checkDetail.setCheckHeaderId(checkHeader.getId());
                 checkDetail.setCheckCode(checkCode);
                 checkDetail.setInventoryDetailId(item.getId());
-                checkDetail.setStatus("0");
+                checkDetail.setStatus(QuantityConstant.CHECK_STATUS_BUILD.toString());
                 checkDetail.setCreatedBy(ShiroUtils.getLoginName());
                 checkDetail.setCreated(new Date());
                 checkDetail.setLastUpdatedBy(null);
diff --git a/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java
index 849ba97..671dd47 100644
--- a/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java
@@ -2,6 +2,7 @@ package com.huaheng.pc.inventory.inventoryHeader.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+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;
@@ -120,10 +121,10 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe
         TaskHeader taskHeader = new TaskHeader();
         taskHeader.setWarehouseCode(loc.getWarehouseCode());
         taskHeader.setCompanyCode("空容器");//货主
-        taskHeader.setInternalTaskType(100); //入库内部类型都给100
-        taskHeader.setTaskType(500);
+        taskHeader.setInternalTaskType(QuantityConstant.TASK_INTENERTYPE_SHELF); //入库内部类型都给100
+        taskHeader.setTaskType(QuantityConstant.TASK_TYPE_EMPTYRECEIPT);
         taskHeader.setContainerCode(container.getCode());
-        taskHeader.setStatus(1);
+        taskHeader.setStatus(QuantityConstant.TASK_STATUS_BUILD);
         taskHeader.setFromLocation("");
         taskHeader.setToLocation(loc.getCode());
         taskHeader.setCreated(new Date());
@@ -199,10 +200,10 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe
         TaskHeader taskHeader = new TaskHeader();
         taskHeader.setWarehouseCode(loc.getWarehouseCode());
         taskHeader.setCompanyCode("空容器");//货主
-        taskHeader.setInternalTaskType(200); //出库内部类型都给200
-        taskHeader.setTaskType(600);
+        taskHeader.setInternalTaskType(QuantityConstant.TASK_INTENERTYPE_PICKING); //出库内部类型都给200
+        taskHeader.setTaskType(QuantityConstant.TASK_TYPE_EMPTYSHIPMENT);
         taskHeader.setContainerCode(container.getCode());
-        taskHeader.setStatus(1);
+        taskHeader.setStatus(QuantityConstant.TASK_STATUS_BUILD);
         taskHeader.setFromLocation(sourceLocation);
         taskHeader.setToLocation("");
         taskHeader.setCreated(new Date());
@@ -272,10 +273,10 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe
         TaskHeader taskHeader = new TaskHeader();
         taskHeader.setWarehouseCode(loc.getWarehouseCode());
         taskHeader.setCompanyCode("空容器");//货主
-        taskHeader.setInternalTaskType(200); //出库内部类型都给200
-        taskHeader.setTaskType(900);
+        taskHeader.setInternalTaskType(QuantityConstant.TASK_INTENERTYPE_PICKING); //出库内部类型都给200
+        taskHeader.setTaskType(QuantityConstant.TASK_TYPE_VIEW);
         taskHeader.setContainerCode(container.getCode());
-        taskHeader.setStatus(1);
+        taskHeader.setStatus(QuantityConstant.TASK_STATUS_BUILD);
         taskHeader.setFromLocation(location);
         taskHeader.setToLocation(location);
         taskHeader.setCreated(new Date());
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/service/ReceiptContainerDetailServiceImpl.java b/src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/service/ReceiptContainerDetailServiceImpl.java
index 322490d..e73692b 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/service/ReceiptContainerDetailServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/service/ReceiptContainerDetailServiceImpl.java
@@ -3,6 +3,7 @@ package com.huaheng.pc.receipt.receiptContainerDetail.service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.exception.service.ServiceException;
 import com.huaheng.common.utils.security.ShiroUtils;
 import com.huaheng.framework.web.domain.AjaxResult;
@@ -54,7 +55,7 @@ public class ReceiptContainerDetailServiceImpl extends ServiceImpl<ReceiptContai
         for (Integer id : idList){
             ReceiptContainerDetail receiptContainerDetail = this.getById(id);
             //如果已生成任务不允许撤销
-            if (receiptContainerDetail.getStatus() < 10){
+            if (receiptContainerDetail.getStatus() < QuantityConstant.RECEIPT_CONTAINER_TASK){
                 //回滚入库单明细收货数量
                 ReceiptDetail receiptDetail = receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId());
                 receiptDetail.setOpenQty(receiptDetail.getOpenQty().subtract(receiptContainerDetail.getQty()));
@@ -84,8 +85,8 @@ public class ReceiptContainerDetailServiceImpl extends ServiceImpl<ReceiptContai
                 if (containerDetailList.size() == 0){
                     ReceiptHeader receiptHeader = new ReceiptHeader();
                     receiptHeader.setId(receiptContainerDetail.getReceiptId());
-                    receiptHeader.setFirstStatus(200);
-                    receiptHeader.setLastStatus(200);
+                    receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_RECEIVING);
+                    receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_RECEIVING);
                     receiptHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
 
                     if (!receiptHeaderService.updateById(receiptHeader)){ throw new ServiceException("回滚头表状态失败"); }
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java
index 1495ec0..e303653 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.exception.service.ServiceException;
 import com.huaheng.common.utils.security.ShiroUtils;
 import com.huaheng.framework.web.domain.AjaxResult;
@@ -74,7 +75,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
         if (taskType == 1){
             //创建临时容器
             containerCode = createContainer();
-            taskType = 100;
+            taskType = QuantityConstant.TASK_TYPE_WHOLERECEIPT;
         }else {
             if (taskType == 0){ throw new ServiceException("容器状态未知"); }
         }
@@ -87,7 +88,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
         //根据容器编码查询组盘表头记录
         LambdaQueryWrapper<ReceiptContainerHeader> lambda = Wrappers.lambdaQuery();
         lambda.eq(ReceiptContainerHeader::getContainerCode, containerCode)
-            .eq(ReceiptContainerHeader::getStatus, 0);
+            .eq(ReceiptContainerHeader::getStatus, QuantityConstant.RECEIPT_CONTAINER_BUILD);
         List<ReceiptContainerHeader> list = this.list(lambda);
 
         ReceiptContainerHeader receiptContainerHeader = new ReceiptContainerHeader();
@@ -111,7 +112,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
             }
         } else {
             receiptContainerHeader = list.get(0);
-            if (receiptContainerHeader.getStatus() > 9 && receiptContainerHeader.getStatus() < 20){
+            if (receiptContainerHeader.getStatus() >= QuantityConstant.RECEIPT_CONTAINER_TASK && receiptContainerHeader.getStatus() < QuantityConstant.RECEIPT_CONTAINER_FINISHED){
                 throw new ServiceException("容器已经生成任务,不能放物料了!");
             }
         }
@@ -130,8 +131,8 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
 
         receiptContainerDetailAdd(receiptContainerHeaders.get(0).getId(), receiptDetail, qty, containerCode, locationCode);
         //如果单据数量等于已收数量,更新入库详情状态和入库单状态
-        if (receiptDetail.getTotalQty().equals(receiptDetail.getOpenQty())){
-            receiptDetail.setProcessStamp("200");
+        if (receiptDetail.getTotalQty() == receiptDetail.getOpenQty()){
+            receiptDetail.setProcessStamp(QuantityConstant.RECEIPT_HEADER_RECEIVING.toString());
             if (!receiptDetailService.updateById(receiptDetail)){
                 throw new ServiceException("更新入库详情处理标记失败");
             }
@@ -155,7 +156,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
     public Boolean cancelByIds(List<Integer> ids) {
         for (Integer id : ids) {
             //如果已生成任务则不允许取消组盘
-            if (this.getById(id).getStatus() < 10){
+            if (this.getById(id).getStatus() < QuantityConstant.RECEIPT_CONTAINER_TASK){
                 //根据组盘头表id查询组盘明细表
                 LambdaQueryWrapper<ReceiptContainerDetail> containerDetailLambda = Wrappers.lambdaQuery();
                 containerDetailLambda.eq(ReceiptContainerDetail::getReceiptContainerId, id);
@@ -178,8 +179,8 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
                     if (containerDetailList == null){
                         ReceiptHeader receiptHeader = new ReceiptHeader();
                         receiptHeader.setId(receiptContainerDetail.getReceiptId());
-                        receiptHeader.setFirstStatus(200);
-                        receiptHeader.setLastStatus(200);
+                        receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_RECEIVING);
+                        receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_RECEIVING);
                         receiptHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
 
                         if (!receiptHeaderService.updateById(receiptHeader)){ throw new ServiceException("回滚头表状态失败"); }
@@ -232,15 +233,15 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
         //检查该容器编码是否已存任务
         LambdaQueryWrapper<TaskHeader> lambdaQueryWrapper = Wrappers.lambdaQuery();
         lambdaQueryWrapper.eq(TaskHeader::getContainerCode, containerCode)
-                .lt(TaskHeader::getStatus, 100)
+                .lt(TaskHeader::getStatus, QuantityConstant.TASK_STATUS_COMPLETED)
                 .eq(TaskHeader::getWarehouseCode, ShiroUtils.getWarehouseCode());
         if (taskHeaderService.count(lambdaQueryWrapper) > 0){
             throw new ServiceException("容器已经存在任务,请更换容器");
         }
         if ("empty".equals(container.getStatus())){
-            return 100;
+            return QuantityConstant.TASK_TYPE_WHOLERECEIPT;
         }else if ("some".equals(container.getStatus())) {
-            return 200;
+            return QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT;
         } else if ("full".equals(container.getStatus())) {
             throw new ServiceException("该容器已满,请更换容器");
         }
@@ -258,7 +259,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
     Boolean checkLocationCode(String locationCode, String containerCode, Integer taskType) {
         //如果选了库位,就要校验库位和已经组盘的库位是否一致,避免重入库
         if (StringUtils.isEmpty(locationCode)) {
-            if  ("200".equals(locationCode)) {
+            if  (QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT.equals(locationCode)) {
                 throw new ServiceException("补充入库,必须填写库位");
             } else {
                 return  true;
@@ -291,14 +292,12 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
         }
         if (!"empty".equals(location.getStatus()) ) {
             throw new ServiceException("库位不是空闲状态!");
-        }
-        if ("100".equals(taskType)) {
-            if (StringUtils.isNotEmpty(location.getContainerCode())){
+        if (QuantityConstant.TASK_TYPE_WHOLERECEIPT.equals(taskType)) {
+            if (com.huaheng.common.utils.StringUtils.isNotEmpty(location.getContainerCode()))
                 throw new ServiceException("库位(" + containerCode + ")有容器(" + location.getContainerCode() + "),不能整盘入库!");
-            }
         }
-        if("200".equals(taskType))  {
-            if (com.huaheng.common.utils.StringUtils.isEmpty(location.getContainerCode())) {
+        if(QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT.equals(taskType))  {
+            if (com.huaheng.common.utils.StringUtils.isEmpty(location.getContainerCode()))
                 throw new ServiceException("库位(" + locationCode + ")没有容器,不能补充入库!");
             } else if (!location.getContainerCode().equals(containerCode)) {
                 throw new ServiceException("库位(" + containerCode + ")对应的容器是:" + location.getContainerCode()+ ",请重选库位!");
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java b/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java
index be1f0a4..2b302fc 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java
@@ -2,6 +2,7 @@ package com.huaheng.pc.receipt.receiptDetail.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+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;
@@ -74,7 +75,7 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R
         //判断入库头表状态
         if (receiptHeader == null ){
             throw new ServiceException("找不到主单据");
-        } else if (receiptHeader.getFirstStatus() > 100){
+        } else if (receiptHeader.getFirstStatus() > QuantityConstant.RECEIPT_HEADER_POOL){
             throw new ServiceException("单据进入订单池后,不允许新增明细");
         } else if (receiptHeader.getFirstStatus() == 20) {
             throw new ServiceException("单据已作废");
@@ -178,8 +179,8 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R
             List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(receiptDetail.getStatusFlowCode());
             String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp());
             //在状态到达时候是判断是否要质检
-            if ("200".equals(status) && inspection(receiptDetail)){
-                receiptDetail.setProcessStamp("180");
+            if (QuantityConstant.RECEIPT_HEADER_RECEIVING.toString().equals(status) && inspection(receiptDetail)){
+                receiptDetail.setProcessStamp(QuantityConstant.RECEIPT_HEADER_CHECK.toString());
             } else {
                 receiptDetail.setProcessStamp(status);
             }
@@ -206,8 +207,8 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R
             List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(receiptType.getReceiptFlow());
             String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp());
             //在状态到达时候是判断是否要质检
-            if ("200".equals(status) && inspection(receiptDetail)){
-                receiptDetail.setProcessStamp("180");
+            if (QuantityConstant.RECEIPT_HEADER_RECEIVING.toString().equals(status) && inspection(receiptDetail)){
+                receiptDetail.setProcessStamp(QuantityConstant.RECEIPT_HEADER_CHECK.toString());
             } else {
                 receiptDetail.setProcessStamp(status);
             }
@@ -217,8 +218,8 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R
             List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(material.getReceivingFlow());
             String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp());
             //在状态到达时候是判断是否要质检
-            if ("200".equals(status) && inspection(receiptDetail)){
-                receiptDetail.setProcessStamp("180");
+            if (QuantityConstant.RECEIPT_HEADER_RECEIVING.toString().equals(status) && inspection(receiptDetail)){
+                receiptDetail.setProcessStamp(QuantityConstant.RECEIPT_HEADER_CHECK.toString());
             } else {
                 receiptDetail.setProcessStamp(status);
             }
@@ -232,8 +233,8 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R
                 List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(materialType.getReceivingFlow());
                 String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp());
                 //在状态到达时候是判断是否要质检
-                if ("200".equals(status) && inspection(receiptDetail)){
-                    receiptDetail.setProcessStamp("180");
+                if (QuantityConstant.RECEIPT_HEADER_RECEIVING.toString().equals(status) && inspection(receiptDetail)){
+                    receiptDetail.setProcessStamp(QuantityConstant.RECEIPT_HEADER_CHECK.toString());
                 } else {
                     receiptDetail.setProcessStamp(status);
                 }
@@ -251,8 +252,8 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R
                 List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(receiptPreference.getReceivingFlow());
                 String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp());
                 //在状态到达时候是判断是否要质检
-                if ("200".equals(status) && inspection(receiptDetail)){
-                    receiptDetail.setProcessStamp("180");
+                if (QuantityConstant.RECEIPT_HEADER_RECEIVING.toString().equals(status) && inspection(receiptDetail)){
+                    receiptDetail.setProcessStamp(QuantityConstant.RECEIPT_HEADER_CHECK.toString());
                 } else {
                     receiptDetail.setProcessStamp(status);
                 }
@@ -353,7 +354,7 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R
                 lambda.eq(ReceiptDetail::getReceiptId, id);
                 List<ReceiptDetail> receiptDetails = this.list(lambda);
                 for (ReceiptDetail receiptDetail : receiptDetails){
-                    receiptDetail.setProcessStamp("100");
+                    receiptDetail.setProcessStamp(QuantityConstant.RECEIPT_HEADER_POOL.toString());
                     receiptDetail = this.queryflow(receiptDetail);
                     if (!this.updateById(receiptDetail)){
                         throw new ServiceException("更新入库明细表失败");
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java b/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java
index b231d2b..15583b0 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.api.R;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+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;
@@ -67,8 +68,8 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei
 
         String code = createCode(receiptHeader.getReceiptType());
         receiptHeader.setCode(code);
-        receiptHeader.setFirstStatus(0);
-        receiptHeader.setLastStatus(0);
+        receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_BUILD);
+        receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_BUILD);
         receiptHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());
         receiptHeader.setCreatedBy(ShiroUtils.getLoginName());
         receiptHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
@@ -113,7 +114,7 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei
         List<ReceiptDetail> receiptDetails = receiptDetailService.list(receiptDetailLambda);
         //更新入库明细流程
         for (ReceiptDetail receiptDetail : receiptDetails) {
-            receiptDetail.setProcessStamp("120");
+            receiptDetail.setProcessStamp(QuantityConstant.RECEIPT_HEADER_RESERVATION.toString());
             if (!receiptDetailService.updateById(receiptDetail)){
                 throw new ServiceException("更新入库明细处理标记失败");
             }
@@ -139,7 +140,7 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei
     public AjaxResult arrival(Integer id) {
         LambdaQueryWrapper<ReceiptDetail> receiptDetailLambda = Wrappers.lambdaQuery();
         receiptDetailLambda.eq(ReceiptDetail::getReceiptId, id)
-                .eq(ReceiptDetail::getProcessStamp, "150");
+                .eq(ReceiptDetail::getProcessStamp, QuantityConstant.RECEIPT_HEADER_ARRIVAL.toString());
         List<ReceiptDetail> receiptDetails = receiptDetailService.list(receiptDetailLambda);
         //更新入库明细流程
         for (ReceiptDetail receiptDetail : receiptDetails) {
@@ -170,11 +171,11 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei
         //创建质检头表
         CheckHeader checkHeader = new CheckHeader();
         checkHeader.setCode(receiptHeader.getCode());
-        checkHeader.setType("100");
+        checkHeader.setType(QuantityConstant.CHECK_TYPE_RECEIPT.toString());
         checkHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());
         checkHeader.setReferCode(receiptHeader.getReferCode());
         checkHeader.setEnable(1);
-        checkHeader.setStatus("0");
+        checkHeader.setStatus(QuantityConstant.CHECK_STATUS_BUILD.toString());
         checkHeader.setCreatedBy(ShiroUtils.getLoginName());
         checkHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
 
@@ -200,7 +201,7 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei
             checkDetail.setMaterialUnit(receiptDetail.getMaterialUnit());
             checkDetail.setCompanyCode(receiptDetail.getCompanyCode());
             checkDetail.setInventorySts(receiptDetail.getInventorySts());
-            checkDetail.setStatus("0");
+            checkDetail.setStatus(QuantityConstant.CHECK_STATUS_BUILD.toString());
             checkDetail.setQty(receiptDetail.getTotalQty());
             checkDetail.setCheckBy(ShiroUtils.getLoginName());
             checkDetail.setCreatedBy(ShiroUtils.getLoginName());
@@ -222,11 +223,11 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei
         Integer[] idArray = Convert.toIntArray(ids);
         for (int i = 0; i<idArray.length; i++){
             ReceiptHeader receiptHeader = this.getById(idArray[i]);
-            if (receiptHeader.getFirstStatus()>5||receiptHeader.getLastStatus()>5){
+            if (receiptHeader.getFirstStatus()>QuantityConstant.RECEIPT_HEADER_MODERATED ||receiptHeader.getLastStatus()>QuantityConstant.RECEIPT_HEADER_MODERATED){
                 return AjaxResult.error("单据号为"+receiptHeader.getCode()+"入库单不需要审核");
             }
-            receiptHeader.setFirstStatus(5);
-            receiptHeader.setLastStatus(5);
+            receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_MODERATED);
+            receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_MODERATED);
             if (!this.updateById(receiptHeader)){
                 throw new ServiceException("更新入库头表失败");
             } else {
@@ -246,7 +247,7 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei
         lambda.eq(ReceiptDetail::getReceiptId, id);
         List<ReceiptDetail> receiptDetails = receiptDetailService.list(lambda);
         for (ReceiptDetail receiptDetail : receiptDetails) {
-            receiptDetail.setProcessStamp(String.valueOf(150));
+            receiptDetail.setProcessStamp(QuantityConstant.RECEIPT_HEADER_ARRIVAL.toString());
             receiptDetailService.updateById(receiptDetail);
             if (!receiptDetailService.updateById(receiptDetailService.queryflow(receiptDetail))){
                 throw new ServiceException("更新入库明细处理标记出错");
@@ -270,14 +271,14 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei
             List<ReceiptDetail> list = receiptDetailService.list(lambdaQueryWrapper);
             if (list.size() != 0){
                 for (ReceiptDetail receiptDetail : list){
-                    if (Integer.parseInt(receiptDetail.getProcessStamp()) < 100){
+                    if (Integer.parseInt(receiptDetail.getProcessStamp()) < QuantityConstant.RECEIPT_HEADER_POOL){
                         //判断入库明细是否需要审核
                         ReceiptDetail beforeReceiptDetail = receiptDetailService.queryflow(receiptDetail);
                         if (Integer.parseInt(beforeReceiptDetail.getProcessStamp()) == 5 || Integer.parseInt(beforeReceiptDetail.getProcessStamp()) == 100){
                             throw new ServiceException("请先提交审核");
                         }
                         //加入订单池
-                        receiptDetail.setProcessStamp("100");
+                        receiptDetail.setProcessStamp(QuantityConstant.RECEIPT_HEADER_POOL.toString());
                         ReceiptDetail receiptDetail1 = receiptDetailService.queryflow(receiptDetail);
                         if (!receiptDetailService.updateById(receiptDetail1)){
                             throw new ServiceException("更新入库明细状态失败");
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/service/ReceiptHeaderHistoryService.java b/src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/service/ReceiptHeaderHistoryService.java
index b701ea1..ec1111e 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/service/ReceiptHeaderHistoryService.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/service/ReceiptHeaderHistoryService.java
@@ -2,6 +2,7 @@ package com.huaheng.pc.receipt.receiptHeaderHistory.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.exception.service.ServiceException;
 import com.huaheng.common.utils.security.ShiroUtils;
 import com.huaheng.framework.web.domain.AjaxResult;
@@ -37,8 +38,8 @@ public class ReceiptHeaderHistoryService extends ServiceImpl<ReceiptHeaderHistor
     public AjaxResult add(Integer id){
         ReceiptHeader receiptHeader = receiptHeaderService.getById(id);
         if (receiptHeader == null)  return AjaxResult.success("");
-        if((receiptHeader.getFirstStatus()>=800 && receiptHeader.getLastStatus()>=800)||
-                (receiptHeader.getFirstStatus()<100 &receiptHeader.getLastStatus()<100)){
+        if((receiptHeader.getFirstStatus()>= QuantityConstant.RECEIPT_HEADER_POSTING && receiptHeader.getLastStatus()>=QuantityConstant.RECEIPT_HEADER_POSTING)||
+                (receiptHeader.getFirstStatus()<QuantityConstant.RECEIPT_HEADER_POOL &receiptHeader.getLastStatus()<QuantityConstant.RECEIPT_HEADER_POOL)){
             ReceiptHeaderHistory receiptHeaderHistory = new ReceiptHeaderHistory();
             List<ReceiptDetailHistory> receiptDetailHistoryList = new ArrayList<>();
             //查询入库单明细
diff --git a/src/main/java/com/huaheng/pc/receipt/receiving/service/ReceivingService.java b/src/main/java/com/huaheng/pc/receipt/receiving/service/ReceivingService.java
index c2a0ae4..76f11f5 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiving/service/ReceivingService.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiving/service/ReceivingService.java
@@ -2,6 +2,7 @@ package com.huaheng.pc.receipt.receiving.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+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;
@@ -84,13 +85,12 @@ public class ReceivingService {
     @Transactional
     public Boolean position(ReceiptContainerDetail receiptContainerDetail){
         ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getById(receiptContainerDetail.getReceiptContainerId());
-        if (0 !=receiptContainerHeader.getStatus()){
+        if (!(0 ==receiptContainerHeader.getStatus())){
             throw new ServiceException("该入库组盘已生成任务不能重新定位");
         }
         //如果入库组盘表中有目标库位说明已经指定
         if (StringUtils.isNotEmpty(receiptContainerHeader.getToLocation())){return true;}
-        /*定位规则*/
-        String locatingRule = receiptContainerHeader.getLocatingRule();
+        String locatingRule = receiptContainerHeader.getLocatingRule(); //定位规则
         if (StringUtils.isEmpty(locatingRule)){
             locatingRule = receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId()).getLocatingRule();
             //入库单明细定位规则不为空时执行
@@ -178,7 +178,7 @@ public class ReceivingService {
     public AjaxResult cancelPosition(ReceiptContainerDetail receiptContainerDetail){
         //查询入库组盘头
         ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getById(receiptContainerDetail.getReceiptContainerId());
-        if (receiptContainerHeader.getStatus() != 0){
+        if (!(receiptContainerHeader.getStatus().shortValue() == QuantityConstant.RECEIPT_CONTAINER_BUILD)){
             throw new ServiceException("组盘已生成任务不能取消定位");
         }
         //将入库组盘头表中的而库位编码赋值null
@@ -200,7 +200,7 @@ public class ReceivingService {
 
         //回滚入库明细状态
         ReceiptDetail receiptDetail = receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId());
-        receiptDetail.setProcessStamp("240");
+        receiptDetail.setProcessStamp(QuantityConstant.RECEIPT_HEADER_POSITION.toString());
         if ( !receiptDetailService.updateById(receiptDetail)){
             throw new ServiceException("回滚入库明细状态失败");
         }
diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java
index a358d26..8b94a72 100644
--- a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java
@@ -2,6 +2,7 @@ package com.huaheng.pc.shipment.shipmentContainerHeader.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.exception.service.ServiceException;
 import com.huaheng.common.utils.security.ShiroUtils;
 import com.huaheng.framework.web.domain.AjaxResult;
@@ -131,17 +132,6 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
         if (location == null) {
             throw new ServiceException("库位 " + inventoryDetail.getLocationCode() + " 不存在");
         }
-//        if (location.getStatus().equals("lock"))    {
-//            //如果库位状态是锁定的话,就查找出库组盘表,如果存在未下发
-//            LambdaQueryWrapper<ShipmentContainerHeader> lam=Wrappers.lambdaQuery();
-//            lam.eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode())
-//                    .eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode())
-//                    .eq(ShipmentContainerHeader::getTaskCreated,0);
-//            ShipmentContainerHeader shipmentContainerHeader = this.getOne(lam);
-//            if (shipmentContainerHeader == null)    {
-//                throw new ServiceException("库位已经锁定不能使用");
-//            }
-//        }
 
         //2.更新库存分配数
         inventoryDetail.setTaskQty(inventoryDetail.getTaskQty().add(shipmentCombinationModel.getShipQty()));
@@ -155,9 +145,9 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
         shipmentDetail.setRequestQty(shipmentDetail.getRequestQty().add(shipmentCombinationModel.getShipQty()));
         int i = shipmentDetail.getShipQty().compareTo(shipmentDetail.getRequestQty());
         if(i > 0){
-            shipmentDetail.setStatus(200);
+            shipmentDetail.setStatus(QuantityConstant.SHIPMENT_HEADER_WAVE);
         }else if(i == 0){
-            shipmentDetail.setStatus(300);
+            shipmentDetail.setStatus(QuantityConstant.SHIPMENT_HEADER_GROUPDISK);
         }else if(i < 0){
             throw new ServiceException("出库数量不能大于单据数量!");
         }
@@ -166,9 +156,9 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
         //自动判定出库任务状态,根据库存数量减去预定库存相等就是整盘出--预计任务状态
         BigDecimal inventoryQty = inventoryDetail.getQty().subtract(inventoryDetail.getTaskQty());
         if(inventoryQty.compareTo(new BigDecimal(0)) <= 0) {
-            shipmentCombinationModel.setTaskType(300);
+            shipmentCombinationModel.setTaskType(QuantityConstant.TASK_TYPE_WHOLESHIPMENT);
         } else {
-            shipmentCombinationModel.setTaskType(400);
+            shipmentCombinationModel.setTaskType(QuantityConstant.TASK_TYPE_SORTINGSHIPMENT);
         }
 
         //5.增加出库组盘头
@@ -198,7 +188,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
         lambdaQueryWrapper.eq(ShipmentContainerHeader::getLocationCode,location.getCode())
                 .eq(ShipmentContainerHeader::getContainerCode,location.getContainerCode())
                 .eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode())
-                .le(ShipmentContainerHeader::getStatus,20);
+                .le(ShipmentContainerHeader::getStatus,QuantityConstant.SHIPMENT_CONTAINER_FINISHED);
         ShipmentContainerHeader shipmentContainerHeader = this.getOne(lambdaQueryWrapper);
         if(shipmentContainerHeader != null)  {
             return shipmentContainerHeader;
@@ -219,7 +209,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
                 shipmentContainerHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());
                 shipmentContainerHeader.setCompanyCode(shipmentDetail.getCompanyCode());
                 shipmentContainerHeader.setContainerType(container.getContainerType());
-                shipmentContainerHeader.setStatus(0);
+                shipmentContainerHeader.setStatus(QuantityConstant.SHIPMENT_CONTAINER_BUILD);
                 shipmentContainerHeader.setTaskCreated(0);
                 shipmentContainerHeader.setCreatedBy(ShiroUtils.getLoginName());
                 Boolean flag = this.save(shipmentContainerHeader);
@@ -292,7 +282,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
             shipmentContainerDetaill.setQty(shipmentCombinationModel.getShipQty());
             shipmentContainerDetaill.setWaveId(shipmentDetail.getWaveId());
             shipmentContainerDetaill.setTaskCreated(0);
-            shipmentContainerDetaill.setStatus(0);
+            shipmentContainerDetaill.setStatus(QuantityConstant.SHIPMENT_CONTAINER_BUILD);
             shipmentContainerDetaill.setBatch(shipmentDetail.getBatch());
             shipmentContainerDetaill.setLot(shipmentDetail.getLot());
             shipmentContainerDetaill.setProjectNo(shipmentDetail.getProjectNo());
@@ -305,10 +295,10 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
 
         //4.查看组盘头状态,如果状态在10到20,则生成任务明细或修改任务明细的数量
         //查看任务头
-        if(shipmentContainerHeader.getStatus()>=10 && shipmentContainerHeader.getStatus()<30){
+        if(shipmentContainerHeader.getStatus()>=QuantityConstant.SHIPMENT_CONTAINER_TASK && shipmentContainerHeader.getStatus()<QuantityConstant.SHIPMENT_CONTAINER_REVIEWSUCCESS){
             LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper=Wrappers.lambdaQuery();
             taskHeaderLambdaQueryWrapper.eq(TaskHeader::getWarehouseCode,shipmentContainerHeader.getWarehouseCode())
-                    .eq(TaskHeader::getInternalTaskType,200)
+                    .eq(TaskHeader::getInternalTaskType,QuantityConstant.TASK_INTENERTYPE_PICKING)
                     .eq(TaskHeader::getAllocationHeadId,shipmentContainerHeader.getId());
             TaskHeader taskHeader=taskHeaderService.getOne(taskHeaderLambdaQueryWrapper);
             if(taskHeader==null){
@@ -322,7 +312,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
                 taskDetailLam.eq(TaskDetail::getWarehouseCode,shipmentContainerDetail.getWarehouseCode())
                         .eq(TaskDetail::getAllocationId,shipmentContainerDetail.getId())
                         .eq(TaskDetail::getTaskId,taskHeader.getId())
-                        .eq(TaskDetail::getInternalTaskType,200);
+                        .eq(TaskDetail::getInternalTaskType,QuantityConstant.TASK_INTENERTYPE_PICKING);
                 TaskDetail taskDetail = taskDetailService.getOne(taskDetailLam);
                 if(taskDetail == null){
                     throw new ServiceException("找不到对应的任务明细");
@@ -356,10 +346,10 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
                 taskDetail.setWaveId(shipmentContainerDetaill.getWaveId());
                 taskDetail.setBatch(shipmentContainerDetaill.getBatch());
                 taskDetail.setProjectNo(shipmentContainerDetail.getProjectNo());
-                if (shipmentContainerHeader.getStatus() == 10) {
-                    taskDetail.setStatus(0);
+                if (shipmentContainerHeader.getStatus() == QuantityConstant.SHIPMENT_CONTAINER_TASK) {
+                    taskDetail.setStatus(QuantityConstant.TASK_STATUS_BUILD);
                 } else {
-                    taskDetail.setStatus(10);
+                    taskDetail.setStatus(QuantityConstant.TASK_STATUS_RELEASE);
                 }
                 taskDetail.setCreatedBy(ShiroUtils.getLoginName());
                 taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
@@ -399,7 +389,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
         for(ShipmentContainerDetail shipmentContainerDetail:shipmentContainerDetails){
             //获取头
             ShipmentContainerHeader shipmentContainerHeader = this.getById(shipmentContainerDetail.getShippingContainerId());
-            if(shipmentContainerHeader.getStatus()>9){
+            if(shipmentContainerHeader.getStatus()>= QuantityConstant.SHIPMENT_CONTAINER_TASK){
                 return AjaxResult.error("容器"+shipmentContainerHeader.getContainerCode()+"非新建状态,不允许取消明细");
             }
             //恢复占用库存
@@ -410,9 +400,9 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
             ShipmentDetail shipmentDetail = shipmentDetailService.getById(shipmentContainerDetail.getShipmentDetailId());
             shipmentDetail.setRequestQty(shipmentDetail.getRequestQty().subtract(shipmentContainerDetail.getQty()));
             if(shipmentDetail.getRequestQty().compareTo(BigDecimal.ZERO) != 0 ){
-                shipmentDetail.setStatus(200);//明细状态恢复,如果删除后还有以出数量就是波次
+                shipmentDetail.setStatus(QuantityConstant.SHIPMENT_HEADER_WAVE);//明细状态恢复,如果删除后还有以出数量就是波次
             }else{
-                shipmentDetail.setStatus(100 );//明细状态
+                shipmentDetail.setStatus(QuantityConstant.SHIPMENT_HEADER_POOL );//明细状态
             }
             shipmentDetailService.saveOrUpdate(shipmentDetail);
             //删除这个配盘明细
@@ -511,7 +501,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
             List<InventoryDetail> inventoryList = shippingCombinationService.getInventorys(item);
             if(inventoryList.size() < 1 && item.getWaveId() != 0){
                 Wave wave = waveService.getById(item.getWaveId());
-                wave.setStatus(999);
+                wave.setStatus(QuantityConstant.WAVE_STATUS_FAILED);
                 waveService.updateById(wave);
                 throw new ServiceException("主单为"+item.getShipmentCode()+"子单id为"+item.getId() + "的单据没有库存,波次失败");
             }
@@ -528,7 +518,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
                     ShipmentCombinationModel shipmentCombination = new ShipmentCombinationModel();
                     shipmentCombination.setInventoryDetailId(inventory.getId());
                     shipmentCombination.setShipmentDetailId(item.getId());
-                    shipmentCombination.setType((short) 300);
+                    shipmentCombination.setType((short) QuantityConstant.TASK_TYPE_WHOLESHIPMENT.intValue());
 
                     //如果库存数 >= 待出库数,组盘数就是待出库数并且结束组盘,否则组盘数就是库存数
                     if (inventoryQty.compareTo(shipmentQty) > -1) {
@@ -559,7 +549,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
     public AjaxResult checkForCancelCombination(List<Integer> shipmentContainerIds) {
         for(int id : shipmentContainerIds){
             ShipmentContainerHeader shipmentContainerHeader = this.getById(id);
-            if(shipmentContainerHeader.getStatus()>9){
+            if(shipmentContainerHeader.getStatus()>=QuantityConstant.SHIPMENT_CONTAINER_TASK){
                 return AjaxResult.error("存在已生成任务的记录,请先取消任务再取消组盘");
             }
         }
diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java
index a3f1192..2e0c426 100644
--- a/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java
@@ -2,6 +2,7 @@ package com.huaheng.pc.shipment.shipmentDetail.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.exception.service.ServiceException;
 import com.huaheng.common.support.Convert;
 import com.huaheng.common.utils.DataUtils;
@@ -72,7 +73,7 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper,
         if (shipmentHeader == null) {
             return AjaxResult.error("找不到主单据");
         }
-        if (shipmentHeader.getFirstStatus() > 100) {
+        if (shipmentHeader.getFirstStatus() > QuantityConstant.SHIPMENT_HEADER_POOL) {
             //表示已经加入了波次
             return AjaxResult.error("主单据状态不允许新增明细");
         }
@@ -133,7 +134,7 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper,
         if (list.size() > 1) {
             return AjaxResult.error("有多个主单据,不能一起删除!");
         }
-        if (list.get(0).get("status") > 100) {
+        if (list.get(0).get("status") > QuantityConstant.SHIPMENT_HEADER_POOL) {
             return AjaxResult.error("单据状进入订单池,不允许删除明细");
         }
         Integer result = shipmentDetailMapper.batchDelete(ids);
@@ -173,7 +174,7 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper,
     @Override
     @Transactional
     public void saveWave(String ids, String code) {
-        Integer status = 100;
+        Integer status = QuantityConstant.SHIPMENT_HEADER_POOL;
         List<ShipmentHeader> shipmentHeaderList =shipmentPreferenceService.checkShipmentProcess(ids,status,code);
 
         //找到波次主表,看系统是否有此波次
@@ -222,7 +223,7 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper,
 
         //查看波次是否建成未执行
         LambdaQueryWrapper<Wave> waveLam = Wrappers.lambdaQuery();
-        waveLam.eq(Wave::getStatus,0)
+        waveLam.eq(Wave::getStatus,QuantityConstant.WAVE_STATUS_BUILD)
                 .eq(Wave::getWaveMode,code)
                 .eq(Wave::getWarehouseCode,ShiroUtils.getWarehouseCode());
         Wave wave = waveService.getOne(waveLam);
@@ -240,8 +241,8 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper,
             wave.setWarehouseCode(ShiroUtils.getWarehouseCode());
             wave.setMasterCode(code);
             wave.setWaveName(waveMaster.getName());
-            wave.setStatus(0);
-            wave.setCurrentWaveStep("0");
+            wave.setStatus(QuantityConstant.WAVE_STATUS_BUILD);
+            wave.setCurrentWaveStep(QuantityConstant.WAVE_STATUS_BUILD.toString());
             wave.setTotalShipments(Convert.toIntArray(ids).length);
             wave.setTotalLines(shipmentDetailList.size());
             wave.setTotalQty(qty);
@@ -255,8 +256,8 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper,
         //修改出库子单,加入波次ID,并修改状态为波次
         for(ShipmentDetail shipmentDetail :shipmentDetailList){
             shipmentDetail.setWaveId(wave.getId());
-            if(shipmentDetail.getStatus()<200) {
-                shipmentDetail.setStatus(200);
+            if(shipmentDetail.getStatus()<QuantityConstant.SHIPMENT_HEADER_WAVE) {
+                shipmentDetail.setStatus(QuantityConstant.SHIPMENT_HEADER_WAVE);
             }
         }
 
@@ -266,7 +267,7 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper,
         }
 
         for(ShipmentHeader shipmentHeader :shipmentHeaderList){
-            shipmentHeader.setLastStatus(200);
+            shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_WAVE);
         }
         flag = shipmentHeaderService.updateBatchById(shipmentHeaderList);
         if(flag == false){
diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentDetailHistory/service/ShipmentDetailHistoryServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentDetailHistory/service/ShipmentDetailHistoryServiceImpl.java
index c7bda6c..23bbc34 100644
--- a/src/main/java/com/huaheng/pc/shipment/shipmentDetailHistory/service/ShipmentDetailHistoryServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/shipment/shipmentDetailHistory/service/ShipmentDetailHistoryServiceImpl.java
@@ -2,6 +2,7 @@ package com.huaheng.pc.shipment.shipmentDetailHistory.service;
 
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.utils.DataUtils;
 import com.huaheng.common.utils.StringUtils;
 import com.huaheng.framework.web.domain.AjaxResult;
@@ -46,7 +47,7 @@ public class ShipmentDetailHistoryServiceImpl extends ServiceImpl<ShipmentDetail
         if (list.size() > 1) {
             return AjaxResult.error("有多个主单据,不能一起删除!");
         }
-        if (list.get(0).get("firstStatus") > 100) {
+        if (list.get(0).get("firstStatus") > QuantityConstant.SHIPMENT_HEADER_POOL) {
             return AjaxResult.error("单据状进入订单池,不允许删除明细");
         }
         Integer result = shipmentDetailHistoryMapper.batchDelete(ids);
diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java
index e37724a..9751efe 100644
--- a/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java
@@ -2,6 +2,7 @@ package com.huaheng.pc.shipment.shipmentHeader.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.exception.service.ServiceException;
 import com.huaheng.common.support.Convert;
 import com.huaheng.common.utils.security.ShiroUtils;
@@ -15,9 +16,11 @@ import com.huaheng.pc.shipment.shipmentHeaderHistory.domain.ShipmentHeaderHistor
 import com.huaheng.pc.shipment.shipmentHeaderHistory.service.ShipmentHeaderHistoryService;
 import com.huaheng.pc.system.dict.service.IDictDataService;
 import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.collections4.QueueUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
+import javax.xml.namespace.QName;
 import java.lang.reflect.InvocationTargetException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -58,8 +61,8 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper,
         }
         String code = createCode(shipmentHeader.getShipmentType());
         shipmentHeader.setId(null);
-        shipmentHeader.setFirstStatus(0);
-        shipmentHeader.setLastStatus(0);
+        shipmentHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_BUILD);
+        shipmentHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_BUILD);
         shipmentHeader.setLastUpdated(null);
         shipmentHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
         shipmentHeader.setCreated(null);
@@ -106,29 +109,29 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper,
         Map<String,Integer> map = shipmentContainerHeaderService.getShipmentContainerMaxAndMinStatusByShipmentID(shipmentId);
         if(map==null){
             //说明没有货箱,则直接首位均为新建
-            shipmentHeader.setFirstStatus(100);
-            shipmentHeader.setLastStatus(100);
+            shipmentHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_POOL);
+            shipmentHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_POOL);
 
             this.saveOrUpdate(shipmentHeader);
         }else {
             int firstStatus = map.get("maxStatus");
             int lastStatus = map.get("minStatus");
-            if(firstStatus<=20){
-                shipmentHeader.setFirstStatus(300);
+            if(firstStatus<=QuantityConstant.SHIPMENT_CONTAINER_FINISHED){
+                shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_GROUPDISK);
             }
-            if(firstStatus==30){
-                shipmentHeader.setFirstStatus(500);
+            if(firstStatus==QuantityConstant.SHIPMENT_CONTAINER_REVIEWSUCCESS){
+                shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED);
             }
-            if(lastStatus <=20){
-                shipmentHeader.setLastStatus(300);
+            if(lastStatus <=QuantityConstant.SHIPMENT_CONTAINER_FINISHED){
+                shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_GROUPDISK);
             }
-            if(lastStatus==30){
-                shipmentHeader.setLastStatus(500);
+            if(lastStatus==QuantityConstant.SHIPMENT_CONTAINER_REVIEWSUCCESS){
+                shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED);
             }
             //是否存在未配盘的数量,如果是,则尾状态为新建
             Integer UnCompleted = shipmentDetailService.countUnCompleted(shipmentId);
             if(UnCompleted != null && UnCompleted.intValue() > 0){
-                shipmentHeader.setLastStatus(100);
+                shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_POOL);
             }
             this.saveOrUpdate(shipmentHeader);
         }
@@ -189,9 +192,9 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper,
             }
 
             //2.小于100时,把主单和相应的子单加入到list中,大于等于100时,直接跳过
-            if(shipmentHeader.getFirstStatus() < 100 && shipmentHeader.getLastStatus() <100){
-                shipmentHeader.setFirstStatus(100);
-                shipmentHeader.setLastStatus(100);
+            if(shipmentHeader.getFirstStatus() < QuantityConstant.SHIPMENT_HEADER_POOL && shipmentHeader.getLastStatus() <QuantityConstant.SHIPMENT_HEADER_POOL){
+                shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_POOL);
+                shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_POOL);
                 shipmentHeaders.add(shipmentHeader);
 
                 LambdaQueryWrapper<ShipmentDetail> lam = Wrappers.lambdaQuery();
@@ -200,7 +203,7 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper,
                 List<ShipmentDetail> shipmentDetailList = shipmentDetailService.list(lam);
                 if(shipmentDetailList != null){
                     for(ShipmentDetail shipmentDetail : shipmentDetailList){
-                        shipmentDetail.setStatus(100);
+                        shipmentDetail.setStatus(QuantityConstant.SHIPMENT_HEADER_POOL);
                     }
                     shipmentDetails.addAll(shipmentDetailList);
                 }else {
diff --git a/src/main/java/com/huaheng/pc/shipment/wave/service/WaveService.java b/src/main/java/com/huaheng/pc/shipment/wave/service/WaveService.java
index 2968a98..02b28c3 100644
--- a/src/main/java/com/huaheng/pc/shipment/wave/service/WaveService.java
+++ b/src/main/java/com/huaheng/pc/shipment/wave/service/WaveService.java
@@ -3,6 +3,7 @@ package com.huaheng.pc.shipment.wave.service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.exception.service.ServiceException;
 import com.huaheng.common.support.Convert;
 import com.huaheng.common.utils.security.ShiroUtils;
@@ -58,7 +59,7 @@ public class WaveService extends ServiceImpl<WaveMapper, Wave> {
 
             //1、查看此波次的状态,状态不为o时,无法开始波次
             Wave wave = this.getById(id);
-            if(wave == null || wave.getStatus() != 0){
+            if(wave == null || wave.getStatus() != QuantityConstant.WAVE_STATUS_BUILD){
                 return AjaxResult.error("id为"+id+"的波次找不到,或者状态不能做开始操作");
             }
             waves.add(wave);
@@ -84,7 +85,7 @@ public class WaveService extends ServiceImpl<WaveMapper, Wave> {
 
         //5、修改波次的状态
         for(Wave wave : waves){
-            wave.setStatus(300);
+            wave.setStatus(QuantityConstant.WAVE_STATUS_END);
             wave.setCurrentWaveStep("生成任务");
         }
         Boolean flag = this.updateBatchById(waves);
@@ -116,16 +117,16 @@ public class WaveService extends ServiceImpl<WaveMapper, Wave> {
 
             //1、查看此波次是否可以释放
             Wave wave = this.getById(id);
-            if(wave == null || (wave.getStatus()!=300 && wave.getStatus()!=999)){
+            if(wave == null || (wave.getStatus()!=QuantityConstant.WAVE_STATUS_END && wave.getStatus()!=QuantityConstant.WAVE_STATUS_FAILED)){
                 return AjaxResult.error(id+"波次不可释放");
             }
 
             //2、查看此波次的状态,看是成功释放还是失败释放
-            if(wave.getStatus() == 300) {
+            if(wave.getStatus() == QuantityConstant.WAVE_STATUS_END) {
                 //成功释放——找到此波次的未执行的子任务列表
                 LambdaQueryWrapper<TaskDetail> lam = Wrappers.lambdaQuery();
                 lam.eq(TaskDetail::getWarehouseCode, ShiroUtils.getWarehouseCode())
-                        .eq(TaskDetail::getStatus, 0)
+                        .eq(TaskDetail::getStatus, QuantityConstant.TASK_STATUS_BUILD)
                         .eq(TaskDetail::getWaveId, id);
                 List<TaskDetail> taskDetails = taskDetailService.list(lam);
                 if (taskDetails != null) {
@@ -143,7 +144,7 @@ public class WaveService extends ServiceImpl<WaveMapper, Wave> {
                 HashSet<Integer> set = new HashSet<>();
                 for(ShipmentDetail item : shipmentDetails){
                     if(item.getShipQty().compareTo(item.getRequestQty())!=0) {
-                        item.setStatus(0);
+                        item.setStatus(QuantityConstant.SHIPMENT_HEADER_POOL);
                     }
                     item.setWaveId(0);
                     set.add(item.getShipmentId());
@@ -157,8 +158,8 @@ public class WaveService extends ServiceImpl<WaveMapper, Wave> {
                     if(shipmentHeader == null){
                         throw  new ServiceException("没有对应的出库主单");
                     }
-                    if(shipmentHeader.getFirstStatus()<= 200) {
-                        shipmentHeader.setFirstStatus(0);
+                    if(shipmentHeader.getFirstStatus()<= QuantityConstant.SHIPMENT_HEADER_WAVE) {
+                        shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_POOL);
                         flag = shipmentHeaderService.updateById(shipmentHeader);
                         if (flag == false) {
                             throw new ServiceException("修改出库主单失败");
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 e7bd2cf..b1bba29 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
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.huaheng.api.wcs.service.taskAssignService.TaskAssignService;
+import com.huaheng.common.constant.QuantityConstant;
 import com.huaheng.common.exception.service.ServiceException;
 import com.huaheng.common.utils.DataUtils;
 import com.huaheng.common.utils.StringUtils;
@@ -147,7 +148,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             if(taskHeader==null){
                 return AjaxResult.error("任务"+taskId+"未找到,操作中止");
             }
-            if(taskHeader.getStatus() > 9){
+            if(taskHeader.getStatus() >= QuantityConstant.TASK_STATUS_RELEASE){
                 return AjaxResult.error("存在任务"+taskHeader.getId()+"已下发或执行,操作中止");
             }
             //查出任务明细
@@ -168,23 +169,23 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             //删除主任务
             taskHeaderService.removeById(taskHeader.getId());
             // 更改库位状态(整盘入库任务除外)
-            if(taskHeader.getInternalTaskType() == 100 )
+            if(taskHeader.getInternalTaskType() == QuantityConstant.TASK_INTENERTYPE_SHELF )
             {
                 ReceiptContainerHeader record =new ReceiptContainerHeader();
-                record.setStatus((short)0);
+                record.setStatus((short)QuantityConstant.RECEIPT_CONTAINER_BUILD.intValue());
                 record.setId(taskHeader.getAllocationHeadId());
                 if (!receiptContainerHeaderService.updateById(record)){throw new ServiceException("回滚组盘明细失败");}
             }
             //根据任务类型来更新货箱状态
             //修改关联的货箱状态
-            if(taskHeader.getInternalTaskType() == 200)  {
+            if(taskHeader.getInternalTaskType() == QuantityConstant.TASK_INTENERTYPE_PICKING)  {
                 ShipmentContainerHeader shipmentContainerHeader = new ShipmentContainerHeader();
                 shipmentContainerHeader.setId(taskHeader.getAllocationHeadId());
-                shipmentContainerHeader.setStatus(0);
+                shipmentContainerHeader.setStatus(QuantityConstant.SHIPMENT_CONTAINER_BUILD);
                 shipmentContainerHeaderService.updateById(shipmentContainerHeader);
             }
             //盘点取消任务,恢复明细状态为1
-            if(taskHeader.getInternalTaskType() == 700)   {
+            if(taskHeader.getInternalTaskType() == QuantityConstant.TASK_INTENERTYPE_CYCLECOUNT)   {
 
                 CycleCountDetail cycleCountDetail = new CycleCountDetail();
                 cycleCountDetail.setCompanyCode(taskDetail.getCompanyCode());
@@ -205,7 +206,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 }
 
             }
-            if(taskHeader.getInternalTaskType()==100||taskHeader.getInternalTaskType()==200){
+            if(taskHeader.getInternalTaskType()==QuantityConstant.TASK_INTENERTYPE_SHELF ||taskHeader.getInternalTaskType()==QuantityConstant.TASK_INTENERTYPE_PICKING){
                 if(taskHeader.getToLocation()!=null){
                     //更新托盘、库位状态
                     locationService.updateStatus(taskHeader.getToLocation(), "empty");
@@ -235,7 +236,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         if (shipmentContainerHeader == null) {
             return AjaxResult.error("出库货箱" + shipmentContainerHeaderId + "未找到,操作中止");
         }
-        if (shipmentContainerHeader.getStatus() > 9) {
+        if (shipmentContainerHeader.getStatus() >= QuantityConstant.SHIPMENT_CONTAINER_TASK) {
             return AjaxResult.error("出库货箱" + shipmentContainerHeader.getContainerCode() + "已经生成任务,请不要重复生成,操作中止");
         }
         //获取所有子货箱
@@ -257,7 +258,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         //创建任务头
         TaskHeader task = new TaskHeader();
         //分拣出库
-        task.setTaskType(400);
+        task.setTaskType(QuantityConstant.TASK_TYPE_SORTINGSHIPMENT);
         task.setFromLocation(shipmentContainerHeader.getLocationCode());
         task.setToLocation(shipmentContainerHeader.getLocationCode());
         //判断是否整出任务,钱柜和AGV不能整出
@@ -280,17 +281,17 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 containerTotal = containerTotal.add(item.getQty());
             }
             if (inventoryTotal.compareTo(containerTotal) == 0) {
-                task.setTaskType(300);//整盘出库
+                task.setTaskType(QuantityConstant.TASK_TYPE_WHOLESHIPMENT);//整盘出库
                 task.setToLocation("");
             }
 
-        task.setInternalTaskType(200);
+        task.setInternalTaskType(QuantityConstant.TASK_INTENERTYPE_PICKING);
         task.setAllocationHeadId(shipmentContainerHeader.getId());
         task.setWarehouseCode(shipmentContainerHeader.getWarehouseCode());
         task.setCompanyCode(shipmentContainerHeader.getCompanyCode());
         task.setAssignedUser(ShiroUtils.getLoginName());
         task.setConfirmedBy(ShiroUtils.getLoginName());
-        task.setStatus(0);
+        task.setStatus(QuantityConstant.TASK_STATUS_BUILD);
         task.setContainerCode(shipmentContainerHeader.getContainerCode());
         task.setCreatedBy(ShiroUtils.getLoginName());
         task.setCreated(new Date());
@@ -321,7 +322,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             taskDetail.setLot(shipmentContainerDetail.getLot());
             taskDetail.setBatch(shipmentContainerDetail.getBatch());
             taskDetail.setProjectNo(shipmentContainerDetail.getProjectNo());
-            taskDetail.setStatus(0);
+            taskDetail.setStatus(QuantityConstant.TASK_STATUS_BUILD);
             taskDetail.setWaveId(shipmentContainerDetail.getWaveId());
             taskDetail.setInventorySts(shipmentContainerDetail.getInventorySts());
             taskDetail.setCreatedBy(ShiroUtils.getLoginName());
@@ -331,10 +332,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 throw new ServiceException("新建任务明细失败,sql报错");
             }
 
-            shipmentContainerDetail.setStatus(10);
+            shipmentContainerDetail.setStatus(QuantityConstant.SHIPMENT_CONTAINER_TASK);
         }
         //更新货位状态
-        shipmentContainerHeader.setStatus(10);
+        shipmentContainerHeader.setStatus(QuantityConstant.SHIPMENT_CONTAINER_TASK);
         flag = shipmentContainerHeaderService.updateById(shipmentContainerHeader);
         if(flag == false){
             throw new ServiceException("修改组盘头状态失败,sql报错");
@@ -359,12 +360,12 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         for (Integer taskId : taskIds) {
             task = taskHeaderService.getById(taskId);
 
-            if (task.getStatus() > 9) {
+            if (task.getStatus() >= QuantityConstant.TASK_STATUS_RELEASE) {
                 return AjaxResult.error("任务" + taskId + "已经下发,请不要重复下发,操作中止");
             }
             //修改任务头表
             task.setId(taskId);
-            task.setStatus(10);
+            task.setStatus(QuantityConstant.TASK_STATUS_RELEASE);
             task.setStartPickDateTime(new Date());   //生成时间
             task.setLastUpdated(new Date());
             task.setLastUpdatedBy(ShiroUtils.getLoginName());
@@ -375,14 +376,14 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             List<TaskDetail> taskDetailList = taskDetailService.list(lambdaWrapper);
             List<TaskDetail> taskDetails = new ArrayList<>();
             for (TaskDetail item:taskDetailList){
-                item.setStatus(10);
+                item.setStatus(QuantityConstant.TASK_STATUS_RELEASE);
                 item.setLastUpdated(new Date());
                 item.setLastUpdatedBy(ShiroUtils.getLoginName());
                 item.setProcessStamp("100");
                 taskDetails.add(item);
                 //盘点执行修改盘点单据状态为10
-                if(task.getTaskType() == 700){
-                    cycleCountDetailService.updataDetailStatus(item.getBillDetailId(),10);
+                if(task.getTaskType() == QuantityConstant.TASK_TYPE_CYCLECOUNT){
+                    cycleCountDetailService.updataDetailStatus(item.getBillDetailId(),QuantityConstant.CYCLECOUNT_STATUS_EXECUTING);
                 }
             }
             if (!taskDetailService.saveOrUpdateBatch(taskDetails)){
@@ -443,7 +444,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 throw new ServiceException("任务" + taskId + "未找到,执行中止");
             }
             //如果已完成则不管
-            if (task.getStatus() == 100) {
+            if (task.getStatus() == QuantityConstant.TASK_STATUS_COMPLETED) {
                 throw new ServiceException("任务(" + taskId + ")任务已经是完成的!");
             }
             //如果没有库位不能完成
@@ -464,31 +465,31 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     @Transactional
     public void completeTask(TaskHeader task) {
         //区分任务类型
-        if (task.getInternalTaskType() == 100) {
+        if (task.getInternalTaskType() == QuantityConstant.TASK_INTENERTYPE_SHELF) {
             //入库任务
             completeReceiptTask(task);
         }
-        if (task.getInternalTaskType() == 200) {
+        if (task.getInternalTaskType() == QuantityConstant.TASK_INTENERTYPE_PICKING) {
 //            出库任务
             completeShipmentTask(task);
         }
         // 900 出库查看,空托出库查看
-        if ( task.getTaskType() == 900) {
+        if ( task.getTaskType() == QuantityConstant.TASK_TYPE_VIEW) {
             completeSeeOutTask(task);
         }
         // 700 盘点
-        if ( task.getTaskType() == 700) {
+        if ( task.getTaskType() == QuantityConstant.TASK_TYPE_CYCLECOUNT) {
             completeCycleCountTask(task);
         }
-        if (task.getTaskType() == 800) {
+        if (task.getTaskType() == QuantityConstant.TASK_TYPE_TRANSFER) {
 //          //移库
             completeTransferTask(task);
         }
-        if (task.getTaskType() == 500) {
+        if (task.getTaskType() == QuantityConstant.TASK_TYPE_EMPTYRECEIPT) {
             //空托盘入库
            completeEmptyIn(task);
         }
-        if (task.getTaskType() == 600) {
+        if (task.getTaskType() == QuantityConstant.TASK_TYPE_EMPTYSHIPMENT) {
            //空托盘出库
             completeEmptyOut(task);
         }
@@ -507,7 +508,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         }
         for (Map<String, Object> map : taskReceiptContainerDetail) {
             //将未完成的任务数量更新到库存表
-            if (DataUtils.getInteger(map.get("status")) < 100) {
+            if (DataUtils.getInteger(map.get("status")) < QuantityConstant.TASK_STATUS_COMPLETED) {
                 LambdaQueryWrapper<InventoryDetail> inventory = Wrappers.lambdaQuery();
                 inventory.eq(InventoryDetail::getWarehouseCode, ShiroUtils.getWarehouseCode())
                         .eq(InventoryDetail::getLocationCode, task.getFromLocation())
@@ -566,7 +567,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 }
                 //记录库存交易记录
                 InventoryTransaction inventoryTransaction = new InventoryTransaction();
-                inventoryTransaction.setTransactionType(10);
+                inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_RECEIPT);
                 inventoryTransaction.setWarehouseCode(DataUtils.getString(map.get("warehouseCode")));
                 inventoryTransaction.setCompanyCode(task.getCompanyCode());
                 inventoryTransaction.setLocationCode(task.getToLocation());
@@ -589,7 +590,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                     throw new ServiceException("新增库存记录失败");
                 //修改任务明细的状态为完成
                 TaskDetail taskDetail = new TaskDetail();
-                taskDetail.setStatus(100);
+                taskDetail.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
                 taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
                 taskDetail.setAgingDate(new Date());   //入库时间
                 LambdaUpdateWrapper<TaskDetail> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
@@ -600,7 +601,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 }
 
                 //修改任务主表状态,因为立库任务表单头只对应一个货箱,表单详情的任务会同时完成
-                task.setStatus(100);
+                task.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
                 task.setLastUpdatedBy(ShiroUtils.getLoginName());
                 task.setLastUpdated(new Date());
                 LambdaUpdateWrapper<TaskHeader> taskHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate();
@@ -628,7 +629,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 }
                //修改组盘表状态为20
                 ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
-                receiptContainerDetail.setStatus(30);
+                receiptContainerDetail.setStatus(QuantityConstant.RECEIPT_CONTAINER_REVIEWSUCCESS);
                 receiptContainerDetail.setProcessStamp("0");
                 receiptContainerDetail.setLastUpdated(new Date());
                 receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
@@ -644,15 +645,15 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 receiptContainerHeader.setId(task.getAllocationHeadId());
                 receiptContainerHeader.setLastUpdated(new Date());
                 receiptContainerHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
-                receiptContainerHeader.setStatus((short) 20);
+                receiptContainerHeader.setStatus((short) QuantityConstant.RECEIPT_CONTAINER_FINISHED.intValue());
                 if (!receiptContainerHeaderService.updateById(receiptContainerHeader)){
                     throw new ServiceException("更新入库组盘头表状态失败");
                 }
 
                 //修改入库单状态
                 ReceiptHeader receiptHeader = new ReceiptHeader();
-                receiptHeader.setFirstStatus(800);
-                receiptHeader.setLastStatus(800);
+                receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_POSTING);
+                receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_POSTING);
                 receiptHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
                 receiptHeader.setLastUpdated(new Date());
                 LambdaUpdateWrapper<ReceiptHeader> receiptHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate();
@@ -726,10 +727,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         TaskHeader taskHeader = new TaskHeader();
         taskHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());
         taskHeader.setCompanyCode(ShiroUtils.getCompanyCodeList().get(0));//获取第一个货主
-        taskHeader.setInternalTaskType(500);
-        taskHeader.setTaskType(800);
+        taskHeader.setInternalTaskType(QuantityConstant.TASK_INTENERTYPE_CHECK);
+        taskHeader.setTaskType(QuantityConstant.TASK_TYPE_TRANSFER);
         taskHeader.setContainerCode(loc1.getContainerCode());
-        taskHeader.setStatus(1);
+        taskHeader.setStatus(QuantityConstant.TASK_STATUS_BUILD);
         taskHeader.setFromLocation(sourceLocation);
         taskHeader.setToLocation(destinationLocation);
         taskHeader.setCreated(new Date());
@@ -812,7 +813,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             inventoryTransaction.setWarehouseCode(task.getWarehouseCode());
             inventoryTransaction.setLocationCode(taskDetail.getToLocation());
             inventoryTransaction.setContainerCode(taskDetail.getContainerCode());
-            inventoryTransaction.setTransactionType(50);
+            inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTPROPERTIES);
             inventoryTransaction.setMaterialCode(item.getMaterialCode());
             inventoryTransaction.setManufactureDate(item.getManufactureDate());
             inventoryTransaction.setMaterialName(item.getMaterialName());
@@ -868,12 +869,12 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         locationService.saveOrUpdate(loc1);
         locationService.saveOrUpdate(loc2);
         //更新taskHeader状态
-        task.setStatus(100);
+        task.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
         task.setLastUpdatedBy(ShiroUtils.getLoginName());
         task.setLastUpdated(new Date());
         taskHeaderService.saveOrUpdate(task);
         //更新taskDetail状态
-        taskDetail.setStatus(100);
+        taskDetail.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
         taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
         taskDetail.setLastUpdated(new Date());
         taskDetailService.saveOrUpdate(taskDetail);
@@ -919,10 +920,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             TaskHeader taskHeader = new TaskHeader();
             taskHeader.setWarehouseCode(inventoryHeader.getWarehouseCode());
             taskHeader.setCompanyCode(inventoryHeader.getCompanyCode());//货主
-            taskHeader.setInternalTaskType(400);
-            taskHeader.setTaskType(900);
+            taskHeader.setInternalTaskType(QuantityConstant.TASK_INTENERTYPE_WORK);
+            taskHeader.setTaskType(QuantityConstant.TASK_TYPE_VIEW);
             taskHeader.setContainerCode(inventoryHeader.getContainerCode());
-            taskHeader.setStatus(1);
+            taskHeader.setStatus(QuantityConstant.TASK_STATUS_BUILD);
             taskHeader.setFromLocation(inventoryHeader.getLocationCode());
             taskHeader.setToLocation(inventoryHeader.getLocationCode());
             taskHeader.setCreated(new Date());
@@ -968,7 +969,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     @Transactional
     @Override
     public AjaxResult completeSeeOutTask(TaskHeader taskHeader) {
-        taskHeader.setStatus(100);
+        taskHeader.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
         taskHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户
         taskHeader.setLastUpdated(new Date());   //更新时间
         //task更新明细单总的状态
@@ -980,7 +981,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         List<TaskDetail> taskDetailList = taskDetailService.list(lambdaQueryWrapper);//查询子单
         List<TaskDetail> list = new CopyOnWriteArrayList<>();
         for(TaskDetail item:taskDetailList){
-            item.setStatus(100);
+            item.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
             item.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户
             item.setLastUpdated(new Date());   //更新时间
             list.add(item);
@@ -1005,7 +1006,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         /*盘点完成,传入任务主单,查出任务明细,通过任务明细查找盘点的明细单,
         完成任务同时,修改盘点细单和主单的状态,完成后库存锁复位*/
         //修改任务主单状态
-        taskHeader.setStatus(100);
+        taskHeader.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
         taskHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户
         taskHeader.setLastUpdated(new Date());   //更新时间
         //task更新明细单状态
@@ -1019,13 +1020,13 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         //修改任务明细状态的同时查找到盘点明细的条目并修改状态,最后修改主单状态
         List<CycleCountDetail> cycleCountDetailList = new CopyOnWriteArrayList<>();
         for(TaskDetail item:taskDetailList){
-            item.setStatus(100);
+            item.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
             item.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户
             item.setLastUpdated(new Date());   //更新时间
             list.add(item);
 
             CycleCountDetail cycleCountDetail = cycleCountDetailService.getById(item.getBillDetailId());//盘点明细
-            cycleCountDetail.setEnableStatus(100);
+            cycleCountDetail.setEnableStatus(QuantityConstant.CYCLECOUNT_STATUS_COMPLETED);
             cycleCountDetail.setCompletedBy(ShiroUtils.getLoginName());
             cycleCountDetail.setCompletedAt(new Date());
             cycleCountDetailList.add(cycleCountDetail);
@@ -1055,7 +1056,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     public void completeEmptyIn(TaskHeader taskHeader) {
 
         //完成任务,修改主单和明细状态
-        taskHeader.setStatus(100);
+        taskHeader.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
         taskHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
         taskHeader.setLastUpdated(new Date());
         //taskHeaderService.saveOrUpdate(taskHeader);
@@ -1067,7 +1068,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(taskDetail);
         List<TaskDetail> taskDetailList = taskDetailService.list(lambdaQueryWrapper);//查询子单
         for (TaskDetail item : taskDetailList) {
-            item.setStatus(100);
+            item.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
             item.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户
             item.setLastUpdated(new Date());   //更新时间
             taskDetailList.add(item);
@@ -1090,7 +1091,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
     @Transactional
     public void completeEmptyOut(TaskHeader taskHeader) {
 
-        taskHeader.setStatus(100);
+        taskHeader.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
         taskHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
         taskHeader.setLastUpdated(new Date());
         //taskHeaderService.saveOrUpdate(taskHeader);
@@ -1102,7 +1103,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(taskDetail);
         List<TaskDetail> taskDetailList = taskDetailService.list(lambdaQueryWrapper);//查询子单
         for (TaskDetail item : taskDetailList) {
-            item.setStatus(100);
+            item.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
             item.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户
             item.setLastUpdated(new Date());   //更新时间
             taskDetailList.add(item);
@@ -1146,15 +1147,15 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
 
             if (list.size() < 1)
                 throw new ServiceException("没有组盘明细,请先组盘!");
-            if (receiptContainerHeader.getStatus() == 0) {
-                if (receiptContainerHeader.getStatus().intValue() < 10) {
-                    receiptContainerHeader.setStatus((short) 10);
+            if (receiptContainerHeader.getStatus() == QuantityConstant.RECEIPT_CONTAINER_BUILD.intValue()) {
+                if (receiptContainerHeader.getStatus().intValue() < QuantityConstant.RECEIPT_CONTAINER_TASK) {
+                    receiptContainerHeader.setStatus((short) QuantityConstant.RECEIPT_CONTAINER_TASK.intValue());
                     receiptContainerHeaderService.updateById(receiptContainerHeader);
                 }
                 //添加任务主表
                 TaskHeader task = new TaskHeader();
                 task.setAllocationHeadId(receiptContainerHeader.getId());
-                task.setInternalTaskType(100);
+                task.setInternalTaskType(QuantityConstant.TASK_INTENERTYPE_SHELF);
                 task.setWarehouseCode(receiptContainerHeader.getWarehouseCode());
                 task.setCompanyCode(receiptContainerHeader.getCompanyCode());
                 task.setFromLocation(receiptContainerHeader.getFromLocation());
@@ -1171,7 +1172,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                         TaskDetail taskDetail = new TaskDetail();
                         taskDetail.setTaskId(task.getId());
                         taskDetail.setTaskType(Integer.valueOf(receiptContainerHeaderService.getById(item.getReceiptContainerId()).getTaskType()));
-                        taskDetail.setInternalTaskType(100);
+                        taskDetail.setInternalTaskType(QuantityConstant.TASK_INTENERTYPE_SHELF);
                         taskDetail.setWarehouseCode(task.getWarehouseCode());
                         taskDetail.setAllocationId(item.getReceiptId());
                         taskDetail.setCompanyCode(task.getCompanyCode());
@@ -1193,7 +1194,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                         }
 
                         //更新入库组盘明细状态
-                        item.setStatus(10);
+                        item.setStatus(QuantityConstant.RECEIPT_CONTAINER_TASK);
                         if (!receiptContainerDetailService.updateById(item)){
                             throw new ServiceException("更新入库组盘明细状态出错");
                         }
@@ -1230,7 +1231,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         List<TaskDetail> taskDetails = taskDetailService.list(lambdaQueryWrapper);
         List<Integer> shipmentHeadIds = new ArrayList<>();
         for(TaskDetail taskDetail : taskDetails){
-            if(taskDetail.getStatus()<20){
+            if(taskDetail.getStatus()<QuantityConstant.TASK_STATUS_RUNNING){
                 //获取出库子货箱
                 ShipmentContainerDetail shipmentContainerDetail = shipmentContainerDetailService.getById(taskDetail.getAllocationId());
                 //取出子单据
@@ -1259,7 +1260,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                     inventoryHeaderService.updateById(inventoryHeader);
                 }
                 //设置子任务状态为已执行
-                taskDetail.setStatus(100);
+                taskDetail.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
                 taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
                 taskDetail.setLastUpdated(new Date());//完成时间
                 taskDetailService.updateById(taskDetail);
@@ -1269,7 +1270,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 inventoryTransaction.setCompanyCode(shipmentDetail.getCompanyCode());
                 inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode());
                 inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode());
-                inventoryTransaction.setTransactionType(20);
+                inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_SHIPMENT);
                 inventoryTransaction.setMaterialCode(shipmentDetail.getMaterialCode());
                 inventoryTransaction.setMaterialName(shipmentDetail.getMaterialName());
                 inventoryTransaction.setMaterialSpec(shipmentDetail.getMaterialSpec());
@@ -1295,7 +1296,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             }
         }
         //设置主任务为已执行
-        task.setStatus(100);
+        task.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
         task.setLastUpdatedBy(ShiroUtils.getLoginName());
         task.setLastUpdated(new Date());
         taskHeaderService.updateById(task);
@@ -1310,7 +1311,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             throw new ServiceException("系统没有"+task.getToLocation()+"库位");
         }
         locationRecord.setStatus("empty");
-        if(task.getTaskType()==300) {
+        if(task.getTaskType()==QuantityConstant.TASK_TYPE_WHOLESHIPMENT) {
             locationRecord.setContainerCode("");
         }
         locationService.updateById(locationRecord);
@@ -1321,7 +1322,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         if(ctn == null){
             throw new ServiceException("系统无此容器");
         }
-        if(task.getTaskType()==300) {
+        if(task.getTaskType()==QuantityConstant.TASK_TYPE_WHOLESHIPMENT) {
             if(ctn.getContainerType().equals("LS")){
                 Boolean flag = containerService.removeById(ctn.getId());
                 if(flag == false){
@@ -1351,7 +1352,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         //设置出库货箱状态为拣货任务完成
         for(TaskDetail taskDetail : taskDetails) {
             ShipmentContainerDetail shipmentContainerDetail = new ShipmentContainerDetail();
-            shipmentContainerDetail.setStatus(30);
+            shipmentContainerDetail.setStatus(QuantityConstant.SHIPMENT_CONTAINER_REVIEWSUCCESS);
             shipmentContainerDetail.setLastUpdated(new Date());
             shipmentContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
             LambdaUpdateWrapper<ShipmentContainerDetail> shipmentContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate();
@@ -1362,7 +1363,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         }
     //设置出库货箱表头状态为拣货任务完成
         ShipmentContainerHeader shipmentContainerHeader = new ShipmentContainerHeader();
-        shipmentContainerHeader.setStatus(30);
+        shipmentContainerHeader.setStatus(QuantityConstant.SHIPMENT_CONTAINER_REVIEWSUCCESS);
         shipmentContainerHeader.setLastUpdated(new Date());
         shipmentContainerHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
         LambdaUpdateWrapper<ShipmentContainerHeader> shipmentContainerHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate();
@@ -1384,7 +1385,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                  throw new ServiceException("查找出库单明细失败");
              }
              if (shipmentDetail.getShipQty().compareTo(shipmentDetail.getRequestQty()) == 0) {
-                 shipmentDetail.setStatus(500);
+                 shipmentDetail.setStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED);
                  shipmentDetailService.updateById(shipmentDetail);
              }
              ids.add(shipmentDetail.getShipmentId());
@@ -1396,11 +1397,11 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                  Map<String,Integer> status = shipmentDetailService.selectStatus(shipmentHeader.getId());
                  Integer maxStatus = status.get("maxStatus");
                  Integer minStatus = status.get("minStatus");
-                 if(maxStatus == 500){
-                     shipmentHeader.setFirstStatus(500);
+                 if(maxStatus == QuantityConstant.SHIPMENT_HEADER_COMPLETED){
+                     shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED);
                  }
-                 if(minStatus == 500) {
-                     shipmentHeader.setLastStatus(500);
+                 if(minStatus == QuantityConstant.SHIPMENT_HEADER_COMPLETED) {
+                     shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED);
                  }
                  shipmentHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
                  shipmentHeader.setLastUpdated(new Date());
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 4e44bca..f699ea0 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -1,36 +1,36 @@
-# \u6570\u636E\u6E90\u914D\u7F6E
+# 数据源配置
 spring:
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     driverClassName: com.mysql.cj.jdbc.Driver
     druid:
-      # \u4E3B\u5E93\u6570\u636E\u6E90
+      # 主库
       master:
-        url: jdbc:mysql://172.16.29.45:3306/wms_v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
+        url: jdbc:mysql://172.16.29.45:3306/wms_v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2b8
         username: softhuaheng
         password: HHrobot123.
-      # \u4ECE\u5E93\u6570\u636E\u6E90
+      # 从库
       slave:
-        # \u4ECE\u6570\u636E\u6E90\u5F00\u5173/\u9ED8\u8BA4\u5173\u95ED
+        # 从库不启用
         enabled: false
         url:
         username:
         password:
-      # \u521D\u59CB\u8FDE\u63A5\u6570
+      # 初始连接数
       initialSize: 5
-      # \u6700\u5C0F\u8FDE\u63A5\u6C60\u6570\u91CF
+      # 最小连接池数量
       minIdle: 10
-      # \u6700\u5927\u8FDE\u63A5\u6C60\u6570\u91CF
+      # 最大连接池数量
       maxActive: 20
-      # \u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4
-      maxWait: 60000
-      # \u914D\u7F6E\u95F4\u9694\u591A\u4E45\u624D\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+      # 配置获取连接等待超时的时间
+      maxWait: 5000
+      # \配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
       timeBetweenEvictionRunsMillis: 60000
-      # \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5C0F\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
-      minEvictableIdleTimeMillis: 300000
-      # \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5927\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
-      maxEvictableIdleTimeMillis: 900000
-      # \u914D\u7F6E\u68C0\u6D4B\u8FDE\u63A5\u662F\u5426\u6709\u6548
+      # 配置一个连接在池中最小生存的时间,单位是毫秒
+      minEvictableIdleTimeMillis: 30000
+      #配置一个连接在池中最大生存的时间,单位是毫秒
+      maxEvictableIdleTimeMillis: 300000
+      # 配置检测连接是否有效
       validationQuery: SELECT 1 FROM DUAL
       testWhileIdle: true
       testOnBorrow: false
@@ -39,16 +39,16 @@ spring:
         enabled: true
       statViewServlet:
         enabled: true
-        # \u8BBE\u7F6E\u767D\u540D\u5355\uFF0C\u4E0D\u586B\u5219\u5141\u8BB8\u6240\u6709\u8BBF\u95EE
+        # 设置白名单,不填则允许所有访问
         allow:
         url-pattern: /druid/*
-        # \u63A7\u5236\u53F0\u7BA1\u7406\u7528\u6237\u540D\u548C\u5BC6\u7801
+        # 控制台管理用户名和密码
         login-username:
         login-password:
       filter:
         stat:
           enabled: true
-          # \u6162SQL\u8BB0\u5F55
+          # 慢SQL记录
           log-slow-sql: true
           slow-sql-millis: 1000
           merge-sql: true
@@ -56,7 +56,7 @@ spring:
           config:
             multi-statement-allow: true
 
-#\u65E5\u5FD7\u914D\u7F6E
+#日志配置
 logging:
   level:
     com.huaheng: debug
diff --git a/src/main/resources/application-druid.properties b/src/main/resources/application-druid.properties
index 28d06d0..fecb7fd 100644
--- a/src/main/resources/application-druid.properties
+++ b/src/main/resources/application-druid.properties
@@ -2,7 +2,7 @@
 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
 spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
 # \u4E3B\u5E93
-spring.datasource.druid.master.url=jdbc:mysql://172.16.29.45:3306/wms_v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
+spring.datasource.druid.master.url=jdbc:mysql://172.16.29.45:3306/wms_v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2b8
 #spring.datasource.druid.master.url=jdbc:mysql://172.16.29.45:3306/huahengExample?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
 #spring.datasource.druid.master.url=jdbc:mysql://localhost:3306/wms2.0?characterEncoding=utf8&serverTimezone=GMT%2b8
 
diff --git a/src/main/resources/templates/config/cycleCountPreference/cycleCountPreference.html b/src/main/resources/templates/config/cycleCountPreference/cycleCountPreference.html
index 02023c3..601dd79 100644
--- a/src/main/resources/templates/config/cycleCountPreference/cycleCountPreference.html
+++ b/src/main/resources/templates/config/cycleCountPreference/cycleCountPreference.html
@@ -1,5 +1,5 @@
 <!DOCTYPE HTML>
-<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.w3.org/1999/xhtml">
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
 <meta charset="utf-8">
 <head th:include="include :: header"></head>
 <body class="gray-bg">
@@ -43,7 +43,8 @@
             </form>
         </div>
         <div class="btn-group hidden-xs" id="toolbar" role="group">
-            <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" >
+            <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()"
+               shiro:hasPermission="config:cycleCountPreference:add">
                 <i class="fa fa-plus"></i> 新增
             </a>
         </div>
@@ -224,8 +225,8 @@
                             align: 'center',
                             formatter: function(value, row, index) {
                                 var actions = [];
-                                actions.push('<a class="btn btn-success btn-xs " href="#" onclick="$.operate.edit(\'' + row.id + '\')" ><i class="fa fa-edit"></i>修改</a> ');
-                                actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="$.operate.remove(\'' + row.id + '\')" ><i class="fa fa-trash-o"></i>删除</a>');
+                                actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')" ><i class="fa fa-edit"></i>修改</a> ');
+                                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')" ><i class="fa fa-trash-o"></i>删除</a>');
                                 return actions.join('');
                             }
                         }]