query_equip_business_policy接口开发部分完成
This commit is contained in:
parent
24d978b6f3
commit
8c873b1722
@ -1,19 +1,22 @@
|
|||||||
package com.xhpc.evcs.api;
|
package com.xhpc.evcs.api;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.xhpc.common.data.redis.CacheRateModel;
|
import com.xhpc.common.data.redis.CacheRateModel;
|
||||||
|
import com.xhpc.evcs.dto.CommonResponse;
|
||||||
import com.xhpc.evcs.dto.EquipBizRequest;
|
import com.xhpc.evcs.dto.EquipBizRequest;
|
||||||
import com.xhpc.evcs.dto.EquipBizResponse;
|
import com.xhpc.evcs.dto.EquipBizResponse;
|
||||||
import com.xhpc.evcs.dto.PolicyInfos;
|
import com.xhpc.evcs.dto.PolicyInfos;
|
||||||
import com.xhpc.evcs.jpa.XhpcTerminalRepository;
|
import com.xhpc.evcs.jpa.XhpcTerminalRepository;
|
||||||
|
import com.xhpc.evcs.utils.JSONUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS;
|
import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS;
|
||||||
@ -26,7 +29,7 @@ public class QueryEquipBusinessPolicyController {
|
|||||||
private XhpcTerminalRepository xhpcTerminalRepository;
|
private XhpcTerminalRepository xhpcTerminalRepository;
|
||||||
|
|
||||||
@PostMapping("/v1/query_equip_business_policy")
|
@PostMapping("/v1/query_equip_business_policy")
|
||||||
public EquipBizResponse queryEquipBusinessPolicy(@RequestBody EquipBizRequest equipBizRequest) {
|
public CommonResponse queryEquipBusinessPolicy(@RequestBody EquipBizRequest equipBizRequest) throws JsonProcessingException {
|
||||||
//获取充电设备接口编码(枪编码)
|
//获取充电设备接口编码(枪编码)
|
||||||
String connectorId = equipBizRequest.getConnectorId();
|
String connectorId = equipBizRequest.getConnectorId();
|
||||||
//获取枪所对应的桩编码
|
//获取枪所对应的桩编码
|
||||||
@ -44,6 +47,8 @@ public class QueryEquipBusinessPolicyController {
|
|||||||
ArrayList<String> modelTypes = new ArrayList<>();
|
ArrayList<String> modelTypes = new ArrayList<>();
|
||||||
//存储时段个数
|
//存储时段个数
|
||||||
ArrayList<Integer> modelCount = new ArrayList<>();
|
ArrayList<Integer> modelCount = new ArrayList<>();
|
||||||
|
//建立对应时段的映射Map集合,存放其对应的价格和服务费
|
||||||
|
Map<String, Object> timeMap = new HashMap<>();
|
||||||
//个数计数器
|
//个数计数器
|
||||||
int count = 0;
|
int count = 0;
|
||||||
//最后一个时段的前一个时段的下标索引
|
//最后一个时段的前一个时段的下标索引
|
||||||
@ -99,83 +104,52 @@ public class QueryEquipBusinessPolicyController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PolicyInfos[] policyInfosArr = new PolicyInfos[timeList.size()];
|
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 policyInfos = new PolicyInfos();
|
||||||
policyInfos.setStartTime(timeList.get(i));
|
policyInfos.setStartTime(timeList.get(i));
|
||||||
//todo 明天继续
|
String modelType = modelTypes.get(i);
|
||||||
policyInfos.setServicePrice(0);
|
switch (modelType) {
|
||||||
policyInfos.setElecPrice(0);
|
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;
|
||||||
EquipBizResponse equipBizResponse = new EquipBizResponse();
|
case "01":
|
||||||
//总时段数
|
policyInfos.setServicePrice(BigDecimal.valueOf((long) rateModel.getT2SvcPrice()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue());
|
||||||
equipBizResponse.setSumPeriod(modelTypes.size());
|
policyInfos.setElecPrice(BigDecimal.valueOf((long) rateModel.getT2Price()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue());
|
||||||
|
break;
|
||||||
|
case "02":
|
||||||
return equipBizResponse;
|
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;
|
||||||
public EquipBizResponse load(String[] arr,EquipBizRequest equipBizRequest) {
|
case "03":
|
||||||
Map<String, String> priceMap = new HashMap<>();
|
policyInfos.setServicePrice(BigDecimal.valueOf((long) rateModel.getT4SvcPrice()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue());
|
||||||
Map<String, String> svcPriceMap = new HashMap<>();
|
policyInfos.setElecPrice(BigDecimal.valueOf((long) rateModel.getT4Price()).divide(BigDecimal.valueOf(100000L)).setScale(4).doubleValue());
|
||||||
String[] keys = {"01","02","03","04"};
|
break;
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
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 equipBizResponse = new EquipBizResponse();
|
||||||
|
//业务查询流水号
|
||||||
equipBizResponse.setEquipBizSeq(equipBizRequest.getEquipBizSeq());
|
equipBizResponse.setEquipBizSeq(equipBizRequest.getEquipBizSeq());
|
||||||
equipBizResponse.setConnectorId(equipBizRequest.getConnectorId());
|
//充电设备接口编码
|
||||||
|
equipBizResponse.setConnectorId(connectorId);
|
||||||
|
//操作结果
|
||||||
equipBizResponse.setSuccStat(0);
|
equipBizResponse.setSuccStat(0);
|
||||||
|
//失败原因
|
||||||
equipBizResponse.setFailReason(0);
|
equipBizResponse.setFailReason(0);
|
||||||
equipBizResponse.setSumPeriod(3);
|
//总时段数
|
||||||
equipBizResponse.setPolicyInfos(repsData);
|
equipBizResponse.setSumPeriod(modelTypes.size());
|
||||||
|
//计费信息
|
||||||
return equipBizResponse;
|
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