CarMessageApplyServiceImpl.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package com.xjrsoft.module.personnel.service.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.github.yulichang.base.MPJBaseServiceImpl;
  5. import com.google.gson.JsonArray;
  6. import com.google.gson.JsonObject;
  7. import com.xjrsoft.common.enums.DeleteMark;
  8. import com.xjrsoft.common.exception.MyException;
  9. import com.xjrsoft.module.hikvision.entity.HikvisionData;
  10. import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
  11. import com.xjrsoft.module.hikvision.util.ApiUtil;
  12. import com.xjrsoft.module.personnel.dto.AddCarMessageApplyDto;
  13. import com.xjrsoft.module.personnel.entity.CarMessageApply;
  14. import com.xjrsoft.module.personnel.mapper.CarMessageApplyMapper;
  15. import com.xjrsoft.module.personnel.service.ICarMessageApplyService;
  16. import lombok.AllArgsConstructor;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import java.util.HashMap;
  20. import java.util.List;
  21. import java.util.Map;
  22. /**
  23. * @title: 车辆信息审核
  24. * @Author dzx
  25. * @Date: 2024-05-12
  26. * @Version 1.0
  27. */
  28. @Service
  29. @AllArgsConstructor
  30. public class CarMessageApplyServiceImpl extends MPJBaseServiceImpl<CarMessageApplyMapper, CarMessageApply> implements ICarMessageApplyService {
  31. private final HikvisionDataMapper hikvisionDataMapper;
  32. @Override
  33. @Transactional(rollbackFor = Exception.class)
  34. public Boolean deleteBatchByIds(List<Long> ids) {
  35. List<HikvisionData> hikvisionData = hikvisionDataMapper.selectList(
  36. new QueryWrapper<HikvisionData>().lambda()
  37. .in(HikvisionData::getSourceId, ids)
  38. );
  39. JsonObject paramJson = new JsonObject();
  40. JsonArray vehicleIds = new JsonArray();
  41. Map<String, String> idsMap = new HashMap<>();
  42. for (HikvisionData el : hikvisionData) {
  43. vehicleIds.add(el.getHikvisionId());
  44. idsMap.put(el.getHikvisionId(), el.getSourceId());
  45. }
  46. paramJson.add("vehicleIds", vehicleIds);
  47. ApiUtil apiUtil = new ApiUtil();
  48. String apiUrl = "/api/resource/v1/vehicle/batch/delete";
  49. String result = apiUtil.doPost(apiUrl, paramJson.toString(), null);
  50. // JsonParser parser = new JsonParser();
  51. // JsonObject resultJson = parser.parse(result).getAsJsonObject();
  52. // if ("0".equals(resultJson.get("code").getAsString()) && !resultJson.get("data").isJsonNull()) {
  53. // JsonArray data = resultJson.get("data").getAsJsonArray();
  54. // for (JsonElement datum : data) {
  55. // JsonObject object = datum.getAsJsonObject();
  56. // idsMap.remove(object.get("vehicleId").getAsString());
  57. // }
  58. // Collection<String> values = idsMap.values();
  59. //// this.removeBatchByIds(values); 远程没有数据
  60. // }
  61. // else{
  62. this.removeBatchByIds(ids);
  63. // }
  64. return true;
  65. }
  66. @Override
  67. @Transactional(rollbackFor = Exception.class)
  68. public Boolean add(AddCarMessageApplyDto dto) {
  69. long countByCarNumber = this.count(
  70. new QueryWrapper<CarMessageApply>().lambda()
  71. .eq(CarMessageApply::getCarNumber, dto.getCarNumber())
  72. .eq(CarMessageApply::getDeleteMark, DeleteMark.NODELETE.getCode())
  73. .eq(CarMessageApply::getStatus,1)
  74. );
  75. if(countByCarNumber > 0){
  76. throw new MyException("已存在该车牌号");
  77. }
  78. long count = this.count(
  79. new QueryWrapper<CarMessageApply>().lambda()
  80. .eq(CarMessageApply::getUserId, dto.getUserId())
  81. .eq(CarMessageApply::getDeleteMark, DeleteMark.NODELETE.getCode())
  82. .eq(CarMessageApply::getStatus,1)
  83. );
  84. if(count > 2){
  85. throw new MyException("已添加2辆车,无法继续添加");
  86. }
  87. CarMessageApply carMessageApply = BeanUtil.toBean(dto, CarMessageApply.class);
  88. this.save(carMessageApply);
  89. return true;
  90. }
  91. }