md
This commit is contained in:
parent
53d5a64830
commit
dcb615f0a2
@ -16,6 +16,7 @@ import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.xdadan.erp.common.annotation.filter.jackson.JacksonFilter;
|
||||
import com.xdadan.erp.emis.domain.EmisCountry;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@ -32,7 +33,6 @@ import com.xdadan.erp.common.core.controller.BaseController;
|
||||
import com.xdadan.erp.common.core.domain.AjaxResult;
|
||||
import com.xdadan.erp.common.core.page.TableDataInfo;
|
||||
import com.xdadan.erp.common.enums.BusinessType;
|
||||
import com.xdadan.erp.common.utils.StringUtils;
|
||||
import com.xdadan.erp.common.utils.poi.ExcelUtil;
|
||||
|
||||
import com.xdadan.erp.emis.domain.EmisDestination;
|
||||
@ -86,14 +86,19 @@ public class EmisDestinationController extends BaseController
|
||||
"id","destCode","destName","destNameEn",
|
||||
"lineCode","lineName","countryName","country","siteCode","siteName",
|
||||
},value= EmisDestination.class,type= JacksonFilter.JscksonFilterType.RESPONSE)
|
||||
public AjaxResult getDestSite(String lineCode,String province,String city,String county,String address)
|
||||
public AjaxResult getDestSite(String country,String lineCode,String province,String city,String county,String address)
|
||||
{
|
||||
if(StringUtils.isAnyEmpty(lineCode,province)){
|
||||
return AjaxResult.error("参数错误,线路和省份不能为空!");
|
||||
}
|
||||
|
||||
// startPage();
|
||||
// List<EmisDestination> list = emisDestinationService.selectEmisDestinationList(emisDestination);
|
||||
// 自动匹配
|
||||
EmisDestination dest = emisDestinationService.calcDestSite(country,lineCode,province,city,county,address);
|
||||
if(dest==null){
|
||||
return AjaxResult.error("联系客户,收件地不在服务范围!");
|
||||
}else{
|
||||
return AjaxResult.success("获取成功",dest);
|
||||
}
|
||||
|
||||
return AjaxResult.success("获取成功");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -35,6 +35,18 @@ public interface IEmisDestinationService
|
||||
*/
|
||||
public List<EmisDestination> selectEmisDestinationList(EmisDestination emisDestination);
|
||||
|
||||
|
||||
/**
|
||||
* 根据收件信息获取目的地
|
||||
* @param lineCode
|
||||
* @param province
|
||||
* @param city
|
||||
* @param county
|
||||
* @param address
|
||||
* @return
|
||||
*/
|
||||
public EmisDestination calcDestSite(String country,String lineCode,String province,String city,String county,String address);
|
||||
|
||||
/**
|
||||
* 新增目的地
|
||||
*
|
||||
|
||||
@ -11,6 +11,12 @@
|
||||
package com.xdadan.erp.emis.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.xdadan.erp.common.core.domain.entity.SysTenant;
|
||||
import com.xdadan.erp.emis.domain.EmisRegion;
|
||||
import com.xdadan.erp.emis.mapper.EmisRegionMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.xdadan.erp.emis.domain.EmisDestination;
|
||||
@ -29,6 +35,9 @@ public class EmisDestinationServiceImpl implements IEmisDestinationService
|
||||
@Autowired
|
||||
private EmisDestinationMapper emisDestinationMapper;
|
||||
|
||||
@Autowired
|
||||
private EmisRegionMapper emisRegionMapper;
|
||||
|
||||
/**
|
||||
* 查询目的地
|
||||
*
|
||||
@ -53,6 +62,60 @@ public class EmisDestinationServiceImpl implements IEmisDestinationService
|
||||
return emisDestinationMapper.selectEmisDestinationList(emisDestination);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算目的地
|
||||
* @param lineCode
|
||||
* @param province
|
||||
* @param city
|
||||
* @param county
|
||||
* @param address
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public EmisDestination calcDestSite(String country,String lineCode, String province, String city, String county, String address) {
|
||||
|
||||
// 如果省份不存在,则取目的国的地一个字段
|
||||
// 获取 areaId
|
||||
Long areaId = null;
|
||||
EmisRegion queryEmisRegion = new EmisRegion();
|
||||
queryEmisRegion.setRegionCode(province);
|
||||
List<EmisRegion> regionList= emisRegionMapper.selectEmisRegionList(queryEmisRegion);
|
||||
if(CollectionUtil.isEmpty(regionList)){
|
||||
// 如果身份按国家获取第一个区域
|
||||
QueryWrapper<EmisRegion> queryWrapper = new QueryWrapper<>();
|
||||
// 按省份获取区域
|
||||
queryWrapper.eq("region_type", "1");
|
||||
queryWrapper.eq("country_code", country);
|
||||
queryWrapper.isNotNull("area_id");
|
||||
queryWrapper.last("limit 1");
|
||||
regionList=emisRegionMapper.selectList(queryWrapper);
|
||||
|
||||
if(CollectionUtil.isEmpty(regionList)){
|
||||
return null;
|
||||
}
|
||||
}
|
||||
areaId = regionList.get(0).getAreaId();
|
||||
if(areaId == null){
|
||||
return null;
|
||||
}
|
||||
|
||||
// 查询目的地,优先根据区域查询,如果查询不到则按线路查询
|
||||
EmisDestination queryEmisDestination = new EmisDestination();
|
||||
queryEmisDestination.setLineCode(lineCode);
|
||||
queryEmisDestination.setCountryAreaId(areaId);
|
||||
List<EmisDestination> destinationList=emisDestinationMapper.selectEmisDestinationList(queryEmisDestination);
|
||||
if(CollectionUtil.isEmpty(destinationList)){
|
||||
// 目的地区域位配置,按线路查询
|
||||
queryEmisDestination.setCountryAreaId(null);
|
||||
destinationList=emisDestinationMapper.selectEmisDestinationList(queryEmisDestination);
|
||||
if(CollectionUtil.isEmpty(destinationList)){
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return destinationList.get(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增目的地
|
||||
*
|
||||
|
||||
Loading…
Reference in New Issue
Block a user