Explorar o código

导出原始数据导入列表

bihuisong hai 7 meses
pai
achega
4b0b7bb8f6

+ 30 - 35
songhua-admin/src/main/java/com/songhua/web/controller/system/PzRawDataController.java

@@ -1,41 +1,32 @@
 package com.songhua.web.controller.system;
 
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-
-import com.songhua.common.core.domain.entity.SysUser;
-import com.songhua.system.domain.PzRawDataVo;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
 import com.songhua.common.annotation.Log;
 import com.songhua.common.core.controller.BaseController;
 import com.songhua.common.core.domain.AjaxResult;
+import com.songhua.common.core.page.TableDataInfo;
 import com.songhua.common.enums.BusinessType;
+import com.songhua.common.utils.poi.ExcelUtil;
 import com.songhua.system.domain.PzRawData;
+import com.songhua.system.domain.PzRawDataVo;
 import com.songhua.system.service.IPzRawDataService;
-import com.songhua.common.utils.poi.ExcelUtil;
-import com.songhua.common.core.page.TableDataInfo;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
 /**
  * 原始数据导入Controller
- * 
+ *
  * @author ruoyi
  * @date 2024-11-04
  */
 @RestController
 @RequestMapping("/system/data")
-public class PzRawDataController extends BaseController
-{
+public class PzRawDataController extends BaseController {
     @Autowired
     private IPzRawDataService pzRawDataService;
 
@@ -44,8 +35,7 @@ public class PzRawDataController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('system:data:list')")
     @GetMapping("/list")
-    public TableDataInfo list(PzRawData pzRawData)
-    {
+    public TableDataInfo list(PzRawData pzRawData) {
         startPage();
         List<PzRawDataVo> list = pzRawDataService.selectPzRawDataList(pzRawData);
         return getDataTable(list);
@@ -56,8 +46,7 @@ public class PzRawDataController extends BaseController
      * 导入原始数据列表
      */
     @PostMapping("/importData")
-    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
-    {
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
         ExcelUtil<PzRawDataVo> util = new ExcelUtil<PzRawDataVo>(PzRawDataVo.class);
         List<PzRawDataVo> userList = util.importExcel(file.getInputStream());
         String operName = getUsername();
@@ -70,7 +59,7 @@ public class PzRawDataController extends BaseController
      */
     @ApiOperation(value = "导入模板", notes = "导入模板")
     @PostMapping("/importTemplate")
-    public void importTemplate(HttpServletResponse response){
+    public void importTemplate(HttpServletResponse response) {
         ExcelUtil<PzRawData> util = new ExcelUtil<>(PzRawData.class);
         util.importTemplateExcel(response, "票务原始数据");
     }
@@ -80,8 +69,7 @@ public class PzRawDataController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('system:data:query')")
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(pzRawDataService.selectPzRawDataById(id));
     }
 
@@ -91,8 +79,7 @@ public class PzRawDataController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:data:add')")
     @Log(title = "原始数据导入", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody PzRawData pzRawData)
-    {
+    public AjaxResult add(@RequestBody PzRawData pzRawData) {
         return toAjax(pzRawDataService.insertPzRawData(pzRawData));
     }
 
@@ -102,8 +89,7 @@ public class PzRawDataController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:data:edit')")
     @Log(title = "原始数据导入", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody PzRawData pzRawData)
-    {
+    public AjaxResult edit(@RequestBody PzRawData pzRawData) {
         return toAjax(pzRawDataService.updatePzRawData(pzRawData));
     }
 
@@ -112,10 +98,19 @@ public class PzRawDataController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('system:data:remove')")
     @Log(title = "原始数据导入", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(pzRawDataService.deletePzRawDataByIds(ids));
     }
 
+
+    /**
+     * 导出原始数据导入列表
+     */
+    @Log(title = "导出原始数据导入列表", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(PzRawData pzRawData) {
+        pzRawDataService.export(pzRawData);
+        return AjaxResult.success();
+    }
 }

+ 37 - 33
songhua-system/src/main/java/com/songhua/system/domain/PzRawData.java

@@ -1,87 +1,91 @@
 package com.songhua.system.domain;
 
+import com.songhua.common.annotation.Excel;
+import com.songhua.common.core.domain.BaseEntity;
 import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
-import com.songhua.common.annotation.Excel;
-import com.songhua.common.core.domain.BaseEntity;
 
 /**
  * 原始数据导入对象 pz_raw_data
- * 
+ *
  * @author ruoyi
  * @date 2024-11-04
  */
 @Data
-public class PzRawData extends BaseEntity
-{
+public class PzRawData extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 票种id */
+    /**
+     * 票种id
+     */
     private Long id;
 
-    /** 票种名 */
+    /**
+     * 票种名
+     */
     @Excel(name = "票种名")
     private Long ticketId;
 
-    /** 支付类型 */
+    /**
+     * 支付类型
+     */
     @Excel(name = "支付类型", readConverterExp = "1=微信,2=支付宝,3=现金,4=云闪付,5=支付宝小程序余额支付,6=微信小程序余额支付,7=ota余额支付,8=灵活代收,9=旅行社余额支付")
     private String payType;
 
-    /** 张数 */
+    /**
+     * 张数
+     */
     @Excel(name = "张数")
     private Long number;
 
-    /** 金额 */
+    /**
+     * 金额
+     */
     @Excel(name = "金额")
     private String money;
 
 
-    public void setId(Long id) 
-    {
+    public void setId(Long id) {
         this.id = id;
     }
 
-    public Long getId() 
-    {
+    public Long getId() {
         return id;
     }
-    public void setNumber(Long number) 
-    {
+
+    public void setNumber(Long number) {
         this.number = number;
     }
 
-    public Long getNumber() 
-    {
+    public Long getNumber() {
         return number;
     }
-    public void setMoney(String money) 
-    {
+
+    public void setMoney(String money) {
         this.money = money;
     }
 
-    public String getMoney() 
-    {
+    public String getMoney() {
         return money;
     }
-    public void setPayType(String payType) 
-    {
+
+    public void setPayType(String payType) {
         this.payType = payType;
     }
 
-    public String getPayType() 
-    {
+    public String getPayType() {
         return payType;
     }
 
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("number", getNumber())
-            .append("money", getMoney())
-            .append("payType", getPayType())
-            .append("createTime", getCreateTime())
-            .toString();
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("number", getNumber())
+                .append("money", getMoney())
+                .append("payType", getPayType())
+                .append("createTime", getCreateTime())
+                .toString();
     }
 }

+ 13 - 14
songhua-system/src/main/java/com/songhua/system/service/IPzRawDataService.java

@@ -1,22 +1,20 @@
 package com.songhua.system.service;
 
-import java.util.List;
-
 import com.songhua.system.domain.PzRawData;
 import com.songhua.system.domain.PzRawDataVo;
-import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
 
 /**
  * 原始数据导入Service接口
- * 
+ *
  * @author ruoyi
  * @date 2024-11-04
  */
-public interface IPzRawDataService 
-{
+public interface IPzRawDataService {
     /**
      * 查询原始数据导入
-     * 
+     *
      * @param id 原始数据导入主键
      * @return 原始数据导入
      */
@@ -24,7 +22,7 @@ public interface IPzRawDataService
 
     /**
      * 查询原始数据导入列表
-     * 
+     *
      * @param pzRawData 原始数据导入
      * @return 原始数据导入集合
      */
@@ -33,7 +31,7 @@ public interface IPzRawDataService
 
     /**
      * 新增原始数据导入
-     * 
+     *
      * @param pzRawData 原始数据导入
      * @return 结果
      */
@@ -43,7 +41,7 @@ public interface IPzRawDataService
 
     /**
      * 修改原始数据导入
-     * 
+     *
      * @param pzRawData 原始数据导入
      * @return 结果
      */
@@ -53,7 +51,7 @@ public interface IPzRawDataService
 
     /**
      * 批量删除原始数据导入
-     * 
+     *
      * @param ids 需要删除的原始数据导入主键集合
      * @return 结果
      */
@@ -61,7 +59,7 @@ public interface IPzRawDataService
 
     /**
      * 删除原始数据导入信息
-     * 
+     *
      * @param id 原始数据导入主键
      * @return 结果
      */
@@ -72,11 +70,12 @@ public interface IPzRawDataService
     /**
      * 导入用户数据
      *
-     * @param userList 用户数据列表
+     * @param userList        用户数据列表
      * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
-     * @param operName 操作用户
+     * @param operName        操作用户
      * @return 结果
      */
     public String importData(List<PzRawDataVo> userList, Boolean isUpdateSupport, String operName);
 
+    void export(PzRawData pzRawData);
 }

+ 87 - 35
songhua-system/src/main/java/com/songhua/system/service/impl/PzRawDataServiceImpl.java

@@ -1,120 +1,117 @@
 package com.songhua.system.service.impl;
 
-import java.util.List;
-
 import com.songhua.common.exception.ServiceException;
 import com.songhua.common.utils.DateUtils;
 import com.songhua.common.utils.StringUtils;
+import com.songhua.system.domain.PzRawData;
 import com.songhua.system.domain.PzRawDataVo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
 import com.songhua.system.mapper.PzRawDataMapper;
-import com.songhua.system.domain.PzRawData;
 import com.songhua.system.service.IPzRawDataService;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
 
 /**
  * 原始数据导入Service业务层处理
- * 
+ *
  * @author ruoyi
  * @date 2024-11-04
  */
 @Service
-public class PzRawDataServiceImpl implements IPzRawDataService 
-{
+public class PzRawDataServiceImpl implements IPzRawDataService {
     @Autowired
     private PzRawDataMapper pzRawDataMapper;
 
 
-
-
     /**
      * 查询原始数据导入
-     * 
+     *
      * @param id 原始数据导入主键
      * @return 原始数据导入
      */
     @Override
-    public PzRawData selectPzRawDataById(Long id)
-    {
+    public PzRawData selectPzRawDataById(Long id) {
         return pzRawDataMapper.selectPzRawDataById(id);
     }
 
     /**
      * 查询原始数据导入列表
-     * 
+     *
      * @param pzRawData 原始数据导入
      * @return 原始数据导入
      */
     @Override
-    public List<PzRawDataVo> selectPzRawDataList(PzRawData pzRawData)
-    {
+    public List<PzRawDataVo> selectPzRawDataList(PzRawData pzRawData) {
         return pzRawDataMapper.selectPzRawDataList(pzRawData);
     }
 
     /**
      * 新增原始数据导入
-     * 
+     *
      * @param pzRawData 原始数据导入
      * @return 结果
      */
     @Override
-    public int insertPzRawData(PzRawData pzRawData)
-    {
+    public int insertPzRawData(PzRawData pzRawData) {
         pzRawData.setCreateTime(DateUtils.getNowDate());
         return pzRawDataMapper.insertPzRawData(pzRawData);
     }
 
     @Override
-    public int insertPzRawDataVo(PzRawDataVo pzRawDataVo)
-    {
+    public int insertPzRawDataVo(PzRawDataVo pzRawDataVo) {
         pzRawDataVo.setCreateTime(DateUtils.getNowDate());
         return pzRawDataMapper.insertPzRawDataVo(pzRawDataVo);
     }
 
     /**
      * 修改原始数据导入
-     * 
+     *
      * @param pzRawData 原始数据导入
      * @return 结果
      */
     @Override
-    public int updatePzRawData(PzRawData pzRawData)
-    {
+    public int updatePzRawData(PzRawData pzRawData) {
         return pzRawDataMapper.updatePzRawData(pzRawData);
     }
+
     @Override
-    public int updatePzRawDataVo(PzRawDataVo pzRawDataVo)
-    {
+    public int updatePzRawDataVo(PzRawDataVo pzRawDataVo) {
         return pzRawDataMapper.updatePzRawDataVo(pzRawDataVo);
     }
 
     /**
      * 批量删除原始数据导入
-     * 
+     *
      * @param ids 需要删除的原始数据导入主键
      * @return 结果
      */
     @Override
-    public int deletePzRawDataByIds(Long[] ids)
-    {
+    public int deletePzRawDataByIds(Long[] ids) {
         return pzRawDataMapper.deletePzRawDataByIds(ids);
     }
 
     /**
      * 删除原始数据导入信息
-     * 
+     *
      * @param id 原始数据导入主键
      * @return 结果
      */
     @Override
-    public int deletePzRawDataById(Long id)
-    {
+    public int deletePzRawDataById(Long id) {
         return pzRawDataMapper.deletePzRawDataById(id);
     }
 
     @Override
-    public PzRawDataVo checkIfDataExists(String ticketName)
-    {
+    public PzRawDataVo checkIfDataExists(String ticketName) {
         PzRawDataVo pzRawDataVo = pzRawDataMapper.checkIfDataExists(ticketName);
         return pzRawDataVo;
     }
@@ -140,7 +137,7 @@ public class PzRawDataServiceImpl implements IPzRawDataService
                 PzRawDataVo isExist = checkIfDataExists(data.getTicketName());
                 data.setTicketId(isExist.getId());
                 insertPzRawDataVo(data);
-                String msg = "【成功】" + data.toString() + " 导入成功:" ;
+                String msg = "【成功】" + data.toString() + " 导入成功:";
                 failureMsg.append(msg).append("\n");
             } catch (Exception e) {
                 String msg = "【失败】" + data.toString() + " 导入失败:" + e.getMessage();
@@ -150,5 +147,60 @@ public class PzRawDataServiceImpl implements IPzRawDataService
         return successMsg.toString();
     }
 
+    @Override
+    public void export(PzRawData pzRawData) {
+        List<PzRawDataVo> list = pzRawDataMapper.selectPzRawDataList(pzRawData);
+        // 创建
+        Workbook workbook = new XSSFWorkbook();
+        Sheet sheet = workbook.createSheet("票务数据");
+
+        Row headerRow = sheet.createRow(0);
+        CellStyle style = workbook.createCellStyle(); // 创建单元格样式
+        style.setAlignment(HorizontalAlignment.CENTER); // 设置水平居中对齐
+        style.setVerticalAlignment(VerticalAlignment.CENTER); // 设置垂直居中
+        Cell cell1 = headerRow.createCell(0);
+        cell1.setCellValue("票种名");
+        cell1.setCellStyle(style);
+        sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));
+
+        Cell cell2 = headerRow.createCell(1);
+        cell2.setCellValue("总计");
+        cell2.setCellStyle(style);
+        sheet.addMergedRegion(new CellRangeAddress(0, 0, 1, 2));
+
+        // 创建子标题行
+        Row subHeaderRow = sheet.createRow(1);
+        style.setAlignment(HorizontalAlignment.CENTER); // 设置水平居中对齐
+        Cell sonCell1 = subHeaderRow.createCell(1);
+        sonCell1.setCellValue("张数");
+        sonCell1.setCellStyle(style);
+        Cell sonCell2 = subHeaderRow.createCell(2);
+        sonCell2.setCellValue("金额");
+        sonCell2.setCellStyle(style);
+        // 填充数据
+        for (int i = 0; i < list.size(); i++) {
+            PzRawDataVo data = list.get(i);
+            Row dataRow = sheet.createRow(i + 2); // 从第三行开始填充数据
+            dataRow.createCell(0).setCellValue(data.getTicketName()); // 假设有这个方法
+            dataRow.createCell(1).setCellValue(data.getNumber()); // 假设有这个方法
+            dataRow.createCell(2).setCellValue(data.getMoney()); // 假设有这个方法
+        }
+        // 写入
+        try (FileOutputStream fileOut = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\出票数据" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xlsx")) {
+            workbook.write(fileOut);
+            System.out.println("Excel 文件已成功导出!");
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                //关闭
+                workbook.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+
+    }
+
 
 }