Sfoglia il codice sorgente

Merge branch 'master' of zcb/kmall-pt-general into master

张创标 4 anni fa
parent
commit
3a1f8ce5ed

+ 7 - 6
kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java

@@ -651,6 +651,7 @@ public class OrderController {
     @RequiresPermissions("order:offilineOrderList")
     public R offilineOrderList(@RequestParam Map<String, Object> params) {
         ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
+        params = ParamUtils.setTimeMap(params);
         //查询列表数据
         Query query = new Query(params);
         query.put("isOnfiilineOrder", Dict.isOnfflineOrder.item_1.getItem());
@@ -1158,7 +1159,7 @@ public class OrderController {
         // =================================================线下订单明细导出开始=====================================
         List<OrderEntity> orderEntityList = orderService.queryExportOffilineOrderList(params);
         String[] header = new String[]{"订单号", "操作店员", "购买类型", "订单业务类型", "订单状态",
-                "付款状态", "sku", "商品名称", "数量", "实际支付", "订单总价", "下单时间", "付款时间", "零售价", "促销价", "成交价"};
+                "付款状态", "sku", "商品名称", "数量", "实际支付", /*"订单总价",*/ "下单时间", "付款时间", "零售价", "优惠金额", "成交价"};
 
         List<Map<String, Object>> list = new ArrayList<>();
         if (orderEntityList != null && orderEntityList.size() > 0) {
@@ -1181,14 +1182,14 @@ public class OrderController {
                 map.put("GoodsName", orderEntity.getGoodsName());
                 map.put("Number", orderEntity.getNumber());
 
-                map.put("ActualPrice", orderEntity.getActualPrice());
-                map.put("OrderPrice", orderEntity.getOrderPrice());
+                map.put("ActualPrice", orderEntity.getActualPrice()); // 实际支付价
+//                map.put("OrderPrice", orderEntity.getOrderPrice()); // 订单总价
                 map.put("AddTime", orderEntity.getAddTime());
 
                 map.put("PayTime", orderEntity.getPayTime());
-                map.put("SellPrice", orderEntity.getRetailPrice());
-                map.put("TopicPrice", orderEntity.getTopicPrice());
-                map.put("FinalPrice", orderEntity.getActualPrice());
+                map.put("SellPrice", orderEntity.getRetailPrice()); // 零售价
+                map.put("CouponPrice", orderEntity.getCouponPrice()); // 促销价
+                map.put("FinalPrice", orderEntity.getActualPrice()); // 成交价
 
                 list.add(map);
             }

+ 9 - 6
kmall-admin/src/main/java/com/kmall/admin/controller/statistics/MonthlyCustomersController.java

@@ -721,14 +721,17 @@ public class MonthlyCustomersController {
                     map.put("店铺库存",monthlySalesGrowthEntity.getStockNumber());
                     map.put("在途库存",monthlySalesGrowthEntity.getNumber());
                     map.put("园区库存",monthlySalesGrowthEntity.getGoodsNumber());
-                    map.put("月均预订量",new BigDecimal(monthlySalesGrowthEntity.getAvgSalesNumber()).multiply(
-                            new BigDecimal(monthNumber)).setScale(2,BigDecimal.ROUND_HALF_UP).toString() );
-                    // 总库存 -  M*单品每月平均销量
-                    map.put("月消耗预订量",new BigDecimal(monthlySalesGrowthEntity.getTotalCount()).subtract(
-                            new BigDecimal(dateList.size()).multiply(new BigDecimal(monthlySalesGrowthEntity.getAvgSalesNumber())).setScale(2,RoundingMode.HALF_UP)).toString());
+                    BigDecimal monthlyReservation = new BigDecimal(monthlySalesGrowthEntity.getAvgSalesNumber()).multiply(
+                            new BigDecimal(monthNumber)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    map.put("月均预订量", monthlyReservation.toString() );
+                    //
+                    BigDecimal averageMonthlyConsumption = new BigDecimal(monthlySalesGrowthEntity.getAvgSalesNumber()).multiply(
+                            new BigDecimal(dateList.size())).setScale(2, RoundingMode.HALF_UP);
+                    map.put("月消耗预订量", averageMonthlyConsumption.toString());
                     map.put("统计月份",dateList.size()+"");
                     map.put("预定月份",monthNumber+"");
-                    map.put("预定数",monthlySalesGrowthEntity.getPredeterminedNumber());
+                    map.put("预定数",averageMonthlyConsumption.compareTo(monthlyReservation) < 0 ? averageMonthlyConsumption.toString():
+                            monthlyReservation.toString());
                     list.add(map);
                 }
             }

+ 10 - 10
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -512,7 +512,7 @@ public class OrderServiceImpl implements OrderService {
         if (Dict.payFlag.item_cash.getItem().equals(order.getPayFlag())) {
             order.setPayStatus(Integer.parseInt(Dict.payStatus.item_4.getItem()));
         }else{
-            order.setPayStatus(Integer.parseInt(Dict.payStatus.item_4.getItem()));
+            order.setPayStatus(Integer.parseInt(Dict.payStatus.item_5.getItem()));
             OrderRefundEntity mallOrderRefund = orderRefundDao.queryObjectByOrderId(order.getId());
             OrderRefundEntity orderRefund = new OrderRefundEntity();
             orderRefund.setRefundId(result.getRefund_id());
@@ -2581,7 +2581,7 @@ public class OrderServiceImpl implements OrderService {
                     "用户退款", order.getStoreId() + "");
 
             LOGGER.info(userRefund.getSubMsg());
-            order.setPayStatus(Integer.parseInt(Dict.payStatus.item_3.getItem()));
+            order.setPayStatus(Integer.parseInt(Dict.payStatus.item_5.getItem()));
             order.setOrderStatus(Integer.parseInt(Dict.orderStatus.item_401.getItem()));
             OrderRefundEntity orderRefund = new OrderRefundEntity();
             orderRefund.setRefundId(userRefund.getTradeNo());
@@ -2662,13 +2662,13 @@ public class OrderServiceImpl implements OrderService {
     @Override
     public List<OrderEntity> queryExportOffilineOrderList(Map<String, Object> params) {
         List<OrderEntity> orderEntityList = orderDao.queryExportOffilineOrderList(params);
-        if (orderEntityList!=null && orderEntityList.size()>0){
-            for (OrderEntity orderEntity : orderEntityList) {
-                // 查询活动价
-                BigDecimal topicPrice = orderDao.queryTopicPriceByOrderSnAndSku(orderEntity.getOrderSn(),orderEntity.getSku());
-                orderEntity.setTopicPrice(topicPrice);
-            }
-        }
+//        if (orderEntityList!=null && orderEntityList.size()>0){
+//            for (OrderEntity orderEntity : orderEntityList) {
+//                // 查询活动价
+//                BigDecimal topicPrice = orderDao.queryTopicPriceByOrderSnAndSku(orderEntity.getOrderSn(),orderEntity.getSku());
+//                orderEntity.setTopicPrice(topicPrice);
+//            }
+//        }
         return orderEntityList;
     }
 
@@ -2729,7 +2729,7 @@ public class OrderServiceImpl implements OrderService {
         orderInfo.setProvince(storeEntity.getProvinceName());
         orderInfo.setCity(storeEntity.getCityName());
         orderInfo.setDistrict(storeEntity.getCountyName());
-        orderInfo.setAddress(storeEntity.getStoreName());
+        orderInfo.setAddress(storeEntity.getStoreAddress());
         orderInfo.setAddress_id(1L);
         orderInfo.setDelivery_date(new Date());
         orderInfo.setDelivery_remark("无");

+ 80 - 18
kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml

@@ -425,6 +425,24 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             AND o.merch_sn = #{merchSn}
         </if>
+        <if test="goodsSn != null and goodsSn.trim() != ''">
+            AND gs.goods_sn = #{goodsSn}
+        </if>
+        <if test="sku != null and sku.trim() != ''">
+            AND gs.sku = #{sku}
+        </if>
+        <if test="prodBarcode != null and prodBarcode.trim() != ''">
+            AND gs.prod_barcode = #{prodBarcode}
+        </if>
+        <if test="startTime != null and startTime != ''">
+            AND o.add_time <![CDATA[ >  ]]> #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            AND o.add_time <![CDATA[ <  ]]> #{endTime}
+        </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="orderSn != null and orderSn.trim() != ''">
             AND o.order_sn LIKE concat('%',#{orderSn},'%')
         </if>
@@ -465,12 +483,11 @@
     <select id="queryOffilineOrderTotal" resultType="int">
         select count(DISTINCT o.id) FROM
         mall_order o
-        LEFT JOIN mall_order_process_record p ON o.order_sn = p.order_sn
+
         LEFT JOIN mall_order_goods g ON o.id = g.order_id
-        left join mall_store s on o.store_id = s.id
-        LEFT JOIN mall_goods gs ON g.goods_id = gs.id
-        left join mall_sale_record record on record.order_sn = o.order_sn
+        LEFT JOIN mall_sale_record record ON record.order_sn = o.order_sn
         LEFT JOIN sys_user u ON record.saller_id = u.user_id
+        LEFT JOIN mall_pick_up_code c ON o.order_sn = c.order_sn
         WHERE 1=1
         <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}
@@ -487,6 +504,12 @@
         <if test="prodBarcode != null and prodBarcode.trim() != ''">
             AND gs.prod_barcode = #{prodBarcode}
         </if>
+        <if test="startTime != null and startTime != ''">
+            AND o.add_time <![CDATA[ >  ]]> #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            AND o.add_time <![CDATA[ <  ]]> #{endTime}
+        </if>
         <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
             AND s.third_party_merch_code = #{thirdPartyMerchCode}
         </if>
@@ -1632,9 +1655,9 @@
             s.id AS storeId,
             o.merch_sn AS merchSn,
             m.merch_name AS merchName,
-            count( 0 ) AS guestNumber,
-            sum( o.order_price ) AS totalSales,
-            sum( o.actual_price ) AS actualSales,
+            count( distinct o.order_sn ) AS guestNumber,
+            sum(  og.actual_payment_amount/ (1+og.goods_rate) ) + sum(og.discounted_price)AS totalSales,
+            sum(  og.actual_payment_amount/ (1+og.goods_rate) ) + sum(og.discounted_price) AS actualSales,
             s.store_name AS storeName,
             max( o.add_time ) AS lastSalesTime ,
             sum( g.cost_price) AS totalCost
@@ -1648,6 +1671,7 @@
             LEFT JOIN mall_category c ON sr.category_id = c.id
         WHERE
             1 = 1
+            and (o.order_status = '300' or o.order_status = '201')
             <if test="storeId != null and storeId.trim() != ''">
                 and o.store_id=#{storeId}
             </if>
@@ -1745,19 +1769,32 @@
     </select>
     <select id="queryExportOffilineOrderList" resultType="com.kmall.admin.entity.OrderEntity">
         SELECT distinct
-        o.*,
+        o.id,
+        o.order_sn,
+        u.username as userName,
+
+        o.pay_name,
+        o.mobile,
+        o.is_onffline_order,
+        o.order_biz_type,
+        o.order_status,
+        o.pay_status,
+        o.coupon_name,
+        o.coupon_price,
+        g.actual_payment_amount as actualPrice,
+        o.order_price,
+        o.pay_time,
+        o.pay_flag,
         u.username AS userName,
-        p.is_payment_send,
-        p.is_ele_order_send,
-        p.is_customs_send,
+        g.discounted_price as couponPrice ,
         s.store_name storeName,
         g.sku,
         g.goods_name as goodsName,
-        gs.retail_price,
+        g.retail_price,
         g.number
         FROM
         mall_order o
-        LEFT JOIN mall_order_process_record p ON o.order_sn = p.order_sn
+
         LEFT JOIN mall_order_goods g ON o.id = g.order_id
         left join mall_store s on o.store_id = s.id
         LEFT JOIN mall_goods gs ON g.goods_id = gs.id
@@ -1773,19 +1810,38 @@
         <if test="isOnfiilineOrder != null">
             AND o.is_onffline_order = #{isOnfiilineOrder}
         </if>
+        <if test="startTime != null and startTime != ''">
+            AND o.add_time <![CDATA[ >  ]]> #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            AND o.add_time <![CDATA[ <  ]]> #{endTime}
+        </if>
     </select>
     <select id="queryMasterExportOffilineOrderList" resultType="com.kmall.admin.entity.OrderEntity">
         SELECT distinct
-        o.*,
+        o.id,
+        o.order_sn,
+        u.username as userName,
+
+        o.pay_name,
+        o.mobile,
+        o.is_onffline_order,
+        o.order_biz_type,
+        o.order_status,
+        o.pay_status,
+        o.coupon_name,
+        o.coupon_price,
+        o.actual_price,
+        o.order_price,
+        o.pay_time,
+        o.pay_flag,
         u.username AS userName,
-        p.is_payment_send,
-        p.is_ele_order_send,
-        p.is_customs_send,
+
         s.store_name storeName
         FROM
         mall_order o
 
-        LEFT JOIN mall_order_process_record p ON o.order_sn = p.order_sn
+
         LEFT JOIN mall_order_goods g ON o.id = g.order_id
         left join mall_store s on o.store_id = s.id
         LEFT JOIN mall_goods gs ON g.goods_id = gs.id
@@ -1834,6 +1890,12 @@
         <if test="ids != null and ids.trim() != ''">
             AND o.id in (${ids})
         </if>
+        <if test="startTime != null and startTime != ''">
+            AND o.add_time <![CDATA[ >  ]]> #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            AND o.add_time <![CDATA[ <  ]]> #{endTime}
+        </if>
     </select>
     <select id="queryMasterExportList" resultType="com.kmall.admin.entity.OrderEntity">
         SELECT DISTINCT

+ 7 - 16
kmall-admin/src/main/resources/mybatis/mapper/statistics/MonthlyCustomersDao.xml

@@ -7,7 +7,7 @@
 		SELECT
 		o.merch_sn AS merchSn,
 		m.merch_name AS merchName,
-		sum( o.order_price ) AS totalSales,
+		sum(  og.actual_payment_amount ) + sum(og.discounted_price)AS totalSales,
 		sum( og.number) as totalNumber,
 		count(DISTINCT o.pay_mobile) as totalCustomers,
 		DATE_FORMAT(o.pay_time,'%Y-%m') as yearAndMonth
@@ -19,6 +19,7 @@
 			o.is_onffline_order = '1'
 			AND o.order_biz_type = '10'
 			AND o.pay_status = '2'
+			and o.order_status = '300'
 			AND DATE_FORMAT(o.pay_time,'%Y-%m')  &gt;= #{startMonth}
 			AND DATE_FORMAT(o.pay_time,'%Y-%m') &lt;= #{endMonth}
 			<if test="merchSn != null">
@@ -207,26 +208,16 @@
 	</select>
     <select id="queryAvgSales" resultType="com.kmall.admin.entity.MonthlySalesGrowthEntity">
 		select
-			sku ,goodsName,total as totalNumber , saletime as salesMonth , avgSalesNumber , goodsNumber, stockNumber ,number, (goodsNumber + stockNumber + number) as totalCount,
-			if(avgSalesNumber * #{monthNumber} &lt; ((goodsNumber + stockNumber + number) - avgSalesNumber*#{size}) ,
+			sku ,goodsName,total as totalNumber , saletime as salesMonth , avgSalesNumber , goodsNumber, stockNumber ,number,
+			(goodsNumber  + number) as totalCount,
+			if(avgSalesNumber * #{monthNumber} &lt; ((avgSalesNumber + goodsNumber + number) - avgSalesNumber*#{size}) ,
 			avgSalesNumber * #{monthNumber},
-			((goodsNumber + stockNumber + number) - avgSalesNumber*#{size}))  as predeterminedNumber
+		(avgSalesNumber + goodsNumber  + number) - (avgSalesNumber*#{size})  )  as predeterminedNumber
 		from (
 
 			SELECT
 			sku,sum( number ) total ,DATE_FORMAT(og.create_time,'%Y-%m') saletime,
-			(
-			select
-			sum(mog.number)/#{size} as avgSalesNumber
-			FROM
-			mall_order_goods mog
-			where
-			DATE_FORMAT(mog.create_time,'%Y-%m') &gt;= #{startMonth}
-			and DATE_FORMAT(mog.create_time,'%Y-%m') &lt;= #{endMonth}
-			and mog.sku = og.sku
-
-			group by sku
-			) as avgSalesNumber,
+			sum( og.number ) /1 AS avgSalesNumber ,
 			IFNULL((
 			select g.goods_number
 			from mall_goods g

+ 6 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/offilineOrderList.html

@@ -24,6 +24,12 @@
                         <!--<i-option value="402">完成</i-option>-->
                     </i-select>
                 </i-col>
+                <i-col span="3">
+                    <Date-picker v-model="q.startTime" placeholder="创建订单开始时间"/>
+                </i-col>
+                <i-col span="3">
+                    <Date-picker v-model="q.endTime" placeholder="创建订单结束时间"/>
+                </i-col>
                 <!--<i-col span="4">
                     <i-select v-model="q.orderType">
                         <i-option value="1">普通订单</i-option>

+ 2 - 2
kmall-admin/src/main/webapp/js/sale/realtimeSalesDetection.js

@@ -28,7 +28,7 @@ $(function () {
             {label: '商户编码', name: 'merchSn', index: 'storeId', width: 220},
             {label: '商户名称', name: 'merchName', index: 'storeName', width: 120},
             {label: '销售总额', name: 'totalSales', index: 'totalSales', align: 'right', width: 80},
-            {label: '实际销售额', name: 'actualSales', index: 'actualSales', align: 'right', width: 80},
+            {label: '实际销售额(税前)', name: 'actualSales', index: 'actualSales', align: 'right', width: 80},
             {label: '占比 %', name: 'proportion', index: 'proportion', align: 'right', width: 60},
             {label: '优惠损失', name: 'preferentialLoss', index: 'preferentialLoss', align: 'right', width: 80},
             {label: '成本总额', name: 'totalCost', index: 'totalCost', align: 'right', width: 80},
@@ -821,4 +821,4 @@ let vm = new Vue({
             console.log(vm.projectSelect);
         }
     }
-});
+});

+ 6 - 6
kmall-admin/src/main/webapp/js/sale/sale.js

@@ -960,21 +960,21 @@ let vm = new Vue({
         },
         resendNotice:function(){
             confirm('确认重发重置吗?', function () {
-                $.get("../order/resendOrderToCCNET/"+vm.currentOrderNo+"/notice", function (r) {
+                $.get("../order/resendOrderToCCNET/"+vm.orderEntity.orderSn+"/notice", function (r) {
                     alert(r);
                 });
             })
         },
         resendWaybill:function(){
             confirm('确认重发运单吗?', function () {
-                $.get("../order/resendOrderToCCNET/"+vm.currentOrderNo+"/waybill", function (r) {
+                $.get("../order/resendOrderToCCNET/"+vm.orderEntity.orderSn+"/waybill", function (r) {
                     alert(r);
                 });
             })
         },
         resendPayment:function(){
             confirm('确认重发支付单吗?', function () {
-                $.get("../order/resendOrderToCCNET/"+vm.currentOrderNo+"/payment", function (r) {
+                $.get("../order/resendOrderToCCNET/"+vm.orderEntity.orderSn+"/payment", function (r) {
                     alert(r);
                 });
             })
@@ -989,7 +989,7 @@ let vm = new Vue({
             confirm('确认核销吗?', function () {
                 $.ajax({
                     type: "POST",
-                    url: "../order/resendOrderToCCNET",
+                    url: "../order/printMsgAndChangeCode",
                     contentType: "application/json",
                     data: JSON.stringify({'id':vm.currentOrderNo,'sessionId':vm.sessionId}),
                     success: function (r) {
@@ -1182,8 +1182,8 @@ function openWebSocket() {
         //无法使用wss,浏览器打开WebSocket时报错
         //ws对应http、wss对应https。
         // webSocket = new WebSocket("ws://183.62.225.124:8080/ws/server/"+storeId);
-        webSocket = new WebSocket("ws://127.0.0.1:8080//ws/server/"+storeId);
-        // webSocket = new WebSocket("wss://cb.k1net.cn/ws/server/"+storeId);
+        // webSocket = new WebSocket("ws://127.0.0.1:8080//ws/server/"+storeId);
+        webSocket = new WebSocket("wss://cb.k1net.cn/ws/server/"+storeId);
         if (webSocket.readyState === webSocket.CONNECTING) {
             console.log('1.连接正在打开......');
         }

+ 9 - 3
kmall-admin/src/main/webapp/js/shop/offilineOrderList.js

@@ -189,7 +189,9 @@ let vm = new Vue({
         q: {
             orderSn: '',
             orderStatus: '',
-            orderType: ''
+            orderType: '',
+            startTime: '',
+            endTime: '',
         },
         refundMoney: 0,
         shipping: {},
@@ -243,7 +245,9 @@ let vm = new Vue({
                 postData: {
                     'orderSn': vm.q.orderSn,
                     'orderStatus': vm.q.orderStatus,
-                    'orderType': vm.q.orderType
+                    'orderType': vm.q.orderType,
+                    'startTime': vm.q.startTime,
+                    'endTime': vm.q.endTime,
                 },
                 page: page
             }).trigger("reloadGrid");
@@ -472,7 +476,9 @@ let vm = new Vue({
         exportOffilineOrder : function () {
             var params = {};
             params.orderSn=vm.q.orderSn,
-                params.orderStatus=vm.q.orderStatus;
+            params.orderStatus=vm.q.orderStatus;
+            params.startTime=vm.q.startTime;
+            params.endTime=vm.q.endTime;
             exportFile('#rrapp', '../order/exportOffilineOrder', params);
         }
     },