Commit 25017c51 authored by yangyang's avatar yangyang

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

parent 2bab2a51
package com.yeejoin.amos.boot.module.jyjc.api.common;
/**
* 常量
* <p>
* ProjectName: amos-boot-biz
* PackageName: com.yeejoin.amos.boot.module.jyjc.api.common
*
* @author yangyang
* @version v1.0
* @date 2023/12/13 22:36
*/
public class CommonConstants {
public static final String OPEN_APPLICATION_SEQ_KEY = "OPEN_APPLICATION_SEQ";
public static final String APPLICATION_SEQ_PREFIX = "JY";
}
...@@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSON; ...@@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo; 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.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jyjc.api.common.CommonConstants;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication; import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcBaseMapper; import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcBaseMapper;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcOpeningApplicationMapper; import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcOpeningApplicationMapper;
...@@ -33,12 +35,14 @@ import org.springframework.stereotype.Service; ...@@ -33,12 +35,14 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* 服务实现类 * 服务实现类
* *
...@@ -55,13 +59,16 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -55,13 +59,16 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
@Autowired @Autowired
JyjcOpeningApplicationMapper jyjcOpeningApplicationMapper; JyjcOpeningApplicationMapper jyjcOpeningApplicationMapper;
@Resource(type = JyjcBaseMapper.class) @Resource (type = JyjcBaseMapper.class)
private JyjcBaseMapper baseMapper; private JyjcBaseMapper baseMapper;
@Value("${process-definition-key.jyjc.openapplication:}") @Value ("${process-definition-key.jyjc.openapplication:}")
private String processDefinitionKey; private String processDefinitionKey;
@Transactional(rollbackFor = {Exception.class, CommonException.class}) @Autowired
private RedisUtils redisUtils;
@Transactional (rollbackFor = {Exception.class, CommonException.class})
public JyjcOpeningApplicationDto saveModel(JyjcOpeningApplicationDto model) { public JyjcOpeningApplicationDto saveModel(JyjcOpeningApplicationDto model) {
// 开启工作流 startProcess // 开启工作流 startProcess
try { try {
...@@ -70,11 +77,16 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -70,11 +77,16 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
dto.setBusinessKey("1"); dto.setBusinessKey("1");
AjaxResult ajaxResult = Workflow.taskClient.startByVariable(dto); AjaxResult ajaxResult = Workflow.taskClient.startByVariable(dto);
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("工作流开始结果:{}", ajaxResult); log.debug("开启工作流结果:{}", ajaxResult);
} }
String instanceId = ((Map)ajaxResult.get("data")).get("id").toString(); if (ajaxResult == null || (ajaxResult.get(AjaxResult.CODE_TAG) != null && !"200".equals(ajaxResult.get(AjaxResult.CODE_TAG).toString()))) {
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data"))); throw new BaseException("开启工作流错误");
}
String instanceId = ((Map) ajaxResult.get("data")).get("id").toString();
// JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
// model.setWorkflowRole(); // model.setWorkflowRole();
JSONObject dataObject = getTask(instanceId);
model.setApplicationSeq(buildApplicationSeq());
model.setStatus(!ValidationUtil.isEmpty(dataObject) && !ValidationUtil.isEmpty(dataObject.get("name")) ? String.valueOf(dataObject.get("name")) : ""); model.setStatus(!ValidationUtil.isEmpty(dataObject) && !ValidationUtil.isEmpty(dataObject.get("name")) ? String.valueOf(dataObject.get("name")) : "");
model.setWorkflowProstanceId(instanceId); model.setWorkflowProstanceId(instanceId);
return this.createWithModel(model); return this.createWithModel(model);
...@@ -84,6 +96,19 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -84,6 +96,19 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
} }
} }
public JSONObject getTask(String instanceId) {
try {
AjaxResult ajaxResult = Workflow.taskClient.getTask(instanceId);
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
log.info("getTask: dataObject={}", dataObject);
return dataObject;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/** /**
* 分页查询 * 分页查询
*/ */
...@@ -100,7 +125,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -100,7 +125,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
} }
public Page<JyjcOpeningApplicationDto> queryForJyjcOpeningApplicationPage(Page<JyjcOpeningApplication> page, JyjcOpeningApplicationDto jyjcOpeningApplicationDto) { public Page<JyjcOpeningApplicationDto> queryForJyjcOpeningApplicationPage(Page<JyjcOpeningApplication> page, JyjcOpeningApplicationDto jyjcOpeningApplicationDto) {
//根据申请单中的单位信息对于列表数据进行过滤 // 根据申请单中的单位信息对于列表数据进行过滤
CompanyBo companyBo = commonserviceImpl.getReginParamsOfCurrentUser().getCompany(); CompanyBo companyBo = commonserviceImpl.getReginParamsOfCurrentUser().getCompany();
if (companyBo.getLevel().equals("company")) { if (companyBo.getLevel().equals("company")) {
jyjcOpeningApplicationDto.setUnitCode(companyBo.getCompanyCode()); jyjcOpeningApplicationDto.setUnitCode(companyBo.getCompanyCode());
...@@ -132,8 +157,8 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -132,8 +157,8 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
TzBaseEnterpriseInfoDto baseEnterpriseInfoDto = baseMapper.selectEnterpriseInfo(unitCode); TzBaseEnterpriseInfoDto baseEnterpriseInfoDto = baseMapper.selectEnterpriseInfo(unitCode);
// 获取企业资质 // 获取企业资质
List<TzBaseUnitLicenceDto> baseUnitLicences = baseMapper.selectBaseUnitLicenceList(MapBuilder.<String, Object>create() List<TzBaseUnitLicenceDto> baseUnitLicences = baseMapper.selectBaseUnitLicenceList(MapBuilder.<String, Object>create()
.put("unitCode", unitCode) .put("unitCode", unitCode)
.put("licenceType", LicenceTypeEnum.JYJC.getCode()).build()); .put("licenceType", LicenceTypeEnum.JYJC.getCode()).build());
// 获取检验人员信息 // 获取检验人员信息
List<TzsUserInfoDto> userInfos = baseMapper.selectUserInfoByUnitCodeList(unitCode); List<TzsUserInfoDto> userInfos = baseMapper.selectUserInfoByUnitCodeList(unitCode);
if (baseEnterpriseInfoDto != null) { if (baseEnterpriseInfoDto != null) {
...@@ -151,18 +176,18 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -151,18 +176,18 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
/** /**
* 接收/驳回通知检验单 * 接收/驳回通知检验单
*/ */
public void execueFlow(String op, String instanceId) { public void execueFlow(String op, String instanceId) {
try { try {
AjaxResult ajaxResult = Workflow.taskClient.getTask(instanceId); AjaxResult ajaxResult = Workflow.taskClient.getTask(instanceId);
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data"))); JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
String taskId = dataObject.getString("id"); String taskId = dataObject.getString("id");
//组装信息 // 组装信息
TaskResultDTO dto = new TaskResultDTO(); TaskResultDTO dto = new TaskResultDTO();
dto.setResult(op); dto.setResult(op);
dto.setResultCode("condition"); dto.setResultCode("condition");
dto.setTaskId(taskId); dto.setTaskId(taskId);
dto.setComment("流程结束,你可以开始办理业务了"); dto.setComment("流程结束,你可以开始办理业务了");
//执行流程 // 执行流程
AjaxResult ajaxResult1 = Workflow.taskClient.completeByTask(taskId, dto); AjaxResult ajaxResult1 = Workflow.taskClient.completeByTask(taskId, dto);
if (ObjectUtils.isEmpty(ajaxResult1)) { if (ObjectUtils.isEmpty(ajaxResult1)) {
...@@ -176,12 +201,12 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -176,12 +201,12 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
/** /**
* 撤回流程办理单 * 撤回流程办理单
*/ */
public void stopFlow(String instanceId) { public void stopFlow(String instanceId) {
try { try {
AjaxResult ajaxResult = Workflow.taskClient.getTask(instanceId); AjaxResult ajaxResult = Workflow.taskClient.getTask(instanceId);
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data"))); JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
String taskId = dataObject.getString("id"); String taskId = dataObject.getString("id");
//执行流程 // 执行流程
AjaxResult ajaxResult1 = Workflow.taskClient.stopProcess(taskId); AjaxResult ajaxResult1 = Workflow.taskClient.stopProcess(taskId);
if (ObjectUtils.isEmpty(ajaxResult1)) { if (ObjectUtils.isEmpty(ajaxResult1)) {
...@@ -192,4 +217,33 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -192,4 +217,33 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
} }
} }
/**
* JY+年(4位)+月(2位)+日(2位)+序列号(3位
*
* @param
* @return {@link java.lang.String}
* @throws
* @author yangyang
* @date 2023/12/13 22:30
*/
private String buildApplicationSeq() {
String sdf = new SimpleDateFormat("yyyyMMdd").format(new Date());
long increment = redisUtils.incr(CommonConstants.OPEN_APPLICATION_SEQ_KEY, 1);
if (increment == 0) {
redisUtils.expire(CommonConstants.OPEN_APPLICATION_SEQ_KEY, nextDay());
}
return CommonConstants.APPLICATION_SEQ_PREFIX + sdf + String.format("%05d", increment);
}
private long nextDay() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
calendar.add(Calendar.DAY_OF_MONTH, 1);
return (calendar.getTimeInMillis() - System.currentTimeMillis()) / 1000;
}
} }
\ No newline at end of file
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