From fca21683e1b5b906d2514082ddfbae8eb820c9ea Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期五, 15 五月 2026 17:12:55 +0800
Subject: [PATCH] feat:合同模版、出库标的物、合同管理拆分
---
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractController.java | 152 +++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 141 insertions(+), 11 deletions(-)
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractController.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractController.java
index dc4df91..b88aa1e 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractController.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractController.java
@@ -1,24 +1,154 @@
package com.by4cloud.platformx.business.controller;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.by4cloud.platformx.business.dto.ContractAddDTO;
+import com.by4cloud.platformx.business.dto.ContractUpdateDTO;
+import com.by4cloud.platformx.business.entity.Contract;
+import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.common.data.mybatis.BaseModel;
+import com.by4cloud.platformx.common.log.annotation.SysLog;
import com.by4cloud.platformx.business.service.ContractService;
+import com.by4cloud.platformx.common.security.annotation.Inner;
+import com.by4cloud.platformx.common.security.util.SecurityUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.security.access.prepost.PreAuthorize;
+import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
+import org.springdoc.core.annotations.ParameterObject;
import org.springframework.http.HttpHeaders;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Objects;
/**
- * @author cd
- * @description
- * @date 2026/4/29 14:05
- **/
+ * 鍚堝悓绠$悊
+ *
+ * @author platformx
+ * @date 2026-04-29 16:46:26
+ */
@RestController
@RequiredArgsConstructor
@RequestMapping("/contract" )
-@Tag(description = "contract" , name = "鍚堝悓琛ㄧ鐞�" )
+@Tag(description = "contract" , name = "鍚堝悓绠$悊绠$悊" )
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class ContractController {
- private final ContractService contractService;
-}
+ private final ContractService contractService;
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param page 鍒嗛〉瀵硅薄
+ * @param contract 鍚堝悓绠$悊
+ * @return
+ */
+ @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
+ @GetMapping("/page" )
+ @PreAuthorize("@pms.hasPermission('business_contract_view')" )
+ public R getContractPage(@ParameterObject Page page, @ParameterObject Contract contract) {
+ LambdaQueryWrapper<Contract> wrapper = Wrappers.lambdaQuery();
+ wrapper.like(StringUtils.isNotBlank(contract.getContractName()),Contract::getContractName,contract.getContractName());
+ wrapper.like(StringUtils.isNotBlank(contract.getPartyA()),Contract::getPartyA,contract.getPartyA());
+ wrapper.eq(ObjUtil.isNotNull(contract.getContractStatus()),Contract::getContractStatus,contract.getContractStatus());
+ wrapper.orderByDesc(BaseModel::getCreateTime);
+ return R.ok(contractService.pageByScope(page, wrapper));
+ }
+
+
+ /**
+ * 閫氳繃id鏌ヨ鍚堝悓绠$悊
+ * @param id id
+ * @return R
+ */
+ @Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" )
+ @GetMapping("/{id}" )
+ @PreAuthorize("@pms.hasPermission('business_contract_view')" )
+ public R getById(@PathVariable("id" ) Long id) {
+ return R.ok(contractService.detail(id));
+ }
+
+ /**
+ * 鏂板鍚堝悓绠$悊
+ * @param addDTO 鍚堝悓绠$悊
+ * @return R
+ */
+ @Operation(summary = "鏂板鍚堝悓绠$悊" , description = "鏂板鍚堝悓绠$悊" )
+ @SysLog("鏂板鍚堝悓绠$悊" )
+ @PostMapping
+ @PreAuthorize("@pms.hasPermission('business_contract_add')" )
+ public R save(@RequestBody ContractAddDTO addDTO) {
+ return contractService.add(addDTO);
+ }
+
+ /**
+ * 淇敼鍚堝悓绠$悊
+ * @param updateDTO 鍚堝悓绠$悊
+ * @return R
+ */
+ @Operation(summary = "淇敼鍚堝悓绠$悊" , description = "淇敼鍚堝悓绠$悊" )
+ @SysLog("淇敼鍚堝悓绠$悊" )
+ @PutMapping
+ @PreAuthorize("@pms.hasPermission('business_contract_edit')" )
+ public R updateById(@RequestBody ContractUpdateDTO updateDTO) {
+ return contractService.edit(updateDTO);
+ }
+
+ /**
+ * 閫氳繃id鍒犻櫎鍚堝悓绠$悊
+ * @param ids id鍒楄〃
+ * @return R
+ */
+ @Operation(summary = "閫氳繃id鍒犻櫎鍚堝悓绠$悊" , description = "閫氳繃id鍒犻櫎鍚堝悓绠$悊" )
+ @SysLog("閫氳繃id鍒犻櫎鍚堝悓绠$悊" )
+ @DeleteMapping
+ @PreAuthorize("@pms.hasPermission('business_contract_del')" )
+ public R removeById(@RequestBody Long[] ids) {
+ return R.ok(contractService.removeBatchByIds(CollUtil.toList(ids)));
+ }
+
+
+ /**
+ * 瀵煎嚭excel 琛ㄦ牸
+ * @param contract 鏌ヨ鏉′欢
+ * @param ids 瀵煎嚭鎸囧畾ID
+ * @return excel 鏂囦欢娴�
+ */
+ @ResponseExcel
+ @GetMapping("/export")
+ @PreAuthorize("@pms.hasPermission('business_contract_export')" )
+ public List<Contract> export(Contract contract,Long[] ids) {
+ return contractService.list(Wrappers.lambdaQuery(contract).in(ArrayUtil.isNotEmpty(ids), Contract::getId, ids));
+ }
+
+ /**
+ * 鍚姩瀹℃牳娴佺▼
+ * @param id id
+ * @return R
+ */
+ @Operation(summary = "閫氳繃id鍚姩瀹℃牳娴佺▼" , description = "閫氳繃id鍚堝悓鐢熸晥" )
+ @GetMapping("/startApproval/{id}" )
+ public R startApproval(@PathVariable("id" ) Long id) {
+ return contractService.startApproval(id);
+ }
+
+
+ /**
+ * 瀹氭椂鐢熸垚搴旀敹娆捐处鐩�
+ * @return R
+ */
+ @GetMapping("/genCurrentOverdue" )
+ @Inner(value = false)
+ public R genCurrentOverdue() {
+ return contractService.genCurrentOverdue();
+ }
+
+
+}
\ No newline at end of file
--
Gitblit v1.9.1