Ver código fonte

订单修改

wangxiaoming 5 anos atrás
pai
commit
28b77aaba9

+ 40 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java

@@ -155,6 +155,14 @@ public class SalesOrder implements Serializable {
     private String salesPostFirmName;//快递公司名称
 
     private Integer dealerId;//客户id
+    //客户名称
+    private String dealerName;
+    //渠道名称
+    private String dealChannelName;
+    //订单总成本 单个成本请用 itemCostTotal
+    private Integer costTotal;
+    //是否认领   1:已认领 2:未认领
+    private Integer orderIscostTotal;
 
     private List<ComplaintDetectInfo> complaintDetectInfoList;
     public Integer getSalesOldOrderStatus() {
@@ -931,4 +939,36 @@ public class SalesOrder implements Serializable {
     public void setItemCostTotal(Integer itemCostTotal) {
         this.itemCostTotal = itemCostTotal;
     }
+
+    public String getDealerName() {
+        return dealerName;
+    }
+
+    public void setDealerName(String dealerName) {
+        this.dealerName = dealerName;
+    }
+
+    public String getDealChannelName() {
+        return dealChannelName;
+    }
+
+    public void setDealChannelName(String dealChannelName) {
+        this.dealChannelName = dealChannelName;
+    }
+
+    public Integer getCostTotal() {
+        return costTotal;
+    }
+
+    public void setCostTotal(Integer costTotal) {
+        this.costTotal = costTotal;
+    }
+
+    public Integer getOrderIscostTotal() {
+        return orderIscostTotal;
+    }
+
+    public void setOrderIscostTotal(Integer orderIscostTotal) {
+        this.orderIscostTotal = orderIscostTotal;
+    }
 }

+ 34 - 8
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/postOrderNumMapper.xml

@@ -138,6 +138,7 @@
         tb_rst_sales_order_info t
         LEFT JOIN tb_rst_store_info si ON t.sales_store_id = si.store_id
         LEFT JOIN tb_rst_sales_order_item soi ON t.sales_id = soi.item_order_id
+        LEFT JOIN tb_rst_dm_claim_order dco on soi.item_id=dco.item_id
         <where>
             <if test="isCustmerAddOrder !=null and isCustmerAddOrder == 2">
                 AND sales_batch_id != 'KS00000000000001'
@@ -188,7 +189,7 @@
                 AND sales_address_info like CONCAT('%',#{salesAddressInfo},'%')
             </if>
             <if test="itemProductName !=null and itemProductName !=''">
-                AND oi.item_product_color like CONCAT('%',#{itemProductName},'%')
+                AND soi.item_product_color like CONCAT('%',#{itemProductName},'%')
             </if>
             <if test="salesAdminId != null ">
                 AND sales_admin_id = #{salesAdminId}
@@ -237,6 +238,12 @@
                 WHERE dc.dealer_id = #{dealerId}
                 )
             </if>
+            <if test="orderIscostTotal != null and orderIscostTotal == 1">
+                AND dco.item_id is not null
+            </if>
+            <if test="orderIscostTotal != null and orderIscostTotal == 2">
+                AND dco.item_id is null
+            </if>
         </where>
     </select>
 
@@ -246,20 +253,33 @@
         SELECT
             t.*,
             soi.*,
-            cpm.proc_method_name,
-            cpt.proc_type_name,
+          tx.proc_method_name,
+            tx.proc_type_name procTypeName,
+            tx.proc_type_id procTypeId,
             trsc.company_name companyName,
             si.store_name storeName,
-            ci.customer_is_solve customerIsSolve
+            ci.customer_is_solve customerIsSolve,
+            ddc.deal_channel_name AS dealChannelName,
+            dd.dealer_name AS dealerName,
+            ifnull(dco.claim_order_id,0) AS orderIscostTotal
         FROM
             tb_rst_sales_order_info t
         LEFT JOIN tb_rst_sales_company trsc ON t.sales_company_id = trsc.company_id
-        LEFT JOIN tb_rst_store_info si ON t.sales_store_id = si.store_id
+        LEFT JOIN tb_rst_store_info si ON  t.sales_store_id = si.store_id
+        LEFT JOIN tb_rst_dm_dealer_channel_store dcs ON si.store_id = dcs.store_id
+        LEFT JOIN tb_rst_dm_dealer_channel ddc ON dcs.deal_channel_id = ddc.deal_channel_id
+        LEFT JOIN tb_rst_dm_dealer dd ON ddc.dealer_id = dd.dealer_id
         LEFT JOIN tb_rst_sales_order_item soi ON t.sales_id = soi.item_order_id
         LEFT JOIN tb_rst_cm_customer_info ci ON t.sales_customer_id = ci.customer_id
         LEFT JOIN tb_rst_cm_relation cr ON ci.customer_id = cr.customer_id
-        LEFT JOIN tb_rst_cm_proc_method cpm ON cr.proc_method_id = cpm.proc_method_id
-        LEFT JOIN tb_rst_cm_proc_type cpt ON cpm.proc_type_id = cpt.proc_type_id
+        LEFT JOIN (
+            SELECT pm.*,
+            pt.proc_type_name
+            FROM tb_rst_cm_proc_method pm
+            LEFT JOIN tb_rst_cm_proc_type pt ON pt.proc_type_id = pm.proc_type_id
+            ) tx ON tx.proc_method_id = cr.proc_method_id
+        LEFT JOIN tb_rst_sys_admin sa ON t.sales_admin_id = sa.admin_id
+        LEFT JOIN tb_rst_dm_claim_order dco on soi.item_id=dco.item_id
         <where>
             <if test="isCustmerAddOrder !=null and isCustmerAddOrder == 2">
                 AND sales_batch_id != 'KS00000000000001'
@@ -310,7 +330,7 @@
                 AND sales_address_info like CONCAT('%',#{salesAddressInfo},'%')
             </if>
             <if test="itemProductName !=null and itemProductName !=''">
-                AND oi.item_product_color like CONCAT('%',#{itemProductName},'%')
+                AND soi.item_product_color like CONCAT('%',#{itemProductName},'%')
             </if>
             <if test="salesAdminId != null ">
                 AND sales_admin_id = #{salesAdminId}
@@ -359,6 +379,12 @@
                 WHERE dc.dealer_id = #{dealerId}
                 )
             </if>
+            <if test="orderIscostTotal != null and orderIscostTotal == 1">
+                AND dco.item_id is not null
+            </if>
+            <if test="orderIscostTotal != null and orderIscostTotal == 2">
+                AND dco.item_id is null
+            </if>
         </where>
         ORDER BY t.sales_id DESC
     </select>

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

@@ -1463,16 +1463,28 @@
           si.store_name,
           sc.company_name,
           sa.admin_name AS  salesAdminName,
-          pt.proc_type_name procTypeName,
-          pt.proc_type_id procTypeId
+          tx.proc_type_name procTypeName,
+          tx.proc_type_id procTypeId,
+          ddc.deal_channel_name AS dealChannelName,
+          dd.dealer_name AS dealerName,
+          SUM(oi.item_cost_total) AS cost_total,
+          ifnull(dco.claim_order_id,0) AS orderIscostTotal
         from tb_rst_sales_order_info
         LEFT JOIN tb_rst_store_info si ON  tb_rst_sales_order_info.sales_store_id = si.store_id
+        LEFT JOIN tb_rst_dm_dealer_channel_store dcs ON si.store_id = dcs.store_id
+        LEFT JOIN tb_rst_dm_dealer_channel ddc ON dcs.deal_channel_id = ddc.deal_channel_id
+        LEFT JOIN tb_rst_dm_dealer dd ON ddc.dealer_id = dd.dealer_id
         LEFT JOIN  tb_rst_sales_company sc ON  tb_rst_sales_order_info.sales_company_id = sc.company_id
         LEFT JOIN tb_rst_sales_order_item oi ON tb_rst_sales_order_info.sales_id = oi.item_order_id
         LEFT JOIN tb_rst_cm_relation cr ON tb_rst_sales_order_info.sales_customer_id = cr.customer_id
-        LEFT JOIN tb_rst_cm_proc_method pm ON pm.proc_method_id = cr.proc_method_id
-        LEFT JOIN tb_rst_cm_proc_type pt ON pt.proc_type_id = pm.proc_type_id
+        LEFT JOIN (
+            SELECT pm.*,
+            pt.proc_type_name
+            FROM tb_rst_cm_proc_method pm
+            LEFT JOIN tb_rst_cm_proc_type pt ON pt.proc_type_id = pm.proc_type_id
+        ) tx ON tx.proc_method_id = cr.proc_method_id
         LEFT JOIN tb_rst_sys_admin sa ON tb_rst_sales_order_info.sales_admin_id = sa.admin_id
+        LEFT JOIN tb_rst_dm_claim_order dco on oi.item_id=dco.item_id
         <where>
             <if test="isCustmerAddOrder !=null and isCustmerAddOrder == 2">
                 AND sales_batch_id != 'KS00000000000001'
@@ -1592,6 +1604,12 @@
                     WHERE dc.dealer_id = #{dealerId}
                 )
             </if>
+            <if test="orderIscostTotal != null and orderIscostTotal == 1">
+                AND dco.item_id is not null
+            </if>
+            <if test="orderIscostTotal != null and orderIscostTotal == 2">
+                AND dco.item_id is null
+            </if>
         </where>
         GROUP BY tb_rst_sales_order_info.sales_id
         ORDER BY tb_rst_sales_order_info.sales_id DESC

+ 1 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/dm/mapper/dealerProductMapper.xml

@@ -48,7 +48,7 @@
 
     <resultMap  id="DealerProductMap" type="DealerProduct" >
         <result    column="deal_prod_id"    property="dealProdId" />
-        <collection property="dealerProductStoreList" column="dealProdId" ofType="DealerProductStore" select="getDealerProductStoreList" javaType="ArrayList" />
+        <collection property="dealerProductStoreList" column="deal_prod_id" ofType="DealerProductStore" select="getDealerProductStoreList" javaType="ArrayList" />
     </resultMap>
 
     <select id="getDealerProductAndStoreList" resultMap="DealerProductMap" parameterType="DealerProduct" >

+ 269 - 104
watero-rst-web/src/main/java/com/iamberry/rst/controllers/dm/DmDealerController.java

@@ -1,15 +1,16 @@
 package com.iamberry.rst.controllers.dm;
 
 import com.iamberry.rst.core.cm.SalesOrder;
-import com.iamberry.rst.core.cm.SalesOrderItem;
 import com.iamberry.rst.core.cm.StoreInfo;
 import com.iamberry.rst.core.dm.*;
 import com.iamberry.rst.core.order.OrderWarehouse;
 import com.iamberry.rst.core.order.ProductColor;
 import com.iamberry.rst.core.page.PageRequest;
 import com.iamberry.rst.core.page.PagedResult;
+import com.iamberry.rst.core.pts.PtsBatch;
 import com.iamberry.rst.core.sys.Admin;
 import com.iamberry.rst.core.tools.LogisticsInfo;
+import com.iamberry.rst.faces.cm.PostOrderNumService;
 import com.iamberry.rst.faces.cm.SalesOrderService;
 import com.iamberry.rst.faces.cm.StoreInfoService;
 import com.iamberry.rst.faces.dm.*;
@@ -20,6 +21,7 @@ import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
 import com.iamberry.rst.utils.AdminUtils;
 import com.iamberry.rst.utils.StitchAttrUtil;
 import com.iamberry.rst.utils.UploadFileUtils;
+import com.iamberry.wechat.tools.ObjectExcelView;
 import com.iamberry.wechat.tools.ResponseJson;
 import net.sf.ezmorph.object.DateMorpher;
 import net.sf.json.JSONArray;
@@ -40,10 +42,8 @@ import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.List;
-import java.util.Objects;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 @Controller
 @RequestMapping("/admin/dealer")
@@ -79,6 +79,10 @@ public class DmDealerController {
     private SupplierProductService supplierProductService;
     @Autowired
     private SalesOrderMapper salesOrderMapper;
+    @Autowired
+    private PostOrderNumService postOrderNumService;
+
+    private static List<LogisticsInfo> LOGISTICSINFO_LIST;
 
     /**
      * 查询客户基本信息列表
@@ -571,7 +575,7 @@ public class DmDealerController {
         StitchAttrUtil.getSa()
                 .addDatePro("yyyy-MM-dd HH:mm:ss","startDate","endDate")
                 .addNoPro("salesOrderItemList","complaintDetectInfoList")
-                .setModelAndView(salesOrder, mv, "/admin/await_send/order_statistics", pagedResult);
+                .setModelAndView(salesOrder, mv, "/admin/dealer/list_order_for_dm", pagedResult);
 
         mv.addObject("listOrderWarehouse",listOrderWarehouse);
         mv.addObject("listStoreInfo",listStoreInfo);
@@ -586,115 +590,276 @@ public class DmDealerController {
      * @param request
      * @return
      */
-    @ResponseBody
-    @RequestMapping("/order_update")
-    public ResponseJson order_update(HttpServletRequest request) {
-        ResponseJson rj = ResponseJson.getSUCCESS();
-        Integer flag = 0;
-
-        SalesOrder salesOrder = new SalesOrder();
-        Calendar calendar = Calendar.getInstance();
-        calendar.set(2019,8,01,00,00,00);
-        salesOrder.setStartDate(calendar.getTime());  //startDate
+//    @ResponseBody
+//    @RequestMapping("/order_update")
+//    public ResponseJson order_update(HttpServletRequest request) {
+//        ResponseJson rj = ResponseJson.getSUCCESS();
+//        Integer flag = 0;
+//
+//        SalesOrder salesOrder = new SalesOrder();
+//        Calendar calendar = Calendar.getInstance();
+//        calendar.set(2019,8,01,00,00,00);
+//        salesOrder.setStartDate(calendar.getTime());  //startDate
+//
+//        Calendar endCalendar = Calendar.getInstance();
+//        endCalendar.set(2019,8,10,00,00,00);
+//        salesOrder.setEndDate(endCalendar.getTime());
+//
+//        salesOrder.setSalesStatus(1);
+//        List<SalesOrder> salesOrderList = salesOrderService.salesOrderListAndItem(salesOrder);
+//
+//        System.out.println("总共"+salesOrderList.size()+"单");
+//        int i=0;
+//
+//        for (SalesOrder so : salesOrderList) {//201909090002
+//            System.out.println("当前"+i+"单"+so.getSalesId());
+//            i++;
+//            SalesOrder newSo = new SalesOrder();
+//
+//            if(so.getSalesStatus() != 1){
+//                continue;
+//            }
+//
+//            if(so.getSalesCustomerId() != null){
+//                continue;
+//            }
+//
+//            if(so.getSalesPayMoney() == null || so.getSalesPayMoney() == 0 || so.getSalesPayMoney() == 2147483647){
+//                Integer price = 0;
+//                StoreInfo storeInfo = storeInfoService.getStoreInfoById(so.getSalesStoreId());
+//                DealerChannel dealerChannel = new DealerChannel();
+//                dealerChannel.setStoreId(so.getSalesStoreId());
+//                List<DealerChannel>  dealerChannelList = dealerChannelService.getDealerChannelList(dealerChannel);
+//                if(dealerChannelList!= null && dealerChannelList.size() > 0){
+//                    dealerChannel = dealerChannelList.get(0);
+//                }else{
+//                    System.out.println("未查询到客户信息!订单id:"+so.getSalesId()+"店铺信息:"+storeInfo.getStoreName());
+//                    continue;
+//                }
+//                for (SalesOrderItem salesOrderItem:so.getSalesOrderItemList()) {
+//                    SalesOrderItem newSoi = new SalesOrderItem();
+//                    newSoi.setItemNum(salesOrderItem.getItemNum());
+//                    newSoi.setItemId(salesOrderItem.getItemId());
+//
+//                    boolean isUpdateItem = false;
+//                    if(salesOrderItem.getItemCostTotal() == null ||salesOrderItem.getItemCostTotal() == 0){
+//                        SupplierProduct supplierProduct = supplierProductService.getSupplierProductByColorId(salesOrderItem.getItemColorId());
+//                        if(supplierProduct != null){
+//                            newSoi.setItemCost(supplierProduct.getSpCost());
+//                            newSoi.setItemCostTotal(supplierProduct.getSpCost() * newSoi.getItemNum());
+//                            isUpdateItem = true;
+//                        }else{
+//                            System.out.println("确认订单失败-未查询到该产品("+ salesOrderItem.getItemProductName() +"-"+ salesOrderItem.getItemProductColor() +")的成本价格订单id:"+so.getSalesId());
+//                        }
+//                    }
+//
+//                    if(salesOrderItem.getItemTotal() == null || salesOrderItem.getItemTotal() == 0|| salesOrderItem.getItemTotal() == 2147483647){
+//                        DealerProduct dealerProduct = new DealerProduct();
+//                        dealerProduct.setDealerId(dealerChannel.getDealerId());
+//                        dealerProduct.setColorBar(salesOrderItem.getItemColorBar());
+//                        System.out.println("========xz==========="+salesOrderItem.getItemColorBar() + "==="+dealerChannel.getDealerId());
+//                        List<DealerProduct> dealerProductList = dealerProductService.getDealerProductAndStoreList(dealerProduct);
+//                        if(dealerProductList.size() > 0){
+//                            dealerProduct = dealerProductList.get(0);
+//                            if(1 == dealerProduct.getDealProdStoreArea()){
+//                                // 1:全部店铺
+//                                newSoi.setItemProductDiscount(dealerProduct.getDealProdPrice());
+//                                newSoi.setItemProductPrice(dealerProduct.getDealProdPrice());
+//                            }else{
+//                                // 2:部分店铺
+//                                for (DealerProductStore dps:dealerProduct.getDealerProductStoreList()) {
+//                                    if(dealerChannel.getDealChannelId().equals(dps.getDealChannelId())){
+//                                        newSoi.setItemProductDiscount(dealerProduct.getDealProdPrice());
+//                                        newSoi.setItemProductPrice(dealerProduct.getDealProdPrice());
+//                                    }
+//                                }
+//                            }
+//                            System.out.println("========xy==========="+newSoi.getItemProductDiscount() + "===" +  newSoi.getItemNum() +"==="+
+//                                    dealerChannel.getDealerId() + "=====" + salesOrderItem.getItemColorBar());
+//                            newSoi.setItemTotal(newSoi.getItemProductDiscount()*newSoi.getItemNum());
+//
+//                            isUpdateItem = true;
+//                            price += newSoi.getItemTotal();
+//                        }else{
+//                            System.out.println("=======xx========"+salesOrderItem.getItemProductName()+salesOrderItem.getItemProductColor() + "==="+dealerChannel.getDealerId() +"==="+so.getSalesId());
+//                        }
+//                    }else{
+//                        price += salesOrderItem.getItemTotal();
+//                    }
+//                    if(isUpdateItem){
+//                        flag = salesOrderService.updateOrderItemObj(newSoi);
+//                        if(flag < 1){
+//                            System.out.println("修改订单项失败!订单id:"+so.getSalesId());
+//                        }
+//                    }
+//                }
+//                newSo.setSalesId(so.getSalesId());  //salesId
+//                newSo.setSalesAmount(price);
+//                newSo.setSalesPayMoney(price);
+//                flag = salesOrderMapper.updateSalesOrder(newSo);
+//                if(flag < 1){
+//                    System.out.println("修改订单失败!订单id:"+so.getSalesId());
+//                }
+//            }
+//        }
+//
+//        if(flag > 0){
+//            rj.setResultMsg("");
+//            return rj;
+//        }else{
+//            rj = ResponseJson.getFAILURE();
+//            return  rj;
+//        }
+//    }
 
-        Calendar endCalendar = Calendar.getInstance();
-        endCalendar.set(2019,8,10,00,00,00);
-        salesOrder.setEndDate(endCalendar.getTime());
-
-        salesOrder.setSalesStatus(1);
-        List<SalesOrder> salesOrderList = salesOrderService.salesOrderListAndItem(salesOrder);
-
-        for (SalesOrder so : salesOrderList) {//201909090002
-
-            SalesOrder newSo = new SalesOrder();
-
-            if(so.getSalesStatus() != 1){
-                continue;
-            }
+    /**
+     * 下载订单,返回给各个平台
+     * @param request
+     * @return
+     * @throws IOException
+     */
+    @ResponseBody
+    @RequestMapping("/dm_download_order_val")
+    @RequiresPermissions("salesOrder:order_statistics:deliver")
+    public ResponseJson dmDownloadOrderVal(HttpServletRequest request,SalesOrder so) throws Exception {
+        ResponseJson rj = ResponseJson.getFAILURE();
+        Integer num = postOrderNumService.listSalesOrderAndItemNum(so);
+        if(num > 20000){
+            rj.setResultMsg("下载订单超过20000条,请精确查询条件");
+            return rj;
+        }
+        return ResponseJson.getSUCCESS();
+    }
 
-            if(so.getSalesCustomerId() != null){
-                continue;
-            }
+    /**
+     * 下载订单,返回给各个平台
+     * @param request
+     * @return
+     * @throws IOException
+     */
+    @RequestMapping("/dm_download_order")
+    @RequiresPermissions("salesOrder:order_statistics:deliver")
+    public ModelAndView dmDownloadOrder(HttpServletRequest request,SalesOrder so) throws Exception {
+        so.setIsCustmerAddOrder(2);
+        List<SalesOrder> temporarySalesOrderList = postOrderNumService.listSalesOrderAndItem(so);
+
+        if(temporarySalesOrderList.size() > 20000){
+            return new ModelAndView().addObject("下载出错,下载数量过大");
+        }
+
+        // 准备model
+        Map<String, Object> model = new HashMap<String, Object>();
+        model.put("fileName", "订单列表");	// 下载文件名称
+
+        // 标题
+        List<String> titles = new ArrayList<String>();
+        titles.add("订单创建日期");
+        titles.add("订单编号");
+        titles.add("交易号");
+        titles.add("订单类型");
+
+        titles.add("客户名称");
+        titles.add("渠道名称");
+        titles.add("店铺名称");
+        titles.add("是否认领");
+
+        titles.add("姓名");
+        titles.add("电话");
+        titles.add("收货人地址");
+        titles.add("快递公司");
+        titles.add("快递单号");
+        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>();
+                SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
+                row.add(salesOrder.getSalesCreateTime() == null ? null:formatter.format(salesOrder.getSalesCreateTime()));
+                row.add(salesOrder.getSalesOrderId() == null ? null:salesOrder.getSalesOrderId());
+                row.add(salesOrder.getSalesDealCode() == null ? null:salesOrder.getSalesDealCode());
+                if(salesOrder.getSalesCustomerId() == null){
+                    row.add("正常订单");
+                }else{
+                    String typeName = salesOrder.getProcTypeName() == null ? "":salesOrder.getProcTypeName();
+                    row.add("售后订单("+  typeName +")");
+                }
 
-            if(so.getSalesPayMoney() == null || so.getSalesPayMoney() == 0 || so.getSalesPayMoney() == 2147483647){
-                Integer price = 0;
-                StoreInfo storeInfo = storeInfoService.getStoreInfoById(so.getSalesStoreId());
-                DealerChannel dealerChannel = new DealerChannel();
-                dealerChannel.setStoreId(so.getSalesStoreId());
-                List<DealerChannel>  dealerChannelList = dealerChannelService.getDealerChannelList(dealerChannel);
-                if(dealerChannelList!= null && dealerChannelList.size() > 0){
-                    dealerChannel = dealerChannelList.get(0);
+                row.add(salesOrder.getDealerName() == null ? null:salesOrder.getDealerName());
+                row.add(salesOrder.getDealChannelName() == null ? null:salesOrder.getDealChannelName());
+                row.add(salesOrder.getStoreName() == null ? null:salesOrder.getStoreName());
+                if(salesOrder.getOrderIscostTotal() == 0){   //orderIscostTotal
+                    row.add("未认领");
                 }else{
-                    System.out.println("未查询到客户信息!订单id:"+so.getSalesId()+"店铺信息:"+storeInfo.getStoreName());
-                    continue;
+                    row.add("已认领");
                 }
-                for (SalesOrderItem salesOrderItem:so.getSalesOrderItemList()) {
-                    SalesOrderItem newSoi = new SalesOrderItem();
-                    newSoi.setItemNum(salesOrderItem.getItemNum());
-                    newSoi.setItemId(salesOrderItem.getItemId());
-
-                    boolean isUpdateItem = false;
-                    if(salesOrderItem.getItemCostTotal() == null ||salesOrderItem.getItemCostTotal() == 0){
-                        SupplierProduct supplierProduct = supplierProductService.getSupplierProductByColorId(salesOrderItem.getItemColorId());
-                        if(supplierProduct != null){
-                            newSoi.setItemCost(supplierProduct.getSpCost());
-                            newSoi.setItemCostTotal(supplierProduct.getSpCost() * newSoi.getItemNum());
-                            isUpdateItem = true;
-                        }else{
-                            System.out.println("确认订单失败-未查询到该产品("+ salesOrderItem.getItemProductName() +"-"+ salesOrderItem.getItemProductColor() +")的成本价格订单id:"+so.getSalesId());
-                        }
-                    }
 
-                    if(salesOrderItem.getItemTotal() == null || salesOrderItem.getItemTotal() == 0 ){
-                        DealerProduct dealerProduct = new DealerProduct();
-                        dealerProduct.setDealerId(dealerChannel.getDealerId());
-                        dealerProduct.setColorBar(salesOrderItem.getItemColorBar());
-                        List<DealerProduct> dealerProductList = dealerProductService.getDealerProductAndStoreList(dealerProduct);
-                        for (DealerProduct dp:dealerProductList) {
-                            if(1 == dp.getDealProdStoreArea()){
-                                // 1:全部店铺
-                                newSoi.setItemProductDiscount(dp.getDealProdPrice());
-                                newSoi.setItemProductPrice(dp.getDealProdPrice());
-                            }else{
-                                // 2:部分店铺
-                                for (DealerProductStore dps:dp.getDealerProductStoreList()) {
-                                    if(dealerChannel.getDealChannelId().equals(dps.getDealChannelId())){
-                                        newSoi.setItemProductDiscount(dp.getDealProdPrice());
-                                        newSoi.setItemProductPrice(dp.getDealProdPrice());
-                                    }
-                                }
-                            }
-                        }
-                        newSoi.setItemTotal(newSoi.getItemProductDiscount()*newSoi.getItemNum());
-                        isUpdateItem = true;
-                        price += newSoi.getItemTotal();
-                    }else{
-                        price += salesOrderItem.getItemTotal();
-                    }
-                    if(isUpdateItem){
-                        flag = salesOrderService.updateOrderItemObj(newSoi);
-                        if(flag < 1){
-                            System.out.println("修改订单项失败!订单id:"+so.getSalesId());
-                        }
+                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()+(salesOrder.getItemProductColor() == null ? null:"-"+salesOrder.getItemProductColor()));
+                row.add(salesOrder.getItemProductColor() == null ? null:salesOrder.getItemProductColor());
+                row.add(salesOrder.getItemNum() == null ? null:salesOrder.getItemNum());
+                row.add(salesOrder.getItemTotal() == null ? null:salesOrder.getItemTotal()/100);
+                row.add(salesOrder.getItemCostTotal() == null ? null:salesOrder.getItemTotal()/100);
+
+                String salesShoppingStatus = "";
+                if(salesOrder.getSalesShippingStatus() == null){
+                    salesShoppingStatus = "未打单";
+                }else{
+                    // 0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货) 11(已通知配货,后加)
+                    switch (salesOrder.getSalesShippingStatus()){
+                        case 0:
+                            salesShoppingStatus = "未打单";
+                            break;
+                        case 1:
+                            salesShoppingStatus = "已打单";
+                            break;
+                        case 11:
+                            salesShoppingStatus = "通知配货";
+                            break;
+                        default:
+                            salesShoppingStatus = "其他状态";
+                            break;
                     }
                 }
-                newSo.setSalesId(so.getSalesId());  //salesId
-                newSo.setSalesAmount(price);
-                newSo.setSalesPayMoney(price);
-                flag = salesOrderMapper.updateSalesOrder(newSo);
-                if(flag < 1){
-                    System.out.println("修改订单失败!订单id:"+so.getSalesId());
-                }
+                row.add(salesShoppingStatus);
+                row.add(salesOrder.getSalesSendTime() == null ? "未发货":formatter.format(salesOrder.getSalesSendTime()));
+                countexts.add(row);
             }
         }
+        model.put("varList", countexts);
+        ObjectExcelView erv = new ObjectExcelView();
+        ModelAndView mv = new ModelAndView(erv,model);
+        return mv;
+    }
+
+    /**物流名称替换**/
+    public String replace(String code) {
+        String name = "";
+        if(code == null || "".equals(code)){
+            return "";
+        }
+        if(LOGISTICSINFO_LIST == null){
+            LOGISTICSINFO_LIST = logisticsInfoService.getLogisticsInfoList(new LogisticsInfo());
+        }
 
-        if(flag > 0){
-            rj.setResultMsg("");
-            return rj;
-        }else{
-            rj = ResponseJson.getFAILURE();
-            return  rj;
+        for (LogisticsInfo logistics : LOGISTICSINFO_LIST) {
+            if(code .equalsIgnoreCase(logistics.getLogisticsRstCode())){
+                return logistics.getLogisticsName();
+            }
         }
+        return "";
     }
-
 }

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

@@ -980,12 +980,12 @@ public class AdminSalesOrderController {
             }
         }
 
-        salesOrder.setSalesAmount(salesOrder.getSalesAmount()*100);
-        salesOrder.setSalesDiscountMoney(salesOrder.getSalesDiscountMoney()*100);;
-        salesOrder.setSalesPayMoney(salesOrder.getSalesPayMoney()*100);
-        salesOrder.setSalesWaitMoney(salesOrder.getSalesWaitMoney()*100);
-        salesOrder.setSalesLastMoney(salesOrder.getSalesLastMoney()*100);
-        salesOrder.setSalesShippingFee(salesOrder.getSalesShippingFee()*100);
+//        salesOrder.setSalesAmount(salesOrder.getSalesAmount()*100);
+//        salesOrder.setSalesDiscountMoney(salesOrder.getSalesDiscountMoney()*100);;
+//        salesOrder.setSalesPayMoney(salesOrder.getSalesPayMoney()*100);
+//        salesOrder.setSalesWaitMoney(salesOrder.getSalesWaitMoney()*100);
+//        salesOrder.setSalesLastMoney(salesOrder.getSalesLastMoney()*100);
+//        salesOrder.setSalesShippingFee(salesOrder.getSalesShippingFee()*100);
 
         salesOrder.setSalesOrderItemList(salesOrderItemList);
 

Diferenças do arquivo suprimidas por serem muito extensas
+ 40 - 63
watero-rst-web/src/main/webapp/WEB-INF/views/dm/dealer/dm_order_statistics.ftl


+ 13 - 6
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/add_order.ftl

@@ -246,14 +246,14 @@
             <div class="row cl" id="" style="">
                 <label class="form-label col-1 col-sm-1" style="display: none">总金额:</label>
                 <div class="formControls col-2 col-sm-2" style="display: none">
-                    <input type="text" class="input-text" value="" placeholder="总金额" datatype="*" errormsg="必须要输入总金额!" id="salesAmount" name="salesAmount"  >
+                    <input type="text" class="input-text" value="" placeholder="总金额" datatype="*" errormsg="必须要输入总金额!" id="salesAmountTest" name="salesAmountTest"  >
                 </div>
                 <label class="form-label col-2 col-sm-2">实付金额:</label>
                 <div class="formControls col-2 col-sm-2">
-                    <input type="text" class="input-text" value="0" placeholder="实付金额" datatype="*" errormsg="必须要输入总金额!" id="salesPayMoney" name="salesPayMoney"  >
+                    <input type="text" class="input-text" value="0" placeholder="实付金额" datatype="*" errormsg="必须要输入总金额!" id="salesPayMoneyTest" name="salesPayMoneyTest"  >
                 </div>
                 <div class="formControls col-2 col-sm-2" style="display: none">
-                    <input type="text" class="input-text" value="0" placeholder="优惠金额" datatype="*" errormsg="必须要输入总金额!" id="salesDiscountMoney" name="salesDiscountMoney"  >
+                    <input type="text" class="input-text" value="0" placeholder="优惠金额" datatype="*" errormsg="必须要输入总金额!" id="salesDiscountMoneyTest" name="salesDiscountMoneyTest"  >
                 </div>
 
                 <div class="formControls col-2 col-sm-2">
@@ -261,9 +261,16 @@
                 </div>
             </div>
 
-            <input type="hidden" class="input-text" value="0" placeholder="待付金额" id="salesWaitMoney" name="salesWaitMoney"  >
-            <input type="hidden" class="input-text" value="0" placeholder="本次支付金额" id="salesLastMoney" name="salesLastMoney"  >
-            <input type="hidden" class="input-text" value="0" placeholder="邮费" id="salesShippingFee" name="salesShippingFee"  >
+            <input type="hidden" class="input-text" value="0" placeholder="待付金额" id="salesWaitMoneyTest" name="salesWaitMoneyTest"  >
+            <input type="hidden" class="input-text" value="0" placeholder="本次支付金额" id="salesLastMoneyTest" name="salesLastMoneyTest"  >
+            <input type="hidden" class="input-text" value="0" placeholder="邮费" id="salesShippingFeeTest" name="salesShippingFeeTest"  >
+
+            <input type="hidden"  id="salesAmount" name="salesAmount"  >
+            <input type="hidden"  id="salesPayMoney" name="salesPayMoney"  >
+            <input type="hidden"  id="salesDiscountMoney" name="salesDiscountMoney"  >
+            <input type="hidden"  id="salesWaitMoney" name="salesWaitMoney"  >
+            <input type="hidden"  id="salesLastMoney" name="salesLastMoney"  >
+            <input type="hidden"  id="salesShippingFee" name="salesShippingFee"  >
 
             <div class="row cl">
                 <label class="form-label col-3">

+ 17 - 10
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/update_order.ftl

@@ -241,8 +241,8 @@
                                     <input type="hidden" class="color_id" id="" value="${item.itemColorId}">
                                     <td>${item.itemProductName}</td>
                                     <td>${item.itemProductColor}</td>
-                                    <td style="width: 40px;"><input type="text" class="input-text input-number color_price" style="text-align: center;" value="${((item.itemProductPrice/100)?string("0.##"))!''}"  name="" id="" placeholder="售价" onkeyup="keyFun($(this),99999,1)" onpaste="keyFun($(this),99999,1)"></td>
-                                    <td style="width: 40px;"><input type="text" class="input-text input-number color_discount" style="text-align: center;" value="${((item.itemProductDiscount/100)?string("0.##"))!''}"  name="" id="" placeholder="售价" onkeyup="keyFun($(this),99999,1)" onpaste="keyFun($(this),99999,1)"></td>
+                                    <td style="width: 40px;"><input type="text" class="input-text input-number color_price decimal_input" style="text-align: center;" value="${((item.itemProductPrice/100)?string("0.##"))!''}"  name="" id="" placeholder="售价" onkeyup="keyFunDecimal($(this),9999999,0)" myMinVal="0" myMaxVal="9999999"></td>
+                                    <td style="width: 40px;"><input type="text" class="input-text input-number color_discount decimal_input" style="text-align: center;" value="${((item.itemProductDiscount/100)?string("0.##"))!''}"  name="" id="" placeholder="售价" onkeyup="keyFunDecimal($(this),9999999,0)" myMinVal="0" myMaxVal="9999999"></td>
                                     <td>${item.itemColorBar}</td>
                                     <td style="width: 30px;">
                                         <input type="text"
@@ -257,9 +257,9 @@
                                     </td>
                                     <td style="width: 40px;">
                                         <input type="text"
-                                               class="input-text input-number item_total"
+                                               class="input-text input-number item_total decimal_input"
                                                style="text-align: center;" value="${((item.itemTotal/100)?string("0.##"))!''}"
-                                               name="" id="" placeholder="售价" onkeyup="keyFun($(this),999999,1)" onpaste="keyFun($(this),999999,1)"
+                                               name="" id="" placeholder="售价" onkeyup="keyFunDecimal($(this),9999999,0)" myMinVal="0" myMaxVal="9999999"
                                                 <#if orderType==1 || orderType==3 >
                                                     readonly="readonly"   isUpdate="2"
                                                 <#else>
@@ -287,14 +287,14 @@
             <div class="row cl" id="" style="">
                 <label class="form-label col-1 col-sm-1" style="display: none">总金额:</label>
                 <div class="formControls col-2 col-sm-2" style="display: none">
-                    <input type="text" class="input-text" value="${((order.salesAmount/100)?string("0.##"))!''}" placeholder="总金额" datatype="*" errormsg="必须要输入总金额!" id="salesAmount" name="salesAmount"  >
+                    <input type="text" class="input-text" value="${((order.salesAmount/100)?string("0.##"))!''}" placeholder="总金额" datatype="*" errormsg="必须要输入总金额!" id="salesAmountTest" name="salesAmountTest"  >
                 </div>
                 <label class="form-label col-2 col-sm-2">实付金额:</label>
                 <div class="formControls col-2 col-sm-2">
-                    <input type="text" class="input-text" value="${((order.salesPayMoney/100)?string("0.##"))!''}" placeholder="实付金额" datatype="*" errormsg="必须要输入总金额!" id="salesPayMoney" name="salesPayMoney"  >
+                    <input type="text" class="input-text" value="${((order.salesPayMoney/100)?string("0.##"))!''}" placeholder="实付金额" datatype="*" errormsg="必须要输入总金额!" id="salesPayMoneyTest" name="salesPayMoneyTest"  >
                 </div>
                 <div class="formControls col-2 col-sm-2" style="display: none">
-                    <input type="text" class="input-text" value="${((order.salesDiscountMoney/100)?string("0.##"))!''}" placeholder="优惠金额" datatype="*" errormsg="必须要输入总金额!" id="salesDiscountMoney" name="salesDiscountMoney"  >
+                    <input type="text" class="input-text" value="${((order.salesDiscountMoney/100)?string("0.##"))!''}" placeholder="优惠金额" datatype="*" errormsg="必须要输入总金额!" id="salesDiscountMoneyTest" name="salesDiscountMoneyTest"  >
                 </div>
 
                 <div class="formControls col-2 col-sm-2" >
@@ -302,9 +302,16 @@
                 </div>
             </div>
 
-            <input type="hidden" class="input-text" value="${((order.salesWaitMoney/100)?string("0.##"))!''}" placeholder="待付金额" id="salesWaitMoney" name="salesWaitMoney"  >
-            <input type="hidden" class="input-text" value="${((order.salesLastMoney/100)?string("0.##"))!''}" placeholder="本次支付金额" id="salesLastMoney" name="salesLastMoney"  >
-            <input type="hidden" class="input-text" value="${((order.salesShippingFee/100)?string("0.##"))!''}" placeholder="邮费" id="salesShippingFee" name="salesShippingFee"  >
+            <input type="hidden" class="input-text" value="${((order.salesWaitMoney/100)?string("0.##"))!''}" placeholder="待付金额" id="salesWaitMoneyTest" name="salesWaitMoneyTest"  >
+            <input type="hidden" class="input-text" value="${((order.salesLastMoney/100)?string("0.##"))!''}" placeholder="本次支付金额" id="salesLastMoneyTest" name="salesLastMoneyTest"  >
+            <input type="hidden" class="input-text" value="${((order.salesShippingFee/100)?string("0.##"))!''}" placeholder="邮费" id="salesShippingFeeTest" name="salesShippingFeeTest"  >
+
+            <input type="hidden"  id="salesAmount" name="salesAmount"  >
+            <input type="hidden"  id="salesPayMoney" name="salesPayMoney"  >
+            <input type="hidden"  id="salesDiscountMoney" name="salesDiscountMoney"  >
+            <input type="hidden"  id="salesWaitMoney" name="salesWaitMoney"  >
+            <input type="hidden"  id="salesLastMoney" name="salesLastMoney"  >
+            <input type="hidden"  id="salesShippingFee" name="salesShippingFee"  >
 
             <div class="row cl">
                 <label class="form-label col-3">

+ 26 - 18
watero-rst-web/src/main/webapp/common/js/salesOrder/salesOrder.js

@@ -113,7 +113,18 @@ $(function(){
                     return false;
                 }
             }
-
+            var salesAmountTest = $("#salesAmountTest").val();
+            var salesPayMoneyTest = $("#salesPayMoneyTest").val();
+            var salesDiscountMoneyTest = $("#salesDiscountMoneyTest").val();
+            var salesWaitMoneyTest = $("#salesWaitMoneyTest").val();
+            var salesLastMoneyTest = $("#salesLastMoneyTest").val();
+            var salesShippingFeeTest = $("#salesShippingFeeTest").val();
+            $("#salesAmount").val(accMul(salesAmountTest,100));
+            $("#salesPayMoney").val(accMul(salesPayMoneyTest,100));
+            $("#salesDiscountMoney").val(accMul(salesDiscountMoneyTest,100));
+            $("#salesWaitMoney").val(accMul(salesWaitMoneyTest,100));
+            $("#salesLastMoney").val(accMul(salesLastMoneyTest,100));
+            $("#salesShippingFee").val(accMul(salesShippingFeeTest,100));
 
             $("#orderItemString").val(JSON.stringify(orderItemArray));
 
@@ -346,11 +357,11 @@ function setSelectProduct(colorIds){
                             '<input type="hidden" class="color_id" id="" value="'+ productColor.colorId +'" >' +
                             ' <td>'+ cufte(productColor.productName) +'</td>' +
                             ' <td>'+ cufte(productColor.colorName) +'</td>' +
-                            ' <td style="width: 40px;"><input type="text" class="input-text input-number color_price" style="text-align: center;" value="'+ accDiv(productColor.colorPrice,100) +'"  name="" id="" placeholder="售价" onkeyup="keyFun($(this),99999,1)" onpaste="keyFun($(this),99999,1)"></td>' +
-                            ' <td style="width: 40px;"><input type="text" class="input-text input-number color_discount" style="text-align: center" value="'+ accDiv(productColor.colorDiscount,100) +'"  name="" id="" placeholder="售价" onkeyup="keyFun($(this),99999,1)" onpaste="keyFun($(this),99999,1)"></td>' +
+                            ' <td style="width: 40px;"><input type="text" class="input-text input-number color_price" style="text-align: center;" value="'+ accDiv(productColor.colorPrice,100) +'"  name="" id="" placeholder="售价" onkeyup="keyFunDecimal($(this),9999999,0)" myMinVal="0" myMaxVal="9999999"></td>' +
+                            ' <td style="width: 40px;"><input type="text" class="input-text input-number color_discount" style="text-align: center" value="'+ accDiv(productColor.colorDiscount,100) +'"  name="" id="" placeholder="售价" onkeyup="keyFunDecimal($(this),9999999,0)" myMinVal="0" myMaxVal="9999999"></td>' +
                             ' <td>'+ cufte(productColor.colorBar) +'</td>' +
                             ' <td style="width: 30px;"><input type="text" class="input-text input-number item-num" style="text-align: center" value="1"  name="" id="" placeholder="产品数量" onkeyup="keyFun($(this),999,1)" onpaste="keyFun($(this),999,1)"></td>' +
-                            ' <td style="width: 40px;"><input type="text" class="input-text input-number item_total" isUpdate="1" style="text-align: center" value="'+ accDiv(productColor.colorDiscount,100) +'"  name="" id="" placeholder="小结" onkeyup="keyFun($(this),99999,1)" onpaste="keyFun($(this),99999,1)"></td>' +
+                            ' <td style="width: 40px;"><input type="text" class="input-text input-number item_total" isUpdate="1" style="text-align: center" value="'+ accDiv(productColor.colorDiscount,100) +'"  name="" id="" placeholder="小结" onkeyup="keyFunDecimal($(this),9999999,0)" myMinVal="0" myMaxVal="9999999"></td>' +
                             ' <td><a href="javascript:void(0)" class="del_product all_down" onclick="delProduct($(this))" >删除</a></td>' +
                             ' </tr>';
                     }
@@ -383,18 +394,13 @@ function calculatePrice(){
     var colorDiscountAll = 0,colorPriceAll = 0;
     $("#add_product").find("tr").each(function(){
         var colorDiscount = 0,colorPrice = 0,salesPayMoney=0,itemNum=0;
-        colorDiscount = parseInt($(this).find(".color_discount").val());
-        colorPrice = parseInt($(this).find(".color_price").val());
+        colorDiscount = Number($(this).find(".color_discount").val());
+        colorPrice = Number($(this).find(".color_price").val());
         itemNum = $(this).find(".item-num").val();
         if(!isEmpty(itemNum)){
             return;
         }
-        itemNum = parseInt(itemNum);
-        // salesPayMoney = colorPrice -colorDiscount;
-        // if(salesPayMoney < 0){
-        //     salesPayMoney = 0;
-        // }
-
+        itemNum = Number(itemNum);
         var total = accMul(colorDiscount,itemNum);
         var isUpdate = $(this).find(".item_total").attr("isUpdate");
         if(isUpdate == "1"){
@@ -403,13 +409,15 @@ function calculatePrice(){
             total = $(this).find(".item_total").val();
             total = Number(total);
         }
-        colorDiscountAll += total;
-        colorPriceAll += accMul(colorPrice,itemNum);
+        colorDiscountAll = accAdd(colorDiscountAll,total);
+
+        var newColorPrice = accMul(colorPrice,itemNum);
+        colorPriceAll = accAdd(colorPriceAll,newColorPrice);
     });
-    $("#salesAmount").val(colorPriceAll);
-    $("#salesPayMoney").val(colorDiscountAll);
-    $("#salesDiscountMoney").val(accSub(colorPriceAll,colorDiscountAll));
-    $("#salesLastMoney").val(colorDiscountAll);
+    $("#salesAmountTest").val(colorPriceAll);
+    $("#salesPayMoneyTest").val(colorDiscountAll);
+    $("#salesDiscountMoneyTest").val(accSub(colorPriceAll,colorDiscountAll));
+    $("#salesLastMoneyTest").val(colorDiscountAll);
 }
 
 /**