TblContractController.java
8.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
package com.ruoyi.compliancemanagement.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Arrays;
import java.util.Map;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.compliancemanagement.domain.TblContract;
import com.ruoyi.compliancemanagement.domain.bo.TblBusinessWorkflowBo;
import com.ruoyi.compliancemanagement.model.TblContractModel;
import com.ruoyi.compliancemanagement.service.ITblBusinessWorkflowService;
import com.ruoyi.workflow.service.IWfProcessService;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.flowable.engine.runtime.ProcessInstance;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.compliancemanagement.domain.vo.TblContractVo;
import com.ruoyi.compliancemanagement.domain.bo.TblContractBo;
import com.ruoyi.compliancemanagement.service.ITblContractService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 【请填写功能名称】
*
* @author ruoyi
* @date 2024-07-05
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/contract")
public class TblContractController extends BaseController {
private final ITblContractService iTblContractService;
private final IWfProcessService iWfProcessService;
private final ITblBusinessWorkflowService iTblBusinessWorkflowService;
/**
* 查询【请填写功能名称】列表
*/
@SaCheckPermission("system:contract:list")
@GetMapping("/list")
public TableDataInfo<TblContractModel> list(TblContractBo bo, PageQuery pageQuery) {
return iTblContractService.queryPageList(bo, pageQuery);
}
/**
* 导出【请填写功能名称】列表
*/
@SaCheckPermission("system:contract:export")
@Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(TblContractBo bo, HttpServletResponse response) {
List<TblContractVo> list = iTblContractService.queryList(bo);
ExcelUtil.exportExcel(list, "【请填写功能名称】", TblContractVo.class, response);
}
/**
* 获取【请填写功能名称】详细信息
*
* @param id 主键
*/
@SaCheckPermission("system:contract:query")
@GetMapping("/{id}")
public R<TblContractVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(iTblContractService.queryById(id));
}
/**
* 新增【请填写功能名称】
*/
// @SaCheckPermission("system:contract:add")
// @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
// @RepeatSubmit()
// @PostMapping()
// public R<Void> add(@Validated(AddGroup.class) @RequestBody TblContractBo bo) {
// return toAjax(iTblContractService.insertByBo(bo));
// }
/**
* 新增合同起草数据并启动流程
*/
// @SaCheckPermission("system:contract:addAndStart")
// @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
// @RepeatSubmit()
// @PostMapping()
// public R<Void> addAnd(@Validated(AddGroup.class) @RequestBody TblContractBo bo) {
// return toAjax(iTblContractService.insertByBo(bo));
// }
@Transactional(rollbackFor = Exception.class)
@SaCheckPermission("system:contract:addAndStart")
@Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> addAndStart(
@Validated(AddGroup.class) @RequestBody TblContractBo bo) {
// Matter matter = new Matter();
String procDefId = "Process_18tcmzu:1:040fd586-433c-11ef-b955-421c839c76ba";
iTblContractService.insertByBo(bo);
Long id = bo.getId();
//Long id = sLeaveService.create(studentLeave,matterKey);
if (id > 0 || id != null){
Map<String, Object> variables = new HashMap<>();
// fromSource用来标识此事项是提交来源是客户端还是移动端
//合同编号
variables.put("contractno", bo.getContractno());
// 合同名称
variables.put("contractName",bo.getContractName());
// 合同类型
variables.put("contractType",Long.valueOf(bo.getContractType()));
// 合同金额
variables.put("contractAmount", bo.getContractAmount());
// 生效日期
variables.put("effectiveDate", bo.getEffectiveDate());
// 到期日期
variables.put("expirationDate", bo.getExpirationDate());
// 甲方
variables.put("partyA", bo.getPartyA());
// 甲方链接地址
variables.put("partyAAddress", bo.getPartyAAddress());
// 乙方
variables.put("partyB", bo.getPartyB());
// 乙方链接地址
variables.put("partyBAddress", bo.getPartyBAddress());
// 付款方式
variables.put("paymentMethod", bo.getPaymentMethod());
// 签订日期
variables.put("signingDate", bo.getSigningDate());
// 标的物信息
variables.put("subjectInformation", bo.getSubjectInformation());
// 附件
variables.put("attachments", bo.getAttachments());
// 变更原因
variables.put("reasonChange", bo.getReasonChange());
// 变更内容
variables.put("reasonText", bo.getReasonText());
// 启动流程
// CollegeMatters mat = iCollegeMattersService.getMatter(matterKey);
// matter.setMatterDept(mat.getMatterDepartmentId());
// variables.put("department", mat.getMatterDepartmentId());
// matter.setMatterKey(procDefId);
// matter.setBusinessKey(procDefId + "." + id);
// matter.setVariables(variables);
// matter.setProcessId("Process_18tcmzu:1:216d90ff-3f8a-11ef-b7e7-70b5e84e8ddf");
// iWfProcessService.startProcess(matter);
ProcessInstance processInstance = iWfProcessService.startProcessByDefId(procDefId, variables);
if(null != processInstance){
TblBusinessWorkflowBo tblBusinessWorkflowBo = new TblBusinessWorkflowBo();
tblBusinessWorkflowBo.setBusinessId(id);
tblBusinessWorkflowBo.setProcInsId(processInstance.getProcessInstanceId());
tblBusinessWorkflowBo.setProcDefId(procDefId);
tblBusinessWorkflowBo.setDeployId(processInstance.getDeploymentId());
TableName table = TblContract.class.getAnnotation(TableName.class);
tblBusinessWorkflowBo.setTableName(table.value());
iTblBusinessWorkflowService.insertByBo(tblBusinessWorkflowBo);
// iTblContractService.updateProcInsIdById(processInstance.getProcessInstanceId(),id);
}
return R.ok("成功");
}else{
return R.fail("系统故障!");
}
}
/**
* 修改【请填写功能名称】
*/
@SaCheckPermission("system:contract:edit")
@Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TblContractBo bo) {
return toAjax(iTblContractService.updateByBo(bo));
}
/**
* 删除【请填写功能名称】
*
* @param ids 主键串
*/
@SaCheckPermission("system:contract:remove")
@Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(iTblContractService.deleteWithValidByIds(Arrays.asList(ids), true));
}
}