diff --git a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java index 751e62ad1..825caae22 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java @@ -364,6 +364,11 @@ public class MemberService { .titleId(memberInvoiceTitle.getId() + "") .titleName(memberInvoiceTitle.getName()) .titleType(TitleTypeEnum.getLabel(memberInvoiceTitle.getTitleType())) + .taxId(memberInvoiceTitle.getTaxId()) + .unitAddress(memberInvoiceTitle.getUnitAddress()) + .phoneNumber(memberInvoiceTitle.getPhoneNumber()) + .bankName(memberInvoiceTitle.getBankName()) + .bankAccountNumber(memberInvoiceTitle.getBankAccountNumber()) .build() ); } diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index d7d38c473..7788b0c7d 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -20,7 +20,6 @@ import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.enums.InvoiceRecordEnum; import com.jsowell.common.enums.MemberWalletEnum; import com.jsowell.common.enums.ykc.ActionTypeEnum; -import com.jsowell.common.enums.ykc.BillingTimeEnum; import com.jsowell.common.enums.ykc.OrderPayModeEnum; import com.jsowell.common.enums.ykc.OrderPayRecordEnum; import com.jsowell.common.enums.ykc.OrderStatusEnum; @@ -69,6 +68,8 @@ import com.jsowell.pile.service.WechatPayService; import com.jsowell.pile.service.WxpayCallbackRecordService; import com.jsowell.pile.transaction.dto.OrderTransactionDTO; import com.jsowell.pile.transaction.service.TransactionService; +import com.jsowell.pile.vo.base.OrderAmountDetailVO; +import com.jsowell.pile.vo.base.OrderPeriodAmountVO; import com.jsowell.pile.vo.base.PileInfoVO; import com.jsowell.pile.vo.uniapp.InvoiceRecordVO; import com.jsowell.pile.vo.uniapp.MemberVO; @@ -858,48 +859,12 @@ public class OrderService { // 查订单明细 OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode); if (orderDetail != null) { - OrderDetailInfoVO.BillingDetails billingDetails = new OrderDetailInfoVO.BillingDetails(); + OrderAmountDetailVO billingDetails = new OrderAmountDetailVO(); BeanUtils.copyBeanProp(billingDetails, orderDetail); vo.setBillingDetails(billingDetails); - // new 收费明细 - OrderDetailInfoVO.ChargeDetail sharp = new OrderDetailInfoVO.ChargeDetail(); - sharp.setPeriodType(BillingTimeEnum.SHARP.getLabel()); - sharp.setElectricityPrice(orderDetail.getSharpElectricityPrice()); - sharp.setServicePrice(orderDetail.getSharpServicePrice()); - BigDecimal sharpUsedElectricity = orderDetail.getSharpUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getSharpUsedElectricity(); - sharp.setUsedElectricity(sharpUsedElectricity); - sharp.setElectricityAmount(sharp.getElectricityPrice().multiply(sharp.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); - sharp.setServiceAmount(sharp.getServicePrice().multiply(sharp.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); - - OrderDetailInfoVO.ChargeDetail peak = new OrderDetailInfoVO.ChargeDetail(); - peak.setPeriodType(BillingTimeEnum.PEAK.getLabel()); - peak.setElectricityPrice(orderDetail.getPeakElectricityPrice()); - peak.setServicePrice(orderDetail.getPeakServicePrice()); - BigDecimal peakUsedElectricity = orderDetail.getPeakUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getPeakUsedElectricity(); - peak.setUsedElectricity(peakUsedElectricity); - peak.setElectricityAmount(peak.getElectricityPrice().multiply(peak.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); - peak.setServiceAmount(peak.getServicePrice().multiply(peak.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); - - OrderDetailInfoVO.ChargeDetail flat = new OrderDetailInfoVO.ChargeDetail(); - flat.setPeriodType(BillingTimeEnum.FLAT.getLabel()); - flat.setElectricityPrice(orderDetail.getFlatElectricityPrice()); - flat.setServicePrice(orderDetail.getFlatServicePrice()); - BigDecimal flatUsedElectricity = orderDetail.getFlatUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getFlatUsedElectricity(); - flat.setUsedElectricity(flatUsedElectricity); - flat.setElectricityAmount(flat.getElectricityPrice().multiply(flat.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); - flat.setServiceAmount(flat.getServicePrice().multiply(flat.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); - - OrderDetailInfoVO.ChargeDetail valley = new OrderDetailInfoVO.ChargeDetail(); - valley.setPeriodType(BillingTimeEnum.VALLEY.getLabel()); - valley.setElectricityPrice(orderDetail.getValleyElectricityPrice()); - valley.setServicePrice(orderDetail.getValleyServicePrice()); - BigDecimal valleyUsedElectricity = orderDetail.getValleyUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getValleyUsedElectricity(); - valley.setUsedElectricity(valleyUsedElectricity); - valley.setElectricityAmount(valley.getElectricityPrice().multiply(valley.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); - valley.setServiceAmount(valley.getServicePrice().multiply(valley.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); - - vo.setChargeDetails(Lists.newArrayList(sharp, peak, flat, valley)); + List orderPeriodAmountVOS = orderBasicInfoService.transformPeriodAmountByOrderDetail(orderDetail); + vo.setChargeDetails(orderPeriodAmountVOS); } // 用户信息 @@ -1004,10 +969,9 @@ public class OrderService { OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode); if (orderDetail != null) { - UniAppOrderVO.BillingDetails billingDetails = new UniAppOrderVO.BillingDetails(); + OrderAmountDetailVO billingDetails = new OrderAmountDetailVO(); BeanUtils.copyBeanProp(billingDetails, orderDetail); vo.setBillingDetails(billingDetails); - // orderDetail.getSharpElectricityPrice() } try { diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderInvoiceRecordController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderInvoiceRecordController.java index 072b551e1..fd65dbe59 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderInvoiceRecordController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderInvoiceRecordController.java @@ -63,7 +63,7 @@ public class OrderInvoiceRecordController extends BaseController { @PreAuthorize("@ss.hasPermi('order:invoice:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Integer id) { - return AjaxResult.success(orderInvoiceRecordService.selectOrderInvoiceRecordById(id)); + return AjaxResult.success(orderInvoiceRecordService.selectInvoiceTitleVO(id)); } /** diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/SecurityUtils.java b/jsowell-common/src/main/java/com/jsowell/common/util/SecurityUtils.java index 24a077516..73408d064 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/SecurityUtils.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/SecurityUtils.java @@ -1,5 +1,6 @@ package com.jsowell.common.util; +import com.alibaba.fastjson2.JSONObject; import com.google.common.collect.Lists; import com.jsowell.common.constant.HttpStatus; import com.jsowell.common.core.domain.entity.SysDept; @@ -8,6 +9,7 @@ import com.jsowell.common.core.domain.entity.SysUser; import com.jsowell.common.core.domain.model.LoginUser; import com.jsowell.common.core.domain.vo.AuthorizedDeptVO; import com.jsowell.common.exception.ServiceException; +import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @@ -19,6 +21,7 @@ import java.util.List; * * @author jsowell */ +@Slf4j public class SecurityUtils { /** * 用户ID @@ -120,8 +123,10 @@ public class SecurityUtils { // 登录用户所属部门(运营商或站点 根据父级id判断) SysDept dept = user.getDept(); if (dept == null) { + log.info("用户id:{}, 获取不到所属部门信息", user.getUserId()); return null; } + log.info("用户id:{}, 所属部门信息:{}", user.getUserId(), JSONObject.toJSONString(dept)); // 登录用户角色 List roles = user.getRoles(); Long parentId = dept.getParentId(); diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/LoginRequestHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/LoginRequestHandler.java index 33817202b..448e6d4c3 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/LoginRequestHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/LoginRequestHandler.java @@ -138,50 +138,47 @@ public class LoginRequestHandler extends AbstractHandler{ if (pileInfoVO != null) { flag = Constants.zeroByteArray; - // 登录成功,保存桩号和channel的关系 PileChannelEntity.put(pileSn, channel); - // 更改桩和该桩下的枪口状态分别为 在线、空闲 公共方法修改状态 pileBasicInfoService.updateStatus(BytesUtil.bcd2Str(ykcDataProtocol.getFrameType()), pileSn, null, null, null); - } - - // 充电桩使用的sim卡,把信息存库 - if (StringUtils.equals("00", internetConnection)) { - try { - pileBasicInfoService.updatePileSimInfo(pileSn, iccid); - } catch (Exception e) { - log.error("更新充电桩sim卡信息失败", e); + // 充电桩使用的sim卡,把信息存库 + if (StringUtils.equals("00", internetConnection)) { + try { + pileBasicInfoService.updatePileSimInfo(pileSn, iccid); + } catch (Exception e) { + log.error("更新充电桩sim卡信息失败", e); + } } + + CompletableFuture.runAsync(() -> { + try { + Thread.sleep(200); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // 对时 + ProofreadTimeCommand command = ProofreadTimeCommand.builder().pileSn(pileSn).build(); + ykcPushCommandService.pushProofreadTimeCommand(command); + }); + + // log.info("下面进行下发二维码 pileSn:{}, thread:{}", pileSn, Thread.currentThread().getName()); + CompletableFuture.runAsync(() -> { + try { + Thread.sleep(600); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // 下发二维码 + IssueQRCodeCommand issueQRCodeCommand = IssueQRCodeCommand.builder().pileSn(pileSn).build(); + ykcPushCommandService.pushIssueQRCodeCommand(issueQRCodeCommand); + }); } - // 保存报文 + // 保存报文 TODO 没有登录认证通过还要不要保存报文? String jsonMsg = JSONObject.toJSONString(loginRequestData); pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, ykcDataProtocol.getHEXString()); - CompletableFuture.runAsync(() -> { - try { - Thread.sleep(200); - } catch (InterruptedException e) { - e.printStackTrace(); - } - // 对时 - ProofreadTimeCommand command = ProofreadTimeCommand.builder().pileSn(pileSn).build(); - ykcPushCommandService.pushProofreadTimeCommand(command); - }); - - // log.info("下面进行下发二维码 pileSn:{}, thread:{}", pileSn, Thread.currentThread().getName()); - CompletableFuture.runAsync(() -> { - try { - Thread.sleep(600); - } catch (InterruptedException e) { - e.printStackTrace(); - } - // 下发二维码 - IssueQRCodeCommand issueQRCodeCommand = IssueQRCodeCommand.builder().pileSn(pileSn).build(); - ykcPushCommandService.pushIssueQRCodeCommand(issueQRCodeCommand); - }); - // 消息体 byte[] messageBody = Bytes.concat(pileSnByte, flag); return getResult(ykcDataProtocol, messageBody); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/IndexQueryDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/IndexQueryDTO.java index a1d906413..8d2158d45 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/IndexQueryDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/IndexQueryDTO.java @@ -3,6 +3,8 @@ package com.jsowell.pile.dto; import com.jsowell.common.core.domain.BaseEntity; import lombok.Data; +import java.util.List; + /** * 首页数据展示DTO * @@ -15,4 +17,6 @@ public class IndexQueryDTO extends BaseEntity { * 站点id */ private String stationId; + + private List stationIdList; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java index 3b93c9d53..9d9126e8e 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java @@ -205,4 +205,6 @@ public interface OrderBasicInfoMapper { List queryElecAmountNullList(); int batchUpdateOrderDetail(@Param("list") List orderDetailList); + + List getOrderDetailList(List orderCodes); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderInvoiceRecordMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderInvoiceRecordMapper.java index c13c9d339..e8e18eaa2 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderInvoiceRecordMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderInvoiceRecordMapper.java @@ -2,6 +2,7 @@ package com.jsowell.pile.mapper; import com.jsowell.pile.domain.OrderInvoiceRecord; import com.jsowell.pile.dto.QueryInvoiceRecordDTO; +import org.springframework.stereotype.Repository; import java.util.List; @@ -11,6 +12,7 @@ import java.util.List; * @author jsowell * @date 2023-04-10 */ +@Repository public interface OrderInvoiceRecordMapper { /** * 查询申请开票 diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileMerchantInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileMerchantInfoMapper.java index 1363b5b4a..dc13d30b2 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileMerchantInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileMerchantInfoMapper.java @@ -1,6 +1,7 @@ package com.jsowell.pile.mapper; import com.jsowell.pile.domain.PileMerchantInfo; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @@ -67,4 +68,6 @@ public interface PileMerchantInfoMapper { * @return 结果 */ public int deletePileMerchantInfoByIds(Long[] ids); + + List queryByMerchantDeptIds(@Param("merchantDeptIds") List merchantDeptIds); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileStationInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileStationInfoMapper.java index 500f9c257..6f96be587 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileStationInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileStationInfoMapper.java @@ -77,4 +77,6 @@ public interface PileStationInfoMapper { * @return */ List getStationInfoForLianLian(); + + List queryByStationDeptIds(@Param("stationDeptIds") List stationDeptIds); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberInvoiceTitleService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberInvoiceTitleService.java index 5d8adcac4..7fc7ef304 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberInvoiceTitleService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberInvoiceTitleService.java @@ -1,6 +1,7 @@ package com.jsowell.pile.service; import com.jsowell.pile.domain.MemberInvoiceTitle; +import com.jsowell.pile.vo.uniapp.InvoiceTitleVO; import java.util.List; @@ -11,6 +12,8 @@ import java.util.List; * @date 2023-04-13 */ public interface IMemberInvoiceTitleService { + InvoiceTitleVO selectByTitleId(String titleId); + /** * 查询会员发票抬头 * diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java index 34afc2aa4..af19de9dc 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java @@ -5,6 +5,8 @@ import com.jsowell.common.core.domain.ykc.TransactionRecordsData; import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.domain.OrderDetail; import com.jsowell.pile.dto.*; +import com.jsowell.pile.vo.base.OrderAmountDetailVO; +import com.jsowell.pile.vo.base.OrderPeriodAmountVO; import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO; import com.jsowell.pile.vo.uniapp.OrderVO; import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO; @@ -108,6 +110,8 @@ public interface IOrderBasicInfoService { */ OrderDetail getOrderDetailByOrderCode(String orderCode); + List getOrderDetailList(List orderCodes); + /** * 通过会员Id和订单状态查询订单信息 * @@ -231,4 +235,8 @@ public interface IOrderBasicInfoService { * @return */ Map generateOrderForLianLian(QueryStartChargeDTO dto); + + List queryOrderAmountDetail(List orderCodes); + + List transformPeriodAmountByOrderDetail(OrderDetail orderDetail); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderInvoiceRecordService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderInvoiceRecordService.java index cda371b78..9bfe54a3c 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderInvoiceRecordService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderInvoiceRecordService.java @@ -2,6 +2,7 @@ package com.jsowell.pile.service; import com.jsowell.pile.domain.OrderInvoiceRecord; import com.jsowell.pile.dto.QueryInvoiceRecordDTO; +import com.jsowell.pile.vo.web.InvoiceRecordVO; import java.util.List; @@ -20,6 +21,8 @@ public interface IOrderInvoiceRecordService { */ public OrderInvoiceRecord selectOrderInvoiceRecordById(Integer id); + InvoiceRecordVO selectInvoiceTitleVO(Integer id); + /** * 查询申请开票列表 * diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java index 4a2279710..d7c80aa95 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java @@ -63,4 +63,11 @@ public interface IPileMerchantInfoService { String getMerchantIdByAppId(String appId); MerchantInfoVO getMerchantInfo(String merchantId); + + /** + * 根据运营商部门ids 查询所有站点id + * @param merchantDeptIds + * @return + */ + List queryByMerchantDeptIds(List merchantDeptIds); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileStationInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileStationInfoService.java index bfc0d3c59..625e292ad 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileStationInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileStationInfoService.java @@ -92,4 +92,6 @@ public interface IPileStationInfoService { PileStationVO getStationInfoByPileSn(String pileSn); List getStationInfoForLianLian(); + + List queryByStationDeptIds(List stationIds); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberInvoiceTitleServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberInvoiceTitleServiceImpl.java index 21fb90be6..ee4fd8185 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberInvoiceTitleServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberInvoiceTitleServiceImpl.java @@ -1,9 +1,11 @@ package com.jsowell.pile.service.impl; +import com.jsowell.common.enums.TitleTypeEnum; import com.jsowell.common.util.DateUtils; import com.jsowell.pile.domain.MemberInvoiceTitle; import com.jsowell.pile.mapper.MemberInvoiceTitleMapper; import com.jsowell.pile.service.IMemberInvoiceTitleService; +import com.jsowell.pile.vo.uniapp.InvoiceTitleVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -20,6 +22,24 @@ public class MemberInvoiceTitleServiceImpl implements IMemberInvoiceTitleService @Autowired private MemberInvoiceTitleMapper memberInvoiceTitleMapper; + @Override + public InvoiceTitleVO selectByTitleId(String titleId) { + MemberInvoiceTitle memberInvoiceTitle = memberInvoiceTitleMapper.selectMemberInvoiceTitleById(Long.parseLong(titleId)); + if (memberInvoiceTitle == null) { + return null; + } + return InvoiceTitleVO.builder() + .titleId(memberInvoiceTitle.getId() + "") + .titleName(memberInvoiceTitle.getName()) + .titleType(TitleTypeEnum.getLabel(memberInvoiceTitle.getTitleType())) + .taxId(memberInvoiceTitle.getTaxId()) + .unitAddress(memberInvoiceTitle.getUnitAddress()) + .phoneNumber(memberInvoiceTitle.getPhoneNumber()) + .bankName(memberInvoiceTitle.getBankName()) + .bankAccountNumber(memberInvoiceTitle.getBankAccountNumber()) + .build(); + } + /** * 查询会员发票抬头 * diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 1885e4d98..dd494d3e9 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -14,6 +14,7 @@ import com.jsowell.common.core.domain.ykc.RealTimeMonitorData; import com.jsowell.common.core.domain.ykc.TransactionRecordsData; import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.enums.MemberWalletEnum; +import com.jsowell.common.enums.ykc.BillingTimeEnum; import com.jsowell.common.enums.ykc.OrderPayModeEnum; import com.jsowell.common.enums.ykc.OrderPayStatusEnum; import com.jsowell.common.enums.ykc.OrderStatusEnum; @@ -54,12 +55,16 @@ import com.jsowell.pile.service.IPileAuthCardService; import com.jsowell.pile.service.IPileBasicInfoService; import com.jsowell.pile.service.IPileBillingTemplateService; import com.jsowell.pile.service.IPileConnectorInfoService; +import com.jsowell.pile.service.IPileMerchantInfoService; +import com.jsowell.pile.service.IPileStationInfoService; import com.jsowell.pile.service.OrderMonitorDataService; import com.jsowell.pile.service.WechatPayService; import com.jsowell.pile.service.WxpayCallbackRecordService; import com.jsowell.pile.service.WxpayRefundCallbackService; import com.jsowell.pile.transaction.dto.OrderTransactionDTO; import com.jsowell.pile.transaction.service.TransactionService; +import com.jsowell.pile.vo.base.OrderAmountDetailVO; +import com.jsowell.pile.vo.base.OrderPeriodAmountVO; import com.jsowell.pile.vo.base.PileInfoVO; import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO; import com.jsowell.pile.vo.uniapp.MemberVO; @@ -156,6 +161,12 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { @Autowired private OrderMonitorDataService orderMonitorDataService; + @Autowired + private IPileStationInfoService pileStationInfoService; + + @Autowired + private IPileMerchantInfoService pileMerchantInfoService; + /** * 条件查询订单基本信息 * @@ -1091,6 +1102,28 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { */ @Override public List getIndexOrderInfo(IndexQueryDTO dto) { + AuthorizedDeptVO authorizedMap = SecurityUtils.getAuthorizedMap(); + if (authorizedMap == null) { + return Lists.newArrayList(); + } + List stationIdList = Lists.newArrayList(); + List stationDeptIds = authorizedMap.getStationDeptIds(); + if (CollectionUtils.isNotEmpty(stationDeptIds)) { + // 根据部门id查询站点id + List list = pileStationInfoService.queryByStationDeptIds(stationDeptIds); + if (CollectionUtils.isNotEmpty(list)) { + stationIdList.addAll(list); + } + } + List merchantDeptIds = authorizedMap.getMerchantDeptIds(); + if (CollectionUtils.isNotEmpty(merchantDeptIds)) { + // 根据运营商部门id查询下面所有站点id + List list = pileMerchantInfoService.queryByMerchantDeptIds(merchantDeptIds); + if (CollectionUtils.isNotEmpty(list)) { + stationIdList.addAll(list); + } + } + dto.setStationIdList(stationIdList); return orderBasicInfoMapper.getIndexOrderInfo(dto); } @@ -1323,6 +1356,11 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { return orderBasicInfoMapper.getOrderDetailByOrderCode(orderCode); } + @Override + public List getOrderDetailList(List orderCodes) { + return orderBasicInfoMapper.getOrderDetailList(orderCodes); + } + /** * 通过会员Id和订单状态查询订单信息 * @@ -1558,4 +1596,68 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { return resultMap; } + + @Override + public List queryOrderAmountDetail(List orderCodes) { + List orderDetailList = getOrderDetailList(orderCodes); + if (CollectionUtils.isEmpty(orderDetailList)) { + return Lists.newArrayList(); + } + List resultList = Lists.newArrayList(); + OrderAmountDetailVO vo = null; + for (OrderDetail orderDetail : orderDetailList) { + vo = new OrderAmountDetailVO(); + BeanUtils.copyBeanProp(vo, orderDetail); + resultList.add(vo); + } + return resultList; + } + + /** + * 订单详情 转换为各个时段的详情 + */ + @Override + public List transformPeriodAmountByOrderDetail(OrderDetail orderDetail) { + // 尖时段 + OrderPeriodAmountVO sharp = new OrderPeriodAmountVO(); + sharp.setPeriodType(BillingTimeEnum.SHARP.getLabel()); + sharp.setElectricityPrice(orderDetail.getSharpElectricityPrice()); + sharp.setServicePrice(orderDetail.getSharpServicePrice()); + BigDecimal sharpUsedElectricity = orderDetail.getSharpUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getSharpUsedElectricity(); + sharp.setUsedElectricity(sharpUsedElectricity); + sharp.setElectricityAmount(sharp.getElectricityPrice().multiply(sharp.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); + sharp.setServiceAmount(sharp.getServicePrice().multiply(sharp.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); + + // 峰时段 + OrderPeriodAmountVO peak = new OrderPeriodAmountVO(); + peak.setPeriodType(BillingTimeEnum.PEAK.getLabel()); + peak.setElectricityPrice(orderDetail.getPeakElectricityPrice()); + peak.setServicePrice(orderDetail.getPeakServicePrice()); + BigDecimal peakUsedElectricity = orderDetail.getPeakUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getPeakUsedElectricity(); + peak.setUsedElectricity(peakUsedElectricity); + peak.setElectricityAmount(peak.getElectricityPrice().multiply(peak.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); + peak.setServiceAmount(peak.getServicePrice().multiply(peak.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); + + // 平时段 + OrderPeriodAmountVO flat = new OrderPeriodAmountVO(); + flat.setPeriodType(BillingTimeEnum.FLAT.getLabel()); + flat.setElectricityPrice(orderDetail.getFlatElectricityPrice()); + flat.setServicePrice(orderDetail.getFlatServicePrice()); + BigDecimal flatUsedElectricity = orderDetail.getFlatUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getFlatUsedElectricity(); + flat.setUsedElectricity(flatUsedElectricity); + flat.setElectricityAmount(flat.getElectricityPrice().multiply(flat.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); + flat.setServiceAmount(flat.getServicePrice().multiply(flat.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); + + // 谷时段 + OrderPeriodAmountVO valley = new OrderPeriodAmountVO(); + valley.setPeriodType(BillingTimeEnum.VALLEY.getLabel()); + valley.setElectricityPrice(orderDetail.getValleyElectricityPrice()); + valley.setServicePrice(orderDetail.getValleyServicePrice()); + BigDecimal valleyUsedElectricity = orderDetail.getValleyUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getValleyUsedElectricity(); + valley.setUsedElectricity(valleyUsedElectricity); + valley.setElectricityAmount(valley.getElectricityPrice().multiply(valley.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); + valley.setServiceAmount(valley.getServicePrice().multiply(valley.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN)); + + return Lists.newArrayList(sharp, peak, flat, valley); + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInvoiceRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInvoiceRecordServiceImpl.java index 9015a5e97..78ebde4a0 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInvoiceRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInvoiceRecordServiceImpl.java @@ -1,9 +1,16 @@ package com.jsowell.pile.service.impl; +import com.google.common.collect.Lists; +import com.jsowell.common.util.DateUtils; import com.jsowell.pile.domain.OrderInvoiceRecord; import com.jsowell.pile.dto.QueryInvoiceRecordDTO; import com.jsowell.pile.mapper.OrderInvoiceRecordMapper; +import com.jsowell.pile.service.IMemberInvoiceTitleService; +import com.jsowell.pile.service.IOrderBasicInfoService; import com.jsowell.pile.service.IOrderInvoiceRecordService; +import com.jsowell.pile.vo.base.OrderAmountDetailVO; +import com.jsowell.pile.vo.uniapp.InvoiceTitleVO; +import com.jsowell.pile.vo.web.InvoiceRecordVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -20,6 +27,12 @@ public class OrderInvoiceRecordServiceImpl implements IOrderInvoiceRecordService @Autowired private OrderInvoiceRecordMapper orderInvoiceRecordMapper; + @Autowired + private IMemberInvoiceTitleService memberInvoiceTitleService; + + @Autowired + private IOrderBasicInfoService orderBasicInfoService; + /** * 查询申请开票 * @@ -31,6 +44,33 @@ public class OrderInvoiceRecordServiceImpl implements IOrderInvoiceRecordService return orderInvoiceRecordMapper.selectOrderInvoiceRecordById(id); } + @Override + public InvoiceRecordVO selectInvoiceTitleVO(Integer id) { + // 申请记录信息 + OrderInvoiceRecord orderInvoiceRecord = selectOrderInvoiceRecordById(id); + if (orderInvoiceRecord == null) { + return null; + } + // 发票抬头信息 + InvoiceTitleVO invoiceTitleVO = memberInvoiceTitleService.selectByTitleId(orderInvoiceRecord.getTitleId()); + + // 订单信息 + List orderCodes = Lists.newArrayList(orderInvoiceRecord.getOrderCodes().split(",")); + List orderAmountDetailVOS = orderBasicInfoService.queryOrderAmountDetail(orderCodes); + + InvoiceRecordVO vo = InvoiceRecordVO.builder() + .id(orderInvoiceRecord.getId() + "") + .memberId(orderInvoiceRecord.getMemberId()) + .status(orderInvoiceRecord.getStatus()) + .invoiceTitle(invoiceTitleVO) + .orderList(orderAmountDetailVOS) + .createTime(DateUtils.formatDateTime(orderInvoiceRecord.getCreateTime())) + .updateTime(DateUtils.formatDateTime(orderInvoiceRecord.getUpdateTime())) + .build(); + + return vo; + } + /** * 查询申请开票列表 * diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java index 4a0f92c52..c1be265c5 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java @@ -27,6 +27,7 @@ import com.jsowell.pile.service.IPileConnectorInfoService; import com.jsowell.pile.service.IPileMerchantInfoService; import com.jsowell.pile.service.IPileModelInfoService; import com.jsowell.pile.service.IPileSimInfoService; +import com.jsowell.pile.service.IPileStationInfoService; import com.jsowell.pile.service.SimCardService; import com.jsowell.pile.vo.base.MerchantInfoVO; import com.jsowell.pile.vo.base.PileInfoVO; @@ -71,6 +72,9 @@ public class PileBasicInfoServiceImpl implements IPileBasicInfoService { @Autowired private IPileMerchantInfoService pileMerchantInfoService; + @Autowired + private IPileStationInfoService pileStationInfoService; + @Autowired private IPileSimInfoService pileSimInfoService; @@ -565,8 +569,25 @@ public class PileBasicInfoServiceImpl implements IPileBasicInfoService { if (authorizedMap == null) { return new IndexGeneralSituationVO(); } - dto.setStationDeptIds(authorizedMap.getStationDeptIds()); - dto.setMerchantDeptIds(authorizedMap.getMerchantDeptIds()); + List stationIdList = Lists.newArrayList(); + List stationDeptIds = authorizedMap.getStationDeptIds(); + if (CollectionUtils.isNotEmpty(stationDeptIds)) { + // 根据部门id查询站点id + List list = pileStationInfoService.queryByStationDeptIds(stationDeptIds); + if (CollectionUtils.isNotEmpty(list)) { + stationIdList.addAll(list); + } + } + List merchantDeptIds = authorizedMap.getMerchantDeptIds(); + if (CollectionUtils.isNotEmpty(merchantDeptIds)) { + // 根据运营商部门id查询下面所有站点id + List list = pileMerchantInfoService.queryByMerchantDeptIds(merchantDeptIds); + if (CollectionUtils.isNotEmpty(list)) { + stationIdList.addAll(list); + } + } + log.info("后管首页基本信息查询 authorizedMap:{}, dto:{}", JSONObject.toJSONString(authorizedMap), JSONObject.toJSONString(dto)); + dto.setStationIdList(stationIdList); return pileBasicInfoMapper.getGeneralSituation(dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java index da41993a2..625a0d2c9 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java @@ -175,4 +175,9 @@ public class PileMerchantInfoServiceImpl implements IPileMerchantInfoService { .build(); return vo; } + + @Override + public List queryByMerchantDeptIds(List merchantDeptIds) { + return pileMerchantInfoMapper.queryByMerchantDeptIds(merchantDeptIds); + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java index 89f0795b8..882734b6d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java @@ -163,6 +163,11 @@ public class PileStationInfoServiceImpl implements IPileStationInfoService { return pileStationInfoMapper.getStationInfoForLianLian(); } + @Override + public List queryByStationDeptIds(List stationIds) { + return pileStationInfoMapper.queryByStationDeptIds(stationIds); + } + /** * 查询充电站信息列表 * diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/base/OrderAmountDetailVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/base/OrderAmountDetailVO.java new file mode 100644 index 000000000..10ec0bb73 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/base/OrderAmountDetailVO.java @@ -0,0 +1,40 @@ +package com.jsowell.pile.vo.base; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 订单金额明细 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class OrderAmountDetailVO { + private String orderCode; // 订单编号 + + private BigDecimal totalUsedElectricity; // 总用电量 + private BigDecimal totalOrderAmount; // 订单总金额(电费总额+服务费总额) + private BigDecimal totalElectricityAmount; // 电费总金额(各时段消耗电费总金额) + private BigDecimal totalServiceAmount; // 服务费总金额(各时段服务费总金额) + + private BigDecimal sharpUsedElectricity; // 尖时段用电量 + private BigDecimal sharpElectricityPrice; // 尖时段电费单价 + private BigDecimal sharpServicePrice; // 尖时段服务费单价 + + private BigDecimal peakUsedElectricity; // 峰时段用电量 + private BigDecimal peakElectricityPrice; // 峰时段电费单价 + private BigDecimal peakServicePrice; // 峰时段服务费单价 + + private BigDecimal flatUsedElectricity; // 平时段用电量 + private BigDecimal flatElectricityPrice; // 平时段电费单价 + private BigDecimal flatServicePrice; // 平时段服务费单价 + + private BigDecimal valleyUsedElectricity; // 谷时段用电量 + private BigDecimal valleyElectricityPrice; // 谷时段电费单价 + private BigDecimal valleyServicePrice; // 谷时段服务费单价 +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/base/OrderPeriodAmountVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/base/OrderPeriodAmountVO.java new file mode 100644 index 000000000..7d08d4488 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/base/OrderPeriodAmountVO.java @@ -0,0 +1,24 @@ +package com.jsowell.pile.vo.base; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 订单时段收费明细 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class OrderPeriodAmountVO { + private String periodType; // 时段类型 + private BigDecimal usedElectricity; // 用电量 + private BigDecimal electricityPrice; // 电费单价 + private BigDecimal servicePrice; // 服务费单价 + private BigDecimal electricityAmount; // 电费金额 + private BigDecimal serviceAmount; // 服务费金额 +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/InvoiceTitleVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/InvoiceTitleVO.java index b8b4d7b02..9f542c530 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/InvoiceTitleVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/InvoiceTitleVO.java @@ -18,4 +18,29 @@ public class InvoiceTitleVO { // 抬头类型 (单位或个人) private String titleType; + + /** + * 税号 + */ + private String taxId; + + /** + * 单位地址 + */ + private String unitAddress; + + /** + * 电话号码 + */ + private String phoneNumber; + + /** + * 开户银行 + */ + private String bankName; + + /** + * 银行账户 + */ + private String bankAccountNumber; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/UniAppOrderVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/UniAppOrderVO.java index e2aa752e4..25ecb53c5 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/UniAppOrderVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/UniAppOrderVO.java @@ -1,11 +1,11 @@ package com.jsowell.pile.vo.uniapp; +import com.jsowell.pile.vo.base.OrderAmountDetailVO; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.math.BigDecimal; import java.util.List; @Data @@ -162,25 +162,6 @@ public class UniAppOrderVO { private String batteryMaxTemperature; } - private BillingDetails billingDetails; + private OrderAmountDetailVO billingDetails; - @Data - public static class BillingDetails{ - private BigDecimal totalUsedElectricity; // 总用电量 - private BigDecimal totalOrderAmount; // 订单总金额(电费总额+服务费总额) - private BigDecimal totalElectricityAmount; // 电费总金额(各时段消耗电费总金额) - private BigDecimal totalServiceAmount; // 服务费总金额(各时段服务费总金额) - private BigDecimal sharpUsedElectricity; // 尖时段用电量 - private BigDecimal sharpElectricityPrice; // 尖时段电费单价 - private BigDecimal sharpServicePrice; // 尖时段服务费单价 - private BigDecimal peakUsedElectricity; // 峰时段用电量 - private BigDecimal peakElectricityPrice; // 峰时段电费单价 - private BigDecimal peakServicePrice; // 峰时段服务费单价 - private BigDecimal flatUsedElectricity; // 平时段用电量 - private BigDecimal flatElectricityPrice; // 平时段电费单价 - private BigDecimal flatServicePrice; // 平时段服务费单价 - private BigDecimal valleyUsedElectricity; // 谷时段用电量 - private BigDecimal valleyElectricityPrice; // 谷时段电费单价 - private BigDecimal valleyServicePrice; // 谷时段服务费单价 - } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/InvoiceRecordVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/InvoiceRecordVO.java new file mode 100644 index 000000000..1d2ddc787 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/InvoiceRecordVO.java @@ -0,0 +1,51 @@ +package com.jsowell.pile.vo.web; + +import com.jsowell.pile.vo.base.OrderAmountDetailVO; +import com.jsowell.pile.vo.uniapp.InvoiceTitleVO; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class InvoiceRecordVO { + /** + * 申请记录主键id + */ + private String id; + + /** + * 会员id + */ + private String memberId; + + /** + * 状态 0-未开票 1-已开票 + */ + private String status; + + /** + * 创建时间 + */ + private String createTime; + + /** + * 更新时间x + */ + private String updateTime; + + /** + * 发票抬头信息 + */ + private InvoiceTitleVO invoiceTitle; + + /** + * 订单明细 + */ + private List orderList; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderDetailInfoVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderDetailInfoVO.java index f131762ca..c55e89f78 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderDetailInfoVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderDetailInfoVO.java @@ -1,11 +1,12 @@ package com.jsowell.pile.vo.web; import com.jsowell.common.core.domain.ykc.RealTimeMonitorData; +import com.jsowell.pile.vo.base.OrderAmountDetailVO; +import com.jsowell.pile.vo.base.OrderPeriodAmountVO; import com.jsowell.pile.vo.base.PileInfoVO; import com.jsowell.pile.vo.uniapp.MemberVO; import lombok.Data; -import java.math.BigDecimal; import java.util.List; /** @@ -16,7 +17,8 @@ public class OrderDetailInfoVO { // 订单信息 private OrderInfo orderInfo; - private BillingDetails billingDetails; + // 账单明细 + private OrderAmountDetailVO billingDetails; // 用户信息 private MemberVO memberInfo; @@ -36,37 +38,7 @@ public class OrderDetailInfoVO { private RealTimeMonitorData lastMonitorData; // 收费明细 - private List chargeDetails; - - @Data - public static class ChargeDetail{ - private String periodType; // 时段类型 - private BigDecimal usedElectricity; // 用电量 - private BigDecimal electricityPrice; // 电费单价 - private BigDecimal servicePrice; // 服务费单价 - private BigDecimal electricityAmount; // 电费金额 - private BigDecimal serviceAmount; // 服务费金额 - } - - @Data - public static class BillingDetails{ - private BigDecimal totalUsedElectricity; // 总用电量 - private BigDecimal totalOrderAmount; // 订单总金额(电费总额+服务费总额) - private BigDecimal totalElectricityAmount; // 电费总金额(各时段消耗电费总金额) - private BigDecimal totalServiceAmount; // 服务费总金额(各时段服务费总金额) - private BigDecimal sharpUsedElectricity; // 尖时段用电量 - private BigDecimal sharpElectricityPrice; // 尖时段电费单价 - private BigDecimal sharpServicePrice; // 尖时段服务费单价 - private BigDecimal peakUsedElectricity; // 峰时段用电量 - private BigDecimal peakElectricityPrice; // 峰时段电费单价 - private BigDecimal peakServicePrice; // 峰时段服务费单价 - private BigDecimal flatUsedElectricity; // 平时段用电量 - private BigDecimal flatElectricityPrice; // 平时段电费单价 - private BigDecimal flatServicePrice; // 平时段服务费单价 - private BigDecimal valleyUsedElectricity; // 谷时段用电量 - private BigDecimal valleyElectricityPrice; // 谷时段电费单价 - private BigDecimal valleyServicePrice; // 谷时段服务费单价 - } + private List chargeDetails; @Data public static class OrderInfo { diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index 1f5c08795..f41d1edea 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -779,7 +779,13 @@ date(t1.create_time) >= DATE_SUB(CURDATE(),INTERVAL 30 day) and t1.order_status = '6' - and t1,station_id = #{dto.stationId,jdbcType=VARCHAR} + and t1.station_id = #{dto.stationId,jdbcType=VARCHAR} + + + and t1.station_id in + + #{item,jdbcType=VARCHAR} + group by DATE_FORMAT(t1.create_time,'%Y-%m-%d') @@ -974,4 +980,15 @@ id=#{i.id} + + \ No newline at end of file diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderInvoiceRecordMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderInvoiceRecordMapper.xml index 31cdb9466..d185422ae 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderInvoiceRecordMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderInvoiceRecordMapper.xml @@ -7,6 +7,7 @@ + @@ -21,7 +22,8 @@ - id, member_id, order_codes, status, total_amount, total_service_amount, total_elec_amount, create_by, create_time, update_by, update_time, del_flag + id, member_id, title_id, order_codes, status, total_amount, total_service_amount, total_elec_amount, + create_by, create_time, update_by, update_time, del_flag diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml index 60ca1419d..59d70bc5c 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml @@ -330,10 +330,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and t1.station_id = #{IndexQueryDTO.stationId,jdbcType=VARCHAR} - + and t1.station_id in - - #{stationDeptId} + + #{item} group by t4.totalMemberAmount diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileMerchantInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileMerchantInfoMapper.xml index a87f66549..fd263857e 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileMerchantInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileMerchantInfoMapper.xml @@ -264,4 +264,18 @@ where app_id = #{appId,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml index cdd4ae854..3a18ac53f 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml @@ -373,4 +373,14 @@ where public_flag = '1' + + \ No newline at end of file diff --git a/jsowell-ui/src/router/index.js b/jsowell-ui/src/router/index.js index 11605a760..02cce77a8 100644 --- a/jsowell-ui/src/router/index.js +++ b/jsowell-ui/src/router/index.js @@ -140,6 +140,19 @@ export const constantRoutes = [ }, ], }, + { + path: "/invoice/index", + component: Layout, + hidden: true, + children: [ + { + name: "invoiceDetail", + path: "invoice/:id", + component: () => import("@/views/order/invoice/detail"), + meta: { title: "发票详情", activeMenu: "/invoice/detail" }, + }, + ], + }, ]; // 动态路由,基于用户权限动态去加载 diff --git a/jsowell-ui/src/views/order/invoice/detail.vue b/jsowell-ui/src/views/order/invoice/detail.vue new file mode 100644 index 000000000..183d23243 --- /dev/null +++ b/jsowell-ui/src/views/order/invoice/detail.vue @@ -0,0 +1,128 @@ + + + diff --git a/jsowell-ui/src/views/order/invoice/index.vue b/jsowell-ui/src/views/order/invoice/index.vue index 47a8097a1..45e514d15 100644 --- a/jsowell-ui/src/views/order/invoice/index.vue +++ b/jsowell-ui/src/views/order/invoice/index.vue @@ -9,14 +9,14 @@ @keyup.enter.native="handleQuery" /> - + - + - + @@ -331,11 +292,11 @@ export default { ...this.queryParams }, `invoice_${new Date().getTime()}.xlsx`) }, - clickInvoiceStatus(id) { - console.log("点击更改开票状态",id); - this.updateInvoiceId = id - this.dialogVisible = true; - }, + // clickInvoiceStatus(id) { + // console.log("点击更改开票状态",id); + // this.updateInvoiceId = id + // this.dialogVisible = true; + // }, /** 修改申请开票状态 */ updateInvoiceStatus() { console.log('修改申请开票状态', this.updateInvoiceId); @@ -346,7 +307,13 @@ export default { this.dialogVisible = false; this.getList(); }); - } + }, + // 点击查看详情 + clickSelectDetail(id) { + console.log("点击查看详情",id); + // 路径/home对应我在router目录下index.js中定义的path属性值 + this.$router.push({name:'invoiceDetail', params:{id: id}}); + }, } }; diff --git a/jsowell-ui/src/views/pile/station/components/SiteInfo.vue b/jsowell-ui/src/views/pile/station/components/SiteInfo.vue index 161798c23..b07be55fb 100644 --- a/jsowell-ui/src/views/pile/station/components/SiteInfo.vue +++ b/jsowell-ui/src/views/pile/station/components/SiteInfo.vue @@ -9,6 +9,7 @@ :on-remove="handleRemove" :on-success="handleSuccess" :file-list="fileList" + style="margin: 10px 0" >