liuf 6 місяців тому
батько
коміт
681092209d

+ 20 - 13
src/main/java/com/tmzn/devicelinkykc/controller/TestController.java

@@ -44,6 +44,7 @@ import org.springframework.web.bind.annotation.*;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
@@ -84,6 +85,8 @@ public class TestController {
     @Autowired
     @Autowired
     private OrderStatusService orderStatusService;
     private OrderStatusService orderStatusService;
 
 
+
+
     @Autowired
     @Autowired
     private TransMoney transMoney;
     private TransMoney transMoney;
     @PostMapping("/msg")
     @PostMapping("/msg")
@@ -102,25 +105,29 @@ public class TestController {
             QueryWrapper<OrderStatus> queryWrapper = new QueryWrapper<>();
             QueryWrapper<OrderStatus> queryWrapper = new QueryWrapper<>();
             queryWrapper.eq("id", 57303); //充电中状态上报
             queryWrapper.eq("id", 57303); //充电中状态上报
 
 
-            //查询所有充电中设备的最新的订单记录,来上报设备状态消息.........?????????????????
-            OrderStatus orderStatus = orderStatusService.getOne(queryWrapper);
 
 
-            Map<String, BigDecimal> map = transMoney.compute(orderStatus.getGunsCode(), b, orderStatus.getCreateTime(), orderStatus.getEndTime(),orderStatus);
-            logger.info(orderStatus.getPileCode() + "计算电费,{},{}," + DataConversion.bytesToHexString(orderStatus.getTransOrder()),map.get("money"),map.get("elec"));
 
 
-            byte[] params = transactionFlowPushFrame.params16(orderStatus.getTransOrder(), pileCode, orderStatus.getGunsCode(),
-                   orderStatus.getCreateTime(), orderStatus.getEndTime(), b, orderStatus.getCard(), map,0);
-            //deviceMsgHandle.testMsg(message);
 
 
-            System.out.println( DataConversion.bytesToHexString(params));
 
 
-            int frameType = DeviceSendYkc.TRANSACTION_RECORDS_REQUEST_16.getFrameType();
-            byte[] encrypt = new byte[0];
-            encrypt = params;
-            byte[] b1 = FrameDataSplicing.spliceing(0,frameType , 0, encrypt, encrypt.length,false);
+            //查询所有充电中设备的最新的订单记录,来上报设备状态消息.........?????????????????
+//            OrderStatus orderStatus = orderStatusService.getOne(queryWrapper);
+//
+//            Map<String, BigDecimal> map = transMoney.compute(orderStatus.getGunsCode(), b, orderStatus.getCreateTime(), orderStatus.getEndTime(),orderStatus);
+//            logger.info(orderStatus.getPileCode() + "计算电费,{},{}," + DataConversion.bytesToHexString(orderStatus.getTransOrder()),map.get("money"),map.get("elec"));
+//
+//            byte[] params = transactionFlowPushFrame.params16(orderStatus.getTransOrder(), pileCode, orderStatus.getGunsCode(),
+//                   orderStatus.getCreateTime(), orderStatus.getEndTime(), b, orderStatus.getCard(), map,0);
+//            //deviceMsgHandle.testMsg(message);
+//
+//            System.out.println( DataConversion.bytesToHexString(params));
+//
+//            int frameType = DeviceSendYkc.TRANSACTION_RECORDS_REQUEST_16.getFrameType();
+//            byte[] encrypt = new byte[0];
+//            encrypt = params;
+//            byte[] b1 = FrameDataSplicing.spliceing(0,frameType , 0, encrypt, encrypt.length,false);
 
 
 
 
-            System.out.println( DataConversion.bytesToHexString(b1));
+//            System.out.println( DataConversion.bytesToHexString(b1));
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
         }
         }

+ 20 - 0
src/main/java/com/tmzn/devicelinkykc/frameMsg/TransMoney.java

@@ -41,6 +41,26 @@ public class TransMoney {
     @Autowired
     @Autowired
     private BillingModelMapping billingModelMapping;
     private BillingModelMapping billingModelMapping;
 
 
+    public Map<String,BigDecimal> getTransData1(){
+        BigDecimal bigDecimal = new BigDecimal("0.0000");
+        Map<String, BigDecimal> transData = new HashMap<>();
+
+        transData.put("elec", bigDecimal);
+        transData.put("elec1", bigDecimal);
+        transData.put("elec2", bigDecimal);
+        transData.put("elec3", bigDecimal);
+        transData.put("elec4", bigDecimal);
+        transData.put("elec5", bigDecimal);
+        transData.put("money", bigDecimal);
+        transData.put("money1", bigDecimal);
+        transData.put("money2", bigDecimal);
+        transData.put("money3", bigDecimal);
+        transData.put("money4", bigDecimal);
+        transData.put("money5", bigDecimal);
+
+        return transData;
+    }
+
     public Map<String,BigDecimal> getTransData(){
     public Map<String,BigDecimal> getTransData(){
 //        BigDecimal bigDecimal = new BigDecimal("0.0000");
 //        BigDecimal bigDecimal = new BigDecimal("0.0000");
         Map<String, BigDecimal> transData = new ConcurrentHashMap<>();
         Map<String, BigDecimal> transData = new ConcurrentHashMap<>();

+ 15 - 15
src/main/java/com/tmzn/devicelinkykc/frameMsg/frameType/TransactionFlowPushFrame.java

@@ -56,21 +56,21 @@ public class TransactionFlowPushFrame {
 
 
 //    @Autowired
 //    @Autowired
 //    private SocketHandle socketHandle;
 //    private SocketHandle socketHandle;
-
-    public byte[] makeTransParams(DeviceConnectionMsg deviceConnectionMsg,byte[] transOrder, String pileCode, byte gunPort, long createTime, long endTime, BillingModel billingModel, byte[] card, Map<String, BigDecimal> map,int reason){
-
-        //1.8 4档计费
-        if(deviceConnectionMsg.getIs18()){
-            return  params(transOrder, pileCode, gunPort, createTime, endTime, billingModel, card, map,reason);
-        }
-        if(billingModel.getDeepValleyPrice().compareTo(BigDecimal.ZERO)>0 || billingModel.getDeepValleyServiceFee().compareTo(BigDecimal.ZERO)>0){
-            //深谷5档计费
-            return  paramsSg(transOrder, pileCode, gunPort, createTime, endTime, billingModel, card, map,reason);
-        }
-        //1.6 4档计费
-        return params16(transOrder, pileCode, gunPort, createTime, endTime, billingModel, card, map,reason);
-
-    }
+//
+//    public byte[] makeTransParams(DeviceConnectionMsg deviceConnectionMsg,byte[] transOrder, String pileCode, byte gunPort, long createTime, long endTime, BillingModel billingModel, byte[] card, Map<String, BigDecimal> map,int reason){
+//
+//        //1.8 4档计费
+//        if(deviceConnectionMsg.getIs18()){
+//            return  params(transOrder, pileCode, gunPort, createTime, endTime, billingModel, card, map,reason);
+//        }
+//        if(billingModel.getDeepValleyPrice().compareTo(BigDecimal.ZERO)>0 || billingModel.getDeepValleyServiceFee().compareTo(BigDecimal.ZERO)>0){
+//            //深谷5档计费
+//            return  paramsSg(transOrder, pileCode, gunPort, createTime, endTime, billingModel, card, map,reason);
+//        }
+//        //1.6 4档计费
+//        return params16(transOrder, pileCode, gunPort, createTime, endTime, billingModel, card, map,reason);
+//
+//    }
 
 
 
 
     public byte[] sendTrans(DeviceConnectionMsg deviceConnectionMsg,byte[] transOrder, String pileCode, byte gunPort, long createTime, long endTime, BillingModel billingModel, byte[] card, Map<String, BigDecimal> map,int reason)  {
     public byte[] sendTrans(DeviceConnectionMsg deviceConnectionMsg,byte[] transOrder, String pileCode, byte gunPort, long createTime, long endTime, BillingModel billingModel, byte[] card, Map<String, BigDecimal> map,int reason)  {

+ 2 - 1
src/main/java/com/tmzn/devicelinkykc/taskQueue/runner/MsgCharngingRunner.java

@@ -266,7 +266,8 @@ public class MsgCharngingRunner {
 
 
         String transCacheKey = "ChargingTrans:"+orderStatus.getId();
         String transCacheKey = "ChargingTrans:"+orderStatus.getId();
         if(redisCache.hasKey(transCacheKey)){
         if(redisCache.hasKey(transCacheKey)){
-            start = redisCache.getCacheObject(transCacheKey);
+            Map<String, BigDecimal> cached = redisCache.getCacheObject(transCacheKey);
+            start = new HashMap<>(cached);
         }else{
         }else{
             //缓存120秒避免重复计算电量
             //缓存120秒避免重复计算电量
             try {
             try {