todo: order no evcs

This commit is contained in:
ZZ 2021-10-27 17:43:58 +08:00
parent c2e084016b
commit eb2bc8aba9
8 changed files with 80 additions and 47 deletions

View File

@ -86,6 +86,19 @@ public class XhpcChargingStation extends BaseEntity {
@Column(name = "service_tel") @Column(name = "service_tel")
private String serviceTel; private String serviceTel;
@Column(name = "park_nums")
private Integer parkNums;
public Integer getParkNums() {
return parkNums;
}
public void setParkNums(Integer parkNums) {
this.parkNums = parkNums;
}
public String getServiceTel() { public String getServiceTel() {
return serviceTel; return serviceTel;

View File

@ -95,12 +95,15 @@ public class StationsInfoController extends CoreDispatcher {
chargingStationDto.setType(xhpcChargingStation.getType()); chargingStationDto.setType(xhpcChargingStation.getType());
chargingStationDto.setOperatorId(xhpcChargingStation.getOperatorIdEvcs() == null ? "MA6DFCTD5" chargingStationDto.setOperatorId(xhpcChargingStation.getOperatorIdEvcs() == null ? "MA6DFCTD5"
: xhpcChargingStation.getOperatorIdEvcs()); : xhpcChargingStation.getOperatorIdEvcs());
chargingStationDto.setAddress(xhpcChargingStation.getAddress());
chargingStationDto.setAreaCode(xhpcChargingStation.getAreaCode().toString()); chargingStationDto.setAreaCode(xhpcChargingStation.getAreaCode().toString());
chargingStationDto.setName(xhpcChargingStation.getName()); chargingStationDto.setName(xhpcChargingStation.getName());
chargingStationDto.setServiceTel(xhpcChargingStation.getServiceTel()); chargingStationDto.setServiceTel(xhpcChargingStation.getServiceTel());
chargingStationDto.setParkNums(xhpcChargingStation.getParkNums());
REDIS.setCacheObject(stationKey, chargingStationDto); REDIS.setCacheObject(stationKey, chargingStationDto);
} }
} }
station.setAddress(chargingStationDto.getAddress());
station.setStationLat(chargingStationDto.getLat()); station.setStationLat(chargingStationDto.getLat());
station.setStationLng(chargingStationDto.getLng()); station.setStationLng(chargingStationDto.getLng());
station.setStationType(chargingStationDto.getType()); station.setStationType(chargingStationDto.getType());
@ -110,6 +113,7 @@ public class StationsInfoController extends CoreDispatcher {
station.setEquipmentOwnerId(chargingStationDto.getOperatorId()); station.setEquipmentOwnerId(chargingStationDto.getOperatorId());
station.setStationName(chargingStationDto.getName()); station.setStationName(chargingStationDto.getName());
station.setCountryCode("CN"); station.setCountryCode("CN");
station.setServiceTel(chargingStationDto.getServiceTel());
station.setAreaCode(chargingStationDto.getAreaCode()); station.setAreaCode(chargingStationDto.getAreaCode());
station.setConstruction(chargingStationDto.getConstruction()); station.setConstruction(chargingStationDto.getConstruction());
List<EquipmentInfo> piles = getEquipmentInfos(chargingStationDto.getPiles()); List<EquipmentInfo> piles = getEquipmentInfos(chargingStationDto.getPiles());

View File

@ -7,6 +7,7 @@ import org.springframework.data.repository.query.QueryByExampleExecutor;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Optional; import java.util.Optional;
@Repository @Repository
@ -30,4 +31,6 @@ public interface AuthSecretTokenRepository extends JpaRepository<AuthSecretToken
Optional<AuthSecretToken> findByOperatorId3irdptyAndSecretTokenType(String operatorId, String secretTokenType); Optional<AuthSecretToken> findByOperatorId3irdptyAndSecretTokenType(String operatorId, String secretTokenType);
List<AuthSecretToken> findBySecretTokenType(String secretTokenType);
} }

View File

@ -7,7 +7,7 @@ import org.springframework.data.repository.query.QueryByExampleExecutor;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public interface XhpcChargingStationRepository extends JpaRepository<XhpcChargingStation, String>, public interface XhpcChargingStationRepository extends JpaRepository<XhpcChargingStation, Long>,
QueryByExampleExecutor<XhpcChargingStation>, JpaSpecificationExecutor<XhpcChargingStation> { QueryByExampleExecutor<XhpcChargingStation>, JpaSpecificationExecutor<XhpcChargingStation> {
} }

View File

@ -3,15 +3,14 @@ package com.xhpc.evcs.notification;
import com.xhpc.evcs.api.CoreDispatcher; import com.xhpc.evcs.api.CoreDispatcher;
import com.xhpc.evcs.domain.AuthSecretToken; import com.xhpc.evcs.domain.AuthSecretToken;
import com.xhpc.evcs.domain.EtOrderMapping; import com.xhpc.evcs.domain.EtOrderMapping;
import com.xhpc.evcs.domain.XhpcChargingStation;
import com.xhpc.evcs.domain.XhpcStatisticsTimeInterval; import com.xhpc.evcs.domain.XhpcStatisticsTimeInterval;
import com.xhpc.evcs.dto.CDChargeOrder4BonusInfoRes; import com.xhpc.evcs.dto.CDChargeOrder4BonusInfoRes;
import com.xhpc.evcs.dto.CDChargeOrderInfo4BonusReq; import com.xhpc.evcs.dto.CDChargeOrderInfo4BonusReq;
import com.xhpc.evcs.dto.CommonRequest; import com.xhpc.evcs.dto.CommonRequest;
import com.xhpc.evcs.dto.DTOJsonHelper; import com.xhpc.evcs.dto.DTOJsonHelper;
import com.xhpc.evcs.jpa.AuthSecretTokenRepository; import com.xhpc.evcs.jpa.*;
import com.xhpc.evcs.jpa.OrderMappingRepository; import com.xhpc.evcs.utils.DateUtil;
import com.xhpc.evcs.jpa.StatisticTimeIntervalRepository;
import com.xhpc.evcs.jpa.XhpcHistoryOrderRepository;
import com.xhpc.evcs.utils.JSONUtil; import com.xhpc.evcs.utils.JSONUtil;
import com.xhpc.order.domain.XhpcHistoryOrder; import com.xhpc.order.domain.XhpcHistoryOrder;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -25,7 +24,6 @@ import java.io.IOException;
import java.util.List; import java.util.List;
import static com.xhpc.evcs.domain.AuthSecretToken.SECRET_TOKEN_TYPE_OUT; import static com.xhpc.evcs.domain.AuthSecretToken.SECRET_TOKEN_TYPE_OUT;
import static com.xhpc.evcs.notification.NotificationEquipChargeStatusTask.transferInternetOrderNo;
@Component @Component
public class NotificationChargeOrderInfo4BonusTask extends CoreDispatcher { public class NotificationChargeOrderInfo4BonusTask extends CoreDispatcher {
@ -38,6 +36,8 @@ public class NotificationChargeOrderInfo4BonusTask extends CoreDispatcher {
private StatisticTimeIntervalRepository statisticTimeIntervalRepository; private StatisticTimeIntervalRepository statisticTimeIntervalRepository;
@Autowired @Autowired
private OrderMappingRepository orderMappingRepository; private OrderMappingRepository orderMappingRepository;
@Autowired
private XhpcChargingStationRepository chargingStationRepo;
private Logger logger = LoggerFactory.getLogger(NotificationChargeOrderInfo4BonusTask.class); private Logger logger = LoggerFactory.getLogger(NotificationChargeOrderInfo4BonusTask.class);
@Scheduled(fixedRate = 1000 * 60) @Scheduled(fixedRate = 1000 * 60)
@ -61,10 +61,15 @@ public class NotificationChargeOrderInfo4BonusTask extends CoreDispatcher {
public void notify(XhpcHistoryOrder xhpcHistoryOrder, AuthSecretToken authSecretTokenOut) throws IOException { public void notify(XhpcHistoryOrder xhpcHistoryOrder, AuthSecretToken authSecretTokenOut) throws IOException {
EtOrderMapping etOrderMapping = saveOrderMapping(xhpcHistoryOrder, orderMappingRepository); String operatorIdEvcs = xhpcHistoryOrder.getOperatorIdEvcs();
if (operatorIdEvcs == null) {
Long chargingStationId = xhpcHistoryOrder.getChargingStationId();
XhpcChargingStation station = chargingStationRepo.findById(chargingStationId).orElse(null);
operatorIdEvcs = station.getOperatorIdEvcs();
}
EtOrderMapping etOrderMapping = saveOrderMapping(xhpcHistoryOrder, orderMappingRepository, operatorIdEvcs);
CDChargeOrderInfo4BonusReq cdChargeOrderInfo4BonusReq = new CDChargeOrderInfo4BonusReq(xhpcHistoryOrder, CDChargeOrderInfo4BonusReq cdChargeOrderInfo4BonusReq = new CDChargeOrderInfo4BonusReq(xhpcHistoryOrder,
etOrderMapping); etOrderMapping);
String operatorIdEvcs = xhpcHistoryOrder.getOperatorIdEvcs();
operatorIdEvcs = operatorIdEvcs == null ? "MA6DFCTD5" : operatorIdEvcs; operatorIdEvcs = operatorIdEvcs == null ? "MA6DFCTD5" : operatorIdEvcs;
String data = JSONUtil.toJSONString(cdChargeOrderInfo4BonusReq); String data = JSONUtil.toJSONString(cdChargeOrderInfo4BonusReq);
logger.debug(data); logger.debug(data);
@ -84,30 +89,40 @@ public class NotificationChargeOrderInfo4BonusTask extends CoreDispatcher {
} }
private EtOrderMapping saveOrderMapping(XhpcHistoryOrder xhpcHistoryOrder, private EtOrderMapping saveOrderMapping(XhpcHistoryOrder xhpcHistoryOrder,
OrderMappingRepository orderMappingRepository) { OrderMappingRepository orderMappingRepository, String operatorId) {
String internetSerialNumber = xhpcHistoryOrder.getInternetSerialNumber(); String internetSerialNumber = xhpcHistoryOrder.getInternetSerialNumber();
String xhOrderNo = xhpcHistoryOrder.getSerialNumber(); String xhOrderNo = xhpcHistoryOrder.getSerialNumber();
return saveOrderMapping(xhOrderNo, internetSerialNumber, orderMappingRepository); return saveOrderMapping(xhOrderNo, internetSerialNumber, orderMappingRepository, operatorId);
} }
static EtOrderMapping saveOrderMapping(String xhOrderNo, String internetSerialNumber, public static String transferInternetOrderNo(String orderKeyOrNo, String operatorId) {
OrderMappingRepository orderMappingRepository) { // "80836000010001012110191723410021";
String orderNo = orderKeyOrNo.replace("order:", "");
return operatorId.concat(DateUtil.getYYYY()).concat(orderNo.substring(18));
}
public static EtOrderMapping saveOrderMapping(String xhOrderNo, String internetSerialNumber,
OrderMappingRepository orderMappingRepository, String operatorId) {
EtOrderMapping etOrderMapping; EtOrderMapping etOrderMapping;
if (internetSerialNumber != null) {
etOrderMapping = new EtOrderMapping();
etOrderMapping.setXhOrderNo(xhOrderNo);
etOrderMapping.setEvcsOrderNo(internetSerialNumber);
} else {
EtOrderMapping om = new EtOrderMapping(); EtOrderMapping om = new EtOrderMapping();
if (internetSerialNumber != null) {
om.setXhOrderNo(xhOrderNo);
om.setEvcsOrderNo(internetSerialNumber);
Example<EtOrderMapping> example = Example.of(om);
etOrderMapping = orderMappingRepository.findOne(example).orElse(null);
if (etOrderMapping == null) {
etOrderMapping = orderMappingRepository.save(om);
}
} else {
om.setXhOrderNo(xhOrderNo); om.setXhOrderNo(xhOrderNo);
Example<EtOrderMapping> example = Example.of(om); Example<EtOrderMapping> example = Example.of(om);
etOrderMapping = orderMappingRepository.findOne(example).orElse(null); etOrderMapping = orderMappingRepository.findOne(example).orElse(null);
if (etOrderMapping == null) { if (etOrderMapping == null) {
etOrderMapping = new EtOrderMapping(); etOrderMapping = new EtOrderMapping();
etOrderMapping.setXhOrderNo(xhOrderNo); etOrderMapping.setXhOrderNo(xhOrderNo);
etOrderMapping.setEvcsOrderNo(transferInternetOrderNo(xhOrderNo)); etOrderMapping.setEvcsOrderNo(transferInternetOrderNo(xhOrderNo, operatorId));
etOrderMapping = orderMappingRepository.save(etOrderMapping); etOrderMapping = orderMappingRepository.save(etOrderMapping);
} }
} }

View File

@ -43,12 +43,10 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher {
@Scheduled(fixedRate = 1000 * 50) @Scheduled(fixedRate = 1000 * 50)
public void run() throws IOException { public void run() throws IOException {
AuthSecretToken authSecretTokenOut = List<AuthSecretToken> authSecretTokenOutList = authSecretTokenRepository.findBySecretTokenType(SECRET_TOKEN_TYPE_OUT);
authSecretTokenRepository.findByOperatorId3irdptyAndOperatorIdAndSecretTokenType(
"765367656", "MA6DFCTD5", SECRET_TOKEN_TYPE_OUT).orElse(null); //todo
// maybe对接第三方
if (authSecretTokenOut != null) {
final Collection<String> gunkeys = REDIS.keys("gun:*"); final Collection<String> gunkeys = REDIS.keys("gun:*");
for (AuthSecretToken authSecretToken : authSecretTokenOutList) {
for (String gunkey : gunkeys) { for (String gunkey : gunkeys) {
if (!gunkey.endsWith(".seqdec") && !gunkey.endsWith(".seqhex") && !gunkey.endsWith(".hori")) { if (!gunkey.endsWith(".seqdec") && !gunkey.endsWith(".seqhex") && !gunkey.endsWith(".hori")) {
final Map<String, Object> cacheGun = REDIS.getCacheMap(gunkey); final Map<String, Object> cacheGun = REDIS.getCacheMap(gunkey);
@ -56,7 +54,7 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher {
if (isInteger(status)) { if (isInteger(status)) {
final String orderkey = cacheGun.get("orderkey").toString(); final String orderkey = cacheGun.get("orderkey").toString();
EquipChargeStatus equipChargeStatus = new EquipChargeStatus(); EquipChargeStatus equipChargeStatus = new EquipChargeStatus();
equipChargeStatus.setStartChargeSeq(transferInternetOrderNo(orderkey)); // equipChargeStatus.setStartChargeSeq(transferInternetOrderNo(orderkey)); //todo
equipChargeStatus.setStartChargeSeqStat(2); equipChargeStatus.setStartChargeSeqStat(2);
equipChargeStatus.setConnectorID(orderkey.substring(6, 22)); equipChargeStatus.setConnectorID(orderkey.substring(6, 22));
String current = REDIS.getCacheMapValue(gunkey, "current"); String current = REDIS.getCacheMapValue(gunkey, "current");
@ -75,23 +73,13 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher {
"rateModelId"); "rateModelId");
final CacheRateModel cacheRateModel = REDIS.getCacheObject("rateModel:" + rateModelId); final CacheRateModel cacheRateModel = REDIS.getCacheObject("rateModel:" + rateModelId);
calculateEm(equipChargeStatus, cacheRateModel); calculateEm(equipChargeStatus, cacheRateModel);
notify(equipChargeStatus, authSecretTokenOut); notify(equipChargeStatus, authSecretToken);
String xhOrderNo = orderkey.substring(6);
String internetSerialNumber = REDIS.getCacheMapValue(orderkey, "internetSerialNumber"); //todo set it
// in redis cache
NotificationChargeOrderInfo4BonusTask.saveOrderMapping(xhOrderNo, internetSerialNumber,
orderMappingRepository);
} }
} }
} }
} }
} }
public static String transferInternetOrderNo(String orderKeyOrNo) {
return "MA6DFCTD5".concat(DateUtil.getYYYY()).concat(orderKeyOrNo.substring(24));
}
private void calculateEm(EquipChargeStatus equipChargeStatusCD, CacheRateModel cacheRateModel) { private void calculateEm(EquipChargeStatus equipChargeStatusCD, CacheRateModel cacheRateModel) {
final Date endTime = DateUtil.string2Date(equipChargeStatusCD.getEndTime()); final Date endTime = DateUtil.string2Date(equipChargeStatusCD.getEndTime());

View File

@ -10,8 +10,6 @@ import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import static com.xhpc.evcs.notification.NotificationEquipChargeStatusTask.transferInternetOrderNo;
public class DateUtil { public class DateUtil {
public static final String DEFAULT_DATE_FORMAT = "yyyyMMddHHmmss"; public static final String DEFAULT_DATE_FORMAT = "yyyyMMddHHmmss";
@ -481,16 +479,17 @@ public class DateUtil {
} }
public static void main(String[] args) { public static void main(String[] args) {
// "80836000010001012110191723410021";
System.out.println(transferInternetOrderNo("order:69852145896548012109281708240063")); // return operatorId.concat(DateUtil.getYYYY()).concat(orderNo.substring(17));
DateUtil.isWeekend(new Date()); System.out.println("80836000010001012110191723410021".substring(18));
DateUtil.isWeekend(DateUtil.string2Date("2016-06-08", "yyyy-MM-dd")); // DateUtil.isWeekend(new Date());
DateUtil.isWeekend(DateUtil.string2Date("2016-06-09", "yyyy-MM-dd")); // DateUtil.isWeekend(DateUtil.string2Date("2016-06-08", "yyyy-MM-dd"));
DateUtil.isWeekend(DateUtil.string2Date("2016-06-10", "yyyy-MM-dd")); // DateUtil.isWeekend(DateUtil.string2Date("2016-06-09", "yyyy-MM-dd"));
DateUtil.isWeekend(DateUtil.string2Date("2016-06-11", "yyyy-MM-dd")); // DateUtil.isWeekend(DateUtil.string2Date("2016-06-10", "yyyy-MM-dd"));
DateUtil.isWeekend(DateUtil.string2Date("2016-06-12", "yyyy-MM-dd")); // DateUtil.isWeekend(DateUtil.string2Date("2016-06-11", "yyyy-MM-dd"));
DateUtil.isWeekend(DateUtil.string2Date("2016-06-13", "yyyy-MM-dd")); // DateUtil.isWeekend(DateUtil.string2Date("2016-06-12", "yyyy-MM-dd"));
DateUtil.isWeekend(DateUtil.string2Date("2016-06-14", "yyyy-MM-dd")); // DateUtil.isWeekend(DateUtil.string2Date("2016-06-13", "yyyy-MM-dd"));
// DateUtil.isWeekend(DateUtil.string2Date("2016-06-14", "yyyy-MM-dd"));
} }
} }

View File

@ -12,11 +12,22 @@ public class ChargingStationDto {
private Double lng; private Double lng;
private Integer type; private Integer type;
private Long construction; private Long construction;
private String address;
private String areaCode; private String areaCode;
private String name; private String name;
private String serviceTel; private String serviceTel;
private Integer parkNums; private Integer parkNums;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Integer getParkNums() { public Integer getParkNums() {
return parkNums; return parkNums;