Browse Source

oaform修改

master
dimengzhe 5 months ago
parent
commit
e0768291d4
  1. 29
      yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaFormRest.java
  2. 27
      yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java
  3. 94
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java
  4. 66
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/BusinessVariablesDto.java
  5. 4
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java
  6. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/DelegateDto.java
  7. 6
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/SubmitDto.java
  8. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskDto.java
  9. 99
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java

29
yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaFormRest.java

@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.oa.biz.oaform.*;
import com.yxt.anrui.oa.biz.oaform.flowable.*;
import com.yxt.anrui.oa.feign.flowable.flow.BusinessVariables;
import com.yxt.anrui.oa.feign.flowable.flow2.FlowDelegateQuery;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -58,10 +57,10 @@ public class OaFormRest {
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody CompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
return oaFormService.complete(bv);
public ResultBean complete(@Valid @RequestBody CompleteDto dto) {
BusinessVariablesDto businessVariables = new BusinessVariablesDto();
BeanUtil.copyProperties(dto, businessVariables);
return oaFormService.complete(businessVariables);
}
@ApiOperation(value = "获取上一个环节")
@ -78,33 +77,33 @@ public class OaFormRest {
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean reject(@Valid @RequestBody TaskQuery query) {
return oaFormService.reject(query);
public ResultBean reject(@Valid @RequestBody TaskDto dto) {
return oaFormService.reject(dto);
}
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody TaskQuery query) {
return oaFormService.revokeProcess(query);
public ResultBean revokeProcess(@Valid @RequestBody TaskDto dto) {
return oaFormService.revokeProcess(dto);
}
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody TaskQuery query) {
return oaFormService.breakProcess(query);
public ResultBean breakProcess(@Valid @RequestBody TaskDto dto) {
return oaFormService.breakProcess(dto);
}
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
public ResultBean delegate(@RequestBody DelegateQuery query) {
return oaFormService.delegate(query);
public ResultBean delegate(@RequestBody DelegateDto dto) {
return oaFormService.delegate(dto);
}
@ApiOperation(value = "转办")
@PutMapping(value = "/assignTask")
@ResponseBody
public ResultBean assignTask(@RequestBody DelegateQuery query) {
return oaFormService.assignTask(query);
public ResultBean assignTask(@RequestBody DelegateDto dto) {
return oaFormService.assignTask(dto);
}
}

27
yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java

@ -25,13 +25,11 @@
*********************************************************/
package com.yxt.anrui.oa.api;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.oa.biz.oaform.flowable.CompleteDto;
import com.yxt.anrui.oa.biz.oaform.flowable.NodeQuery;
import com.yxt.anrui.oa.biz.oaform.flowable.NodeVo;
import com.yxt.anrui.oa.biz.oaform.flowable.TaskQuery;
import com.yxt.anrui.oa.biz.oaform.flowable.TaskDto;
import com.yxt.anrui.oa.biz.oamendapply.*;
import com.yxt.anrui.oa.feign.flowable.flow.BusinessVariables;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -101,4 +99,27 @@ public class OaMendApplyRest {
return oaMendApplyService.submit(dto);
}
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody CompleteDto dto) {
return oaMendApplyService.complete(dto);
}
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean reject(@Valid @RequestBody TaskDto dto) {
return oaMendApplyService.reject(dto);
}
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
public ResultBean<List<NodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap NodeQuery query) {
return oaMendApplyService.getPreviousNodesForReject(query);
}
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
public ResultBean<List<NodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap NodeQuery query) {
return oaMendApplyService.getNextNodesForSubmit(query);
}
}

94
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java

@ -1,19 +1,15 @@
package com.yxt.anrui.oa.biz.oaform;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.oa.biz.oaform.flowable.*;
import com.yxt.anrui.oa.biz.oamendapply.OaMendApply;
import com.yxt.anrui.oa.biz.oamendapply.SubmitOaMendApplyDto;
import com.yxt.anrui.oa.feign.base.BillNo;
import com.yxt.anrui.oa.feign.base.Rule;
import com.yxt.anrui.oa.feign.flowable.flow.BusinessVariables;
import com.yxt.anrui.oa.feign.flowable.flow.FlowableFeign;
import com.yxt.anrui.oa.feign.flowable.flow.ProcDefEnum;
import com.yxt.anrui.oa.feign.flowable.flow.UpdateFlowFieldVo;
import com.yxt.anrui.oa.feign.flowable.flow2.FlowDelegateQuery;
import com.yxt.anrui.oa.feign.flowable.flow2.FlowFeign;
@ -37,7 +33,6 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import java.util.*;
@ -164,17 +159,12 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
return baseMapper.updateFlowFiled(map);
}
public ResultBean complete(BusinessVariables bv) {
public ResultBean complete(BusinessVariablesDto dto) {
ResultBean rb = ResultBean.fireFail();
String formSid = bv.getFormVariables().get("formSid").toString();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(dto, bv);
String businessSid = bv.getBusinessSid();
OaForm oaForm = fetchBySid(formSid);
//添加网关
Map<String, Object> variables = bv.getFormVariables();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
bv.setFormVariables(variables);
OaForm oaForm = fetchBySid(businessSid);
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(oaForm.getDeptSid()).getData();
bv.setOrgSidPath(deptVo.getOrgSidPath());
bv.setModelId(oaForm.getProcDefId());
@ -185,8 +175,7 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
}
UpdateFlowFieldVo ufVo = resultBean.getData();
OaFormFlowDto oaFormFlowDto = new OaFormFlowDto();
BeanUtil.copyProperties(ufVo, oaFormFlowDto, "sid");
oaFormFlowDto.setSid(formSid);
BeanUtil.copyProperties(ufVo, oaFormFlowDto);
updateFlow(oaFormFlowDto);
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
@ -209,7 +198,7 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
ufVo.setProcDefId(oaForms.getProcDefId());
ufVo.setProcInsId(oaForms.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setAppMap((Map<String, Object>) bv.getFormVariables().get("app"));
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName(oaForms.getFormType());
messageFlowableQuery.setMsgContent(oaForms.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
@ -265,30 +254,25 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
}
public ResultBean reject(TaskQuery query) {
public ResultBean reject(TaskDto dto) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
String businessSid = dto.getBusinessSid();
OaForm oaForm = fetchBySid(businessSid);
if (oaForm == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = oaForm.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (StringUtils.isBlank(query.getComment())) {
if (businessTaskId.equals(dto.getTaskId())) {
if (StringUtils.isBlank(dto.getComment())) {
return rb.setMsg("请填写意见");
}
if (StringUtils.isBlank(query.getUserSid())) {
if (StringUtils.isBlank(dto.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
//网关
BeanUtil.copyProperties(dto, flowTaskVo);
Map<String, Object> variables = dto.getFormVariables();
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
@ -316,7 +300,7 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
ufVo.setProcInsId(oaForms.getProcInstId());
ufVo.setProcDefId(oaForms.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setAppMap((Map<String, Object>) dto.getFormVariables().get("app"));
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName(oaForms.getFormType());
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(oaForms.getProcInstId());
@ -340,17 +324,17 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(TaskQuery query) {
public ResultBean revokeProcess(TaskDto dto) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
if (StringUtils.isBlank(dto.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
OaForm oaForm = fetchBySid(query.getBusinessSid());
OaForm oaForm = fetchBySid(dto.getBusinessSid());
String businessTaskId = oaForm.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (businessTaskId.equals(dto.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
BeanUtil.copyProperties(dto, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
@ -364,23 +348,23 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
return rb.setMsg("操作失败,提交的数据不一致!");
}
public ResultBean breakProcess(TaskQuery query) {
public ResultBean breakProcess(TaskDto dto) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
if (StringUtils.isBlank(dto.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
if (StringUtils.isBlank(dto.getComment())) {
return rb.setMsg("请填写意见");
}
OaForm oaForm = fetchBySid(query.getBusinessSid());
OaForm oaForm = fetchBySid(dto.getBusinessSid());
String businessTaskId = oaForm.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(oaForm.getCreateBySid())) {
if (dto.getUserSid().equals(oaForm.getCreateBySid())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
BeanUtil.copyProperties(dto, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
@ -390,9 +374,9 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
updateFlow(oaFormFlowDto);
return rb.success().setData(resultBean.getData());
} else {
if (businessTaskId.equals(query.getTaskId())) {
if (businessTaskId.equals(dto.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
BeanUtil.copyProperties(dto, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
@ -407,18 +391,18 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean delegate(DelegateQuery query) {
public ResultBean delegate(DelegateDto dto) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
BeanUtil.copyProperties(dto, delegateQuery);
flowFeign.delegate(delegateQuery);
return rb.success();
}
public ResultBean assignTask(DelegateQuery query) {
public ResultBean assignTask(DelegateDto dto) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
BeanUtil.copyProperties(dto, delegateQuery);
flowFeign.assignTask(delegateQuery);
return rb.success();
}
@ -508,7 +492,9 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
bv.setTaskDefKey(oaForm.getNodeId());
bv.setComment("重新提交");
bv.setInstanceId(oaForm.getProcInstId());
return complete(bv);
BusinessVariablesDto businessVariablesDto = new BusinessVariablesDto();
BeanUtil.copyProperties(bv, businessVariablesDto);
return complete(businessVariablesDto);
}
return rb;
@ -516,11 +502,13 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
private synchronized int submitBusinessData(SubmitDto dto) {
int r = 0;
if (dto.isNew()) {
OaForm oaForm = fetchBySid(dto.getBusinessSid());
if (StringUtils.isBlank(oaForm.getTaskId()) && StringUtils.isBlank(dto.getNextNodeSid())) {
//新提交
r = 1;
} else {
} else if (StringUtils.isNotBlank(oaForm.getTaskId()) && oaForm.getTaskId().equals(dto.getNextNodeSid())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
return r;
}
@ -551,8 +539,10 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
bv.setNextNodeUserSids(organizationVo.getManagerSid());
} else if (rule == OaFormRuleEnum.INSTITUTION.getRule()) {
//获取本机构链(含集团、事业部、分公司部门)中角色的用户(角色sid,发起人orgsidPath)
} else if (rule == OaFormRuleEnum.OTHER_INSTITUTION.getRule()) {
//获取其他机构链角色的用户(角色sid,机构sid])
} else {
bv.setNextNodeUserSids("");

66
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/BusinessVariablesDto.java

@ -0,0 +1,66 @@
package com.yxt.anrui.oa.biz.oaform.flowable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.HashMap;
import java.util.Map;
/**
* @description:
* @author: dimengzhe
* @date: 2025/1/13
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BusinessVariablesDto {
/**
* 分公司sid
*/
public static final String ORGPATH = "orgPath";
/**
* 流程定义的id
*/
private String modelId;
/**
* 审批意见
*/
private String comment;
/**
* 流程实例的id
*/
private String instanceId;
/**
* taskId
*/
private String taskId;
/**
* 当前用户的id
*/
private String userSid;
/**
* 当前用户部门的全路径
*/
private String orgSidPath;
/**
* 业务sid
*/
private String businessSid;
/**
* 环节定义的ID
*/
private String taskDefKey;
/**
* nextNodeUserSids 下一环节的用户sid
*/
private String nextNodeUserSids;
/**
* 业务参数按需传递
*/
private Map<String, Object> formVariables = new HashMap<>();
}

4
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java

@ -25,9 +25,7 @@ public class CompleteDto implements Dto {
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id(PC)")
private String instanceId;
@ApiModelProperty(value = "流程id(移动)")
@ApiModelProperty(value = "流程实例id")
private String procInsId;
@ApiModelProperty(value = "意见")
private String comment;

2
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/DelegateQuery.java → yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/DelegateDto.java

@ -9,7 +9,7 @@ import lombok.Data;
* @date: 2025/1/9
**/
@Data
public class DelegateQuery {
public class DelegateDto {
@ApiModelProperty
private String userSid;

6
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/SubmitDto.java

@ -26,6 +26,8 @@ public class SubmitDto {
private String nextNodeUserSids;
@ApiModelProperty("下一处理人获取规则")
private int rule;
@ApiModelProperty("是否是首次提交")
private boolean isNew;
// @ApiModelProperty("是否是首次提交")
// private boolean isNew;
@ApiModelProperty("任务id")
private String nextNodeSid;
}

2
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskQuery.java → yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskDto.java

@ -13,7 +13,7 @@ import java.util.Map;
* @date: 2025/1/9
**/
@Data
public class TaskQuery {
public class TaskDto {
/**
* 终止驳回撤回

99
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java

@ -28,23 +28,13 @@ package com.yxt.anrui.oa.biz.oamendapply;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.oa.biz.oaappendix.OaAppendix;
import com.yxt.anrui.oa.biz.oaappendix.OaAppendixService;
import com.yxt.anrui.oa.biz.oaform.OaForm;
import com.yxt.anrui.oa.biz.oaform.OaFormDto;
import com.yxt.anrui.oa.biz.oaform.OaFormService;
import com.yxt.anrui.oa.biz.oaform.flowable.OaFormFlowDto;
import com.yxt.anrui.oa.biz.oaform.flowable.SubmitDto;
import com.yxt.anrui.oa.biz.oaform.flowable.*;
import com.yxt.anrui.oa.feign.file.OaFileEnum;
import com.yxt.anrui.oa.feign.flowable.flow.BusinessVariables;
import com.yxt.anrui.oa.feign.flowable.flow.ProcDefEnum;
import com.yxt.anrui.oa.feign.flowable.flow.UpdateFlowFieldVo;
import com.yxt.anrui.oa.feign.flowable.flow2.FlowFeign;
import com.yxt.anrui.oa.feign.message.MessageFeign;
import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.common.base.config.component.FileUploadComponent;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -52,13 +42,11 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.*;
@Service
public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, OaMendApply> {
@ -164,18 +152,15 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
entity.setFormSid(resultBean.getData());
baseMapper.insert(entity);
// 处理附件
saveFiles(sid, files, OaFileEnum.OAMENDAPPLY.getAttachType());
sid = entity.getSid();
} else {
// 更新操作
OaMendApply entity = fetchBySid(sid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
// 处理附件
saveFiles(sid, files, OaFileEnum.OAMENDAPPLY.getAttachType());
}
// 处理附件
saveFiles(sid, files, OaFileEnum.OAMENDAPPLY.getAttachType());
return rb.success().setData(sid);
}
@ -214,21 +199,7 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
submitDto.setProcDefId(ProcDefEnum.OAMENDAPPLY.getProDefId());
//若申请单中选择了下一处理人,则需赋值给下一处理人字段
submitDto.setNextNodeUserSids("");
boolean isNew = false;
if (StringUtils.isBlank(dto.getSid())) {
isNew = true;
} else {
OaForm oaForm = oaFormService.fetchBySid(businessSid);
String businessTaskId = oaForm.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
isNew = true;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
isNew = false;
}
}
submitDto.setNew(isNew);
submitDto.setNextNodeSid(dto.getTaskId());
return oaFormService.submit(submitDto);
}
@ -242,4 +213,66 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
delBySids(sids);
return rb.success();
}
/**
* 办理同意
*
* @param dto
* @return
*/
public ResultBean complete(CompleteDto dto) {
Map<String, Object> formVariables = dto.getFormVariables();
//添加网关
// formVariables.put("", "");
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", dto.getBusinessSid());
formVariables.put("app", appMap);
dto.setFormVariables(formVariables);
BusinessVariablesDto businessVariablesDto = new BusinessVariablesDto();
BeanUtil.copyProperties(dto, businessVariablesDto);
return oaFormService.complete(businessVariablesDto);
}
/**
* 驳回
*
* @param dto
* @return
*/
public ResultBean reject(TaskDto dto) {
Map<String, Object> formVariables = dto.getFormVariables();
//添加网关
// formVariables.put("", "");
//若有移动端,则需和移动端沟通具体参数,若没有删去即可。
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", dto.getBusinessSid());
formVariables.put("app", appMap);
dto.setFormVariables(formVariables);
return oaFormService.reject(dto);
}
public ResultBean<List<NodeVo>> getPreviousNodesForReject(NodeQuery query) {
Map<String, Object> formVariables = query.getFormVariables();
//添加网关
// formVariables.put("", "");
//若有移动端,则需和移动端沟通具体参数,若没有删去即可。
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", query.getBusinessSid());
formVariables.put("app", appMap);
query.setFormVariables(formVariables);
return oaFormService.getPreviousNodesForReject(query);
}
public ResultBean<List<NodeVo>> getNextNodesForSubmit(NodeQuery query) {
Map<String, Object> formVariables = query.getFormVariables();
//添加网关
// formVariables.put("", "");
//若有移动端,则需和移动端沟通具体参数,若没有删去即可。
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", query.getBusinessSid());
formVariables.put("app", appMap);
query.setFormVariables(formVariables);
return oaFormService.getNextNodesForSubmit(query);
}
}
Loading…
Cancel
Save