diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisDestinationController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisDestinationController.java index da10ab60c..4c4202340 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisDestinationController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisDestinationController.java @@ -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 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("获取成功"); } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisDestinationService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisDestinationService.java index cb9f4fc3a..2a0eebe1f 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisDestinationService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisDestinationService.java @@ -35,6 +35,18 @@ public interface IEmisDestinationService */ public List 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); + /** * 新增目的地 * diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisDestinationServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisDestinationServiceImpl.java index fe0c9c0bc..1eeb1cdb9 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisDestinationServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisDestinationServiceImpl.java @@ -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 regionList= emisRegionMapper.selectEmisRegionList(queryEmisRegion); + if(CollectionUtil.isEmpty(regionList)){ + // 如果身份按国家获取第一个区域 + QueryWrapper 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 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); + } + /** * 新增目的地 *