You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
3.2 KiB

feat(opportunity): 票 03 商机主表落地(Opportunity 实体 + 5 态枚举 + Mapper 骨架) TDD 三切片(红→绿各一轮,19 测试全绿): - OpportunityStatus:轴 1 归属流转 5 态枚举(1待领取/2推进中/3暂缓中/4已关闭/5已转项目), implements HasValueEnum<Integer>;只钉值域,迁移逻辑归票 04 - Opportunity:主表实体(票 03 三簇 + Amendment 1),同构 crm-lead/Lead 写法 * 簇 A 业务字段 12 列(含 project_amount decimal(14,2) 选填,Amendment 1) * 簇 B 归属三层(owner_user_id/owner_dept_id/origin_dept_id)+ 两轴落点 (opp_status/current_stage_id/stage_template_id+版本号冗余)+ 来源快照 4 列 + 单计时器 claim_time/last_valid_follow_time * C3 主客户冗余快照 2 列、暂缓附加 4 列落主表(E4 写/E5 清空) * 乐观锁 @Version version=0(切主客户票 13 / 状态 CAS 票 04 复用,接线归后续票) * @DataScope(module=opportunity, owner_user_id, owner_dept_id)——module 已在 crm-auth DataInitializer 预注册,不触发 ADR-0006 启动拒绝 * 索引:UNIQUE(source_lead_id) + (owner_user_id,opp_status) + (owner_dept_id,opp_status) * 不建:pool_id/dept_id/recycle_deadline/expected_deal_date(票 05/10 定稿排除) - OpportunityMapper:骨架 extends CrmBaseMapper(同构 LeadMapper) - 模块装配:根 pom modules/dependencyManagement + crm-app 聚合依赖 - CONTEXT.md 待细化小节勾销主表项 边界守住:子表归 07/08/09,customerId 契约归 11,关联客户表归 13,均未触碰。 验证:全量 BOM 扫描 0 命中;全反应堆 clean test 9 模块 SUCCESS。
2 weeks ago
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.crm</groupId>
<artifactId>crm</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>crm-opportunity</artifactId>
<packaging>jar</packaging>
<name>crm-opportunity</name>
<description>CRM 商机业务模块:状态+阶段双轴/四视图/公海/暂缓/移交/转项目</description>
<!-- 依赖方向单向:crm-opportunity → crm-rule / crm-auth / crm-dict / crm-file / crm-preference / crm-customer / crm-base -->
feat(opportunity): 票 03 商机主表落地(Opportunity 实体 + 5 态枚举 + Mapper 骨架) TDD 三切片(红→绿各一轮,19 测试全绿): - OpportunityStatus:轴 1 归属流转 5 态枚举(1待领取/2推进中/3暂缓中/4已关闭/5已转项目), implements HasValueEnum<Integer>;只钉值域,迁移逻辑归票 04 - Opportunity:主表实体(票 03 三簇 + Amendment 1),同构 crm-lead/Lead 写法 * 簇 A 业务字段 12 列(含 project_amount decimal(14,2) 选填,Amendment 1) * 簇 B 归属三层(owner_user_id/owner_dept_id/origin_dept_id)+ 两轴落点 (opp_status/current_stage_id/stage_template_id+版本号冗余)+ 来源快照 4 列 + 单计时器 claim_time/last_valid_follow_time * C3 主客户冗余快照 2 列、暂缓附加 4 列落主表(E4 写/E5 清空) * 乐观锁 @Version version=0(切主客户票 13 / 状态 CAS 票 04 复用,接线归后续票) * @DataScope(module=opportunity, owner_user_id, owner_dept_id)——module 已在 crm-auth DataInitializer 预注册,不触发 ADR-0006 启动拒绝 * 索引:UNIQUE(source_lead_id) + (owner_user_id,opp_status) + (owner_dept_id,opp_status) * 不建:pool_id/dept_id/recycle_deadline/expected_deal_date(票 05/10 定稿排除) - OpportunityMapper:骨架 extends CrmBaseMapper(同构 LeadMapper) - 模块装配:根 pom modules/dependencyManagement + crm-app 聚合依赖 - CONTEXT.md 待细化小节勾销主表项 边界守住:子表归 07/08/09,customerId 契约归 11,关联客户表归 13,均未触碰。 验证:全量 BOM 扫描 0 命中;全反应堆 clean test 9 模块 SUCCESS。
2 weeks ago
<dependencies>
<dependency>
<groupId>com.crm</groupId>
<artifactId>crm-base</artifactId>
</dependency>
<dependency>
<groupId>com.crm</groupId>
<artifactId>crm-auth</artifactId>
</dependency>
<dependency>
<groupId>com.crm</groupId>
<artifactId>crm-rule</artifactId>
</dependency>
<dependency>
<groupId>com.crm</groupId>
<artifactId>crm-dict</artifactId>
</dependency>
<dependency>
<groupId>com.crm</groupId>
<artifactId>crm-file</artifactId>
</dependency>
<dependency>
<groupId>com.crm</groupId>
<artifactId>crm-preference</artifactId>
</dependency>
<!-- 客户模块真源(票 11,D14 依赖方向):商机侧切客户真源(联系人/搜索/关联校验)
+ 实现客户侧出站 port(CustomerOpportunityQueryPort/OpportunityOwnerSyncPort,
ADR-0029 范式);单向 opportunity → customer,crm-customer 不反向依赖本模块 -->
<dependency>
<groupId>com.crm</groupId>
<artifactId>crm-customer</artifactId>
</dependency>
<!-- 技术债(ADR-0029):下游依赖上游。实现 crm-lead 定义的 outbound port
OpportunityCreationPort(线索转商机)。方向不干净,一旦 crm-lead 需读商机会成环;
当前同库单体阶段可接受(ADR-0020),独立部署时随 0020 supersede 重设。 -->
<dependency>
<groupId>com.crm</groupId>
<artifactId>crm-lead</artifactId>
</dependency>
feat(opportunity): 票 03 商机主表落地(Opportunity 实体 + 5 态枚举 + Mapper 骨架) TDD 三切片(红→绿各一轮,19 测试全绿): - OpportunityStatus:轴 1 归属流转 5 态枚举(1待领取/2推进中/3暂缓中/4已关闭/5已转项目), implements HasValueEnum<Integer>;只钉值域,迁移逻辑归票 04 - Opportunity:主表实体(票 03 三簇 + Amendment 1),同构 crm-lead/Lead 写法 * 簇 A 业务字段 12 列(含 project_amount decimal(14,2) 选填,Amendment 1) * 簇 B 归属三层(owner_user_id/owner_dept_id/origin_dept_id)+ 两轴落点 (opp_status/current_stage_id/stage_template_id+版本号冗余)+ 来源快照 4 列 + 单计时器 claim_time/last_valid_follow_time * C3 主客户冗余快照 2 列、暂缓附加 4 列落主表(E4 写/E5 清空) * 乐观锁 @Version version=0(切主客户票 13 / 状态 CAS 票 04 复用,接线归后续票) * @DataScope(module=opportunity, owner_user_id, owner_dept_id)——module 已在 crm-auth DataInitializer 预注册,不触发 ADR-0006 启动拒绝 * 索引:UNIQUE(source_lead_id) + (owner_user_id,opp_status) + (owner_dept_id,opp_status) * 不建:pool_id/dept_id/recycle_deadline/expected_deal_date(票 05/10 定稿排除) - OpportunityMapper:骨架 extends CrmBaseMapper(同构 LeadMapper) - 模块装配:根 pom modules/dependencyManagement + crm-app 聚合依赖 - CONTEXT.md 待细化小节勾销主表项 边界守住:子表归 07/08/09,customerId 契约归 11,关联客户表归 13,均未触碰。 验证:全量 BOM 扫描 0 命中;全反应堆 clean test 9 模块 SUCCESS。
2 weeks ago
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 集成测试:H2 MySQL 模式(仿 crm-auth/crm-dict 服务层 H2 集成测试范式) -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
feat(opportunity): 票 03 商机主表落地(Opportunity 实体 + 5 态枚举 + Mapper 骨架) TDD 三切片(红→绿各一轮,19 测试全绿): - OpportunityStatus:轴 1 归属流转 5 态枚举(1待领取/2推进中/3暂缓中/4已关闭/5已转项目), implements HasValueEnum<Integer>;只钉值域,迁移逻辑归票 04 - Opportunity:主表实体(票 03 三簇 + Amendment 1),同构 crm-lead/Lead 写法 * 簇 A 业务字段 12 列(含 project_amount decimal(14,2) 选填,Amendment 1) * 簇 B 归属三层(owner_user_id/owner_dept_id/origin_dept_id)+ 两轴落点 (opp_status/current_stage_id/stage_template_id+版本号冗余)+ 来源快照 4 列 + 单计时器 claim_time/last_valid_follow_time * C3 主客户冗余快照 2 列、暂缓附加 4 列落主表(E4 写/E5 清空) * 乐观锁 @Version version=0(切主客户票 13 / 状态 CAS 票 04 复用,接线归后续票) * @DataScope(module=opportunity, owner_user_id, owner_dept_id)——module 已在 crm-auth DataInitializer 预注册,不触发 ADR-0006 启动拒绝 * 索引:UNIQUE(source_lead_id) + (owner_user_id,opp_status) + (owner_dept_id,opp_status) * 不建:pool_id/dept_id/recycle_deadline/expected_deal_date(票 05/10 定稿排除) - OpportunityMapper:骨架 extends CrmBaseMapper(同构 LeadMapper) - 模块装配:根 pom modules/dependencyManagement + crm-app 聚合依赖 - CONTEXT.md 待细化小节勾销主表项 边界守住:子表归 07/08/09,customerId 契约归 11,关联客户表归 13,均未触碰。 验证:全量 BOM 扫描 0 命中;全反应堆 clean test 9 模块 SUCCESS。
2 weeks ago
</dependencies>
</project>