Browse Source

客户系统

wangxiaoming 5 years ago
parent
commit
fffbfd6146
19 changed files with 322 additions and 81 deletions
  1. 10 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/dm/ClaimOrder.java
  2. 9 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/order/EfastOrder.java
  3. 6 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/dm/DealerProductService.java
  4. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/dm/DealerProductServiceImpl.java
  5. 8 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/dm/mapper/DealerProductMapper.java
  6. 4 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/dm/mapper/claimOrderMapper.xml
  7. 34 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/dm/mapper/dealerProductMapper.xml
  8. 70 6
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/dm/FinanciaReceController.java
  9. 12 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java
  10. 18 12
      watero-rst-web/src/main/java/com/iamberry/rst/utils/ExcelUtil.java
  11. 1 1
      watero-rst-web/src/main/webapp/WEB-INF/views/dm/dealer/update_dealer.ftl
  12. 30 20
      watero-rst-web/src/main/webapp/WEB-INF/views/dm/financialReceipt/order_desc.ftl
  13. 44 3
      watero-rst-web/src/main/webapp/WEB-INF/views/order/excel_to_order_new.ftl
  14. 6 4
      watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/add_order.ftl
  15. 32 17
      watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/update_order.ftl
  16. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/product/update_product.ftl
  17. 2 1
      watero-rst-web/src/main/webapp/common/js/dealer/dealer.js
  18. 4 2
      watero-rst-web/src/main/webapp/common/js/product/product.js
  19. 24 13
      watero-rst-web/src/main/webapp/common/js/salesOrder/salesOrder.js

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/dm/ClaimOrder.java

@@ -19,6 +19,8 @@ public class ClaimOrder  implements  Serializable{
     private Integer frId;
     //订单项表
     private Integer itemId;
+    //供应价格
+    private Integer frPrice;
     //类型 1:正常 2:退货
     private Integer claimOrderType;
     //产品数量 当类型为退货时,为退货数量
@@ -294,4 +296,12 @@ public class ClaimOrder  implements  Serializable{
     public void setSalesAddressInfo(String salesAddressInfo) {
         this.salesAddressInfo = salesAddressInfo;
     }
+
+    public Integer getFrPrice() {
+        return frPrice;
+    }
+
+    public void setFrPrice(Integer frPrice) {
+        this.frPrice = frPrice;
+    }
 }

+ 9 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/order/EfastOrder.java

@@ -35,6 +35,7 @@ public class EfastOrder implements Serializable{
 
     private Integer orderProductPrice;   //产品市场价
     private Integer orderProductDiscount;//产品折扣价
+    private Integer orderTotal;//产品项小结
 
     private String orderProductBarCode;          //产品SKU
     private Integer orderPayType;                 //支付方式    1:微信支付  2:现金支付  3:已支付定金¥99  4:刷卡支付  5:支付宝支付
@@ -331,4 +332,12 @@ public class EfastOrder implements Serializable{
     public void setOrderProductDiscount(Integer orderProductDiscount) {
         this.orderProductDiscount = orderProductDiscount;
     }
+
+    public Integer getOrderTotal() {
+        return orderTotal;
+    }
+
+    public void setOrderTotal(Integer orderTotal) {
+        this.orderTotal = orderTotal;
+    }
 }

+ 6 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/dm/DealerProductService.java

@@ -17,6 +17,12 @@ public interface DealerProductService {
      */
     List<DealerProduct> getDealerProductList(DealerProduct  dealerProduct);
     /**
+     * 获取集合
+     * @param  dealerProduct
+     * @return List
+     */
+    List<DealerProduct> getDealerProductAndStoreList(DealerProduct  dealerProduct);
+    /**
      * 查询单条数据
      * @param  id
      * @return  dealerProduct

+ 6 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/dm/DealerProductServiceImpl.java

@@ -26,6 +26,12 @@ public class DealerProductServiceImpl  implements DealerProductService {
     public List<DealerProduct> getDealerProductList(DealerProduct  dealerProduct){
         return  dealerProductMapper.getDealerProductList(dealerProduct);
     }
+
+    @Override
+    public List<DealerProduct> getDealerProductAndStoreList(DealerProduct dealerProduct) {
+        return  dealerProductMapper.getDealerProductAndStoreList(dealerProduct);
+    }
+
     /**
      * 查询单条数据
      * @param  id

+ 8 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/dm/mapper/DealerProductMapper.java

@@ -16,6 +16,14 @@ public interface DealerProductMapper {
      * @return List
      */
     List<DealerProduct> getDealerProductList(DealerProduct  dealerProduct);
+
+    /**
+     * 获取集合
+     * @param  dealerProduct
+     * @return List
+     */
+    List<DealerProduct> getDealerProductAndStoreList(DealerProduct  dealerProduct);
+
     /**
      * 查询单条数据
      * @param  id

+ 4 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/dm/mapper/claimOrderMapper.xml

@@ -5,6 +5,7 @@
         <result    column="claim_order_id"    property="claimOrderId" />
         <result    column="fr_id"    property="frId" />
         <result    column="item_id"    property="itemId" />
+        <result    column="fr_price"    property="frPrice" />
         <result    column="claim_order_type"    property="claimOrderType" />
         <result    column="claim_order_num"    property="claimOrderNum" />
     </resultMap>
@@ -12,6 +13,7 @@
         t.claim_order_id,
         t.fr_id,
         t.item_id,
+        t.fr_price,
         t.claim_order_type,
         t.claim_order_num
     </sql>
@@ -67,6 +69,7 @@
         claim_order_id,
         fr_id,
         item_id,
+        fr_price,
         claim_order_type,
         claim_order_num
         )
@@ -76,6 +79,7 @@
             #{node.claimOrderId},
             #{node.frId},
             #{node.itemId},
+            #{node.frPrice},
             #{node.claimOrderType},
             #{node.claimOrderNum}
             )

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

@@ -43,6 +43,40 @@
             </if >
         </where>
     </select>
+
+    <resultMap  id="DealerProductMap" type="DealerProduct" >
+        <result    column="deal_prod_id"    property="dealProdId" />
+        <collection property="dealerProductStoreList" column="dealProdId" ofType="DealerProductStore" select="getDealerProductStoreList"/>
+    </resultMap>
+    <select id="getDealerProductAndStoreList" resultMap="DealerProductMap" parameterType="DealerProduct" >
+        select
+        <include refid="Base_List" />
+        from tb_rst_dm_dealer_product t
+        <where>
+            <if test="dealProdId != null ">
+                AND t.deal_prod_id = #{dealProdId}
+            </if >
+            <if test="dealerId != null ">
+                AND t.dealer_id = #{dealerId}
+            </if >
+            <if test="colorId != null ">
+                AND t.color_id = #{colorId}
+            </if >
+            <if test="dealProdPrice != null ">
+                AND t.deal_prod_price = #{dealProdPrice}
+            </if >
+            <if test="dealProdStoreArea != null ">
+                AND t.deal_prod_store_area = #{dealProdStoreArea}
+            </if >
+        </where>
+    </select>
+    <select id="getDealerProductStoreList" resultType="DealerProductStore" parameterType="DealerProductStore" >
+        select
+          t.*
+        from tb_rst_dm_dealer_product_store t
+        WHERE t.deal_prod_id = #{dealProdId}
+    </select>
+
     <delete id="deleteByDealerId" parameterType="Integer" >
         delete FROM
         tb_rst_dm_dealer_product

+ 70 - 6
watero-rst-web/src/main/java/com/iamberry/rst/controllers/dm/FinanciaReceController.java

@@ -1,14 +1,13 @@
 package com.iamberry.rst.controllers.dm;
 
-import com.iamberry.rst.core.dm.ClaimOrder;
-import com.iamberry.rst.core.dm.DmDealer;
-import com.iamberry.rst.core.dm.FinancialReceipt;
+import com.iamberry.rst.core.cm.SalesOrder;
+import com.iamberry.rst.core.cm.SalesOrderItem;
+import com.iamberry.rst.core.dm.*;
 import com.iamberry.rst.core.page.PageRequest;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.core.sys.Admin;
-import com.iamberry.rst.faces.dm.ClaimOrderService;
-import com.iamberry.rst.faces.dm.DmDealerService;
-import com.iamberry.rst.faces.dm.FinancialReceiptService;
+import com.iamberry.rst.faces.cm.SalesOrderService;
+import com.iamberry.rst.faces.dm.*;
 import com.iamberry.rst.faces.sys.SysService;
 import com.iamberry.rst.utils.AdminUtils;
 import com.iamberry.rst.utils.StitchAttrUtil;
@@ -43,6 +42,12 @@ public class FinanciaReceController {
     private DmDealerService dmDealerService;
     @Autowired
     private ClaimOrderService claimOrderService;
+    @Autowired
+    private SalesOrderService salesOrderService;
+    @Autowired
+    private DealerChannelService dealerChannelService;
+    @Autowired
+    private DealerProductService dealerProductService;
 
 
     /**
@@ -341,4 +346,63 @@ public class FinanciaReceController {
             return  rj;
         }
     }
+
+    /**
+     * 获取订单集合
+     * @param request
+     * @param salesOrder
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/fr_select_order_desc")
+    public ResponseJson selectOrderDesc(HttpServletRequest request, SalesOrder salesOrder, String ids,Integer frId,Integer dealerId) {
+        if (ids != null && ids.indexOf("_") > -1) {
+            String[] salesIds = ids.split("_");
+            salesOrder.setSalesIds(salesIds);
+        }
+        List<SalesOrder> salesOrderList = salesOrderService.salesOrderListAndItem(salesOrder);
+        DmDealer dmDealer = dmDealerService.getDmDealerById(dealerId);
+
+        // 是否自营 1:自营 2:非自营
+        if(dmDealer.getDealerSelfOperated() == 2){
+            DealerChannel  dealerChannel = new DealerChannel();
+            dealerChannel.setDealerId(dealerId);
+            List<DealerChannel> dealerChannelList = dealerChannelService.getDealerChannelList(dealerChannel);
+
+            DealerProduct dealerProduct = new DealerProduct();
+            dealerProduct.setDealerId(dealerId);
+            List<DealerProduct> dealerProductList = dealerProductService.getDealerProductAndStoreList(dealerProduct);
+
+            for (SalesOrder so : salesOrderList) {
+                for (SalesOrderItem salesOrderItem:so.getSalesOrderItemList()) {
+                    salesOrderItem.setItemTotal(0);
+                    for (DealerProduct dp:dealerProductList) {
+                        if(Objects.equals(salesOrderItem.getItemColorId(), dp.getColorId())){
+                            if(dp.getDealProdStoreArea() == 1){
+                                //店铺范围 1:全部店铺
+                                for (DealerChannel dc:dealerChannelList) {
+                                    if(Objects.equals(dc.getStoreId(), so.getSalesStoreId())){
+                                        salesOrderItem.setItemTotal(salesOrderItem.getItemNum() * dp.getDealProdPrice());
+                                        break;
+                                    }
+                                }
+                            }else if (dp.getDealProdStoreArea() == 2){
+                                //2:部分店铺
+                                for (DealerProductStore dps:dp.getDealerProductStoreList()) {
+                                    if(Objects.equals(so.getSalesStoreId(), dps.getStoreId())){
+                                        salesOrderItem.setItemTotal(salesOrderItem.getItemNum() * dp.getDealProdPrice());
+                                        break;
+                                    }
+                                }
+                            }
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+        ResponseJson rj = new ResponseJson(200, "查询成功", 200);
+        rj.addResponseKeyValue("salesOrderList", salesOrderList);
+        return rj;
+    }
 }

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

@@ -901,6 +901,18 @@ public class AdminSalesOrderController {
         }catch (Exception e){
             e.printStackTrace();
         }
+
+        //判断该订单为什么类型订单
+        Integer orderType = 0;  //0为其他  1为微商城推送订单   2为手动添加  3位导单
+        if(order.getSalesBatchId().indexOf("SD") > -1){      //salesDealCode
+            orderType = 2;
+        }else if(order.getSalesBatchId().indexOf("SC") > -1){
+            orderType = 3;
+        }else if (order.getSalesBatchId().indexOf("SW") > -1){
+            orderType = 3;
+        }
+
+        mv.addObject("orderType",orderType);
         mv.addObject("order",order);
         mv.addObject("admin", AdminUtils.getLoginAdmin());
         mv.addObject("orderBatchs", orderBatchService.getOrderBatchListTwenty());

+ 18 - 12
watero-rst-web/src/main/java/com/iamberry/rst/utils/ExcelUtil.java

@@ -533,6 +533,7 @@ public class ExcelUtil {
                 }
                 order.setOrderAddressTel(userTel.trim());
 
+                Integer orderNumByInt = 1;    //数量
                 order.setOrderProductBarCode(OrderProductBarCodeValue);
                 String orderNum = getValue(temp.getCell(numColumnIndex)).trim();
                 String orderRemark = getValue(temp.getCell(remarkColumnIndex));
@@ -547,6 +548,7 @@ public class ExcelUtil {
                 }else{
                     // 读取购买数量
                     order.setOrderNum(Integer.valueOf(orderNum));
+                    orderNumByInt = Integer.valueOf(orderNum);
                 }
                 order.setOrderRemark(orderRemark);
 
@@ -563,9 +565,13 @@ public class ExcelUtil {
                 }else{
                     // 读取购买数量
                     Double colorDiscountDou = Double.valueOf(colorDiscount);
-                    colorDiscountDou = colorDiscountDou*100;
+                    colorDiscountDou = colorDiscountDou*100/orderNumByInt;
                     order.setOrderProductDiscount(colorDiscountDou.intValue());
                     order.setOrderProductPrice(colorDiscountDou.intValue());
+
+                    Double orderTotal = Double.valueOf(colorDiscount);
+                    orderTotal = orderTotal*100;
+                    order.setOrderTotal(orderTotal.intValue());
                 }
 
                 try{
@@ -578,17 +584,17 @@ public class ExcelUtil {
                             cell.setCellStyle(cellStyle);
                             continue;
                         }
-                            // 处理地址信息
-                            String[] addrs = splitAddress(addrInfo);
-                            if (addrs == null && addrs.length < 4) {
-                                // 地址不合法
-                                cell.setCellStyle(cellStyle);
-                                continue;
-                            }
-                            order.setOrderProvince(addrs[0].trim());
-                            order.setOrderCity(addrs[1].trim());
-                            order.setOrderArea(addrs[2].trim());
-                            order.setOrderAddress(addrInfo.trim());
+                        // 处理地址信息
+                        String[] addrs = splitAddress(addrInfo);
+                        if (addrs == null && addrs.length < 4) {
+                            // 地址不合法
+                            cell.setCellStyle(cellStyle);
+                            continue;
+                        }
+                        order.setOrderProvince(addrs[0].trim());
+                        order.setOrderCity(addrs[1].trim());
+                        order.setOrderArea(addrs[2].trim());
+                        order.setOrderAddress(addrInfo.trim());
 
                     } else if (infoColumnIndex.length == 4) {
                         order.setOrderProvince(getValue(temp.getCell(infoColumnIndex[0])).trim());

+ 1 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/dm/dealer/update_dealer.ftl

@@ -244,7 +244,7 @@
                                         <td class="productName">${dealerProduct.productName!''}</td>
                                         <td class="colorName">${dealerProduct.colorName!''}</td>
                                         <td>
-                                            <input type="text" style="text-align: center;" class="input-text input-number dealProdPrice" value="${dealerProduct.dealProdPrice!''}"   onkeyup="keyFun($(this),99999,0)" onpaste="keyFun($(this),99999,0)">
+                                            <input type="text" style="text-align: center;" class="input-text input-number decimal_input dealProdPrice" value="${((dealerProduct.dealProdPrice/100)?string("0.##"))!''}"   onkeyup="keyFunDecimal($(this),9999999,0)" myMinVal="0" myMaxVal="9999999">
                                         </td>
                                         <#if dealerProduct.dealProdStoreArea == 1>
                                             <td class="dealerProductStoreName">全部店铺</td>

+ 30 - 20
watero-rst-web/src/main/webapp/WEB-INF/views/dm/financialReceipt/order_desc.ftl

@@ -54,6 +54,7 @@
         <form action="${path}/admin/financial_receipt/claim_order" method="post" class="form form-horizontal" id="form-fr"  onkeydown="if(event.keyCode==13)return false;">
 
             <input type="hidden" id="frId" name="frId" value="${fr.frId!'0'}">
+            <input type="hidden" id="dealerId" name="dealerId" value="${fr.dealerId!'0'}">
             <input type="hidden" id="claimOrderJson" name="claimOrderJson" value="">
 
             <div class="row cl">
@@ -117,7 +118,7 @@
                             <th>所属店铺</th>
                             <th>产品</th>
                             <th>颜色</th>
-                            <th>售价</th>
+                            <th>总金额</th>
                             <th>数量</th>
                             <th>下单日期</th>
                             <th>下单客服</th>
@@ -133,12 +134,12 @@
                                         <tr class="text-c order_item itemNum_${claimOrder_index}" orderItem="1">
                                             <input type="hidden" class="itemId" value="${claimOrder.itemId}">
                                             <input type="hidden" class="itemProductDiscount" value="${((claimOrder.itemProductDiscount/100)?string("0.##"))!''}">
-                                            <td class="itemTotal">${((claimOrder.claimOrderNum) * (claimOrder.itemProductDiscount/100))!'0'}</td>
+                                            <td class="itemTotal">${((claimOrder.claimOrderNum) * (claimOrder.frPrice/100))!'0'}</td>
                                             <td>${claimOrder.salesDealCode!''}</td>
                                             <td>${claimOrder.storeName!''}</td>
                                             <td>${claimOrder.itemProductName!''}</td>
                                             <td>${claimOrder.itemProductColor!''}</td>
-                                            <td>${claimOrder.itemProductDiscount/100}</td>
+                                            <td>${((claimOrder.frPrice/100)?string("0.##"))!''}</td>
                                             <td class="itemNum">${claimOrder.claimOrderNum!'0'}</td>
                                             <td>${(claimOrder.salesPayTime?string("yyyy-MM-dd"))!''}</td>
                                             <td>${claimOrder.salesAdminName!''}</td>
@@ -169,7 +170,7 @@
                                 <th>所属店铺</th>
                                 <th>产品</th>
                                 <th>颜色</th>
-                                <th>售价</th>
+                                <th>总金额</th>
                                 <th>产品数量</th>
                                 <th>退货数量</th>
                                 <th>下单日期</th>
@@ -186,12 +187,12 @@
                                         <tr class="text-c order_item itemNum_${claimOrder_index}"  orderItem="2">
                                             <input type="hidden" class="itemId" value="${claimOrder.itemId}">
                                             <input type="hidden" class="itemProductDiscount" value="${((claimOrder.itemProductDiscount/100)?string("0.##"))!''}">
-                                            <td class="itemTotal">-${(claimOrder.itemProductDiscount/100)*claimOrder.claimOrderNum}</td>
+                                            <td class="itemTotal">${((claimOrder.frPrice/100)?string("0.##"))!''}</td>
                                             <td>${claimOrder.salesDealCode!''}</td>
                                             <td>${claimOrder.storeName!''}</td>
                                             <td>${claimOrder.itemProductName!''}</td>
                                             <td>${claimOrder.itemProductColor!''}</td>
-                                            <td>${claimOrder.itemProductDiscount/100}</td>
+                                            <td>${((claimOrder.frPrice/100)?string("0.##"))!''}</td>
                                             <td class="itemNum">${claimOrder.itemNum!'0'}</td>
                                             <td style="width: 70px;"><input type="text" style="text-align: center;" class="input-text input-number decimal_input itemReturnNum" value="${claimOrder.claimOrderNum}"    onkeyup="keyFun($(this),${claimOrder.itemNum!'999'},0)" onpaste="keyFun($(this),${claimOrder.itemNum!'999'},0)" ></td>
                                             <td>${(claimOrder.salesPayTime?string("yyyy-MM-dd"))!''}</td>
@@ -254,6 +255,7 @@
                 $item.find(".itemTotal").css("color","#000");
                 $item.find(".itemTotal").text(0);
             }
+            //计算总金额
             calculaAllAmount();
         })
     })
@@ -276,12 +278,17 @@
             return false
         }
 
+        var frId = $("#frId").val();
+        var dealerId = $("#dealerId").val();
+
         $.ajax({
             type: "POST",
             data: {
-                ids : orderIds
+                ids : orderIds,
+                frId : frId,
+                dealerId : dealerId
             },
-            url: url_path + "/admin/salesOrder/select_order_desc",
+            url: url_path + "/admin/financial_receipt/fr_select_order_desc",
             async: true,
             success: function(data){
                 if (data.returnCode == 200) {
@@ -294,18 +301,17 @@
                             itemNum ++;
                             var salesOrderItem = salesOrder.salesOrderItemList[j];
                             if(isAddOrderType == 1){
-                                var itemTotal = 0;
-                                itemTotal += accMul((salesOrderItem.itemNum),accDiv(salesOrderItem.itemProductDiscount,100));
+                                var itemTotal = accDiv(salesOrderItem.itemTotal,100);
                                 var html = '';
                                 html = '<tr class="text-c order_item itemNum_'+ itemNum +'" orderItem="1">' +
                                         '<input type="hidden" class="itemId" value="'+  salesOrderItem.itemId +'">' +
-                                        '<input type="hidden" class="itemProductDiscount" value="'+  accDiv(salesOrderItem.itemProductDiscount,100) +'">' +
+                                        '<input type="hidden" class="itemProductDiscount" value="'+  accDiv(itemTotal,salesOrderItem.itemNum) +'">' +
                                         ' <td class="itemTotal">'+ itemTotal +'</td>' +
                                         ' <td>'+ salesOrder.salesDealCode +'</td>' +
                                         ' <td>'+ salesOrder.storeName +'</td>' +
                                         ' <td>'+ salesOrderItem.itemProductName +'</td>' +
                                         ' <td>'+ salesOrderItem.itemProductColor +'</td>' +
-                                        ' <td>'+ accDiv(salesOrderItem.itemProductDiscount,100) +'</td>' +
+                                        ' <td>'+ itemTotal +'</td>' +
                                         ' <td class="itemNum">'+ salesOrderItem.itemNum +'</td>' +
                                         ' <td>'+ time +'</td>' +
                                         ' <td>'+ salesOrder.salesAdminName +'</td>' +
@@ -315,18 +321,18 @@
                                         '</tr>';
                                 $("#orderAll").append(html);
                             }else{
-                                var itemTotal = 0;
-                                itemTotal += accMul(-salesOrderItem.itemReturnNum,accDiv(salesOrderItem.itemProductDiscount,100));
+                                var itemTotal = accDiv(salesOrderItem.itemTotal,100);
+                                var dis = accDiv(itemTotal,salesOrderItem.itemNum);
                                 var html = '';
                                 html = '<tr class="text-c order_item itemNum_'+ itemNum +'"  orderItem="2">' +
                                         '<input type="hidden" class="itemId" value="'+  salesOrderItem.itemId +'">' +
-                                        '<input type="hidden" class="itemProductDiscount" value="'+accDiv(salesOrderItem.itemProductDiscount,100) +'">' +
-                                        ' <td class="itemTotal">'+ itemTotal +'</td>' +
+                                        '<input type="hidden" class="itemProductDiscount" value="'+dis +'">' +
+                                        ' <td class="itemTotal">'+ accMul(dis,salesOrderItem.itemReturnNum) +'</td>' +
                                         ' <td>'+ salesOrder.salesDealCode +'</td>' +
                                         ' <td>'+ salesOrder.storeName +'</td>' +
                                         ' <td>'+ salesOrderItem.itemProductName +'</td>' +
                                         ' <td>'+ salesOrderItem.itemProductColor +'</td>' +
-                                        ' <td>'+ accDiv(salesOrderItem.itemProductDiscount,100) +'</td>' +
+                                        ' <td>'+ itemTotal +'</td>' +
                                         '<td class="itemNum">'+ salesOrderItem.itemNum +'</td>' +
                                         ' <td style="width: 70px;"><input type="text" style="text-align: center;" class="input-text input-number decimal_input itemReturnNum" value="'+ salesOrderItem.itemReturnNum +'"    onkeyup="keyFun($(this),'+salesOrderItem.itemNum +',0)" onpaste="keyFun($(this),'+salesOrderItem.itemNum +',0)" ></td>' +
                                         ' <td>'+ time +'</td>' +
@@ -374,12 +380,13 @@
         var allReturnProduct = 0;
         $(".order_item").each(function () {
             var itemTotal = $(this).find(".itemTotal").text();
-            total = accAdd(total,itemTotal);
-
+            itemTotal = Number(itemTotal);
             if($(this).attr("orderItem") == 1){
+                total = accAdd(total,itemTotal);
                 var itemNum = $(this).find(".itemNum").text();
-                allNormalProduct = accAdd(allNormalProduct,itemNum)
+                allNormalProduct = accAdd(allNormalProduct,itemNum);
             }else{
+                total = accAdd(total,itemTotal);
                 var itemReturnNum = $(this).find(".itemReturnNum").val();
                 allReturnProduct = accAdd(allReturnProduct,itemReturnNum);
             }
@@ -427,6 +434,9 @@
                         claimOrder.claimOrderType = 2;
                         claimOrder.claimOrderNum = $(this).find(".itemReturnNum").val();
                     }
+
+                    var  frPrice =  $(this).find(".itemTotal").text();
+                    claimOrder.frPrice =  accMul(frPrice,100);
                     if(claimOrder.claimOrderNum > 0){
                         claimOrderAyyar.push(claimOrder);
                     }

+ 44 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/order/excel_to_order_new.ftl

@@ -140,9 +140,23 @@
                 </td>
             </tr>
             <tr class="text-c">
-                <td width="55">购买产品售价</td>
-                <td style="text-align: left;">
-                    <select class="my-select"  name="product-shop-discount" id="product-shop-discount" matchSelect="售价|单价|折扣价|价格|产品价格|下单价格" style="height: 30px;width: 180px;margin: 0px;">
+                <td width="55">产品总额</td>
+                <td style="text-align: left;" id="self_operated_id">
+                    <div style="width: 100%;height: 30px;">
+                        <div class="formControls skin-minimal self_operated_div"  style="float: left;">
+                            <div class="radio-box">
+                                <input type="radio" id="self_operated_1" name="self_operated" value="1" checked >
+                                <label for="self_operated_1" style="height: 30px; line-height: 30px;">自营店铺</label>
+                            </div>
+                            <div class="radio-box">
+                                <input type="radio" id="self_operated_2" name="self_operated" value="2" >
+                                <label for="self_operated_2" style="height: 30px; line-height: 30px;">非自营</label>
+                            </div>
+                        </div>
+                        <div style="float: left;line-height: 30px;color: red;">*自营店铺导单需要导入产品总额,自营店铺指淘宝,天猫,京东</div>
+                    </div>
+
+                    <select class="my-select"  name="product-shop-discount" id="product-shop-discount" matchSelect="售价|单价|折扣价|价格|产品价格|下单价格|商品金额合计" style="height: 30px;width: 180px;margin: 0px;">
                         <#list heads as head>
                             <option value="${head}" >${head}</option>
                         </#list>
@@ -313,6 +327,17 @@
             }
         });
 
+        /*监听城市*/
+        $("[name='self_operated']").on('ifChecked', function(event){
+            if($(this).val() == 1){
+                $("#product-shop-discount").show();
+            }else{
+                $("#product-shop-discount").hide();
+            }
+        });
+
+
+
         /*监听仓库信息*/
         $("[name='store']").on('ifChecked', function(event){
             if($(this).val() == 1){ //无店铺信息
@@ -562,6 +587,11 @@
             layer.msg('订单编号与产品数量列重复!',{icon: 5,time:3000});
             return false;
         }
+        if(platformOrdersName == discountArray[0] ){
+            layer.close(index);
+            layer.msg('订单编号与产品总金额列重复!',{icon: 5,time:3000});
+            return false;
+        }
         for(var k =0;k<infoArray.length;k++){
             if(infoArray[k] == platformOrdersName){
                 layer.close(index);
@@ -582,6 +612,17 @@
             storeArray.push(shopId);
         }
 
+        for(var k=0;k<storeArray.length;k++){
+            if(storeArray[k] == 3 || storeArray[k] == 40 || storeArray[k] == 86){
+                var  self_operated = $("[name='self_operated']:checked").val();
+                if(self_operated == 2){
+                    layer.close(index);
+                    vailErrorMsg($("#self_operated_id"),"选择的店铺需要选择订单总额!",3500);
+                    return false;
+                }
+            }
+        }
+
         /*Excel中的店铺名称*/
         var orderStoreInfoSt = $("#order_store_info").val();
 

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

@@ -208,16 +208,18 @@
 
             <div class="row cl" id="" style="">
                 <label class="form-label col-1 col-sm-1">产品信息:</label>
-                <div class="formControls col-8 col-sm-8">
+                <div class="formControls col-10 col-sm-10">
                     <input type="button" style="color: #32a3d8;border: 1px solid #32a3d8;" class="btn add-order-button" onclick="add_product()" value="添加产品" >
-                    <table class="table table-border table-bg table-bordered" style="margin-top: 10px;display: none" id="all_add_product">
+                    <table class="table table-border table-bordered table-bg table-hover table-sort" style="margin-top: 10px;display: none" id="all_add_product">
                         <thead>
                             <tr class="text-c" id="table1">
-                                <th style="text-align: center;" width="30" >产品名称</th>
+                                <th style="text-align: center;" width="40" >产品名称</th>
                                 <th style="text-align: center;" width="25" >产品颜色</th>
+                                <th style="text-align: center;" width="10">原价</th>
                                 <th style="text-align: center;" width="10">售价</th>
-                                <th style="text-align: center;" width="10">产品编码</th>
+                                <th style="text-align: center;" width="25">产品编码</th>
                                 <th style="text-align: center;" width="10">数量</th>
+                                <th style="text-align: center;" width="10">小结</th>
                                 <th style="text-align: center;" width="10">操作</th>
                             </tr>
                         </thead>

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

@@ -104,7 +104,7 @@
 
             <div class="row cl" id="salesCustomer" style="<#if admin.adminDept != 3 && admin.adminDept != 1><#if !order.salesCustomerId?? >display: none;</#if></#if>">
                 <label class="form-label col-1 col-sm-1"></label>
-                <div class="formControls col-2 col-sm-2" style="color: #c00;">
+                <div class="formControls col-2 col-sm-2" style="color: red;">
                     <span id="salesCustomerIdHtml">已经选择客诉记录:${order.salesCustomerId!''}</span>
                     <input type="hidden" id="salesCustomerId" name="salesCustomerId" value="${order.salesCustomerId!''}">
                 </div>
@@ -209,7 +209,6 @@
                 </div>
             </div>
 
-
             <div class="row cl">
                 <label class="form-label col-3">
                     <div class="tit-2">商品信息</div>
@@ -220,17 +219,19 @@
 
             <div class="row cl" id="" style="">
                 <label class="form-label col-1 col-sm-1">商品信息:</label>
-                <div class="formControls col-8 col-sm-8">
+                <div class="formControls col-10 col-sm-10">
                     <input type="button" class="btn btn-primary add-order-button" onclick="add_product()" value="添加商品" >
 
-                    <table class="table table-border table-bg table-bordered" style="margin-top: 10px;" id="all_add_product">
+                    <table class="table table-border table-bordered table-bg table-hover table-sort" style="margin-top: 10px;" id="all_add_product">
                         <thead>
                             <tr class="text-c" id="table1">
-                                <th style="text-align: center;" width="30" >产品名称</th>
+                                <th style="text-align: center;" width="40" >产品名称</th>
                                 <th style="text-align: center;" width="25" >产品颜色</th>
+                                <th style="text-align: center;" width="10">原价</th>
                                 <th style="text-align: center;" width="10">售价</th>
-                                <th style="text-align: center;" width="10">产品编码</th>
+                                <th style="text-align: center;" width="25">产品编码</th>
                                 <th style="text-align: center;" width="10">数量</th>
+                                <th style="text-align: center;" width="10">小结</th>
                                 <th style="text-align: center;" width="10">操作</th>
                             </tr>
                         </thead>
@@ -238,15 +239,15 @@
                             <#list order.salesOrderItemList as item>
                                 <tr class="text-c">
                                     <input type="hidden" class="color_id" id="" value="${item.itemColorId}">
-                                    <input type="hidden" class="color_price" id="" value="${((item.itemProductPrice/100)?string("0.##"))!''}">
                                     <td>${item.itemProductName}</td>
                                     <td>${item.itemProductColor}</td>
-                                    <td><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" 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>${item.itemColorBar}</td>
-                                    <td>
+                                    <td style="width: 30px;">
                                         <input type="text"
                                                class="input-text input-number item-num"
-                                               style="text-align: center"
+                                               style="text-align: center;"
                                                name=""
                                                id=""
                                                value="${item.itemNum}"
@@ -254,12 +255,26 @@
                                                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"
+                                               style="text-align: center;" value="${((item.itemTotal/100)?string("0.##"))!''}"
+                                               name="" id="" placeholder="售价" onkeyup="keyFun($(this),999999,1)" onpaste="keyFun($(this),999999,1)"
+                                                <#if orderType==1 || orderType==3 >
+                                                    readonly="readonly"   isUpdate="2"
+                                                <#else>
+                                                    isUpdate="1"
+                                                </#if>
+                                        >
+                                    </td>
                                     <td><a href="javascript:void(0)" class="del_product all_down" onclick="delProduct($(this))">删除</a></td>
                                 </tr>
                             </#list>
-
                         </tbody>
                     </table>
+                    <#if orderType==1 || orderType==3>
+                        <div style="color: red">*微商城推送的订单与上传的订单无法修改小结金额</div>
+                    </#if>
                     <input type="hidden" id="orderItemString" name="orderItemString" value="" >
                 </div>
             </div>
@@ -269,14 +284,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!'0'}" placeholder="总金额" datatype="*" errormsg="必须要输入总金额!" id="salesAmount" name="salesAmount"  >
+                    <input type="text" class="input-text" value="${((order.salesAmount/100)?string("0.##"))!''}" placeholder="总金额" datatype="*" errormsg="必须要输入总金额!" id="salesAmount" name="salesAmount"  >
                 </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!'0'}" placeholder="实付金额" datatype="*" errormsg="必须要输入总金额!" id="salesPayMoney" name="salesPayMoney"  >
+                    <input type="text" class="input-text" value="${((order.salesPayMoney/100)?string("0.##"))!''}" placeholder="实付金额" datatype="*" errormsg="必须要输入总金额!" id="salesPayMoney" name="salesPayMoney"  >
                 </div>
                 <div class="formControls col-2 col-sm-2" style="display: none">
-                    <input type="text" class="input-text" value="${order.salesDiscountMoney/100!'0'}" placeholder="优惠金额" datatype="*" errormsg="必须要输入总金额!" id="salesDiscountMoney" name="salesDiscountMoney"  >
+                    <input type="text" class="input-text" value="${((order.salesDiscountMoney/100)?string("0.##"))!''}" placeholder="优惠金额" datatype="*" errormsg="必须要输入总金额!" id="salesDiscountMoney" name="salesDiscountMoney"  >
                 </div>
 
                 <div class="formControls col-2 col-sm-2" >
@@ -284,9 +299,9 @@
                 </div>
             </div>
 
-            <input type="hidden" class="input-text" value="${order.salesWaitMoney/100!'0'}" placeholder="待付金额" id="salesWaitMoney" name="salesWaitMoney"  >
-            <input type="hidden" class="input-text" value="${order.salesLastMoney/100!'0'}" placeholder="本次支付金额" id="salesLastMoney" name="salesLastMoney"  >
-            <input type="hidden" class="input-text" value="${order.salesShippingFee/100!'0'}" placeholder="邮费" id="salesShippingFee" name="salesShippingFee"  >
+            <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"  >
 
             <div class="row cl">
                 <label class="form-label col-3">

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/product/update_product.ftl

@@ -181,8 +181,8 @@
                                         <input type="hidden" class="isUpdate" value="2">
                                         <td width="30" class="colorName">${productColor.colorName!''}</td>
                                         <td width="30" class="colorAbbreviation">${productColor.colorAbbreviation!''}</td>
-                                        <td width="10" class="colorDiscount">${productColor.colorDiscount!''}</td>
-                                        <td width="10" class="colorPrice">${productColor.colorPrice!''}</td>
+                                        <td width="10" class="colorDiscount">${((productColor.colorDiscount/100)?string("0.##"))!''}</td>
+                                        <td width="10" class="colorPrice">${((productColor.colorPrice/100)?string("0.##"))!''}</td>
                                         <td width="30" class="colorBar">${productColor.colorBar!''}</td>
                                         <td width="30" class="colorJdProductId">${productColor.colorJdProductId!''}</td>
                                         <td width="10" class="colorIsWeight">${productColor.colorIsWeight!''}</td>

+ 2 - 1
watero-rst-web/src/main/webapp/common/js/dealer/dealer.js

@@ -375,7 +375,8 @@ $(function(){
                 var productColor = new Object();
                 productColor.colorId = $productColor.find(".colorId").val();
                 productColor.dealProdStoreArea = $productColor.find(".dealProdStoreArea").val();
-                productColor.dealProdPrice = $productColor.find(".dealProdPrice").val();
+                var dealProdPrice =  $productColor.find(".dealProdPrice").val();
+                productColor.dealProdPrice = accMul(dealProdPrice,100);
                 productColor.dealerProductStoreIds = $productColor.find(".dealerProductStoreIds").val();
                 productColorArray.push(productColor);
             });

+ 4 - 2
watero-rst-web/src/main/webapp/common/js/product/product.js

@@ -288,8 +288,10 @@ function getColorList(){
         }
         color.colorName = $(this).find(".colorName").html();
         color.colorAbbreviation = cufte($(this).find(".colorAbbreviation").html());
-        color.colorDiscount = cufte($(this).find(".colorDiscount").html());
-        color.colorPrice = cufte($(this).find(".colorPrice").html());
+        var colorDiscount = cufte($(this).find(".colorDiscount").html());
+        var colorPrice = cufte($(this).find(".colorPrice").html());
+        color.colorDiscount = accMul(colorDiscount,100);
+        color.colorPrice = accMul(colorPrice,100);
         color.colorBar = cufte($(this).find(".colorBar").html());
         color.colorJdProductId = cufte($(this).find(".colorJdProductId").html());
         color.colorIsWeight = cufte($(this).find(".colorIsWeight").html());

+ 24 - 13
watero-rst-web/src/main/webapp/common/js/salesOrder/salesOrder.js

@@ -70,7 +70,7 @@ $(function(){
             var addressCity = $("#addressCity").find("option:selected").text();
             var addressCountry = $("#addressCountry").find("option:selected").text();
             var addressDesc = $("#addressDesc").val();
-            var salesAddressInfo = addressProvince + " " + addressCity + " " + addressCountry + " " + addressDesc
+            var salesAddressInfo = addressProvince + " " + addressCity + " " + addressCountry + " " + addressDesc;
             $("#salesAddressInfo").val(salesAddressInfo);
 
             var flag = false;
@@ -82,6 +82,7 @@ $(function(){
                 orderItem.itemNum = $(this).find(".item-num").val();
                 orderItem.itemProductPrice = accMul($(this).find(".color_price").val(),100);
                 orderItem.itemProductDiscount = accMul($(this).find(".color_discount").val(),100);
+                orderItem.itemTotal = accMul($(this).find(".item_total").val(),100);
                 orderItemArray.push(orderItem);
                 flag = true;
             });
@@ -248,14 +249,16 @@ function setSelectProduct(colorIds){
                 if (data.returnCode == 200 && data.returnMsg.productColorList.length > 0 ) {
                     for(var i=0;i<data.returnMsg.productColorList.length;i++){
                         var productColor = data.returnMsg.productColorList[i];
+                        var discount = accDiv(productColor.colorDiscount,100);
                         html += '<tr class="text-c">' +
                             '<input type="hidden" class="color_id" id="" value="'+ productColor.colorId +'" >' +
-                            '<input type="hidden" class="color_price" id="" value="'+ accDiv(productColor.colorPrice,100) +'" >' +
                             ' <td>'+ cufte(productColor.productName) +'</td>' +
                             ' <td>'+ cufte(productColor.colorName) +'</td>' +
-                            ' <td><input type="text" class="input-text input-number color_discount" 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_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>'+ cufte(productColor.colorBar) +'</td>' +
-                            ' <td><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: 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><a href="javascript:void(0)" class="del_product all_down" onclick="delProduct($(this))" >删除</a></td>' +
                             ' </tr>';
                     }
@@ -284,7 +287,7 @@ function delProduct($this){
  */
 function calculatePrice(){
     /*总价,折扣价,优惠金额*/
-    var colorDiscountAll = 0,colorPriceAll = 0,salesPayMoneyAll=0;
+    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());
@@ -294,17 +297,25 @@ function calculatePrice(){
             return;
         }
         itemNum = parseInt(itemNum);
-        salesPayMoney = colorPrice -colorDiscount;
-        if(salesPayMoney < 0){
-            salesPayMoney = 0;
+        // salesPayMoney = colorPrice -colorDiscount;
+        // if(salesPayMoney < 0){
+        //     salesPayMoney = 0;
+        // }
+
+        var total = accMul(colorDiscount,itemNum);
+        var isUpdate = $(this).find(".item_total").attr("isUpdate");
+        if(isUpdate == "1"){
+            $(this).find(".item_total").val(total);
+        }else{
+            total = $(this).find(".item_total").val();
+            total = Number(total);
         }
-        colorDiscountAll += colorDiscount*itemNum;
-        colorPriceAll += colorPrice*itemNum;
-        salesPayMoneyAll += salesPayMoney*itemNum;
-    })
+        colorDiscountAll += total;
+        colorPriceAll += accMul(colorPrice,itemNum);
+    });
     $("#salesAmount").val(colorPriceAll);
     $("#salesPayMoney").val(colorDiscountAll);
-    $("#salesDiscountMoney").val(salesPayMoneyAll);
+    $("#salesDiscountMoney").val(accSub(colorPriceAll,colorDiscountAll));
     $("#salesLastMoney").val(colorDiscountAll);
 }