This commit is contained in:
linfso 2024-04-27 19:16:53 +08:00
parent 53d5a64830
commit dcb615f0a2
3 changed files with 86 additions and 6 deletions

View File

@ -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("获取成功");
}

View File

@ -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);
/**
* 新增目的地
*

View File

@ -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);
}
/**
* 新增目的地
*