|
@ -171,7 +171,7 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
for (SysStaffOrgVo datum : data) { |
|
|
for (SysStaffOrgVo datum : data) { |
|
|
orgSidPath = datum.getOrgSidPath(); |
|
|
orgSidPath = datum.getOrgSidPath(); |
|
|
String[] split = orgSidPath.split("/"); |
|
|
String[] split = orgSidPath.split("/"); |
|
|
for (String s : split) { |
|
|
for (String s : split) {//TODO 封装到组织架构的feign中
|
|
|
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(s); |
|
|
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(s); |
|
|
SysOrganizationVo data1 = sysOrganizationVoResultBean.getData(); |
|
|
SysOrganizationVo data1 = sysOrganizationVoResultBean.getData(); |
|
|
Integer isDept = data1.getIsDept(); |
|
|
Integer isDept = data1.getIsDept(); |
|
@ -227,6 +227,7 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 生成单据编号(制定编号规则:单据类型编号(数据字典key)+部门编码+yyyyMMDD+0000) |
|
|
* 生成单据编号(制定编号规则:单据类型编号(数据字典key)+部门编码+yyyyMMDD+0000) |
|
|
|
|
|
* |
|
|
* @param userSid |
|
|
* @param userSid |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
@ -288,7 +289,12 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
SysStaffOrg sysStaffOrg = sysStaffOrgFeign.getOrgByStaffSid(dto.getStaffSid()).getData(); |
|
|
SysStaffOrg sysStaffOrg = sysStaffOrgFeign.getOrgByStaffSid(dto.getStaffSid()).getData(); |
|
|
String orgSidPath = sysStaffOrg.getOrgSidPath(); |
|
|
String orgSidPath = sysStaffOrg.getOrgSidPath(); |
|
|
Map<String, Object> variables = BeanUtil.beanToMap(dto); |
|
|
Map<String, Object> variables = BeanUtil.beanToMap(dto); |
|
|
ResultBean resultBean = saveOrUpdateDto(dto); |
|
|
|
|
|
|
|
|
String busSid = dto.getBusinessSid(); |
|
|
|
|
|
if (StringUtils.isBlank(busSid)) { |
|
|
|
|
|
|
|
|
|
|
|
ResultBean resultBean = saveOrUpdateDto(dto);//insert
|
|
|
|
|
|
|
|
|
String businessSid = resultBean.getData().toString(); |
|
|
String businessSid = resultBean.getData().toString(); |
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
BeanUtil.copyProperties(dto, bv); |
|
|
BeanUtil.copyProperties(dto, bv); |
|
@ -301,23 +307,62 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
//如果taskid从业务的数据库中查询出来,那这个taskid 和当前的关系是什么 如果数据库中查询出来的taskid是第四个环节的id,但是目前是做的第一次的提交操作。
|
|
|
//如果taskid从业务的数据库中查询出来,那这个taskid 和当前的关系是什么 如果数据库中查询出来的taskid是第四个环节的id,但是目前是做的第一次的提交操作。
|
|
|
// 应该是也不允许走if 也不运行走else 那应该如何验证这个id是否允许走else呢?
|
|
|
// 应该是也不允许走if 也不运行走else 那应该如何验证这个id是否允许走else呢?
|
|
|
// 取出来业务数据的taskid和前端传递的taskid作比较 来判断数据的是否有效 本质上是数据版本一致性的问题
|
|
|
// 取出来业务数据的taskid和前端传递的taskid作比较 来判断数据的是否有效 本质上是数据版本一致性的问题
|
|
|
BaseOutsourcingApplicationDto booad=baseMapper.getBySid(businessSid); |
|
|
|
|
|
String businessTaskid=booad.getTaskId(); |
|
|
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv); |
|
|
if(StringUtils.isBlank(businessTaskid)&&StringUtils.isBlank(dto.getTaskId())){ |
|
|
UpdateFlowFieldVo uff = resultBean1.getData(); |
|
|
// 新提交 taskid都是空的
|
|
|
updateFlowFiled(BeanUtil.beanToMap(uff)); |
|
|
|
|
|
return resultBean1; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BaseOutsourcingApplicationDto booad = new BaseOutsourcingApplicationDto(); |
|
|
|
|
|
int r = submitBusinessData(dto, busSid, booad); |
|
|
|
|
|
if (r == 0) { |
|
|
|
|
|
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ResultBean resultBean = saveOrUpdateDto(dto);//update
|
|
|
|
|
|
String businessSid = resultBean.getData().toString(); |
|
|
|
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
|
|
|
BeanUtil.copyProperties(dto, bv); |
|
|
|
|
|
bv.setOrgSidPath(orgSidPath); |
|
|
|
|
|
bv.setBusinessSid(businessSid); |
|
|
|
|
|
bv.setUserSid(dto.getUserSid()); |
|
|
|
|
|
variables.put("businessSid", businessSid); |
|
|
|
|
|
bv.setFormVariables(variables); |
|
|
|
|
|
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId()); |
|
|
|
|
|
//如果taskid从业务的数据库中查询出来,那这个taskid 和当前的关系是什么 如果数据库中查询出来的taskid是第四个环节的id,但是目前是做的第一次的提交操作。
|
|
|
|
|
|
// 应该是也不允许走if 也不运行走else 那应该如何验证这个id是否允许走else呢?
|
|
|
|
|
|
// 取出来业务数据的taskid和前端传递的taskid作比较 来判断数据的是否有效 本质上是数据版本一致性的问题
|
|
|
|
|
|
|
|
|
|
|
|
if (r == 1) { |
|
|
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv); |
|
|
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv); |
|
|
UpdateFlowFieldVo uff = resultBean1.getData(); |
|
|
UpdateFlowFieldVo uff = resultBean1.getData(); |
|
|
updateFlowFiled(BeanUtil.beanToMap(uff)); |
|
|
updateFlowFiled(BeanUtil.beanToMap(uff)); |
|
|
return resultBean1; |
|
|
return resultBean1; |
|
|
}else if(businessTaskid.equals(dto.getTaskId())){//只有数据一致的时候才能进行下一步
|
|
|
} else if (r == 2) { |
|
|
bv.setTaskDefKey(booad.getTaskDefKey()); |
|
|
bv.setTaskDefKey(booad.getTaskDefKey()); |
|
|
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); |
|
|
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); |
|
|
bv.setInstanceId(dto.getInstanceId()); |
|
|
bv.setInstanceId(dto.getInstanceId()); |
|
|
return complete(bv); |
|
|
return complete(bv); |
|
|
}else{ |
|
|
|
|
|
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!"); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
return ResultBean.fireFail(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private synchronized int submitBusinessData(SubmitBaseOutSourcingApplicationDto dto, |
|
|
|
|
|
String businessSid, BaseOutsourcingApplicationDto booad) { |
|
|
|
|
|
int r = 0; |
|
|
|
|
|
booad = baseMapper.getBySid(businessSid); |
|
|
|
|
|
String businessTaskid = booad.getTaskId(); |
|
|
|
|
|
if (StringUtils.isBlank(businessTaskid) && StringUtils.isBlank(dto.getTaskId())) { |
|
|
|
|
|
// 新提交 taskid都是空的
|
|
|
|
|
|
r = 1; |
|
|
|
|
|
} else if (StringUtils.isNotBlank(businessTaskid) && businessTaskid.equals(dto.getTaskId())) {//只有数据一致的时候才能进行下一步
|
|
|
|
|
|
r = 2; |
|
|
|
|
|
} |
|
|
|
|
|
return r; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 检查用户是否设置部门 |
|
|
* 检查用户是否设置部门 |
|
|
* |
|
|
* |
|
@ -362,6 +407,7 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 办理 |
|
|
* 办理 |
|
|
|
|
|
* |
|
|
* @param bv |
|
|
* @param bv |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
@ -380,6 +426,7 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 更新流程相关的状态 |
|
|
* 更新流程相关的状态 |
|
|
|
|
|
* |
|
|
* @param map |
|
|
* @param map |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
@ -389,6 +436,7 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 撤回 |
|
|
* 撤回 |
|
|
|
|
|
* |
|
|
* @param userSid |
|
|
* @param userSid |
|
|
* @param businessSid |
|
|
* @param businessSid |
|
|
* @param flowTaskVo |
|
|
* @param flowTaskVo |
|
@ -400,22 +448,22 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
fl.setBusinessSid(businessSid); |
|
|
fl.setBusinessSid(businessSid); |
|
|
fl.setUserSid(userSid); |
|
|
fl.setUserSid(userSid); |
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(fl); |
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(fl); |
|
|
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); |
|
|
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(resultBean.getData()); |
|
|
|
|
|
updateFlowFiled(stringObjectMap); |
|
|
return resultBean; |
|
|
return resultBean; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 驳回 |
|
|
* 驳回 |
|
|
|
|
|
* |
|
|
* @param businessSid |
|
|
* @param businessSid |
|
|
* @param flowTaskVo |
|
|
* @param flowTaskVo |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) { |
|
|
public ResultBean taskReject(FlowTaskVo flowTaskVo) { |
|
|
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo(); |
|
|
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo(); |
|
|
BeanUtil.copyProperties(flowTaskVo, fl); |
|
|
BeanUtil.copyProperties(flowTaskVo, fl); |
|
|
fl.setBusinessSid(businessSid); |
|
|
BaseOutsourcingApplicationDto boad = baseMapper.getBySid(flowTaskVo.getBusinessSid()); |
|
|
BaseOutsourcingApplicationDto boad = baseMapper.getBySid(businessSid); |
|
|
|
|
|
|
|
|
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(fl); |
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(fl); |
|
|
UpdateFlowFieldVo data = resultBean.getData(); |
|
|
UpdateFlowFieldVo data = resultBean.getData(); |
|
|
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(resultBean.getData()); |
|
|
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(resultBean.getData()); |
|
@ -431,6 +479,7 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 终止流程 |
|
|
* 终止流程 |
|
|
|
|
|
* |
|
|
* @param businessSid |
|
|
* @param businessSid |
|
|
* @param flowTaskVo |
|
|
* @param flowTaskVo |
|
|
* @return |
|
|
* @return |
|
@ -446,6 +495,7 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 流程历史流转记录 |
|
|
* 流程历史流转记录 |
|
|
|
|
|
* |
|
|
* @param procInsId |
|
|
* @param procInsId |
|
|
* @param deployId |
|
|
* @param deployId |
|
|
* @return |
|
|
* @return |
|
|