query_equip_business_policy接口开发部分完成
This commit is contained in:
parent
24d978b6f3
commit
8c873b1722
@ -1,19 +1,22 @@
|
||||
package com.xhpc.evcs.api;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.xhpc.common.data.redis.CacheRateModel;
|
||||
import com.xhpc.evcs.dto.CommonResponse;
|
||||
import com.xhpc.evcs.dto.EquipBizRequest;
|
||||
import com.xhpc.evcs.dto.EquipBizResponse;
|
||||
import com.xhpc.evcs.dto.PolicyInfos;
|
||||
import com.xhpc.evcs.jpa.XhpcTerminalRepository;
|
||||
import com.xhpc.evcs.utils.JSONUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS;
|
||||
@ -26,7 +29,7 @@ public class QueryEquipBusinessPolicyController {
|
||||
private XhpcTerminalRepository xhpcTerminalRepository;
|
||||
|
||||
@PostMapping("/v1/query_equip_business_policy")
|
||||
public EquipBizResponse queryEquipBusinessPolicy(@RequestBody EquipBizRequest equipBizRequest) {
|
||||
public CommonResponse queryEquipBusinessPolicy(@RequestBody EquipBizRequest equipBizRequest) throws JsonProcessingException {
|
||||
//获取充电设备接口编码(枪编码)
|
||||
String connectorId = equipBizRequest.getConnectorId();
|
||||
//获取枪所对应的桩编码
|
||||
@ -44,6 +47,8 @@ public class QueryEquipBusinessPolicyController {
|
||||
ArrayList<String> modelTypes = new ArrayList<>();
|
||||
//存储时段个数
|
||||
ArrayList<Integer> modelCount = new ArrayList<>();
|
||||
//建立对应时段的映射Map集合,存放其对应的价格和服务费
|
||||
Map<String, Object> timeMap = new HashMap<>();
|
||||
//个数计数器
|
||||
int count = 0;
|
||||
//最后一个时段的前一个时段的下标索引
|
||||
@ -99,83 +104,52 @@ public class QueryEquipBusinessPolicyController {
|
||||
}
|
||||
|
||||
PolicyInfos[] policyInfosArr = new PolicyInfos[timeList.size()];
|
||||
for (int i = 0; i < timeList.size() - 1; i++) {
|
||||
for (int i = 0; i <= timeList.size() - 1; i++) {
|
||||
PolicyInfos policyInfos = new PolicyInfos();
|
||||
policyInfos.setStartTime(timeList.get(i));
|
||||
//todo 明天继续
|
||||
policyInfos.setServicePrice(0);
|
||||
policyInfos.setElecPrice(0);
|
||||
}
|
||||
|
||||
|
||||
EquipBizResponse equipBizResponse = new EquipBizResponse();
|
||||
//总时段数
|
||||
equipBizResponse.setSumPeriod(modelTypes.size());
|
||||
|
||||
|
||||
return equipBizResponse;
|
||||
}
|
||||
|
||||
public EquipBizResponse load(String[] arr,EquipBizRequest equipBizRequest) {
|
||||
Map<String, String> priceMap = new HashMap<>();
|
||||
Map<String, String> svcPriceMap = new HashMap<>();
|
||||
String[] keys = {"01","02","03","04"};
|
||||
String[] values1 = {"t1Price","t2Price","t3Price","t4Price"};
|
||||
String[] values2 = {"t1SvcPrice","t2SvcPrice","t3SvcPrice","t4SvcPrice"};
|
||||
for(int i = 0; i < keys.length; i ++){
|
||||
priceMap.put(keys[i],values1[i]);
|
||||
svcPriceMap.put(keys[i],values2[i]);
|
||||
}
|
||||
List<String> timeSigns = new ArrayList<>();
|
||||
List<Integer> locations = new ArrayList<>();
|
||||
for (int i = 0; i < arr.length - 1; i++) {
|
||||
if (arr[i].equals(arr[i + 1])) {
|
||||
timeSigns.add(arr[i]);
|
||||
locations.add(i);
|
||||
String modelType = modelTypes.get(i);
|
||||
switch (modelType) {
|
||||
case "00":
|
||||
policyInfos.setServicePrice(BigDecimal.valueOf((long) rateModel.getT1SvcPrice()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue());
|
||||
policyInfos.setElecPrice(BigDecimal.valueOf((long) rateModel.getT1Price()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue());
|
||||
break;
|
||||
case "01":
|
||||
policyInfos.setServicePrice(BigDecimal.valueOf((long) rateModel.getT2SvcPrice()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue());
|
||||
policyInfos.setElecPrice(BigDecimal.valueOf((long) rateModel.getT2Price()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue());
|
||||
break;
|
||||
case "02":
|
||||
policyInfos.setServicePrice(BigDecimal.valueOf((long) rateModel.getT3SvcPrice()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue());
|
||||
policyInfos.setElecPrice(BigDecimal.valueOf((long) rateModel.getT3Price()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue());
|
||||
break;
|
||||
case "03":
|
||||
policyInfos.setServicePrice(BigDecimal.valueOf((long) rateModel.getT4SvcPrice()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue());
|
||||
policyInfos.setElecPrice(BigDecimal.valueOf((long) rateModel.getT4Price()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue());
|
||||
break;
|
||||
}
|
||||
policyInfosArr[i] = policyInfos;
|
||||
}
|
||||
timeSigns.add(arr[arr.length - 1]);
|
||||
locations.add(arr.length - 1);
|
||||
List<Integer> time = new ArrayList<>();
|
||||
time.add(0);
|
||||
time.add(locations.get(0));
|
||||
for (int i = 1; i < locations.size(); i++) {
|
||||
time.add(locations.get(i - 1));
|
||||
time.add(locations.get(i));
|
||||
}
|
||||
List<Integer> startTimes = new ArrayList<>();
|
||||
List<Double> priceResult = new ArrayList<>();
|
||||
List<Double> svcPriceResult = new ArrayList<>();
|
||||
for(int i = 0, j = 0; i < locations.size(); i += 2, j ++){
|
||||
priceResult.add(REDIS.getCacheObject(priceMap.get(timeSigns.get(j))));
|
||||
svcPriceResult.add(REDIS.getCacheObject(svcPriceMap.get(timeSigns.get(j))));
|
||||
startTimes.add((int) (i * 10000 * 0.5));
|
||||
}
|
||||
PolicyInfos[] repsData = new PolicyInfos[startTimes.size()];
|
||||
for(int i = 0; i < startTimes.size(); i ++){
|
||||
PolicyInfos policyInfos = new PolicyInfos();
|
||||
policyInfos.setStartTime(String.valueOf(startTimes.get(i)));
|
||||
policyInfos.setElecPrice(priceResult.get(i));
|
||||
policyInfos.setServicePrice(svcPriceResult.get(i));
|
||||
repsData[i] = policyInfos;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//封装数据
|
||||
EquipBizResponse equipBizResponse = new EquipBizResponse();
|
||||
//业务查询流水号
|
||||
equipBizResponse.setEquipBizSeq(equipBizRequest.getEquipBizSeq());
|
||||
equipBizResponse.setConnectorId(equipBizRequest.getConnectorId());
|
||||
//充电设备接口编码
|
||||
equipBizResponse.setConnectorId(connectorId);
|
||||
//操作结果
|
||||
equipBizResponse.setSuccStat(0);
|
||||
//失败原因
|
||||
equipBizResponse.setFailReason(0);
|
||||
equipBizResponse.setSumPeriod(3);
|
||||
equipBizResponse.setPolicyInfos(repsData);
|
||||
|
||||
return equipBizResponse;
|
||||
|
||||
|
||||
//总时段数
|
||||
equipBizResponse.setSumPeriod(modelTypes.size());
|
||||
//计费信息
|
||||
equipBizResponse.setPolicyInfos(policyInfosArr);
|
||||
|
||||
//塞入包装类
|
||||
CommonResponse commonResponse = new CommonResponse();
|
||||
commonResponse.setMsg("请求查询业务策略成功");
|
||||
commonResponse.setRet("0");
|
||||
commonResponse.setData(JSONUtil.toJSONString(equipBizResponse));
|
||||
|
||||
return commonResponse;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user