diff --git a/ruoyi-admin/src/main/java/com/ruoyi/operation/controller/ZcCarBrandController.java b/ruoyi-admin/src/main/java/com/ruoyi/operation/controller/ZcCarBrandController.java index 77332b5..9b1803b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/operation/controller/ZcCarBrandController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/operation/controller/ZcCarBrandController.java @@ -90,6 +90,10 @@ public class ZcCarBrandController extends BaseController @ResponseBody public AjaxResult addSave(ZcCarBrand zcCarBrand) { + if (ZcCarBrand.NOT_UNIQUE.equals(zcCarBrandService.checkNameUnique(zcCarBrand))) + { + return error("新增失败,品牌名称'" + zcCarBrand.getBrandName() + "'已存在"); + } return toAjax(zcCarBrandService.insertZcCarBrand(zcCarBrand)); } @@ -114,6 +118,10 @@ public class ZcCarBrandController extends BaseController @ResponseBody public AjaxResult editSave(ZcCarBrand zcCarBrand) { + if (ZcCarBrand.NOT_UNIQUE.equals(zcCarBrandService.checkNameUnique(zcCarBrand))) + { + return error("新增失败,品牌名称'" + zcCarBrand.getBrandName() + "'已存在"); + } return toAjax(zcCarBrandService.updateZcCarBrand(zcCarBrand)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/operation/domain/ZcCarBrand.java b/ruoyi-admin/src/main/java/com/ruoyi/operation/domain/ZcCarBrand.java index d17a0ba..6c9cda6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/operation/domain/ZcCarBrand.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/operation/domain/ZcCarBrand.java @@ -49,6 +49,9 @@ public class ZcCarBrand extends BaseEntity /** 车型管理信息 */ private List zcCarModelList; + public final static String UNIQUE = "0"; + public final static String NOT_UNIQUE = "1"; + public void setId(Long id) { this.id = id; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/operation/mapper/ZcCarBrandMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/operation/mapper/ZcCarBrandMapper.java index 2a303bd..43834ba 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/operation/mapper/ZcCarBrandMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/operation/mapper/ZcCarBrandMapper.java @@ -84,4 +84,6 @@ public interface ZcCarBrandMapper * @return 结果 */ public int deleteZcCarModelByBrandId(Long id); + + public ZcCarBrand checkNameUnique(ZcCarBrand zcCarBrand); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/operation/service/IZcCarBrandService.java b/ruoyi-admin/src/main/java/com/ruoyi/operation/service/IZcCarBrandService.java index 901cbbb..96b4145 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/operation/service/IZcCarBrandService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/operation/service/IZcCarBrandService.java @@ -58,4 +58,6 @@ public interface IZcCarBrandService * @return 结果 */ public int deleteZcCarBrandById(Long id); + + public String checkNameUnique(ZcCarBrand zcCarBrand); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/operation/service/impl/ZcCarBrandServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/operation/service/impl/ZcCarBrandServiceImpl.java index a5c2c49..8f02ee6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/operation/service/impl/ZcCarBrandServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/operation/service/impl/ZcCarBrandServiceImpl.java @@ -2,6 +2,7 @@ package com.ruoyi.operation.service.impl; import java.util.List; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.operation.domain.Company; import com.ruoyi.operation.service.IZcCarModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -118,6 +119,17 @@ public class ZcCarBrandServiceImpl implements IZcCarBrandService return zcCarBrandMapper.deleteZcCarBrandById(id); } + @Override + public String checkNameUnique(ZcCarBrand zcCarBrand) { + Long id = StringUtils.isNull(zcCarBrand.getId()) ? -1L : zcCarBrand.getId(); + ZcCarBrand info = zcCarBrandMapper.checkNameUnique(zcCarBrand); + if (StringUtils.isNotNull(info) && info.getId().longValue() != id.longValue()) + { + return ZcCarBrand.NOT_UNIQUE; + } + return ZcCarBrand.UNIQUE; + } + /** * 新增车型管理信息 * diff --git a/ruoyi-admin/src/main/java/com/ruoyi/operation/service/impl/ZcCarServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/operation/service/impl/ZcCarServiceImpl.java index 6348267..254f36f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/operation/service/impl/ZcCarServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/operation/service/impl/ZcCarServiceImpl.java @@ -12,18 +12,14 @@ import com.ruoyi.common.utils.DictUtils; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanValidators; -import com.ruoyi.operation.domain.Company; -import com.ruoyi.operation.domain.CompanyStore; -import com.ruoyi.operation.service.ICompanyService; -import com.ruoyi.operation.service.ICompanyStoreService; +import com.ruoyi.operation.domain.*; +import com.ruoyi.operation.service.*; import com.ruoyi.operation.util.OperationConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.operation.mapper.ZcCarMapper; -import com.ruoyi.operation.domain.ZcCar; -import com.ruoyi.operation.service.IZcCarService; import com.ruoyi.common.core.text.Convert; import org.springframework.transaction.annotation.Transactional; @@ -47,6 +43,10 @@ public class ZcCarServiceImpl implements IZcCarService private ICompanyService companyService; @Autowired private ICompanyStoreService companyStoreService; + @Autowired + private IZcCarBrandService zcCarBrandService; + @Autowired + private IZcCarModelService zcCarModelService; protected Validator validator; @@ -187,6 +187,17 @@ public class ZcCarServiceImpl implements IZcCarService Map storeMap = storeList.stream() .collect(Collectors.toMap(CompanyStore::getName, CompanyStore::getId)); + // 一次性查询所有品牌,构建成 Map 用于快速查找 + List carBrandList = zcCarBrandService.selectZcCarBrandList(new ZcCarBrand()); + Map carBrandMap = carBrandList.stream() + .collect(Collectors.toMap(ZcCarBrand::getBrandName, ZcCarBrand::getId)); + + // 一次性查询所有型号,构建成 Map 用于快速查找 + List carModelList = zcCarModelService.selectZcCarModelList(new ZcCarModel()); + Map carModelMap = carModelList.stream() + .collect(Collectors.toMap( + item -> item.getBrandName() + "-" + item.getModelName(), + ZcCarModel::getId)); int successNum = 0; int failureNum = 0; @@ -204,6 +215,23 @@ public class ZcCarServiceImpl implements IZcCarService // 只有当所有唯一性校验都通过时才插入数据 if (StringUtils.isNull(u) && StringUtils.isNull(u2) && StringUtils.isNull(u3)) { + // 设置品牌 + if (StringUtils.isNotEmpty(car.getBrandName()) && carBrandMap.containsKey(car.getBrandName())) { + car.setBrandId(carBrandMap.get(car.getBrandName())); + }else{ + failureNum++; + failureMsg.append("
" + failureNum + "、车辆品牌 " + car.getBrandName() + " 不存在"); + continue; + } + // 设置车型 + if (StringUtils.isNotEmpty(car.getModelName()) && carModelMap.containsKey(car.getBrandName()+"-"+car.getModelName())) { + car.setModelId(carModelMap.get(car.getBrandName()+"-"+car.getModelName())); + }else{ + failureNum++; + failureMsg.append("
" + failureNum + "、车辆品牌 " + car.getBrandName() + " 的车辆型号 " + car.getModelName() + " 不存在"); + continue; + } + // 设置运营商ID if (StringUtils.isNotEmpty(car.getOperatorName()) && companyMap.containsKey(car.getOperatorName())) { car.setOperatorId(companyMap.get(car.getOperatorName())); diff --git a/ruoyi-admin/src/main/resources/mapper/operation/ZcCarBrandMapper.xml b/ruoyi-admin/src/main/resources/mapper/operation/ZcCarBrandMapper.xml index e8cdcf0..7d34a1b 100644 --- a/ruoyi-admin/src/main/resources/mapper/operation/ZcCarBrandMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/operation/ZcCarBrandMapper.xml @@ -68,7 +68,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join zc_car_model b on b.brand_id = a.id where a.id = #{id} - + + insert into zc_car_brand diff --git a/ruoyi-admin/src/main/resources/templates/orders/distrib/distrib.html b/ruoyi-admin/src/main/resources/templates/orders/distrib/distrib.html index 33db53f..8a44dad 100644 --- a/ruoyi-admin/src/main/resources/templates/orders/distrib/distrib.html +++ b/ruoyi-admin/src/main/resources/templates/orders/distrib/distrib.html @@ -142,6 +142,7 @@ url: prefix + "/list", createUrl: prefix + "/add", updateUrl: prefix + "/edit/{id}", + detailUrl: ctx + "orders/order/edit/{id}", removeUrl: prefix + "/remove", exportUrl: prefix + "/export", modalName: "订单分成统计",