diff --git a/.lithe/maven/config.json b/.lithe/maven/config.json new file mode 100644 index 0000000..fcd8640 --- /dev/null +++ b/.lithe/maven/config.json @@ -0,0 +1,6 @@ +{ + "version": 1, + "selectedProfiles": [], + "customProfiles": [], + "skipTests": false +} diff --git a/.lithe/run/generated.json b/.lithe/run/generated.json index b074e0e..6957ace 100644 --- a/.lithe/run/generated.json +++ b/.lithe/run/generated.json @@ -453,9 +453,9 @@ } ], "generator": { - "fingerprint": "sha256:c3a4b1a72f53a9fd91457473dc3f94bfcfd59320ce7532f81fc2772967924660", + "fingerprint": "sha256:580a75953642084f1374c11d651b48b6b0fe957777a17d706c06548d412dc222", "inputs": { - "crm-app/pom.xml": "sha256:5dab7c63bd1ebac88806b775f7e8e920d81eb500d3c0040ef93486b7df8f20fe", + "crm-app/pom.xml": "sha256:9d69b254709886a11282bd35af554c549824ee75f3730ee0aa5e67e57d6d0e7f", "crm-app/src/main/java/com/crm/app/CrmAppApplication.java": "sha256:5eecad74f14776e5f2f51eef0d0925dde9874d93da3fb76dfd8d7c3cebe2c809", "crm-auth/pom.xml": "sha256:7ce7c34655abce46bfabad8f78a78aa3e229d667246debd50d93f0d66b37dcd1", "crm-auth/src/main/java/com/crm/auth/AuthApplication.java": "sha256:b89cd3423ee3a8d9d2f29cb4bb0b0487c3b5bfad3690f53b23fa2578165b537a", @@ -636,9 +636,140 @@ "crm-base/src/test/java/com/crm/base/domain/result/BatchRunnerTest.java": "sha256:9924e321f2872b71cb32151b9022cd1b9ef6a23028c5ffdc9aa2ac76c7e214d8", "crm-base/src/test/java/com/crm/base/security/DataVisibilityTest.java": "sha256:4cfc9f0e3b9fcecadc2cf03eea47681c9aaac8463150ebd39114bcb05a2a8d31", "crm-base/src/test/java/com/crm/base/utils/PageConverterTest.java": "sha256:3733b99795643d748dbcf95eb58c48e1763830514091ffce18d4e0f5b83f23c6", + "crm-customer/pom.xml": "sha256:18e771632b09756d2819030013b0b01f62e7f7af26b07f7b9da952d16491f70e", + "crm-customer/src/main/java/com/crm/customer/config/CustomerFulltextIndexInitializer.java": "sha256:15baaff3572ff904ce807bb0345e03c9d1e0c36fbe0c7656bc6cb91f33c5cf6d", + "crm-customer/src/main/java/com/crm/customer/constant/CustomerConstants.java": "sha256:a114511d731a67e869bec8c17669b4018e8e697624714773fd0bce3435111e39", + "crm-customer/src/main/java/com/crm/customer/controller/CustomerContactController.java": "sha256:abe5c5c6662dab8ffb8db565a4b23a59ffa19142e51d42c286f6b2fb26cb7eb7", + "crm-customer/src/main/java/com/crm/customer/controller/CustomerController.java": "sha256:b92e68b3ec3364d1528c275a83afa4421c4de0267138a6913d0cfe3165ea5902", + "crm-customer/src/main/java/com/crm/customer/controller/CustomerDetailController.java": "sha256:c785223fcb1e40b9519bb2e439ca4b3c8d4c539cd8ab4d44b9cfaafae7b46c3e", + "crm-customer/src/main/java/com/crm/customer/controller/CustomerFocusController.java": "sha256:bad083080d874d9e009533e11badcadba2c42c87b3ce1a4bd0ef66b86e510f1a", + "crm-customer/src/main/java/com/crm/customer/controller/CustomerImportController.java": "sha256:e12324cd16dae48dd3d1d5830cfd6d8ff9f13dd46eea2f356a9751adeef1f2a8", + "crm-customer/src/main/java/com/crm/customer/controller/CustomerOwnershipController.java": "sha256:9cf038cd21857ddcd33f49f85def9862d7c3aceb4f33714c710dfe921002f4c0", + "crm-customer/src/main/java/com/crm/customer/controller/CustomerPingController.java": "sha256:33cc32a500e578cd358242e0a3c36420ff9565105f30eedfa00f479da82db96e", + "crm-customer/src/main/java/com/crm/customer/controller/CustomerTransferController.java": "sha256:1891744da5fd4a12898da631808922699b2aa4b63e115d3b89a617ef3afc9560", + "crm-customer/src/main/java/com/crm/customer/controller/CustomerWorkspaceController.java": "sha256:0f3298a3ca3c5f138ac2bca7b8c14bb5edc44a8f43f401209fe5b6e207237dc1", + "crm-customer/src/main/java/com/crm/customer/domain/dto/AssignableUserDTO.java": "sha256:ce174ba6396201b8351d6746539253b5f63f2881d964d04f71fe2f419ca27b73", + "crm-customer/src/main/java/com/crm/customer/domain/dto/ContactDTO.java": "sha256:a3f364db3b421cea8c5bea86fb516e7e82733bbc08515f60fa0f80daa6d3d08e", + "crm-customer/src/main/java/com/crm/customer/domain/dto/ContactPhoneHitDTO.java": "sha256:046c7e184c6576dce9840d8312632ba8c3e01ee6d84d81449e9638eb9003e1b7", + "crm-customer/src/main/java/com/crm/customer/domain/dto/CreditCodeCheckDTO.java": "sha256:a35725ab26cf10bdb86e488efea7296cc14a3abb9a550d15ec846c1c5d3c07d7", + "crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerBatchFailItem.java": "sha256:53ca14ea71df9335ccf964edb82036d722e768766a1a9752e2bb27c62b56b76b", + "crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerBoardSummaryDTO.java": "sha256:f5defe731e20bd3bc5e88cb83257d039200be32da263c432e17427cfc5cd86d5", + "crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerCreateDTO.java": "sha256:bdb08458bf6cf764ae77c5067f05e4edf38aac0dc3eee80fd326ad29a262b6a8", + "crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerDetailDTO.java": "sha256:dd744ac92d7e87a61791a1229fb12bb6e68c64e4aa7f474b81cb5edca529e718", + "crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerDetailHeadDTO.java": "sha256:8366cc9fb61cecca8a543d320a6721bf57536c8c007814c02b3fedae6f1f60fe", + "crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerListRowDTO.java": "sha256:7067c2709a59a8fe7df9b4542b7b7126011f723574e550f1ae637621658d97cc", + "crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerMemberDTO.java": "sha256:44aed8794226db9e821cd76f942cf1291f6b35d3fbc3514533501233c4d0e002", + "crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerQuickCreateDTO.java": "sha256:1b0ce979a3cc2af2f8fbf7d025d0173899cb4c0b94a2b19fa2f7fba51c3f0fae", + "crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerSaveResultDTO.java": "sha256:b5125f3d496b8635d0aa37d56d0cd7391a84203b22d9f20ac7c0a337842fc664", + "crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerSearchItemDTO.java": "sha256:025e4a831f1da18db174eac059b2477c90d184bc0769e39c343c61eb1db9a611", + "crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerSimilarHitDTO.java": "sha256:70948dae76db27bad3432230453efe6a5281c1d66972e7138f48544acece65d9", + "crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerUpdateDTO.java": "sha256:3ff4bad2d8f386be922a6a9ea0c9f5086e93220bd4015c55a454a2d374f4db85", + "crm-customer/src/main/java/com/crm/customer/domain/dto/FollowCreateDTO.java": "sha256:887c5e3855d57b9103866ef566d17c637d1bf155e6313e44d7219256eac6f989", + "crm-customer/src/main/java/com/crm/customer/domain/dto/ImportFailDTO.java": "sha256:56d5c34e4ef888591312bc19738d10dd2fa46f4df95291e67569cfe8a946ff80", + "crm-customer/src/main/java/com/crm/customer/domain/dto/ImportPreviewDTO.java": "sha256:aa6d696e7f0657cfb77b0f99265d4a27d08571757026c12320dc733a07287b54", + "crm-customer/src/main/java/com/crm/customer/domain/dto/ImportResultDTO.java": "sha256:43cb9c083d7ea783c7a65ab9c7bdcf0ff81bc41b104ad1b5f4ca86220a79302c", + "crm-customer/src/main/java/com/crm/customer/domain/dto/MemberAddDTO.java": "sha256:6a8c3e3da5b6b557140d519f0f6b2aa5bb21de6765c59b6367f09211255849e0", + "crm-customer/src/main/java/com/crm/customer/domain/dto/TransferAssignDTO.java": "sha256:acc9151db4618b7f218aec8cd03dfbf569399b9fc4c2edebf964d9f8a918ac6a", + "crm-customer/src/main/java/com/crm/customer/domain/dto/TransferDetailDTO.java": "sha256:623fbe7ccf8e8faa2457c76dc00e13da1cb7dec5df526093f5a1124bc458b7f3", + "crm-customer/src/main/java/com/crm/customer/domain/dto/TransferInitiateDTO.java": "sha256:eb80f690369f63ec30ac06ac41b6ff78f1733f9ab11873b4190907e9e6908d47", + "crm-customer/src/main/java/com/crm/customer/domain/dto/TransferPreviewDTO.java": "sha256:6783fb1a3ac00a59b3d131a852ae30ec090677c6e1a7759f842819942b4dc559", + "crm-customer/src/main/java/com/crm/customer/domain/entity/Customer.java": "sha256:f1ff4b608dbc5978f1a7a5e359c6bb2d372620e5f3fae4d7a93d5f2bcb0d2dbc", + "crm-customer/src/main/java/com/crm/customer/domain/entity/CustomerContact.java": "sha256:7105d621555ed73cf813f68cbc313bde3ad1acb483e5dd4fe8f568251c3c9215", + "crm-customer/src/main/java/com/crm/customer/domain/entity/CustomerFocus.java": "sha256:7b579517d0a022b0d63cf654216c670c1ec0dafe19b8145d42697d8770df55da", + "crm-customer/src/main/java/com/crm/customer/domain/entity/CustomerFollow.java": "sha256:5bd117f51a288f2190e5930016e0ed5a2ebc171512ed316f1818148f7c2991ab", + "crm-customer/src/main/java/com/crm/customer/domain/entity/CustomerImportFail.java": "sha256:87ffe63a6d86fc716abe21a5726c7a9ef510c919d5cbc8b194cdb23a1e1121a3", + "crm-customer/src/main/java/com/crm/customer/domain/entity/CustomerImportTask.java": "sha256:7e38a73b7578dc960bb67e2a3ac873a444411eb230aea5ad7cedf61600f85d51", + "crm-customer/src/main/java/com/crm/customer/domain/entity/CustomerOplog.java": "sha256:9e13e1018fddf81a37479515473dca9d327cc74e761f18b4d5320ac87086ae22", + "crm-customer/src/main/java/com/crm/customer/domain/entity/CustomerPendingNotice.java": "sha256:97311be1735d72f90d49a0b1dd2b9d6c2085e1dd5f0fbf837467e4afd5031a84", + "crm-customer/src/main/java/com/crm/customer/domain/entity/CustomerTeamMember.java": "sha256:26a1c93ffe5cb9025fc4f61ed23b6daf658feb9dba7a3f3b353444cc6afbc497", + "crm-customer/src/main/java/com/crm/customer/domain/entity/CustomerTransfer.java": "sha256:4eaa82002bc8a7fd03d9cea0abee2659fe1a2402ba174c1c26f8e9a987e193cb", + "crm-customer/src/main/java/com/crm/customer/domain/entity/CustomerTransferDetail.java": "sha256:5b011b46305f0db435b84163dd0b8399bc9cede680bb18c788d4fbe16ec7e488", + "crm-customer/src/main/java/com/crm/customer/domain/entity/CustomerViewLog.java": "sha256:95e967a9ee0b4cceb910ffc86adfa649460a0d421ede117878fe56ae1b635dea", + "crm-customer/src/main/java/com/crm/customer/domain/enums/CustomerBatchFailReason.java": "sha256:298b4e5e13380536ec66ffd5f98dff907b6240bddb98a5c789d400388cfb5eb7", + "crm-customer/src/main/java/com/crm/customer/domain/enums/CustomerSavedViewOperator.java": "sha256:ce429c333ef7484ef276d04f05e37d0bccc13e4e6d0c837955a075ae10aa620f", + "crm-customer/src/main/java/com/crm/customer/domain/enums/CustomerStageEnum.java": "sha256:50537e234762606dab121034caab4b9d630270c940795c598954dca28774dc22", + "crm-customer/src/main/java/com/crm/customer/domain/enums/CustomerWorkspaceViewType.java": "sha256:485e202cf10007c66cebf5679d92d92f7318cec76660aa45c3cae7f7f6c62895", + "crm-customer/src/main/java/com/crm/customer/domain/excel/ContactImportRow.java": "sha256:ef6a6b395e42d25bdfed8b572f0bf2cee36a2fb8a9ae7c2af5949ae19eba874a", + "crm-customer/src/main/java/com/crm/customer/domain/excel/CustomerImportRow.java": "sha256:675f1ff804687d95af95ad8377f14ee56123d8abb3b15585789405eaf4829a7d", + "crm-customer/src/main/java/com/crm/customer/domain/param/ContactPageParam.java": "sha256:432f21de1cd4892270c4767afd0c371705619ac6a94c71fbfd899f1392008db7", + "crm-customer/src/main/java/com/crm/customer/domain/param/CustomerMinePageParam.java": "sha256:376bf8ce65c1cc3f3cf10ade6d189ca3c623f40fa28baaa51e9bdfbf67efdc57", + "crm-customer/src/main/java/com/crm/customer/domain/param/CustomerOverviewPageParam.java": "sha256:ea0c31f34b8eda3f9ea03e9806da41ea36907a2c74a8e66c68293706a67b6cab", + "crm-customer/src/main/java/com/crm/customer/domain/param/CustomerPageParam.java": "sha256:ea194614d0d5431f1c7a2d55aa37ea80fa7b37a7999d286fa03ad920b01d90db", + "crm-customer/src/main/java/com/crm/customer/domain/param/CustomerPoolPageParam.java": "sha256:f60077e68e50a167d29a6600c98a767be187aecab0d4a3bc445862a095c7328a", + "crm-customer/src/main/java/com/crm/customer/domain/param/CustomerSearchParam.java": "sha256:75f610a0dff057246c339345743617a65f274109ff1f8b2bcde8b28f591fcc77", + "crm-customer/src/main/java/com/crm/customer/domain/param/CustomerWorkspacePageParam.java": "sha256:9abf6a5b4dde0ec244ebce1c642c911705b2cd01a24c52fbcf46d66db5ac163e", + "crm-customer/src/main/java/com/crm/customer/domain/param/CustomerWorkspaceQuery.java": "sha256:fb27a6470abb19f5372bf70f94e7190ae8da9a002d15e039c9a4aef21e675c32", + "crm-customer/src/main/java/com/crm/customer/domain/param/FollowPageParam.java": "sha256:781b1c0735c4bccc41587202d7039484eea90d3be8724e757789084d7cb6f3e3", + "crm-customer/src/main/java/com/crm/customer/domain/param/ImportPageParam.java": "sha256:ea84b774b45ccdff0b430f730b6861871a41dd3693b5774b3d53dda470178979", + "crm-customer/src/main/java/com/crm/customer/domain/param/OplogPageParam.java": "sha256:126a35402615b4d607b70f27959784d77807985151b59af03a2dfd1ee0eac00c", + "crm-customer/src/main/java/com/crm/customer/domain/param/TransferPageParam.java": "sha256:c7b498514193222ed55c7c3ab461fbbb402af3b39a5e8ae107c4bf81ad52a8d7", + "crm-customer/src/main/java/com/crm/customer/job/CustomerReminderJob.java": "sha256:eb2e61c4ebbdde96bef356836e51eb2cb48f015f82be4293f1588463656ca57a", + "crm-customer/src/main/java/com/crm/customer/mapper/CustomerContactMapper.java": "sha256:c52e2e8ebdd9175e53b7a3d0f38ec202a17d93112bf6ebed45d10e616991c12e", + "crm-customer/src/main/java/com/crm/customer/mapper/CustomerFocusMapper.java": "sha256:0335724baa2542a2735fc3df692c967c11092acea1392c128af6f38e8718013e", + "crm-customer/src/main/java/com/crm/customer/mapper/CustomerFollowMapper.java": "sha256:292f208befdedba4024be0adac3e37688aa72ff1182fa70462f446fff3f00c5f", + "crm-customer/src/main/java/com/crm/customer/mapper/CustomerImportFailMapper.java": "sha256:a0cf4e390531b0e54a393b0abb0d9621fbc2ca9e2d1438e95baba5ef5fa2c919", + "crm-customer/src/main/java/com/crm/customer/mapper/CustomerImportTaskMapper.java": "sha256:b615dc5230cd8d0e31f66ce11c5a681247cb70049bd079655fb44ac51465426b", + "crm-customer/src/main/java/com/crm/customer/mapper/CustomerMapper.java": "sha256:12691dd627032c6aea09347628e7a61b36f3eb8cb153d5a0219c9ff007f4dcda", + "crm-customer/src/main/java/com/crm/customer/mapper/CustomerOplogMapper.java": "sha256:512032955b52089830409a5221ee4d5ccd49ff03e90076a20f51ff9b7dbd0219", + "crm-customer/src/main/java/com/crm/customer/mapper/CustomerPendingNoticeMapper.java": "sha256:eeb6349e880998ff72e8877c92600a30386086d1711201932df8a151ff86a5f9", + "crm-customer/src/main/java/com/crm/customer/mapper/CustomerTeamMemberMapper.java": "sha256:46a7b849967cf6f562f8f4dc6a02627d8e4e8a0d530a3ab476e00c4576351e44", + "crm-customer/src/main/java/com/crm/customer/mapper/CustomerTransferDetailMapper.java": "sha256:85f46758fe5f9eadff2dd78bfccbc4601ceaaad5d7975135f806598d19e320f3", + "crm-customer/src/main/java/com/crm/customer/mapper/CustomerTransferMapper.java": "sha256:88e104ca22c1e0230f564953a6806deb3d0c667852dfbeea12365a9fa6e40b0f", + "crm-customer/src/main/java/com/crm/customer/mapper/CustomerViewLogMapper.java": "sha256:974d28921e41ee85b794016df99587ef1848d28d2f9fe4bd703a8b7772bc587d", + "crm-customer/src/main/java/com/crm/customer/port/CompanyLookupPort.java": "sha256:4f8ff3ac00b79360954794ac96ca3ec0b6606b20a47cab64595d3d8073cc084d", + "crm-customer/src/main/java/com/crm/customer/port/CustomerNameSimilarityPort.java": "sha256:8023eef00662851063dd0815045faa1466dde791bd7f7df36cc32f86e0d89523", + "crm-customer/src/main/java/com/crm/customer/port/CustomerOpportunityQueryPort.java": "sha256:51d1d70c0ef41fc47d2a88447aa9d273eb1c02d8c1f54242b0310025eb8e2a21", + "crm-customer/src/main/java/com/crm/customer/port/CustomerStagePort.java": "sha256:f4624533f2583f377d434a7d3db70ef96955c11160514c89d682d59a3e9d3705", + "crm-customer/src/main/java/com/crm/customer/port/OpportunityOwnerSyncPort.java": "sha256:7aaa226cbeb1733d342254e12e212034c4a0631e535871a9fbfcca753ac1d921", + "crm-customer/src/main/java/com/crm/customer/port/ProjectOwnerSyncPort.java": "sha256:32ec0639d9701ce4a6ac1da2958071ea1243739216d3bea54e0372e447002ffb", + "crm-customer/src/main/java/com/crm/customer/port/impl/CustomerStagePortImpl.java": "sha256:b6ea8174682638844872954c247ac9b454e23fb701631b623956c509d5feb2c6", + "crm-customer/src/main/java/com/crm/customer/port/impl/NgramNameSimilarityPortImpl.java": "sha256:f6184370c6dd05ae65d34f083169b6195bf604a02f626ce589f3f2980d6b3f57", + "crm-customer/src/main/java/com/crm/customer/port/impl/NoopCustomerOpportunityQueryPortImpl.java": "sha256:1e73d1b8c3e48671decb5c1b0c6dcb3883c367fee35e2216029e46789c9111d4", + "crm-customer/src/main/java/com/crm/customer/port/impl/NoopOpportunityOwnerSyncPortImpl.java": "sha256:fa98ca5d48ff27aa7671d184dc3cb753191952bbdf475d75760984f4ff7d4dcf", + "crm-customer/src/main/java/com/crm/customer/port/impl/NoopProjectOwnerSyncPortImpl.java": "sha256:de6f7b491ef80b83d1fc05f7932d033686ab78d846076a5bd414fc5e94f4d007", + "crm-customer/src/main/java/com/crm/customer/port/impl/StubCompanyLookupPortImpl.java": "sha256:771a05e20f87ef10bc76facb922fd00e09d8211d006b5e7bf4db47877a55087d", + "crm-customer/src/main/java/com/crm/customer/query/CustomerSavedViewFilter.java": "sha256:c4425d0f420cc8dce92fdf70a5a0bf582ce162f8b7f3dbe418df91a530f39d16", + "crm-customer/src/main/java/com/crm/customer/query/CustomerViewCondition.java": "sha256:9056ba8125d73f3c4a4a47a648d4b99a8613fca715a1f249480a6f22bfe6f09e", + "crm-customer/src/main/java/com/crm/customer/service/CustomerDedupService.java": "sha256:86163e8c633780a67893b84505fee40df98157bc8ed3ba647c21f8dfa386e43b", + "crm-customer/src/main/java/com/crm/customer/service/CustomerDedupSettingProvider.java": "sha256:890ae3cfe5c2eb7f593da76a599f40978d3718857ba85ed8920ef3519ed20368", + "crm-customer/src/main/java/com/crm/customer/service/CustomerOplogWriter.java": "sha256:3965945f37953e6aa9371b48419a045cf8fd5c79a04dbc5ef14a602e686bbaa7", + "crm-customer/src/main/java/com/crm/customer/service/CustomerScopeEvaluator.java": "sha256:db0206657363c3d495e5c74ef17d5d5b700c424b7d423ad568d91fa19e6f54cb", + "crm-customer/src/main/java/com/crm/customer/service/ICustomerContactService.java": "sha256:0ccbb6f91c3e1dcc4ca47c29d532431a9cac36a6c4e87863d3ce49d092a255f9", + "crm-customer/src/main/java/com/crm/customer/service/ICustomerDetailService.java": "sha256:4831d36194836f6de02173cddd29a288eca460bb9d4beb972d569d557cd92496", + "crm-customer/src/main/java/com/crm/customer/service/ICustomerFocusService.java": "sha256:0838137e1751c17cf1bfe9ecbbd4ea7577e39ae5163c28d1207806b68e40c575", + "crm-customer/src/main/java/com/crm/customer/service/ICustomerFollowService.java": "sha256:65f10fcd4e466fd29fc951f509e799d288a5bbf87e19a6024cea71afd4983a23", + "crm-customer/src/main/java/com/crm/customer/service/ICustomerImportService.java": "sha256:e7be290b72746d2641832391a319f0aba788d1cc9b76b2d9393f37ad046bec6d", + "crm-customer/src/main/java/com/crm/customer/service/ICustomerOwnershipService.java": "sha256:de81269ab9fbf7fc2b23635fd132bd68475b88b4fb63a4d2499a2fa8cde77135", + "crm-customer/src/main/java/com/crm/customer/service/ICustomerService.java": "sha256:5e052091b8949992194167f8ef25b70c52dc2b0b07b4e0b750566bed9dadd12f", + "crm-customer/src/main/java/com/crm/customer/service/ICustomerTransferService.java": "sha256:cb36b2cc709e58341bd2c914d116fda7188225aef0f6fc72f0112c27bb652c0b", + "crm-customer/src/main/java/com/crm/customer/service/ICustomerWorkspaceService.java": "sha256:48bd73367b8828c5d2452f0415ca5da8d74616273a4913bfc6741f30d88305c3", + "crm-customer/src/main/java/com/crm/customer/service/impl/CustomerContactServiceImpl.java": "sha256:7a3ea5e053e9a73aaf2136236fa582e7198973c287ece38c80875c3281e13112", + "crm-customer/src/main/java/com/crm/customer/service/impl/CustomerDetailServiceImpl.java": "sha256:cd28469cd67166abd9b3444998c4250bd253080b78899f55242a4badde359fd5", + "crm-customer/src/main/java/com/crm/customer/service/impl/CustomerFocusServiceImpl.java": "sha256:9857c918646a676af3a42acc139673f549509dfecf22e42d227b09a4a2a5cc41", + "crm-customer/src/main/java/com/crm/customer/service/impl/CustomerFollowServiceImpl.java": "sha256:2173783150ddc819f2c2bf31012e7955d3ad745395354920c39dd0db1e4bfae3", + "crm-customer/src/main/java/com/crm/customer/service/impl/CustomerImportAnalyzer.java": "sha256:e959aae57463573958f8abc3d5dea6448b31d21fcb6b5ef3e286c1543590cd04", + "crm-customer/src/main/java/com/crm/customer/service/impl/CustomerImportServiceImpl.java": "sha256:0462c0b1c20a7f2359982b0d38e26c028f3deba60235babbdef20b9d8daeb755", + "crm-customer/src/main/java/com/crm/customer/service/impl/CustomerOwnershipServiceImpl.java": "sha256:a40286854712751fc750e1b4261e6020ac8f6a5e41a2564788026a126c2a0bb4", + "crm-customer/src/main/java/com/crm/customer/service/impl/CustomerServiceImpl.java": "sha256:e3a98ca831c09859cb0ca8c4e9f44440cea40dcbce6f19f99e71e05fccebd098", + "crm-customer/src/main/java/com/crm/customer/service/impl/CustomerTransferServiceImpl.java": "sha256:06a79017009704d2310be3926362d3e9024d4b358ef8d73438d715860a1a47d9", + "crm-customer/src/main/java/com/crm/customer/service/impl/CustomerWorkspaceServiceImpl.java": "sha256:ba0923ecbea25f1bc086726fdc74736e60c4ca7ee749b367950f0ec66e3784b6", + "crm-customer/src/main/java/com/crm/customer/service/impl/DefaultCustomerDedupSettingProvider.java": "sha256:e9f5cc6d4af36f6212044d50a38c1e5efb80db10e1cbe5c02715fe7543820407", + "crm-customer/src/main/java/com/crm/customer/task/CustomerImportExecutor.java": "sha256:a5c8662aa84670b049f8d09be8482da07ad32ebb09c5528c55296e33ec8c7b4f", + "crm-customer/src/test/java/com/crm/customer/job/CustomerReminderJobIntegrationTest.java": "sha256:e7f0e26a5b61411ccf471ca1dfb04a5e0d0e059028427686ebdddc5b2cc78ae0", + "crm-customer/src/test/java/com/crm/customer/port/impl/CustomerStagePortIntegrationTest.java": "sha256:266522b882930dc3e1b5da6c32ec0671c54f71610a465688644613b1bbb07daa", + "crm-customer/src/test/java/com/crm/customer/query/CustomerSavedViewFilterTest.java": "sha256:da0c2a79e039f53cc57db8bf997a30f41d6024d6a9613f6282f503c6d2395ee0", + "crm-customer/src/test/java/com/crm/customer/service/impl/CustomerContactServiceIntegrationTest.java": "sha256:5b8c53edbd6f179d31736970100f121b9d53e2987444646238462d808f42e4c1", + "crm-customer/src/test/java/com/crm/customer/service/impl/CustomerDetailMembersIntegrationTest.java": "sha256:b958bcfa91571445654fbc7ab671efc6ec7414df34303d74b009d5bf1be41700", + "crm-customer/src/test/java/com/crm/customer/service/impl/CustomerFocusIntegrationTest.java": "sha256:b9fc7a68a9c8e4708ddba10c459f3e07823138a1de650a1e5bef17ca8f6176b1", + "crm-customer/src/test/java/com/crm/customer/service/impl/CustomerFollowDetailIntegrationTest.java": "sha256:b930a1a49814d9bcb2151fc9720646f9e9f6262f1bb823a915c0ac2ce1d6baa7", + "crm-customer/src/test/java/com/crm/customer/service/impl/CustomerImportIntegrationTest.java": "sha256:565e75c64e50850f170c52ee70c43915c4304f4c8e9f89b57ed34d7ddd01f606", + "crm-customer/src/test/java/com/crm/customer/service/impl/CustomerServiceImplIntegrationTest.java": "sha256:faaa69e23da17bfe8138c1f1c4207730f943910527bcb19c3823bab0712fd5d9", + "crm-customer/src/test/java/com/crm/customer/service/impl/CustomerTransferIntegrationTest.java": "sha256:6e8559e2b7dbbdf46cc8dcdeb1c5a5844c827bb8239c137f51d2bf771771a452", + "crm-customer/src/test/java/com/crm/customer/service/impl/CustomerWorkspaceOwnershipIntegrationTest.java": "sha256:706163ba36ce87f14981706f34809da422ba7cf59630d751dca68fb85c01eb3d", + "crm-customer/src/test/java/com/crm/customer/service/impl/CustomerWorkspaceSavedViewIntegrationTest.java": "sha256:8bd806e818cb300ea9cabeffdbf7cb62191937824f3afbc416d51ec7f93badab", "crm-dict/pom.xml": "sha256:4c8ad74e1e9be1f91ef1ce2a05dbd9381bd0e40235aaf3dcf4639b75a927d82d", "crm-dict/src/main/java/com/crm/dict/DictApplication.java": "sha256:69963ebcce9cfaf21679200c9b0319e92f4347b1d06e1c3b2204794a6126c29b", - "crm-dict/src/main/java/com/crm/dict/config/DictDataInitializer.java": "sha256:317f5b19cc2bb9f5fc443780cdd06adfdb5c81c0e42207dc237890e40d83f3d2", + "crm-dict/src/main/java/com/crm/dict/config/DictDataInitializer.java": "sha256:7d970f8e08bc0f2f9fb492c2753162d9bf03933843b883ad86c293b2d5c54751", "crm-dict/src/main/java/com/crm/dict/config/DictPermissionInitializer.java": "sha256:fa74373639b654059e22f99af801b485a870788e7ed650bc9025ba2e5ddc8930", "crm-dict/src/main/java/com/crm/dict/constant/DictConstants.java": "sha256:33a93f306ced75f960b68c218512839d6a3c114969b9d2ac58e2984103c38bd6", "crm-dict/src/main/java/com/crm/dict/controller/DictGroupController.java": "sha256:56bd69f480df26f5092feaa8ed4b1d106a15824fd5318176b43f22f2c643f6fc", @@ -664,7 +795,7 @@ "crm-dict/src/main/java/com/crm/dict/service/impl/DictQueryServiceImpl.java": "sha256:ac5b1ef1f8eae837b91f4ea8a6d72bbf93bcd66336e7f63567a8c65475e5c55c", "crm-dict/src/main/java/com/crm/dict/service/impl/DictReferenceServiceImpl.java": "sha256:98be664504a4121d1dfc586133aa403951ec404b900c9dfcd58d71fe3c5137f1", "crm-dict/src/test/java/com/crm/dict/AbstractDictH2Test.java": "sha256:38f0b4398faf536f92a37b967636243ec6f0897cbb7f47881ae44a5c018d24d1", - "crm-dict/src/test/java/com/crm/dict/config/DictDataInitializerTest.java": "sha256:727f27a52c44ee58ee529dbe37a7f12ab241ca739207e97a5e9730be61ea1f4d", + "crm-dict/src/test/java/com/crm/dict/config/DictDataInitializerTest.java": "sha256:f0f716c5173cebc17065f542117bf8e17cee363e002782b69641068f7e9ad4b0", "crm-dict/src/test/java/com/crm/dict/config/DictPermissionInitializerTest.java": "sha256:7af9b8ba95b58f954a53a21aefacb8ad6cebca62e8c87be07728c3a526299533", "crm-dict/src/test/java/com/crm/dict/service/impl/DictGroupServiceTest.java": "sha256:7ca49c6bdc51333e3cfced34a759ca1444b673aa6cba84a6a20b57f965682531", "crm-dict/src/test/java/com/crm/dict/service/impl/DictItemServiceTest.java": "sha256:412baa47082985f99b9c624d63ad3a4ca5a0559ec38df16bbe9693bc681f904d", @@ -776,7 +907,7 @@ "crm-lead/src/test/java/com/crm/lead/service/impl/LeadBatchServiceTest.java": "sha256:b9debc03539a006946ef0a2bb182d47ecd8a4f45d4b0cce189e57c08058b6fe1", "crm-lead/src/test/java/com/crm/lead/service/impl/LeadServiceImplTest.java": "sha256:5547bae863b3c6934a70d205f7ca735bcba6d800d03054932abd39f6c8cfe8b6", "crm-lead/src/test/java/com/crm/lead/state/impl/LeadTransitionImplTest.java": "sha256:1a353fd2c98cb7109c75cf5c16171e9e20cce1efed8cb18fc2dccb9053f160d0", - "crm-opportunity/pom.xml": "sha256:b6f7b5b226f8e2ec62fef6e9087449434dd26b23d3d56b7a91ec150af3bf9509", + "crm-opportunity/pom.xml": "sha256:cb71f6b0b7ab0b7823ec2cf64f066fa45b53f625e059df3faa96db89c7e3c629", "crm-opportunity/src/main/java/com/crm/opportunity/constant/OpportunityConstants.java": "sha256:f06edf0b0a068722e1bbc891e4a4a922f61a97f8fcd4164c7f91cf22a3beda0e", "crm-opportunity/src/main/java/com/crm/opportunity/controller/OpportunityCollabController.java": "sha256:a927ec6906cbc3a4929d596a0a57a9f39616306c039f93086a77b11e70fb6377", "crm-opportunity/src/main/java/com/crm/opportunity/controller/OpportunityCreateController.java": "sha256:7fa82aeeef22b76ff4c32183bef6c877ff02a2ef47d48d6160ae08c5b6e5728e", @@ -784,12 +915,12 @@ "crm-opportunity/src/main/java/com/crm/opportunity/controller/OpportunityQueryController.java": "sha256:22caeda46b12cc1de52f11d32367b07c78961c7524db20cadd233c9b217fff31", "crm-opportunity/src/main/java/com/crm/opportunity/controller/OpportunitySchemeCardController.java": "sha256:08348345a4e3c91f7a90ab3e6f2b4893c9d5f99e0a42dec6a6f6f5208d6aeba3", "crm-opportunity/src/main/java/com/crm/opportunity/controller/OpportunityStageController.java": "sha256:dbebedf8201c0e1e1573292343aa4902806ab00b2e43c3eab49c0b37e2c542e3", - "crm-opportunity/src/main/java/com/crm/opportunity/controller/OpportunitySubController.java": "sha256:d50175070ef47372ff584d2cf976dd91b16fa1aac5cd8645b83909ebd9547fd7", + "crm-opportunity/src/main/java/com/crm/opportunity/controller/OpportunitySubController.java": "sha256:fdc96e6b0bfc0d21c9f7daef9fe343ee1a14f005abc9ff74883d9137175fce1e", "crm-opportunity/src/main/java/com/crm/opportunity/controller/OpportunityTransitionController.java": "sha256:93942b5a4355c9c1ee56392e8295bef2d6a13529be98f64d42bb229ae9396b13", "crm-opportunity/src/main/java/com/crm/opportunity/domain/dto/CreateOpportunityRequest.java": "sha256:16eb516b2e2035fab58f392f1246877242a9d35669b277750adfa79eedbb56a5", - "crm-opportunity/src/main/java/com/crm/opportunity/domain/dto/CustomerContactDTO.java": "sha256:e347fe00e097eb03e32c684c48c00ab18bc4793aa1cc7a07baa9c80aa80eab01", - "crm-opportunity/src/main/java/com/crm/opportunity/domain/dto/OpportunityCustomerAddDTO.java": "sha256:8dc51c16719732fe4762f514f226a6793a6c0fa7c0ffbe6cab0b7f70786fdb15", - "crm-opportunity/src/main/java/com/crm/opportunity/domain/dto/OpportunityCustomerCandidateDTO.java": "sha256:491c98feebab0ef02ab40008598dca789fe32903ff1a47b293d12bd27054f42b", + "crm-opportunity/src/main/java/com/crm/opportunity/domain/dto/CustomerContactDTO.java": "sha256:c18c8f70777a87063d57573653f77ebcc81843e8d4ad5bcfdb1557952d1c85f8", + "crm-opportunity/src/main/java/com/crm/opportunity/domain/dto/OpportunityCustomerAddDTO.java": "sha256:febec9f2b50c8cc5e0d07a63d27563b6fedda3a762e295c839c48345765f796a", + "crm-opportunity/src/main/java/com/crm/opportunity/domain/dto/OpportunityCustomerCandidateDTO.java": "sha256:b700d397fde0ef7de1f84bc4ef297f49f49afe1aa7e94cea216054a658aa0ad9", "crm-opportunity/src/main/java/com/crm/opportunity/domain/dto/OpportunityDTO.java": "sha256:5a24072d72cef014803ad13ea3421fc46809370e930ff17adbdc78b22a771eae", "crm-opportunity/src/main/java/com/crm/opportunity/domain/dto/OpportunityTeamAddDTO.java": "sha256:747e1191f8b4ccd3483961197e6f397f5490d9ba686aa7280029c15dc471330b", "crm-opportunity/src/main/java/com/crm/opportunity/domain/dto/OpportunityTeamUpdateDTO.java": "sha256:90a7b2d05b1baccfd941c934aec8405524681926ed9f397f66f644233c0bc597", @@ -800,9 +931,9 @@ "crm-opportunity/src/main/java/com/crm/opportunity/domain/dto/StageHistoryDTO.java": "sha256:b421c7b0d6fc3013171005d9e2567d761685f8c18a67cf14a451a4084ee69b2e", "crm-opportunity/src/main/java/com/crm/opportunity/domain/dto/StageProgressDTO.java": "sha256:d378be9270833c0b4cb502988278b60bd0a4cccdc7f1b01d105a0de9e70e9ec3", "crm-opportunity/src/main/java/com/crm/opportunity/domain/dto/SwitchStageDTO.java": "sha256:0c9397c8f89ff303f6d1ebe5215bd57c4597fa18685bb10ca2ad53238debf949", - "crm-opportunity/src/main/java/com/crm/opportunity/domain/entity/Opportunity.java": "sha256:8954fcbb4332d13d7070b413a5ea241402151f3c916cfbac909094dffb1fb8e2", + "crm-opportunity/src/main/java/com/crm/opportunity/domain/entity/Opportunity.java": "sha256:5df13f1c96637e283ed3e7203a0d9615b5e700fd443ec687a675b87647079641", "crm-opportunity/src/main/java/com/crm/opportunity/domain/entity/OpportunityAttachment.java": "sha256:75ceee391dfd83a38c34064ced1861562cbd6b9a29bd491bc7b66a258f886fff", - "crm-opportunity/src/main/java/com/crm/opportunity/domain/entity/OpportunityCustomer.java": "sha256:d81c9d890a66f483cc2b6e47609ae4ef2c985291587874338f19083fc470aec8", + "crm-opportunity/src/main/java/com/crm/opportunity/domain/entity/OpportunityCustomer.java": "sha256:8be45688fc419fe0bc90d99dfb62fbbbc06939365c9785046433ae13c1d9c2ec", "crm-opportunity/src/main/java/com/crm/opportunity/domain/entity/OpportunityFocus.java": "sha256:dbbf7b88ebc7dd83aee37b8a75bae3d496d27a48b90f22560a5445f4dc842cad", "crm-opportunity/src/main/java/com/crm/opportunity/domain/entity/OpportunityFollow.java": "sha256:0349b346f5c01d51f79132ae3f5898c40fc18cbcc58c8c1ed4896d357c989380", "crm-opportunity/src/main/java/com/crm/opportunity/domain/entity/OpportunityOplog.java": "sha256:e1c62c2e9a2de753cbc73c9a4d8ee19dcd285103448955adbaf939185ae1b2ab", @@ -823,7 +954,7 @@ "crm-opportunity/src/main/java/com/crm/opportunity/domain/enums/OpportunityViewType.java": "sha256:bdb28239bdb29917dd31d01f84340e5b9f126e4a24bf5931cacf12fb17685e79", "crm-opportunity/src/main/java/com/crm/opportunity/domain/enums/SavedViewOperator.java": "sha256:15e0e7b6a79159a57c674041850084243699a8ace12b8e5e58f1efb1a6f51056", "crm-opportunity/src/main/java/com/crm/opportunity/domain/enums/TeamMemberPermission.java": "sha256:b6ac87d76fbe8a4f7fc89041e8cdc9a69a825f2f5d3dae77c7d5d4e659020d57", - "crm-opportunity/src/main/java/com/crm/opportunity/domain/param/OpportunityCustomerSearchParam.java": "sha256:917c1d6312d3d4e9a0012f2db632ce557639cde4599983eea0826d8cb50f4dfa", + "crm-opportunity/src/main/java/com/crm/opportunity/domain/param/OpportunityCustomerSearchParam.java": "sha256:9cb975810665322c33d6ececde17eae2d0ac8f1572ee749bcc7db7a72452d467", "crm-opportunity/src/main/java/com/crm/opportunity/domain/param/OpportunityPageParam.java": "sha256:3d38a9d820a1064695b6db037465e3a16a26bebe22e1177490d9362407b4fa93", "crm-opportunity/src/main/java/com/crm/opportunity/history/OpportunityStatusHistoryRecorder.java": "sha256:00342f0f10a54f74b0b791819fe449ff135c3ef9ae12680706b071a35c4b58c6", "crm-opportunity/src/main/java/com/crm/opportunity/history/impl/OpportunityStatusHistoryRecorderImpl.java": "sha256:2389c5c1c621f3680d05a5e8a574df0d6daa3ae38005184a083c67f64336a76e", @@ -837,7 +968,7 @@ "crm-opportunity/src/main/java/com/crm/opportunity/mapper/OpportunityCustomerMapper.java": "sha256:fd14e2bc6e65fb13958dbf7049a375b5487d516f351e803389fda974276ab425", "crm-opportunity/src/main/java/com/crm/opportunity/mapper/OpportunityFocusMapper.java": "sha256:565f6b41511b21bcb627b7ee12fda84128539d218cc4ae811d49b5abd03f87c3", "crm-opportunity/src/main/java/com/crm/opportunity/mapper/OpportunityFollowMapper.java": "sha256:f279209d497e03ac8029073feb4a4b49ebd32ec1b5f1a7c7cf00dcfa456efa8b", - "crm-opportunity/src/main/java/com/crm/opportunity/mapper/OpportunityMapper.java": "sha256:7cb855d030bf8cc9f6f6e956da9f8138916707172705d3e57fbfd6d346319efd", + "crm-opportunity/src/main/java/com/crm/opportunity/mapper/OpportunityMapper.java": "sha256:38dc1bc8c492ae6da6233a8c26a6ec6f06fd7ba8390fa84b054bb453f57d61eb", "crm-opportunity/src/main/java/com/crm/opportunity/mapper/OpportunityOplogMapper.java": "sha256:957ed81e64f8ec89054127f63a3cc87238b652920277bf335caf5d07bcb1cbee", "crm-opportunity/src/main/java/com/crm/opportunity/mapper/OpportunityPendingNoticeMapper.java": "sha256:2f1032a9127cad0a736c99cb0e71cd9fa3cd6164da4c8b0651ed6de78b6edde0", "crm-opportunity/src/main/java/com/crm/opportunity/mapper/OpportunitySchemeCardMapper.java": "sha256:20f7ef3a752f591aa2404c86d12e3fc6c5e580a6880ad92d28989edd94cbdb76", @@ -854,8 +985,10 @@ "crm-opportunity/src/main/java/com/crm/opportunity/port/inbound/ConvertToProjectCmd.java": "sha256:8a96f9ffa9cf4e352c246cc07c6e2d941cbf7743b60ccf2ad4e5fe2b0153df57", "crm-opportunity/src/main/java/com/crm/opportunity/port/inbound/OpportunityConvertException.java": "sha256:9ed284f46fe8eb094a524c2e2f61e7b648eb854e7a230157704c12f22c70133b", "crm-opportunity/src/main/java/com/crm/opportunity/port/inbound/OpportunityConvertPort.java": "sha256:8eb2c82fa809d0ed63bdbefabddca6db8668b9e26271e6ed42853108ea7b8732", + "crm-opportunity/src/main/java/com/crm/opportunity/port/inbound/impl/CustomerOpportunityQueryPortImpl.java": "sha256:1cd38d8480b97ea2e4f55210032b773e3b7fb8fd2f6a60c0e6de9ff663431cf9", "crm-opportunity/src/main/java/com/crm/opportunity/port/inbound/impl/OpportunityConvertPortImpl.java": "sha256:47d639378d3387b6ca5c00a34875b9ec3b7036f454095e52a8204239bf01baaa", "crm-opportunity/src/main/java/com/crm/opportunity/port/inbound/impl/OpportunityCreationPortImpl.java": "sha256:584ace59d9377d70b3197217daae95463c185e62954f1b3b2714a9c1bb38414e", + "crm-opportunity/src/main/java/com/crm/opportunity/port/inbound/impl/OpportunityOwnerSyncPortImpl.java": "sha256:8e1dd1f3df5419ebde7941719464bb6c23708392627d6249ffd4ebc868d3fe55", "crm-opportunity/src/main/java/com/crm/opportunity/query/OpportunityViewFilter.java": "sha256:a3c310a9760cab7383ef2ed0f3fc599f9441111bf348edc7e398fb4903f3a9e8", "crm-opportunity/src/main/java/com/crm/opportunity/query/OpportunityViewQuery.java": "sha256:86b6427c54b841d1e1db30f14b877d1ff546a28c27bf3a5a4b96cc5065bf1317", "crm-opportunity/src/main/java/com/crm/opportunity/query/impl/OpportunitySavedViewFilter.java": "sha256:86786192745913c2b2815900a1971dc0267a3ad5516004745cb08c83cdb70500", @@ -865,11 +998,11 @@ "crm-opportunity/src/main/java/com/crm/opportunity/service/IOpportunityCollabService.java": "sha256:436f58699273cd655022db1964a54f097fb1a22a423f53bb29dfaf4d8377b5a1", "crm-opportunity/src/main/java/com/crm/opportunity/service/IOpportunityCreateService.java": "sha256:cfdeffecd9fb28a9e5a05685e4ebaefb3c933013f308ac3e696a67dc735dc0d0", "crm-opportunity/src/main/java/com/crm/opportunity/service/IOpportunityDetailService.java": "sha256:3c31b70d893bf7ba0e0b417568bf7a55a68bc50db572879dd4e450e9eb182d5a", - "crm-opportunity/src/main/java/com/crm/opportunity/service/IOpportunitySubService.java": "sha256:68d13a07655610191f922b34a02170218367040e59c24cc0515f9fee107fe5d3", + "crm-opportunity/src/main/java/com/crm/opportunity/service/IOpportunitySubService.java": "sha256:f6128cbab256dd39439f76ef26f315a74c6d937faaddea5353bc6ae5feb68ca9", "crm-opportunity/src/main/java/com/crm/opportunity/service/impl/OpportunityCollabServiceImpl.java": "sha256:55cd5df655eaff70a4bca05a9acdb8a873316989e94b10bb7a51340dec59f22c", "crm-opportunity/src/main/java/com/crm/opportunity/service/impl/OpportunityCreateServiceImpl.java": "sha256:aae65debdec9d0d13e690aa0f339d9b1b6bbd6eba397ce5c01572706e99bbe76", "crm-opportunity/src/main/java/com/crm/opportunity/service/impl/OpportunityDetailServiceImpl.java": "sha256:073a4d7f396cbd8d4915eec6ca4fb037c2b9a4d53a1f9bf6170cc7eff121084a", - "crm-opportunity/src/main/java/com/crm/opportunity/service/impl/OpportunitySubServiceImpl.java": "sha256:d8b65d12b26c0d3d01446457f08e88f52a4aeebf25a299828780c9a3b0b4802b", + "crm-opportunity/src/main/java/com/crm/opportunity/service/impl/OpportunitySubServiceImpl.java": "sha256:81eff1847a466ff27abd9737a7071843de491553813ec2aca8923a5ff640af2e", "crm-opportunity/src/main/java/com/crm/opportunity/stage/OpportunityStageService.java": "sha256:6082b3f6f357b533ed135e1204ed3c30f5f709c7fc81c584d6f400767fa182b6", "crm-opportunity/src/main/java/com/crm/opportunity/stage/SwitchStageCmd.java": "sha256:9f5593c1ffa321f0d2d7df887beaf10e508734526881a008a14cd1b6c4466669", "crm-opportunity/src/main/java/com/crm/opportunity/stage/impl/OpportunityStageServiceImpl.java": "sha256:36737fb345242bdf5da50817f9f3240c53c9c5dc7997b38722d2aa0113c74a57", @@ -891,6 +1024,8 @@ "crm-opportunity/src/test/java/com/crm/opportunity/mapper/OpportunityViewSourceMapperTest.java": "sha256:d7582832310641c5f67d27626cb72e546ba6fd2c8316e2a92f04514a66faf0db", "crm-opportunity/src/test/java/com/crm/opportunity/port/inbound/OpportunityConvertPortImplTest.java": "sha256:4889ed80915bac530b9bde0cbfe9bc23461002727523c8366d1cfa59018b8e15", "crm-opportunity/src/test/java/com/crm/opportunity/port/inbound/OpportunityCreationPortImplTest.java": "sha256:e5df57a383c75531ae1c88e26cb83728d97967091c892cf69dd424860b04ba0a", + "crm-opportunity/src/test/java/com/crm/opportunity/port/inbound/impl/CustomerOpportunityQueryPortImplTest.java": "sha256:ec3c2cdeaec8aeb72f36ce6684bfdf674bc9e473b5ab75638abb48e574e3749c", + "crm-opportunity/src/test/java/com/crm/opportunity/port/inbound/impl/OpportunityOwnerSyncPortImplTest.java": "sha256:29e2fc6ee355531ee34c8815bd961b3250ab551a358b37a92d7b11940e186b24", "crm-opportunity/src/test/java/com/crm/opportunity/query/OpportunityViewQuerySkeletonTest.java": "sha256:3ad766650904a1fd38324794e3967758e15e8458d51c19d67a6f17b6a22fd8d3", "crm-opportunity/src/test/java/com/crm/opportunity/query/impl/OpportunitySavedViewFilterTest.java": "sha256:c6b8966c81f5a07bd3fda2af30ca4ab06cc59bb5c7eeff0be25faac6b4b65ba0", "crm-opportunity/src/test/java/com/crm/opportunity/query/impl/OpportunityViewQueryImplTest.java": "sha256:17cef74bfb1a10f12d9c316c2e83b6ad1962aff5bbf55e0aed87578e67cd6dfc", @@ -899,7 +1034,7 @@ "crm-opportunity/src/test/java/com/crm/opportunity/service/impl/OpportunityCollabServiceImplTest.java": "sha256:c2c2afe007462b080b22e53b33b4e34c4f06af8cd9441b825303f764dafec5e3", "crm-opportunity/src/test/java/com/crm/opportunity/service/impl/OpportunityCreateServiceImplTest.java": "sha256:c6c49825cc2b5eb405dcca81fd34cc73104dc24e6ef5ef9ab132ab73eae3eb8c", "crm-opportunity/src/test/java/com/crm/opportunity/service/impl/OpportunityDetailServiceImplTest.java": "sha256:812ac4dbeaa4325ad2986856d8bb04f242bdcc24dc4bf9102a0566189d8fefac", - "crm-opportunity/src/test/java/com/crm/opportunity/service/impl/OpportunitySubServiceImplTest.java": "sha256:68c6811da5b4543999594468f4e86ea5af45c507c0c8f5f7c6eba78430e66aef", + "crm-opportunity/src/test/java/com/crm/opportunity/service/impl/OpportunitySubServiceImplTest.java": "sha256:82def92d7138b134e895dc1a2732eed2873c918546848bb85b38f248faa287b4", "crm-opportunity/src/test/java/com/crm/opportunity/stage/impl/OpportunityStageServiceImplTest.java": "sha256:9bf60f8d0e11a80007a18eb097443911390b945ac5f84a6053bcf0b0bb49df3d", "crm-opportunity/src/test/java/com/crm/opportunity/state/OpportunityActionGuardTest.java": "sha256:37cf8f014f5f21a95e4950490350f0899c11eb557b4c8468a21ecdb30ffaccf0", "crm-opportunity/src/test/java/com/crm/opportunity/state/OpportunityTransitionCmdTest.java": "sha256:1c324adeee25b46d15da0e6e50dda0a9618486d902e98ea14bf1265bebf5db7f", @@ -921,6 +1056,8 @@ "crm-preference/src/test/java/com/crm/preference/service/impl/ColumnPreferenceServiceImplTest.java": "sha256:3f7b43975ae0be929ba66bf08dcfd5bb47f37fb187b665a28d4eb100bae0acb7", "crm-preference/src/test/java/com/crm/preference/service/impl/SavedViewServiceImplTest.java": "sha256:ff10069e1c695b9114f92d472e7556ae8ad8004295ef1a4329173350de129e71", "crm-rule/pom.xml": "sha256:73501580daca184cea7e126ba82355c70f0161fef26a16c60d68e811ff7c4ef6", + "crm-rule/src/main/java/com/crm/rule/config/CustomerReminderRuleInitializer.java": "sha256:cf0917a9684de0470725ec33141f7f8012e69ee50fb2fd16f7eb9b992abfcde3", + "crm-rule/src/main/java/com/crm/rule/config/CustomerReminderRulePermissionInitializer.java": "sha256:8f2b22c229a0d2fd518ab2d073116cff6b638fd243d658e2d8b817eda356cf0e", "crm-rule/src/main/java/com/crm/rule/config/OpportunityRulePermissionInitializer.java": "sha256:1178e6234a7cbbdd9cc446473452bfb9e5665b8217caf09f09aa2f76bac59834", "crm-rule/src/main/java/com/crm/rule/config/OpportunitySchemeCardTemplatePermissionInitializer.java": "sha256:7ae7c7f89a913bc9f7370a2c73bcbfda1d1f8be1ae5153c573e318ea50f7406e", "crm-rule/src/main/java/com/crm/rule/config/OpportunityStageTemplatePermissionInitializer.java": "sha256:711e33ca215e0f571d8024ee44238a5ccba64d4911494bb8a515829969a21abd", @@ -928,13 +1065,16 @@ "crm-rule/src/main/java/com/crm/rule/config/RulePermissionInitializer.java": "sha256:f1eb40bbf0a70a467bb45a6023ad032e230c07cc709a51c5f1d1b90e2fe358be", "crm-rule/src/main/java/com/crm/rule/config/SchemeFieldDefInitializer.java": "sha256:f6060f84c3fb4379e1a20e41771ae5db1b53dc50455dcb801129a8d05ac52201", "crm-rule/src/main/java/com/crm/rule/config/StageTemplateInitializer.java": "sha256:d979d5d499f029cc10f752d80a4f93416a3d1664e93f1f304720018f577571bf", + "crm-rule/src/main/java/com/crm/rule/constant/CustomerRuleConstants.java": "sha256:76081a1bd23ba455ee7986b95a7419f40a39840f54c99cfa6b041db4f0079cac", "crm-rule/src/main/java/com/crm/rule/constant/OpportunityRuleConstants.java": "sha256:60bca9f230f985c6e8e8982351b8c84c211b767bce237d7de031eca05d8c9b33", "crm-rule/src/main/java/com/crm/rule/constant/RuleConstants.java": "sha256:a6c6cd8db948c97603dbf0767c3ca70205a388ea386f6c2f3e3c3fe40b03de60", + "crm-rule/src/main/java/com/crm/rule/controller/CustomerReminderRuleController.java": "sha256:1d8d1393af3258627b95da2bb27783bb4ef654c0d44bf2272ff40326a4d98c83", "crm-rule/src/main/java/com/crm/rule/controller/LeadPoolController.java": "sha256:bee1d3e441fc4001533fcb640b606ce3d1c673099da625371d524c55a1d3c73f", "crm-rule/src/main/java/com/crm/rule/controller/OpportunityPoolRuleController.java": "sha256:f7bd644b8c1d667c6f6580cf52d2f87bd31cc0dba0e8f4968ea5a89a1dc0c4ed", "crm-rule/src/main/java/com/crm/rule/controller/OpportunitySchemeCardTemplateController.java": "sha256:32c8320d78d141f63532e7ad7bad46489d8c0e071156d1316927da034d8cf894", "crm-rule/src/main/java/com/crm/rule/controller/OpportunityStageTemplateController.java": "sha256:d9799efccb9e83f2ca1432dce83495f9e0c28305fbfdb037730db53b38d4a85b", "crm-rule/src/main/java/com/crm/rule/controller/RegionController.java": "sha256:f714716c5ee9e800dbef84294c52b6484adfdf49d84684f171e4ff41c6e7dfc6", + "crm-rule/src/main/java/com/crm/rule/domain/dto/CustomerReminderRuleDTO.java": "sha256:ced0445e9c56f52af55556b2db201a7b6a945379873834eee55e1fdf7959e2b5", "crm-rule/src/main/java/com/crm/rule/domain/dto/LeadPoolDTO.java": "sha256:d28081fa062762a440248004cec417512dd95964e12fd8ca68f23b718104dcb1", "crm-rule/src/main/java/com/crm/rule/domain/dto/OpportunityPoolRuleDTO.java": "sha256:abeaa2e6912dc107442a0d1364be2651d323c12f1fdaa66baf1789be6eeb61a2", "crm-rule/src/main/java/com/crm/rule/domain/dto/OpportunityPoolRuleVersionDTO.java": "sha256:39c3c5bbf5dba97b7067443e15c67e45aede3ec61c997ae85ebbb595b8ccd2e2", @@ -946,6 +1086,7 @@ "crm-rule/src/main/java/com/crm/rule/domain/dto/PoolBatchFailItem.java": "sha256:510ad672eb50f51bcb863e9ffbb7b92f9256c0838d5d78aa2450881ab877e523", "crm-rule/src/main/java/com/crm/rule/domain/dto/StageDisplay.java": "sha256:8bc572b10f16ec5d43f6339992f001b3d3e5a5d0eb9782455d64ca7ddd627c30", "crm-rule/src/main/java/com/crm/rule/domain/dto/SysRegionDTO.java": "sha256:f9d23c44cf69d9e338dc978534278761fdec5c4d3d6cdd87d513e21173696bf1", + "crm-rule/src/main/java/com/crm/rule/domain/entity/CustomerReminderRule.java": "sha256:080b982688f7d0078bcb9d933b3c0fcb97f82af70e6a4def6d60b9d197e07c2f", "crm-rule/src/main/java/com/crm/rule/domain/entity/LeadPool.java": "sha256:b9d6080a20921b8d8bf75c990461f404aaa4f46c47adc00b16d25cd6805d939e", "crm-rule/src/main/java/com/crm/rule/domain/entity/LeadPoolMember.java": "sha256:3607a9cddab1bb2d6ceca3474f9615895d6b9aa3ff7b3915c50ed2cb0fe42160", "crm-rule/src/main/java/com/crm/rule/domain/entity/LeadPoolProvince.java": "sha256:a0a0ac3d9ee18b0db28ae092fee408303f3d30078ec3e9695b6b3350eda1e25b", @@ -966,6 +1107,7 @@ "crm-rule/src/main/java/com/crm/rule/domain/param/OpportunitySchemeCardTemplatePageParam.java": "sha256:3399d25d53400653fa300ab6e1e8c1691bedbcc6908e9c67511721a63e3b7303", "crm-rule/src/main/java/com/crm/rule/domain/param/OpportunityStageTemplatePageParam.java": "sha256:1ce3d461c02dccb1cabf89f622092ed02c69760ba737c41ecb28424a2e4b0479", "crm-rule/src/main/java/com/crm/rule/event/PoolChangedEvent.java": "sha256:2de9939be11fff335c9df6c0f732478f77603dc21c58e7147a8a47c9986caeb8", + "crm-rule/src/main/java/com/crm/rule/mapper/CustomerReminderRuleMapper.java": "sha256:0c8afcd7a3b95614b9b315b2670bf652d0a9631e013ff14b930db23ccbd07dd8", "crm-rule/src/main/java/com/crm/rule/mapper/LeadPoolMapper.java": "sha256:9745e2f22c2c83b77d2412ebe7a1372aad3470d14da0f03285859941a8424ad3", "crm-rule/src/main/java/com/crm/rule/mapper/LeadPoolMemberMapper.java": "sha256:091606d23adb43c53b677ca096821fb252fde367ee184f274f9243159f6898e2", "crm-rule/src/main/java/com/crm/rule/mapper/LeadPoolProvinceMapper.java": "sha256:925ac43341bdda92a5d4244d6bf352ec30cdecf08d4083d535b17f5e2612df9e", @@ -981,6 +1123,7 @@ "crm-rule/src/main/java/com/crm/rule/mapper/OpportunityStageTemplateMapper.java": "sha256:98deed4a4be18a5f916cc4e7b27cf56624e3c33a837ad2f563f82f8220167f63", "crm-rule/src/main/java/com/crm/rule/mapper/SysRegionMapper.java": "sha256:dcac2b33a2df44568a6771f2db9ee98714d877f08efeb0dfd5216d716fe83991", "crm-rule/src/main/java/com/crm/rule/port/outbound/PoolLeadOccupationPort.java": "sha256:2fb3c98ea713846d887fd492476004dceff0672577ce3f21c2010e5b947b4931", + "crm-rule/src/main/java/com/crm/rule/service/ICustomerReminderRuleService.java": "sha256:aee6a1d08dd8232cf377a848ce352d1203c48ef2af139076bc8c01e71acaa233", "crm-rule/src/main/java/com/crm/rule/service/ILeadPoolService.java": "sha256:6e8b03b5f2e58395dea4257ca87e26a5f939e6bbc959721e6facd2983ea85cb4", "crm-rule/src/main/java/com/crm/rule/service/IOpportunityPoolRuleService.java": "sha256:b3348bdd0519e2aea1e6c55ba4237dd9a92b4be1e40b770d95838d57d230f0d0", "crm-rule/src/main/java/com/crm/rule/service/IOpportunitySchemeCardTemplateService.java": "sha256:67446206742eb35d6c2a21c355c109ce9f40ca85b20829969346e78cd1ee0b6c", @@ -989,6 +1132,7 @@ "crm-rule/src/main/java/com/crm/rule/service/OpportunityPoolRuleMatcher.java": "sha256:a6596fa5cfdd60c7f1083b2cee6aa2f62e0d16dfeb9c646bdf0d1ce652a203b8", "crm-rule/src/main/java/com/crm/rule/service/PoolGeographyStore.java": "sha256:0f7fcaaa7f8e342d4d03ab9f6a30d202c492e7b4b1729f54ba04710393d75308", "crm-rule/src/main/java/com/crm/rule/service/PoolMemberStore.java": "sha256:a82c6b3b61203848793cad8ddb9202ec4c9c998f29e98756c7b587f43cabb234", + "crm-rule/src/main/java/com/crm/rule/service/impl/CustomerReminderRuleServiceImpl.java": "sha256:318a26ab5692b4b67fda4c29cde79908d185cd110b7868f840d7b8927d85e948", "crm-rule/src/main/java/com/crm/rule/service/impl/LeadPoolServiceImpl.java": "sha256:d98b4abd562c8fef4dc118394b1500e46f7ced9d6f9e171b057b4628f673aa2b", "crm-rule/src/main/java/com/crm/rule/service/impl/OpportunityPoolRuleMatcherImpl.java": "sha256:f3ffe1282381e5aa59f1e5114ab47bcdcbe6345a320b1cd06c844a258405674d", "crm-rule/src/main/java/com/crm/rule/service/impl/OpportunityPoolRuleServiceImpl.java": "sha256:46a1ed1ea8093876219544cf5987be6f23c3a92db9d1bc9072fa2d65701b180a", @@ -998,9 +1142,11 @@ "crm-rule/src/main/java/com/crm/rule/service/impl/PoolMemberStoreImpl.java": "sha256:88aedc80813f19e47648f17bed1a3b4e7ec2ba6ad3ed50edc1b03cca4f7e1714", "crm-rule/src/main/java/com/crm/rule/service/impl/SysRegionServiceImpl.java": "sha256:4cac672fd48073b935fa40034e7476523917ac93387f9f147ebf76dedcd98e91", "crm-rule/src/main/java/com/crm/rule/service/impl/VersionedConfigSupport.java": "sha256:69a54997f744fd4b5a964f635b5a8f14df6790c86970af019f1afcd8dbd505b9", + "crm-rule/src/test/java/com/crm/rule/config/CustomerReminderRuleInitializerTest.java": "sha256:9af8d8f6810fa64255775047aa5c2ea7dd4a1dd4eb119a25947a59b1c8bb27a6", "crm-rule/src/test/java/com/crm/rule/config/RegionDataInitializerTest.java": "sha256:78c3254185aec09d8879027a352fa2d01dc890a63bb151988ffa3eee3a0fe1f6", "crm-rule/src/test/java/com/crm/rule/config/SchemeFieldDefInitializerTest.java": "sha256:26987fbd248c596267abdd2e448617c917839af1b86c65d34cdb9ef97e311be3", "crm-rule/src/test/java/com/crm/rule/config/StageTemplateInitializerTest.java": "sha256:9acd14075c909851c8451b6b0e0758aadda57ae2ecd52468d8e2d3a4ad24f2b5", + "crm-rule/src/test/java/com/crm/rule/service/impl/CustomerReminderRuleServiceImplTest.java": "sha256:dc86d3336af6b30ecebce9cb276d8de3a32a1b5ebe6dedbb8254cae844ed4b1a", "crm-rule/src/test/java/com/crm/rule/service/impl/LeadPoolBatchDeleteTest.java": "sha256:bbaadc0de1f0ddf50b33743ebf00b603a90bd46e8a79c8ebc565ed6dd1a8c0cd", "crm-rule/src/test/java/com/crm/rule/service/impl/LeadPoolServiceImplTest.java": "sha256:8ebcfd7e8e1c481e8524a1d230cd8a7c8071b3693759787ebed952f0ac04542a", "crm-rule/src/test/java/com/crm/rule/service/impl/OpportunityPoolRuleMatcherImplTest.java": "sha256:570b50da3715b3e663dc9d1f4f07fd243cfb21d9006d5ffa98cdf1b1c47dab44", @@ -1008,7 +1154,7 @@ "crm-rule/src/test/java/com/crm/rule/service/impl/OpportunitySchemeCardTemplateServiceImplTest.java": "sha256:ad7e8ac4e5188ecd491a6a6404aa66ed8b3128c24109f9012e684b056e4a0083", "crm-rule/src/test/java/com/crm/rule/service/impl/OpportunityStageTemplateServiceImplTest.java": "sha256:5791337fe64fc8762c9c63a0264cf66dca9977c2d6bd235315ead6505a05cde9", "docker-compose.yml": "sha256:6e5ea6a3d2442cddf87a8dae62c97ff43585f5c4f6f8daab14a673a94a85913c", - "pom.xml": "sha256:abe417c4b369d6a649f52b15948497c086cb2cd05371cf0b6bdb9a2a9d5c4b2c", + "pom.xml": "sha256:ea10f26be3bc9c6bac114a0b9695c9cfd143f2a18087fcdca6fdfbc2d9ebc013", "tmp/china-division/package/package.json": "sha256:a8b0c3d1f5e480c51b6726a5456f4b62188b5f4a54d719075d6166f24cae9fbd" } }, diff --git a/.scratch/customer-e2e/__pycache__/defs_a4.cpython-313.pyc b/.scratch/customer-e2e/__pycache__/defs_a4.cpython-313.pyc index da379d4..768d52c 100644 Binary files a/.scratch/customer-e2e/__pycache__/defs_a4.cpython-313.pyc and b/.scratch/customer-e2e/__pycache__/defs_a4.cpython-313.pyc differ diff --git a/.scratch/customer-e2e/answer06.md b/.scratch/customer-e2e/answer06.md new file mode 100644 index 0000000..da3d929 --- /dev/null +++ b/.scratch/customer-e2e/answer06.md @@ -0,0 +1,21 @@ +## Answer + +票 06 收口(换机续跑 2026-09-04 完成)。**生成规模:57 个 .bru / 10 个生成目录**(A4 下 9 个子目录 55 端点 + collection 根级 `客户管理/超期提醒规则/` 2 端点,另含根级 `客户管理/folder.bru` seq:12 与各目录 folder.bru)。 + +**分组决策**(结构听源码铁律): + +- 目录 = 源码 `@Tag` 原文。9 个 crm-customer Controller 的 tag 均带「A4 客户管理/」前缀,剥前缀后相对 BASE 落位;CustomerReminderRuleController(crm-rule)tag 原文「客户管理」无 A4 前缀 → 相对 collection 根落位(`客户管理/超期提醒规则/`)。 +- crm-preference saved-view 6 端点**不生成副本**:源码 tag 挂 A3 商机管理(商机先建、客户侧复用同套),生成副本会被 sync 重跑判孤儿;README 文字索引标明客户域 scopeKey=`customer.*`。 +- 路径段 `{workspace}` 保留占位原样入钥匙(mine/overview/pool 三值一套端点,.bru url 块展开为 mine 实例)。 + +**对账结果**:verify_a4.py 正则扫 9 个 crm-customer Controller + CustomerReminderRuleController 得 (METHOD, path) 钥匙集 57 个,与生成 .bru docs 首行钥匙双向比对——missing 0 / extra 0 / duplicate 0,**PASS 全命中收口**。docs 首行标注「本行兼作对账钥匙,勿手改」。 + +**格式抽查**:新增客户.bru(form 大表 + specimens 实测 67003 撞码响应)、保存提醒规则.bru(唯一 JSON 端点,body:json 用 specimens 实测 body + 实测回显)、workspace 列表分页.bru(分页 content 截 1 条 + 实测字段结构表)对照金标准 `A3 商机管理/新建商机/新建商机.bru` 结构一致:meta tags:[generated] / method 块 / params·body 块 / docs 四段+表格。 + +**裸 collection 不升级**(Not-yet 挂号项结论):集合根目录保持裸 collection(bruno.json + collection.bru,无 workspace.yml),本票全部生成逻辑按现状跑通(生成 + Bruno 可读),**不做 workspace 结构升级**——避免影响其余 A0-A7 分区的存量路径与用户工作区打开方式,如后续 Bruno 3.x 打不开再按 bruno-coldstart 先例单独处理。 + +**换机事项**:生成器 3 处盘符路径已从 E: 改 D:(sys.path / DOCS / SP_DIR);旧机第一次跑的错误产物(重复嵌套目录 `A4 客户管理/A4 客户管理/` 64 文件 + 错位 `A4 客户管理/客户管理/超期提醒规则/` 3 文件)已随用户 git pull 进入本机,清理脚本 clean_a4_leftover.py 删除后重跑生成,幂等无残留。 + +**README**:`A4 客户管理/README.md` 已从占位重写——9 子目录索引(含端点清单与计数)、根级提醒规则归位原因、crm-preference 不生成副本说明、空缺标注、对接示位、维护纪律(只碰 tags:[generated] / 对账钥匙行勿手改 / agent 不提交 git)。 + +**遗留**:agent 不提交 git,D 盘文档仓变更(删 2 残留目录 + 新增 57 .bru + folder.bru + README 重写)由用户审查后自行提交。缺陷注记(D-02/D-04/D-05/D-07)已按 defs_a4.py 写入对应 .bru desc。 diff --git a/.scratch/customer-e2e/clean_a4_leftover.py b/.scratch/customer-e2e/clean_a4_leftover.py new file mode 100644 index 0000000..26bdf38 --- /dev/null +++ b/.scratch/customer-e2e/clean_a4_leftover.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +"""票 06 续跑步骤 1:清文档仓第一次跑的错误残留(HANDOFF-2026-09-04 §3.1)。 +- D:\code\crm-api-docs\A4 客户管理\A4 客户管理\ (重复嵌套目录,9 子目录) +- D:\code\crm-api-docs\A4 客户管理\客户管理\ (错位目录壳,内含超期提醒规则 3 文件) +保留:A4 客户管理\folder.bru、README.md。 +幂等:目录不存在则跳过。""" +import io, sys, os, shutil +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') + +DOCS = r'D:\code\crm-api-docs' +A4 = os.path.join(DOCS, 'A4 客户管理') +LEFTOVERS = [ + os.path.join(A4, 'A4 客户管理'), + os.path.join(A4, '客户管理'), +] + +for d in LEFTOVERS: + if os.path.isdir(d): + n = sum(len(fn) for _, _, fn in os.walk(d)) + shutil.rmtree(d) + print(f'removed: {os.path.relpath(d, DOCS)} ({n} files)') + else: + print(f'skip (absent): {os.path.relpath(d, DOCS)}') + +print('--- after cleanup, A4 tree ---') +for dp, dn, fn in os.walk(A4): + for f in fn: + print(' ', os.path.relpath(os.path.join(dp, f), DOCS)) diff --git a/.scratch/customer-e2e/clean_pollution.py b/.scratch/customer-e2e/clean_pollution.py new file mode 100644 index 0000000..2ea48dc --- /dev/null +++ b/.scratch/customer-e2e/clean_pollution.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +"""票 08 重跑前置:归档上一轮意外落库的 demo-selftest-撞码客户。 +原因:第一轮自测用假信用代码 MA9ABC1234,L3 未命中 67003 → 客户真实落库。 +若不清理,本轮同名重试会先命中 L2 needConfirm,看不到 67003。 +走正门 API:workspace page 搜名称 → archive?id=(新客户无商机,67006 不会阻断)。 +""" +import io, sys +import requests +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') + +BASE = 'http://localhost:8080' +ADMIN = '739564171091247104' +TARGET = 'demo-selftest-撞码客户' + +r = requests.get(f'{BASE}/api/auth/debug/token', params={'userId': ADMIN}, timeout=10) +tok = r.json().get('data') +tok = tok.get('token') if isinstance(tok, dict) else tok +H = {'Authorization': f'Bearer {tok}'} + +found = [] +for ws in ('pool', 'mine', 'overview'): + r = requests.post(f'{BASE}/api/customer/workspace/{ws}/page', + data={'current': 1, 'size': 50, 'keyword': TARGET}, headers=H, timeout=15) + rows = ((r.json().get('data') or {}).get('content')) or [] + for c in rows: + if TARGET in (c.get('customerName') or ''): + found.append((ws, c.get('id'), c.get('customerName'), c.get('customerNo'), c.get('archiveStatus'))) + if found: + break + +if not found: + print('未发现脏客户,无需清理') + sys.exit(0) + +for ws, cid, name, no, arc in found: + print(f'发现: ws={ws} id={cid} {name}({no}) archiveStatus={arc}') + if arc == 2: + print(' 已是归档态,跳过') + continue + r = requests.post(f'{BASE}/api/customer/archive', params={'id': cid}, headers=H, timeout=15) + if r.json().get('code') == 67004: + # 公海客户无 owner,archive 仅销售负责人可执行 → 先 claim 领取成为 owner,再归档 + r2 = requests.post(f'{BASE}/api/customer/claim', params={'id': cid}, headers=H, timeout=15) + print(' claim:', r2.status_code, 'code=', r2.json().get('code'), r2.json().get('message')) + r = requests.post(f'{BASE}/api/customer/archive', params={'id': cid}, headers=H, timeout=15) + print(' archive:', r.status_code, 'code=', r.json().get('code'), r.json().get('message')) + +# 复核 +ws = found[0][0] +r = requests.post(f'{BASE}/api/customer/workspace/{ws}/page', + data={'current': 1, 'size': 50, 'keyword': TARGET}, headers=H, timeout=15) +rows = ((r.json().get('data') or {}).get('content')) or [] +for c in rows: + if TARGET in (c.get('customerName') or ''): + print('复核:', c.get('customerNo'), 'archiveStatus=', c.get('archiveStatus')) diff --git a/.scratch/customer-e2e/close06.py b/.scratch/customer-e2e/close06.py new file mode 100644 index 0000000..67c27cf --- /dev/null +++ b/.scratch/customer-e2e/close06.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +"""票 06 关票:Status claimed→resolved + answer06.md 追加为 Answer 段(沿用票 07 模式)。""" +import io, sys +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') + +TICKET = r'd:\code\crm-backend-matt\.scratch\customer-e2e\issues\06-bruno-docs.md' +ANSWER = r'd:\code\crm-backend-matt\.scratch\customer-e2e\answer06.md' + +txt = open(TICKET, encoding='utf-8').read() +if 'Status: claimed' in txt: + txt = txt.replace('Status: claimed', 'Status: resolved', 1) + print('status: claimed -> resolved') +else: + print('WARN: status line not in expected state:', [l for l in txt.splitlines() if 'Status' in l]) + +answer = open(ANSWER, encoding='utf-8').read().rstrip() +if '## Answer' in txt: + print('WARN: Answer already present, skip append') +else: + txt = txt.rstrip() + '\n\n' + answer + '\n' + print('answer appended') + +open(TICKET, 'w', encoding='utf-8', newline='').write(txt) +print('ticket saved.') diff --git a/.scratch/customer-e2e/demo-selftest-results.json b/.scratch/customer-e2e/demo-selftest-results.json new file mode 100644 index 0000000..ede42dc --- /dev/null +++ b/.scratch/customer-e2e/demo-selftest-results.json @@ -0,0 +1,162 @@ +{ + "results": [ + { + "step": "01 打开 file:// 页面", + "status": "PASS", + "note": "tabs=5" + }, + { + "step": "02 debug token 登录 + 我的客户列表", + "status": "PASS", + "note": "who=已登录: () mine rows=10" + }, + { + "step": "03 三 workspace 切换", + "status": "PASS", + "note": "overview rows=10 pool rows=1 info=第 1 页 / 共 0 条" + }, + { + "step": "04 列表关键字检索", + "status": "PASS", + "note": "keyword=恒信达 命中" + }, + { + "step": "05 汇总卡(board/summary)渲染", + "status": "PASS", + "note": "-- -- -- --" + }, + { + "step": "06 勾选 + 批量关注", + "status": "PASS", + "note": "已勾选 1 条:750854377022947328; toast=成功" + }, + { + "step": "07 打开详情(detail-head 公共头部)", + "status": "PASS", + "note": "e2c-恒信达科技有限公司(KH202609030029) 潜在客户 客户星 ★★★ 有效" + }, + { + "step": "08 子页签 info", + "status": "PASS", + "note": "info 渲染 OK" + }, + { + "step": "08 子页签 contacts", + "status": "PASS", + "note": "contacts 渲染 OK" + }, + { + "step": "08 子页签 follow", + "status": "PASS", + "note": "follow 渲染 OK" + }, + { + "step": "08 子页签 opps", + "status": "PASS", + "note": "opps 渲染 OK" + }, + { + "step": "08 子页签 members", + "status": "PASS", + "note": "members 渲染 OK" + }, + { + "step": "08 子页签 oplog", + "status": "PASS", + "note": "oplog 渲染 OK" + }, + { + "step": "09 写跟进(follow_way_01 契约值)", + "status": "PASS", + "note": "panels 3->4" + }, + { + "step": "10 新建联系人(修复后字段)", + "status": "PASS", + "note": "rows 0->1(含 name/jobTitleName/phone/isKeyContact 全契约字段)" + }, + { + "step": "11 编辑联系人(PUT /{id} 修复验证)", + "status": "PASS", + "note": "PUT /{id} 修复路径回显+保存 OK" + }, + { + "step": "12 删除联系人(DELETE /{id} 修复验证)", + "status": "PASS", + "note": "rows 1->0(DELETE / 修复验证)" + }, + { + "step": "13 新建客户 L2 相似 → needConfirm 弹出", + "status": "PASS", + "note": "相似命中 5 条:" + }, + { + "step": "14 新建客户 L3 信用代码撞码 67003", + "status": "PASS", + "note": "67003 硬拦展示 OK" + }, + { + "step": "15 归属动作:关注/取关/重点/取消重点", + "status": "PASS", + "note": "四连击完成(首条 toast: 成功)" + }, + { + "step": "16 交割列表 + 预览", + "status": "PASS", + "note": "trBody rows=5" + }, + { + "step": "17 交割发起前预览", + "status": "PASS", + "note": "preview OK" + }, + { + "step": "18 交接单详情(GET /transfer/{id})", + "status": "PASS", + "note": "交接单详情 JG202609040003(进度 3/3,已完成,全分配自动完成 D23)" + }, + { + "step": "19 导入任务列表渲染", + "status": "PASS", + "note": "impBody rows=17" + }, + { + "step": "20 导入上传预检(DRAFT 两段式)", + "status": "PASS", + "note": "toast=预检完成 taskId=751017903351922688 t=1 insert=0 update" + }, + { + "step": "21 确认执行导入(D-05:INSERT 行必 FAILED)", + "status": "PASS", + "note": "首行状态: 751017903351922688 APPEND_ONLY DONE 1 0 0 0 0 1 --" + }, + { + "step": "22 失败明细弹窗(D-04:0 行提示)", + "status": "PASS", + "note": "明细弹窗: 行号 原因 原始数据 1 疑似重复:客户名称与已有客户相似,本次不写入,请走新增/编辑人工确认 {\"sheetName\":\"客户\",\"row" + }, + { + "step": "23 提醒规则读改写(PUT JSON 全量覆盖)", + "status": "PASS", + "note": "orig=30 -> 31 保存回读 OK(提醒配置已加载已保存(PUT 全量覆盖,开关缺省按禁用;天数)" + }, + { + "step": "24 提醒规则 64023 负路径(天数非正)", + "status": "PASS", + "note": "64023 提示 OK" + }, + { + "step": "25 提醒规则还原基线", + "status": "PASS", + "note": "还原 firstTriggerDays=30(回读 30)" + }, + { + "step": "26 查重试玩三端点", + "status": "PASS", + "note": "check-name / check-credit-code / check-phone 三连 OK" + } + ], + "console_errors": [], + "page_errors": [], + "shots": 30 +} \ No newline at end of file diff --git a/.scratch/customer-e2e/demo/index.html b/.scratch/customer-e2e/demo/index.html index 3d32496..6f69e82 100644 --- a/.scratch/customer-e2e/demo/index.html +++ b/.scratch/customer-e2e/demo/index.html @@ -67,6 +67,7 @@ dialog .dfoot button.ok { background: #409eff; color: #fff; border-color: #409ef

客户模块 E2E Demo

+ 当前用户: @@ -79,7 +80,7 @@ dialog .dfoot button.ok { background: #409eff; color: #fff; border-color: #409ef - +
@@ -144,7 +145,7 @@ dialog .dfoot button.ok { background: #409eff; color: #fff; border-color: #409ef
两段式导入D-05 / D-04
- +