From 57d1bdeba6f744f0da9c3d1e01e54263ec2d19d8 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期六, 07 九月 2024 10:48:21 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java |  183 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 177 insertions(+), 6 deletions(-)

diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
index 53d1a81..22b010c 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
@@ -1,39 +1,64 @@
 package com.ruoyi.chargingPile.controller;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+
+import com.ruoyi.chargingPile.api.feignClient.SiteClient;
+import com.ruoyi.chargingPile.api.model.Partner;
+import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.common.core.utils.WebUtils;
+import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.order.api.model.TChargingOrder;
+import com.ruoyi.order.api.model.TSettlementConfirm;
+import com.ruoyi.order.api.vo.ChargingBillListVO;
 
 
+import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.EasyExcelFactory;
 import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.enums.WriteDirectionEnum;
 import com.alibaba.excel.write.builder.ExcelWriterBuilder;
 import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.metadata.fill.FillConfig;
+import com.alibaba.excel.write.metadata.fill.FillWrapper;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.chargingPile.api.dto.ApplyChargingQuery;
 import com.ruoyi.chargingPile.api.dto.ApplyChargingRemarkDto;
+import com.ruoyi.chargingPile.api.dto.TApplyChargingPileDTO;
 import com.ruoyi.chargingPile.api.model.TApplyChargingPile;
 import com.ruoyi.chargingPile.dto.TApplyChargingPileExportDto;
 import com.ruoyi.chargingPile.service.TApplyChargingPileService;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.log.annotation.Log;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.log.enums.OperatorType;
+import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
+import com.ruoyi.order.api.model.ChargingListQuery;
+import com.ruoyi.order.api.vo.ChargingBillVO;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.codec.CharEncoding;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
 import java.net.URL;
 import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.regex.Pattern;
 
@@ -51,11 +76,17 @@
 
     private final TApplyChargingPileService applyChargingPileService;
     private final TokenService tokenService;
+    private final RedisService redisService;
+    @Resource
+    private ChargingOrderClient chargingOrderClient;
+    @Resource
+    private SiteClient siteClient;
 
     @Autowired
-    public TApplyChargingPileController(TApplyChargingPileService applyChargingPileService, TokenService tokenService) {
+    public TApplyChargingPileController(TApplyChargingPileService applyChargingPileService, TokenService tokenService, RedisService redisService) {
         this.applyChargingPileService = applyChargingPileService;
         this.tokenService = tokenService;
+        this.redisService = redisService;
     }
 
     /**
@@ -64,7 +95,15 @@
     @Log(title = "建桩申请", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE)
     @ApiOperation(tags = {"小程序-建桩申请"},value = "建桩申请")
     @PostMapping(value = "/add")
-    public AjaxResult<Boolean> add(@RequestBody TApplyChargingPile dto) {
+    public AjaxResult<Boolean> add(@RequestBody TApplyChargingPileDTO dto) {
+        // 验证验证码
+        String code = redisService.getCacheObject(dto.getLandlordPhone() + Constants.APPLY_CHARGING);
+        if(StringUtils.isEmpty(code)){
+            return AjaxResult.error("验证码已过期,请重新获取验证码!");
+        }
+        if(!code.equals(dto.getCode())){
+            return AjaxResult.error("验证码错误!");
+        }
         // 用户id
         Long userId = tokenService.getLoginUserApplet().getUserId();
         dto.setAppUserId(userId);
@@ -91,7 +130,7 @@
 
     @ApiOperation(tags = {"后台-申请表单-申请建桩"},value = "导出")
     @PutMapping(value = "/export")
-    public R export(HttpServletResponse response) {
+    public R export(String landlordPhone,HttpServletResponse response) {
         try {
         response.setCharacterEncoding(Constants.UTF8);
         response.setContentType("application/vnd.ms-excel");
@@ -102,7 +141,7 @@
             return R.fail("excel导出失败!");
         }
         try {
-            List<TApplyChargingPile> list = applyChargingPileService.lambdaQuery().list();
+            List<TApplyChargingPile> list = applyChargingPileService.lambdaQuery().like(landlordPhone != null && !landlordPhone.equals(""), TApplyChargingPile::getLandlordPhone, landlordPhone).list();
 
             List<TApplyChargingPileExportDto> exportDtos =new ArrayList<>();
             for (TApplyChargingPile tApplyChargingPile : list) {
@@ -184,9 +223,7 @@
                     applyChargingPileExportDto.setIs3("否");
                 }
                 exportDtos.add(applyChargingPileExportDto);
-
             }
-
             // excel模板封装
             ExcelWriterBuilder excelWriterBuilder = EasyExcelFactory.write(response.getOutputStream());
             InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("template/" +"充电桩申请记录" + ".xlsx");
@@ -204,6 +241,140 @@
         return R.ok();
     }
 
+    @ApiOperation(value = "下载-已出账", tags = {"管理后台-充电算账单"})
+    @GetMapping("/downloadBill")
+    public R downloadBill(String uid,HttpServletResponse response)
+    {
+        ChargingListQuery chargingListQuery = new ChargingListQuery();
+        chargingListQuery.setUid(uid);
+        chargingListQuery.setPageCurr(1);
+        chargingListQuery.setPageSize(99999);
+        ChargingBillVO data = chargingOrderClient.chargingBillListR(chargingListQuery).getData();
+
+        List<ChargingBillVO> chargingBillVOS = new ArrayList<>();
+        chargingBillVOS.add(data);
+        try {
+            response.setCharacterEncoding(Constants.UTF8);
+            response.setContentType("application/vnd.ms-excel");
+            response.setHeader("Access-Control-Expose-Headers", "Content-disposition");
+            response.setHeader("Content-Disposition", "attachment;filename=" +
+                    URLEncoder.encode("月账单-"+data.getCategory()+"-"+data.getBillWeek()+"-"+data.getSiteName(), CharEncoding.UTF_8) + ".xlsx");
+        } catch (UnsupportedEncodingException e) {
+            return R.fail("excel导出失败!");
+        }
+        try {
+            // excel模板封装
+            ExcelWriterBuilder excelWriterBuilder = EasyExcelFactory.write(response.getOutputStream());
+            InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("template/" +"充电算帐单已出账" + ".xlsx");
+            // 自动释放资源
+            try (ExcelWriter excelWriter = excelWriterBuilder.withTemplate(stream).build()) {
+                WriteSheet writeSheet = EasyExcel.writerSheet().build();
+                FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL).build();
+                excelWriter.fill(new FillWrapper("data1", chargingBillVOS), fillConfig, writeSheet);
+                excelWriter.fill(new FillWrapper("data2", data.getExportList()), fillConfig, writeSheet);
+                excelWriter.finish();
+            } catch (Exception e) {
+                return R.fail("excel导出失败!");
+            }
+        } catch (IOException e) {
+            return R.fail("excel导出失败!");
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "下载", tags = {"管理后台-结算表记录"})
+    @GetMapping("/downloadSettlement")
+    public R downloadSettlement(String uid,HttpServletResponse response)
+    {
+        TSettlementConfirm data = chargingOrderClient.downloadSettlement(uid).getData();
+        List<Site> data1 = siteClient.getSiteByIds(Arrays.asList(data.getSiteId())).getData();
+        if (!data1.isEmpty()){
+            data.setSiteName(data1.get(0).getName());
+        }
+        Partner data2 = siteClient.getPartnerR(data.getPartnerId()).getData();
+        if (data2!=null){
+            data.setPartnerName(data2.getName());
+        }
+        List<TSettlementConfirm> chargingBillVOS = new ArrayList<>();
+        chargingBillVOS.add(data);
+        try {
+            response.setCharacterEncoding(Constants.UTF8);
+            response.setContentType("application/vnd.ms-excel");
+            response.setHeader("Access-Control-Expose-Headers", "Content-disposition");
+            response.setHeader("Content-Disposition", "attachment;filename=" +
+                    URLEncoder.encode("结算确认单", CharEncoding.UTF_8) + ".xlsx");
+        } catch (UnsupportedEncodingException e) {
+            return R.fail("excel导出失败!");
+        }
+        try {
+            // excel模板封装
+            ExcelWriterBuilder excelWriterBuilder = EasyExcelFactory.write(response.getOutputStream());
+            InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("template/" +"运营商名称1-充电桩名称1-结算对账单明细-结算月份1" + ".xlsx");
+            // 自动释放资源
+            try (ExcelWriter excelWriter = excelWriterBuilder.withTemplate(stream).build()) {
+                WriteSheet writeSheet = EasyExcel.writerSheet().build();
+                WriteSheet writeSheet2 = EasyExcel.writerSheet().build();
+                WriteSheet writeSheet3 = EasyExcel.writerSheet().build();
+                FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL).build();
+                excelWriter.fill(new FillWrapper("data1", chargingBillVOS), fillConfig, writeSheet);
+                excelWriter.fill(new FillWrapper("data2", chargingBillVOS), fillConfig, writeSheet2);
+                excelWriter.fill(new FillWrapper("data3", data.getList()), fillConfig, writeSheet3);
+                excelWriter.finish();
+            } catch (Exception e) {
+                return R.fail("excel导出失败!");
+            }
+        } catch (IOException e) {
+            return R.fail("excel导出失败!");
+        }
+        return R.ok();
+    }
+
+
+
+
+
+
+    @ApiOperation(value = "下载-未出账", tags = {"管理后台-充电算账单"})
+    @GetMapping("/download")
+    public R download(String uid,HttpServletResponse response)
+    {
+        ChargingListQuery chargingListQuery = new ChargingListQuery();
+        chargingListQuery.setUid(uid);
+        chargingListQuery.setPageCurr(1);
+        chargingListQuery.setPageSize(99999);
+        ChargingBillVO data = chargingOrderClient.chargingBillListR(chargingListQuery).getData();
+
+        List<ChargingBillVO> chargingBillVOS = new ArrayList<>();
+        chargingBillVOS.add(data);
+        try {
+            response.setCharacterEncoding(Constants.UTF8);
+            response.setContentType("application/vnd.ms-excel");
+            response.setHeader("Access-Control-Expose-Headers", "Content-disposition");
+            response.setHeader("Content-Disposition", "attachment;filename=" +
+                    URLEncoder.encode("月账单-"+data.getCategory()+data.getBillWeek()+data.getSiteName(), CharEncoding.UTF_8) + ".xlsx");
+        } catch (UnsupportedEncodingException e) {
+            return R.fail("excel导出失败!");
+        }
+        try {
+            // excel模板封装
+            ExcelWriterBuilder excelWriterBuilder = EasyExcelFactory.write(response.getOutputStream());
+            InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("template/" +"充电算帐单已出账" + ".xlsx");
+            // 自动释放资源
+            try (ExcelWriter excelWriter = excelWriterBuilder.withTemplate(stream).build()) {
+                WriteSheet writeSheet = EasyExcel.writerSheet().build();
+                FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL).build();
+                excelWriter.fill(new FillWrapper("data1", chargingBillVOS), fillConfig, writeSheet);
+                excelWriter.fill(new FillWrapper("data2", data.getExportList()), fillConfig, writeSheet);
+                excelWriter.finish();
+            } catch (Exception e) {
+                return R.fail("excel导出失败!");
+            }
+        } catch (IOException e) {
+            return R.fail("excel导出失败!");
+        }
+        return R.ok();
+    }
+
     public static boolean isImageUrl(JSONObject jsonObject) {
         String url = jsonObject.getString("url");
         Pattern pattern = Pattern.compile(

--
Gitblit v1.7.1