客商主数据查询BUG修改
This commit is contained in:
+28
-1
@@ -8,6 +8,7 @@ import com.linke.thirdParty.domain.departInterfaceInfo.repository.mapper.SysDepa
|
||||
import com.mhd.common.core.domain.thirdparty.MdmMerchantQueryDTO;
|
||||
import com.mhd.common.core.domain.thirdparty.MdmMerchantQueryResultDTO;
|
||||
import com.mhd.common.core.domain.thirdparty.MdmMerchantRecordDTO;
|
||||
import com.mhd.common.core.domain.thirdparty.MdmMerchantSyncFilter;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.StringUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -23,6 +24,7 @@ import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 北京三维天地 MDM 客商主数据查询
|
||||
@@ -43,7 +45,32 @@ public class MdmMasterDataApplicationService {
|
||||
log.info("MDM客商查询请求 orgNcCode={}, page={}, lastTime={}",
|
||||
queryDTO.getOrgNcCode(), queryDTO.getCurrentPage(), queryDTO.getLastModifyRecordTime());
|
||||
String responseBody = doPost(config.url, config.usercode, config.password, requestBody);
|
||||
return parseResponse(responseBody);
|
||||
MdmMerchantQueryResultDTO result = parseResponse(responseBody);
|
||||
return applyOrgFilter(queryDTO, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* MDM 对 DESC24 条件未严格过滤,按 orgNcCode 在应用侧二次过滤并修正分页描述。
|
||||
*/
|
||||
private MdmMerchantQueryResultDTO applyOrgFilter(MdmMerchantQueryDTO queryDTO, MdmMerchantQueryResultDTO result) {
|
||||
if (result == null || StringUtils.isEmpty(queryDTO.getOrgNcCode())
|
||||
|| result.getDataInfo() == null || result.getDataInfo().isEmpty()) {
|
||||
return result;
|
||||
}
|
||||
String orgNcCode = queryDTO.getOrgNcCode().trim();
|
||||
int rawCount = result.getDataInfo().size();
|
||||
List<MdmMerchantRecordDTO> filtered = result.getDataInfo().stream()
|
||||
.filter(record -> MdmMerchantSyncFilter.belongsToOrg(record.getDesc24(), orgNcCode))
|
||||
.collect(Collectors.toList());
|
||||
result.setDataInfo(filtered);
|
||||
if (rawCount != filtered.size()) {
|
||||
String note = String.format("(MDM原始%d条,按DESC24=%s过滤后%d条;MDM总条数totalNumber为未过滤全库统计)",
|
||||
rawCount, orgNcCode, filtered.size());
|
||||
result.setDesc(StringUtils.isEmpty(result.getDesc()) ? note : result.getDesc() + note);
|
||||
log.info("MDM客商查询应用侧过滤 orgNcCode={}, rawPageSize={}, filteredPageSize={}, mdmTotalNumber={}",
|
||||
orgNcCode, rawCount, filtered.size(), result.getTotalNumber());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private MdmConfig loadConfig() {
|
||||
|
||||
Reference in New Issue
Block a user