demand: 新增筛选网点接口。筛选供应商接口返回nameEn.

committer: heyu
This commit is contained in:
aike 2025-06-25 10:20:43 +08:00
parent 1fc7fb52c5
commit c54ef63b78
7 changed files with 65 additions and 7 deletions

View File

@ -17,8 +17,11 @@ import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import com.xdadan.erp.common.annotation.filter.jackson.JacksonFilter;
import com.xdadan.erp.emis.domain.EmisSupplier;
import com.xdadan.erp.emis.service.EmisBaseService;
import com.xdadan.erp.emis.utils.WaybillHelper;
import jodd.util.StringUtil;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@ -70,6 +73,14 @@ public class EmisSiteController extends EmisBaseController
}
@GetMapping("/chooseSite")
public TableDataInfo chooseSite(EmisSite emisSite) {
startPage();
List<EmisSite> list = emisSiteService.selectSiteByConditions(emisSite);
return getDataTable(list);
}
/**
* 查询网点-精简
*/

View File

@ -93,4 +93,11 @@ public interface EmisSiteMapper extends BaseMapper<EmisSite>
* @return
*/
List<EmisSite> selectSeaWaySiteList(EmisSite emisSite);
/**
*
* @param emisSite
* @return
*/
List<EmisSite> selectSiteByConditions(EmisSite emisSite);
}

View File

@ -84,4 +84,11 @@ public interface IEmisSiteService
* @return 海运网点
*/
List<EmisSite> selectSeaWaySiteList(EmisSite emisSite);
/**
*
* @param emisSite
* @return
*/
List<EmisSite> selectSiteByConditions(EmisSite emisSite);
}

View File

@ -10,6 +10,7 @@
package com.xdadan.erp.emis.service.impl;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -193,4 +194,9 @@ public class EmisSiteServiceImpl extends EmisBaseService implements IEmisSiteSer
return emisSiteMapper.selectSeaWaySiteList(emisSite);
}
@Override
public List<EmisSite> selectSiteByConditions(EmisSite emisSite) {
return emisSiteMapper.selectSiteByConditions(emisSite);
}
}

View File

@ -138,20 +138,24 @@ public class EmisSupplierServiceImpl implements IEmisSupplierService
for (EmisSupplier supplier : originalList) {
String code = supplier.getCode();
String name = supplier.getName();
String nameEn = supplier.getNameEn();
// 如果code或name包含逗号,说明有多个值需要拆分
// 如果code、name或nameEn包含逗号,说明有多个值需要拆分
if (StringUtils.isNotBlank(code) && code.contains(",") ||
StringUtils.isNotBlank(name) && name.contains(",")) {
StringUtils.isNotBlank(name) && name.contains(",") ||
StringUtils.isNotBlank(nameEn) && nameEn.contains(",")) {
String[] codes = StringUtils.isNotBlank(code) ? code.split(",") : new String[0];
String[] names = StringUtils.isNotBlank(name) ? name.split(",") : new String[0];
String[] nameEns = StringUtils.isNotBlank(nameEn) ? nameEn.split(",") : new String[0];
// 取两个数组的最大长度,确保能处理code和name数量不一致的情况
int maxLength = Math.max(codes.length, names.length);
// 取三个数组的最大长度,确保能处理code、name和nameEn数量不一致的情况
int maxLength = Math.max(Math.max(codes.length, names.length), nameEns.length);
for (int i = 0; i < maxLength; i++) {
String currentCode = null;
String currentName = null;
String currentNameEn = null;
if (i < codes.length) {
currentCode = codes[i].trim();
@ -159,6 +163,9 @@ public class EmisSupplierServiceImpl implements IEmisSupplierService
if (i < names.length) {
currentName = names[i].trim();
}
if (i < nameEns.length) {
currentNameEn = nameEns[i].trim();
}
// 如果code为空或已存在,跳过
if (StringUtils.isBlank(currentCode) || codeSet.contains(currentCode)) {
@ -169,14 +176,15 @@ public class EmisSupplierServiceImpl implements IEmisSupplierService
codeSet.add(currentCode);
EmisSupplier newSupplier = new EmisSupplier();
// 设置拆分后的code和name
// 设置拆分后的code、name和nameEn
newSupplier.setCode(currentCode);
newSupplier.setName(currentName);
newSupplier.setNameEn(currentNameEn);
resultList.add(newSupplier);
}
} else {
// 如果code和name都不包含逗号,检查是否已存在
// 如果code、name和nameEn都不包含逗号,检查是否已存在
if (StringUtils.isNotBlank(code) && !codeSet.contains(code)) {
codeSet.add(code);
resultList.add(supplier);

View File

@ -761,4 +761,19 @@
#{id}
</foreach>
</delete>
<select id="selectSiteByConditions" parameterType="EmisSite" resultMap="EmisSiteResult">
select DISTINCT r.next_site_code as site_code, s.site_name, s.site_name_en, s.parent_site_code,province, size_code2,
size_code3
from emis_trans_plan_rule r
left join emis_site s on r.next_site_code = s.site_code and s.del_flag='0'
<where>
r.del_flag = '0'
<if test="params.startSiteCode != null and params.startSiteCode != ''">and r.start_site_code =
#{params.startSiteCode}
</if>
</where>
order by r.id desc
</select>
</mapper>

View File

@ -263,7 +263,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
(SELECT GROUP_CONCAT(s.name)
FROM emis_supplier s
WHERE FIND_IN_SET(s.code, r.supplier_code)
AND s.del_flag = '0') as name
AND s.del_flag = '0') as name,
(SELECT GROUP_CONCAT(s.name_en)
FROM emis_supplier s
WHERE FIND_IN_SET(s.code, r.supplier_code)
AND s.del_flag = '0') as name_en
from emis_trans_plan_rule r
<where>
r.del_flag = '0'