feat(settlement): 更新分销结算逻辑支持固定金额和百分比两种佣金类型

- 替换 CommissionRateConfig 为 CommissionConfig,支持 commissionType 字段区分固定金额和百分比模式
- 新增 calcMoneyByCommissionType 方法,根据 commissionType 计算佣金金额
- 修改 findOrderSingleGoods 为 findOrderSingleGoodsInfo,返回商品信息和数量
- 更新日志输出格式,显示商品数量和佣金类型信息
- 调整信用分销商佣金方法参数,传递商品数量和佣金配置对象
- 新增 OrderGoodsInfo 和 CommissionConfig 内部类定义
- 实现固定金额模式按件计算佣金的逻辑
- 添加安全数值处理方法 safeValue 和 safePositive
- 更新佣金注释构建方法,显示佣金类型和具体数值信息
This commit is contained in:
2026-01-28 16:05:24 +08:00
parent 9e5c5ceab3
commit 5a95375cda
51 changed files with 134 additions and 1 deletions

View File

@@ -86,13 +86,15 @@ public class BatchImportSupport {
SFunction<T, String> nameGetter,
SFunction<T, Integer> companyIdGetter,
BiConsumer<T, Integer> companyIdSetter,
SFunction<T, Boolean> hasDataGetter,
BiConsumer<T, Boolean> hasDataSetter,
SFunction<T, Integer> tenantIdGetter,
Supplier<T> patchFactory) {
boolean onlyNullFlag = (onlyNull == null) || Boolean.TRUE.equals(onlyNull);
// 1) 读取待处理数据(仅取必要字段,避免一次性拉全表字段)
var query = service.lambdaQuery()
.select(idGetter, nameGetter, companyIdGetter, tenantIdGetter)
.select(idGetter, nameGetter, companyIdGetter, hasDataGetter, tenantIdGetter)
.eq(currentTenantId != null, tenantIdGetter, currentTenantId)
.isNotNull(nameGetter);
if (onlyNullFlag) {
@@ -191,12 +193,17 @@ public class BatchImportSupport {
matched++;
Integer oldCompanyId = row != null ? companyIdGetter.apply(row) : null;
Boolean oldHasData = row != null ? hasDataGetter.apply(row) : null;
boolean needUpdate;
if (onlyNullFlag) {
needUpdate = oldCompanyId != null && oldCompanyId == 0;
} else {
needUpdate = oldCompanyId == null || !companyId.equals(oldCompanyId);
}
// 若已匹配到企业,但 hasData 未标记,则也需要回填 hasData=1
if (!Boolean.TRUE.equals(oldHasData)) {
needUpdate = true;
}
if (!needUpdate) {
continue;
}
@@ -208,6 +215,7 @@ public class BatchImportSupport {
T patch = patchFactory.get();
idSetter.accept(patch, id);
companyIdSetter.accept(patch, companyId);
hasDataSetter.accept(patch, Boolean.TRUE);
updates.add(patch);
if (updates.size() >= batchSize) {
List<T> batch = new ArrayList<>(updates);

View File

@@ -165,6 +165,8 @@ public class CreditAdministrativeLicenseController extends BaseController {
CreditAdministrativeLicense::getName,
CreditAdministrativeLicense::getCompanyId,
CreditAdministrativeLicense::setCompanyId,
CreditAdministrativeLicense::getHasData,
CreditAdministrativeLicense::setHasData,
CreditAdministrativeLicense::getTenantId,
CreditAdministrativeLicense::new
);

View File

@@ -165,6 +165,8 @@ public class CreditBankruptcyController extends BaseController {
CreditBankruptcy::getParty,
CreditBankruptcy::getCompanyId,
CreditBankruptcy::setCompanyId,
CreditBankruptcy::getHasData,
CreditBankruptcy::setHasData,
CreditBankruptcy::getTenantId,
CreditBankruptcy::new
);

View File

@@ -164,6 +164,8 @@ public class CreditBranchController extends BaseController {
CreditBranch::getName,
CreditBranch::getCompanyId,
CreditBranch::setCompanyId,
CreditBranch::getHasData,
CreditBranch::setHasData,
CreditBranch::getTenantId,
CreditBranch::new
);

View File

@@ -161,6 +161,8 @@ public class CreditBreachOfTrustController extends BaseController {
CreditBreachOfTrust::getPlaintiffAppellant,
CreditBreachOfTrust::getCompanyId,
CreditBreachOfTrust::setCompanyId,
CreditBreachOfTrust::getHasData,
CreditBreachOfTrust::setHasData,
CreditBreachOfTrust::getTenantId,
CreditBreachOfTrust::new
);

View File

@@ -164,6 +164,8 @@ public class CreditCaseFilingController extends BaseController {
CreditCaseFiling::getAppellee,
CreditCaseFiling::getCompanyId,
CreditCaseFiling::setCompanyId,
CreditCaseFiling::getHasData,
CreditCaseFiling::setHasData,
CreditCaseFiling::getTenantId,
CreditCaseFiling::new
);

View File

@@ -164,6 +164,8 @@ public class CreditCompetitorController extends BaseController {
CreditCompetitor::getName,
CreditCompetitor::getCompanyId,
CreditCompetitor::setCompanyId,
CreditCompetitor::getHasData,
CreditCompetitor::setHasData,
CreditCompetitor::getTenantId,
CreditCompetitor::new
);

View File

@@ -164,6 +164,8 @@ public class CreditCourtAnnouncementController extends BaseController {
CreditCourtAnnouncement::getAppellee,
CreditCourtAnnouncement::getCompanyId,
CreditCourtAnnouncement::setCompanyId,
CreditCourtAnnouncement::getHasData,
CreditCourtAnnouncement::setHasData,
CreditCourtAnnouncement::getTenantId,
CreditCourtAnnouncement::new
);

View File

@@ -165,6 +165,8 @@ public class CreditCourtSessionController extends BaseController {
CreditCourtSession::getAppellee,
CreditCourtSession::getCompanyId,
CreditCourtSession::setCompanyId,
CreditCourtSession::getHasData,
CreditCourtSession::setHasData,
CreditCourtSession::getTenantId,
CreditCourtSession::new
);

View File

@@ -160,6 +160,8 @@ public class CreditCustomerController extends BaseController {
CreditCustomer::getName,
CreditCustomer::getCompanyId,
CreditCustomer::setCompanyId,
CreditCustomer::getHasData,
CreditCustomer::setHasData,
CreditCustomer::getTenantId,
CreditCustomer::new
);

View File

@@ -164,6 +164,8 @@ public class CreditDeliveryNoticeController extends BaseController {
CreditDeliveryNotice::getOtherPartiesThirdParty,
CreditDeliveryNotice::getCompanyId,
CreditDeliveryNotice::setCompanyId,
CreditDeliveryNotice::getHasData,
CreditDeliveryNotice::setHasData,
CreditDeliveryNotice::getTenantId,
CreditDeliveryNotice::new
);

View File

@@ -164,6 +164,8 @@ public class CreditExternalController extends BaseController {
CreditExternal::getName,
CreditExternal::getCompanyId,
CreditExternal::setCompanyId,
CreditExternal::getHasData,
CreditExternal::setHasData,
CreditExternal::getTenantId,
CreditExternal::new
);

View File

@@ -165,6 +165,8 @@ public class CreditFinalVersionController extends BaseController {
CreditFinalVersion::getAppellee,
CreditFinalVersion::getCompanyId,
CreditFinalVersion::setCompanyId,
CreditFinalVersion::getHasData,
CreditFinalVersion::setHasData,
CreditFinalVersion::getTenantId,
CreditFinalVersion::new
);

View File

@@ -165,6 +165,8 @@ public class CreditGqdjController extends BaseController {
CreditGqdj::getAppellee,
CreditGqdj::getCompanyId,
CreditGqdj::setCompanyId,
CreditGqdj::getHasData,
CreditGqdj::setHasData,
CreditGqdj::getTenantId,
CreditGqdj::new
);

View File

@@ -164,6 +164,8 @@ public class CreditHistoricalLegalPersonController extends BaseController {
CreditHistoricalLegalPerson::getName,
CreditHistoricalLegalPerson::getCompanyId,
CreditHistoricalLegalPerson::setCompanyId,
CreditHistoricalLegalPerson::getHasData,
CreditHistoricalLegalPerson::setHasData,
CreditHistoricalLegalPerson::getTenantId,
CreditHistoricalLegalPerson::new
);

View File

@@ -174,6 +174,8 @@ public class CreditJudgmentDebtorController extends BaseController {
CreditJudgmentDebtor::getName,
CreditJudgmentDebtor::getCompanyId,
CreditJudgmentDebtor::setCompanyId,
CreditJudgmentDebtor::getHasData,
CreditJudgmentDebtor::setHasData,
CreditJudgmentDebtor::getTenantId,
CreditJudgmentDebtor::new
);

View File

@@ -165,6 +165,8 @@ public class CreditJudicialDocumentController extends BaseController {
CreditJudicialDocument::getAppellee,
CreditJudicialDocument::getCompanyId,
CreditJudicialDocument::setCompanyId,
CreditJudicialDocument::getHasData,
CreditJudicialDocument::setHasData,
CreditJudicialDocument::getTenantId,
CreditJudicialDocument::new
);

View File

@@ -163,6 +163,8 @@ public class CreditJudiciaryController extends BaseController {
CreditJudiciary::getName,
CreditJudiciary::getCompanyId,
CreditJudiciary::setCompanyId,
CreditJudiciary::getHasData,
CreditJudiciary::setHasData,
CreditJudiciary::getTenantId,
CreditJudiciary::new
);

View File

@@ -164,6 +164,8 @@ public class CreditMediationController extends BaseController {
CreditMediation::getAppellee,
CreditMediation::getCompanyId,
CreditMediation::setCompanyId,
CreditMediation::getHasData,
CreditMediation::setHasData,
CreditMediation::getTenantId,
CreditMediation::new
);

View File

@@ -164,6 +164,8 @@ public class CreditNearbyCompanyController extends BaseController {
CreditNearbyCompany::getName,
CreditNearbyCompany::getCompanyId,
CreditNearbyCompany::setCompanyId,
CreditNearbyCompany::getHasData,
CreditNearbyCompany::setHasData,
CreditNearbyCompany::getTenantId,
CreditNearbyCompany::new
);

View File

@@ -164,6 +164,8 @@ public class CreditPatentController extends BaseController {
CreditPatent::getPatentApplicant,
CreditPatent::getCompanyId,
CreditPatent::setCompanyId,
CreditPatent::getHasData,
CreditPatent::setHasData,
CreditPatent::getTenantId,
CreditPatent::new
);

View File

@@ -164,6 +164,8 @@ public class CreditRiskRelationController extends BaseController {
CreditRiskRelation::getMainBodyName,
CreditRiskRelation::getCompanyId,
CreditRiskRelation::setCompanyId,
CreditRiskRelation::getHasData,
CreditRiskRelation::setHasData,
CreditRiskRelation::getTenantId,
CreditRiskRelation::new
);

View File

@@ -164,6 +164,8 @@ public class CreditSupplierController extends BaseController {
CreditSupplier::getSupplier,
CreditSupplier::getCompanyId,
CreditSupplier::setCompanyId,
CreditSupplier::getHasData,
CreditSupplier::setHasData,
CreditSupplier::getTenantId,
CreditSupplier::new
);

View File

@@ -164,6 +164,8 @@ public class CreditSuspectedRelationshipController extends BaseController {
CreditSuspectedRelationship::getName,
CreditSuspectedRelationship::getCompanyId,
CreditSuspectedRelationship::setCompanyId,
CreditSuspectedRelationship::getHasData,
CreditSuspectedRelationship::setHasData,
CreditSuspectedRelationship::getTenantId,
CreditSuspectedRelationship::new
);

View File

@@ -175,6 +175,8 @@ public class CreditUserController extends BaseController {
CreditUser::getWinningName,
CreditUser::getCompanyId,
CreditUser::setCompanyId,
CreditUser::getHasData,
CreditUser::setHasData,
CreditUser::getTenantId,
CreditUser::new
);

View File

@@ -165,6 +165,8 @@ public class CreditXgxfController extends BaseController {
CreditXgxf::getDataType,
CreditXgxf::getCompanyId,
CreditXgxf::setCompanyId,
CreditXgxf::getHasData,
CreditXgxf::setHasData,
CreditXgxf::getTenantId,
CreditXgxf::new
);

View File

@@ -59,6 +59,9 @@ public class CreditAdministrativeLicense implements Serializable {
@Schema(description = "数据来源单位")
private String dataSourceUnit;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -46,6 +46,9 @@ public class CreditBankruptcy implements Serializable {
@Schema(description = "公开日期")
private String publicDate;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -46,6 +46,9 @@ public class CreditBranch implements Serializable {
@Schema(description = "状态")
private String statusText;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -73,6 +73,9 @@ public class CreditBreachOfTrust implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -70,6 +70,9 @@ public class CreditCaseFiling implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -65,6 +65,9 @@ public class CreditCompetitor implements Serializable {
@TableField(exist = false)
private String mainCompanyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -70,6 +70,9 @@ public class CreditCourtAnnouncement implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -70,6 +70,9 @@ public class CreditCourtSession implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -55,6 +55,9 @@ public class CreditCustomer implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -71,6 +71,9 @@ public class CreditDeliveryNotice implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -82,6 +82,9 @@ public class CreditExternal implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -64,6 +64,9 @@ public class CreditFinalVersion implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -70,6 +70,9 @@ public class CreditGqdj implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -40,6 +40,9 @@ public class CreditHistoricalLegalPerson implements Serializable {
@Schema(description = "链接")
private String url;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -65,6 +65,9 @@ public class CreditJudgmentDebtor implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -73,6 +73,9 @@ public class CreditJudicialDocument implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -86,6 +86,9 @@ public class CreditJudiciary implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -70,6 +70,9 @@ public class CreditMediation implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -194,6 +194,9 @@ public class CreditNearbyCompany implements Serializable {
@Schema(description = "是否小微企业")
private String smallEnterprise;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -58,6 +58,9 @@ public class CreditPatent implements Serializable {
@Schema(description = "链接")
private String url;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -54,6 +54,9 @@ public class CreditRiskRelation implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -55,6 +55,9 @@ public class CreditSupplier implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -55,6 +55,9 @@ public class CreditSuspectedRelationship implements Serializable {
@Schema(description = "链接")
private String url;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -82,6 +82,9 @@ public class CreditUser implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;

View File

@@ -82,6 +82,9 @@ public class CreditXgxf implements Serializable {
@TableField(exist = false)
private String companyName;
@Schema(description = "是否有数据")
private Boolean hasData;
@Schema(description = "备注")
private String comments;