Skip to content

Commit 3fc1dcf

Browse files
WangXu10fit2-zhao
authored andcommitted
feat: business title import update
--task=1021340@tapd-34675357 --user=王旭 【运营】工商抬头支持导入更新-后端 https://www.tapd.cn/34675357/s/1881746
1 parent eeca018 commit 3fc1dcf

17 files changed

+245
-50
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,16 +157,16 @@ public void downloadImportTpl(HttpServletResponse response) {
157157
@PostMapping("/import/pre-check")
158158
@Operation(summary = "excel导入检查")
159159
@RequiresPermissions(PermissionConstants.CONTRACT_BUSINESS_TITLE_IMPORT)
160-
public ImportResponse preCheck(@RequestPart(value = "file", required = false) MultipartFile file) {
161-
return businessTitleService.importPreCheck(file, OrganizationContext.getOrganizationId());
160+
public ImportResponse preCheck(@RequestPart(value = "file", required = false) MultipartFile file, @Validated @RequestPart("request") BusinessTitleImportRequest request) {
161+
return businessTitleService.importPreCheck(file, OrganizationContext.getOrganizationId(), request);
162162
}
163163

164164

165165
@PostMapping(value = "/import")
166166
@Operation(summary = "导入")
167167
@RequiresPermissions(PermissionConstants.CONTRACT_BUSINESS_TITLE_IMPORT)
168-
public ImportResponse realImport(@RequestPart(value = "file", required = false) MultipartFile file) {
169-
return businessTitleService.realImport(file, SessionUtils.getUserId(), OrganizationContext.getOrganizationId());
168+
public ImportResponse realImport(@RequestPart(value = "file", required = false) MultipartFile file, @Validated @RequestPart("request") BusinessTitleImportRequest request) {
169+
return businessTitleService.realImport(file, SessionUtils.getUserId(), OrganizationContext.getOrganizationId(), request);
170170
}
171171

172172

backend/crm/src/main/java/cn/cordys/crm/contract/domain/BusinessTitle.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,11 @@ public class BusinessTitle extends BaseModel {
4949
@Schema(description = "组织id")
5050
private String organizationId;
5151

52-
@Schema(description = "所属地区")
53-
private String area;
52+
@Schema(description = "省")
53+
private String province;
54+
55+
@Schema(description = "市")
56+
private String city;
5457

5558
@Schema(description = "企业规模")
5659
private String scale;

backend/crm/src/main/java/cn/cordys/crm/contract/dto/request/BusinessTitleAddRequest.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,12 @@ public class BusinessTitleAddRequest {
4747
private String type;
4848

4949
@Size(max = 255)
50-
@Schema(description = "所属地区")
51-
private String area;
50+
@Schema(description = "省")
51+
private String province;
52+
53+
@Size(max = 255)
54+
@Schema(description = "城")
55+
private String city;
5256

5357
@Size(max = 255)
5458
@Schema(description = "企业规模")
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package cn.cordys.crm.contract.dto.request;
2+
3+
import io.swagger.v3.oas.annotations.media.Schema;
4+
import jakarta.validation.constraints.NotBlank;
5+
import lombok.Data;
6+
7+
@Data
8+
public class BusinessTitleImportRequest {
9+
10+
@NotBlank
11+
@Schema(description = "导入类型")
12+
private String importType;
13+
}

backend/crm/src/main/java/cn/cordys/crm/contract/excel/constants/BusinessTitleImportFiled.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ public enum BusinessTitleImportFiled {
2121
REGISTERED_CAPITAL("registeredCapital", "注册资本", "Registered capital", BusinessTitleExcelData::getRegisteredCapital),
2222
COMPANY_SIZE("companySize", "公司规模", "Customer size", BusinessTitleExcelData::getCompanySize),
2323
registration_number("registrationNumber", "工商注册账号", "Registration number", BusinessTitleExcelData::getRegistrationNumber),
24-
AREA("area", "所属地区", "Area", BusinessTitleExcelData::getArea),
24+
PROVINCE("province", "省", "Province", BusinessTitleExcelData::getProvince),
25+
CITY("city", "市", "City", BusinessTitleExcelData::getCity),
2526
Scale("scale", "企业规模", "Scale", BusinessTitleExcelData::getScale),
2627
INDUSTRY("industry", "国标行业", "Industry", BusinessTitleExcelData::getIndustry);
2728

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package cn.cordys.crm.contract.excel.constants;
2+
3+
public enum BusinessTitleImportType {
4+
/**
5+
* 新增
6+
*/
7+
ADD,
8+
9+
/**
10+
* 更新
11+
*/
12+
UPDATE,
13+
}

backend/crm/src/main/java/cn/cordys/crm/contract/excel/domain/BusinessTitleExcelData.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,15 @@ public class BusinessTitleExcelData {
6060
@ExcelIgnore
6161
private String registrationNumber;
6262
/**
63-
* 所属地区
63+
*
6464
*/
6565
@ExcelIgnore
66-
private String area;
66+
private String province;
67+
/**
68+
* 市
69+
*/
70+
@ExcelIgnore
71+
private String city;
6772
/**
6873
* 企业规模
6974
*/

backend/crm/src/main/java/cn/cordys/crm/contract/excel/domain/BusinessTitleExcelDataCn.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,17 @@ public class BusinessTitleExcelDataCn extends BusinessTitleExcelData {
6868
@ExcelProperty("工商注册账号")
6969
private String registrationNumber;
7070
/**
71-
* 所属地区
71+
*
7272
*/
7373
@ColumnWidth(255)
74-
@ExcelProperty("所属地区")
75-
private String area;
74+
@ExcelProperty("省")
75+
private String province;
76+
/**
77+
* 市
78+
*/
79+
@ColumnWidth(255)
80+
@ExcelProperty("市")
81+
private String city;
7682
/**
7783
* 企业规模
7884
*/

backend/crm/src/main/java/cn/cordys/crm/contract/excel/domain/BusinessTitleExcelDataUs.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,17 @@ public class BusinessTitleExcelDataUs extends BusinessTitleExcelData {
6767
@ExcelProperty("Registration number")
6868
private String registrationNumber;
6969
/**
70-
* 所属地区
70+
*
7171
*/
7272
@ColumnWidth(255)
73-
@ExcelProperty("Area")
74-
private String area;
73+
@ExcelProperty("Province")
74+
private String province;
75+
/**
76+
* 市
77+
*/
78+
@ColumnWidth(255)
79+
@ExcelProperty("City")
80+
private String city;
7581
/**
7682
* 企业规模
7783
*/

backend/crm/src/main/java/cn/cordys/crm/contract/excel/listener/BusinessTitleCheckEventListener.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@
44
import cn.cordys.common.mapper.CommonMapper;
55
import cn.cordys.common.util.CommonBeanFactory;
66
import cn.cordys.common.util.Translator;
7+
import cn.cordys.crm.contract.dto.request.BusinessTitleImportRequest;
78
import cn.cordys.crm.contract.excel.constants.BusinessTitleImportFiled;
9+
import cn.cordys.crm.contract.excel.constants.BusinessTitleImportType;
810
import cn.cordys.excel.domain.ExcelErrData;
911
import cn.idev.excel.annotation.ExcelProperty;
1012
import cn.idev.excel.context.AnalysisContext;
1113
import cn.idev.excel.event.AnalysisEventListener;
1214
import lombok.Getter;
1315
import lombok.extern.slf4j.Slf4j;
1416
import org.apache.commons.lang3.StringUtils;
17+
import org.apache.commons.lang3.Strings;
1518

1619
import java.lang.reflect.Field;
1720
import java.util.ArrayList;
@@ -43,13 +46,15 @@ public class BusinessTitleCheckEventListener extends AnalysisEventListener<Map<I
4346
private final List<List<String>> heads;
4447
protected boolean atLeastOne = false;
4548
private final Map<String, Boolean> excelValueCache = new ConcurrentHashMap<>();
49+
private BusinessTitleImportRequest request = new BusinessTitleImportRequest();
4650

47-
public BusinessTitleCheckEventListener(Class<?> clazz, Map<String, Boolean> requiredFieldMap, String orgId, List<List<String>> heads) {
51+
public BusinessTitleCheckEventListener(Class<?> clazz, Map<String, Boolean> requiredFieldMap, String orgId, List<List<String>> heads, BusinessTitleImportRequest request) {
4852
this.excelDataClass = clazz;
4953
this.requiredFieldMap = requiredFieldMap;
5054
this.orgId = orgId;
5155
this.commonMapper = CommonBeanFactory.getBean(CommonMapper.class);
5256
this.heads = heads;
57+
this.request = request;
5358
}
5459

5560
@Override
@@ -98,9 +103,11 @@ public void doAfterAllAnalysed(AnalysisContext analysisContext) {
98103
private void validateRowData(Integer rowIndex, Map<Integer, String> rowData) {
99104
StringBuilder errText = new StringBuilder();
100105
headMap.forEach((k, v) -> {
101-
validateRequired(rowData.get(k), errText, v);
106+
if (Strings.CI.equals(request.getImportType(), BusinessTitleImportType.ADD.name())) {
107+
validateRequired(rowData.get(k), errText, v);
108+
validateNameUniques(rowData.get(k), errText, v);
109+
}
102110
validateLenLimit(rowData.get(k), errText, v);
103-
validateNameUniques(rowData.get(k), errText, v);
104111
});
105112
if (StringUtils.isNotEmpty(errText)) {
106113
ExcelErrData excelErrData = new ExcelErrData(rowIndex,

0 commit comments

Comments
 (0)