Commit dd0995e6 by kenzo

add workflow interface

parent 5d4af887
......@@ -11,6 +11,7 @@ import com.cnooc.expert.controller.expert.model.request.ExamPaperGetReq;
import com.cnooc.expert.controller.expert.model.request.ExamQuestionListReq;
import com.cnooc.expert.controller.expert.model.request.ExamQuestionXiaoTiListReq;
import com.cnooc.expert.controller.expert.model.request.ExamRecordSaveReq;
import com.cnooc.expert.controller.expert.model.request.ExpertInfoGetByBusinessIdReq;
import com.cnooc.expert.controller.expert.model.request.ExpertInfoUpdateApiReq;
import com.cnooc.expert.controller.expert.model.request.GeRenXiuJiaApplyReq;
import com.cnooc.expert.controller.expert.model.request.GeRenXiuJiaPageReq;
......@@ -57,6 +58,7 @@ import com.cnooc.expert.external.expert.model.response.TrainExamPageApiResp;
import com.cnooc.expert.external.expert.model.response.ViolationExpertGetApiResp;
import com.cnooc.expert.external.expert.model.response.ViolationExpertPageApiResp;
import com.cnooc.expert.external.expert.model.response.XiangMuInfoByChouQuNumGetApiResp;
import com.cnooc.expert.external.expert.model.response.ZhuanJiaInfoGetByBusinessIdApiResp;
import com.cnooc.expert.external.expert.model.response.ZhuanJiaPingBiaoXiangMuRenWuPageApiResp;
import com.cnooc.expert.service.ExpertService;
import lombok.AllArgsConstructor;
......@@ -154,25 +156,32 @@ public class ExpertController extends AbstractBaseController {
// 省市区树
@PostMapping("/city/tree")
public ApiResult<List<CityTreeApiResp>> CityTree() {
public ApiResult<List<CityTreeApiResp>> cityTree() {
List<CityTreeApiResp> apiResp = expertService.treeCity();
return ApiResult.successWithResult(apiResp);
}
// 专家个人信息详情
@PostMapping("/info")
public ApiResult<ExpertInfoGetApiResp> ExpertInfoGet() {
public ApiResult<ExpertInfoGetApiResp> expertInfoGet() {
ExpertInfoGetApiResp apiResp = expertService.getExpertInfo(null);
return ApiResult.successWithResult(apiResp);
}
// 专家个人信息修改
@PostMapping("/updateAllInfo")
public ApiResult<ExpertInfoGetApiResp> ExpertInfoUpdate(@RequestBody @Validated ExpertInfoUpdateApiReq req) {
public ApiResult<ExpertInfoGetApiResp> expertInfoUpdate(@RequestBody @Validated ExpertInfoUpdateApiReq req) {
ExpertInfoGetApiResp apiResp = expertService.updateExpetInfo(req);
return ApiResult.successWithResult(apiResp);
}
// 根据BusinessId获取专家信息
@PostMapping("/info-by-businessId")
public ApiResult<ZhuanJiaInfoGetByBusinessIdApiResp> expertInfoByBusinessId(@RequestBody @Validated ExpertInfoGetByBusinessIdReq req) {
ZhuanJiaInfoGetByBusinessIdApiResp apiResp = expertService.getZhuanJiaInfoByBusinessId(req.getBusinessId());
return ApiResult.successWithResult(apiResp);
}
// 专家个人的申请列表
@PostMapping("/zhuan-jia/shen-qing-ji-lu/page")
public ApiResult<BasePageResp<ZhuanJiaShenQingJiLuPageResp>> zhuanJiaShenQingJiLuPage(@RequestBody @Validated ZhuanJiaShenQingJiLuPageReq req) {
......
......@@ -11,6 +11,7 @@ import com.cnooc.expert.controller.expert.model.request.ExamPaperGetReq;
import com.cnooc.expert.controller.expert.model.request.ExamQuestionListReq;
import com.cnooc.expert.controller.expert.model.request.ExamQuestionXiaoTiListReq;
import com.cnooc.expert.controller.expert.model.request.ExamRecordSaveReq;
import com.cnooc.expert.controller.expert.model.request.ExpertInfoGetByBusinessIdReq;
import com.cnooc.expert.controller.expert.model.request.ExpertInfoUpdateApiReq;
import com.cnooc.expert.controller.expert.model.request.GeRenXiuJiaApplyReq;
import com.cnooc.expert.controller.expert.model.request.GeRenXiuJiaPageReq;
......@@ -55,6 +56,7 @@ import com.cnooc.expert.controller.expert.model.response.SecondaryUnitListItemRe
import com.cnooc.expert.controller.expert.model.response.TempExamPaperGetResp;
import com.cnooc.expert.controller.expert.model.response.WeiGuiGetResp;
import com.cnooc.expert.controller.expert.model.response.WeiGuiPageResp;
import com.cnooc.expert.controller.expert.model.response.ZhuanJiaInfoGetByBusinessIdResp;
import com.cnooc.expert.controller.expert.model.response.ZhuanJiaShenQingJiLuPageResp;
import com.cnooc.expert.external.expert.model.request.ExamPaperSubmitApiReq;
import com.cnooc.expert.external.expert.model.request.TainLessonProgressUpdateApiReq;
......@@ -66,6 +68,7 @@ import com.cnooc.expert.external.expert.model.response.ExamRecordSaveApiResp;
import com.cnooc.expert.external.expert.model.response.TainLessonProgressUpdateApiResp;
import com.cnooc.expert.external.expert.model.response.TrainCourseLessonGetApiResp;
import com.cnooc.expert.external.expert.model.response.TrainExamPageApiResp;
import com.cnooc.expert.external.expert.model.response.ZhuanJiaInfoGetByBusinessIdApiResp;
import com.cnooc.expert.service.ExpertMockService;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
......@@ -206,6 +209,13 @@ public class ExpertMockController extends AbstractBaseController {
return ApiResult.successWithResult(expertMockService.updateExpetInfo(req));
}
// 根据BusinessId获取专家信息
@PostMapping("/info-by-businessId")
public ApiResult<ZhuanJiaInfoGetByBusinessIdResp> expertInfoByBusinessId(@RequestBody @Validated ExpertInfoGetByBusinessIdReq req) {
ZhuanJiaInfoGetByBusinessIdResp apiResp = expertMockService.getZhuanJiaInfoByBusinessId(req.getBusinessId());
return ApiResult.successWithResult(apiResp);
}
/**
* 抽取码详情
*
......
package com.cnooc.expert.controller.expert.model.request;
import lombok.Data;
@Data
public class ExpertInfoGetByBusinessIdReq {
private String businessId;
}
......@@ -4,7 +4,10 @@ import com.cnooc.expert.common.response.ApiResult;
import com.cnooc.expert.common.response.BasePageResp;
import com.cnooc.expert.controller.common.AbstractBaseController;
import com.cnooc.expert.controller.workflow.model.request.ApprovePathSettingPageReq;
import com.cnooc.expert.controller.workflow.model.response.ApprovePathSettingPageResp;
import com.cnooc.expert.external.workflow.model.request.InstRevokeApiReq;
import com.cnooc.expert.external.workflow.model.request.InstStartApiReq;
import com.cnooc.expert.external.workflow.model.response.InstStartApiResp;
import com.cnooc.expert.external.workflow.model.response.ProcDefPageApiResp;
import com.cnooc.expert.service.WorkflowService;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
......@@ -20,10 +23,25 @@ public class WorkflowController extends AbstractBaseController {
private final WorkflowService workflowService;
// 流程实例启动
@PostMapping("/start")
public ApiResult<InstStartApiResp> instStart(@RequestBody @Validated InstStartApiReq req) {
InstStartApiResp apiResp = workflowService.startInst(req);
return ApiResult.successWithResult(apiResp);
}
// 流程实例回撤
@PostMapping("/revoke")
public ApiResult<Boolean> instRevoke(@RequestBody @Validated InstRevokeApiReq req) {
Boolean apiResp = workflowService.revokeInst(req);
return ApiResult.successWithResult(apiResp);
}
// 获取审批路径
@PostMapping("/approve-path-setting/page")
public ApiResult<BasePageResp<ApprovePathSettingPageResp>> pageApprovePathSetting(@RequestBody @Validated ApprovePathSettingPageReq req) {
return ApiResult.successWithResult(workflowService.pageApprovePathSetting(req));
public ApiResult<BasePageResp<ProcDefPageApiResp>> pageApprovePathSetting(@RequestBody @Validated ApprovePathSettingPageReq req) {
BasePageResp<ProcDefPageApiResp> apiResp = workflowService.pageApprovePathSetting(req);
return ApiResult.successWithResult(apiResp);
}
}
......@@ -5,8 +5,10 @@ import com.cnooc.expert.common.response.BasePageResp;
import com.cnooc.expert.controller.common.AbstractBaseController;
import com.cnooc.expert.controller.workflow.model.request.ApprovePathSettingPageReq;
import com.cnooc.expert.controller.workflow.model.response.ApprovePathSettingPageResp;
import com.cnooc.expert.controller.workflow.model.response.InstStartResp;
import com.cnooc.expert.external.workflow.model.request.InstRevokeApiReq;
import com.cnooc.expert.external.workflow.model.request.InstStartApiReq;
import com.cnooc.expert.service.WorkflowMockService;
import com.cnooc.expert.service.WorkflowService;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -21,6 +23,20 @@ public class WorkflowMockController extends AbstractBaseController {
private final WorkflowMockService workflowMockService;
// 流程实例启动
@PostMapping("/start")
public ApiResult<InstStartResp> instStart(@RequestBody @Validated InstStartApiReq req) {
InstStartResp apiResp = workflowMockService.startInst(req);
return ApiResult.successWithResult(apiResp);
}
// 流程实例回撤
@PostMapping("/revoke")
public ApiResult<Boolean> instRevoke(@RequestBody @Validated InstRevokeApiReq req) {
Boolean apiResp = workflowMockService.revokeInst(req);
return ApiResult.successWithResult(apiResp);
}
// 获取审批路径
@PostMapping("/approve-path-setting/page")
public ApiResult<BasePageResp<ApprovePathSettingPageResp>> pageApprovePathSetting(@RequestBody @Validated ApprovePathSettingPageReq req) {
......
package com.cnooc.expert.controller.workflow.model.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class InstStartResp {
// 实例id
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;
// 业务id
private String businessId;
// 标题
private String title;
// 业务类型code
private String businessTypeCode;
// 当前实例执行id
private String currentExecutionId;
// 状态
private Integer status;
// 状态名称
private String statusName;
// 发起直接到退回的任务
private Boolean start2BackTask;
// 上次退回的节点
private String lastBackTaskId;
// 结束时间
private String endAt;
// 创建时间
private String createAt;
// 删除时间
private String deleteAt;
// 发起人id
private String starterId;
// 发起人名称
private String starterName;
// 发起主体
private String subjectId;
// 租户id
private String tenantId;
}
package com.cnooc.expert.external.common.model.request;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class ProcDefPageApiReq {
// 模板名称
private String defName;
// 业务id
private String businessId;
// 事项类型 code
private String businessTypeCode;
// 标段id
private Long bidSectionId;
// 第几页
private Integer pageNum;
// 每页多少条数据
private Integer pageSize;
// 主体id
private String subjectId;
}
package com.cnooc.expert.external.common.model.response;
import lombok.Data;
import java.util.List;
@Data
public class ApiPagination<T> {
private Integer totalCount;
private Integer pageSize;
private Integer pageNum;
private Integer firstResult;
private Integer totalPage;
private Integer pageNo;
private Boolean firstPage;
private Boolean lastPage;
private Integer nextPage;
private Integer prePage;
private List<T> list;
}
......@@ -28,6 +28,7 @@ import com.cnooc.expert.external.expert.model.request.TrainExamPageApiReq;
import com.cnooc.expert.external.expert.model.request.ViolationExpertGetApiReq;
import com.cnooc.expert.external.expert.model.request.ViolationExpertPageApiReq;
import com.cnooc.expert.external.expert.model.request.XiangMuInfoByChouQuNumGetApiReq;
import com.cnooc.expert.external.expert.model.request.ZhuanJiaInfoGetByBusinessIdApiReq;
import com.cnooc.expert.external.expert.model.request.ZhuanJiaPingBiaoXiangMuRenWuPageApiReq;
import com.cnooc.expert.external.expert.model.response.CityTreeApiResp;
import com.cnooc.expert.external.expert.model.response.CommonFuJianListApiResp;
......@@ -56,6 +57,7 @@ import com.cnooc.expert.external.expert.model.response.TrainExamPageApiResp;
import com.cnooc.expert.external.expert.model.response.ViolationExpertGetApiResp;
import com.cnooc.expert.external.expert.model.response.ViolationExpertPageApiResp;
import com.cnooc.expert.external.expert.model.response.XiangMuInfoByChouQuNumGetApiResp;
import com.cnooc.expert.external.expert.model.response.ZhuanJiaInfoGetByBusinessIdApiResp;
import com.cnooc.expert.external.expert.model.response.ZhuanJiaPingBiaoXiangMuRenWuPageApiResp;
import retrofit2.Call;
import retrofit2.http.Body;
......@@ -70,6 +72,9 @@ public interface ExpertServiceApi {
@POST("/api/mini/expertManage/approve/getBusinessId")
Call<ApiBaseResult<String>> getBusinessIdApi(@HeaderMap Map<String, Object> headers);
@POST("/api/saas-expert/mini/zjfw/zggrxxgl/queryZhuanJiaInfoByBusinessId")
Call<ApiBaseResult<ZhuanJiaInfoGetByBusinessIdApiResp>> getZhuanJiaInfoByBusinessIdApi(@HeaderMap Map<String, Object> headers, @Body ZhuanJiaInfoGetByBusinessIdApiReq req);
@POST("/api/mini/zjfw/zggrxxgl/queryInfoForEdit")
Call<ApiBaseResult<ExpertInfoGetApiResp>> getExpertInfo(@HeaderMap Map<String, Object> headers, @Body ExpertInfoGetApiReq req);
......
package com.cnooc.expert.external.expert.model.request;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class ZhuanJiaInfoGetByBusinessIdApiReq {
private String businessId;
}
package com.cnooc.expert.external.expert.model.response;
import com.cnooc.expert.controller.expert.model.response.ExpertInfoGetResp;
import lombok.Builder;
import lombok.Data;
......@@ -16,39 +15,39 @@ public class ExpertInfoGetApiResp {
private String pinQiEndTime;
private ExpertInfoGetResp.Bean bean;
private Bean bean;
private ExpertInfoGetResp.SysShenHeJieGuo sysShenHeJieGuo;
private SysShenHeJieGuo sysShenHeJieGuo;
private ExpertInfoGetResp.SysShenHeJieGuo xuQiShenHeJieGuo;
private SysShenHeJieGuo xuQiShenHeJieGuo;
private ExpertInfoGetResp.ZhuangTaiXiuGaiJiLuSq xuQiXiuGaiJiLuSq;
private ZhuangTaiXiuGaiJiLuSq xuQiXiuGaiJiLuSq;
private ExpertInfoGetResp.SysShenHeJieGuo tuiKuShenHeJieGuo;
private SysShenHeJieGuo tuiKuShenHeJieGuo;
private ExpertInfoGetResp.ZhuangTaiXiuGaiJiLuSq tuiKuGaiJiLuSq;
private ZhuangTaiXiuGaiJiLuSq tuiKuGaiJiLuSq;
private ExpertInfoGetResp.SysShenHeJieGuo yiLeiShenHeJieGuo;
private SysShenHeJieGuo yiLeiShenHeJieGuo;
private ExpertInfoGetResp.SysShenHeJieGuo rukuShenHeJieGuo;
private SysShenHeJieGuo rukuShenHeJieGuo;
private List<ExpertInfoGetResp.Jl> jlList;
private List<Jl> jlList;
private List<ExpertInfoGetResp.Zg> zgList;
private List<Zg> zgList;
private List<ExpertInfoGetResp.Zc> zcList;
private List<Zc> zcList;
private List<ExpertInfoGetResp.Pb> pbList;
private List<Pb> pbList;
private List<ExpertInfoGetResp.Hb> hbList;
private List<Hb> hbList;
private List<ExpertInfoGetResp.Ps> psList;
private List<Ps> psList;
private List<ExpertInfoGetResp.Language> languageList;
private List<Language> languageList;
private List<ExpertInfoGetResp.XueLi> xueLiList;
private List<XueLi> xueLiList;
private List<ExpertInfoGetResp.FuJian> fuJianList;
private List<FuJian> fuJianList;
@Data
......@@ -517,13 +516,16 @@ public class ExpertInfoGetApiResp {
private String fuJianGuid;
private Boolean isRenew;
private Short zhuanJiaQinRenQi;
/** 解聘原因,10:专家主动退库,20:到期清退,30:到龄清退,40:管理员清退 */
/**
* 解聘原因,10:专家主动退库,20:到期清退,30:到龄清退,40:管理员清退
*/
private Short jiePinYuanYinType;
/** 续期原因类型,0:其他;1:聘任到期; */
/**
* 续期原因类型,0:其他;1:聘任到期;
*/
private Short renewYuanyinType;
private String renewJutiYuanyin;
}
}
......@@ -30,6 +30,7 @@ import com.cnooc.expert.external.expert.model.request.TrainExamPageApiReq;
import com.cnooc.expert.external.expert.model.request.ViolationExpertGetApiReq;
import com.cnooc.expert.external.expert.model.request.ViolationExpertPageApiReq;
import com.cnooc.expert.external.expert.model.request.XiangMuInfoByChouQuNumGetApiReq;
import com.cnooc.expert.external.expert.model.request.ZhuanJiaInfoGetByBusinessIdApiReq;
import com.cnooc.expert.external.expert.model.request.ZhuanJiaPingBiaoXiangMuRenWuPageApiReq;
import com.cnooc.expert.external.expert.model.response.CityTreeApiResp;
import com.cnooc.expert.external.expert.model.response.CommonFuJianListApiResp;
......@@ -58,6 +59,7 @@ import com.cnooc.expert.external.expert.model.response.TrainExamPageApiResp;
import com.cnooc.expert.external.expert.model.response.ViolationExpertGetApiResp;
import com.cnooc.expert.external.expert.model.response.ViolationExpertPageApiResp;
import com.cnooc.expert.external.expert.model.response.XiangMuInfoByChouQuNumGetApiResp;
import com.cnooc.expert.external.expert.model.response.ZhuanJiaInfoGetByBusinessIdApiResp;
import com.cnooc.expert.external.expert.model.response.ZhuanJiaPingBiaoXiangMuRenWuPageApiResp;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
......@@ -92,6 +94,16 @@ public class ExpertServiceClient extends AbstractRetrofitManager {
return this.getResponseBody(call, "getExpertInfo");
}
// 根据 businessId获取专家信息
public ApiBaseResult<ZhuanJiaInfoGetByBusinessIdApiResp> getZhuanJiaInfoByBusinessId(String businessId) {
Map<String, Object> headers = super.getHeaders();
ZhuanJiaInfoGetByBusinessIdApiReq req = ZhuanJiaInfoGetByBusinessIdApiReq.builder()
.businessId(businessId)
.build();
Call<ApiBaseResult<ZhuanJiaInfoGetByBusinessIdApiResp>> call = expertServiceApi.getZhuanJiaInfoByBusinessIdApi(headers, req);
return this.getResponseBody(call, "getZhuanJiaInfoByBusinessId");
}
public ApiBaseResult<ExpertInfoGetApiResp> updateExpertInfo(ExpertInfoUpdateApiReq req) {
Map<String, Object> headers = super.getHeaders();
Call<ApiBaseResult<ExpertInfoGetApiResp>> call = expertServiceApi.updateExpertInfoApi(headers, req);
......
package com.cnooc.expert.external.workflow.api;
import com.cnooc.expert.external.common.model.request.ProcDefPageApiReq;
import com.cnooc.expert.external.common.model.response.ApiBaseResult;
import com.cnooc.expert.external.common.model.response.ApiPagination;
import com.cnooc.expert.external.workflow.model.request.InstRevokeApiReq;
import com.cnooc.expert.external.workflow.model.request.InstStartApiReq;
import com.cnooc.expert.external.workflow.model.response.InstStartApiResp;
import com.cnooc.expert.external.workflow.model.response.ProcDefPageApiResp;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.HeaderMap;
import retrofit2.http.POST;
import java.util.Map;
public interface WorkflowServiceApi {
@POST("/api/workflow2/expertManage/jingdongengine/findDefInfoListByCondition")
Call<ApiBaseResult<ApiPagination<ProcDefPageApiResp>>> pageProcDefApi(@HeaderMap Map<String, Object> headers, @Body ProcDefPageApiReq req);
@POST("/api/workflow2/expertManage/inst/start")
Call<ApiBaseResult<InstStartApiResp>> startInstApi(@HeaderMap Map<String, Object> headers, @Body InstStartApiReq req);
@POST("/api/workflow2/expertManage/inst/revoke")
Call<ApiBaseResult<Void>> revokeInstApi(@HeaderMap Map<String, Object> headers, @Body InstRevokeApiReq req);
}
package com.cnooc.expert.external.workflow.model.request;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class InstRevokeApiReq {
// 业务id
private String businessId;
// 事项类型code
private String busType;
}
package com.cnooc.expert.external.workflow.model.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.lang.Nullable;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.List;
import java.util.Map;
@Data
public class InstStartApiReq {
// 企业id,按照当前的阶段传入对应的企业id,不传默认取当前登陆人企业id,平台审批的时候传入 0;
private String subjectId;
// 标题
private String title;
// 业务id
private String businessId;
// 事项类型 code
private String busTypeCode;
// 流程定义id
private String procDefId;
// 自定义任务信息(用户自定义审批人配置)
@Valid
@Nullable
public List<TaskParticipantConfigReq> taskParticipantConfigs;
// 流程实例抄送人
private List<ApprovePersonReq> instCcParticipants;
// 签名相关参数,传入会校验,不传不会校验
private Map<String, Object> signatureMap;
// 文件pathId
private Long pathId;
// 发起备注
private String opinion;
// 发起人自定义向上审批
private Boolean customizeUpApproval;
// 发起人设置限上岗人员
private List<ApprovePersonReq> receiveParticipants;
// 配置来源
private Short engineType;
/***************************************************对接审批流新统一方案*****************************************************/
// 审批路径模板id
private String templateId;
// 审批路径模板名称
private String templateName;
// 审批路径模板名称
private String steps;
// 审批模板中每个审批节点中审批人的对应关系的json字符串
private String controlApproveUser;
// 限上岗审批信息
private TemplateProConfigReq templateProConfig;
// 需要下级审批
private Boolean needNextApprove;
// 接收人id
private String receiveId;
// 发起申请备注信息
private String remark;
// 发起申请附件信息
private String attachment;
// 主体名称
private String subjectName;
@Data
public static class TaskParticipantConfigReq {
// 任务定义的key值
@NotBlank(message = "自定义任务键值不能为空")
private String key;
// 任务定义的名称
private String name;
// 是否拆分审批人组
private Boolean allowSplitParty;
// 任务(节点)抄送人
@Valid
private List<ApprovePersonReq> ccParticipants;
// 审批人配置信息
@Valid
private List<ParticipantGroupDTO> participantGroups;
}
@Data
public static class ApprovePersonReq {
// id
@NotNull(message = "审批人id 不能为空")
private Long id;
// 审批人名称
@NotNull(message = "审批人名称 不能为空")
private String name;
}
@Data
public static class ParticipantGroupDTO {
// 参与者类型:person-人员、orgHead-部门负责人、role-角色、trendsOrgHead-动态部门负责人、personVariable-人员变量
@NotBlank(message = "参与者类型不能为空")
@Pattern(
regexp = "person|orgHead|role|trendsOrgHead|personVariable",
message = "参与者类型现仅支持person-人员、orgHead-部门负责人、role-角色、trendsOrgHead-动态部门负责人、personVariable-人员变量"
)
private String type;
/**
* 是否需要 协助(秘书协助等)
*/
// 是否需要 协助(秘书协助等)
private Boolean needAssist;
// 分组名称
private String groupName;
// 审批人
private List<ParticipantApproveDTO> participants;
}
@Data
public static class ParticipantApproveDTO {
/**
* 审批人分 用户 , 角色 , 部门等。。id 和 name 存对应的id和名称
*/
// id
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;
// 名称
private String name;
}
@Data
public static class TemplateProConfigReq {
// 限上岗配置
private String procurementConfigId;
private String reason;
// 限上岗人员信息
private String personnel;
private String upDomain;
private String upward;
// 签署意见
private String signOpinion;
}
}
package com.cnooc.expert.external.workflow.model.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
@Data
public class InstStartApiResp {
// 实例id
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;
// 业务id
private String businessId;
// 标题
private String title;
// 业务类型code
private String businessTypeCode;
// 当前实例执行id
private String currentExecutionId;
// 状态
private Integer status;
// 状态名称
private String statusName;
// 发起直接到退回的任务
private Boolean start2BackTask;
// 上次退回的节点
private String lastBackTaskId;
// 结束时间
private String endAt;
// 创建时间
private String createAt;
// 删除时间
private String deleteAt;
// 发起人id
private String starterId;
// 发起人名称
private String starterName;
// 发起主体
private String subjectId;
// 租户id
private String tenantId;
}
package com.cnooc.expert.external.workflow.model.response;
import lombok.Data;
import java.util.List;
@Data
public class ProcDefPageApiResp {
// id
private String id;
// 业务类型编码
private String businessTypeCode;
// 模板id
private String defId;
// 模板名称
private String defName;
// ifream嵌入url
private String ifreamUrl;
// 模板步骤
private String defPath;
// 步骤信息
private List<ProcDefPath> templatePaths;
// 是否需要审批
private Boolean needApprove;
// 配置来源
private Short engineType;
@Data
public static class ProcDefPath {
// 节点id
private String nodeId;
// 审批步骤
private String nodeName;
// 审批人名称,该节点存在多个审批人时,以|拼接
private String approvePersonName;
// 账号,一个节点存在多个用户审批,一个用户对应一个account。多个以|来进行拼接
private List<AccountSubjectNameEmailVO> accountList;
// 所属单位,该节点存在多个审批人时,以|拼接
private String subjectName;
// 邮箱,该节点存在多个审批人时,以|拼接
private String email;
}
@Data
public static class AccountSubjectNameEmailVO {
// 账号
private String account;
// 候选人名称
private String name;
// 候选人所属主体名称
private String subjectName;
// 邮箱
private String email;
}
}
package com.cnooc.expert.external.workflow.service;
import com.cnooc.expert.external.common.AbstractRetrofitManager;
import com.cnooc.expert.external.common.model.request.ProcDefPageApiReq;
import com.cnooc.expert.external.common.model.response.ApiBaseResult;
import com.cnooc.expert.external.common.model.response.ApiPagination;
import com.cnooc.expert.external.workflow.api.WorkflowServiceApi;
import com.cnooc.expert.external.workflow.model.request.InstRevokeApiReq;
import com.cnooc.expert.external.workflow.model.request.InstStartApiReq;
import com.cnooc.expert.external.workflow.model.response.InstStartApiResp;
import com.cnooc.expert.external.workflow.model.response.ProcDefPageApiResp;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import retrofit2.Call;
import retrofit2.Retrofit;
import java.util.Map;
@Service
public class WorkflowServiceClient extends AbstractRetrofitManager {
......@@ -14,4 +24,27 @@ public class WorkflowServiceClient extends AbstractRetrofitManager {
public WorkflowServiceClient(@Qualifier("retrofitWorkflow") Retrofit retrofit) {
this.workflowServiceApi = retrofit.create(WorkflowServiceApi.class);
}
// 审批发起
public ApiBaseResult<InstStartApiResp> startInst(InstStartApiReq apiReq) {
Map<String, Object> headers = super.getHeaders();
Call<ApiBaseResult<InstStartApiResp>> call = workflowServiceApi.startInstApi(headers, apiReq);
return this.getResponseBody(call, "startInst");
}
// 审批撤回
public ApiBaseResult<Void> revokeInst(InstRevokeApiReq apiReq) {
Map<String, Object> headers = super.getHeaders();
Call<ApiBaseResult<Void>> call = workflowServiceApi.revokeInstApi(headers, apiReq);
return this.getResponseBody(call, "revokeInst");
}
// 审批路径分页
public ApiBaseResult<ApiPagination<ProcDefPageApiResp>> pageProcDef(ProcDefPageApiReq apiReq) {
Map<String, Object> headers = super.getHeaders();
Call<ApiBaseResult<ApiPagination<ProcDefPageApiResp>>> call = workflowServiceApi.pageProcDefApi(headers, apiReq);
return this.getResponseBody(call, "pageProcDef");
}
}
......@@ -80,6 +80,7 @@ import com.cnooc.expert.external.expert.model.response.TrainExamPageApiResp;
import com.cnooc.expert.external.expert.model.response.ViolationExpertGetApiResp;
import com.cnooc.expert.external.expert.model.response.ViolationExpertPageApiResp;
import com.cnooc.expert.external.expert.model.response.XiangMuInfoByChouQuNumGetApiResp;
import com.cnooc.expert.external.expert.model.response.ZhuanJiaInfoGetByBusinessIdApiResp;
import com.cnooc.expert.external.expert.model.response.ZhuanJiaPingBiaoXiangMuRenWuPageApiResp;
import com.cnooc.expert.external.expert.service.ExpertServiceClient;
import com.google.common.collect.Lists;
......@@ -193,6 +194,11 @@ public class ExpertService {
return apiResp.getData();
}
public ZhuanJiaInfoGetByBusinessIdApiResp getZhuanJiaInfoByBusinessId(String businessId) {
ApiBaseResult<ZhuanJiaInfoGetByBusinessIdApiResp> apiResp = expertServiceClient.getZhuanJiaInfoByBusinessId(businessId);
return apiResp.getData();
}
public ExpertInfoGetApiResp updateExpetInfo(ExpertInfoUpdateApiReq req) {
ApiBaseResult<ExpertInfoGetApiResp> apiResp = expertServiceClient.updateExpertInfo(req);
return apiResp.getData();
......
......@@ -3,7 +3,10 @@ package com.cnooc.expert.service;
import com.cnooc.expert.common.response.BasePageResp;
import com.cnooc.expert.controller.workflow.model.request.ApprovePathSettingPageReq;
import com.cnooc.expert.controller.workflow.model.response.ApprovePathSettingPageResp;
import com.cnooc.expert.external.workflow.service.WorkflowServiceClient;
import com.cnooc.expert.controller.workflow.model.response.InstStartResp;
import com.cnooc.expert.external.workflow.model.request.InstRevokeApiReq;
import com.cnooc.expert.external.workflow.model.request.InstStartApiReq;
import com.cnooc.expert.external.workflow.model.response.InstStartApiResp;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
......@@ -14,7 +17,15 @@ import java.util.List;
@Service
public class WorkflowMockService {
private final WorkflowServiceClient workflowServiceClient;
public InstStartResp startInst(InstStartApiReq req) {
return InstStartResp.builder()
.id(1763815035205L)
.build();
}
public Boolean revokeInst(InstRevokeApiReq req) {
return Boolean.TRUE;
}
public BasePageResp<ApprovePathSettingPageResp> pageApprovePathSetting(ApprovePathSettingPageReq req) {
......@@ -69,4 +80,5 @@ public class WorkflowMockService {
.data(data)
.build();
}
}
......@@ -3,6 +3,13 @@ package com.cnooc.expert.service;
import com.cnooc.expert.common.response.BasePageResp;
import com.cnooc.expert.controller.workflow.model.request.ApprovePathSettingPageReq;
import com.cnooc.expert.controller.workflow.model.response.ApprovePathSettingPageResp;
import com.cnooc.expert.external.common.model.request.ProcDefPageApiReq;
import com.cnooc.expert.external.common.model.response.ApiBaseResult;
import com.cnooc.expert.external.common.model.response.ApiPagination;
import com.cnooc.expert.external.workflow.model.request.InstRevokeApiReq;
import com.cnooc.expert.external.workflow.model.request.InstStartApiReq;
import com.cnooc.expert.external.workflow.model.response.InstStartApiResp;
import com.cnooc.expert.external.workflow.model.response.ProcDefPageApiResp;
import com.cnooc.expert.external.workflow.service.WorkflowServiceClient;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
......@@ -16,57 +23,34 @@ public class WorkflowService {
private final WorkflowServiceClient workflowServiceClient;
public BasePageResp<ApprovePathSettingPageResp> pageApprovePathSetting(ApprovePathSettingPageReq req) {
public InstStartApiResp startInst(InstStartApiReq req) {
ApiBaseResult<InstStartApiResp> apiResp = workflowServiceClient.startInst(req);
return apiResp.getData();
}
public Boolean revokeInst(InstRevokeApiReq req) {
workflowServiceClient.revokeInst(req);
return Boolean.TRUE;
}
List<ApprovePathSettingPageResp.ApprovePathAccount> accountList = Lists.newArrayList(
ApprovePathSettingPageResp.ApprovePathAccount.builder()
.account("ex_liujh27")
.name("刘俊")
.subjectName("中国海洋石油集团有限公司")
.email("ex_liujh27@cnooc.com.cn")
.build()
);
List<ApprovePathSettingPageResp.ApprovePath> templatePaths = Lists.newArrayList(
ApprovePathSettingPageResp.ApprovePath.builder()
.nodeId("node246ec7f3c7571dd631a93f34fa8aeb4b")
.nodeName("一级")
.approvePersonName("刘俊")
.subjectName("中国海洋石油集团有限公司")
.email("ex_liujh27@cnooc.com.cn")
.accountList(accountList)
.build()
);
public BasePageResp<ProcDefPageApiResp> pageApprovePathSetting(ApprovePathSettingPageReq req) {
ProcDefPageApiReq apiReq = ProcDefPageApiReq.builder()
.pageNum(req.getPageNo())
.pageSize(req.getPageSize())
.businessId(req.getBusinessId())
.businessTypeCode(req.getBusinessTypeCode())
.subjectId(req.getSubjectId())
.build();
ApiBaseResult<ApiPagination<ProcDefPageApiResp>> apiResp = workflowServiceClient.pageProcDef(apiReq);
List<ApprovePathSettingPageResp> data = Lists.newArrayList(
ApprovePathSettingPageResp.builder()
.defId("e2dbccf455ec448b8a8284dc2c6c3b04")
.defName("中移深化-专家审批")
.defPath("1")
.opinion(null)
.pathId(null)
.useIfream(true)
.engineType(1)
.ifreamUrl("https://flow.t-bid.cnooc.com.cn/deta/scene-talk/approvalFlowChart.html?templateId=e2dbccf455ec448b8a8284dc2c6c3b04&approveId=")
.fileId(null)
.suggestMsg("1111")
.receiveSettingCode(null)
.receiveSettingName(null)
.upSubjectName(null)
.upSubjectId(null)
.needUpApproval(null)
.signingComments(null)
.noNeedUpApprovalCode(null)
.noNeedUpApprovalInfo(null)
.templatePaths(templatePaths)
.build()
);
ApiPagination<ProcDefPageApiResp> pageResp = apiResp.getData();
return BasePageResp.<ApprovePathSettingPageResp>builder()
.current(1)
.pages(1)
.total(1)
.data(data)
return BasePageResp.<ProcDefPageApiResp>builder()
.current(pageResp.getPageNo())
.pages(pageResp.getPageNum())
.total(pageResp.getTotalCount())
.data(pageResp.getList())
.build();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment