Commit 7cc58fdd authored by zhangyingbin's avatar zhangyingbin

开发动态表单工具类

parent 2b72e92e
package com.yeejoin.amos.boot.module.ugp.api.Enum; package com.yeejoin.amos.boot.module.ugp.api.Enum;
public enum ProjectInitiationEnum { import java.util.HashMap;
import java.util.Map;
启动流程("启动流程", "/workflow/task/startTask", ""), public enum ProjectInitiationEnum {
流程详情("流程详情", "/workflow/task/{taskId}", "taskId"), 项目立项("1","项目立项"),
合并启动流程("合并启动流程", "/workflow/task/startProcess", ""), 平台审核("2","平台审核"),
所有已执行任务详情("所有已执行任务详情","/workflow/activitiHistory/task/detail/{taskId}","taskId"), 告知申请("3","告知申请"),
流程任务("流程任务", "/workflow/task?processInstanceId={processInstanceId}", "processInstanceId"), 接受告知("4","接受告知"),
我的代办("我的代办", "/workflow/task/all-list?processDefinitionKey={processDefinitionKey}", "processDefinitionKey"), 审查项目("5","审查项目"),
我的代办有ID("我的代办有ID", "/workflow/task/all-list?processDefinitionKey={processDefinitionKey}&userId={userId}", "processDefinitionKey,userId"), 提交资料("6","提交资料"),
已执行任务("已执行任务", "/workflow/activitiHistory/all-historytasks?processDefinitionKey={processDefinitionKey}", "processDefinitionKey"), 审批人审批("7","审批人审批"),
已执行任务有ID("已执行任务有ID", "/workflow/activitiHistory/all-historytasks?processDefinitionKey={processDefinitionKey}&userId={userId}", "processDefinitionKey,userId"), 审核人审核("8","审核人审核"),
启动免登录流程("启动免登录流程", "/processes/{appKey}", "appKey"), 监检科室分配("9","监检科室分配"),
当前节点("当前节点", "/wf/taskstodo?processInstanceId={processInstanceId}", "processInstanceId"), 监检员分配("10","监检员分配"),
执行流程("执行流程", "/workflow/task/pickupAndCompleteTask/{taskId}", "taskId"), 监检员审核("11","监检员审核"),
终止流程("终止流程", "/wf/processes/{processInstanceId}?deleteReason={deleteReason}", "processInstanceId,deleteReason"), 项目关闭("12","项目关闭"),
当前子节点("当前子节点", "/wf/processes/{processInstanceId}/tasks?taskDefinitionKey={taskDefinitionKey}", "processInstanceId,taskDefinitionKey"), 接受审查意见("13","接受审查意见");
工作流流水("工作流流水","/wf/processes/{processInstanceId}/tasks", "processInstanceId"),
子节点信息("子节点信息","/workflow/task/list/all/{instanceId}", "instanceId"); private String status;
private String name;
private String desc;
public static Map<String,String> getNameByStatusMap = new HashMap<String,String>();
private String uri; public static Map<String,String> getStatusByNameMap = new HashMap<String,String>();
static {
private String params; for(ProjectInitiationEnum projectInitiationEnum:ProjectInitiationEnum.values()){
getNameByStatusMap.put(projectInitiationEnum.status,projectInitiationEnum.name);
ProjectInitiationEnum(String desc, String uri, String params) { getStatusByNameMap.put(projectInitiationEnum.name, projectInitiationEnum.status);
this.desc = desc; }
this.uri = uri;
this.params = params;
} }
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
ProjectInitiationEnum(String status, String name) {
this.status = status;
this.name = name;
} }
public String getUri() { public String getStatus() {
return uri; return status;
} }
public void setUri(String uri) { public void setStatus(String status) {
this.uri = uri; this.status = status;
} }
public String getParams() { public String getName() {
return params; return name;
} }
public void setParams(String params) { public void setName(String name) {
this.params = params; this.name = name;
} }
} }
package com.yeejoin.amos.boot.module.ugp.api.service; package com.yeejoin.amos.boot.module.ugp.api.service;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.ugp.api.entity.Project;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
public interface IProjectInitiationService { public interface IProjectInitiationService {
...@@ -9,7 +10,7 @@ public interface IProjectInitiationService { ...@@ -9,7 +10,7 @@ public interface IProjectInitiationService {
* @return 返回instanceId ,加入项目信息表中 * @return 返回instanceId ,加入项目信息表中
* @throws Exception * @throws Exception
*/ */
String start(Object objectd); void start(Project project);
/** /**
* 执行流程节点,并记录日志 * 执行流程节点,并记录日志
......
package com.yeejoin.amos.boot.module.ugp.biz.controller; package com.yeejoin.amos.boot.module.ugp.biz.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.biz.common.constants.CommonConstant; import com.yeejoin.amos.boot.biz.common.constants.CommonConstant;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrDto; import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrDto;
...@@ -8,6 +10,7 @@ import com.yeejoin.amos.boot.module.common.api.service.IOrgUsrService; ...@@ -8,6 +10,7 @@ import com.yeejoin.amos.boot.module.common.api.service.IOrgUsrService;
import com.yeejoin.amos.boot.module.common.biz.service.impl.OrgUsrServiceImpl; import com.yeejoin.amos.boot.module.common.biz.service.impl.OrgUsrServiceImpl;
import com.yeejoin.amos.boot.module.ugp.api.entity.Company; import com.yeejoin.amos.boot.module.ugp.api.entity.Company;
import com.yeejoin.amos.boot.module.ugp.api.mapper.CompanyMapper; import com.yeejoin.amos.boot.module.ugp.api.mapper.CompanyMapper;
import com.yeejoin.amos.boot.module.ugp.biz.service.impl.OrgServiceImpl;
import com.yeejoin.amos.component.feign.model.FeignClientResult; import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege; import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel; import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
...@@ -51,6 +54,8 @@ public class CompanyController extends BaseController { ...@@ -51,6 +54,8 @@ public class CompanyController extends BaseController {
CompanyMapper companyMapper; CompanyMapper companyMapper;
@Autowired @Autowired
OrgUsrServiceImpl iOrgUsrService; OrgUsrServiceImpl iOrgUsrService;
@Autowired
OrgServiceImpl orgServiceImpl;
/** /**
* 新增企业信息表 * 新增企业信息表
...@@ -178,34 +183,47 @@ public class CompanyController extends BaseController { ...@@ -178,34 +183,47 @@ public class CompanyController extends BaseController {
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@PostMapping(value = "check/{sequenceNbr}") @PostMapping(value = "check")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新,并创建单位及管理员", notes = "根据sequenceNbr更新,并创建单位及管理员") @ApiOperation(httpMethod = "POST", value = "根据sequenceNbr更新,并创建单位及管理员", notes = "根据sequenceNbr更新,并创建单位及管理员")
public ResponseModel<CompanyDto> companyCheck(@RequestBody CompanyDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) throws Exception{ public ResponseModel<Boolean> companyCheck(@RequestBody CompanyDto model,Long sequenceNbr,String bizOrgType) throws Exception{
model.setSequenceNbr(sequenceNbr);
if (model.getApproved().equals("已审核")){ Company company = companyServiceImpl.getById(sequenceNbr);
company.setApproved(model.getApproved());
if (company.getApproved().equals("已审核")){
final CompanyModel companyModel = new CompanyModel(); final CompanyModel companyModel = new CompanyModel();
final AgencyUserModel agencyUserModel = new AgencyUserModel(); final AgencyUserModel agencyUserModel = new AgencyUserModel();
companyModel.setCompanyName(model.getName()); //创建平台企业
companyModel.setCompanyCode(model.getCreditCode()); companyModel.setCompanyName(company.getName());
companyModel.setAddress(model.getAddress()); companyModel.setCompanyCode(company.getCreditCode());
companyModel.setParentId(model.getSequenceNbr()); companyModel.setAddress(company.getAddress());
companyModel.setParentId(0L);
companyModel.setLevel("headquarter"); companyModel.setLevel("headquarter");
companyModel.setAgencyCode("ugp"); companyModel.setAgencyCode("ugp");
final FeignClientResult<CompanyModel> companyModelFeignClientResult = Privilege.companyClient.create(companyModel); final CompanyModel companyModelFeignClient = Privilege.companyClient.create(companyModel).getResult();
agencyUserModel.setRealName(model.getContact()); //创建平台用户
agencyUserModel.setMobile(model.getContactPhone()); agencyUserModel.setRealName(company.getContact());
Privilege.agencyUserClient.create(agencyUserModel); agencyUserModel.setMobile(company.getContactPhone());
agencyUserModel.setAgencyCode("ugp");
final OrgUsrDto orgUsrDto = new OrgUsrDto(); agencyUserModel.setLockStatus("UNLOCK");
orgUsrDto.setBizOrgName(model.getName()); // Privilege.agencyUserClient.create(agencyUserModel);
orgUsrDto.setAmosOrgId(companyModelFeignClientResult.getResult().getSequenceNbr().toString());
orgUsrDto.setAmosOrgCode(companyModelFeignClientResult.getResult().getOrgCode()); //动态表单存储
orgUsrDto.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_COMPANY); JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(company));
iOrgUsrService.saveOrgUsr(orgUsrDto); jsonObject.put("amosOrgId",companyModelFeignClient.getSequenceNbr());
jsonObject.put("amosOrgCode",companyModelFeignClient.getOrgCode());
orgServiceImpl.dataHandling(jsonObject,bizOrgType);
// final OrgUsrDto orgUsrDto = new OrgUsrDto();
// orgUsrDto.setBizOrgName(company.getName());
// orgUsrDto.setAmosOrgId(companyModelFeignClient.getSequenceNbr().toString());
// orgUsrDto.setAmosOrgCode(companyModelFeignClient.getOrgCode());
// orgUsrDto.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_COMPANY);
// iOrgUsrService.saveOrgUsr(orgUsrDto);
} }
return ResponseHelper.buildResponse(companyServiceImpl.updateWithModel(model)); return ResponseHelper.buildResponse(companyServiceImpl.updateById(company));
} }
} }
package com.yeejoin.amos.boot.module.ugp.biz.controller; package com.yeejoin.amos.boot.module.ugp.biz.controller;
import com.yeejoin.amos.boot.module.ugp.api.entity.Project;
import com.yeejoin.amos.boot.module.ugp.biz.service.impl.ProjectInitiationServiceImpl; import com.yeejoin.amos.boot.module.ugp.biz.service.impl.ProjectInitiationServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -48,6 +50,9 @@ public class ProjectController extends BaseController { ...@@ -48,6 +50,9 @@ public class ProjectController extends BaseController {
model.setStartDate(new Date()); model.setStartDate(new Date());
model.setSubmitDate(new Date()); model.setSubmitDate(new Date());
model = projectServiceImpl.createWithModel(model); model = projectServiceImpl.createWithModel(model);
Project project = new Project();
BeanUtils.copyProperties(model, project);
projectInitiationService.start(project);
return ResponseHelper.buildResponse(model); return ResponseHelper.buildResponse(model);
} }
......
package com.yeejoin.amos.boot.module.ugp.biz.controller; package com.yeejoin.amos.boot.module.ugp.biz.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.ugp.api.entity.Project;
import com.yeejoin.amos.boot.module.ugp.biz.service.impl.ProjectInitiationServiceImpl; import com.yeejoin.amos.boot.module.ugp.biz.service.impl.ProjectInitiationServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -24,7 +25,8 @@ public class ProjectInitiationController { ...@@ -24,7 +25,8 @@ public class ProjectInitiationController {
@GetMapping(value = "/start") @GetMapping(value = "/start")
@ApiOperation(httpMethod = "GET", value = "流程启动", notes = "流程启动") @ApiOperation(httpMethod = "GET", value = "流程启动", notes = "流程启动")
public ResponseModel<String> start() throws Exception { public ResponseModel<String> start() throws Exception {
return ResponseHelper.buildResponse(projectInitiationServiceImpl.start(new Object())); projectInitiationServiceImpl.start(new Project());
return ResponseHelper.buildResponse("ok");
} }
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
......
package com.yeejoin.amos.boot.module.ugp.biz.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.constants.CommonConstant;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrDto;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr;
import com.yeejoin.amos.boot.module.common.api.enums.OrgPersonEnum;
import com.yeejoin.amos.boot.module.common.biz.service.impl.DynamicFormColumnServiceImpl;
import com.yeejoin.amos.boot.module.common.biz.service.impl.DynamicFormInstanceServiceImpl;
import com.yeejoin.amos.boot.module.common.biz.service.impl.OrgUsrServiceImpl;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.cache.Redis;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import java.util.*;
import static org.typroject.tyboot.component.cache.Redis.redisTemplate;
@Service
public class OrgServiceImpl {
@Autowired
OrgUsrServiceImpl orgUsrServiceImpl;
@Autowired
DynamicFormColumnServiceImpl dynamicFormColumnServiceImpl;
@Autowired
DynamicFormInstanceServiceImpl alertFormValueServiceImpl;
@Autowired
private RedisUtils redisUtils;
/**
* 保存orgUsr信息和FormInstance实体信息
* @param jsonObject
* @param bizOrgType
* @return
*/
public OrgUsrDto dataHandling(JSONObject jsonObject, String bizOrgType){
OrgUsr orgUsr = saveOrgUsr(jsonObject,bizOrgType);
//条件构造器 找出column表种 类型为(COMPANY 或 DEPARTMENT 或 PERSON)的列
LambdaQueryWrapper<DynamicFormColumn> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DynamicFormColumn::getGroupCode,bizOrgType);
List<DynamicFormColumn> dynamicFormColumnList= dynamicFormColumnServiceImpl.list(wrapper);
List<DynamicFormInstance> dynamicFormInstanceList = new ArrayList<>();
for (DynamicFormColumn dynamicFormColumn : dynamicFormColumnList) {
//将column表的基本字段信息给instance表
DynamicFormInstance dynamicFormInstance = new DynamicFormInstance();
BeanUtils.copyProperties(dynamicFormColumn, dynamicFormInstance);
//通过字段名去拿到表单传来的值
dynamicFormInstance.setFieldValue(jsonObject.getString(dynamicFormInstance.getFieldCode()));
dynamicFormInstance.setInstanceId(orgUsr.getSequenceNbr());
dynamicFormInstanceList.add(dynamicFormInstance);
}
alertFormValueServiceImpl.saveBatch(dynamicFormInstanceList);
OrgUsrDto orgUsrDto = new OrgUsrDto();
BeanUtils.copyProperties(orgUsr,orgUsrDto);
orgUsrDto.setDynamicFormValue(dynamicFormInstanceList);
return orgUsrDto;
}
/**
* 保存orgUsr表信息
* @param jsonObject
* @param bizOrgType
* @return
*/
public OrgUsr saveOrgUsr(JSONObject jsonObject,String bizOrgType){
ReginParams reginParams = getReginParams();
OrgUsr orgUsr = new OrgUsr();
orgUsr.setRecDate(new Date());
AgencyUserModel user = Privilege.agencyUserClient.getme().getResult();
orgUsr.setRecUserName(user.getRealName());
orgUsr.setRecUserId(user.getUserId());
orgUsr.setBizOrgName(jsonObject.getString("name"));
orgUsr.setBizOrgType(bizOrgType);
if (OrgPersonEnum.公司.getKey().equals(bizOrgType)){
orgUsr.setBizOrgCode(jsonObject.getString("creditCode"));
orgUsr.setAmosOrgId(jsonObject.getString("amosOrgId"));
orgUsr.setAmosOrgCode(jsonObject.getString("amosOrgCode"));
}
if (OrgPersonEnum.人员.getKey().equals(bizOrgType)){
LambdaQueryWrapper<OrgUsr> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(OrgUsr :: getAmosOrgId,String.valueOf(reginParams.getCompany().getSequenceNbr()));
orgUsr.setParentId(String.valueOf(orgUsrServiceImpl.getOne(wrapper).getSequenceNbr()));
}
if (OrgPersonEnum.部门.getKey().equals(bizOrgType)) {
}
//设置bizOrgCode
if (orgUsr.getParentId() != null) {
OrgUsr parent = orgUsrServiceImpl.getById(orgUsr.getParentId());
if (parent != null && ObjectUtils.isEmpty(orgUsr.getBizOrgCode())) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + OrgUsrServiceImpl.getOrgCodeStr());
}
} else {
orgUsr.setBizOrgCode(OrgUsrServiceImpl.getOrgCodeStr());
}
orgUsrServiceImpl.save(orgUsr);
return orgUsr;
}
/**
* 用户单位信息redis获取
**/
public ReginParams getReginParams() {
return JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
}
}
package com.yeejoin.amos.boot.module.ugp.biz.service.impl; package com.yeejoin.amos.boot.module.ugp.biz.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.yeejoin.amos.boot.biz.common.service.impl.WorkflowExcuteServiceImpl; import com.yeejoin.amos.boot.biz.common.service.impl.WorkflowExcuteServiceImpl;
import com.yeejoin.amos.boot.biz.common.workflow.feign.WorkflowFeignService; import com.yeejoin.amos.boot.biz.common.workflow.feign.WorkflowFeignService;
...@@ -14,6 +17,7 @@ import com.yeejoin.amos.boot.module.ugp.api.Util.HttpUtil; ...@@ -14,6 +17,7 @@ import com.yeejoin.amos.boot.module.ugp.api.Util.HttpUtil;
import com.yeejoin.amos.boot.module.ugp.api.constants.XJConstant; import com.yeejoin.amos.boot.module.ugp.api.constants.XJConstant;
import com.yeejoin.amos.boot.module.ugp.api.dto.ProjectInitiationDto; import com.yeejoin.amos.boot.module.ugp.api.dto.ProjectInitiationDto;
import com.yeejoin.amos.boot.module.ugp.api.entity.InstallNoticeMsg; import com.yeejoin.amos.boot.module.ugp.api.entity.InstallNoticeMsg;
import com.yeejoin.amos.boot.module.ugp.api.entity.Project;
import com.yeejoin.amos.boot.module.ugp.api.entity.ProjectInitiation; import com.yeejoin.amos.boot.module.ugp.api.entity.ProjectInitiation;
import com.yeejoin.amos.boot.module.ugp.api.entity.SuperviseRule; import com.yeejoin.amos.boot.module.ugp.api.entity.SuperviseRule;
import com.yeejoin.amos.boot.module.ugp.api.mapper.ProjectInitiationMapper; import com.yeejoin.amos.boot.module.ugp.api.mapper.ProjectInitiationMapper;
...@@ -46,6 +50,12 @@ import java.util.*; ...@@ -46,6 +50,12 @@ import java.util.*;
@Service @Service
public class ProjectInitiationServiceImpl extends BaseService<ProjectInitiationDto, ProjectInitiation, ProjectInitiationMapper> implements IProjectInitiationService { public class ProjectInitiationServiceImpl extends BaseService<ProjectInitiationDto, ProjectInitiation, ProjectInitiationMapper> implements IProjectInitiationService {
@Autowired
ProjectInitiationServiceImpl projectInitiationService;
@Autowired @Autowired
WorkflowExcuteServiceImpl workflowExcuteService; WorkflowExcuteServiceImpl workflowExcuteService;
...@@ -61,6 +71,9 @@ public class ProjectInitiationServiceImpl extends BaseService<ProjectInitiationD ...@@ -61,6 +71,9 @@ public class ProjectInitiationServiceImpl extends BaseService<ProjectInitiationD
@Autowired @Autowired
SuperviseRuleServiceImpl superviseRuleServiceImpl; SuperviseRuleServiceImpl superviseRuleServiceImpl;
@Autowired
ProjectServiceImpl projectService;
private final Logger logger = LoggerFactory.getLogger(ProjectInitiationServiceImpl.class); private final Logger logger = LoggerFactory.getLogger(ProjectInitiationServiceImpl.class);
@Value("${params.work.flow.processDefinitionKey}") @Value("${params.work.flow.processDefinitionKey}")
...@@ -70,8 +83,9 @@ public class ProjectInitiationServiceImpl extends BaseService<ProjectInitiationD ...@@ -70,8 +83,9 @@ public class ProjectInitiationServiceImpl extends BaseService<ProjectInitiationD
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String start(Object objectd) { public void start(Project project) {
String instanceId = null; String instanceId = null;
//启动流程
try { try {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO(); ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(processDefinitionKey); dto.setProcessDefinitionKey(processDefinitionKey);
...@@ -86,14 +100,17 @@ public class ProjectInitiationServiceImpl extends BaseService<ProjectInitiationD ...@@ -86,14 +100,17 @@ public class ProjectInitiationServiceImpl extends BaseService<ProjectInitiationD
e.printStackTrace(); e.printStackTrace();
System.out.println("流程启动失败:"+e.getMessage()); System.out.println("流程启动失败:"+e.getMessage());
} }
//新增project表的流程id和流程状态
project.setInstanceId(instanceId);
project.setStatus(getFlowTaskName(instanceId));
projectService.updateById(project);
//审核条件 //审核条件
String option = "0"; String option = "0";
if (true) { if (true) {
option = "1"; option = "1";
} }
//执行审核流程 //执行项目立项流程
execute(instanceId, objectd,option); execute(instanceId,project,option);
return instanceId;
} }
@Override @Override
...@@ -107,28 +124,23 @@ public class ProjectInitiationServiceImpl extends BaseService<ProjectInitiationD ...@@ -107,28 +124,23 @@ public class ProjectInitiationServiceImpl extends BaseService<ProjectInitiationD
JSONObject dataObject = jsonObject.getJSONObject("data"); JSONObject dataObject = jsonObject.getJSONObject("data");
projectInitiation.setTaskId(dataObject.getString("id")); projectInitiation.setTaskId(dataObject.getString("id"));
projectInitiation.setTaskName(dataObject.getString("name")); projectInitiation.setTaskName(dataObject.getString("name"));
TaskResultDTO dto = new TaskResultDTO();
dto.setResult(option); if (ProjectInitiationEnum.平台审核.getName().equals(dataObject.getString("name"))) {
dto.setResultCode("condition"); if (true) {
dto.setTaskId(projectInitiation.getTaskId()); option = "1";
HashMap<String, Object> var = new HashMap<>(); }
var.put("condition", option);
dto.setVariable(var);
if ("平台审核".equals(dataObject.getString("name"))) {
System.out.println();
} }
if("监检员审核".equals(dataObject.getString("name"))){ if(ProjectInitiationEnum.监检员审核.getName().equals(dataObject.getString("name"))){
if("1".equals(option)){ if("1".equals(option)){
projectInitiation.setTaskName(dataObject.getString("name")+"(流程结束!)"); projectInitiation.setTaskName(dataObject.getString("name")+"(流程结束!)");
} }
} }
if("接受审查意见".equals(dataObject.getString("name"))){ if(ProjectInitiationEnum.接受审查意见.getName().equals(dataObject.getString("name"))){
projectInitiation.setTaskName(dataObject.getString("name")+"(流程结束!)"); projectInitiation.setTaskName(dataObject.getString("name")+"(流程结束!)");
} }
if ("告知申请".equals(dataObject.getString("name"))) { if (ProjectInitiationEnum.告知申请.getName().equals(dataObject.getString("name"))) {
if(!ValidationUtil.isEmpty(objectd)) { if(!ValidationUtil.isEmpty(objectd)) {
//设置短信发送的基本参数 //设置短信发送的基本参数
HashMap<String, String> smsParams = new HashMap(); HashMap<String, String> smsParams = new HashMap();
...@@ -166,11 +178,24 @@ public class ProjectInitiationServiceImpl extends BaseService<ProjectInitiationD ...@@ -166,11 +178,24 @@ public class ProjectInitiationServiceImpl extends BaseService<ProjectInitiationD
} }
try { try {
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResult(option);
dto.setResultCode("condition");
dto.setTaskId(projectInitiation.getTaskId());
HashMap<String, Object> var = new HashMap<>();
var.put("condition", option);
dto.setVariable(var);
//执行流程
Workflow.taskClient.completeByTask(projectInitiation.getTaskId(),dto); Workflow.taskClient.completeByTask(projectInitiation.getTaskId(),dto);
//保存日志
this.save(projectInitiation); this.save(projectInitiation);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
System.out.println("任务完成失败:"+e.getMessage()); System.out.println("任务完成失败:"+e.getMessage());
} finally {
//更新project种的status字段,表示当前流程下一个执行的任务
updateProjectFlowStatus(instanceId);
} }
} }
...@@ -185,4 +210,25 @@ public class ProjectInitiationServiceImpl extends BaseService<ProjectInitiationD ...@@ -185,4 +210,25 @@ public class ProjectInitiationServiceImpl extends BaseService<ProjectInitiationD
} }
return smsRecordModel; return smsRecordModel;
} }
/**
* 获取流程当前任务名称
* @param instanceId
* @return
*/
public String getFlowTaskName(String instanceId){
JSONObject jsonObject = workflowFeignService.getTask(instanceId);
if (ValidationUtil.isEmpty(jsonObject)) {
return "";
}
return jsonObject.getJSONObject("data").getString("name");
}
public void updateProjectFlowStatus(String instanceId){
LambdaQueryWrapper<Project> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Project::getInstanceId,instanceId);
Project project = projectService.getOne(wrapper);
project.setStatus(getFlowTaskName(instanceId));
projectService.updateById(project);
}
} }
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