三方信用修改

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>()
.eq(UserShipperEntity::getCustomerNcCode, userShipperEntity.getCustomerNcCode())
.eq(UserShipperEntity::getUserId, userShipperEntity.getUserId()));
String orgcode = userShipperMapper.getOrgNcCode(userShipperEntity1.getOrganizationId());
if (StringUtils.isEmpty(orgcode)) {
return AjaxResult.error("组织NC编码不能为空");
if (userShipperEntity1 == null) {
log.warn("未找到对应货主,custcode={}", userShipperEntity.getCustomerNcCode());
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);
String queryResult = HttpRequest.post(queryUrl)
.header("Content-Type", "application/json")
.header("uap_token", uapToken)
.header("uap_usercode", uapUsercode)
.header("uap_dataSource", uapDataSource)
.header("token", "94B3992EAD9747D3598CC6F7775F6239B5DC3B526DF7DE0091CB8B2D")
.body(queryParam.toJSONString())
.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());
// 解析org_code,支持多组织
List<Long> orgCodeList = new ArrayList<>();
if (StringUtils.isNotEmpty(userShipperEntity1.getOrgCode())) {
try {
// 解析JSON数组:[{"name":"通宇","code":2830,"ncOrganizationId":"145222101124","names":2830},...]
com.alibaba.fastjson.JSONArray orgCodeArray = com.alibaba.fastjson.JSONArray.parseArray(userShipperEntity1.getOrgCode());
if (orgCodeArray != null && !orgCodeArray.isEmpty()) {
for (int i = 0; i < orgCodeArray.size(); i++) {
com.alibaba.fastjson.JSONObject orgItem = orgCodeArray.getJSONObject(i);
Long code = orgItem.getLong("code");
if (code != null) {
orgCodeList.add(code);
}
}
}
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独立
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);
String queryResult = HttpRequest.post(queryUrl)
.header("Content-Type", "application/json")
.header("uap_token", uapToken)
.header("uap_usercode", uapUsercode)
.header("uap_dataSource", uapDataSource)
.header("token", "94B3992EAD9747D3598CC6F7775F6239B5DC3B526DF7DE0091CB8B2D")
.body(queryParam.toJSONString())
.execute()
.body();
log.info("赊销额度查询接口返回,custcode={}orgcode={}result={}", userShipperEntity.getCustomerNcCode(), orgcode, queryResult);
if (StringUtils.isNotEmpty(queryResult)) {
com.alibaba.fastjson.JSONObject resultJson = com.alibaba.fastjson.JSONObject.parseObject(queryResult);
allResults.put(userShipperEntity.getCustomerNcCode() + "_" + orgcode, 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()) {
// 解析现有的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 {
log.info("赊销额度查询无agreedaydatas返回,跳过协议明细同步custcode={}", userShipperEntity1.getCustomerNcCode());
log.info("赊销额度查询无data返回,跳过更新custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode);
}
} else {
log.info("赊销额度查询无data返回,跳过更新custcode={}", userShipperEntity1.getCustomerNcCode());
log.warn("未找到对应货主custcode={}orgCode={}", userShipperEntity.getCustomerNcCode(), orgCode);
}
} else {
log.warn("未找到对应货主custcode={}organizationId={}", userShipperEntity1.getCustomerNcCode(), userShipperDTO.getOrganizationId());
log.warn("赊销额度查询返回为空custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode);
}
} else {
log.warn("赊销额度查询返回为空custcode={}", userShipperEntity1.getCustomerNcCode());
} catch (Exception e) {
log.error("查询赊销额度异常custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode, e);
}
} catch (Exception e) {
log.error("查询赊销额度异常,custcode={}", userShipperEntity1.getCustomerNcCode(), e);
}
}
return AjaxResult.success(allResults);
@@ -1723,89 +1817,183 @@ public class UserShipperApplicationService {
UserShipperEntity userShipperEntity1 = userShipperMapper.selectOne(new LambdaQueryWrapper<UserShipperEntity>()
.eq(UserShipperEntity::getCustomerNcCode, userShipperEntity.getCustomerNcCode())
.eq(UserShipperEntity::getUserId, userShipperEntity.getUserId()));
String orgcode = userShipperMapper.getOrgNcCode(userShipperEntity1.getOrganizationId());
if (StringUtils.isEmpty(orgcode)) {
return AjaxResult.error("组织NC编码不能为空");
if (userShipperEntity1 == null) {
log.warn("未找到对应货主,custcode={}", userShipperEntity.getCustomerNcCode());
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);
String queryResult = HttpRequest.post(queryUrl)
.header("Content-Type", "application/json")
.header("uap_token", uapToken)
.header("uap_usercode", uapUsercode)
.header("uap_dataSource", uapDataSource)
.header("token", "94B3992EAD9747D3598CC6F7775F6239B5DC3B526DF7DE0091CB8B2D")
.body(queryParam.toJSONString())
.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());
// 解析org_code,支持多组织
List<Long> orgCodeList = new ArrayList<>();
if (StringUtils.isNotEmpty(userShipperEntity1.getOrgCode())) {
try {
// 解析JSON数组:[{"name":"通宇","code":2830,"ncOrganizationId":"145222101124","names":2830},...]
com.alibaba.fastjson.JSONArray orgCodeArray = com.alibaba.fastjson.JSONArray.parseArray(userShipperEntity1.getOrgCode());
if (orgCodeArray != null && !orgCodeArray.isEmpty()) {
for (int i = 0; i < orgCodeArray.size(); i++) {
com.alibaba.fastjson.JSONObject orgItem = orgCodeArray.getJSONObject(i);
Long code = orgItem.getLong("code");
if (code != null) {
orgCodeList.add(code);
}
}
}
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独立
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);
String queryResult = HttpRequest.post(queryUrl)
.header("Content-Type", "application/json")
.header("uap_token", uapToken)
.header("uap_usercode", uapUsercode)
.header("uap_dataSource", uapDataSource)
.header("token", "94B3992EAD9747D3598CC6F7775F6239B5DC3B526DF7DE0091CB8B2D")
.body(queryParam.toJSONString())
.execute()
.body();
log.info("赊销额度查询接口返回,custcode={}orgcode={}result={}", userShipperEntity.getCustomerNcCode(), orgcode, queryResult);
if (StringUtils.isNotEmpty(queryResult)) {
com.alibaba.fastjson.JSONObject resultJson = com.alibaba.fastjson.JSONObject.parseObject(queryResult);
allResults.put(userShipperEntity.getCustomerNcCode() + "_" + orgcode, 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()) {
// 解析现有的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 {
log.info("赊销额度查询无agreedaydatas返回,跳过协议明细同步custcode={}", userShipperEntity1.getCustomerNcCode());
log.info("赊销额度查询无data返回,跳过更新custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode);
}
} else {
log.info("赊销额度查询无data返回,跳过更新custcode={}", userShipperEntity1.getCustomerNcCode());
log.warn("未找到对应货主custcode={}orgCode={}", userShipperEntity.getCustomerNcCode(), orgCode);
}
} else {
log.warn("未找到对应货主custcode={}organizationId={}", userShipperEntity1.getCustomerNcCode(), userShipperDTO.getOrganizationId());
log.warn("赊销额度查询返回为空custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode);
}
} else {
log.warn("赊销额度查询返回为空custcode={}", userShipperEntity1.getCustomerNcCode());
} catch (Exception e) {
log.error("查询赊销额度异常custcode={}orgcode={}", userShipperEntity1.getCustomerNcCode(), orgcode, e);
}
} catch (Exception e) {
log.error("查询赊销额度异常,custcode={}", userShipperEntity1.getCustomerNcCode(), e);
}
}
return AjaxResult.success(allResults);
@@ -294,4 +294,7 @@ public class UserShipperEntity extends BaseVOEntity {
@ApiModelProperty(name = "组织代码")
private String orgCode;
@ApiModelProperty(name = "额度数据JSON")
private String limitDataJson;
}
@@ -356,4 +356,7 @@ public class UserShipperPo implements Serializable {
private String isCheckCredit;
@ApiModelProperty(name = "组织代码")
private String orgCode;
@ApiModelProperty(name = "额度数据JSON")
private String limitDataJson;
}