乱码注释调整

This commit is contained in:
liuminghui
2026-10-27 10:17:53 +08:00
parent f80af4a2f6
commit be0b067516
132 changed files with 440 additions and 440 deletions
@@ -16,8 +16,8 @@ import com.bms.price.search.IBillSearchStore;
import com.bms.web.controller.price.BillingController;
/**
* Persist quote/bill API failures to Elasticsearch (validation, JSON parse, business, unexpected).
* Uses {@link EsBizLogSupport#saveApiFail} so service/controller can also call without duplicate docs.
* 把报价/计费接口失败写入 Elasticsearch(校验、JSON 解析、业务异常、未预期异常)。
* 通过 {@link EsBizLogSupport#saveApiFail} 写入,service/controller 也可调用且不会重复落文档。
*/
@Order(0)
@RestControllerAdvice(assignableTypes = { TmsPriceController.class, BillingController.class })
@@ -29,10 +29,10 @@ import com.bms.price.service.IPrcOrderBillService;
import com.bms.price.service.ITmsPriceQuoteService;
/**
* TMS open API: freight quote.
* TMS 开放接口:运费试算。
*
* POST /api/tms/price/quote
* Header X-Api-Code must equal bms.tms.api-code
* 请求头 X-Api-Code 必须等于 bms.tms.api-code
*
* @author bms
*/
@@ -24,7 +24,7 @@ import com.bms.price.enums.BillTaskSuccessStatus;
import com.bms.price.service.IPrcBillingTaskService;
/**
* Monitor: failed / waiting prc_billing_task list and manual resync.
* 监控:失败/等待中的 prc_billing_task 列表,以及手工重同步。
*/
@RestController
@RequestMapping("/monitor/billingTask")
@@ -17,7 +17,7 @@ import com.bms.price.search.BillSearchPage;
import com.bms.price.search.IBillSearchStore;
/**
* Generic Elasticsearch business-log viewer.
* 通用 Elasticsearch 业务日志查看。
*/
@RestController
@RequestMapping("/monitor/eslog")
@@ -39,7 +39,7 @@ public class EsLogController extends BaseController
BillSearchPage page = billSearchStore.search(logType, bizId, status, pageNum, pageSize);
TableDataInfo rsp = new TableDataInfo();
rsp.setCode(HttpStatus.SUCCESS);
rsp.setMsg("\u67e5\u8be2\u6210\u529f");
rsp.setMsg("查询成功");
rsp.setRows(page.getRows());
rsp.setTotal(page.getTotal());
return rsp;
@@ -18,7 +18,7 @@ import com.bms.price.search.EsLogType;
import com.bms.price.search.IBillSearchStore;
/**
* Price before-after change log (sales / product / redline) from ES.
* 来自 ES 的价格变更前后日志(销售价 / 产品价 / 红线价)。
*/
@RestController
@RequestMapping("/monitor/priceLog")
@@ -39,7 +39,7 @@ public class PriceLogController extends BaseController
BillSearchPage page = billSearchStore.search(EsLogType.PRICE_CHANGE, bizId, status, pageNum, pageSize);
TableDataInfo rsp = new TableDataInfo();
rsp.setCode(HttpStatus.SUCCESS);
rsp.setMsg("\u67e5\u8be2\u6210\u529f");
rsp.setMsg("查询成功");
rsp.setRows(page.getRows());
rsp.setTotal(page.getTotal());
return rsp;
@@ -134,7 +134,7 @@ public class TabOrderMonitorController extends BaseController
{
TableDataInfo rsp = new TableDataInfo();
rsp.setCode(HttpStatus.SUCCESS);
rsp.setMsg("\u67e5\u8be2\u6210\u529f");
rsp.setMsg("查询成功");
if (!hasListFilters(query))
{
rsp.setRows(Collections.emptyList());
@@ -294,7 +294,7 @@ public class TabOrderMonitorController extends BaseController
BillSearchPage page = billSearchStore.search(EsLogType.ORDER_SOURCE_SYNC, bizId, status, pageNum, pageSize);
TableDataInfo rsp = new TableDataInfo();
rsp.setCode(HttpStatus.SUCCESS);
rsp.setMsg("\u67e5\u8be2\u6210\u529f");
rsp.setMsg("查询成功");
rsp.setRows(page.getRows());
rsp.setTotal(page.getTotal());
return rsp;
@@ -61,7 +61,7 @@ import com.bms.price.service.OrderBillProductCheckService;
import com.bms.price.service.support.OrderBillExportSupport;
/**
* Billing center: order quote trial (authenticated).
* 计费中心:订单报价试算(需登录)。
*
* @author bms
*/
@@ -154,7 +154,7 @@ public class BillingController extends BaseController
* Requires at least one meaningful filter. Poll task then download.
*/
@PreAuthorize("@ss.hasPermi('price:billing:export')")
@Log(title = "\u8ba1\u8d39\u5217\u8868", businessType = BusinessType.EXPORT)
@Log(title = "计费列表", businessType = BusinessType.EXPORT)
@PostMapping("/bill/export")
public AjaxResult exportBillList(@RequestBody(required = false) PrcOrderBill query)
{
@@ -230,7 +230,7 @@ public class BillingController extends BaseController
* Requires at least one meaningful filter (default orderStatuses alone is not enough).
*/
@PreAuthorize("@ss.hasPermi('price:orderBill:export')")
@Log(title = "\u8ba2\u5355\u5217\u8868", businessType = BusinessType.EXPORT)
@Log(title = "订单列表", businessType = BusinessType.EXPORT)
@PostMapping("/orderBill/export")
public AjaxResult exportOrderBillList(@RequestBody(required = false) PrcOrderBill query)
{
@@ -247,7 +247,7 @@ public class PriceSetController extends BaseController
}
@PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')")
@Log(title = "\u5957\u9910\u660e\u7ec6", businessType = BusinessType.UPDATE)
@Log(title = "套餐明细", businessType = BusinessType.UPDATE)
@PutMapping("/detail")
public AjaxResult editDetail(@RequestBody PrcPriceSetDetail detail)
{
@@ -255,7 +255,7 @@ public class PriceSetController extends BaseController
}
@PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')")
@Log(title = "\u5957\u9910\u4ef7\u683c\u5bfc\u5165", businessType = BusinessType.IMPORT)
@Log(title = "套餐价格导入", businessType = BusinessType.IMPORT)
@PostMapping("/detail/importPrices")
public AjaxResult importDetailPrices(
@RequestParam(value = "files", required = false) MultipartFile[] files,
@@ -319,7 +319,7 @@ public class PriceSetController extends BaseController
* Async pull product library into version details. Returns taskId; poll /save/task/{taskId}.
*/
@PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')")
@Log(title = "\u5957\u9910\u62c9\u53d6\u4ea7\u54c1", businessType = BusinessType.IMPORT)
@Log(title = "套餐拉取产品", businessType = BusinessType.IMPORT)
@PostMapping("/detail/pullFromLibrary")
public AjaxResult pullFromLibrary(@RequestParam("priceSetId") Long priceSetId,
@RequestParam(value = "psvId", required = false) Long psvId,
@@ -335,7 +335,7 @@ public class PriceSetController extends BaseController
* Async batch write of detail surcharge snapshots. Returns taskId; poll /save/task/{taskId}.
*/
@PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')")
@Log(title = "\u5957\u9910\u9644\u52a0\u8d39", businessType = BusinessType.UPDATE)
@Log(title = "套餐附加费", businessType = BusinessType.UPDATE)
@PostMapping("/detail/surcharge/async")
public AjaxResult batchSurchargeAsync(@RequestBody List<PrcPriceSetDetail> details)
{
@@ -346,7 +346,7 @@ public class PriceSetController extends BaseController
}
@PreAuthorize("@ss.hasPermi('price:set:edit') or @ss.hasPermi('price:set:forceEdit')")
@Log(title = "\u5957\u9910\u660e\u7ec6", businessType = BusinessType.DELETE)
@Log(title = "套餐明细", businessType = BusinessType.DELETE)
@DeleteMapping("/detail/{psdIds}")
public AjaxResult removeDetail(@PathVariable Long[] psdIds)
{
@@ -36,7 +36,7 @@ import com.bms.price.service.IPrcPriceExcelFileService;
import com.bms.price.service.support.CatalogVersionSupport;
/**
* Product list (async Excel import)
* 产品列表(异步 Excel 导入)
*
* @author bms
*/
@@ -185,7 +185,7 @@ public class ProductController extends BaseController
}
@PreAuthorize("@ss.hasPermi('price:product:edit')")
@Log(title = "\u4ea7\u54c1\u56fd\u5bb6\u660e\u7ec6", businessType = BusinessType.UPDATE)
@Log(title = "产品国家明细", businessType = BusinessType.UPDATE)
@PutMapping("/country")
public AjaxResult editCountry(@RequestBody BmsProductCountry country)
{
@@ -193,7 +193,7 @@ public class ProductController extends BaseController
}
@PreAuthorize("@ss.hasPermi('price:product:remove')")
@Log(title = "\u4ea7\u54c1\u5217\u8868", businessType = BusinessType.DELETE)
@Log(title = "产品列表", businessType = BusinessType.DELETE)
@DeleteMapping("/{productIds}")
public AjaxResult remove(@PathVariable Long[] productIds)
{
@@ -204,7 +204,7 @@ public class ProductController extends BaseController
* Async import Weishi B2C workbook. Returns taskId; poll /import/task/{taskId}.
* effectiveDate is required: written to product / product_country; previous open rows expire at this date.
*/
@Log(title = "\u4ea7\u54c1\u5217\u8868", businessType = BusinessType.IMPORT)
@Log(title = "产品列表", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('price:product:import')")
@PostMapping("/importData")
public AjaxResult importData(MultipartFile file, boolean updateSupport,
@@ -220,7 +220,7 @@ public class ProductController extends BaseController
* Async single-country cost-sheet import. Returns taskId; poll /import/task/{taskId}.
* effectiveDate is required: written to product / product_country; previous open rows expire at this date.
*/
@Log(title = "\u4ea7\u54c1\u5217\u8868", businessType = BusinessType.IMPORT)
@Log(title = "产品列表", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('price:product:import')")
@PostMapping("/importCountryData")
public AjaxResult importCountryData(MultipartFile file, String countryCode,
@@ -36,7 +36,7 @@ import com.bms.price.service.IPrcPriceExcelFileService;
import com.bms.price.service.support.CatalogVersionSupport;
/**
* redline product list (async Excel import)
* 红线价产品列表(异步 Excel 导入)
*
* @author bms
*/
@@ -185,7 +185,7 @@ public class RedlineProductController extends BaseController
}
@PreAuthorize("@ss.hasPermi('price:redline:edit')")
@Log(title = "\u4ea7\u54c1\u56fd\u5bb6\u660e\u7ec6", businessType = BusinessType.UPDATE)
@Log(title = "产品国家明细", businessType = BusinessType.UPDATE)
@PutMapping("/country")
public AjaxResult editCountry(@RequestBody BmsRedlineProductCountry country)
{
@@ -193,7 +193,7 @@ public class RedlineProductController extends BaseController
}
@PreAuthorize("@ss.hasPermi('price:redline:remove')")
@Log(title = "\u4ea7\u54c1\u5217\u8868", businessType = BusinessType.DELETE)
@Log(title = "产品列表", businessType = BusinessType.DELETE)
@DeleteMapping("/{productIds}")
public AjaxResult remove(@PathVariable Long[] productIds)
{
@@ -204,7 +204,7 @@ public class RedlineProductController extends BaseController
* Async import Weishi B2C workbook. Returns taskId; poll /import/task/{taskId}.
* effectiveDate is required: written to product / product_country; previous open rows expire at this date.
*/
@Log(title = "\u4ea7\u54c1\u5217\u8868", businessType = BusinessType.IMPORT)
@Log(title = "产品列表", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('price:redline:import')")
@PostMapping("/importData")
public AjaxResult importData(MultipartFile file, boolean updateSupport,
@@ -220,7 +220,7 @@ public class RedlineProductController extends BaseController
* Async single-country cost-sheet import. Returns taskId; poll /import/task/{taskId}.
* effectiveDate is required: written to product / product_country; previous open rows expire at this date.
*/
@Log(title = "\u4ea7\u54c1\u5217\u8868", businessType = BusinessType.IMPORT)
@Log(title = "产品列表", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('price:redline:import')")
@PostMapping("/importCountryData")
public AjaxResult importCountryData(MultipartFile file, String countryCode,
@@ -24,7 +24,7 @@ import com.bms.price.domain.PrcZoneRegion;
import com.bms.price.service.IPrcZoneService;
/**
* Zone management: region -> zone -> postcode detail
* 分区管理:国家(region) -> 分区 -> 邮编明细
*/
@RestController
@RequestMapping("/price/zone")
@@ -23,7 +23,7 @@ import com.bms.common.enums.BusinessType;
import com.bms.system.domain.SysFileTemplate;
import com.bms.system.service.ISysFileTemplateService;
/** System file template CRUD + OSS upload/download. */
/** 系统文件模板的增删改查,以及 OSS 上传/下载。 */
@RestController
@RequestMapping("/system/fileTemplate")
public class SysFileTemplateController extends BaseController
@@ -76,16 +76,16 @@ price.set.detail.registration.empty=固定价明细必须填写挂号费
price.set.detail.zone.empty=固定价明细必须选择分区
price.set.detail.roundMode.invalid=取值方式仅支持 UP / DOWN / HALF_UP
price.set.detail.freight.belowBase=套餐运费不能低于导入基准价 {0}
price.set.import.fixedOnly=\u4ec5\u56fa\u5b9a\u4ef7\u5957\u9910\u652f\u6301\u5bfc\u5165\u4fee\u6539\u4ef7\u683c
price.set.import.noDetails=\u5957\u9910\u6682\u65e0\u4ef7\u683c\u660e\u7ec6\uff0c\u8bf7\u5148\u62c9\u53d6\u4ea7\u54c1\u4ef7
price.set.import.noPriceRows=\u4ef7\u8868\u672a\u89e3\u6790\u5230\u6709\u6548\u4ef7\u683c\u884c
price.set.import.success=\u5bfc\u5165\u5b8c\u6210\uff1a\u66f4\u65b0 {0} \u6761\uff0c\u672a\u5339\u914d {1} \u6761\uff0c\u5957\u9910\u65e0\u5bf9\u5e94\u4ea7\u54c1 {2} \u4e2a
price.set.import.noDetailWritten=\u672a\u5199\u5165\u4efb\u4f55\u5957\u9910\u660e\u7ec6\uff08\u4ef7\u8868\u65e0\u53ef\u7528\u91cd\u91cf\u6bb5\u6216\u5747\u4e3a\u7a7a\u8fd0\u8d39/\u6302\u53f7\u8d39\u4e14\u65e0\u53ef\u66f4\u65b0\u884c\uff09
price.set.import.updateSuccess=\u5bfc\u5165\u4fee\u6539\u5b8c\u6210\uff1a\u66f4\u65b0 {0} \u6761\uff0c\u672a\u5339\u914d {1} \u6761\uff0c\u8df3\u8fc7\u7a7a\u8fd0\u8d39/\u6302\u53f7\u8d39 {2} \u6761
price.set.import.upsertSuccess=\u5bfc\u5165\u5b8c\u6210\uff1a\u65b0\u589e {0} \u6761\uff0c\u66f4\u65b0 {1} \u6761\uff0c\u8df3\u8fc7\u7a7a\u8fd0\u8d39/\u6302\u53f7\u8d39 {2} \u6761
price.set.import.weightBandMismatch=\u5bfc\u5165\u5931\u8d25\uff1a\u4ee5\u4e0b\u4ea7\u54c1+\u56fd\u5bb6\u7684\u91cd\u91cf\u6bb5\u4e0e\u5957\u9910\u4e0d\u4e00\u81f4\uff1a{0}
price.set.import.weightBandMismatch.item=\u4ea7\u54c1 {0} / \u56fd\u5bb6 {1}\uff08\u5957\u9910\u91cd\u91cf\u6bb5\uff1a{2}\uff1bExcel\uff1a{3}\uff09
price.set.pull.success=\u62c9\u53d6\u5b8c\u6210\uff1a\u5df2\u5199\u5165 {0} \u6761\u5957\u9910\u660e\u7ec6
price.set.import.fixedOnly=仅固定价套餐支持导入修改价格
price.set.import.noDetails=套餐暂无价格明细,请先拉取产品价
price.set.import.noPriceRows=价表未解析到有效价格行
price.set.import.success=导入完成:更新 {0} 条,未匹配 {1} 条,套餐无对应产品 {2} 个
price.set.import.noDetailWritten=未写入任何套餐明细(价表无可用重量段或均为空运费/挂号费且无可更新行)
price.set.import.updateSuccess=导入修改完成:更新 {0} 条,未匹配 {1} 条,跳过空运费/挂号费 {2} 条
price.set.import.upsertSuccess=导入完成:新增 {0} 条,更新 {1} 条,跳过空运费/挂号费 {2} 条
price.set.import.weightBandMismatch=导入失败:以下产品+国家的重量段与套餐不一致:{0}
price.set.import.weightBandMismatch.item=产品 {0} / 国家 {1}(套餐重量段:{2};Excel:{3})
price.set.pull.success=拉取完成:已写入 {0} 条套餐明细
price.set.customer.notExists=客户绑定不存在
price.set.customer.unbindAudit=审核中的套餐不允许解绑客户
price.set.customer.customerId.empty=客户ID不能为空
@@ -4,7 +4,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* TMS open API properties.
* TMS 开放接口配置。
*
* @author bms
*/
@@ -4,7 +4,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* Billing task MQ + Oracle upstream order settings.
* 计费任务 MQ 与 Oracle 上游订单配置。
*/
@Component
@ConfigurationProperties(prefix = "bms.billing")
@@ -2,7 +2,7 @@ package com.bms.price.domain;
import java.io.Serializable;
/** Async batch add income fee progress (Redis). */
/** 异步批量增加应收费用的进度(Redis)。 */
public class BatchAddIncomeBillFeeTask implements Serializable
{
private static final long serialVersionUID = 1L;
@@ -7,7 +7,7 @@ import com.bms.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/** Catalog product view over prc_price_set_product (price_type=PRODUCT/REDLINE) */
/** 目录产品视图,对应 prc_price_set_product(price_type=PRODUCT/REDLINE) */
@Data
@EqualsAndHashCode(callSuper = true)
public class BmsProduct extends BaseEntity
@@ -3,7 +3,7 @@ package com.bms.price.domain;
import java.io.Serializable;
/**
* Async product Excel import progress (Redis).
* 异步产品 Excel 导入进度(Redis)。
*/
public class BmsProductImportTask implements Serializable
{
@@ -7,7 +7,7 @@ import com.bms.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/** Redline catalog product view over prc_price_set_product (price_type=REDLINE) */
/** 红线价目录产品视图,对应 prc_price_set_product(price_type=REDLINE) */
@Data
@EqualsAndHashCode(callSuper = true)
public class BmsRedlineProduct extends BaseEntity
@@ -6,7 +6,7 @@ import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
/** Redline catalog country detail over prc_price_set_detail (price_type=REDLINE) */
/** 红线价目录国家明细,对应 prc_price_set_detail(price_type=REDLINE) */
@Data
public class BmsRedlineProductCountry implements Serializable
{
@@ -3,7 +3,7 @@ package com.bms.price.domain;
import java.io.Serializable;
/**
* Async product Excel import progress (Redis).
* 异步产品 Excel 导入进度(Redis)。
*/
public class BmsRedlineProductImportTask implements Serializable
{
@@ -5,7 +5,7 @@ import java.util.List;
import java.util.Map;
/**
* Apply create-page Excel preview into a draft/pending catalog version.
* 把新建页的 Excel 预览写入草稿或待生效的目录版本。
*/
public class CatalogPreviewApplyRequest implements Serializable
{
@@ -2,7 +2,7 @@ package com.bms.price.domain;
import java.io.Serializable;
/** Async charge-weight import progress (Redis). */
/** 异步计费重导入进度(Redis)。 */
public class ChargeWeightImportTask implements Serializable
{
private static final long serialVersionUID = 1L;
@@ -6,7 +6,7 @@ import com.bms.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/** Billing task row prc_billing_task */
/** 计费任务行 prc_billing_task */
@Data
@EqualsAndHashCode(callSuper = true)
public class PrcBillingTask extends BaseEntity
@@ -2,7 +2,7 @@ package com.bms.price.domain;
import java.io.Serializable;
/** Async filter-retry progress for billing tasks (Redis). */
/** 计费任务按条件重试的异步进度(Redis)。 */
public class PrcBillingTaskRetryTask implements Serializable
{
private static final long serialVersionUID = 1L;
@@ -8,7 +8,7 @@ import com.bms.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/** order info header prc_order_bill */
/** 订单信息主表 prc_order_bill */
@Data
@EqualsAndHashCode(callSuper = true)
public class PrcOrderBill extends BaseEntity
@@ -126,7 +126,7 @@ public class PrcOrderBill extends BaseEntity
private Integer billingFailStatus;
/** 失败原因 */
private String errorMessage;
/** \u6279\u91cf\u67e5\u8be2\uff1a\u591a\u4e2a\u8ba1\u8d39\u5931\u8d25\u72b6\u6001\uff08\u4ec5\u67e5\u8be2\u7528\uff0c\u975e\u8868\u5b57\u6bb5\uff09 */
/** 批量查询:多个计费失败状态(仅查询用,非表字段) */
private List<Integer> billingFailStatuses;
private String roundMode;
@@ -2,7 +2,7 @@ package com.bms.price.domain;
import java.io.Serializable;
/** Async order/billing list Excel export progress (Redis). */
/** 订单列表/计费列表 Excel 异步导出进度(Redis)。 */
public class PrcOrderBillExportTask implements Serializable
{
private static final long serialVersionUID = 1L;
@@ -7,7 +7,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Import quote Excel attachment: prc_price_excel_file
* 导入报价 Excel 附件:prc_price_excel_file
*/
@Data
@EqualsAndHashCode(callSuper = true)
@@ -7,7 +7,7 @@ import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
/** Price detail prc_price_set_detail (PRODUCT / REDLINE / SALES) */
/** 价格明细 prc_price_set_detail(PRODUCT / REDLINE / SALES) */
@Data
public class PrcPriceSetDetail implements Serializable
{
@@ -6,7 +6,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
/**
* Price product row prc_price_set_product (PRODUCT / REDLINE / SALES)
* 价格产品行 prc_price_set_product(PRODUCT / REDLINE / SALES)
*/
@Data
public class PrcPriceSetProduct implements Serializable
@@ -3,7 +3,7 @@ package com.bms.price.domain;
import java.io.Serializable;
/**
* Async save progress for price set (Redis).
* 价格套餐异步保存进度(Redis)。
*/
public class PrcPriceSetSaveTask implements Serializable
{
@@ -4,7 +4,7 @@ import com.bms.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/** Package viewer bind: prc_price_set_user */
/** 套餐可查看人绑定:prc_price_set_user */
@Data
@EqualsAndHashCode(callSuper = true)
public class PrcPriceSetUser extends BaseEntity
@@ -7,7 +7,7 @@ import com.bms.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/** Price set version prc_price_set_version */
/** 价格套餐版本 prc_price_set_version */
@Data
@EqualsAndHashCode(callSuper = true)
public class PrcPriceSetVersion extends BaseEntity
@@ -8,7 +8,7 @@ import com.bms.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/** billing quote header prc_quote */
/** 计费报价主表 prc_quote */
@Data
@EqualsAndHashCode(callSuper = true)
public class PrcQuote extends BaseEntity
@@ -6,7 +6,7 @@ import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
/** billing quote fee detail prc_quote_fee, one row per bms_fee_type */
/** 计费报价费用明细 prc_quote_fee,每个 bms_fee_type 一行 */
@Data
public class PrcQuoteFee implements Serializable
{
@@ -9,8 +9,8 @@ import lombok.EqualsAndHashCode;
* 附加费与产品/明细/套餐关联 prc_surcharge_rel
* 同时携带附加费展示字段(JOIN prc_surcharge)与明细展示字段(LEFT JOIN product_country,仅 PRODUCT/REDLINE)。
*
* price_type semantics:
* PRODUCT / REDLINE / SALES : product_id=psp_id, detail_id=psd_id (null=all details of product)
* price_type 含义:
* PRODUCT / REDLINE / SALES:product_id=psp_id,detail_id=psd_id(null 表示该产品全部明细)
*/
@Data
@@ -5,7 +5,7 @@ import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
/** Zone under region: prc_zone */
/** 国家下的分区:prc_zone */
@Data
public class PrcZone implements Serializable
{
@@ -5,7 +5,7 @@ import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
/** Zone postcode detail prc_zone_detail */
/** 分区邮编明细 prc_zone_detail */
@Data
public class PrcZoneDetail implements Serializable
{
@@ -4,7 +4,7 @@ import java.io.Serializable;
import lombok.Data;
/**
* Zone country list row: region + zone aggregates (not a table)
* 分区国家列表行:region 加分区汇总(不是一张表)
*/
@Data
public class PrcZoneRegion implements Serializable
@@ -1,7 +1,7 @@
package com.bms.price.domain;
/**
* Unified price type for prc_price_set_version / product / detail.
* prc_price_set_version / product / detail 共用的价格类型。
*/
public final class PriceType
{
@@ -5,7 +5,7 @@ import java.util.List;
import java.util.Map;
/**
* Apply create-page Excel preview into a draft/pending redline version.
* 把新建页的 Excel 预览写入草稿或待生效的红线价版本。
*/
public class RedlineCatalogPreviewApplyRequest implements Serializable
{
@@ -6,7 +6,7 @@ import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/** Manual add receivable fee line on billing detail. */
/** 在计费明细上手工增加一条应收费用。 */
@Data
public class AddIncomeBillFeeRequest implements Serializable
{
@@ -5,7 +5,7 @@ import java.util.ArrayList;
import java.util.List;
import com.bms.price.domain.PrcOrderBill;
/** Preview matched bills before async batch add fee. */
/** 异步批量加费用前,预览匹配到的账单。 */
public class BatchAddIncomeBillFeePreview implements Serializable
{
private static final long serialVersionUID = 1L;
@@ -7,8 +7,8 @@ import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
* Batch add receivable fee lines.
* scopeMode=SELECTED uses billIds; scopeMode=ALL uses list query filters.
* 批量增加应收费用行。
* scopeMode=SELECTED 使用 billIds;scopeMode=ALL 使用列表查询条件。
*/
@Data
public class BatchAddIncomeBillFeeRequest implements Serializable
@@ -4,8 +4,8 @@ import java.io.Serializable;
import lombok.Data;
/**
* Filter for async batch retry of billing tasks.
* Require customerCode + billTime range to avoid full-table resync.
* 计费任务异步批量重试的筛选条件。
* 必须带 customerCode 和 billTime 范围,避免全表重同步。
*/
@Data
public class BillingTaskRetryByFilterRequest implements Serializable
@@ -6,9 +6,9 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
/**
* Warehouse inbound request: create billing task then MQ consume.
* Provide at least one of transferNo / trackingNo / orderNo.
* billTime is billing time from mobile (stored in prc_billing_task.bill_time).
* 仓库入库请求:先创建计费任务,再由 MQ 消费。
* transferNo / trackingNo / orderNo 至少填一个。
* billTime 是移动端传入的计费时间(写入 prc_billing_task.bill_time)。
*/
@Data
public class BillingTaskSubmitRequest implements Serializable
@@ -5,7 +5,7 @@ import java.math.BigDecimal;
import com.bms.common.annotation.Excel;
import lombok.Data;
/** Excel row for batch charge_weight update. */
/** 批量更新 charge_weight 的 Excel 行。 */
@Data
public class ChargeWeightImportRow implements Serializable
{
@@ -4,7 +4,7 @@ import java.io.Serializable;
import java.util.List;
import lombok.Data;
/** Download charge-weight import template; optionally fill order/customer by list filters. */
/** 下载计费重导入模板;可按列表条件带出订单/客户。 */
@Data
public class ChargeWeightTemplateRequest implements Serializable
{
@@ -5,8 +5,8 @@ import java.util.List;
import lombok.Data;
/**
* Order-list local rebill: use prc_order_bill only (no Oracle TAB_ORDER).
* scopeMode SELECTED = billIds; ALL = filters (orderIdentifiers / customer / bizDate...).
* 订单列表本地重计费:只用 prc_order_bill(不查 Oracle TAB_ORDER)。
* scopeMode SELECTED = billIds;ALL = 筛选条件(orderIdentifiers / customer / bizDate 等)。
*/
@Data
public class LocalRebillRequest implements Serializable
@@ -5,8 +5,8 @@ import java.util.ArrayList;
import java.util.List;
/**
* Local order-bill products vs customer bound package (SALES) comparison.
* Matching also accepts product_code_mapping (upstream -> BMS).
* 本地订单账单产品与客户绑定套餐(SALES)的比对。
* 匹配时也接受 product_code_mapping(上游代码 -> BMS)。
*/
public class OrderBillProductCheckResult implements Serializable
{
@@ -7,7 +7,7 @@ import com.bms.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
/** Billing-list Excel export row. */
/** 计费列表 Excel 导出行。 */
@Data
public class PrcBillingBillListExportRow implements Serializable
{
@@ -7,7 +7,7 @@ import com.bms.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
/** Order-list Excel export row. */
/** 订单列表 Excel 导出行。 */
@Data
public class PrcOrderBillListExportRow implements Serializable
{
@@ -4,7 +4,7 @@ import java.io.Serializable;
import java.util.List;
import lombok.Data;
/** Batch recalc product_amount or redline_amount only (existing bills). */
/** 只批量重算 product_amount 或 redline_amount(已有账单)。 */
@Data
public class RecalcBillPriceRequest implements Serializable
{
@@ -5,7 +5,7 @@ import java.util.ArrayList;
import java.util.List;
/**
* Order-source product vs customer package comparison result.
* 订单源产品与客户套餐的比对结果。
*/
public class TabOrderProductCheckResult implements Serializable
{
@@ -10,7 +10,7 @@ import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
/** Sync order -> receivable bill. Quote fields plus order snapshot. */
/** 同步订单为应收账单。包含报价字段和订单快照。 */
@Data
@EqualsAndHashCode(callSuper = true)
public class TmsPriceBillRequest extends TmsPriceQuoteRequest
@@ -4,7 +4,7 @@ import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;
/** quote fee line keyed by bms_fee_type */
/** 按 bms_fee_type 区分的报价费用行 */
@Data
public class TmsPriceQuoteFeeLine implements Serializable
{
@@ -6,7 +6,7 @@ import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/** TMS freight quote request */
/** TMS 运费试算请求 */
@Data
public class TmsPriceQuoteRequest implements Serializable
{
@@ -7,8 +7,8 @@ import java.util.List;
import lombok.Data;
/**
* TMS freight quote response.
* matchSource: PACKAGE_FIXED / PACKAGE_DISCOUNT
* TMS 运费试算响应。
* matchSource:PACKAGE_FIXED / PACKAGE_DISCOUNT
*/
@Data
public class TmsPriceQuoteResult implements Serializable
@@ -7,7 +7,7 @@ import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/** Single-bill update for charge_weight (manual override; weight kept). */
/** 单笔更新 charge_weight(手工覆盖;weight 保留)。 */
@Data
public class UpdateChargeWeightRequest implements Serializable
{
@@ -5,7 +5,7 @@ import java.math.BigDecimal;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
/** Update manual receivable fee line on billing detail. */
/** 修改计费明细上的手工应收费用行。 */
@Data
public class UpdateIncomeBillFeeRequest implements Serializable
{
@@ -1,10 +1,10 @@
package com.bms.price.enums;
/**
* prc_order_bill.billing_fail_status \u8ba1\u8d39\u5931\u8d25\u72b6\u6001\uff08\u6570\u5b57\uff09\u3002
* 0\u6210\u529f\uff1b1\u672a\u5339\u914d\u4ea7\u54c1\uff1b2\u672a\u5339\u914d\u56fd\u5bb6\uff1b3\u672a\u5339\u914d\u91cd\u91cf\u6bb5\u3002
* 4 \u8d77\u4e0e prc_billing_task.fail_code \u4e00\u4e00\u5bf9\u5e94\u3002
* \u4ec5 0/1/2/3 \u5199\u5165 prc_income_bill\uff1b\u4ec5 0 \u5199\u5165 prc_income_bill_fee\u3002
* prc_order_bill.billing_fail_status 计费失败状态(数字)。
* 0成功;1未匹配产品;2未匹配国家;3未匹配重量段。
* 4 起与 prc_billing_task.fail_code 一一对应。
* 仅 0/1/2/3 写入 prc_income_bill;仅 0 写入 prc_income_bill_fee。
*/
public enum BillBillingFailStatus
{
@@ -65,14 +65,14 @@ public enum BillBillingFailStatus
return code != null && code.intValue() > SUCCESS.code;
}
/** 0/1/2/3 \u624d\u843d prc_income_bill\u3002 */
/** 0/1/2/3 才落 prc_income_bill。 */
public static boolean storesIncomeBill(Integer code)
{
int value = code == null ? SUCCESS.code : code.intValue();
return value == SUCCESS.code || value == PRODUCT.code || value == COUNTRY.code || value == WEIGHT.code;
}
/** \u4ec5 0 \u843d prc_income_bill_fee\u3002 */
/** 仅 0 落 prc_income_bill_fee。 */
public static boolean storesIncomeFee(Integer code)
{
return code == null || code.intValue() == SUCCESS.code;
@@ -1,8 +1,8 @@
package com.bms.price.enums;
/**
* Credit arrears status snapshot on prc_order_bill when billing.
* Billing continues even when ARREARS; occupy still runs with checkAvailable=false.
* 计费时写到 prc_order_bill 的信用欠费状态快照。
* 即使是 ARREARS 也继续计费;占用仍执行,且 checkAvailable=false。
*/
public enum BillCreditArrearsStatus
{
@@ -1,8 +1,8 @@
package com.bms.price.enums;
/**
* Customer effective status snapshot on prc_order_bill when billing.
* Billing continues even when MISSING / DISABLED.
* 计费时写到 prc_order_bill 的客户生效状态快照。
* 即使是 MISSING / DISABLED 也继续计费。
*/
public enum BillCustomerActiveStatus
{
@@ -1,9 +1,9 @@
package com.bms.price.enums;
/**
* Snapshot of prc_order_bill.order_status (aligned with upstream TAB_ORDER).
* Fee refund sets {@link #REFUNDED} (9 / 已退件); rebill/bill follows Oracle and does not pin 9/10.
* Upstream 9/10 trigger billType=REFUND when billing-task pulls Oracle.
* prc_order_bill.order_status 快照(与上游 TAB_ORDER 对齐)。
* 费用退款会置为 {@link #REFUNDED}(9 / 已退件);重计费/计费跟随 Oracle,不强制写成 9/10。
* 计费任务拉取 Oracle 时,上游 9/10 会触发 billType=REFUND。
*/
public enum BillOrderStatus
{
@@ -1,8 +1,8 @@
package com.bms.price.enums;
/**
* Refund status snapshot on prc_order_bill.
* NONE = not refunded; REFUNDED = has fee_type=REFUND line.
* prc_order_bill 上的退款状态快照。
* NONE = 未退款;REFUNDED = 存在 fee_type=REFUND 的费用行。
*/
public enum BillRefundStatus
{
@@ -3,8 +3,8 @@ package com.bms.price.enums;
import com.bms.common.utils.StringUtils;
/**
* Stable fail codes for prc_billing_task.fail_code (search / ops).
* Resolved from exception message when task writeback is FAILED.
* prc_billing_task.fail_code 的稳定失败码(用于查询 / 运维)。
* 任务回写为 FAILED 时,从异常信息解析得到。
*/
public enum BillTaskFailCode
{
@@ -56,49 +56,49 @@ public enum BillTaskFailCode
return null;
}
String msg = errorMessage.trim();
if (containsAny(msg, "\u672a\u7ed1\u5b9a\u5957\u9910", "noCustomerPackage", "NO_CUSTOMER_PACKAGE"))
if (containsAny(msg, "未绑定套餐", "noCustomerPackage", "NO_CUSTOMER_PACKAGE"))
{
return NO_CUSTOMER_PACKAGE.code;
}
if (containsAny(msg, "\u65e0\u751f\u6548\u5957\u9910\u7248\u672c", "noActivePackageVersion", "NO_ACTIVE_PACKAGE_VERSION"))
if (containsAny(msg, "无生效套餐版本", "noActivePackageVersion", "NO_ACTIVE_PACKAGE_VERSION"))
{
return NO_ACTIVE_PACKAGE_VERSION.code;
}
if (containsAny(msg, "\u5df2\u751f\u6210\u5e94\u6536\u8d26\u5355", "alreadyInArBill", "ALREADY_IN_AR_BILL"))
if (containsAny(msg, "已生成应收账单", "alreadyInArBill", "ALREADY_IN_AR_BILL"))
{
return ALREADY_IN_AR_BILL.code;
}
if (containsAny(msg, "\u672a\u627e\u5230\u6709\u6548\u4ea7\u54c1\u6863\u6848", "PRODUCT_ARCHIVE_MISSING"))
if (containsAny(msg, "未找到有效产品档案", "PRODUCT_ARCHIVE_MISSING"))
{
return PRODUCT_ARCHIVE_MISSING.code;
}
// Soft-fail messages from price.bill.billingFail.* (order matters: weight/country before generic)
if (containsAny(msg, "\u672a\u5339\u914d\u91cd\u91cf\u6bb5", "WEIGHT_NOT_HIT", "billingFail.weight"))
if (containsAny(msg, "未匹配重量段", "WEIGHT_NOT_HIT", "billingFail.weight"))
{
return WEIGHT_NOT_HIT.code;
}
if (containsAny(msg, "\u672a\u5339\u914d\u56fd\u5bb6", "COUNTRY_NOT_HIT", "billingFail.country"))
if (containsAny(msg, "未匹配国家", "COUNTRY_NOT_HIT", "billingFail.country"))
{
return COUNTRY_NOT_HIT.code;
}
if (containsAny(msg, "\u672a\u5339\u914d\u4ea7\u54c1", "PRODUCT_NOT_HIT", "billingFail.product", "productNotInPackage"))
if (containsAny(msg, "未匹配产品", "PRODUCT_NOT_HIT", "billingFail.product", "productNotInPackage"))
{
return PRODUCT_NOT_HIT.code;
}
if (containsAny(msg, "\u8be5\u5206\u533a\u65e0\u5bf9\u5e94\u4ea7\u54c1\u91cd\u91cf\u6bb5", "zonePriceNotHit", "ZONE_PRICE_NOT_HIT"))
if (containsAny(msg, "该分区无对应产品重量段", "zonePriceNotHit", "ZONE_PRICE_NOT_HIT"))
{
return ZONE_PRICE_NOT_HIT.code;
}
if (containsAny(msg, "\u6ca1\u6709\u4ea7\u54c1/\u56fd\u5bb6/\u91cd\u91cf\u6bb5", "priceNotHit", "PRICE_NOT_HIT",
if (containsAny(msg, "没有产品/国家/重量段", "priceNotHit", "PRICE_NOT_HIT",
"packagePriceNotHit", "packageZonePriceNotHit"))
{
return PRICE_NOT_HIT.code;
}
if (containsAny(msg, "\u8bf7\u586b\u5199\u76ee\u7684\u90ae\u7f16", "postcodeRequired", "POSTCODE_REQUIRED"))
if (containsAny(msg, "请填写目的邮编", "postcodeRequired", "POSTCODE_REQUIRED"))
{
return POSTCODE_REQUIRED.code;
}
if (containsAny(msg, "\u90ae\u7f16\u672a\u5339\u914d\u5230\u5206\u533a", "postcodeZoneNotFound", "POSTCODE_ZONE_NOT_FOUND"))
if (containsAny(msg, "邮编未匹配到分区", "postcodeZoneNotFound", "POSTCODE_ZONE_NOT_FOUND"))
{
return POSTCODE_ZONE_NOT_FOUND.code;
}
@@ -126,19 +126,19 @@ public enum BillTaskFailCode
{
return BILL_TIME_EMPTY.code;
}
if (containsAny(msg, "\u9000\u8d39\u8ba2\u5355\u53f7\u65e0\u6cd5\u89e3\u6790", "REFUND_ORDER_UNRESOLVED"))
if (containsAny(msg, "退费订单号无法解析", "REFUND_ORDER_UNRESOLVED"))
{
return REFUND_ORDER_UNRESOLVED.code;
}
if (containsAny(msg, "\u5ba2\u6237\u4ee3\u7801\u4e0d\u80fd\u4e3a\u7a7a", "customerCodeRequired", "CUSTOMER_CODE_REQUIRED"))
if (containsAny(msg, "客户代码不能为空", "customerCodeRequired", "CUSTOMER_CODE_REQUIRED"))
{
return CUSTOMER_CODE_REQUIRED.code;
}
if (containsAny(msg, "\u5ba2\u6237\u5df2\u505c\u7528", "customerDisabled", "CUSTOMER_DISABLED"))
if (containsAny(msg, "客户已停用", "customerDisabled", "CUSTOMER_DISABLED"))
{
return CUSTOMER_DISABLED.code;
}
if (containsAny(msg, "\u8fd0\u8d39\u4e3a\u7a7a", "freightMissing", "FREIGHT_MISSING"))
if (containsAny(msg, "运费为空", "freightMissing", "FREIGHT_MISSING"))
{
return FREIGHT_MISSING.code;
}
@@ -1,6 +1,6 @@
package com.bms.price.enums;
/** Billing task success flag on prc_billing_task.success_status */
/** 计费任务成功标记,对应 prc_billing_task.success_status */
public enum BillTaskSuccessStatus
{
WAITING("WAITING"),
@@ -1,6 +1,6 @@
package com.bms.price.enums;
/** Billing task type on prc_billing_task.bill_type */
/** 计费任务类型,对应 prc_billing_task.bill_type */
public enum BillTaskType
{
/** first-time billing */
@@ -5,7 +5,7 @@ import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.vo.TabOrderMonitorQuery;
/** Read upstream main order from Oracle (SLAVE datasource). */
/** 从 Oracle 读取上游主订单(SLAVE 数据源)。 */
public interface OracleUpstreamOrderMapper
{
Map<String, Object> selectByTransferNo(@Param("orderTable") String orderTable, @Param("transferNo") String transferNo);
@@ -4,7 +4,7 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcIncomeBillFee;
/** receivable bill fee mapper */
/** 应收账单费用 mapper */
public interface PrcIncomeBillFeeMapper
{
public List<PrcIncomeBillFee> selectByBillId(String billId);
@@ -4,7 +4,7 @@ import java.util.List;
import com.bms.price.domain.PrcIncomeBill;
import org.apache.ibatis.annotations.Param;
/** prc_income_bill mapper */
/** 应收账单 prc_income_bill 的 mapper */
public interface PrcIncomeBillMapper
{
PrcIncomeBill selectByBillId(String billId);
@@ -2,7 +2,7 @@ package com.bms.price.mapper;
import com.bms.price.domain.PrcOrderBillExt;
/** prc_order_bill_ext mapper */
/** 订单账单扩展 prc_order_bill_ext 的 mapper */
public interface PrcOrderBillExtMapper
{
public PrcOrderBillExt selectByBillId(String billId);
@@ -7,7 +7,7 @@ import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcOrderBill;
/** order bill header mapper */
/** 订单账单主表 mapper */
public interface PrcOrderBillMapper
{
public PrcOrderBill selectPrcOrderBillByOrderNo(String orderNo);
@@ -4,7 +4,7 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcPayBillFee;
/** payable bill fee mapper */
/** 应付账单费用 mapper */
public interface PrcPayBillFeeMapper
{
public List<PrcPayBillFee> selectByBillId(String billId);
@@ -5,7 +5,7 @@ import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcPriceExcelFile;
/**
* Import quote Excel attachment mapper
* 导入报价 Excel 附件 mapper
*/
public interface PrcPriceExcelFileMapper
{
@@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcPriceSetDetail;
/**
* Price detail mapper (PRODUCT / REDLINE / SALES)
* 价格明细 mapper(PRODUCT / REDLINE / SALES)
*/
public interface PrcPriceSetDetailMapper
{
@@ -5,7 +5,7 @@ import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcPriceSetProduct;
/**
* Price product mapper (PRODUCT / REDLINE / SALES)
* 价格产品 mapper(PRODUCT / REDLINE / SALES)
*/
public interface PrcPriceSetProductMapper
{
@@ -6,7 +6,7 @@ import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcPriceSetVersion;
/**
* Price version (PRODUCT / REDLINE / SALES)
* 价格版本(PRODUCT / REDLINE / SALES)
*/
public interface PrcPriceSetVersionMapper
{
@@ -4,7 +4,7 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcQuoteFee;
/** billing quote fee detail mapper */
/** 计费报价费用明细 mapper */
public interface PrcQuoteFeeMapper
{
public List<PrcQuoteFee> selectByQuoteId(String quoteId);
@@ -5,7 +5,7 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.bms.price.domain.PrcQuote;
/** billing quote header mapper */
/** 计费报价主表 mapper */
public interface PrcQuoteMapper
{
public PrcQuote selectPrcQuoteByKey(String quoteKey);
@@ -2,7 +2,7 @@ package com.bms.price.mq;
import java.io.Serializable;
/** MQ payload: only taskId; consumer loads full row from MySQL. */
/** MQ 消息体:只有 taskId;消费者从 MySQL 加载整行。 */
public class BillingTaskMessage implements Serializable
{
private static final long serialVersionUID = 1L;
@@ -21,7 +21,7 @@ import com.bms.price.config.BillingProperties;
import com.bms.price.service.IPrcBillingTaskService;
/**
* Consume billing task MQ messages and call billing interface.
* 消费计费任务 MQ 消息并调用计费接口。
*/
@Component
@ConditionalOnProperty(prefix = "bms.billing", name = "consumer-enabled", havingValue = "true", matchIfMissing = true)
@@ -1,6 +1,6 @@
package com.bms.price.mq;
/** Publish billing task id to MQ after warehouse inbound insert. */
/** 仓库入库写入后,把计费任务 id 发到 MQ。 */
public interface IBillingTaskMqPublisher
{
void publish(BillingTaskMessage message);
@@ -5,8 +5,8 @@ import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;
/**
* Local MQ: Spring application event (dev / no Redis broker).
* Enable with bms.billing.mq-mode=local
* 本地 MQ:Spring 应用事件(开发环境 / 没有 Redis)。
* 配置 bms.billing.mq-mode=local 启用
*/
@Component
@ConditionalOnProperty(prefix = "bms.billing", name = "mq-mode", havingValue = "local")
@@ -9,8 +9,8 @@ import com.alibaba.fastjson2.JSON;
import com.bms.price.config.BillingProperties;
/**
* Redis list as MQ queue (default). LPUSH on publish; consumer BRPOP/RPOP.
* Enable with bms.billing.mq-mode=redis (default).
* 用 Redis list 作为 MQ 队列(默认)。发布时 LPUSH;消费时 BRPOP/RPOP。
* 配置 bms.billing.mq-mode=redis 启用(默认)。
*/
@Component
@ConditionalOnProperty(prefix = "bms.billing", name = "mq-mode", havingValue = "redis", matchIfMissing = true)
@@ -10,7 +10,7 @@ import com.bms.common.utils.StringUtils;
import com.bms.price.domain.vo.TmsPriceBillRequest;
/**
* Map Oracle main-order row (FIELD_MAP style columns) to TmsPriceBillRequest.
* 把 Oracle 主订单行(FIELD_MAP 风格的列)映射为 TmsPriceBillRequest。
*/
@Component
public class OracleOrderBillMapper
@@ -15,8 +15,8 @@ import com.bms.price.config.BillingProperties;
import com.bms.price.mapper.OracleUpstreamOrderMapper;
/**
* Query Oracle main order via SLAVE datasource.
* Requires spring.datasource.druid.slave.enabled=true and Oracle URL.
* 通过 SLAVE 数据源查询 Oracle 主订单。
* 需要 spring.datasource.druid.slave.enabled=true,并配置 Oracle URL。
*/
@Service
public class OracleUpstreamOrderService
@@ -24,7 +24,7 @@ import com.bms.price.service.ITmsPriceQuoteService;
import com.bms.system.service.IBmsProductCodeMappingService;
/**
* Compare distinct TAB_ORDER product codes against customer package products.
* 把 TAB_ORDER 中不重复的产品代码与客户套餐产品比对。
*/
@Service
public class TabOrderProductCheckService
@@ -7,7 +7,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* Bill sync search-store beans.
* 账单同步所用的搜索存储 Bean。
*/
@Configuration
@EnableConfigurationProperties(ElasticsearchProperties.class)
@@ -3,7 +3,7 @@ package com.bms.price.search;
import java.util.ArrayList;
import java.util.List;
/** Paginated ES search result. */
/** ES 分页查询结果。 */
public class BillSearchPage
{
private long total;
@@ -1,6 +1,6 @@
package com.bms.price.search;
/** Generic Elasticsearch business log. Distinguished by logType + bizId. */
/** 通用 Elasticsearch 业务日志。用 logType + bizId 区分。 */
public class BillSyncSnapshot
{
private String docId;
@@ -3,7 +3,7 @@ package com.bms.price.search;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* Elasticsearch connection for bill sync search store.
* 账单同步搜索存储使用的 Elasticsearch 连接。
*/
@ConfigurationProperties(prefix = "bms.elasticsearch")
public class ElasticsearchProperties
@@ -20,7 +20,7 @@ import com.alibaba.fastjson2.JSONObject;
import com.bms.common.utils.StringUtils;
/**
* Persist / load generic business logs via Elasticsearch REST API.
* 通过 Elasticsearch REST API 保存 / 读取通用业务日志。
*/
public class EsBillSearchStore implements IBillSearchStore
{
@@ -12,7 +12,7 @@ import com.bms.common.utils.sign.Md5Utils;
import com.bms.price.domain.vo.TmsPriceBillRequest;
import com.bms.price.domain.vo.TmsPriceQuoteRequest;
/** Helpers for ES business logs (success / fail). */
/** ES 业务日志辅助方法(成功 / 失败)。 */
public final class EsBizLogSupport
{
public static final String STATUS_SUCCESS = "SUCCESS";
@@ -3,7 +3,7 @@ package com.bms.price.search;
import java.text.SimpleDateFormat;
import java.util.Date;
/** Common ES business-log types. */
/** 常用 ES 业务日志类型。 */
public final class EsLogType
{
public static final String BILL = "BILL";
@@ -1,7 +1,7 @@
package com.bms.price.search;
/**
* Generic Elasticsearch store for business request/response logs.
* 业务请求/响应日志的通用 Elasticsearch 存储。
*/
public interface IBillSearchStore
{
@@ -1,7 +1,7 @@
package com.bms.price.search;
/**
* No-op when Elasticsearch is disabled.
* 未启用 Elasticsearch 时的空实现。
*/
public class NoopBillSearchStore implements IBillSearchStore
{
@@ -12,7 +12,7 @@ import com.bms.common.utils.StringUtils;
import com.bms.price.domain.PrcPriceSetDetail;
/**
* Write sales / product / redline price before-after changes to ES (bms_biz_log).
* 把销售价 / 产品价 / 红线价的变更前后写入 ES(bms_biz_log)。
*/
public final class PriceChangeEsLog
{
@@ -93,18 +93,18 @@ public final class PriceChangeEsLog
{
if (oldRow != null)
{
addIfChanged(changes, "fvValue", "\u8fd0\u8d39\u5355\u4ef7", oldRow.getFvValue(), null);
addIfChanged(changes, "fvRegistrationFee", "\u6302\u53f7\u8d39", oldRow.getFvRegistrationFee(), null);
addIfChanged(changes, "discountValue", "\u6298\u6263", oldRow.getDiscountValue(), null);
addIfChanged(changes, "fvValue", "运费单价", oldRow.getFvValue(), null);
addIfChanged(changes, "fvRegistrationFee", "挂号费", oldRow.getFvRegistrationFee(), null);
addIfChanged(changes, "discountValue", "折扣", oldRow.getDiscountValue(), null);
}
return changes;
}
Object oldFv = oldRow == null ? null : oldRow.getFvValue();
Object oldReg = oldRow == null ? null : oldRow.getFvRegistrationFee();
Object oldDisc = oldRow == null ? null : oldRow.getDiscountValue();
addIfChanged(changes, "fvValue", "\u8fd0\u8d39\u5355\u4ef7", oldFv, newRow.getFvValue());
addIfChanged(changes, "fvRegistrationFee", "\u6302\u53f7\u8d39", oldReg, newRow.getFvRegistrationFee());
addIfChanged(changes, "discountValue", "\u6298\u6263", oldDisc, newRow.getDiscountValue());
addIfChanged(changes, "fvValue", "运费单价", oldFv, newRow.getFvValue());
addIfChanged(changes, "fvRegistrationFee", "挂号费", oldReg, newRow.getFvRegistrationFee());
addIfChanged(changes, "discountValue", "折扣", oldDisc, newRow.getDiscountValue());
return changes;
}
@@ -112,8 +112,8 @@ public final class PriceChangeEsLog
BigDecimal newFreight, BigDecimal newReg)
{
List<Map<String, String>> changes = new ArrayList<Map<String, String>>();
addIfChanged(changes, "freightPrice", "\u8fd0\u8d39\u5355\u4ef7", oldFreight, newFreight);
addIfChanged(changes, "registrationFee", "\u6302\u53f7\u8d39", oldReg, newReg);
addIfChanged(changes, "freightPrice", "运费单价", oldFreight, newFreight);
addIfChanged(changes, "registrationFee", "挂号费", oldReg, newReg);
return changes;
}
@@ -6,7 +6,7 @@ import com.alibaba.fastjson2.JSON;
import com.bms.common.utils.SecurityUtils;
import com.bms.common.utils.StringUtils;
/** Write order-source sync actions to ES. */
/** 把订单源同步动作写入 ES。 */
public final class TabOrderSyncEsLog
{
private TabOrderSyncEsLog()
@@ -9,7 +9,7 @@ import com.bms.price.domain.BmsProductImportTask;
import com.bms.price.domain.CatalogPreviewApplyRequest;
/**
* Product list service
* 产品列表服务
*
* @author bms
*/

Some files were not shown because too many files have changed in this diff Show More