package com.xjrsoft.module.personnel.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.yulichang.base.MPJBaseServiceImpl; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.xjrsoft.common.enums.DeleteMark; import com.xjrsoft.common.exception.MyException; import com.xjrsoft.module.hikvision.entity.HikvisionData; import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper; import com.xjrsoft.module.hikvision.util.ApiUtil; import com.xjrsoft.module.personnel.dto.AddCarMessageApplyDto; import com.xjrsoft.module.personnel.entity.CarMessageApply; import com.xjrsoft.module.personnel.mapper.CarMessageApplyMapper; import com.xjrsoft.module.personnel.service.ICarMessageApplyService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @title: 车辆信息审核 * @Author dzx * @Date: 2024-05-12 * @Version 1.0 */ @Service @AllArgsConstructor public class CarMessageApplyServiceImpl extends MPJBaseServiceImpl implements ICarMessageApplyService { private final HikvisionDataMapper hikvisionDataMapper; @Override @Transactional(rollbackFor = Exception.class) public Boolean deleteBatchByIds(List ids) { List hikvisionData = hikvisionDataMapper.selectList( new QueryWrapper().lambda() .in(HikvisionData::getSourceId, ids) ); JsonObject paramJson = new JsonObject(); JsonArray vehicleIds = new JsonArray(); Map idsMap = new HashMap<>(); for (HikvisionData el : hikvisionData) { vehicleIds.add(el.getHikvisionId()); idsMap.put(el.getHikvisionId(), el.getSourceId()); } paramJson.add("vehicleIds", vehicleIds); ApiUtil apiUtil = new ApiUtil(); String apiUrl = "/api/resource/v1/vehicle/batch/delete"; String result = apiUtil.doPost(apiUrl, paramJson.toString(), null); // JsonParser parser = new JsonParser(); // JsonObject resultJson = parser.parse(result).getAsJsonObject(); // if ("0".equals(resultJson.get("code").getAsString()) && !resultJson.get("data").isJsonNull()) { // JsonArray data = resultJson.get("data").getAsJsonArray(); // for (JsonElement datum : data) { // JsonObject object = datum.getAsJsonObject(); // idsMap.remove(object.get("vehicleId").getAsString()); // } // Collection values = idsMap.values(); //// this.removeBatchByIds(values); 远程没有数据 // } // else{ this.removeBatchByIds(ids); // } return true; } @Override @Transactional(rollbackFor = Exception.class) public Boolean add(AddCarMessageApplyDto dto) { long countByCarNumber = this.count( new QueryWrapper().lambda() .eq(CarMessageApply::getCarNumber, dto.getCarNumber()) .eq(CarMessageApply::getDeleteMark, DeleteMark.NODELETE.getCode()) .eq(CarMessageApply::getStatus,1) ); if(countByCarNumber > 0){ throw new MyException("已存在该车牌号"); } long count = this.count( new QueryWrapper().lambda() .eq(CarMessageApply::getUserId, dto.getUserId()) .eq(CarMessageApply::getDeleteMark, DeleteMark.NODELETE.getCode()) .eq(CarMessageApply::getStatus,1) ); if(count > 2){ throw new MyException("已添加2辆车,无法继续添加"); } CarMessageApply carMessageApply = BeanUtil.toBean(dto, CarMessageApply.class); this.save(carMessageApply); return true; } }