|
@@ -1,6 +1,5 @@
|
|
package com.fs.his.service.impl;
|
|
package com.fs.his.service.impl;
|
|
|
|
|
|
-import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
import cn.hutool.core.date.DateTime;
|
|
import cn.hutool.core.net.URLDecoder;
|
|
import cn.hutool.core.net.URLDecoder;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
@@ -32,10 +31,9 @@ import com.fs.config.cloud.CloudHostProper;
|
|
import com.fs.core.config.WxPayProperties;
|
|
import com.fs.core.config.WxPayProperties;
|
|
import com.fs.core.utils.OrderCodeUtils;
|
|
import com.fs.core.utils.OrderCodeUtils;
|
|
import com.fs.erp.domain.*;
|
|
import com.fs.erp.domain.*;
|
|
-import com.fs.erp.dto.ErpOrderQueryRequert;
|
|
|
|
-import com.fs.erp.dto.ErpOrderQueryResponse;
|
|
|
|
-import com.fs.erp.dto.ErpOrderResponse;
|
|
|
|
-import com.fs.erp.dto.ErpRefundUpdateRequest;
|
|
|
|
|
|
+import com.fs.erp.dto.*;
|
|
|
|
+import com.fs.erp.dto.df.*;
|
|
|
|
+import com.fs.erp.mapper.FsErpFinishPushMapper;
|
|
import com.fs.erp.service.IErpOrderService;
|
|
import com.fs.erp.service.IErpOrderService;
|
|
import com.fs.event.*;
|
|
import com.fs.event.*;
|
|
import com.fs.his.config.FsSysConfig;
|
|
import com.fs.his.config.FsSysConfig;
|
|
@@ -63,6 +61,7 @@ import com.fs.im.service.IImService;
|
|
import com.fs.qw.domain.QwExternalContact;
|
|
import com.fs.qw.domain.QwExternalContact;
|
|
import com.fs.qw.domain.QwUser;
|
|
import com.fs.qw.domain.QwUser;
|
|
import com.fs.qw.mapper.QwExternalContactMapper;
|
|
import com.fs.qw.mapper.QwExternalContactMapper;
|
|
|
|
+import com.fs.sop.mapper.QwSopLogsMapper;
|
|
import com.fs.qw.service.impl.QwUserServiceImpl;
|
|
import com.fs.qw.service.impl.QwUserServiceImpl;
|
|
import com.fs.system.domain.SysConfig;
|
|
import com.fs.system.domain.SysConfig;
|
|
import com.fs.tzBankPay.doman.*;
|
|
import com.fs.tzBankPay.doman.*;
|
|
@@ -104,8 +103,10 @@ import java.sql.Timestamp;
|
|
import java.text.ParseException;
|
|
import java.text.ParseException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.fs.his.utils.PhoneUtil.decryptPhone;
|
|
import static com.fs.his.utils.PhoneUtil.decryptPhone;
|
|
|
|
+import static com.fs.his.utils.PhoneUtil.encryptPhone;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 订单Service业务层处理
|
|
* 订单Service业务层处理
|
|
@@ -196,6 +197,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
@Qualifier("hzOMSErpOrderServiceImpl")
|
|
@Qualifier("hzOMSErpOrderServiceImpl")
|
|
private IErpOrderService hzOMSOrderService;
|
|
private IErpOrderService hzOMSOrderService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ @Qualifier("dfOrderServiceImpl")
|
|
|
|
+ private IErpOrderService dfOrderService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private IFsStoreAfterSalesService fsStoreAfterSalesService;
|
|
private IFsStoreAfterSalesService fsStoreAfterSalesService;
|
|
@Autowired
|
|
@Autowired
|
|
@@ -1626,6 +1631,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
} else if (erpType == 3){
|
|
} else if (erpType == 3){
|
|
//瀚智OMS
|
|
//瀚智OMS
|
|
erpOrderService = hzOMSOrderService;
|
|
erpOrderService = hzOMSOrderService;
|
|
|
|
+ } else if (erpType == 4){
|
|
|
|
+ //代服
|
|
|
|
+ erpOrderService = dfOrderService;
|
|
}else {
|
|
}else {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -1953,6 +1961,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
} else if (erpType == 2){
|
|
} else if (erpType == 2){
|
|
//旺店通
|
|
//旺店通
|
|
erpOrderService = wdtOrderService;
|
|
erpOrderService = wdtOrderService;
|
|
|
|
+ } else if (erpType == 3){
|
|
|
|
+ erpOrderService = hzOMSOrderService;
|
|
|
|
+ } else if (erpType == 4){
|
|
|
|
+ erpOrderService = dfOrderService;
|
|
}
|
|
}
|
|
ErpOrderQueryResponse response = erpOrderService.getOrder(request);
|
|
ErpOrderQueryResponse response = erpOrderService.getOrder(request);
|
|
if(response.getOrders()!=null&&response.getOrders().size()>0){
|
|
if(response.getOrders()!=null&&response.getOrders().size()>0){
|
|
@@ -2854,104 +2866,16 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
payment.setPaytime(new Timestamp(timeLong));
|
|
payment.setPaytime(new Timestamp(timeLong));
|
|
}
|
|
}
|
|
payments.add(payment);
|
|
payments.add(payment);
|
|
- //1.新疆、西藏、内蒙古、海南的订单(代收+非代收)全部发EMS
|
|
|
|
- //2.全款订单选择中通,快递ID 452 ZTO 中通商城标快 ZTBK.17782167502
|
|
|
|
- //3.新疆 西藏 内蒙古 海南 全款订单走顺丰丰云配 【非全款】的就根据公司配置那来 配的哪个走哪个快递
|
|
|
|
- //4.把现在发中通的规则改成发顺丰风云配 SF.0235402855
|
|
|
|
- //5.全款支付且应付金额小于等于100元,快递方式默认中通小件455 ZTO 中通小件 ZTPDD
|
|
|
|
- if(order.getCompanyId()!=null&& order.getStoreHouseCode()!=null&& order.getStoreHouseCode().equals("WHSP001")){
|
|
|
|
- //杭州家有仙妻实业有限公司 全部订单快递方式设置为商城德邦快递
|
|
|
|
- FsExpress express=expressService.selectFsExpressByOmsCode("SF-WHC");
|
|
|
|
- erpOrder.setExpress_code(express.getOmsCode());
|
|
|
|
- order.setDeliveryName(express.getName());
|
|
|
|
- order.setDeliverySn(express.getCode());
|
|
|
|
- if(order.getPayDelivery().compareTo(new BigDecimal(0))==0){
|
|
|
|
|
|
|
|
- }
|
|
|
|
- else{
|
|
|
|
- //物流代收金额
|
|
|
|
- ErpOrderPayment codPayment=new ErpOrderPayment();
|
|
|
|
- codPayment.setPay_type_code("cod");
|
|
|
|
- codPayment.setPayment(order.getPayDelivery().doubleValue());
|
|
|
|
- payments.add(codPayment);
|
|
|
|
- erpOrder.setCod(true);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- else if(order.getCompanyId()!=null){
|
|
|
|
- Company company = companyService.selectCompanyById(order.getCompanyId());
|
|
|
|
- if (order.getPayDelivery().compareTo(new BigDecimal(0)) == 0) { //没有物流代收(全款订单)
|
|
|
|
- FsExpress express = new FsExpress();
|
|
|
|
- if(order.getPayPrice().compareTo(new BigDecimal(100))<=0){
|
|
|
|
- express=expressService.selectFsExpressByOmsCode("ZTPDD");
|
|
|
|
- }
|
|
|
|
- else{
|
|
|
|
- boolean found = containsAddress(order.getUserAddress());
|
|
|
|
- express=expressService.selectFsExpressByOmsCode(expressOmsCode);
|
|
|
|
- }
|
|
|
|
- erpOrder.setExpress_code(express.getOmsCode());
|
|
|
|
- order.setDeliveryName(express.getName());
|
|
|
|
- order.setDeliverySn(express.getCode());
|
|
|
|
- }
|
|
|
|
- else {
|
|
|
|
- FsExpress express = new FsExpress();
|
|
|
|
- boolean found = containsAddress(order.getUserAddress());
|
|
|
|
- if(found){
|
|
|
|
- if(StringUtils.isNotEmpty(company.getOmsCode())){
|
|
|
|
- express = expressService.selectFsExpressByOmsCode(company.getOmsCode());
|
|
|
|
- }else{
|
|
|
|
- express=expressService.selectFsExpressByOmsCode("EMS.1");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- else{
|
|
|
|
- if(StringUtils.isNotEmpty(company.getOmsCode())){
|
|
|
|
- express = expressService.selectFsExpressByOmsCode(company.getOmsCode());
|
|
|
|
- }else{
|
|
|
|
- express = expressService.selectFsExpressByOmsCode(expressOmsCode);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- erpOrder.setExpress_code(express.getOmsCode());
|
|
|
|
- order.setDeliveryName(express.getName());
|
|
|
|
- order.setDeliverySn(express.getCode());
|
|
|
|
- //物流代收金额
|
|
|
|
- ErpOrderPayment codPayment = new ErpOrderPayment();
|
|
|
|
- codPayment.setPay_type_code("cod");
|
|
|
|
- codPayment.setPayment(order.getPayDelivery().doubleValue());
|
|
|
|
- payments.add(codPayment);
|
|
|
|
- erpOrder.setCod(true);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- else{
|
|
|
|
- if(order.getPayDelivery().compareTo(new BigDecimal(0))==0){ //没有物流代收(全款订单)
|
|
|
|
- FsExpress express=new FsExpress();
|
|
|
|
- if(order.getPayPrice().compareTo(new BigDecimal(100))<=0){
|
|
|
|
- express=expressService.selectFsExpressByOmsCode("ZTPDD");
|
|
|
|
- }else{
|
|
|
|
- boolean found = containsAddress(order.getUserAddress());
|
|
|
|
- express=expressService.selectFsExpressByOmsCode(expressOmsCode);
|
|
|
|
- }
|
|
|
|
- erpOrder.setExpress_code(express.getOmsCode());
|
|
|
|
- order.setDeliveryName(express.getName());
|
|
|
|
- order.setDeliverySn(express.getCode());
|
|
|
|
- }
|
|
|
|
- else{
|
|
|
|
- ErpOrderPayment codPayment=new ErpOrderPayment();
|
|
|
|
- codPayment.setPay_type_code("cod");
|
|
|
|
- codPayment.setPayment(order.getPayDelivery().doubleValue());
|
|
|
|
- payments.add(codPayment);
|
|
|
|
- erpOrder.setCod(true);
|
|
|
|
- FsExpress express=new FsExpress();
|
|
|
|
- boolean found = containsAddress(order.getUserAddress());
|
|
|
|
- if(found){
|
|
|
|
- express=expressService.selectFsExpressByOmsCode("EMS.1");
|
|
|
|
- }
|
|
|
|
- else {
|
|
|
|
- express=expressService.selectFsExpressByOmsCode(expressOmsCode);
|
|
|
|
- }
|
|
|
|
- erpOrder.setExpress_code(express.getOmsCode());
|
|
|
|
- order.setDeliveryName(express.getName());
|
|
|
|
- order.setDeliverySn(express.getCode());
|
|
|
|
- }
|
|
|
|
|
|
+ if (("金牛明医".equals(cloudHostProper.getCompanyName()))){
|
|
|
|
+ //金牛
|
|
|
|
+ setJNDeLiver(order, erpOrder, payments);
|
|
|
|
+ } else {
|
|
|
|
+ //物流相关
|
|
|
|
+ setDeliver(order, erpOrder, payments);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
erpOrder.setPayments(payments);
|
|
erpOrder.setPayments(payments);
|
|
if(order.getCompanyId()!=null){
|
|
if(order.getCompanyId()!=null){
|
|
Company company=companyService.selectCompanyById(order.getCompanyId());
|
|
Company company=companyService.selectCompanyById(order.getCompanyId());
|
|
@@ -2965,9 +2889,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
CompanyDept dept=companyDeptService.selectCompanyDeptById(companyUser.getDeptId());
|
|
CompanyDept dept=companyDeptService.selectCompanyDeptById(companyUser.getDeptId());
|
|
if(dept!=null){
|
|
if(dept!=null){
|
|
List<String> names=companyDeptService.selectCompanyDeptNamesByIds(dept.getAncestors());
|
|
List<String> names=companyDeptService.selectCompanyDeptNamesByIds(dept.getAncestors());
|
|
- if(CollectionUtil.isNotEmpty(names)){
|
|
|
|
|
|
+ if(names!=null&&names.size()>0){
|
|
//写备注
|
|
//写备注
|
|
- erpOrder.setSeller_memo(erpOrder.getSeller_memo()+"-"+ StringUtils.join(names, ",")+","+dept.getDeptName() );
|
|
|
|
|
|
+ erpOrder.setSeller_memo(erpOrder.getSeller_memo()+"-"+StringUtils.join(names, ",")+","+dept.getDeptName() );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
erpOrder.setSeller_memo(erpOrder.getSeller_memo()+"-"+companyUser.getNickName());
|
|
erpOrder.setSeller_memo(erpOrder.getSeller_memo()+"-"+companyUser.getNickName());
|
|
@@ -3068,14 +2992,183 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
return erpOrder;
|
|
return erpOrder;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 1.新疆、西藏、内蒙古、海南的订单(代收+非代收)全部发EMS
|
|
|
|
+ * 2.全款订单选择中通,快递ID 452 ZTO 中通商城标快 ZTBK.17782167502
|
|
|
|
+ * 3.新疆 西藏 内蒙古 海南 全款订单走顺丰丰云配 【非全款】的就根据公司配置那来 配的哪个走哪个快递
|
|
|
|
+ * 4.把现在发中通的规则改成发顺丰风云配 SF.0235402855
|
|
|
|
+ * 5.全款支付且应付金额小于等于100元,快递方式默认中通小件455 ZTO 中通小件 ZTPDD
|
|
|
|
+ * @param order
|
|
|
|
+ * @param erpOrder
|
|
|
|
+ * @param payments
|
|
|
|
+ */
|
|
|
|
+ private void setDeliver(FsStoreOrder order, ErpOrder erpOrder, List<ErpOrderPayment> payments) {
|
|
|
|
+ if(order.getCompanyId()!=null&& order.getStoreHouseCode()!=null&& order.getStoreHouseCode().equals("WHSP001")){
|
|
|
|
+ //杭州家有仙妻实业有限公司 全部订单快递方式设置为商城德邦快递
|
|
|
|
+ FsExpress express=expressService.selectFsExpressByOmsCode("SF-WHC");
|
|
|
|
+ erpOrder.setExpress_code(express.getOmsCode());
|
|
|
|
+ order.setDeliveryName(express.getName());
|
|
|
|
+ order.setDeliverySn(express.getCode());
|
|
|
|
+ if(order.getPayDelivery().compareTo(new BigDecimal(0))==0){
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //物流代收金额
|
|
|
|
+ ErpOrderPayment codPayment=new ErpOrderPayment();
|
|
|
|
+ codPayment.setPay_type_code("cod");
|
|
|
|
+ codPayment.setPayment(order.getPayDelivery().doubleValue());
|
|
|
|
+ payments.add(codPayment);
|
|
|
|
+ erpOrder.setCod(true);
|
|
|
|
+ }
|
|
|
|
+ } else if(order.getCompanyId()!=null){
|
|
|
|
+ Company company = companyService.selectCompanyById(order.getCompanyId());
|
|
|
|
+ if (order.getPayDelivery().compareTo(new BigDecimal(0)) == 0) { //没有物流代收(全款订单)
|
|
|
|
+ FsExpress express = new FsExpress();
|
|
|
|
+ //express=expressService.selectFsExpressByOmsCode("SF.0235402855");
|
|
|
|
+ if(order.getPayPrice().compareTo(new BigDecimal(100))<=0){
|
|
|
|
+ express=expressService.selectFsExpressByOmsCode("ZTPDD");
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ boolean found = containsAddress(order.getUserAddress());
|
|
|
|
+ if(found){
|
|
|
|
+ express=expressService.selectFsExpressByOmsCode("SF.0235402855");
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ express=expressService.selectFsExpressByOmsCode("SF.0235402855");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ erpOrder.setExpress_code(express.getOmsCode());
|
|
|
|
+ order.setDeliveryName(express.getName());
|
|
|
|
+ order.setDeliverySn(express.getCode());
|
|
|
|
+ } else {
|
|
|
|
+ FsExpress express = new FsExpress();
|
|
|
|
+ boolean found = containsAddress(order.getUserAddress());
|
|
|
|
+ if(found){
|
|
|
|
+ if(StringUtils.isNotEmpty(company.getOmsCode())){
|
|
|
|
+ express = expressService.selectFsExpressByOmsCode(company.getOmsCode());
|
|
|
|
+ }else{
|
|
|
|
+ express=expressService.selectFsExpressByOmsCode("EMS.1");
|
|
|
|
+ }
|
|
|
|
+ } else{
|
|
|
|
+ if(StringUtils.isNotEmpty(company.getOmsCode())){
|
|
|
|
+ express = expressService.selectFsExpressByOmsCode(company.getOmsCode());
|
|
|
|
+ }else{
|
|
|
|
+ express = expressService.selectFsExpressByOmsCode("SF.0235402855");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ erpOrder.setExpress_code(express.getOmsCode());
|
|
|
|
+ order.setDeliveryName(express.getName());
|
|
|
|
+ order.setDeliverySn(express.getCode());
|
|
|
|
+ //物流代收金额
|
|
|
|
+ ErpOrderPayment codPayment = new ErpOrderPayment();
|
|
|
|
+ codPayment.setPay_type_code("cod");
|
|
|
|
+ codPayment.setPayment(order.getPayDelivery().doubleValue());
|
|
|
|
+ payments.add(codPayment);
|
|
|
|
+ erpOrder.setCod(true);
|
|
|
|
+ }
|
|
|
|
+ } else{
|
|
|
|
+ if(order.getPayDelivery().compareTo(new BigDecimal(0))==0){ //没有物流代收(全款订单)
|
|
|
|
+ FsExpress express=new FsExpress();
|
|
|
|
+ if(order.getPayPrice().compareTo(new BigDecimal(100))<=0){
|
|
|
|
+ express=expressService.selectFsExpressByOmsCode("ZTPDD");
|
|
|
|
+ }else{
|
|
|
|
+ boolean found = containsAddress(order.getUserAddress());
|
|
|
|
+ if(found){
|
|
|
|
+ express=expressService.selectFsExpressByOmsCode("SF.0235402855");
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ express=expressService.selectFsExpressByOmsCode("SF.0235402855");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ erpOrder.setExpress_code(express.getOmsCode());
|
|
|
|
+ order.setDeliveryName(express.getName());
|
|
|
|
+ order.setDeliverySn(express.getCode());
|
|
|
|
+ } else{
|
|
|
|
+ ErpOrderPayment codPayment=new ErpOrderPayment();
|
|
|
|
+ codPayment.setPay_type_code("cod");
|
|
|
|
+ codPayment.setPayment(order.getPayDelivery().doubleValue());
|
|
|
|
+ payments.add(codPayment);
|
|
|
|
+ erpOrder.setCod(true);
|
|
|
|
+ FsExpress express=new FsExpress();
|
|
|
|
+ boolean found = containsAddress(order.getUserAddress());
|
|
|
|
+ if(found){
|
|
|
|
+ express=expressService.selectFsExpressByOmsCode("EMS.1");
|
|
|
|
+ } else {
|
|
|
|
+ express=expressService.selectFsExpressByOmsCode("SF.0235402855");
|
|
|
|
+ }
|
|
|
|
+ erpOrder.setExpress_code(express.getOmsCode());
|
|
|
|
+ order.setDeliveryName(express.getName());
|
|
|
|
+ order.setDeliverySn(express.getCode());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void setJNDeLiver(FsStoreOrder order, ErpOrder erpOrder, List<ErpOrderPayment> payments) {
|
|
|
|
+ if(order.getPayDelivery().compareTo(new BigDecimal(0))!=0){ //物流代收金额
|
|
|
|
+ ErpOrderPayment codPayment=new ErpOrderPayment();
|
|
|
|
+ codPayment.setPay_type_code("cod");
|
|
|
|
+ codPayment.setPayment(order.getPayDelivery().doubleValue());
|
|
|
|
+ payments.add(codPayment);
|
|
|
|
+ erpOrder.setCod(true);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public Integer selectFsStoreOrderCountByType(Long companyId, long userId, int type) {
|
|
public Integer selectFsStoreOrderCountByType(Long companyId, long userId, int type) {
|
|
return fsStoreOrderMapper.selectFsStoreOrderCountByType(companyId,userId,type);
|
|
return fsStoreOrderMapper.selectFsStoreOrderCountByType(companyId,userId,type);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ @Transactional
|
|
public int batchUpdateErpByOrderIds(FsStoreOrderSetErpPhoneParam param) {
|
|
public int batchUpdateErpByOrderIds(FsStoreOrderSetErpPhoneParam param) {
|
|
- return fsStoreOrderMapper.batchUpdateErpByOrderIds(param);
|
|
|
|
|
|
+ //判断是根据orderId还是查询设置
|
|
|
|
+ List<Long> orderIds = param.getOrderIds();
|
|
|
|
+ if (orderIds == null || orderIds.isEmpty()) {
|
|
|
|
+ if (param.getUserPhoneMk() != null && param.getUserPhoneMk() != "") {
|
|
|
|
+ param.setUserPhone(encryptPhone(param.getUserPhoneMk()));
|
|
|
|
+ }
|
|
|
|
+ List<FsStoreOrderListVO> list = fsStoreOrderService.selectFsStoreOrderListVO(param);
|
|
|
|
+ orderIds = list.stream().map(FsStoreOrderListVO::getOrderId).collect(Collectors.toList());
|
|
|
|
+ param.setOrderIds(orderIds);
|
|
|
|
+ }
|
|
|
|
+ if (orderIds.isEmpty()){
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
|
|
+ //分配手机号
|
|
|
|
+ //1.手机号大于/等于orderIds长度
|
|
|
|
+ List<String> erpPhones = param.getErpPhone();
|
|
|
|
+ int phoneSize = erpPhones.size();
|
|
|
|
+ int orderSize = orderIds.size();
|
|
|
|
+ ArrayList<Map<String,String>> maps = new ArrayList<>();
|
|
|
|
+ if (phoneSize >= orderSize){
|
|
|
|
+ for (int i = 0; i < orderSize; i++) {
|
|
|
|
+ HashMap<String, String> map = new HashMap<>();
|
|
|
|
+ map.put("orderId",orderIds.get(i).toString());
|
|
|
|
+ map.put("erpPhone",erpPhones.get(i));
|
|
|
|
+ maps.add(map);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //2.手机号小于orderIds长度
|
|
|
|
+ int size = orderSize / phoneSize;
|
|
|
|
+ int num = orderSize % phoneSize;
|
|
|
|
+ if (num > 0){
|
|
|
|
+ size = size + 1;
|
|
|
|
+ }
|
|
|
|
+ int orderIndex = 0;
|
|
|
|
+ for (String erpPhone : erpPhones) {
|
|
|
|
+ for (int i = 0; i < size; i++) {
|
|
|
|
+ if (orderIndex > (orderSize-1)){
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ HashMap<String, String> map = new HashMap<>();
|
|
|
|
+ map.put("orderId",orderIds.get(orderIndex).toString());
|
|
|
|
+ map.put("erpPhone",erpPhone);
|
|
|
|
+ maps.add(map);
|
|
|
|
+ orderIndex++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return fsStoreOrderMapper.batchUpdateErpByOrderIds(maps);
|
|
}
|
|
}
|
|
|
|
|
|
public boolean containsAddress(String companyName) {
|
|
public boolean containsAddress(String companyName) {
|
|
@@ -3100,4 +3193,152 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
return fsStoreOrderMapper.updateStoreOrderDeliveryInfo(order);
|
|
return fsStoreOrderMapper.updateStoreOrderDeliveryInfo(order);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public R dfOrderResult(BspOrderResponse param) {
|
|
|
|
+ if (param != null){
|
|
|
|
+ log.info("代服管家订单回调,{}", JSON.toJSONString(param));
|
|
|
|
+ List<OrderResponse> list = param.getBody();
|
|
|
|
+ if (list != null && !list.isEmpty()) {
|
|
|
|
+// for (OrderResponse orderResponse : list) {
|
|
|
|
+// RlsInfo rlsInfo = orderResponse.getRlsInfo();
|
|
|
|
+// String orderNumber = orderResponse.getOrderNumber();
|
|
|
|
+// String mailNumber = orderResponse.getMailNumber();
|
|
|
|
+// if (rlsInfo != null) {
|
|
|
|
+// List<RlsDetail> rlsDetails = rlsInfo.getRlsDetail();
|
|
|
|
+// if (rlsDetails != null && !rlsDetails.isEmpty()) {
|
|
|
|
+// for (RlsDetail rlsDetail : rlsDetails) {
|
|
|
|
+// String proName = rlsDetail.getProName();
|
|
|
|
+// if (com.hc.openapi.tool.util.StringUtils.isNotBlank(proName)) {
|
|
|
|
+// FsStoreOrder order= fsStoreOrderMapper.selectFsStoreOrderByOrderCode(orderNumber);
|
|
|
|
+// if(order!=null&&order.getStatus()==2){
|
|
|
|
+// order.setDeliverySn(mailNumber);
|
|
|
|
+// order.setDeliveryName(proName);
|
|
|
|
+// order.setDeliveryCode("SF");
|
|
|
|
+//// FsExpress express=fsExpressMapper.selectFsExpressByOmsCode("SF.0"); //默认
|
|
|
|
+//// if(express!=null){
|
|
|
|
+//// order.setDeliveryName(deliverName);
|
|
|
|
+//// order.setDeliveryCode(express.getCode());
|
|
|
|
+//// }
|
|
|
|
+// order.setStatus(3);
|
|
|
|
+// order.setDeliverySendTime(DateUtils.getNowDate());
|
|
|
|
+// fsStoreOrderMapper.updateFsStoreOrder(order);
|
|
|
|
+// fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.DELIVERY_GOODS.getValue(),FsStoreOrderLogEnum.DELIVERY_GOODS.getDesc());
|
|
|
|
+// if (order.getCompanyId()!=null&&order.getCompanyId()>0){
|
|
|
|
+// companyService.subtractCompanyMoney(order);
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// FsStore store = fsStoreMapper.selectFsStoreByStoreId(order.getStoreId());
|
|
|
|
+// //订阅物流回调
|
|
|
|
+// String lastFourNumber = "";
|
|
|
|
+// if (order.getDeliveryCode().equals(ShipperCodeEnum.SF.getValue())) {
|
|
|
|
+// if (store!=null&&store.getSendPhone()!=null){
|
|
|
|
+// lastFourNumber = store.getSendPhone();
|
|
|
|
+// }else {
|
|
|
|
+// lastFourNumber = order.getUserPhone();
|
|
|
|
+// }
|
|
|
|
+// if (lastFourNumber.length() == 11) {
|
|
|
|
+// lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// expressService.subscribeEspress(order.getOrderCode(),order.getDeliveryCode(),order.getDeliverySn(),lastFourNumber);
|
|
|
|
+// }
|
|
|
|
+// break;
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return R.ok("接收成功").put("code","ok");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional
|
|
|
|
+ public R syncDfExpress(Long id) {
|
|
|
|
+ FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderByOrderId(id);
|
|
|
|
+ ExpressInfoDTO dto = getDfExpressInfoDTO(order);
|
|
|
|
+ log.info("快递鸟查询dto:{}", JSONUtil.toJsonStr(dto));
|
|
|
|
+ if (!dto.isSuccess()){
|
|
|
|
+ return R.error(dto.getReason());
|
|
|
|
+ }
|
|
|
|
+ FsStoreOrder map=new FsStoreOrder();
|
|
|
|
+ map.setDeliveryStatus(Integer.parseInt(dto.getState()));
|
|
|
|
+ map.setOrderId(order.getOrderId());
|
|
|
|
+ map.setDeliveryType(dto.getStateEx());
|
|
|
|
+ fsStoreOrderMapper.updateFsStoreOrder(map);
|
|
|
|
+ //如果是正常签收,更新订单状态
|
|
|
|
+ if(dto.getState().equals("3")&&(dto.getStateEx().equals("301")||dto.getStateEx().equals("302")||dto.getStateEx().equals("304")||dto.getStateEx().equals("311"))){
|
|
|
|
+ this.getGoods(order.getOrderId());
|
|
|
|
+ }
|
|
|
|
+ return R.ok();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public ExpressInfoDTO getDfExpressInfoDTO(FsStoreOrder order) {
|
|
|
|
+ ExpressInfoDTO expressInfoDTO = new ExpressInfoDTO();
|
|
|
|
+ ErpDeliverysRequest erpDeliverysRequest = new ErpDeliverysRequest();
|
|
|
|
+ erpDeliverysRequest.setCode(order.getOrderCode());
|
|
|
|
+ ErpDeliverysResponse deliver = null;
|
|
|
|
+ deliver = dfOrderService.getDeliver(erpDeliverysRequest);
|
|
|
|
+ if (deliver != null) {
|
|
|
|
+ if (StringUtils.isNotBlank(deliver.getErrorDesc())){
|
|
|
|
+ throw new CustomException(deliver.getErrorDesc());
|
|
|
|
+ }
|
|
|
|
+ List<ErpDeliverys> deliverys = deliver.getDeliverys();
|
|
|
|
+ if (deliverys != null && !deliverys.isEmpty()) {
|
|
|
|
+ expressInfoDTO.setLogisticCode(deliver.getCode());
|
|
|
|
+ expressInfoDTO.setShipperCode(""); //快递公司编码
|
|
|
|
+ List<TracesDTO> tracesDTOS = new ArrayList<>();
|
|
|
|
+ for (ErpDeliverys item : deliverys) {
|
|
|
|
+ TracesDTO dto = new TracesDTO();
|
|
|
|
+// dto.setAction();
|
|
|
|
+ dto.setLocation(item.getAcceptAddress());
|
|
|
|
+ dto.setAcceptStation(item.getRemark());
|
|
|
|
+ dto.setAcceptTime(item.getAcceptTime());
|
|
|
|
+ }
|
|
|
|
+ expressInfoDTO.setTraces(tracesDTOS);
|
|
|
|
+ expressInfoDTO.setOrderCode(order.getOrderCode());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return expressInfoDTO;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<DFConfigVo> getErpAccount() {
|
|
|
|
+ FsSysConfig sysConfig = configUtil.getSysConfig();
|
|
|
|
+ String dfConfigVo = sysConfig.getDfAccounts();
|
|
|
|
+ return JSON.parseArray(dfConfigVo, DFConfigVo.class);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private IErpOrderService getErpService() {
|
|
|
|
+ FsSysConfig sysConfig = configUtil.getSysConfig();
|
|
|
|
+ Integer erpOpen = sysConfig.getErpOpen();
|
|
|
|
+ if (erpOpen != null && erpOpen == 1){
|
|
|
|
+ //判断erp类型
|
|
|
|
+ Integer erpType = sysConfig.getErpType();
|
|
|
|
+ if (erpType != null){
|
|
|
|
+ IErpOrderService erpOrderService = null;
|
|
|
|
+ if (erpType == 1){
|
|
|
|
+ //管易
|
|
|
|
+ erpOrderService = gyOrderService;
|
|
|
|
+ } else if (erpType == 2){
|
|
|
|
+ //旺店通
|
|
|
|
+ erpOrderService = wdtOrderService;
|
|
|
|
+ } else if (erpType == 3){
|
|
|
|
+ //
|
|
|
|
+ erpOrderService = hzOMSOrderService;
|
|
|
|
+ } else if (erpType == 4){
|
|
|
|
+ //代服
|
|
|
|
+ erpOrderService = dfOrderService;
|
|
|
|
+ }
|
|
|
|
+ return erpOrderService;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|