Browse Source

修改客诉bug

wangxiaoming 7 years ago
parent
commit
2f2faba039

+ 16 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/order/OrderBatch.java

@@ -1,5 +1,8 @@
 package com.iamberry.rst.core.order;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
 import  java.util.Date;
 import  java.io.Serializable;
 /**
@@ -20,8 +23,13 @@ public class OrderBatch  implements  Serializable{
     //销售渠道
     private String batchChannel;
     //创建时间'
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Date batchCreateTime;
 
+    //订单数量
+    private Integer batchOrderNum;
+
     public String getBatchId(){
         return batchId;
     }
@@ -69,4 +77,12 @@ public class OrderBatch  implements  Serializable{
     public void setBatchCreateTime(Date  batchCreateTime){
         this.batchCreateTime=batchCreateTime;
     }
+
+    public Integer getBatchOrderNum() {
+        return batchOrderNum;
+    }
+
+    public void setBatchOrderNum(Integer batchOrderNum) {
+        this.batchOrderNum = batchOrderNum;
+    }
 }

+ 3 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/order/OrderBatchService.java

@@ -1,6 +1,7 @@
 package com.iamberry.rst.faces.order;
 
 import com.iamberry.rst.core.order.OrderBatch;
+import com.iamberry.rst.core.page.PagedResult;
 
 import java.util.List;
 
@@ -17,6 +18,8 @@ public interface OrderBatchService {
      */
     List<OrderBatch> getOrderBatchList(OrderBatch  orderBatch);
 
+    PagedResult<OrderBatch> listOrderBatchPage(int pageNO, int pageSize, OrderBatch  orderBatch, boolean isTotalNum);
+
     /**
      * 获取数量
      * @param  orderBatch

+ 7 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SalesOrderMapper.java

@@ -133,4 +133,11 @@ public interface SalesOrderMapper {
      * @return
      */
     Integer getOrderBySalesDealCodeNum(String code);
+
+    /**
+     * 获取店铺信息
+     * @param orderBacthId
+     * @return
+     */
+    List<SalesOrder> getOrderStoreName(String orderBacthId);
 }

+ 21 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml

@@ -96,6 +96,9 @@
       <if test="salesAddressName !=null and salesAddressName !=''">
         AND sales_address_name like CONCAT('%',#{salesAddressName},'%')
       </if>
+      <if test="salesBatchId !=null and salesBatchId !=''">
+        AND sales_batch_id = #{salesBatchId}
+      </if>
       <if test="startDate != null and startDate != ''">
         AND sales_create_time <![CDATA[>=]]> #{startDate}
       </if>
@@ -169,6 +172,9 @@
       <if test="salesAddressName !=null and salesAddressName !=''">
         AND o.sales_address_name like CONCAT('%',#{salesAddressName},'%')
       </if>
+      <if test="salesBatchId !=null and salesBatchId !=''">
+        AND sales_batch_id = #{salesBatchId}
+      </if>
       <if test="startDate != null and startDate != ''">
         AND o.sales_create_time <![CDATA[>=]]> #{startDate}
       </if>
@@ -221,6 +227,9 @@
         <if test="salesAddressName !=null and salesAddressName !=''">
           AND o.sales_address_name like CONCAT('%',#{salesAddressName},'%')
         </if>
+        <if test="salesBatchId !=null and salesBatchId !=''">
+          AND sales_batch_id = #{salesBatchId}
+        </if>
         <if test="startDate != null and startDate != ''">
           AND o.sales_create_time <![CDATA[>=]]> #{startDate}
         </if>
@@ -598,4 +607,16 @@
     SELECT COUNT(sales_id) FROM tb_rst_sales_order_info WHERE sales_deal_code = #{code}
   </select>
 
+  <!-- 查询拥有该交易号的数量 -->
+  <select id="getOrderStoreName" parameterType="String" resultType="SalesOrder">
+      SELECT
+          t.sales_id,
+          si.store_name
+      FROM
+          tb_rst_sales_order_info t
+      LEFT JOIN tb_rst_store_info si ON t.sales_store_id = si.store_id
+      WHERE t.sales_batch_id = #{salesBatchId}
+      GROUP BY t.sales_store_id
+  </select>
+
 </mapper>

+ 24 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/order/OrderBatchServiceImpl.java

@@ -1,8 +1,13 @@
 package com.iamberry.rst.service.order;
 
+import com.github.pagehelper.PageHelper;
+import com.iamberry.rst.core.cm.SalesOrder;
 import com.iamberry.rst.core.order.OrderBatch;
+import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.faces.order.OrderBatchService;
+import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
 import com.iamberry.rst.service.order.mapper.OrderBatchMapper;
+import com.iamberry.rst.util.PageUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -17,6 +22,10 @@ import java.util.List;
 public class OrderBatchServiceImpl  implements OrderBatchService {
     @Autowired
     private OrderBatchMapper orderBatchMapper;
+
+    @Autowired
+    private SalesOrderMapper salesOrderMapper;
+
     /**
      * 获取集合
      * @param  orderBatch
@@ -27,6 +36,21 @@ public class OrderBatchServiceImpl  implements OrderBatchService {
         return  orderBatchMapper.getOrderBatchList(orderBatch);
     }
 
+    @Override
+    public PagedResult<OrderBatch> listOrderBatchPage(int pageNO, int pageSize, OrderBatch  orderBatch, boolean isTotalNum) {
+        PageHelper.startPage(pageNO, pageSize, isTotalNum);
+        List<OrderBatch> list = orderBatchMapper.getOrderBatchList(orderBatch);
+        for (OrderBatch ob : list){
+            List<SalesOrder> salesOrderList = salesOrderMapper.getOrderStoreName(ob.getBatchId());
+            StringBuffer sb = new StringBuffer();
+            for (SalesOrder so: salesOrderList) {
+                sb.append( sb.length()<1?so.getStoreName():(","+so.getStoreName()));
+            }
+            ob.setBatchChannel(sb.toString());
+        }
+        return PageUtil.getPage(list);
+    }
+
     /**
      * 获取数量
      * @param  orderBatch

+ 6 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/order/mapper/orderBatchMapper.xml

@@ -17,10 +17,12 @@
         t.batch_channel,
         t.batch_create_time
     </sql>
-    <select id="getOrderBatchList" resultMap="BaseResultMap" parameterType="OrderBatch" >
+    <select id="getOrderBatchList" resultType="OrderBatch" parameterType="OrderBatch" >
         select
-        <include refid="Base_List" />
+            <include refid="Base_List" />,
+            COUNT(soi.sales_id) AS batchOrderNum
         from tb_rst_order_batch t
+        LEFT JOIN tb_rst_sales_order_info soi ON t.batch_id = soi.sales_batch_id
         <where>
             <if test="batchId != null and batchId != ''">
                 AND t.batch_id  like  CONCAT ('%',#{batchId},'%')
@@ -29,6 +31,8 @@
                 AND t.batch_status = #{batchStatus}
             </if >
         </where>
+        GROUP BY soi.sales_batch_id
+        ORDER BY soi.sales_batch_id DESC
     </select>
     <select id="getOrderBatchById" resultMap="BaseResultMap" parameterType="String" >
         select

+ 46 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderBatchController.java

@@ -0,0 +1,46 @@
+package com.iamberry.rst.controllers.order;
+
+import com.iamberry.rst.core.order.OrderBatch;
+import com.iamberry.rst.core.page.PagedResult;
+import com.iamberry.rst.faces.order.OrderBatchService;
+import com.iamberry.rst.utils.StitchAttrUtil;
+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.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+
+@Controller
+@RequestMapping("/admin/order_batch")
+public class AdminOrderBatchController {
+
+    @Autowired
+    private OrderBatchService orderBatchService;
+
+
+    /**
+     * 客诉 - 查询签收/仓储列表
+     * @param request
+     * @return
+     */
+    @RequiresPermissions("order:list:batch")
+    @RequestMapping("/batch_list")
+    public ModelAndView selectDetectList(HttpServletRequest request, OrderBatch orderBatch,
+                                         @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
+                                         @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
+                                         @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) {
+        ModelAndView mv = new ModelAndView("order/bacth/order_batch_list");
+
+        PagedResult<OrderBatch> pagedResult = orderBatchService.listOrderBatchPage(pageNO, pageSize, orderBatch, totalNum == 0);
+        if (totalNum != 0){
+            pagedResult.setTotal(totalNum);
+        }
+
+        StitchAttrUtil.getSa()
+                .setModelAndView(orderBatch, mv, "/admin/order_batch/batch_list", pagedResult);
+        return mv;
+    }
+}

+ 69 - 38
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderController.java

@@ -657,50 +657,13 @@ public class AdminOrderController {
         }
         Map<String,SalesOrder> mapsalesOrderList = new HashMap<>();
         for (int i=0;i<efastOrderList.size();i++){
-            //EfastOrder efastOrder = efastOrderService.getFromEfastOrderInfo(efastOrderList.get(i).getOrderDealCode());
-            //orderService
-            //EfastOrder efastOrder = orderService.getFromRstEfastOrderInfo(efastOrderList.get(i).getOrderDealCode());
             List<SalesOrder> salesOrderList = orderService.getFromRstSalesOrderInfo(efastOrderList.get(i).getOrderDealCode());
-            /*if(salesOrderList != null && salesOrderList.size() > 0){
-                for (SalesOrder salesOrder: salesOrderList) {
-                    int salesId = salesOrder.getSalesId();
-                    salesOrderItemList = orderService.querySalesOrderItemListBySalesId(salesId);
-                    if(salesOrderItemList != null && salesOrderItemList.size() >0){
-                        for (SalesOrderItem salesOrderItem: salesOrderItemList) {
-                            int saId = salesOrderItem.getItemOrderId();
-                        }
-                    }
-                }
-            }*/
-            //List<SalesOrder> temporarySalesOrderList = new ArrayList<SalesOrder>();
-            //添加子订单
-            /*if(salesOrderList != null && salesOrderList.size() > 0) {
-                for (SalesOrder salesOrder : salesOrderList) {
-                    int salesId = salesOrder.getSalesId();
-                    List<SalesOrder> salesMainOrderList = orderService.querySalesOrderItemListBySalesId(salesId);//查询子订单
-                    if(salesMainOrderList != null && salesMainOrderList.size() > 0){
-                        for(SalesOrder salesMainOrder:salesMainOrderList){
-                            temporarySalesOrderList.add(salesMainOrder);
-                        }
-                    }
-                }
-            }*/
             //添加主订单
             if(salesOrderList != null && salesOrderList.size() > 0) {
                 for (SalesOrder salesOrder : salesOrderList) {
                     temporarySalesOrderList.add(salesOrder);
                 }
             }
-
-            /*if(efastOrder != null){
-                efastOrderList.get(i).setOrderAddressName(efastOrder.getOrderAddressName());
-                efastOrderList.get(i).setOrderAddressTel(efastOrder.getOrderAddressTel());
-                efastOrderList.get(i).setOrderAddress(efastOrder.getOrderAddress());
-                efastOrderList.get(i).setOrderPostFirm(efastOrder.getOrderPostFirm());
-                efastOrderList.get(i).setOrderPostNum(efastOrder.getOrderPostNum());
-                efastOrderList.get(i).setOrderProductName(efastOrder.getOrderProductName());
-                efastOrderList.get(i).setOrderNum(efastOrder.getOrderNum());
-            }*/
         }
 
         // 准备model
@@ -754,6 +717,74 @@ public class AdminOrderController {
         return mv;
     }
 
+
+    /**
+     * 下载订单,返回给各个平台
+     * @param request
+     * @return
+     * @throws IOException
+     */
+    @RequestMapping("/download_order_excel")
+    public ModelAndView downloadOrderExcel(HttpServletRequest request,String orderBatchId) throws Exception {
+        if(orderBatchId == null || "".equals(orderBatchId)){
+            return new ModelAndView().addObject("下载出错");
+        }
+
+        SalesOrder so = new SalesOrder();
+        so.setSalesBatchId(orderBatchId);
+        List<SalesOrder> temporarySalesOrderList = salesOrderService.listSalesOrder(so);
+
+        // 准备model
+        Map<String, Object> model = new HashMap<String, Object>();
+        model.put("fileName", "订单列表");	// 下载文件名称
+
+        // 标题
+        List<String> titles = new ArrayList<String>();
+        titles.add("订单编号");
+        titles.add("Efast交易号");
+        titles.add("收货人");
+        titles.add("收货人电话");
+        titles.add("收货人地址");
+        titles.add("快递公司");
+        titles.add("快递单号");
+        titles.add("商品名称");
+        titles.add("商品数量");
+        model.put("titles", titles);
+        PtsBatch ptsBatch = new PtsBatch();
+        List<List<Object>> countexts = new ArrayList<List<Object>>();
+        if(temporarySalesOrderList != null && temporarySalesOrderList.size() >0){
+            for (SalesOrder salesOrder : temporarySalesOrderList) {
+                List<Object> row = new ArrayList<Object>();
+                /*row.add(efastOrder.getPlatformOrderId() == null ? null:efastOrder.getPlatformOrderId());
+                row.add(efastOrder.getOrderDealCode() == null ? null:efastOrder.getOrderDealCode());
+                row.add(efastOrder.getOrderAddressName() == null ? null:efastOrder.getOrderAddressName());
+                row.add(efastOrder.getOrderAddressTel() == null ? null:efastOrder.getOrderAddressTel());
+                row.add(efastOrder.getOrderAddress() == null ? null:efastOrder.getOrderAddress());
+                String frim = replace(efastOrder.getOrderPostFirm());
+                row.add(frim);
+                row.add(efastOrder.getOrderPostNum() == null ? null:efastOrder.getOrderPostNum());
+                row.add(efastOrder.getOrderProductName() == null ? null:efastOrder.getOrderProductName());
+                row.add(efastOrder.getOrderNum() == null ? null:efastOrder.getOrderNum());*/
+                row.add(salesOrder.getSalesOrderId() == null ? null:salesOrder.getSalesOrderId());
+                row.add(salesOrder.getSalesDealCode() == null ? null:salesOrder.getSalesDealCode());
+                row.add(salesOrder.getSalesAddressName() == null ? null:salesOrder.getSalesAddressName());
+                row.add(salesOrder.getSalesAddressTel() == null ? null:salesOrder.getSalesAddressTel());
+                row.add(salesOrder.getSalesAddressInfo() == null ? null:salesOrder.getSalesAddressInfo());
+                String frim = replace(salesOrder.getSalesPostFirm());
+                row.add(frim);
+                row.add(salesOrder.getSalesPostNum() == null ? null:salesOrder.getSalesPostNum());
+                row.add(salesOrder.getItemProductName() == null ? null:salesOrder.getItemProductName());
+                row.add(salesOrder.getItemNum() == null ? null:salesOrder.getItemNum());
+                countexts.add(row);
+            }
+        }
+        model.put("varList", countexts);
+        ObjectExcelView erv = new ObjectExcelView();
+        ModelAndView mv = new ModelAndView(erv,model);
+        return mv;
+    }
+
+
     /**
      * 保存交易号
      * @param filePath
@@ -1044,7 +1075,7 @@ public class AdminOrderController {
             OrderBatch ob = new OrderBatch();
             ob.setBatchId(batchId);
             ob.setBatchStatus(1);
-            ob.setBatchExcelPath(filePath.substring(1,filePath.length()-1));
+            ob.setBatchExcelPath(filePath.substring(1,filePath.length()));
             ob.setBatchTxtPath(dateString);
             Integer flag = orderBatchService.save(ob);
             if(flag < 1){

+ 37 - 21
watero-rst-web/src/main/java/com/iamberry/rst/utils/ExcelUtil.java

@@ -419,30 +419,35 @@ public class ExcelUtil {
             if (name.trim().equals(cell.getStringCellValue().trim())) {
                 // 匹配姓名列
                 nameColumnIndex = cell.getColumnIndex();
-            } else if (platformOrder.trim().equals(cell.getStringCellValue().trim())) {
+            }
+            if (platformOrder.trim().equals(cell.getStringCellValue().trim())) {
                 // 匹配订单编号
                 platformOrderColumnIndex = cell.getColumnIndex();
-            } else if (tel.trim().equals(cell.getStringCellValue().trim())) {
+            }
+            if (tel.trim().equals(cell.getStringCellValue().trim())) {
                 // 匹配电话
                 telColumnIndex = cell.getColumnIndex();
-            } else if (productName.trim().equals(cell.getStringCellValue().trim())) {
+            }
+            if (productName.trim().equals(cell.getStringCellValue().trim())) {
                 // 匹配产品列
                 productColumnIndex = cell.getColumnIndex();
-            } else if (num.trim().equals(cell.getStringCellValue().trim())) {
+            }
+            if (num.trim().equals(cell.getStringCellValue().trim())) {
                 // 匹配购买数量
                 numColumnIndex = cell.getColumnIndex();
-            }  else if (remark.trim().equals(cell.getStringCellValue().trim())) {
+            }
+            if (remark.trim().equals(cell.getStringCellValue().trim())) {
                 // 匹配备注
                 remarkColumnIndex = cell.getColumnIndex();
-            }  else if (orderStoreInfoSt.trim().equals(cell.getStringCellValue().trim())) {
+            }
+            if (orderStoreInfoSt.trim().equals(cell.getStringCellValue().trim())) {
                 // 匹配店铺名称
                 orderStoreInfoStColumnIndex = cell.getColumnIndex();
-            } else {
-                // 匹配地址(可能是多个,需要组合连接)
-                for (int i = 0; i < infos.length; i++) {
-                    if (infos[i].equals(cell.getStringCellValue().trim())) {
-                        infoColumnIndex[i] = cell.getColumnIndex();
-                    }
+            }
+            // 匹配地址(可能是多个,需要组合连接)
+            for (int i = 0; i < infos.length; i++) {
+                if (infos[i].equals(cell.getStringCellValue().trim())) {
+                    infoColumnIndex[i] = cell.getColumnIndex();
                 }
             }
         }
@@ -479,13 +484,18 @@ public class ExcelUtil {
                 EfastOrder order = new EfastOrder();
                 order.setOrderAddressName(nameValue);
                 if(!StringUtils.isEmpty(platformOrderIdValue)){
-                    order.setPlatformOrderId(platformOrderIdValue.trim());
-                    Integer flag = salesOrderService.getOrderBySalesDealCodeNum(platformOrderIdValue.trim());
-                    if(flag > 0){
+                    if (!ValidateUtil.checkString(platformOrderIdValue.trim())) {
                         order.setReturnStatus("error");
-                        order.setReturnMsg("交易号重复");
+                        order.setReturnMsg("交易号出错-交易号:"+platformOrderIdValue);
+                        order.setPlatformOrderId("1");
+                    }else{
+                        Integer flag = salesOrderService.getOrderBySalesDealCodeNum(platformOrderIdValue.trim());
+                        if(flag > 0){
+                            order.setReturnStatus("error");
+                            order.setReturnMsg("交易号重复");
+                        }
+                        order.setPlatformOrderId(platformOrderIdValue.trim());
                     }
-                    order.setPlatformOrderId(platformOrderIdValue.trim());
                 }else{
                     order.setReturnStatus("error");
                     order.setReturnMsg("订单交易号不正确");
@@ -530,10 +540,16 @@ public class ExcelUtil {
                         continue;
                     }
 
-                    order.setOrderProvince(addrs[0].trim());
-                    order.setOrderCity(addrs[1].trim());
-                    order.setOrderArea(addrs[2].trim());
-                    order.setOrderAddress(addrInfo.trim());
+                    try{
+                        order.setOrderProvince(addrs[0].trim());
+                        order.setOrderCity(addrs[1].trim());
+                        order.setOrderArea(addrs[2].trim());
+                        order.setOrderAddress(addrInfo.trim());
+                    }catch (Exception e){
+                        order.setReturnStatus("error");
+                        order.setReturnMsg("地址错误:"+ addrInfo);
+                        order.setPlatformOrderId("1");
+                    }
                 } else if (infoColumnIndex.length == 4) {
                     order.setOrderProvince(getValue(temp.getCell(infoColumnIndex[0])).trim());
                     order.setOrderCity(getValue(temp.getCell(infoColumnIndex[1])).trim());

+ 11 - 0
watero-rst-web/src/main/java/com/iamberry/rst/utils/ValidateUtil.java

@@ -139,4 +139,15 @@ public class ValidateUtil {
         return value == null || "".equals(value.trim());
     }
 
+
+    /**
+     * 检查是否为数字,空:true,不空:false
+     *
+     * @param value
+     * @return
+     */
+    public static boolean checkString(String value) {
+        return value.matches("^\\w{1,60}$");
+    }
+
 }

+ 16 - 8
watero-rst-web/src/main/webapp/WEB-INF/views/cm/salesOrder/sales_order_list.ftl

@@ -49,7 +49,7 @@
             <input class="btn btn-primary radius" onclick="submitSynOrder()" type="button" value="&nbsp;&nbsp;同步&nbsp;&nbsp;">
         </div>
     </form>
-    <span class="layui-layer-setwin">
+        <span class="layui-layer-setwin">
 				<a class="layui-layer-ico layui-layer-close layui-layer-close1" onclick="exitWindowsDiv(this);" href="javascript:;"></a>
 		</span>
 </div>
@@ -68,20 +68,24 @@
                     <option value ="0" <#if salesOrder.isDeliverGoods??><#if salesOrder.isDeliverGoods == "0" >selected="selected"</#if></#if>>否</option>
                 </select>
                 <select name="salesStoreId" id="salesStoreId" class="select" style="height: 36px;width: 120px;margin: 0px;margin-bottom: 10px;"">
-                <option value="">店铺</option>
+                    <option value="">店铺</option>
                     <#if listStoreInfo?? &&  (listStoreInfo?size > 0) >
                         <#list listStoreInfo as info>
                             <option value="${info.storeId!''}" <#if salesOrder.salesStoreId??><#if salesOrder.salesStoreId == info.storeId >selected="selected"</#if></#if>>${info.storeName!''}</option>
                         </#list>
                     </#if>
                 </select>
+
+            <input type="text" style="width:150px;height:36px;margin-right: 0px;" name="startDate" id="startDate" class="input-text" placeholder="开始时间" onClick="WdatePicker({ dateFmt:'yyyy-MM-dd HH:mm:ss',skin:'whyGreen' })" value="${(salesOrder.startDate?string("yyyy-MM-dd HH:mm:ss"))!''}" readonly="readonly"/>-
+            <input type="text" style="width:150px;height:36px;margin-right: 0px;" name="endDate" id="endDate" class="input-text" placeholder="结束时间" onClick="WdatePicker({ dateFmt:'yyyy-MM-dd HH:mm:ss',skin:'whyGreen' })" value="${(salesOrder.endDate?string("yyyy-MM-dd HH:mm:ss"))!''}" readonly="readonly"/>
+
             <#--Efast add end-->
-            <input type="text" class="my-input"  style="width:80px;margin-right: 0px;" value="${salesOrder.salesOrderId!}" placeholder="百胜订单号" name="salesOrderId" id="salesOrderId">
-            <input type="text" class="my-input"  style="width:80px;margin-right: 0px;" value="${salesOrder.salesDealCode!}" placeholder="交易号" name="salesDealCode" id="salesDealCode">
+            <input type="text" class="my-input"  style="width:120px;margin-right: 0px;" value="${salesOrder.salesOrderId!}" placeholder="百胜订单号" name="salesOrderId" id="salesOrderId">
+            <input type="text" class="my-input"  style="width:120px;margin-right: 0px;" value="${salesOrder.salesDealCode!}" placeholder="交易号" name="salesDealCode" id="salesDealCode">
+            <input type="text" class="my-input"  style="width:120px;margin-right: 0px;" value="${salesOrder.salesBatchId!}" placeholder="订单批次号" name="salesBatchId" id="salesBatchId">
             <input type="text" class="my-input"  style="width:80px;margin-right: 0px;" value="${salesOrder.salesAddressName!}" placeholder="收货人姓名" name="salesAddressName" id="salesAddressName">
             <input type="text" class="my-input"  style="width:80px;margin-right: 0px;" value="${salesOrder.salesAddressTel!}" placeholder="收货人电话" name="salesAddressTel" id="salesAddressTel">
-            <input type="text" style="width:150px;height:36px;margin-right: 0px;" name="startDate" id="startDate" class="input-text" placeholder="开始时间" onClick="WdatePicker({ dateFmt:'yyyy-MM-dd HH:mm:ss',skin:'whyGreen' })" value="${(salesOrder.startDate?string("yyyy-MM-dd HH:mm:ss"))!''}" readonly="readonly"/>-
-            <input type="text" style="width:150px;height:36px;margin-right: 0px;" name="endDate" id="endDate" class="input-text" placeholder="结束时间" onClick="WdatePicker({ dateFmt:'yyyy-MM-dd HH:mm:ss',skin:'whyGreen' })" value="${(salesOrder.endDate?string("yyyy-MM-dd HH:mm:ss"))!''}" readonly="readonly"/>
+
             <button type="submit" class="btn" style="background: #32a3d8;color: #fff;-webkit-transform:translateY(-5%);height: 35px;" id=""><i class="Hui-iconfont">&#xe665;</i> 搜索</button>
             <#--<button onClick="downloadOrder();" &lt;#&ndash;onMouseOver="showDownloadOrderInfo();" onMouseOut="hideDownloadOrderInfo();"&ndash;&gt; class="btn radius" style="background: #32a3d8;color: #fff; height: 35px" type="button" title="下载第三方平台的发货信息"><i class="Hui-iconfont">&#xe640;</i> 下载订单</button>-->
             <button type="button" class="btn" style="background: #32a3d8;color: #fff;-webkit-transform:translateY(-5%);height: 35px;" id="order_excel"><i class="Hui-iconfont">&#xe644;</i> 下载订单</button>
@@ -99,6 +103,7 @@
             <tr class="text-c">
                 <th width="60">订单号</th>
                 <th width="70">交易号</th>
+                <th width="72">批次号</th>
                 <th width="60">收货人姓名</th>
                 <th width="70">收货人电话</th>
                 <th width="100">收货地址</th>
@@ -119,6 +124,7 @@
                 <tr class="text-c">
                     <td>${order.salesOrderId!''}</td>
                     <td>${order.salesDealCode!''}</td>
+                    <td>${order.salesBatchId!''}</td>
                     <td>${order.salesAddressName!''}</td>
                     <#if (order.salesAddressTel)?? && order.salesAddressTel?length gt 7>
                         <td>${order.salesAddressTel?substring(0,3)}***${order.salesAddressTel?substring(order.salesAddressTel?length-4,order.salesAddressTel?length)}</td>
@@ -350,6 +356,7 @@
         var salesDealCode = $("#salesDealCode").val();
         var salesAddressName = $("#salesAddressName").val();
         var salesAddressTel = $("#salesAddressTel").val();
+        var salesBatchId = $("#salesBatchId").val();
 
         $.ajax({
             type:'POST',
@@ -363,7 +370,8 @@
                 "salesOrderId" : salesOrderId,
                 "salesDealCode" : salesDealCode,
                 "salesAddressName" : salesAddressName,
-                "salesAddressTel" : salesAddressTel
+                "salesAddressTel" : salesAddressTel,
+                "salesBatchId" : salesBatchId
 
             },
             dataType: 'json',
@@ -373,7 +381,7 @@
                     layer.msg(res.resultMsg,{icon: 2,time:3000});
                     return false;
                 }else{
-                    window.location="${path}/admin/salesOrder/download_efast_order?isHaveImport="+isHaveImport+"&isDeliverGoods="+isDeliverGoods+"&salesStoreId="+salesStoreId+"&startDate="+startDate+"&endDate="+endDate+"&salesOrderId="+salesOrderId+"&salesDealCode="+salesDealCode+"&salesAddressName="+salesAddressName+"&salesAddressTel="+salesAddressTel;
+                    window.location="${path}/admin/salesOrder/download_efast_order?isHaveImport="+isHaveImport+"&isDeliverGoods="+isDeliverGoods+"&salesStoreId="+salesStoreId+"&startDate="+startDate+"&endDate="+endDate+"&salesOrderId="+salesOrderId+"&salesDealCode="+salesDealCode+"&salesAddressName="+salesAddressName+"&salesAddressTel="+salesAddressTel+"&salesBatchId="+salesBatchId;
                 }
             }
         });

+ 154 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/order/bacth/order_batch_list.ftl

@@ -0,0 +1,154 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+    <meta http-equiv="Cache-Control" content="no-siteapp" />
+    <link rel="Bookmark" href="/favicon.ico" >
+    <link rel="Shortcut Icon" href="/favicon.ico" />
+<#include "/base/list_base.ftl">
+    <title>订单批次列表</title>
+    <style>
+        html{-webkit-text-size-adjust:none;}
+        *{padding: 0;margin: 0;}
+        .my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
+        /*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+        .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
+        .barcodeImg{margin:10px 0px}
+        .table-bg thead th{background-color: #e2f6ff;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+    </style>
+</head>
+<body>
+<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
+    <span class="c-gray en">&gt;</span> 订单批次管理
+    <span class="c-gray en">&gt;</span> 订单批次列表
+    <a class="btn radius r" style="line-height:1.6em;margin-top:3px;background: #32a3d8;color: #fff;border:1px solid #32a3d8;" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
+</nav>
+<div class="page-container">
+    <div class="text-c">
+        <form action="${path}/admin/order_batch/batch_list" method="post">
+            <#--<select class="my-select" name="produceId" style="height: 36px;width: 150px">-->
+                <#--<option value ="">所有产品</option>-->
+                <#--<#if produceList?? &&  (produceList?size > 0) >-->
+                    <#--<#list produceList as produce>-->
+                        <#--<option value ="${produce.produceId!}" <#if produceId??><#if produceId ==produce.produceId >selected="selected"</#if></#if>>${produce.produceName!}</option>-->
+                    <#--</#list>-->
+                <#--</#if>-->
+            <#--</select>-->
+            <#--<input type="text" class="my-input"  style="width:150px" value="${batchNo!''}" placeholder="批次编号" id="batchNo" name="batchNo">-->
+            <#--<button type="submit" class="my-btn-search" style="" id="" name=""><i class="Hui-iconfont">&#xe665;</i> 搜索</button>-->
+
+            <#--<button type="button" style="cursor:pointer;" class="my-btn-search" onclick="toExcel();">导出到Excel</button>-->
+        </form>
+    </div>
+
+    <div class="mt-20">
+        <table class="table table-border table-bordered table-bg table-hover table-sort">
+        <thead>
+        <tr class="text-c">
+            <th width="100">批次编号</th>
+            <th width="50">订单数量</th>
+            <th width="80">店铺</th>
+            <#--<th width="100">Excel下载</th>-->
+            <#--<th width="80">交易号下载</th>-->
+            <th width="80">创建时间</th>
+            <th width="80">操作</th>
+        </tr>
+        </thead>
+        <tbody>
+            <#if page.dataList?? &&  (page.dataList?size > 0) >
+                    <#list page.dataList as batch>
+                        <tr class="text-c">
+                            <td>${batch.batchId!''}</td>
+                            <td><a href="javascript:void(0)" style="color: #00E;" title="点击转到订单页面,查询该批次的所有订单" onclick="to_order_list('${batch.batchId!''}')">${batch.batchOrderNum!'0'}</a></td>
+                            <td>${batch.batchChannel!''}</td>
+                            <#--<td>${batch.batchExcelPath!''}</td>-->
+                            <#--<td>${batch.batchTxtPath!''}</td>-->
+                            <td>${(batch.batchCreateTime?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
+                            <td>
+                                <a style="text-decoration:none;color: #00E;" href="javascript:void(0);" title="下载该批次的所有订单的物流信息" onclick="download_order('${batch.batchId!''}')">
+                                    下载订单
+                                </a>
+                            </td>
+                        </tr>
+                    </#list>
+            <#else>
+                <tr><td colspan="9" class="td-manage text-c" >暂时没有批次,请添加!</td></tr>
+            </#if>
+        </tbody>
+    </table>
+    </div>
+</div>
+<tfoot>
+<#include "/base/page_util.ftl">
+</tfoot>
+<script>
+
+    /**
+     *跳转到客诉列表页面
+     * @param employee
+     */
+    function to_order_list(batchId) {
+        window.location.href= "${path}/admin/salesOrder/list_order_page?salesBatchId="+batchId;
+    }
+
+    /**
+     *下载
+     * @param employee
+     */
+    function download_order(batchId) {
+        window.location.href= "${path}/admin/order/download_order_excel?orderBatchId="+batchId;
+    }
+
+    /**
+     * 修改状态
+     * @param batchId
+     * @param status
+     */
+    function update_batch_status(batchId,produceId,status){
+        var statusMsg = '';
+        if(status == 1){
+            statusMsg = '使用该批次将会停止使用其他同产品的批次!';
+        }else{
+            statusMsg = '停用该批次,你需要立即使用同产品的其他批次,否则可能影响机器生产二维码!';
+        }
+
+        layer.confirm(statusMsg, {
+            btn: ['确定','取消'] //按钮
+        }, function(){
+            $.ajax({
+                type: "POST",
+                data: {
+                    batchId : batchId,
+                    produceId : produceId,
+                    batchStatus : status
+                },
+                url: "${path}/admin/batch/update_batch_status",
+                async: false,
+                success: function(data){
+                },
+                error: function(XmlHttpRequest, textStatus, errorThrown){
+                }
+            });
+            location.replace(location.href)
+        }, function(){
+            layer.closeAll();
+            return false;
+        });
+    }
+
+    /**
+     * 导出零件到excel
+     */
+    function toExcel(){
+        window.location.href= "${path}/admin/batch/generation_excel";
+    }
+
+</script>
+</body>
+</html>