소스 검색

新增车辆优化

donglang 1 주 전
부모
커밋
7c03dbf4f2

+ 8 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/repository/KwfTruckEntRepository.java

@@ -30,4 +30,12 @@ public class KwfTruckEntRepository extends ServiceImpl<KwfTruckEntMapper, KwfTru
                 .in(KwfTruckEnt::getEntId,entId)
                 .orderByDesc(BaseModel::getCreateTime));
     }
+
+    public List<KwfTruckEnt> findTruckEntByEntIdAndTruckId(Long entId, Long truckId) {
+        return list(Wrappers.<KwfTruckEnt>lambdaQuery()
+                .eq(BaseModel::getDelFlag,0)
+                .eq(KwfTruckEnt::getEntId,entId)
+                .eq(KwfTruckEnt::getTruckId ,truckId)
+                .orderByDesc(BaseModel::getCreateTime));
+    }
 }

+ 37 - 29
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckService.java

@@ -2296,6 +2296,7 @@ public class KwfTruckService {
      * @param param
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     public void saveTruck(TruckSaveParam param) {
         log.info("保存车辆,id:{}", JSON.toJSONString(param));
         if (Objects.equals(param.getEnergyType(), TruckEnergyTypeEnum.TRADITIONAL.getCode())) {
@@ -2308,36 +2309,43 @@ public class KwfTruckService {
         if (param.getId() == null) {
             KwfTruck kwfTruck = kwfTruckRepository.getOne(Wrappers.<KwfTruck>lambdaQuery()
                     .eq(KwfTruck::getTruckNo, param.getTruckNo()));
-            if (kwfTruck != null) {
-                throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_EXIST, "车牌号已存在");
+            if (kwfTruck == null) {
+                //场景一:车辆不存在,执行新增流程
+                KwfTruck truck = new KwfTruck();
+                truck.setTruckNo(param.getTruckNo());
+                truck.setType(param.getType());
+                truck.setEnergyType(param.getEnergyType());
+                truck.setEev(param.getEev());
+                truck.setCarAxis(param.getCarAxis());
+                truck.setBrand(param.getBrand());
+                truck.setVin(param.getVin());
+                truck.setEngineNo(param.getEngineNo());
+                truck.setAnnualInspectionTime(param.getAnnualInspectionTime());
+                truck.setTransportValidityTime(param.getTransportValidityTime());
+                truck.setPositionDevice(param.getPositionDevice());
+                truck.setTruckLicense(param.getTruckLicense());
+                truck.setTransportLicense(param.getTransportLicense());
+                truck.setEnvironmentalList(param.getEnvironmentalList());
+                truck.setStatus(TruckStatusEnum.NORMAL.getCode());
+                truck.setDelFlag(0);
+                truck.setBlacklist(0);
+                truck.setCreateTime(new Date());
+                kwfTruckRepository.save(truck);
+
+                // 车队班组绑定
+                truckFleetEdit(truck.getId(), param.getFleetId());
+
+                // 车辆信息与企业关联信息
+                truckEntEdit(truck);
+            } else {
+                //场景二:车辆已存在,检查车辆企业关联
+                List<KwfTruckEnt> truckEntList = truckEntRepository.findTruckEntByEntIdAndTruckId(LoginUserHolder.getEntId(), kwfTruck.getId());
+                if (CollectionUtils.isNotEmpty(truckEntList)) {
+                    throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_EXIST, "该车牌号已存在且已归属于当前企业,请勿重复添加");
+                }
+                // 车辆信息与企业关联信息
+                truckEntEdit(kwfTruck);
             }
-
-            KwfTruck truck = new KwfTruck();
-            truck.setTruckNo(param.getTruckNo());
-            truck.setType(param.getType());
-            truck.setEnergyType(param.getEnergyType());
-            truck.setEev(param.getEev());
-            truck.setCarAxis(param.getCarAxis());
-            truck.setBrand(param.getBrand());
-            truck.setVin(param.getVin());
-            truck.setEngineNo(param.getEngineNo());
-            truck.setAnnualInspectionTime(param.getAnnualInspectionTime());
-            truck.setTransportValidityTime(param.getTransportValidityTime());
-            truck.setPositionDevice(param.getPositionDevice());
-            truck.setTruckLicense(param.getTruckLicense());
-            truck.setTransportLicense(param.getTransportLicense());
-            truck.setEnvironmentalList(param.getEnvironmentalList());
-            truck.setStatus(TruckStatusEnum.NORMAL.getCode());
-            truck.setDelFlag(0);
-            truck.setBlacklist(0);
-            truck.setCreateTime(new Date());
-            kwfTruckRepository.save(truck);
-
-            // 车队班组绑定
-            truckFleetEdit(truck.getId(), param.getFleetId());
-
-            // 车辆信息与企业关联信息
-            truckEntEdit(truck);
         } else {
             // 更新车辆
             KwfTruck truck = kwfTruckRepository.getById(param.getId());