Commit 23679a4c authored by yangyang's avatar yangyang

feat(jyjc):新增工作流启动流程

parent c47dba14
......@@ -4,7 +4,9 @@ import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
......@@ -33,6 +35,7 @@ import com.yeejoin.amos.feign.workflow.model.AjaxResult;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import org.apache.commons.lang3.ObjectUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
import org.bouncycastle.cert.ocsp.Req;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -43,6 +46,8 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Calendar;
......@@ -95,17 +100,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
public JyjcOpeningApplicationModel saveModel(JyjcOpeningApplicationModel model) {
// 开启工作流 startProcess
try {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(processDefinitionKey);
dto.setBusinessKey("1");
AjaxResult ajaxResult = Workflow.taskClient.startByVariable(dto);
if (log.isDebugEnabled()) {
log.debug("开启工作流结果:{}", ajaxResult);
}
if (ajaxResult == null || (ajaxResult.get(AjaxResult.CODE_TAG) != null && !"200".equals(ajaxResult.get(AjaxResult.CODE_TAG).toString()))) {
throw new BaseException("开启工作流错误");
}
String instanceId = ((Map) ajaxResult.get("data")).get("id").toString();
String instanceId = startFlow();
JSONObject dataObject = getTask(instanceId);
JSONArray executorArray = dataObject.getJSONObject("nodeInfo").getJSONArray("executor");
if(!ValidationUtil.isEmpty(executorArray)) {
......@@ -114,6 +109,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
}
CompanyBo companyBo = commonserviceImpl.getReginParamsOfCurrentUser().getCompany();
model.setUnitCode(companyBo.getCompanyCode());
model.setUnitCode("91611103MAC4Q1EG7B");
model.setUnitCodeName(companyBo.getCompanyName());
model.setApplicationSeq(buildApplicationSeq());
model.setStatus(!ValidationUtil.isEmpty(dataObject) && !ValidationUtil.isEmpty(dataObject.get("status")) ? String.valueOf(dataObject.get("status")) : "");
......@@ -125,6 +121,37 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
}
}
@Transactional (rollbackFor = {Exception.class, CommonException.class})
public JyjcOpeningApplicationModel updateModel(JyjcOpeningApplicationModel model) {
if (model.getSequenceNbr() == null) {
throw new BadRequest("sequenceNbr不能为空!");
}
return this.updateModel(model);
}
public void updateModelByInstanceId(String instanceId) {
JyjcOpeningApplication entity = this.lambdaQuery().eq(JyjcOpeningApplication::getWorkflowProstanceId, instanceId).one();
if (entity == null) {
return;
}
JSONObject taskJson = getTask(instanceId);
entity.setWorkflowRole(getWorkflowRoleGroups(taskJson));
entity.setStatus(getWorkflowStatus(taskJson));
this.updateById(entity);
}
private String getWorkflowStatus(JSONObject dataObject) {
return !ValidationUtil.isEmpty(dataObject) && !ValidationUtil.isEmpty(dataObject.get("status")) ? String.valueOf(dataObject.get("status")) : "";
}
private String getWorkflowRoleGroups(JSONObject dataObject) {
JSONArray executorArray = dataObject.getJSONObject("nodeInfo").getJSONArray("executor");
if(!ValidationUtil.isEmpty(executorArray)) {
return executorArray.stream().map(json -> Optional.ofNullable(((LinkedHashMap) json).get("groupId")).orElse("").toString()).collect(Collectors.joining(","));
}
return null;
}
private JSONObject getTask(String instanceId) {
try {
AjaxResult ajaxResult = Workflow.taskClient.getTask(instanceId);
......@@ -184,6 +211,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
jyjcOpeningApplicationModel = new JyjcOpeningApplicationModel();
}
String unitCode = reginParams.getCompany().getCompanyCode();
unitCode="91611103MAC4Q1EG7B"; // 测试用,之后务必删除!!!
QueryWrapper enterpriseInfoQueryWrapper = new QueryWrapper<>();
enterpriseInfoQueryWrapper.eq("use_code", unitCode);
TzBaseEnterpriseInfo baseUnitLicenceEntity = enterpriseInfoMapper.selectOne(enterpriseInfoQueryWrapper);
......@@ -194,6 +222,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
jyjcOpeningApplicationModel.setIndustrySupervisor(baseUnitLicenceEntity.getIndustrySupervisor());
jyjcOpeningApplicationModel.setLongitude(baseUnitLicenceEntity.getLongitude());
jyjcOpeningApplicationModel.setLatitude(baseUnitLicenceEntity.getLatitude());
jyjcOpeningApplicationModel.setUnitBusinessLicense(baseUnitLicenceEntity.getUnitBusinessLicense());
}
// QueryWrapper unitLicenceQueryWrapper = new QueryWrapper<>();
// unitLicenceQueryWrapper.eq("unit_code", unitCode);
......@@ -230,6 +259,22 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
return jyjcOpeningApplicationModel;
}
public String startFlow() throws Exception {
// 重新开启工作流
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(processDefinitionKey);
dto.setBusinessKey("1");
AjaxResult ajaxResult = Workflow.taskClient.startByVariable(dto);
if (log.isDebugEnabled()) {
log.debug("开启工作流结果:{}", ajaxResult);
}
if (ajaxResult == null || (ajaxResult.get(AjaxResult.CODE_TAG) != null && !"200".equals(ajaxResult.get(AjaxResult.CODE_TAG).toString()))) {
throw new BaseException("开启工作流错误");
}
String instanceId = ((Map) ajaxResult.get("data")).get("id").toString();
return instanceId;
}
/**
* 接收/驳回通知检验单
*/
......@@ -250,11 +295,14 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
}
updateModelByInstanceId(instanceId);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 撤回流程办理单
*/
......@@ -265,7 +313,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
if (ObjectUtils.isEmpty(ajaxResult1)) {
}
updateModelByInstanceId(instanceId);
} catch (Exception e) {
e.printStackTrace();
}
......
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