fix: 审批完成通知无量云

pull/81/head
sunchenliang 1 year ago
parent d779191b0d
commit 4231e5d57e

@ -33,11 +33,9 @@ import cn.jyjz.xiaoyao.oa.from.dataobject.Flowablecc;
import cn.jyjz.xiaoyao.oa.from.service.*; import cn.jyjz.xiaoyao.oa.from.service.*;
import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo; import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo;
import cn.jyjz.xiaoyao.oa.from.vo.RepeatedTaskVo;
import cn.jyjz.xiaoyao.ocr.dataobject.*; import cn.jyjz.xiaoyao.ocr.dataobject.*;
import cn.jyjz.xiaoyao.ocr.service.*; import cn.jyjz.xiaoyao.ocr.service.*;
import cn.jyjz.xiaoyao.ocr.util.SearchParaFormatting; import cn.jyjz.xiaoyao.ocr.util.SearchParaFormatting;
import cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo;
import cn.jyjz.xiaoyao.ocr.vo.OcrTaskchildPictureApproVo; import cn.jyjz.xiaoyao.ocr.vo.OcrTaskchildPictureApproVo;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -456,9 +454,10 @@ 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); disposeSucceedTask(task, processDefinition, variables, model, flowTaskInfo.getFormId(), userToken, approve);
} else { } else {
disposeFailureTask(task, flowTaskInfo.getFormId(), variables); disposeFailureTask(task, flowTaskInfo.getFormId(), variables, approve);
} }
userapproveService.save(userToken, approve, task, flowTaskInfo.getFormId()); userapproveService.save(userToken, approve, task, flowTaskInfo.getFormId());
successCount++; successCount++;
@ -475,7 +474,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
/** /**
* *
*/ */
private void disposeSucceedTask(Task task, ProcessDefinition processDefinition, Map<String, Object> variables, OcrTaskchildPicture model, String formId, UserToken userToken) { private void disposeSucceedTask(Task task, ProcessDefinition processDefinition, Map<String, Object> variables, OcrTaskchildPicture model, String formId, UserToken userToken, FlowApprove approve) throws Exception {
//进入下一个节点 //进入下一个节点
taskService.complete(task.getId(), variables); taskService.complete(task.getId(), variables);
updateAssignee(task.getProcessInstanceId(), task.getProcessDefinitionId(), processDefinition); updateAssignee(task.getProcessInstanceId(), task.getProcessDefinitionId(), processDefinition);
@ -488,17 +487,19 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
if (null != taskList && !taskList.isEmpty()) { if (null != taskList && !taskList.isEmpty()) {
taskData = taskList.get(0); taskData = taskList.get(0);
} }
OcrTaskchildPicture childPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId));
if (ObjectUtils.isEmpty(taskData)) { if (ObjectUtils.isEmpty(taskData)) {
model.setFinishtime(System.currentTimeMillis()); model.setFinishtime(System.currentTimeMillis());
model.setStates(SystemConstantsOa.OA_STATUS_TYPE_END); model.setStates(SystemConstantsOa.OA_STATUS_TYPE_END);
ocrTaskchildPictureService.updateById(model); ocrTaskchildPictureService.updateById(model);
OcrPicture picture = ocrPictureService.getById(model.getPictureid());
ocrTaskchildPictureService.sendFlowTaskResult(childPicture, picture, approve);
} else { } else {
//判断节点上的描述字段是否伟finale_judgment,如果是,记录到终审表中,如果终审表已经存在,不再重复记录 //判断节点上的描述字段是否伟finale_judgment,如果是,记录到终审表中,如果终审表已经存在,不再重复记录
if (StringUtils.isNotBlank(taskData.getDescription()) && taskData.getDescription().equals(SystemConstantsOa.OA_TASK_COMPLETE_FINALE_FORM)) { if (StringUtils.isNotBlank(taskData.getDescription()) && taskData.getDescription().equals(SystemConstantsOa.OA_TASK_COMPLETE_FINALE_FORM)) {
User user = userService.findByLoginname(formData.getAssignee()); User user = userService.findByLoginname(formData.getAssignee());
userFinalService.save(user.getId().toString(), formId); userFinalService.save(user.getId().toString(), formId);
} }
OcrTaskchildPicture childPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId));
this.sendMsg(childPicture, userToken); this.sendMsg(childPicture, userToken);
childPicture.setTaskId(taskData.getId()); childPicture.setTaskId(taskData.getId());
childPicture.setTaskname(taskData.getName()); childPicture.setTaskname(taskData.getName());
@ -512,7 +513,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
/** /**
* *
*/ */
private void disposeFailureTask(Task task, String formId, Map<String, Object> variables) { private void disposeFailureTask(Task task, String formId, Map<String, Object> variables, FlowApprove approve) throws Exception {
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult(); ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult();
//我这里以 流程定义key(oa_category_t定义的关键字逻辑唯一) + 业务表主键(请假表、调岗表等) + 业务表对应的servicename //我这里以 流程定义key(oa_category_t定义的关键字逻辑唯一) + 业务表主键(请假表、调岗表等) + 业务表对应的servicename
String businesskey = processInstance.getBusinessKey(); String businesskey = processInstance.getBusinessKey();
@ -535,8 +536,6 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
//设置流程结束状态 //设置流程结束状态
iFormCustomService.endForm(busskey[1], SystemConstantsOa.OA_STATUS_TYPE_REFUSE, assignee, task.getProcessInstanceId(), task.getName()); iFormCustomService.endForm(busskey[1], SystemConstantsOa.OA_STATUS_TYPE_REFUSE, assignee, task.getProcessInstanceId(), task.getName());
} }
//1、获取终止节点
List<EndEvent> endNodes = findEndFlowElement(task.getProcessDefinitionId());
//2、执行终止 //2、执行终止
List<Execution> executions = runtimeService.createExecutionQuery().parentId(task.getProcessInstanceId()).list(); List<Execution> executions = runtimeService.createExecutionQuery().parentId(task.getProcessInstanceId()).list();
List<String> executionIds = new ArrayList<>(); List<String> executionIds = new ArrayList<>();
@ -544,6 +543,9 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
OcrTaskchildPicture taskchildPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId)); OcrTaskchildPicture taskchildPicture = ocrTaskchildPictureService.getById(Long.parseLong(formId));
taskchildPicture.setFinishtime(System.currentTimeMillis()); taskchildPicture.setFinishtime(System.currentTimeMillis());
ocrTaskchildPictureService.updateById(taskchildPicture); ocrTaskchildPictureService.updateById(taskchildPicture);
OcrPicture picture = ocrPictureService.getById(taskchildPicture.getPictureid());
ocrTaskchildPictureService.sendFlowTaskResult(taskchildPicture, picture, approve);
} }
//发送消息 //发送消息
@ -1961,13 +1963,13 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
break; break;
case "and": case "and":
// 添加 "and" 查询条件 // 添加 "and" 查询条件
searchQuery.addRulesOp(usersearchchild.getSearchfield(),"and"); searchQuery.addRulesOp(usersearchchild.getSearchfield(), "and");
SearchQuery andQuery = this.formattingSearchType1(searchQuery, usersearchchild); SearchQuery andQuery = this.formattingSearchType1(searchQuery, usersearchchild);
searchQuery.setSearchQuery(andQuery); searchQuery.setSearchQuery(andQuery);
break; break;
case "or": case "or":
// 添加 "or" 查询条件 // 添加 "or" 查询条件
searchQuery.addRulesOp(usersearchchild.getSearchfield(),"or"); searchQuery.addRulesOp(usersearchchild.getSearchfield(), "or");
SearchQuery orQuery = this.formattingSearchType1(searchQuery, usersearchchild); SearchQuery orQuery = this.formattingSearchType1(searchQuery, usersearchchild);
searchQuery.setSearchQuery(orQuery); searchQuery.setSearchQuery(orQuery);
break; break;
@ -2010,8 +2012,8 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
case "time": case "time":
//格式化时间数据 //格式化时间数据
String[] times = usersearchchild.getSearchvalue().trim().replaceAll("\\s+", "").split("-"); String[] times = usersearchchild.getSearchvalue().trim().replaceAll("\\s+", "").split("-");
beginTime = DateUtil.parse(times[0]+" 00:00:00", "yyyy/MM/dd HH:mm:ss"); beginTime = DateUtil.parse(times[0] + " 00:00:00", "yyyy/MM/dd HH:mm:ss");
endTime = DateUtil.parse(times[1]+" 23:59:59", "yyyy/MM/dd HH:mm:ss"); endTime = DateUtil.parse(times[1] + " 23:59:59", "yyyy/MM/dd HH:mm:ss");
break; break;
default: default:
} }
@ -2062,14 +2064,14 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
//时间区间数据 //时间区间数据
//相等 //相等
if (queryType) { if (queryType) {
searchQuery.addGreaterEqual(usersearchchild.getSearchfield()+"Start", beginTime.getTime()); searchQuery.addGreaterEqual(usersearchchild.getSearchfield() + "Start", beginTime.getTime());
searchQuery.addLessEqual(usersearchchild.getSearchfield()+"End", endTime.getTime()); searchQuery.addLessEqual(usersearchchild.getSearchfield() + "End", endTime.getTime());
break; break;
} }
//不相等 //不相等
searchQuery.addRulesOp(usersearchchild.getSearchfield()+"Start","or"); searchQuery.addRulesOp(usersearchchild.getSearchfield() + "Start", "or");
searchQuery.addLess(usersearchchild.getSearchfield()+"Start", beginTime.getTime()); searchQuery.addLess(usersearchchild.getSearchfield() + "Start", beginTime.getTime());
searchQuery.addGreater(usersearchchild.getSearchfield()+"End", endTime.getTime()); searchQuery.addGreater(usersearchchild.getSearchfield() + "End", endTime.getTime());
break; break;
default: default:

@ -19,4 +19,6 @@ public interface PrevailCloudApi {
* @return * @return
*/ */
ApiPage<PictureSourceResult> pullPictureSource(PictureSourceParameter pictureSourceParameter) throws Exception; ApiPage<PictureSourceResult> pullPictureSource(PictureSourceParameter pictureSourceParameter) throws Exception;
void sendFlowTaskResult(String tenantId,String data) throws Exception;
} }

@ -48,6 +48,11 @@ public class PrevailCloudApiImpl implements PrevailCloudApi {
*/ */
private String pictureSourceUrl = "/pangu/jingwei/ocr/query/pb/task/pageList"; private String pictureSourceUrl = "/pangu/jingwei/ocr/query/pb/task/pageList";
/**
*
*/
private String sendResultUrl = "/pangu/jingwei/thirdclient/command/pb/approval/result";
/** /**
* *
*/ */
@ -116,4 +121,18 @@ public class PrevailCloudApiImpl implements PrevailCloudApi {
return null; return null;
} }
@Override
public void sendFlowTaskResult(String tenantId, String data) throws Exception {
RequestData requestData = ApiHelper.buildRequest(tenantId, apiConfig.getAccessKey(), apiConfig.getAccessCode(),data);//组装请求参数
String url = apiConfig.getInterfaceDomain()+sendResultUrl;
String requestBodyJson = JSONObject.toJSONString(requestData);
//入参
System.out.println("入参数据:"+requestBodyJson);
HttpParamers httpParamers = new HttpParamers(HttpMethod.POST);
httpParamers.setJsonParamer(requestBodyJson);
//发起请求
String responseJsonStr = HttpClient.doPost(url,httpParamers,null,apiConfig.getConnectTimeout(),apiConfig.getReadTimeout());
System.out.println(responseJsonStr);
}
} }

@ -149,7 +149,7 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
Page<OcrTaskChildPictureVo> getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId, UserToken userToken); Page<OcrTaskChildPictureVo> getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId, UserToken userToken);
void sendFlowTaskResult(OcrTaskchildPicture taskchildPicture, OcrPicture picture, FlowApprove flowApprove); void sendFlowTaskResult(OcrTaskchildPicture taskchildPicture, OcrPicture picture, FlowApprove flowApprove) throws Exception;
List<OcrTaskChildPictureVo> getDubiousfileList(List<String> pictureIds, String userNodeType); List<OcrTaskChildPictureVo> getDubiousfileList(List<String> pictureIds, String userNodeType);
} }

@ -19,6 +19,7 @@ import cn.jyjz.xiaoyao.oa.from.dataobject.Category;
import cn.jyjz.xiaoyao.oa.from.dataobject.Userapprove; import cn.jyjz.xiaoyao.oa.from.dataobject.Userapprove;
import cn.jyjz.xiaoyao.oa.from.service.CategoryService; import cn.jyjz.xiaoyao.oa.from.service.CategoryService;
import cn.jyjz.xiaoyao.oa.from.service.UserapproveService; import cn.jyjz.xiaoyao.oa.from.service.UserapproveService;
import cn.jyjz.xiaoyao.ocr.api.PrevailCloudApi;
import cn.jyjz.xiaoyao.ocr.dataDao.OcrTaskchildPictureMybatisDao; import cn.jyjz.xiaoyao.ocr.dataDao.OcrTaskchildPictureMybatisDao;
import cn.jyjz.xiaoyao.ocr.dataobject.*; import cn.jyjz.xiaoyao.ocr.dataobject.*;
import cn.jyjz.xiaoyao.ocr.dto.ApproveNodeDto; import cn.jyjz.xiaoyao.ocr.dto.ApproveNodeDto;
@ -95,6 +96,9 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
@Resource @Resource
private IOcrPictureDuplicateHisService pictureDuplicateHisService; private IOcrPictureDuplicateHisService pictureDuplicateHisService;
@Resource
private PrevailCloudApi prevailCloudApi;
/** /**
* *
* *
@ -717,7 +721,7 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
} }
@Override @Override
public void sendFlowTaskResult(OcrTaskchildPicture taskchildPicture, OcrPicture picture, FlowApprove flowApprove) { public void sendFlowTaskResult(OcrTaskchildPicture taskchildPicture, OcrPicture picture, FlowApprove flowApprove) throws Exception {
FlowResultDto flowResultDto = new FlowResultDto(); FlowResultDto flowResultDto = new FlowResultDto();
flowResultDto.setTenantNo(picture.getTenantId()); flowResultDto.setTenantNo(picture.getTenantId());
flowResultDto.setAccountNo(Long.parseLong(picture.getPictureid())); flowResultDto.setAccountNo(Long.parseLong(picture.getPictureid()));
@ -742,8 +746,7 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
resultDto.setTimestamp(System.currentTimeMillis()); resultDto.setTimestamp(System.currentTimeMillis());
resultDto.setData(JSON.toJSONString(flowResultDto)); resultDto.setData(JSON.toJSONString(flowResultDto));
System.out.println(JSON.toJSONString(resultDto)); System.out.println(JSON.toJSONString(resultDto));
String post = HttpUtil.post(dataUrl, JSONObject.toJSONString(resultDto)); prevailCloudApi.sendFlowTaskResult(picture.getTenantId().toString(),JSON.toJSONString(resultDto));
System.out.println(post);
} }

Loading…
Cancel
Save