From 9ce1d4794c85aba5f2407dbb70a3f7d591d6e4db Mon Sep 17 00:00:00 2001 From: "2265829957@qq.com" <2265829957@qq.com> Date: Mon, 22 Dec 2025 09:40:14 +0800 Subject: [PATCH] =?UTF-8?q?2016=E5=B9=B4=E6=96=B0=E7=89=88=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xhpc/evcs/dto/StationInfoXinDianTu.java | 6 + .../evcs/api/CheckChargeOrderController.java | 44 +- .../evcs/api/QueryStationsInfoController.java | 35 +- .../CDConnectorChargeStatusInfoTask.java | 14 +- .../CDNotificationChargeOrderInfoTask.java | 709 ++++++++++++++++- .../CDNotificationOrderInfoTask.java | 4 +- .../CDNotificationStationFeeTask.java | 2 +- .../CDNotificationStationInfoTask.java | 2 +- .../evcs/jpa/XhpcHistoryOrderRepository.java | 5 + .../NotificationChargeOrderInfoTask.java | 714 +++++++++++++++++- .../xhpc/auth/controller/TokenController.java | 4 +- .../com/xhpc/system/task/XhpcTenantTask.java | 2 +- .../XhpcClearingCheckoutController.java | 3 + .../XhpcClearingHistoryOrderDomain.java | 6 +- .../service/XhpcClearingCheckoutService.java | 3 +- .../service/impl/WorkOrderServiceImpl.java | 2 +- .../impl/XhpcClearingBankServiceImpl.java | 2 +- .../impl/XhpcClearingCheckoutServiceImpl.java | 14 +- .../mapper/XhpcClearingHistoryOrderMapper.xml | 17 +- .../mapper/XhpcHistoryOrderMapper.xml | 2 +- .../impl/AnalyzeTheMessageServiceImpl.java | 30 +- .../XhpcChargingStationController.java | 8 +- .../mapper/XhpcChargingStationMapper.java | 3 + .../service/IXhpcChargingStationService.java | 2 + .../XhpcChargingStationServiceImpl.java | 52 +- .../service/XhpcPlaceholderServiceImpl.java | 6 +- .../XhpcTimingChargingModelServiceImpl.java | 24 +- .../src/main/resources/bootstrap.yml | 20 +- .../mapper/XhpcChargingStationMapper.xml | 42 ++ .../common/api/ChargingStationService.java | 4 + .../common/api/dto/ChargingStationDto.java | 12 + .../api/dto/XhpcChargingStationDto.java | 6 +- ...eTimeDto.java => XhpcRateTimeDtoYang.java} | 9 +- .../api/dto/XhpcTimingChargingModelDto.java | 2 +- .../ChargingStationServiceFactory.java | 5 + .../com/xhpc/common/dto/XhpcRateTimeDto.java | 75 ++ .../order/domain/XhpcPlaceholderOrder.java | 3 + .../xhpc/general/constant/AliyunTemplate.java | 6 +- .../constant/AliyunTemplateKeyWord.java | 7 +- .../general/controller/XhpcSmsController.java | 2 +- .../general/service/XhpcSmsServiceImpl.java | 4 +- .../com/xhpc/general/util/sms/SmsUtil.java | 2 +- xhpc-modules/xhpc-order/pom.xml | 7 - .../order/api/XhpcPileOrderController.java | 59 ++ .../XhpcHistoryOrderController.java | 12 +- .../XhpcPileRegularInspectController.java | 2 +- .../XhpcPlaceholderOrderController.java | 65 +- .../domain/XhpcHistoryOrderChargeDetails.java | 47 ++ .../com/xhpc/order/dto/FeeDifferenceDto.java | 28 + .../com/xhpc/order/dto/MergedOrderDto.java | 53 ++ .../com/xhpc/order/dto/PositionFeeDto.java | 27 + .../xhpc/order/dto/XhpcHistoryOrderDto.java | 50 ++ .../xhpc/order/dto/XhpcHistoryOrderYuDto.java | 32 + .../com/xhpc/order/dto/XhpcRateTimeYuDto.java | 71 ++ .../XhpcChargingStationPowerMapper.java | 2 +- .../order/mapper/XhpcHistoryOrderMapper.java | 9 +- .../mapper/XhpcPlaceholderOrderMapper.java | 18 + .../order/mapper/XhpcRealTimeOrderMapper.java | 10 +- .../service/IXhpcHistoryOrderService.java | 6 + .../service/IXhpcPlaceholderOrderService.java | 14 +- .../service/IXhpcRealTimeOrderService.java | 2 + .../impl/XhpcChargeOrderServiceImpl.java | 29 +- .../XhpcChargingStationPowerServiceImpl.java | 3 +- .../impl/XhpcHistoryOrderServiceImpl.java | 55 +- .../XhpcPileRegularInspectServiceImpl.java | 8 +- .../impl/XhpcPlaceholderOrderServiceImpl.java | 249 +++++- .../impl/XhpcRealTimeOrderServiceImpl.java | 690 ++++++++++++++++- .../impl/XhpcStatisticsServiceImpl.java | 2 +- .../com/xhpc/order/tasks/ScheduledTasks.java | 15 +- .../mapper/XhpcChargingStationPowerMapper.xml | 2 +- .../mapper/XhpcHistoryOrderMapper.xml | 115 +++ .../mapper/XhpcPileRegularInspectMapper.xml | 7 +- .../mapper/XhpcPlaceholderOrderMapper.xml | 225 +++++- .../mapper/XhpcRealTimeOrderMapper.xml | 172 ++++- .../controller/AlipayPaymentController.java | 11 + .../controller/WxPaymentController.java | 10 + .../controller/XhpcRefundOrderController.java | 27 + .../payment/mapper/XhpcRefundOrderMapper.java | 2 + .../service/IXhpcRefundOrderService.java | 3 + .../impl/XhpcRefundOrderServiceImpl.java | 5 + .../mapper/XhpcRefundOrderMapper.xml | 17 +- .../logic/RateModelConfigReplyDataLogic.java | 18 +- .../xhpc/pp/logic/RateModelRequestLogic.java | 14 +- .../xhpc/pp/logic/RateModelValidateLogic.java | 31 +- .../user/api/XhpcInvoiceApiController.java | 6 +- .../controller/XhpcAppUserController.java | 8 - .../user/domain/InvoicedOrdersRequest.java | 2 + .../service/impl/XhpcInvoiceServiceImpl.java | 20 +- .../resources/mapper/XhpcCommonMapper.xml | 2 + .../mapper/XhpcHistoryOrderMapper.xml | 25 +- .../XhpcInvoiceMapHistoryOrderMapper.xml | 4 +- .../XhpcStationInternetBlacklistMapper.xml | 2 +- 92 files changed, 3859 insertions(+), 348 deletions(-) rename xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/{XhpcRateTimeDto.java => XhpcRateTimeDtoYang.java} (89%) create mode 100644 xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/dto/XhpcRateTimeDto.java create mode 100644 xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcHistoryOrderChargeDetails.java create mode 100644 xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/FeeDifferenceDto.java create mode 100644 xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/MergedOrderDto.java create mode 100644 xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/PositionFeeDto.java create mode 100644 xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcHistoryOrderDto.java create mode 100644 xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcHistoryOrderYuDto.java create mode 100644 xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcRateTimeYuDto.java diff --git a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationInfoXinDianTu.java b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationInfoXinDianTu.java index 03d468cc..03c70d18 100644 --- a/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationInfoXinDianTu.java +++ b/evcs-modules/evcs-common/src/main/java/com/xhpc/evcs/dto/StationInfoXinDianTu.java @@ -5,6 +5,7 @@ import lombok.Getter; import lombok.Setter; import javax.persistence.Transient; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -34,6 +35,7 @@ import java.util.Map; "ServiceFee", "ParkFee", "Payment", + "Pictures", "SupportOrder", "OvertimeFee", "EquipmentInfos" @@ -87,6 +89,9 @@ public class StationInfoXinDianTu extends CommonStationInfo{ @JsonProperty("Payment") public String payment; @Transient + @JsonProperty("Pictures") + public String [] pictures; + @Transient @JsonProperty("SupportOrder") public Long supportOrder; @Transient @@ -128,6 +133,7 @@ public class StationInfoXinDianTu extends CommonStationInfo{ ", serviceFee='" + serviceFee + '\'' + ", parkFee='" + parkFee + '\'' + ", payment='" + payment + '\'' + + ", pictures=" + Arrays.toString(pictures) + ", supportOrder=" + supportOrder + ", incrementExplain='" + incrementExplain + '\'' + ", equipmentInfos=" + equipmentInfos + diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/CheckChargeOrderController.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/CheckChargeOrderController.java index 4cf46e91..71a9ad4e 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/CheckChargeOrderController.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/CheckChargeOrderController.java @@ -115,8 +115,8 @@ public class CheckChargeOrderController { CommonRequest pageRequest = new CommonRequest<>(); PageRequest pageRequest1 = new PageRequest(); pageRequest1.setPageNo(1); - pageRequest1.setPageSize(10); - //pageRequest1.setStationID("4"); + pageRequest1.setPageSize(20); + pageRequest1.setStationID("17"); // CommonRequest commonRequest =new CommonRequest<>(); @@ -127,34 +127,36 @@ public class CheckChargeOrderController { // stationIDs[0] ="4"; // xdtPlaceholderRules.setStationIDs(stationIDs); - String data = JSONUtil.toJSONString(pageRequest1); + String data = JSONUtil.toJSONString(pageRequest1); pageRequest.setData(data); pageRequest.setOperatorId("MA25CNM38"); String dataYu = encryptReqOut("8LpncubmWiPCzY3V", "av6A8QdnRaVRMXu6", "wAeYIVQUwd0iGZsV", pageRequest); - +// System.out.println("=====加密====sss==============="+dataYu); - CommonRequest commonRequestYu = new CommonRequest<>(); - TokenRequest tokenRequest = new TokenRequest(); - tokenRequest.setOperatorId("MA6DFCTD5"); - tokenRequest.setOperatorSecret("4t8jr80mrjjt2y7f"); - String data1 = JSONUtil.toJSONString(tokenRequest); - commonRequestYu.setData(data1); - commonRequestYu.setOperatorId("MA6DFCTD5"); +// CommonRequest commonRequestYu = new CommonRequest<>(); +// TokenRequest tokenRequest = new TokenRequest(); +// tokenRequest.setOperatorId("MA7D6FPW6"); +// tokenRequest.setOperatorSecret("3bde18024f79bc00"); +// String data1 = JSONUtil.toJSONString(tokenRequest); +// commonRequestYu.setData(data1); +// commonRequestYu.setOperatorId("MA7D6FPW6"); +// +// String s = encryptReqOut("cf01fd70432aa15a", "4ad3dcd3430aaf86", "Ut5UFdqDthiJyncU", commonRequestYu); +// +// System.out.println("==========sss==============="+s); - String s = encryptReqOut("ojs67l46z3f7rhok", "tet9swfkyojkhaos", "75ghv1ie1zzex31s", commonRequestYu); - - System.out.println("==========sss==============="+s); - - String date= "NR0oe4La+0SLizVoKCDfRkj37avo59qzZBUm7BFSmU+XA81uaP2614Vjbb7VvhRRumS4LwHu6CR981cKMxNM58PsrFaah38Wb2hE6dIuVR+14VnNeB2eUc0IBLWTSrQ3Je4nWr/YDtOAjFpetTxJ1OFFy7QK6Yf9T0lWshTt+MSdhVaATWW19kQbFPMVXJJZlWKUf6jkXVvX+CXF/Gsn/Al0xF/eURQ5UiYE3bSdMdoqMydnac7tqsMOEAoxwGM19oqmoxopgsW5CIz+TCZytIO0bHUVCGjKjX5PY9y7QyP+uoRlodIas1yIdanL8OXsI2mNAf3rc2Rp/qwI1FL/UxJfWeezbHX3+M0yE4Xrif/yqKeTofrvC4Ad6ma6r6v0VGCJBQxOFOaTm2pACM/fX9LCRz1Rc3v+ornDU8laXRFmBpyYltj9mq4bKIXJc0+/2FTJwrryO5zLRO2VTqSIjOTdhn7dgqwvPWpOTRJoBwOjAXDtSGCTNzu4o21+eh00umMa1iuVyXdgQvmzD58EtNHhwgtDuU5GFJTWQst0gVTlhJUMJvppGnnce/6j46z/0ZGivaVhHbUtx0d4F5oclyCFiBglF2LuPfMZTrqrO02ofY61kIPiT03AzBgK2RCazNkY1dAjpu9iRDTXiwW3oN7N6Pf0IX4r0ANKy8xGL4qqPLaACKinXF07CESHVmaLaHWe5FYmChg/ltMlEzbVWfuPsiBNy6X3l2h+fWWyElp6txWiC8EDbN6RMXOmDEQXuMVKrqAfFjCv2MPMGwrNuSLG/icUHQMBC6xyvBYpN5gmSIcTN9HbVLzr84w/88CxmYFp+zkdTvmq3enbnU5HCrStnqmWkzFHCHp4S6h44n2jLZgckGqufzSijwp6OnQFUs/b0pvw+MRqlyYG+gomiXxBMXWJtuWbMKeOKAtZgqDBly+sRYY2wzCOVY/kOa72zc+bTmtSXHxwMKGWyvQBBLWRxdYaAtYwQGRGxpjNKhXjRogrzOT8Dr83+/rsRIwBrtY2Y8b0XpsgCvLaxLOIzxg2Fl0c3gADguZWvit9Rkr9EX2QTcMdL288iCSBYDuKEi2gWFs6wLSEBn1srzDpInxY8U/1Dn1frPjnRPG5OKNYHl4WmVlPhKeKTRppMXgz+6IE6wJqE7tzWdJbR/7bqgTbiioubw6Z6NsZ8wGSVnpoKWAcyag1E0ptYgFNbNXxY7z9LiIK5tZ/Uu4jpuXShCEo+7aPyxq7dvtIeJOZ+zLqkwbDZq2uwnmP1wYy1Qig3HG+wuCYPHZmW2CK7IsU6BfS8A1sK/KoUEKQn6a32v4Twdv2ikZd/eLTbuyU2rEM4XyGpIG32+ISLxnDe5E336e0SNNt1L+phA6q8fNumAbFywOjWU5V3/g07fjLvb9Rc/ZAxzdBAnyloplRl5FrG4VhzX78CiQvuqpTBzKJvmMc3l0eeZaOU79EO2g6kNE170wqC69HnI53wlKcsNkaEQYqXd7oUwmu7Il2/vx2kAoDHELH+pBFpzDEOm5ZU2XMW7dntUrRvy7iAObJSjdB/rTiWg0tPq9NmU16tmWypN+P5pWM9XMnjNBY4DeE1F7Q8+NRPwBpI56B/NTpyijwAlZPw+la1b3Yh89MVE5L+ZCNXdLbwtc4BeDIw5EOPtm3/LZA2/VJHMxNlVHOfAZgWuD3tXgv7kMh9tXvntQKGflm3ZgdZx9XhNmWm2d8FxhnV58vafGfU+eNABz/uq68GxH9umw0aJuC1shbs+eNRfKN3fmhPq/wqdNfsO435oEliKYGmqVP1G071oLzH5QXYQl8NzEwG0yy7MCXioNsZmUZ4/FcrUkYbfIhuJ6NiQ/UPHA/l+S0zVgXZRCWDP/yZSgtVMg4EuSK9u1bvRdtYu3CrVchG3vxA2/O5WPqWbRBt6VzE5lusYcFy0NblQwhCjkXJxrES7b/8eZwsbw0fbRrU+8eAfC+XjAvd4JC4TC8IvjwgVHW0ttB115pdKYk9zneFU6dsoYfIUu2TE7iZXtmbYCoSeTLN+jt5DkOu7YP1K2gbnXnvpkwlo6MA/dpV/8SLLhPLzXisr77ibImxFEoy96qfNB3gM6xJ5yITE2wOxHCLpOiyV6R+vCAJqOaRFwGb3YTMfWcy1VOYxUxnEgrf3uPkT5tYUfC1leqAGL4GCRyPZjG7RvuBvgSS1Uz561GZ9VcS2r5xP/jmCWlpnOp5mYnwSdMUm45+doWZq16W5gMC79EltvJewrpoAiKwJ+DBeB0KFBt5io8i5qp2/HxzNkVogKUfnBP5hCKA4MxDb34sZgVNg050OIBVh0Du1Ss+/3+Ex2/FRgXsFk9otuquZElNZCAnAG9seMMEpV6+9BdCJgTmj7iViIL8s9zQA=="; + String date= "NR0oe4La+0SLizVoKCDfRkj37avo59qzZBUm7BFSmU+XA81uaP2614Vjbb7VvhRRumS4LwHu6CR981cKMxNM57w7bhdEl/7Q0euTasU7M8fo7HcWH9akyN4bKS3jzYeGs7Zm+J7MXj1713oBDANjUtAbzy+hFyOQH/QOl91vhehanzG9gvc5yOL/PUnSb50sVSCOGEQqF65I7nzmQrgr9PiJzV32kpb2n2GnXurZG6HJ48OAoFfKwrEUfqGTE2OSHeGi4GcPbuuhxvaiFTS4yVtlra494NGaAvpDWCW3uNeaOqdyDGXxJS6SbKRqCPlMdFGcRRAVujKsQ7Q2Yl5WK7pNFeLWC48wBDzPHpd+var8BeUf83D5v6GHDxCnrbbCEk3G2y/uPJm0P1qmEpNu/jwg7WI3rjphVXLOBtPVtdyyXBDOp+6R8WTXk4r6fVCdPznsVHb5Ikh/sW2wWrkugxplwNs11mQHhwnWCzkQSwNCYB1SKy48U5/mUPdYViWrnHBZjQrJY2F3uETvm8lTZfLVRUyuK0A7SAelsoyxAFPqyw5HEm+5K0cDvOBWZ2QMHzsTofZSw80ROVxOYjmKgIAGLjoNme2FHtqUlXiWLriesAdNLoyr6uUaELKwmJLXEhD52n0dXxhT+UbhKdmdQ3uOZUUpukUUYEbLEkNWpPUy9CZQsFeiVFF96dHHnKDXtTdzpV8ZSkU/nQ75CVOdtRynvrnrzVROrYihrbtrR4F5fq2rrdn2AJePTrFoJU1JED4RjoaAmWbTGUyUM4nfn83fe+l0twtfKLUEYtgVF2iw9wIkHGW0/rLTHr59qqX99BkgxHA0NVCbCA5X+wImk+6wGaQ9kZ1B8bSDR+X2FVR5QcDPUOOIt2q7Zc6qTZcO0b9VniYQx08D7jDXpMz+VoHjJzOgW7AsNxV/nsZwsoAa8E1MlIF42MTBgeKkY7/jfH6mIndQIF919F1CnPMbHZ7urmSAf+fsNKgdI32DjtLML+aa/0qERa43GDfzc/kRKAqE2ajufwPIewNrArsSizBa8Fv61DHgmCyalVechGupsMXevGaHR5EvhaN4c2TE22f9HmDPOdzkF5dew3KtLTbts6FwlKlEKg4iqn5aT9+4FJxnapi/cV2vcUW8LUsXpISLgZNLvqhzKlqN4Xwnmqa11QHLAsxX0ukySEvXEuMYEX7ppnRrNKjrkxBxUrtdAxJpNxco1E5ZAJ3w6g19z32/GcuEGBolmrM0jy1Wl6Osxp2bWrTFMnrdpsfRHZqC3AS6kmuamsGFHkQ+JQybIi16YrqPaBQ8WkpdaYDHBXZwat9ku+06fdURcSvyKSLFEofCSrCfG0OOOXcwdA031Vz7QW/30eXeEN69DfjVEN6clj6T/WMndKmTJyswJmHLU01ewWRHX5LS8P7/KkvOvfmJSTntMAneHNPY7oo6QxVXZdDrnevdgsgfa+OuZnemweHFtGYtgWAFQQgB4fXQsP4fjPQtCF9H9+1RklKbC5+bj14piSNnT9FA8sNDmm9OS3Okoja21nDpacGGWBQxjQqM2SRA6pnhKPb3noIJG/3ynzUAD0qd8mtWMig4wM0IsDZhgHq7K7MUfqELZGTcttY1iB4I38/rHtnbWM7Lze/kcwHNzkwYjtd9nlgFLTlj5mJ3HN+FnJckzIkvfg1B5MhfMomQnAWA/wh82aAloN46MY2/RRmrsL2FjDIFIDXLC0ZvnnNLKD7BhDdew24gg+UGmi+uSSPLYUxrp+2YCgp17E2s6/rsE3JHImFnC8qXoLXLUeLl3ymF/XcXqueaE3HGketmOHyIexc68Sy+UFiZnC3Ey3JA9D2Lk+lftrw0yx7J310fzeQaT60uwbzoXvrC4kEreFLH+dB0XshRvmNpA2chUzyr5hyvOq+vmMlsvAsLcJWrvMj4j1BK094PIczf/7I3OMCbLWmlD0YcFK3dDYS2urxMk6Ptnx/bLS93ywozyRRNH1H+WtCbfkvTpUMtX4FnA3VxBafR2F+6gLeZ9QwfqUqIR4l2dnCfJdCIzBjKFj82nVfXCQI5GxxP9iCZl95yE667Z/jQ8lcK5xlymXLAlkr4nHA4JGUIzfiMl2soZmFxjOYSeqpwl8GqxOe9RAERtpbwCFwZ5TOoUKbmr/K8XnsYWOioHjWfKAOPQ/sSGPKbDrWe9MR1fYy8c1i0FwAuDEeV996lcVtWyt2WMPiVccf+fkJBwfedNjCmXRGOHMpVWxMGSXBigShkDjCNd22ICmebYBgu9DRVEFeMzerOrbRiofrub14h5lnMO2T+8uaFApkkwe4kgY3Rr17V2v4CwnRnwFha+mspxuQf5Alnl71KFs/u+VGn46+MslPOQ7AAW2xkAwKI8yfxPycU5QrpoNEh7HBiQAtFePwmkgrlVCEFijadJb98XAwLFuoV81VVUA43y8uctDqLMGAK/pJGP59aq+F2W+n5AvIjmjA726/waps4XsGvvr0BLsq8dIAELNROPxlus8XMMzjqSwB54KrmpT8UhAGE9kczK3jALw7KEjv2amZGcw+Kq+yUJVUk7qjiepBxASqlXLWJvnHC2Je0E/oE7S/7xBB3Hrp3UdGlOdRve9/AICrHkNHnpblaiGpE9ACM4E9BQtZq9mok/XnzEBvQdE3uM256txp9QQHkqPYkkaPVaFx8/AeOFf3S1Bw+dckfRONCzZZ8yxLQA8UBZXDDx98kR2Q0z6DMoV3HZydXo7nfTASg97ZD523ZhUhu8gn7rwtGkMDg3qqGekAC0lpF3DT0TgJgMrjHxRAVpoGkwpUYRKlX6M5Pe+UiJwzpFKNlnK/SVauhcOcxLlt1YByHlNrFd4fB2tkNgoDIxHseI6shBgkR6VBxzP+5+VeJdpeSWRMpXZP9150hCJWjNW2C6d5wTU2NXgwdxqGErqRQG+TXuDqz/V1uxeO9kZwKaN27SxW6ERPkuKdykoKVA0mBQoFw1gGNEZ0Jq3iyawotmpLU/daX353kSwCgTfEx8oUnFndcByRmvQdg9XqnqyW5LS2kiYzcPsnFDGzpAGfQYsE7dOabeKI9bEAQsiFA+9f/PgwCFThfGp4bVUKbP7Nb3iGfrem6YiZYrh/81/bBruD+QGebg8szVVvTjhHf7QpRjuDHNA=="; String s2 = decryptString(date, "8LpncubmWiPCzY3V", "av6A8QdnRaVRMXu6"); + + System.out.println("===解密=======sss==============="+s2); - - - String date3= "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"; - String s3 = decryptString(date3, "ojs67l46z3f7rhok", "tet9swfkyojkhaos"); - System.out.println("===解密=======sss3==============="+s3); +// +// +// String date3= "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"; +// String s3 = decryptString(date3, "ojs67l46z3f7rhok", "tet9swfkyojkhaos"); +// System.out.println("===解密=======sss3==============="+s3); }catch (Exception e){ diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStationsInfoController.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStationsInfoController.java index fa72e889..176630c6 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStationsInfoController.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/api/QueryStationsInfoController.java @@ -162,6 +162,13 @@ public class QueryStationsInfoController { //车位数量 chargingStationDto.setParkNums(xhpcChargingStation.getParkNums()); chargingStationDto.setParkFee(xhpcChargingStation.getParkingInstructions()); + String[] split = xhpcChargingStation.getImgId().split(","); + for (int j = 0; j < split.length; j++) { + String s = split[j]; + String url="https://xhpc-bucket1.oss-cn-hangzhou.aliyuncs.com"+s; + split[j] =url; + } + chargingStationDto.setPictures(split); REDIS.setCacheObject(stationKey, chargingStationDto); } } @@ -231,7 +238,8 @@ public class QueryStationsInfoController { resp.setData(JSONUtil.toJSONString(response)); } return resp; - }else if("MA25CNM38".equals(operatorId)){ + } + else if("MA25CNM38".equals(operatorId)){ Integer pageNo = pageRequest.getPageNo(); PageStationsInfoResponseXinDianTu response = new PageStationsInfoResponseXinDianTu(); response.setPageNo(pageNo); @@ -323,17 +331,14 @@ public class QueryStationsInfoController { xhpcChargingStationRepository.findOne(example).orElse(null); if (xhpcChargingStation != null) { //纬度 - chargingStationDto.setLat(new BigDecimal(xhpcChargingStation.getLatitude()).setScale(6, - RoundingMode.HALF_UP).doubleValue()); + chargingStationDto.setLat(new BigDecimal(xhpcChargingStation.getLatitude()).setScale(6,RoundingMode.HALF_UP).doubleValue()); //经度 - chargingStationDto.setLng(new BigDecimal(xhpcChargingStation.getLongitude()).setScale(6, - RoundingMode.HALF_UP).doubleValue()); + chargingStationDto.setLng(new BigDecimal(xhpcChargingStation.getLongitude()).setScale(6, RoundingMode.HALF_UP).doubleValue()); //站点类型 chargingStationDto.setType(xhpcChargingStation.getType()); //运营商id String operatorIdEvcs = xhpcChargingStation.getOperatorIdEvcs(); - chargingStationDto.setOperatorId(operatorIdEvcs == null ? "MA6DFCTD5" - : operatorIdEvcs.length() == 9 ? operatorId : operatorIdEvcs.substring(8, 17)); + chargingStationDto.setOperatorId(operatorIdEvcs == null ? "MA6DFCTD5" : operatorIdEvcs.length() == 9 ? operatorId : operatorIdEvcs.substring(8, 17)); //详细地址 chargingStationDto.setAddress(xhpcChargingStation.getAddress()); //充电站省直辖区编码 @@ -345,6 +350,14 @@ public class QueryStationsInfoController { //车位数量 chargingStationDto.setParkNums(xhpcChargingStation.getParkNums()); chargingStationDto.setParkFee(xhpcChargingStation.getParkingInstructions()); + + String[] split = xhpcChargingStation.getImgId().split(","); + for (int j = 0; j < split.length; j++) { + String s = split[j]; + String url="https://xhpc-bucket1.oss-cn-hangzhou.aliyuncs.com"+s; + split[j] =url; + } + chargingStationDto.setPictures(split); REDIS.setCacheObject(stationKey, chargingStationDto); } } @@ -352,6 +365,7 @@ public class QueryStationsInfoController { stationInfo.setEquipmentOwnerId(chargingStationDto.getOperatorId()); stationInfo.setStationName(chargingStationDto.getName()); stationInfo.setCountryCode("CN"); + stationInfo.setPictures(chargingStationDto.getPictures()); stationInfo.setAreaCode(chargingStationDto.getAreaCode()); stationInfo.setAddress(chargingStationDto.getAddress()); stationInfo.setServiceTel(chargingStationDto.getServiceTel()); @@ -481,6 +495,13 @@ public class QueryStationsInfoController { //车位数量 chargingStationDto.setParkNums(xhpcChargingStation.getParkNums()); chargingStationDto.setParkFee(xhpcChargingStation.getParkingInstructions()); + String[] split = xhpcChargingStation.getImgId().split(","); + for (int j = 0; j < split.length; j++) { + String s = split[j]; + String url="https://xhpc-bucket1.oss-cn-hangzhou.aliyuncs.com"+s; + split[j] =url; + } + chargingStationDto.setPictures(split); REDIS.setCacheObject(stationKey, chargingStationDto); } } diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDConnectorChargeStatusInfoTask.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDConnectorChargeStatusInfoTask.java index 15ad5d8d..9923acd7 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDConnectorChargeStatusInfoTask.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDConnectorChargeStatusInfoTask.java @@ -44,12 +44,12 @@ public class CDConnectorChargeStatusInfoTask extends CoreDispatcher { * 清除5天前数据 * 实时数据没40秒 */ - //@Scheduled(fixedDelay = 1000 * 60) + @Scheduled(fixedDelay = 1000 * 60) public void runY() throws Exception{ Collection realtimeOrder = REDIS.keys("cdjgpc:realTime:*"); for (String okey : realtimeOrder) { String orderNo = REDIS.getCacheObject(okey); - String format = DateUtil.format(DateUtil.offsetDay(new Date(),-3), "yyMMdd"); + String format = DateUtil.format(DateUtil.offsetDay(new Date(),-7), "yyMMdd"); if(Integer.parseInt(format)>Integer.parseInt(orderNo.substring(16,22))){ REDIS.deleteObject(okey); } @@ -65,7 +65,7 @@ public class CDConnectorChargeStatusInfoTask extends CoreDispatcher { public void runYu() throws Exception{ Collection realtimeOrder = REDIS.keys("orderOutpu:*"); for (String okey : realtimeOrder) { - String format = DateUtil.format(DateUtil.offsetDay(new Date(),-5), "yyMMdd"); + String format = DateUtil.format(DateUtil.offsetDay(new Date(),-7), "yyMMdd"); if(Integer.parseInt(format)>Integer.parseInt(okey.substring(28,33))){ REDIS.deleteObject(okey); } @@ -78,7 +78,7 @@ public class CDConnectorChargeStatusInfoTask extends CoreDispatcher { * 设备充电中状态变化推送(我们平台推送成都市平台) --已推送 * 实时数据没40秒 */ - //@Scheduled(fixedDelay = 1000 * 40) + @Scheduled(fixedDelay = 1000 * 40) public void run() throws Exception{ List longList =new ArrayList<>(); @@ -195,11 +195,11 @@ public class CDConnectorChargeStatusInfoTask extends CoreDispatcher { CommonRequest commonRequest = new CommonRequest<>(); commonRequest.setData(data); String result = ok(commonRequest, "/notification_connector_charge_status", authSecretTokenOut); - System.out.println("===设备充电中状态变化推送====lord.getOrderNo()========"+lord.getOrderNo()); - System.out.println("===设备充电中状态变化推送====result========"+result); + //System.out.println("===设备充电中状态变化推送====lord.getOrderNo()========"+lord.getOrderNo()); + //System.out.println("===设备充电中状态变化推送====result========"+result); JSONObject jsonObject = JSONObject.parseObject(result); if("0".equals(jsonObject.get("Ret").toString())){ - System.out.println("===设备充电中状态变化推送====okey========"+okey); + // System.out.println("===设备充电中状态变化推送====okey========"+okey); REDIS.deleteObject(okey); } } diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationChargeOrderInfoTask.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationChargeOrderInfoTask.java index 15f5aa9f..1f8106f0 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationChargeOrderInfoTask.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationChargeOrderInfoTask.java @@ -1,11 +1,14 @@ package com.xhpc.evcs.cdjgpc.notification; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUnit; import com.fasterxml.jackson.core.JsonProcessingException; +import com.xhpc.common.api.ChargingStationService; +import com.xhpc.common.core.domain.R; +import com.xhpc.common.data.redis.CacheOrderData; +import com.xhpc.common.dto.XhpcRateTimeDto; import com.xhpc.evcs.domain.AuthSecretToken; -import com.xhpc.evcs.dto.ChargeOrderInfo; -import com.xhpc.evcs.dto.ChargeOrderInfoResponse; -import com.xhpc.evcs.dto.CommonRequest; -import com.xhpc.evcs.dto.DTOJsonHelper; +import com.xhpc.evcs.dto.*; import com.xhpc.evcs.jpa.AuthSecretTokenRepository; import com.xhpc.evcs.jpa.XhpcHistoryOrderRepository; import com.xhpc.evcs.notification.CoreDispatcher; @@ -19,11 +22,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import java.math.BigDecimal; import java.time.Duration; import java.time.Instant; -import java.util.Collection; -import java.util.Date; -import java.util.List; +import java.util.*; import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS; import static com.xhpc.evcs.domain.AuthSecretToken.SECRET_TOKEN_TYPE_OUT; @@ -39,11 +41,13 @@ public class CDNotificationChargeOrderInfoTask extends CoreDispatcher { private XhpcHistoryOrderRepository xhpcHistoryOrderRepository; @Autowired private AuthSecretTokenRepository authSecretTokenRepository; + @Autowired + private ChargingStationService chargingStationService; private final Logger logger = LoggerFactory.getLogger(NotificationChargeOrderInfoTask.class); //9099开放定时任务 9009不开放 - //@Scheduled(fixedRate = 1000 * 15) + @Scheduled(fixedRate = 1000 * 15) public void run() throws JsonProcessingException { Collection orderKeys = REDIS.keys("order:*"); @@ -56,7 +60,7 @@ public class CDNotificationChargeOrderInfoTask extends CoreDispatcher { } Date otime = DateUtil.orderNo2Date(orderNo); - if (Duration.between(otime.toInstant(), now).toHours() > 24 * 3) { + if (Duration.between(otime.toInstant(), now).toHours() > 24 * 14) { REDIS.deleteObject(okey); REDIS.deleteObject(okey.replace("order", "pushOrder")); logger.info("clear cache..{}", okey); @@ -79,11 +83,13 @@ public class CDNotificationChargeOrderInfoTask extends CoreDispatcher { } } if (authSecretToken.getOperatorId3irdpty().equals(operatorId3rdptyEvcs)) { -// final List statisticsTimeIntervals = -// xhpcStatisticsTimeIntervalRepository.findAllByHistoryOrderId(horder.getHistoryOrderId()); -// horder.setXhpcStatisticsTimeIntervalList(statisticsTimeIntervals); //似乎并不需要 ChargeOrderInfo chargeOrderInfo = new ChargeOrderInfo(horder); chargeOrderInfo.setChargeModel(null); + + if(new BigDecimal(0).compareTo(horder.getTotalPrice())<0){ + chargeOrderInfo = calculateEmYu(horder,chargeOrderInfo); + } + logger.info("==========开始推送====推送返回值============calculateEmYu====="); final ChargeOrderInfoResponse pushResp = notify(chargeOrderInfo, authSecretToken); if (pushResp != null) { horder.setConfirmResult(pushResp.getConfirmResult()); @@ -101,12 +107,689 @@ public class CDNotificationChargeOrderInfoTask extends CoreDispatcher { } } - public ChargeOrderInfoResponse notify(ChargeOrderInfo chargeOrderInfo, AuthSecretToken authSecretTokenOut) throws JsonProcessingException { + public ChargeOrderInfo calculateEmYu(XhpcHistoryOrder horder,ChargeOrderInfo chargeOrderInfo) { + logger.info("====111======开始推送====推送返回值============calculateEmYu====="); + String startTime = chargeOrderInfo.getStartTime(); + String endTime = chargeOrderInfo.getEndTime(); + DateTime parse = cn.hutool.core.date.DateUtil.parse(startTime, "yyyy-MM-dd"); + DateTime parse1 = cn.hutool.core.date.DateUtil.parse(endTime, "yyyy-MM-dd"); + long betweenDay = cn.hutool.core.date.DateUtil.between(parse,parse1, DateUnit.DAY); + + if(betweenDay==0){ + logger.info("=====22=====开始推送====推送返回值============calculateEmYu====="); + //没有跨天 + Stack stack = extracted(horder, chargeOrderInfo); + + ChargeDetails[] cda = new ChargeDetails[stack.size()]; + chargeOrderInfo.setChargeDetails(stack.toArray(cda)); + }else{ + logger.info("=====333=====开始推送====推送返回值============calculateEmYu====="); + Date endTime1 = horder.getEndTime(); + horder.setEndTime(cn.hutool.core.date.DateUtil.parse(startTime.substring(0,10)+" 23:59:59")); + Stack stack =extracted(horder, chargeOrderInfo); + + horder.setStartTime(cn.hutool.core.date.DateUtil.parse(endTime.substring(0,10)+" 00:00:00")); + horder.setEndTime(endTime1); + Stack stack1 =extracted(horder, chargeOrderInfo); + + Stack mergedStack = new Stack<>(); + + // 先添加stack2的所有元素(保持原顺序) + for (ChargeDetails detail : stack) { + mergedStack.push(detail); + } + + // 再添加stack1的所有元素(保持原顺序) + for (ChargeDetails detail : stack1) { + mergedStack.push(detail); + } + + ChargeDetails[] cda = new ChargeDetails[mergedStack.size()]; + chargeOrderInfo.setChargeDetails(mergedStack.toArray(cda)); + } + + return chargeOrderInfo; + } + + private Stack extracted(XhpcHistoryOrder horder, ChargeOrderInfo chargeOrderInfo) { + Stack chargeDetailsStack =new Stack<>(); + R r = chargingStationService.getXhpcRateTimeOrder(horder.getRateModelId(), cn.hutool.core.date.DateUtil.formatTime(horder.getStartTime()), cn.hutool.core.date.DateUtil.formatTime(horder.getEndTime()),horder.getSerialNumber()); + logger.info("=====444=====开始推送====推送返回值============calculateEmYu====="); + if(r.getCode()==200){ + logger.info("=====5555=====开始推送====推送返回值============calculateEmYu====="); + Map cacheMapYu = REDIS.getCacheMap("Yu"+horder.getSerialNumber()); + List xhpcRateTimes = (List)cacheMapYu.get(horder.getSerialNumber()); + + Map cacheMap = REDIS.getCacheMap("order:"+ horder.getSerialNumber()); + CacheOrderData cacheOrderData = (CacheOrderData)cacheMap.get("orderData"); + BigDecimal bigDecimal = new BigDecimal(10000); + int t1=0; + int t12 =2; + int t13 =3; + BigDecimal bigDecimal1 = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal); + int t2 =0; + int t22 =2; + int t23 =3; + BigDecimal bigDecimal2 = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal); + int t3 =0; + int t32 =2; + int t33 =3; + BigDecimal bigDecimal3 = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal); + int t4 =0; + int t43 =3; + int t42 =2; + BigDecimal bigDecimal4 = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal); + + + for (XhpcRateTimeDto xpcRateTime:xhpcRateTimes) { + String rateValue = xpcRateTime.getRateValue(); + if("00".equals(rateValue)){ + t1=t1+1; + } else if ("01".equals(rateValue)) { + t2=t2+1; + }else if ("02".equals(rateValue)) { + t3=t3+1; + }else if ("03".equals(rateValue)) { + t4=t4+1; + } + } + BigDecimal decimalYu = new BigDecimal((horder.getEndTime().getTime() - horder.getStartTime().getTime())).divide(new BigDecimal(60000),4,BigDecimal.ROUND_HALF_UP); + + BigDecimal divideYu = new BigDecimal(cacheOrderData.getTotalPowerQuantity()).divide(new BigDecimal(10000),4,BigDecimal.ROUND_HALF_UP); + logger.info("=====66666=====开始推送====推送返回值============decimalYu====="+decimalYu+"=========divideYu========="+divideYu); + //每分钟多少度电 + BigDecimal quantity =new BigDecimal(0); + if(decimalYu.compareTo(new BigDecimal(0))!=0){ + quantity = decimalYu.divide(divideYu,4,BigDecimal.ROUND_HALF_UP); + } + for (XhpcRateTimeDto xpcRateTime:xhpcRateTimes) { + ChargeDetails chargeDetails = new ChargeDetails(); + String rateValue = xpcRateTime.getRateValue(); + + String rateStartTime = cn.hutool.core.date.DateUtil.format(xpcRateTime.getStartTime(), "HH:mm:ss"); + + String orderStartTime = cn.hutool.core.date.DateUtil.format(horder.getStartTime(), "yyyy-MM-dd HH:mm:ss"); + + rateStartTime = orderStartTime.substring(0,10)+" "+rateStartTime; + + String rateEndTime = cn.hutool.core.date.DateUtil.format(xpcRateTime.getEndTime(), "HH:mm:ss"); + + String orderEndTime = cn.hutool.core.date.DateUtil.format(horder.getEndTime(), "yyyy-MM-dd HH:mm:ss"); + + rateEndTime = orderStartTime.substring(0,10)+" "+rateEndTime; + + DateTime startTime1 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + + DateTime endTime1 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + + if("00".equals(rateValue)){ + boolean judgeStart =false; + boolean judgeEnd =false; + + if(horder.getStartTime().getTime()-startTime1.getTime()>0){ + chargeDetails.setDetailStartTime(orderStartTime); + judgeStart =true; + }else{ + chargeDetails.setDetailStartTime(rateStartTime); + } + if(horder.getEndTime().getTime()-endTime1.getTime()>0){ + chargeDetails.setDetailEndTime(rateEndTime); + }else{ + chargeDetails.setDetailEndTime(orderEndTime); + judgeEnd =true; + } + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + + if(t1==1){ + BigDecimal divide = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal); + + BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(divide.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t1==2){ + + if(t12==2){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + //剩余电量 + bigDecimal1 = bigDecimal1.subtract(multiply); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + }else{ + BigDecimal multiply1 = bigDecimal1.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal1.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal1.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t12 = t12-1; + }else if(t1==3){ + if(t13==3){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + //剩余电量 + bigDecimal1 = bigDecimal1.subtract(multiply); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t13==2){ + + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal1 = bigDecimal1.subtract(multiply); + }else{ + BigDecimal multiply1 = bigDecimal1.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal1.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal1.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t13 = t13-1; + } + + } else if ("01".equals(rateValue)) { + boolean judgeStart =false; + boolean judgeEnd =false; + + if(horder.getStartTime().getTime()-startTime1.getTime()>0){ + chargeDetails.setDetailStartTime(orderStartTime); + judgeStart =true; + }else{ + chargeDetails.setDetailStartTime(rateStartTime); + } + if(horder.getEndTime().getTime()-endTime1.getTime()>0){ + chargeDetails.setDetailEndTime(rateEndTime); + }else{ + chargeDetails.setDetailEndTime(orderEndTime); + judgeEnd =true; + } + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + + if(t2==1){ + BigDecimal divide = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal); + + BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(divide.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t2==2){ + + if(t22==2){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal2 = bigDecimal2.subtract(multiply); + + }else{ + BigDecimal multiply1 = bigDecimal2.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal2.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal2.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t22 = t22-1; + }else if(t2==3){ + if(t23==3){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal2 = bigDecimal2.subtract(multiply); + }else if(t23==2){ + + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal2 = bigDecimal2.subtract(multiply); + }else{ + BigDecimal multiply1 = bigDecimal2.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal2.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal2.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t23 = t23-1; + } + + }else if ("02".equals(rateValue)) { + boolean judgeStart =false; + boolean judgeEnd =false; + + if(horder.getStartTime().getTime()-startTime1.getTime()>0){ + chargeDetails.setDetailStartTime(orderStartTime); + judgeStart =true; + }else{ + chargeDetails.setDetailStartTime(rateStartTime); + } + if(horder.getEndTime().getTime()-endTime1.getTime()>0){ + chargeDetails.setDetailEndTime(rateEndTime); + }else{ + chargeDetails.setDetailEndTime(orderEndTime); + judgeEnd =true; + } + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + + if(t3==1){ + BigDecimal divide = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal); + + BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(divide.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t3==2){ + + if(t32==2){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal3 = bigDecimal3.subtract(multiply); + + }else{ + BigDecimal multiply1 = bigDecimal3.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal3.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal3.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t32 = t32-1; + }else if(t3==3){ + if(t33==3){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal3 = bigDecimal3.subtract(multiply); + }else if(t33==2){ + + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal3 = bigDecimal3.subtract(multiply); + }else{ + BigDecimal multiply1 = bigDecimal3.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal3.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal3.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t33 = t33-1; + } + + }else if ("03".equals(rateValue)) { + boolean judgeStart =false; + boolean judgeEnd =false; + + if(horder.getStartTime().getTime()-startTime1.getTime()>0){ + chargeDetails.setDetailStartTime(orderStartTime); + judgeStart =true; + }else{ + chargeDetails.setDetailStartTime(rateStartTime); + } + if(horder.getEndTime().getTime()-endTime1.getTime()>0){ + chargeDetails.setDetailEndTime(rateEndTime); + }else{ + chargeDetails.setDetailEndTime(orderEndTime); + judgeEnd =true; + } + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + + if(t4==1){ + BigDecimal divide = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal); + + BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(divide.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t4==2){ + + if(t42==2){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal4 = bigDecimal4.subtract(multiply); + + }else{ + BigDecimal multiply1 = bigDecimal4.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal4.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal4.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t42 = t42-1; + }else if(t4==3){ + if(t43==3){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal4 = bigDecimal4.subtract(multiply); + }else if(t43==2){ + + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal4 = bigDecimal4.subtract(multiply); + }else{ + BigDecimal multiply1 = bigDecimal4.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal4.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal4.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t43 = t43-1; + } + } + } + } + logger.info("=====8888=====开始推送====推送返回值============calculateEmYu====="); + //REDIS.deleteObject("Yu"+horder.getSerialNumber()); + return chargeDetailsStack; + } + + public ChargeOrderInfoResponse notify(ChargeOrderInfo chargeOrderInfo, AuthSecretToken authSecretTokenOut) throws JsonProcessingException { + logger.info("====111======开始推送====推送返回值============calculateEmYu====="); String data = JSONUtil.toJSONString(chargeOrderInfo); CommonRequest commonRequest = new CommonRequest<>(); commonRequest.setData(data); String responseBody = ok(commonRequest, "/notification_charge_order_info", authSecretTokenOut); + System.out.println("=======推送充电订单信息结果============"+responseBody); return DTOJsonHelper.parseResponseData(responseBody, ChargeOrderInfoResponse.class, authSecretTokenOut); } diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationOrderInfoTask.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationOrderInfoTask.java index 404e8d4b..015309f6 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationOrderInfoTask.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationOrderInfoTask.java @@ -67,7 +67,7 @@ public class CDNotificationOrderInfoTask extends CoreDispatcher { */ //9099开放定时任务 9009不开放 @GetMapping("/infoTask") - // @Scheduled(fixedRate = 1000 * 30) + @Scheduled(fixedRate = 1000 * 30) public void run() throws IOException { AuthSecretToken authSecretTokenOut = authSecretTokenRepository.findByOperatorId3irdptyAndOperatorIdAndSecretTokenType( @@ -75,7 +75,7 @@ public class CDNotificationOrderInfoTask extends CoreDispatcher { // maybe对接第三方 if (authSecretTokenOut != null) { final List notYetPushOrder = - xhpcHistoryOrderRepository.findTop1000ByHistoryOrderIdGreaterThanEqualOrderByHistoryOrderIdAsc(authSecretTokenOut.getLastPushOrder()); + xhpcHistoryOrderRepository.findTop100ByHistoryOrderIdGreaterThanEqualOrderByHistoryOrderIdAsc(authSecretTokenOut.getLastPushOrder()); for (XhpcHistoryOrder xhpcHistoryOrder : notYetPushOrder) { XhpcStationInternetBlacklist xhpcStationInternetBlacklist = xhpcStationInternetBlacklistRepo.findByChargingStationIdAndInternetUserId(xhpcHistoryOrder.getChargingStationId(), diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationStationFeeTask.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationStationFeeTask.java index fa5f003a..3ccbb47f 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationStationFeeTask.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationStationFeeTask.java @@ -31,7 +31,7 @@ public class CDNotificationStationFeeTask extends CoreDispatcher { private final Logger logger = LoggerFactory.getLogger(CDNotificationStationFeeTask.class); //9099开放定时任务 9009不开放 - //@Scheduled(fixedDelay = 1000 * 60) + @Scheduled(fixedDelay = 1000 * 60) public void run() throws IOException { AuthSecretToken authSecretTokenOut = diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationStationInfoTask.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationStationInfoTask.java index 0d4c10d7..e275c5f8 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationStationInfoTask.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/cdjgpc/notification/CDNotificationStationInfoTask.java @@ -32,7 +32,7 @@ public class CDNotificationStationInfoTask extends CoreDispatcher { private final Logger logger = LoggerFactory.getLogger(CDNotificationStationInfoTask.class); //9099开放定时任务 9009不开放 - //@Scheduled(cron = "0 20 0 1/1 * ? ") + @Scheduled(cron = "0 20 0 1/1 * ? ") public void run() throws IOException { try{ List xhpcStationInternetBlacklist = diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/jpa/XhpcHistoryOrderRepository.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/jpa/XhpcHistoryOrderRepository.java index 94698060..532d6875 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/jpa/XhpcHistoryOrderRepository.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/jpa/XhpcHistoryOrderRepository.java @@ -11,6 +11,7 @@ import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.QueryByExampleExecutor; import org.springframework.stereotype.Repository; +import java.util.Date; import java.util.List; @Repository @@ -27,8 +28,12 @@ public interface XhpcHistoryOrderRepository extends JpaRepository findByConfirmResultAndSource(int confirmResult, int source); + List findByCreateTimeGreaterThanAndConfirmResultAndSource(Date createTime, int confirmResult, int source); + List findTop1000ByHistoryOrderIdGreaterThanEqualOrderByHistoryOrderIdAsc(Long hisOrderId); + List findTop100ByHistoryOrderIdGreaterThanEqualOrderByHistoryOrderIdAsc(Long hisOrderId); + @Query("select ho from XhpcHistoryOrder ho join EtPushFailedOrder fo on ho.historyOrderId = fo.id where fo.operatorId3rdpty = ?1") List findJoinPushFailedOrders(@Param("operatorId3irdpty")String operatorId3irdpty, Pageable pageable); diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationChargeOrderInfoTask.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationChargeOrderInfoTask.java index 7b46eeb1..f05e7584 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationChargeOrderInfoTask.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationChargeOrderInfoTask.java @@ -1,14 +1,17 @@ package com.xhpc.evcs.notification; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import com.fasterxml.jackson.core.JsonProcessingException; +import com.xhpc.common.api.ChargingStationService; +import com.xhpc.common.core.domain.R; +import com.xhpc.common.data.redis.CacheOrderData; +import com.xhpc.common.dto.XhpcRateTimeDto; import com.xhpc.evcs.domain.AuthSecretToken; -import com.xhpc.evcs.dto.ChargeOrderInfo; -import com.xhpc.evcs.dto.ChargeOrderInfoResponse; -import com.xhpc.evcs.dto.CommonRequest; -import com.xhpc.evcs.dto.DTOJsonHelper; +import com.xhpc.evcs.dto.*; import com.xhpc.evcs.jpa.AuthSecretTokenRepository; import com.xhpc.evcs.jpa.XhpcHistoryOrderRepository; -import com.xhpc.evcs.utils.DateUtil; import com.xhpc.evcs.utils.JSONUtil; import com.xhpc.order.domain.XhpcHistoryOrder; import org.slf4j.Logger; @@ -17,15 +20,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.time.Duration; -import java.time.Instant; -import java.util.Collection; -import java.util.Date; -import java.util.List; +import java.math.BigDecimal; +import java.util.*; import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS; import static com.xhpc.evcs.domain.AuthSecretToken.SECRET_TOKEN_TYPE_OUT; @@ -42,16 +41,20 @@ public class NotificationChargeOrderInfoTask extends CoreDispatcher { private XhpcHistoryOrderRepository xhpcHistoryOrderRepository; @Autowired private AuthSecretTokenRepository authSecretTokenRepository; - + @Autowired + private ChargingStationService chargingStationService; private final Logger logger = LoggerFactory.getLogger(NotificationChargeOrderInfoTask.class); - //推送不开放 + //推送不开放(第三方推送) //9099开放定时任务 9009不开放 @GetMapping("/infoTask") - //@Scheduled(cron = "0/15 * * * * ? ") + @Scheduled(cron = "0/15 * * * * ? ") public void run() throws JsonProcessingException { List authSecretTokenList = authSecretTokenRepository.findBySecretTokenType(SECRET_TOKEN_TYPE_OUT); - List xhpcHistoryOrderList =xhpcHistoryOrderRepository.findByConfirmResultAndSource(-1, 1); + + String formatYu = cn.hutool.core.date.DateUtil.format(DateUtil.offsetDay(new Date(),-90), "yyyy-MM-dd HH:mm:ss"); + + List xhpcHistoryOrderList =xhpcHistoryOrderRepository.findByCreateTimeGreaterThanAndConfirmResultAndSource(DateUtil.parse(formatYu),-1, 1); for (XhpcHistoryOrder horder : xhpcHistoryOrderList) { if("765367656".equals(horder.getInternetSerialNumber().substring(0, 9))){ continue; @@ -67,6 +70,11 @@ public class NotificationChargeOrderInfoTask extends CoreDispatcher { } if (authSecretToken.getOperatorId3irdpty().equals(operatorId3rdptyEvcs)) { ChargeOrderInfo chargeOrderInfo = new ChargeOrderInfo(horder); + + if(new BigDecimal(0).compareTo(horder.getTotalPrice())<0){ + chargeOrderInfo = calculateEmYu(horder,chargeOrderInfo); + } + final ChargeOrderInfoResponse pushResp = notify(chargeOrderInfo, authSecretToken); if (pushResp != null) { horder.setConfirmResult(pushResp.getConfirmResult()); @@ -83,9 +91,681 @@ public class NotificationChargeOrderInfoTask extends CoreDispatcher { } } + + public ChargeOrderInfo calculateEmYu(XhpcHistoryOrder horder,ChargeOrderInfo chargeOrderInfo) { + String startTime = chargeOrderInfo.getStartTime(); + String endTime = chargeOrderInfo.getEndTime(); + + DateTime parse = cn.hutool.core.date.DateUtil.parse(startTime, "yyyy-MM-dd"); + DateTime parse1 = cn.hutool.core.date.DateUtil.parse(endTime, "yyyy-MM-dd"); + long betweenDay = cn.hutool.core.date.DateUtil.between(parse,parse1, DateUnit.DAY); + + if(betweenDay==0){ + //没有跨天 + Stack stack = extracted(horder, chargeOrderInfo); + + ChargeDetails[] cda = new ChargeDetails[stack.size()]; + chargeOrderInfo.setChargeDetails(stack.toArray(cda)); + }else{ + Date endTime1 = horder.getEndTime(); + horder.setEndTime(cn.hutool.core.date.DateUtil.parse(startTime.substring(0,10)+" 23:59:59")); + Stack stack =extracted(horder, chargeOrderInfo); + + horder.setStartTime(cn.hutool.core.date.DateUtil.parse(endTime.substring(0,10)+" 00:00:00")); + horder.setEndTime(endTime1); + Stack stack1 =extracted(horder, chargeOrderInfo); + + Stack mergedStack = new Stack<>(); + + // 先添加stack2的所有元素(保持原顺序) + for (ChargeDetails detail : stack) { + mergedStack.push(detail); + } + + // 再添加stack1的所有元素(保持原顺序) + for (ChargeDetails detail : stack1) { + mergedStack.push(detail); + } + + ChargeDetails[] cda = new ChargeDetails[mergedStack.size()]; + chargeOrderInfo.setChargeDetails(mergedStack.toArray(cda)); + } + + return chargeOrderInfo; + } + + private Stack extracted(XhpcHistoryOrder horder, ChargeOrderInfo chargeOrderInfo) { + Stack chargeDetailsStack =new Stack<>(); + R r = chargingStationService.getXhpcRateTimeOrder(horder.getRateModelId(), cn.hutool.core.date.DateUtil.formatTime(horder.getStartTime()), cn.hutool.core.date.DateUtil.formatTime(horder.getEndTime()),horder.getSerialNumber()); + if(r.getCode()==200){ + Map cacheMapYu = REDIS.getCacheMap("Yu"+horder.getSerialNumber()); + List xhpcRateTimes = (List)cacheMapYu.get(horder.getSerialNumber()); + + Map cacheMap = REDIS.getCacheMap("order:"+ horder.getSerialNumber()); + CacheOrderData cacheOrderData = (CacheOrderData)cacheMap.get("orderData"); + BigDecimal bigDecimal = new BigDecimal(10000); + int t1=0; + int t12 =2; + int t13 =3; + BigDecimal bigDecimal1 = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal); + int t2 =0; + int t22 =2; + int t23 =3; + BigDecimal bigDecimal2 = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal); + int t3 =0; + int t32 =2; + int t33 =3; + BigDecimal bigDecimal3 = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal); + int t4 =0; + int t43 =3; + int t42 =2; + BigDecimal bigDecimal4 = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal); + + + for (XhpcRateTimeDto xpcRateTime:xhpcRateTimes) { + String rateValue = xpcRateTime.getRateValue(); + if("00".equals(rateValue)){ + t1=t1+1; + } else if ("01".equals(rateValue)) { + t2=t2+1; + }else if ("02".equals(rateValue)) { + t3=t3+1; + }else if ("03".equals(rateValue)) { + t4=t4+1; + } + } + BigDecimal decimalYu = new BigDecimal((horder.getEndTime().getTime() - horder.getStartTime().getTime())).divide(new BigDecimal(60000),4,BigDecimal.ROUND_HALF_UP); + + BigDecimal divideYu = new BigDecimal(cacheOrderData.getTotalPowerQuantity()).divide(new BigDecimal(10000),4,BigDecimal.ROUND_HALF_UP); + logger.info("=====66666=====开始推送====推送返回值============decimalYu====="+decimalYu+"=========divideYu========="+divideYu); + //每分钟多少度电 + BigDecimal quantity =new BigDecimal(0); + if(decimalYu.compareTo(new BigDecimal(0))!=0){ + quantity = decimalYu.divide(divideYu,4,BigDecimal.ROUND_HALF_UP); + } + for (XhpcRateTimeDto xpcRateTime:xhpcRateTimes) { + ChargeDetails chargeDetails = new ChargeDetails(); + String rateValue = xpcRateTime.getRateValue(); + + String rateStartTime = cn.hutool.core.date.DateUtil.format(xpcRateTime.getStartTime(), "HH:mm:ss"); + + String orderStartTime = cn.hutool.core.date.DateUtil.format(horder.getStartTime(), "yyyy-MM-dd HH:mm:ss"); + + rateStartTime = orderStartTime.substring(0,10)+" "+rateStartTime; + + String rateEndTime = cn.hutool.core.date.DateUtil.format(xpcRateTime.getEndTime(), "HH:mm:ss"); + + String orderEndTime = cn.hutool.core.date.DateUtil.format(horder.getEndTime(), "yyyy-MM-dd HH:mm:ss"); + + rateEndTime = orderStartTime.substring(0,10)+" "+rateEndTime; + + DateTime startTime1 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + + DateTime endTime1 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + + if("00".equals(rateValue)){ + boolean judgeStart =false; + boolean judgeEnd =false; + + if(horder.getStartTime().getTime()-startTime1.getTime()>0){ + chargeDetails.setDetailStartTime(orderStartTime); + judgeStart =true; + }else{ + chargeDetails.setDetailStartTime(rateStartTime); + } + if(horder.getEndTime().getTime()-endTime1.getTime()>0){ + chargeDetails.setDetailEndTime(rateEndTime); + }else{ + chargeDetails.setDetailEndTime(orderEndTime); + judgeEnd =true; + } + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + + if(t1==1){ + BigDecimal divide = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal); + + BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(divide.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t1==2){ + + if(t12==2){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + //剩余电量 + bigDecimal1 = bigDecimal1.subtract(multiply); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + }else{ + BigDecimal multiply1 = bigDecimal1.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal1.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal1.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t12 = t12-1; + }else if(t1==3){ + if(t13==3){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + //剩余电量 + bigDecimal1 = bigDecimal1.subtract(multiply); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t13==2){ + + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal1 = bigDecimal1.subtract(multiply); + }else{ + BigDecimal multiply1 = bigDecimal1.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal1.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal1.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t13 = t13-1; + } + + } else if ("01".equals(rateValue)) { + boolean judgeStart =false; + boolean judgeEnd =false; + + if(horder.getStartTime().getTime()-startTime1.getTime()>0){ + chargeDetails.setDetailStartTime(orderStartTime); + judgeStart =true; + }else{ + chargeDetails.setDetailStartTime(rateStartTime); + } + if(horder.getEndTime().getTime()-endTime1.getTime()>0){ + chargeDetails.setDetailEndTime(rateEndTime); + }else{ + chargeDetails.setDetailEndTime(orderEndTime); + judgeEnd =true; + } + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + + if(t2==1){ + BigDecimal divide = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal); + + BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(divide.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t2==2){ + + if(t22==2){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal2 = bigDecimal2.subtract(multiply); + + }else{ + BigDecimal multiply1 = bigDecimal2.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal2.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal2.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t22 = t22-1; + }else if(t2==3){ + if(t23==3){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal2 = bigDecimal2.subtract(multiply); + }else if(t23==2){ + + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal2 = bigDecimal2.subtract(multiply); + }else{ + BigDecimal multiply1 = bigDecimal2.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal2.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal2.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t23 = t23-1; + } + + }else if ("02".equals(rateValue)) { + boolean judgeStart =false; + boolean judgeEnd =false; + + if(horder.getStartTime().getTime()-startTime1.getTime()>0){ + chargeDetails.setDetailStartTime(orderStartTime); + judgeStart =true; + }else{ + chargeDetails.setDetailStartTime(rateStartTime); + } + if(horder.getEndTime().getTime()-endTime1.getTime()>0){ + chargeDetails.setDetailEndTime(rateEndTime); + }else{ + chargeDetails.setDetailEndTime(orderEndTime); + judgeEnd =true; + } + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + + if(t3==1){ + BigDecimal divide = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal); + + BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(divide.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t3==2){ + + if(t32==2){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal3 = bigDecimal3.subtract(multiply); + + }else{ + BigDecimal multiply1 = bigDecimal3.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal3.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal3.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t32 = t32-1; + }else if(t3==3){ + if(t33==3){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal3 = bigDecimal3.subtract(multiply); + }else if(t33==2){ + + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal3 = bigDecimal3.subtract(multiply); + }else{ + BigDecimal multiply1 = bigDecimal3.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal3.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal3.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t33 = t33-1; + } + + }else if ("03".equals(rateValue)) { + boolean judgeStart =false; + boolean judgeEnd =false; + + if(horder.getStartTime().getTime()-startTime1.getTime()>0){ + chargeDetails.setDetailStartTime(orderStartTime); + judgeStart =true; + }else{ + chargeDetails.setDetailStartTime(rateStartTime); + } + if(horder.getEndTime().getTime()-endTime1.getTime()>0){ + chargeDetails.setDetailEndTime(rateEndTime); + }else{ + chargeDetails.setDetailEndTime(orderEndTime); + judgeEnd =true; + } + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + + if(t4==1){ + BigDecimal divide = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal); + + BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(divide.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t4==2){ + + if(t42==2){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal4 = bigDecimal4.subtract(multiply); + + }else{ + BigDecimal multiply1 = bigDecimal4.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal4.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal4.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t42 = t42-1; + }else if(t4==3){ + if(t43==3){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal4 = bigDecimal4.subtract(multiply); + }else if(t43==2){ + + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal4 = bigDecimal4.subtract(multiply); + }else{ + BigDecimal multiply1 = bigDecimal4.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal4.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal4.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t43 = t43-1; + } + } + } + } + //REDIS.deleteObject("Yu"+horder.getSerialNumber()); + return chargeDetailsStack; + } public ChargeOrderInfoResponse notify(ChargeOrderInfo chargeOrderInfo, AuthSecretToken authSecretTokenOut) throws JsonProcessingException { String data = JSONUtil.toJSONString(chargeOrderInfo); + + logger.info("=====99999=====开始推送====推送返回值============data====="+data); CommonRequest commonRequest = new CommonRequest<>(); commonRequest.setData(data); String responseBody = ok(commonRequest, "/notification_charge_order_info", authSecretTokenOut); @@ -94,4 +774,8 @@ public class NotificationChargeOrderInfoTask extends CoreDispatcher { ChargeOrderInfoResponse.class, authSecretTokenOut); } + + public static void main(String[] args) { + + } } diff --git a/ruoyi-auth/src/main/java/com/xhpc/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/xhpc/auth/controller/TokenController.java index 61bad08c..6aa6c0c8 100644 --- a/ruoyi-auth/src/main/java/com/xhpc/auth/controller/TokenController.java +++ b/ruoyi-auth/src/main/java/com/xhpc/auth/controller/TokenController.java @@ -187,11 +187,11 @@ public class TokenController extends BaseController HashMap paramMap = new HashMap<>(); paramMap.put("code", random); paramMap.put("phone", phone); - paramMap.put("content", "【小华充电】您的验证码是:" + random + ",有效期为5分钟。如非本人操作,可不用理会。"); + paramMap.put("content", "【翔桦充电】您的验证码是:" + random + ",有效期为5分钟。如非本人操作,可不用理会。"); com.aliyun.dysmsapi20170525.Client client = createClient(); com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest() - .setSignName("小华充电") + .setSignName("翔桦充电") .setTemplateCode("SMS_226786362") .setTemplateParam("{\"code\":\""+random+"\"}") .setPhoneNumbers(phone); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/task/XhpcTenantTask.java b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/task/XhpcTenantTask.java index 0bdb6a54..7a12b795 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/task/XhpcTenantTask.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/task/XhpcTenantTask.java @@ -57,7 +57,7 @@ public class XhpcTenantTask { HashMap paramMap = new HashMap<>(); paramMap.put("phone", domain.getContactNumber()); paramMap.put("tenantName", domain.getTenantName()); - paramMap.put("content", "【小华充电】尊敬的租户,您申请的租户(租户名称: " + domain.getTenantName() + ")还有15天到期,请联系业务人员进行续费。"); + paramMap.put("content", "【翔桦充电】尊敬的租户,您申请的租户(租户名称: " + domain.getTenantName() + ")还有15天到期,请联系业务人员进行续费。"); smsService.sendNotice(paramMap); } } diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/XhpcClearingCheckoutController.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/XhpcClearingCheckoutController.java index a9365a0e..81680628 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/XhpcClearingCheckoutController.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/XhpcClearingCheckoutController.java @@ -4,6 +4,7 @@ package com.xhpc.activity.controller; import com.xhpc.activity.domain.XhpcClearingCheckoutDomain; import com.xhpc.activity.service.XhpcClearingCheckoutService; import com.xhpc.activity.vo.ClearingReceiptVo; +import com.xhpc.common.core.annotation.NoRepeatSubmit; import com.xhpc.common.core.domain.R; import com.xhpc.common.core.exception.CustomException; import com.xhpc.common.core.utils.StringUtils; @@ -81,6 +82,7 @@ public class XhpcClearingCheckoutController extends BaseController { @GetMapping("/temp") + public R getTmpCheckoutData(HttpServletRequest request) { LoginUser loginUser = logUserUtils.getLogUser(request); @@ -95,6 +97,7 @@ public class XhpcClearingCheckoutController extends BaseController { @Log(title = "清分管理-新增提现申请", businessType = BusinessType.INSERT) @PostMapping("/") + @NoRepeatSubmit(lockTime = 5) public R insertDomain(HttpServletRequest request, @RequestBody XhpcClearingCheckoutDomain domain) { LoginUser loginUser = logUserUtils.getLogUser(request); diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/domain/XhpcClearingHistoryOrderDomain.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/domain/XhpcClearingHistoryOrderDomain.java index b3450b24..3782ea52 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/domain/XhpcClearingHistoryOrderDomain.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/domain/XhpcClearingHistoryOrderDomain.java @@ -7,7 +7,7 @@ import lombok.Data; /** * xhpc_clearing_history_order - * @author + * @author */ @Data public class XhpcClearingHistoryOrderDomain implements Serializable { @@ -312,7 +312,7 @@ public class XhpcClearingHistoryOrderDomain implements Serializable { */ private Date checkTime; - + private String accountPhone; private String stationName; @@ -321,4 +321,4 @@ public class XhpcClearingHistoryOrderDomain implements Serializable { private String chargingModeName; private static final long serialVersionUID = 1L; -} \ No newline at end of file +} diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/XhpcClearingCheckoutService.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/XhpcClearingCheckoutService.java index 904ba326..e02d5e63 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/XhpcClearingCheckoutService.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/XhpcClearingCheckoutService.java @@ -2,6 +2,7 @@ package com.xhpc.activity.service; import com.xhpc.activity.domain.XhpcClearingCheckoutDomain; import com.xhpc.activity.vo.ClearingReceiptVo; +import com.xhpc.common.core.domain.R; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @@ -16,7 +17,7 @@ public interface XhpcClearingCheckoutService { XhpcClearingCheckoutDomain getDomainByPk(Long checkoutId); - Map getTmpCheckoutData(Long operatorId); + R getTmpCheckoutData(Long operatorId); boolean insertDomain(XhpcClearingCheckoutDomain domain); diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkOrderServiceImpl.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkOrderServiceImpl.java index 78f158d6..7458f102 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkOrderServiceImpl.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkOrderServiceImpl.java @@ -344,7 +344,7 @@ public class WorkOrderServiceImpl implements WorkOrderService { HashMap paramMap = new HashMap<>(); paramMap.put("orderNo", orderId); paramMap.put("phone", phoneList); - paramMap.put("content", "【小华充电】您好,您有新的工单(工单号:" + orderId + ")待处理,请及时登陆后台查看并处理,谢谢。"); + paramMap.put("content", "【翔桦充电】您好,您有新的工单(工单号:" + orderId + ")待处理,请及时登陆后台查看并处理,谢谢。"); R r = smsService.sendNotice(paramMap); XhpcWorkOrderPushMessageDomain messageDomain = new XhpcWorkOrderPushMessageDomain(); diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcClearingBankServiceImpl.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcClearingBankServiceImpl.java index 1a050fba..5cf24886 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcClearingBankServiceImpl.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcClearingBankServiceImpl.java @@ -129,7 +129,7 @@ public class XhpcClearingBankServiceImpl implements XhpcClearingBankService { HashMap paramMap = new HashMap<>(); paramMap.put("phone", phone); paramMap.put("code", random); - paramMap.put("content", "【小华充电】您的动态码为:" + random + ",您正在进行提现到银行账户操作,如非本人操作,请忽略本短信!"); + paramMap.put("content", "【翔桦充电】您的动态码为:" + random + ",您正在进行提现到银行账户操作,如非本人操作,请忽略本短信!"); smsService.sendNotice(paramMap); String key = "opcash:" + phone; diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcClearingCheckoutServiceImpl.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcClearingCheckoutServiceImpl.java index cb12d687..13edfd91 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcClearingCheckoutServiceImpl.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcClearingCheckoutServiceImpl.java @@ -17,6 +17,7 @@ import com.xhpc.activity.task.AsyncService; import com.xhpc.activity.utils.DownloadUtil; import com.xhpc.activity.vo.CheckoutBankVo; import com.xhpc.activity.vo.ClearingReceiptVo; +import com.xhpc.common.core.domain.R; import com.xhpc.common.core.exception.CustomException; import com.xhpc.common.core.utils.SecurityUtils; import com.xhpc.common.core.utils.StringUtils; @@ -42,6 +43,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -110,7 +112,7 @@ public class XhpcClearingCheckoutServiceImpl extends BaseService implements Xhpc } @Override - public Map getTmpCheckoutData(Long operatorId) { + public R getTmpCheckoutData(Long operatorId) { XhpcClearingBankDomain bankDomain = bankMapper.selectOneByOperatorId(operatorId.toString()); if (bankDomain == null) { throw new CustomException("请先输入一个有效的提现账户"); @@ -141,7 +143,7 @@ public class XhpcClearingCheckoutServiceImpl extends BaseService implements Xhpc resultMap.put("receivedServiceAmount", receivedServiceAmount); resultMap.put("receivedAmount", powerAmount.add(receivedServiceAmount).compareTo(BigDecimal.ZERO) >= 0 ? powerAmount.add(receivedServiceAmount) : BigDecimal.ZERO); resultMap.put("clearingBankId", bankDomain.getClearingBankId()); - return resultMap; + return R.ok(resultMap); } @@ -163,6 +165,14 @@ public class XhpcClearingCheckoutServiceImpl extends BaseService implements Xhpc } else { bankDomain = bankMapper.selectByPrimaryKey(domain.getClearingBankId()); } + //提交申请提现后需要等待10分钟 + + String keys = "tixian:" + bankDomain.getContactPhone(); + if(redisService.getCacheObject(keys)==null){ + redisService.setCacheObject(keys, bankDomain.getContactPhone(), 600L, TimeUnit.SECONDS); + }else{ + throw new CustomException("已申请提现,系统在计算中请等待"); + } String key = "opcash:" + bankDomain.getContactPhone(); String redisCode = redisService.getCacheObject(key); diff --git a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcClearingHistoryOrderMapper.xml b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcClearingHistoryOrderMapper.xml index eb9f59e3..bb2b2dfb 100644 --- a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcClearingHistoryOrderMapper.xml +++ b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcClearingHistoryOrderMapper.xml @@ -140,10 +140,7 @@ ifnull(sum(ho.act_power_price + ho.act_service_price), 0) as 'totalPrice', ho.start_time as 'startTime', ho.end_time as 'endTime', - inu.phone as internetUserPhone, - apu.phone as appUserPhone, - cop.account as communityAccount, - cup.account as customersAccount, + ho.phone as phone, CASE WHEN cc.STATUS = 1 THEN '提现中' WHEN cc.STATUS = 6 THEN '已提现' ELSE @@ -167,16 +164,12 @@ from xhpc_clearing_history_order ho left join xhpc_charging_station ct on ct.charging_station_id = ho.charging_station_id left join xhpc_clearing_checkout cc on ho.clearing_checkout_id=cc.clearing_checkout_id - left join xhpc_internet_user as inu on inu.internet_user_id = ho.user_id and ho.internet_serial_number is not null and ho.source=1 - left join xhpc_app_user as apu on apu.app_user_id = ho.user_id and ho.internet_serial_number is null and ho.source=0 - left join xhpc_community_personnel as cop on cop.community_personnel_id = ho.user_id and ho.internet_serial_number is null and ho.source=2 - left join xhpc_customers_personnel as cup on cup.customers_personnel_id = ho.user_id and ho.internet_serial_number is null and ho.source=3 where ho.del_flag=0 - and ct.tenant_id=#{params.tenantId} + and ho.tenant_id=#{params.tenantId} - and ct.operator_id=#{params.operatorId} + and ho.operator_id=#{params.operatorId} and ho.serial_number like concat('%',#{params.orderNo},'%') @@ -197,7 +190,7 @@ and ct.name =concat('%', #{params.stationName}, '%') - and ct.charging_station_id =#{params.stationId} + and ho.charging_station_id =#{params.stationId} and ho.end_time = ]]> #{params.startTime} @@ -762,4 +755,4 @@ order by ho.create_time desc - \ No newline at end of file + diff --git a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcHistoryOrderMapper.xml b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcHistoryOrderMapper.xml index 1747d5ba..f22eb3ea 100644 --- a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcHistoryOrderMapper.xml +++ b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcHistoryOrderMapper.xml @@ -74,7 +74,7 @@ ho.meter_value_start_evcs, ho.operator_id3rdpty_evcs, ho.start_time, ho.end_time, ho.stop_reason_evcs, ho.total_power, ho.user_name_evcs, ho.phone, ho.evcs_order_no, ho.confirm_Result, ho.rate_model_id, ho.charging_mode, ho.internet_degree_commission, ho.`source`, ho.tenant_id, ho.activity_power_price_total, - ho.activity_service_price_total, ho.activity_total_price + ho.activity_service_price_total,ho.phone,ho.activity_total_price diff --git a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/impl/AnalyzeTheMessageServiceImpl.java b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/impl/AnalyzeTheMessageServiceImpl.java index 4535db09..20ee9045 100644 --- a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/impl/AnalyzeTheMessageServiceImpl.java +++ b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/impl/AnalyzeTheMessageServiceImpl.java @@ -2445,10 +2445,9 @@ public class AnalyzeTheMessageServiceImpl implements IAnalyzeTheMessageService { list.add(map001); idxStart = idxStart+2; - int t3 = HexUtils.reverseHexInt(content.substring(idxStart, 16 + idxStart)); Map map3 =new LinkedHashMap<>(); map3.put("title","逻辑卡号(平台卡序列号,类似于桩号)"); - map3.put("content",t3); + map3.put("content",content.substring(idxStart, 16 + idxStart)); list.add(map3); idxStart = idxStart+16; @@ -2463,16 +2462,16 @@ public class AnalyzeTheMessageServiceImpl implements IAnalyzeTheMessageService { Map map6 =new LinkedHashMap<>(); map6.put("title","鉴权成功标志"); if(t6==0){ - map6.put("content","成功"); - }else{ map6.put("content","失败"); + }else{ + map6.put("content","成功"); } list.add(map6); idxStart = idxStart+2; int t7= HexUtils.reverseHexInt(content.substring(idxStart, 2 + idxStart)); Map map7 =new LinkedHashMap<>(); - map7.put("title","鉴权成功标志"); + map7.put("title","失败原因"); if(t7==0){ map7.put("content","成功"); }else if(t7==1){ @@ -2955,7 +2954,7 @@ public class AnalyzeTheMessageServiceImpl implements IAnalyzeTheMessageService { Map map211 =new LinkedHashMap<>(); map211.put("title","消费金额"); map211.put("content",new BigDecimal(t211).divide(new BigDecimal(10000)).setScale(4,BigDecimal.ROUND_DOWN)+"元"); - list.add(map21); + list.add(map211); // idxStart = idxStart+8; // Map map221 =new LinkedHashMap<>(); @@ -2994,27 +2993,18 @@ public class AnalyzeTheMessageServiceImpl implements IAnalyzeTheMessageService { Map map27 =new LinkedHashMap<>(); map27.put("title","交易日期、时间"); map27.put("content", DateUtil.format(CP56Time2a.cp56toDate(content.substring(idxStart, 14 + idxStart)), NORM_DATETIME_FORMATTER)); - list.add(map3); + list.add(map27); idxStart = idxStart+14; - int t28= HexUtils.reverseHexInt(content.substring(idxStart, 2+ idxStart)); Map map28=new LinkedHashMap<>(); - map28.put("title","交易标识"); - if(t28==1){ - map28.put("content","app 启动"); - }else if(t26==2){ - map28.put("content","卡启动"); - }else if(t26==4){ - map28.put("content","离线卡启动"); - }else{ - map28.put("content","vin 码启动充电"); - } + map28.put("title","停止原因"); + map28.put("content",translate(content.substring(idxStart, 2 + idxStart))); list.add(map28); idxStart = idxStart+2; Map map29 =new LinkedHashMap<>(); - map29.put("title","停止原因"); - map29.put("content",translate(content.substring(idxStart, 2 + idxStart))); + map29.put("title","物理卡号"); + map29.put("content", content.substring(idxStart, 16 + idxStart)); list.add(map29); diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/controller/XhpcChargingStationController.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/controller/XhpcChargingStationController.java index 075774e9..68da7db4 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/controller/XhpcChargingStationController.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/controller/XhpcChargingStationController.java @@ -9,7 +9,6 @@ import com.xhpc.common.core.web.page.TableDataInfo; import com.xhpc.common.domain.XhpcChargingStation; import com.xhpc.common.log.annotation.Log; import com.xhpc.common.log.enums.BusinessType; -import com.xhpc.common.redis.service.RedisService; import com.xhpc.common.security.annotation.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; @@ -18,7 +17,6 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -241,4 +239,10 @@ public class XhpcChargingStationController extends BaseController { xhpcChargingStationService.getchargingMethodList(); } + + @GetMapping("/getXhpcRateTimeOrder") + public R getXhpcRateTimeOrder(Long rateModelId,String startTime, String endTime,String serialNumber){ + return xhpcChargingStationService.getXhpcRateTimeOrder(rateModelId,startTime,endTime,serialNumber); + } + } diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/mapper/XhpcChargingStationMapper.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/mapper/XhpcChargingStationMapper.java index 63154251..5a7b7e0c 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/mapper/XhpcChargingStationMapper.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/mapper/XhpcChargingStationMapper.java @@ -5,6 +5,7 @@ import com.xhpc.common.domain.XhpcChargingStation; import com.xhpc.common.domain.XhpcRate; import com.xhpc.common.domain.XhpcRateModel; import com.xhpc.common.domain.XhpcRateTime; +import com.xhpc.common.dto.XhpcRateTimeDto; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -283,4 +284,6 @@ public interface XhpcChargingStationMapper { List> getchargingMethodList(); + List getReatTimeList(@Param("startTime")String startTime, @Param("endTime")String endTime, @Param("rateModelId")Long rateModelId); + } diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcChargingStationService.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcChargingStationService.java index 197bcdfb..47b783da 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcChargingStationService.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcChargingStationService.java @@ -260,4 +260,6 @@ public interface IXhpcChargingStationService { void getchargingMethodList(); + R getXhpcRateTimeOrder(Long rateModelId,String startTime, String endTime,String serialNumber); + } diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java index 3633dfb7..e643e3d2 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java @@ -2,8 +2,6 @@ package com.xhpc.charging.station.service; import cn.hutool.core.date.DateUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; import com.xhpc.charging.station.dto.XhpcActivityDiscountDto; import com.xhpc.charging.station.mapper.XhpcChargingStationMapper; import com.xhpc.charging.station.mapper.XhpcChargingStationPushStatusMapper; @@ -11,7 +9,7 @@ import com.xhpc.common.api.PowerPileService; import com.xhpc.common.api.TenantService; import com.xhpc.common.api.dto.XhpcChargingStationDto; import com.xhpc.common.api.dto.XhpcRateDto; -import com.xhpc.common.api.dto.XhpcRateTimeDto; +import com.xhpc.common.api.dto.XhpcRateTimeDtoYang; import com.xhpc.common.core.domain.R; import com.xhpc.common.core.utils.DateUtils; import com.xhpc.common.core.utils.SecurityUtils; @@ -23,7 +21,6 @@ import com.xhpc.common.redis.service.RedisService; import com.xhpc.common.security.service.TokenService; import com.xhpc.common.util.LogUserUtils; import com.xhpc.common.util.UserTypeUtil; -import com.xhpc.common.util.Utilitys; import com.xhpc.system.api.domain.SysUser; import com.xhpc.system.api.model.LoginUser; import org.slf4j.Logger; @@ -37,7 +34,6 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.util.*; -import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -409,10 +405,10 @@ public class XhpcChargingStationServiceImpl extends BaseService implements IXhpc } } } - List xhpcRateTimeList = xhpcChargingStationDto.getXhpcRateTimeList(); + List xhpcRateTimeList = xhpcChargingStationDto.getXhpcRateTimeList(); for (int i = 0; i < xhpcRateTimeList.size(); i++) { - XhpcRateTimeDto xhpcRateTime = xhpcRateTimeList.get(i); + XhpcRateTimeDtoYang xhpcRateTime = xhpcRateTimeList.get(i); String start = xhpcRateTime.getStartTime(); String end = xhpcRateTime.getEndTime(); String id = xhpcRateTime.getId(); @@ -443,11 +439,11 @@ public class XhpcChargingStationServiceImpl extends BaseService implements IXhpc } //判断是否有重叠 for (int i = 0; i < xhpcRateTimeList.size(); i++) { - XhpcRateTimeDto xhpcRateTimeOne = xhpcRateTimeList.get(i); + XhpcRateTimeDtoYang xhpcRateTimeOne = xhpcRateTimeList.get(i); Date startOne = DateUtil.parse(xhpcRateTimeOne.getStartTime()); Date endOne = DateUtil.parse(xhpcRateTimeOne.getEndTime()); for (int j = i + 1; j < xhpcRateTimeList.size(); j++) { - XhpcRateTimeDto xhpcRateTimeTwo = xhpcRateTimeList.get(j); + XhpcRateTimeDtoYang xhpcRateTimeTwo = xhpcRateTimeList.get(j); Date startTwo = DateUtil.parse(xhpcRateTimeTwo.getStartTime()); Date endTwo = DateUtil.parse(xhpcRateTimeTwo.getEndTime()); if (DateUtil.compare(startOne, endTwo) < 0 && DateUtil.compare(startTwo, endOne) < 0) { @@ -526,11 +522,11 @@ public class XhpcChargingStationServiceImpl extends BaseService implements IXhpc //存费率时段,从Map中获取费率id //每个时间段都要存 //返回计费模型 24:00 转成 00:00 - XhpcRateTimeDto[] xhpcRateTimeDtosArr = new XhpcRateTimeDto[xhpcRateTimeList.size()]; + XhpcRateTimeDtoYang[] xhpcRateTimeDtosArr = new XhpcRateTimeDtoYang[xhpcRateTimeList.size()]; xhpcRateTimeList.toArray(xhpcRateTimeDtosArr); - XhpcRateTimeDto[] xhpcRateTimeDtos = bubbleSort(xhpcRateTimeDtosArr); + XhpcRateTimeDtoYang[] xhpcRateTimeDtos = bubbleSort(xhpcRateTimeDtosArr); //排序好的费率时段 - List list = Arrays.asList(xhpcRateTimeDtos); + List list = Arrays.asList(xhpcRateTimeDtos); //默认时段费率Id Long defaultPeriodId = null; if (xhpcChargingStationDto.getDefaultPeriodId() != null) { @@ -545,7 +541,7 @@ public class XhpcChargingStationServiceImpl extends BaseService implements IXhpc } int sort = 1; for (int k = 0; k < list.size(); k++) { - XhpcRateTimeDto xhpcRateTimeDto = list.get(k); + XhpcRateTimeDtoYang xhpcRateTimeDto = list.get(k); String startTime = xhpcRateTimeDto.getStartTime(); String endTime = xhpcRateTimeDto.getEndTime(); String rateValues = xhpcRateTimeDto.getId(); @@ -1130,10 +1126,10 @@ public class XhpcChargingStationServiceImpl extends BaseService implements IXhpc if (xhpcChargingStationDto.getXhpcRateTimeList() == null && xhpcChargingStationDto.getXhpcRateTimeList().size() == 0) { return AjaxResult.error(1001, "费率时段不能为空"); } - List xhpcRateTimeList = xhpcChargingStationDto.getXhpcRateTimeList(); + List xhpcRateTimeList = xhpcChargingStationDto.getXhpcRateTimeList(); for (int i = 0; i < xhpcRateTimeList.size(); i++) { - XhpcRateTimeDto xhpcRateTime = xhpcRateTimeList.get(i); + XhpcRateTimeDtoYang xhpcRateTime = xhpcRateTimeList.get(i); String start = xhpcRateTime.getStartTime(); String end = xhpcRateTime.getEndTime(); //检查格式,正则验证 【[0-2][0-9]:[0-6][0]:[0]{2}】 @@ -1158,11 +1154,11 @@ public class XhpcChargingStationServiceImpl extends BaseService implements IXhpc } //判断是否有重叠 for (int i = 0; i < xhpcRateTimeList.size(); i++) { - XhpcRateTimeDto xhpcRateTimeOne = xhpcRateTimeList.get(i); + XhpcRateTimeDtoYang xhpcRateTimeOne = xhpcRateTimeList.get(i); Date startOne = DateUtil.parse(xhpcRateTimeOne.getStartTime()); Date endOne = DateUtil.parse(xhpcRateTimeOne.getEndTime()); for (int j = i + 1; j < xhpcRateTimeList.size(); j++) { - XhpcRateTimeDto xhpcRateTimeTwo = xhpcRateTimeList.get(j); + XhpcRateTimeDtoYang xhpcRateTimeTwo = xhpcRateTimeList.get(j); Date startTwo = DateUtil.parse(xhpcRateTimeTwo.getStartTime()); Date endTwo = DateUtil.parse(xhpcRateTimeTwo.getEndTime()); if (DateUtil.compare(startOne, endTwo) < 0 && DateUtil.compare(startTwo, endOne) < 0) { @@ -1222,11 +1218,11 @@ public class XhpcChargingStationServiceImpl extends BaseService implements IXhpc //存费率时段,从Map中获取费率id //每个时间段都要存 //返回计费模型 24:00 转成 00:00 - XhpcRateTimeDto[] xhpcRateTimeDtosArr = new XhpcRateTimeDto[xhpcRateTimeList.size()]; + XhpcRateTimeDtoYang[] xhpcRateTimeDtosArr = new XhpcRateTimeDtoYang[xhpcRateTimeList.size()]; xhpcRateTimeList.toArray(xhpcRateTimeDtosArr); - XhpcRateTimeDto[] xhpcRateTimeDtos = bubbleSort(xhpcRateTimeDtosArr); + XhpcRateTimeDtoYang[] xhpcRateTimeDtos = bubbleSort(xhpcRateTimeDtosArr); //排序好的费率时段 - List list = Arrays.asList(xhpcRateTimeDtos); + List list = Arrays.asList(xhpcRateTimeDtos); //默认时段费率Id Long defaultPeriodId = null; if (xhpcChargingStationDto.getDefaultPeriodId() != null) { @@ -1241,7 +1237,7 @@ public class XhpcChargingStationServiceImpl extends BaseService implements IXhpc } int sort = 1; for (int k = 0; k < list.size(); k++) { - XhpcRateTimeDto xhpcRateTimeDto = list.get(k); + XhpcRateTimeDtoYang xhpcRateTimeDto = list.get(k); String startTime = xhpcRateTimeDto.getStartTime(); String endTime = xhpcRateTimeDto.getEndTime(); String rateValues = xhpcRateTimeDto.getId(); @@ -1393,14 +1389,14 @@ public class XhpcChargingStationServiceImpl extends BaseService implements IXhpc return AjaxResult.success(); } - public static XhpcRateTimeDto[] bubbleSort(XhpcRateTimeDto[] args) { + public static XhpcRateTimeDtoYang[] bubbleSort(XhpcRateTimeDtoYang[] args) { //冒泡排序算法 for (int i = 0; i < args.length - 1; i++) { for (int j = i + 1; j < args.length; j++) { String start = args[i].getEndTime(); String end = args[j].getStartTime(); if (DateUtil.parse(start).getTime() > DateUtil.parse(end).getTime()) { - XhpcRateTimeDto temp = args[i]; + XhpcRateTimeDtoYang temp = args[i]; args[i] = args[j]; args[j] = temp; } @@ -1641,4 +1637,14 @@ public class XhpcChargingStationServiceImpl extends BaseService implements IXhpc } } } + + + @Override + public R getXhpcRateTimeOrder(Long rateModelId, String startTime, String endTime,String serialNumber) { + List reatTimeList = xhpcChargingStationMapper.getReatTimeList(startTime, endTime, rateModelId); + Map cacheOrder =new HashMap<>(); + cacheOrder.put(serialNumber,reatTimeList); + redisService.setCacheMap("Yu"+serialNumber,cacheOrder); + return R.ok(); + } } diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcPlaceholderServiceImpl.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcPlaceholderServiceImpl.java index ef1c8c10..7a0409cf 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcPlaceholderServiceImpl.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcPlaceholderServiceImpl.java @@ -4,9 +4,7 @@ import cn.hutool.core.date.DateUtil; import com.xhpc.charging.station.dto.XhpcPlaceholderDto; import com.xhpc.charging.station.dto.XhpcPlaceholderTimeDto; import com.xhpc.charging.station.mapper.XhpcPlaceholderMapper; -import com.xhpc.common.api.dto.XhpcRateTimeDto; import com.xhpc.common.core.domain.R; -import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.service.BaseService; import com.xhpc.common.domain.XhpcPlaceholderTime; import com.xhpc.common.security.service.TokenService; @@ -150,7 +148,7 @@ public class XhpcPlaceholderServiceImpl extends BaseService implements IXhpcPlac addXhpcPlaceholderTime("00:00:00",start,price,placeholderId,chargingStationId); } addXhpcPlaceholderTime(start,end,rateValue,placeholderId,chargingStationId); - if(!endTime.equals("24:00:00")) { + if(!("24:00:00").equals(xhpcPlaceholderTimeDto.getEndTime())) { if(rateValue ==null || "".equals(rateValue)){ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return R.fail("1004", "请填写默认时间段费率"); @@ -190,7 +188,7 @@ public class XhpcPlaceholderServiceImpl extends BaseService implements IXhpcPlac } //并把本条数据也添加上 addXhpcPlaceholderTime(start,end,rateValue,placeholderId,chargingStationId); - if (!end.equals("24:00:00")) { + if (!("24:00:00").equals(xhpcPlaceholderTimeDto.getEndTime())) { if(rateValue ==null || "".equals(rateValue)){ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return R.fail("1004","请填写默认时间段费率"); diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcTimingChargingModelServiceImpl.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcTimingChargingModelServiceImpl.java index ce917dea..6d12f3e5 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcTimingChargingModelServiceImpl.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcTimingChargingModelServiceImpl.java @@ -5,11 +5,9 @@ import com.xhpc.charging.station.mapper.XhpcTimingChargingModelMapper; import com.xhpc.common.api.PowerPileService; import com.xhpc.common.api.SmsService; import com.xhpc.common.api.dto.XhpcRateDto; -import com.xhpc.common.api.dto.XhpcRateTimeDto; +import com.xhpc.common.api.dto.XhpcRateTimeDtoYang; import com.xhpc.common.api.dto.XhpcTimingChargingModelDto; import com.xhpc.common.core.domain.R; -import com.xhpc.common.core.utils.SecurityUtils; -import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.service.BaseService; import com.xhpc.common.data.redis.CacheRateModel; import com.xhpc.common.domain.*; @@ -110,9 +108,9 @@ public class XhpcTimingChargingModelServiceImpl extends BaseService implements I } } } - List xhpcRateTimeList = xhpcTimingChargingModelDto.getXhpcRateTimeList(); + List xhpcRateTimeList = xhpcTimingChargingModelDto.getXhpcRateTimeList(); for (int i = 0; i < xhpcRateTimeList.size(); i++) { - XhpcRateTimeDto xhpcRateTime = xhpcRateTimeList.get(i); + XhpcRateTimeDtoYang xhpcRateTime = xhpcRateTimeList.get(i); String start = xhpcRateTime.getStartTime(); String end = xhpcRateTime.getEndTime(); String id = xhpcRateTime.getId(); @@ -143,11 +141,11 @@ public class XhpcTimingChargingModelServiceImpl extends BaseService implements I } //判断是否有重叠 for (int i = 0; i < xhpcRateTimeList.size(); i++) { - XhpcRateTimeDto xhpcRateTimeOne = xhpcRateTimeList.get(i); + XhpcRateTimeDtoYang xhpcRateTimeOne = xhpcRateTimeList.get(i); Date startOne = DateUtil.parse(xhpcRateTimeOne.getStartTime()); Date endOne = DateUtil.parse(xhpcRateTimeOne.getEndTime()); for (int j = i + 1; j < xhpcRateTimeList.size(); j++) { - XhpcRateTimeDto xhpcRateTimeTwo = xhpcRateTimeList.get(j); + XhpcRateTimeDtoYang xhpcRateTimeTwo = xhpcRateTimeList.get(j); Date startTwo = DateUtil.parse(xhpcRateTimeTwo.getStartTime()); Date endTwo = DateUtil.parse(xhpcRateTimeTwo.getEndTime()); if (DateUtil.compare(startOne, endTwo) < 0 && DateUtil.compare(startTwo, endOne) < 0) { @@ -236,11 +234,11 @@ public class XhpcTimingChargingModelServiceImpl extends BaseService implements I //返回计费模型 24:00 转成 00:00 - XhpcRateTimeDto[] xhpcRateTimeDtosArr = new XhpcRateTimeDto[xhpcRateTimeList.size()]; + XhpcRateTimeDtoYang[] xhpcRateTimeDtosArr = new XhpcRateTimeDtoYang[xhpcRateTimeList.size()]; xhpcRateTimeList.toArray(xhpcRateTimeDtosArr); - XhpcRateTimeDto[] xhpcRateTimeDtos = bubbleSort(xhpcRateTimeDtosArr); + XhpcRateTimeDtoYang[] xhpcRateTimeDtos = bubbleSort(xhpcRateTimeDtosArr); //排序好的费率时段 - List list = Arrays.asList(xhpcRateTimeDtos); + List list = Arrays.asList(xhpcRateTimeDtos); //默认时段费率Id Long defaultPeriodId = null; if (xhpcTimingChargingModelDto.getDefaultPeriodId() != null) { @@ -253,7 +251,7 @@ public class XhpcTimingChargingModelServiceImpl extends BaseService implements I tfPricesSeq[k]=rateValue; } for (int k = 0; k < list.size(); k++) { - XhpcRateTimeDto xhpcRateTimeDto = list.get(k); + XhpcRateTimeDtoYang xhpcRateTimeDto = list.get(k); String startTime = xhpcRateTimeDto.getStartTime(); String endTime = xhpcRateTimeDto.getEndTime(); String rateValues = xhpcRateTimeDto.getId(); @@ -600,14 +598,14 @@ public class XhpcTimingChargingModelServiceImpl extends BaseService implements I return R.ok(); } - public static XhpcRateTimeDto[] bubbleSort(XhpcRateTimeDto[] args) { + public static XhpcRateTimeDtoYang[] bubbleSort(XhpcRateTimeDtoYang[] args) { //冒泡排序算法 for (int i = 0; i < args.length - 1; i++) { for (int j = i + 1; j < args.length; j++) { String start = args[i].getEndTime(); String end = args[j].getStartTime(); if (DateUtil.parse(start).getTime() > DateUtil.parse(end).getTime()) { - XhpcRateTimeDto temp = args[i]; + XhpcRateTimeDtoYang temp = args[i]; args[i] = args[j]; args[j] = temp; } diff --git a/xhpc-modules/xhpc-charging-station/src/main/resources/bootstrap.yml b/xhpc-modules/xhpc-charging-station/src/main/resources/bootstrap.yml index 612ac0a0..3f8dbfb2 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/resources/bootstrap.yml +++ b/xhpc-modules/xhpc-charging-station/src/main/resources/bootstrap.yml @@ -37,22 +37,22 @@ oss: secret-key: 5kFEaIFE7eeODxKQwD5mvTRF48MK6w bucket-name: xhpc-bucket1 #二维码Logo图片获取位置: -imgPath: "D:\\Enterprise_Resources\\XiaoHuaMaterialImgs\\logo.png" -#imgPath: "/www/wwwroot/scxhua.cn/xhpc-charging-stion/logo.png" +#imgPath: "D:\\Enterprise_Resources\\XiaoHuaMaterialImgs\\logo.png" +imgPath: "/www/wwwroot/scxhua.cn/xhpc-charging-stion/logo.png" #imgPath: "/www/wwwroot/xhpc.scxhua.com/xhpc-charging-stion/logo.png" #生成的二维码存放位置: -destPath: "D:\\Enterprise_Resources\\XiaoHuaFullImgs" -#destPath: "/www/wwwroot/scxhua.cn/xhpc-charging-stion/XiaoHuaFullImgs" +#destPath: "D:\\Enterprise_Resources\\XiaoHuaFullImgs" +destPath: "/www/wwwroot/scxhua.cn/xhpc-charging-stion/XiaoHuaFullImgs" #destPath: "/www/wwwroot/xhpc.scxhua.com/xhpc-charging-stion/XiaoHuaFullImgs" #生成的最终完整图片的存放位置: -fullImgDestPath: "D:\\Enterprise_Resources\\XiaoHuaFullImgs\\" -#fullImgDestPath: "/www/wwwroot/scxhua.cn/xhpc-charging-stion/XiaoHuaFullImgs/" +#fullImgDestPath: "D:\\Enterprise_Resources\\XiaoHuaFullImgs\\" +fullImgDestPath: "/www/wwwroot/scxhua.cn/xhpc-charging-stion/XiaoHuaFullImgs/" #fullImgDestPath: "/www/wwwroot/xhpc.scxhua.com/xhpc-charging-stion/XiaoHuaFullImgs/" #底图图片存放位置: -bottomImg: "D:\\Enterprise_Resources\\XiaoHuaMaterialImgs\\BottomImg.png" -#bottomImg: "/www/wwwroot/scxhua.cn/xhpc-charging-stion/BottomImg.png" +#bottomImg: "D:\\Enterprise_Resources\\XiaoHuaMaterialImgs\\BottomImg.png" +bottomImg: "/www/wwwroot/scxhua.cn/xhpc-charging-stion/BottomImg.png" #bottomImg: "/www/wwwroot/xhpc.scxhua.com/xhpc-charging-stion/BottomImg.png" #生成的二维码zip包位置 -zipLocation: "D:\\Enterprise_Resources\\QrZip" -#zipLocation: "/www/wwwroot/scxhua.cn/dist" +#zipLocation: "D:\\Enterprise_Resources\\QrZip" +zipLocation: "/www/wwwroot/scxhua.cn/dist" #zipLocation: "/www/wwwroot/xhpc.scxhua.com/dist" diff --git a/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcChargingStationMapper.xml b/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcChargingStationMapper.xml index a9541e7c..0f9d4ef4 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcChargingStationMapper.xml +++ b/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcChargingStationMapper.xml @@ -79,6 +79,24 @@ + + + + + + + + + + + + + + + + + + select charging_station_id, name, @@ -1506,4 +1524,28 @@ charging_method as chargingNethod from xhpc_charging_station where del_flag=0 and charging_method is not null + + diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/ChargingStationService.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/ChargingStationService.java index cb6bcfb8..409f7f03 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/ChargingStationService.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/ChargingStationService.java @@ -33,4 +33,8 @@ public interface ChargingStationService { @PostMapping("/requirementInfo/addNotificationTask") R addNotificationTask(@RequestParam("taskName") String taskName,@RequestParam("taskCode") String taskCode,@RequestParam("demandDate") String demandDate,@RequestParam("stationID") String stationID,@RequestParam("operatorID") String operatorID,@RequestParam("equipmentOwnerID") String equipmentOwnerID,@RequestParam("eleNo") String eleNo,@RequestParam("list") String list,@RequestParam("deliveryTime") String deliveryTime); + @GetMapping("/station/getXhpcRateTimeOrder") + R getXhpcRateTimeOrder(@RequestParam(value = "rateModelId")Long rateModelId,@RequestParam(value = "startTime") String startTime,@RequestParam(value = "endTime") String endTime,@RequestParam(value = "serialNumber") String serialNumber); + + } diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/ChargingStationDto.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/ChargingStationDto.java index 1326840d..7a1a0314 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/ChargingStationDto.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/ChargingStationDto.java @@ -1,5 +1,6 @@ package com.xhpc.common.api.dto; +import java.util.Arrays; import java.util.Set; public class ChargingStationDto { @@ -18,6 +19,8 @@ public class ChargingStationDto { private String serviceTel; private String parkFee; private Integer parkNums; + + private String [] pictures; /** * 装机总功率(单位:kw) */ @@ -182,6 +185,14 @@ public class ChargingStationDto { this.parkFee = parkFee; } + public String[] getPictures() { + return pictures; + } + + public void setPictures(String[] pictures) { + this.pictures = pictures; + } + @Override public String toString() { return "ChargingStationDto{" + @@ -199,6 +210,7 @@ public class ChargingStationDto { ", serviceTel='" + serviceTel + '\'' + ", parkFee='" + parkFee + '\'' + ", parkNums=" + parkNums + + ", pictures=" + Arrays.toString(pictures) + ", installedTotalPower=" + installedTotalPower + ", runningTotalPower=" + runningTotalPower + '}'; diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/XhpcChargingStationDto.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/XhpcChargingStationDto.java index 94e105cc..4a74e826 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/XhpcChargingStationDto.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/XhpcChargingStationDto.java @@ -10,7 +10,7 @@ public class XhpcChargingStationDto extends XhpcChargingStation { List xhpcRateList; //费率时段 - List xhpcRateTimeList; + List xhpcRateTimeList; //默认时段费率 String defaultPeriodId; @@ -25,12 +25,12 @@ public class XhpcChargingStationDto extends XhpcChargingStation { this.xhpcRateList = xhpcRateList; } - public List getXhpcRateTimeList() { + public List getXhpcRateTimeList() { return xhpcRateTimeList; } - public void setXhpcRateTimeList(List xhpcRateTimeList) { + public void setXhpcRateTimeList(List xhpcRateTimeList) { this.xhpcRateTimeList = xhpcRateTimeList; } diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/XhpcRateTimeDto.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/XhpcRateTimeDtoYang.java similarity index 89% rename from xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/XhpcRateTimeDto.java rename to xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/XhpcRateTimeDtoYang.java index ea56e0fd..fc110013 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/XhpcRateTimeDto.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/XhpcRateTimeDtoYang.java @@ -1,12 +1,10 @@ package com.xhpc.common.api.dto; -import java.util.Date; - /** - * 费率时段 + * @author yuyang + * @Date 2025-12-18 11:00 */ -public class XhpcRateTimeDto { - +public class XhpcRateTimeDtoYang { /** 启始时间 */ private String startTime; @@ -45,5 +43,4 @@ public class XhpcRateTimeDto { this.id = id; } - } diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/XhpcTimingChargingModelDto.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/XhpcTimingChargingModelDto.java index 06dd964a..0ffcf55a 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/XhpcTimingChargingModelDto.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/dto/XhpcTimingChargingModelDto.java @@ -16,7 +16,7 @@ public class XhpcTimingChargingModelDto extends XhpcTimingChargingModel { List xhpcRateList; //费率时段 - List xhpcRateTimeList; + List xhpcRateTimeList; //默认时段费率 String defaultPeriodId; diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/ChargingStationServiceFactory.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/ChargingStationServiceFactory.java index 8f10e9e2..b5817796 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/ChargingStationServiceFactory.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/ChargingStationServiceFactory.java @@ -50,6 +50,11 @@ public class ChargingStationServiceFactory implements FallbackFactory paramMap = new HashMap<>(); paramMap.put("phone", "18123374652"); paramMap.put("number", "45634654"); - paramMap.put("content", "【小华充电订单异常】尊敬的管理员,用户退款订单:741258963,有问题请速速查看。"); + paramMap.put("content", "【翔桦充电订单异常】尊敬的管理员,用户退款订单:741258963,有问题请速速查看。"); String templateParam = JSONUtil.toJsonStr(paramMap); sendSmsRequest.setTemplateParam(templateParam); SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest); @@ -314,7 +314,7 @@ public class XhpcSmsServiceImpl implements IXhpcSmsService { //存放后面需要使用的返回值 HashMap valueParam = new HashMap<>(); valueParam.put("statusCode", statusCode); - valueParam.put("templateContent", "【小华充电订单异常】尊敬的管理员,用户退款订单:324324324,有问题请速速查看。"); + valueParam.put("templateContent", "【翔桦充电订单异常】尊敬的管理员,用户退款订单:324324324,有问题请速速查看。"); valueParam.put("jsonResult", jsonResult); System.out.println("====valueParam======"+valueParam.toString()); diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/util/sms/SmsUtil.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/util/sms/SmsUtil.java index e17407ae..6f2d33da 100644 --- a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/util/sms/SmsUtil.java +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/util/sms/SmsUtil.java @@ -42,7 +42,7 @@ public class SmsUtil { com.aliyun.dysmsapi20170525.Client client = SmsUtil.createClient(accessKeyId, accessKeySecret); SendSmsRequest sendSmsRequest = new SendSmsRequest() .setPhoneNumbers("18123374652") - .setSignName("小华充电订单异常") + .setSignName("翔桦充电订单异常") .setTemplateCode("SMS_462691150") .setTemplateParam("尊敬的管理员,用户退款订单:458765465461,有问题请速速查看。"); // 复制代码运行请自行打印 API 的返回值 diff --git a/xhpc-modules/xhpc-order/pom.xml b/xhpc-modules/xhpc-order/pom.xml index 971109ab..bc3512b3 100644 --- a/xhpc-modules/xhpc-order/pom.xml +++ b/xhpc-modules/xhpc-order/pom.xml @@ -128,13 +128,6 @@ ${alipay.sdk.message} - - - - - - - diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java index 00e5225e..a7c482e5 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java @@ -26,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; import java.util.concurrent.TimeUnit; @@ -365,6 +366,36 @@ public class XhpcPileOrderController extends BaseController { keysMap.put("identical","0"); } number++; + try{ + if(number==9 || number==20){ + Integer source = xhpcChargeOrder.getSource(); + //当number=9、20时,判断一次用户金额与当前下发余额是否相等,不相等停止充电 + if(!UserTypeUtil.INTERNET_TYPE.equals(source)){ + Object amountObj = redisService.getCacheObject("YE"+xhpcChargeOrder.getSerialNumber()); + boolean stop =true; + if(amountObj !=null ){ + BigDecimal balance1 =new BigDecimal(amountObj.toString()); + if(cacheMap.get("initBalance") !=null){ + BigDecimal bigDecimal = new BigDecimal(cacheMap.get("initBalance").toString()).divide(new BigDecimal(10000)).setScale(2, BigDecimal.ROUND_CEILING); + if(balance1.compareTo(bigDecimal)!=0){ + stop =false; + } + } + } + if(!stop){ + String substring = orderNo.substring(0, 14); + xhpcChargeOrder.setRemark("获取用户金额失败"); + xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder); + powerPileService.stopCharging(orderNo, substring,orderNo.substring(0, 16), "0C"); + System.out.println("=============获取用户金额失败====平台下发停止充电=========="+xhpcChargeOrder.getSerialNumber()); + return R.fail(500,"充电桩校验故障"); + } + } + } + + }catch (Exception e){ + + } } keysMap.put("orderNo",cacheRealtimeData.getOrderNo()); @@ -1130,4 +1161,32 @@ public R pileStartUpBy3rd(@RequestParam(value = "internetSerialNumber") String i } + @GetMapping("/getUserMoney") + public void getUserMoney(Integer number,String serialNumber,Integer source,Long userId ){ + if(number==9 || number==20){ + Map cacheMap = redisService.getCacheMap("order:"+serialNumber); + //当number=9、20时,判断一次用户金额与当前下发余额是否相等,不相等停止充电 + if(!UserTypeUtil.INTERNET_TYPE.equals(source)){ + String keyUser =serialNumber+":"+userId; + Object amountObj = redisService.getCacheObject(keyUser); + boolean stop =true; + if(amountObj !=null ){ + BigDecimal balance1 =new BigDecimal(amountObj.toString()); + if(cacheMap.get("initBalance") !=null){ + BigDecimal bigDecimal = new BigDecimal(cacheMap.get("initBalance").toString()).divide(new BigDecimal(10000)).setScale(2, BigDecimal.ROUND_CEILING); + if(balance1.compareTo(bigDecimal)!=0){ + stop =false; + } + } + }else{ + //停止充电 + } + if(!stop){ + System.out.println("=============获取用户金额失败====平台下发停止充电=========="); + } + } + } + } + + } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java index 41648e80..5a89ce29 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java @@ -8,6 +8,8 @@ import com.xhpc.common.core.domain.R; import com.xhpc.common.core.web.controller.BaseController; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.page.TableDataInfo; +import com.xhpc.common.log.annotation.Log; +import com.xhpc.common.log.enums.BusinessType; import com.xhpc.common.redis.service.RedisService; import com.xhpc.order.domain.XhpcHistoryOrder; import com.xhpc.order.domain.XhpcStatisticsStation; @@ -23,7 +25,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; @@ -1218,6 +1222,12 @@ public class XhpcHistoryOrderController extends BaseController { } - + @PostMapping("/file/upload") + public R fileUpload(HttpServletRequest request, HttpServletResponse response, MultipartFile file, int type, String startTime, String endTime) throws Exception { + if (file ==null || type < 1){ + return R.fail("文件或者对账类型为空"); + } + return xhpcHistoryOrderService.fileUpload(request,response,"000000", file, type, startTime, endTime); + } } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcPileRegularInspectController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcPileRegularInspectController.java index 7f806abc..7fc00e60 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcPileRegularInspectController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcPileRegularInspectController.java @@ -44,7 +44,7 @@ public class XhpcPileRegularInspectController extends BaseController { //校时效价定时任务 @GetMapping("/getTimingPriceTime") - @Scheduled(cron = "0 0/3 * * * ?") + @Scheduled(cron = "0 0/1 * * * ?") public void getTimingPriceTime() { xhpcPileRegularInspectService.getTimingPriceTime(); diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcPlaceholderOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcPlaceholderOrderController.java index 7c28740a..dfbd4c59 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcPlaceholderOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcPlaceholderOrderController.java @@ -5,12 +5,16 @@ import com.xhpc.common.core.domain.R; import com.xhpc.common.core.web.controller.BaseController; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.page.TableDataInfo; +import com.xhpc.common.log.annotation.Log; +import com.xhpc.common.log.enums.BusinessType; import com.xhpc.order.service.IXhpcPlaceholderOrderService; +import com.xhpc.system.api.model.LoginUser; import io.swagger.annotations.Api; import io.swagger.annotations.Scope; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -46,7 +50,7 @@ public class XhpcPlaceholderOrderController extends BaseController { } @GetMapping("/getAbnormalListPage") - public TableDataInfo getAbnormalListPage(String tenantId, Long chargingStationId, Long chargingPileId, Long terminalId, String phone, String transactionNumber, @RequestParam("status")Integer status, String chargingStationName, Long operatorId, Integer source, String beginStartTime, String beginEndTime, @RequestParam("userId") Long userId, Integer type, + public TableDataInfo getAbnormalListPage(String tenantId, Long chargingStationId, Long chargingPileId, Long terminalId, String phone, String transactionNumber,Integer status, String chargingStationName, Long operatorId, Integer source, String beginStartTime, String beginEndTime, Long userId, Integer type, String affiliationOrganization, String evcsOrderNo, String plateNum, Integer internetId, String internetSerialNumber, String terminalName, String vinCode, String overStartTime, String overEndTime, Long personnelId, Integer confirmResult) { @@ -106,8 +110,14 @@ public class XhpcPlaceholderOrderController extends BaseController { xhpcPlaceholderOrderService.getAbnormal(); } + //查询标记为状态 type=3,手动处理的订单 + @Scheduled(cron = "0 0/5 * * * ? ") + public void getType() { + xhpcPlaceholderOrderService.getType(); + } + //查询异常订单枪状态 - @Scheduled(cron = "0 0/1 * * * ? ") + // @Scheduled(cron = "0 0/1 * * * ? ") public void getAbnormalTime() { xhpcPlaceholderOrderService.getAbnormalTime(); } @@ -233,6 +243,7 @@ public class XhpcPlaceholderOrderController extends BaseController { return R.fail(HttpStatus.ERROR_STATUS, "修改失败"); } + //C端机构用户 @PostMapping("/applyPlaceholderOrderProcess") public R applyPlaceholderOrderProcess(HttpServletRequest request,@RequestBody Map map) { if (map != null) { @@ -249,16 +260,64 @@ public class XhpcPlaceholderOrderController extends BaseController { } String appealResult = map.get("appealResult").toString(); + String imgId = ""; + if(map.get("imgId") !=null){ + imgId = map.get("imgId").toString(); + } - return xhpcPlaceholderOrderService.applyPlaceholderOrderProcess(request,placeholderOrderId,actPrice,refundType,appealResult); + return xhpcPlaceholderOrderService.applyPlaceholderOrderProcess(request,placeholderOrderId,actPrice,refundType,appealResult,imgId); } return R.fail(HttpStatus.ERROR_STATUS, "修改失败"); } + //流量方 + @PostMapping("/applyPlaceholderOrderInternetProcess") + public R applyPlaceholderOrderInternetProcess(HttpServletRequest request,@RequestBody Map map) { + if (map != null) { + Long placeholderOrderId = Long.parseLong(map.get("placeholderOrderId").toString()); + String refundType = map.get("refundType").toString(); + BigDecimal actPrice =new BigDecimal(0); + if(!"reject".equals(refundType)){ + + if("full".equals(refundType)){ + actPrice = new BigDecimal(map.get("totalMoney").toString()); + }else if("partial".equals(refundType)){ + actPrice = new BigDecimal(map.get("refundAmount").toString()); + } + } + + String appealResult = map.get("appealResult").toString(); + String ingId = ""; + if(map.get("ingId") !=null){ + ingId = map.get("ingId").toString(); + } + return xhpcPlaceholderOrderService.applyPlaceholderOrderInternetProcess(request,placeholderOrderId,actPrice,refundType,appealResult,ingId); + } + return R.fail(HttpStatus.ERROR_STATUS, "修改失败"); + } + + @GetMapping("/appealPlaceholderOrderListPC") public TableDataInfo appealPlaceholderOrderListPC(HttpServletRequest request,String tenantId,Long operatorId,String name, Integer type, String serialNumber, Long chargingStationId){ List> listPage =xhpcPlaceholderOrderService.appealPlaceholderOrderListPC(request,tenantId,operatorId,name, type, serialNumber, chargingStationId); return getDataTable(listPage); } + + + @Log(title = "上传对账单(文件方式)", businessType = BusinessType.INSERT) + @PostMapping("/file/upload") + public R fileUpload(HttpServletRequest request, HttpServletResponse response, MultipartFile file, int type, String startTime, String endTime) throws Exception { + if (file ==null || type < 1){ + return R.fail("文件或者对账类型为空"); + } + return xhpcPlaceholderOrderService.fileUpload(request,response,"000000", file, type, startTime, endTime); + } + + @GetMapping("/deviceMessageList") + public TableDataInfo deviceMessageList(@RequestParam String serialNumber) + { + List> list = xhpcPlaceholderOrderService.deviceMessageList(serialNumber); + return getDataTable(list); + } } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcHistoryOrderChargeDetails.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcHistoryOrderChargeDetails.java new file mode 100644 index 00000000..1104ea7e --- /dev/null +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/domain/XhpcHistoryOrderChargeDetails.java @@ -0,0 +1,47 @@ +package com.xhpc.order.domain; + +import com.xhpc.common.core.web.domain.BaseEntity; +import lombok.Data; + +/** + * 历史订单收费明细 + * + * @author yuyang + * @Date 2025-12-17 11:47 + */ +@Data +public class XhpcHistoryOrderChargeDetails extends BaseEntity { + + private Long historyOrderChargeDetailsId; + + private Long historyOrdersId; + + private String detailStartTime; + + private String detailEndTime; + + private Double elecPrice; + + private Double sevicePrice; + + private Double detailPower; + + private Double detailElecMoney; + + private Double detailSeviceMoney; + + private String startTime; + + private String endTime; + + private Double totalPower; + + private Double totalElecMoney; + + private Double totalSeviceMoney; + + private Double totalMoney; + + private Integer status; + +} diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/FeeDifferenceDto.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/FeeDifferenceDto.java new file mode 100644 index 00000000..803cd047 --- /dev/null +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/FeeDifferenceDto.java @@ -0,0 +1,28 @@ +package com.xhpc.order.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 占位费Excel错误集 + * + * @author yuyang + * @Date 2025-10-21 15:45 + */ +@Data +public class FeeDifferenceDto { + private String orderId; + private BigDecimal excelFee; // Excel中的金额 + private BigDecimal dbFee; // 数据库中的金额 + private String differenceReason; // 差异原因 + + public FeeDifferenceDto() {} + + public FeeDifferenceDto(String orderId, BigDecimal excelFee, BigDecimal dbFee, String differenceReason) { + this.orderId = orderId; + this.excelFee = excelFee; + this.dbFee = dbFee; + this.differenceReason = differenceReason; + } +} diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/MergedOrderDto.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/MergedOrderDto.java new file mode 100644 index 00000000..cd371582 --- /dev/null +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/MergedOrderDto.java @@ -0,0 +1,53 @@ +package com.xhpc.order.dto; + +import lombok.Data; + +/** + * @author yuyang + * @Date 2025-11-12 16:26 + */ +@Data +public class MergedOrderDto { + // XhpcHistoryOrderYuDto 字段 + private String internetSerialNumber; + private String chargingDegree; + private String totalPrice; + private String powerPriceTotal; + private String servicePriceTotal; + + // XhpcHistoryOrderDto 字段 + private String serialNumber; + private String chargingStationName; + private String pileSerialNumber; + private String terminalName; + private String operatorName; + private String power; + private String startSoc; + private String endSoc; + private String activityPowerPriceTotal; + private String activityServicePriceTotal; + private String activityTotalPrice; + private String promotionDiscount; + private String actPrice; + private String internetCommission; + private String internetSvcCommission; + private String internetDegreeCommission; + private String platformCommission; + private String platformSvcCommisssion; + private String operationCommission; + private String operationSvcCommission; + private String actPowerPrice; + private String actServicePrice; + private String actSumPrice; + private String chargingTime; + private String startTime; + private String endTime; + private String updateTime; + private String chargingModeName; + private String stopReasonEvcs; + private String stopReasonEvcsStr; + private String sourceName; + + // 差异信息 + private String difference; +} diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/PositionFeeDto.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/PositionFeeDto.java new file mode 100644 index 00000000..d2d769c4 --- /dev/null +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/PositionFeeDto.java @@ -0,0 +1,27 @@ +package com.xhpc.order.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 占位费Excel类型 + * + * @author yuyang + * @Date 2025-10-21 15:44 + */ +@Data +public class PositionFeeDto { + + private String orderId; + private BigDecimal feeAmount; + private Integer userStatus; + private BigDecimal refundMoney; + + public PositionFeeDto() {} + + public PositionFeeDto(String orderId, BigDecimal feeAmount) { + this.orderId = orderId; + this.feeAmount = feeAmount; + } +} diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcHistoryOrderDto.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcHistoryOrderDto.java new file mode 100644 index 00000000..1802816c --- /dev/null +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcHistoryOrderDto.java @@ -0,0 +1,50 @@ +package com.xhpc.order.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author yuyang + * @Date 2025-11-12 15:16 + */ +@Data +public class XhpcHistoryOrderDto { + private String serialNumber; + private String internetSerialNumber; + private String chargingStationName; + private String pileSerialNumber; + private String terminalName; + private String operatorName; + private String power; + private String startSoc; + private String endSoc; + private String chargingDegree; + private String powerPriceTotal; + private String servicePriceTotal; + private String totalPrice; + private String activityPowerPriceTotal; + private String activityServicePriceTotal; + private String activityTotalPrice; + private String promotionDiscount; + private String actPrice; + private String internetCommission; + private String internetSvcCommission; + private String internetDegreeCommission; + private String platformCommission; + private String platformSvcCommisssion; + private String operationCommission; + private String operationSvcCommission; + private String actPowerPrice; + private String actServicePrice; + private String actSumPrice; + private String chargingTime; + private String startTime; + private String endTime; + private String updateTime; + private String chargingModeName; + private String stopReasonEvcs; + private String stopReasonEvcsStr; + private String sourceName; + +} diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcHistoryOrderYuDto.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcHistoryOrderYuDto.java new file mode 100644 index 00000000..08fec757 --- /dev/null +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcHistoryOrderYuDto.java @@ -0,0 +1,32 @@ +package com.xhpc.order.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author yuyang + * @Date 2025-11-12 15:08 + */ +@Data +public class XhpcHistoryOrderYuDto { + + private String internetSerialNumber; + private String chargingDegree; + + private String totalPrice; + + private String powerPriceTotal; + + private String servicePriceTotal; + + public XhpcHistoryOrderYuDto(String internetSerialNumber, String chargingDegree, String totalPrice, String powerPriceTotal, String servicePriceTotal) { + this.internetSerialNumber = internetSerialNumber; + this.chargingDegree = chargingDegree; + this.totalPrice = totalPrice; + this.powerPriceTotal = powerPriceTotal; + this.servicePriceTotal = servicePriceTotal; + } + + +} diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcRateTimeYuDto.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcRateTimeYuDto.java new file mode 100644 index 00000000..23edb5b2 --- /dev/null +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/dto/XhpcRateTimeYuDto.java @@ -0,0 +1,71 @@ +package com.xhpc.order.dto; + +import lombok.Data; + +import javax.persistence.Column; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 费率时段 + * + * @author yuyang + * @Date 2025-12-18 10:05 + */ +@Data +public class XhpcRateTimeYuDto { + /** 费率时段id */ + @Column(name = "rate_time_id") + private Long rateTimeId; + + /** 电站id */ + @Column(name = "charging_station_id") + private Long chargingStationId; + + /** 费率id */ + @Column(name = "rate_id") + private Long rateId; + + /** 启始时间 */ + @Column(name = "start_time") + private Date startTime; + + /** 结束时间 */ + @Column(name = "end_time") + private Date endTime; + + @Column(name = "power_fee") + private BigDecimal powerFee; + + @Column(name = "service_fee") + private BigDecimal serviceFee; + + /** 状态(0正常 1停用) */ + @Column(name = "status") + private Integer status; + + /** 状态(0正常 1停用) */ + @Column(name = "del_flag") + private Integer delFlag; + + /** 计费模型id */ + @Column(name = "rate_model_id") + private Long rateModelId; + + /** 时间排序有小到大 */ + @Column(name = "sort") + private Integer sort; + + /** 1 设置时间段 2默认时间段 */ + @Column(name = "type") + private Integer type; + + /** 费率类型 00: 尖费率 01: 峰费率 02: 平费率 03: 谷费率 */ + @Column(name = "rate_value") + private String rateValue; + @Column(name = "policy_code") + private String policyCode; + @Column(name = "policy_name") + private String policyName; + +} diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcChargingStationPowerMapper.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcChargingStationPowerMapper.java index a110f901..16b9798a 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcChargingStationPowerMapper.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcChargingStationPowerMapper.java @@ -19,7 +19,7 @@ public interface XhpcChargingStationPowerMapper { List> getXhpcRealTimeOrderList(@Param("chargingStationId") Long chargingStationId,@Param("terminalId") Long terminalId,@Param("sterTime")String sterTime,@Param("endTime")String endTime,@Param("number")Integer number,@Param("subTime")String subTime); //查询是否已统计 - int duplicateStatistics(@Param("chargingStationId") Long chargingStationId,@Param("terminalId") Long terminalId,@Param("number")Integer number,@Param("subTime")String subTime); + int duplicateStatistics(@Param("chargingStationId") Long chargingStationId,@Param("terminalId") Long terminalId,@Param("number")Integer number,@Param("subTime")String subTime,@Param("createTime")String createTime); //获取终端 List> getXhpcTerminals(@Param("chargingStationId") Long chargingStationId); diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcHistoryOrderMapper.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcHistoryOrderMapper.java index b0e975f0..bc3fa833 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcHistoryOrderMapper.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcHistoryOrderMapper.java @@ -1,8 +1,7 @@ package com.xhpc.order.mapper; import com.xhpc.order.domain.XhpcHistoryOrder; -import com.xhpc.order.dto.XhpcChargeHistoryOrder; -import com.xhpc.order.dto.XhpcWorkHistoryOrderDto; +import com.xhpc.order.dto.*; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -157,4 +156,10 @@ public interface XhpcHistoryOrderMapper { int updateChengDuPush(Long historyOrderId); Map getXhpcRateTimeFee(@Param("date") String date, @Param("rateModelId") Long rateModelId); + + + List getFileUpload(@Param("mapLst")List mapLst); + + List> getXhpcHistoryOrderChargeDetailsList(@Param("historyOrderId")Long historyOrderId); + } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcPlaceholderOrderMapper.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcPlaceholderOrderMapper.java index 01ede868..0530d69b 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcPlaceholderOrderMapper.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcPlaceholderOrderMapper.java @@ -4,6 +4,7 @@ import com.xhpc.common.domain.XhpcPlaceholderTime; import com.xhpc.evcs.domain.PlaceholderRules; import com.xhpc.evcs.domain.PriceInfo; import com.xhpc.order.domain.XhpcPlaceholderOrder; +import com.xhpc.order.dto.PositionFeeDto; import com.xhpc.order.dto.XhpcPlaceholderTimeOrderDto; import org.apache.ibatis.annotations.Param; @@ -97,4 +98,21 @@ public interface XhpcPlaceholderOrderMapper { List> appealPlaceholderOrderListPC(@Param("operatorId")Long operatorId,@Param("name") String name, @Param("type") Integer type, @Param("serialNumber") String serialNumber, @Param("chargingStationId") Long chargingStationId,@Param("logOperatorId")Long logOperatorId,@Param("number")Integer number,@Param("tenantId") String tenantId); + + List getPlaceholderOrderExcelList(@Param("mapLst")List mapLst,@Param("userId") Long userId); + + List getPlaceholderOrderUserExcelList(@Param("mapLst")List mapLst); + + int updatePlaceholderOrderRechargeMoney(@Param("rechargeMoney")BigDecimal rechargeMoney,@Param("placeholderOrderNumber") String placeholderOrderNumber); + + int updatePlaceholderOrderRechargeUserMoney(@Param("rechargeMoney")BigDecimal rechargeMoney,@Param("placeholderOrderNumber") String placeholderOrderNumber); + + List> deviceMessageList(@Param("chargeOrderNo") String chargeOrderNo ,@Param("gunNumber") String gunNumber); + + + List> getType(); + + + Map getXhpcPlaceholderOrderType(@Param("chargeOrderNo") String chargeOrderNo ,@Param("gunNumber") String gunNumber); + } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcRealTimeOrderMapper.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcRealTimeOrderMapper.java index 49e3689a..89ef6852 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcRealTimeOrderMapper.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcRealTimeOrderMapper.java @@ -3,10 +3,7 @@ package com.xhpc.order.mapper; import com.xhpc.common.domain.XhpcBarrierGateRecord; import com.xhpc.common.domain.XhpcChargingPile; import com.xhpc.order.domain.*; -import com.xhpc.order.dto.RateTime; -import com.xhpc.order.dto.XhpcActivityDiscountDto; -import com.xhpc.order.dto.XhpcActivityFormulaDomainDto; -import com.xhpc.order.dto.XhpcActivityInternetDomainDto; +import com.xhpc.order.dto.*; import org.apache.ibatis.annotations.Param; import java.util.ArrayList; @@ -217,4 +214,9 @@ public interface XhpcRealTimeOrderMapper { //查询该场站是否有占位费设置 Map getXhpcPlaceholder(@Param("chargingStationId")Long chargingStationId); + + List getReatTimeList(@Param("startTime")String startTime, @Param("endTime")String endTime, @Param("rateModelId")Long rateModelId); + + + int insertXhpcHistoryOrderChargeDetails(XhpcHistoryOrderChargeDetails xhpcHistoryOrderChargeDetails); } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcHistoryOrderService.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcHistoryOrderService.java index d2ec1d7c..a20e56a3 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcHistoryOrderService.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcHistoryOrderService.java @@ -1,9 +1,11 @@ package com.xhpc.order.service; +import com.xhpc.common.core.domain.R; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.order.domain.XhpcHistoryOrder; import com.xhpc.order.dto.XhpcChargeHistoryOrder; import com.xhpc.order.dto.XhpcWorkHistoryOrderDto; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -156,4 +158,8 @@ public interface IXhpcHistoryOrderService { AjaxResult cancelOrders(Long historyOrderId); Map getXhpcRateTimeFee(Long rateModelId); + + R fileUpload(HttpServletRequest request, HttpServletResponse response, String tenantId, MultipartFile file, int type, String startTime, String endTime) throws Exception; + + } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcPlaceholderOrderService.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcPlaceholderOrderService.java index c8ed2669..acba345c 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcPlaceholderOrderService.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcPlaceholderOrderService.java @@ -4,6 +4,7 @@ import com.xhpc.common.core.domain.R; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.order.domain.XhpcPlaceholderOrder; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -34,6 +35,8 @@ public interface IXhpcPlaceholderOrderService { void getAbnormal(); + void getType(); + void getAbnormalTime(); R getPlaceholderIDs(String [] stationIDs); @@ -113,8 +116,17 @@ public interface IXhpcPlaceholderOrderService { R applyPlaceholderOrder(HttpServletRequest request,Long placeholderOrderId,String appealUserResult); - R applyPlaceholderOrderProcess(HttpServletRequest request,Long placeholderOrderId,BigDecimal actPrice,String refundType,String appealResult); + R applyPlaceholderOrderProcess(HttpServletRequest request,Long placeholderOrderId,BigDecimal actPrice,String refundType,String appealResult,String imgId); + + + R applyPlaceholderOrderInternetProcess(HttpServletRequest request,Long placeholderOrderId,BigDecimal actPrice,String refundType,String appealResult,String imgId); List> appealPlaceholderOrderListPC(HttpServletRequest request,String tenantId,Long operatorId,String name, Integer type, String serialNumber, Long chargingStationId); + + + R fileUpload(HttpServletRequest request, HttpServletResponse response, String tenantId, MultipartFile file, int type, String startTime, String endTime) throws Exception; + + + List> deviceMessageList(String chargeOrderNo); } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcRealTimeOrderService.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcRealTimeOrderService.java index 9e6244a1..9c8b12ad 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcRealTimeOrderService.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcRealTimeOrderService.java @@ -196,4 +196,6 @@ public interface IXhpcRealTimeOrderService { //充电车辆BMS报文定时任务,每天下午4点30,清除一个月半之前的数据 void realTimeOrderBms(); + + void deleteOrderCacheDate(); } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargeOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargeOrderServiceImpl.java index 0a5667fb..5986427b 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargeOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargeOrderServiceImpl.java @@ -280,6 +280,17 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar return AjaxResult.error(1102, "车辆正在充电,请查询车辆充电信息"); } } + //内部使用判断 + if(xhpcTerminal.getChargingStationId()==16L){ + if("BE".equals(userMessage.get("userTypeName").toString())){ + if(!"39".equals(userMessage.get("customersId").toString())){ + return AjaxResult.error(1102, "内部使用,请登录相应账号"); + } + }else{ + return AjaxResult.error(1102, "内部使用,请登录相应账号"); + } + } + //终端状态是否空闲 //是否插枪 Map cacheMap = REDIS.getCacheMap("gun:" + terminalSerialNumber); @@ -423,12 +434,12 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar } xhpcChargeOrderMapper.addXhpcChargeOrder(xhpcChargeOrder); + //加用户金额缓存 + redisService.setCacheObject("YE"+xhpcChargeOrder.getSerialNumber(),new BigDecimal(userMessage.get("balance").toString())); + executorService.execute(new Runnable() { @Override public void run() { - - - R r1 = powerPileService.startCharging(startChargingData); logger.info("<<<<<<<<<<<<<<<<<<<<<<<<充电返回>>>>>>>>>>>>>>>>>"); logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getCode() + ">>>>>>>>>>>>>>>>>"); @@ -1066,7 +1077,8 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar } } map.put("soc",number); - + //加用户金额缓存 + redisService.setCacheObject("YE"+xhpcChargeOrder.getSerialNumber(),new BigDecimal(userMessage.get("balance").toString())); return R.ok(map); }catch (Exception e){ //数据回滚 @@ -1281,7 +1293,8 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar startUpSuncha(userMessage,xhpcChargeOrder,xhpcTerminal,tenantId,userType,serialNumber,5); return R.ok(); } - + //加用户金额缓存 + redisService.setCacheObject("YE"+xhpcChargeOrder.getSerialNumber(),new BigDecimal(userMessage.get("balance").toString())); xhpcChargeOrderMapper.addXhpcChargeOrder(xhpcChargeOrder); // executorService.execute(new Runnable() { @@ -1346,8 +1359,8 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar }else if(qiang==4){ spear = "D"; } - operatorMessage.get("chargingStationName").toString().replace("小华充电",""); - String str = operatorMessage.get("chargingStationName").toString().replace("小华充电", ""); + operatorMessage.get("chargingStationName").toString().replace("翔桦充电",""); + String str = operatorMessage.get("chargingStationName").toString().replace("翔桦充电", ""); if(str.length()>13){ str =str.substring(0,13); } @@ -1356,7 +1369,7 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar HashMap paramMap = new HashMap<>(); paramMap.put("battery", soc); paramMap.put("phone", userMessage.get("phone").toString()); - paramMap.put("content", "【小华充电】尊敬的用户,你的车辆已充电达至设定的SOC(" + soc + "%)。"); + paramMap.put("content", "【翔桦充电】尊敬的用户,你的车辆已充电达至设定的SOC(" + soc + "%)。"); smsService.sendNotice(paramMap); } } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargingStationPowerServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargingStationPowerServiceImpl.java index 83bcad47..30d83f57 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargingStationPowerServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargingStationPowerServiceImpl.java @@ -81,13 +81,14 @@ public class XhpcChargingStationPowerServiceImpl extends BaseService implements String tenantId = objectMap.get("tenantId").toString(); //查询是否已统计(订单编号、时间段) String subTime = now.substring(0,10); + String formatYu = cn.hutool.core.date.DateUtil.format(DateUtil.offsetDay(new Date(),-10), "yyyy-MM-dd HH:mm:ss"); List> xhpcTerminals = xhpcChargingStationPowerMapper.getXhpcTerminals(chargingStationId); for (int j = 0; j < xhpcTerminals.size(); j++) { Map terminal = xhpcTerminals.get(j); Long terminalId = Long.valueOf(terminal.get("terminalId").toString()); - int determine = xhpcChargingStationPowerMapper.duplicateStatistics(chargingStationId, terminalId,numbrt, subTime); + int determine = xhpcChargingStationPowerMapper.duplicateStatistics(chargingStationId, terminalId,numbrt, subTime,formatYu); if(determine==0){ List> xhpcRealTimeOrderList = xhpcChargingStationPowerMapper.getXhpcRealTimeOrderList(chargingStationId,terminalId, sterTime, endTime, numbrt,subTime); if(xhpcRealTimeOrderList !=null && xhpcRealTimeOrderList.size()>0){ diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java index cbfabebb..cd5320b1 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java @@ -19,8 +19,7 @@ import com.xhpc.common.util.UserTypeUtil; import com.xhpc.order.domain.XhpcChargeOrder; import com.xhpc.order.domain.XhpcHistoryOrder; import com.xhpc.order.domain.XhpcRealTimeOrder; -import com.xhpc.order.dto.XhpcChargeHistoryOrder; -import com.xhpc.order.dto.XhpcWorkHistoryOrderDto; +import com.xhpc.order.dto.*; import com.xhpc.order.mapper.XhpcHistoryOrderMapper; import com.xhpc.order.service.IXhpcChargeOrderService; import com.xhpc.order.service.IXhpcHistoryOrderService; @@ -31,6 +30,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.ServletOutputStream; @@ -142,11 +142,10 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis public List> list(HttpServletRequest request) { List> list =new ArrayList<>(); LoginUser loginUser = tokenService.getLoginUser(request); + startPage(); if(loginUser==null){ - startPage(); return list; } - Long userid = loginUser.getUserid(); String tenantId = loginUser.getTenantId(); Integer userType = loginUser.getUserType(); @@ -460,10 +459,24 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis if(byId.get("stopReasonRvcsName") !=null){ byId.put("stopReasonRvcsName",translate(byId.get("stopReasonRvcsName").toString())); } - Map rateTime = getRateTime(byId.get("serialNumber").toString(), byId.get("totalPrice").toString(), byId.get("totalPower").toString()); - if(rateTime !=null){ - byId.putAll(rateTime); + + //获取历史订单收费明细 + List> list = xhpcHistoryOrderMapper.getXhpcHistoryOrderChargeDetailsList(historyOrderId); + if(list==null || list.isEmpty()){ + Map map1 = new HashMap<>(); + map1.put("time","00:00:00 至 00:00:00"); + map1.put("powerPrice", 0); + map1.put("servicePrice", 0); + map1.put("chargingDegree", 0); + map1.put("actPrice", 0); + list.add(map1); } + byId.put("list", list);//数据列表 + +// Map rateTime = getRateTime(byId.get("serialNumber").toString(), byId.get("totalPrice").toString(), byId.get("totalPower").toString()); +// if(rateTime !=null){ +// byId.putAll(rateTime); +// } } return AjaxResult.success(byId); } catch (Exception e) { @@ -678,6 +691,14 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis return xhpcHistoryOrderMapper.getXhpcRateTimeFee(tiem,rateModelId); } + @Override + public R fileUpload(HttpServletRequest request, HttpServletResponse response, String tenantId, MultipartFile file, int type, String startTime, String endTime) throws Exception { + + return null; + + } + + /** * 历史信息费率时段 */ @@ -698,6 +719,7 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis DateTime parse = DateUtil.parse(DateUtil.format(startTime2, "yyyy-MM-dd"), "yyyy-MM-dd"); DateTime parse1 = DateUtil.parse(DateUtil.format(updateTime2, "yyyy-MM-dd"), "yyyy-MM-dd"); long betweenDay = DateUtil.between(parse, parse1, DateUnit.DAY); + if (betweenDay == 0) { return getBigDecimal(totalPrice, powerPriceTotal, servicePriceTotal, chargeOrder, rateModelId, startTime2, updateTime2, chargingDegree, list); } else { @@ -708,6 +730,7 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis DateTime tomorrow = DateUtil.offsetDay(startTime2, 1); Date startTime3 = DateUtil.beginOfDay(tomorrow); Map twentyFour = xhpcHistoryOrderMapper.getXhpcRealTimeOrderTwentyFour(chargeOrder.getChargeOrderId(), format); + if(twentyFour==null){ return getBigDecimal(totalPrice, powerPriceTotal, servicePriceTotal, chargeOrder, rateModelId, startTime2, updateTime2, chargingDegree, list); } @@ -784,7 +807,7 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis return map; } //每分钟多少度 - BigDecimal degree = chargingDegree.divide(decimal, 2, BigDecimal.ROUND_HALF_UP); + BigDecimal degree = chargingDegree.divide(decimal, 3, BigDecimal.ROUND_HALF_UP); //获取费率时间段 String startTime = DateUtil.formatTime(startTime2); @@ -797,9 +820,9 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis Map map1 = new HashMap<>(); int size = reatTimeList.size(); if (size == 1) { - BigDecimal powerFee = new BigDecimal(reatTimeList.get(0).get("powerFee").toString()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal powerFee = new BigDecimal(reatTimeList.get(0).get("powerFee").toString()).setScale(4, BigDecimal.ROUND_HALF_UP); //powerPriceTotal = powerFee.multiply(degree).setScale(2, BigDecimal.ROUND_HALF_UP); - BigDecimal servicePrice = new BigDecimal(reatTimeList.get(0).get("serviceFee").toString()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal servicePrice = new BigDecimal(reatTimeList.get(0).get("serviceFee").toString()).setScale(4, BigDecimal.ROUND_HALF_UP); //servicePriceTotal=servicePrice.multiply(chargingDegree).setScale(2, BigDecimal.ROUND_HALF_UP); map1.put("time", startTime + "-" + endTime); map1.put("powerPrice", powerFee); @@ -807,13 +830,13 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis map1.put("chargingDegree", chargeOrder.getChargingDegree()); map1.put("actPrice", totalPrice); list.add(map1); - powerPriceTotal =powerPriceTotal.add(powerFee.multiply(degree).setScale(2, BigDecimal.ROUND_HALF_UP)); - servicePriceTotal =servicePriceTotal.add(servicePrice.multiply(chargingDegree).setScale(2, BigDecimal.ROUND_HALF_UP)); + powerPriceTotal =powerPriceTotal.add(powerFee.multiply(degree).setScale(4, BigDecimal.ROUND_HALF_UP)); + servicePriceTotal =servicePriceTotal.add(servicePrice.multiply(chargingDegree).setScale(4, BigDecimal.ROUND_HALF_UP)); } else { for (int i = 0; i < reatTimeList.size(); i++) { Map objectMap = reatTimeList.get(i); - BigDecimal powerPrice = new BigDecimal(objectMap.get("powerFee").toString()).setScale(2, BigDecimal.ROUND_HALF_UP); - BigDecimal servicePrice = new BigDecimal(objectMap.get("serviceFee").toString()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal powerPrice = new BigDecimal(objectMap.get("powerFee").toString()).setScale(4, BigDecimal.ROUND_HALF_UP); + BigDecimal servicePrice = new BigDecimal(objectMap.get("serviceFee").toString()).setScale(4, BigDecimal.ROUND_HALF_UP); String startTime1 = objectMap.get("startTime").toString(); String endTime1 = objectMap.get("endTime").toString(); if("00:00:00".equals(endTime1)){ @@ -848,7 +871,7 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis Map map = new HashMap<>(); BigDecimal v = new BigDecimal((DateUtil.parse(endTime).getTime() - DateUtil.parse(startTime).getTime()) / 60000).multiply(degree); - BigDecimal multiply = powerPrice.add(servicePrice).multiply(v).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply = powerPrice.add(servicePrice).multiply(v).setScale(4, BigDecimal.ROUND_HALF_UP); map.put("time", startTime + "-" + endTime); map.put("powerPrice", powerPrice); map.put("servicePrice", servicePrice); @@ -944,7 +967,7 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis long time = DateUtil.parse(endTime).getTime(); long time1= DateUtil.parse(startTime).getTime(); BigDecimal multiply = new BigDecimal(time-time1).divide(new BigDecimal(60000),4, BigDecimal.ROUND_HALF_UP).multiply(degree).setScale(4,BigDecimal.ROUND_HALF_UP); - BigDecimal bigDecimal = multiply.multiply(powerPrice).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal bigDecimal = multiply.multiply(powerPrice).setScale(4, BigDecimal.ROUND_HALF_UP); return bigDecimal; } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcPileRegularInspectServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcPileRegularInspectServiceImpl.java index 898e08a5..f06cab51 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcPileRegularInspectServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcPileRegularInspectServiceImpl.java @@ -208,8 +208,10 @@ public class XhpcPileRegularInspectServiceImpl extends BaseService implements IX List> pileSerialNumber = xhpcPileRegularInspectMapper.getPileSerialNumber(); for (int i = 0; i < pileSerialNumber.size(); i++) { Map map = pileSerialNumber.get(i); + System.out.println("============校时效价定时任务执行===================="+map.get("serialNumber").toString()); powerPileService.configTimeNRateModel(map.get("serialNumber").toString()); } + System.out.println("============校时效价定时任务成功===================="); } } }catch (Exception e){ @@ -255,7 +257,11 @@ public class XhpcPileRegularInspectServiceImpl extends BaseService implements IX public static void main(String[] args) { String times = DateUtil.formatTime(new Date()); String [] time =times.split(":"); - + System.out.println("==777===:"+time[0]); + System.out.println("==888===:"+time[1]); + if("00".equals(time[1]) ||"11".equals(time[1])||"12".equals(time[1])||"13".equals(time[1])||"14".equals(time[1])){ + System.out.println("==222===:"+time[1]); + } for (int i = 0; i > mapList = xhpcPlaceholderOrderMapper.getType(); + for (int i = 0; i < mapList.size(); i++) { + Map map = mapList.get(i); + int source = Integer.parseInt(map.get("source").toString()); + String serialNumber = map.get("serialNumber").toString(); + Long placeholderOrderId = Long.parseLong(map.get("placeholderOrderId").toString()); + if(source==0){ + //查询最后拔枪的时间 + Map mapTime = xhpcPlaceholderOrderMapper.getXhpcPlaceholderOrderType(serialNumber, serialNumber.substring(0, 16)); + if (mapTime!=null && mapTime.get("createTime") !=null){ + getExamine(placeholderOrderId,new BigDecimal(0),map.get("startTime").toString(),mapTime.get("createTime").toString()); + } + }else if(source==1){ + String internetSerialNumber = map.get("internetSerialNumber").toString(); + if("MA25CNM38".equals(internetSerialNumber.substring(0,9))){ + //修改新电途订单 + XhpcPlaceholderOrder xhpcPlaceholderOrder = new XhpcPlaceholderOrder(); + xhpcPlaceholderOrder.setPlaceholderOrderId(placeholderOrderId); + xhpcPlaceholderOrder.setEndTime(DateUtil.parse(map.get("startTime").toString(),"yyyy-MM-dd HH:mm:ss")); + xhpcPlaceholderOrder.setTotalTimeSpan(0); + xhpcPlaceholderOrder.setOvertimePrice(new BigDecimal(0)); + xhpcPlaceholderOrder.setTotalMoney(new BigDecimal(0)); + xhpcPlaceholderOrder.setType(0); + xhpcPlaceholderOrderMapper.updateXhpcPlaceholderOrder(xhpcPlaceholderOrder); + }else{ + //查询最后拔枪的时间 + Map mapTime = xhpcPlaceholderOrderMapper.getXhpcPlaceholderOrderType(serialNumber, serialNumber.substring(0, 16)); + if (mapTime!=null && mapTime.get("createTime") !=null){ + getExamine(placeholderOrderId,new BigDecimal(0),map.get("startTime").toString(),mapTime.get("createTime").toString()); + } + } + } + } + + } @Override public void getAbnormalTime() { List> mapList = xhpcPlaceholderOrderMapper.getAbnormalTimeList(); @@ -1278,6 +1327,9 @@ public class XhpcPlaceholderOrderServiceImpl extends BaseService implements IXhp writer.addHeaderAlias("xiaoJuMoney", "小桔总费用"); writer.addHeaderAlias("cheWeiJiaMoney", "车为家总费用"); writer.addHeaderAlias("sourceName", "用户类型"); + writer.addHeaderAlias("CDuanMoney", "C端用户"); + writer.addHeaderAlias("sheQuMoney", "社区用户"); + writer.addHeaderAlias("BDuanMoney", "B端用户"); // 默认的,未添加alias的属性也会写出,如果想只写出加了别名的字段,可以调用此方法排除之 writer.setOnlyAlias(true); // 一次性写出内容,使用默认样式,强制输出标题 @@ -1353,7 +1405,7 @@ public class XhpcPlaceholderOrderServiceImpl extends BaseService implements IXhp writer.addHeaderAlias("refundMoney", "新电途用户已支付费用"); writer.addHeaderAlias("xiaoJuMoney", "小桔总费用"); writer.addHeaderAlias("cheWeiJiaMoney", "车为家总费用"); - writer.addHeaderAlias("actPrice", "C端用户总用"); + writer.addHeaderAlias("actPrice", "C端用户总费用"); // 默认的,未添加alias的属性也会写出,如果想只写出加了别名的字段,可以调用此方法排除之 writer.setOnlyAlias(true); // 一次性写出内容,使用默认样式,强制输出标题 @@ -1434,6 +1486,7 @@ public class XhpcPlaceholderOrderServiceImpl extends BaseService implements IXhp writer.addHeaderAlias("CDuanMoney", "C端用户总用"); writer.addHeaderAlias("sheQuMoney", "社区总费用"); writer.addHeaderAlias("BDuanMoney", "B端总费用"); + writer.addHeaderAlias("actPrice", "C端用户总费用"); // 默认的,未添加alias的属性也会写出,如果想只写出加了别名的字段,可以调用此方法排除之 writer.setOnlyAlias(true); // 一次性写出内容,使用默认样式,强制输出标题 @@ -1482,17 +1535,19 @@ public class XhpcPlaceholderOrderServiceImpl extends BaseService implements IXhp } @Override - public R applyPlaceholderOrderProcess(HttpServletRequest request, Long placeholderOrderId, BigDecimal actPrice,String refundType,String appealResult) { + public R applyPlaceholderOrderProcess(HttpServletRequest request, Long placeholderOrderId, BigDecimal actPrice,String refundType,String appealResult,String imgId) { XhpcPlaceholderOrder placeholderOrder = xhpcPlaceholderOrderMapper.getByPlaceholderOrderId(placeholderOrderId); XhpcPlaceholderOrder xhpcPlaceholderOrder = new XhpcPlaceholderOrder(); xhpcPlaceholderOrder.setPlaceholderOrderId(placeholderOrderId); xhpcPlaceholderOrder.setAppealResult(appealResult); xhpcPlaceholderOrder.setAppealProcessTime(new Date()); + xhpcPlaceholderOrder.setImgId(imgId); BigDecimal subtractYu=new BigDecimal(0); if(!"reject".equals(refundType)){ //申述成功用户进行充值金额 xhpcPlaceholderOrder.setAppealStatus(2); + xhpcPlaceholderOrder.setActStatus(2); if(placeholderOrder.getActPrice().compareTo(actPrice)==1){ //剩余金额 subtractYu = actPrice; @@ -1528,6 +1583,7 @@ public class XhpcPlaceholderOrderServiceImpl extends BaseService implements IXhp return R.ok(); } }else{ + //申述失败 xhpcPlaceholderOrder.setAppealStatus(3); int i = xhpcPlaceholderOrderMapper.updateXhpcPlaceholderOrder(xhpcPlaceholderOrder); @@ -1538,6 +1594,34 @@ public class XhpcPlaceholderOrderServiceImpl extends BaseService implements IXhp return R.fail("申述失败,请稍后再申述"); } + @Override + public R applyPlaceholderOrderInternetProcess(HttpServletRequest request, Long placeholderOrderId, BigDecimal actPrice,String refundType,String appealResult,String imgId) { + XhpcPlaceholderOrder placeholderOrder = xhpcPlaceholderOrderMapper.getByPlaceholderOrderId(placeholderOrderId); + + XhpcPlaceholderOrder xhpcPlaceholderOrder = new XhpcPlaceholderOrder(); + xhpcPlaceholderOrder.setPlaceholderOrderId(placeholderOrderId); + xhpcPlaceholderOrder.setAppealResult(appealResult); + xhpcPlaceholderOrder.setAppealProcessTime(new Date()); + if(!"reject".equals(refundType)){ + //第三方处理退款 + xhpcPlaceholderOrder.setUserStatus(1); + if(placeholderOrder.getTotalMoney().compareTo(actPrice)==1){ + xhpcPlaceholderOrder.setRechargeMoney(placeholderOrder.getTotalMoney().subtract(actPrice)); + }else { + xhpcPlaceholderOrder.setRechargeMoney(new BigDecimal(0)); + } + xhpcPlaceholderOrder.setRefundMoney(actPrice); + xhpcPlaceholderOrder.setImgId(imgId); + int i = xhpcPlaceholderOrderMapper.updateXhpcPlaceholderOrder(xhpcPlaceholderOrder); + if(i>0){ + return R.ok(); + } + }else{ + return R.ok(); + } + return R.fail("申述失败,请稍后再申述"); + } + @Override public List> appealPlaceholderOrderListPC(HttpServletRequest request, String tenantId, Long operatorId, String name, Integer type, String serialNumber, Long chargingStationId) { LoginUser loginUser = tokenService.getLoginUser(request); @@ -1552,6 +1636,7 @@ public class XhpcPlaceholderOrderServiceImpl extends BaseService implements IXhp startPage(); return xhpcPlaceholderOrderMapper.appealPlaceholderOrderListPC(operatorId,name, type, serialNumber, chargingStationId,userId,2,tenantId); }else{ + startPage(); if(UserTypeUtil.SYS_SUPER_TYPE_ONE == loginUser.getSuperType()){ list= xhpcPlaceholderOrderMapper.appealPlaceholderOrderListPC(operatorId,name, type, serialNumber, chargingStationId,userId,0,loginUser.getTenantId()); }else{ @@ -1571,10 +1656,142 @@ public class XhpcPlaceholderOrderServiceImpl extends BaseService implements IXhp } } } + return list; } + @Override + public R fileUpload(HttpServletRequest request, HttpServletResponse response, String tenantId, MultipartFile file, int type, String startTime, String endTime) throws Exception { + // 创建OSSClient实例 + List positionFees = new ArrayList<>(); + try (InputStream inputStream = file.getInputStream(); + Workbook workbook = new XSSFWorkbook(inputStream)) { + + Sheet sheet = workbook.getSheetAt(0); // 获取第一个sheet + + // 跳过表头,从第二行开始读取 + for (int i = 2; i <= sheet.getLastRowNum()-1; i++) { + Row row = sheet.getRow(i); + if (row == null) continue; + + // 读取订单ID(A列) + Cell orderIdCell = row.getCell(0); + // 读取金额(B列) + Cell feeCell = row.getCell(2); + + if (orderIdCell != null && feeCell != null) { + String orderId = getCellStringValue(orderIdCell); + BigDecimal feeAmount = getCellNumericValue(feeCell); + + if (orderId != null && !orderId.trim().isEmpty() && feeAmount != null) { + positionFees.add(new PositionFeeDto(orderId.trim(), feeAmount)); + } + } + } + } + + if(positionFees.size()>0){ + List placeholderOrderExcelList =new ArrayList<>(); + if(type==0){ + placeholderOrderExcelList = xhpcPlaceholderOrderMapper.getPlaceholderOrderUserExcelList(positionFees); + }else{ + placeholderOrderExcelList = xhpcPlaceholderOrderMapper.getPlaceholderOrderExcelList(positionFees, Long.valueOf(type)); + } + + List feeDifferenceDtos = compareWithDatabase(positionFees, placeholderOrderExcelList,type); + if (feeDifferenceDtos.isEmpty()) { + return R.ok(new ArrayList<>(),"对账完成,无差异"); + } else { + return R.ok(feeDifferenceDtos, "发现" + feeDifferenceDtos.size() + "条差异记录"); + } + }else{ + return R.fail("Excel 为空"); + } + } + + @Override + public List> deviceMessageList(String chargeOrderNo) { + + startPage(); + return xhpcPlaceholderOrderMapper.deviceMessageList(chargeOrderNo,chargeOrderNo.substring(0,16)); + } + + + public List compareWithDatabase(List excelData, + List dbData,Integer type) { + List differences = new ArrayList<>(); + + // 将数据库数据转换为Map便于查找 + Map dbFeeMap = new HashMap<>(); + for (PositionFeeDto dbFee : dbData) { + dbFeeMap.put(dbFee.getOrderId(), dbFee.getFeeAmount()); + } + Map dbFeeMapStatus = new HashMap<>(); + for (PositionFeeDto dbFee : dbData) { + dbFeeMapStatus.put(dbFee.getOrderId(), dbFee.getUserStatus()); + } + + + // 比较每个Excel中的数据 + for (PositionFeeDto excelFee : excelData) { + String orderId = excelFee.getOrderId(); + BigDecimal excelAmount = excelFee.getFeeAmount(); + BigDecimal dbAmount = dbFeeMap.get(orderId); + + if (dbAmount == null) { + // 数据库中没有该订单 + differences.add(new FeeDifferenceDto(orderId, excelAmount, null, "数据库中没有该订单")); + } else if (excelAmount.compareTo(dbAmount) != 0) { + // 金额不一致 + differences.add(new FeeDifferenceDto(orderId, excelAmount, dbAmount, + "金额不一致: Excel=" + excelAmount + ", DB=" + dbAmount)); + }else if(excelAmount.compareTo(dbAmount) == 0){ + //是否已对账 + if(dbFeeMapStatus.get(orderId)!=null){ + Integer userStatus = dbFeeMapStatus.get(orderId); + if(userStatus==0){ + if(type==0){ + xhpcPlaceholderOrderMapper.updatePlaceholderOrderRechargeUserMoney(excelAmount,orderId); + }else{ + xhpcPlaceholderOrderMapper.updatePlaceholderOrderRechargeMoney(excelAmount,orderId); + } + }else if(userStatus==1){ + differences.add(new FeeDifferenceDto(orderId, excelAmount, null,"该订单已退款=" + excelFee.getRefundMoney() )); + }else{ + differences.add(new FeeDifferenceDto(orderId, excelAmount, null,"该订单已对账")); + } + }else{ + differences.add(new FeeDifferenceDto(orderId, excelAmount, null,"该订单需要技术人员进行核对")); + } + + } + } + + return differences; + } + + /** + * 获取单元格字符串值 + */ + private String getCellStringValue(Cell cell) { + if (cell == null) return null; + + return cell.getStringCellValue(); + } + + /** + * 获取单元格数值 + */ + private BigDecimal getCellNumericValue(Cell cell) { + if (cell == null) return null; + + try { + return BigDecimal.valueOf(cell.getNumericCellValue()); + } catch (Exception e) { + return null; + } + } public static void main(String[] args) { - System.out.println("80836000100006022509051657454064".substring(0,16)); + System.out.println("MA25CNM38251212065315246240".substring(0,9)); } } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java index 8717ad80..e1567a37 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java @@ -9,7 +9,6 @@ import com.alibaba.fastjson.JSONObject; import com.xhpc.common.api.*; import com.xhpc.common.core.domain.R; import com.xhpc.common.core.utils.HttpUtils; -import com.xhpc.common.core.utils.SecurityUtils; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.service.BaseService; import com.xhpc.common.data.redis.CacheBmsReqChargerOutputData; @@ -48,6 +47,7 @@ import java.util.concurrent.TimeUnit; import static cn.hutool.core.date.DatePattern.NORM_DATETIME_FORMAT; import static com.xhpc.common.data.redis.StaticBeanUtil.*; +import static org.bouncycastle.asn1.x500.style.RFC4519Style.serialNumber; /** * @author yuyang @@ -1399,11 +1399,14 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe Map xhpcChargingPile = xhpcChargeOrderService.getXhpcChargingPile(xhpcChargeOrder.getTerminalId()); // 另起线程处理业务上传redis数据 BigDecimal finalActPrice = actPrice; + String keyUser =xhpcChargeOrder.getSerialNumber(); + redisService.deleteObject("YE"+xhpcChargeOrder.getSerialNumber()); executorService.execute(new Runnable() { @Override public void run() { try{ logger.info("<<<<<<<<<<<<<<<<进行入短信发送>>>>>>>>>>>>>>>>>"); + if(!UserTypeUtil.INTERNET_TYPE.equals(source)){ if(userMessage !=null && userMessage.get("phone") != null){ if("1".equals(xhpcChargingPile.get("type").toString())){ @@ -1447,7 +1450,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe paramMap.put("elec", xhpcChargeOrder.getEndSoc()); paramMap.put("sumMoney", balance.toString()); paramMap.put("phone", phone); - paramMap.put("content", "【小华停止充电】尊敬的用户,你的爱车已停止充电,电量为:" + xhpcChargeOrder.getEndSoc() + "%,总费用为:" + balance + "元,充电费用明细,请查询翔桦充电小程序,谢谢。"); + paramMap.put("content", "【翔桦充电】尊敬的用户,你的爱车已停止充电,电量为:" + xhpcChargeOrder.getEndSoc() + "%,总费用为:" + balance + "元,充电费用明细,请查询翔桦充电小程序,谢谢。"); smsService.sendNotice(paramMap); redisService.setCacheObject(phone+":"+balance.toString(), balance.toString(), 300L, TimeUnit.SECONDS); } @@ -1467,7 +1470,6 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe addPileEndOrder(xhpcHistoryOrder, xhpcChargeOrder, xhpcChargeOrder.getSerialNumber(),1); if(!UserTypeUtil.INTERNET_TYPE.equals(source)){ try{ - //双枪修改逻辑,查询是否是双枪 if(xhpcChargeOrder.getSunchaStatus()!=0){ String userType =UserTypeUtil.USER; @@ -1673,15 +1675,11 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe Map cacheGun =new HashMap<>(); cacheGun.put("previousOrder",xhpcHistoryOrder.getSerialNumber()); REDIS.setCacheMap(gunkey, cacheGun); -// String gunkey = "placeholderOrder:"+substring+":"+xhpcHistoryOrder.getSerialNumber(); -// Map cacheGun =new HashMap<>(); -// cacheGun.put("source",xhpcHistoryOrder.getSource()); -// cacheGun.put("placeholderOrderId",placeholderOrder.getPlaceholderOrderId()); -// cacheGun.put("status",0); -// cacheGun.put("serialNumber",xhpcHistoryOrder.getSerialNumber()); -// cacheGun.put("internetSerialNumber",xhpcHistoryOrder.getInternetSerialNumber()); -// cacheGun.put("startTime",DateUtil.format(xhpcHistoryOrder.getEndTime(),"yyyy-MM-dd HH:mm:ss")); - //REDIS.setCacheMap(gunkey, cacheGun); + if(xhpcHistoryOrder.getTotalPrice().compareTo(new BigDecimal(0))>0){ + //生成历史订单收费明细 + installXhpcHistoryOrderChargeDetails(xhpcHistoryOrder); + } + } }catch (Exception e){ e.printStackTrace(); @@ -2073,7 +2071,21 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe } + @Override + public void deleteOrderCacheDate() { + String time = monthTime(); + Collection keys = redisService.keys("Yu80836000*"); + String st1 = DateUtil.format(DateUtil.offsetDay(new Date(),-15), "yyMMdd"); + int order1 =Integer.parseInt(st1); + for (String order : keys) { + String st2 = order.substring(18, 24); + int order2 =Integer.parseInt(st2); + if(order1>order2){ + redisService.deleteObject(order); + } + } + } //获今天之后一个月半后时间 @@ -2157,7 +2169,6 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe return new BigDecimal(realTimeOrderTime+endTimeChargingDegree-startTimeChargingDegree).setScale(2,BigDecimal.ROUND_HALF_UP); } - //判斷活动时间、电费、服务费、公式是否和场站一致 private Map getRateOrActivityFormul(String serialNumber,Long internetUserId,Date startTime,Date endTime,Long chargingStationId,String tenantId,Long rateModelId){ Map map =new HashMap<>(); @@ -2337,6 +2348,647 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe return orderNo; } + //生成历史订单明细集合 + + private void installXhpcHistoryOrderChargeDetails(XhpcHistoryOrder horder){ + + List xhpcRateTimes = xhpcRealTimeOrderMapper.getReatTimeList(DateUtil.formatTime(horder.getStartTime()), DateUtil.formatTime(horder.getEndTime()), horder.getRateModelId()); + Stack chargeDetailsStack =new Stack<>(); + Map cacheMap = REDIS.getCacheMap("order:"+ horder.getSerialNumber()); + CacheOrderData cacheOrderData = (CacheOrderData)cacheMap.get("orderData"); + BigDecimal bigDecimal = new BigDecimal(10000); + int t1=0; + int t12 =2; + int t13 =3; + BigDecimal bigDecimal1 = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal); + int t2 =0; + int t22 =2; + int t23 =3; + BigDecimal bigDecimal2 = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal); + int t3 =0; + int t32 =2; + int t33 =3; + BigDecimal bigDecimal3 = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal); + int t4 =0; + int t43 =3; + int t42 =2; + BigDecimal bigDecimal4 = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal); + + + for (XhpcRateTimeYuDto xpcRateTime:xhpcRateTimes) { + String rateValue = xpcRateTime.getRateValue(); + if("00".equals(rateValue)){ + t1=t1+1; + } else if ("01".equals(rateValue)) { + t2=t2+1; + }else if ("02".equals(rateValue)) { + t3=t3+1; + }else if ("03".equals(rateValue)) { + t4=t4+1; + } + } + BigDecimal decimalYu = new BigDecimal((horder.getEndTime().getTime() - horder.getStartTime().getTime())).divide(new BigDecimal(60000),4,BigDecimal.ROUND_HALF_UP); + BigDecimal divideYu = new BigDecimal(cacheOrderData.getTotalPowerQuantity()).divide(new BigDecimal(10000),4,BigDecimal.ROUND_HALF_UP); + //每分钟多少度电 + BigDecimal quantity =new BigDecimal(0); + if(decimalYu.compareTo(new BigDecimal(0))!=0){ + quantity = decimalYu.divide(divideYu,4,BigDecimal.ROUND_HALF_UP); + } + for (XhpcRateTimeYuDto xpcRateTime:xhpcRateTimes) { + XhpcHistoryOrderChargeDetails chargeDetails = new XhpcHistoryOrderChargeDetails(); + String rateValue = xpcRateTime.getRateValue(); + + String rateStartTime = cn.hutool.core.date.DateUtil.format(xpcRateTime.getStartTime(), "HH:mm:ss"); + + String orderStartTime = cn.hutool.core.date.DateUtil.format(horder.getStartTime(), "yyyy-MM-dd HH:mm:ss"); + + rateStartTime = orderStartTime.substring(0,10)+" "+rateStartTime; + + String rateEndTime = cn.hutool.core.date.DateUtil.format(xpcRateTime.getEndTime(), "HH:mm:ss"); + + String orderEndTime = cn.hutool.core.date.DateUtil.format(horder.getEndTime(), "yyyy-MM-dd HH:mm:ss"); + + rateEndTime = orderStartTime.substring(0,10)+" "+rateEndTime; + + DateTime startTime1 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + + DateTime endTime1 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + + if("00".equals(rateValue)){ + boolean judgeStart =false; + boolean judgeEnd =false; + + if(horder.getStartTime().getTime()-startTime1.getTime()>0){ + chargeDetails.setDetailStartTime(orderStartTime); + judgeStart =true; + }else{ + chargeDetails.setDetailStartTime(rateStartTime); + } + if(horder.getEndTime().getTime()-endTime1.getTime()>0){ + chargeDetails.setDetailEndTime(rateEndTime); + }else{ + chargeDetails.setDetailEndTime(orderEndTime); + judgeEnd =true; + } + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + + if(t1==1){ + BigDecimal divide = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal); + + BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT1PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(divide.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t1==2){ + + if(t12==2){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + //剩余电量 + bigDecimal1 = bigDecimal1.subtract(multiply); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + }else{ + BigDecimal multiply1 = bigDecimal1.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal1.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal1.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t12 = t12-1; + }else if(t1==3){ + if(t13==3){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + //剩余电量 + bigDecimal1 = bigDecimal1.subtract(multiply); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t13==2){ + + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal1 = bigDecimal1.subtract(multiply); + }else{ + BigDecimal multiply1 = bigDecimal1.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal1.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal1.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t13 = t13-1; + } + + } else if ("01".equals(rateValue)) { + boolean judgeStart =false; + boolean judgeEnd =false; + + if(horder.getStartTime().getTime()-startTime1.getTime()>0){ + chargeDetails.setDetailStartTime(orderStartTime); + judgeStart =true; + }else{ + chargeDetails.setDetailStartTime(rateStartTime); + } + if(horder.getEndTime().getTime()-endTime1.getTime()>0){ + chargeDetails.setDetailEndTime(rateEndTime); + }else{ + chargeDetails.setDetailEndTime(orderEndTime); + judgeEnd =true; + } + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + + if(t2==1){ + BigDecimal divide = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal); + + BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT2PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(divide.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t2==2){ + + if(t22==2){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal2 = bigDecimal2.subtract(multiply); + + }else{ + BigDecimal multiply1 = bigDecimal2.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal2.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal2.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t22 = t22-1; + }else if(t2==3){ + if(t23==3){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal2 = bigDecimal2.subtract(multiply); + }else if(t23==2){ + + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal2 = bigDecimal2.subtract(multiply); + }else{ + BigDecimal multiply1 = bigDecimal2.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal2.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal2.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t23 = t23-1; + } + + }else if ("02".equals(rateValue)) { + boolean judgeStart =false; + boolean judgeEnd =false; + + if(horder.getStartTime().getTime()-startTime1.getTime()>0){ + chargeDetails.setDetailStartTime(orderStartTime); + judgeStart =true; + }else{ + chargeDetails.setDetailStartTime(rateStartTime); + } + if(horder.getEndTime().getTime()-endTime1.getTime()>0){ + chargeDetails.setDetailEndTime(rateEndTime); + }else{ + chargeDetails.setDetailEndTime(orderEndTime); + judgeEnd =true; + } + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + + if(t3==1){ + BigDecimal divide = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal); + + BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT3PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(divide.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t3==2){ + + if(t32==2){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal3 = bigDecimal3.subtract(multiply); + + }else{ + BigDecimal multiply1 = bigDecimal3.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal3.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal3.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t32 = t32-1; + }else if(t3==3){ + if(t33==3){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal3 = bigDecimal3.subtract(multiply); + }else if(t33==2){ + + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal3 = bigDecimal3.subtract(multiply); + }else{ + BigDecimal multiply1 = bigDecimal3.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal3.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal3.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t33 = t33-1; + } + + }else if ("03".equals(rateValue)) { + boolean judgeStart =false; + boolean judgeEnd =false; + + if(horder.getStartTime().getTime()-startTime1.getTime()>0){ + chargeDetails.setDetailStartTime(orderStartTime); + judgeStart =true; + }else{ + chargeDetails.setDetailStartTime(rateStartTime); + } + if(horder.getEndTime().getTime()-endTime1.getTime()>0){ + chargeDetails.setDetailEndTime(rateEndTime); + }else{ + chargeDetails.setDetailEndTime(orderEndTime); + judgeEnd =true; + } + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + + if(t4==1){ + BigDecimal divide = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal); + + BigDecimal multiply1 = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = new BigDecimal(cacheOrderData.getT4PowerQuantity()).divide(bigDecimal).multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(divide.doubleValue()); + chargeDetailsStack.push(chargeDetails); + }else if(t4==2){ + + if(t42==2){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal4 = bigDecimal4.subtract(multiply); + + }else{ + BigDecimal multiply1 = bigDecimal4.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal4.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal4.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t42 = t42-1; + }else if(t4==3){ + if(t43==3){ + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal4 = bigDecimal4.subtract(multiply); + }else if(t43==2){ + + if(judgeStart){ + rateStartTime = orderStartTime; + } + if(judgeEnd){ + rateEndTime = orderEndTime; + } + DateTime parse2 = cn.hutool.core.date.DateUtil.parse(rateStartTime, "yyyy-MM-dd HH:mm:ss"); + DateTime parse3 = cn.hutool.core.date.DateUtil.parse(rateEndTime, "yyyy-MM-dd HH:mm:ss"); + long betweenDay4 = cn.hutool.core.date.DateUtil.between(parse3,parse2, DateUnit.MINUTE); + //获得电量 + BigDecimal multiply = quantity.multiply(new BigDecimal(betweenDay4)); + + + BigDecimal multiply1 = multiply.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = multiply.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(multiply.doubleValue()); + chargeDetailsStack.push(chargeDetails); + + //剩余电量 + bigDecimal4 = bigDecimal4.subtract(multiply); + }else{ + BigDecimal multiply1 = bigDecimal4.multiply(xpcRateTime.getPowerFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal multiply2 = bigDecimal4.multiply(xpcRateTime.getServiceFee()).setScale(2, BigDecimal.ROUND_HALF_UP); + + chargeDetails.setElecPrice(xpcRateTime.getPowerFee().doubleValue()); + chargeDetails.setSevicePrice(xpcRateTime.getServiceFee().doubleValue()); + chargeDetails.setDetailElecMoney(multiply1.doubleValue()); + chargeDetails.setDetailSeviceMoney(multiply2.doubleValue()); + chargeDetails.setDetailPower(bigDecimal4.doubleValue()); + chargeDetailsStack.push(chargeDetails); + } + t43 = t43-1; + } + } + } + + //写入数据库 + for (int i = 0; i select count(*) from xhpc_charging_station_power - where `status`=#{number} and charging_station_id=#{chargingStationId} and terminal_id =#{terminalId} and create_time like concat(#{subTime}, '%') + where `status`=#{number} and charging_station_id=#{chargingStationId} and terminal_id =#{terminalId} and create_time like concat(#{subTime}, '%') and create_time >= #{createTime} + + + + + diff --git a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcPileRegularInspectMapper.xml b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcPileRegularInspectMapper.xml index 5c61bcb6..b9713280 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcPileRegularInspectMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcPileRegularInspectMapper.xml @@ -161,12 +161,9 @@ - \ No newline at end of file + diff --git a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcPlaceholderOrderMapper.xml b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcPlaceholderOrderMapper.xml index 29b91422..44bb3395 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcPlaceholderOrderMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcPlaceholderOrderMapper.xml @@ -56,6 +56,7 @@ + - appeal_refund_money =#{appealRefundMoney} + appeal_refund_money =#{appealRefundMoney}, + + + user_status =#{userStatus}, + + + recharge_money =#{rechargeMoney}, + + + refund_money =#{refundMoney}, + + + img_id =#{imgId}, where placeholder_order_id = #{placeholderOrderId} @@ -360,6 +373,8 @@ ho.internet_serial_number as internetSerialNumber, ho.start_time as startTime, ho.end_time as endTime, + ho.recharge_money as rechargeMoney, + ho.refund_money as refundMoney, ho.source as source, TIMESTAMPDIFF(MINUTE, IFNULL(ho.start_time, NOW()), NOW()) minutes, case when ho.source=0 then "C端用户" @@ -397,6 +412,10 @@ cop.account as communityAccount, cup.account as customersAccount, ho.driver_id as internetUserPhone, + ho.user_status as userStatus, + ho.act_price as actPrice, + ho.appeal_recharge_money as appealRechargeMoney, + ho.appeal_refund_money as appealRefundMoney, ho.plate_num as plateNum, case when ho.charging_mode="1" then "快电" when ho.charging_mode="2" then "恒大" @@ -565,6 +584,7 @@ when ho.charging_mode="2" then "恒大" when ho.charging_mode="3" then "新电途" when ho.charging_mode="4" then "小桔" + when ho.charging_mode="7" then "车为家" when ho.charging_mode="微信" then "微信" when ho.charging_mode="支付宝" then "支付宝" when ho.charging_mode="App" then "App" @@ -905,7 +925,7 @@ ifnull(xho.total_price,0) as totalPrice, xpo.serial_number as serialNumber, xho.tenant_id as tenantId, - DATE_FORMAT( xho.start_time, "%Y-%m-%d %H:%i:%s" ) startTime, + DATE_FORMAT( xpo.start_time, "%Y-%m-%d %H:%i:%s" ) startTime, xho.source as source, xpo.placeholder_order_id as placeholderOrderId from xhpc_placeholder_order xpo @@ -922,7 +942,8 @@ select - SUM(CASE WHEN ss.charging_mode = 1 THEN total_money ELSE 0 END) AS "kudaiDianMoney", - SUM(CASE WHEN ss.charging_mode = 2 THEN total_money ELSE 0 END) AS "henDaMoney", - SUM(CASE WHEN ss.charging_mode = 3 THEN total_money ELSE 0 END) AS "xinDianTuMoney", - format(ifnull(sum(ss.refund_money),0), 2) refundMoney, - format(ifnull(sum(ss.recharge_money),0),2) rechargeMoney, - SUM(CASE WHEN ss.charging_mode = 4 THEN total_money ELSE 0 END) AS "xiaoJuMoney", - SUM(CASE WHEN ss.charging_mode = 7 THEN total_money ELSE 0 END) AS "cheWeiJiaMoney", - SUM(CASE WHEN ss.charging_mode = 'C端用户' THEN act_price ELSE 0 END) AS "CDuanMoney", - SUM(CASE WHEN ss.charging_mode = '社区用户' THEN act_price ELSE 0 END) AS "sheQuMoney", - SUM(CASE WHEN ss.charging_mode = 'B端用户' THEN act_price ELSE 0 END) AS "BDuanMoney", + ifnull(SUM(CASE WHEN ss.charging_mode = 1 THEN total_money ELSE 0 END),0) AS "kudaiDianMoney", + ifnull(SUM(CASE WHEN ss.charging_mode = 2 THEN total_money ELSE 0 END),0) AS "henDaMoney", + ifnull(SUM(CASE WHEN ss.charging_mode = 3 THEN total_money ELSE 0 END),0) AS "xinDianTuMoney", + ifnull(sum(CASE WHEN ss.charging_mode = 1 THEN refund_money ELSE 0 END),0) "kudaiDianRefundMoney", + ifnull(sum(CASE WHEN ss.charging_mode = 1 THEN recharge_money ELSE 0 END),0) "kudaiDianRechargeMoney", + ifnull(sum(CASE WHEN ss.charging_mode = 3 THEN refund_money ELSE 0 END),0) "xinDianTuRefundMoney", + ifnull(sum(CASE WHEN ss.charging_mode = 3 THEN recharge_money ELSE 0 END),0) "xinDianTuRechargeMoney", + ifnull(SUM(CASE WHEN ss.charging_mode = 4 THEN total_money ELSE 0 END),0) AS "xiaoJuMoney", + ifnull(SUM(CASE WHEN ss.charging_mode = 7 THEN total_money ELSE 0 END),0) AS "cheWeiJiaMoney", + ifnull(SUM(CASE WHEN ss.charging_mode NOT IN (1, 2, 3, 4, 7) THEN act_price ELSE 0 END),0) AS "actPrice", + ifnull(SUM(CASE WHEN ss.charging_mode NOT IN (1, 2, 3, 4, 7) THEN appeal_recharge_money ELSE 0 END),0) AS "appealRechargeMoney", + ifnull(SUM(CASE WHEN ss.charging_mode NOT IN (1, 2, 3, 4, 7) THEN appeal_refund_money ELSE 0 END),0) AS "appealRefundMoney", case when ss.charging_mode=1 then "快电" when ss.charging_mode=2 then "恒大" when ss.charging_mode=3 then "新电途" when ss.charging_mode=4 then "小桔" when ss.charging_mode=7 then "车为家" - when ss.charging_mode='社区用户' then "社区用户" - when ss.charging_mode='B端用户' then "B端用户" - else "C端用户" + else "平台用户" end sourceName from xhpc_placeholder_order as ss left join xhpc_charging_station cs on cs.charging_station_id = ss.charging_station_id left join xhpc_operator xo on cs.operator_id = xo.operator_id - where ss.del_flag=0 and (ss.status=3 or ss.status=9 or ss.status=10) and ss.type=1 + where ss.del_flag=0 and ss.type=1 and ss.start_time >= #{startTime} @@ -996,25 +1017,37 @@ and ss.charging_station_id in (select charging_station_id from xhpc_user_privilege where user_id=#{sysUserId}) - group by ss.charging_mode + group by + CASE + WHEN ss.charging_mode = 1 THEN '快电' + WHEN ss.charging_mode = 2 THEN '恒大' + WHEN ss.charging_mode = 3 THEN '新电途' + WHEN ss.charging_mode = 4 THEN '小桔' + WHEN ss.charging_mode = 7 THEN '车为家' + ELSE '平台用户' + END select - SUM(CASE WHEN ss.charging_mode = 1 THEN total_money ELSE 0 END) AS "kudaiDianMoney", - SUM(CASE WHEN ss.charging_mode = 2 THEN total_money ELSE 0 END) AS "henDaMoney", - SUM(CASE WHEN ss.charging_mode = 3 THEN total_money ELSE 0 END) AS "xinDianTuMoney", - format(ifnull(sum(ss.refund_money),0), 2) refundMoney, - format(ifnull(sum(ss.recharge_money),0),2) rechargeMoney, - SUM(CASE WHEN ss.charging_mode = 4 THEN total_money ELSE 0 END) AS "xiaoJuMoney", - SUM(CASE WHEN ss.charging_mode = 7 THEN total_money ELSE 0 END) AS "cheWeiJiaMoney", - SUM(CASE WHEN ss.source = 0 THEN act_price ELSE 0 END) AS "actPrice", + ifnull(SUM(CASE WHEN ss.charging_mode = 1 THEN total_money ELSE 0 END),0) AS "kudaiDianMoney", + ifnull(SUM(CASE WHEN ss.charging_mode = 2 THEN total_money ELSE 0 END),0) AS "henDaMoney", + ifnull(SUM(CASE WHEN ss.charging_mode = 3 THEN total_money ELSE 0 END),0) AS "xinDianTuMoney", + ifnull(sum(CASE WHEN ss.charging_mode = 1 THEN refund_money ELSE 0 END),0) "kudaiDianRefundMoney", + ifnull(sum(CASE WHEN ss.charging_mode = 1 THEN recharge_money ELSE 0 END),0) "kudaiDianRechargeMoney", + ifnull(sum(CASE WHEN ss.charging_mode = 3 THEN refund_money ELSE 0 END),0) "xinDianTuRefundMoney", + ifnull(sum(CASE WHEN ss.charging_mode = 3 THEN recharge_money ELSE 0 END),0) "xinDianTuRechargeMoney", + ifnull(SUM(CASE WHEN ss.charging_mode = 4 THEN total_money ELSE 0 END),0) AS "xiaoJuMoney", + ifnull(SUM(CASE WHEN ss.charging_mode = 7 THEN total_money ELSE 0 END),0) AS "cheWeiJiaMoney", + ifnull(SUM(CASE WHEN ss.charging_mode NOT IN (1, 2, 3, 4, 7) THEN act_price ELSE 0 END),0) AS "actPrice", + ifnull(SUM(CASE WHEN ss.charging_mode NOT IN (1, 2, 3, 4, 7) THEN appeal_recharge_money ELSE 0 END),0) AS "appealRechargeMoney", + ifnull(SUM(CASE WHEN ss.charging_mode NOT IN (1, 2, 3, 4, 7) THEN appeal_refund_money ELSE 0 END),0) AS "appealRefundMoney", cs.name as chargingStationName, xo.name operatorName from xhpc_placeholder_order as ss left join xhpc_charging_station cs on cs.charging_station_id = ss.charging_station_id left join xhpc_operator xo on cs.operator_id = xo.operator_id - where ss.del_flag=0 and (ss.status=3 or ss.status=9 or ss.status=10) and ss.type=1 + where ss.del_flag=0 and ss.type=1 and ss.start_time >= #{startTime} @@ -1105,6 +1142,7 @@ ct.name as stationName, ter.name as terminalName, ho.appeal_refund_money as appealRefundMoney, + ho.img_id as imgId, ho.start_time as placeholderStartTime, ho.end_time as placeholderEndTime, ho.total_time_span as placeholderTotalTimeSpen, @@ -1118,6 +1156,10 @@ ho.appeal_result as appealResult, ho.appeal_user_result as appealUserResult, ho.appeal_time as appealTime, + CASE + WHEN ho.create_time > DATE_SUB(NOW(), INTERVAL 14 DAY) THEN 1 + ELSE 0 + END AS canAppeal, ho.appeal_process_time as appealProcessTime from xhpc_placeholder_order ho left join xhpc_charging_station as ct on ct.charging_station_id = ho.charging_station_id @@ -1146,6 +1188,7 @@ when ho.appeal_status=2 then "申述成功" else "申述失败" end appealStatusText, + ho.img_id as imgId, ho.appeal_result as appealResult, ho.appeal_user_result as appealUserResult, ho.appeal_time as appealTime, @@ -1178,4 +1221,114 @@ order by ho.create_time desc + + + + + + + + + update xhpc_placeholder_order set recharge_money=#{rechargeMoney},user_status=2 where placeholder_order_number=#{placeholderOrderNumber} + + + + update xhpc_placeholder_order set appeal_recharge_money=#{rechargeMoney},act_settlement=2 where placeholder_order_number=#{placeholderOrderNumber} + + + + + + + + diff --git a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcRealTimeOrderMapper.xml b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcRealTimeOrderMapper.xml index a4f85116..962c6855 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcRealTimeOrderMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcRealTimeOrderMapper.xml @@ -37,6 +37,24 @@ + + + + + + + + + + + + + + + + + + insert into xhpc_real_time_order @@ -1233,9 +1251,6 @@ tenant_id, - - tenant_id, - serial_number, @@ -1318,5 +1333,156 @@ from xhpc_placeholder where del_flag =0 and status =1 and NOW() >= start_time AND NOW() <= end_time and charging_station_id =#{chargingStationId} + + + + insert into xhpc_history_order_charge_details + + + history_order_id, + + + detail_start_time, + + + detail_end_time, + + + elec_price, + + + sevice_price, + + + detail_power, + + + detail_elec_money, + + + detail_sevice_money, + + + start_time, + + + end_time, + + + total_power, + + + total_elec_money, + + + total_sevice_money, + + + total_money, + + + status, + + + create_time, + + + create_by, + + + update_time, + + + update_by, + + + remark, + + + + + #{historyOrdersId}, + + + #{detailStartTime}, + + + #{detailEndTime}, + + + #{elecPrice}, + + + #{sevicePrice}, + + + #{detailPower}, + + + #{detailElecMoney}, + + + #{detailSeviceMoney}, + + + #{startTime}, + + + #{endTime}, + + + #{totalPower}, + + + #{totalElecMoney}, + + + #{totalSeviceMoney}, + + + #{totalMoney}, + + + #{status}, + + + #{createTime}, + + + #{createBy}, + + + #{updateTime}, + + + #{updateBy}, + + + #{remark}, + + + diff --git a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/AlipayPaymentController.java b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/AlipayPaymentController.java index 38c19433..ec3fc951 100644 --- a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/AlipayPaymentController.java +++ b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/AlipayPaymentController.java @@ -412,6 +412,17 @@ public class AlipayPaymentController { String s1 =money.multiply(new BigDecimal(100)).toString(); startChargingData.setBalance(Double.valueOf(s1).intValue()); R r = powerPileService.refreshBalance(startChargingData); + + //修改订单充电下发的金额 + Map cacheMap = redisService.getCacheMap("order:"+serialMumber); + + if(cacheMap.get("initBalance") !=null){ + cacheMap.put("initBalance",Double.valueOf(money.multiply(new BigDecimal(10000)).toString()).intValue()); + redisService.setCacheMap("order:"+serialMumber,cacheMap); + + redisService.setCacheObject("YE"+serialMumber,money); + + } logger.info("<<<<<<<<<<<<余额下发>>>>>>>>>"+s1); logger.info("<<<<<<<<<<<<"+r.getCode()+">>>>>>>>>"); logger.info("<<<<<<<<<<<<"+r.getMsg()+">>>>>>>>>"); diff --git a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/WxPaymentController.java b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/WxPaymentController.java index 6ac99a89..b3d46dd0 100644 --- a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/WxPaymentController.java +++ b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/WxPaymentController.java @@ -552,6 +552,16 @@ public class WxPaymentController { logger.info("<<<<<<<<<<<<余额下发>>>>>>>>>"+s1); logger.info("<<<<<<<<<<<<"+r.getCode()+">>>>>>>>>"); logger.info("<<<<<<<<<<<<"+r.getMsg()+">>>>>>>>>"); + + //修改订单充电下发的金额 + Map cacheMap = redisService.getCacheMap("order:"+serialMumber); + + if(cacheMap.get("initBalance") !=null){ + cacheMap.put("initBalance",Double.valueOf(money.multiply(new BigDecimal(10000)).toString()).intValue()); + redisService.setCacheMap("order:"+serialMumber,cacheMap); + redisService.setCacheObject("YE"+serialMumber,money); + } + if(r.getCode() !=200){ //创建定时任务 diff --git a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/XhpcRefundOrderController.java b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/XhpcRefundOrderController.java index 49b92176..82cd71d5 100644 --- a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/XhpcRefundOrderController.java +++ b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/XhpcRefundOrderController.java @@ -238,6 +238,9 @@ public class XhpcRefundOrderController extends BaseController { Map map = list.get(i); if(map.get("balance") !=null && new BigDecimal(0).compareTo(new BigDecimal(map.get("balance").toString()))==0){ iXhpcRefundOrderService.updateXhpcRefundOrder(Long.valueOf(map.get("refundOrderId").toString())); + }else if(new BigDecimal(0).compareTo(new BigDecimal(map.get("balance").toString()))< 0){ + //修改请求数据 + iXhpcRefundOrderService.updateXhpcRefundOrderBalance(Long.valueOf(map.get("refundOrderId").toString()),map.get("balance").toString()); } } } @@ -248,6 +251,30 @@ public class XhpcRefundOrderController extends BaseController { } } + //没在充电中、异常订单 + //没十分钟查询一下,审核失败的订单,当用户有金额时,且对应不上,订单删除,生成新的订单 + //金额对应的上,重新审核 + @Scheduled(cron = "0 0/10 * * * ? ") + public void abnormalPaymentOrder(){ + logger.info("++++++++++++每5分,扫描一次,在管理员审核状态中,用户金额为0时,去掉该记录++++++++++++++++"); + try { + List> list = iXhpcRefundOrderService.administratorReview(); + if(list !=null && list.size()>0){ + for (int i = 0; i map = list.get(i); + if(map.get("balance") !=null && new BigDecimal(0).compareTo(new BigDecimal(map.get("balance").toString()))==0){ + iXhpcRefundOrderService.updateXhpcRefundOrder(Long.valueOf(map.get("refundOrderId").toString())); + } + } + } + }catch (Exception e){ + logger.info("++++++++++++管理员审核异常++++++++++++++++"); + e.printStackTrace(); + //后期可以增加短信通知 + } + } + + diff --git a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/mapper/XhpcRefundOrderMapper.java b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/mapper/XhpcRefundOrderMapper.java index f4f69a19..800d2469 100644 --- a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/mapper/XhpcRefundOrderMapper.java +++ b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/mapper/XhpcRefundOrderMapper.java @@ -131,4 +131,6 @@ public interface XhpcRefundOrderMapper { List> administratorReview(); void updateXhpcRefundOrder(@Param("refundOrderId")Long refundOrderId); + + void updateXhpcRefundOrderBalance(@Param("refundOrderId")Long refundOrderId,@Param("balance")String balance); } diff --git a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/service/IXhpcRefundOrderService.java b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/service/IXhpcRefundOrderService.java index 4ed4e725..9efe420b 100644 --- a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/service/IXhpcRefundOrderService.java +++ b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/service/IXhpcRefundOrderService.java @@ -131,4 +131,7 @@ public interface IXhpcRefundOrderService { List> administratorReview(); void updateXhpcRefundOrder(Long refundOrderId); + + //修改请求数据 + void updateXhpcRefundOrderBalance(Long refundOrderId,String balance); } diff --git a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/service/impl/XhpcRefundOrderServiceImpl.java b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/service/impl/XhpcRefundOrderServiceImpl.java index 9b84d46c..1bc8164c 100644 --- a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/service/impl/XhpcRefundOrderServiceImpl.java +++ b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/service/impl/XhpcRefundOrderServiceImpl.java @@ -305,4 +305,9 @@ public class XhpcRefundOrderServiceImpl implements IXhpcRefundOrderService { xhpcRefundOrderMapper.updateXhpcRefundOrder(refundOrderId); } + @Override + public void updateXhpcRefundOrderBalance(Long refundOrderId,String balance) { + xhpcRefundOrderMapper.updateXhpcRefundOrder(refundOrderId); + } + } diff --git a/xhpc-modules/xhpc-payment/src/main/resources/mapper/XhpcRefundOrderMapper.xml b/xhpc-modules/xhpc-payment/src/main/resources/mapper/XhpcRefundOrderMapper.xml index 5e3f01c1..7e2cb47f 100644 --- a/xhpc-modules/xhpc-payment/src/main/resources/mapper/XhpcRefundOrderMapper.xml +++ b/xhpc-modules/xhpc-payment/src/main/resources/mapper/XhpcRefundOrderMapper.xml @@ -372,9 +372,8 @@ xau.balance as balance from xhpc_refund_order xro LEFT JOIN xhpc_app_user xau on xau.app_user_id = xro.user_id and xro.source =0 - - where xro.del_flag = 0 and xro.status !=1 and xro.examine_status !=1 - + where xro.del_flag = 0 and ((xro.examine_status = 0 AND xro.status =4) or (xro.examine_status = 1 AND (xro.status =0 or xro.status =4))) + AND xro.create_time > DATE_SUB(NOW(), INTERVAL 30 MINUTE) ORDER BY xro.create_time DESC @@ -382,5 +381,15 @@ update xhpc_refund_order set del_flag =1 where refund_order_id =#{refundOrderId} - + + update xhpc_refund_order + set amount = #{balance}, + examine_status = 0, + status = 0, + update_time = NOW() + where refund_order_id = #{refundOrderId} + and del_flag = 0 + and examine_status = 1 + and status in (0, 4) + diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RateModelConfigReplyDataLogic.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RateModelConfigReplyDataLogic.java index 69b338e9..34b6ff98 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RateModelConfigReplyDataLogic.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RateModelConfigReplyDataLogic.java @@ -45,13 +45,27 @@ public class RateModelConfigReplyDataLogic implements ServiceLogic { ChargingStationDto cacheStation = REDIS.getCacheObject("station:".concat(cachePile.get("stationId").toString())); String version = (String) cachePile.get("version"); Integer rateModelId = pileRateModelConfigReplyData.getRateModelId(); - if (!"0A".equals(version) && !"0B".equals(version)) { +// if (!"0A".equals(version) && !"0B".equals(version)) { +// Long stationRateModelId = cacheStation.getRateModelId(); +// if (stationRateModelId.intValue() == rateModelId) { +// cachePile.put("rateModelId", cacheStation.getRateModelId()); +// result = OK; +// } +// } else { +// cachePile.put("rateModelId", cacheStation.getRateModelId()); +// result = OK; +// } + if ( "0F".equals(version)) { + System.out.println("==========0X57======"); + cachePile.put("rateModelId", cacheStation.getRateModelId()); + result = OK; + } else if("0C".equals(version)){ Long stationRateModelId = cacheStation.getRateModelId(); if (stationRateModelId.intValue() == rateModelId) { cachePile.put("rateModelId", cacheStation.getRateModelId()); result = OK; } - } else { + }else { cachePile.put("rateModelId", cacheStation.getRateModelId()); result = OK; } diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RateModelRequestLogic.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RateModelRequestLogic.java index d6766743..b9dd6e62 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RateModelRequestLogic.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RateModelRequestLogic.java @@ -66,12 +66,22 @@ public class RateModelRequestLogic implements ServiceLogic { String rateModel = translate(cacheRateModel); String skey = "pile:".concat(pileNo).concat(".seqhex"); String resultStr; - if (!"0C".equals(version)) +// if (!"0C".equals(version)) +// resultStr = "685E".concat(seqHex(skey)).concat(svc).concat(pileNo).concat(String.format("%04X", +// stationRateModelId)).concat(rateModel); +// else +// resultStr = +// "6860".concat(seqHex(skey)).concat(svc).concat(pileNo).concat(HexUtils.toHexInt(stationRateModelId)).concat(rateModel); + if ("0F".equals(version)) { resultStr = "685E".concat(seqHex(skey)).concat(svc).concat(pileNo).concat(String.format("%04X", stationRateModelId)).concat(rateModel); - else + }else if("0C".equals(version)){ resultStr = "6860".concat(seqHex(skey)).concat(svc).concat(pileNo).concat(HexUtils.toHexInt(stationRateModelId)).concat(rateModel); + }else{ + resultStr = "685E".concat(seqHex(skey)).concat(svc).concat(pileNo).concat(String.format("%04X", + stationRateModelId)).concat(rateModel); + } resultStr = resultStr.concat(CRCCalculator.calcCrc(resultStr)); return resultStr; } diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RateModelValidateLogic.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RateModelValidateLogic.java index b2b3d772..31adf458 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RateModelValidateLogic.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RateModelValidateLogic.java @@ -54,8 +54,17 @@ public class RateModelValidateLogic implements ServiceLogic { String hexCode = ServiceResult.HEX_00; Long rateModelId; String version = (String) cachePile.get("version"); - if ("0C".equals(version)) rateModelId = Long.valueOf(rateModelIdStr); - else rateModelId = Long.valueOf(Integer.parseInt(rateModelIdStr, 16)); +// if ("0C".equals(version)) rateModelId = Long.valueOf(rateModelIdStr); +// else rateModelId = Long.valueOf(Integer.parseInt(rateModelIdStr, 16)); + + if("0F".equals(version)){ + rateModelId = Long.valueOf(rateModelIdStr); + } else if ("0C".equals(version)){ + rateModelId = Long.valueOf(rateModelIdStr); + } else{ + rateModelId = Long.valueOf(Integer.parseInt(rateModelIdStr, 16)); + } + Long csRateModelId = rateModelId; if (!charging) { ChargingStationDto cacheStation = REDIS.getCacheObject("station:".concat(cachePile.get("stationId").toString())); @@ -69,13 +78,27 @@ public class RateModelValidateLogic implements ServiceLogic { String seq = seqHex(skey); String resultStr; - if (!"0C".equals(version)){ +// if (!"0C".equals(version)){ +// resultStr = "680E".concat(seq).concat("0006").concat(pileNo).concat(String.format("%04X", csRateModelId)).concat(hexCode); +// resultStr = resultStr.concat(CRCCalculator.calcCrc(resultStr)); +// }else{ +// resultStr = "6810".concat(seq).concat("0006").concat(pileNo).concat(HexUtils.toHexInt(csRateModelId)).concat(hexCode); +// resultStr = resultStr.concat(CRCCalculator.calcCrc(resultStr)); +// } + + if ("0F".equals(version)){ + System.out.println("==========0X05======"); resultStr = "680E".concat(seq).concat("0006").concat(pileNo).concat(String.format("%04X", csRateModelId)).concat(hexCode); resultStr = resultStr.concat(CRCCalculator.calcCrc(resultStr)); - }else{ + }else if("0C".equals(version)){ resultStr = "6810".concat(seq).concat("0006").concat(pileNo).concat(HexUtils.toHexInt(csRateModelId)).concat(hexCode); resultStr = resultStr.concat(CRCCalculator.calcCrc(resultStr)); + }else{ + resultStr = "680E".concat(seq).concat("0006").concat(pileNo).concat(String.format("%04X", csRateModelId)).concat(hexCode); + resultStr = resultStr.concat(CRCCalculator.calcCrc(resultStr)); } + + XhpcDeviceMessage deviceMessage = new XhpcDeviceMessage(); deviceMessage.setType(StationDeviceEnum.PILE.getCode()); deviceMessage.setSerialNumber(pileNo); diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/api/XhpcInvoiceApiController.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/api/XhpcInvoiceApiController.java index 8f354c77..0e0bbd7f 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/api/XhpcInvoiceApiController.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/api/XhpcInvoiceApiController.java @@ -14,9 +14,11 @@ import com.xhpc.user.mapper.XhpcHistoryOrderMapper; import com.xhpc.user.pojo.XhpcInvoiceMapHistoryOrder; import com.xhpc.user.service.XhpcInvoiceService; import com.xhpc.system.api.model.LoginUser; +import org.springframework.http.HttpRequest; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.ZoneId; @@ -132,8 +134,10 @@ public class XhpcInvoiceApiController extends BaseController { * @since version-1.0 */ @GetMapping(value = "/user/history-orders") - public AjaxResult findUserHistoryOrders(InvoicedOrdersRequest invoicedOrdersRequest) { + public AjaxResult findUserHistoryOrders(HttpServletRequest request, InvoicedOrdersRequest invoicedOrdersRequest) { + LoginUser loginUser = tokenService.getLoginUser(request); + invoicedOrdersRequest.setTenantId(loginUser.getTenantId()); InvoicedOrderResponse invoicedOrdersResponse = xhpcInvoiceService.findUserHistoryOrders(invoicedOrdersRequest); return AjaxResult.success(invoicedOrdersResponse); diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcAppUserController.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcAppUserController.java index bb15d258..38575709 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcAppUserController.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcAppUserController.java @@ -847,12 +847,4 @@ public class XhpcAppUserController extends BaseController { } - public static void main(String[] args) { - String q = " { \"serviceFee\": 0.20000, \"distance\": 2.62, \"latitude\": \"30.619354202932893\", \"powerFee\": 0.75000, \"serviceFacilities\": \"1,2\", \"common\": 18, \"money\": 0.95000, \"serviceFacilitiesName\": \"免费WIFI,快餐\", \"activityState\": 0, \"detailedAddress\": \"四川省成都市高新区科员三路4号停车场\", \"name\": \"小华充电火炬时代充电站\", \"chargingStationId\": 12, \"free\": \"16\", \"parkingInstructions\": \"充电车辆免费停车2小时,超时按照收取占位费10元/小时,退款请点击小程序“我的”点击退款\", \"longitude\": \"104.03775022879245\" }, { \"serviceFee\": 0.20000, \"distance\": 13.23, \"latitude\": \"30.761406\", \"powerFee\": 0.85000, \"serviceFacilities\": \"2\", \"common\": 26, \"money\": 1.05000, \"serviceFacilitiesName\": \"快餐\", \"activityState\": 0, \"detailedAddress\": \"四川省成都市新都区大丰街道丰安路与高堆路交口停车场\", \"name\": \"小华充电高堆路充电站\", \"chargingStationId\": 5, \"free\": \"19\", \"parkingInstructions\": \"充电车辆免费停车2小时,超时按照收取占位费10元/小时\", \"longitude\": \"104.04650800000002\" }, { \"serviceFee\": 0.20000, \"distance\": 15.29, \"latitude\": \"30.71452\", \"powerFee\": 0.75000, \"serviceFacilities\": \"2\", \"common\": 20, \"money\": 0.95000, \"serviceFacilitiesName\": \"快餐\", \"activityState\": 0, \"detailedAddress\": \"四川省成都市温江区隆平路760号\", \"name\": \"小华充电汽车充电站(温江学府杏林)\", \"chargingStationId\": 2, \"free\": \"13\", \"parkingInstructions\": \"充电车辆免费停车2小时,超时按照收取占位费10元/小时\", \"longitude\": \"103.90699699999999\" }, { \"serviceFee\": 0.20000, \"distance\": 16.35, \"latitude\": \"30.755104515359573\", \"powerFee\": 0.85000, \"serviceFacilities\": \"2\", \"common\": 20, \"money\": 1.05000, \"serviceFacilitiesName\": \"快餐\", \"activityState\": 0, \"detailedAddress\": \"成都市新都区翡翠西路27号法治文化广场二台子驿站停车场内\", \"name\": \"小华充电二台子社区充电站\", \"chargingStationId\": 10, \"free\": \"17\", \"parkingInstructions\": \"充电车辆绑定正确车牌免停2小时,充电完成请及时挪车\", \"longitude\": \"104.15292239025234\" }, { \"serviceFee\": 0.20000, \"distance\": 18.87, \"latitude\": \"30.787204\", \"powerFee\": 0.75000, \"serviceFacilities\": \"1,2\", \"common\": 20, \"money\": 0.95000, \"serviceFacilitiesName\": \"免费WIFI,快餐\", \"activityState\": 0, \"detailedAddress\": \"四川省成都市郫都区港华路299号\", \"name\": \"小华充电西郡英华充电站\", \"chargingStationId\": 1, \"free\": \"19\", \"parkingInstructions\": \"充电车辆免费停车2小时,超时按照收取占位费10元/小时\", \"longitude\": \"103.94012199999997\" }, { \"serviceFee\": 0.20000, \"distance\": 19.28, \"latitude\": \"30.804475\", \"powerFee\": 0.75000, \"serviceFacilities\": \"2\", \"common\": 20, \"money\": 0.95000, \"serviceFacilitiesName\": \"快餐\", \"activityState\": 0, \"detailedAddress\": \"四川省成都市郫县团结街道平安村联工汽修旁\", \"name\": \"小华充电团结平安村充电站\", \"chargingStationId\": 4, \"free\": \"15\", \"parkingInstructions\": \"充电车辆免费停车2小时,超时按照收取占位费10元/小时\", \"longitude\": \"103.97147100000001\" }, { \"serviceFee\": 0.20000, \"distance\": 19.5, \"latitude\": \"30.808473546555227\", \"powerFee\": 0.75000, \"serviceFacilities\": \"1,2\", \"common\": 20, \"money\": 0.95000, \"serviceFacilitiesName\": \"免费WIFI,快餐\", \"activityState\": 0, \"detailedAddress\": \"新都区兴城大道1689号润茂酒店用品文博园停车场\", \"name\": \"小华充电润茂酒店用品城汽车充电站\", \"chargingStationId\": 13, \"free\": \"19\", \"parkingInstructions\": \"充电完成请尽快离场,退款请点击小程序“我的”点击退款\", \"longitude\": \"104.10859023213385\" }, { \"serviceFee\": 0.15000, \"distance\": 24.29, \"latitude\": \"30.813771\", \"powerFee\": 0.76000, \"serviceFacilities\": \"1,2,3\", \"common\": 20, \"money\": 0.91000, \"serviceFacilitiesName\": \"免费WIFI,快餐,空调休息室\", \"activityState\": 0, \"detailedAddress\": \"成都市新都区新都大道1号\", \"name\": \"小华充电红星小区充电站\", \"chargingStationId\": 15, \"free\": \"18\", \"parkingInstructions\": \"充电车辆免费停车2小时,超时按照收取占位费5元/小时\", \"longitude\": \"104.200692\" }, { \"serviceFee\": 0.20000, \"distance\": 24.4, \"latitude\": \"30.831801\", \"powerFee\": 0.75000, \"serviceFacilities\": \"2\", \"common\": 20, \"money\": 0.95000, \"serviceFacilitiesName\": \"快餐\", \"activityState\": 0, \"detailedAddress\": \"成都市新都区紫瑞街298号院内\", \"name\": \"小华充电紫瑞街充电站\", \"chargingStationId\": 11, \"free\": \"19\", \"parkingInstructions\": \"充电车辆免费停车2小时,超时按照收取占位费10元/小时,退款请点击小程序“我的”点击退款\", \"longitude\": \"104.172057\" }, { \"serviceFee\": 0.20000, \"distance\": 28.17, \"latitude\": \"30.89283\", \"powerFee\": 0.85000, \"serviceFacilities\": \"2\", \"common\": 20, \"money\": 1.05000, \"serviceFacilitiesName\": \"快餐\", \"activityState\": 0, \"detailedAddress\": \"四川省成都市新都区新繁大道与105省道交叉口西北50米长德·新世贸食品城(东南7门)\", \"name\": \"小华充电新繁长德食品城充电站\", \"chargingStationId\": 3, \"free\": \"19\", \"parkingInstructions\": \"充电完成请尽快离场,否则将收入超时停车费及锁车!\", \"longitude\": \"103.99847899999997\" }"; - String url = "https://fanyi-api.baidu.com/api/trans/vip/translate?q=" + q + "&from=" + "zh"+"&to=" +"ara"+"&appid=" +"20240726002109135"+"&salt=" +"1721984487780"+"&sign=" +"dd32f9f448eedc757193f90801d27d4c"; - String result = HttpUtils.get(url); - JSONObject json = JSON.parseObject(result); - - System.out.println("json"+json.toString()); - } } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/InvoicedOrdersRequest.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/InvoicedOrdersRequest.java index 43e454ef..55d665f5 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/InvoicedOrdersRequest.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/InvoicedOrdersRequest.java @@ -41,4 +41,6 @@ public class InvoicedOrdersRequest { @JsonProperty("items") private Integer items; + + private String tenantId; } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcInvoiceServiceImpl.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcInvoiceServiceImpl.java index 51498a3e..11cd22e2 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcInvoiceServiceImpl.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcInvoiceServiceImpl.java @@ -352,12 +352,15 @@ public class XhpcInvoiceServiceImpl implements XhpcInvoiceService { orderDatasDTO.setOrderId((Long) data.get("historyOrderId")); orderDatasDTO.setOrderNumber((String) data.get("serialNumber")); orderDatasDTO.setOrderMoney(new BigDecimal(data.get("actPrice").toString())); - if(data.get("placeholderMoney") !=null && new BigDecimal(data.get("placeholderMoney").toString()).compareTo(new BigDecimal(0))>0){ - orderDatasDTO.setTotalMoney(new BigDecimal(data.get("actPrice").toString()).add(new BigDecimal(data.get("placeholderMoney").toString()))); - }else{ - orderDatasDTO.setTotalMoney(new BigDecimal(data.get("actPrice").toString())); - } - orderDatasDTO.setPlaceholderMoney(new BigDecimal(data.get("placeholderMoney").toString())); + +// if(data.get("placeholderMoney") !=null && new BigDecimal(data.get("placeholderMoney").toString()).compareTo(new BigDecimal(0))>0){ +// orderDatasDTO.setTotalMoney(new BigDecimal(data.get("actPrice").toString()).add(new BigDecimal(data.get("placeholderMoney").toString()))); +// }else{ +// orderDatasDTO.setTotalMoney(new BigDecimal(data.get("actPrice").toString())); +// } +// if(data.get("placeholderMoney")!=null){ +// orderDatasDTO.setPlaceholderMoney(new BigDecimal(data.get("placeholderMoney").toString())); +// } //因为数据库中存储的时间类型为datetime,所以Mybatis会将其转换为LocalDateTime类型对象,我们不能直接得到Date,所以我们需要对其进行转换。 LocalDateTime createTime = (LocalDateTime) data.get("createTime"); ZoneId zoneId = ZoneId.systemDefault(); @@ -1019,6 +1022,11 @@ public class XhpcInvoiceServiceImpl implements XhpcInvoiceService { public static void main(String[] args) { System.out.println("2024-01-02T12:11".length()); System.out.println("2024-01-02T12:11:00".length()); + + Date currentDate = new Date(); + String strTime = DateUtils.parseDateToStr(currentDate); + System.out.println("strTime"+strTime); + } } diff --git a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml index 3dd7b99b..e03718f4 100644 --- a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml +++ b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml @@ -60,6 +60,7 @@ xcp.surplus_money as balance, xcp.avatar as avatar, xcp.status, + xcp.community_id as communityId, xcp.weixin_open_id as weixinOpenId, xcp.alipay_open_id as alipayOpenId, xcp.weixin_login as weixinLogin, @@ -104,6 +105,7 @@ xcp.surplus_money as balance, xcp.avatar as avatar, xcp.status, + xcp.customers_id as customersId, xcp.weixin_open_id as weixinOpenId, xcp.alipay_open_id as alipayOpenId, xcp.weixin_login as weixinLogin, diff --git a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcHistoryOrderMapper.xml b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcHistoryOrderMapper.xml index 8b7e0329..29373032 100644 --- a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcHistoryOrderMapper.xml +++ b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcHistoryOrderMapper.xml @@ -117,27 +117,26 @@ - \ No newline at end of file + diff --git a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcStationInternetBlacklistMapper.xml b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcStationInternetBlacklistMapper.xml index 0d2dda43..ae4e5e8a 100644 --- a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcStationInternetBlacklistMapper.xml +++ b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcStationInternetBlacklistMapper.xml @@ -98,7 +98,7 @@ select charging_station_id chargingStationId, `name`,operator_id operatorId from xhpc_charging_station - WHERE del_flag = 0 + WHERE 1=1 and operator_id = #{operatorId}