✨ 组织同步收敛为双顶级与二级公司白名单

集团顶级改为 id=1/广西现代物流集团有限公司,仅同步 OA 公司 2、135 及其子公司与部门,并同步客商固定所属组织名称。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-15 12:47:11 +08:00
parent 7654690d7c
commit 0518bf94bf
12 changed files with 631 additions and 30 deletions
@@ -166,7 +166,7 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl<CustomerArchiveM
*/
private static final String APPROVAL_REJECTED = "rejected";
/** 客商所属组织固定为顶层组织 */
private static final String FIXED_OWNER_DEPT_NAME = "桂物物流集团";
private static final String FIXED_OWNER_DEPT_NAME = "广西现代物流集团有限公司";
/**
* 金蝶协同状态:未推送(新增客商默认值,审批通过后参与推送)
@@ -2162,7 +2162,7 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl<CustomerArchiveM
}
/**
* 客商所属组织固定为顶层「桂物物流集团」,忽略前端传入的其他组织。
* 客商所属组织固定为顶层「广西现代物流集团有限公司」,忽略前端传入的其他组织。
*/
private void applyFixedOwnerDept(CustomerArchiveVO customer) {
customer.setDeptName(FIXED_OWNER_DEPT_NAME);
@@ -110,7 +110,7 @@ class CertAuditServiceImplTest {
ArgumentCaptor<TransportVehicle> captor = ArgumentCaptor.forClass(TransportVehicle.class);
verify(transportVehicleService).updateById(captor.capture());
TransportVehicle patched = captor.getValue();
assertEquals("桂物物流集团", patched.getOwnerName(), "所有人要跟着生效值更新");
assertEquals("广西现代物流集团有限公司", patched.getOwnerName(), "所有人要跟着生效值更新");
assertEquals("管理挂靠", patched.getBusinessRelation());
assertEquals(18000, patched.getApprovedLoadKg());
assertEquals(RECORD_ID, patched.getEffectiveCertRecordId(), "内容与指针必须是同一次 UPDATE");
@@ -441,7 +441,7 @@ class CertAuditServiceImplTest {
*/
static String completeVehicleSnapshot() {
return "{\"drivingLicenseNo\":\"450100123456\",\"approvedLoadKg\":18000,"
+ "\"ownerName\":\"桂物物流集团\",\"businessRelation\":\"管理挂靠\","
+ "\"ownerName\":\"广西现代物流集团有限公司\",\"businessRelation\":\"管理挂靠\","
+ "\"vehicleType\":\"重型货车\",\"driveLicenseImage\":\"http://oss/xsz.jpg\"}";
}
@@ -464,13 +464,13 @@ class DriverCertServiceImplTest {
assertEquals("重型货车", vehicleCaptor.getValue().getVehicleType());
assertNull(vehicleCaptor.getValue().getEffectiveCertRecordId(),
"新建的车不得自带生效快照——是否已认证只能由审核通过决定");
assertEquals("桂物物流集团", vehicleCaptor.getValue().getOrganizationName(),
assertEquals("广西现代物流集团有限公司", vehicleCaptor.getValue().getOrganizationName(),
"所属组织必须从司机档案带出:该列 NOT NULL 且无默认值,空着这条 INSERT 直接报错");
assertEquals("管理挂靠", vehicleCaptor.getValue().getBusinessRelation(),
"业务关系由司机在表单里选,服务端照实落库、不替用户猜");
assertNotNull(vehicleCaptor.getValue().getRegistrationNo(),
"机动车登记编号该列 NOT NULL:司机端选填,缺值要写空串而不是 null");
assertEquals("桂物物流集团", vehicleCaptor.getValue().getOwnerName(),
assertEquals("广西现代物流集团有限公司", vehicleCaptor.getValue().getOwnerName(),
"所有人是行驶证上的登记主体,与所属组织是两个字段");
// 绑定:司机的 driving_vehicle 被追加该车牌
@@ -663,7 +663,7 @@ class DriverCertServiceImplTest {
VehicleCertSubmitRequest request = new VehicleCertSubmitRequest();
request.setPlateNo(plateNo);
request.setVehicleType("重型货车");
request.setOwnerName("桂物物流集团");
request.setOwnerName("广西现代物流集团有限公司");
request.setPlateColor("黄牌");
request.setEnergyType("柴油");
request.setBusinessRelation("管理挂靠");
@@ -691,7 +691,7 @@ class DriverCertServiceImplTest {
driver.setDriverName("张三");
// 车辆表的 organization_name 是 NOT NULL 且无默认值:司机缺组织时建车必然失败,
// 故建车链路要求它非空,fixture 也必须给
driver.setOrganizationName("桂物物流集团");
driver.setOrganizationName("广西现代物流集团有限公司");
driver.setDrivingVehicle(drivingVehicle);
return driver;
}
@@ -32,7 +32,7 @@ class OcrFieldSupportTest {
"words_result": {
"号牌号码": {"words": "桂A32523"},
"车辆类型": {"words": "重型厢式货车"},
"所有人": {"words": "桂物物流集团"},
"所有人": {"words": "广西现代物流集团有限公司"},
"车辆识别代码": {"words": "LGAX2A130J1001234"},
"档案编号": {"words": "450100123456"},
"核定载质量": {"words": "18000kg"},
@@ -48,7 +48,7 @@ class OcrFieldSupportTest {
assertEquals("桂A32523", fields.get("plateNo"));
assertEquals("重型厢式货车", fields.get("vehicleType"));
assertEquals("桂物物流集团", fields.get("ownerName"));
assertEquals("广西现代物流集团有限公司", fields.get("ownerName"));
assertEquals("LGAX2A130J1001234", fields.get("vin"));
assertEquals("450100123456", fields.get("drivingLicenseNo"));
assertEquals(18000, fields.get("approvedLoadKg"), "带 kg 单位也要能取到数字");
@@ -160,7 +160,7 @@ class OcrFieldSupportTest {
{
"words_result": {
"道路运输证号": {"words": "桂交运管桂字450100123456号"},
"业户名称": {"words": "桂物物流集团"},
"业户名称": {"words": "广西现代物流集团有限公司"},
"有效期": {"words": "2020-01-01 至 2030-01-01"}
}
}
@@ -169,7 +169,7 @@ class OcrFieldSupportTest {
Map<String, Object> fields = OcrFieldSupport.extract(BaiduOcrType.ROAD_TRANSPORT_CERTIFICATE, null, result);
assertEquals("桂交运管桂字450100123456号", fields.get("roadTransportCertNo"));
assertEquals("桂物物流集团", fields.get("ownerName"));
assertEquals("广西现代物流集团有限公司", fields.get("ownerName"));
assertEquals("2030-01-01", fields.get("roadTransportCertEndDate"), "止期字段取区间的最后一段,取第一段会把有效期起填成止");
assertEquals("2020-01-01", fields.get("roadTransportCertStartDate"), "区间要同时带出起止,否则用户得照图再敲一遍");
}