diff --git a/src/main/java/com/huaheng/pc/config/alarmLevel/controller/AlarmLevelController.java b/src/main/java/com/huaheng/pc/config/alarmLevel/controller/AlarmLevelController.java
index afc8264..5af1815 100644
--- a/src/main/java/com/huaheng/pc/config/alarmLevel/controller/AlarmLevelController.java
+++ b/src/main/java/com/huaheng/pc/config/alarmLevel/controller/AlarmLevelController.java
@@ -41,7 +41,7 @@ public class AlarmLevelController extends BaseController {
 
     private String prefix = "config/alarmLevel";
 
-    @RequiresPermissions("config:containerCapacity:view")
+    @RequiresPermissions("config:alarmLevel:view")
     @GetMapping()
     public String containerCapacity()
     {
@@ -125,7 +125,7 @@ public class AlarmLevelController extends BaseController {
      * 修改保存预警等级 
      */
     @ApiOperation(value="修改预警等级信息", notes="修改预警等级信息", httpMethod = "POST")
-    @RequiresPermissions("config:warehouse:edit")
+    @RequiresPermissions("config:alarmLevel:edit")
     @Log(title = "配置-预警等级 ",operating = "修改预警等级 ", action = BusinessType.UPDATE)
     @PostMapping("/edit")
     @ResponseBody
@@ -138,7 +138,7 @@ public class AlarmLevelController extends BaseController {
      * 删除预警等级 
      */
     @ApiOperation(value="删除预警等级 ", notes="单条删除或批量删除预警等级 ,示例1或1,2,3", httpMethod = "POST")
-    @RequiresPermissions("config:receiptType:remove")
+    @RequiresPermissions("config:alarmLevel:remove")
     @Log(title = "配置-预警等级 ",operating = "删除预警等级 ", action = BusinessType.DELETE)
     @PostMapping( "/remove")
     @ResponseBody
diff --git a/src/main/java/com/huaheng/pc/config/receiptPreference/controller/ReceiptPreferenceController.java b/src/main/java/com/huaheng/pc/config/receiptPreference/controller/ReceiptPreferenceController.java
index cdbdeee..1e43202 100644
--- a/src/main/java/com/huaheng/pc/config/receiptPreference/controller/ReceiptPreferenceController.java
+++ b/src/main/java/com/huaheng/pc/config/receiptPreference/controller/ReceiptPreferenceController.java
@@ -64,9 +64,7 @@ public class ReceiptPreferenceController extends BaseController {
                 .eq(StringUtils.isNotEmpty(receiptPreference.getName()),
                         ReceiptPreference::getName, receiptPreference.getName())
                 .like(StringUtils.isNotEmpty(receiptPreference.getReceivingFlow()),
-                        ReceiptPreference::getReceivingFlow, receiptPreference.getReceivingFlow())
-                .eq(StringUtils.isNotEmpty(receiptPreference.getReceiptTypes()),
-                        ReceiptPreference::getReceiptTypes, receiptPreference.getReceiptTypes());
+                        ReceiptPreference::getReceivingFlow, receiptPreference.getReceivingFlow());
 
         if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
             /*使用分页查询*/
diff --git a/src/main/java/com/huaheng/pc/config/receiptPreference/domain/ReceiptPreference.java b/src/main/java/com/huaheng/pc/config/receiptPreference/domain/ReceiptPreference.java
index 551b42c..bfa6aae 100644
--- a/src/main/java/com/huaheng/pc/config/receiptPreference/domain/ReceiptPreference.java
+++ b/src/main/java/com/huaheng/pc/config/receiptPreference/domain/ReceiptPreference.java
@@ -6,23 +6,29 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
 import java.io.Serializable;
 import java.util.Date;
+import lombok.Data;
 
-@ApiModel(value="com.huaheng.pc.config.receiptPreference.domain.ReceiptPreference",description="入库首选项")
-@TableName(value = "receipt_preference")
+@ApiModel(value="com.huaheng.pc.config.receiptPreference.domain.ReceiptPreference")
 @Data
+@TableName(value = "receipt_preference")
 public class ReceiptPreference implements Serializable {
     /**
      * ID
      */
-     @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.AUTO)
     @ApiModelProperty(value="ID")
     private Integer id;
 
     /**
+     * 仓库
+     */
+    @TableField(value = "warehouseCode")
+    @ApiModelProperty(value="仓库")
+    private String warehouseCode;
+
+    /**
      * 首选项代码
      */
     @TableField(value = "code")
@@ -41,13 +47,6 @@ public class ReceiptPreference implements Serializable {
     private String receivingFlow;
 
     /**
-     * 仓库
-     */
-    @TableField(value = "warehouseCode")
-    @ApiModelProperty(value="仓库")
-    private String warehouseCode;
-
-    /**
      * 自动生成托盘号
      */
     @TableField(value = "autoAssignLPN")
@@ -83,13 +82,6 @@ public class ReceiptPreference implements Serializable {
     private Integer showOpenQty;
 
     /**
-     * 入库单类型
-     */
-    @TableField(value = "receiptTypes")
-    @ApiModelProperty(value="入库单类型")
-    private String receiptTypes;
-
-    /**
      * RF组车收货
      */
     @TableField(value = "groupPutaway")
@@ -104,11 +96,18 @@ public class ReceiptPreference implements Serializable {
     private Integer manuallyBuildLPN;
 
     /**
-     * 定位规则动态指派
+     * 定位规则
+     */
+    @TableField(value = "locationRule")
+    @ApiModelProperty(value="定位规则")
+    private String locationRule;
+
+    /**
+     * 空库位规则
      */
-    @TableField(value = "ruleAssignment")
-    @ApiModelProperty(value="定位规则动态指派")
-    private String ruleAssignment;
+    @TableField(value = "emptyLocRule")
+    @ApiModelProperty(value="空库位规则")
+    private String emptyLocRule;
 
     /**
      * RF逐件收货
@@ -125,6 +124,34 @@ public class ReceiptPreference implements Serializable {
     private Integer pieceConfirm;
 
     /**
+     * abc分类 0 否  1是
+     */
+    @TableField(value = "abcClass")
+    @ApiModelProperty(value="abc分类 0 否  1是")
+    private String abcClass;
+
+    /**
+     * 保质期(天)
+     */
+    @TableField(value = "daysToExpire")
+    @ApiModelProperty(value="保质期(天)")
+    private Integer daysToExpire;
+
+    /**
+     * 临期预警(天)
+     */
+    @TableField(value = "expiringDays")
+    @ApiModelProperty(value="临期预警(天)")
+    private Integer expiringDays;
+
+    /**
+     * 收货预警(天)
+     */
+    @TableField(value = "minShelfLifeDays")
+    @ApiModelProperty(value="收货预警(天)")
+    private Integer minShelfLifeDays;
+
+    /**
      * RF快速上架
      */
     @TableField(value = "allowQuickPutaway")
@@ -132,6 +159,13 @@ public class ReceiptPreference implements Serializable {
     private Integer allowQuickPutaway;
 
     /**
+     * 属性模板
+     */
+    @TableField(value = "attributeTemplateCode")
+    @ApiModelProperty(value="属性模板")
+    private String attributeTemplateCode;
+
+    /**
      * 快速入库
      */
     @TableField(value = "useQuickCheckIn")
@@ -236,4 +270,5 @@ public class ReceiptPreference implements Serializable {
     @ApiModelProperty(value="处理标记")
     private String processStamp;
 
+    private static final long serialVersionUID = 1L;
 }
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/config/receiptPreference/service/ReceiptPreferenceService.java b/src/main/java/com/huaheng/pc/config/receiptPreference/service/ReceiptPreferenceService.java
index 59075ce..348f181 100644
--- a/src/main/java/com/huaheng/pc/config/receiptPreference/service/ReceiptPreferenceService.java
+++ b/src/main/java/com/huaheng/pc/config/receiptPreference/service/ReceiptPreferenceService.java
@@ -1,12 +1,12 @@
 package com.huaheng.pc.config.receiptPreference.service;
 
-import com.baomidou.mybatisplus.extension.service.IService;
 import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.List;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huaheng.pc.config.receiptPreference.mapper.ReceiptPreferenceMapper;
 import com.huaheng.pc.config.receiptPreference.domain.ReceiptPreference;
-
 @Service
-public class ReceiptPreferenceService extends ServiceImpl<ReceiptPreferenceMapper, ReceiptPreference> implements IService<ReceiptPreference> {
+public class ReceiptPreferenceService extends ServiceImpl<ReceiptPreferenceMapper, ReceiptPreference> {
 
 }
diff --git a/src/main/java/com/huaheng/pc/config/shipmentPreference/controller/ShipmentPreferenceController.java b/src/main/java/com/huaheng/pc/config/shipmentPreference/controller/ShipmentPreferenceController.java
new file mode 100644
index 0000000..33b10b5
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/config/shipmentPreference/controller/ShipmentPreferenceController.java
@@ -0,0 +1,144 @@
+package com.huaheng.pc.config.shipmentPreference.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huaheng.common.support.Convert;
+import com.huaheng.common.utils.StringUtils;
+import com.huaheng.common.utils.security.ShiroUtils;
+import com.huaheng.framework.aspectj.lang.annotation.Log;
+import com.huaheng.framework.aspectj.lang.constant.BusinessType;
+import com.huaheng.framework.web.controller.BaseController;
+import com.huaheng.framework.web.domain.AjaxResult;
+import com.huaheng.framework.web.page.PageDomain;
+import com.huaheng.framework.web.page.TableDataInfo;
+import com.huaheng.framework.web.page.TableSupport;
+import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference;
+import com.huaheng.pc.config.shipmentPreference.service.ShipmentPreferenceService;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+@Controller
+@RequestMapping("/config/shipmentPreference")
+public class ShipmentPreferenceController extends BaseController {
+
+    private String prefix = "config/shipmentPreference";
+
+    @Resource
+    private ShipmentPreferenceService shipmentPreferenceService;
+
+    @RequiresPermissions("config:shipmentPreference:view")
+    @GetMapping()
+    public String bomHeader() {
+        return prefix + "/shipmentPreference";
+    }
+
+    @ApiOperation(value="查看出库首选项", notes="根据首选项编码、名称、出库流程、 出库类型、创建时间查询出库首选项", httpMethod = "POST")
+    @RequiresPermissions("config:shipmentPreference:list")
+    @Log(title = "通用-出库首选项", operating = "查看出库首选项列表", action = BusinessType.GRANT)
+    @PostMapping("/list")
+    @ResponseBody
+    public TableDataInfo list(
+            @ApiParam(name="carrier",value="首选项编码、名称、出库流程、出库类型") ShipmentPreference shipmentPreference,
+            @ApiParam(name = "createdBegin", value = "起止时间") String createdBegin,
+            @ApiParam(name = "createdEnd", value = "结束时间") String createdEnd) {
+        LambdaQueryWrapper<ShipmentPreference> lambdaQueryWrapper = Wrappers.lambdaQuery();
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), ShipmentPreference::getCreated, createdBegin)
+                .lt(StringUtils.isNotEmpty(createdEnd), ShipmentPreference::getCreated, createdEnd)
+                .eq(ShipmentPreference::getWarehouseCode, ShiroUtils.getWarehouseCode())
+                .eq(StringUtils.isNotEmpty(shipmentPreference.getCode()),
+                        ShipmentPreference::getCode, shipmentPreference.getCode())
+                .eq(StringUtils.isNotEmpty(shipmentPreference.getName()),
+                        ShipmentPreference::getName, shipmentPreference.getName())
+                .like(StringUtils.isNotEmpty(shipmentPreference.getShippingFlow()),
+                        ShipmentPreference::getShippingFlow, shipmentPreference.getShippingFlow());
+
+        if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
+            /*使用分页查询*/
+            Page<ShipmentPreference> page = new Page<>(pageNum, pageSize);
+            IPage<ShipmentPreference> iPage = shipmentPreferenceService.page(page, lambdaQueryWrapper);
+            return getMpDataTable(iPage.getRecords(), iPage.getTotal());
+        } else {
+            List<ShipmentPreference> list = shipmentPreferenceService.list(lambdaQueryWrapper);
+            return getDataTable(list);
+        }
+    }
+
+    /**
+     * 新增入库首选项
+     */
+    @GetMapping("/add")
+    public String add() {
+        return prefix + "/add";
+    }
+
+    /**
+     * 新增保存出库首选项
+     */
+    @ApiOperation(value="新增出库首选项", notes="新增出库首选项", httpMethod = "POST")
+    @RequiresPermissions("config:shipmentPreference:add")
+    @Log(title = "配置-出库首选项", operating = "新增出库首选项", action = BusinessType.INSERT)
+    @PostMapping("/add")
+    @ResponseBody
+    public AjaxResult addSave(@ApiParam(name = "containerType", value = "入库首选项", required = true)
+                                          ShipmentPreference shipmentPreference)  {
+        shipmentPreference.setWarehouseCode(ShiroUtils.getWarehouseCode());
+        shipmentPreference.setCreatedBy(ShiroUtils.getLoginName());
+        shipmentPreference.setLastUpdatedBy(ShiroUtils.getLoginName());
+        return toAjax(shipmentPreferenceService.save(shipmentPreference));
+    }
+
+    /**
+     * 修改出库首选项
+     */
+    @GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") Integer id, ModelMap mmap) {
+        mmap.put("shipmentPreference", shipmentPreferenceService.getById(id));
+        return prefix + "/edit";
+    }
+
+    /**
+     * 修改保存出库首选项
+     */
+    @ApiOperation(value="修改出库首选项", notes="修改出库首选项", httpMethod = "POST")
+    @RequiresPermissions("config:shipmentPreference:edit")
+    @Log(title = "通用-出库首选项", operating = "修改出库首选项", action = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(
+            @ApiParam(name = "carrier", value = "出库首选项", required = true)ShipmentPreference shipmentPreference) {
+        shipmentPreference.setLastUpdatedBy(ShiroUtils.getLoginName());
+        return toAjax(shipmentPreferenceService.updateById(shipmentPreference));
+    }
+
+    /**
+     * 删除出库首选项
+     */
+    @ApiOperation(value="删除出库首选项", notes="根据id批量删除入库首选项,参数示例1,2,3", httpMethod = "POST")
+    @RequiresPermissions("config:shipmentPreference:remove")
+    @Log(title = "通用-出库首选项", operating = "删除出库首选项", action = BusinessType.DELETE)
+    @PostMapping( "/remove")
+    @ResponseBody
+    public AjaxResult remove(String ids) {
+        if (StringUtils.isEmpty(ids)){
+            return AjaxResult.error("id不能为空");
+        }
+        List<Integer> list = new ArrayList<>();
+        for (Integer id : Convert.toIntArray(ids)) {
+            list.add(id);
+        }
+        return toAjax(shipmentPreferenceService.removeByIds(list));
+    }
+}
diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentPreference/domain/ShipmentPreference.java b/src/main/java/com/huaheng/pc/config/shipmentPreference/domain/ShipmentPreference.java
index 54319e0..78162ce 100644
--- a/src/main/java/com/huaheng/pc/shipment/shipmentPreference/domain/ShipmentPreference.java
+++ b/src/main/java/com/huaheng/pc/config/shipmentPreference/domain/ShipmentPreference.java
@@ -1,4 +1,4 @@
-package com.huaheng.pc.shipment.shipmentPreference.domain;
+package com.huaheng.pc.config.shipmentPreference.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -48,6 +49,27 @@ public class ShipmentPreference implements Serializable {
     private String shippingFlow;
 
     /**
+     * 拣货库位范围规则
+     */
+    @TableField(value = "shipmentPickingLocRange")
+    @ApiModelProperty(value="拣货库位范围规则")
+    private String shipmentPickingLocRange;
+
+    /**
+     * 拣货规则
+     */
+    @TableField(value = "shipmentPickingRule")
+    @ApiModelProperty(value="拣货规则")
+    private String shipmentPickingRule;
+
+    /**
+     * 库存分配规则
+     */
+    @TableField(value = "allocationRule")
+    @ApiModelProperty(value="库存分配规则")
+    private String allocationRule;
+
+    /**
      * 自动生成托盘号
      */
     @TableField(value = "autoAssignLPN")
@@ -75,12 +97,7 @@ public class ShipmentPreference implements Serializable {
     @ApiModelProperty(value="显示库存数量")
     private Integer showInventoryQty;
 
-    /**
-     * 出库单类型
-     */
-    @TableField(value = "shipmentTypes")
-    @ApiModelProperty(value="出库单类型")
-    private String shipmentTypes;
+
 
     /**
      * RF组车收货
@@ -97,13 +114,6 @@ public class ShipmentPreference implements Serializable {
     private Integer manuallyBuildLPN;
 
     /**
-     * 库存分配规则动态指派
-     */
-    @TableField(value = "ruleAssignment")
-    @ApiModelProperty(value="库存分配规则动态指派")
-    private String ruleAssignment;
-
-    /**
      * RF逐件拣货
      */
     @TableField(value = "checkinByPiece")
@@ -180,33 +190,6 @@ public class ShipmentPreference implements Serializable {
     @ApiModelProperty(value="自定义字段4")
     private String userDef4;
 
-    /**
-     * 自定义字段5
-     */
-    @TableField(value = "userDef5")
-    @ApiModelProperty(value="自定义字段5")
-    private String userDef5;
-
-    /**
-     * 自定义字段6
-     */
-    @TableField(value = "userDef6")
-    @ApiModelProperty(value="自定义字段6")
-    private String userDef6;
-
-    /**
-     * 自定义字段7
-     */
-    @TableField(value = "userDef7")
-    @ApiModelProperty(value="自定义字段7")
-    private String userDef7;
-
-    /**
-     * 自定义字段8
-     */
-    @TableField(value = "userDef8")
-    @ApiModelProperty(value="自定义字段8")
-    private String userDef8;
 
     /**
      * 处理标记
@@ -225,6 +208,12 @@ public class ShipmentPreference implements Serializable {
 
     public static final String COL_SHIPPINGFLOW = "shippingFlow";
 
+    public static final String COL_SHIPMENTPICKINGRULE = "shipmentPickingRule";
+
+    public static final String COL_SHIPMENTPICKINGLOCRANGE= "shipmentPickingLocRange";
+
+    public static final String COL_ALLOCATIONRULE= "allocationRule";
+
     public static final String COL_AUTOASSIGNLPN = "autoAssignLPN";
 
     public static final String COL_ALLOWCROSS = "allowCross";
@@ -233,14 +222,10 @@ public class ShipmentPreference implements Serializable {
 
     public static final String COL_SHOWINVENTORYQTY = "showInventoryQty";
 
-    public static final String COL_SHIPMENTTYPES = "shipmentTypes";
-
     public static final String COL_GROUPPICKUP = "groupPickup";
 
     public static final String COL_MANUALLYBUILDLPN = "manuallyBuildLPN";
 
-    public static final String COL_RULEASSIGNMENT = "ruleAssignment";
-
     public static final String COL_CHECKINBYPIECE = "checkinByPiece";
 
     public static final String COL_ALLOWQUICKPICKUP = "allowQuickPickup";
@@ -263,14 +248,6 @@ public class ShipmentPreference implements Serializable {
 
     public static final String COL_USERDEF4 = "userDef4";
 
-    public static final String COL_USERDEF5 = "userDef5";
-
-    public static final String COL_USERDEF6 = "userDef6";
-
-    public static final String COL_USERDEF7 = "userDef7";
-
-    public static final String COL_USERDEF8 = "userDef8";
-
     public static final String COL_PROCESSSTAMP = "processStamp";
 
     /**
@@ -363,6 +340,30 @@ public class ShipmentPreference implements Serializable {
         this.shippingFlow = shippingFlow;
     }
 
+    public String getShipmentPickingLocRange() {
+        return shipmentPickingLocRange;
+    }
+
+    public void setShipmentPickingLocRange(String shipmentPickingLocRange) {
+        this.shipmentPickingLocRange = shipmentPickingLocRange;
+    }
+
+    public String getShipmentPickingRule() {
+        return shipmentPickingRule;
+    }
+
+    public void setShipmentPickingRule(String shipmentPickingRule) {
+        this.shipmentPickingRule = shipmentPickingRule;
+    }
+
+    public String getAllocationRule() {
+        return allocationRule;
+    }
+
+    public void setAllocationRule(String allocationRule) {
+        this.allocationRule = allocationRule;
+    }
+
     /**
      * 获取自动生成托盘号
      *
@@ -435,23 +436,6 @@ public class ShipmentPreference implements Serializable {
         this.showInventoryQty = showInventoryQty;
     }
 
-    /**
-     * 获取出库单类型
-     *
-     * @return shipmentTypes - 出库单类型
-     */
-    public String getShipmentTypes() {
-        return shipmentTypes;
-    }
-
-    /**
-     * 设置出库单类型
-     *
-     * @param shipmentTypes 出库单类型
-     */
-    public void setShipmentTypes(String shipmentTypes) {
-        this.shipmentTypes = shipmentTypes;
-    }
 
     /**
      * 获取RF组车收货
@@ -489,23 +473,6 @@ public class ShipmentPreference implements Serializable {
         this.manuallyBuildLPN = manuallyBuildLPN;
     }
 
-    /**
-     * 获取库存分配规则动态指派
-     *
-     * @return ruleAssignment - 库存分配规则动态指派
-     */
-    public String getRuleAssignment() {
-        return ruleAssignment;
-    }
-
-    /**
-     * 设置库存分配规则动态指派
-     *
-     * @param ruleAssignment 库存分配规则动态指派
-     */
-    public void setRuleAssignment(String ruleAssignment) {
-        this.ruleAssignment = ruleAssignment;
-    }
 
     /**
      * 获取RF逐件拣货
@@ -705,77 +672,6 @@ public class ShipmentPreference implements Serializable {
         this.userDef4 = userDef4;
     }
 
-    /**
-     * 获取自定义字段5
-     *
-     * @return userDef5 - 自定义字段5
-     */
-    public String getUserDef5() {
-        return userDef5;
-    }
-
-    /**
-     * 设置自定义字段5
-     *
-     * @param userDef5 自定义字段5
-     */
-    public void setUserDef5(String userDef5) {
-        this.userDef5 = userDef5;
-    }
-
-    /**
-     * 获取自定义字段6
-     *
-     * @return userDef6 - 自定义字段6
-     */
-    public String getUserDef6() {
-        return userDef6;
-    }
-
-    /**
-     * 设置自定义字段6
-     *
-     * @param userDef6 自定义字段6
-     */
-    public void setUserDef6(String userDef6) {
-        this.userDef6 = userDef6;
-    }
-
-    /**
-     * 获取自定义字段7
-     *
-     * @return userDef7 - 自定义字段7
-     */
-    public String getUserDef7() {
-        return userDef7;
-    }
-
-    /**
-     * 设置自定义字段7
-     *
-     * @param userDef7 自定义字段7
-     */
-    public void setUserDef7(String userDef7) {
-        this.userDef7 = userDef7;
-    }
-
-    /**
-     * 获取自定义字段8
-     *
-     * @return userDef8 - 自定义字段8
-     */
-    public String getUserDef8() {
-        return userDef8;
-    }
-
-    /**
-     * 设置自定义字段8
-     *
-     * @param userDef8 自定义字段8
-     */
-    public void setUserDef8(String userDef8) {
-        this.userDef8 = userDef8;
-    }
 
     /**
      * 获取处理标记
diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentPreference/mapper/ShipmentPreferenceMapper.java b/src/main/java/com/huaheng/pc/config/shipmentPreference/mapper/ShipmentPreferenceMapper.java
index dff08ca..73fe56b 100644
--- a/src/main/java/com/huaheng/pc/shipment/shipmentPreference/mapper/ShipmentPreferenceMapper.java
+++ b/src/main/java/com/huaheng/pc/config/shipmentPreference/mapper/ShipmentPreferenceMapper.java
@@ -1,7 +1,7 @@
-package com.huaheng.pc.shipment.shipmentPreference.mapper;
+package com.huaheng.pc.config.shipmentPreference.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.huaheng.pc.shipment.shipmentPreference.domain.ShipmentPreference;
+import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference;
 
 public interface ShipmentPreferenceMapper extends BaseMapper<ShipmentPreference> {
 }
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentPreference/service/ShipmentPreferenceService.java b/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceService.java
index b3ea592..a7579d2 100644
--- a/src/main/java/com/huaheng/pc/shipment/shipmentPreference/service/ShipmentPreferenceService.java
+++ b/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceService.java
@@ -1,7 +1,8 @@
-package com.huaheng.pc.shipment.shipmentPreference.service;
+package com.huaheng.pc.config.shipmentPreference.service;
 
-import com.huaheng.pc.shipment.shipmentPreference.domain.ShipmentPreference;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference;
+
 public interface ShipmentPreferenceService extends IService<ShipmentPreference>{
 
 
diff --git a/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceServiceImpl.java b/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceServiceImpl.java
new file mode 100644
index 0000000..9c80a9f
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceServiceImpl.java
@@ -0,0 +1,11 @@
+package com.huaheng.pc.config.shipmentPreference.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference;
+import com.huaheng.pc.config.shipmentPreference.mapper.ShipmentPreferenceMapper;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ShipmentPreferenceServiceImpl extends ServiceImpl<ShipmentPreferenceMapper, ShipmentPreference> implements ShipmentPreferenceService {
+
+}
diff --git a/src/main/java/com/huaheng/pc/config/warehouseConfig/domain/WarehouseConfig.java b/src/main/java/com/huaheng/pc/config/warehouseConfig/domain/WarehouseConfig.java
deleted file mode 100644
index b747f79..0000000
--- a/src/main/java/com/huaheng/pc/config/warehouseConfig/domain/WarehouseConfig.java
+++ /dev/null
@@ -1,242 +0,0 @@
-package com.huaheng.pc.config.warehouseConfig.domain;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import java.io.Serializable;
-import java.util.Date;
-import lombok.Data;
-
-@ApiModel(value="com.huaheng.pc.config.warehouseConfig.domain.WarehouseConfig")
-@Data
-@TableName(value = "warehouse_config")
-public class WarehouseConfig implements Serializable {
-    /**
-     * 编码
-     */
-    @TableId(value = "code", type = IdType.INPUT)
-    @ApiModelProperty(value="编码")
-    private String code;
-
-    /**
-     * 仓库编码
-     */
-    @TableField(value = "warehouseCode")
-    @ApiModelProperty(value="仓库编码")
-    private String warehouseCode;
-
-    /**
-     * 名称
-     */
-    @TableField(value = "name")
-    @ApiModelProperty(value="名称")
-    private String name;
-
-    /**
-     * ABC分类
-     */
-    @TableField(value = "abcClass")
-    @ApiModelProperty(value="ABC分类")
-    private String abcClass;
-
-    /**
-     * 保质期(天)
-     */
-    @TableField(value = "daysToExpire")
-    @ApiModelProperty(value="保质期(天)")
-    private Integer daysToExpire;
-
-    /**
-     * 定位规则
-     */
-    @TableField(value = "locatingRule")
-    @ApiModelProperty(value="定位规则")
-    private String locatingRule;
-
-    /**
-     * 分配规则
-     */
-    @TableField(value = "allocationRule")
-    @ApiModelProperty(value="分配规则")
-    private String allocationRule;
-
-    /**
-     * 补货规则
-     */
-    @TableField(value = "replenishmentRule")
-    @ApiModelProperty(value="补货规则")
-    private String replenishmentRule;
-
-    /**
-     * 空货位规则
-     */
-    @TableField(value = "emptyLocRule")
-    @ApiModelProperty(value="空货位规则")
-    private String emptyLocRule;
-
-    /**
-     * 入库流程
-     */
-    @TableField(value = "receivingFlow")
-    @ApiModelProperty(value="入库流程")
-    private String receivingFlow;
-
-    /**
-     * 出库流程
-     */
-    @TableField(value = "shippingFlow")
-    @ApiModelProperty(value="出库流程")
-    private String shippingFlow;
-
-    /**
-     * 属性模版
-     */
-    @TableField(value = "attributeTemplateCode")
-    @ApiModelProperty(value="属性模版")
-    private String attributeTemplateCode;
-
-    /**
-     * 记录序列号
-     */
-    @TableField(value = "trackSerialNum")
-    @ApiModelProperty(value="记录序列号")
-    private Integer trackSerialNum;
-
-    /**
-     * 自动生成序列号
-     */
-    @TableField(value = "autoGenSerialNum")
-    @ApiModelProperty(value="自动生成序列号")
-    private Integer autoGenSerialNum;
-
-    /**
-     * 自动生成序列号表达式
-     */
-    @TableField(value = "autoGenSerialNumFormat")
-    @ApiModelProperty(value="自动生成序列号表达式")
-    private String autoGenSerialNumFormat;
-
-    /**
-     * 序列号模版
-     */
-    @TableField(value = "snTemplateCode")
-    @ApiModelProperty(value="序列号模版")
-    private String snTemplateCode;
-
-    /**
-     * 临期预警天数
-     */
-    @TableField(value = "expiringDays")
-    @ApiModelProperty(value="临期预警天数")
-    private Integer expiringDays;
-
-    /**
-     * 收货预警天数
-     */
-    @TableField(value = "minShelfLifeDays")
-    @ApiModelProperty(value="收货预警天数")
-    private Integer minShelfLifeDays;
-
-    /**
-     * 状态
-     */
-    @TableField(value = "enable")
-    @ApiModelProperty(value="状态")
-    private Integer enable;
-
-    /**
-     * 创建时间
-     */
-    @TableField(value = "created")
-    @ApiModelProperty(value="创建时间")
-    private Date created;
-
-    /**
-     * 创建用户
-     */
-    @TableField(value = "createdBy")
-    @ApiModelProperty(value="创建用户")
-    private String createdBy;
-
-    /**
-     * 创建时间
-     */
-    @TableField(value = "lastUpdated")
-    @ApiModelProperty(value="创建时间")
-    private Date lastUpdated;
-
-    /**
-     * 更新用户
-     */
-    @TableField(value = "lastUpdatedBy")
-    @ApiModelProperty(value="更新用户")
-    private String lastUpdatedBy;
-
-    /**
-     * 数据版本
-     */
-    @TableField(value = "version")
-    @ApiModelProperty(value="数据版本")
-    private Integer version;
-
-    /**
-     * 自定义字段1
-     */
-    @TableField(value = "userDef1")
-    @ApiModelProperty(value="自定义字段1")
-    private String userDef1;
-
-    /**
-     * 自定义字段2
-     */
-    @TableField(value = "userDef2")
-    @ApiModelProperty(value="自定义字段2")
-    private String userDef2;
-
-    /**
-     * 自定义字段3
-     */
-    @TableField(value = "userDef3")
-    @ApiModelProperty(value="自定义字段3")
-    private String userDef3;
-
-    /**
-     * 自定义字段4
-     */
-    @TableField(value = "userDef4")
-    @ApiModelProperty(value="自定义字段4")
-    private String userDef4;
-
-    /**
-     * 自定义字段5
-     */
-    @TableField(value = "userDef5")
-    @ApiModelProperty(value="自定义字段5")
-    private String userDef5;
-
-    /**
-     * 自定义字段6
-     */
-    @TableField(value = "userDef6")
-    @ApiModelProperty(value="自定义字段6")
-    private String userDef6;
-
-    /**
-     * 自定义字段7
-     */
-    @TableField(value = "userDef7")
-    @ApiModelProperty(value="自定义字段7")
-    private String userDef7;
-
-    /**
-     * 自定义字段8
-     */
-    @TableField(value = "userDef8")
-    @ApiModelProperty(value="自定义字段8")
-    private String userDef8;
-
-    private static final long serialVersionUID = 1L;
-}
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/config/warehouseConfig/mapper/WarehouseConfigMapper.java b/src/main/java/com/huaheng/pc/config/warehouseConfig/mapper/WarehouseConfigMapper.java
deleted file mode 100644
index 4203b5f..0000000
--- a/src/main/java/com/huaheng/pc/config/warehouseConfig/mapper/WarehouseConfigMapper.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.huaheng.pc.config.warehouseConfig.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.huaheng.pc.config.warehouseConfig.domain.WarehouseConfig;
-
-public interface WarehouseConfigMapper extends BaseMapper<WarehouseConfig> {
-}
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/config/warehouseConfig/service/WarehouseConfigService.java b/src/main/java/com/huaheng/pc/config/warehouseConfig/service/WarehouseConfigService.java
deleted file mode 100644
index bafdc34..0000000
--- a/src/main/java/com/huaheng/pc/config/warehouseConfig/service/WarehouseConfigService.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.huaheng.pc.config.warehouseConfig.service;
-
-import com.huaheng.pc.config.warehouseConfig.domain.WarehouseConfig;
-import com.baomidou.mybatisplus.extension.service.IService;
-public interface WarehouseConfigService extends IService<WarehouseConfig>{
-
-
-}
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java b/src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java
new file mode 100644
index 0000000..0c57795
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java
@@ -0,0 +1,73 @@
+package com.huaheng.pc.receipt.receiptDetail.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huaheng.common.utils.StringUtils;
+import com.huaheng.framework.aspectj.lang.annotation.Log;
+import com.huaheng.framework.aspectj.lang.constant.BusinessType;
+import com.huaheng.framework.web.controller.BaseController;
+import com.huaheng.framework.web.page.PageDomain;
+import com.huaheng.framework.web.page.TableDataInfo;
+import com.huaheng.framework.web.page.TableSupport;
+import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail;
+import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Api(tags = "入库明细")
+@Controller
+@RequestMapping("/receipt/receiptDetail")
+public class ReceiptDetailController extends BaseController {
+
+    @Resource
+    private ReceiptDetailService receiptDetailService;
+
+    private String prefix = "receipt/receiptDetail";
+
+    @RequiresPermissions("config:receiptDetail:view")
+    @Log(title = "入库-入库详情列表", operating = "入库详情列表", action = BusinessType.GRANT)
+    @GetMapping("/list/{id}")
+    public String list(@PathVariable("id")Integer id, ModelMap mmap) {
+        mmap.put("receiptDetail",id);
+        return prefix+"/receiptDetail";
+    }
+
+    /**
+     * 查询入库详情
+     */
+    @ApiOperation(value="查看入库详情", notes="根据头表id获取入库单明细信息", httpMethod = "POST")
+    @RequiresPermissions("config:receiptDetail:list")
+    @Log(title = "入库-入库单明细管理", operating = "查看入库单明细", action = BusinessType.GRANT)
+    @PostMapping("/list")
+    @ResponseBody
+    public TableDataInfo list(@ApiParam(name="receiptDetail",value="入库详情") ReceiptDetail receiptDetail,
+                              @ApiParam(name = "createdBegin", value = "起止时间") String createdBegin,
+                              @ApiParam(name = "createdEnd", value = "结束时间") String createdEnd) {
+        LambdaQueryWrapper<ReceiptDetail> lambdaQueryWrapper = Wrappers.lambdaQuery();
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), ReceiptDetail::getCreated, createdBegin)
+                .le(StringUtils.isNotEmpty(createdEnd), ReceiptDetail::getCreated, createdEnd)
+                .eq(ReceiptDetail::getReceiptId, receiptDetail.getReceiptId());
+        if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
+            /*使用分页查询*/
+            Page<ReceiptDetail> page = new Page<>(pageNum, pageSize);
+            IPage<ReceiptDetail> iPage = receiptDetailService.page(page, lambdaQueryWrapper);
+            return getMpDataTable(iPage.getRecords(), iPage.getTotal());
+        } else {
+            List<ReceiptDetail> list = receiptDetailService.list(lambdaQueryWrapper);
+            return getDataTable(list);
+        }
+    }
+}
diff --git a/src/main/java/com/huaheng/pc/config/warehouseConfig/controller/WarehouseConfigController.java b/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java
index a2c8132..0970a06 100644
--- a/src/main/java/com/huaheng/pc/config/warehouseConfig/controller/WarehouseConfigController.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java
@@ -1,4 +1,4 @@
-package com.huaheng.pc.config.warehouseConfig.controller;
+package com.huaheng.pc.receipt.receiptHeader.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -13,10 +13,10 @@ import com.huaheng.framework.web.domain.AjaxResult;
 import com.huaheng.framework.web.page.PageDomain;
 import com.huaheng.framework.web.page.TableDataInfo;
 import com.huaheng.framework.web.page.TableSupport;
-import com.huaheng.pc.config.warehouseConfig.domain.WarehouseConfig;
-import com.huaheng.pc.config.warehouseConfig.service.WarehouseConfigService;
+import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
+import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
@@ -25,50 +25,58 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import java.util.List;
 
+@Api(tags = "入库单")
 @Controller
-@RequestMapping("/config/warehouseConfig")
-public class WarehouseConfigController extends BaseController {
+@RequestMapping("/receipt/receiptHeader")
+public class ReceiptHeaderController extends BaseController {
 
-    private String prefix = "config/warehouseConfig";
+    private String prefix="receipt/receiptHeader";
 
     @Resource
-    private WarehouseConfigService warehouseConfigService;
+    private ReceiptHeaderService receiptHeaderService;
 
-    @RequiresPermissions("config:warehouseConfig:view")
+    @RequiresPermissions("config:receiptHeader:view")
     @GetMapping()
-    public String receiptDetailHistory() {
-        return prefix + "/warehouse";
+    public String containerCapacity()
+    {
+        return prefix + "/receiptHeader";
     }
 
     /**
-     * 查询仓库配置
+     * 查询入库单
      */
-    @ApiOperation(value="查看仓库配置", notes="根据编码获取仓库配置", httpMethod = "POST")
-    @RequiresPermissions("config:warehouseConfig:list")
-    @Log(title = "配置-仓库配置",operating = "仓库配置列表", action = BusinessType.GRANT)
+    @RequiresPermissions("config:receiptHeader:list")
+    @Log(title = "入库-入库单头表", operating = "查看入库单列表", action = BusinessType.GRANT)
     @PostMapping("/list")
     @ResponseBody
-    public TableDataInfo list(@ApiParam(name="WarehouseConfig",value="编码") WarehouseConfig warehouseConfig) {
-        LambdaQueryWrapper<WarehouseConfig> lambda = Wrappers.lambdaQuery();
+    public TableDataInfo list(ReceiptHeader receiptHeader, String createdBegin, String createdEnd) {
+        LambdaQueryWrapper<ReceiptHeader> lambdaQueryWrapper = Wrappers.lambdaQuery();
         PageDomain pageDomain = TableSupport.buildPageRequest();
         Integer pageNum = pageDomain.getPageNum();
         Integer pageSize = pageDomain.getPageSize();
-        lambda.eq(StringUtils.isNotEmpty(warehouseConfig.getWarehouseCode()), WarehouseConfig::getWarehouseCode
-                , warehouseConfig.getWarehouseCode());
+
+        lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), ReceiptHeader::getCreated, createdBegin)
+                .le(StringUtils.isNotEmpty(createdEnd), ReceiptHeader::getCreated, createdEnd)
+                .in(ReceiptHeader::getCompanyCode, ShiroUtils.getCompanyCodeList())
+                .eq(ReceiptHeader::getWarehouseCode, ShiroUtils.getWarehouseCode())
+                .eq(StringUtils.isNotEmpty(receiptHeader.getReceiptType()),
+                        ReceiptHeader::getReceiptType, receiptHeader.getReceiptType());
 
         if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
-            /*使用分页查询*/
-            Page<WarehouseConfig> page = new Page<>(pageNum, pageSize);
-            IPage<WarehouseConfig> iPage = warehouseConfigService.page(page, lambda);
-            return getMpDataTable(iPage.getRecords(), iPage.getTotal());
+            /**
+             * 使用分页查询
+             */
+            Page<ReceiptHeader> page = new Page<>(pageNum, pageSize);
+            IPage<ReceiptHeader> iPage = receiptHeaderService.page(page, lambdaQueryWrapper);
+            return getMpDataTable(iPage.getRecords(),iPage.getTotal());
         } else {
-            List<WarehouseConfig> list = warehouseConfigService.list(lambda);
+            List<ReceiptHeader> list = receiptHeaderService.list(lambdaQueryWrapper);
             return getDataTable(list);
         }
     }
 
     /**
-     * 新增仓库配置
+     * 新增入库单
      */
     @GetMapping("/add")
     public String add() {
@@ -76,45 +84,42 @@ public class WarehouseConfigController extends BaseController {
     }
 
     /**
-     * 新增保存仓库配置
+     * 新增保存入库单
      */
-    @ApiOperation(value="新增仓库配置", notes="新增仓库配置", httpMethod = "POST")
-    @RequiresPermissions("config:warehouseConfig:add")
-    @Log(title = "配置-仓库配置",operating = "新增仓库配置", action = BusinessType.INSERT)
+    @ApiOperation(value="新增入库单 ", notes="新增入库单 ", httpMethod = "POST")
+    @RequiresPermissions("config:receiptHeader:add")
+    @Log(title = "入库-入库单 ",operating = "新增入库单 ", action = BusinessType.INSERT)
     @PostMapping("/add")
     @ResponseBody
-    public AjaxResult addSave(WarehouseConfig warehouseConfig) {
-        LambdaQueryWrapper<WarehouseConfig> lambda = Wrappers.lambdaQuery();
-        lambda.eq(WarehouseConfig::getWarehouseCode, warehouseConfig.getWarehouseCode());
-        if (warehouseConfigService.getOne(lambda) != null){
-            return AjaxResult.error("当前仓库已存在配置");
-        }
-        warehouseConfig.setCreatedBy(ShiroUtils.getLoginName());
-        warehouseConfig.setLastUpdatedBy(ShiroUtils.getLoginName());
-        return toAjax(warehouseConfigService.save(warehouseConfig));
+    public AjaxResult addSave(ReceiptHeader receiptHeader) {
+        receiptHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());
+        receiptHeader.setFirstStatus(0);
+        receiptHeader.setLastStatus(0);
+        receiptHeader.setCreatedBy(ShiroUtils.getLoginName());
+        receiptHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
+        return toAjax(receiptHeaderService.save(receiptHeader));
     }
 
     /**
-     * 修改仓库配置
+     * 修改入库单
      */
     @GetMapping("/edit/{id}")
     public String edit(@PathVariable("id") Integer id, ModelMap mmap) {
-        WarehouseConfig warehouseConfig = warehouseConfigService.getById(id);
-        mmap.put("warehouseConfig", warehouseConfig);
+        ReceiptHeader receiptHeader = receiptHeaderService.getById(id);
+        mmap.put("receiptHeader", receiptHeader);
         return prefix + "/edit";
     }
 
     /**
-     * 修改保存仓库配置
+     * 修改保存入库单
      */
-    @ApiOperation(value="修改仓库配置信息", notes="修改仓库配置信息", httpMethod = "POST")
-    @RequiresPermissions("config:warehouseConfig:edit")
-    @Log(title = "配置-仓库配置",operating = "修改仓库配置", action = BusinessType.UPDATE)
+    @ApiOperation(value="修改入库单", notes="修改入库单", httpMethod = "POST")
+    @RequiresPermissions("config:receiptHeader:edit")
+    @Log(title = "入库-入库单 ",operating = "修改入库单 ", action = BusinessType.UPDATE)
     @PostMapping("/edit")
     @ResponseBody
-    public AjaxResult editSave(WarehouseConfig warehouseConfig) {
-        warehouseConfig.setLastUpdatedBy(ShiroUtils.getLoginName());
-        return toAjax(warehouseConfigService.updateById(warehouseConfig));
+    public AjaxResult editSave(ReceiptHeader receiptHeader) {
+        receiptHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
+        return toAjax(receiptHeaderService.updateById(receiptHeader));
     }
-
 }
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptHeader/domain/ReceiptHeader.java b/src/main/java/com/huaheng/pc/receipt/receiptHeader/domain/ReceiptHeader.java
index aefbb02..40ace0a 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiptHeader/domain/ReceiptHeader.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiptHeader/domain/ReceiptHeader.java
@@ -4,329 +4,296 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 import lombok.Data;
 
-/**
- * 入库头表
- */
+@ApiModel(value="com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader")
 @Data
 @TableName(value = "receipt_header")
 public class ReceiptHeader implements Serializable {
     /**
      * 入库单内部号
      */
-     @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value="入库单内部号")
     private Integer id;
 
     /**
      * 仓库
      */
     @TableField(value = "warehouseCode")
+    @ApiModelProperty(value="仓库")
     private String warehouseCode;
 
     /**
      * 货主
      */
     @TableField(value = "companyCode")
+    @ApiModelProperty(value="货主")
     private String companyCode;
 
     /**
      * 入库单号
      */
     @TableField(value = "code")
+    @ApiModelProperty(value="入库单号")
     private String code;
 
     /**
      * 入库类型
      */
     @TableField(value = "receiptType")
+    @ApiModelProperty(value="入库类型")
     private String receiptType;
 
     /**
      * 首状态
      */
     @TableField(value = "firstStatus")
+    @ApiModelProperty(value="首状态")
     private Integer firstStatus;
 
     /**
      * 尾状态
      */
     @TableField(value = "lastStatus")
+    @ApiModelProperty(value="尾状态")
     private Integer lastStatus;
 
     /**
      * 关联单号
      */
     @TableField(value = "referCode")
+    @ApiModelProperty(value="关联单号")
     private String referCode;
 
     /**
      * 关联单号(内部号)
      */
     @TableField(value = "referId")
+    @ApiModelProperty(value="关联单号(内部号)")
     private Integer referId;
 
     /**
      * 关联订单类型
      */
     @TableField(value = "referType")
+    @ApiModelProperty(value="关联订单类型")
     private String referType;
 
     /**
      * 预计到达日期
      */
     @TableField(value = "scheduledArriveDate")
+    @ApiModelProperty(value="预计到达日期")
     private Date scheduledArriveDate;
 
     /**
      * 实际到达日期
      */
     @TableField(value = "actualArriveDate")
+    @ApiModelProperty(value="实际到达日期")
     private Date actualArriveDate;
 
     /**
      * 月台货位
      */
     @TableField(value = "recvDock")
+    @ApiModelProperty(value="月台货位")
     private String recvDock;
 
     /**
      * 关闭时间
      */
     @TableField(value = "closedAt")
+    @ApiModelProperty(value="关闭时间")
     private Date closedAt;
 
     /**
      * 强制关闭用户
      */
     @TableField(value = "closedBy")
+    @ApiModelProperty(value="强制关闭用户")
     private String closedBy;
 
     /**
      * 开始收货日期
      */
     @TableField(value = "startCheckinDatetime")
+    @ApiModelProperty(value="开始收货日期")
     private Date startCheckinDatetime;
 
     /**
      * 结束收货日期
      */
     @TableField(value = "endCheckinDatetime")
+    @ApiModelProperty(value="结束收货日期")
     private Date endCheckinDatetime;
 
     /**
      * 总数量
      */
     @TableField(value = "totalQty")
+    @ApiModelProperty(value="总数量")
     private Integer totalQty;
 
     /**
      * 总行数
      */
     @TableField(value = "totalLines")
+    @ApiModelProperty(value="总行数")
     private Integer totalLines;
 
     /**
      * 总箱数
      */
     @TableField(value = "toalCases")
+    @ApiModelProperty(value="总箱数")
     private Integer toalCases;
 
     /**
      * 总重量
      */
     @TableField(value = "totalWeight")
+    @ApiModelProperty(value="总重量")
     private BigDecimal totalWeight;
 
     /**
      * 总体积
      */
     @TableField(value = "totalVolume")
+    @ApiModelProperty(value="总体积")
     private BigDecimal totalVolume;
 
     /**
      * 入库单备注
      */
     @TableField(value = "receiptNote")
+    @ApiModelProperty(value="入库单备注")
     private String receiptNote;
 
     /**
      * 锁定
      */
     @TableField(value = "locked")
+    @ApiModelProperty(value="锁定")
     private Integer locked;
 
     /**
      * 锁定用户
      */
     @TableField(value = "lockedBy")
+    @ApiModelProperty(value="锁定用户")
     private String lockedBy;
 
     /**
      * 创建时间
      */
     @TableField(value = "created")
+    @ApiModelProperty(value="创建时间")
     private Date created;
 
     /**
      * 创建用户
      */
     @TableField(value = "createdBy")
+    @ApiModelProperty(value="创建用户")
     private String createdBy;
 
     /**
      * 创建时间
      */
     @TableField(value = "lastUpdated")
+    @ApiModelProperty(value="创建时间")
     private Date lastUpdated;
 
     /**
      * 更新用户
      */
     @TableField(value = "lastUpdatedBy")
+    @ApiModelProperty(value="更新用户")
     private String lastUpdatedBy;
 
     /**
      * 数据版本
      */
     @TableField(value = "version")
+    @ApiModelProperty(value="数据版本")
     private Integer version;
 
     /**
      * 自定义字段1
      */
     @TableField(value = "userDef1")
+    @ApiModelProperty(value="自定义字段1")
     private String userDef1;
 
     /**
      * 自定义字段2
      */
     @TableField(value = "userDef2")
+    @ApiModelProperty(value="自定义字段2")
     private String userDef2;
 
     /**
      * 自定义字段3
      */
     @TableField(value = "userDef3")
+    @ApiModelProperty(value="自定义字段3")
     private String userDef3;
 
     /**
      * 自定义字段4
      */
     @TableField(value = "userDef4")
+    @ApiModelProperty(value="自定义字段4")
     private String userDef4;
 
     /**
      * 自定义字段5
      */
     @TableField(value = "userDef5")
+    @ApiModelProperty(value="自定义字段5")
     private String userDef5;
 
     /**
      * 自定义字段6
      */
     @TableField(value = "userDef6")
+    @ApiModelProperty(value="自定义字段6")
     private String userDef6;
 
     /**
      * 自定义字段7
      */
     @TableField(value = "userDef7")
+    @ApiModelProperty(value="自定义字段7")
     private String userDef7;
 
     /**
      * 自定义字段8
      */
     @TableField(value = "userDef8")
+    @ApiModelProperty(value="自定义字段8")
     private String userDef8;
 
     /**
      * 处理标记
      */
     @TableField(value = "processStamp")
+    @ApiModelProperty(value="处理标记")
     private String processStamp;
 
+    /**
+     * 是否删除
+     */
     @TableField(value = "deleted")
+    @ApiModelProperty(value="是否删除")
     private Boolean deleted;
 
     private static final long serialVersionUID = 1L;
-
-    public static final String COL_WAREHOUSECODE = "warehouseCode";
-
-    public static final String COL_COMPANYCODE = "companyCode";
-
-    public static final String COL_CODE = "code";
-
-    public static final String COL_RECEIPTTYPE = "receiptType";
-
-    public static final String COL_FIRSTSTATUS = "firstStatus";
-
-    public static final String COL_LASTSTATUS = "lastStatus";
-
-    public static final String COL_REFERCODE = "referCode";
-
-    public static final String COL_REFERID = "referId";
-
-    public static final String COL_REFERTYPE = "referType";
-
-    public static final String COL_SCHEDULEDARRIVEDATE = "scheduledArriveDate";
-
-    public static final String COL_ACTUALARRIVEDATE = "actualArriveDate";
-
-    public static final String COL_RECVDOCK = "recvDock";
-
-    public static final String COL_CLOSEDAT = "closedAt";
-
-    public static final String COL_CLOSEDBY = "closedBy";
-
-    public static final String COL_STARTCHECKINDATETIME = "startCheckinDatetime";
-
-    public static final String COL_ENDCHECKINDATETIME = "endCheckinDatetime";
-
-    public static final String COL_TOTALQTY = "totalQty";
-
-    public static final String COL_TOTALLINES = "totalLines";
-
-    public static final String COL_TOALCASES = "toalCases";
-
-    public static final String COL_TOTALWEIGHT = "totalWeight";
-
-    public static final String COL_TOTALVOLUME = "totalVolume";
-
-    public static final String COL_RECEIPTNOTE = "receiptNote";
-
-    public static final String COL_LOCKED = "locked";
-
-    public static final String COL_LOCKEDBY = "lockedBy";
-
-    public static final String COL_CREATED = "created";
-
-    public static final String COL_CREATEDBY = "createdBy";
-
-    public static final String COL_LASTUPDATED = "lastUpdated";
-
-    public static final String COL_LASTUPDATEDBY = "lastUpdatedBy";
-
-    public static final String COL_VERSION = "version";
-
-    public static final String COL_USERDEF1 = "userDef1";
-
-    public static final String COL_USERDEF2 = "userDef2";
-
-    public static final String COL_USERDEF3 = "userDef3";
-
-    public static final String COL_USERDEF4 = "userDef4";
-
-    public static final String COL_USERDEF5 = "userDef5";
-
-    public static final String COL_USERDEF6 = "userDef6";
-
-    public static final String COL_USERDEF7 = "userDef7";
-
-    public static final String COL_USERDEF8 = "userDef8";
-
-    public static final String COL_PROCESSSTAMP = "processStamp";
 }
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptHeader/domain/ReceiptModel.java b/src/main/java/com/huaheng/pc/receipt/receiptHeader/domain/ReceiptModel.java
deleted file mode 100644
index 58a26d4..0000000
--- a/src/main/java/com/huaheng/pc/receipt/receiptHeader/domain/ReceiptModel.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.huaheng.pc.receipt.receiptHeader.domain;
-
-import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail;
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * 入库实体类
- */
-@Data
-public class ReceiptModel {
-
-    private ReceiptHeader receiptHeader;
-
-    private List<ReceiptDetail> receiptDetail;
-}
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 a3f990e..e365d36 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
@@ -1,8 +1,12 @@
 package com.huaheng.pc.receipt.receiptHeader.service;
 
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huaheng.pc.receipt.receiptHeader.mapper.ReceiptHeaderMapper;
 import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
-import com.baomidou.mybatisplus.extension.service.IService;
-public interface ReceiptHeaderService extends IService<ReceiptHeader>{
-
+@Service
+public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, ReceiptHeader> {
 
 }
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderServiceImpl.java
deleted file mode 100644
index 1558db2..0000000
--- a/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderServiceImpl.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.huaheng.pc.receipt.receiptHeader.service;
-
-import org.springframework.stereotype.Service;
-import javax.annotation.Resource;
-import java.util.List;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.huaheng.pc.receipt.receiptHeader.mapper.ReceiptHeaderMapper;
-import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
-import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService;
-@Service
-public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, ReceiptHeader> implements ReceiptHeaderService{
-
-}
diff --git a/src/main/java/com/huaheng/pc/shipment/FilterConfigDetail/domain/FilterConfigDetail.java b/src/main/java/com/huaheng/pc/shipment/FilterConfigDetail/domain/FilterConfigDetail.java
new file mode 100644
index 0000000..aa2fe41
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/shipment/FilterConfigDetail/domain/FilterConfigDetail.java
@@ -0,0 +1,200 @@
+package com.huaheng.pc.shipment.FilterConfigDetail.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+@ApiModel(value="com.huaheng.pc.shipment.FilterConfigDetail.domain.FilterConfigDetail")
+@Data
+@TableName(value = "filter_config_detail")
+public class FilterConfigDetail implements Serializable {
+    /**
+     * ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value="ID")
+    private Integer id;
+
+    /**
+     * 头表标识
+     */
+    @TableField(value = "headerId")
+    @ApiModelProperty(value="头表标识")
+    private Integer headerId;
+
+    /**
+     * 编码
+     */
+    @TableField(value = "code")
+    @ApiModelProperty(value="编码")
+    private String code;
+
+    /**
+     * 模块
+     */
+    @TableField(value = "moduleType")
+    @ApiModelProperty(value="模块")
+    private String moduleType;
+
+    /**
+     * 类型
+     */
+    @TableField(value = "recordType")
+    @ApiModelProperty(value="类型")
+    private String recordType;
+
+    /**
+     * 条件名
+     */
+    @TableField(value = "filterCode")
+    @ApiModelProperty(value="条件名")
+    private String filterCode;
+
+    /**
+     * 仓库
+     */
+    @TableField(value = "warehouseCode")
+    @ApiModelProperty(value="仓库")
+    private String warehouseCode;
+
+    /**
+     * 描述
+     */
+    @TableField(value = "description")
+    @ApiModelProperty(value="描述")
+    private String description;
+
+    /**
+     * 全SQL
+     */
+    @TableField(value = "statement")
+    @ApiModelProperty(value="全SQL")
+    private String statement;
+
+    /**
+     * 是否系统创建
+     */
+    @TableField(value = "systemCreated")
+    @ApiModelProperty(value="是否系统创建")
+    private Integer systemCreated;
+
+    /**
+     * 是否自定义SQL
+     */
+    @TableField(value = "customSql")
+    @ApiModelProperty(value="是否自定义SQL")
+    private String customSql;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "created")
+    @ApiModelProperty(value="创建时间")
+    private Date created;
+
+    /**
+     * 创建用户
+     */
+    @TableField(value = "createdBy")
+    @ApiModelProperty(value="创建用户")
+    private String createdBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "lastUpdated")
+    @ApiModelProperty(value="创建时间")
+    private Date lastUpdated;
+
+    /**
+     * 更新用户
+     */
+    @TableField(value = "lastUpdatedBy")
+    @ApiModelProperty(value="更新用户")
+    private String lastUpdatedBy;
+
+    /**
+     * 数据版本
+     */
+    @TableField(value = "version")
+    @ApiModelProperty(value="数据版本")
+    private Integer version;
+
+    /**
+     * 自定义字段1
+     */
+    @TableField(value = "userDef1")
+    @ApiModelProperty(value="自定义字段1")
+    private String userDef1;
+
+    /**
+     * 自定义字段2
+     */
+    @TableField(value = "userDef2")
+    @ApiModelProperty(value="自定义字段2")
+    private String userDef2;
+
+    /**
+     * 自定义字段3
+     */
+    @TableField(value = "userDef3")
+    @ApiModelProperty(value="自定义字段3")
+    private String userDef3;
+
+    /**
+     * 自定义字段4
+     */
+    @TableField(value = "userDef4")
+    @ApiModelProperty(value="自定义字段4")
+    private String userDef4;
+
+    /**
+     * 自定义字段5
+     */
+    @TableField(value = "userDef5")
+    @ApiModelProperty(value="自定义字段5")
+    private String userDef5;
+
+    /**
+     * 自定义字段6
+     */
+    @TableField(value = "userDef6")
+    @ApiModelProperty(value="自定义字段6")
+    private String userDef6;
+
+    /**
+     * 自定义字段7
+     */
+    @TableField(value = "userDef7")
+    @ApiModelProperty(value="自定义字段7")
+    private String userDef7;
+
+    /**
+     * 自定义字段8
+     */
+    @TableField(value = "userDef8")
+    @ApiModelProperty(value="自定义字段8")
+    private String userDef8;
+
+    /**
+     * 处理标记
+     */
+    @TableField(value = "processStamp")
+    @ApiModelProperty(value="处理标记")
+    private String processStamp;
+
+    /**
+     * 条件名称
+     */
+    @TableField(value = "filterName")
+    @ApiModelProperty(value="条件名称")
+    private String filterName;
+
+    private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/shipment/FilterConfigDetail/mapper/FilterConfigDetailMapper.java b/src/main/java/com/huaheng/pc/shipment/FilterConfigDetail/mapper/FilterConfigDetailMapper.java
new file mode 100644
index 0000000..f71d68d
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/shipment/FilterConfigDetail/mapper/FilterConfigDetailMapper.java
@@ -0,0 +1,7 @@
+package com.huaheng.pc.shipment.FilterConfigDetail.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huaheng.pc.shipment.FilterConfigDetail.domain.FilterConfigDetail;
+
+public interface FilterConfigDetailMapper extends BaseMapper<FilterConfigDetail> {
+}
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentPreference/service/ShipmentPreferenceServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/FilterConfigDetail/service/FilterConfigDetailService.java
index 65ce77b..ee911a8 100644
--- a/src/main/java/com/huaheng/pc/shipment/shipmentPreference/service/ShipmentPreferenceServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/shipment/FilterConfigDetail/service/FilterConfigDetailService.java
@@ -1,13 +1,12 @@
-package com.huaheng.pc.shipment.shipmentPreference.service;
+package com.huaheng.pc.shipment.FilterConfigDetail.service;
 
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.util.List;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.huaheng.pc.shipment.shipmentPreference.mapper.ShipmentPreferenceMapper;
-import com.huaheng.pc.shipment.shipmentPreference.domain.ShipmentPreference;
-import com.huaheng.pc.shipment.shipmentPreference.service.ShipmentPreferenceService;
+import com.huaheng.pc.shipment.FilterConfigDetail.domain.FilterConfigDetail;
+import com.huaheng.pc.shipment.FilterConfigDetail.mapper.FilterConfigDetailMapper;
 @Service
-public class ShipmentPreferenceServiceImpl extends ServiceImpl<ShipmentPreferenceMapper, ShipmentPreference> implements ShipmentPreferenceService{
+public class FilterConfigDetailService extends ServiceImpl<FilterConfigDetailMapper, FilterConfigDetail> {
 
 }
diff --git a/src/main/java/com/huaheng/pc/shipment/FilterConfigHeader/domain/FilterConfigHeader.java b/src/main/java/com/huaheng/pc/shipment/FilterConfigHeader/domain/FilterConfigHeader.java
new file mode 100644
index 0000000..13d058c
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/shipment/FilterConfigHeader/domain/FilterConfigHeader.java
@@ -0,0 +1,172 @@
+package com.huaheng.pc.shipment.FilterConfigHeader.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+@ApiModel(value="com.huaheng.pc.shipment.FilterConfigHeader.domain.FilterConfigHeader")
+@Data
+@TableName(value = "filter_config_header")
+public class FilterConfigHeader implements Serializable {
+    /**
+     * ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value="ID")
+    private Integer id;
+
+    /**
+     * 模块
+     */
+    @TableField(value = "moduleType")
+    @ApiModelProperty(value="模块")
+    private String moduleType;
+
+    /**
+     * 类型
+     */
+    @TableField(value = "recordType")
+    @ApiModelProperty(value="类型")
+    private String recordType;
+
+    /**
+     * 条件名
+     */
+    @TableField(value = "filterCode")
+    @ApiModelProperty(value="条件名")
+    private String filterCode;
+
+    /**
+     * 仓库
+     */
+    @TableField(value = "warehouseCode")
+    @ApiModelProperty(value="仓库")
+    private String warehouseCode;
+
+    /**
+     * 描述
+     */
+    @TableField(value = "description")
+    @ApiModelProperty(value="描述")
+    private String description;
+
+    /**
+     * 是否系统创建
+     */
+    @TableField(value = "systemCreated")
+    @ApiModelProperty(value="是否系统创建")
+    private Integer systemCreated;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "created")
+    @ApiModelProperty(value="创建时间")
+    private Date created;
+
+    /**
+     * 创建用户
+     */
+    @TableField(value = "createdBy")
+    @ApiModelProperty(value="创建用户")
+    private String createdBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "lastUpdated")
+    @ApiModelProperty(value="创建时间")
+    private Date lastUpdated;
+
+    /**
+     * 更新用户
+     */
+    @TableField(value = "lastUpdatedBy")
+    @ApiModelProperty(value="更新用户")
+    private String lastUpdatedBy;
+
+    /**
+     * 数据版本
+     */
+    @TableField(value = "version")
+    @ApiModelProperty(value="数据版本")
+    private Integer version;
+
+    /**
+     * 自定义字段1
+     */
+    @TableField(value = "userDef1")
+    @ApiModelProperty(value="自定义字段1")
+    private String userDef1;
+
+    /**
+     * 自定义字段2
+     */
+    @TableField(value = "userDef2")
+    @ApiModelProperty(value="自定义字段2")
+    private String userDef2;
+
+    /**
+     * 自定义字段3
+     */
+    @TableField(value = "userDef3")
+    @ApiModelProperty(value="自定义字段3")
+    private String userDef3;
+
+    /**
+     * 自定义字段4
+     */
+    @TableField(value = "userDef4")
+    @ApiModelProperty(value="自定义字段4")
+    private String userDef4;
+
+    /**
+     * 自定义字段5
+     */
+    @TableField(value = "userDef5")
+    @ApiModelProperty(value="自定义字段5")
+    private String userDef5;
+
+    /**
+     * 自定义字段6
+     */
+    @TableField(value = "userDef6")
+    @ApiModelProperty(value="自定义字段6")
+    private String userDef6;
+
+    /**
+     * 自定义字段7
+     */
+    @TableField(value = "userDef7")
+    @ApiModelProperty(value="自定义字段7")
+    private String userDef7;
+
+    /**
+     * 自定义字段8
+     */
+    @TableField(value = "userDef8")
+    @ApiModelProperty(value="自定义字段8")
+    private String userDef8;
+
+    /**
+     * 处理标记
+     */
+    @TableField(value = "processStamp")
+    @ApiModelProperty(value="处理标记")
+    private String processStamp;
+
+    /**
+     * 条件名称
+     */
+    @TableField(value = "filterName")
+    @ApiModelProperty(value="条件名称")
+    private String filterName;
+
+    private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/shipment/FilterConfigHeader/mapper/FilterConfigHeaderMapper.java b/src/main/java/com/huaheng/pc/shipment/FilterConfigHeader/mapper/FilterConfigHeaderMapper.java
new file mode 100644
index 0000000..19ff1be
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/shipment/FilterConfigHeader/mapper/FilterConfigHeaderMapper.java
@@ -0,0 +1,7 @@
+package com.huaheng.pc.shipment.FilterConfigHeader.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huaheng.pc.shipment.FilterConfigHeader.domain.FilterConfigHeader;
+
+public interface FilterConfigHeaderMapper extends BaseMapper<FilterConfigHeader> {
+}
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/config/warehouseConfig/service/WarehouseConfigServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/FilterConfigHeader/service/FilterConfigHeaderService.java
index 98c2a80..7e03591 100644
--- a/src/main/java/com/huaheng/pc/config/warehouseConfig/service/WarehouseConfigServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/shipment/FilterConfigHeader/service/FilterConfigHeaderService.java
@@ -1,13 +1,12 @@
-package com.huaheng.pc.config.warehouseConfig.service;
+package com.huaheng.pc.shipment.FilterConfigHeader.service;
 
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.util.List;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.huaheng.pc.config.warehouseConfig.domain.WarehouseConfig;
-import com.huaheng.pc.config.warehouseConfig.mapper.WarehouseConfigMapper;
-import com.huaheng.pc.config.warehouseConfig.service.WarehouseConfigService;
+import com.huaheng.pc.shipment.FilterConfigHeader.mapper.FilterConfigHeaderMapper;
+import com.huaheng.pc.shipment.FilterConfigHeader.domain.FilterConfigHeader;
 @Service
-public class WarehouseConfigServiceImpl extends ServiceImpl<WarehouseConfigMapper, WarehouseConfig> implements WarehouseConfigService{
+public class FilterConfigHeaderService extends ServiceImpl<FilterConfigHeaderMapper, FilterConfigHeader> {
 
 }
diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentAnalyzeTemplate/domain/ShipmentAnalyzeTemplate.java b/src/main/java/com/huaheng/pc/shipment/shipmentAnalyzeTemplate/domain/ShipmentAnalyzeTemplate.java
new file mode 100644
index 0000000..9358b53
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/shipment/shipmentAnalyzeTemplate/domain/ShipmentAnalyzeTemplate.java
@@ -0,0 +1,80 @@
+package com.huaheng.pc.shipment.shipmentAnalyzeTemplate.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+@ApiModel(value="com.huaheng.pc.shipment.shipmentAnalyzeTemplate.domain.ShipmentAnalyzeTemplate")
+@Data
+@TableName(value = "shipment_analyze_template")
+public class ShipmentAnalyzeTemplate implements Serializable {
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value="null")
+    private Integer id;
+
+    /**
+     * 时间编码如:190813093125
+     */
+    @TableField(value = "code")
+    @ApiModelProperty(value="时间编码如:190813093125")
+    private String code;
+
+    @TableField(value = "warehouseCode")
+    @ApiModelProperty(value="null")
+    private String warehouseCode;
+
+    /**
+     * 分析的结果
+     */
+    @TableField(value = "treeStruct")
+    @ApiModelProperty(value="分析的结果")
+    private String treeStruct;
+
+    /**
+     * 出库分析条件--前端界面选择
+     */
+    @TableField(value = "criteriaCode")
+    @ApiModelProperty(value="出库分析条件--前端界面选择")
+    private String criteriaCode;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "created")
+    @ApiModelProperty(value="创建时间")
+    private Date created;
+
+    @TableField(value = "createdBy")
+    @ApiModelProperty(value="null")
+    private String createdBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "lastUpdated")
+    @ApiModelProperty(value="创建时间")
+    private Date lastUpdated;
+
+    @TableField(value = "lastUpdatedBy")
+    @ApiModelProperty(value="null")
+    private String lastUpdatedBy;
+
+    @TableField(value = "processStamp")
+    @ApiModelProperty(value="null")
+    private String processStamp;
+
+    /**
+     * 数据版本
+     */
+    @TableField(value = "version")
+    @ApiModelProperty(value="数据版本")
+    private Integer version;
+
+    private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentAnalyzeTemplate/mapper/ShipmentAnalyzeTemplateMapper.java b/src/main/java/com/huaheng/pc/shipment/shipmentAnalyzeTemplate/mapper/ShipmentAnalyzeTemplateMapper.java
new file mode 100644
index 0000000..514a56a
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/shipment/shipmentAnalyzeTemplate/mapper/ShipmentAnalyzeTemplateMapper.java
@@ -0,0 +1,7 @@
+package com.huaheng.pc.shipment.shipmentAnalyzeTemplate.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huaheng.pc.shipment.shipmentAnalyzeTemplate.domain.ShipmentAnalyzeTemplate;
+
+public interface ShipmentAnalyzeTemplateMapper extends BaseMapper<ShipmentAnalyzeTemplate> {
+}
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentAnalyzeTemplate/service/ShipmentAnalyzeTemplateService.java b/src/main/java/com/huaheng/pc/shipment/shipmentAnalyzeTemplate/service/ShipmentAnalyzeTemplateService.java
new file mode 100644
index 0000000..c43e37f
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/shipment/shipmentAnalyzeTemplate/service/ShipmentAnalyzeTemplateService.java
@@ -0,0 +1,12 @@
+package com.huaheng.pc.shipment.shipmentAnalyzeTemplate.service;
+
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huaheng.pc.shipment.shipmentAnalyzeTemplate.domain.ShipmentAnalyzeTemplate;
+import com.huaheng.pc.shipment.shipmentAnalyzeTemplate.mapper.ShipmentAnalyzeTemplateMapper;
+@Service
+public class ShipmentAnalyzeTemplateService extends ServiceImpl<ShipmentAnalyzeTemplateMapper, ShipmentAnalyzeTemplate> {
+
+}
diff --git a/src/main/resources/mybatis/config/ReceiptPreferenceMapper.xml b/src/main/resources/mybatis/config/ReceiptPreferenceMapper.xml
index eb1da3c..1cc74ca 100644
--- a/src/main/resources/mybatis/config/ReceiptPreferenceMapper.xml
+++ b/src/main/resources/mybatis/config/ReceiptPreferenceMapper.xml
@@ -4,22 +4,27 @@
   <resultMap id="BaseResultMap" type="com.huaheng.pc.config.receiptPreference.domain.ReceiptPreference">
     <!--@mbg.generated-->
     <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" />
     <result column="code" jdbcType="VARCHAR" property="code" />
     <result column="name" jdbcType="VARCHAR" property="name" />
     <result column="receivingFlow" jdbcType="VARCHAR" property="receivingFlow" />
-    <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" />
     <result column="autoAssignLPN" jdbcType="INTEGER" property="autoAssignLPN" />
     <result column="allowOverReceiving" jdbcType="BIT" property="allowOverReceiving" />
     <result column="allowOverReceivingQty" jdbcType="INTEGER" property="allowOverReceivingQty" />
     <result column="autoLocate" jdbcType="INTEGER" property="autoLocate" />
     <result column="showOpenQty" jdbcType="INTEGER" property="showOpenQty" />
-    <result column="receiptTypes" jdbcType="VARCHAR" property="receiptTypes" />
     <result column="groupPutaway" jdbcType="INTEGER" property="groupPutaway" />
     <result column="manuallyBuildLPN" jdbcType="INTEGER" property="manuallyBuildLPN" />
-    <result column="ruleAssignment" jdbcType="VARCHAR" property="ruleAssignment" />
+    <result column="locationRule" jdbcType="VARCHAR" property="locationRule" />
+    <result column="emptyLocRule" jdbcType="VARCHAR" property="emptyLocRule" />
     <result column="checkinByPiece" jdbcType="INTEGER" property="checkinByPiece" />
     <result column="pieceConfirm" jdbcType="INTEGER" property="pieceConfirm" />
+    <result column="abcClass" jdbcType="VARCHAR" property="abcClass" />
+    <result column="daysToExpire" jdbcType="INTEGER" property="daysToExpire" />
+    <result column="expiringDays" jdbcType="INTEGER" property="expiringDays" />
+    <result column="minShelfLifeDays" jdbcType="INTEGER" property="minShelfLifeDays" />
     <result column="allowQuickPutaway" jdbcType="INTEGER" property="allowQuickPutaway" />
+    <result column="attributeTemplateCode" jdbcType="VARCHAR" property="attributeTemplateCode" />
     <result column="useQuickCheckIn" jdbcType="INTEGER" property="useQuickCheckIn" />
     <result column="created" jdbcType="TIMESTAMP" property="created" />
     <result column="createdBy" jdbcType="VARCHAR" property="createdBy" />
@@ -38,10 +43,11 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, code, `name`, receivingFlow, warehouseCode, autoAssignLPN, allowOverReceiving, 
-    allowOverReceivingQty, autoLocate, showOpenQty, receiptTypes, groupPutaway, manuallyBuildLPN, 
-    ruleAssignment, checkinByPiece, pieceConfirm, allowQuickPutaway, useQuickCheckIn, 
-    created, createdBy, lastUpdated, lastUpdatedBy, version, userDef1, userDef2, userDef3, 
-    userDef4, userDef5, userDef6, userDef7, userDef8, processStamp
+    id, warehouseCode, code, `name`, receivingFlow, autoAssignLPN, allowOverReceiving, 
+    allowOverReceivingQty, autoLocate, showOpenQty, groupPutaway, manuallyBuildLPN, locationRule, 
+    emptyLocRule, checkinByPiece, pieceConfirm, abcClass, daysToExpire, expiringDays, 
+    minShelfLifeDays, allowQuickPutaway, attributeTemplateCode, useQuickCheckIn, created, 
+    createdBy, lastUpdated, lastUpdatedBy, version, userDef1, userDef2, userDef3, userDef4, 
+    userDef5, userDef6, userDef7, userDef8, processStamp
   </sql>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mybatis/shipment/ShipmentPreferenceMapper.xml b/src/main/resources/mybatis/config/ShipmentPreferenceMapper.xml
index 661eaa2..5ace450 100644
--- a/src/main/resources/mybatis/shipment/ShipmentPreferenceMapper.xml
+++ b/src/main/resources/mybatis/config/ShipmentPreferenceMapper.xml
@@ -1,21 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.huaheng.pc.shipment.shipmentPreference.mapper.ShipmentPreferenceMapper">
-  <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.shipmentPreference.domain.ShipmentPreference">
+  <resultMap id="BaseResultMap" type="com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference">
     <!--@mbg.generated-->
     <id column="id" jdbcType="INTEGER" property="id" />
     <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" />
     <result column="code" jdbcType="VARCHAR" property="code" />
     <result column="name" jdbcType="VARCHAR" property="name" />
     <result column="shippingFlow" jdbcType="VARCHAR" property="shippingFlow" />
+    <result column="shipmentPickingRule" jdbcType="VARCHAR" property="shipmentPickingRule" />
+    <result column="shipmentPickingLocRange" jdbcType="VARCHAR" property="shipmentPickingLocRange" />
+    <result column="allocationRule" jdbcType="VARCHAR" property="allocationRule" />
     <result column="autoAssignLPN" jdbcType="INTEGER" property="autoAssignLPN" />
     <result column="allowCross" jdbcType="INTEGER" property="allowCross" />
     <result column="allowQcCheckResult" jdbcType="INTEGER" property="allowQcCheckResult" />
     <result column="showInventoryQty" jdbcType="INTEGER" property="showInventoryQty" />
-    <result column="shipmentTypes" jdbcType="VARCHAR" property="shipmentTypes" />
     <result column="groupPickup" jdbcType="INTEGER" property="groupPickup" />
     <result column="manuallyBuildLPN" jdbcType="INTEGER" property="manuallyBuildLPN" />
-    <result column="ruleAssignment" jdbcType="VARCHAR" property="ruleAssignment" />
     <result column="checkinByPiece" jdbcType="INTEGER" property="checkinByPiece" />
     <result column="allowQuickPickup" jdbcType="INTEGER" property="allowQuickPickup" />
     <result column="created" jdbcType="TIMESTAMP" property="created" />
@@ -27,16 +28,12 @@
     <result column="userDef2" jdbcType="VARCHAR" property="userDef2" />
     <result column="userDef3" jdbcType="VARCHAR" property="userDef3" />
     <result column="userDef4" jdbcType="VARCHAR" property="userDef4" />
-    <result column="userDef5" jdbcType="VARCHAR" property="userDef5" />
-    <result column="userDef6" jdbcType="VARCHAR" property="userDef6" />
-    <result column="userDef7" jdbcType="VARCHAR" property="userDef7" />
-    <result column="userDef8" jdbcType="VARCHAR" property="userDef8" />
     <result column="processStamp" jdbcType="VARCHAR" property="processStamp" />
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
     id, warehouseCode, code, `name`, shippingFlow, autoAssignLPN, allowCross, allowQcCheckResult, 
-    showInventoryQty, shipmentTypes, groupPickup, manuallyBuildLPN, ruleAssignment, checkinByPiece, 
+    showInventoryQty, groupPickup, manuallyBuildLPN, ruleAssignment, checkinByPiece,
     allowQuickPickup, created, createdBy, lastUpdated, lastUpdatedBy, version, userDef1, 
     userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, processStamp
   </sql>
diff --git a/src/main/resources/mybatis/config/WarehouseConfigMapper.xml b/src/main/resources/mybatis/config/WarehouseConfigMapper.xml
deleted file mode 100644
index 290bce4..0000000
--- a/src/main/resources/mybatis/config/WarehouseConfigMapper.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.huaheng.pc.config.warehouseConfig.mapper.WarehouseConfigMapper">
-  <resultMap id="BaseResultMap" type="com.huaheng.pc.config.warehouseConfig.domain.WarehouseConfig">
-    <!--@mbg.generated-->
-    <id column="code" jdbcType="VARCHAR" property="code" />
-    <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" />
-    <result column="name" jdbcType="VARCHAR" property="name" />
-    <result column="abcClass" jdbcType="VARCHAR" property="abcClass" />
-    <result column="daysToExpire" jdbcType="INTEGER" property="daysToExpire" />
-    <result column="locatingRule" jdbcType="VARCHAR" property="locatingRule" />
-    <result column="allocationRule" jdbcType="VARCHAR" property="allocationRule" />
-    <result column="replenishmentRule" jdbcType="VARCHAR" property="replenishmentRule" />
-    <result column="emptyLocRule" jdbcType="VARCHAR" property="emptyLocRule" />
-    <result column="receivingFlow" jdbcType="VARCHAR" property="receivingFlow" />
-    <result column="shippingFlow" jdbcType="VARCHAR" property="shippingFlow" />
-    <result column="attributeTemplateCode" jdbcType="VARCHAR" property="attributeTemplateCode" />
-    <result column="trackSerialNum" jdbcType="INTEGER" property="trackSerialNum" />
-    <result column="autoGenSerialNum" jdbcType="INTEGER" property="autoGenSerialNum" />
-    <result column="autoGenSerialNumFormat" jdbcType="VARCHAR" property="autoGenSerialNumFormat" />
-    <result column="snTemplateCode" jdbcType="VARCHAR" property="snTemplateCode" />
-    <result column="expiringDays" jdbcType="INTEGER" property="expiringDays" />
-    <result column="minShelfLifeDays" jdbcType="INTEGER" property="minShelfLifeDays" />
-    <result column="enable" jdbcType="INTEGER" property="enable" />
-    <result column="created" jdbcType="TIMESTAMP" property="created" />
-    <result column="createdBy" jdbcType="VARCHAR" property="createdBy" />
-    <result column="lastUpdated" jdbcType="TIMESTAMP" property="lastUpdated" />
-    <result column="lastUpdatedBy" jdbcType="VARCHAR" property="lastUpdatedBy" />
-    <result column="version" jdbcType="INTEGER" property="version" />
-    <result column="userDef1" jdbcType="VARCHAR" property="userDef1" />
-    <result column="userDef2" jdbcType="VARCHAR" property="userDef2" />
-    <result column="userDef3" jdbcType="VARCHAR" property="userDef3" />
-    <result column="userDef4" jdbcType="VARCHAR" property="userDef4" />
-    <result column="userDef5" jdbcType="VARCHAR" property="userDef5" />
-    <result column="userDef6" jdbcType="VARCHAR" property="userDef6" />
-    <result column="userDef7" jdbcType="VARCHAR" property="userDef7" />
-    <result column="userDef8" jdbcType="VARCHAR" property="userDef8" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    code, warehouseCode, `name`, abcClass, daysToExpire, locatingRule, allocationRule, 
-    replenishmentRule, emptyLocRule, receivingFlow, shippingFlow, attributeTemplateCode, 
-    trackSerialNum, autoGenSerialNum, autoGenSerialNumFormat, snTemplateCode, expiringDays, 
-    minShelfLifeDays, `enable`, created, createdBy, lastUpdated, lastUpdatedBy, version, 
-    userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8
-  </sql>
-</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mybatis/receipt/ReceiptDetailMapper.xml b/src/main/resources/mybatis/receipt/ReceiptDetailMapper.xml
deleted file mode 100644
index 2e23d3a..0000000
--- a/src/main/resources/mybatis/receipt/ReceiptDetailMapper.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.huaheng.pc.receipt.receiptDetail.mapper.ReceiptDetailMapper">
-  <resultMap id="BaseResultMap" type="com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail">
-    <!--@mbg.generated-->
-    <id column="id" jdbcType="INTEGER" property="id" />
-    <result column="receiptId" jdbcType="INTEGER" property="receiptId" />
-    <result column="receiptCode" jdbcType="VARCHAR" property="receiptCode" />
-    <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" />
-    <result column="companyCode" jdbcType="VARCHAR" property="companyCode" />
-    <result column="materialCode" jdbcType="VARCHAR" property="materialCode" />
-    <result column="materialName" jdbcType="VARCHAR" property="materialName" />
-    <result column="materialSpec" jdbcType="VARCHAR" property="materialSpec" />
-    <result column="materialUnit" jdbcType="VARCHAR" property="materialUnit" />
-    <result column="supplierCode" jdbcType="VARCHAR" property="supplierCode" />
-    <result column="batch" jdbcType="VARCHAR" property="batch" />
-    <result column="lot" jdbcType="VARCHAR" property="lot" />
-    <result column="qcCheck" jdbcType="VARCHAR" property="qcCheck" />
-    <result column="projectNo" jdbcType="VARCHAR" property="projectNo" />
-    <result column="manufactureDate" jdbcType="DATE" property="manufactureDate" />
-    <result column="expirationDate" jdbcType="DATE" property="expirationDate" />
-    <result column="agingDate" jdbcType="DATE" property="agingDate" />
-    <result column="attributeTemplateCode" jdbcType="VARCHAR" property="attributeTemplateCode" />
-    <result column="attribute1" jdbcType="VARCHAR" property="attribute1" />
-    <result column="attribute2" jdbcType="VARCHAR" property="attribute2" />
-    <result column="attribute3" jdbcType="VARCHAR" property="attribute3" />
-    <result column="attribute4" jdbcType="VARCHAR" property="attribute4" />
-    <result column="totalQty" jdbcType="INTEGER" property="totalQty" />
-    <result column="openQty" jdbcType="INTEGER" property="openQty" />
-    <result column="referCode" jdbcType="VARCHAR" property="referCode" />
-    <result column="referId" jdbcType="INTEGER" property="referId" />
-    <result column="referLineNum" jdbcType="VARCHAR" property="referLineNum" />
-    <result column="locatingRule" jdbcType="VARCHAR" property="locatingRule" />
-    <result column="inventorySts" jdbcType="VARCHAR" property="inventorySts" />
-    <result column="itemListPrice" jdbcType="DECIMAL" property="itemListPrice" />
-    <result column="itemNetPrice" jdbcType="DECIMAL" property="itemNetPrice" />
-    <result column="isVirtualBom" jdbcType="INTEGER" property="isVirtualBom" />
-    <result column="created" jdbcType="TIMESTAMP" property="created" />
-    <result column="createdBy" jdbcType="VARCHAR" property="createdBy" />
-    <result column="lastUpdated" jdbcType="TIMESTAMP" property="lastUpdated" />
-    <result column="lastUpdatedBy" jdbcType="VARCHAR" property="lastUpdatedBy" />
-    <result column="version" jdbcType="INTEGER" property="version" />
-    <result column="userDef1" jdbcType="VARCHAR" property="userDef1" />
-    <result column="userDef2" jdbcType="VARCHAR" property="userDef2" />
-    <result column="userDef3" jdbcType="VARCHAR" property="userDef3" />
-    <result column="userDef4" jdbcType="VARCHAR" property="userDef4" />
-    <result column="userDef5" jdbcType="VARCHAR" property="userDef5" />
-    <result column="userDef6" jdbcType="VARCHAR" property="userDef6" />
-    <result column="userDef7" jdbcType="VARCHAR" property="userDef7" />
-    <result column="userDef8" jdbcType="VARCHAR" property="userDef8" />
-    <result column="processStamp" jdbcType="VARCHAR" property="processStamp" />
-    <result column="deleted" jdbcType="BIT" property="deleted" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id, receiptId, receiptCode, warehouseCode, companyCode, materialCode, materialName, 
-    materialSpec, materialUnit, supplierCode, batch, lot, qcCheck, projectNo, manufactureDate, 
-    expirationDate, agingDate, attributeTemplateCode, attribute1, attribute2, attribute3, 
-    attribute4, totalQty, openQty, referCode, referId, referLineNum, locatingRule, inventorySts, 
-    itemListPrice, itemNetPrice, isVirtualBom, created, createdBy, lastUpdated, lastUpdatedBy, 
-    version, userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, 
-    processStamp, deleted
-  </sql>
-
-</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mybatis/receipt/ReceiptHeaderMapper.xml b/src/main/resources/mybatis/receipt/ReceiptHeaderMapper.xml
index b892680..7fdfbd5 100644
--- a/src/main/resources/mybatis/receipt/ReceiptHeaderMapper.xml
+++ b/src/main/resources/mybatis/receipt/ReceiptHeaderMapper.xml
@@ -42,6 +42,7 @@
     <result column="userDef7" jdbcType="VARCHAR" property="userDef7" />
     <result column="userDef8" jdbcType="VARCHAR" property="userDef8" />
     <result column="processStamp" jdbcType="VARCHAR" property="processStamp" />
+    <result column="deleted" jdbcType="BIT" property="deleted" />
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
@@ -50,8 +51,6 @@
     startCheckinDatetime, endCheckinDatetime, totalQty, totalLines, toalCases, totalWeight, 
     totalVolume, receiptNote, locked, lockedBy, created, createdBy, lastUpdated, lastUpdatedBy, 
     version, userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, 
-    processStamp
+    processStamp, deleted
   </sql>
-
-
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mybatis/shipment/FilterConfigDetailMapper.xml b/src/main/resources/mybatis/shipment/FilterConfigDetailMapper.xml
new file mode 100644
index 0000000..44445f1
--- /dev/null
+++ b/src/main/resources/mybatis/shipment/FilterConfigDetailMapper.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huaheng.pc.shipment.FilterConfigDetail.mapper.FilterConfigDetailMapper">
+  <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.FilterConfigDetail.domain.FilterConfigDetail">
+    <!--@mbg.generated-->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="headerId" jdbcType="INTEGER" property="headerId" />
+    <result column="code" jdbcType="VARCHAR" property="code" />
+    <result column="moduleType" jdbcType="VARCHAR" property="moduleType" />
+    <result column="recordType" jdbcType="VARCHAR" property="recordType" />
+    <result column="filterCode" jdbcType="VARCHAR" property="filterCode" />
+    <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" />
+    <result column="description" jdbcType="VARCHAR" property="description" />
+    <result column="statement" jdbcType="LONGVARCHAR" property="statement" />
+    <result column="systemCreated" jdbcType="INTEGER" property="systemCreated" />
+    <result column="customSql" jdbcType="LONGVARCHAR" property="customSql" />
+    <result column="created" jdbcType="TIMESTAMP" property="created" />
+    <result column="createdBy" jdbcType="VARCHAR" property="createdBy" />
+    <result column="lastUpdated" jdbcType="TIMESTAMP" property="lastUpdated" />
+    <result column="lastUpdatedBy" jdbcType="VARCHAR" property="lastUpdatedBy" />
+    <result column="version" jdbcType="INTEGER" property="version" />
+    <result column="userDef1" jdbcType="VARCHAR" property="userDef1" />
+    <result column="userDef2" jdbcType="VARCHAR" property="userDef2" />
+    <result column="userDef3" jdbcType="VARCHAR" property="userDef3" />
+    <result column="userDef4" jdbcType="VARCHAR" property="userDef4" />
+    <result column="userDef5" jdbcType="VARCHAR" property="userDef5" />
+    <result column="userDef6" jdbcType="VARCHAR" property="userDef6" />
+    <result column="userDef7" jdbcType="VARCHAR" property="userDef7" />
+    <result column="userDef8" jdbcType="VARCHAR" property="userDef8" />
+    <result column="processStamp" jdbcType="VARCHAR" property="processStamp" />
+    <result column="filterName" jdbcType="VARCHAR" property="filterName" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, headerId, code, moduleType, recordType, filterCode, warehouseCode, description, 
+    `statement`, systemCreated, customSql, created, createdBy, lastUpdated, lastUpdatedBy, 
+    version, userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, 
+    processStamp, filterName
+  </sql>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mybatis/shipment/FilterConfigHeaderMapper.xml b/src/main/resources/mybatis/shipment/FilterConfigHeaderMapper.xml
new file mode 100644
index 0000000..50a666b
--- /dev/null
+++ b/src/main/resources/mybatis/shipment/FilterConfigHeaderMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huaheng.pc.shipment.FilterConfigHeader.mapper.FilterConfigHeaderMapper">
+  <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.FilterConfigHeader.domain.FilterConfigHeader">
+    <!--@mbg.generated-->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="moduleType" jdbcType="VARCHAR" property="moduleType" />
+    <result column="recordType" jdbcType="VARCHAR" property="recordType" />
+    <result column="filterCode" jdbcType="VARCHAR" property="filterCode" />
+    <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" />
+    <result column="description" jdbcType="VARCHAR" property="description" />
+    <result column="systemCreated" jdbcType="INTEGER" property="systemCreated" />
+    <result column="created" jdbcType="TIMESTAMP" property="created" />
+    <result column="createdBy" jdbcType="VARCHAR" property="createdBy" />
+    <result column="lastUpdated" jdbcType="TIMESTAMP" property="lastUpdated" />
+    <result column="lastUpdatedBy" jdbcType="VARCHAR" property="lastUpdatedBy" />
+    <result column="version" jdbcType="INTEGER" property="version" />
+    <result column="userDef1" jdbcType="VARCHAR" property="userDef1" />
+    <result column="userDef2" jdbcType="VARCHAR" property="userDef2" />
+    <result column="userDef3" jdbcType="VARCHAR" property="userDef3" />
+    <result column="userDef4" jdbcType="VARCHAR" property="userDef4" />
+    <result column="userDef5" jdbcType="VARCHAR" property="userDef5" />
+    <result column="userDef6" jdbcType="VARCHAR" property="userDef6" />
+    <result column="userDef7" jdbcType="VARCHAR" property="userDef7" />
+    <result column="userDef8" jdbcType="VARCHAR" property="userDef8" />
+    <result column="processStamp" jdbcType="VARCHAR" property="processStamp" />
+    <result column="filterName" jdbcType="VARCHAR" property="filterName" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, moduleType, recordType, filterCode, warehouseCode, description, systemCreated, 
+    created, createdBy, lastUpdated, lastUpdatedBy, version, userDef1, userDef2, userDef3, 
+    userDef4, userDef5, userDef6, userDef7, userDef8, processStamp, filterName
+  </sql>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mybatis/shipment/ShipmentAnalyzeTemplateMapper.xml b/src/main/resources/mybatis/shipment/ShipmentAnalyzeTemplateMapper.xml
new file mode 100644
index 0000000..5d3ed9e
--- /dev/null
+++ b/src/main/resources/mybatis/shipment/ShipmentAnalyzeTemplateMapper.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huaheng.pc.shipment.shipmentAnalyzeTemplate.mapper.ShipmentAnalyzeTemplateMapper">
+  <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.shipmentAnalyzeTemplate.domain.ShipmentAnalyzeTemplate">
+    <!--@mbg.generated-->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="code" jdbcType="VARCHAR" property="code" />
+    <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" />
+    <result column="treeStruct" jdbcType="LONGVARCHAR" property="treeStruct" />
+    <result column="criteriaCode" jdbcType="VARCHAR" property="criteriaCode" />
+    <result column="created" jdbcType="TIMESTAMP" property="created" />
+    <result column="createdBy" jdbcType="VARCHAR" property="createdBy" />
+    <result column="lastUpdated" jdbcType="TIMESTAMP" property="lastUpdated" />
+    <result column="lastUpdatedBy" jdbcType="VARCHAR" property="lastUpdatedBy" />
+    <result column="processStamp" jdbcType="VARCHAR" property="processStamp" />
+    <result column="version" jdbcType="INTEGER" property="version" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, code, warehouseCode, treeStruct, criteriaCode, created, createdBy, lastUpdated, 
+    lastUpdatedBy, processStamp, version
+  </sql>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/config/receiptPreference/add.html b/src/main/resources/templates/config/receiptPreference/add.html
index 2c84572..d7b7a4e 100644
--- a/src/main/resources/templates/config/receiptPreference/add.html
+++ b/src/main/resources/templates/config/receiptPreference/add.html
@@ -60,12 +60,6 @@
             </div>
         </div>
         <div class="form-group">
-            <label class="col-sm-3 control-label">入库单类型:</label>
-            <div class="col-sm-8">
-                <input id="receiptTypes" name="receiptTypes" class="form-control" type="text">
-            </div>
-        </div>
-        <div class="form-group">
             <label class="col-sm-3 control-label">RF组车收货:</label>
             <div class="col-sm-8">
                 <input id="groupPutaway" name="groupPutaway" class="form-control" type="text">
@@ -78,9 +72,15 @@
             </div>
         </div>
         <div class="form-group">
-            <label class="col-sm-3 control-label">定位规则动态指派:</label>
+            <label class="col-sm-3 control-label">定位规则:</label>
+            <div class="col-sm-8">
+                <input id="locationRule" name="locationRule" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">空库位规则:</label>
             <div class="col-sm-8">
-                <input id="ruleAssignment" name="ruleAssignment" class="form-control" type="text">
+                <input id="emptyLocRule" name="emptyLocRule" class="form-control" type="text">
             </div>
         </div>
         <div class="form-group">
@@ -96,12 +96,42 @@
             </div>
         </div>
         <div class="form-group">
+            <label class="col-sm-3 control-label">abc分类:</label>
+            <div class="col-sm-8">
+                <input id="abcClass" name="abcClass" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">保质期(天):</label>
+            <div class="col-sm-8">
+                <input id="daysToExpire" name="daysToExpire" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">临期预警(天):</label>
+            <div class="col-sm-8">
+                <input id="expiringDays" name="expiringDays" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">收货预警(天):</label>
+            <div class="col-sm-8">
+                <input id="minShelfLifeDays" name="minShelfLifeDays" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
             <label class="col-sm-3 control-label">RF快速上架:</label>
             <div class="col-sm-8">
                 <input id="allowQuickPutaway" name="allowQuickPutaway" class="form-control" type="text">
             </div>
         </div>
         <div class="form-group">
+            <label class="col-sm-3 control-label">属性模板:</label>
+            <div class="col-sm-8">
+                <input id="attributeTemplateCode" name="attributeTemplateCode" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
             <label class="col-sm-3 control-label">快速入库:</label>
             <div class="col-sm-8">
                 <input id="useQuickCheckIn" name="useQuickCheckIn" class="form-control" type="text">
diff --git a/src/main/resources/templates/config/receiptPreference/edit.html b/src/main/resources/templates/config/receiptPreference/edit.html
index 47281f6..712e423 100644
--- a/src/main/resources/templates/config/receiptPreference/edit.html
+++ b/src/main/resources/templates/config/receiptPreference/edit.html
@@ -3,9 +3,9 @@
 <meta charset="utf-8">
 <head th:include="include :: header"></head>
 <body class="white-bg">
-<div class="wrapper wrapper-content animated fadeInRight ibox-content" th:object="${receiptPreference}">
-    <form class="form-horizontal m" id="form-receiptPreference-edit">
-        <input name="id" th:field="*{id}">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-receiptPreference-edit" th:object="${receiptPreference}">
+        <input id="id" name="id" th:field="*{id}">
         <div class="form-group">
             <label class="col-sm-3 control-label">编码:</label>
             <div class="col-sm-8">
@@ -34,8 +34,8 @@
             <label class="col-sm-3 control-label">允许超收:</label>
             <div class="col-sm-8">
                 <div class="onoffswitch">
-                    <input type="checkbox" th:checked="true" class="onoffswitch-checkbox"
-                           id="allowOverReceiving" name="allowOverReceiving" th:field="*{allowOverReceiving}">
+                    <input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="allowOverReceiving"
+                           name="allowOverReceiving" th:field="*{allowOverReceiving}">
                     <label class="onoffswitch-label" for="allowOverReceiving">
                         <span class="onoffswitch-inner"></span>
                         <span class="onoffswitch-switch"></span>
@@ -46,8 +46,7 @@
         <div class="form-group">
             <label class="col-sm-3 control-label">允许超收范围:</label>
             <div class="col-sm-8">
-                <input id="allowOverReceivingQty" name="allowOverReceivingQty" class="form-control"
-                       type="text" th:field="*{allowOverReceivingQty}">
+                <input id="allowOverReceivingQty" name="allowOverReceivingQty" class="form-control" type="text" th:field="*{allowOverReceivingQty}">
             </div>
         </div>
         <div class="form-group">
@@ -63,12 +62,6 @@
             </div>
         </div>
         <div class="form-group">
-            <label class="col-sm-3 control-label">入库单类型:</label>
-            <div class="col-sm-8">
-                <input id="receiptTypes" name="receiptTypes" class="form-control" type="text" th:field="*{receiptTypes}">
-            </div>
-        </div>
-        <div class="form-group">
             <label class="col-sm-3 control-label">RF组车收货:</label>
             <div class="col-sm-8">
                 <input id="groupPutaway" name="groupPutaway" class="form-control" type="text" th:field="*{groupPutaway}">
@@ -81,9 +74,15 @@
             </div>
         </div>
         <div class="form-group">
-            <label class="col-sm-3 control-label">定位规则动态指派:</label>
+            <label class="col-sm-3 control-label">定位规则:</label>
+            <div class="col-sm-8">
+                <input id="locationRule" name="locationRule" class="form-control" type="text" th:field="*{locationRule}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">空库位规则:</label>
             <div class="col-sm-8">
-                <input id="ruleAssignment" name="ruleAssignment" class="form-control" type="text" th:field="*{ruleAssignment}">
+                <input id="emptyLocRule" name="emptyLocRule" class="form-control" type="text" th:field="*{emptyLocRule}">
             </div>
         </div>
         <div class="form-group">
@@ -99,12 +98,42 @@
             </div>
         </div>
         <div class="form-group">
+            <label class="col-sm-3 control-label">abc分类:</label>
+            <div class="col-sm-8">
+                <input id="abcClass" name="abcClass" class="form-control" type="text" th:field="*{abcClass}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">保质期(天):</label>
+            <div class="col-sm-8">
+                <input id="daysToExpire" name="daysToExpire" class="form-control" type="text" th:field="*{daysToExpire}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">临期预警(天):</label>
+            <div class="col-sm-8">
+                <input id="expiringDays" name="expiringDays" class="form-control" type="text" th:field="*{expiringDays}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">收货预警(天):</label>
+            <div class="col-sm-8">
+                <input id="minShelfLifeDays" name="minShelfLifeDays" class="form-control" type="text" th:field="*{minShelfLifeDays}">
+            </div>
+        </div>
+        <div class="form-group">
             <label class="col-sm-3 control-label">RF快速上架:</label>
             <div class="col-sm-8">
                 <input id="allowQuickPutaway" name="allowQuickPutaway" class="form-control" type="text" th:field="*{allowQuickPutaway}">
             </div>
         </div>
         <div class="form-group">
+            <label class="col-sm-3 control-label">属性模板:</label>
+            <div class="col-sm-8">
+                <input id="attributeTemplateCode" name="attributeTemplateCode" class="form-control" type="text" th:field="*{attributeTemplateCode}">
+            </div>
+        </div>
+        <div class="form-group">
             <label class="col-sm-3 control-label">快速入库:</label>
             <div class="col-sm-8">
                 <input id="useQuickCheckIn" name="useQuickCheckIn" class="form-control" type="text" th:field="*{useQuickCheckIn}">
@@ -240,9 +269,8 @@
             }
         },
         submitHandler: function(form) {
-            var tableValue = $.common.getTableValue("#form-receiptPreference-edit");
-            tableValue = formValueReplace(tableValue, "companyCode", $("#companyCode option:selected").val());
-            tableValue = formValueReplace(tableValue, "enable", $("input[name='enable']").is(':checked'));
+            var tableValue = $.common.getTableValue("#form-receiptPreference-edi");
+            tableValue = formValueReplace(tableValue, "allowOverReceiving", $("input[name='allowOverReceiving']").is(':checked'));
             $.operate.save(prefix + "/edit", tableValue);
         }
     });
diff --git a/src/main/resources/templates/config/receiptPreference/receiptPreference.html b/src/main/resources/templates/config/receiptPreference/receiptPreference.html
index 4bcbd32..f54ce20 100644
--- a/src/main/resources/templates/config/receiptPreference/receiptPreference.html
+++ b/src/main/resources/templates/config/receiptPreference/receiptPreference.html
@@ -36,10 +36,10 @@
             </form>
         </div>
         <div class="btn-group hidden-xs" id="toolbar" role="group">
-            <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="config:locationType:add">
+            <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="config:receiptPreference:add">
                 <i class="fa fa-plus"></i> 新增
             </a>
-            <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="config:locationType:remove">
+            <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="config:receiptPreference:remove">
                 <i class="fa fa-trash-o"></i> 删除
             </a>
         </div>
@@ -120,8 +120,12 @@
                             title : '人工组盘'
                         },
                         {
-                            field : 'ruleAssignment',
-                            title : '定位规则动态指派'
+                            field : 'locationRule',
+                            title : '定位规则'
+                        },
+                        {
+                            field : 'emptyLocRule',
+                            title : '空库位规则'
                         },
                         {
                             field : 'checkinByPiece',
@@ -132,10 +136,30 @@
                             title : 'RF自动提交收货'
                         },
                         {
+                            field : 'abcClass',
+                            title : 'abc分类'
+                        },
+                        {
+                            field : 'daysToExpire',
+                            title : '保质期(天)'
+                        },
+                        {
+                            field : 'expiringDays',
+                            title : '临期预警(天)'
+                        },
+                        {
+                            field : 'minShelfLifeDays',
+                            title : '收货预警(天)'
+                        },
+                        {
                             field : 'allowQuickPutaway',
                             title : 'RF快速上架'
                         },
                         {
+                            field : 'attributeTemplateCode',
+                            title : '属性模板'
+                        },
+                        {
                             field : 'useQuickCheckIn',
                             title : '快速入库'
                         },
@@ -208,5 +232,7 @@
                 $.table.init(options);
             });
         </script>
+    </div>
+</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/src/main/resources/templates/config/shipmentPreference/add.html b/src/main/resources/templates/config/shipmentPreference/add.html
new file mode 100644
index 0000000..eeecad9
--- /dev/null
+++ b/src/main/resources/templates/config/shipmentPreference/add.html
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML>
+<html  lang="zh" xmlns:th="http://www.thymeleaf.org">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-shipmentPreference-add">
+        <div class="form-group">
+            <label class="col-sm-3 control-label">编码:</label>
+            <div class="col-sm-8">
+                <input id="code" name="code" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">名称:</label>
+            <div class="col-sm-8">
+                <input id="name" name="name" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">出库流程:</label>
+            <div class="col-sm-8">
+                <input id="receiptFlow" name="shippingFlow" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">自动生成托盘号:</label>
+            <div class="col-sm-8">
+                <input id="autoAssignLPN" name="autoAssignLPN" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">拣货规则:</label>
+            <div class="col-sm-8">
+                <input id="shipmentPickingRule" name="shipmentPickingRule" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">拣货库位范围规则:</label>
+            <div class="col-sm-8">
+                <input id="shipmentPickingLocRange" name="shipmentPickingLocRange" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">库存分配规则:</label>
+            <div class="col-sm-8">
+                <input id="allocationRule" name="allocationRule" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">允许越库:</label>
+            <div class="col-sm-8">
+                <input id="allowCross" name="allowCross" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">允许未质检的出库:</label>
+            <div class="col-sm-8">
+                <input id="allowQcCheckResult" name="allowQcCheckResult" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">显示库存数量:</label>
+            <div class="col-sm-8">
+                <input id="showInventoryQty" name="showInventoryQty" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">RF组车收货:</label>
+            <div class="col-sm-8">
+                <input id="groupPutaway" name="groupPutaway" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">人工组盘:</label>
+            <div class="col-sm-8">
+                <input id="manuallyBuildLPN" name="manuallyBuildLPN" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">RF逐件拣货:</label>
+            <div class="col-sm-8">
+                <input id="checkinByPiece" name="checkinByPiece" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">RF快速拣货:</label>
+            <div class="col-sm-8">
+                <input id="allowQuickPickup" name="allowQuickPickup" class="form-control" type="text">
+            </div>
+        </div>
+        <!--<div class="form-group">
+            <label class="col-sm-3 control-label">数据版本:</label>
+            <div class="col-sm-8">
+                <input id="version" name="version" class="form-control" type="text">
+            </div>
+        </div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建时间:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="created" name="created" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建者:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="createdBy" name="createdBy" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建时间:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="lastUpdated" name="lastUpdated" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">更新者:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="lastUpdatedBy" name="lastUpdatedBy" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">是否有效:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--&lt;!&ndash;<input id="enable" name="enable" class="form-control" type="text">&ndash;&gt;-->
+        <!--<div class="onoffswitch">-->
+        <!--<input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="enable" name="enable">-->
+        <!--<label class="onoffswitch-label" for="enable">-->
+        <!--<span class="onoffswitch-inner"></span>-->
+        <!--<span class="onoffswitch-switch"></span>-->
+        <!--</label>-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">是否删除:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="deleted" name="deleted" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段1:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef1" name="userDef1" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段2:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef2" name="userDef2" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段3:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef3" name="userDef3" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段4:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef4" name="userDef4" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段5:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef5" name="userDef5" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <div class="form-group">
+            <div class="form-control-static col-sm-offset-9">
+                <button type="submit" class="btn btn-primary">提交</button>
+                <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
+            </div>
+        </div>
+    </form>
+</div>
+<div th:include="include::footer"></div>
+<script type="text/javascript">
+    var prefix = ctx + "config/shipmentPreference";
+    $("#form-shipmentPreference-add").validate({
+        rules:{
+            code:{
+                required: true,
+            },
+            name:{
+                required: true,
+            },
+            shippingFlow:{
+                required: true,
+            },
+            shipmentPickingRule:{
+                required: true,
+            },
+            shipmentPickingLocRange:{
+                required: true,
+            },
+            allocationRule: {
+                required: true,
+            },
+            autoAssignLPN: {
+                required: true,
+            },
+            allowCross: {
+                required: true,
+            },
+            allowQcCheckResult: {
+                required: true,
+            },
+            showInventoryQty: {
+                required: true,
+            },
+            groupPickup: {
+                required: true,
+            },
+            manuallyBuildLPN: {
+                required: true,
+            },
+            checkinByPiece: {
+                required: true,
+            },
+            allowQuickPickup: {
+                required: true,
+            }
+        },
+        submitHandler: function(form) {
+            var tableValue = $.common.getTableValue("#form-shipmentPreference-add");
+            $.operate.save(prefix + "/add", tableValue);
+        }
+    });
+</script>
+</body>
+</html>
diff --git a/src/main/resources/templates/config/shipmentPreference/edit.html b/src/main/resources/templates/config/shipmentPreference/edit.html
new file mode 100644
index 0000000..fd3ea67
--- /dev/null
+++ b/src/main/resources/templates/config/shipmentPreference/edit.html
@@ -0,0 +1,236 @@
+<!DOCTYPE HTML>
+<html  lang="zh" xmlns:th="http://www.thymeleaf.org">
+<meta charset="utf-8">
+<head th:include="include :: header"></head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content" th:object="${shipmentPreference}">
+    <form class="form-horizontal m" id="form-shipmentPreference-edit">
+        <input name="id" th:field="*{id}">
+        <div class="form-group">
+            <label class="col-sm-3 control-label">编码:</label>
+            <div class="col-sm-8">
+                <input id="code" name="code" class="form-control" type="text" th:field="*{code}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">名称:</label>
+            <div class="col-sm-8">
+                <input id="name" name="name" class="form-control" type="text" th:field="*{name}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">出库流程:</label>
+            <div class="col-sm-8">
+                <input id="shippingFlow" name="shippingFlow" class="form-control" type="text" th:field="*{shippingFlow}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">拣货规则:</label>
+            <div class="col-sm-8">
+                <input id="shipmentPickingRule" name="shipmentPickingRule" class="form-control" type="text" th:field="*{shipmentPickingRule}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">拣货库位范围规则:</label>
+            <div class="col-sm-8">
+                <input id="shipmentPickingLocRange" name="shipmentPickingLocRange" class="form-control" type="text" th:field="*{shipmentPickingLocRange}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">库存分配规则:</label>
+            <div class="col-sm-8">
+                <input id="allocationRule" name="allocationRule" class="form-control" type="text" th:field="*{allocationRule}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">自动生成托盘号:</label>
+            <div class="col-sm-8">
+                <input id="autoAssignLPN" name="autoAssignLPN" class="form-control" type="text" th:field="*{autoAssignLPN}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">允许越库:</label>
+            <div class="col-sm-8">
+                <input id="allowCross" name="allowCross" class="form-control" type="text" th:field="*{allowCross}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">允许未质检的出库:</label>
+            <div class="col-sm-8">
+                <input id="allowQcCheckResult" name="allowQcCheckResult" class="form-control"
+                       type="text" th:field="*{allowQcCheckResult}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">显示库存数量:</label>
+            <div class="col-sm-8">
+                <input id="showInventoryQty" name="showInventoryQty" class="form-control" type="text" th:field="*{showInventoryQty}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">RF组车收货:</label>
+            <div class="col-sm-8">
+                <input id="groupPickup" name="groupPickup" class="form-control" type="text" th:field="*{groupPickup}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">人工组盘:</label>
+            <div class="col-sm-8">
+                <input id="manuallyBuildLPN" name="manuallyBuildLPN" class="form-control" type="text" th:field="*{manuallyBuildLPN}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">RF逐件收货:</label>
+            <div class="col-sm-8">
+                <input id="checkinByPiece" name="checkinByPiece" class="form-control" type="text" th:field="*{checkinByPiece}">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">RF快速上架:</label>
+            <div class="col-sm-8">
+                <input id="allowQuickPickup" name="allowQuickPickup" class="form-control" type="text" th:field="*{allowQuickPickup}">
+            </div>
+        </div>
+        <!--<div class="form-group">
+            <label class="col-sm-3 control-label">数据版本:</label>
+            <div class="col-sm-8">
+                <input id="version" name="version" class="form-control" type="text">
+            </div>
+        </div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建时间:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="created" name="created" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建者:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="createdBy" name="createdBy" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">创建时间:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="lastUpdated" name="lastUpdated" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">更新者:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="lastUpdatedBy" name="lastUpdatedBy" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">是否有效:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--&lt;!&ndash;<input id="enable" name="enable" class="form-control" type="text">&ndash;&gt;-->
+        <!--<div class="onoffswitch">-->
+        <!--<input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="enable" name="enable">-->
+        <!--<label class="onoffswitch-label" for="enable">-->
+        <!--<span class="onoffswitch-inner"></span>-->
+        <!--<span class="onoffswitch-switch"></span>-->
+        <!--</label>-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">是否删除:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="deleted" name="deleted" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段1:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef1" name="userDef1" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段2:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef2" name="userDef2" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段3:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef3" name="userDef3" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段4:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef4" name="userDef4" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <!--<div class="form-group">	-->
+        <!--<label class="col-sm-3 control-label">自定义字段5:</label>-->
+        <!--<div class="col-sm-8">-->
+        <!--<input id="userDef5" name="userDef5" class="form-control" type="text">-->
+        <!--</div>-->
+        <!--</div>-->
+        <div class="form-group">
+            <div class="form-control-static col-sm-offset-9">
+                <button type="submit" class="btn btn-primary">提交</button>
+                <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
+            </div>
+        </div>
+    </form>
+</div>
+<div th:include="include::footer"></div>
+<script type="text/javascript">
+    var prefix = ctx + "config/shipmentPreference";
+    $("#form-shipmentPreference-edit").validate({
+        rules:{
+            code:{
+                required: true,
+            },
+            name:{
+                required: true,
+            },
+            shippingFlow:{
+                required: true,
+            },
+            shipmentPickingRule:{
+                required: true,
+            },
+            shipmentPickingLocRange:{
+                required: true,
+            },
+            allocationRule: {
+                required: true,
+            },
+            autoAssignLPN: {
+                required: true,
+            },
+            allowCross: {
+                required: true,
+            },
+            allowQcCheckResult: {
+                required: true,
+            },
+            showInventoryQty: {
+                required: true,
+            },
+            groupPickup: {
+                required: true,
+            },
+            manuallyBuildLPN: {
+                required: true,
+            },
+            checkinByPiece: {
+                required: true,
+            },
+            allowQuickPickup: {
+                required: true,
+            }
+        },
+        submitHandler: function(form) {
+            var tableValue = $.common.getTableValue("#form-shipmentPreference-edit");
+            $.operate.save(prefix + "/edit", tableValue);
+        }
+    });
+</script>
+</body>
+</html>
diff --git a/src/main/resources/templates/config/warehouseConfig/warehouse.html b/src/main/resources/templates/config/shipmentPreference/shipmentPreference.html
index ad04a3a..d9529e7 100644
--- a/src/main/resources/templates/config/warehouseConfig/warehouse.html
+++ b/src/main/resources/templates/config/shipmentPreference/shipmentPreference.html
@@ -6,214 +6,194 @@
 <div class="container-div">
     <div class="row">
         <div class="col-sm-12 select-info">
-            <form id="company-form">
+            <form id="shipmentPreference-form">
                 <div class="select-list">
                     <ul>
                         <li>
-                            仓库编码:<input type="text" name="code"/>
+                            编码:<input type="text" name="code"/>
+                        </li>
+                        <li>
+                            名称:<input type="text" name="name"/>
+                        </li>
+                        <li>
+                            出库流程:<input type="text" name="shippingFlow"/>
+                        </li>
+                        <li class="time">
+                            <label>创建时间: </label>
+                            <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="createdBegin"/>
+                            <span>-</span>
+                            <input type="text" class="time-input" id="endTime" placeholder="结束时间" name="createdEnd"/>
                         </li>
                         <li>
                             <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+                            <!--<a class="btn btn-success btn-rounded btn-sm" onclick="$.table.exportExcel()" shiro:hasPermission="system:role:export"><i class="fa fa-download"></i>&nbsp;导出</a>-->
                         </li>
                     </ul>
                 </div>
             </form>
         </div>
         <div class="btn-group hidden-xs" id="toolbar" role="group">
-            <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="config:warehouse:add">
+            <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="config:shipmentPreference:add">
                 <i class="fa fa-plus"></i> 新增
             </a>
+            <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="config:shipmentPreference:remove">
+                <i class="fa fa-trash-o"></i> 删除
+            </a>
         </div>
 
         <div class="col-sm-12 select-info">
             <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
         </div>
-    </div>
-</div>
-<div th:include="include :: footer"></div>
-<script th:inline="javascript">
-    var editFlag = [[${@permission.hasPermi('config:warehouseConfig:edit')}]];
-    var removeFlag = [[${@permission.hasPermi('config:warehouseConfig:remove')}]];
-    var prefix = ctx + "config/warehouseConfig";
-    var datas = [[${@dict.getType('sys_normal_disable')}]];
-    $(function() {
-        var options = {
-            url: prefix + "/list",
-            createUrl: prefix + "/add",
-            updateUrl: prefix + "/edit/{code}",
-            removeUrl: prefix + "/remove",
-            modalName: "仓库配置",
-            search: false,
-            columns: [{
-                checkbox: true
-            },
-                {
-                    field : 'code',
-                    title : '编码',
-                    visible : false
-                },
-                {
-                    field : 'warehouseCode',
-                    title : '仓库编码'
-                },
-                {
-                    field : 'name',
-                    title : '名称'
-                },
-                {
-                    field : 'abcClass',
-                    title : 'ABC分类'
-                },
-                {
-                    field : 'daysToExpire',
-                    title : '保质期(天)'
-                },
-                {
-                    field : 'locatingRule',
-                    title : '定位规则'
-                },
-                {
-                    field : 'allocationRule',
-                    title : '分配规则' ,
-                },
-                {
-                    field : 'replenishmentRule',
-                    title : '补货规则'
-                },
-                {
-                    field : 'emptyLocRule',
-                    title : '空货位规则'
-                },
-                {
-                    field : 'receivingFlow',
-                    title : '入库流程'
-                },
-                {
-                    field : 'shippingFlow',
-                    title : '出库流程'
-                },
-                {
-                    field : 'attributeTemplateCode',
-                    title : '属性模版'
-                },
-                {
-                    field : 'trackSerialNum',
-                    title : '记录序列号'
-                },
-                {
-                    field : 'autoGenSerialNum',
-                    title : '自动生成序列号'
-                },
-                {
-                    field : 'autoGenSerialNumFormat',
-                    title : '自动生成序列号表达式'
-                },
-                {
-                    field : 'snTemplateCode',
-                    title : '序列号模版'
-                },
-                {
-                    field : 'expiringDays',
-                    title : '临期预警天数'
-                },
-                {
-                    field : 'minShelfLifeDays',
-                    title : '收货预警天数'
-                },
-                {
-                    field : 'created',
-                    title : '创建时间',
-                    visible : false
-                },
-                {
-                    field : 'createdBy',
-                    title : '创建用户',
-                    visible : false
-                },
-                {
-                    field : 'lastUpdated',
-                    title : '更新时间',
-                    visible : false
-                },
-                {
-                    field : 'lastUpdatedBy',
-                    title : '更新用户',
-                    visible : false
-                },
-                {
-                    field : 'enable',
-                    title : '状态'  ,
-                    align: 'center',
-                    formatter: function(value, row, index) {
-                        return $.table.selectDictLabel(datas, value);
-                    }
-                },
-                // {
-                // 	field : 'deleted',
-                // 	title : '是否删除'
-                // },
-                {
-                    field : 'userDef1',
-                    title : '自定义字段1',
-                    visible:false
-                },
-                {
-                    field : 'userDef2',
-                    title : '自定义字段2' ,
-                    visible:false
-                },
-                {
-                    field : 'userDef3',
-                    title : '自定义字段3',
-                    visible:false
-                },
-                {
-                    field : 'userDef4',
-                    title : '自定义字段4',
-                    visible:false
-                },
-                {
-                    field : 'userDef5',
-                    title : '自定义字段5',
-                    visible:false
-                },
-                {
-                    field : 'userDef6',
-                    title : '自定义字段7',
-                    visible:false
-                },
-                {
-                    field : 'userDef7',
-                    title : '自定义字段7',
-                    visible:false
-                },
-                {
-                    field : 'userDef8',
-                    title : '自定义字段8',
-                    visible:false
-                },
-                {
-                    field : 'version',
-                    title : '数据版本',
-                    visible:false
-                },
-                {
-                    title: '操作',
-                    align: 'center',
-                    formatter: function(value, row, index) {
-                        var actions = [];
-                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick= edit(\''+row.code+'\')><i class="fa fa-edit"></i>编辑</a> ');
-                        return actions.join('');
-                    }
-                }]
-        };
-        $.table.init(options);
-    });
-
-    function edit(code) {
-        var url = prefix + "/edit/"+code;
-        $.modal.open("修改" + $.table._option.modalName, url);
-    }
-</script>
+        <div>
+        </div>
+        <div th:include="include :: footer"></div>
+        <script th:inline="javascript">
+            var editFlag = [[${@permission.hasPermi('config:shipmentPreference:edit')}]];
+            var removeFlag = [[${@permission.hasPermi('config:shipmentPreference:remove')}]];
+            var prefix = ctx + "config/shipmentPreference";
+            var datas = [[${@dict.getType('sys_normal_disable')}]];
+            $(function() {
+                var options = {
+                    url: prefix + "/list",
+                    createUrl: prefix + "/add",
+                    updateUrl: prefix + "/edit/{id}",
+                    removeUrl: prefix + "/remove",
+                    modalName: "出库首选项",
+                    search: false,
+                    columns: [{
+                        checkbox: true
+                    },
+                        {
+                            field : 'id',
+                            title : 'ID'
+                        },
+                        {
+                            field : 'code',
+                            title : '首选项编码'
+                        },
+                        {
+                            field : 'name',
+                            title : '名称'
+                        },
+                        {
+                            field : 'shippingFlow',
+                            title : '出库流程'
+                        },
+                        {
+                            field : 'warehouseCode',
+                            title : '仓库编码',
+                            visible : false
+                        },
+                        {
+                            field : 'shipmentPickingRule',
+                            title : '拣货规则',
+                            visible : false
+                        },
+                        {
+                            field : 'shipmentPickingLocRange',
+                            title : '拣货库位范围规则',
+                            visible : false
+                        },
+                        {
+                            field : 'allocationRule',
+                            title : '库存分配规则',
+                            visible : false
+                        },
+                        {
+                            field : 'autoAssignLPN',
+                            title : '自动生成托盘号'
+                        },
+                        {
+                            field : 'allowCross',
+                            title : '允许越库'
+                        },
+                        {
+                            field : 'allowQcCheckResult',
+                            title : '允许未质检的出库'
+                        },
+                        {
+                            field : 'showInventoryQty',
+                            title : '显示库存数量'
+                        },
+                        {
+                            field : 'groupPickup',
+                            title : 'RF组车拣货'
+                        },
+                        {
+                            field : 'manuallyBuildLPN',
+                            title : '人工组盘'
+                        },
+                        {
+                            field : 'checkinByPiece',
+                            title : 'RF逐件拣货'
+                        },
+                        {
+                            field : 'allowQuickPickup',
+                            title : 'RF快速拣货'
+                        },
+                        {
+                            field : 'created',
+                            title : '创建时间',
+                            visible : false
+                        },
+                        {
+                            field : 'createdBy',
+                            title : '创建用户',
+                            visible : false
+                        },
+                        {
+                            field : 'lastUpdated',
+                            title : '更新时间',
+                            visible : false
+                        },
+                        {
+                            field : 'lastUpdatedBy',
+                            title : '更新用户',
+                            visible : false
+                        },
+                        {
+                            field : 'version',
+                            title : '数据版本',
+                            visible : false
+                        },
+                        {
+                            field : 'processStamp',
+                            title : '处理标记',
+                            visible : false
+                        },
+                        {
+                            field : 'userDef1',
+                            title : '自定义字段1' ,
+                            visible:false
+                        },
+                        {
+                            field : 'userDef2',
+                            title : '自定义字段2' ,
+                            visible:false
+                        },
+                        {
+                            field : 'userDef3',
+                            title : '自定义字段3' ,
+                            visible:false
+                        },
+                        {
+                            field : 'userDef4',
+                            title : '自定义字段4' ,
+                            visible:false
+                        },
+                        {
+                            title: '操作',
+                            align: 'center',
+                            formatter: function(value, row, index) {
+                                var actions = [];
+                                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('');
+                            }
+                        }]
+                };
+                $.table.init(options);
+            });
+        </script>
 </body>
 </html>
\ No newline at end of file
diff --git a/src/main/resources/templates/config/warehouseConfig/add.html b/src/main/resources/templates/config/warehouseConfig/add.html
deleted file mode 100644
index 566549b..0000000
--- a/src/main/resources/templates/config/warehouseConfig/add.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Title</title>
-</head>
-<body>
-
-</body>
-</html>
\ No newline at end of file