修改工作流审批组权限

pull/107/head
admin 1 year ago
parent acab202aba
commit f46e87214d

@ -629,7 +629,8 @@ public class FlowTaskController extends BaseController {
public ResultVo removeTask(HttpServletRequest request) { public ResultVo removeTask(HttpServletRequest request) {
String fromid = request.getParameter("fromid"); String fromid = request.getParameter("fromid");
String taskid = request.getParameter("taskid"); String taskid = request.getParameter("taskid");
return flowTaskService.removeTask(fromid, taskid); String deptid = request.getParameter("deptid");
return flowTaskService.removeTask(fromid, taskid,deptid);
//return ResultVoUtil.success(); //return ResultVoUtil.success();
} }
@ -649,7 +650,8 @@ public class FlowTaskController extends BaseController {
public ResultVo historyTask(HttpServletRequest request) { public ResultVo historyTask(HttpServletRequest request) {
String fromid = request.getParameter("fromid"); String fromid = request.getParameter("fromid");
String taskid = request.getParameter("buessinessno"); String taskid = request.getParameter("buessinessno");
return flowTaskService.removeTask(fromid, taskid); String deptid = request.getParameter("deptid");
return flowTaskService.removeTask(fromid, taskid,deptid);
//return ResultVoUtil.success(); //return ResultVoUtil.success();
} }

@ -30,6 +30,8 @@ public class FlowApprove {
*/ */
private String failCauseId; private String failCauseId;
//公司主键,原机构主键
private String deptid;
/** /**
* *
*/ */

@ -22,7 +22,7 @@ public interface IFlowInstanceService {
* @param servicename * @param servicename
* @return * @return
*/ */
public boolean startProcessInstanceById(String procDefId, Map<String,Object> variables, HttpServletRequest request,String formid,String servicename); public boolean startProcessInstanceById(String procDefId, Map<String,Object> variables, HttpServletRequest request,String formid,String servicename,String deptid);
/** /**
* *
@ -32,5 +32,5 @@ public interface IFlowInstanceService {
* @param servicename * @param servicename
* @return * @return
*/ */
public boolean startProcessInstanceById(String procDefId,String userName,String createuser, String formid,String servicename); public boolean startProcessInstanceById(String procDefId,String userName,String createuser, String formid,String servicename,String deptid);
} }

@ -54,7 +54,7 @@ public interface IFlowTaskService {
* @param * @param
* @param processDefinition * @param processDefinition
*/ */
public void updateAssignee(String processInstanceId, String processDefinitionId, ProcessDefinition processDefinition); public void updateAssignee(String processInstanceId, String processDefinitionId, ProcessDefinition processDefinition,String deptid);
void sendMsg(OcrTaskchildPicture model, UserToken userToken); void sendMsg(OcrTaskchildPicture model, UserToken userToken);
void finishedList(PageUtils pageUtils, HttpServletRequest request); void finishedList(PageUtils pageUtils, HttpServletRequest request);
@ -142,7 +142,7 @@ public interface IFlowTaskService {
* *
* @param processInstanceId * @param processInstanceId
*/ */
public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId); public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId,String deptid);
/** /**
* *
@ -170,7 +170,7 @@ public interface IFlowTaskService {
* *
* @param fromid * @param fromid
*/ */
public ResultVo removeTask(String fromid, String taskid); public ResultVo removeTask(String fromid, String taskid,String deptid);
/** /**
* *

@ -45,7 +45,7 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
private UserViewapproeService userViewApproeService; private UserViewapproeService userViewApproeService;
@Override @Override
public boolean startProcessInstanceById(String procDefId, Map<String, Object> variables, HttpServletRequest request, String formid, String servicename) { public boolean startProcessInstanceById(String procDefId, Map<String, Object> variables, HttpServletRequest request, String formid, String servicename,String deptid) {
IFormCustomService iFormCustomService = null; IFormCustomService iFormCustomService = null;
if (StringUtils.isNotBlank(servicename)) { if (StringUtils.isNotBlank(servicename)) {
@ -87,7 +87,7 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
processInstance = runtimeService.startProcessInstanceById(procDefId, businessKey, variables); processInstance = runtimeService.startProcessInstanceById(procDefId, businessKey, variables);
if (null != iFormCustomService) { if (null != iFormCustomService) {
FlowTaskCompleteVO flowTaskCompleteVO = flowTaskService.updateNowTaskAssignee(processInstance.getProcessInstanceId(), processInstance.getProcessDefinitionId()); FlowTaskCompleteVO flowTaskCompleteVO = flowTaskService.updateNowTaskAssignee(processInstance.getProcessInstanceId(), processInstance.getProcessDefinitionId(),deptid);
if (null == flowTaskCompleteVO) { if (null == flowTaskCompleteVO) {
throw new ServiceException("没有审批人,请联系管理员,流程定义:" + businessKey); throw new ServiceException("没有审批人,请联系管理员,流程定义:" + businessKey);
@ -128,7 +128,7 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
} }
@Override @Override
public boolean startProcessInstanceById(String procDefId, String userName, String createuser, String formid, String servicename) { public boolean startProcessInstanceById(String procDefId, String userName, String createuser, String formid, String servicename,String depti) {
IFormCustomService iFormCustomService = null; IFormCustomService iFormCustomService = null;
if (StringUtils.isNotBlank(servicename)) { if (StringUtils.isNotBlank(servicename)) {
@ -159,7 +159,7 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
processInstance = runtimeService.startProcessInstanceById(procDefId, businessKey, variables); processInstance = runtimeService.startProcessInstanceById(procDefId, businessKey, variables);
if (null != iFormCustomService) { if (null != iFormCustomService) {
FlowTaskCompleteVO flowTaskCompleteVO = flowTaskService.updateNowTaskAssignee(processInstance.getProcessInstanceId(), processInstance.getProcessDefinitionId()); FlowTaskCompleteVO flowTaskCompleteVO = flowTaskService.updateNowTaskAssignee(processInstance.getProcessInstanceId(), processInstance.getProcessDefinitionId(),depti);
if (null == flowTaskCompleteVO) { if (null == flowTaskCompleteVO) {
throw new ServiceException("没有审批人,请联系管理员,流程定义:" + businessKey); throw new ServiceException("没有审批人,请联系管理员,流程定义:" + businessKey);

@ -454,7 +454,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
variables.put("approvd", approve.getResult()); variables.put("approvd", approve.getResult());
OcrTaskchildPicture model = ocrTaskchildPictureService.getById(Long.parseLong(flowTaskInfo.getFormId())); OcrTaskchildPicture model = ocrTaskchildPictureService.getById(Long.parseLong(flowTaskInfo.getFormId()));
if (approve.getResult()) { if (approve.getResult()) {
disposeSucceedTask(task, processDefinition, variables, model, flowTaskInfo.getFormId(), userToken, approve); disposeSucceedTask(task, processDefinition, variables, model, flowTaskInfo.getFormId(), userToken, approve,approve.getDeptid());
} else { } else {
disposeFailureTask(task, flowTaskInfo.getFormId(), variables, approve); disposeFailureTask(task, flowTaskInfo.getFormId(), variables, approve);
@ -474,10 +474,11 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
/** /**
* *
*/ */
private void disposeSucceedTask(Task task, ProcessDefinition processDefinition, Map<String, Object> variables, OcrTaskchildPicture model, String formId, UserToken userToken, FlowApprove approve) throws Exception { private void disposeSucceedTask(Task task, ProcessDefinition processDefinition, Map<String, Object> variables,
OcrTaskchildPicture model, String formId, UserToken userToken, FlowApprove approve,String deptid) throws Exception {
//进入下一个节点 //进入下一个节点
taskService.complete(task.getId(), variables); taskService.complete(task.getId(), variables);
updateAssignee(task.getProcessInstanceId(), task.getProcessDefinitionId(), processDefinition); updateAssignee(task.getProcessInstanceId(), task.getProcessDefinitionId(), processDefinition,deptid);
String category = processDefinition.getCategory(); String category = processDefinition.getCategory();
Category categoryDto = this.categoryService.getCategory(category); Category categoryDto = this.categoryService.getCategory(category);
IFormCustomService iFormCustomService = SpringUtils.getBean(categoryDto.getServicename()); IFormCustomService iFormCustomService = SpringUtils.getBean(categoryDto.getServicename());
@ -581,10 +582,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
* *
* @param processDefinition * @param processDefinition
*/ */
public void updateAssignee(String processInstanceId, String processDefinitionId, ProcessDefinition processDefinition) { public void updateAssignee(String processInstanceId, String processDefinitionId, ProcessDefinition processDefinition,String deptid) {
//如果是多个候选人或者是候选组,做任务拾取 //如果是多个候选人或者是候选组,做任务拾取
FlowTaskCompleteVO flowTaskCompleteVO = updateNowTaskAssignee(processInstanceId, processDefinitionId); FlowTaskCompleteVO flowTaskCompleteVO = updateNowTaskAssignee(processInstanceId, processDefinitionId,deptid);
if (null != flowTaskCompleteVO) { if (null != flowTaskCompleteVO) {
@ -673,7 +674,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
* *
* @param processInstanceId * @param processInstanceId
*/ */
public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId) { public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId,String deptid) {
FlowTaskCompleteVO flowTaskCompleteVO = null; FlowTaskCompleteVO flowTaskCompleteVO = null;
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId); BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
@ -710,7 +711,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
//发起人员登录账号 //发起人员登录账号
String startUserId = hi.getStartUserId(); String startUserId = hi.getStartUserId();
//通过候选组主键,查询审批人员信息,并自动拾取 //通过候选组主键,查询审批人员信息,并自动拾取
loginuser = candidateuserService.getClaimUser(startUserId, groupid); loginuser = candidateuserService.getClaimUser(startUserId, groupid,deptid);
if (StringUtils.isNotBlank(loginuser)) { if (StringUtils.isNotBlank(loginuser)) {
taskService.claim(task.getId(), loginuser); taskService.claim(task.getId(), loginuser);
} }
@ -1764,7 +1765,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
} }
public ResultVo removeTask(String fromid, String taskid) { public ResultVo removeTask(String fromid, String taskid,String deptid) {
// 获取当前任务 // 获取当前任务
OcrTaskchildPicture ocrTaskchildPicture = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid)); OcrTaskchildPicture ocrTaskchildPicture = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid));
@ -1783,7 +1784,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
String historyProcessDefinitionId = terminatedInstances.get(0).getProcessDefinitionId(); String historyProcessDefinitionId = terminatedInstances.get(0).getProcessDefinitionId();
boolean isStart = iFlowInstanceService.startProcessInstanceById(historyProcessDefinitionId, ocrTaskchildPicture.getCreateusername(), boolean isStart = iFlowInstanceService.startProcessInstanceById(historyProcessDefinitionId, ocrTaskchildPicture.getCreateusername(),
ocrTaskchildPicture.getCreateuser(), ocrTaskchildPicture.getId().toString(), category.getServicename()); ocrTaskchildPicture.getCreateuser(), ocrTaskchildPicture.getId().toString(), category.getServicename(),deptid);
if (isStart) { if (isStart) {
ResultVoUtil.success(); ResultVoUtil.success();
@ -1803,7 +1804,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
Category category = this.categoryService.getById(ocrTaskchildPicture.getCategoryid()); Category category = this.categoryService.getById(ocrTaskchildPicture.getCategoryid());
boolean isStart = iFlowInstanceService.startProcessInstanceById(task.getProcessDefinitionId(), ocrTaskchildPicture.getCreateusername(), boolean isStart = iFlowInstanceService.startProcessInstanceById(task.getProcessDefinitionId(), ocrTaskchildPicture.getCreateusername(),
ocrTaskchildPicture.getCreateuser(), ocrTaskchildPicture.getId().toString(), category.getServicename()); ocrTaskchildPicture.getCreateuser(), ocrTaskchildPicture.getId().toString(), category.getServicename(),deptid);
if (isStart) { if (isStart) {
ResultVoUtil.success(); ResultVoUtil.success();

@ -46,5 +46,5 @@ public interface CandidateuserService extends BaseService<Candidateuser> {
* @param candidateid * @param candidateid
* @return * @return
*/ */
public String getClaimUser(String startUserId,String candidateid); public String getClaimUser(String startUserId,String candidateid,String deptid);
} }

@ -116,7 +116,7 @@ public class CandidateuserServiceImpl extends BaseServiceImpl<CandidateuserMybat
* @param candidateid * @param candidateid
* @return * @return
*/ */
public String getClaimUser(String loginname,String candidateid){ public String getClaimUser(String loginname,String candidateid,String deptid){
//排除不在同一个店中的人员 //排除不在同一个店中的人员
List<Userdistionary> userdistionaryList = userdistionaryService.selectListByCandidateid(candidateid,loginname); List<Userdistionary> userdistionaryList = userdistionaryService.selectListByCandidateid(candidateid,loginname);
@ -135,14 +135,10 @@ public class CandidateuserServiceImpl extends BaseServiceImpl<CandidateuserMybat
//任务审批人员 //任务审批人员
User user = null; User user = null;
//通过登录账号查询所在审批关系插查询oa_userdistionary_t表
List<Userdistionary> list = userdistionaryService.selectListByLoginname(loginname);
//以店面作为主键
Map<Long,Userdistionary> userdistionaryMap = list.stream().collect(Collectors.toMap(Userdistionary::getDeptidDis, Function.identity(),(key1,key2) ->key2));
//如果候选组有多个人,优先确定是否在同一个店面, //如果候选组有多个人,优先确定是否在同一个店面,
for(Userdistionary userdistionary:userdistionaryList){ for(Userdistionary userdistionary:userdistionaryList){
if(null != userdistionaryMap.get(userdistionary.getDeptidDis())){ if(userdistionary.getDeptid().toString().equals(deptid)){
//如果user不为空说明有存在 //如果user不为空说明有存在
if(null != user){ if(null != user){
user = null; user = null;
@ -157,19 +153,6 @@ public class CandidateuserServiceImpl extends BaseServiceImpl<CandidateuserMybat
return user.getLoginname(); return user.getLoginname();
} }
//以部门作为主键
Map<Long,Userdistionary> userdistionaryDeptMap = list.stream().collect(Collectors.toMap(Userdistionary::getDeptid, Function.identity(),(key1,key2) ->key2));
//如果在同一个店面,也是多个人优先选同部门
for(Userdistionary userdistionary:userdistionaryList){
if(null != userdistionaryDeptMap.get(userdistionary.getDeptid())){
//如果user不为空说明有存在
if(null != user){
user = null;
break;
}
user = this.userService.selectDtoById(userdistionary.getUserid());
}
}
//如果user不为空说明只有一个审批人员 //如果user不为空说明只有一个审批人员
if(null != user){ if(null != user){
return user.getLoginname(); return user.getLoginname();

@ -38,7 +38,7 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
* @param tenantId * @param tenantId
* @param sysUser * @param sysUser
*/ */
public void createTask(List<OcrPicture> ocrPictureList, String tenantId,UserToken sysUser); public void createTask(List<OcrPicture> ocrPictureList, String tenantId,UserToken sysUser,String deptid);
/** /**

@ -337,7 +337,7 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
//4.开始更新 图片历史比对数据结果 //4.开始更新 图片历史比对数据结果
logger.info("查重任务:{},开启创建任务",checkDuplicateId); logger.info("查重任务:{},开启创建任务",checkDuplicateId);
if (CollectionUtils.isNotEmpty(ocrPictureList)) { if (CollectionUtils.isNotEmpty(ocrPictureList)) {
ocrTaskchildPictureService.createTask(ocrPictureList, ocrPictureList.get(0).getTenantId().toString(), sysUser); ocrTaskchildPictureService.createTask(ocrPictureList, ocrPictureList.get(0).getTenantId().toString(), sysUser,tenantId);
} }
return true; return true;
} }

@ -205,7 +205,8 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
null, null,
request, request,
ocrTaskchildPicture.getId().toString(), ocrTaskchildPicture.getId().toString(),
category.getServicename() category.getServicename(),
tenantId
); );
if (havePoint) { if (havePoint) {
@ -475,7 +476,8 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
null, null,
request, request,
ocrTaskchildPicture.getId().toString(), ocrTaskchildPicture.getId().toString(),
category.getServicename() category.getServicename(),
tenantId
); );
//TODO 需要测试 //TODO 需要测试
ocrPicture.setTaskchildpictureid(ocrTaskchildPicture.getId().toString()); ocrPicture.setTaskchildpictureid(ocrTaskchildPicture.getId().toString());

@ -311,7 +311,7 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
} }
@Override @Override
public void createTask(List<OcrPicture> ocrPictureList, String tenantId, UserToken userToken) { public void createTask(List<OcrPicture> ocrPictureList, String tenantId, UserToken userToken,String deptid) {
if (null != ocrPictureList && !ocrPictureList.isEmpty()) { if (null != ocrPictureList && !ocrPictureList.isEmpty()) {
//用于标记相似度是否存在百分百的情况 //用于标记相似度是否存在百分百的情况
for (OcrPicture ocrPicture : ocrPictureList) { for (OcrPicture ocrPicture : ocrPictureList) {
@ -339,7 +339,8 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
null, null,
request, request,
ocrTaskchildPicture.getId().toString(), ocrTaskchildPicture.getId().toString(),
category.getServicename() category.getServicename(),
deptid
); );
IFormCustomService iFormCustomService = SpringUtils.getBean(category.getServicename()); IFormCustomService iFormCustomService = SpringUtils.getBean(category.getServicename());
FlowModelVO formData = iFormCustomService.getForm(ocrTaskchildPicture.getId().toString()); FlowModelVO formData = iFormCustomService.getForm(ocrTaskchildPicture.getId().toString());

Loading…
Cancel
Save