Browse Source

Merge remote-tracking branch 'origin/master'

master
ligaode 4 months ago
parent
commit
36f8bff5b5
  1. 9
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/UpdateFlowFieldVo.java
  2. 5
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java
  3. 6
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java
  4. 5
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java
  5. 3
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.java
  6. 11
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.xml
  7. 7
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java
  8. 10
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java
  9. 65
      yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaFormRest.java
  10. 56
      yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java
  11. 7
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaForm.java
  12. 30
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormDto.java
  13. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormMapper.java
  14. 8
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormMapper.xml
  15. 366
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java
  16. 14
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java
  17. 16
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/DelegateQuery.java
  18. 21
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/NodeQuery.java
  19. 14
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/NodeVo.java
  20. 27
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/OaFormFlowDto.java
  21. 14
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskQuery.java
  22. 5
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApply.java
  23. 4
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDto.java
  24. 11
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyMapper.java
  25. 33
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyMapper.xml
  26. 385
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java
  27. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/SubmitOaMendApplyDto.java
  28. 25
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyNodeQuery.java
  29. 9
      yxt-oa/src/main/java/com/yxt/anrui/oa/feign/flowable/flow/UpdateFlowFieldVo.java

9
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/UpdateFlowFieldVo.java

@ -11,6 +11,7 @@ public class UpdateFlowFieldVo {
private String taskDefKey;
private String taskId;
private String nextNodeUserSids;
private String name;
public String getNextNodeUserSids() {
return nextNodeUserSids;
@ -67,4 +68,12 @@ public class UpdateFlowFieldVo {
public void setTaskId(String taskId) {
this.taskId = taskId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

5
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java

@ -333,6 +333,7 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
updateFlowFieldVo.setTaskDefKey(vo.getTaskDefKey());
updateFlowFieldVo.setProcDefId(bv.getModelId());
updateFlowFieldVo.setSid(bv.getBusinessSid());
updateFlowFieldVo.setName(processDefinition.getName());
return rb.success().setData(updateFlowFieldVo).setMsg("流程启动成功");
}
}
@ -358,6 +359,7 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
updateFlowFieldVo.setTaskDefKey(vo.getTaskDefKey());
updateFlowFieldVo.setProcDefId(bv.getModelId());
updateFlowFieldVo.setSid(bv.getBusinessSid());
updateFlowFieldVo.setName(processDefinition.getName());
return rb.success().setData(updateFlowFieldVo).setMsg("流程启动成功");
}
}
@ -367,6 +369,7 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
updateFlowFieldVo.setTaskDefKey(task_def_key_);
updateFlowFieldVo.setProcDefId(bv.getModelId());
updateFlowFieldVo.setSid(bv.getBusinessSid());
updateFlowFieldVo.setName(processDefinition.getName());
return rb.success().setData(updateFlowFieldVo).setMsg("流程启动成功");
}
@ -762,7 +765,7 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> {
List<String> uss = Arrays.asList(userSids.toString().split(","));
List<String> uniqueList = new ArrayList<String>(new HashSet<String>(uss));
uniqueList.removeIf(taskinstUserSidList::contains);
String userSidss = String.join(",",uniqueList);
String userSidss = String.join(",", uniqueList);
mfq.setUserSids(userSidss);
// mfq.setUserSids(userSids.toString());
mfq.setOrgPath(createrOrgPath);

6
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java

@ -224,4 +224,10 @@ public interface SysOrganizationFeign {
@ResponseBody
@ApiOperation("根据code查询组织信息")
ResultBean<List<SysOrganization>> selectByOrgCodeAndPsid(@RequestParam("orgCode") String orgCode, @RequestParam("pSid") String pSid);
@GetMapping("/selectStaffListByUseOrgSid")
@ResponseBody
@ApiOperation("当前分公司销售专员")
ResultBean<List<SysFinanceVo>> selectStaffListByUseOrgSid(@RequestParam("useOrgSid") String useOrgSid);
}

5
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java

@ -231,4 +231,9 @@ public class SysOrganizationFeignFallback implements SysOrganizationFeign {
public ResultBean<List<SysOrganization>> selectByOrgCodeAndPsid(String orgCode, String pSid) {
return null;
}
@Override
public ResultBean<List<SysFinanceVo>> selectStaffListByUseOrgSid(String useOrgSid) {
return null;
}
}

3
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.java

@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.portal.api.sysorganization.*;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.anrui.terminal.api.base.common.FinanceVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -140,4 +139,6 @@ public interface SysOrganizationMapper extends BaseMapper<SysOrganization> {
List<SysOrganizationVo> tranfour(String sid);
List<SysOrganizationVo> tranFive(String sid);
List<SysFinanceVo> selectStaffListByUseOrgSid(@Param("orgSidPath") String orgSidPath);
}

11
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.xml

@ -315,4 +315,15 @@
WHERE orgAttributeKey = 'fwz_003'
AND psid = #{sid}
</select>
<select id="selectStaffListByUseOrgSid" resultType="com.yxt.anrui.portal.api.sysorganization.SysFinanceVo">
SELECT DISTINCT
u.sid userSid,
s.`name`
FROM sys_user as u
LEFT JOIN sys_user_role as ur ON u.sid = ur.userSid
LEFT JOIN sys_staffinfo as s ON u.staffSid = s.sid
LEFT JOIN sys_staff_org as o ON o.staffSid = s.sid
WHERE ur.roleSid = '89d7f310-a221-405b-858e-dd650e0993d5'
AND o.orgSidPath LIKE concat('%', #{orgSidPath}, '%')
</select>
</mapper>

7
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java

@ -498,4 +498,11 @@ public class SysOrganizationRest implements SysOrganizationFeign {
List<SysOrganization> sysOrganization = sysOrganizationService.selectByOrgCodeAndPsid(orgCode,pSid);
return rb.success().setData(sysOrganization);
}
@Override
public ResultBean<List<SysFinanceVo>> selectStaffListByUseOrgSid(String useOrgSid) {
ResultBean rb = ResultBean.fireFail();
List<SysFinanceVo> voList = sysOrganizationService.selectStaffListByUseOrgSid(useOrgSid);
return rb.success().setData(voList);
}
}

10
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java

@ -739,4 +739,14 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
public List<SysOrganizationVo> tranFive(String sid) {
return baseMapper.tranFive(sid);
}
public List<SysFinanceVo> selectStaffListByUseOrgSid(String useOrgSid) {
SysOrganization sysOrganization = fetchById(useOrgSid);
if (null != sysOrganization) {
String orgSidPath = sysOrganization.getOrgSidPath();
List<SysFinanceVo> list = baseMapper.selectStaffListByUseOrgSid(orgSidPath);
return list;
}
return new ArrayList<>();
}
}

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

@ -1,16 +1,20 @@
package com.yxt.anrui.oa.api;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.oa.biz.oaform.*;
import com.yxt.anrui.oa.biz.oahireapply.OaHireApplyDetailsVo;
import com.yxt.anrui.oa.biz.oamendapply.OaMendApplyQuery;
import com.yxt.anrui.oa.biz.oamendapply.OaMendApplyVo;
import com.yxt.anrui.oa.biz.oaform.flowable.*;
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;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* @description: 基础表单
* @author: dimengzhe
@ -31,11 +35,11 @@ public class OaFormRest {
return rb.success().setData(pv);
}
@ApiOperation("新增或修改")
/*@ApiOperation("新增或修改")
@PostMapping("/save")
ResultBean<String> save(@RequestBody OaFormDto dto) {
return oaFormService.saveOrUpdateForm(dto);
}
}*/
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
@ -51,5 +55,56 @@ public class OaFormRest {
return rb.success();
}
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody CompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
return oaFormService.complete(bv);
}
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
public ResultBean<List<NodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap NodeQuery query) {
return oaFormService.getPreviousNodesForReject(query);
}
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
public ResultBean<List<NodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap NodeQuery query) {
return oaFormService.getNextNodesForSubmit(query);
}
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean reject(@Valid @RequestBody TaskQuery query) {
return oaFormService.reject(query);
}
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody TaskQuery query) {
return oaFormService.revokeProcess(query);
}
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody TaskQuery query) {
return oaFormService.breakProcess(query);
}
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
public ResultBean delegate(@RequestBody DelegateQuery query) {
return oaFormService.delegate(query);
}
@ApiOperation(value = "转办")
@PutMapping(value = "/assignTask")
@ResponseBody
public ResultBean assignTask(@RequestBody DelegateQuery query) {
return oaFormService.assignTask(query);
}
}

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

@ -25,22 +25,15 @@
*********************************************************/
package com.yxt.anrui.oa.api;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.oa.biz.oaleaveapply.flowable.*;
import com.yxt.anrui.oa.biz.oamendapply.*;
import com.yxt.anrui.oa.biz.oamendapply.flowable.*;
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;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import javax.validation.Valid;
/**
@ -108,54 +101,5 @@ public class OaMendApplyRest {
return oaMendApplyService.submit(dto);
}
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody OaLeaveApplyCompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
return oaMendApplyService.complete(bv);
}
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
public ResultBean<List<OaMendApplyNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap OaMendApplyNodeQuery query) {
return oaMendApplyService.getPreviousNodesForReject(query);
}
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
public ResultBean<List<OaMendApplyNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap OaMendApplyNodeQuery query) {
return oaMendApplyService.getNextNodesForSubmit(query);
}
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean reject(@Valid @RequestBody OaMendApplyTaskQuery query) {
return oaMendApplyService.reject(query);
}
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody OaMendApplyTaskQuery query) {
return oaMendApplyService.revokeProcess(query);
}
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody OaMendApplyTaskQuery query) {
return oaMendApplyService.breakProcess(query);
}
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
public ResultBean delegate(@RequestBody OaMendApplyDelegateQuery query) {
return oaMendApplyService.delegate(query);
}
@ApiOperation(value = "转办")
@PutMapping(value = "/assignTask")
@ResponseBody
public ResultBean assignTask(@RequestBody OaMendApplyDelegateQuery query) {
return oaMendApplyService.assignTask(query);
}
}

7
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaForm.java

@ -15,6 +15,11 @@ import java.util.Date;
@Data
public class OaForm extends BaseEntity {
private static final long serialVersionUID = 2307297366703765992L;
@ApiModelProperty("表单类别-流程名称")
private String formType;
@ApiModelProperty("标题")
private String title;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("创建人")
@ -44,8 +49,6 @@ public class OaForm extends BaseEntity {
private String createOrgSid;
@ApiModelProperty("创建组织")
private String createOrgName;
@ApiModelProperty("关联审批单")
private String linkFormSids;
}

30
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormDto.java

@ -14,35 +14,7 @@ import java.util.Date;
@Data
public class OaFormDto {
private String sid;
private String createBySid;
@ApiModelProperty("创建人")
private String createByName;
private String orgSidPath;
private String billNo;
@ApiModelProperty("公司sid")
private String useOrgSid;
@ApiModelProperty("公司名称")
private String useOrgName;
@ApiModelProperty("部门sid")
private String deptSid;
@ApiModelProperty("部门名称")
private String deptName;
@ApiModelProperty("办结日期")
private String finishTime;
@ApiModelProperty("实例id")
private String procInstId;
@ApiModelProperty("流程定义id")
private String procDefId;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("环节id")
private String nodeId;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("创建组织")
private String createOrgName;
@ApiModelProperty("关联审批单")
private String linkFormSids;
}

2
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormMapper.java

@ -21,4 +21,6 @@ public interface OaFormMapper extends BaseMapper<OaForm> {
IPage<OaFormVo> selectPageVo(IPage<OaForm> page, @Param(Constants.WRAPPER) QueryWrapper<OaForm> qw);
int updateFlowFiled(Map<String, Object> map);
String selectNum(String billNo);
}

8
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormMapper.xml

@ -31,4 +31,12 @@
</if>
WHERE sid = #{sid}
</update>
<select id="selectNum" resultType="java.lang.String">
select RIGHT(billNo, 4)
from oa_form
where billNo LIKE concat(#{billNo}, '%')
order by billNo desc
limit 1
</select>
</mapper>

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

@ -1,23 +1,43 @@
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.yxt.anrui.oa.biz.oahireapply.OaHireApplyDetailsVo;
import com.yxt.anrui.oa.biz.oaleaveapply.OaLeaveApply;
import com.yxt.anrui.oa.biz.oaleaveapply.OaLeaveApplyQuery;
import com.yxt.anrui.oa.biz.oaleaveapply.OaLeaveApplyVo;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.oa.biz.oaform.flowable.*;
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.UpdateFlowFieldVo;
import com.yxt.anrui.oa.feign.flowable.flow2.FlowDelegateQuery;
import com.yxt.anrui.oa.feign.flowable.flow2.FlowFeign;
import com.yxt.anrui.oa.feign.flowable.flowtask.FlowTaskFeign;
import com.yxt.anrui.oa.feign.flowable.flowtask.FlowTaskVo;
import com.yxt.anrui.oa.feign.flowable.flowtask.LatestTaskVo;
import com.yxt.anrui.oa.feign.message.MessageFeign;
import com.yxt.anrui.oa.feign.message.MessageFlowVo;
import com.yxt.anrui.oa.feign.message.MessageFlowableQuery;
import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.anrui.oa.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.oa.feign.sysuser.SysUserFeign;
import com.yxt.anrui.oa.feign.sysuser.SysUserVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
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.context.annotation.Bean;
import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
* @description:
@ -26,7 +46,22 @@ import java.util.Map;
**/
@Service
public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
public ResultBean<String> saveOrUpdateForm(OaFormDto dto) {
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysUserFeign sysUserFeign;
/* public ResultBean<String> saveOrUpdateForm(OaFormDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {//新增
@ -40,6 +75,49 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
baseMapper.updateById(oaForm);
}
return rb.success().setData(sid);
}*/
public ResultBean<String> saveOaForm(OaFormDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
OaForm oaForm = new OaForm();
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgSidPath()).getData();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
String deptName = "";
String deptSid = "";
List<String> split = Arrays.asList(dto.getOrgSidPath().split("/"));
if (split.size() > 1) {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData();
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
deptName = sysOrganization1.getName();
deptSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
deptName = sysOrganization.getName();
deptSid = sysOrganization.getSid();
}
// 生成单据编号
String billNo = dto.getBillNo() + useOrgSid + DateUtil.format(DateUtil.date(), "yyyyMM");
String i = selectNum(billNo);
if (StringUtils.isNotBlank(i)) {
billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue());
} else {
billNo = Rule.getBillNo(billNo, 0);
}
oaForm.setUseOrgSid(useOrgSid);
oaForm.setUseOrgName(organizationVo.getName());
oaForm.setDeptSid(deptSid);
oaForm.setDeptName(deptName);
oaForm.setBillNo(billNo);
oaForm.setCreateOrgSid(useOrgSid);
oaForm.setCreateOrgName(organizationVo.getName());
// 获取用户信息
SysUserVo sysUserVo = sysUserFeign.fetchBySid(dto.getCreateBySid()).getData();
oaForm.setCreateByName(sysUserVo.getName());
baseMapper.insert(oaForm);
return rb.success().setData(oaForm.getSid());
}
public ResultBean<OaFormDetailsVo> fetchDetailsBySid(String sid) {
@ -66,7 +144,281 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
return rb.success();
}
public int updateFlow(Map<String, Object> map) {
public int updateFlow(OaFormFlowDto oaFormFlowDto) {
OaForm oaForm = fetchBySid(oaFormFlowDto.getSid());
if (StringUtils.isBlank(oaForm.getFormType())) {
oaForm.setFormType(oaFormFlowDto.getName());
oaForm.setTitle(oaForm.getCreateByName() + "提交的" + oaFormFlowDto.getName());
updateFormType(oaForm);
}
Map<String, Object> map = BeanUtil.beanToMap(oaFormFlowDto);
return baseMapper.updateFlowFiled(map);
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
OaForm oaForm = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
//网关
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
bv.setFormVariables(variables);
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(oaForm.getDeptSid()).getData();
bv.setOrgSidPath(deptVo.getOrgSidPath());
bv.setModelId(oaForm.getProcDefId());
if (bv.getTaskId().equals(oaForm.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
OaFormFlowDto oaFormFlowDto = new OaFormFlowDto();
BeanUtil.copyProperties(ufVo, oaFormFlowDto);
updateFlow(oaFormFlowDto);
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
} else {
//极光推送
oaForm = fetchBySid(businessSid);
//==================================添加线程
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
OaForm oaForms = oaForm;
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcDefId(oaForms.getProcDefId());
ufVo.setProcInsId(oaForms.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName(oaForms.getFormType());
messageFlowableQuery.setMsgContent(oaForms.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle(oaForms.getFormType());
messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//==================================添加线程
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean<List<NodeVo>> getPreviousNodesForReject(NodeQuery query) {
ResultBean<List<NodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//查询业务信息
OaForm oaForm = fetchBySid(query.getBusinessSid());
//网关
bv.setModelId(oaForm.getProcDefId());
bv.setFormVariables(variables);
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<NodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), NodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<NodeVo>> getNextNodesForSubmit(NodeQuery query) {
ResultBean<List<NodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//查询业务信息
OaForm oaForm = fetchBySid(query.getBusinessSid());
//网关
bv.setModelId(oaForm.getProcDefId());
bv.setFormVariables(variables);
//=======================================
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<NodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), NodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean reject(TaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.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())) {
return rb.setMsg("请填写意见");
}
if (StringUtils.isBlank(query.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);
//网关
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
OaFormFlowDto oaFormFlowDto = new OaFormFlowDto();
BeanUtil.copyProperties(ufVo, oaFormFlowDto);
updateFlow(oaFormFlowDto);
//极光推送
oaForm = fetchBySid(businessSid);
//==================================添加线程
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
OaForm oaForms = oaForm;
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcInsId(oaForms.getProcInstId());
ufVo.setProcDefId(oaForms.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName(oaForms.getFormType());
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(oaForms.getProcInstId());
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(oaForms.getCreateBySid())) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
messageFlowableQuery.setMsgContent(oaForms.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle(oaForms.getFormType());
messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//==================================添加线程
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(TaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
OaForm oaForm = fetchBySid(query.getBusinessSid());
String businessTaskId = oaForm.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
OaFormFlowDto oaFormFlowDto = new OaFormFlowDto();
BeanUtil.copyProperties(resultBean.getData(), oaFormFlowDto);
updateFlow(oaFormFlowDto);
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败,提交的数据不一致!");
}
public ResultBean breakProcess(TaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
OaForm oaForm = fetchBySid(query.getBusinessSid());
String businessTaskId = oaForm.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(oaForm.getCreateBySid())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
OaFormFlowDto oaFormFlowDto = new OaFormFlowDto();
BeanUtil.copyProperties(resultBean.getData(), oaFormFlowDto);
updateFlow(oaFormFlowDto);
return rb.success().setData(resultBean.getData());
} else {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
OaFormFlowDto oaFormFlowDto = new OaFormFlowDto();
BeanUtil.copyProperties(resultBean.getData(), oaFormFlowDto);
updateFlow(oaFormFlowDto);
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean delegate(DelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.delegate(delegateQuery);
return rb.success();
}
public ResultBean assignTask(DelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.assignTask(delegateQuery);
return rb.success();
}
public int updateFormType(OaForm oaForm) {
return baseMapper.updateById(oaForm);
}
public String selectNum(String billNo) {
return baseMapper.selectNum(billNo);
}
}

14
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyCompleteDto.java → yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java

@ -1,4 +1,4 @@
package com.yxt.anrui.oa.biz.oamendapply.flowable;
package com.yxt.anrui.oa.biz.oaform.flowable;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
@ -7,14 +7,14 @@ import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 14:57
* @Description
*/
* @description:
* @author: dimengzhe
* @date: 2025/1/9
**/
@Data
public class OaMendApplyCompleteDto implements Dto {
private static final long serialVersionUID = 6378752532534735663L;
public class CompleteDto implements Dto {
private static final long serialVersionUID = -252752211700409269L;
@ApiModelProperty(value = "用户sid")
private String userSid;
@ApiModelProperty(value = "节点id")

16
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyDelegateQuery.java → yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/DelegateQuery.java

@ -1,19 +1,19 @@
package com.yxt.anrui.oa.biz.oamendapply.flowable;
package com.yxt.anrui.oa.biz.oaform.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/28 9:28
*/
* @description:
* @author: dimengzhe
* @date: 2025/1/9
**/
@Data
public class OaMendApplyDelegateQuery {
public class DelegateQuery {
@ApiModelProperty
private String userSid;
@ApiModelProperty("流程实例id")
// @JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ -21,6 +21,4 @@ public class OaMendApplyDelegateQuery {
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

21
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/NodeQuery.java

@ -0,0 +1,21 @@
package com.yxt.anrui.oa.biz.oaform.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2025/1/9
**/
@Data
public class NodeQuery {
@ApiModelProperty(value = "环节定义id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
}

14
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyNodeVo.java → yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/NodeVo.java

@ -1,19 +1,17 @@
package com.yxt.anrui.oa.biz.oamendapply.flowable;
package com.yxt.anrui.oa.biz.oaform.flowable;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/9/6 15:03
* @Description
*/
* @description:
* @author: dimengzhe
* @date: 2025/1/9
**/
@Data
public class OaMendApplyNodeVo implements Vo {
private static final long serialVersionUID = -833419512294877848L;
public class NodeVo {
@ApiModelProperty(value = "节点名称")
private String name;

27
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/OaFormFlowDto.java

@ -0,0 +1,27 @@
package com.yxt.anrui.oa.biz.oaform.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2025/1/9
**/
@Data
public class OaFormFlowDto {
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("流程定义id")
private String procDefId;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("流程实例id")
private String procInsId;
@ApiModelProperty("环节id")
private String taskDefKey;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("流程名称")
private String name;
}

14
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyTaskQuery.java → yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskQuery.java

@ -1,19 +1,17 @@
package com.yxt.anrui.oa.biz.oamendapply.flowable;
package com.yxt.anrui.oa.biz.oaform.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 15:06
* @Description
*/
* @description:
* @author: dimengzhe
* @date: 2025/1/9
**/
@Data
public class OaMendApplyTaskQuery implements Query {
private static final long serialVersionUID = 1288615499873178778L;
public class TaskQuery {
/**
* 终止驳回撤回

5
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApply.java

@ -60,8 +60,11 @@ public class OaMendApply extends BaseEntity {
@ApiModelProperty("补卡时间")
private String time;
@ApiModelProperty("关联审批单")
private String linkFormSids;
@TableField(exist = false)
private OaForm oaForm = new OaForm();
private OaForm oaForm;
/* @ApiModelProperty("单据编号")

4
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDto.java

@ -58,11 +58,13 @@ public class OaMendApplyDto implements Dto {
private static final long serialVersionUID = -4536006302677264298L;
private String sid;
private String createBySid;
private String orgPath;
private String orgSidPath;
@ApiModelProperty("补卡原因")
private String remarks;
@ApiModelProperty("补卡时间")
private String time;
@ApiModelProperty("关联审批单")
private String linkFormSids;
@ApiModelProperty("图片")
private List<String> files = new ArrayList<>();

11
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyMapper.java

@ -31,6 +31,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
@ -49,15 +50,13 @@ import java.util.Map;
@Mapper
public interface OaMendApplyMapper extends BaseMapper<OaMendApply> {
IPage<OaMendApplyVo> selectPageVo(IPage<OaMendApply> page, @Param(Constants.WRAPPER) Wrapper<OaMendApply> qw);
IPage<OaMendApplyVo> selectPageVo(IPage<OaMendApply> page, @Param(Constants.WRAPPER) Wrapper<OaMendApply> qw);
int updateFlowFiled(Map<String, Object> map);
int selectBySid(String join);
int selectBySid(String join);
String selectNum(String billNo);
OaMendApplyDetailsVo fetchDetailsVoBySid(String sid);
OaMendApplyDetailsVo fetchDetailsVoBySid(String sid);
OaMendApplyInitVo init(String sid);
OaMendApplyInitVo init(String sid);
}

33
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyMapper.xml

@ -26,37 +26,12 @@
</where>
</select>
<update id="updateFlowFiled">
UPDATE oa_mend_apply
SET nodeState=#{nodeState}, nodeId=#{taskDefKey}
<if test="nodeState == '已办结' or nodeState == '终止'">
, finishTime = NOW()
</if>
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstId=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid=#{sid}
</update>
<select id="selectBySid" resultType="int">
SELECT COUNT(*)
FROM oa_mend_apply
WHERE nodeState != '待提交'
and find_in_set(sid, #{list})
</select>
<select id="selectNum" resultType="java.lang.String">
select RIGHT(billNo, 4)
from oa_mend_apply
where billNo LIKE concat(#{billNo}, '%')
order by billNo desc
limit 1
FROM oa_mend_apply oa
left join oa_form ofm on oa.formSid = ofm.sid
WHERE ofm.nodeState != '待提交'
and find_in_set(oa.sid, #{list})
</select>
<select id="fetchDetailsVoBySid" resultType="com.yxt.anrui.oa.biz.oamendapply.OaMendApplyDetailsVo">

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

@ -26,8 +26,6 @@
package com.yxt.anrui.oa.biz.oamendapply;
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;
@ -36,18 +34,12 @@ 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.oamendapply.flowable.*;
import com.yxt.anrui.oa.feign.base.Rule;
import com.yxt.anrui.oa.biz.oaform.flowable.OaFormFlowDto;
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.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;
import com.yxt.anrui.oa.feign.flowable.flowtask.FlowTaskFeign;
import com.yxt.anrui.oa.feign.flowable.flowtask.FlowTaskVo;
import com.yxt.anrui.oa.feign.flowable.flowtask.LatestTaskVo;
import com.yxt.anrui.oa.feign.message.MessageFeign;
import com.yxt.anrui.oa.feign.message.MessageFlowVo;
import com.yxt.anrui.oa.feign.message.MessageFlowableQuery;
@ -55,7 +47,6 @@ import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.anrui.oa.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.oa.feign.sysuser.SysUserFeign;
import com.yxt.anrui.oa.feign.sysuser.SysUserVo;
import com.yxt.common.base.config.component.FileUploadComponent;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
@ -66,13 +57,11 @@ 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 org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@Service
public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, OaMendApply> {
@ -80,18 +69,10 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private OaAppendixService oaAppendixService;
@ -174,48 +155,11 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
// 新建操作
OaMendApply entity = new OaMendApply();
BeanUtil.copyProperties(dto, entity, "sid");
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
String deptName = "";
String deptSid = "";
List<String> split = Arrays.asList(dto.getOrgPath().split("/"));
if (split.size() > 1) {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData();
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
deptName = sysOrganization1.getName();
deptSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
deptName = sysOrganization.getName();
deptSid = sysOrganization.getSid();
}
// 生成单据编号
String billNo = "QJSQ" + useOrgSid + DateUtil.format(DateUtil.date(), "yyyyMM");
String i = baseMapper.selectNum(billNo);
if (StringUtils.isNotBlank(i)) {
billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue());
} else {
billNo = Rule.getBillNo(billNo, 0);
}
OaForm oaForm = entity.getOaForm();
BeanUtil.copyProperties(dto, oaForm, "sid", "remarks");
oaForm.setUseOrgSid(useOrgSid);
oaForm.setUseOrgName(organizationVo.getName());
oaForm.setDeptSid(deptSid);
oaForm.setDeptName(deptName);
oaForm.setBillNo(billNo);
oaForm.setCreateOrgSid(useOrgSid);
oaForm.setCreateOrgName(organizationVo.getName());
// 获取用户信息
SysUserVo sysUserVo = sysUserFeign.fetchBySid(dto.getCreateBySid()).getData();
oaForm.setCreateByName(sysUserVo.getName());
OaFormDto oaFormDto = new OaFormDto();
BeanUtil.copyProperties(oaForm, oaFormDto, "sid");
ResultBean<String> resultBean = oaFormService.saveOrUpdateForm(oaFormDto);
BeanUtil.copyProperties(dto, oaFormDto, "sid");
oaFormDto.setBillNo("BKSQ");
ResultBean<String> resultBean = oaFormService.saveOaForm(oaFormDto);
if (!resultBean.getSuccess()) {
return rb;
@ -289,12 +233,14 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(oaMendApply.getOaForm().getDeptSid()).getData();
bv.setOrgSidPath(deptVo.getOrgSidPath());
//业务sid
bv.setBusinessSid(businessSid);
// bv.setBusinessSid(businessSid);
bv.setBusinessSid(oaMendApply.getFormSid());
//用户sid
bv.setUserSid(oaMendApply.getCreateBySid());
//若app移动端有此功能,则传递appMap参数
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
// appMap.put("sid", businessSid);
appMap.put("sid", oaMendApply.getFormSid());
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
variables.put("app", appMap);
//网关
@ -310,15 +256,9 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
// updateFlowFiled(BeanUtil.beanToMap(ufVo));
//更新oaform中的流程数据
ufVo.setSid(oaMendApply.getFormSid());
oaFormService.updateFlow(BeanUtil.beanToMap(ufVo));
//极光推送
oaMendApply = fetchBySid(businessSid);
oaForm = oaFormService.fetchBySid(oaMendApply.getFormSid());
oaMendApply.setOaForm(oaForm);
OaFormFlowDto oaFormFlowDto = new OaFormFlowDto();
BeanUtil.copyProperties(ufVo, oaFormFlowDto);
oaFormService.updateFlow(oaFormFlowDto);
//==================================添加线程
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
@ -326,9 +266,8 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
OaMendApply mendApply = oaMendApply;
oaForm = oaFormService.fetchBySid(mendApply.getFormSid());
mendApply.setOaForm(oaForm);
oaForm = oaFormService.fetchBySid(oaMendApply.getFormSid());
OaForm finalOaForm = oaForm;
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
@ -337,9 +276,9 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("补卡申请");
messageFlowableQuery.setMsgContent(mendApply.getOaForm().getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("补卡申请");
messageFlowableQuery.setModuleName(finalOaForm.getFormType());
messageFlowableQuery.setMsgContent(finalOaForm.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle(finalOaForm.getFormType());
messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
@ -357,7 +296,7 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
bv.setTaskDefKey(oaMendApply.getOaForm().getNodeId());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
return oaFormService.complete(bv);
}
return rb;
}
@ -386,296 +325,6 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
return r;
}
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
OaMendApply oaMendApply = fetchBySid(businessSid);
OaForm oaForm = oaFormService.fetchBySid(oaMendApply.getFormSid());
oaMendApply.setOaForm(oaForm);
Map<String, Object> variables = new HashMap<>();
//网关
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
//=======================================
bv.setFormVariables(variables);
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(oaMendApply.getOaForm().getDeptSid()).getData();
bv.setOrgSidPath(deptVo.getOrgSidPath());
bv.setModelId(oaMendApply.getOaForm().getProcDefId());
if (bv.getTaskId().equals(oaMendApply.getOaForm().getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
// updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
//更新oaform中的流程数据
ufVo.setSid(oaMendApply.getFormSid());
oaFormService.updateFlow(BeanUtil.beanToMap(ufVo));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
} else {
//极光推送
oaMendApply = fetchBySid(businessSid);
//==================================添加线程
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
OaMendApply mendApply = oaMendApply;
oaForm = oaFormService.fetchBySid(mendApply.getFormSid());
mendApply.setOaForm(oaForm);
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcDefId(mendApply.getOaForm().getProcDefId());
ufVo.setProcInsId(mendApply.getOaForm().getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("补卡申请");
messageFlowableQuery.setMsgContent(mendApply.getOaForm().getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("补卡申请");
messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//==================================添加线程
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean<List<OaMendApplyNodeVo>> getPreviousNodesForReject(OaMendApplyNodeQuery query) {
ResultBean<List<OaMendApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//查询业务信息
OaMendApply oaMendApply = fetchBySid(query.getBusinessSid());
OaForm oaForm = oaFormService.fetchBySid(oaMendApply.getFormSid());
oaMendApply.setOaForm(oaForm);
//网关
bv.setModelId(oaMendApply.getOaForm().getProcDefId());
bv.setFormVariables(variables);
//=======================================
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<OaMendApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), OaMendApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<OaMendApplyNodeVo>> getNextNodesForSubmit(OaMendApplyNodeQuery query) {
ResultBean<List<OaMendApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//查询业务信息
OaMendApply oaMendApply = fetchBySid(query.getBusinessSid());
OaForm oaForm = oaFormService.fetchBySid(oaMendApply.getFormSid());
oaMendApply.setOaForm(oaForm);
//网关
bv.setModelId(oaMendApply.getOaForm().getProcDefId());
bv.setFormVariables(variables);
//=======================================
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<OaMendApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), OaMendApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean reject(OaMendApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
OaMendApply oaMendApply = fetchBySid(businessSid);
if (oaMendApply == null) {
return rb.setMsg("该申请不存在");
}
OaForm oaForm = oaFormService.fetchBySid(oaMendApply.getFormSid());
oaMendApply.setOaForm(oaForm);
String businessTaskId = oaMendApply.getOaForm().getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
if (StringUtils.isBlank(query.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);
//网关
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(ufVo);
//更新业务中的流程相关的参数
// updateFlowFiled(map);
//更新oaform中的流程数据
ufVo.setSid(oaMendApply.getFormSid());
oaFormService.updateFlow(BeanUtil.beanToMap(ufVo));
//极光推送
oaMendApply = fetchBySid(businessSid);
//==================================添加线程
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
OaMendApply mendApply = oaMendApply;
oaForm = oaFormService.fetchBySid(oaMendApply.getFormSid());
mendApply.setOaForm(oaForm);
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = mendApply.getOaForm().getProcInstId();
ufVo.setProcInsId(procId);
ufVo.setProcDefId(mendApply.getOaForm().getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("补卡申请");
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(mendApply.getCreateBySid())) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
messageFlowableQuery.setMsgContent(mendApply.getOaForm().getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle("补卡申请");
messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//==================================添加线程
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(OaMendApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
OaMendApply oaMendApply = fetchBySid(query.getBusinessSid());
OaForm oaForm = oaFormService.fetchBySid(oaMendApply.getFormSid());
oaMendApply.setOaForm(oaForm);
String businessTaskId = oaMendApply.getOaForm().getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
// updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
//更新oaform中的流程数据
resultBean.getData().setSid(oaMendApply.getFormSid());
oaFormService.updateFlow(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败,提交的数据不一致!");
}
public ResultBean breakProcess(OaMendApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
OaMendApply oaMendApply = fetchBySid(query.getBusinessSid());
OaForm oaForm = oaFormService.fetchBySid(oaMendApply.getFormSid());
oaMendApply.setOaForm(oaForm);
String businessTaskId = oaMendApply.getOaForm().getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(oaMendApply.getCreateBySid())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
// updateFlowFiled(map);
//更新oaform中的流程数据
resultBean.getData().setSid(oaMendApply.getFormSid());
oaFormService.updateFlow(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
} else {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
// updateFlowFiled(map);
//更新oaform中的流程数据
resultBean.getData().setSid(oaMendApply.getFormSid());
oaFormService.updateFlow(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean delegate(OaMendApplyDelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.delegate(delegateQuery);
return rb.success();
}
public ResultBean assignTask(OaMendApplyDelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.assignTask(delegateQuery);
return rb.success();
}
public ResultBean delAll(String[] sids) {
ResultBean rb = ResultBean.fireFail();
//查询该sid中是否有流程不是待提交的

2
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/SubmitOaMendApplyDto.java → yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/SubmitOaMendApplyDto.java

@ -1,4 +1,4 @@
package com.yxt.anrui.oa.biz.oamendapply.flowable;
package com.yxt.anrui.oa.biz.oamendapply;
import com.yxt.anrui.oa.biz.oaleaveapply.OaLeaveApplyDto;
import com.yxt.anrui.oa.biz.oamendapply.OaMendApplyDto;

25
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyNodeQuery.java

@ -1,25 +0,0 @@
package com.yxt.anrui.oa.biz.oamendapply.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 15:04
* @Description
*/
@Data
public class OaMendApplyNodeQuery implements Query {
private static final long serialVersionUID = 9117613683840483366L;
@ApiModelProperty(value = "环节定义id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
private Integer next;
}

9
yxt-oa/src/main/java/com/yxt/anrui/oa/feign/flowable/flow/UpdateFlowFieldVo.java

@ -9,6 +9,7 @@ public class UpdateFlowFieldVo {
private String taskDefKey;
private String taskId;
private String nextNodeUserSids;
private String name;
public String getNextNodeUserSids() {
return nextNodeUserSids;
@ -65,4 +66,12 @@ public class UpdateFlowFieldVo {
public void setTaskId(String taskId) {
this.taskId = taskId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

Loading…
Cancel
Save