Pārlūkot izejas kodu

出库统计页面修改

wangxiaoming 6 gadi atpakaļ
vecāks
revīzija
f2ff3938b0

+ 8 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/SalesOrderService.java

@@ -9,6 +9,7 @@ import com.iamberry.rst.core.tools.LogisticsInfo;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -312,6 +313,13 @@ public interface SalesOrderService {
     List<SalesOrderItem> getDeliverNum(SalesOrder salesOrder);
 
     /**
+     * 获取未发货有哪些时间
+     * @param
+     * @return
+     */
+    List<Date> getNotSendDate();
+
+    /**
      * 查询订单集合与订单项集合
      * @param salesOrder
      * @return

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java

@@ -993,6 +993,11 @@ public class SalesOrderServiceImpl implements SalesOrderService {
     }
 
     @Override
+    public List<Date> getNotSendDate() {
+        return salesOrderMapper.getNotSendDate();
+    }
+
+    @Override
     public List<SalesOrder> salesOrderListAndItem(SalesOrder salesOrder) {
         return salesOrderMapper.salesOrderListAndItem(salesOrder);
     }

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

@@ -6,6 +6,7 @@ import com.iamberry.rst.core.order.DownsingleRuleInfo;
 import com.iamberry.rst.core.order.PostInfo;
 import com.iamberry.rst.core.tools.LogisticsInfo;
 
+import java.util.Date;
 import java.util.List;
 
 public interface SalesOrderMapper {
@@ -260,6 +261,13 @@ public interface SalesOrderMapper {
     List<SalesOrderItem> getDeliverNum(SalesOrder salesOrder);
 
     /**
+     * 获取未发货有哪些时间
+     * @param
+     * @return
+     */
+    List<Date> getNotSendDate();
+
+    /**
      * 查询订单集合与订单项集合
      * @param salesOrder
      * @return

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

@@ -1301,6 +1301,16 @@
         GROUP BY item_color_bar
     </select>
 
+    <select id="getNotSendDate" resultType="Date" >
+        SELECT
+            DATE_FORMAT(oi.sales_create_time,'%Y-%m-%d')
+        FROM tb_rst_sales_order_info oi
+        WHERE oi.sales_status = 1
+        AND (oi.sales_shipping_status  = 11 OR oi.sales_deliver = 1)
+        AND DATE_FORMAT(oi.sales_create_time,'%Y-%m-%d') &lt; DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 day),'%Y-%m-%d')
+        AND  oi.sales_batch_id != 'KS00000000000001'
+        GROUP BY DATE_FORMAT(oi.sales_create_time,'%Y-%m-%d')
+    </select>
 
     <resultMap id="SalesOrderAndItemMap" type="SalesOrder" >
         <id column="sales_id" property="salesId" jdbcType="INTEGER" />

+ 53 - 31
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AwaitSendController.java

@@ -546,16 +546,43 @@ public class AwaitSendController {
     public ResponseJson getDeliverNum(HttpServletRequest request,Integer type) {
         ResponseJson rj = ResponseJson.getSUCCESS();
 
-        Calendar calendarStart = Calendar.getInstance();
-        calendarStart.set(Calendar.HOUR_OF_DAY,0);
-        calendarStart.set(Calendar.MINUTE,0);
-        calendarStart.set(Calendar.SECOND,0);
+        List<HashMap> allList = new ArrayList<>();
+
+        List<Map<String,Object>> toDayList = this.getNotSendNumADay(new Date());
+        HashMap map = new HashMap();
+        map.put("date",new Date());
+        map.put("list",toDayList);
+        allList.add(map);
+
+        Calendar yesterDay = Calendar.getInstance();
+        yesterDay.add(Calendar.DATE, -1);// 日期减1
+        List<Map<String,Object>> yesterDayList = this.getNotSendNumADay(yesterDay.getTime());
+        HashMap yerterMap = new HashMap();
+        yerterMap.put("date",yesterDay.getTime());
+        yerterMap.put("list",yesterDayList);
+        allList.add(yerterMap);
+
+        List<Date> dateList = salesOrderService.getNotSendDate();
+
+        Collections.reverse(dateList);
+        for (Date date: dateList) {
+            HashMap mapx = new HashMap();
+            List<Map<String,Object>> list = this.getNotSendNumADay(date);
+            mapx.put("date",date);
+            mapx.put("list",list);
+            allList.add(mapx);
+        }
+        rj.addResponseKeyValue("allList",allList);
+        return rj;
+    }
 
-        Calendar calendarEnd = Calendar.getInstance();
-        calendarEnd.set(Calendar.HOUR_OF_DAY,23);
-        calendarEnd.set(Calendar.MINUTE,59);
-        calendarEnd.set(Calendar.SECOND,59);
 
+    /**
+     * 按照时间查询当天的总数,发货数,出库数
+     * @param date
+     * @return
+     */
+    private List<Map<String,Object>>  getNotSendNumADay(Date date){
         List<Map<String,Object>> list = new ArrayList<>();
 
         //总数
@@ -567,32 +594,28 @@ public class AwaitSendController {
         SalesOrder sendSalesOrder = new SalesOrder();
         sendSalesOrder.setSalesShippingStatus(1);
         sendSalesOrder.setSalesDeliver(2);
-        if(type == 1){
-            //今日
-            allSalesOrder.setStartDate(calendarStart.getTime());
-            allSalesOrder.setEndDate(calendarEnd.getTime());
-            allSalesOrder.setSalesShippingStatus(12);//不查询未发货未确认订单
 
-            waitSalesOrder.setStartDate(calendarStart.getTime());
-            waitSalesOrder.setEndDate(calendarEnd.getTime());
+        Calendar calendarStart = Calendar.getInstance();
+        calendarStart.setTime(date);
+        calendarStart.set(Calendar.HOUR_OF_DAY,0);
+        calendarStart.set(Calendar.MINUTE,0);
+        calendarStart.set(Calendar.SECOND,0);
 
-            sendSalesOrder.setStartDate(calendarStart.getTime());
-            sendSalesOrder.setEndDate(calendarEnd.getTime());
-        }else{
-            //2:昨日
-            calendarStart.add(Calendar.DATE, -1);// 日期减1
-            calendarEnd.add(Calendar.DATE, -1);// 日期减1
+        Calendar calendarEnd = Calendar.getInstance();
+        calendarEnd.setTime(date);
+        calendarEnd.set(Calendar.HOUR_OF_DAY,23);
+        calendarEnd.set(Calendar.MINUTE,59);
+        calendarEnd.set(Calendar.SECOND,59);
 
-            allSalesOrder.setStartDate(calendarStart.getTime());
-            allSalesOrder.setEndDate(calendarEnd.getTime());
-            allSalesOrder.setSalesShippingStatus(12);//不查询未发货未确认订单
+        allSalesOrder.setStartDate(calendarStart.getTime());
+        allSalesOrder.setEndDate(calendarEnd.getTime());
 
-            waitSalesOrder.setStartDate(calendarStart.getTime());
-            waitSalesOrder.setEndDate(calendarEnd.getTime());
+        waitSalesOrder.setStartDate(calendarStart.getTime());
+        waitSalesOrder.setEndDate(calendarEnd.getTime());
+
+        sendSalesOrder.setStartDate(calendarStart.getTime());
+        sendSalesOrder.setEndDate(calendarEnd.getTime());
 
-            sendSalesOrder.setStartDate(calendarStart.getTime());
-            sendSalesOrder.setEndDate(calendarEnd.getTime());
-        }
         List<SalesOrderItem> allOrderItemList = salesOrderService.getDeliverNum(allSalesOrder);
         List<SalesOrderItem> waitOrderItemList = salesOrderService.getDeliverNum(waitSalesOrder);
         List<SalesOrderItem> sentOrderItemList = salesOrderService.getDeliverNum(sendSalesOrder);
@@ -617,8 +640,7 @@ public class AwaitSendController {
             }
             list.add(map);
         }
-        rj.addResponseKeyValue("list",list);
-        return rj;
+        return list;
     }
 
     /**

+ 73 - 54
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/deliver_statistics.ftl

@@ -54,33 +54,38 @@
         <form action="" method="post" class="form form-horizontal" id="form-order-add"  >
 
 
+
+            <div class="row cl">
+                <label class="form-label col-3">
+                    <div class="tit-2">今日/昨日产品发货出库统计</div>
+                </label>
+                <div class="formControls col-9">
+                </div>
+            </div>
+
+
+            <div class="mt-20" style="">
+                <table class="table table-border table-bg table-bordered">
+                    <tbody id="allDay">
+
+                    </tbody>
+                </table>
+            </div>
+
+
+            <div class="row cl">
+                <label class="form-label col-3">
+                    <div class="tit-2">历史产品发货出库统计</div>
+                </label>
+                <div class="formControls col-9">
+                </div>
+            </div>
+
+
             <div class="mt-20" style="">
                 <table class="table table-border table-bg table-bordered">
-                    <tbody>
-                        <tr class="text-c">
-                            <td width="10">今日订单<br>产品发货出库统计<br></td>
-                            <td width="100">
-
-                                <table class="table table-border table-bg table-bordered">
-                                    <tbody id="todayOrderNumber">
-                                    <tr class="text-c"><td width="16">产品名称</td><td width="16">总数</td><td width="16">已发货</td><td width="16">已出库</td></tr>
-                                    </tbody>
-                                </table>
-                            </td>
-                        </tr>
-                        <tr class="text-c">
-                            <td width="10">昨日订单<br>产品发货出库统计</td>
-                            <td width="100">
-
-                                <table class="table table-border table-bg table-bordered">
-                                    <tbody id="yesterdayOrderNumber">
-                                    <tr class="text-c"><td width="16">产品名称</td><td width="16">总数</td><td width="16">已发货</td><td width="16">已出库</td></tr>
-
-                                    </tbody>
-                                </table>
-
-                            </td>
-                        </tr>
+                    <tbody id="historyDay">
+
                     </tbody>
                 </table>
             </div>
@@ -93,52 +98,66 @@
 </tfoot>
 <script>
     $(function (){
-        getdeliver(1);
-        getdeliver(2);
+        getdeliver();
     })
 
     /**
      * 获取出库数量
      * type: 1:待发货总数   2:已出库数量
      */
-    function getdeliver(type){
+    function getdeliver(){
+        loadIndex = layer.load(1, {
+            shade: [0.5,'#fff'] //0.1透明度的白色背景
+        });
         $.ajax({
             type:'POST',
             url: '${path}/admin/await_send/getDeliverNum',
-            data:{
-                "type" : type
-            },
+            data:{},
             dataType: 'json',
             success:function(res) {
-//                var html = '<tr class="text-c"><td width="16">产品名称</td><td width="16">总数</td><td width="16">已发货</td><td width="16">已出库</td></tr>';
-                for(var i=0;i<res.returnMsg.list.length;i++){
-                    var html = '';
-                    var order = res.returnMsg.list[i];
-                    var style;
-                    html += '<tr class="text-c">';
-                    html += '<td width="16">'+ order.productName + '('+ order.colorName +')' +'</td>';
-                    html += '<td width="16">'+ order.allNum +'</td>';
-                    if(order.waitNum < order.allNum){
-                        style =  "bold";
-                    }else{
-                        style =  "";
+                for(var i=0;i<res.returnMsg.allList.length;i++){
+                    var list = res.returnMsg.allList[i].list;
+                    var date = res.returnMsg.allList[i].date;
+                    date = formatDate(date);
+                    var html = ' <tr class="text-c">'
+                            + ' <td width="10">'+ date +'</td>'
+                            + ' <td width="100">'
+                            + ' <table class="table table-border table-bg table-bordered">'
+                            + ' <tbody id="">'
+                            + ' <tr class="text-c"><td width="16">产品名称</td><td width="16">总数</td><td width="16">已发货</td><td width="16">已出库</td><td width="16">未出库</td></tr>';
+                    if(list.length < 1 ){
+                        html += '<tr class="text-c">'
+                                + '<td width="16" colspan="5">暂无数据</td>'
+                                + '</tr>';
                     }
-                    html += '<td width="16" class="'+ style +'" >'+ order.waitNum +'</td>';
-                    if(order.sendNum < order.allNum){
-                        style =  "bold";
+                    for(var j=0;j<list.length;j++){
+                        var order = list[j];
+                        var notDeliver = parseInt(order.allNum) - parseInt(order.sendNum);
+                        var notWait = parseInt(order.allNum) - parseInt(order.waitNum);
+                        var style;
+                        if(notDeliver > 0){
+                            style =  "bold";
+                        }
+                        if(i<2 || notDeliver > 0 || notWait > 0){
+                            html += '<tr class="text-c">'
+                                    + '<td width="16">'+ order.productName + '('+ order.colorName +')' +'</td>'
+                                    + '<td width="16">'+ order.allNum +'</td>'
+                                    + '<td width="16" class="" >'+ order.waitNum +'</td>'
+                                    + '<td width="16" class="">'+ order.sendNum +'</td>'
+                                    + '<td width="16" class="'+ style +'">'+ notDeliver +'</td></tr>';
+                        }
                     }
-                    html += '<td width="16" class="'+ style +'">'+ order.sendNum +'</td>';
-                    html += '</tr>';
-
-                    if(type == 1){
-                        //今日
-                        $("#todayOrderNumber").append(html);
+                    html += ' </tbody></table></td></tr>';
+                    if(i == 0 || i== 1){
+                        $("#allDay").append(html);
                     }else{
-                        //昨日
-                        $("#yesterdayOrderNumber").append(html);
+                        $("#historyDay").append(html);
                     }
                 }
 
+                if(loadIndex != 0 ){
+                    layer.close(loadIndex);
+                }
             }
         });
     }