From 6bbed1ea6b36af4eb0b234bec9d6e42d56f0cd00 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期三, 30 九月 2026 16:12:49 +0800
Subject: [PATCH] feat:合同新增关联单位 开票可根据甲方或关联单位选择开票单位 收款去掉强制确认 收款只关联合同甲方或关联单位
---
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/BusinessCustomerController.java | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 114 insertions(+), 1 deletions(-)
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/BusinessCustomerController.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/BusinessCustomerController.java
index bca111a..de18800 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/BusinessCustomerController.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/BusinessCustomerController.java
@@ -1,14 +1,22 @@
package com.by4cloud.platformx.business.controller;
+import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
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.BusinessCustomerAddDTO;
+import com.by4cloud.platformx.business.entity.Product;
+import com.by4cloud.platformx.business.vo.BusinessCustomerSelectVo;
import com.by4cloud.platformx.common.core.util.R;
import com.by4cloud.platformx.common.log.annotation.SysLog;
import com.by4cloud.platformx.business.entity.BusinessCustomer;
import com.by4cloud.platformx.business.service.BusinessCustomerService;
+import com.by4cloud.platformx.common.security.annotation.Inner;
+import com.by4cloud.platformx.common.security.util.SecurityUtils;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.access.prepost.PreAuthorize;
import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -19,6 +27,7 @@
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
+import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -37,6 +46,18 @@
private final BusinessCustomerService businessCustomerService;
+ @Value("${dept.smj}")
+ private String smj;
+
+ @Value("${dept.smjsc}")
+ private String smjsc;
+
+ @Value("${dept.smjzt}")
+ private String smjzt;
+
+ @Value("${dept.smjhw}")
+ private String smjhw;
+
/**
* 鍒嗛〉鏌ヨ
* @param page 鍒嗛〉瀵硅薄
@@ -47,10 +68,76 @@
@GetMapping("/page" )
@PreAuthorize("@pms.hasPermission('business_businessCustomer_view')" )
public R getBusinessCustomerPage(@ParameterObject Page page, @ParameterObject BusinessCustomer businessCustomer) {
+
+ if (StrUtil.equals(SecurityUtils.getUser().getCompId() + "", smj) || StrUtil.equals(SecurityUtils.getUser().getCompId() + "", smjsc) ||
+ StrUtil.equals(SecurityUtils.getUser().getCompId() + "", smjzt)||
+ StrUtil.equals(SecurityUtils.getUser().getCompId() + "", smjhw)) {
+ LambdaQueryWrapper<BusinessCustomer> wrapper = Wrappers.lambdaQuery();
+ wrapper.eq(StrUtil.isNotEmpty(businessCustomer.getProvince()),BusinessCustomer::getProvince,businessCustomer.getProvince());
+ wrapper.eq(StrUtil.isNotEmpty(businessCustomer.getIndustryId()),BusinessCustomer::getIndustryId,businessCustomer.getIndustryId());
+ wrapper.like(StrUtil.isNotEmpty(businessCustomer.getCompanyName()),BusinessCustomer::getCompanyName,businessCustomer.getCompanyName());
+ List<String> smjList = new ArrayList<>();
+ smjList.add(smj);
+ smjList.add(smjsc);
+ smjList.add(smjzt);
+ smjList.add(smjhw);
+ wrapper.in(BusinessCustomer::getCompId, smjList);
+ wrapper.orderByDesc(BusinessCustomer::getCreateTime);
+ return R.ok(businessCustomerService.page(page, wrapper));
+ }
LambdaQueryWrapper<BusinessCustomer> wrapper = Wrappers.lambdaQuery();
- return R.ok(businessCustomerService.page(page, wrapper));
+ wrapper.eq(StrUtil.isNotEmpty(businessCustomer.getProvince()),BusinessCustomer::getProvince,businessCustomer.getProvince());
+ wrapper.eq(StrUtil.isNotEmpty(businessCustomer.getIndustryId()),BusinessCustomer::getIndustryId,businessCustomer.getIndustryId());
+ wrapper.like(StrUtil.isNotEmpty(businessCustomer.getCompanyName()),BusinessCustomer::getCompanyName,businessCustomer.getCompanyName());
+ wrapper.orderByDesc(BusinessCustomer::getCreateTime);
+ return R.ok(businessCustomerService.pageByScope(page, wrapper));
}
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param businessCustomer 瀹㈠晢淇℃伅
+ * @return
+ */
+ @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
+ @GetMapping("/list" )
+ @PreAuthorize("@pms.hasPermission('business_businessCustomer_view')" )
+ public R getBusinessCustomerList(@ParameterObject BusinessCustomer businessCustomer) {
+
+ if (StrUtil.equals(SecurityUtils.getUser().getCompId() + "", smj) || StrUtil.equals(SecurityUtils.getUser().getCompId() + "", smjsc) ||
+ StrUtil.equals(SecurityUtils.getUser().getCompId() + "", smjzt)||
+ StrUtil.equals(SecurityUtils.getUser().getCompId() + "", smjhw)) {
+ LambdaQueryWrapper<BusinessCustomer> wrapper = Wrappers.lambdaQuery();
+ wrapper.like(StrUtil.isNotEmpty(businessCustomer.getCompanyName()),BusinessCustomer::getCompanyName,businessCustomer.getCompanyName());
+
+ List<String> smjList = new ArrayList<>();
+ smjList.add(smj);
+ smjList.add(smjsc);
+ smjList.add(smjzt);
+ smjList.add(smjhw);
+ wrapper.in(BusinessCustomer::getCompId, smjList);
+ List<BusinessCustomer> businessCustomerList = businessCustomerService.list(wrapper);
+ if (CollUtil.isNotEmpty(businessCustomerList)){
+ List<BusinessCustomerSelectVo> voList = BeanUtil.copyToList(businessCustomerList, BusinessCustomerSelectVo.class);
+ if (voList.size()>1000){
+ return R.ok(voList.subList(0,1000));
+ }
+ return R.ok(voList);
+ }
+ }
+ LambdaQueryWrapper<BusinessCustomer> wrapper = Wrappers.lambdaQuery();
+ wrapper.like(StrUtil.isNotEmpty(businessCustomer.getCompanyName()),BusinessCustomer::getCompanyName,businessCustomer.getCompanyName());
+ wrapper.eq(StrUtil.isNotEmpty(businessCustomer.getProvince()),BusinessCustomer::getProvince,businessCustomer.getProvince());
+ wrapper.eq(StrUtil.isNotEmpty(businessCustomer.getIndustryId()),BusinessCustomer::getIndustryId,businessCustomer.getIndustryId());
+ List<BusinessCustomer> businessCustomerList = businessCustomerService.listByScope(wrapper);
+ if (CollUtil.isNotEmpty(businessCustomerList)){
+ List<BusinessCustomerSelectVo> voList = BeanUtil.copyToList(businessCustomerList, BusinessCustomerSelectVo.class);
+ if (voList.size()>1000){
+ return R.ok(voList.subList(0,1000));
+ }
+ return R.ok(voList);
+ }
+ return R.ok();
+ }
/**
* 閫氳繃id鏌ヨ瀹㈠晢淇℃伅
@@ -76,6 +163,13 @@
public R save(@RequestBody BusinessCustomer businessCustomer) {
return R.ok(businessCustomerService.save(businessCustomer));
}
+
+ @Operation(summary = "鏂板瀹㈠晢淇℃伅-鐭冲伐娉�" , description = "鏂板瀹㈠晢淇℃伅-鐭冲伐娉�" )
+ @SysLog("鏂板瀹㈠晢淇℃伅-鐭冲伐娉�" )
+ @PostMapping("/saveCustomerSgb")
+ public R saveCustomerSgb(@RequestBody BusinessCustomerAddDTO addDTO) {
+ return businessCustomerService.saveCustomerSgb(addDTO);
+ }
/**
* 淇敼瀹㈠晢淇℃伅
@@ -116,4 +210,23 @@
public List<BusinessCustomer> export(BusinessCustomer businessCustomer,Long[] ids) {
return businessCustomerService.list(Wrappers.lambdaQuery(businessCustomer).in(ArrayUtil.isNotEmpty(ids), BusinessCustomer::getId, ids));
}
+
+ /**
+ * 鍚屾涓绘暟鎹� 浼佷笟鍚嶇О 娉曚汉 涓夊悎涓�鐮� 閾惰淇℃伅
+ * @return R
+ */
+ @Inner(value = false)
+ @GetMapping("/syncMainBusCus/{compId}" )
+ public R syncMainBusCus(@PathVariable("compId")String compId) {
+ return R.ok(businessCustomerService.syncMainBusCus(compId));
+ }
+
+ /**
+ * 鍚屾涓绘暟鎹� 浼佷笟鍚嶇О 娉曚汉 涓夊悎涓�鐮� 閾惰淇℃伅
+ * @return R
+ */
+ @GetMapping("/queryMainBC/{companyName}" )
+ public R queryMainBC(@PathVariable("companyName")String companyName) {
+ return R.ok(businessCustomerService.queryMainBC(companyName));
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1