Showing
5 changed files
with
52 additions
and
8 deletions
xingyun-sc/src/main/java/com/lframework/xingyun/sc/controller/customer/CustomerCreditController.java
| @@ -149,7 +149,14 @@ public class CustomerCreditController extends DefaultBaseController { | @@ -149,7 +149,14 @@ public class CustomerCreditController extends DefaultBaseController { | ||
| 149 | vo1.setSerialNumber(vo.getSerialNumber()); | 149 | vo1.setSerialNumber(vo.getSerialNumber()); |
| 150 | List<CustomerCredit> query = customerCreditService.query(vo1); | 150 | List<CustomerCredit> query = customerCreditService.query(vo1); |
| 151 | if (CollectionUtil.isNotEmpty(query)) { | 151 | if (CollectionUtil.isNotEmpty(query)) { |
| 152 | - return InvokeResultBuilder.fail("资信编码已存在!"); | 152 | + throw new DefaultClientException("资信编码已存在!"); |
| 153 | + } | ||
| 154 | + QueryCustomerCreditVo vo2 = new QueryCustomerCreditVo(); | ||
| 155 | + vo2.setCompanyId(vo.getCompanyId()); | ||
| 156 | + vo2.setStatusCancel("CANCEL"); | ||
| 157 | + List<CustomerCredit> query1 = customerCreditService.query(vo2); | ||
| 158 | + if (CollectionUtil.isNotEmpty(query1)) { | ||
| 159 | + throw new DefaultClientException("该单位名称资信已存在!"); | ||
| 153 | } | 160 | } |
| 154 | customerCreditService.create(vo); | 161 | customerCreditService.create(vo); |
| 155 | 162 |
| @@ -13,6 +13,7 @@ import com.lframework.xingyun.sc.vo.customer.credit.*; | @@ -13,6 +13,7 @@ import com.lframework.xingyun.sc.vo.customer.credit.*; | ||
| 13 | import lombok.extern.slf4j.Slf4j; | 13 | import lombok.extern.slf4j.Slf4j; |
| 14 | import org.apache.commons.collections.CollectionUtils; | 14 | import org.apache.commons.collections.CollectionUtils; |
| 15 | 15 | ||
| 16 | +import javax.annotation.Resource; | ||
| 16 | import java.util.ArrayList; | 17 | import java.util.ArrayList; |
| 17 | import java.util.Arrays; | 18 | import java.util.Arrays; |
| 18 | import java.util.List; | 19 | import java.util.List; |
| @@ -22,6 +23,10 @@ public class CustomerCreditImportListener extends ExcelImportListener<CustomerCr | @@ -22,6 +23,10 @@ public class CustomerCreditImportListener extends ExcelImportListener<CustomerCr | ||
| 22 | 23 | ||
| 23 | 24 | ||
| 24 | private List<String> checkList = new ArrayList<>(); | 25 | private List<String> checkList = new ArrayList<>(); |
| 26 | + private List<String> checkNameList = new ArrayList<>(); | ||
| 27 | + | ||
| 28 | + @Resource | ||
| 29 | + private CustomerCreditService customerCreditService; | ||
| 25 | 30 | ||
| 26 | @Override | 31 | @Override |
| 27 | protected void doInvoke(CustomerCreditImportModel data, AnalysisContext context) { | 32 | protected void doInvoke(CustomerCreditImportModel data, AnalysisContext context) { |
| @@ -36,6 +41,10 @@ public class CustomerCreditImportListener extends ExcelImportListener<CustomerCr | @@ -36,6 +41,10 @@ public class CustomerCreditImportListener extends ExcelImportListener<CustomerCr | ||
| 36 | "第" + context.readRowHolder().getRowIndex() + "行“编号”与第" + (checkList.indexOf(data.getCode()) + 1) + "行重复"); | 41 | "第" + context.readRowHolder().getRowIndex() + "行“编号”与第" + (checkList.indexOf(data.getCode()) + 1) + "行重复"); |
| 37 | } | 42 | } |
| 38 | checkList.add(data.getCode()); | 43 | checkList.add(data.getCode()); |
| 44 | + if (checkNameList.contains(data.getName())) { | ||
| 45 | + throw new DefaultClientException( | ||
| 46 | + "第" + context.readRowHolder().getRowIndex() + "行“客户名称”与第" + (checkList.indexOf(data.getName()) + 1) + "行重复"); | ||
| 47 | + } | ||
| 39 | if (StringUtil.isBlank(data.getName())) { | 48 | if (StringUtil.isBlank(data.getName())) { |
| 40 | throw new DefaultClientException( | 49 | throw new DefaultClientException( |
| 41 | "第" + context.readRowHolder().getRowIndex() + "行“客户名称”不能为空"); | 50 | "第" + context.readRowHolder().getRowIndex() + "行“客户名称”不能为空"); |
| @@ -45,9 +54,18 @@ public class CustomerCreditImportListener extends ExcelImportListener<CustomerCr | @@ -45,9 +54,18 @@ public class CustomerCreditImportListener extends ExcelImportListener<CustomerCr | ||
| 45 | throw new DefaultClientException( | 54 | throw new DefaultClientException( |
| 46 | "第" + context.readRowHolder().getRowIndex() + "行“客户名称”不存在"); | 55 | "第" + context.readRowHolder().getRowIndex() + "行“客户名称”不存在"); |
| 47 | } else { | 56 | } else { |
| 57 | + QueryCustomerCreditVo vo = new QueryCustomerCreditVo(); | ||
| 58 | + vo.setCompanyId(customer.getId()); | ||
| 59 | + vo.setStatusCancel("CANCEL"); | ||
| 60 | + List<CustomerCredit> query = customerCreditService.query(vo); | ||
| 61 | + if (CollectionUtils.isNotEmpty(query) && query.size() > 0) { | ||
| 62 | + throw new DefaultClientException( | ||
| 63 | + "第" + context.readRowHolder().getRowIndex() + "行的客户资信已存在"); | ||
| 64 | + } | ||
| 48 | data.setCompanyId(customer.getId()); | 65 | data.setCompanyId(customer.getId()); |
| 49 | } | 66 | } |
| 50 | } | 67 | } |
| 68 | + checkNameList.add(data.getName()); | ||
| 51 | if (StringUtil.isBlank(data.getCompanySuggestedCategory())) { | 69 | if (StringUtil.isBlank(data.getCompanySuggestedCategory())) { |
| 52 | throw new DefaultClientException( | 70 | throw new DefaultClientException( |
| 53 | "第" + context.readRowHolder().getRowIndex() + "行“客户分类”不能为空"); | 71 | "第" + context.readRowHolder().getRowIndex() + "行“客户分类”不能为空"); |
| @@ -1180,10 +1180,10 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | @@ -1180,10 +1180,10 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | ||
| 1180 | return sysUserService.findById(sysDept.getUserId()); | 1180 | return sysUserService.findById(sysDept.getUserId()); |
| 1181 | } | 1181 | } |
| 1182 | } else { | 1182 | } else { |
| 1183 | - throw new IllegalArgumentException("部门名称为空"); | 1183 | + throw new DefaultClientException("部门名称为空"); |
| 1184 | } | 1184 | } |
| 1185 | } else { | 1185 | } else { |
| 1186 | - throw new IllegalArgumentException("人员不存在"); | 1186 | + throw new DefaultClientException("人员不存在"); |
| 1187 | } | 1187 | } |
| 1188 | return null; | 1188 | return null; |
| 1189 | } | 1189 | } |
| @@ -1210,10 +1210,10 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | @@ -1210,10 +1210,10 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | ||
| 1210 | 1210 | ||
| 1211 | return generateNextAvailableNumber(prefixPinyin, existingNumbers); | 1211 | return generateNextAvailableNumber(prefixPinyin, existingNumbers); |
| 1212 | } else { | 1212 | } else { |
| 1213 | - throw new IllegalArgumentException("部门名称为空"); | 1213 | + throw new DefaultClientException("部门名称为空"); |
| 1214 | } | 1214 | } |
| 1215 | } else { | 1215 | } else { |
| 1216 | - throw new IllegalArgumentException("人员不存在"); | 1216 | + throw new DefaultClientException("人员不存在"); |
| 1217 | } | 1217 | } |
| 1218 | } | 1218 | } |
| 1219 | 1219 | ||
| @@ -1354,7 +1354,7 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | @@ -1354,7 +1354,7 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | ||
| 1354 | // 2. 从 classpath 加载模板 | 1354 | // 2. 从 classpath 加载模板 |
| 1355 | try (InputStream templateIs = getClass().getClassLoader().getResourceAsStream(templatePathInClasspath)) { | 1355 | try (InputStream templateIs = getClass().getClassLoader().getResourceAsStream(templatePathInClasspath)) { |
| 1356 | if (templateIs == null) { | 1356 | if (templateIs == null) { |
| 1357 | - throw new FileNotFoundException("模板文件未找到,请检查路径: " + templatePathInClasspath); | 1357 | + throw new DefaultClientException("模板文件未找到,请检查路径: " + templatePathInClasspath); |
| 1358 | } | 1358 | } |
| 1359 | 1359 | ||
| 1360 | // 3. 创建输出文件流 | 1360 | // 3. 创建输出文件流 |
| @@ -1436,7 +1436,7 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | @@ -1436,7 +1436,7 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | ||
| 1436 | public static String generateNextAvailableNumber(String prefix, Set<String> existingNumbers) { | 1436 | public static String generateNextAvailableNumber(String prefix, Set<String> existingNumbers) { |
| 1437 | // 参数校验 | 1437 | // 参数校验 |
| 1438 | if (prefix == null || prefix.isEmpty()) { | 1438 | if (prefix == null || prefix.isEmpty()) { |
| 1439 | - throw new IllegalArgumentException("办事处前缀不能为空"); | 1439 | + throw new DefaultClientException("办事处前缀不能为空"); |
| 1440 | } | 1440 | } |
| 1441 | if (existingNumbers == null) { | 1441 | if (existingNumbers == null) { |
| 1442 | existingNumbers = new HashSet<>(); | 1442 | existingNumbers = new HashSet<>(); |
| @@ -1468,7 +1468,7 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | @@ -1468,7 +1468,7 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM | ||
| 1468 | .boxed() | 1468 | .boxed() |
| 1469 | .findFirst() | 1469 | .findFirst() |
| 1470 | .map(n -> String.format("%s%03d", prefix.toUpperCase(), n)) | 1470 | .map(n -> String.format("%s%03d", prefix.toUpperCase(), n)) |
| 1471 | - .orElseThrow(() -> new RuntimeException("办事处 " + prefix + " 的编号已用尽 (001-999)")); | 1471 | + .orElseThrow(() -> new DefaultClientException("办事处 " + prefix + " 的编号已用尽 (001-999)")); |
| 1472 | } | 1472 | } |
| 1473 | 1473 | ||
| 1474 | @CacheEvict(value = CustomerCredit.CACHE_NAME, key = "@cacheVariables.tenantId() + #key") | 1474 | @CacheEvict(value = CustomerCredit.CACHE_NAME, key = "@cacheVariables.tenantId() + #key") |
| @@ -58,6 +58,19 @@ public class QueryCustomerCreditVo extends PageVo implements BaseVo, Serializabl | @@ -58,6 +58,19 @@ public class QueryCustomerCreditVo extends PageVo implements BaseVo, Serializabl | ||
| 58 | private String serialNumber; | 58 | private String serialNumber; |
| 59 | 59 | ||
| 60 | /** | 60 | /** |
| 61 | + * 单位id | ||
| 62 | + */ | ||
| 63 | + @ApiModelProperty("单位id") | ||
| 64 | + private String companyId; | ||
| 65 | + | ||
| 66 | + /** | ||
| 67 | + * 审核状态为取消 | ||
| 68 | + */ | ||
| 69 | + @ApiModelProperty("审核状态为取消") | ||
| 70 | + private String statusCancel; | ||
| 71 | + | ||
| 72 | + | ||
| 73 | + /** | ||
| 61 | * 导出类型 | 74 | * 导出类型 |
| 62 | */ | 75 | */ |
| 63 | @ApiModelProperty("导出类型") | 76 | @ApiModelProperty("导出类型") |
| @@ -168,6 +168,12 @@ | @@ -168,6 +168,12 @@ | ||
| 168 | <if test="vo.serialNumber != null and vo.serialNumber != ''"> | 168 | <if test="vo.serialNumber != null and vo.serialNumber != ''"> |
| 169 | AND tb.serial_number = #{vo.serialNumber} | 169 | AND tb.serial_number = #{vo.serialNumber} |
| 170 | </if> | 170 | </if> |
| 171 | + <if test="vo.companyId != null and vo.companyId != ''"> | ||
| 172 | + AND tb.company_id = #{vo.companyId} | ||
| 173 | + </if> | ||
| 174 | + <if test="vo.statusCancel != null and vo.statusCancel != ''"> | ||
| 175 | + AND tb.status != #{vo.statusCancel} | ||
| 176 | + </if> | ||
| 171 | </where> | 177 | </where> |
| 172 | </select> | 178 | </select> |
| 173 | 179 |