三方信用修改
This commit is contained in:
+332
-144
@@ -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为空,使用organizationId,custcode={},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为空,使用organizationId,custcode={},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);
|
||||
|
||||
+3
@@ -294,4 +294,7 @@ public class UserShipperEntity extends BaseVOEntity {
|
||||
@ApiModelProperty(name = "组织代码")
|
||||
private String orgCode;
|
||||
|
||||
@ApiModelProperty(name = "额度数据JSON")
|
||||
private String limitDataJson;
|
||||
|
||||
}
|
||||
+3
@@ -356,4 +356,7 @@ public class UserShipperPo implements Serializable {
|
||||
private String isCheckCredit;
|
||||
@ApiModelProperty(name = "组织代码")
|
||||
private String orgCode;
|
||||
|
||||
@ApiModelProperty(name = "额度数据JSON")
|
||||
private String limitDataJson;
|
||||
}
|
||||
Reference in New Issue
Block a user