Parcourir la source

修改客户信息

liujiankang il y a 7 ans
Parent
commit
3a567b1a07

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

@@ -140,4 +140,9 @@ public interface SalesOrderService {
      * @return
      */
     Integer updateOrderListIsDownload(List<SalesOrder> list);
+
+    /**
+     * 根据交易号修改订单信息
+     * **/
+    Integer updateSalesOrderByDealCode(SalesOrder salesOrder);
 }

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

@@ -542,4 +542,9 @@ public class SalesOrderServiceImpl implements SalesOrderService {
     public Integer updateOrderListIsDownload(List<SalesOrder> list) {
         return salesOrderMapper.updateOrderListIsDownload(list);
     }
+
+    @Override
+    public Integer updateSalesOrderByDealCode(SalesOrder salesOrder) {
+        return salesOrderMapper.updateSalesOrderByDealCode(salesOrder);
+    }
 }

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

@@ -97,4 +97,9 @@ public interface SalesOrderMapper {
      * 根据外部订单号查询订单信息
      * **/
     SalesOrder getSalesOrderByLogistics(SalesOrder salesOrder);
+
+    /**
+     * 根据交易号修改订单信息
+     * **/
+    Integer updateSalesOrderByDealCode(SalesOrder salesOrder);
 }

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

@@ -455,4 +455,22 @@
       where sales_id = #{item.salesId}
     </foreach>
   </update>
+
+
+  <!-- 根据交易号修改订单信息 -->
+  <update id="updateSalesOrderByDealCode" parameterType="SalesOrder" >
+    update tb_rst_sales_order_info
+    <set >
+      <if test="salesOrderId != null" >
+        sales_orderId = #{salesOrderId,jdbcType=VARCHAR},
+      </if>
+      <if test="salesPostNum != null" >
+        sales_post_num = #{salesPostNum,jdbcType=VARCHAR},
+      </if>
+      <if test="salesPostFirm != null" >
+        sales_post_firm = #{salesPostFirm,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where sales_deal_code = #{salesDealCode}
+  </update>
 </mapper>

+ 94 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminSalesOrderController.java

@@ -7,28 +7,35 @@ import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.faces.cm.SalesOrderService;
 import com.iamberry.rst.faces.cm.StoreInfoService;
 import com.iamberry.rst.faces.order.EfastOrderService;
+import com.iamberry.rst.utils.ExcelUtil;
 import com.iamberry.rst.utils.StitchAttrUtil;
 import com.iamberry.wechat.tools.ResponseJson;
 import net.sf.json.JSONObject;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang3.StringEscapeUtils;
 import org.apache.poi.hssf.usermodel.*;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
+import java.text.MessageFormat;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+import static com.iamberry.rst.util.SmsConfig.SEND_NOTICE;
+
 /**
  * 订单信息
  * Created by liuzhiwei on 2017/12/4.
@@ -298,6 +305,35 @@ public class AdminSalesOrderController {
     }
 
     /**
+     * 获取快递公司
+     * @param firm
+     * @return
+     */
+    public String getPostCode(String firm) {
+        String postCode = "";
+        switch (firm) {
+            case "申通快递":postCode = "sto";break;
+            case "圆通快递":postCode = "yto";break;
+            case "顺丰快递":postCode = "sf";break;
+            case "邮政EMS":postCode = "ems";break;
+            case "省外EMS":postCode = "ems";break;
+            case "中通快递":postCode = "zto";break;
+            case "宅急送":postCode = "zjs";break;
+            case "韵达快递":postCode = "yunda";break;
+            case "cces快递":postCode = "cces";break;
+            case "上门提货":postCode = "pick";break;
+            case "汇通快递":postCode = "htky";break;
+            case "天天快递":postCode = "ttkdex";break;
+            case "星晨急便":postCode = "stars";break;
+            case "京东快递":postCode = "jd";break;
+            case "其他":postCode = "01";break;
+            case "上门送货":postCode = "02";break;
+            default:postCode = "sto";break;
+        }
+        return postCode;
+    }
+
+    /**
      * 同步百胜订单
      *
      * @return
@@ -453,4 +489,62 @@ public class AdminSalesOrderController {
         //下载导出订单Excel
         downloadOrderExcel(res,wb);
     }
+
+
+    /**
+     * 上传efast物流信息excel到系统订单
+     * @param response
+     * @return
+     */
+    @RequestMapping("/uploadLogisticsExcel")
+    @ResponseBody
+    public String uploadLogisticsExcel(HttpServletResponse response,HttpServletRequest request,@RequestParam("file") String file)throws IOException  {
+        Integer maxNumber = 100;
+        String path = request.getServletContext().getRealPath(file);
+        boolean flag = ExcelUtil.readExcelNumber(path,maxNumber);
+        if(!flag){
+            return "最大上传数量为一百条,请检查文档内的数据是否正常!";
+        }
+        List<String> listString  = ExcelUtil.readExcelHead(path);
+        if(listString == null){
+            return "数据不合格,请检查文档内的数据是否正常!";
+        }
+        List<String> tradings =   ExcelUtil.readCell2(path,listString.get(2));//外部交易号
+        List<String> oderIds =   ExcelUtil.readCell2(path,listString.get(4));//efast订单号
+        List<String> kuyaidi =   ExcelUtil.readCell2(path,listString.get(12));//快递公司
+        List<String> danhao =   ExcelUtil.readCell2(path,listString.get(15));//快递单号
+        if(oderIds == null || tradings == null || kuyaidi == null || danhao == null){
+            return "数据不合格,请检查文档内的数据是否正常!";
+        }
+        if(oderIds.size() != kuyaidi.size() || oderIds.size() != danhao.size()|| oderIds.size() != tradings.size()){
+            return "数据不合格,请检查文档内的数据是否正常!";
+        }
+        SalesOrder salesOrder = new SalesOrder();
+        Integer success = 0,error = 0;
+        List<String> errorOrders = new ArrayList();
+        for (int i = 0;i< tradings.size();i++){
+           if( tradings.get(i) != null &&  !tradings.get(i).equals("") &&
+                   oderIds.get(i) != null &&  !oderIds.get(i).equals("") &&
+                   kuyaidi.get(i) != null &&  !kuyaidi.get(i).equals("") &&
+                   danhao.get(i) != null &&  !danhao.get(i).equals("")){
+               String code = getPostCode(kuyaidi.get(i));
+               salesOrder.setSalesDealCode(tradings.get(i));
+               salesOrder.setSalesOrderId(oderIds.get(i));
+               salesOrder.setSalesPostFirm(code);
+               salesOrder.setSalesPostNum(danhao.get(i));
+               Integer msg = salesOrderService.updateSalesOrderByDealCode(salesOrder);
+               if(msg > 0){
+                   success++;
+               }else{
+                   errorOrders.add(tradings.get(i));
+                   error++;
+               }
+           }
+        }
+        String data = "上传完成,成功:"+success+"条,失败:"+error+"条";
+        if(error > 0){
+            data = data+errorOrders.toString();
+        }
+        return data;
+    }
 }

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

@@ -568,6 +568,65 @@ public class ExcelUtil {
 
 
     /**
+     * 读取Excel内容(上传excel文档)
+     * 不去除重复
+     *
+     * @param filePath
+     * @return
+     */
+    public static List<String> readCell3(String filePath) throws IOException {
+        // 判断文件是否存在
+        File file = new File(filePath);
+        if (!file.exists()) {
+            return null;
+        }
+        // 获取Workbook
+        InputStream inputStream = new BufferedInputStream(new FileInputStream(file));
+        Workbook wb = null;
+        if (filePath.endsWith("xls")) {
+            wb = new HSSFWorkbook(inputStream);
+        } else {
+            wb = new XSSFWorkbook(inputStream);
+        }
+        inputStream.close();
+
+        // 获取Sheet
+        Sheet sheet = wb.getSheetAt(0);
+        Iterator<Row> rows = sheet.rowIterator();
+
+        // 获取第一行的数据,匹配到表头
+        int cellNum = -1;
+        Row row = rows.next();
+        Iterator<Cell> cells = row.cellIterator();
+        while (cells.hasNext()) {
+            Cell cell = cells.next();
+                cellNum = cell.getColumnIndex();
+                break;
+        }
+        if (cellNum == -1) return null;
+
+        // 读取数据
+        ArrayList<String> arreyMap = new ArrayList<String>();
+        while (rows.hasNext()) {
+            Row temp = rows.next();
+            Cell cell = temp.getCell(cellNum);
+            // 非空的列需要使用
+            if (cell == null) {
+                continue;
+            }
+            String name = getValue(cell);
+            if (name != null && !"".equals(name.trim())) {
+                String cellValue = getValue(cell);
+                arreyMap.add(cellValue);
+            }
+        }
+
+        // Map to List
+        /*Collection<String> valueCollection = map.values();*/
+        return arreyMap;
+    }
+
+    /**
      *获取值
      * @param cell
      * @return

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

@@ -65,7 +65,7 @@
             <button type="submit" class="btn" style="background: #32a3d8;color: #fff;-webkit-transform:translateY(-5%);height: 35px;" id=""><i class="Hui-iconfont">&#xe665;</i> 搜索</button>
             <button type="button" class="btn" style="background: #32a3d8;color: #fff;-webkit-transform:translateY(-5%);height: 35px;" id="order_excel"><i class="Hui-iconfont">&#xe644;</i> 导出</button>
             <button type="button" class="btn" style="background: #32a3d8;color: #fff;-webkit-transform:translateY(-5%);height: 35px;" id="synOrder"><i class="Hui-iconfont">&#xe632;</i> 同步订单</button>
-            <button onClick="upFiles();" class="btn radius" style="background: #32a3d8;color: #fff;" type="button"><i class="Hui-iconfont">&#xe632;</i> 上传Excel(仅支持XLS类型)</button>
+            <button onClick="upFiles2();" class="btn radius" style="background: #32a3d8;color: #fff;" type="button"><i class="Hui-iconfont">&#xe632;</i> 上传Excel(仅支持XLS类型)</button>
             <button onClick="downloadOrder();" class="btn radius" style="background: #32a3d8;color: #fff;" type="button"><i class="Hui-iconfont">&#xe640;</i> 下载订单</button>
 
             </div>
@@ -188,7 +188,7 @@
 <script type="text/plain" id="upload_ue"></script>
 </tfoot>
 <script type="text/javascript">
-    /*判断上传类型 1:上传excel推送订单   2:下载订单 */
+    /*判断上传类型 1:上传excel推送订单   2:下载订单  2:上传efast物流信息excel */
     var editorType;
     var _editor;
     /**
@@ -219,6 +219,28 @@
                 if(editorType == 1){
                     window.location.href=root_path + '/admin/order/upload_excel?file='+arg[0].url;
                     $("#file").attr("value", _editor.options.filePath + arg[0].url);
+                }else if(editorType == 3){
+                    layer.msg('加载中', {icon: 16});
+                    $.ajax({
+                        type: "POST",
+                        data: {
+                            file : arg[0].url
+                        },
+                        url: "${path}/admin/salesOrder/uploadLogisticsExcel",
+                        async: false,
+                        success: function(data){
+                            var index = parent.layer.getFrameIndex(window.name);
+                            parent.layer.close(index);
+                            layer.alert(data, {
+                                        title: "操作",
+                                        btn: ['确定']
+                                    });
+                        },
+                        error: function(XmlHttpRequest, textStatus, errorThrown){
+                            layer.msg("上传失败",{icon: 2,time:3000});
+                        }
+                    });
+                    $("#file").attr("value", _editor.options.filePath + arg[0].url);
                 }else{
                     window.location.href=root_path + '/admin/order/download_excel?file='+arg[0].url;
                 }
@@ -231,6 +253,13 @@
         myFiles.open();
         editorType = 1;
     }
+
+    //弹出文件上传的对话框(上传efast物流信息excel)
+    function upFiles2() {
+        var myFiles = _editor.getDialog("attachment");
+        myFiles.open();
+        editorType = 3;
+    }
     /*  交易号文件上传 */
     function downloadOrder(){
         var myFiles = _editor.getDialog("attachment");