检验信用;

This commit is contained in:
王奎兴
2026-06-17 15:38:19 +08:00
parent 23dc97f1d0
commit 93a6f7228c
11 changed files with 829 additions and 9 deletions
@@ -11,6 +11,7 @@ import com.mhd.common.core.domain.todo.StatisticalMattersDo;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.system.api.domain.UserDTO;
import com.mhd.system.api.domain.UserShipperFeignDTO;
import com.mhd.system.api.domain.UserShipperQueryDTO;
import com.mhd.system.api.domain.UserUpdateDTO;
import com.mhd.system.api.factory.RemoteUserFeignFallbackFactory;
@@ -218,4 +219,8 @@ public interface UserServiceFeign {
@PostMapping("/userShipperApi/getCustomerNcCodeBatch")
AjaxResult getCustomerNcCodeBatch(@RequestBody List<Long> shipperIdList);
@ApiOperation("查询赊销额度")
@PostMapping("/userShipperApi/querySaleCreditLimitFeign")
public AjaxResult querySaleCreditLimitFeign(@RequestBody UserShipperFeignDTO userShipperDTO);
}
@@ -0,0 +1,293 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class UserShipperEntityFeign extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
@ApiModelProperty(name = "用户主表ID")
private Long shipperId;
@ApiModelProperty(name = "用户主表ID")
private Long userId;
@ApiModelProperty(name = "上级货主表ID")
private Long parentShipperId;
@ApiModelProperty(name = "货主类型:0-无状态,1-个人,2-企业,3-个体工商户,4-企业员工")
private Integer shipperType;
@ApiModelProperty(name = "货主类别:1-普通客户 2-月结客户")
private Integer shipperCategory;
@ApiModelProperty(name = "企业名称")
private String shipperEnterpriseName;
@ApiModelProperty(name = "企业统一社会信用代码")
private String shipperEnterpriseSocialCreditCode;
@ApiModelProperty(name = "企业注册电话")
private String shipperEnterprisePhone;
@ApiModelProperty(name = "企业注册地址")
private String shipperEnterpriseAddress;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "企业营业期限起")
private Date shipperEnterpriseLicenseDateFrom;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "企业营业期限止")
private Date shipperEnterpriseLicenseDateTo;
@ApiModelProperty(name = "纳税人资质")
private String shipperEnterpriseTaxpayer;
@ApiModelProperty(name = "企业营业执照是否长期:0-无状态,1-是,2-否")
private Integer shipperEnterpriseLicenseLong;
@ApiModelProperty(name = "营业执照照片")
private String shipperEnterpriseLicenseFrontUrl;
@ApiModelProperty(name = "是否法人:0-无状态,1-是,2-否")
private Integer shipperCorp;
/**
* 法人姓名
*/
@ApiModelProperty(name = "法人姓名")
private String shipperCorpName;
/** 企业法人姓名 */
@ApiModelProperty("企业法人姓名")
@Excel(name = "企业法人姓名")
private String shipperCorpLegalName;
@ApiModelProperty(name = "法人身份证号")
private String shipperCorpIdcardNumber;
@ApiModelProperty(name = "法人身份证号加密")
private String shipperCorpIdcardNumberDes;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "法人身份证有效期自")
private Date shipperCorpIdcardDateFrom;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "法人身份证有效期止")
private Date shipperCorpIdcardDateTo;
@ApiModelProperty(name = "法人身份证是否长期:0-无状态,1-是,2-否")
private Integer shipperCorpIdcardLong;
@ApiModelProperty(name = "法人身份证正面照片")
private String shipperCorpIdcardFrontUrl;
@ApiModelProperty(name = "法人身份证反面照片")
private String shipperCorpIdcardBackUrl;
@ApiModelProperty(name = "法人身份证手持照片")
private String shipperCorpIdcardInhandUrl;
@ApiModelProperty(name = "托运人个体货主认证状态:0-无状态,1-未认证,2-正在审核,3-认证通过,4-认证失败,5-认证失效")
private Integer shipperFill;
@ApiModelProperty(name = "托运人个人认证时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date shipperFillTime;
@ApiModelProperty(name = "托运人个体货主审核人员id")
private Long shipperFillAuthId;
@ApiModelProperty(name = "托运人个体货主审核人员")
private String shipperFillAuthName;
@ApiModelProperty(name = "托运人个体货主审核原因")
private String shipperFillRemark;
@ApiModelProperty(name = "托运人发货企业认证状态:0-无状态,1-未认证,2-正在审核,3-认证通过,4-认证失败,5-认证失效")
private Integer shipperEnterpriseFill;
@ApiModelProperty(name = "托运人发货企业认证时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date shipperEnterpriseFillTime;
@ApiModelProperty(name = "托运人发货企业审核人员id")
private Long shipperEnterpriselAuthId;
@ApiModelProperty(name = "托运人发货企业审核人员")
private String shipperEnterpriselAuthName;
@ApiModelProperty(name = "托运人发货企业审核原因")
private String shipperEnterpriseFillRemark;
@ApiModelProperty(name = "纳税人识别号")
private String taxpayerNumber;
@ApiModelProperty(name = "托运人发货企业审核原因")
private String taxpayerQualification;
@ApiModelProperty(name = "营业执照过期日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date businessLicenseDate;
@ApiModelProperty(value = "所在地区省市县名称")
private String area;
@ApiModelProperty(name = "所在地区县区编码")
private String areaId;
@ApiModelProperty(name = "详细地址")
private String detailAddress;
@ApiModelProperty(name = "行业")
private String trade;
@ApiModelProperty(name = "经营范围")
private String businessScope;
@ApiModelProperty(name = "营业期限")
private String businessTerm;
@ApiModelProperty(name = "注册地址")
private String regAddress;
@ApiModelProperty(name = "注册资本")
private String capital;
@ApiModelProperty(name = "成立日期")
private String establishDate;
@ApiModelProperty(name = "账号标识,创建后账号在e签宝平台中的唯一标识(认证授权ID-保留最新)")
private String companyAccountId ;
@ApiModelProperty(name = "用户电子签章(机构认证授权长连接)")
private String companyTemplateSeal;
@ApiModelProperty(name = "月结标识 1-是 2-否")
private Integer monthlySettlementFlag;
@ApiModelProperty(name = "货源单自动审核(1-是 2-否)")
private Integer isAutoAuditOrder;
@ApiModelProperty(name = "回单原件标记(1-需要,2-不需要)")
private Integer originalReceiptFlag;
@ApiModelProperty(name = "运费节点(0-无要求,1-确认回单,2-纸质回单)")
private Integer freightNode;
@ApiModelProperty(name = "e签宝授权认证状态(0-未授权,1-授权中,2-授权完成,3-授权失败)")
private Integer esignAuthStatus;
@ApiModelProperty(name = "e签宝跨企业授权状态(0-未授权,1-授权中,2-授权完成,3-授权失败)")
private Integer esignEnterpriseStatus;
@ApiModelProperty(name = "e签宝跨企业授权业务流程编号")
private String esignSealAuthId;
@ApiModelProperty(value = "授权额度")
private BigDecimal authorizedQuota;
@ApiModelProperty(value = "结算天数")
private Integer settlementDay;
@ApiModelProperty(value = "已使用额度")
private BigDecimal authorizedUsedAmount;
private String remark;
@ApiModelProperty(name = "数据来源:1-接口同步 2-人工新增")
private Integer dataSource;
@ApiModelProperty(name = "客户nc编码")
private String customerNcCode;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("职务/角色权限字符,控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasRole('admin')`)")
private String roleCode;
@ApiModelProperty("货主/供应商/客户编码")
private String userMemberCode;
@ApiModelProperty("货主/供应商/客户名称")
private String userNameShipper;
@ApiModelProperty("联系人")
private String emergencyContactName;
@ApiModelProperty("联系电话")
private String emergencyContactPhone;
@ApiModelProperty("省市区编码,6位")
private Long userAreaCountyId;
@ApiModelProperty("省事区名称")
private String userAreaName;
@ApiModelProperty("详细地址")
private String userAreaAddress;
@ApiModelProperty("法人代表")
private String legalRepresentative;
@ApiModelProperty("统一编码")
private String unifiedCode;
@ApiModelProperty("注册电话")
private String registeredPhone;
@ApiModelProperty("注册地址")
private String registeredAddress;
@ApiModelProperty("传真")
private String fax;
@ApiModelProperty("付款银行")
private String paymentBank;
@ApiModelProperty("付款账户")
private String paymentAccount;
@ApiModelProperty("发票抬头")
private String invoiceTitle;
@ApiModelProperty("税号")
private String taxNumber;
@ApiModelProperty(name = "邮箱")
private String userEmail;
@ApiModelProperty(name = "备注")
private String userRemark;
@ApiModelProperty(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty(name = "组织表ID")
private Long organizationId;
@ApiModelProperty(name = "组织名称")
private String organizationName;
@ApiModelProperty(name = "推送状态 1-未推送 2-推送中 3-推送成功 4-推送失败")
private Integer pushStatus;
@ApiModelProperty(name = "推送时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date pushTime;
@ApiModelProperty(name = "推送人")
private Long pushBy;
@ApiModelProperty(name = "推送人姓名")
private String pushByName;
@ApiModelProperty(name = "额度同步时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date limitTime;
@ApiModelProperty(name = "信用余额")
private BigDecimal creditAmount;
@ApiModelProperty("协议数量")
private Integer agreementCount;
@ApiModelProperty(name = "是否校验信用")
private String isCheckCredit;
}
@@ -0,0 +1,270 @@
package com.mhd.system.api.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.annotation.fieldsetvalue.NeedSetValue;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
public class UserShipperFeignDTO extends UserDTO {
private static final long serialVersionUID = 1L;
@ApiModelProperty(name = "角色表ID集合")
private List<Long> roleIds;
@ApiModelProperty(name = "货主表ID")
private Long shipperId;
@ApiModelProperty(name = "用户主表ID")
private Long userId;
@ApiModelProperty(name = "上级货主表ID")
private Long parentShipperId;
@ApiModelProperty(name = "货主类型:0-无状态,1-个人,2-企业")
private Integer shipperType;
@ApiModelProperty(name = "货主类别:1-普通客户 2-月结客户")
private Integer shipperCategory;
@ApiModelProperty(name = "企业名称")
private String shipperEnterpriseName;
@ApiModelProperty(name = "企业统一社会信用代码")
private String shipperEnterpriseSocialCreditCode;
@ApiModelProperty(name = "企业注册电话")
private String shipperEnterprisePhone;
@ApiModelProperty(name = "企业注册地址")
private String shipperEnterpriseAddress;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "企业营业期限起")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipperEnterpriseLicenseDateFrom;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "企业营业期限止")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipperEnterpriseLicenseDateTo;
@ApiModelProperty(name = "企业营业执照是否长期:0-无状态,1-是,2-否")
private Integer shipperEnterpriseLicenseLong;
@ApiModelProperty(name = "纳税人资质")
private String shipperEnterpriseTaxpayer;
@ApiModelProperty(name = "营业执照照片")
@NeedSetValue
private String shipperEnterpriseLicenseFrontUrl;
@ApiModelProperty(name = "是否法人:0-无状态,1-是,2-否")
private Integer shipperCorp;
/**
* 法人姓名
*/
@ApiModelProperty(name = "法人姓名")
private String shipperCorpName;
/** 企业法人姓名 */
@ApiModelProperty("企业法人姓名")
@Excel(name = "企业法人姓名")
private String shipperCorpLegalName;
@ApiModelProperty(name = "法人身份证号")
private String shipperCorpIdcardNumber;
@ApiModelProperty(name = "法人身份证号加密")
private String shipperCorpIdcardNumberDes;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "法人身份证有效期自")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipperCorpIdcardDateFrom;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "法人身份证有效期止")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipperCorpIdcardDateTo;
@ApiModelProperty(name = "法人身份证是否长期:0-无状态,1-是,2-否")
private Integer shipperCorpIdcardLong;
@ApiModelProperty(name = "法人身份证正面照片")
@NeedSetValue
private String shipperCorpIdcardFrontUrl;
@ApiModelProperty(name = "法人身份证反面照片")
@NeedSetValue
private String shipperCorpIdcardBackUrl;
@ApiModelProperty(name = "法人身份证手持照片")
@NeedSetValue
private String shipperCorpIdcardInhandUrl;
@ApiModelProperty(name = "货主审核状态:0-无状态,1-未认证,2-待审核,3-已通过,4-已驳回")
private Integer shipperAuthStatus;
@ApiModelProperty(name = "货主审核人用户姓名")
private String shipperAuthByUsername;
@ApiModelProperty(name = "货主审核时间")
private Date shipperAuthTime;
@ApiModelProperty(name = "货主审核原因")
private String shipperStatusRemark;
@ApiModelProperty(value = "创建时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeFrom;
@ApiModelProperty(value = "创建时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeTo;
@ApiModelProperty(name = "审核角色:1-个人托运人,2-企业托运人")
private Integer authType;
@ApiModelProperty(name = "新增托运人步骤(1-用户注册,2-提交认证资料,3-认证结果)")
private Integer stepFlag;
@ApiModelProperty(name = "纳税人识别号")
private String taxpayerNumber;
@ApiModelProperty(name = "托运人发货企业审核原因")
private String taxpayerQualification;
@ApiModelProperty(name = "营业执照过期日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date businessLicenseDate;
@ApiModelProperty(value = "所在地区省市县名称")
private String area;
@ApiModelProperty(name = "所在地区县区编码")
private String areaId;
@ApiModelProperty(name = "详细地址")
private String detailAddress;
@ApiModelProperty(name = "行业")
private String trade;
@ApiModelProperty(name = "经营范围")
private String businessScope;
@ApiModelProperty(name = "营业期限")
private String businessTerm;
@ApiModelProperty(name = "注册地址")
private String regAddress;
@ApiModelProperty(name = "注册资本")
private String capital;
@ApiModelProperty(name = "成立日期")
private String establishDate;
@ApiModelProperty(name = "账号标识,创建后账号在e签宝平台中的唯一标识")
private String companyAccountId ;
@ApiModelProperty(name = "用户电子签章")
private String companyTemplateSeal;
@ApiModelProperty(name = "月结标识 1-是 2-否")
private Integer monthlySettlementFlag;
@ApiModelProperty(name = "总授信额度")
private BigDecimal totalLimit;
@ApiModelProperty(name = "货源单自动审核(1-是 2-否)")
private Integer isAutoAuditOrder;
@ApiModelProperty(name = "托运人个体货主认证状态:0-无状态,1-未认证,2-正在审核,3-认证通过,4-认证失败,5-认证失效")
private Integer shipperFill;
@ApiModelProperty(name = "托运人发货企业认证状态:0-无状态,1-未认证,2-正在审核,3-认证通过,4-认证失败,5-认证失效")
private Integer shipperEnterpriseFill;
@ApiModelProperty(name = "回单原件标记(1-需要,2-不需要)")
private Integer originalReceiptFlag;
@ApiModelProperty(name = "运费节点(0-无要求,1-确认回单,2-纸质回单)")
private Integer freightNode;
@ApiModelProperty(name = "用户主表ID集合")
private List<Long> userIdList;
@ApiModelProperty(name = "备注信息")
private String remark;
@ApiModelProperty(name = "数据来源:1-接口同步 2-人工新增")
private Integer dataSource;
@ApiModelProperty("客户nc编码")
private String customerNcCode;
@ApiModelProperty("客户nc编码列表")
private List<UserShipperEntityFeign> customerNcCodeList;
@ApiModelProperty("组织ID")
private Long organizationId;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("货主/供应商/客户编码")
private String userMemberCode;
@ApiModelProperty("货主/供应商/客户名称")
private String userNameShipper;
@ApiModelProperty("法人代表")
private String legalRepresentative;
@ApiModelProperty("统一编码")
private String unifiedCode;
@ApiModelProperty("注册电话")
private String registeredPhone;
@ApiModelProperty("注册地址")
private String registeredAddress;
@ApiModelProperty(name = "邮箱")
private String userEmail;
@ApiModelProperty("传真")
private String fax;
@ApiModelProperty("付款银行")
private String paymentBank;
@ApiModelProperty("付款账户")
private String paymentAccount;
@ApiModelProperty("发票抬头")
private String invoiceTitle;
@ApiModelProperty("税号")
private String taxNumber;
@ApiModelProperty(value = "更新时间起")
private String updateTimeFrom;
@ApiModelProperty(value = "更新时间止")
private String updateTimeTo;
@ApiModelProperty(value = "推送时间起")
private String pushTimeFrom;
@ApiModelProperty(value = "推送时间止")
private String pushTimeTo;
@ApiModelProperty(value = "推送状态")
private Integer pushStatus;
@ApiModelProperty(name = "登录账号(2-20位)")
private String userAccount;
@ApiModelProperty(name = "登录密码(6-20位)")
private String userPassword;
@ApiModelProperty(name = "是否校验信用")
private String isCheckCredit;
}
@@ -26,6 +26,8 @@ import com.mhd.common.core.service.jPush.AsyncJPushApplicationService;
import com.mhd.common.core.utils.StringUtils;
import com.mhd.system.api.FinanceServiceFeign;
import com.mhd.system.api.WlhyServiceFeign;
import com.mhd.system.api.domain.UserShipperEntityFeign;
import com.mhd.system.api.domain.UserShipperFeignDTO;
import com.mhd.system.api.event.object.ShipperNameChangedEvent;
import com.mhd.system.api.service.webSocket.AsyncWebSocketApplicationService;
import com.mhd.user.domain.businessPartnerPushLog.entity.BusinessPartnerPushLog;
@@ -1676,4 +1678,140 @@ public class UserShipperApplicationService {
return AjaxResult.error("批量查询赊销额度失败:" + e.getMessage());
}
}
public AjaxResult querySaleCreditLimitFeign(UserShipperFeignDTO userShipperDTO) {
List<UserShipperEntityFeign> customerNcCodeList = userShipperDTO.getCustomerNcCodeList();
if (CollUtil.isEmpty(customerNcCodeList)) {
return AjaxResult.error("客户编码列表不能为空");
}
try {
// 第一步:调用UAP登录接口获取token(批量共用一个token)
String loginUrl = "http://10.0.0.212/uapws/rest/user/login";
com.alibaba.fastjson.JSONObject loginParam = new com.alibaba.fastjson.JSONObject();
loginParam.put("usercode", "MDM");
loginParam.put("pwd", "MDM1234!@#$");
log.info("调用UAP登录接口,请求参数:{}", loginParam.toJSONString());
String loginResult = HttpRequest.post(loginUrl)
.header("Content-Type", "application/json")
.body(loginParam.toJSONString())
.execute()
.body();
log.info("UAP登录接口返回:{}", loginResult);
if (StringUtils.isEmpty(loginResult)) {
return AjaxResult.error("UAP登录接口返回为空");
}
com.alibaba.fastjson.JSONObject loginJson = com.alibaba.fastjson.JSONObject.parseObject(loginResult);
String uapToken = loginJson.getString("uap_token");
String uapUsercode = loginJson.getString("uap_usercode");
String uapDataSource = loginJson.getString("uap_dataSource");
if (StringUtils.isEmpty(uapToken)) {
return AjaxResult.error("UAP登录失败,未获取到token");
}
// 第二步:遍历每个customerNcCode,逐个查询赊销额度
String queryUrl = "http://10.0.0.212/uapws/rest/api/salecredit/querysalecreditlimit";
com.alibaba.fastjson.JSONObject allResults = new com.alibaba.fastjson.JSONObject();
for (UserShipperEntityFeign userShipperEntity : customerNcCodeList) {
if (StringUtils.isEmpty(userShipperEntity.getCustomerNcCode())) {
continue;
}
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编码不能为空");
}
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());
}
// 同步协议明细(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={}shipperId={},共{}条", userShipperEntity1.getCustomerNcCode(), userShipperEntity1.getShipperId(), agreedaydatas.size());
} else {
log.info("赊销额度查询无agreedaydatas返回,跳过协议明细同步,custcode={}", userShipperEntity1.getCustomerNcCode());
}
} else {
log.info("赊销额度查询无data返回,跳过更新,custcode={}", userShipperEntity1.getCustomerNcCode());
}
} else {
log.warn("未找到对应货主,custcode={}organizationId={}", userShipperEntity1.getCustomerNcCode(), userShipperDTO.getOrganizationId());
}
} else {
log.warn("赊销额度查询返回为空,custcode={}", userShipperEntity1.getCustomerNcCode());
}
} catch (Exception e) {
log.error("查询赊销额度异常,custcode={}", userShipperEntity1.getCustomerNcCode(), e);
}
}
return AjaxResult.success(allResults);
} catch (Exception e) {
log.error("批量查询赊销额度异常", e);
return AjaxResult.error("批量查询赊销额度失败:" + e.getMessage());
}
}
}
@@ -5,6 +5,7 @@ import com.mhd.common.core.domain.entity.R;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import com.mhd.system.api.domain.UserShipperFeignDTO;
import com.mhd.user.application.service.UserApplicationService;
import com.mhd.user.application.service.UserShipperApplicationService;
import com.mhd.user.domain.userAggregate.repository.todo.*;
@@ -99,6 +100,17 @@ public class UserShipperAPI extends BaseController {
return userShipperApplicationService.querySaleCreditLimit(userShipperDTO);
}
/**
* 查询赊销额度
* @param userShipperDTO 包含 customerNcCode客户编码 orgcode组织编码
* @return 赊销额度查询结果
*/
@ApiOperation("查询赊销额度")
@PostMapping("/querySaleCreditLimitFeign")
public AjaxResult querySaleCreditLimitFeign(@RequestBody UserShipperFeignDTO userShipperDTO) {
return userShipperApplicationService.querySaleCreditLimitFeign(userShipperDTO);
}
@Log(title = "托运人管理-查询", description ="查询托运人列表",businessType = BusinessType.INQUIRE)
@ApiOperation("查询托运人列表")
@@ -330,4 +342,4 @@ public class UserShipperAPI extends BaseController {
}
return AjaxResult.success(resultMap);
}
}
}
@@ -49,4 +49,10 @@ public interface ReservationStockInOrderMapper extends BaseMapper<ReservationSto
public void updateWmsOut(@Param("orderNumber") String orderNumber, @Param("quantity") BigDecimal quantity);
public String getIsCheckCredit(@Param("id") Long id);
public BigDecimal getCreditAmount(@Param("id") Long id);
public String getCustomerNcCode(@Param("id") Long id);
}
@@ -29,10 +29,7 @@ import com.mhd.oms.domain.reservationStockInOrder.repository.vo.GwStockInOrder;
import com.mhd.oms.interfaces.dto.erpCountry.ErpCountryDTO;
import com.mhd.system.api.SystemServiceFeign;
import com.mhd.system.api.UserServiceFeign;
import com.mhd.system.api.domain.InMaterialDetailTZPD;
import com.mhd.system.api.domain.StockInOrderTZPD;
import com.mhd.system.api.domain.SysDictData;
import com.mhd.system.api.domain.WarehouseFeignPO;
import com.mhd.system.api.domain.*;
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
import com.mhd.system.api.model.LoginUser;
@@ -1851,6 +1848,27 @@ public class ReservationStockInOrderApplicationService {
stockInOrderDO.setShipperId(userPo.getUserId());
stockInOrderDO.setShipperCode(userPo.getUserMemberCode());
stockInOrderDO.setShipperName(userPo.getUserName());
String isCheckCredit = reservationStockInOrderMapper.getIsCheckCredit(userPo.getUserId());
String customerNcCode = reservationStockInOrderMapper.getCustomerNcCode(userPo.getUserId());
if(isCheckCredit != null&&"1".equals(isCheckCredit)){
UserShipperFeignDTO userShipperFeignDTO = new UserShipperFeignDTO();
List<UserShipperEntityFeign> userShipperEntityFeigns = new ArrayList<>();
UserShipperEntityFeign userShipperEntityFeign = new UserShipperEntityFeign();
userShipperEntityFeign.setUserId(userPo.getUserId());
userShipperEntityFeign.setCustomerNcCode(customerNcCode);
userShipperEntityFeigns.add(userShipperEntityFeign);
userShipperFeignDTO.setCustomerNcCodeList(userShipperEntityFeigns);
AjaxResult ajaxResult1 = userServiceFeign.querySaleCreditLimitFeign(userShipperFeignDTO);
if (!"200".equals(String.valueOf(ajaxResult1.get("code")))){
throw new ServiceException("获取货主信用额度失败");
} else {
BigDecimal creditAmount = reservationStockInOrderMapper.getCreditAmount(userPo.getUserId());
if (creditAmount != null && creditAmount.compareTo(BigDecimal.ZERO) > 0) {
}else{
throw new ServiceException("货主信用额度小于0,不允许下单!");
}
}
}
return;
}
@@ -896,6 +896,27 @@ public class ReservationStockOutOrderApplicationService {
// stockOutOrderDO.setCustomerId(userPo.getUserId());
stockOutOrderDO.setCustomerCode(userPo.getUserMemberCode());
// stockOutOrderDO.setCustomerName(userPo.getUserName());
String isCheckCredit = reservationStockInOrderMapper.getIsCheckCredit(userPo.getUserId());
String customerNcCode = reservationStockInOrderMapper.getCustomerNcCode(userPo.getUserId());
if(isCheckCredit != null&&"1".equals(isCheckCredit)){
UserShipperFeignDTO userShipperFeignDTO = new UserShipperFeignDTO();
List<UserShipperEntityFeign> userShipperEntityFeigns = new ArrayList<>();
UserShipperEntityFeign userShipperEntityFeign = new UserShipperEntityFeign();
userShipperEntityFeign.setUserId(userPo.getUserId());
userShipperEntityFeign.setCustomerNcCode(customerNcCode);
userShipperEntityFeigns.add(userShipperEntityFeign);
userShipperFeignDTO.setCustomerNcCodeList(userShipperEntityFeigns);
AjaxResult ajaxResult1 = userServiceFeign.querySaleCreditLimitFeign(userShipperFeignDTO);
if (!"200".equals(String.valueOf(ajaxResult1.get("code")))){
throw new ServiceException("获取货主信用额度失败");
} else {
BigDecimal creditAmount = reservationStockInOrderMapper.getCreditAmount(userPo.getUserId());
if (creditAmount != null && creditAmount.compareTo(BigDecimal.ZERO) > 0) {
}else{
throw new ServiceException("货主信用额度小于0,不允许下单!");
}
}
}
}
}
@@ -13,6 +13,7 @@ import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.domain.reservationMaterialInventory.repository.mapper.ReservationMaterialInventoryMapper;
import com.mhd.oms.domain.reservationMaterialInventory.repository.todo.MaterialBaseInfo;
import com.mhd.oms.domain.reservationStockInOrder.repository.mapper.ReservationStockInOrderMapper;
import com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialBaseInfoPO;
import com.mhd.oms.domain.reserveInMaterialDetail.entity.ReserveInMaterialDetail;
import com.mhd.oms.domain.reserveInMaterialDetail.repository.po.ReserveInMaterialDetailPO;
@@ -27,10 +28,7 @@ import com.mhd.oms.domain.reserveStockInOrder.repository.vo.ReservedInventory;
import com.mhd.system.api.SystemServiceFeign;
import com.mhd.system.api.UserServiceFeign;
import com.mhd.system.api.WmsServiceFeign;
import com.mhd.system.api.domain.InMaterialDetailTZPD;
import com.mhd.system.api.domain.StockInOrderTZPD;
import com.mhd.system.api.domain.SysDictData;
import com.mhd.system.api.domain.WarehouseFeignPO;
import com.mhd.system.api.domain.*;
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
import com.mhd.system.api.model.LoginUser;
@@ -70,6 +68,8 @@ public class ReserveStockInOrderApplicationService {
private SystemServiceFeign systemServiceFeign;
@Autowired
private WmsServiceFeign wmsServiceFeign;
@Autowired
private ReservationStockInOrderMapper reservationStockInOrderMapper;
// @Autowired
// private IMaterialBaseInfoService materialBaseInfoService;
@@ -1842,6 +1842,27 @@ public class ReserveStockInOrderApplicationService {
stockInOrderDO.setShipperId(userPo.getUserId());
stockInOrderDO.setShipperCode(userPo.getUserMemberCode());
stockInOrderDO.setShipperName(userPo.getUserName());
String isCheckCredit = reservationStockInOrderMapper.getIsCheckCredit(userPo.getUserId());
String customerNcCode = reservationStockInOrderMapper.getCustomerNcCode(userPo.getUserId());
if(isCheckCredit != null&&"1".equals(isCheckCredit)){
UserShipperFeignDTO userShipperFeignDTO = new UserShipperFeignDTO();
List<UserShipperEntityFeign> userShipperEntityFeigns = new ArrayList<>();
UserShipperEntityFeign userShipperEntityFeign = new UserShipperEntityFeign();
userShipperEntityFeign.setUserId(userPo.getUserId());
userShipperEntityFeign.setCustomerNcCode(customerNcCode);
userShipperEntityFeigns.add(userShipperEntityFeign);
userShipperFeignDTO.setCustomerNcCodeList(userShipperEntityFeigns);
AjaxResult ajaxResult1 = userServiceFeign.querySaleCreditLimitFeign(userShipperFeignDTO);
if (!"200".equals(String.valueOf(ajaxResult1.get("code")))){
throw new ServiceException("获取货主信用额度失败");
} else {
BigDecimal creditAmount = reservationStockInOrderMapper.getCreditAmount(userPo.getUserId());
if (creditAmount != null && creditAmount.compareTo(BigDecimal.ZERO) > 0) {
}else{
throw new ServiceException("货主信用额度小于0,不允许下单!");
}
}
}
return;
}
@@ -16,6 +16,7 @@ import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.domain.reservationInMaterialDetail.repository.todo.InventoryAdjustmentRecordPO;
import com.mhd.oms.domain.reservationMaterialInventory.entity.ReservationMaterialInventory;
import com.mhd.oms.domain.reservationMaterialInventory.repository.mapper.ReservationMaterialInventoryMapper;
import com.mhd.oms.domain.reservationStockInOrder.repository.mapper.ReservationStockInOrderMapper;
import com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialBaseInfoPO;
import com.mhd.oms.domain.reserveInMaterialDetail.repository.facade.IReserveInMaterialDetailService;
import com.mhd.oms.domain.reserveInMaterialDetail.repository.todo.ReserveInMaterialDetailDO;
@@ -80,6 +81,8 @@ public class ReserveStockOutOrderApplicationService {
private IReserveInMaterialDetailService reservationInMaterialDetailService;
@Autowired
private IReserveOutMaterialDetailService outMaterialDetailService;
@Autowired
private ReservationStockInOrderMapper reservationStockInOrderMapper;
// @Autowired
// private IPickingMaterialDetailService pickingMaterialDetailService;
@@ -903,6 +906,27 @@ public class ReserveStockOutOrderApplicationService {
// stockOutOrderDO.setCustomerId(userPo.getUserId());
stockOutOrderDO.setCustomerCode(userPo.getUserMemberCode());
// stockOutOrderDO.setCustomerName(userPo.getUserName());
String isCheckCredit = reservationStockInOrderMapper.getIsCheckCredit(userPo.getUserId());
String customerNcCode = reservationStockInOrderMapper.getCustomerNcCode(userPo.getUserId());
if(isCheckCredit != null&&"1".equals(isCheckCredit)){
UserShipperFeignDTO userShipperFeignDTO = new UserShipperFeignDTO();
List<UserShipperEntityFeign> userShipperEntityFeigns = new ArrayList<>();
UserShipperEntityFeign userShipperEntityFeign = new UserShipperEntityFeign();
userShipperEntityFeign.setUserId(userPo.getUserId());
userShipperEntityFeign.setCustomerNcCode(customerNcCode);
userShipperEntityFeigns.add(userShipperEntityFeign);
userShipperFeignDTO.setCustomerNcCodeList(userShipperEntityFeigns);
AjaxResult ajaxResult1 = userServiceFeign.querySaleCreditLimitFeign(userShipperFeignDTO);
if (!"200".equals(String.valueOf(ajaxResult1.get("code")))){
throw new ServiceException("获取货主信用额度失败");
} else {
BigDecimal creditAmount = reservationStockInOrderMapper.getCreditAmount(userPo.getUserId());
if (creditAmount != null && creditAmount.compareTo(BigDecimal.ZERO) > 0) {
}else{
throw new ServiceException("货主信用额度小于0,不允许下单!");
}
}
}
}
}
@@ -605,4 +605,16 @@
update "NGWL_TEST_WMS".stock_out_order set return_quantity = #{quantity} where out_order_number = #{orderNumber}
</update>
<select id="getIsCheckCredit" parameterType="java.lang.Long" resultType="java.lang.String">
select IS_CHECK_CREDIT from "NGWL_TEST_USER".USER_SHIPPER where 1 = 1 and DEL_FLAG = 1 and USER_ID = #{id}
</select>
<select id="getCreditAmount" parameterType="java.lang.Long" resultType="java.math.BigDecimal">
select CREDIT_AMOUNT from "NGWL_TEST_USER".USER_SHIPPER where 1 = 1 and DEL_FLAG = 1 and USER_ID = #{id}
</select>
<select id="getCustomerNcCode" parameterType="java.lang.Long" resultType="java.lang.String">
select CUSTOMER_NC_CODE from "NGWL_TEST_USER".USER_SHIPPER where 1 = 1 and DEL_FLAG = 1 and USER_ID = #{id}
</select>
</mapper>