|
|
@@ -18,6 +18,7 @@ import com.ruoyi.common.core.utils.StringUtils;
|
|
|
import com.ruoyi.common.datascope.annotation.DataScope;
|
|
|
import com.ruoyi.common.redis.service.RedisIdGenerator;
|
|
|
import com.ruoyi.common.security.utils.SecurityUtils;
|
|
|
+import com.ruoyi.front.service.impl.Kuaidi100Service;
|
|
|
import com.ruoyi.logistics.constant.JDDictConstants;
|
|
|
import com.ruoyi.logistics.constant.RedisCacheConstants;
|
|
|
import com.ruoyi.logistics.domain.BizAddressBook;
|
|
|
@@ -72,6 +73,9 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
|
|
|
@Autowired
|
|
|
private SysDeptRateServiceImpl sysDeptRateService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private Kuaidi100Service kuaidi100Service;
|
|
|
+
|
|
|
/**
|
|
|
* 查询运单管理
|
|
|
*
|
|
|
@@ -457,7 +461,28 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
|
|
|
if (StringUtils.isBlank(dto.getSenderAddress())) {
|
|
|
throw new ServiceException("数据异常!寄件详细地址不能为空");
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ Map param = new HashMap();
|
|
|
+ param.put("param", dto.getSenderAddress());
|
|
|
+ try {
|
|
|
+ Map result = kuaidi100Service.queryIcrExpres(param);
|
|
|
+ Map<String, Object> receiverData = (Map<String, Object>) result.get("data");
|
|
|
+ List<Map<String, Object>> receiverResultList = (List<Map<String, Object>>) receiverData.get("result");
|
|
|
+ Map<String, Object> receiverResult = receiverResultList.get(0);
|
|
|
+ Map<String, Object> receiverXzq = (Map<String, Object>) receiverResult.get("xzq");
|
|
|
+ // 从 fullName 拆分 省,市,区
|
|
|
+ String receiverFullName = (String) receiverXzq.get("fullName");
|
|
|
+ String[] receiverSplit = receiverFullName.split(",");
|
|
|
+ String receiverProvince = receiverSplit[0];
|
|
|
+ String receiverCity = receiverSplit[1];
|
|
|
+ String receiverDistrict = receiverSplit[2];
|
|
|
+ dto.setSenderProvince(receiverProvince);
|
|
|
+ dto.setSenderCity(receiverCity);
|
|
|
+ dto.setSenderCounty(receiverDistrict);
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new ServiceException("数据异常!寄件详细地址识别有误");
|
|
|
+ }
|
|
|
+
|
|
|
// 校验收件人信息
|
|
|
if (StringUtils.isBlank(dto.getReceiverName())) {
|
|
|
throw new ServiceException("数据异常!收件人姓名不能为空");
|
|
|
@@ -468,6 +493,25 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
|
|
|
if (StringUtils.isBlank(dto.getReceiverAddress())) {
|
|
|
throw new ServiceException("数据异常!收件详细地址不能为空");
|
|
|
}
|
|
|
+ param.put("param", dto.getSenderAddress());
|
|
|
+ try {
|
|
|
+ Map result = kuaidi100Service.queryIcrExpres(param);
|
|
|
+ Map<String, Object> receiverData = (Map<String, Object>) result.get("data");
|
|
|
+ List<Map<String, Object>> receiverResultList = (List<Map<String, Object>>) receiverData.get("result");
|
|
|
+ Map<String, Object> receiverResult = receiverResultList.get(0);
|
|
|
+ Map<String, Object> receiverXzq = (Map<String, Object>) receiverResult.get("xzq");
|
|
|
+ // 从 fullName 拆分 省,市,区
|
|
|
+ String receiverFullName = (String) receiverXzq.get("fullName");
|
|
|
+ String[] receiverSplit = receiverFullName.split(",");
|
|
|
+ String receiverProvince = receiverSplit[0];
|
|
|
+ String receiverCity = receiverSplit[1];
|
|
|
+ String receiverDistrict = receiverSplit[2];
|
|
|
+ dto.setReceiverProvince(receiverProvince);
|
|
|
+ dto.setReceiverCity(receiverCity);
|
|
|
+ dto.setReceiverCounty(receiverDistrict);
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new ServiceException("数据异常!收件详细地址识别有误");
|
|
|
+ }
|
|
|
|
|
|
// 校验货物信息
|
|
|
if (StringUtils.isBlank(dto.getGoodsName())) {
|
|
|
@@ -487,9 +531,11 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
|
|
|
if (dto.getSendStartTime() == null || dto.getSendEndTime() == null) {
|
|
|
throw new ServiceException("数据异常!上门取件开始时间和结束时间不能为空");
|
|
|
}
|
|
|
-// if (dto.getSendStartTime().after(dto.getSendEndTime())) {
|
|
|
-// throw new ServiceException("数据异常!上门取件开始时间不能晚于结束时间");
|
|
|
-// }
|
|
|
+ dto.setPickupStartTime(DateUtils.dateTime(dto.getSendStartTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
+ dto.setPickupEndTime(DateUtils.dateTime(dto.getSendEndTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
+ if (dto.getPickupStartTime().getTime() > dto.getPickupEndTime().getTime()) {
|
|
|
+ throw new ServiceException("数据异常!上门取件开始时间不能大于上门取件结束时间");
|
|
|
+ }
|
|
|
|
|
|
// 校验产品类型
|
|
|
if (StringUtils.isBlank(dto.getProductCode())) {
|