wangxiaoming vor 6 Jahren
Ursprung
Commit
cf7d1e6359

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

@@ -309,7 +309,7 @@ public interface SalesOrderService {
      * @param salesOrder
      * @return
      */
-    Integer getDeliverNum(SalesOrder salesOrder);
+    SalesOrderItem getDeliverNum(SalesOrder salesOrder);
 
     /**
      * 查询订单集合与订单项集合

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

@@ -914,11 +914,11 @@ public class SalesOrderServiceImpl implements SalesOrderService {
 
     @Override
     public Integer noticeDistribution(SalesOrder salesOrder) {
-        // 检查订单是否已经有了配送方式,如果没有不允许通知配货
-        SalesOrder temp = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
-        if (temp == null || temp.getSalesPostFirm() == null || temp.getSalesPostFirm().isEmpty()) {
-            return 0;
-        }
+        // 检查订单是否已经有了配送方式,如果没有不允许通知配货 -- 移到controller中自己添加
+//        SalesOrder temp = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
+//        if (temp == null || temp.getSalesPostFirm() == null || temp.getSalesPostFirm().isEmpty()) {
+//            return 0;
+//        }
         return salesOrderMapper.noticeDistribution(salesOrder);
     }
 
@@ -988,7 +988,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
     }
 
     @Override
-    public Integer getDeliverNum(SalesOrder salesOrder) {
+    public SalesOrderItem getDeliverNum(SalesOrder salesOrder) {
         return salesOrderMapper.getDeliverNum(salesOrder);
     }
 

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

@@ -257,7 +257,7 @@ public interface SalesOrderMapper {
      * @param salesOrder
      * @return
      */
-    Integer getDeliverNum(SalesOrder salesOrder);
+    SalesOrderItem getDeliverNum(SalesOrder salesOrder);
 
     /**
      * 查询订单集合与订单项集合

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

@@ -135,7 +135,7 @@
                     AND sales_add_type = #{salesAddType}
                 </if>
                 <if test="itemProductName !=null and itemProductName !=''">
-                    AND oi.item_product_color like CONCAT('%',#{itemProductName},'%') OR oi.item_product_name LIKE CONCAT('%',#{itemProductName},'%')
+                    AND (oi.item_product_color like CONCAT('%',#{itemProductName},'%') OR oi.item_product_name LIKE CONCAT('%',#{itemProductName},'%'))
                 </if>
                 <if test="salesIds != null and salesIds != ''">
                     AND sales_id IN
@@ -1127,6 +1127,9 @@
           <if test="salesShippingStatus !=null">
               AND t.sales_shipping_status = #{salesShippingStatus}
           </if>
+          <if test="salesDeliver !=null">
+              AND sales_deliver = #{salesDeliver}
+          </if>
           <if test="salesStoreId !=null and salesStoreId !=''">
               AND t.sales_store_id = #{salesStoreId}
           </if>
@@ -1252,7 +1255,7 @@
     <update id="updateDeliver" parameterType="SalesOrder" >
         update tb_rst_sales_order_info
         SET
-          sales_deliver = 2
+          sales_deliver = #{salesDeliver}
         WHERE
           sales_post_num = #{salesPostNum}
         AND sales_id = #{salesId}
@@ -1260,20 +1263,29 @@
     </update>
 
 
-    <select id="getDeliverNum" resultType="Integer" parameterType="SalesOrder" >
-        SELECT COUNT(t.sales_id)
+    <select id="getDeliverNum" resultType="SalesOrderItem" parameterType="SalesOrder" >
+        SELECT
+            oi.item_product_name,
+            oi.item_product_color,
+            oi.item_color_bar,
+            SUM(oi.item_num) AS itemNum
         FROM tb_rst_sales_order_info t
+        LEFT JOIN tb_rst_sales_order_item oi ON t.sales_id = oi.item_order_id
         <where>
-            <if test="salesCreateTime !=null and salesCreateTime !=''">
-                AND date_format(t.sales_create_time,'%Y-%m-%d') =  date_format( #{salesCreateTime},'%Y-%m-%d')
-            </if>
             <if test="salesShippingStatus !=null">
                 AND t.sales_shipping_status =  #{salesShippingStatus}
             </if>
             <if test="salesDeliver !=null">
                 AND t.sales_deliver = #{salesDeliver}
             </if>
+            <if test="startDate != null and startDate != ''">
+                AND sales_create_time <![CDATA[>=]]> #{startDate}
+            </if>
+            <if test="endDate != null and endDate != ''">
+                AND sales_create_time <![CDATA[<=]]> #{endDate}
+            </if>
         </where>
+        GROUP BY item_color_bar
     </select>
 
 

+ 3 - 2
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java

@@ -915,7 +915,8 @@ public class AdminSalesOrderController {
         StringBuilder errorId = new StringBuilder();
         for (Integer salesIds:salesOrderIds) {
             SalesOrder salesOrder = salesOrderService.getSalesOrderById(salesIds);
-            if(salesOrder == null){
+            if(salesOrder == null || salesOrder.getSalesPostFirm() == null || salesOrder.getSalesPostFirm().isEmpty()){
+                //检查订单是否已经有了配送方式,如果没有不允许通知配货
                 errorId.append(salesIds).append(",");
                 continue;
             }
@@ -929,7 +930,7 @@ public class AdminSalesOrderController {
             }
         }
         if(errorId.length() > 0){
-            rj.addResponseKeyValue("errorId", errorId.toString());
+            rj.setResultMsg(errorId.toString());
             logger.info("通知配货失败订单id:"+errorId);
             return rj;
         }

+ 64 - 22
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AwaitSendController.java

@@ -219,6 +219,9 @@ public class AwaitSendController {
             eOrderRequestData.CustomerName = ("651476854");
             eOrderRequestData.ExpType = ("2");
         }
+
+        LOGGER.info( "===salesId:" + salesId + "快递方式:" + post+ "订单编号:"+ orderId);
+
         // 收件人信息
         String[] addrs = salesOrderInfo.getSalesAddressInfo().split("-");
         if (addrs.length <= 3) {
@@ -270,11 +273,17 @@ public class AwaitSendController {
             Goodsquantity += temp.getItemNum();
         }
         String uuid = UUIDGenerator.getUUID().substring(0, 8);
+
+        LOGGER.info("===salesId:" + salesId + "uuid:"+uuid);
+
         Map<String, Object> product1 = new HashMap<String, Object>();
         product1.put("GoodsName", uuid);
         product1.put("Goodsquantity", Goodsquantity);
         // 计算产品重量
         product1.put("GoodsWeight", colorIsWeight/1000);
+
+        LOGGER.info("===salesId:" + salesId + "重量:" + colorIsWeight/1000);
+
         commodity.add(product1);
 
         eOrderRequestData.Commodity = (commodity);
@@ -461,7 +470,13 @@ public class AwaitSendController {
         try{
             salesOrder = salesOrderService.getSalesOrderByPostNum(postNum);
         }catch (Exception e){
-            rj.setResultMsg("出货失败,物流单号("+postNum+")异常,该物流单号可能存在多个订单中!");
+            Integer flag = salesOrderService.updateDeliver(salesOrder);
+            if(flag < 1){
+                rj.setResultMsg("出货失败,请检查该物流单号("+postNum+")和订单状态是否为已发货。");
+                return rj;
+            }
+            rj = ResponseJson.getSUCCESS();
+            rj.setResultMsg("物流单号("+ postNum +")出库成功。");
             return rj;
         }
         if(salesOrder == null){
@@ -476,6 +491,7 @@ public class AwaitSendController {
             rj.setResultMsg("出货失败,该物流单号("+postNum+")对应的订单已出库。");
             return rj;
         }
+        salesOrder.setSalesDeliver(2);
         Integer flag = salesOrderService.updateDeliver(salesOrder);
         if(flag < 1){
             rj.setResultMsg("出货失败,请检查该物流单号("+postNum+")和订单状态。");
@@ -508,44 +524,70 @@ public class AwaitSendController {
         calendarEnd.set(Calendar.SECOND,59);
 
         List<Map<String,Object>> list = new ArrayList<>();
+        Map<String,Object> map = new HashMap<>();
 
         SalesOrder salesOrder = new SalesOrder();
         if(type == 1){
             salesOrder.setStartDate(calendarStart.getTime());
             salesOrder.setEndDate(calendarEnd.getTime());
+            SalesOrderItem salesOrderItem = salesOrderService.getDeliverNum(salesOrder);
+            map.put("productName",salesOrderItem.getItemProductName());
+            map.put("colorName",salesOrderItem.getItemProductColor());
+            map.put("num",salesOrderItem.getItemProductColor());
         }else{
             //2:昨日
             calendarStart.add(Calendar.DATE, -1);// 日期减1
             calendarEnd.add(Calendar.DATE, -1);// 日期减1
             salesOrder.setStartDate(calendarStart.getTime());
             salesOrder.setEndDate(calendarEnd.getTime());
+            salesOrderService.getDeliverNum(salesOrder);
         }
+        //type: 1:今日
+//        Map<String,Object> map = new HashMap<>();
+//        Integer num = 0;
+        return rj;
+    }
 
-//        salesOrderService.getDeliverNum(salesOrder);
+    /**
+     * 标记出库状态
+     * @param request type 1:标记为未出库   2:标记为出库
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("salesOrder:markDeliver:deliverList")
+    @RequestMapping("/markDeliver")
+    public ResponseJson markDeliver(HttpServletRequest request,Integer salesId, Integer type) {
+        if(salesId == null || type == null){
+            return ResponseJson.getFAILURE();
+        }
+        ResponseJson rj = ResponseJson.getSUCCESS();
 
-        //type: 1:今日
-        Map<String,Object> map = new HashMap<>();
-        Integer num = 0;
-
-        salesOrder.setSalesShippingStatus(11);
-        List<SalesOrder> salesOrderList = salesOrderService.salesOrderListAndItem(salesOrder);
-        for (SalesOrder so:salesOrderList) {
-            for (SalesOrderItem salesOrderItem : so.getSalesOrderItemList()) {
-                map.put("bar",salesOrderItem.getItemColorBar());
-                map.put("product",salesOrderItem.getItemProductName());
-                map.put("color",salesOrderItem.getItemProductColor());
-                Integer barNum = salesOrderItem.getItemNum();
-                for (Map<String,Object> m:list) {
-                    if(m.get("bar") != null && m.get("bar").equals(salesOrderItem.getItemColorBar())){
-                        barNum += (Integer)m.get("num");
-                    }
-                }
-                map.put("num",barNum);
-            }
+        SalesOrder salesOrder = salesOrderService.getSalesOrderById(salesId);
+        if(salesOrder == null){
+            rj.setResultMsg("出货失败,该订单号未查询到订单。");
+            return rj;
+        }
+        if(salesOrder.getSalesShippingStatus() != 1){
+            rj.setResultMsg("出货失败,该订单未发货。");
+            return rj;
         }
-        list.add(map);
 
+        salesOrder.setSalesDeliver(type);
+        Integer flag = salesOrderService.updateDeliver(salesOrder);
+
+        if(flag < 1){
+            rj.setResultMsg("出货失败,请检查该订单的发货状态。");
+            return rj;
+        }
+        rj = ResponseJson.getSUCCESS();
+        if(1 == type){
+            rj.setResultMsg("标记为未出库状态成功");
+        }else{
+            rj.setResultMsg("出库成功");
+        }
         return rj;
+
     }
 
+
 }

+ 86 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/deliver_list.ftl

@@ -71,15 +71,75 @@
                 <div class="formControls col-6 col-sm-6"  id="msg" style="display: none; line-height: 31px;color:#f00">
                 </div>
             </div>
-
-          <#--  <div class="row cl">
+</br>
+</br>
+            <div class="row cl" style="display: none">
                 <label class="form-label col-3">
-                    <div class="tit-2">今日出库</div>
+                    <div class="tit-2">出库统计</div>
                 </label>
                 <div class="formControls col-9">
                 </div>
-            </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>代发货的产品</td>
+                            <td width="100">
+
+                                <table class="table table-border table-bg table-bordered">
+                                    <tbody>
+                                        <tr class="text-c">
+                                            <td width="16">产品名称</td>
+                                            <td width="16">代发货总数</td>
+                                            <td width="16">已出库数量</td>
+                                        </tr>
+                                        <tr class="text-c">
+                                            <td width="16">美国watero</td>
+                                            <td width="16">1</td>
+                                            <td width="16">1</td>
+                                        </tr>
+                                        <tr class="text-c">
+                                            <td width="16">美国watero</td>
+                                            <td width="16">1</td>
+                                            <td width="16">1</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>
+                                    <tr class="text-c">
+                                        <td width="16">产品名称</td>
+                                        <td width="16">代发货总数</td>
+                                        <td width="16">已出库数量</td>
+                                    </tr>
+                                    <tr class="text-c">
+                                        <td width="16">美国watero</td>
+                                        <td width="16">1</td>
+                                        <td width="16">1</td>
+                                    </tr>
+                                    <tr class="text-c">
+                                        <td width="16">美国watero</td>
+                                        <td width="16">1</td>
+                                        <td width="16">1</td>
+                                    </tr>
+                                    </tbody>
+                                </table>
+
+                            </td>
+                        </tr>
+                    </tbody>
+                </table>
 
+            </div>
         </form>
     </div>
 </article>
@@ -129,6 +189,28 @@
 </script>
 
 <script>
+    $(function (){
+//        getdeliver(1);
+//        getdeliver(2);
+    })
+
+    /**
+     * 获取出库数量
+     * type: 1:代发货总数   2:已出库数量
+     */
+    function getdeliver(type){
+        $.ajax({
+            type:'POST',
+            url: '${path}/admin/await_send/getDeliverNum',
+            data:{
+                "type" : type
+            },
+            dataType: 'json',
+            success:function(res) {
+
+            }
+        });
+    }
 
 </script>
 

+ 51 - 5
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/list_wait_send_order.ftl

@@ -161,9 +161,19 @@
                     <#else>
                         <a title="重新打单" href="javascript:re_print_order('${(o.salesOrderId)!}')" class="ml-5" style="text-decoration:none;display:inline">重新打单</a><br>
                     </#if>
-                <#if o.salesShippingStatus == 11>
-                    <a class="ml-5" style="text-decoration:none;display:inline" href="javascript:void(0);" title="手动发货"onclick="distribution_postFirm('手动发货','${path}/admin/await_send/to_manual_delivery?salesId=${o.salesId}','570','450');">手动发货</a><br>
-                </#if>
+                    <#if o.salesShippingStatus == 11>
+                        <a class="ml-5" style="text-decoration:none;display:inline" href="javascript:void(0);" title="手动发货"onclick="distribution_postFirm('手动发货','${path}/admin/await_send/to_manual_delivery?salesId=${o.salesId}','570','450');">手动发货</a><br>
+                    </#if>
+
+                   <#if o.salesDeliver == 1>
+                        <a class="ml-5" style="text-decoration:none;display:inline" href="javascript:void(0);" title="标记出库" onclick="sales_deliver(2,'${(o.salesId)!}');">标记出库</a><br>
+                    </#if>
+
+                   <#if o.salesDeliver == 2>
+                        <a class="ml-5" style="text-decoration:none;display:inline" href="javascript:void(0);" title="标记未出库" onclick="sales_deliver(1,'${(o.salesId)!}');">标记未出库</a><br>
+                   </#if>
+
+
                 </td>
             </tr>
             </#list>
@@ -230,8 +240,6 @@
                 }
             }
         });
-
-
     }
 
     /*查看物流*/
@@ -268,6 +276,44 @@
             }
         });
     }
+
+
+    /**
+     * 标记出库状态
+     * @param type 1:标记为未出库   2:标记为出库
+     */
+    function sales_deliver(type,orderId){
+        var msg;
+        if(1 == type){
+            msg = "是否要标记该订单改回未出库状态!"
+        }else{
+            msg = "是否要标记该订单为已出库状态!"
+        }
+
+        layer.confirm(msg, function(index){
+            $.ajax('${path}/admin/await_send/markDeliver?dates=' + new Date().getTime(), {
+                data:  {
+                    salesId:orderId,
+                    type : type
+                },
+                dataType: 'json',
+                type: 'post',
+                success: function(dt) {
+                    if(dt.resultCode == 200){
+                        layer.msg(dt.resultMsg, {icon: 1, time: 3000});
+                    }else{
+                        layer.msg(dt.resultMsg, {icon: 5, time: 3000});
+                    }
+                    layer.close(index);
+                },
+                error: function(xhr, type, errorThrown) {
+                    layer.msg("修改状态失败,请重试!", {icon: 5, time: 3000});
+                    layer.close(index);
+                }
+            });
+        });
+
+    }
 </script>
 </body>
 </html>

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/sales_order_list.ftl

@@ -444,8 +444,8 @@
                     if(res.resultCode == 200 && res.returnCode == 200){
                        location.reload();
                     }else{
-                        layer.alert("通知配货异常!", function(index){
-                            layer.close(index);
+                        layer.alert("通知配货异常!请检查订单状态与物流公司,异常订单ID:"+res.resultMsg, function(indexy){
+                            layer.close(indexy);
                         });
                         layer.close(index);
                     }