diff --git a/src/main/java/com/huaheng/pc/shipment/waveFlowDetail/controller/WaveFlowDetailController.java b/src/main/java/com/huaheng/pc/shipment/waveFlowDetail/controller/WaveFlowDetailController.java
new file mode 100644
index 0000000..7785a02
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/shipment/waveFlowDetail/controller/WaveFlowDetailController.java
@@ -0,0 +1,84 @@
+package com.huaheng.pc.shipment.waveFlowDetail.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.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.page.PageDomain;
+import com.huaheng.framework.web.page.TableDataInfo;
+import com.huaheng.framework.web.page.TableSupport;
+import com.huaheng.pc.shipment.waveFlowDetail.domain.WaveFlowDetail;
+import com.huaheng.pc.shipment.waveFlowDetail.service.WaveFlowDetailService;
+import io.swagger.annotations.Api;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+/**
+ * 波次流明细
+ * @author ricard
+ * @date    19.8.26
+ *
+ */
+
+@Api(tags={"波次流明细"})
+@Controller
+@RequestMapping("/shipment/waveFlowDetail")
+public class WaveFlowDetailController extends BaseController {
+
+    private String prefix = "shipment/waveFlowDetail";
+
+    @Autowired
+    private WaveFlowDetailService waveFlowDetailService;
+
+    @RequiresPermissions("shipment:waveFlowDetail:view")
+    @GetMapping()
+    public String waveFlowDetail() {
+        return prefix + "/waveFlowDetail";
+    }
+
+    /**
+     * 查询订单分析结果
+     */
+    @RequiresPermissions("shipment:waveFlowDetail:list")
+    @Log(title = "出库-波次流明细", operating="查看波次流明细", action = BusinessType.GRANT)
+    @PostMapping("/list")
+    @ResponseBody
+    public TableDataInfo list(WaveFlowDetail waveFlowDetail, String createdBegin, String createdEnd)
+    {
+        LambdaQueryWrapper<WaveFlowDetail> lambdaQueryWrapper = Wrappers.lambdaQuery();
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+
+        lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),WaveFlowDetail::getCreated, createdBegin)
+                .le(StringUtils.isNotEmpty(createdEnd), WaveFlowDetail::getCreated, createdEnd)
+                .eq(WaveFlowDetail::getWarehouseCode, ShiroUtils.getWarehouseCode());
+
+        if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
+            /**
+             * 使用分页查询
+             */
+            Page<WaveFlowDetail> page = new Page<>(pageNum, pageSize);
+            IPage<WaveFlowDetail> iPage = waveFlowDetailService.page(page, lambdaQueryWrapper);
+            return getMpDataTable(iPage.getRecords(),iPage.getTotal());
+        } else {
+            List<WaveFlowDetail> list = waveFlowDetailService.list(lambdaQueryWrapper);
+            return getDataTable(list);
+        }
+    }
+
+
+}
diff --git a/src/main/java/com/huaheng/pc/shipment/waveFlowHeader/controller/WaveMasterController.java b/src/main/java/com/huaheng/pc/shipment/waveFlowHeader/controller/WaveMasterController.java
new file mode 100644
index 0000000..13969f7
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/shipment/waveFlowHeader/controller/WaveMasterController.java
@@ -0,0 +1,86 @@
+package com.huaheng.pc.shipment.waveFlowHeader.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.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.page.PageDomain;
+import com.huaheng.framework.web.page.TableDataInfo;
+import com.huaheng.framework.web.page.TableSupport;
+import com.huaheng.pc.shipment.waveFlowHeader.domain.WaveFlowHeader;
+import com.huaheng.pc.shipment.waveFlowHeader.service.WaveFlowHeaderService;
+import io.swagger.annotations.Api;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+/**
+ * 波次流头表
+ * @author ricard
+ * @date    19.8.26
+ *
+ */
+
+@Api(tags={"波次流头表"})
+@Controller
+@RequestMapping("/shipment/waveFlowHeader")
+public class WaveMasterController extends BaseController {
+
+    private String prefix = "shipment/waveFlowHeader";
+
+    @Autowired
+    private WaveFlowHeaderService waveFlowHeaderService;
+
+    @RequiresPermissions("shipment:waveFlowHeader:view")
+    @GetMapping()
+    public String waveFlowHeader() {
+        return prefix + "/waveFlowHeader";
+    }
+
+    /**
+     * 查询订单分析结果
+     */
+    @RequiresPermissions("shipment:waveFlowHeader:list")
+    @Log(title = "出库-波次流头表", operating="查看波次流头表", action = BusinessType.GRANT)
+    @PostMapping("/list")
+    @ResponseBody
+    public TableDataInfo list(WaveFlowHeader waveFlowHeader, String createdBegin, String createdEnd)
+    {
+        LambdaQueryWrapper<WaveFlowHeader> lambdaQueryWrapper = Wrappers.lambdaQuery();
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+
+        lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),WaveFlowHeader::getCreated, createdBegin)
+                .le(StringUtils.isNotEmpty(createdEnd), WaveFlowHeader::getCreated, createdEnd)
+                .eq(WaveFlowHeader::getWarehouseCode, ShiroUtils.getWarehouseCode())
+                .eq(StringUtils.isNotEmpty(waveFlowHeader.getCode()
+                ),WaveFlowHeader::getCode,waveFlowHeader.getCode());
+
+        if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
+            /**
+             * 使用分页查询
+             */
+            Page<WaveFlowHeader> page = new Page<>(pageNum, pageSize);
+            IPage<WaveFlowHeader> iPage = waveFlowHeaderService.page(page, lambdaQueryWrapper);
+            return getMpDataTable(iPage.getRecords(),iPage.getTotal());
+        } else {
+            List<WaveFlowHeader> list = waveFlowHeaderService.list(lambdaQueryWrapper);
+            return getDataTable(list);
+        }
+    }
+
+
+}