| | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.chargingPile.api.model.Site; |
| | | import com.ruoyi.chargingPile.api.model.TChargingGun; |
| | | import com.ruoyi.chargingPile.api.model.TChargingPile; |
| | | import com.ruoyi.chargingPile.service.ISiteService; |
| | | import com.ruoyi.chargingPile.service.TChargingGunService; |
| | | import com.ruoyi.chargingPile.service.TChargingPileService; |
| | | import com.ruoyi.chargingPile.tulaidian.domain.ConnectorInfo; |
| | | import com.ruoyi.chargingPile.tulaidian.domain.EquipmentInfos; |
| | | import com.ruoyi.chargingPile.tulaidian.domain.PageInfo; |
| | | import com.ruoyi.chargingPile.tulaidian.domain.StationInfos; |
| | | import com.ruoyi.chargingPile.tulaidian.util.ChargePileHttpUtil; |
| | | import com.ruoyi.chargingPile.tulaidian.util.CodeGenerateUtils; |
| | | import com.ruoyi.chargingPile.util.UUIDUtil; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.utils.DateUtils; |
| | | import com.ruoyi.other.api.domain.Region; |
| | | import com.ruoyi.other.api.feignClient.OtherClient; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.models.auth.In; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | * @Date 2018/7/20 23:39 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/chargingPileInfo") |
| | | @RequestMapping("/chargingPileInfo111") |
| | | @Slf4j |
| | | public class ChargingPileInfoController { |
| | | @Autowired |
| | | private ChargePileHttpUtil chargePileHttpUtil; |
| | | @Autowired |
| | | private ISiteService siteService; |
| | | @Autowired |
| | | private TChargingGunService chargingGunService; |
| | | @Autowired |
| | | private TChargingPileService chargingPileService; |
| | | @Autowired |
| | | private OtherClient otherClient; |
| | | private static final double EARTH_RADIUS = 6371.0; // 地球半径,单位为千米 |
| | | |
| | | /** |
| | |
| | | result.sort(Comparator.comparing(StationInfos::getDistance)); |
| | | pageInfo.setTotal(result.size()); |
| | | |
| | | List<StationInfos> testing = testing(result.size(), pageNo, pageSize, result); |
| | | // List<StationInfos> testing = testing(result.size(), pageNo, pageSize, result); |
| | | Map<String, Region> regionMap = otherClient.listAllRegion().getData() |
| | | .stream().collect(Collectors.toMap(Region::getCode, e -> e)); |
| | | Map<Integer, Region> regionIdMap = otherClient.listAllRegion().getData() |
| | | .stream().collect(Collectors.toMap(Region::getId, e -> e)); |
| | | List<Site> sites = new ArrayList<>(); |
| | | List<TChargingPile> piles = new ArrayList<>(); |
| | | List<TChargingGun> guns = new ArrayList<>(); |
| | | for (StationInfos stationInfos : result) { |
| | | Site site = new Site(); |
| | | site.setPartnerId(26); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); |
| | | String dateTime = dateFormat.format(calendar.getTime()); |
| | | dateTime = dateTime.substring(2); |
| | | String timestampPart = "" + (Math.random() * 10000) * (System.currentTimeMillis() / 10000); |
| | | timestampPart = timestampPart.replace(".", "").replace("E", ""); |
| | | timestampPart = timestampPart.substring(0, 4); |
| | | site.setCode(dateTime+timestampPart); |
| | | site.setName(stationInfos.getStationName()); |
| | | site.setSiteType(stationInfos.getStationType()); |
| | | site.setBusinessCategory(2); |
| | | site.setStatus(1); |
| | | site.setConstructionSite(1); |
| | | site.setImgUrl(""); |
| | | Region region = regionMap.get(stationInfos.getAreaCode()); |
| | | if (region!=null){ |
| | | site.setDistricts(region.getName()); |
| | | site.setDistrictsCode(region.getCode()); |
| | | Integer parentId = region.getParentId(); |
| | | Region parentRegion = regionIdMap.get(parentId); |
| | | if (parentRegion != null) { |
| | | site.setCity(parentRegion.getName()); |
| | | site.setCityCode(parentRegion.getCode()); |
| | | Region region1 = regionIdMap.get(parentRegion.getParentId()); |
| | | if (region1!=null){ |
| | | site.setProvince(region1.getName()); |
| | | site.setProvinceCode(region1.getCode()); |
| | | } |
| | | } |
| | | } |
| | | site.setLon(stationInfos.getStationLng()+""); |
| | | site.setLat(stationInfos.getStationLat()+""); |
| | | site.setAddress(stationInfos.getAddress()); |
| | | // site.setCountryCode(); |
| | | site.setPhone(stationInfos.getServiceTel()); |
| | | site.setServicePhone(stationInfos.getServiceTel()); |
| | | site.setGuide(stationInfos.getSiteGuide()); |
| | | site.setStartServiceTime("24小时"); |
| | | // site.setEndServiceTime(); |
| | | // site.setServiceDescription(); |
| | | // site.setVehicleDescription(); |
| | | site.setParkingSpace(stationInfos.getParkNums()); |
| | | // site.setRateDescription(); |
| | | // site.setSpaceChargeExplain(); |
| | | // todo 临时写死一个 |
| | | site.setAccountingStrategyId(232); |
| | | // site.setEstablishmentTime(); |
| | | site.setSort(180); |
| | | // site.setRemark(); |
| | | // site.setMark(); |
| | | // site.setAreaCodeCountryside(); |
| | | site.setStationClassification(1); |
| | | site.setGeneralApplicationType(1); |
| | | site.setSwapMatchCars(stationInfos.getMatchCars()); |
| | | site.setRoundTheClock(1); |
| | | site.setParkType(4); |
| | | // site.setParkFee(); |
| | | // site.setParkFeeFree(); |
| | | site.setBusinessExpandType(1); |
| | | site.setElectricityType(1); |
| | | site.setCapacity(new BigDecimal("1250")); |
| | | site.setRatedPower(new BigDecimal("1200")); |
| | | site.setPeriodFee(1); |
| | | site.setOfficialRunTime("2025-06-22"); |
| | | // site.setStationOrientation(); |
| | | // site.setStationArea(); |
| | | site.setHavePerson(1); |
| | | site.setVideoMonitor(1); |
| | | // site.setSupportingFacilities(); |
| | | site.setPrinterFlag(1); |
| | | site.setBarrierFlag(1); |
| | | site.setParkingLockFlag(1); |
| | | // site.setElectricityFee(); |
| | | site.setEquipmentOwnerName("途来电"); |
| | | site.setSupplyType(1); |
| | | site.setResidentNo("0110043462"); |
| | | site.setWattHourMeterNo("MX01D05054000217"); |
| | | site.setForwardPower(new BigDecimal("0")); |
| | | site.setServiceFee("0:00-23:59:\"0.20\""); |
| | | Calendar calendar1 = Calendar.getInstance(); |
| | | SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyyMMdd"); |
| | | String dateTime1 = dateFormat1.format(calendar1.getTime()); |
| | | dateTime1 = dateTime1.substring(2); |
| | | String timestampPart1 = "" + (Math.random() * 10000) * (System.currentTimeMillis() / 10000); |
| | | timestampPart1 = timestampPart1.replace(".", "").replace("E", ""); |
| | | timestampPart1 = timestampPart1.substring(0, 4); |
| | | site.setRecordUniqueNo(dateTime+timestampPart); |
| | | site.setPayment(1); |
| | | site.setSupportOrder(1); |
| | | // site.setSerAreaCode(); |
| | | site.setIsOpenSynchronization(0); |
| | | site.setIsEnergyStorage(0); |
| | | siteService.save(site); |
| | | sites.add(site); |
| | | for (EquipmentInfos equipmentInfo : stationInfos.getEquipmentInfos()) { |
| | | int i = 1; |
| | | TChargingPile chargingPile = new TChargingPile(); |
| | | Calendar calendar2 = Calendar.getInstance(); |
| | | SimpleDateFormat dateFormat3 = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String dateTime4 = dateFormat3.format(calendar2.getTime()); |
| | | dateTime4 = dateTime4.substring(2); |
| | | String timestampPart5 = "" + (Math.random() * 10000) * (System.currentTimeMillis() / 10000); |
| | | timestampPart5 = timestampPart5.replace(".", "").replace("E", ""); |
| | | timestampPart5 = timestampPart5.substring(0, 4); |
| | | chargingPile.setCode(dateTime4+timestampPart5); |
| | | chargingPile.setName(equipmentInfo.getEquipmentName()); |
| | | chargingPile.setNumber(i); |
| | | chargingPile.setType(equipmentInfo.getEquipmentType()); |
| | | chargingPile.setSiteId(site.getId()); |
| | | chargingPile.setPartnerId(26); |
| | | chargingPile.setManufacturerCode(equipmentInfo.getManufacturerID()); |
| | | chargingPile.setManufacturer(equipmentInfo.getManufacturerName()); |
| | | chargingPile.setEquipmentType(equipmentInfo.getEquipmentModel()); |
| | | String productionDate = equipmentInfo.getProductionDate(); |
| | | if (StringUtils.hasLength(productionDate)){ |
| | | // 转化为LocalDate |
| | | chargingPile.setProductionDate(LocalDate.parse(productionDate)); |
| | | } |
| | | chargingPile.setRatedPower(new BigDecimal(120)); |
| | | // chargingPile.setChargingStationNumber(); |
| | | chargingPile.setStatus(1); |
| | | // chargingPile.setIotdDeviceId(); |
| | | chargingPile.setEquipmentClassification(1); |
| | | // chargingPile.setEquipmentUniqueNumber(equipmentInfo.getEquipmentID()); |
| | | chargingPile.setEquipmentLng(equipmentInfo.getEquipmentLng()+""); |
| | | chargingPile.setEquipmentLat(equipmentInfo.getEquipmentLat()+""); |
| | | // chargingPile.setEquipmentProductCode(); |
| | | chargingPile.setEquipmentPurpose(1); |
| | | chargingPile.setNewNationalStandard(1); |
| | | chargingPile.setVinFlag(1); |
| | | chargingPileService.save(chargingPile); |
| | | piles.add(chargingPile); |
| | | i++; |
| | | for (ConnectorInfo connectorInfo : equipmentInfo.getConnectorInfos()) { |
| | | int j = 1; |
| | | TChargingGun gun = new TChargingGun(); |
| | | gun.setCode(j+""); |
| | | gun.setSiteId(site.getId()); |
| | | gun.setPartnerId(26); |
| | | gun.setChargingPileId(chargingPile.getId()); |
| | | gun.setName(connectorInfo.getConnectorName()); |
| | | gun.setType(connectorInfo.getConnectorType()); |
| | | gun.setStatus(1); |
| | | gun.setChargeMode(connectorInfo.getGunType()); |
| | | // todo 临时写死 |
| | | gun.setAccountingStrategyId(232); |
| | | gun.setUpperRatedVoltage(new BigDecimal("240")); |
| | | gun.setLowerLimitOfRatedVoltage(new BigDecimal("200")); |
| | | gun.setRatedCurrent(new BigDecimal("32")); |
| | | gun.setRatedPower(new BigDecimal("7")); |
| | | gun.setChargingPower(new BigDecimal("200")); |
| | | gun.setParkingNumber("39"); |
| | | gun.setParkingStatus(0); |
| | | gun.setParkingLockState(0); |
| | | gun.setNationalStandard("3"); |
| | | // gun.setRemark(); |
| | | // gun.setSoc(); |
| | | gun.setFullNumber(chargingPile.getNumber()+j+""); |
| | | gun.setEquipmentClassification(1); |
| | | gun.setConstantVoltageUpperLimits(new BigDecimal("240")); |
| | | gun.setConstantVoltageLowerLimits(new BigDecimal("200")); |
| | | gun.setConstantCurrentUpperLimits(new BigDecimal("32")); |
| | | gun.setConstantCurrentLowerLimits(new BigDecimal("7")); |
| | | gun.setAuxPower(3); |
| | | gun.setOpreateStatus(0); |
| | | // gun.setOpreateHours(); |
| | | guns.add(gun); |
| | | chargingGunService.save(gun); |
| | | j++; |
| | | |
| | | // TODO 数据存储 |
| | | } |
| | | } |
| | | } |
| | | log.info("新增的站点数据:{}", sites); |
| | | log.info("新增的桩数据:{}", piles); |
| | | log.info("新增的枪数据:{}", guns); |
| | | |
| | | return R.ok(); |
| | | } |
| | |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | | private List<StationInfos> getStationInfos(){ |
| | | String s = chargePileHttpUtil.queryStationsInfo(1, 199); |
| | | // 将s字符串转化为json 然后转化为实体类PageInfo |