Przeglądaj źródła

订单导单,能够按照客户系统的产品供应价格的比例来拆开价格

wangxiaoming 5 lat temu
rodzic
commit
c7dce7572d

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

@@ -36,6 +36,8 @@ public class DealerProduct  implements  Serializable{
     private String dealProdIdStr;
     //颜色sku
     private String colorBar;
+    //颜色sku
+    private Integer dealChannelId;
 
     //客户产品关联渠道
     private String dealerProductStoreIds;
@@ -155,4 +157,12 @@ public class DealerProduct  implements  Serializable{
     public void setColorBar(String colorBar) {
         this.colorBar = colorBar;
     }
+
+    public Integer getDealChannelId() {
+        return dealChannelId;
+    }
+
+    public void setDealChannelId(Integer dealChannelId) {
+        this.dealChannelId = dealChannelId;
+    }
 }

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

@@ -23,6 +23,12 @@ public interface DealerProductService {
      */
     List<DealerProduct> getDealerProductAndStoreList(DealerProduct  dealerProduct);
     /**
+     * 只查询该客户下面某个渠道的所有产品
+     * @param  dealerProduct
+     * @return List
+     */
+    List<DealerProduct> getProductByChannelList(DealerProduct  dealerProduct);
+    /**
      * 查询单条数据
      * @param  id
      * @return  dealerProduct

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

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

+ 2 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/dm/DmDealerServiceImpl.java

@@ -261,8 +261,9 @@ public class DmDealerServiceImpl  implements DmDealerService {
             List<DealerProduct> dealerProductList = dealerProductMapper.getDealerProductList(dp);
             for (DealerProduct dp1:dmDealer.getDealerProductList()) {
                 for (DealerProduct dp2:dealerProductList) {
-                    if(Objects.equals(dp1.getColorId(), dp2.getColorId())){
+                    if(Objects.equals(dp1.getDealProdIdStr(), dp2.getDealProdIdStr())){
                         dp1.setDealProdId(dp2.getDealProdId());
+                        dp1.setDealProdIdStr(String.valueOf(dp2.getDealProdId()));
                     }
                 }
             }

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

@@ -24,6 +24,9 @@ public interface DealerProductMapper {
      */
     List<DealerProduct> getDealerProductAndStoreList(DealerProduct  dealerProduct);
 
+    // 只查询该客户下面某个渠道的所有产品
+    List<DealerProduct> getProductByChannelList(DealerProduct  dealerProduct);
+
     /**
      * 查询单条数据
      * @param  id

+ 7 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/dm/mapper/dealerChannelMapper.xml

@@ -18,6 +18,7 @@
         t.deal_channel_account_period,
         t.create_date
     </sql>
+
     <select id="getDealerChannelList" resultMap="BaseResultMap" parameterType="DealerChannel" >
         select
         <include refid="Base_List" />,
@@ -28,7 +29,8 @@
         dd.dealer_self_operated
         from tb_rst_dm_dealer_channel t
         LEFT JOIN tb_rst_dm_dealer dd ON  t.dealer_id = dd.dealer_id
-        LEFT JOIN tb_rst_store_info si ON  t.store_id = si.store_id
+        LEFT JOIN tb_rst_dm_dealer_channel_store dcs ON t.deal_channel_id = dcs.deal_channel_id
+        LEFT JOIN tb_rst_store_info si ON  dcs.store_id = si.store_id
         LEFT JOIN tb_rst_dm_channel dc ON  t.channel_id = dc.channel_id
         LEFT JOIN tb_rst_dm_channel_type dct ON  dc.channel_type_id = dct.channel_type_id
         <where>
@@ -42,10 +44,13 @@
                 AND t.channel_id = #{channelId}
             </if >
             <if test="storeId != null ">
-                AND t.store_id = #{storeId}
+                AND dcs.store_id = #{storeId}
             </if >
         </where>
+        GROUP BY
+            t.deal_channel_id
     </select>
+
     <select id="getDealerChannelById" resultMap="BaseResultMap" parameterType="Integer" >
         select
         <include refid="Base_List" />

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

@@ -15,6 +15,7 @@
         t.color_id,
         t.deal_prod_price,
         t.deal_prod_store_area,
+        t.deal_prod_id_str,
         t.create_date
     </sql>
     <select id="getDealerProductList" resultMap="BaseResultMap" parameterType="DealerProduct" >
@@ -47,14 +48,16 @@
 
     <resultMap  id="DealerProductMap" type="DealerProduct" >
         <result    column="deal_prod_id"    property="dealProdId" />
-        <collection property="dealerProductStoreList" column="dealProdId" ofType="DealerProductStore" select="getDealerProductStoreList"/>
+        <collection property="dealerProductStoreList" column="dealProdId" ofType="DealerProductStore" select="getDealerProductStoreList" javaType="ArrayList" />
     </resultMap>
+
     <select id="getDealerProductAndStoreList" resultMap="DealerProductMap" parameterType="DealerProduct" >
         select
         <include refid="Base_List" />,
         pc.color_bar
         from tb_rst_dm_dealer_product t
         LEFT JOIN tb_rst_product_color pc ON t.color_id = pc.color_id
+        LEFT JOIN tb_rst_dm_dealer_product_store dps ON t.deal_prod_id = dps.deal_prod_id
         <where>
             <if test="dealProdId != null ">
                 AND t.deal_prod_id = #{dealProdId}
@@ -77,8 +80,30 @@
             <if test="colorBar != null and colorBar != ''">
                 AND pc.color_bar  = #{colorBar}
             </if >
+            <if test="dealChannelId != null">
+                AND dps.deal_channel_id  = #{dealChannelId}
+            </if >
         </where>
     </select>
+
+
+    <resultMap  id="DealerProductNewMap" type="DealerProduct" >
+        <result    column="deal_prod_id"    property="dealProdId" />
+        <collection property="dealerProductStoreList" column="deal_prod_id" ofType="DealerProductStore" select="getDealerProductStoreList" javaType="ArrayList" />
+    </resultMap>
+    <select id="getProductByChannelList" resultMap="DealerProductNewMap" parameterType="DealerProduct" >
+        select
+        <include refid="Base_List" />,
+        pc.color_bar
+        from tb_rst_dm_dealer_product t
+        LEFT JOIN tb_rst_product_color pc ON t.color_id = pc.color_id
+        LEFT JOIN tb_rst_dm_dealer_product_store dps ON t.deal_prod_id = dps.deal_prod_id
+        WHERE
+              t.dealer_id = #{dealerId}
+        AND (t.deal_prod_store_area = 1 OR dps.deal_channel_id = #{dealChannelId})
+        GROUP BY 	t.deal_prod_id
+    </select>
+
     <select id="getDealerProductStoreList" resultType="DealerProductStore" parameterType="DealerProductStore" >
         select
           t.*
@@ -98,6 +123,7 @@
                 dealer_id,
                 color_id,
                 deal_prod_price,
+                deal_prod_id_str,
                 deal_prod_store_area
             )
         values
@@ -106,6 +132,7 @@
                 #{node.dealerId},
                 #{node.colorId},
                 #{node.dealProdPrice},
+                #{node.dealProdIdStr},
                 #{node.dealProdStoreArea}
             )
         </foreach >

+ 131 - 17
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderController.java

@@ -5,6 +5,8 @@ import com.iamberry.rst.core.address.District;
 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.DealerChannel;
+import com.iamberry.rst.core.dm.DealerProduct;
 import com.iamberry.rst.core.order.*;
 import com.iamberry.rst.core.page.PageRequest;
 import com.iamberry.rst.core.page.PagedResult;
@@ -18,6 +20,8 @@ import com.iamberry.rst.core.tools.LogisticsInfo;
 import com.iamberry.rst.faces.address.AddressService;
 import com.iamberry.rst.faces.cm.SalesOrderService;
 import com.iamberry.rst.faces.cm.StoreInfoService;
+import com.iamberry.rst.faces.dm.DealerChannelService;
+import com.iamberry.rst.faces.dm.DealerProductService;
 import com.iamberry.rst.faces.order.EfastOrderService;
 import com.iamberry.rst.faces.order.LogisticsInfoService;
 import com.iamberry.rst.faces.order.OrderBatchService;
@@ -93,14 +97,17 @@ public class AdminOrderController {
     private OrderBatchService orderBatchService;
     @Autowired
     private LogisticsInfoService logisticsInfoService;
-
+    @Autowired
+    private DealerChannelService dealerChannelService;
     @Autowired
     private ExcelUtil excelUtil;
     @Autowired
     private GenerateKeyUtil generateKeyUtil;
-
     @Autowired
     private AddressService addressService;
+    @Autowired
+    private DealerProductService dealerProductService;
+
     /**
      * 进入更换滤芯页面
      *
@@ -1045,17 +1052,113 @@ public class AdminOrderController {
              salesOrders.setSalesBatchId(batchId);
              //增加订单方式 1:手动增加 2:Excel导入
 
-             //计算订单总金额
-             Integer itemProductPrice=0;   //产品市场价
-             Integer itemProductDiscount=0; //产品折扣价
-             for (SalesOrderItem salesOrderItem:salesOrders.getSalesOrderItemList()) {
-                 itemProductPrice += salesOrderItem.getItemProductPrice() * salesOrderItem.getItemNum();
-                 itemProductDiscount += salesOrderItem.getItemProductDiscount() * salesOrderItem.getItemNum();
-             }
-             salesOrders.setSalesAmount(itemProductPrice);
-             salesOrders.setSalesPayMoney(itemProductDiscount);
+             try{
+                 DealerChannel dealerChannel = new DealerChannel();
+                 boolean flag = true;
+                 if(salesOrders.getSalesStoreId() != null){
+                     dealerChannel.setStoreId(salesOrders.getSalesStoreId());
+                     List<DealerChannel>  dealerChannelList = dealerChannelService.getDealerChannelList(dealerChannel);
+                     if(dealerChannelList!= null && dealerChannelList.size() > 0){
+                         dealerChannel = dealerChannelList.get(0);
+                     }else{
+                         salesOrders.setSalesDealCode("1");  //salesDealCode
+                         throw new Exception("订单导入失败-查询店铺对应客户信息失败,店铺ID:"+salesOrders.getSalesStoreId()+"。");
+                     }
+
+                     DealerProduct smallDp = new DealerProduct();
+                     smallDp.setDealerId(dealerChannel.getDealerId());
+                     smallDp.setDealChannelId(dealerChannel.getDealChannelId());
+                     List<DealerProduct> smallDpList = dealerProductService.getProductByChannelList(smallDp);
+
+                     //表示分配剩余总金额
+                     Integer lastTotal = salesOrders.getSalesAmount();
+                     for (int p =0 ;p<salesOrders.getSalesOrderItemList().size(); p++ ){
+                         SalesOrderItem salesOrderItem = salesOrders.getSalesOrderItemList().get(p);
+
+                         //获取当前该产品对应客户的价格
+                         Integer newPrice=0;
+                         if(smallDpList != null && smallDpList.size() > 0){
+                             boolean isHaveColorId = false;
+                             for (DealerProduct dp:smallDpList) {
+                                 if(Objects.equals(dp.getColorId(), salesOrderItem.getItemColorId())){
+                                     if(1 == dp.getDealProdStoreArea()){
+                                         // 1:全部店铺
+                                         newPrice = dp.getDealProdPrice();
+                                     }else{
+                                         // 2:部分店铺
+                                         //for (DealerProductStore dps:dp.getDealerProductStoreList()) {
+                                             //if(salesOrders.getSalesStoreId().equals(dps.getStoreId())){
+                                              //   newPrice = dp.getDealProdPrice();
+                                             //}
+                                         //}
+                                         newPrice = dp.getDealProdPrice();
+                                     }
+                                     isHaveColorId = true;
+                                 }
+                             }
+                             if(!isHaveColorId){
+                                 salesOrders.setSalesDealCode("1");  //salesDealCode
+                                 throw new Exception("订单导入-未能从该客户中获取到对应产品的信息,客户名称:"+dealerChannel.getDealerName()+",---产品:"+ salesOrderItem.getItemProductName()+"("+ salesOrderItem.getItemProductColor() +")。");
+                             }
+                         }else{
+                             salesOrders.setSalesDealCode("1");  //salesDealCode
+                             throw new Exception("订单导入-未能从该客户中获取到对应产品的信息,客户名称:"+dealerChannel.getDealerName()+",---产品:"+ salesOrderItem.getItemProductName()+"("+ salesOrderItem.getItemProductColor() +")。");
+                         }
+
+                         if(flag){
+                             if(1 == dealerChannel.getDealerSelfOperated()){
+                                 //是否自营 1:自营
+
+                                 if((p+1) >= salesOrders.getSalesOrderItemList().size() ) {
+                                     //最后一个赋值剩余值,防止出现少一分的情况
+                                     salesOrderItem.setItemTotal(lastTotal);
+                                 }else{
+                                     //计算订单总价(*数量)  因为上面判断了单个,所以订单项最低也会有一个,不可能为0
+                                     Integer allPrice = 0;
+                                     for ( SalesOrderItem sdi : salesOrders.getSalesOrderItemList()){
+                                         for (DealerProduct dp:smallDpList) {
+                                            if(Objects.equals(dp.getColorId(),sdi.getItemColorId())){
+                                                allPrice += sdi.getItemNum()*dp.getDealProdPrice();
+                                            }
+                                         }
+                                     }
+
+                                     //当前产品总价
+                                     Integer aoncePrice = newPrice*salesOrderItem.getItemNum();
+
+                                     //计算比例
+                                     Double priceRate = Double.valueOf(aoncePrice) / Double.valueOf(allPrice);
+
+                                     //当前订单项按照比例得出的实际总价
+                                     Double itemTotalByDouble = lastTotal * priceRate;
+                                     Integer itemTotal = itemTotalByDouble.intValue();
+                                     salesOrderItem.setItemTotal(itemTotal);
+                                     //减去当前订单项的金额
+                                     lastTotal -= itemTotal;
+                                 }
+                             }else{
+                                 //2:非自营
+                                 salesOrderItem.setItemProductDiscount(newPrice);
+                                 salesOrderItem.setItemProductPrice(newPrice);
+                                 salesOrderItem.setItemTotal(newPrice*salesOrderItem.getItemNum());
+                             }
+                         }
+                     }
+                 }else{
+                     salesOrders.setSalesDealCode("1");  //salesDealCode
+                     throw new Exception("订单导入-获取店铺ID失败,店铺ID:"+salesOrders.getSalesStoreId()+"。");
+                 }
+
+                 //计算订单总金额
+//                 Integer itemProductPrice=0;   //产品市场价
+//                 Integer itemProductDiscount=0; //产品折扣价
+                 for (SalesOrderItem salesOrderItem:salesOrders.getSalesOrderItemList()) {
+                     salesOrderItem.setItemProductPrice(0);
+                     salesOrderItem.setItemProductDiscount(0);
+                 }
+                 salesOrders.setSalesPayMoney(salesOrders.getSalesAmount());
+
 
-                try{
 //                    bl = salesOrderService.addRstOrderAndIteminfo(salesOrders);
 //                    if(bl == false){
 //                        logger.info("合并订单出错+:"+bl + "错误交易号为:"+salesDealCode);
@@ -1071,7 +1174,8 @@ public class AdminOrderController {
 //                        sb.append(salesDealCode+"\r\n");
 //                    }
                     bl = salesOrderService.addRstOrderinfo(salesOrders,new ArrayList<SalesOrder>(),null);
-                }catch (RuntimeException e){
+                }catch (Exception e){
+                    e.printStackTrace();
                     logger.info("插入订单失败;错误信息" + e.getMessage());
                     for(EfastOrder efastOrderStyle:orderEfasts){
                         if(salesDealCode.equals(efastOrderStyle.getPlatformOrderId())){
@@ -1134,6 +1238,8 @@ public class AdminOrderController {
             }
             String orderId = efastOrder.getPlatformOrderId();
             salesOrder = mapsalesOrderList.get(orderId);
+
+            Integer total = -1;
             if (salesOrder == null) {
                 // 没有订单
                 salesOrderList = new ArrayList<SalesOrder>();
@@ -1159,13 +1265,18 @@ public class AdminOrderController {
                     salesOrderItem.setItemProductPic(productColor.getColorPicture());
                     salesOrderItem.setItemProductColor(productColor.getColorName());
                     salesOrderItem.setItemColorBar(productColor.getColorBar());
-                    salesOrderItem.setItemProductPrice(efastOrder.getOrderProductPrice());
-                    salesOrderItem.setItemProductDiscount(efastOrder.getOrderProductDiscount());
+                    salesOrderItem.setItemTotal(efastOrder.getOrderTotal());
+//                    salesOrderItem.setItemProductPrice(efastOrder.getOrderProductPrice());
+//                    salesOrderItem.setItemProductDiscount(efastOrder.getOrderProductDiscount());
+                    total = efastOrder.getOrderTotal();
                     salesOrderItem.setItemIsSource(1);
                 }
                 salesOrderItemList.add(salesOrderItem);
                 salesAmount += productColor.getColorDiscount();
 
+                salesOrder.setSalesAmount(total);
+                salesOrder.setSalesPayMoney(total);
+
                 salesOrder.setSalesOpenId("0");
                 salesOrder.setSalesDiscountMoney(salesAmount);
                 salesOrder.setSalesPledgeMoney(salesAmount);
@@ -1188,6 +1299,11 @@ public class AdminOrderController {
                     String newArea  = efastOrder.getOrderArea();
                     newArea = newArea.replaceAll("高新技术产业开发区|高新技术开发区|技术开发区|经济开发区|自治区|地区|自治县","");
 
+                    //去掉全角和半角空格
+                    byte bytes[] = {(byte) 0xC2,(byte) 0xA0};
+                    String UTFSpace = new String(bytes,"utf-8");
+                    newArea = newArea.replaceAll(UTFSpace, "");
+
                     String lastNewArea  = newArea.substring(newArea.length()-1,newArea.length());
                     lastNewArea = lastNewArea.replaceAll("县|区|镇|乡|市|州|洲","");
 
@@ -1207,8 +1323,6 @@ public class AdminOrderController {
 
                 salesOrder.setSalesAddressTel(efastOrder.getOrderAddressTel());
                 salesOrder.setSalesAddressName(efastOrder.getOrderAddressName());
-//                salesOrder.setSalesAmount(efastOrder.getOrderAmount());
-//                salesOrder.setSalesPayMoney(efastOrder.getOrderPayMoney());
                 salesOrder.setSalesPayType(1);
                 salesOrder.setSalesWaitMoney(efastOrder.getOrderAmount() - efastOrder.getOrderPayMoney());
                 salesOrder.setSalesShippingFee(0);

+ 59 - 44
watero-rst-web/src/main/java/com/iamberry/rst/utils/ExcelUtil.java

@@ -1,8 +1,5 @@
 package com.iamberry.rst.utils;
 
-import com.iamberry.rst.core.dm.DealerChannel;
-import com.iamberry.rst.core.dm.DealerProduct;
-import com.iamberry.rst.core.dm.DealerProductStore;
 import com.iamberry.rst.core.order.EfastOrder;
 import com.iamberry.rst.core.order.ProductColor;
 import com.iamberry.rst.core.pts.PtsBomComponents;
@@ -17,6 +14,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -472,6 +470,8 @@ public class ExcelUtil {
         cellStyle.setFillForegroundColor(IndexedColors.RED.getIndex());
         cellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
 
+        EfastOrder remmendOrder = new EfastOrder();
+
         // 读取数据
         int oid = 0;
         int errorNum = 0;
@@ -481,6 +481,9 @@ public class ExcelUtil {
                 if (errorNum > 5) {
                     break;
                 }
+                //判断当前行是否
+                Integer isRowHaveVal = 0,sonErrorNum=0;
+
                 EfastOrder order = new EfastOrder();
                 // 读取name
                 String nameValue = getValue(temp.getCell(nameColumnIndex));
@@ -493,22 +496,28 @@ public class ExcelUtil {
                 // 读取对应的产品id
                 String OrderProductBarCodeValue = map.get(getValue(temp.getCell(productColumnIndex)).trim());
                 if (StringUtils.isEmpty(nameValue)) {
-                    errorNum++;
+                    sonErrorNum++;
                     order.setReturnStatus("error");
                     order.setReturnMsg("姓名为空-交易号:" + platformOrderIdValue);
                     order.setPlatformOrderId("1");
+                    isRowHaveVal++;
                 }
                 if (StringUtils.isEmpty(userTel)) {
-                    errorNum++;
+                    sonErrorNum++;
                     order.setReturnStatus("error");
                     order.setReturnMsg("手机号码为空-交易号:" + platformOrderIdValue);
                     order.setPlatformOrderId("1");
+                    isRowHaveVal++;
                 }
                 if (StringUtils.isEmpty(OrderProductBarCodeValue)) {
-                    errorNum++;
+                    sonErrorNum++;
                     order.setReturnStatus("error");
                     order.setReturnMsg("交易号出错-交易号:" + platformOrderIdValue);
                     order.setPlatformOrderId("1");
+                    isRowHaveVal++;
+                }
+                if(sonErrorNum > 2){
+                    errorNum ++;
                 }
 
                 order.setOrderAddressName(nameValue);
@@ -538,6 +547,7 @@ public class ExcelUtil {
                     order.setReturnMsg("手机号码不正确");
                     order.setPlatformOrderId("1");
                 }
+
                 order.setOrderAddressTel(userTel.trim());
 
                 Integer orderNumByInt = 1;    //数量
@@ -559,6 +569,15 @@ public class ExcelUtil {
                 }
                 order.setOrderRemark(orderRemark);
 
+                if(isRowHaveVal >= 2){
+                    BeanUtils.copyProperties(remmendOrder,order);
+                    order.setOrderProductBarCode(OrderProductBarCodeValue);
+                    order.setOrderNum(orderNumByInt);
+                    order.setOrderProductName(price.get(order.getOrderProductBarCode()).getColorName());
+                    orderEfasts.add(order);
+                    continue;
+                }
+
                 try {
                     if (infoColumnIndex.length == 1) {
                         // 如果infoColumnIndex = 1, 则表示需要截取(可能是-、“ ”)
@@ -567,14 +586,14 @@ public class ExcelUtil {
                         if (addrInfo == null || "".equals(addrInfo)) {
                             // 地址为空
                             cell.setCellStyle(cellStyle);
-                            continue;
+                            throw new Exception("地址为空");
                         }
                         // 处理地址信息
                         String[] addrs = splitAddress(addrInfo);
                         if (addrs == null && addrs.length < 4) {
                             // 地址不合法
                             cell.setCellStyle(cellStyle);
-                            continue;
+                            throw new Exception("地址不合法");
                         }
                         order.setOrderProvince(addrs[0].trim());
                         order.setOrderCity(addrs[1].trim());
@@ -592,12 +611,13 @@ public class ExcelUtil {
                         order.setOrderArea(getValue(temp.getCell(infoColumnIndex[1])).trim());
                         order.setOrderAddress(getValue(temp.getCell(infoColumnIndex[2])).trim());
                     } else {
-                        for (int i : infoColumnIndex) {
-                            temp.getCell(infoColumnIndex[i]).setCellStyle(cellStyle);
-                        }
-                        continue;
+//                        for (int i : infoColumnIndex) {
+//                            temp.getCell(infoColumnIndex[i]).setCellStyle(cellStyle);
+//                        }
+                        throw new Exception("地址错误");
                     }
                 } catch (Exception e) {
+
                     order.setReturnStatus("error");
                     order.setReturnMsg("地址错误");
                     order.setPlatformOrderId("1");
@@ -627,10 +647,24 @@ public class ExcelUtil {
                 }
 
                 //-- 获取价格 --
-                order.setOrderProductDiscount(-1);
-                order.setOrderProductPrice(-1);
                 order.setOrderTotal(-1);
-                DealerChannel dealerChannel = new DealerChannel();
+                String colorDiscount = "-1";
+                colorDiscount = getValue(temp.getCell(discountColumnIndex)).trim();
+                if(colorDiscount != null && !"".equals(colorDiscount)){
+                    colorDiscount = colorDiscount.replaceAll("\\r|\\r|\\n","");
+                }
+                if(colorDiscount == null || "".equals(colorDiscount)){
+                    order.setReturnStatus("error");
+                    order.setReturnMsg("价格不正确"+"。");
+                    order.setPlatformOrderId("1");
+                }else{
+                    //赋值小结
+                    Double orderTotal = Double.valueOf(colorDiscount);
+                    orderTotal = orderTotal*100;
+                    order.setOrderTotal(orderTotal.intValue());
+                }
+
+               /* DealerChannel dealerChannel = new DealerChannel();
                 boolean flag = true;
                 if(order.getStoreId() != null){
                     dealerChannel.setStoreId(order.getStoreId());
@@ -646,27 +680,7 @@ public class ExcelUtil {
 
                     if(flag){
                         if(1 == dealerChannel.getDealerSelfOperated()){
-                            //是否自营 1:自营 2:非自营
-                            String colorDiscount = "-1";
-                            colorDiscount = getValue(temp.getCell(discountColumnIndex)).trim();
-                            if(colorDiscount != null && !"".equals(colorDiscount)){
-                                colorDiscount = colorDiscount.replaceAll("\\r|\\r|\\n","");
-                            }
-                            if(colorDiscount == null || "".equals(colorDiscount)){
-                                order.setReturnStatus("error");
-                                order.setReturnMsg("价格不正确"+"。");
-                                order.setPlatformOrderId("1");
-                            }else{
-                                // 计算单个价格
-                                Double colorDiscountDou = Double.valueOf(colorDiscount);
-                                colorDiscountDou = colorDiscountDou*100/orderNumByInt;
-                                order.setOrderProductDiscount(colorDiscountDou.intValue());
-                                order.setOrderProductPrice(colorDiscountDou.intValue());
-                                //赋值小结
-                                Double orderTotal = Double.valueOf(colorDiscount);
-                                orderTotal = orderTotal*100;
-                                order.setOrderTotal(orderTotal.intValue());
-                            }
+                            //是否自营 1:自营
                         }else{
                             //2:非自营
                             DealerProduct dealerProduct = new DealerProduct();
@@ -703,13 +717,12 @@ public class ExcelUtil {
                     order.setReturnStatus("error");
                     order.setReturnMsg("订单导入-获取店铺ID失败,店铺ID:"+order.getStoreId()+"。");
                     order.setPlatformOrderId("1");
-                }
-
-                if(order.getOrderTotal() == null || order.getOrderTotal() < 0){
-                    order.setReturnStatus("error");
-                    order.setReturnMsg("订单导入-未能从该客户中获取店铺对应的产品价格,客户名称:"+dealerChannel.getDealerName()+",产品SKU:"+ OrderProductBarCodeValue+"店铺ID:"+order.getStoreId()+"。");
-                    order.setPlatformOrderId("1");
-                }
+                }*/
+//                if(order.getOrderTotal() == null || order.getOrderTotal() < 0){
+//                    order.setReturnStatus("error");
+//                    order.setReturnMsg("订单导入-未能从该客户中获取店铺对应的产品价格,客户名称:"+dealerChannel.getDealerName()+",产品SKU:"+ OrderProductBarCodeValue+"店铺ID:"+order.getStoreId()+"。");
+//                    order.setPlatformOrderId("1");
+//                }
 
                 order.setOid(oid);
                 try {
@@ -727,8 +740,10 @@ public class ExcelUtil {
                     e.printStackTrace();
                     logger.info("匹配快递公司失败");
                 }
+
                 // 保存
                 orderEfasts.add(order);
+                BeanUtils.copyProperties(order,remmendOrder);
             } catch (Exception e) {
                 row.getCell(0).setCellStyle(cellStyle);
                 errorNum++;
@@ -996,7 +1011,7 @@ public class ExcelUtil {
                 if (DateUtil.isCellDateFormatted(cell)) {
                     return fmt.format(cell.getDateCellValue()); //日期型
                 }
-                DecimalFormat df = new DecimalFormat("#");
+                DecimalFormat df = new DecimalFormat("#.##");
                 return df.format(new Double(cell.getNumericCellValue())); //数字
             case Cell.CELL_TYPE_BOOLEAN: //布尔型
                 return String.valueOf(cell.getBooleanCellValue());

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

@@ -42,7 +42,7 @@
         .b-close-div{float: right;height: 21px;width: 22px;}
         .close-box{margin-left: 15px;margin-top: -15px;}
     </style>
-    <title>对接人添加 - 客户管理 - RST</title>
+    <title>渠道添加 - 客户管理 - RST</title>
 </head>
 <body>
 

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

@@ -48,7 +48,7 @@
         <form  method="post" class="form form-horizontal" id="form-contact"  >
 
             <input type="hidden" class="input-text" value="${dealerProduct.dealProdId!0}" id="dealProdId" name="dealProdId"  >
-            <input type="hidden" class="input-text" value="${dealerProduct.dealProdIdStr!""}" id="dealProdIdStr" name="dealProdIdStr"  >
+            <#--<input type="hidden" class="input-text" value="${dealerProduct.dealProdIdStr!""}" id="dealProdIdStr" name="dealProdIdStr"  >-->
 
             <div class="row cl" style="margin-left: 0px;">
                 <div class="formControls col-xs-2 col-sm-2" style="padding: 0px 2px;">
@@ -302,7 +302,7 @@
                 $.each(layui.data('checked'), function(k, v) {
                     var dealerProduct = new Object();
                     dealerProduct.dealProdId=v.dealProdId;
-                    dealerProduct.dealProdIdStr=v.dealProdIdStr;
+//                    dealerProduct.dealProdIdStr=v.dealProdIdStr;
                     dealerProduct.colorProductId=v.colorProductId;
                     dealerProduct.colorId=v.colorId;
                     dealerProduct.productName=v.productName;

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

@@ -156,7 +156,7 @@
                         <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;float: left;">
+                    <select  class="my-select"  name="product-shop-discount" id="product-shop-discount" matchSelect="售价|单价|折扣价|价格|金额|产品价格|下单价格|商品金额合计" style="height: 30px;width: 180px;margin: 0px;float: left;">
                         <#list heads as head>
                             <option value="${head}" >${head}</option>
                         </#list>
@@ -657,6 +657,7 @@
                     var faultNum = 0;
                     var newFaultNum = result.returnMsg.newFaultNum;
                     var mapSalesOrderSize = result.returnMsg.mapSalesOrderSize;
+                    $("#send_tbody").html("");
                     for (var i = 0; i < list.length; i++) {
                         var order = list[i];
                         // 推送失败 展示 颜色

+ 7 - 5
watero-rst-web/src/main/webapp/common/js/dealer/dealer.js

@@ -152,9 +152,8 @@ var PRODUCT_IS_UPDATE = 1;  //用来标识渠道的弹窗是添加还是修改
  */
 function addDealerProduct() {
     PRODUCT_IS_UPDATE = 1;
-    PRODUCT_ID_NUM ++;
-    var dealProdIdStr = PRODUCT_ID_PREFIX + PRODUCT_ID_NUM;
-
+    // PRODUCT_ID_NUM ++;
+    // var dealProdIdStr = PRODUCT_ID_PREFIX + PRODUCT_ID_NUM;
     var dealerProductStoreArray = new Array();
     $("#add_dealer_channel").find("tr").each(function () {
         var dealerProductStore = new Object();
@@ -170,7 +169,7 @@ function addDealerProduct() {
         vailErrorMsg_3($("#add_dealer_channel_make"),"必须要有一个销售渠道");
         return false;
     }
-    var url = url_path + '/admin/dealer/to_add_dealer_product?dealProdIdStr='+dealProdIdStr+'&dealerProductStoreJson='+ JSON.stringify(dealerProductStoreArray);
+    var url = url_path + '/admin/dealer/to_add_dealer_product?dealerProductStoreJson='+ JSON.stringify(dealerProductStoreArray);
     url = encodeURI(url);
     layer_show_norm("添加供应产品",url,5);
 }
@@ -179,10 +178,12 @@ function showDealerProduct(dealerProductArray) {
     var $addHtmlNode = $("#add_product");
     if(PRODUCT_IS_UPDATE == 1){ //添加
         for(var i=0;i<dealerProductArray.length;i++){
+            PRODUCT_ID_NUM ++;
+            var dealProdIdStr = PRODUCT_ID_PREFIX + PRODUCT_ID_NUM;
             var obj = dealerProductArray[i];
             var html = '<tr class="text-c" >';
             html += ' <input type="hidden" class="input-text dealProdId" value="" >';
-            html += ' <input type="hidden" class="input-text dealProdIdStr" value="'+ cufte(obj.dealProdIdStr) +'" >';
+            html += ' <input type="hidden" class="input-text dealProdIdStr" value="'+ dealProdIdStr +'" >';
             html += ' <input type="hidden" class="input-text colorProductId" value="'+ cufte(obj.colorProductId) +'" >';
             html += ' <input type="hidden" class="input-text colorId" value="'+ cufte(obj.colorId) +'" >';
             html += ' <input type="hidden" class="input-text dealProdStoreArea" value="'+ cufte(obj.dealProdStoreArea) +'" >';
@@ -392,6 +393,7 @@ $(function(){
                     var $productColor = $(this);
                     var productColor = new Object();
                     productColor.colorId = $productColor.find(".colorId").val();
+                    productColor.dealProdIdStr = $productColor.find(".dealProdIdStr").val();
                     productColor.dealProdStoreArea = $productColor.find(".dealProdStoreArea").val();
                     var dealProdPrice =  $productColor.find(".dealProdPrice").val();
                     if(!isEmpty(dealProdPrice)){