Skip to content

Commit 92decd7

Browse files
WangXu10fit2-zhao
authored andcommitted
feat: contract operation
1 parent c5f830d commit 92decd7

File tree

10 files changed

+644
-9
lines changed

10 files changed

+644
-9
lines changed

backend/crm/src/main/java/cn/cordys/crm/contract/controller/ContractController.java

Lines changed: 55 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,18 @@
22

33
import cn.cordys.common.constants.FormKey;
44
import cn.cordys.common.constants.PermissionConstants;
5+
import cn.cordys.common.dto.DeptDataPermissionDTO;
6+
import cn.cordys.common.pager.PagerWithOption;
7+
import cn.cordys.common.service.DataScopeService;
8+
import cn.cordys.common.utils.ConditionFilterUtils;
59
import cn.cordys.context.OrganizationContext;
610
import cn.cordys.crm.contract.domain.Contract;
711
import cn.cordys.crm.contract.dto.request.ContractAddRequest;
12+
import cn.cordys.crm.contract.dto.request.ContractPageRequest;
813
import cn.cordys.crm.contract.dto.request.ContractUpdateRequest;
14+
import cn.cordys.crm.contract.dto.response.ContractListResponse;
15+
import cn.cordys.crm.contract.dto.response.ContractResponse;
916
import cn.cordys.crm.contract.service.ContractService;
10-
import cn.cordys.crm.opportunity.domain.Opportunity;
11-
import cn.cordys.crm.opportunity.dto.request.OpportunityAddRequest;
12-
import cn.cordys.crm.opportunity.dto.request.OpportunityUpdateRequest;
1317
import cn.cordys.crm.system.dto.response.ModuleFormConfigDTO;
1418
import cn.cordys.crm.system.service.ModuleFormCacheService;
1519
import cn.cordys.security.SessionUtils;
@@ -20,6 +24,8 @@
2024
import org.springframework.validation.annotation.Validated;
2125
import org.springframework.web.bind.annotation.*;
2226

27+
import java.util.List;
28+
2329

2430
@Tag(name = "合同")
2531
@RestController
@@ -29,6 +35,8 @@ public class ContractController {
2935
private ModuleFormCacheService moduleFormCacheService;
3036
@Resource
3137
private ContractService contractService;
38+
@Resource
39+
private DataScopeService dataScopeService;
3240

3341

3442
@GetMapping("/module/form")
@@ -60,4 +68,48 @@ public Contract update(@Validated @RequestBody ContractUpdateRequest request) {
6068
public void delete(@PathVariable("id") String id) {
6169
contractService.delete(id);
6270
}
71+
72+
73+
@GetMapping("/get/{id}")
74+
@RequiresPermissions(PermissionConstants.CONTRACT_READ)
75+
@Operation(summary = "详情")
76+
public ContractResponse get(@PathVariable("id") String id) {
77+
return contractService.get(id);
78+
}
79+
80+
81+
@GetMapping("/module/form/snapshot/{id}")
82+
@RequiresPermissions(PermissionConstants.CONTRACT_READ)
83+
@Operation(summary = "获取表单快照配置")
84+
public ModuleFormConfigDTO getFormSnapshot(@PathVariable("id") String id) {
85+
return contractService.getFormSnapshot(id, OrganizationContext.getOrganizationId());
86+
}
87+
88+
89+
@PostMapping("/page")
90+
@RequiresPermissions(PermissionConstants.CONTRACT_READ)
91+
@Operation(summary = "列表")
92+
public PagerWithOption<List<ContractListResponse>> list(@Validated @RequestBody ContractPageRequest request) {
93+
ConditionFilterUtils.parseCondition(request);
94+
DeptDataPermissionDTO deptDataPermission = dataScopeService.getDeptDataPermission(SessionUtils.getUserId(),
95+
OrganizationContext.getOrganizationId(), request.getViewId(), PermissionConstants.CONTRACT_READ);
96+
return contractService.list(request, SessionUtils.getUserId(), OrganizationContext.getOrganizationId(), deptDataPermission);
97+
}
98+
99+
100+
@GetMapping("/voided/{id}")
101+
@RequiresPermissions(PermissionConstants.CONTRACT_VOIDED)
102+
@Operation(summary = "作废")
103+
public void voided(@PathVariable("id") String id) {
104+
contractService.voidContract(id, SessionUtils.getUserId());
105+
}
106+
107+
108+
@GetMapping("/archived/{id}")
109+
@RequiresPermissions(PermissionConstants.CONTRACT_ARCHIVE)
110+
@Operation(summary = "归档")
111+
public void archived(@PathVariable("id") String id) {
112+
contractService.archivedContract(id, SessionUtils.getUserId());
113+
}
114+
63115
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package cn.cordys.crm.contract.dto.request;
2+
3+
import cn.cordys.common.dto.BasePageRequest;
4+
import lombok.Data;
5+
6+
7+
@Data
8+
public class ContractPageRequest extends BasePageRequest {
9+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package cn.cordys.crm.contract.dto.response;
2+
3+
import cn.cordys.common.domain.BaseModuleFieldValue;
4+
import io.swagger.v3.oas.annotations.media.Schema;
5+
import lombok.Data;
6+
7+
import java.math.BigDecimal;
8+
import java.util.List;
9+
10+
@Data
11+
public class ContractListResponse {
12+
13+
@Schema(description = "ID")
14+
private String id;
15+
16+
@Schema(description = "合同名称")
17+
private String name;
18+
19+
@Schema(description = "客户id")
20+
private String customerId;
21+
22+
@Schema(description = "客户名称")
23+
private String customerName;
24+
25+
@Schema(description = "累计金额")
26+
private BigDecimal amount;
27+
28+
@Schema(description = "归档状态")
29+
private String archivedStatus;
30+
31+
@Schema(description = "合同状态")
32+
private String status;
33+
34+
@Schema(description = "负责人")
35+
private String owner;
36+
37+
@Schema(description = "负责人名称")
38+
private String ownerName;
39+
40+
@Schema(description = "创建人")
41+
private String createUser;
42+
43+
@Schema(description = "修改人")
44+
private String updateUser;
45+
46+
@Schema(description = "创建时间")
47+
private Long createTime;
48+
49+
@Schema(description = "更新时间")
50+
private Long updateTime;
51+
52+
@Schema(description = "创建人名称")
53+
private String createUserName;
54+
55+
@Schema(description = "更新人名称")
56+
private String updateUserName;
57+
58+
@Schema(description = "自定义字段")
59+
private List<BaseModuleFieldValue> moduleFields;
60+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package cn.cordys.crm.contract.dto.response;
2+
3+
import cn.cordys.common.dto.OptionDTO;
4+
import cn.cordys.crm.system.domain.Attachment;
5+
import io.swagger.v3.oas.annotations.media.Schema;
6+
import lombok.Data;
7+
8+
import java.util.List;
9+
import java.util.Map;
10+
11+
@Data
12+
public class ContractResponse extends ContractListResponse {
13+
14+
@Schema(description = "选项集合")
15+
private Map<String, List<OptionDTO>> optionMap;
16+
17+
@Schema(description = "附件集合")
18+
private Map<String, List<Attachment>> attachmentMap;
19+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package cn.cordys.crm.contract.mapper;
2+
3+
import cn.cordys.common.dto.DeptDataPermissionDTO;
4+
import cn.cordys.crm.contract.dto.request.ContractPageRequest;
5+
import cn.cordys.crm.contract.dto.response.ContractListResponse;
6+
import org.apache.ibatis.annotations.Param;
7+
8+
import java.util.List;
9+
10+
public interface ExtContractMapper {
11+
12+
13+
List<ContractListResponse> list(@Param("request") ContractPageRequest request, @Param("orgId") String orgId,
14+
@Param("userId") String userId, @Param("dataPermission") DeptDataPermissionDTO deptDataPermission);
15+
}

0 commit comments

Comments
 (0)