Files
template-10579/后端Controller修改提示.md
赵忠林 d928a38962 fix(credit): 修复客户跟进流程步骤验证逻辑
- 修改第2步验证逻辑,允许直接进入无需审核通过
- 将第3-7步的验证条件从提交状态改为审核状态
- 更新开发环境API基础URL配置
- 添加后端Controller审核接口实现提示
- 补充步骤功能测试指南文档
2026-03-23 00:24:35 +08:00

9.0 KiB
Raw Blame History

后端Controller修改提示词

🎯 需要修改的文件

/Users/gxwebsoft/VUE/template-10579/JAVA/mp-java/src/main/java/com/gxwebsoft/credit/controller/CreditMpCustomerController.java

📝 具体修改内容

1. 添加新的接口方法

在现有的 CreditMpCustomerController 类中添加以下方法:

/**
 * 审核跟进步骤
 */
@PostMapping("/approve-follow-step")
@OperLog(title = "审核跟进步骤", businessType = BusinessType.UPDATE)
public R<Void> approveFollowStep(@RequestBody FollowStepApprovalDTO dto) {
    creditMpCustomerService.approveFollowStep(dto);
    return R.ok();
}

/**
 * 批量审核跟进步骤
 */
@PostMapping("/batch-approve-follow-steps")
@OperLog(title = "批量审核跟进步骤", businessType = BusinessType.UPDATE)
public R<Void> batchApproveFollowSteps(@RequestBody BatchFollowStepApprovalDTO dto) {
    creditMpCustomerService.batchApproveFollowSteps(dto);
    return R.ok();
}

/**
 * 获取待审核的跟进步骤列表
 */
@GetMapping("/pending-approval-steps")
@OperLog(title = "获取待审核跟进步骤", businessType = BusinessType.SELECT)
public R<List<PendingApprovalStepVO>> getPendingApprovalSteps(FollowStepQueryDTO query) {
    List<PendingApprovalStepVO> list = creditMpCustomerService.getPendingApprovalSteps(query);
    return R.ok(list);
}

/**
 * 获取客户跟进统计
 */
@GetMapping("/follow-statistics/{customerId}")
@OperLog(title = "获取客户跟进统计", businessType = BusinessType.SELECT)
public R<FollowStatisticsDTO> getFollowStatistics(@PathVariable Long customerId) {
    FollowStatisticsDTO statistics = creditMpCustomerService.getFollowStatistics(customerId);
    return R.ok(statistics);
}

/**
 * 结束客户跟进流程
 */
@PostMapping("/end-follow-process")
@OperLog(title = "结束客户跟进流程", businessType = BusinessType.UPDATE)
public R<Void> endFollowProcess(@RequestBody EndFollowProcessDTO dto) {
    creditMpCustomerService.endFollowProcess(dto.getCustomerId(), dto.getReason());
    return R.ok();
}

2. 添加必要的导入

在文件顶部添加以下导入语句:

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

@Data
public class FollowStepApprovalDTO {
    private Long customerId;
    private Integer step;
    private Boolean approved;
    private String remark;
}

BatchFollowStepApprovalDTO.java

@Data
public class BatchFollowStepApprovalDTO {
    private List<FollowStepApprovalDTO> approvals;
}

FollowStepQueryDTO.java

@Data
public class FollowStepQueryDTO {
    private Integer step;
    private Long customerId;
    private Long userId;
}

PendingApprovalStepVO.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

@Data
public class FollowStatisticsDTO {
    private Integer totalSteps;
    private Integer completedSteps;
    private Integer currentStep;
    private Double progress;
    private List<FollowStepDetailDTO> stepDetails;
}

FollowStepDetailDTO.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

@Data
public class EndFollowProcessDTO {
    private Long customerId;
    private String reason;
}

4. Service层需要添加的方法

CreditMpCustomerService 接口中添加:

/**
 * 审核跟进步骤
 */
void approveFollowStep(FollowStepApprovalDTO dto);

/**
 * 批量审核跟进步骤
 */
void batchApproveFollowSteps(BatchFollowStepApprovalDTO dto);

/**
 * 获取待审核的跟进步骤列表
 */
List<PendingApprovalStepVO> getPendingApprovalSteps(FollowStepQueryDTO query);

/**
 * 获取客户跟进统计
 */
FollowStatisticsDTO getFollowStatistics(Long customerId);

/**
 * 结束客户跟进流程
 */
void endFollowProcess(Long customerId, String reason);

5. 实体类修改

CreditMpCustomer.java 中添加第5-7步的字段

// 第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语句

-- 第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. 注解检查:确保 @OperLogBusinessType 存在
  3. 事务处理:审核方法需要添加 @Transactional 注解
  4. 权限控制:根据需要添加权限验证注解
  5. 数据验证在Service层添加必要的数据验证逻辑

🧪 测试建议

  1. 测试步骤提交和审核流程
  2. 测试批量审核功能
  3. 测试统计接口返回的数据格式
  4. 测试流程结束功能
  5. 验证步骤解锁逻辑是否正确

📋 完整的业务流程

  1. 销售人员提交步骤 → 设置 submitted=1, needApproval=1
  2. 管理员审核 → 设置 approved=0/1, 记录审核时间和审核人
  3. 前端检查 approved 状态决定是否解锁下一步
  4. 支持查看待审核列表和批量操作
  5. 提供进度统计和流程管理功能