Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,18 @@

import cn.cordys.common.constants.FormKey;
import cn.cordys.common.constants.PermissionConstants;
import cn.cordys.common.dto.DeptDataPermissionDTO;
import cn.cordys.common.pager.PagerWithOption;
import cn.cordys.common.service.DataScopeService;
import cn.cordys.common.utils.ConditionFilterUtils;
import cn.cordys.context.OrganizationContext;
import cn.cordys.crm.contract.domain.Contract;
import cn.cordys.crm.contract.dto.request.ContractAddRequest;
import cn.cordys.crm.contract.dto.request.ContractPageRequest;
import cn.cordys.crm.contract.dto.request.ContractUpdateRequest;
import cn.cordys.crm.contract.dto.response.ContractListResponse;
import cn.cordys.crm.contract.dto.response.ContractResponse;
import cn.cordys.crm.contract.service.ContractService;
import cn.cordys.crm.opportunity.domain.Opportunity;
import cn.cordys.crm.opportunity.dto.request.OpportunityAddRequest;
import cn.cordys.crm.opportunity.dto.request.OpportunityUpdateRequest;
import cn.cordys.crm.system.dto.response.ModuleFormConfigDTO;
import cn.cordys.crm.system.service.ModuleFormCacheService;
import cn.cordys.security.SessionUtils;
Expand All @@ -20,6 +24,8 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;


@Tag(name = "合同")
@RestController
Expand All @@ -29,6 +35,8 @@ public class ContractController {
private ModuleFormCacheService moduleFormCacheService;
@Resource
private ContractService contractService;
@Resource
private DataScopeService dataScopeService;


@GetMapping("/module/form")
Expand Down Expand Up @@ -60,4 +68,48 @@ public Contract update(@Validated @RequestBody ContractUpdateRequest request) {
public void delete(@PathVariable("id") String id) {
contractService.delete(id);
}


@GetMapping("/get/{id}")
@RequiresPermissions(PermissionConstants.CONTRACT_READ)
@Operation(summary = "详情")
public ContractResponse get(@PathVariable("id") String id) {
return contractService.get(id);
}


@GetMapping("/module/form/snapshot/{id}")
@RequiresPermissions(PermissionConstants.CONTRACT_READ)
@Operation(summary = "获取表单快照配置")
public ModuleFormConfigDTO getFormSnapshot(@PathVariable("id") String id) {
return contractService.getFormSnapshot(id, OrganizationContext.getOrganizationId());
}


@PostMapping("/page")
@RequiresPermissions(PermissionConstants.CONTRACT_READ)
@Operation(summary = "列表")
public PagerWithOption<List<ContractListResponse>> list(@Validated @RequestBody ContractPageRequest request) {
ConditionFilterUtils.parseCondition(request);
DeptDataPermissionDTO deptDataPermission = dataScopeService.getDeptDataPermission(SessionUtils.getUserId(),
OrganizationContext.getOrganizationId(), request.getViewId(), PermissionConstants.CONTRACT_READ);
return contractService.list(request, SessionUtils.getUserId(), OrganizationContext.getOrganizationId(), deptDataPermission);
}


@GetMapping("/voided/{id}")
@RequiresPermissions(PermissionConstants.CONTRACT_VOIDED)
@Operation(summary = "作废")
public void voided(@PathVariable("id") String id) {
contractService.voidContract(id, SessionUtils.getUserId());
}


@GetMapping("/archived/{id}")
@RequiresPermissions(PermissionConstants.CONTRACT_ARCHIVE)
@Operation(summary = "归档")
public void archived(@PathVariable("id") String id) {
contractService.archivedContract(id, SessionUtils.getUserId());
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package cn.cordys.crm.contract.dto.request;

import cn.cordys.common.dto.BasePageRequest;
import lombok.Data;


@Data
public class ContractPageRequest extends BasePageRequest {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package cn.cordys.crm.contract.dto.response;

import cn.cordys.common.domain.BaseModuleFieldValue;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

@Data
public class ContractListResponse {

@Schema(description = "ID")
private String id;

@Schema(description = "合同名称")
private String name;

@Schema(description = "客户id")
private String customerId;

@Schema(description = "客户名称")
private String customerName;

@Schema(description = "累计金额")
private BigDecimal amount;

@Schema(description = "归档状态")
private String archivedStatus;

@Schema(description = "合同状态")
private String status;

@Schema(description = "负责人")
private String owner;

@Schema(description = "负责人名称")
private String ownerName;

@Schema(description = "创建人")
private String createUser;

@Schema(description = "修改人")
private String updateUser;

@Schema(description = "创建时间")
private Long createTime;

@Schema(description = "更新时间")
private Long updateTime;

@Schema(description = "创建人名称")
private String createUserName;

@Schema(description = "更新人名称")
private String updateUserName;

@Schema(description = "自定义字段")
private List<BaseModuleFieldValue> moduleFields;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package cn.cordys.crm.contract.dto.response;

import cn.cordys.common.dto.OptionDTO;
import cn.cordys.crm.system.domain.Attachment;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;
import java.util.Map;

@Data
public class ContractResponse extends ContractListResponse {

@Schema(description = "选项集合")
private Map<String, List<OptionDTO>> optionMap;

@Schema(description = "附件集合")
private Map<String, List<Attachment>> attachmentMap;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package cn.cordys.crm.contract.mapper;

import cn.cordys.common.dto.DeptDataPermissionDTO;
import cn.cordys.crm.contract.dto.request.ContractPageRequest;
import cn.cordys.crm.contract.dto.response.ContractListResponse;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ExtContractMapper {


List<ContractListResponse> list(@Param("request") ContractPageRequest request, @Param("orgId") String orgId,
@Param("userId") String userId, @Param("dataPermission") DeptDataPermissionDTO deptDataPermission);
}
Loading
Loading