优化比对

This commit is contained in:
wuweihua
2026-10-26 16:03:12 +08:00
parent 209d545d5b
commit 7f4fc3df8c
12 changed files with 153 additions and 30 deletions
@@ -178,6 +178,9 @@ public class PrcOrderBillExt implements Serializable
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date airConfirmTime;
private Integer packageType;
/** 客户确认重 */
private BigDecimal confirmWeight;
/** 计费重 */
private BigDecimal dimensionalWeightFactor;
private String updateBy;
private String customerPickupSite;
@@ -39,6 +39,8 @@ public class TabOrderCompareTask implements Serializable
* 每项:transferNo / upstreamStatus / localStatus
*/
private List<Map<String, Object>> statusMismatchSamples = new ArrayList<Map<String, Object>>();
/** status-mismatch transfer_no sample (flat, for UI fill) */
private List<String> statusMismatchTransferNos = new ArrayList<String>();
public String getTaskId() { return taskId; }
public void setTaskId(String taskId) { this.taskId = taskId; }
@@ -70,4 +72,10 @@ public class TabOrderCompareTask implements Serializable
this.statusMismatchSamples = statusMismatchSamples == null
? new ArrayList<Map<String, Object>>() : statusMismatchSamples;
}
public List<String> getStatusMismatchTransferNos() { return statusMismatchTransferNos; }
public void setStatusMismatchTransferNos(List<String> statusMismatchTransferNos)
{
this.statusMismatchTransferNos = statusMismatchTransferNos == null
? new ArrayList<String>() : statusMismatchTransferNos;
}
}
@@ -36,7 +36,9 @@ public class TabOrderMonitorVo implements Serializable
private String countryName;
/** 收件人邮编 */
private String consigneePostcode;
/** 材积系数/计费重 */
/** 客户确认重 */
private BigDecimal confirmWeight;
/** 计费重 */
private BigDecimal dimensionalWeightFactor;
/** 体积重 */
private BigDecimal volumeWeight;
@@ -164,6 +164,7 @@ public final class OracleOrderBillExtFiller
ext.setTrackQueryTime(date(row, "TRACK_QUERY_TIME"));
ext.setAirConfirmTime(date(row, "AIR_CONFIRM_TIME"));
ext.setPackageType(integer(row, "PACKAGE_TYPE"));
ext.setConfirmWeight(decimal(row, "CONFIRM_WEIGHT"));
ext.setDimensionalWeightFactor(decimal(row, "DIMENSIONAL_WEIGHT_FACTOR"));
ext.setUpdateBy(str(row, "UPDATE_BY"));
ext.setCustomerPickupSite(str(row, "CUSTOMER_PICKUP_SITE"));
@@ -1315,6 +1315,7 @@ public class TabOrderMonitorService
vo.setCountry(str(row, "COUNTRY"));
vo.setCountryName(str(row, "COUNTRY_NAME"));
vo.setConsigneePostcode(str(row, "CONSIGNEE_POSTCODE"));
vo.setConfirmWeight(decimal(row, "CONFIRM_WEIGHT"));
vo.setDimensionalWeightFactor(decimal(row, "DIMENSIONAL_WEIGHT_FACTOR"));
vo.setVolumeWeight(decimal(row, "VOLUME_WEIGHT"));
vo.setWeight(decimal(row, "WEIGHT"));
@@ -160,6 +160,17 @@ public class TabOrderCompareAsyncRunner
resp.put("statusMismatch", Integer.valueOf(statusMismatch));
resp.put("missingTransferNos", missingSample);
resp.put("statusMismatchSamples", statusMismatchSample);
List<String> mismatchTns = new ArrayList<String>();
for (Map<String, Object> one : statusMismatchSample)
{
if (one == null) { continue; }
Object tn = one.get("transferNo");
if (tn != null && StringUtils.isNotEmpty(String.valueOf(tn).trim()))
{
mismatchTns.add(String.valueOf(tn).trim());
}
}
resp.put("statusMismatchTransferNos", mismatchTns);
resp.put("missingTruncated", Boolean.valueOf(missing > missingSample.size()));
resp.put("statusMismatchTruncated",
Boolean.valueOf(statusMismatch > statusMismatchSample.size()));
@@ -312,6 +323,17 @@ public class TabOrderCompareAsyncRunner
if (statusMismatchSample != null)
{
task.setStatusMismatchSamples(new ArrayList<Map<String, Object>>(statusMismatchSample));
List<String> tnList = new ArrayList<String>();
for (Map<String, Object> one : statusMismatchSample)
{
if (one == null) { continue; }
Object tn = one.get("transferNo");
if (tn != null && StringUtils.isNotEmpty(String.valueOf(tn).trim()))
{
tnList.add(String.valueOf(tn).trim());
}
}
task.setStatusMismatchTransferNos(tnList);
}
redisCache.setCacheObject(CACHE_KEY_PREFIX + taskId, task, TTL_MINUTES, TimeUnit.MINUTES);
}