我有一个商机他有123456 共6个状态分别代表线索、提供简历、面试通过、人员驻场、合同评审、合同归档。请你设计一个请用java写出商机从线索到归档的整个流程流转过程整个流程中每个步骤都可以回退到线索状态并且每个状态都需要对关键字段进行校验如果关键字段没有值则流程不能进入下一步而是停留在当前状态。节点校验字段分别是 线索中的负责人字段、提供简历中的简历人员字段、面试通过中的人员名称字段、人员驻场中
public class Opportunity { private int status; // 商机状态,取值为1/2/3/4/5/6 private String responsiblePerson; // 负责人 private String resumePerson; // 简历人员 private String intervieweeName; // 面试通过人员名称 private String personnel; // 驻场人员 private Date personnelTime; // 驻场时间 private String contractNo; // 合同编号 private Date contractTime; // 合同时间 private Date archiveTime; // 归档时间
// 状态为线索
public void setStatusToLead() {
if (responsiblePerson == null || responsiblePerson.equals("")) {
System.out.println("负责人不能为空!");
return;
}
status = 1;
}
// 状态为提供简历
public void setStatusToResume() {
if (resumePerson == null || resumePerson.equals("")) {
System.out.println("简历人员不能为空!");
return;
}
if (status < 1) {
System.out.println("状态不能回退到线索!");
return;
}
status = 2;
}
// 状态为面试通过
public void setStatusToInterview() {
if (intervieweeName == null || intervieweeName.equals("")) {
System.out.println("面试通过人员名称不能为空!");
return;
}
if (status < 2) {
System.out.println("状态不能回退到提供简历!");
return;
}
status = 3;
}
// 状态为人员驻场
public void setStatusToPersonnel() {
if (personnel == null || personnel.equals("") || personnelTime == null) {
System.out.println("驻场人员和时间不能为空!");
return;
}
if (status < 3) {
System.out.println("状态不能回退到面试通过!");
return;
}
status = 4;
}
// 状态为合同评审
public void setStatusToContract() {
if (contractNo == null || contractNo.equals("") || contractTime == null) {
System.out.println("合同编号和时间不能为空!");
return;
}
if (status < 4) {
System.out.println("状态不能回退到人员驻场!");
return;
}
status = 5;
}
// 状态为合同归档
public void setStatusToArchive() {
if (archiveTime == null) {
System.out.println("归档时间不能为空!");
return;
}
if (status < 5) {
System.out.println("状态不能回退到合同评审!");
return;
}
status = 6;
}
// 回退到线索状态
public void rollbackToLead() {
status = 1;
}
// getter和setter方法
// ...
}
原文地址: https://www.cveoy.top/t/topic/bHp8 著作权归作者所有。请勿转载和采集!