|
@@ -4,6 +4,7 @@ import com.iamberry.rst.core.order.EfastOrder;
|
|
|
import com.iamberry.rst.core.order.ProductColor;
|
|
|
import com.iamberry.rst.core.pts.PtsBomComponents;
|
|
|
import com.iamberry.rst.faces.cm.SalesOrderService;
|
|
|
+import com.iamberry.wechat.tools.AddrUtil;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.apache.poi.hssf.usermodel.HSSFCell;
|
|
|
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
|
|
@@ -470,14 +471,16 @@ public class ExcelUtil {
|
|
|
break;
|
|
|
}
|
|
|
EfastOrder order = new EfastOrder();
|
|
|
-
|
|
|
- String nameValue = getValue(temp.getCell(nameColumnIndex)); // 读取name
|
|
|
- String platformOrderIdValue = getValue(temp.getCell(platformOrderColumnIndex)); // 读取平台id
|
|
|
+ // 读取name
|
|
|
+ String nameValue = getValue(temp.getCell(nameColumnIndex));
|
|
|
+ // 读取平台id
|
|
|
+ String platformOrderIdValue = getValue(temp.getCell(platformOrderColumnIndex));
|
|
|
//获取手机号码
|
|
|
//String userTel = getValue(temp.getCell(telColumnIndex)).trim(); // 读取tel
|
|
|
Cell telCell = temp.getCell(telColumnIndex);
|
|
|
String userTel = String.valueOf(getExcelCell(telCell));
|
|
|
- String OrderProductBarCodeValue = map.get(getValue(temp.getCell(productColumnIndex)).trim()); // 读取对应的产品id
|
|
|
+ // 读取对应的产品id
|
|
|
+ String OrderProductBarCodeValue = map.get(getValue(temp.getCell(productColumnIndex)).trim());
|
|
|
if(StringUtils.isEmpty(nameValue)){
|
|
|
errorNum ++;
|
|
|
order.setReturnStatus("error");
|
|
@@ -519,7 +522,6 @@ public class ExcelUtil {
|
|
|
|
|
|
// 如果手机号码校验不通过,则应该不录入
|
|
|
if (userTel.trim().length() < 11 || userTel.trim().length() > 15) {
|
|
|
- //temp.getCell(telColumnIndex).setCellStyle(cellStyle);
|
|
|
order.setReturnStatus("error");
|
|
|
order.setReturnMsg("手机号码不正确");
|
|
|
order.setPlatformOrderId("1");
|
|
@@ -535,9 +537,11 @@ public class ExcelUtil {
|
|
|
if(orderNum == null || "".equals(orderNum) || Integer.valueOf(orderNum) == 0){
|
|
|
order.setReturnStatus("error");
|
|
|
order.setReturnMsg("数量不正确");
|
|
|
- order.setOrderNum(0); // 读取购买数量
|
|
|
+ // 读取购买数量
|
|
|
+ order.setOrderNum(0);
|
|
|
}else{
|
|
|
- order.setOrderNum(Integer.valueOf(orderNum)); // 读取购买数量
|
|
|
+ // 读取购买数量
|
|
|
+ order.setOrderNum(Integer.valueOf(orderNum));
|
|
|
}
|
|
|
order.setOrderRemark(orderRemark);
|
|
|
if (infoColumnIndex.length == 1){
|
|
@@ -585,7 +589,7 @@ public class ExcelUtil {
|
|
|
continue;
|
|
|
}
|
|
|
// 支付方式
|
|
|
- order.setOrderPayType(1); // 微信支付
|
|
|
+ order.setOrderPayType(1);
|
|
|
order.setOrderPayMoney(price.get(order.getOrderProductBarCode()).getColorDiscount() * order.getOrderNum());
|
|
|
order.setOrderAmount(price.get(order.getOrderProductBarCode()).getColorDiscount() * order.getOrderNum());
|
|
|
order.setOrderOpenId(order.getOrderAddressTel());
|
|
@@ -593,17 +597,20 @@ public class ExcelUtil {
|
|
|
order.setOrderId(OrderNoUtil.createOrderCode(Math.abs(new Random().nextInt(1000))));
|
|
|
|
|
|
if(isOtherStore == 2){
|
|
|
- String storeValue = getValue(temp.getCell(orderStoreInfoStColumnIndex)).trim(); // 读取店铺
|
|
|
+ // 读取店铺
|
|
|
+ String storeValue = getValue(temp.getCell(orderStoreInfoStColumnIndex)).trim();
|
|
|
for (int k=0;k<storeArray.length;k++){
|
|
|
String[] stores = storeArray[k].split("_");
|
|
|
if(stores[0].trim().equals(storeValue.trim())){
|
|
|
- order.setStoreId(Integer.valueOf(stores[1])); //店铺
|
|
|
+ //店铺
|
|
|
+ order.setStoreId(Integer.valueOf(stores[1]));
|
|
|
}
|
|
|
}
|
|
|
}else{
|
|
|
- order.setStoreId(Integer.valueOf(storeArray[0])); //店铺
|
|
|
+ //店铺
|
|
|
+ order.setStoreId(Integer.valueOf(storeArray[0]));
|
|
|
}
|
|
|
- order.setOid(oid); // oid
|
|
|
+ order.setOid(oid);
|
|
|
try{
|
|
|
if (postType.equals("ems")) {
|
|
|
if (order.getOrderProvince().contains("广东")) {
|
|
@@ -706,23 +713,29 @@ public class ExcelUtil {
|
|
|
Object obj;
|
|
|
if (null != cell) {
|
|
|
switch (cell.getCellType()) {
|
|
|
- case HSSFCell.CELL_TYPE_NUMERIC: // 数字
|
|
|
+ // 数字
|
|
|
+ case HSSFCell.CELL_TYPE_NUMERIC:
|
|
|
double cellValue = cell.getNumericCellValue();
|
|
|
obj = new DecimalFormat("#").format(cellValue);
|
|
|
break;
|
|
|
- case HSSFCell.CELL_TYPE_STRING: // 字符串
|
|
|
+ // 字符串
|
|
|
+ case HSSFCell.CELL_TYPE_STRING:
|
|
|
obj = cell.getStringCellValue();
|
|
|
break;
|
|
|
- case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
|
|
|
+ // Boolean
|
|
|
+ case HSSFCell.CELL_TYPE_BOOLEAN:
|
|
|
obj = cell.getBooleanCellValue();
|
|
|
break;
|
|
|
- case HSSFCell.CELL_TYPE_FORMULA: // 公式
|
|
|
+ // 公式
|
|
|
+ case HSSFCell.CELL_TYPE_FORMULA:
|
|
|
obj = cell.getCellFormula();
|
|
|
break;
|
|
|
- case HSSFCell.CELL_TYPE_BLANK: // 空值
|
|
|
+ // 空值
|
|
|
+ case HSSFCell.CELL_TYPE_BLANK:
|
|
|
obj = "";
|
|
|
break;
|
|
|
- case HSSFCell.CELL_TYPE_ERROR: // 故障
|
|
|
+ // 故障
|
|
|
+ case HSSFCell.CELL_TYPE_ERROR:
|
|
|
obj = "";
|
|
|
break;
|
|
|
default:
|
|
@@ -785,10 +798,11 @@ public class ExcelUtil {
|
|
|
*/
|
|
|
private static String[] splitAddress(String addrInfo) {
|
|
|
String[] addrs = null;
|
|
|
-
|
|
|
+ String splitCharTemp = null;
|
|
|
// 首先通过整体切割符合切割
|
|
|
for (String charSplit : ENTIRETY_SPLIT) {
|
|
|
addrs = StringUtils.split(addrInfo, charSplit);
|
|
|
+ splitCharTemp = charSplit;
|
|
|
if (addrs != null && addrs.length >= 4) {
|
|
|
break;
|
|
|
} else if (addrs != null && addrs.length == 3 && !addrs[0].contains("省")) {
|
|
@@ -800,18 +814,18 @@ public class ExcelUtil {
|
|
|
if (addrs != null && addrs.length >= 4) {
|
|
|
// 防止区域数据出现小区 扰乱数据
|
|
|
if (!addrs[2].contains("小区")) {
|
|
|
- return new String[]{addrs[0], addrs[1], addrs[2], addrInfo};
|
|
|
+ String address = AddrUtil.dealAddress(addrs[0].trim(), addrs[1].trim(), addrs[2].trim(), addrInfo, splitCharTemp, false);
|
|
|
+ return new String[]{addrs[0].trim(), addrs[1].trim(), addrs[2].trim(), address};
|
|
|
}
|
|
|
-
|
|
|
} else if (addrs != null && addrs.length == 3) {
|
|
|
// 防止区域数据出现小区 扰乱数据
|
|
|
if (!addrs[1].contains("小区")) {
|
|
|
- return new String[]{addrs[0], addrs[0], addrs[1], addrInfo};
|
|
|
+ String address = AddrUtil.dealAddress(addrs[0].trim(), addrs[0].trim(), addrs[1].trim(), addrInfo, splitCharTemp, true);
|
|
|
+ return new String[]{addrs[0].trim(), addrs[0].trim(), addrs[1].trim(), address};
|
|
|
}
|
|
|
}
|
|
|
|
|
|
for (String[] splits : PROVINCE_CITY_AERA_SPLIT) {
|
|
|
-
|
|
|
// 每组独立切割字符单独循环
|
|
|
String tempInfo = addrInfo;
|
|
|
addrs = new String[splits.length + 1];
|
|
@@ -837,14 +851,16 @@ public class ExcelUtil {
|
|
|
continue;
|
|
|
}
|
|
|
// 只有两级地址
|
|
|
- return new String[]{addrs[0], addrs[0], addrs[1], addrInfo};
|
|
|
+ String address = AddrUtil.dealAddress(addrs[0].trim(), addrs[0].trim(), addrs[1].trim(), addrInfo, null, true);
|
|
|
+ return new String[]{addrs[0].trim(), addrs[0].trim(), addrs[1].trim(), address};
|
|
|
} else if ((addrs.length - 1) == 3) {
|
|
|
// 防止区域数据出现小区 扰乱数据
|
|
|
if (addrs[2].contains("小区")) {
|
|
|
continue;
|
|
|
}
|
|
|
// 三级地址
|
|
|
- return new String[]{addrs[0], addrs[1], addrs[2], addrInfo};
|
|
|
+ String address = AddrUtil.dealAddress(addrs[0].trim(), addrs[1].trim(), addrs[2].trim(), addrInfo, null, false);
|
|
|
+ return new String[]{addrs[0].trim(), addrs[1].trim(), addrs[2].trim(), address};
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -853,7 +869,7 @@ public class ExcelUtil {
|
|
|
}
|
|
|
|
|
|
public static void main(String[] args) throws IOException {
|
|
|
- String[] add = splitAddress("海南省 临高县 博厚镇衍宏海港小镇(303县道西)衍宏海港小镇37栋602");
|
|
|
+ String[] add = splitAddress("北京 北京市 昌平区 回龙观街道回龙观 冠庭园5号楼2单元502");
|
|
|
if (add == null) {
|
|
|
System.out.println("切割失败...");
|
|
|
}
|