Skip to content

Commit 11fcb10

Browse files
committed
feat: Quotation form interface
1 parent 3e9d424 commit 11fcb10

File tree

4 files changed

+42
-1
lines changed

4 files changed

+42
-1
lines changed

backend/crm/src/main/java/cn/cordys/crm/opportunity/controller/OpportunityQuotationController.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package cn.cordys.crm.opportunity.controller;
22

3+
import cn.cordys.common.constants.FormKey;
34
import cn.cordys.common.constants.PermissionConstants;
5+
import cn.cordys.common.dto.ResourceTabEnableDTO;
46
import cn.cordys.common.pager.PagerWithOption;
57
import cn.cordys.context.OrganizationContext;
68
import cn.cordys.crm.opportunity.domain.OpportunityQuotation;
@@ -10,6 +12,8 @@
1012
import cn.cordys.crm.opportunity.dto.response.OpportunityQuotationGetResponse;
1113
import cn.cordys.crm.opportunity.dto.response.OpportunityQuotationListResponse;
1214
import cn.cordys.crm.opportunity.service.OpportunityQuotationService;
15+
import cn.cordys.crm.system.dto.response.ModuleFormConfigDTO;
16+
import cn.cordys.crm.system.service.ModuleFormCacheService;
1317
import cn.cordys.security.SessionUtils;
1418
import io.swagger.v3.oas.annotations.Operation;
1519
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -27,6 +31,16 @@ public class OpportunityQuotationController {
2731

2832
@Resource
2933
private OpportunityQuotationService opportunityQuotationService;
34+
@Resource
35+
private ModuleFormCacheService moduleFormCacheService;
36+
37+
38+
@GetMapping("/module/form")
39+
@RequiresPermissions(PermissionConstants.OPPORTUNITY_MANAGEMENT_READ)
40+
@Operation(summary = "获取表单配置")
41+
public ModuleFormConfigDTO getModuleFormConfig() {
42+
return moduleFormCacheService.getBusinessFormConfig(FormKey.QUOTATION.getKey(), OrganizationContext.getOrganizationId());
43+
}
3044

3145
@PostMapping("/page")
3246
@RequiresPermissions(PermissionConstants.PRICE_READ)
@@ -82,12 +96,19 @@ public String approve(@RequestBody OpportunityQuotationEditRequest request) {
8296
}
8397

8498
//删除报价单
85-
@DeleteMapping("/delete/{id}")
99+
@GetMapping("/delete/{id}")
86100
@RequiresPermissions(PermissionConstants.OPPORTUNITY_QUOTATION_DELETE)
87101
@Operation(summary = "删除报价单")
88102
public void delete(@PathVariable("id") String id) {
89103
opportunityQuotationService.delete(id, SessionUtils.getUserId(), OrganizationContext.getOrganizationId());
90104
}
91105

106+
@GetMapping("/tab")
107+
@RequiresPermissions(PermissionConstants.OPPORTUNITY_QUOTATION_READ)
108+
@Operation(summary = "所有商机报价单和部门商机报价单tab是否显示")
109+
public ResourceTabEnableDTO getTabEnableConfig() {
110+
return opportunityQuotationService.getTabEnableConfig(SessionUtils.getUserId(), OrganizationContext.getOrganizationId());
111+
}
112+
92113

93114
}

backend/crm/src/main/java/cn/cordys/crm/opportunity/dto/request/OpportunityQuotationPageRequest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cn.cordys.crm.opportunity.dto.request;
22

33
import cn.cordys.common.dto.BasePageRequest;
4+
import io.swagger.v3.oas.annotations.media.Schema;
45
import lombok.Data;
56

67
/**
@@ -9,5 +10,11 @@
910
@Data
1011
public class OpportunityQuotationPageRequest extends BasePageRequest {
1112

13+
/**
14+
* 商机id
15+
*/
16+
@Schema(description = "商机id")
17+
private String opportunityId;
18+
1219

1320
}

backend/crm/src/main/java/cn/cordys/crm/opportunity/service/OpportunityQuotationService.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,16 @@
55
import cn.cordys.aspectj.constants.LogType;
66
import cn.cordys.aspectj.dto.LogDTO;
77
import cn.cordys.common.constants.FormKey;
8+
import cn.cordys.common.constants.PermissionConstants;
89
import cn.cordys.common.domain.BaseModuleFieldValue;
910
import cn.cordys.common.dto.OptionDTO;
11+
import cn.cordys.common.dto.ResourceTabEnableDTO;
12+
import cn.cordys.common.dto.RolePermissionDTO;
1013
import cn.cordys.common.exception.GenericException;
1114
import cn.cordys.common.pager.PageUtils;
1215
import cn.cordys.common.pager.PagerWithOption;
16+
import cn.cordys.common.permission.PermissionCache;
17+
import cn.cordys.common.permission.PermissionUtils;
1318
import cn.cordys.common.service.BaseService;
1419
import cn.cordys.common.uid.IDGenerator;
1520
import cn.cordys.common.util.BeanUtils;
@@ -63,6 +68,8 @@ public class OpportunityQuotationService {
6368
@Resource
6469
private ModuleFormCacheService moduleFormCacheService;
6570
@Resource
71+
private PermissionCache permissionCache;
72+
@Resource
6673
private ExtOpportunityQuotationMapper extOpportunityQuotationMapper;
6774
@Resource
6875
private BaseMapper<OpportunityQuotation> opportunityQuotationMapper;
@@ -407,4 +414,9 @@ private void updateFields(List<BaseModuleFieldValue> fields, OpportunityQuotatio
407414
opportunityQuotationFieldService.deleteByResourceId(opportunityQuotation.getId());
408415
opportunityQuotationFieldService.saveModuleField(opportunityQuotation, orgId, userId, fields, true);
409416
}
417+
418+
public ResourceTabEnableDTO getTabEnableConfig(String userId, String orgId) {
419+
List<RolePermissionDTO> rolePermissions = permissionCache.getRolePermissions(userId, orgId);
420+
return PermissionUtils.getTabEnableConfig(userId, PermissionConstants.OPPORTUNITY_QUOTATION_READ, rolePermissions);
421+
}
410422
}

backend/crm/src/main/resources/i18n/cordys-crm_zh_CN.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ permission.clue_management.clue.recycle=移入线索池
163163
permission.clue_management.clue.resign=反签
164164
permission.opportunity_management.name=商机管理
165165
permission.opportunity_management.opportunity.name=商机
166+
permission.opportunity_management.opportunity_quotation.name=报价单
166167
permission.product_management.name=产品管理
167168
permission.product_management.product.name=产品
168169
permission.dashboard_management.name=仪表板

0 commit comments

Comments
 (0)