Browse Source

更改

master
ligaode 6 months ago
parent
commit
4ff9932d30
  1. 4
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapply.java
  2. 9
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyDetailsVo.java
  3. 4
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyDto.java
  4. 16
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyFeign.java
  5. 15
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyFeignFallback.java
  6. 23
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/flow/ScmVehRebateCheckApplyDelegateQuery.java
  7. 15
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyRest.java
  8. 18
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyService.java
  9. 1
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/leaveapply/AppLeaveApplyFeign.java
  10. 91
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/AppMendApplyDetailsVo.java
  11. 91
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/AppMendApplyDto.java
  12. 71
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/AppMendApplyFeign.java
  13. 86
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/AppMendApplyInitVo.java
  14. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/flowable/AppDelegateQuery.java
  15. 37
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/flowable/AppFlowDto.java
  16. 28
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/flowable/AppFlowQuery.java
  17. 47
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/flowable/AppFlowTaskQuery.java
  18. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/flowable/SubmitAppMendApplyDto.java
  19. 174
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/AppVehRebateDetailsVo.java
  20. 76
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/AppVehrebateCheckapplyDetailsVo.java
  21. 77
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/AppVehrebateCheckapplyFeign.java
  22. 77
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/AppVehrebateCheckapplydetailDetailsVo.java
  23. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/flowable/AppDelegateQuery.java
  24. 37
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/flowable/AppFlowDto.java
  25. 28
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/flowable/AppFlowQuery.java
  26. 47
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/flowable/AppFlowTaskQuery.java
  27. 2
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/TerminalApplication.java
  28. 93
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/oa/mendapply/AppMendApplyRest.java
  29. 186
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/oa/mendapply/AppMendApplyService.java
  30. 95
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/vehrebatecheckapply/AppVehrebateCheckapplyRest.java
  31. 206
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/vehrebatecheckapply/AppVehrebateCheckapplyService.java
  32. 84
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/OaMendApply.java
  33. 92
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/OaMendApplyDetailsVo.java
  34. 91
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/OaMendApplyDto.java
  35. 69
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/OaMendApplyFeign.java
  36. 86
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/OaMendApplyInitVo.java
  37. 37
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/flowable/OaMendApplyCompleteDto.java
  38. 26
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/flowable/OaMendApplyDelegateQuery.java
  39. 25
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/flowable/OaMendApplyNodeQuery.java
  40. 26
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/flowable/OaMendApplyNodeVo.java
  41. 48
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/flowable/OaMendApplyTaskQuery.java
  42. 24
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/flowable/SubmitOaMendApplyDto.java
  43. 101
      yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaHireApplyRest.java
  44. 163
      yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java
  45. 83
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApply.java
  46. 85
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyDetailsVo.java
  47. 85
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyDto.java
  48. 78
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyFeign.java
  49. 72
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyFeignFallback.java
  50. 65
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyMapper.java
  51. 13
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyMapper.xml
  52. 83
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyQuery.java
  53. 110
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyService.java
  54. 85
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyVo.java
  55. 74
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetails.java
  56. 75
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsDetailsVo.java
  57. 75
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsDto.java
  58. 78
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsFeign.java
  59. 72
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsFeignFallback.java
  60. 65
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsMapper.java
  61. 13
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsMapper.xml
  62. 73
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsQuery.java
  63. 110
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsService.java
  64. 75
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsVo.java
  65. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaleaveapply/OaLeaveApplyService.java
  66. 83
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApply.java
  67. 93
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDetailsVo.java
  68. 93
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDto.java
  69. 86
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyInitVo.java
  70. 59
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyMapper.java
  71. 42
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyMapper.xml
  72. 83
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyQuery.java
  73. 571
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java
  74. 84
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyVo.java
  75. 37
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyCompleteDto.java
  76. 26
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyDelegateQuery.java
  77. 25
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyNodeQuery.java
  78. 26
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyNodeVo.java
  79. 48
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyTaskQuery.java
  80. 25
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/SubmitOaMendApplyDto.java
  81. 1
      yxt-oa/src/main/java/com/yxt/anrui/oa/feign/file/OaFileEnum.java
  82. 1
      yxt-oa/src/main/java/com/yxt/anrui/oa/feign/flowable/flow/ProcDefEnum.java

4
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapply.java

@ -50,6 +50,10 @@ import lombok.Data;
public class ScmVehrebateCheckapply extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("部门sid")
private String deptSid;
@ApiModelProperty("部门")
private String deptName;
@ApiModelProperty("品牌sid")
private String brandSid; // 品牌sid
@ApiModelProperty("品牌名称")

9
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyDetailsVo.java

@ -26,6 +26,7 @@
package com.yxt.anrui.scm.api.scmvehrebatecheckapply;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailDetailsVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailVo;
@ -35,6 +36,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
@ -56,8 +58,15 @@ public class ScmVehrebateCheckapplyDetailsVo implements Vo {
private String sid; // sid
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("创建日期")
private Date createTime;
@ApiModelProperty("备注")
private String remarks; // 备注
@ApiModelProperty("部门sid")
private String deptSid;
@ApiModelProperty("部门")
private String deptName;
@ApiModelProperty("品牌sid")
private String brandSid; // 品牌sid
@ApiModelProperty("品牌名称")

4
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyDto.java

@ -58,6 +58,10 @@ public class ScmVehrebateCheckapplyDto implements Dto {
private String createBySid; // 创建人sid
@ApiModelProperty("备注")
private String remarks; // 备注
@ApiModelProperty("部门sid")
private String deptSid;
@ApiModelProperty("部门")
private String deptName;
@ApiModelProperty("品牌sid")
private String brandSid; // 品牌sid
@ApiModelProperty("品牌名称")

16
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyFeign.java

@ -26,10 +26,8 @@
package com.yxt.anrui.scm.api.scmvehrebatecheckapply;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.GetNodeQuery;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.GetNodeVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.ScmVehRebateCheckApplyCompleteDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.SubmitScmVehRebateCheckApplyDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.*;
import com.yxt.anrui.scm.api.scmvehrebatewithapply.flow.ScmVehRebateWithApplyDelegateQuery;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
@ -117,4 +115,14 @@ public interface ScmVehrebateCheckapplyFeign {
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<GetNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap GetNodeQuery query);
@ApiOperation(value = "加签")
@PutMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody ScmVehRebateCheckApplyDelegateQuery delegateQuery);
@ApiOperation(value = "转办")
@PutMapping(value = "/assignTask")
@ResponseBody
public ResultBean assignTask(@RequestBody ScmVehRebateCheckApplyDelegateQuery delegateQuery);
}

15
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/ScmVehrebateCheckapplyFeignFallback.java

@ -26,10 +26,7 @@
package com.yxt.anrui.scm.api.scmvehrebatecheckapply;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.GetNodeQuery;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.GetNodeVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.ScmVehRebateCheckApplyCompleteDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.SubmitScmVehRebateCheckApplyDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -114,4 +111,14 @@ public class ScmVehrebateCheckapplyFeignFallback implements ScmVehrebateCheckapp
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
return null;
}
@Override
public ResultBean delegate(ScmVehRebateCheckApplyDelegateQuery delegateQuery) {
return null;
}
@Override
public ResultBean assignTask(ScmVehRebateCheckApplyDelegateQuery delegateQuery) {
return null;
}
}

23
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapply/flow/ScmVehRebateCheckApplyDelegateQuery.java

@ -0,0 +1,23 @@
package com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class ScmVehRebateCheckApplyDelegateQuery {
private String userSid;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

15
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyRest.java

@ -29,10 +29,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.GetNodeQuery;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.GetNodeVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.ScmVehRebateCheckApplyCompleteDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.SubmitScmVehRebateCheckApplyDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.*;
import com.yxt.anrui.scm.biz.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailService;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -145,4 +142,14 @@ public class ScmVehrebateCheckapplyRest implements ScmVehrebateCheckapplyFeign {
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
return scmVehrebateCheckapplyService.getPreviousNodesForReject(query);
}
@Override
public ResultBean delegate(ScmVehRebateCheckApplyDelegateQuery query) {
return scmVehrebateCheckapplyService.delegate(query);
}
@Override
public ResultBean assignTask(ScmVehRebateCheckApplyDelegateQuery query) {
return scmVehrebateCheckapplyService.assignTask(query);
}
}

18
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyService.java

@ -32,6 +32,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
@ -46,6 +47,7 @@ import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebate;
import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.GetNodeQuery;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.GetNodeVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.ScmVehRebateCheckApplyDelegateQuery;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.SubmitScmVehRebateCheckApplyDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetail;
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailDetailsVo;
@ -547,4 +549,20 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
// List<GetNodeVo> voList = resultBean.getData().stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean delegate(ScmVehRebateCheckApplyDelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.delegate(delegateQuery);
return rb.success();
}
public ResultBean assignTask(ScmVehRebateCheckApplyDelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.assignTask(delegateQuery);
return rb.success();
}
}

1
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/leaveapply/AppLeaveApplyFeign.java

@ -15,7 +15,6 @@ import javax.validation.Valid;
* @Date
* @Description
*/
@Api(tags = "售后盘盈入库")
@FeignClient(
contextId = "terminal-AppLeaveApply",
name = "anrui-terminal",

91
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/AppMendApplyDetailsVo.java

@ -0,0 +1,91 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.api.oa.mendapply;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyVo.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyVo <br/>
* Description: 补卡申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请 视图数据详情", description = "补卡申请 视图数据详情")
public class AppMendApplyDetailsVo implements Vo {
private String sid; // sid
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("补卡原因")
private String remarks;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("补卡时间")
private String time; // 补卡时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTime;
@ApiModelProperty("实例id")
private String procInsId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
@ApiModelProperty("图片")
private List<String> files = new ArrayList<>();
}

91
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/AppMendApplyDto.java

@ -0,0 +1,91 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.api.oa.mendapply;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyDto.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyDto <br/>
* Description: 补卡申请 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请 数据传输对象", description = "补卡申请 数据传输对象")
public class AppMendApplyDto implements Dto {
private String sid; // sid
private String userSid;
private String orgPath;
@ApiModelProperty("补卡原因")
private String remarks;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("补卡时间")
private String time; // 补卡时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTime;
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
@ApiModelProperty("图片")
private List<String> files = new ArrayList<>();
}

71
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/AppMendApplyFeign.java

@ -0,0 +1,71 @@
package com.yxt.anrui.terminal.api.oa.mendapply;
import com.yxt.anrui.terminal.api.oa.mendapply.flowable.*;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* @Author
* @Date
* @Description
*/
@FeignClient(
contextId = "terminal-AppMendApply",
name = "anrui-terminal",
path = "oa/v1/attendance")
public interface AppMendApplyFeign {
@ApiOperation("详情")
@GetMapping("/detail")
public ResultBean<AppMendApplyDetailsVo> fetchDetailsBySid(@RequestParam("sid") String sid);
@ApiOperation("初始化")
@GetMapping("/init")
public ResultBean<AppMendApplyInitVo> init(@RequestParam(value = "sid",required = false) String sid, @RequestParam("userSid") String userSid, @RequestParam("orgPath") String orgPath);
/**********************************************流程********************************************/
@ApiOperation("提交审批流程")
@PostMapping("/save")
public ResultBean submit(@RequestBody @Valid SubmitAppMendApplyDto dto);
@ApiOperation("办理")
@PutMapping("/agree")
@ResponseBody
ResultBean agreeCreditInfo(@RequestBody AppFlowDto dto);
@ApiOperation("驳回")
@PutMapping("/reject")
@ResponseBody
ResultBean rejectCreditInfo(@RequestBody AppFlowTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recall")
@ResponseBody
ResultBean recallCreditInfo(@RequestBody AppFlowTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stop")
@ResponseBody
ResultBean stopCreditInfo(@RequestBody AppFlowTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@SpringQueryMap AppFlowQuery query);
@ApiOperation(value = "加签")
@PutMapping(value = "/sign")
@ResponseBody
public ResultBean delegate(@RequestBody AppDelegateQuery delegateQuery);
@ApiOperation(value = "转办")
@PutMapping(value = "/transfer")
@ResponseBody
public ResultBean assignTask(@RequestBody AppDelegateQuery delegateQuery);
}

86
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/AppMendApplyInitVo.java

@ -0,0 +1,86 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.api.oa.mendapply;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyVo.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyVo <br/>
* Description: 补卡申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请 视图数据对象", description = "补卡申请 视图数据对象")
public class AppMendApplyInitVo implements Vo {
private String sid; // sid
private String userSid;
private String orgPath;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("补卡时间")
private String time; // 补卡时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTime;
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
}

25
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/flowable/AppDelegateQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.terminal.api.oa.mendapply.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/28 10:16
*/
@Data
public class AppDelegateQuery {
@ApiModelProperty
private String userSid;
@ApiModelProperty("流程实例id")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

37
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/flowable/AppFlowDto.java

@ -0,0 +1,37 @@
package com.yxt.anrui.terminal.api.oa.mendapply.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/8/9 14:09
* @Description
*/
@Data
public class AppFlowDto implements Dto {
private static final long serialVersionUID = 3626473483180150495L;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:procInsId")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
}

28
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/flowable/AppFlowQuery.java

@ -0,0 +1,28 @@
package com.yxt.anrui.terminal.api.oa.mendapply.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @Author dimengzhe
* @Date 2022/8/9 14:15
* @Description
*/
@Data
public class AppFlowQuery implements Query {
private static final long serialVersionUID = 5514095179438249641L;
@ApiModelProperty(value = "节点key")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
@NotNull(message = "参数错误:next")
private Integer next;
@ApiModelProperty("组织机构全路径")
private String orgPath;
}

47
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/flowable/AppFlowTaskQuery.java

@ -0,0 +1,47 @@
package com.yxt.anrui.terminal.api.oa.mendapply.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/8/9 14:11
* @Description
*/
@Data
public class AppFlowTaskQuery implements Query {
private static final long serialVersionUID = -7082170710942810289L;
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
@JsonProperty("procInsId")
private String instanceId;
}

25
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/oa/mendapply/flowable/SubmitAppMendApplyDto.java

@ -0,0 +1,25 @@
package com.yxt.anrui.terminal.api.oa.mendapply.flowable;
import com.yxt.anrui.terminal.api.oa.leaveapply.AppLeaveApplyDto;
import com.yxt.anrui.terminal.api.oa.mendapply.AppMendApplyDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liuguohui
* @version 1.0
* @description
* @date 2022/04/13
*/
@ApiModel("提交")
@Data
public class SubmitAppMendApplyDto extends AppMendApplyDto {
@ApiModelProperty("意见")
private String comment;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

174
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/AppVehRebateDetailsVo.java

@ -0,0 +1,174 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* Project: anrui-scm(单车返利) <br/>
* File: ScmVehRebateVo.java <br/>
* Class: com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateVo <br/>
* Description: 单车返利表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-08-24 09:01:54 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "单车返利表 视图数据详情", description = "单车返利表 视图数据详情")
public class AppVehRebateDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("状态")
private String state;
@ApiModelProperty("创建人sid")
private String createBySid;
@ApiModelProperty("创建日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime; // 创建日期
@ApiModelProperty("备注")
private String remarks; // 备注
@ApiModelProperty("品牌sid")
private String brandSid; // 品牌sid
@ApiModelProperty("品牌名称")
private String brandName; // 品牌名称
@ApiModelProperty("车型sid")
private String vehModelSid; // 车型sid
@ApiModelProperty("车型名称")
private String vehModelName; // 车型名称
@ApiModelProperty("车辆sid")
private String vehSid; // 车辆sid
@ApiModelProperty("车架号")
private String vinNo; // 车架号
@ApiModelProperty("厂家结算价")
private String manufactorSettlementPrice; // 厂家结算价
@ApiModelProperty("运费")
private String freight; // 运费
@ApiModelProperty("返利类型key")
private String rebateTypeKey; // 返利类型key
@ApiModelProperty("返利类型value")
private String rebateTypeValue; // 返利类型value
@ApiModelProperty("返利名称")
private String rebateName; // 返利名称
@ApiModelProperty("计算标准")
private String calculationStandard; // 计算标准
@ApiModelProperty("预计返利")
private String estimateRebate; // 预计返利
@ApiModelProperty("所属年月")
private String palceGenDate; // 所属年月
@ApiModelProperty("预提日期")
private String withholdingDate; // 预提日期
@ApiModelProperty("上传日期")
private String uploadDate; // 上传日期
@ApiModelProperty("上传金额")
private String uploadMoney; // 上传金额
@ApiModelProperty("二次上传日期")
private String secondaryUploadDate; // 二次上传日期
@ApiModelProperty("二次上传金额")
private String secondaryUploadMoney; // 二次上传金额
@ApiModelProperty("待确定金额(动态)")
private String stayDetermineMoney;
@ApiModelProperty("待确定金额(常量)")
private String stayDetermineMoneyNew;
@ApiModelProperty("费用")
private String money; // 费用
@ApiModelProperty("是否调整")
private String isAdjustment; // 是否调整
@ApiModelProperty("调整金额")
private String adjustmentMoney; // 调整金额
@ApiModelProperty("调整说明")
private String adjustmentRemarks; // 调整说明
@ApiModelProperty("计算方式key")
private String calculationModeKey; // 计算方式key
@ApiModelProperty("计算方式Value")
private String calculationModeValue; // 计算方式Value
@ApiModelProperty("调整状态")
private Integer adjustmentState;
@ApiModelProperty("一次核对状态")
private Integer onceCheckState;
@ApiModelProperty("其中预计费用")
private BigDecimal expectCost;
@ApiModelProperty("其中预提费用")
private BigDecimal withholdCost;
@ApiModelProperty("差异金额")
private BigDecimal diffAmount;
@ApiModelProperty("预计待支付费用")
private BigDecimal expectTreatCost;
@ApiModelProperty("预计抵顶费用")
private BigDecimal expectSuppCost;
@ApiModelProperty("预计抵顶费用说明")
private String expectSuppRemark;
@ApiModelProperty("上装金额")
private BigDecimal topAmount;
@ApiModelProperty("一次待支付费用")
private BigDecimal onceTreatCost;
@ApiModelProperty("一次抵顶费用")
private BigDecimal onceSuppCost;
@ApiModelProperty("一次抵顶费用说明")
private String onceSuppRemark;
@ApiModelProperty("临时待支付费用")
private BigDecimal tempTreatCost;
@ApiModelProperty("临时抵顶费用")
private BigDecimal tempSuppCost;
@ApiModelProperty("二次待支付费用")
private BigDecimal secondTreatCost;
@ApiModelProperty("二次抵顶费用")
private BigDecimal secondSuppCost;
@ApiModelProperty("二次抵顶费用说明")
private String secondSuppRemark;
@ApiModelProperty("待支付费用调整金额")
private BigDecimal treatAdjustmentMoney;
@ApiModelProperty("抵顶费用调整金额")
private BigDecimal suppAdjustmentMoney;
@ApiModelProperty("使用组织sid")
private String useOrgSid; // 使用组织sid
@ApiModelProperty("使用组织名称")
private String useOrgName; // 使用组织名称
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
@ApiModelProperty("创建组织名称")
private String createOrgName; // 创建组织名称
@ApiModelProperty("组织全路径")
private String orgPath;
private String vehRebateSid;
}

76
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/AppVehrebateCheckapplyDetailsVo.java

@ -0,0 +1,76 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* Project: anrui-scm(单车返利核对) <br/>
* File: ScmVehrebateCheckapplyVo.java <br/>
* Class: com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyVo <br/>
* Description: 单车返利核对申请表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-08-29 16:01:01 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "单车返利核对申请表 视图数据详情", description = "单车返利核对申请表 视图数据详情")
public class AppVehrebateCheckapplyDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("核对申请标题")
private String checkApply;
@ApiModelProperty("部门")
private String deptName;
@ApiModelProperty("创建人姓名")
private String createByName;
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("创建日期")
private Date createTime;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("流程实例的sid")
private String procInsId;
@ApiModelProperty("taskId")
private String taskId;
@ApiModelProperty("按返利类型统计")
private List<AppVehrebateCheckapplydetailDetailsVo> scmWhenVehrebateCheckapplydetailDetails;
@ApiModelProperty("按预提年月统计")
private List<AppVehrebateCheckapplydetailDetailsVo> scmLastVehrebateCheckapplydetailDetails;
}

77
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/AppVehrebateCheckapplyFeign.java

@ -0,0 +1,77 @@
package com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply;
import com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.flowable.AppDelegateQuery;
import com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.flowable.AppFlowDto;
import com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.flowable.AppFlowQuery;
import com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.flowable.AppFlowTaskQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @Author
* @Date
* @Description
*/
@Api(tags = "售后盘盈入库")
@FeignClient(
contextId = "terminal-AppVehrebateCheckapply",
name = "anrui-terminal",
path = "v1/vehrebatecheckapply")
public interface AppVehrebateCheckapplyFeign {
@ApiOperation("详情")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<AppVehrebateCheckapplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid);
@ApiOperation("明细")
@GetMapping("/vehRebateCheckDetails/{sid}")
public ResultBean<List<AppVehRebateDetailsVo>> vehRebateCheckDetails(@PathVariable("sid") String sid);
@ApiOperation("明细-详情")
@GetMapping("/vehRebateDetail/{sid}")
public ResultBean<AppVehRebateDetailsVo> vehRebateDetail(@PathVariable("sid") String sid);
/**********************************************流程********************************************/
@ApiOperation("办理")
@PutMapping("/agreeCreditInfo")
@ResponseBody
ResultBean agreeCreditInfo(@RequestBody AppFlowDto dto);
@ApiOperation("驳回")
@PutMapping("/rejectCreditInfo")
@ResponseBody
ResultBean rejectCreditInfo(@RequestBody AppFlowTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recallCreditInfo")
@ResponseBody
ResultBean recallCreditInfo(@RequestBody AppFlowTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stopCreditInfo")
@ResponseBody
ResultBean stopCreditInfo(@RequestBody AppFlowTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@SpringQueryMap AppFlowQuery query);
@ApiOperation(value = "加签")
@PutMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody AppDelegateQuery delegateQuery);
@ApiOperation(value = "转办")
@PutMapping(value = "/assignTask")
@ResponseBody
public ResultBean assignTask(@RequestBody AppDelegateQuery delegateQuery);
}

77
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/AppVehrebateCheckapplydetailDetailsVo.java

@ -0,0 +1,77 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Project: anrui-scm(单车返利核对) <br/>
* File: ScmVehrebateCheckapplydetailVo.java <br/>
* Class: com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailVo <br/>
* Description: 单车返利核对申请表_返利列表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-08-29 16:01:01 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "单车返利核对申请表_返利列表 视图数据详情", description = "单车返利核对申请表_返利列表 视图数据详情")
public class AppVehrebateCheckapplydetailDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("返利类型value")
private String rebateTypeValue;
@ApiModelProperty("预提日期")
private String withholdingDate;
@ApiModelProperty("数量")
private String num;
@ApiModelProperty("预提金额")
private String withRebate;
@ApiModelProperty("其中预提费用")
private String withholdCost;
@ApiModelProperty("上传金额")
private String uploadMoney;
@ApiModelProperty("待确定金额")
private String stayDetermineMoney;
@ApiModelProperty("费用")
private String money;
@ApiModelProperty("调整金额")
private String adjustmentMoney;
@ApiModelProperty("费用调整金额")
private String fyAdjustmentMoney;
@ApiModelProperty("单车返利sid")
private String vehRebateSid;
}

25
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/flowable/AppDelegateQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/28 10:16
*/
@Data
public class AppDelegateQuery {
@ApiModelProperty
private String userSid;
@ApiModelProperty("流程实例id")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

37
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/flowable/AppFlowDto.java

@ -0,0 +1,37 @@
package com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/8/9 14:09
* @Description
*/
@Data
public class AppFlowDto implements Dto {
private static final long serialVersionUID = 3626473483180150495L;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:procInsId")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
}

28
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/flowable/AppFlowQuery.java

@ -0,0 +1,28 @@
package com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @Author dimengzhe
* @Date 2022/8/9 14:15
* @Description
*/
@Data
public class AppFlowQuery implements Query {
private static final long serialVersionUID = 5514095179438249641L;
@ApiModelProperty(value = "节点key")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
@NotNull(message = "参数错误:next")
private Integer next;
@ApiModelProperty("组织机构全路径")
private String orgPath;
}

47
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehrebatecheckapply/flowable/AppFlowTaskQuery.java

@ -0,0 +1,47 @@
package com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/8/9 14:11
* @Description
*/
@Data
public class AppFlowTaskQuery implements Query {
private static final long serialVersionUID = -7082170710942810289L;
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
@JsonProperty("procInsId")
private String instanceId;
}

2
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/TerminalApplication.java

@ -15,7 +15,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
"com.yxt.anrui.terminal",
"com.yxt.common.base.config"
},exclude = {DataSourceAutoConfiguration.class})
@EnableFeignClients(basePackages = {"com.yxt.anrui.portal", "com.yxt.anrui.crm", "com.yxt.anrui.base", "com.yxt.anrui.riskcenter","com.yxt.anrui.flowable","com.yxt.anrui.buscenter","com.yxt.anrui.scm","com.yxt.anrui.fin", "com.yxt.anrui.terminal.fegin.wmsinventorycheckbill","com.yxt.anrui.terminal.fegin.wmsinventoryprofitin","com.yxt.anrui.terminal.fegin.wmsinventoryprofitout","com.yxt.anrui.terminal.fegin.basegoodssku","com.yxt.anrui.terminal.fegin.basesupplierinfo","com.yxt.anrui.terminal.fegin.wmsInventory","com.yxt.anrui.terminal.fegin.asbusrepairbill","com.yxt.anrui.terminal.fegin.pmspurchasebill","com.yxt.anrui.terminal.fegin.pmspurchasebackbill","com.yxt.anrui.terminal.fegin.smspricestrategybill","com.yxt.anrui.terminal.fegin.astechtitleapply","com.yxt.anrui.terminal.fegin.asserviceaccommapply","com.yxt.anrui.terminal.fegin.asbusclaiminvoicebill","com.yxt.anrui.terminal.fegin.wmsinventoryallocatebill","com.yxt.anrui.terminal.fegin.asoldpartreturnapply","com.yxt.anrui.terminal.fegin.asoldparthandleapply","com.yxt.anrui.terminal.fegin.asbwdiffapply","com.yxt.anrui.terminal.fegin.asbwinvoiceapply","com.yxt.anrui.terminal.fegin.ashosesuppapply","com.yxt.anrui.terminal.fegin.asbusclaimcheckapply","com.yxt.anrui.terminal.fegin.asoldparts","com.yxt.anrui.terminal.fegin.wmsoldregister","com.yxt.anrui.terminal.fegin.asbusrepairinventorybill","com.yxt.anrui.terminal.fegin.wmsoldinventory","com.yxt.anrui.terminal.fegin.wmswarehouserack","com.yxt.anrui.terminal.fegin.asbusrepairinventorybilldetail","com.yxt.anrui.terminal.fegin.wmsinventoryrecord","com.yxt.anrui.terminal.fegin.asstandrecordapply","com.yxt.anrui.terminal.fegin.wmsotheroutapply","com.yxt.anrui.terminal.fegin.oaleaveapply"})
@EnableFeignClients(basePackages = {"com.yxt.anrui.portal", "com.yxt.anrui.crm", "com.yxt.anrui.base", "com.yxt.anrui.riskcenter","com.yxt.anrui.flowable","com.yxt.anrui.buscenter","com.yxt.anrui.scm","com.yxt.anrui.fin", "com.yxt.anrui.terminal.fegin.wmsinventorycheckbill","com.yxt.anrui.terminal.fegin.wmsinventoryprofitin","com.yxt.anrui.terminal.fegin.wmsinventoryprofitout","com.yxt.anrui.terminal.fegin.basegoodssku","com.yxt.anrui.terminal.fegin.basesupplierinfo","com.yxt.anrui.terminal.fegin.wmsInventory","com.yxt.anrui.terminal.fegin.asbusrepairbill","com.yxt.anrui.terminal.fegin.pmspurchasebill","com.yxt.anrui.terminal.fegin.pmspurchasebackbill","com.yxt.anrui.terminal.fegin.smspricestrategybill","com.yxt.anrui.terminal.fegin.astechtitleapply","com.yxt.anrui.terminal.fegin.asserviceaccommapply","com.yxt.anrui.terminal.fegin.asbusclaiminvoicebill","com.yxt.anrui.terminal.fegin.wmsinventoryallocatebill","com.yxt.anrui.terminal.fegin.asoldpartreturnapply","com.yxt.anrui.terminal.fegin.asoldparthandleapply","com.yxt.anrui.terminal.fegin.asbwdiffapply","com.yxt.anrui.terminal.fegin.asbwinvoiceapply","com.yxt.anrui.terminal.fegin.ashosesuppapply","com.yxt.anrui.terminal.fegin.asbusclaimcheckapply","com.yxt.anrui.terminal.fegin.asoldparts","com.yxt.anrui.terminal.fegin.wmsoldregister","com.yxt.anrui.terminal.fegin.asbusrepairinventorybill","com.yxt.anrui.terminal.fegin.wmsoldinventory","com.yxt.anrui.terminal.fegin.wmswarehouserack","com.yxt.anrui.terminal.fegin.asbusrepairinventorybilldetail","com.yxt.anrui.terminal.fegin.wmsinventoryrecord","com.yxt.anrui.terminal.fegin.asstandrecordapply","com.yxt.anrui.terminal.fegin.wmsotheroutapply","com.yxt.anrui.terminal.fegin.oaleaveapply","com.yxt.anrui.terminal.fegin.oamendapply"})
public class TerminalApplication {
public static void main(String[] args) {

93
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/oa/mendapply/AppMendApplyRest.java

@ -0,0 +1,93 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.biz.oa.mendapply;
import com.yxt.anrui.terminal.api.oa.mendapply.flowable.*;
import com.yxt.anrui.terminal.api.oa.mendapply.AppMendApplyDetailsVo;
import com.yxt.anrui.terminal.api.oa.mendapply.AppMendApplyFeign;
import com.yxt.anrui.terminal.api.oa.mendapply.AppMendApplyInitVo;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("oa/v1/attendance")
public class AppMendApplyRest implements AppMendApplyFeign {
@Autowired
private AppMendApplyService appMendApplyService;
@Override
public ResultBean<AppMendApplyDetailsVo> fetchDetailsBySid(String sid) {
return appMendApplyService.fetchDetailsBySid(sid);
}
@Override
public ResultBean<AppMendApplyInitVo> init(String sid, String userSid, String orgPath) {
return appMendApplyService.init(sid,userSid,orgPath);
}
@Override
public ResultBean submit(SubmitAppMendApplyDto dto) {
return appMendApplyService.submit(dto);
}
@Override
public ResultBean agreeCreditInfo(AppFlowDto dto) {
return appMendApplyService.agreeCreditInfo(dto);
}
@Override
public ResultBean rejectCreditInfo(AppFlowTaskQuery query) {
return appMendApplyService.rejectCreditInfo(query);
}
@Override
public ResultBean recallCreditInfo(AppFlowTaskQuery query) {
return appMendApplyService.recallCreditInfo(query);
}
@Override
public ResultBean stopCreditInfo(AppFlowTaskQuery query) {
return appMendApplyService.stopCreditInfo(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(AppFlowQuery query) {
return appMendApplyService.getFlowOperateTitle(query);
}
@Override
public ResultBean delegate(AppDelegateQuery delegateQuery) {
return appMendApplyService.delegate(delegateQuery);
}
@Override
public ResultBean assignTask(AppDelegateQuery delegateQuery) {
return appMendApplyService.assignTask(delegateQuery);
}
}

186
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/oa/mendapply/AppMendApplyService.java

@ -0,0 +1,186 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.biz.oa.mendapply;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.terminal.api.oa.mendapply.flowable.*;
import com.yxt.anrui.terminal.api.oa.mendapply.AppMendApplyDetailsVo;
import com.yxt.anrui.terminal.api.oa.mendapply.AppMendApplyInitVo;
import com.yxt.anrui.terminal.fegin.oamendapply.OaMendApplyDetailsVo;
import com.yxt.anrui.terminal.fegin.oamendapply.OaMendApplyFeign;
import com.yxt.anrui.terminal.fegin.oamendapply.OaMendApplyInitVo;
import com.yxt.anrui.terminal.fegin.oamendapply.flowable.*;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
@Service
public class AppMendApplyService {
@Resource
private OaMendApplyFeign oaMendApplyFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
public ResultBean<AppMendApplyDetailsVo> fetchDetailsBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
OaMendApplyDetailsVo data = oaMendApplyFeign.fetchDetailsBySid(sid).getData();
AppMendApplyDetailsVo appMendApplyDetailsVo = new AppMendApplyDetailsVo();
appMendApplyDetailsVo.setProcInsId(data.getProcInstId());
BeanUtil.copyProperties(data,appMendApplyDetailsVo);
return rb.success().setData(appMendApplyDetailsVo);
}
public ResultBean<AppMendApplyInitVo> init(String sid, String userSid, String orgPath) {
ResultBean rb = ResultBean.fireFail();
OaMendApplyInitVo data = oaMendApplyFeign.init(sid, userSid, orgPath).getData();
AppMendApplyInitVo appMendApplyInitVo = new AppMendApplyInitVo();
BeanUtil.copyProperties(data,appMendApplyInitVo);
return rb.success().setData(appMendApplyInitVo);
}
public ResultBean submit(SubmitAppMendApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
SubmitOaMendApplyDto submitOaMendApplyDto = new SubmitOaMendApplyDto();
BeanUtil.copyProperties(dto,submitOaMendApplyDto);
oaMendApplyFeign.submit(submitOaMendApplyDto);
return rb.success();
}
public ResultBean agreeCreditInfo(AppFlowDto dto) {
ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
OaMendApplyCompleteDto oaMendApplyCompleteDto = new OaMendApplyCompleteDto();
BeanUtil.copyProperties(dto, oaMendApplyCompleteDto);
oaMendApplyCompleteDto.setOrgPath(orgSidPath);
ResultBean resultBean = oaMendApplyFeign.complete(oaMendApplyCompleteDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean rejectCreditInfo(AppFlowTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
OaMendApplyTaskQuery oaMendApplyTaskQuery = new OaMendApplyTaskQuery();
BeanUtil.copyProperties(query, oaMendApplyTaskQuery);
ResultBean resultBean = oaMendApplyFeign.reject(oaMendApplyTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallCreditInfo(AppFlowTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
OaMendApplyTaskQuery oaMendApplyTaskQuery = new OaMendApplyTaskQuery();
BeanUtil.copyProperties(query, oaMendApplyTaskQuery);
ResultBean resultBean = oaMendApplyFeign.revokeProcess(oaMendApplyTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopCreditInfo(AppFlowTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
OaMendApplyTaskQuery oaMendApplyTaskQuery = new OaMendApplyTaskQuery();
BeanUtil.copyProperties(query, oaMendApplyTaskQuery);
ResultBean resultBean = oaMendApplyFeign.breakProcess(oaMendApplyTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(AppFlowQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
OaMendApplyNodeQuery getNodeQuery = new OaMendApplyNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<OaMendApplyNodeVo>> getPreviousNodesForReject = oaMendApplyFeign.getPreviousNodesForReject(getNodeQuery);
if (getPreviousNodesForReject.getSuccess()) {
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null));
data = getPreviousNodesForReject.getData().get(0).getName();
} else {
return rb.setMsg(getPreviousNodesForReject.getMsg());
}
} else if (next == 1) {
ResultBean<List<OaMendApplyNodeVo>> getNextNodesForSubmit = oaMendApplyFeign.getNextNodesForSubmit(getNodeQuery);
if (getNextNodesForSubmit.getSuccess()) {
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null));
data = getNextNodesForSubmit.getData().get(0).getName();
} else {
return rb.setMsg(getNextNodesForSubmit.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}
public ResultBean delegate(AppDelegateQuery delegateQuery) {
ResultBean rb = ResultBean.fireFail();
OaMendApplyDelegateQuery delegateQuery1 = new
OaMendApplyDelegateQuery();
BeanUtil.copyProperties(delegateQuery, delegateQuery1);
oaMendApplyFeign.delegate(delegateQuery1);
return rb.success();
}
public ResultBean assignTask(AppDelegateQuery delegateQuery) {
ResultBean rb = ResultBean.fireFail();
OaMendApplyDelegateQuery delegateQuery1 = new
OaMendApplyDelegateQuery();
BeanUtil.copyProperties(delegateQuery, delegateQuery1);
oaMendApplyFeign.assignTask(delegateQuery1);
return rb.success();
}
}

95
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/vehrebatecheckapply/AppVehrebateCheckapplyRest.java

@ -0,0 +1,95 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.biz.supplychain.vehrebatecheckapply;
import com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.AppVehrebateCheckapplyDetailsVo;
import com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.AppVehrebateCheckapplyFeign;
import com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.AppVehRebateDetailsVo;
import com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.flowable.*;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("v1/vehrebatecheckapply")
public class AppVehrebateCheckapplyRest implements AppVehrebateCheckapplyFeign {
@Autowired
private AppVehrebateCheckapplyService appVehrebateCheckapplyService;
@Override
public ResultBean<AppVehrebateCheckapplyDetailsVo> fetchDetailsBySid(String sid) {
return appVehrebateCheckapplyService.fetchDetailsBySid(sid);
}
@Override
public ResultBean<List<AppVehRebateDetailsVo>> vehRebateCheckDetails(String sid) {
return appVehrebateCheckapplyService.vehRebateCheckDetails(sid);
}
@Override
public ResultBean<AppVehRebateDetailsVo> vehRebateDetail(String sid) {
return appVehrebateCheckapplyService.vehRebateDetail(sid);
}
@Override
public ResultBean agreeCreditInfo(AppFlowDto dto) {
return appVehrebateCheckapplyService.agreeCreditInfo(dto);
}
@Override
public ResultBean rejectCreditInfo(AppFlowTaskQuery query) {
return appVehrebateCheckapplyService.rejectCreditInfo(query);
}
@Override
public ResultBean recallCreditInfo(AppFlowTaskQuery query) {
return appVehrebateCheckapplyService.recallCreditInfo(query);
}
@Override
public ResultBean stopCreditInfo(AppFlowTaskQuery query) {
return appVehrebateCheckapplyService.stopCreditInfo(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(AppFlowQuery query) {
return appVehrebateCheckapplyService.getFlowOperateTitle(query);
}
@Override
public ResultBean delegate(AppDelegateQuery delegateQuery) {
return appVehrebateCheckapplyService.delegate(delegateQuery);
}
@Override
public ResultBean assignTask(AppDelegateQuery delegateQuery) {
return appVehrebateCheckapplyService.assignTask(delegateQuery);
}
}

206
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/vehrebatecheckapply/AppVehrebateCheckapplyService.java

@ -0,0 +1,206 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.biz.supplychain.vehrebatecheckapply;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateDetailsVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyDetailsVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyFeign;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.ScmVehRebateCheckApplyCompleteDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailFeign;
import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.*;
import com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.AppVehRebateDetailsVo;
import com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.AppVehrebateCheckapplyDetailsVo;
import com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.AppVehrebateCheckapplydetailDetailsVo;
import com.yxt.anrui.terminal.api.supplychain.vehrebatecheckapply.flowable.*;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Service
public class AppVehrebateCheckapplyService {
@Resource
private ScmVehrebateCheckapplyFeign scmVehrebateCheckapplyFeign;
@Resource
private ScmVehrebateCheckapplydetailFeign scmVehrebateCheckapplydetailFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysUserFeign sysUserFeign;
public ResultBean<AppVehrebateCheckapplyDetailsVo> fetchDetailsBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
ScmVehrebateCheckapplyDetailsVo data = scmVehrebateCheckapplyFeign.fetchDetailsBySid(sid).getData();
AppVehrebateCheckapplyDetailsVo appVehrebateCheckapplyDetailsVo = new AppVehrebateCheckapplyDetailsVo();
appVehrebateCheckapplyDetailsVo.setProcInsId(data.getProcInstId());
BeanUtil.copyProperties(data,appVehrebateCheckapplyDetailsVo);
List<AppVehrebateCheckapplydetailDetailsVo> when = appVehrebateCheckapplyDetailsVo.getScmWhenVehrebateCheckapplydetailDetails();
List<AppVehrebateCheckapplydetailDetailsVo> last = appVehrebateCheckapplyDetailsVo.getScmLastVehrebateCheckapplydetailDetails();
for (AppVehrebateCheckapplydetailDetailsVo vehrebateCheckapplydetailDetailsVo : when) {
vehrebateCheckapplydetailDetailsVo.setSid(vehrebateCheckapplydetailDetailsVo.getVehRebateSid());
}
for (AppVehrebateCheckapplydetailDetailsVo vehrebateCheckapplydetailDetailsVo : last) {
vehrebateCheckapplydetailDetailsVo.setSid(vehrebateCheckapplydetailDetailsVo.getVehRebateSid());
}
return rb.success().setData(appVehrebateCheckapplyDetailsVo);
}
public ResultBean<List<AppVehRebateDetailsVo>> vehRebateCheckDetails(String sid) {
ResultBean rb = ResultBean.fireFail();
List<AppVehRebateDetailsVo> appVehRebateDetailsVos = new ArrayList<>();
List<ScmVehRebateDetailsVo> data = scmVehrebateCheckapplydetailFeign.vehRebateCheckDetails(sid).getData();
for (ScmVehRebateDetailsVo datum : data) {
AppVehRebateDetailsVo appVehRebateDetailsVo = new AppVehRebateDetailsVo();
BeanUtil.copyProperties(datum,appVehRebateDetailsVo);
appVehRebateDetailsVo.setSid(appVehRebateDetailsVo.getVehRebateSid());
appVehRebateDetailsVos.add(appVehRebateDetailsVo);
}
return rb.success().setData(appVehRebateDetailsVos);
}
public ResultBean<AppVehRebateDetailsVo> vehRebateDetail(String sid) {
ResultBean rb = ResultBean.fireFail();
AppVehRebateDetailsVo appVehRebateDetailsVo = new AppVehRebateDetailsVo();
ScmVehrebateCheckapplyDetailsVo data = scmVehrebateCheckapplyFeign.fetchDetailsBySid(sid).getData();
BeanUtil.copyProperties(data,appVehRebateDetailsVo);
return rb.success().setData(appVehRebateDetailsVo);
}
public ResultBean agreeCreditInfo(AppFlowDto dto) {
ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
ScmVehRebateCheckApplyCompleteDto scmVehRebateCheckApplyCompleteDto = new ScmVehRebateCheckApplyCompleteDto();
BeanUtil.copyProperties(dto, scmVehRebateCheckApplyCompleteDto);
scmVehRebateCheckApplyCompleteDto.setOrgSidPath(orgSidPath);
ResultBean resultBean = scmVehrebateCheckapplyFeign.complete(scmVehRebateCheckApplyCompleteDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean rejectCreditInfo(AppFlowTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean resultBean = scmVehrebateCheckapplyFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallCreditInfo(AppFlowTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean resultBean = scmVehrebateCheckapplyFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopCreditInfo(AppFlowTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean resultBean = scmVehrebateCheckapplyFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(AppFlowQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
GetNodeQuery getNodeQuery = new GetNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<GetNodeVo>> getPreviousNodesForReject = scmVehrebateCheckapplyFeign.getPreviousNodesForReject(getNodeQuery);
if (getPreviousNodesForReject.getSuccess()) {
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null));
data = getPreviousNodesForReject.getData().get(0).getName();
} else {
return rb.setMsg(getPreviousNodesForReject.getMsg());
}
} else if (next == 1) {
ResultBean<List<GetNodeVo>> getNextNodesForSubmit = scmVehrebateCheckapplyFeign.getNextNodesForSubmit(getNodeQuery);
if (getNextNodesForSubmit.getSuccess()) {
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null));
data = getNextNodesForSubmit.getData().get(0).getName();
} else {
return rb.setMsg(getNextNodesForSubmit.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}
public ResultBean delegate(AppDelegateQuery delegateQuery) {
ResultBean rb = ResultBean.fireFail();
ScmVehRebateCheckApplyDelegateQuery delegateQuery1 = new
ScmVehRebateCheckApplyDelegateQuery();
BeanUtil.copyProperties(delegateQuery, delegateQuery1);
scmVehrebateCheckapplyFeign.delegate(delegateQuery1);
return rb.success();
}
public ResultBean assignTask(AppDelegateQuery delegateQuery) {
ResultBean rb = ResultBean.fireFail();
ScmVehRebateCheckApplyDelegateQuery delegateQuery1 = new
ScmVehRebateCheckApplyDelegateQuery();
BeanUtil.copyProperties(delegateQuery, delegateQuery1);
scmVehrebateCheckapplyFeign.assignTask(delegateQuery1);
return rb.success();
}
}

84
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/OaMendApply.java

@ -0,0 +1,84 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.fegin.oamendapply;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApply.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApply <br/>
* Description: 补卡申请. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请", description = "补卡申请")
@TableName("oa_mend_apply")
public class OaMendApply extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("补卡时间")
private String time; // 补卡时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTime; // 办结日期
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
}

92
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/OaMendApplyDetailsVo.java

@ -0,0 +1,92 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.fegin.oamendapply;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.anrui.terminal.fegin.oaleaveapply.OaLeaveApplyDetailsVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyVo.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyVo <br/>
* Description: 补卡申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请 视图数据详情", description = "补卡申请 视图数据详情")
public class OaMendApplyDetailsVo extends OaLeaveApplyDetailsVo implements Vo {
private String sid; // sid
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("补卡原因")
private String remarks;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("补卡时间")
private String time; // 补卡时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTime;
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
@ApiModelProperty("图片")
private List<String> files = new ArrayList<>();
}

91
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/OaMendApplyDto.java

@ -0,0 +1,91 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.fegin.oamendapply;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyDto.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyDto <br/>
* Description: 补卡申请 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请 数据传输对象", description = "补卡申请 数据传输对象")
public class OaMendApplyDto implements Dto {
private String sid; // sid
private String userSid;
private String orgPath;
@ApiModelProperty("补卡原因")
private String remarks;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("补卡时间")
private String time; // 补卡时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTime;
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
@ApiModelProperty("图片")
private List<String> files = new ArrayList<>();
}

69
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/OaMendApplyFeign.java

@ -0,0 +1,69 @@
package com.yxt.anrui.terminal.fegin.oamendapply;
import com.yxt.anrui.terminal.fegin.oamendapply.flowable.*;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* @description: 商品基础信息
* @author: fzz
* @date: 2024/3/7
**/
@FeignClient(
contextId = "yxt-oa-OaMendApply",
name = "yxt-oa",
path = "v1/oamendapply"
)
public interface OaMendApplyFeign {
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<OaMendApplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid);
@ApiOperation("初始化")
@GetMapping("/init")
public ResultBean<OaMendApplyInitVo> init(@RequestParam(value = "sid",required = false) String sid, @RequestParam("userSid") String userSid, @RequestParam("orgPath") String orgPath);
@ApiOperation("提交审批流程")
@PostMapping("/submit")
public ResultBean submit(@RequestBody @Valid SubmitOaMendApplyDto dto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody OaMendApplyCompleteDto query);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
public ResultBean<List<OaMendApplyNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap OaMendApplyNodeQuery query);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
public ResultBean<List<OaMendApplyNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap OaMendApplyNodeQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean reject(@Valid @RequestBody OaMendApplyTaskQuery query);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody OaMendApplyTaskQuery query);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody OaMendApplyTaskQuery query);
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
public ResultBean delegate(@RequestBody OaMendApplyDelegateQuery query);
@ApiOperation(value = "转办")
@PutMapping(value = "/assignTask")
@ResponseBody
public ResultBean assignTask(@RequestBody OaMendApplyDelegateQuery query);
}

86
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/OaMendApplyInitVo.java

@ -0,0 +1,86 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.fegin.oamendapply;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyVo.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyVo <br/>
* Description: 补卡申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请 视图数据对象", description = "补卡申请 视图数据对象")
public class OaMendApplyInitVo implements Vo {
private String sid; // sid
private String userSid;
private String orgPath;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("补卡时间")
private String time; // 补卡时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTime;
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
}

37
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/flowable/OaMendApplyCompleteDto.java

@ -0,0 +1,37 @@
package com.yxt.anrui.terminal.fegin.oamendapply.flowable;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 14:57
* @Description
*/
@Data
public class OaMendApplyCompleteDto implements Dto {
private static final long serialVersionUID = 6378752532534735663L;
@ApiModelProperty(value = "用户sid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id(PC)")
private String instanceId;
@ApiModelProperty(value = "流程id(移动)")
private String procInsId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
private String orgPath;
}

26
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/flowable/OaMendApplyDelegateQuery.java

@ -0,0 +1,26 @@
package com.yxt.anrui.terminal.fegin.oamendapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/28 9:28
*/
@Data
public class OaMendApplyDelegateQuery {
@ApiModelProperty
private String userSid;
@ApiModelProperty("流程实例id")
// @JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

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

@ -0,0 +1,25 @@
package com.yxt.anrui.terminal.fegin.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;
}

26
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/flowable/OaMendApplyNodeVo.java

@ -0,0 +1,26 @@
package com.yxt.anrui.terminal.fegin.oamendapply.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
*/
@Data
public class OaMendApplyNodeVo implements Vo {
private static final long serialVersionUID = -833419512294877848L;
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

48
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/flowable/OaMendApplyTaskQuery.java

@ -0,0 +1,48 @@
package com.yxt.anrui.terminal.fegin.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:06
* @Description
*/
@Data
public class OaMendApplyTaskQuery implements Query {
private static final long serialVersionUID = 1288615499873178778L;
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id(PC)")
private String instanceId;
@ApiModelProperty("流程实例Id(移动)")
private String procInsId;
}

24
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/oamendapply/flowable/SubmitOaMendApplyDto.java

@ -0,0 +1,24 @@
package com.yxt.anrui.terminal.fegin.oamendapply.flowable;
import com.yxt.anrui.terminal.fegin.oamendapply.OaMendApplyDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liuguohui
* @version 1.0
* @description
* @date 2022/04/13
*/
@ApiModel("提交")
@Data
public class SubmitOaMendApplyDto extends OaMendApplyDto {
@ApiModelProperty("意见")
private String comment;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

101
yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaHireApplyRest.java

@ -0,0 +1,101 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.api;
import com.yxt.anrui.oa.biz.oahireapply.*;
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.web.bind.annotation.*;
import java.util.List;
import com.yxt.anrui.oa.api.oahireapply.OaHireApply;
import com.yxt.anrui.oa.api.oahireapply.OaHireApplyQuery;
import com.yxt.anrui.oa.api.oahireapply.OaHireApplyVo;
import com.yxt.anrui.oa.api.oahireapply.OaHireApplyDetailsVo;
import com.yxt.anrui.oa.api.oahireapply.OaHireApplyDto;
import com.yxt.anrui.oa.api.oahireapply.OaHireApplyFeign;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireApplyFeignFallback.java <br/>
* Class: com.yxt.anrui.oa.biz.oahireapply.OaHireApplyRest <br/>
* Description: 招聘需求申请. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "招聘需求申请")
@RestController("com.yxt.anrui.oa.biz.oahireapply.OaHireApplyRest")
@RequestMapping("v1/oahireapply")
public class OaHireApplyRest implements OaHireApplyFeign {
@Autowired
private OaHireApplyService oaHireApplyService;
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<OaHireApplyVo>> listPage(@RequestBody PagerQuery<OaHireApplyQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<OaHireApplyVo> pv = oaHireApplyService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody OaHireApplyDto dto){
ResultBean rb = ResultBean.fireFail();
oaHireApplyService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
@ApiOperation("根据sid批量删除")
@PostMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
ResultBean rb = ResultBean.fireFail();
oaHireApplyService.delBySids(sids);
return rb.success();
}
@Override
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<OaHireApplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
OaHireApplyDetailsVo vo = oaHireApplyService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
}

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

@ -0,0 +1,163 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
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;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyFeignFallback.java <br/>
* Class: com.yxt.anrui.oa.biz.oamendapply.OaMendApplyRest <br/>
* Description: 补卡申请. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "补卡申请")
@RestController
@RequestMapping("v1/oamendapply")
public class OaMendApplyRest {
@Autowired
private OaMendApplyService oaMendApplyService;
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<OaMendApplyVo>> listPage(@RequestBody PagerQuery<OaMendApplyQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<OaMendApplyVo> pv = oaMendApplyService.listPageVo(pq);
return rb.success().setData(pv);
}
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody OaMendApplyDto dto){
ResultBean rb = ResultBean.fireFail();
oaMendApplyService.saveOrUpdateDto(dto);
return rb.success();
}
@ApiOperation("根据sid批量删除")
@DeleteMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
ResultBean rb = ResultBean.fireFail();
oaMendApplyService.delAll(sids);
return rb.success();
}
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<OaMendApplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
OaMendApplyDetailsVo vo = oaMendApplyService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@ApiOperation("初始化")
@GetMapping("/init")
public ResultBean<OaMendApplyInitVo> init(@RequestParam(value = "sid",required = false) String sid, @RequestParam("userSid") String userSid, @RequestParam("orgPath") String orgPath) {
ResultBean rb = ResultBean.fireFail();
OaMendApplyInitVo vo = oaMendApplyService.init(sid, userSid, orgPath);
return rb.success().setData(vo);
}
@ApiOperation("提交审批流程")
@PostMapping("/submit")
public ResultBean submit(@RequestBody @Valid SubmitOaMendApplyDto dto) {
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);
}
}

83
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApply.java

@ -0,0 +1,83 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahireapply;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireApply.java <br/>
* Class: com.yxt.anrui.oa.api.oahireapply.OaHireApply <br/>
* Description: 招聘需求申请. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "招聘需求申请", description = "招聘需求申请")
@TableName("oa_hire_apply")
public class OaHireApply extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("所属机构key")
private String typeKey; // 所属机构key
@ApiModelProperty("所属机构value")
private String typeValue; // 所属机构value
@ApiModelProperty("是否财务")
private String isCw; // 是否财务
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTime; // 办结日期
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
}

85
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyDetailsVo.java

@ -0,0 +1,85 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahireapply;
import com.yxt.common.core.vo.Vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireApplyVo.java <br/>
* Class: com.yxt.anrui.oa.api.oahireapply.OaHireApplyVo <br/>
* Description: 招聘需求申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "招聘需求申请 视图数据详情", description = "招聘需求申请 视图数据详情")
public class OaHireApplyDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("所属机构key")
private String typeKey; // 所属机构key
@ApiModelProperty("所属机构value")
private String typeValue; // 所属机构value
@ApiModelProperty("是否财务")
private String isCw; // 是否财务
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTimeStart; // 办结日期
private Date finishTimeEnd; // 办结日期
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
}

85
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyDto.java

@ -0,0 +1,85 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahireapply;
import com.yxt.common.core.dto.Dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireApplyDto.java <br/>
* Class: com.yxt.anrui.oa.api.oahireapply.OaHireApplyDto <br/>
* Description: 招聘需求申请 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "招聘需求申请 数据传输对象", description = "招聘需求申请 数据传输对象")
public class OaHireApplyDto implements Dto {
private String sid; // sid
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("所属机构key")
private String typeKey; // 所属机构key
@ApiModelProperty("所属机构value")
private String typeValue; // 所属机构value
@ApiModelProperty("是否财务")
private String isCw; // 是否财务
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTimeStart; // 办结日期
private Date finishTimeEnd; // 办结日期
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
}

78
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyFeign.java

@ -0,0 +1,78 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahireapply;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireApplyFeign.java <br/>
* Class: com.yxt.anrui.oa.api.oahireapply.OaHireApplyFeign <br/>
* Description: 招聘需求申请. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "招聘需求申请")
@FeignClient(
contextId = "yxt-oa-OaHireApply",
name = "yxt-oa",
path = "v1/oahireapply",
fallback = OaHireApplyFeignFallback.class)
public interface OaHireApplyFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ResponseBody
public ResultBean<PagerVo<OaHireApplyVo>> listPage(@RequestBody PagerQuery<OaHireApplyQuery> pq);
@ApiOperation("新增或修改")
@PostMapping("/save")
@ResponseBody
public ResultBean save(@RequestBody OaHireApplyDto dto);
@ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids")
@ResponseBody
public ResultBean delBySids(@RequestBody String[] sids);
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody
public ResultBean<OaHireApplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid);
}

72
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyFeignFallback.java

@ -0,0 +1,72 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahireapply;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireApplyFeignFallback.java <br/>
* Class: com.yxt.anrui.oa.api.oahireapply.OaHireApplyFeignFallback <br/>
* Description: 招聘需求申请. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Component
public class OaHireApplyFeignFallback implements OaHireApplyFeign {
@Override
public ResultBean<PagerVo<OaHireApplyVo>> listPage(PagerQuery<OaHireApplyQuery> pq){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口yxt-oa/oahireapply/listPage无法访问");
}
@Override
public ResultBean save(OaHireApplyDto dto){
return ResultBean.fireFail().setMsg("接口yxt-oa/oahireapply/save无法访问");
}
@Override
public ResultBean delBySids( String[] sids){
return ResultBean.fireFail().setMsg("接口yxt-oa/oahireapply/delBySids无法访问");
}
@Override
public ResultBean<OaHireApplyDetailsVo> fetchDetailsBySid(String sid){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口yxt-oa/oahireapply/fetchDetailsBySid无法访问");
}
}

65
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyMapper.java

@ -0,0 +1,65 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahireapply;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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 org.apache.ibatis.annotations.Select;
import com.yxt.anrui.oa.api.oahireapply.OaHireApply;
import com.yxt.anrui.oa.api.oahireapply.OaHireApplyVo;
import java.util.List;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireApplyMapper.java <br/>
* Class: com.yxt.anrui.oa.biz.oahireapply.OaHireApplyMapper <br/>
* Description: 招聘需求申请. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface OaHireApplyMapper extends BaseMapper<OaHireApply> {
//@Update("update oa_hire_apply set name=#{msg} where id=#{id}")
//IPage<OaHireApplyVo> voPage(IPage<OaHireApply> page, @Param(Constants.WRAPPER) QueryWrapper<OaHireApply> qw);
IPage<OaHireApplyVo> selectPageVo(IPage<OaHireApply> page, @Param(Constants.WRAPPER) Wrapper<OaHireApply> qw);
List<OaHireApplyVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<OaHireApply> qw);
@Select("select * from oa_hire_apply")
List<OaHireApplyVo> selectListVo();
}

13
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyMapper.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.oa.biz.oahireapply.OaHireApplyMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.oa.api.oahireapply.OaHireApplyVo">
SELECT * FROM oa_hire_apply <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.oa.api.oahireapply.OaHireApplyVo">
SELECT * FROM oa_hire_apply <where> ${ew.sqlSegment} </where>
</select>
</mapper>

83
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyQuery.java

@ -0,0 +1,83 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahireapply;
import com.yxt.common.core.query.Query;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireApplyQuery.java <br/>
* Class: com.yxt.anrui.oa.api.oahireapply.OaHireApplyQuery <br/>
* Description: 招聘需求申请 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "招聘需求申请 查询条件", description = "招聘需求申请 查询条件")
public class OaHireApplyQuery implements Query {
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("所属机构key")
private String typeKey; // 所属机构key
@ApiModelProperty("所属机构value")
private String typeValue; // 所属机构value
@ApiModelProperty("是否财务")
private String isCw; // 是否财务
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTimeStart; // 办结日期
private Date finishTimeEnd; // 办结日期
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
}

110
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyService.java

@ -0,0 +1,110 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahireapply;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.anrui.oa.api.oahireapply.OaHireApply;
import com.yxt.anrui.oa.api.oahireapply.OaHireApplyQuery;
import com.yxt.anrui.oa.api.oahireapply.OaHireApplyVo;
import com.yxt.anrui.oa.api.oahireapply.OaHireApplyDetailsVo;
import com.yxt.anrui.oa.api.oahireapply.OaHireApplyDto;
import com.yxt.anrui.oa.api.oahireapply.OaHireApplyFeign;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireApplyService.java <br/>
* Class: com.yxt.anrui.oa.biz.oahireapply.OaHireApplyService <br/>
* Description: 招聘需求申请 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class OaHireApplyService extends MybatisBaseService<OaHireApplyMapper, OaHireApply> {
private QueryWrapper<OaHireApply> createQueryWrapper(OaHireApplyQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<OaHireApply> qw = new QueryWrapper<>();
return qw;
}
public PagerVo<OaHireApplyVo> listPageVo(PagerQuery<OaHireApplyQuery> pq) {
OaHireApplyQuery query = pq.getParams();
QueryWrapper<OaHireApply> qw = createQueryWrapper(query);
IPage<OaHireApply> page = PagerUtil.queryToPage(pq);
IPage<OaHireApplyVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<OaHireApplyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(OaHireApplyDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
this.insertByDto(dto);
return;
}
this.updateByDto(dto);
}
public void insertByDto(OaHireApplyDto dto){
OaHireApply entity = new OaHireApply();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(OaHireApplyDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
OaHireApply entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public OaHireApplyDetailsVo fetchDetailsVoBySid(String sid){
OaHireApply entity = fetchBySid(sid);
OaHireApplyDetailsVo vo = new OaHireApplyDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}

85
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahireapply/OaHireApplyVo.java

@ -0,0 +1,85 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahireapply;
import com.yxt.common.core.vo.Vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireApplyVo.java <br/>
* Class: com.yxt.anrui.oa.api.oahireapply.OaHireApplyVo <br/>
* Description: 招聘需求申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "招聘需求申请 视图数据对象", description = "招聘需求申请 视图数据对象")
public class OaHireApplyVo implements Vo {
private String sid; // sid
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("所属机构key")
private String typeKey; // 所属机构key
@ApiModelProperty("所属机构value")
private String typeValue; // 所属机构value
@ApiModelProperty("是否财务")
private String isCw; // 是否财务
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTimeStart; // 办结日期
private Date finishTimeEnd; // 办结日期
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
}

74
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetails.java

@ -0,0 +1,74 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahiredetails;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireDetails.java <br/>
* Class: com.yxt.anrui.oa.api.oahiredetails.OaHireDetails <br/>
* Description: 招聘需求明细. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "招聘需求明细", description = "招聘需求明细")
@TableName("oa_hire_details")
public class OaHireDetails extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("招聘部门")
private String hireDeptName; // 招聘部门
@ApiModelProperty("招聘岗位")
private String hirePostName; // 招聘岗位
@ApiModelProperty("招聘人数")
private String hirePeoNum; // 招聘人数
@ApiModelProperty("学历要求key")
private String stuexTypeKey; // 学历要求key
@ApiModelProperty("学历要求value")
private String stuexTypeValue; // 学历要求value
@ApiModelProperty("薪资待遇")
private String salary; // 薪资待遇
@ApiModelProperty("职位福利")
private String benefit; // 职位福利
@ApiModelProperty("职位描述")
private String positionRemarks; // 职位描述
@ApiModelProperty("任职要求")
private String requireRemarks; // 任职要求
@ApiModelProperty("工作地址")
private String workAddress; // 工作地址
}

75
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsDetailsVo.java

@ -0,0 +1,75 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahiredetails;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireDetailsVo.java <br/>
* Class: com.yxt.anrui.oa.api.oahiredetails.OaHireDetailsVo <br/>
* Description: 招聘需求明细 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "招聘需求明细 视图数据详情", description = "招聘需求明细 视图数据详情")
public class OaHireDetailsDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("招聘部门")
private String hireDeptName; // 招聘部门
@ApiModelProperty("招聘岗位")
private String hirePostName; // 招聘岗位
@ApiModelProperty("招聘人数")
private String hirePeoNum; // 招聘人数
@ApiModelProperty("学历要求key")
private String stuexTypeKey; // 学历要求key
@ApiModelProperty("学历要求value")
private String stuexTypeValue; // 学历要求value
@ApiModelProperty("薪资待遇")
private String salary; // 薪资待遇
@ApiModelProperty("职位福利")
private String benefit; // 职位福利
@ApiModelProperty("职位描述")
private String positionRemarks; // 职位描述
@ApiModelProperty("任职要求")
private String requireRemarks; // 任职要求
@ApiModelProperty("工作地址")
private String workAddress; // 工作地址
}

75
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsDto.java

@ -0,0 +1,75 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahiredetails;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireDetailsDto.java <br/>
* Class: com.yxt.anrui.oa.api.oahiredetails.OaHireDetailsDto <br/>
* Description: 招聘需求明细 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "招聘需求明细 数据传输对象", description = "招聘需求明细 数据传输对象")
public class OaHireDetailsDto implements Dto {
private String sid; // sid
@ApiModelProperty("招聘部门")
private String hireDeptName; // 招聘部门
@ApiModelProperty("招聘岗位")
private String hirePostName; // 招聘岗位
@ApiModelProperty("招聘人数")
private String hirePeoNum; // 招聘人数
@ApiModelProperty("学历要求key")
private String stuexTypeKey; // 学历要求key
@ApiModelProperty("学历要求value")
private String stuexTypeValue; // 学历要求value
@ApiModelProperty("薪资待遇")
private String salary; // 薪资待遇
@ApiModelProperty("职位福利")
private String benefit; // 职位福利
@ApiModelProperty("职位描述")
private String positionRemarks; // 职位描述
@ApiModelProperty("任职要求")
private String requireRemarks; // 任职要求
@ApiModelProperty("工作地址")
private String workAddress; // 工作地址
}

78
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsFeign.java

@ -0,0 +1,78 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahiredetails;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireDetailsFeign.java <br/>
* Class: com.yxt.anrui.oa.api.oahiredetails.OaHireDetailsFeign <br/>
* Description: 招聘需求明细. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "招聘需求明细")
@FeignClient(
contextId = "yxt-oa-OaHireDetails",
name = "yxt-oa",
path = "v1/oahiredetails",
fallback = OaHireDetailsFeignFallback.class)
public interface OaHireDetailsFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ResponseBody
public ResultBean<PagerVo<OaHireDetailsVo>> listPage(@RequestBody PagerQuery<OaHireDetailsQuery> pq);
@ApiOperation("新增或修改")
@PostMapping("/save")
@ResponseBody
public ResultBean save(@RequestBody OaHireDetailsDto dto);
@ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids")
@ResponseBody
public ResultBean delBySids(@RequestBody String[] sids);
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody
public ResultBean<OaHireDetailsDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid);
}

72
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsFeignFallback.java

@ -0,0 +1,72 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahiredetails;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireDetailsFeignFallback.java <br/>
* Class: com.yxt.anrui.oa.api.oahiredetails.OaHireDetailsFeignFallback <br/>
* Description: 招聘需求明细. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Component
public class OaHireDetailsFeignFallback implements OaHireDetailsFeign {
@Override
public ResultBean<PagerVo<OaHireDetailsVo>> listPage(PagerQuery<OaHireDetailsQuery> pq){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口yxt-oa/oahiredetails/listPage无法访问");
}
@Override
public ResultBean save(OaHireDetailsDto dto){
return ResultBean.fireFail().setMsg("接口yxt-oa/oahiredetails/save无法访问");
}
@Override
public ResultBean delBySids( String[] sids){
return ResultBean.fireFail().setMsg("接口yxt-oa/oahiredetails/delBySids无法访问");
}
@Override
public ResultBean<OaHireDetailsDetailsVo> fetchDetailsBySid(String sid){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口yxt-oa/oahiredetails/fetchDetailsBySid无法访问");
}
}

65
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsMapper.java

@ -0,0 +1,65 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahiredetails;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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 org.apache.ibatis.annotations.Select;
import com.yxt.anrui.oa.api.oahiredetails.OaHireDetails;
import com.yxt.anrui.oa.api.oahiredetails.OaHireDetailsVo;
import java.util.List;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireDetailsMapper.java <br/>
* Class: com.yxt.anrui.oa.biz.oahiredetails.OaHireDetailsMapper <br/>
* Description: 招聘需求明细. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface OaHireDetailsMapper extends BaseMapper<OaHireDetails> {
//@Update("update oa_hire_details set name=#{msg} where id=#{id}")
//IPage<OaHireDetailsVo> voPage(IPage<OaHireDetails> page, @Param(Constants.WRAPPER) QueryWrapper<OaHireDetails> qw);
IPage<OaHireDetailsVo> selectPageVo(IPage<OaHireDetails> page, @Param(Constants.WRAPPER) Wrapper<OaHireDetails> qw);
List<OaHireDetailsVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<OaHireDetails> qw);
@Select("select * from oa_hire_details")
List<OaHireDetailsVo> selectListVo();
}

13
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsMapper.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.oa.biz.oahiredetails.OaHireDetailsMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.oa.api.oahiredetails.OaHireDetailsVo">
SELECT * FROM oa_hire_details <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.oa.api.oahiredetails.OaHireDetailsVo">
SELECT * FROM oa_hire_details <where> ${ew.sqlSegment} </where>
</select>
</mapper>

73
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsQuery.java

@ -0,0 +1,73 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahiredetails;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireDetailsQuery.java <br/>
* Class: com.yxt.anrui.oa.api.oahiredetails.OaHireDetailsQuery <br/>
* Description: 招聘需求明细 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "招聘需求明细 查询条件", description = "招聘需求明细 查询条件")
public class OaHireDetailsQuery implements Query {
@ApiModelProperty("招聘部门")
private String hireDeptName; // 招聘部门
@ApiModelProperty("招聘岗位")
private String hirePostName; // 招聘岗位
@ApiModelProperty("招聘人数")
private String hirePeoNum; // 招聘人数
@ApiModelProperty("学历要求key")
private String stuexTypeKey; // 学历要求key
@ApiModelProperty("学历要求value")
private String stuexTypeValue; // 学历要求value
@ApiModelProperty("薪资待遇")
private String salary; // 薪资待遇
@ApiModelProperty("职位福利")
private String benefit; // 职位福利
@ApiModelProperty("职位描述")
private String positionRemarks; // 职位描述
@ApiModelProperty("任职要求")
private String requireRemarks; // 任职要求
@ApiModelProperty("工作地址")
private String workAddress; // 工作地址
}

110
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsService.java

@ -0,0 +1,110 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahiredetails;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.anrui.oa.api.oahiredetails.OaHireDetails;
import com.yxt.anrui.oa.api.oahiredetails.OaHireDetailsQuery;
import com.yxt.anrui.oa.api.oahiredetails.OaHireDetailsVo;
import com.yxt.anrui.oa.api.oahiredetails.OaHireDetailsDetailsVo;
import com.yxt.anrui.oa.api.oahiredetails.OaHireDetailsDto;
import com.yxt.anrui.oa.api.oahiredetails.OaHireDetailsFeign;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireDetailsService.java <br/>
* Class: com.yxt.anrui.oa.biz.oahiredetails.OaHireDetailsService <br/>
* Description: 招聘需求明细 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class OaHireDetailsService extends MybatisBaseService<OaHireDetailsMapper, OaHireDetails> {
private QueryWrapper<OaHireDetails> createQueryWrapper(OaHireDetailsQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<OaHireDetails> qw = new QueryWrapper<>();
return qw;
}
public PagerVo<OaHireDetailsVo> listPageVo(PagerQuery<OaHireDetailsQuery> pq) {
OaHireDetailsQuery query = pq.getParams();
QueryWrapper<OaHireDetails> qw = createQueryWrapper(query);
IPage<OaHireDetails> page = PagerUtil.queryToPage(pq);
IPage<OaHireDetailsVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<OaHireDetailsVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(OaHireDetailsDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
this.insertByDto(dto);
return;
}
this.updateByDto(dto);
}
public void insertByDto(OaHireDetailsDto dto){
OaHireDetails entity = new OaHireDetails();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(OaHireDetailsDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
OaHireDetails entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public OaHireDetailsDetailsVo fetchDetailsVoBySid(String sid){
OaHireDetails entity = fetchBySid(sid);
OaHireDetailsDetailsVo vo = new OaHireDetailsDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}

75
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oahiredetails/OaHireDetailsVo.java

@ -0,0 +1,75 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oahiredetails;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(招聘需求) <br/>
* File: OaHireDetailsVo.java <br/>
* Class: com.yxt.anrui.oa.api.oahiredetails.OaHireDetailsVo <br/>
* Description: 招聘需求明细 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-05 11:51:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "招聘需求明细 视图数据对象", description = "招聘需求明细 视图数据对象")
public class OaHireDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("招聘部门")
private String hireDeptName; // 招聘部门
@ApiModelProperty("招聘岗位")
private String hirePostName; // 招聘岗位
@ApiModelProperty("招聘人数")
private String hirePeoNum; // 招聘人数
@ApiModelProperty("学历要求key")
private String stuexTypeKey; // 学历要求key
@ApiModelProperty("学历要求value")
private String stuexTypeValue; // 学历要求value
@ApiModelProperty("薪资待遇")
private String salary; // 薪资待遇
@ApiModelProperty("职位福利")
private String benefit; // 职位福利
@ApiModelProperty("职位描述")
private String positionRemarks; // 职位描述
@ApiModelProperty("任职要求")
private String requireRemarks; // 任职要求
@ApiModelProperty("工作地址")
private String workAddress; // 工作地址
}

2
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaleaveapply/OaLeaveApplyService.java

@ -91,8 +91,6 @@ public class OaLeaveApplyService extends MybatisBaseService<OaLeaveApplyMapper,
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysUserRoleFeign sysUserRoleFeign;
@Autowired
private DictCommonFeign dictCommonFeign;
@Autowired
private FileUploadComponent fileUploadComponent;

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

@ -0,0 +1,83 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oamendapply;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApply.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApply <br/>
* Description: 补卡申请. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请", description = "补卡申请")
@TableName("oa_mend_apply")
public class OaMendApply extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("补卡时间")
private String time; // 补卡时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTime; // 办结日期
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
}

93
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDetailsVo.java

@ -0,0 +1,93 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oamendapply;
import com.yxt.common.core.vo.Vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyVo.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyVo <br/>
* Description: 补卡申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请 视图数据详情", description = "补卡申请 视图数据详情")
public class OaMendApplyDetailsVo implements Vo {
private String sid; // sid
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("补卡原因")
private String remarks;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("补卡时间")
private String time; // 补卡时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTime;
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
@ApiModelProperty("图片")
private List<String> files = new ArrayList<>();
}

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

@ -0,0 +1,93 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oamendapply;
import com.yxt.common.core.dto.Dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyDto.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyDto <br/>
* Description: 补卡申请 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请 数据传输对象", description = "补卡申请 数据传输对象")
public class OaMendApplyDto implements Dto {
private String sid; // sid
private String userSid;
private String orgPath;
@ApiModelProperty("补卡原因")
private String remarks;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("补卡时间")
private String time; // 补卡时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTime;
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
@ApiModelProperty("图片")
private List<String> files = new ArrayList<>();
}

86
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyInitVo.java

@ -0,0 +1,86 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oamendapply;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyVo.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyVo <br/>
* Description: 补卡申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请 视图数据对象", description = "补卡申请 视图数据对象")
public class OaMendApplyInitVo implements Vo {
private String sid; // sid
private String userSid;
private String orgPath;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("补卡时间")
private String time; // 补卡时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTime;
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
}

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

@ -0,0 +1,59 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oamendapply;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyMapper.java <br/>
* Class: com.yxt.anrui.oa.biz.oamendapply.OaMendApplyMapper <br/>
* Description: 补卡申请. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface OaMendApplyMapper extends BaseMapper<OaMendApply> {
IPage<OaMendApplyVo> selectPageVo(IPage<OaMendApply> page, @Param(Constants.WRAPPER) Wrapper<OaMendApply> qw);
int updateFlowFiled(Map<String, Object> map);
int selectBySid(String join);
String selectNum(String billNo);
}

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

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.oa.biz.oamendapply.OaMendApplyMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.oa.biz.oamendapply.OaMendApplyVo">
SELECT * FROM oa_mend_apply <where> ${ew.sqlSegment} </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
</select>
</mapper>

83
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyQuery.java

@ -0,0 +1,83 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oamendapply;
import com.yxt.common.core.query.Query;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyQuery.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyQuery <br/>
* Description: 补卡申请 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请 查询条件", description = "补卡申请 查询条件")
public class OaMendApplyQuery implements Query {
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("补卡时间")
private String time; // 补卡时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTimeStart; // 办结日期
private Date finishTimeEnd; // 办结日期
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
}

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

@ -0,0 +1,571 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
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;
import com.yxt.anrui.oa.biz.oaappendix.OaAppendix;
import com.yxt.anrui.oa.biz.oaappendix.OaAppendixService;
import com.yxt.anrui.oa.biz.oamendapply.flowable.*;
import com.yxt.anrui.oa.feign.base.Rule;
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;
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;
import com.yxt.common.base.utils.PagerUtil;
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 java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@Service
public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, OaMendApply> {
@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;
public PagerVo<OaMendApplyVo> listPageVo(PagerQuery<OaMendApplyQuery> pq) {
OaMendApplyQuery query = pq.getParams();
QueryWrapper<OaMendApply> qw = new QueryWrapper<>();
IPage<OaMendApply> page = PagerUtil.queryToPage(pq);
IPage<OaMendApplyVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<OaMendApplyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public String saveOrUpdateDto(OaMendApplyDto dto){
String dtoSid = dto.getSid();
List<String> files = dto.getFiles();
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
dto.setUseOrgSid(useOrgSid);
dto.setUseOrgName(organizationVo.getName());
String deptName = "";
String deptSid = "";
List<String> split = Arrays.asList(dto.getOrgPath().split("/"));
if (split.size() > 1) {
//获取本级sid获取本级部门信息
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData();
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
deptName = sysOrganization.getName() + "/" + sysOrganization1.getName();
deptName = sysOrganization1.getName();
deptSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
deptName = sysOrganization.getName();
deptName = sysOrganization.getName();
deptSid = sysOrganization.getSid();
}
dto.setDeptSid(deptSid);
dto.setDeptName(deptName);
if (StringUtils.isBlank(dtoSid)) {
//生成单据编号
String billNo = "";
String date = DateUtil.format(DateUtil.date(), "yyyyMM");
billNo = "QJSQ" + organizationVo.getOrgCode() + date;
String i = baseMapper.selectNum(billNo);
if (StringUtils.isNotBlank(i)) {
billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue());
} else {
billNo = Rule.getBillNo(billNo, 0);
}
dto.setBillNo(billNo);
String sid = this.insertByDto(dto);
for (String file : files) {
String filePath = file.replace(fileUploadComponent.getUrlPrefix(), "");
OaAppendix oaAppendix = new OaAppendix();
oaAppendix.setLinkSid(sid);
oaAppendix.setAttachType(OaFileEnum.OAMENDAPPLY.getAttachType());
oaAppendix.setFilePath(filePath);
oaAppendixService.save(oaAppendix);
}
return sid;
}
this.updateByDto(dto);
return dtoSid;
}
public String insertByDto(OaMendApplyDto dto){
OaMendApply entity = new OaMendApply();
BeanUtil.copyProperties(dto, entity, "id", "sid");
entity.setNodeState("待提交");
entity.setCreateBySid(dto.getUserSid());
SysUserVo sysUserVo = sysUserFeign.fetchBySid(dto.getUserSid()).getData();
entity.setCreateByName(sysUserVo.getName());
baseMapper.insert(entity);
return entity.getSid();
}
public void updateByDto(OaMendApplyDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
OaMendApply entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public OaMendApplyDetailsVo fetchDetailsVoBySid(String sid){
OaMendApply entity = fetchBySid(sid);
OaMendApplyDetailsVo vo = new OaMendApplyDetailsVo();
BeanUtil.copyProperties(entity, vo);
List<OaAppendix> oaAppendices = oaAppendixService.fetchByLinkSid(sid);
List<String> files = new ArrayList<>();
for (OaAppendix oaAppendix : oaAppendices) {
String url = fileUploadComponent.getUrlPrefix() + oaAppendix.getFilePath();
files.add(url);
}
vo.setFiles(files);
return vo;
}
public ResultBean submit(SubmitOaMendApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
OaMendApply oaMendApply = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, oaMendApply);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
//新增修改保存
String businessSid = saveOrUpdateDto(dto);
oaMendApply = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//用户的部门全路径sid
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(oaMendApply.getDeptSid()).getData();
bv.setOrgSidPath(deptVo.getOrgSidPath());
//业务sid
bv.setBusinessSid(businessSid);
//用户sid
bv.setUserSid(oaMendApply.getCreateBySid());
//若app移动端有此功能,则传递appMap参数
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
variables.put("app", appMap);
//网关
//流程定义id
bv.setModelId(ProcDefEnum.OAMENDAPPLY.getProDefId());
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(oaMendApply.getDeptSid()).getData();
bv.setNextNodeUserSids(organizationVo.getManagerSid());
bv.setFormVariables(variables);
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(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;
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("补卡申请");
messageFlowableQuery.setMsgContent(mendApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("补卡申请");
messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//==================================添加线程
return voResultBean;
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
bv.setTaskId(oaMendApply.getTaskId());
bv.setTaskDefKey(oaMendApply.getNodeId());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
private synchronized int submitBusinessData(SubmitOaMendApplyDto dto, OaMendApply oaMendApply) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (oaMendApply != null) {
String businessTaskId = oaMendApply.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
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);
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.getDeptSid()).getData();
bv.setOrgSidPath(deptVo.getOrgSidPath());
bv.setModelId(oaMendApply.getProcDefId());
if (bv.getTaskId().equals(oaMendApply.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
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;
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcDefId(mendApply.getProcDefId());
ufVo.setProcInsId(mendApply.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("补卡申请");
messageFlowableQuery.setMsgContent(mendApply.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());
//网关
bv.setModelId(oaMendApply.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());
//网关
bv.setModelId(oaMendApply.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("该申请不存在");
}
String businessTaskId = oaMendApply.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);
//极光推送
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;
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = mendApply.getProcInstId();
ufVo.setProcInsId(procId);
ufVo.setProcDefId(mendApply.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.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());
String businessTaskId = oaMendApply.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()));
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());
String businessTaskId = oaMendApply.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);
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);
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中是否有流程不是待提交的
int count = baseMapper.selectBySid(StringUtils.join(sids, ","));
if (count > 0) {
return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败");
}
delBySids(sids);
return rb.success();
}
public OaMendApplyInitVo init(String sid, String userSid, String orgPath) {
OaMendApplyInitVo oaMendApplyInitVo = new OaMendApplyInitVo();
oaMendApplyInitVo.setUserSid(userSid);
oaMendApplyInitVo.setOrgPath(orgPath);
return oaMendApplyInitVo;
}
}

84
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyVo.java

@ -0,0 +1,84 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oamendapply;
import com.yxt.common.core.vo.Vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyVo.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyVo <br/>
* Description: 补卡申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请 视图数据对象", description = "补卡申请 视图数据对象")
public class OaMendApplyVo implements Vo {
private String sid; // sid
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("补卡时间")
private String time; // 补卡时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("办结日期")
private Date finishTime;
@ApiModelProperty("实例id")
private String procInstId; // 实例id
@ApiModelProperty("流程定义id")
private String procDefId; // 流程定义id
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("环节id")
private String nodeId; // 环节id
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
}

37
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyCompleteDto.java

@ -0,0 +1,37 @@
package com.yxt.anrui.oa.biz.oamendapply.flowable;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 14:57
* @Description
*/
@Data
public class OaMendApplyCompleteDto implements Dto {
private static final long serialVersionUID = 6378752532534735663L;
@ApiModelProperty(value = "用户sid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id(PC)")
private String instanceId;
@ApiModelProperty(value = "流程id(移动)")
private String procInsId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
private String orgPath;
}

26
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyDelegateQuery.java

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

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

@ -0,0 +1,25 @@
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;
}

26
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyNodeVo.java

@ -0,0 +1,26 @@
package com.yxt.anrui.oa.biz.oamendapply.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
*/
@Data
public class OaMendApplyNodeVo implements Vo {
private static final long serialVersionUID = -833419512294877848L;
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

48
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/flowable/OaMendApplyTaskQuery.java

@ -0,0 +1,48 @@
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:06
* @Description
*/
@Data
public class OaMendApplyTaskQuery implements Query {
private static final long serialVersionUID = 1288615499873178778L;
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id(PC)")
private String instanceId;
@ApiModelProperty("流程实例Id(移动)")
private String procInsId;
}

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

@ -0,0 +1,25 @@
package com.yxt.anrui.oa.biz.oamendapply.flowable;
import com.yxt.anrui.oa.biz.oaleaveapply.OaLeaveApplyDto;
import com.yxt.anrui.oa.biz.oamendapply.OaMendApplyDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liuguohui
* @version 1.0
* @description
* @date 2022/04/13
*/
@ApiModel("提交")
@Data
public class SubmitOaMendApplyDto extends OaMendApplyDto {
@ApiModelProperty("意见")
private String comment;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

1
yxt-oa/src/main/java/com/yxt/anrui/oa/feign/file/OaFileEnum.java

@ -8,6 +8,7 @@ package com.yxt.anrui.oa.feign.file;
public enum OaFileEnum {
OALEAVEAPPLY("001", "请假申请附件"),
OAMENDAPPLY("002", "补卡申请附件"),
;

1
yxt-oa/src/main/java/com/yxt/anrui/oa/feign/flowable/flow/ProcDefEnum.java

@ -8,6 +8,7 @@ public enum ProcDefEnum {
/***************************正式流程id***********************************/
OALEAVEAPPLY("请假申请", "process_su0yph7n:1:15957504"),
OAMENDAPPLY("补卡申请", "process_9suucr96:1:16072504"),
;

Loading…
Cancel
Save