# 后端Controller修改提示词 ## 🎯 需要修改的文件 `/Users/gxwebsoft/VUE/template-10579/JAVA/mp-java/src/main/java/com/gxwebsoft/credit/controller/CreditMpCustomerController.java` ## 📝 具体修改内容 ### 1. 添加新的接口方法 在现有的 `CreditMpCustomerController` 类中添加以下方法: ```java /** * 审核跟进步骤 */ @PostMapping("/approve-follow-step") @OperLog(title = "审核跟进步骤", businessType = BusinessType.UPDATE) public R approveFollowStep(@RequestBody FollowStepApprovalDTO dto) { creditMpCustomerService.approveFollowStep(dto); return R.ok(); } /** * 批量审核跟进步骤 */ @PostMapping("/batch-approve-follow-steps") @OperLog(title = "批量审核跟进步骤", businessType = BusinessType.UPDATE) public R batchApproveFollowSteps(@RequestBody BatchFollowStepApprovalDTO dto) { creditMpCustomerService.batchApproveFollowSteps(dto); return R.ok(); } /** * 获取待审核的跟进步骤列表 */ @GetMapping("/pending-approval-steps") @OperLog(title = "获取待审核跟进步骤", businessType = BusinessType.SELECT) public R> getPendingApprovalSteps(FollowStepQueryDTO query) { List list = creditMpCustomerService.getPendingApprovalSteps(query); return R.ok(list); } /** * 获取客户跟进统计 */ @GetMapping("/follow-statistics/{customerId}") @OperLog(title = "获取客户跟进统计", businessType = BusinessType.SELECT) public R getFollowStatistics(@PathVariable Long customerId) { FollowStatisticsDTO statistics = creditMpCustomerService.getFollowStatistics(customerId); return R.ok(statistics); } /** * 结束客户跟进流程 */ @PostMapping("/end-follow-process") @OperLog(title = "结束客户跟进流程", businessType = BusinessType.UPDATE) public R endFollowProcess(@RequestBody EndFollowProcessDTO dto) { creditMpCustomerService.endFollowProcess(dto.getCustomerId(), dto.getReason()); return R.ok(); } ``` ### 2. 添加必要的导入 在文件顶部添加以下导入语句: ```java import com.your.package.dto.FollowStepApprovalDTO; import com.your.package.dto.BatchFollowStepApprovalDTO; import com.your.package.dto.FollowStepQueryDTO; import com.your.package.dto.PendingApprovalStepVO; import com.your.package.dto.FollowStatisticsDTO; import com.your.package.dto.EndFollowProcessDTO; import com.your.package.annotation.OperLog; import com.your.package.enums.BusinessType; ``` ### 3. 需要创建的DTO类 #### FollowStepApprovalDTO.java ```java @Data public class FollowStepApprovalDTO { private Long customerId; private Integer step; private Boolean approved; private String remark; } ``` #### BatchFollowStepApprovalDTO.java ```java @Data public class BatchFollowStepApprovalDTO { private List approvals; } ``` #### FollowStepQueryDTO.java ```java @Data public class FollowStepQueryDTO { private Integer step; private Long customerId; private Long userId; } ``` #### PendingApprovalStepVO.java ```java @Data public class PendingApprovalStepVO { private Long customerId; private String customerName; private Integer step; private String stepTitle; private String submittedAt; private String submittedBy; private Object content; } ``` #### FollowStatisticsDTO.java ```java @Data public class FollowStatisticsDTO { private Integer totalSteps; private Integer completedSteps; private Integer currentStep; private Double progress; private List stepDetails; } ``` #### FollowStepDetailDTO.java ```java @Data public class FollowStepDetailDTO { private Integer step; private String title; private String status; // pending, submitted, approved, rejected private String submittedAt; private String approvedAt; } ``` #### EndFollowProcessDTO.java ```java @Data public class EndFollowProcessDTO { private Long customerId; private String reason; } ``` ### 4. Service层需要添加的方法 在 `CreditMpCustomerService` 接口中添加: ```java /** * 审核跟进步骤 */ void approveFollowStep(FollowStepApprovalDTO dto); /** * 批量审核跟进步骤 */ void batchApproveFollowSteps(BatchFollowStepApprovalDTO dto); /** * 获取待审核的跟进步骤列表 */ List getPendingApprovalSteps(FollowStepQueryDTO query); /** * 获取客户跟进统计 */ FollowStatisticsDTO getFollowStatistics(Long customerId); /** * 结束客户跟进流程 */ void endFollowProcess(Long customerId, String reason); ``` ### 5. 实体类修改 在 `CreditMpCustomer.java` 中添加第5-7步的字段: ```java // 第5步字段 private Integer followStep5Submitted; private String followStep5SubmittedAt; private String followStep5Contracts; private Integer followStep5NeedApproval; private Integer followStep5Approved; private String followStep5ApprovedAt; private Long followStep5ApprovedBy; // 第6步字段 private Integer followStep6Submitted; private String followStep6SubmittedAt; private String followStep6PaymentRecords; private String followStep6ExpectedPayments; private Integer followStep6NeedApproval; private Integer followStep6Approved; private String followStep6ApprovedAt; private Long followStep6ApprovedBy; // 第7步字段 private Integer followStep7Submitted; private String followStep7SubmittedAt; private String followStep7VisitRecords; private Integer followStep7NeedApproval; private Integer followStep7Approved; private String followStep7ApprovedAt; private Long followStep7ApprovedBy; // 流程结束字段 private Integer followProcessEnded; private String followProcessEndTime; private String followProcessEndReason; ``` ### 6. 数据库修改 执行以下SQL语句: ```sql -- 第5步字段 ALTER TABLE credit_mp_customer ADD COLUMN follow_step5_submitted TINYINT DEFAULT 0; ALTER TABLE credit_mp_customer ADD COLUMN follow_step5_submitted_at VARCHAR(255); ALTER TABLE credit_mp_customer ADD COLUMN follow_step5_contracts TEXT; ALTER TABLE credit_mp_customer ADD COLUMN follow_step5_need_approval TINYINT DEFAULT 1; ALTER TABLE credit_mp_customer ADD COLUMN follow_step5_approved TINYINT DEFAULT 0; ALTER TABLE credit_mp_customer ADD COLUMN follow_step5_approved_at VARCHAR(255); ALTER TABLE credit_mp_customer ADD COLUMN follow_step5_approved_by BIGINT; -- 第6步字段 ALTER TABLE credit_mp_customer ADD COLUMN follow_step6_submitted TINYINT DEFAULT 0; ALTER TABLE credit_mp_customer ADD COLUMN follow_step6_submitted_at VARCHAR(255); ALTER TABLE credit_mp_customer ADD COLUMN follow_step6_payment_records TEXT; ALTER TABLE credit_mp_customer ADD COLUMN follow_step6_expected_payments TEXT; ALTER TABLE credit_mp_customer ADD COLUMN follow_step6_need_approval TINYINT DEFAULT 1; ALTER TABLE credit_mp_customer ADD COLUMN follow_step6_approved TINYINT DEFAULT 0; ALTER TABLE credit_mp_customer ADD COLUMN follow_step6_approved_at VARCHAR(255); ALTER TABLE credit_mp_customer ADD COLUMN follow_step6_approved_by BIGINT; -- 第7步字段 ALTER TABLE credit_mp_customer ADD COLUMN follow_step7_submitted TINYINT DEFAULT 0; ALTER TABLE credit_mp_customer ADD COLUMN follow_step7_submitted_at VARCHAR(255); ALTER TABLE credit_mp_customer ADD COLUMN follow_step7_visit_records TEXT; ALTER TABLE credit_mp_customer ADD COLUMN follow_step7_need_approval TINYINT DEFAULT 1; ALTER TABLE credit_mp_customer ADD COLUMN follow_step7_approved TINYINT DEFAULT 0; ALTER TABLE credit_mp_customer ADD COLUMN follow_step7_approved_at VARCHAR(255); ALTER TABLE credit_mp_customer ADD COLUMN follow_step7_approved_by BIGINT; -- 流程结束字段 ALTER TABLE credit_mp_customer ADD COLUMN follow_process_ended TINYINT DEFAULT 0; ALTER TABLE credit_mp_customer ADD COLUMN follow_process_end_time VARCHAR(255); ALTER TABLE credit_mp_customer ADD COLUMN follow_process_end_reason TEXT; ``` ## 🔧 实施步骤 1. **数据库修改**:先执行SQL脚本添加字段 2. **实体类修改**:更新 `CreditMpCustomer.java` 3. **DTO类创建**:创建所有需要的DTO类 4. **Service接口**:添加方法定义 5. **Service实现**:实现具体业务逻辑 6. **Controller修改**:添加新的接口方法 7. **Mapper修改**:添加必要的SQL查询 ## ⚠️ 注意事项 1. **包名替换**:请将 `com.your.package` 替换为实际的包名 2. **注解检查**:确保 `@OperLog` 和 `BusinessType` 存在 3. **事务处理**:审核方法需要添加 `@Transactional` 注解 4. **权限控制**:根据需要添加权限验证注解 5. **数据验证**:在Service层添加必要的数据验证逻辑 ## 🧪 测试建议 1. 测试步骤提交和审核流程 2. 测试批量审核功能 3. 测试统计接口返回的数据格式 4. 测试流程结束功能 5. 验证步骤解锁逻辑是否正确 ## 📋 完整的业务流程 1. 销售人员提交步骤 → 设置 `submitted=1`, `needApproval=1` 2. 管理员审核 → 设置 `approved=0/1`, 记录审核时间和审核人 3. 前端检查 `approved` 状态决定是否解锁下一步 4. 支持查看待审核列表和批量操作 5. 提供进度统计和流程管理功能