三方信用修改

This commit is contained in:
赵辉
2026-06-23 10:14:06 +08:00
parent 31247d7faa
commit 3224e87814
3 changed files with 338 additions and 144 deletions
@@ -1587,89 +1587,183 @@ public class UserShipperApplicationService {
UserShipperEntity userShipperEntity1 = userShipperMapper.selectOne(new LambdaQueryWrapper<UserShipperEntity>() UserShipperEntity userShipperEntity1 = userShipperMapper.selectOne(new LambdaQueryWrapper<UserShipperEntity>()
.eq(UserShipperEntity::getCustomerNcCode, userShipperEntity.getCustomerNcCode()) .eq(UserShipperEntity::getCustomerNcCode, userShipperEntity.getCustomerNcCode())
.eq(UserShipperEntity::getUserId, userShipperEntity.getUserId())); .eq(UserShipperEntity::getUserId, userShipperEntity.getUserId()));
String orgcode = userShipperMapper.getOrgNcCode(userShipperEntity1.getOrganizationId());
if (StringUtils.isEmpty(orgcode)) { if (userShipperEntity1 == null) {
return AjaxResult.error("组织NC编码不能为空"); log.warn("未找到对应货主,custcode={}", userShipperEntity.getCustomerNcCode());
continue;
} }
try {
com.alibaba.fastjson.JSONObject queryParam = new com.alibaba.fastjson.JSONObject(); // 解析org_code,支持多组织
queryParam.put("custcode", userShipperEntity.getCustomerNcCode()); List<Long> orgCodeList = new ArrayList<>();
queryParam.put("orgcode", orgcode); if (StringUtils.isNotEmpty(userShipperEntity1.getOrgCode())) {
log.info("调用赊销额度查询接口,custcode={}orgcode={}", userShipperEntity.getCustomerNcCode(), orgcode); try {
// 解析JSON数组:[{"name":"通宇","code":2830,"ncOrganizationId":"145222101124","names":2830},...]
String queryResult = HttpRequest.post(queryUrl) com.alibaba.fastjson.JSONArray orgCodeArray = com.alibaba.fastjson.JSONArray.parseArray(userShipperEntity1.getOrgCode());
.header("Content-Type", "application/json") if (orgCodeArray != null && !orgCodeArray.isEmpty()) {
.header("uap_token", uapToken) for (int i = 0; i < orgCodeArray.size(); i++) {
.header("uap_usercode", uapUsercode) com.alibaba.fastjson.JSONObject orgItem = orgCodeArray.getJSONObject(i);
.header("uap_dataSource", uapDataSource) Long code = orgItem.getLong("code");
.header("token", "94B3992EAD9747D3598CC6F7775F6239B5DC3B526DF7DE0091CB8B2D") if (code != null) {
.body(queryParam.toJSONString()) orgCodeList.add(code);
.execute()
.body();
log.info("赊销额度查询接口返回,custcode={}result={}", userShipperEntity.getCustomerNcCode(), queryResult);
if (StringUtils.isNotEmpty(queryResult)) {
com.alibaba.fastjson.JSONObject resultJson = com.alibaba.fastjson.JSONObject.parseObject(queryResult);
allResults.put(userShipperEntity.getCustomerNcCode(), resultJson);
// 第三步:查询成功,更新货主的额度同步时间(limitTime)
if (userShipperEntity1 != null) {
// 根据查询结果同步数据
com.alibaba.fastjson.JSONObject dataJson = resultJson.getJSONObject("data");
if (dataJson != null) {
// 同步额度数据(limitdatas
com.alibaba.fastjson.JSONArray limitdatas = dataJson.getJSONArray("limitdatas");
if (limitdatas != null && !limitdatas.isEmpty()) {
com.alibaba.fastjson.JSONObject limitData = limitdatas.getJSONObject(0);
userShipperEntity1.setLimitTime(new Date());
userShipperEntity1.setAuthorizedQuota(limitData.getBigDecimal("nlimitmny"));
userShipperEntity1.setAuthorizedUsedAmount(limitData.getBigDecimal("nengrossmny"));
userShipperEntity1.setSettlementCurrency(limitData.getString("currencycode"));
userShipperEntity1.setCreditAmount(limitData.getBigDecimal("nbalancemny"));
userShipperMapper.updateById(userShipperEntity1);
log.info("更新货主额度同步成功,custcode={}shipperId={}", userShipperEntity1.getCustomerNcCode(), userShipperEntity1.getShipperId());
} else {
log.info("赊销额度查询无limitdatas返回,跳过额度更新,custcode={}", userShipperEntity1.getCustomerNcCode());
} }
}
}
log.info("解析org_code成功,custcode={}orgCodeList={}", userShipperEntity.getCustomerNcCode(), orgCodeList);
} catch (Exception e) {
log.error("解析org_code失败,custcode={}orgCode={}", userShipperEntity.getCustomerNcCode(), userShipperEntity1.getOrgCode(), e);
}
}
// 如果org_code为空或解析失败,使用原来的organizationId方式
if (orgCodeList.isEmpty()) {
Long organizationId = userShipperEntity1.getOrganizationId();
if (organizationId != null) {
orgCodeList.add(organizationId);
log.info("org_code为空,使用organizationIdcustcode={}organizationId={}", userShipperEntity.getCustomerNcCode(), organizationId);
}
}
if (orgCodeList.isEmpty()) {
log.warn("货主无组织信息,跳过查询,custcode={}", userShipperEntity.getCustomerNcCode());
continue;
}
// 遍历每个组织code,分别调用接口
for (Long orgCode : orgCodeList) {
String orgcode = userShipperMapper.getOrgNcCode(orgCode);
if (StringUtils.isEmpty(orgcode)) {
log.warn("组织NC编码为空,跳过查询,custcode={}orgCode={}", userShipperEntity.getCustomerNcCode(), orgCode);
continue;
}
try {
com.alibaba.fastjson.JSONObject queryParam = new com.alibaba.fastjson.JSONObject();
queryParam.put("custcode", userShipperEntity.getCustomerNcCode());
queryParam.put("orgcode", orgcode);
log.info("调用赊销额度查询接口,custcode={}orgcode={}", userShipperEntity.getCustomerNcCode(), orgcode);
// 同步协议明细(agreedaydatas),与limitdatas独立 String queryResult = HttpRequest.post(queryUrl)
com.alibaba.fastjson.JSONArray agreedaydatas = dataJson.getJSONArray("agreedaydatas"); .header("Content-Type", "application/json")
if (agreedaydatas != null && !agreedaydatas.isEmpty()) { .header("uap_token", uapToken)
// 先删除该货主已有的协议明细,避免重复 .header("uap_usercode", uapUsercode)
agreementDetailsMapper.delete(new LambdaQueryWrapper<AgreementDetails>() .header("uap_dataSource", uapDataSource)
.eq(AgreementDetails::getShipperId, userShipperEntity1.getShipperId())); .header("token", "94B3992EAD9747D3598CC6F7775F6239B5DC3B526DF7DE0091CB8B2D")
int i; .body(queryParam.toJSONString())
for (i = 0; i < agreedaydatas.size(); i++) { .execute()
com.alibaba.fastjson.JSONObject agreeItem = agreedaydatas.getJSONObject(i); .body();
AgreementDetails agreementDetails = new AgreementDetails(); log.info("赊销额度查询接口返回,custcode={}orgcode={}result={}", userShipperEntity.getCustomerNcCode(), orgcode, queryResult);
agreementDetails.setShipperId(userShipperEntity1.getShipperId());
agreementDetails.setOrgcode(agreeItem.getString("orgcode")); if (StringUtils.isNotEmpty(queryResult)) {
agreementDetails.setCode(agreeItem.getString("code")); com.alibaba.fastjson.JSONObject resultJson = com.alibaba.fastjson.JSONObject.parseObject(queryResult);
agreementDetails.setPday(agreeItem.getString("pday")); allResults.put(userShipperEntity.getCustomerNcCode() + "_" + orgcode, resultJson);
agreementDetails.setPname(agreeItem.getString("pname"));
agreementDetails.setPtypename(agreeItem.getString("ptypename")); // 第三步:查询成功,更新货主的额度同步时间(limitTime)
agreementDetails.setPcode(agreeItem.getString("pcode"));
agreementDetails.setPtype(agreeItem.getString("ptype")); if (userShipperEntity1 != null) {
agreementDetailsMapper.insert(agreementDetails); // 根据查询结果同步数据
com.alibaba.fastjson.JSONObject dataJson = resultJson.getJSONObject("data");
if (dataJson != null) {
// 同步额度数据(limitdatas
com.alibaba.fastjson.JSONArray limitdatas = dataJson.getJSONArray("limitdatas");
if (limitdatas != null && !limitdatas.isEmpty()) {
// 解析现有的orgCode数组
com.alibaba.fastjson.JSONArray orgCodeArray = new com.alibaba.fastjson.JSONArray();
if (StringUtils.isNotEmpty(userShipperEntity1.getOrgCode())) {
try {
orgCodeArray = com.alibaba.fastjson.JSONArray.parseArray(userShipperEntity1.getOrgCode());
} catch (Exception e) {
log.warn("解析现有orgCode失败,将创建新的数组,shipperId={}", userShipperEntity1.getShipperId());
}
}
// 将limitdatas按orgcode值合并到orgCode数组中
for (int i = 0; i < limitdatas.size(); i++) {
com.alibaba.fastjson.JSONObject limitItem = limitdatas.getJSONObject(i);
String limitOrgcode = limitItem.getString("orgcode"); // 例如 "NA01"
if (StringUtils.isNotEmpty(limitOrgcode)) {
// 在orgCode数组中查找code匹配的组织(注意:这里的code是2830, 2839等)
boolean found = false;
for (int j = 0; j < orgCodeArray.size(); j++) {
com.alibaba.fastjson.JSONObject orgItem = orgCodeArray.getJSONObject(j);
String orgItemCode = orgItem.getString("code"); // orgCode数组中的code
// 如果orgCode数组中的code与当前orgCode(如2830)匹配,将limitdatas的字段添加到该组织对象中
String currentOrgCodeStr = String.valueOf(orgCode);
if (currentOrgCodeStr.equals(orgItemCode)) {
orgItem.putAll(limitItem);
found = true;
log.info("匹配到code={}的组织,将额度数据(orgcode={})添加到orgCode中,custcode={}", orgItemCode, limitOrgcode, userShipperEntity1.getCustomerNcCode());
break;
}
}
// 如果没有找到匹配的组织,创建新的组织对象
if (!found) {
com.alibaba.fastjson.JSONObject newOrgItem = new com.alibaba.fastjson.JSONObject();
newOrgItem.put("code", orgCode); // 使用当前orgCode
newOrgItem.putAll(limitItem);
orgCodeArray.add(newOrgItem);
log.info("未找到code={}的组织,创建新组织并添加额度数据(orgcode={})custcode={}", orgCode, limitOrgcode, userShipperEntity1.getCustomerNcCode());
}
}
}
// 保存更新后的orgCode数组
userShipperEntity1.setOrgCode(orgCodeArray.toJSONString());
// 使用limitdatas中的数据更新额度字段
com.alibaba.fastjson.JSONObject firstLimitData = limitdatas.getJSONObject(0);
userShipperEntity1.setLimitTime(new Date());
userShipperEntity1.setAuthorizedQuota(firstLimitData.getBigDecimal("nlimitmny"));
userShipperEntity1.setAuthorizedUsedAmount(firstLimitData.getBigDecimal("nengrossmny"));
userShipperEntity1.setSettlementCurrency(firstLimitData.getString("currencycode"));
userShipperEntity1.setCreditAmount(firstLimitData.getBigDecimal("nbalancemny"));
userShipperMapper.updateById(userShipperEntity1);
log.info("更新货主额度同步成功,custcode={}orgcode={}shipperId={}orgCode组织数={}", userShipperEntity1.getCustomerNcCode(), orgcode, userShipperEntity1.getShipperId(), orgCodeArray.size());
} else {
log.info("赊销额度查询无limitdatas返回,跳过额度更新,custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode);
}
// 同步协议明细(agreedaydatas),与limitdatas独立
com.alibaba.fastjson.JSONArray agreedaydatas = dataJson.getJSONArray("agreedaydatas");
if (agreedaydatas != null && !agreedaydatas.isEmpty()) {
// 先删除该货主已有的协议明细,避免重复
agreementDetailsMapper.delete(new LambdaQueryWrapper<AgreementDetails>()
.eq(AgreementDetails::getShipperId, userShipperEntity1.getShipperId()));
int i;
for (i = 0; i < agreedaydatas.size(); i++) {
com.alibaba.fastjson.JSONObject agreeItem = agreedaydatas.getJSONObject(i);
AgreementDetails agreementDetails = new AgreementDetails();
agreementDetails.setShipperId(userShipperEntity1.getShipperId());
agreementDetails.setOrgcode(agreeItem.getString("orgcode"));
agreementDetails.setCode(agreeItem.getString("code"));
agreementDetails.setPday(agreeItem.getString("pday"));
agreementDetails.setPname(agreeItem.getString("pname"));
agreementDetails.setPtypename(agreeItem.getString("ptypename"));
agreementDetails.setPcode(agreeItem.getString("pcode"));
agreementDetails.setPtype(agreeItem.getString("ptype"));
agreementDetailsMapper.insert(agreementDetails);
}
userShipperEntity1.setAgreementCount(i);
userShipperMapper.updateById(userShipperEntity1);
log.info("同步协议明细成功,custcode={}orgcode={}shipperId={},共{}条", userShipperEntity1.getCustomerNcCode(), orgcode, userShipperEntity1.getShipperId(), agreedaydatas.size());
} else {
log.info("赊销额度查询无agreedaydatas返回,跳过协议明细同步,custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode);
} }
userShipperEntity1.setAgreementCount(i);
userShipperMapper.updateById(userShipperEntity1);
log.info("同步协议明细成功,custcode={}shipperId={},共{}条", userShipperEntity1.getCustomerNcCode(), userShipperEntity1.getShipperId(), agreedaydatas.size());
} else { } else {
log.info("赊销额度查询无agreedaydatas返回,跳过协议明细同步custcode={}", userShipperEntity1.getCustomerNcCode()); log.info("赊销额度查询无data返回,跳过更新custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode);
} }
} else { } else {
log.info("赊销额度查询无data返回,跳过更新custcode={}", userShipperEntity1.getCustomerNcCode()); log.warn("未找到对应货主custcode={}orgCode={}", userShipperEntity.getCustomerNcCode(), orgCode);
} }
} else { } else {
log.warn("未找到对应货主custcode={}organizationId={}", userShipperEntity1.getCustomerNcCode(), userShipperDTO.getOrganizationId()); log.warn("赊销额度查询返回为空custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode);
} }
} else { } catch (Exception e) {
log.warn("赊销额度查询返回为空custcode={}", userShipperEntity1.getCustomerNcCode()); log.error("查询赊销额度异常custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode, e);
} }
} catch (Exception e) {
log.error("查询赊销额度异常,custcode={}", userShipperEntity1.getCustomerNcCode(), e);
} }
} }
return AjaxResult.success(allResults); return AjaxResult.success(allResults);
@@ -1723,89 +1817,183 @@ public class UserShipperApplicationService {
UserShipperEntity userShipperEntity1 = userShipperMapper.selectOne(new LambdaQueryWrapper<UserShipperEntity>() UserShipperEntity userShipperEntity1 = userShipperMapper.selectOne(new LambdaQueryWrapper<UserShipperEntity>()
.eq(UserShipperEntity::getCustomerNcCode, userShipperEntity.getCustomerNcCode()) .eq(UserShipperEntity::getCustomerNcCode, userShipperEntity.getCustomerNcCode())
.eq(UserShipperEntity::getUserId, userShipperEntity.getUserId())); .eq(UserShipperEntity::getUserId, userShipperEntity.getUserId()));
String orgcode = userShipperMapper.getOrgNcCode(userShipperEntity1.getOrganizationId());
if (StringUtils.isEmpty(orgcode)) { if (userShipperEntity1 == null) {
return AjaxResult.error("组织NC编码不能为空"); log.warn("未找到对应货主,custcode={}", userShipperEntity.getCustomerNcCode());
continue;
} }
try {
com.alibaba.fastjson.JSONObject queryParam = new com.alibaba.fastjson.JSONObject(); // 解析org_code,支持多组织
queryParam.put("custcode", userShipperEntity.getCustomerNcCode()); List<Long> orgCodeList = new ArrayList<>();
queryParam.put("orgcode", orgcode); if (StringUtils.isNotEmpty(userShipperEntity1.getOrgCode())) {
log.info("调用赊销额度查询接口,custcode={}orgcode={}", userShipperEntity.getCustomerNcCode(), orgcode); try {
// 解析JSON数组:[{"name":"通宇","code":2830,"ncOrganizationId":"145222101124","names":2830},...]
String queryResult = HttpRequest.post(queryUrl) com.alibaba.fastjson.JSONArray orgCodeArray = com.alibaba.fastjson.JSONArray.parseArray(userShipperEntity1.getOrgCode());
.header("Content-Type", "application/json") if (orgCodeArray != null && !orgCodeArray.isEmpty()) {
.header("uap_token", uapToken) for (int i = 0; i < orgCodeArray.size(); i++) {
.header("uap_usercode", uapUsercode) com.alibaba.fastjson.JSONObject orgItem = orgCodeArray.getJSONObject(i);
.header("uap_dataSource", uapDataSource) Long code = orgItem.getLong("code");
.header("token", "94B3992EAD9747D3598CC6F7775F6239B5DC3B526DF7DE0091CB8B2D") if (code != null) {
.body(queryParam.toJSONString()) orgCodeList.add(code);
.execute()
.body();
log.info("赊销额度查询接口返回,custcode={}result={}", userShipperEntity.getCustomerNcCode(), queryResult);
if (StringUtils.isNotEmpty(queryResult)) {
com.alibaba.fastjson.JSONObject resultJson = com.alibaba.fastjson.JSONObject.parseObject(queryResult);
allResults.put(userShipperEntity.getCustomerNcCode(), resultJson);
// 第三步:查询成功,更新货主的额度同步时间(limitTime)
if (userShipperEntity1 != null) {
// 根据查询结果同步数据
com.alibaba.fastjson.JSONObject dataJson = resultJson.getJSONObject("data");
if (dataJson != null) {
// 同步额度数据(limitdatas
com.alibaba.fastjson.JSONArray limitdatas = dataJson.getJSONArray("limitdatas");
if (limitdatas != null && !limitdatas.isEmpty()) {
com.alibaba.fastjson.JSONObject limitData = limitdatas.getJSONObject(0);
userShipperEntity1.setLimitTime(new Date());
userShipperEntity1.setAuthorizedQuota(limitData.getBigDecimal("nlimitmny"));
userShipperEntity1.setAuthorizedUsedAmount(limitData.getBigDecimal("nengrossmny"));
userShipperEntity1.setSettlementCurrency(limitData.getString("currencycode"));
userShipperEntity1.setCreditAmount(limitData.getBigDecimal("nbalancemny"));
userShipperMapper.updateById(userShipperEntity1);
log.info("更新货主额度同步成功,custcode={}shipperId={}", userShipperEntity1.getCustomerNcCode(), userShipperEntity1.getShipperId());
} else {
log.info("赊销额度查询无limitdatas返回,跳过额度更新,custcode={}", userShipperEntity1.getCustomerNcCode());
} }
}
}
log.info("解析org_code成功,custcode={}orgCodeList={}", userShipperEntity.getCustomerNcCode(), orgCodeList);
} catch (Exception e) {
log.error("解析org_code失败,custcode={}orgCode={}", userShipperEntity.getCustomerNcCode(), userShipperEntity1.getOrgCode(), e);
}
}
// 如果org_code为空或解析失败,使用原来的organizationId方式
if (orgCodeList.isEmpty()) {
Long organizationId = userShipperEntity1.getOrganizationId();
if (organizationId != null) {
orgCodeList.add(organizationId);
log.info("org_code为空,使用organizationIdcustcode={}organizationId={}", userShipperEntity.getCustomerNcCode(), organizationId);
}
}
if (orgCodeList.isEmpty()) {
log.warn("货主无组织信息,跳过查询,custcode={}", userShipperEntity.getCustomerNcCode());
continue;
}
// 遍历每个组织code,分别调用接口
for (Long orgCode : orgCodeList) {
String orgcode = userShipperMapper.getOrgNcCode(orgCode);
if (StringUtils.isEmpty(orgcode)) {
log.warn("组织NC编码为空,跳过查询,custcode={}orgCode={}", userShipperEntity.getCustomerNcCode(), orgCode);
continue;
}
try {
com.alibaba.fastjson.JSONObject queryParam = new com.alibaba.fastjson.JSONObject();
queryParam.put("custcode", userShipperEntity.getCustomerNcCode());
queryParam.put("orgcode", orgcode);
log.info("调用赊销额度查询接口,custcode={}orgcode={}", userShipperEntity.getCustomerNcCode(), orgcode);
// 同步协议明细(agreedaydatas),与limitdatas独立 String queryResult = HttpRequest.post(queryUrl)
com.alibaba.fastjson.JSONArray agreedaydatas = dataJson.getJSONArray("agreedaydatas"); .header("Content-Type", "application/json")
if (agreedaydatas != null && !agreedaydatas.isEmpty()) { .header("uap_token", uapToken)
// 先删除该货主已有的协议明细,避免重复 .header("uap_usercode", uapUsercode)
agreementDetailsMapper.delete(new LambdaQueryWrapper<AgreementDetails>() .header("uap_dataSource", uapDataSource)
.eq(AgreementDetails::getShipperId, userShipperEntity1.getShipperId())); .header("token", "94B3992EAD9747D3598CC6F7775F6239B5DC3B526DF7DE0091CB8B2D")
int i; .body(queryParam.toJSONString())
for (i = 0; i < agreedaydatas.size(); i++) { .execute()
com.alibaba.fastjson.JSONObject agreeItem = agreedaydatas.getJSONObject(i); .body();
AgreementDetails agreementDetails = new AgreementDetails(); log.info("赊销额度查询接口返回,custcode={}orgcode={}result={}", userShipperEntity.getCustomerNcCode(), orgcode, queryResult);
agreementDetails.setShipperId(userShipperEntity1.getShipperId());
agreementDetails.setOrgcode(agreeItem.getString("orgcode")); if (StringUtils.isNotEmpty(queryResult)) {
agreementDetails.setCode(agreeItem.getString("code")); com.alibaba.fastjson.JSONObject resultJson = com.alibaba.fastjson.JSONObject.parseObject(queryResult);
agreementDetails.setPday(agreeItem.getString("pday")); allResults.put(userShipperEntity.getCustomerNcCode() + "_" + orgcode, resultJson);
agreementDetails.setPname(agreeItem.getString("pname"));
agreementDetails.setPtypename(agreeItem.getString("ptypename")); // 第三步:查询成功,更新货主的额度同步时间(limitTime)
agreementDetails.setPcode(agreeItem.getString("pcode"));
agreementDetails.setPtype(agreeItem.getString("ptype")); if (userShipperEntity1 != null) {
agreementDetailsMapper.insert(agreementDetails); // 根据查询结果同步数据
com.alibaba.fastjson.JSONObject dataJson = resultJson.getJSONObject("data");
if (dataJson != null) {
// 同步额度数据(limitdatas
com.alibaba.fastjson.JSONArray limitdatas = dataJson.getJSONArray("limitdatas");
if (limitdatas != null && !limitdatas.isEmpty()) {
// 解析现有的orgCode数组
com.alibaba.fastjson.JSONArray orgCodeArray = new com.alibaba.fastjson.JSONArray();
if (StringUtils.isNotEmpty(userShipperEntity1.getOrgCode())) {
try {
orgCodeArray = com.alibaba.fastjson.JSONArray.parseArray(userShipperEntity1.getOrgCode());
} catch (Exception e) {
log.warn("解析现有orgCode失败,将创建新的数组,shipperId={}", userShipperEntity1.getShipperId());
}
}
// 将limitdatas按orgcode值合并到orgCode数组中
for (int i = 0; i < limitdatas.size(); i++) {
com.alibaba.fastjson.JSONObject limitItem = limitdatas.getJSONObject(i);
String limitOrgcode = limitItem.getString("orgcode"); // 例如 "NA01"
if (StringUtils.isNotEmpty(limitOrgcode)) {
// 在orgCode数组中查找code匹配的组织(注意:这里的code是2830, 2839等)
boolean found = false;
for (int j = 0; j < orgCodeArray.size(); j++) {
com.alibaba.fastjson.JSONObject orgItem = orgCodeArray.getJSONObject(j);
String orgItemCode = orgItem.getString("code"); // orgCode数组中的code
// 如果orgCode数组中的code与当前orgCode(如2830)匹配,将limitdatas的字段添加到该组织对象中
String currentOrgCodeStr = String.valueOf(orgCode);
if (currentOrgCodeStr.equals(orgItemCode)) {
orgItem.putAll(limitItem);
found = true;
log.info("匹配到code={}的组织,将额度数据(orgcode={})添加到orgCode中,custcode={}", orgItemCode, limitOrgcode, userShipperEntity1.getCustomerNcCode());
break;
}
}
// 如果没有找到匹配的组织,创建新的组织对象
if (!found) {
com.alibaba.fastjson.JSONObject newOrgItem = new com.alibaba.fastjson.JSONObject();
newOrgItem.put("code", orgCode); // 使用当前orgCode
newOrgItem.putAll(limitItem);
orgCodeArray.add(newOrgItem);
log.info("未找到code={}的组织,创建新组织并添加额度数据(orgcode={})custcode={}", orgCode, limitOrgcode, userShipperEntity1.getCustomerNcCode());
}
}
}
// 保存更新后的orgCode数组
userShipperEntity1.setOrgCode(orgCodeArray.toJSONString());
// 使用limitdatas中的数据更新额度字段
com.alibaba.fastjson.JSONObject firstLimitData = limitdatas.getJSONObject(0);
userShipperEntity1.setLimitTime(new Date());
userShipperEntity1.setAuthorizedQuota(firstLimitData.getBigDecimal("nlimitmny"));
userShipperEntity1.setAuthorizedUsedAmount(firstLimitData.getBigDecimal("nengrossmny"));
userShipperEntity1.setSettlementCurrency(firstLimitData.getString("currencycode"));
userShipperEntity1.setCreditAmount(firstLimitData.getBigDecimal("nbalancemny"));
userShipperMapper.updateById(userShipperEntity1);
log.info("更新货主额度同步成功,custcode={}orgcode={}shipperId={}orgCode组织数={}", userShipperEntity1.getCustomerNcCode(), orgcode, userShipperEntity1.getShipperId(), orgCodeArray.size());
} else {
log.info("赊销额度查询无limitdatas返回,跳过额度更新,custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode);
}
// 同步协议明细(agreedaydatas),与limitdatas独立
com.alibaba.fastjson.JSONArray agreedaydatas = dataJson.getJSONArray("agreedaydatas");
if (agreedaydatas != null && !agreedaydatas.isEmpty()) {
// 先删除该货主已有的协议明细,避免重复
agreementDetailsMapper.delete(new LambdaQueryWrapper<AgreementDetails>()
.eq(AgreementDetails::getShipperId, userShipperEntity1.getShipperId()));
int i;
for (i = 0; i < agreedaydatas.size(); i++) {
com.alibaba.fastjson.JSONObject agreeItem = agreedaydatas.getJSONObject(i);
AgreementDetails agreementDetails = new AgreementDetails();
agreementDetails.setShipperId(userShipperEntity1.getShipperId());
agreementDetails.setOrgcode(agreeItem.getString("orgcode"));
agreementDetails.setCode(agreeItem.getString("code"));
agreementDetails.setPday(agreeItem.getString("pday"));
agreementDetails.setPname(agreeItem.getString("pname"));
agreementDetails.setPtypename(agreeItem.getString("ptypename"));
agreementDetails.setPcode(agreeItem.getString("pcode"));
agreementDetails.setPtype(agreeItem.getString("ptype"));
agreementDetailsMapper.insert(agreementDetails);
}
userShipperEntity1.setAgreementCount(i);
userShipperMapper.updateById(userShipperEntity1);
log.info("同步协议明细成功,custcode={}orgcode={}shipperId={},共{}条", userShipperEntity1.getCustomerNcCode(), orgcode, userShipperEntity1.getShipperId(), agreedaydatas.size());
} else {
log.info("赊销额度查询无agreedaydatas返回,跳过协议明细同步,custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode);
} }
userShipperEntity1.setAgreementCount(i);
userShipperMapper.updateById(userShipperEntity1);
log.info("同步协议明细成功,custcode={}shipperId={},共{}条", userShipperEntity1.getCustomerNcCode(), userShipperEntity1.getShipperId(), agreedaydatas.size());
} else { } else {
log.info("赊销额度查询无agreedaydatas返回,跳过协议明细同步custcode={}", userShipperEntity1.getCustomerNcCode()); log.info("赊销额度查询无data返回,跳过更新custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode);
} }
} else { } else {
log.info("赊销额度查询无data返回,跳过更新custcode={}", userShipperEntity1.getCustomerNcCode()); log.warn("未找到对应货主custcode={}orgCode={}", userShipperEntity.getCustomerNcCode(), orgCode);
} }
} else { } else {
log.warn("未找到对应货主custcode={}organizationId={}", userShipperEntity1.getCustomerNcCode(), userShipperDTO.getOrganizationId()); log.warn("赊销额度查询返回为空custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode);
} }
} else { } catch (Exception e) {
log.warn("赊销额度查询返回为空custcode={}", userShipperEntity1.getCustomerNcCode()); log.error("查询赊销额度异常custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode, e);
} }
} catch (Exception e) {
log.error("查询赊销额度异常,custcode={}", userShipperEntity1.getCustomerNcCode(), e);
} }
} }
return AjaxResult.success(allResults); return AjaxResult.success(allResults);
@@ -294,4 +294,7 @@ public class UserShipperEntity extends BaseVOEntity {
@ApiModelProperty(name = "组织代码") @ApiModelProperty(name = "组织代码")
private String orgCode; private String orgCode;
@ApiModelProperty(name = "额度数据JSON")
private String limitDataJson;
} }
@@ -356,4 +356,7 @@ public class UserShipperPo implements Serializable {
private String isCheckCredit; private String isCheckCredit;
@ApiModelProperty(name = "组织代码") @ApiModelProperty(name = "组织代码")
private String orgCode; private String orgCode;
@ApiModelProperty(name = "额度数据JSON")
private String limitDataJson;
} }