This commit is contained in:
Lemon
2024-07-09 14:14:17 +08:00
13 changed files with 150 additions and 39 deletions

View File

@@ -26,5 +26,7 @@ public class AlipayLoginDTO extends BaseDTO{
private String openId;
private String userId;
private String mobileNumber;
}

View File

@@ -26,4 +26,6 @@ public interface PersonalChargingRecordMapper {
int updateBatchSelective(List<PersonalChargingRecord> list);
int batchInsert(@Param("list") List<PersonalChargingRecord> list);
PersonalChargingRecord selectByTransactionCode(String transactionCode);
}

View File

@@ -1,6 +1,8 @@
package com.jsowell.pile.service;
import java.util.List;
import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.pile.domain.PersonalChargingRecord;
public interface PersonalChargingRecordService{
@@ -27,4 +29,10 @@ public interface PersonalChargingRecordService{
int batchInsert(List<PersonalChargingRecord> list);
/**
* 处理个人桩充电记录
*
* @param data
*/
void processPersonalChargingRecord(TransactionRecordsData data);
}

View File

@@ -1,7 +1,14 @@
package com.jsowell.pile.service.impl;
import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.common.util.Cp56Time2a.Cp56Time2aUtil;
import com.jsowell.common.util.DateUtils;
import com.jsowell.pile.domain.PileBasicInfo;
import com.jsowell.pile.service.PileBasicInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;
import com.jsowell.pile.mapper.PersonalChargingRecordMapper;
import com.jsowell.pile.domain.PersonalChargingRecord;
@@ -12,6 +19,9 @@ public class PersonalChargingRecordServiceImpl implements PersonalChargingRecord
@Resource
private PersonalChargingRecordMapper personalChargingRecordMapper;
@Autowired
private PileBasicInfoService pileBasicInfoService;
@Override
public int deleteByPrimaryKey(Integer id) {
return personalChargingRecordMapper.deleteByPrimaryKey(id);
@@ -42,6 +52,10 @@ public class PersonalChargingRecordServiceImpl implements PersonalChargingRecord
return personalChargingRecordMapper.selectByPrimaryKey(id);
}
public PersonalChargingRecord selectByTransactionCode(String transactionCode) {
return personalChargingRecordMapper.selectByTransactionCode(transactionCode);
}
@Override
public int updateByPrimaryKeySelective(PersonalChargingRecord record) {
return personalChargingRecordMapper.updateByPrimaryKeySelective(record);
@@ -67,4 +81,56 @@ public class PersonalChargingRecordServiceImpl implements PersonalChargingRecord
return personalChargingRecordMapper.batchInsert(list);
}
/**
* 处理个人桩充电记录
*
* @param data
*/
@Override
public void processPersonalChargingRecord(TransactionRecordsData data) {
// 根据交易流水号查询,如果数据库没有就入库
String transactionCode = data.getTransactionCode();
PersonalChargingRecord chargingRecord = this.selectByTransactionCode(transactionCode);
if (chargingRecord == null) {
// 为空,数据保存到数据库
chargingRecord = new PersonalChargingRecord();
}
PileBasicInfo pileBasicInfo = pileBasicInfoService.selectPileBasicInfoBySN(data.getPileSn());
// 处理数据
chargingRecord.setTransactionCode(transactionCode);
chargingRecord.setStatus("6");
chargingRecord.setMemberId("");
chargingRecord.setStationId(pileBasicInfo.getStationId() + "");
chargingRecord.setMerchantId(pileBasicInfo.getMerchantId() + "");
chargingRecord.setPileSn(data.getPileSn());
chargingRecord.setConnectorCode(data.getConnectorCode());
chargingRecord.setPileConnectorCode(chargingRecord.getPileSn() + chargingRecord.getConnectorCode());
chargingRecord.setLogicCard(data.getLogicCard());
chargingRecord.setVinCode(data.getVinCode());
chargingRecord.setStartMode("");
chargingRecord.setPlateNumber("");
chargingRecord.setChargeStartTime(DateUtils.parseDate(data.getStartTime()));
chargingRecord.setChargeEndTime(DateUtils.parseDate(data.getEndTime()));
chargingRecord.setStartType(null);
chargingRecord.setReservationStartTime(null);
chargingRecord.setReservationEndTime(null);
chargingRecord.setStartSoc(null);
chargingRecord.setEndSoc(null);
BigDecimal sharpUsedElectricity = new BigDecimal(data.getSharpUsedElectricity());
chargingRecord.setSharpUsedElectricity(sharpUsedElectricity);
BigDecimal peakUsedElectricity = new BigDecimal(data.getPeakUsedElectricity());
chargingRecord.setPeakUsedElectricity(peakUsedElectricity);
BigDecimal flatUsedElectricity = new BigDecimal(data.getFlatUsedElectricity());
chargingRecord.setFlatUsedElectricity(flatUsedElectricity);
BigDecimal valleyUsedElectricity = new BigDecimal(data.getValleyUsedElectricity());
chargingRecord.setValleyUsedElectricity(valleyUsedElectricity);
BigDecimal totalUsedElectricity = sharpUsedElectricity.add(peakUsedElectricity).add(flatUsedElectricity).add(valleyUsedElectricity);
chargingRecord.setTotalUsedElectricity(totalUsedElectricity);
chargingRecord.setReason(data.getStopReasonMsg());
// 创建或更新
personalChargingRecordMapper.insertOrUpdateSelective(chargingRecord);
}
}

View File

@@ -15,6 +15,7 @@ import com.jsowell.pile.service.PileBasicInfoService;
import com.jsowell.pile.service.PileRemoteService;
import com.jsowell.pile.vo.uniapp.MemberPlateNumberVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -111,6 +112,12 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic
*/
@Override
public void activateReserved(PileReservationDTO dto) {
// 查询其他生效中的预约
List<PileReservationInfo> infoList = pileReservationInfoMapper.findByMemberIdAndPileSnAndStatus(dto.getMemberId(), dto.getPileSn(), "1");
if (CollectionUtils.isNotEmpty(infoList)) {
throw new BusinessException(ReturnCodeEnum.CODE_RESERVATION_ALREADY_EXISTS_ERROR);
}
PileReservationInfo pileReservationInfo = pileReservationInfoMapper.selectByPrimaryKey(Integer.parseInt(dto.getReservedId()));
if (pileReservationInfo == null) {
return;
@@ -184,7 +191,7 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic
}
// 如果 vinCodes 的数量少于 3用 "0" 补足
while (vinCodes.size() < 3) {
vinCodes.add("0");
vinCodes.add("");
}
String type = StringUtils.equals(pileReservationInfo.getReservationType(), "single") ? "00" : "01";

View File

@@ -508,24 +508,15 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService {
// VIN1
String vin1 = command.getVin1();
if (StringUtils.isBlank(vin1)) {
vin1 = Constants.ZERO;
}
byte[] vin1ByteArr = BytesUtil.str2Bcd(vin1);
byte[] vin1ByteArr = BytesUtil.str2Asc(vin1);
vin1ByteArr = BytesUtil.ensureLength(vin1ByteArr, 17);
String vin2 = command.getVin2();
if (StringUtils.isBlank(vin2)) {
vin2 = Constants.ZERO;
}
byte[] vin2ByteArr = BytesUtil.str2Bcd(vin2);
byte[] vin2ByteArr = BytesUtil.str2Asc(vin2);
vin2ByteArr = BytesUtil.ensureLength(vin2ByteArr, 17);
String vin3 = command.getVin3();
if (StringUtils.isBlank(vin3)) {
vin3 = Constants.ZERO;
}
byte[] vin3ByteArr = BytesUtil.str2Bcd(vin3);
byte[] vin3ByteArr = BytesUtil.str2Asc(vin3);
vin3ByteArr = BytesUtil.ensureLength(vin3ByteArr, 17);
// 开始时间

View File

@@ -1212,4 +1212,12 @@
</if>
</trim>
</insert>
<select id="selectByTransactionCode" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from personal_charging_record
where del_flag = '0'
and transaction_code = #{transactionCode,jdbcType=VARCHAR}
</select>
</mapper>