|
@@ -1,23 +1,24 @@
|
|
|
package com.iamberry.rst.service.cm;
|
|
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
+import com.iamberry.rst.core.address.Province;
|
|
|
import com.iamberry.rst.core.cm.FittingsInfo;
|
|
|
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.order.DownsingleRuleInfo;
|
|
|
-import com.iamberry.rst.core.order.DownsingleRuleItemInfo;
|
|
|
-import com.iamberry.rst.core.order.PostInfo;
|
|
|
-import com.iamberry.rst.core.order.ProductColor;
|
|
|
+import com.iamberry.rst.core.order.*;
|
|
|
import com.iamberry.rst.core.page.PagedResult;
|
|
|
import com.iamberry.rst.core.sys.SysConfig;
|
|
|
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.order.EfastOrderService;
|
|
|
import com.iamberry.rst.faces.product.ProductService;
|
|
|
import com.iamberry.rst.service.cm.mapper.FittingsInfoMapper;
|
|
|
import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
|
|
|
+import com.iamberry.rst.service.order.mapper.LogisticsInfoMapper;
|
|
|
+import com.iamberry.rst.service.order.mapper.ProvincesLogisticsMapper;
|
|
|
import com.iamberry.rst.service.sys.mapper.SysConfigMapper;
|
|
|
import com.iamberry.rst.util.PageUtil;
|
|
|
import com.iamberry.wechat.tools.DateTimeUtil;
|
|
@@ -55,6 +56,11 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
private FittingsInfoMapper fittingsInfoMapper;
|
|
|
@Autowired
|
|
|
private SysConfigMapper sysConfigMapper;
|
|
|
+ @Autowired
|
|
|
+ private AddressService addressService;
|
|
|
+ @Autowired
|
|
|
+ private ProvincesLogisticsMapper provincesLogisticsMapper;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public Integer addSalesOrder(SalesOrder salesOrder) {
|
|
@@ -329,6 +335,10 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
salesOrderService.parseOrder(salesOrder, listSalesOrder);
|
|
|
//匹配拆单规则 分割订单-------------end
|
|
|
boolean msg = false;
|
|
|
+
|
|
|
+ /*根据省份来分配物流公司*/
|
|
|
+ salesOrderService.setProvincesLogistics(listSalesOrder);
|
|
|
+
|
|
|
//判断主从订单--------------------state
|
|
|
if (listSalesOrder.size() > 0){
|
|
|
SalesOrder mainOrder = null;
|
|
@@ -348,8 +358,8 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
mainOrder = listSalesOrder.get(0);
|
|
|
listSalesOrder.remove(0);
|
|
|
}
|
|
|
-
|
|
|
//判断主从订单--------------------end
|
|
|
+
|
|
|
msg = salesOrderService.addRstOrderinfo(mainOrder,listSalesOrder);
|
|
|
}
|
|
|
return msg;
|
|
@@ -363,6 +373,11 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
throw new RuntimeException("交易号("+ mainOrder.getSalesDealCode() +")重复,请重新生成交易号!");
|
|
|
}
|
|
|
|
|
|
+ if(mainOrder.getSalesCreateTime() == null){
|
|
|
+ /*保证时间与以前一样*/
|
|
|
+ mainOrder.setSalesCreateTime(new Date());
|
|
|
+ }
|
|
|
+
|
|
|
int orderNum = salesOrderMapper.addSalesOrder(mainOrder);
|
|
|
if (orderNum <= 0) {
|
|
|
throw new RuntimeException("添加订单出错--------!");
|
|
@@ -398,6 +413,51 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据省份来分配物流公司
|
|
|
+ * @param listSalesOrder
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void setProvincesLogistics(List<SalesOrder> listSalesOrder){
|
|
|
+ for (SalesOrder salesOrder:listSalesOrder) {
|
|
|
+ boolean flag = false;
|
|
|
+ for (SalesOrderItem salesOrderItem:salesOrder.getSalesOrderItemList()) {
|
|
|
+ ProductColor productColor = productService.getColorByBar(salesOrderItem.getItemColorBar());
|
|
|
+ if(productColor.getColorIsMachine() == 1){
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(flag){
|
|
|
+ String addresses[] = salesOrder.getSalesAddressInfo().split("-");
|
|
|
+ if(addresses == null || addresses.length < 3){
|
|
|
+ addresses = salesOrder.getSalesAddressInfo().split(" ");
|
|
|
+ }
|
|
|
+ if(addresses == null || addresses.length < 3){
|
|
|
+ addresses = salesOrder.getSalesAddressInfo().split("_");
|
|
|
+ }
|
|
|
+ if(addresses == null || addresses.length < 3){
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ String provincesStr = addresses[0];
|
|
|
+ provincesStr = provincesStr.substring(0,2);
|
|
|
+
|
|
|
+ ProvincesLogistics provincesLogistics = new ProvincesLogistics();
|
|
|
+ provincesLogistics.setProvince(provincesStr);
|
|
|
+ List<ProvincesLogistics> provincesLogisticsList = provincesLogisticsMapper.getProvincesLogisticsList(provincesLogistics);
|
|
|
+ if(provincesLogisticsList == null || provincesLogisticsList.size() < 1){
|
|
|
+ /*未查到地址*/
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ //设置快递公司
|
|
|
+ provincesLogistics = provincesLogisticsList.get(0);
|
|
|
+ if(provincesLogistics.getLogisticsRstCode() != null){
|
|
|
+ salesOrder.setSalesPostFirm(provincesLogistics.getLogisticsRstCode());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public List<SalesOrderItem> listSalesOrderItem(SalesOrderItem salesOrderItem) {
|
|
|
return salesOrderMapper.listSalesOrderItem(salesOrderItem);
|