Commit c5554b07 authored by 刘_震's avatar 刘_震

电力汇总-代码优化

parent 60620422
...@@ -2,6 +2,7 @@ package com.ruoyi.system.controller; ...@@ -2,6 +2,7 @@ package com.ruoyi.system.controller;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.model.wages.dao.PowerAllDAO;
import com.ruoyi.system.model.wages.dao.PowerDAO; import com.ruoyi.system.model.wages.dao.PowerDAO;
import com.ruoyi.system.model.wages.dao.PowerWagesComparation; import com.ruoyi.system.model.wages.dao.PowerWagesComparation;
import com.ruoyi.system.model.wages.dao.PowerWagesDetails; import com.ruoyi.system.model.wages.dao.PowerWagesDetails;
...@@ -24,54 +25,6 @@ import java.util.Map; ...@@ -24,54 +25,6 @@ import java.util.Map;
public class PowerWagesController { public class PowerWagesController {
private final PowerWagesService powerWagesService; private final PowerWagesService powerWagesService;
/**
* 导入详细表数据
* @param file 文件
* @return 无返回值
*/
@PostMapping("/dExcel")
public AjaxResult readDExcel(@RequestParam("file") MultipartFile file,
String date,
String mineId
) {
Boolean analyzed = powerWagesService.readDExcel(file,date,mineId);
if (!analyzed) {
return AjaxResult.error("解析失败");
}else{
return AjaxResult.success();
}
}
/**
* 读取对照表数据
* @param file
* @param date
* @param mineId
* @return
*/
@PostMapping("/cExcel")
public AjaxResult readCExcel(@RequestParam("file") MultipartFile file,
String date,
String mineId) {
Boolean analyzed = powerWagesService.readCExcel(file,date,mineId);
if (!analyzed) {
return AjaxResult.error("解析失败");
}else{
return AjaxResult.success();
}
}
/**
* 特殊表处理-填写数据
* @param dao
* @return
*/
@PostMapping
public AjaxResult add(@RequestBody PowerDAO dao){
powerWagesService.add(dao);
return AjaxResult.success();
}
/** /**
* 返回前端所需要的数据 * 返回前端所需要的数据
* @param mineId * @param mineId
...@@ -86,6 +39,34 @@ public class PowerWagesController { ...@@ -86,6 +39,34 @@ public class PowerWagesController {
} }
@PostMapping("/all")
public AjaxResult save(@RequestParam("file") MultipartFile file,
@RequestPart PowerDAO powerDAO,
@RequestPart PowerAllDAO powerAllDAO
){
//1、处理表格
String date = powerDAO.getImportTime();
String mineId = powerDAO.getMineId();
Boolean cAnalyzed = powerWagesService.readCExcel(file,date,mineId);
if (!cAnalyzed) {
return AjaxResult.error("解析失败");
}
Boolean dAnalyzed = powerWagesService.readDExcel(file,date,mineId);
if (!dAnalyzed) {
return AjaxResult.error("解析失败");
}
//2、处理特殊表的表头
Boolean added = powerWagesService.add(powerDAO);
if (!added) {
return AjaxResult.error("对照处理失败");
}
//3、处理特殊表的数据
Boolean pAdd = powerWagesService.pAdd(powerAllDAO);
if (!pAdd) {
return AjaxResult.error("数据处理失败");
}
return AjaxResult.success();
}
} }
...@@ -21,7 +21,7 @@ public interface PowerWagesComMapper { ...@@ -21,7 +21,7 @@ public interface PowerWagesComMapper {
PowerWagesComparation select(@Param("type") String type, @Param("date") String importTime, @Param("mineId")String mineId); PowerWagesComparation select(@Param("type") String type, @Param("date") String importTime, @Param("mineId")String mineId);
void add(@Param("accList") List<Power> powerDetails, @Param("mineId") String mineId, @Param("importTime") String importTime, @Param("type") String type ); Boolean add(@Param("accList") List<Power> powerDetails, @Param("mineId") String mineId, @Param("importTime") String importTime, @Param("type") String type );
PowerWagesComparation selectByCId(Integer comparisonId); PowerWagesComparation selectByCId(Integer comparisonId);
......
...@@ -16,7 +16,7 @@ public interface PowerWagesDeMapper { ...@@ -16,7 +16,7 @@ public interface PowerWagesDeMapper {
void insertBatch( @Param("accList") List<PowerWagesDetails> powerList, @Param("mineId") String mineId,@Param("date") String date); void insertBatch( @Param("accList") List<PowerWagesDetails> powerList, @Param("mineId") String mineId,@Param("date") String date);
void add(@Param("accList") List<Power> powerDetails, @Param("comparisonId") Integer comparisonId, @Param("importTime") String importTime, @Param("mineId") String mineId); Boolean add(@Param("accList") List<Power> powerDetails, @Param("comparisonId") Integer comparisonId, @Param("importTime") String importTime, @Param("mineId") String mineId);
List<PowerWagesDetails> selectByMineIdAndDate(@Param("mineId") String mineId, @Param("date") String date); List<PowerWagesDetails> selectByMineIdAndDate(@Param("mineId") String mineId, @Param("date") String date);
......
package com.ruoyi.system.model.wages.dao;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* @author haiwe
* @date 2024/7/2
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PowerAllDAO {
private String mineId;
private String importTime;
private String type;
private List<Power> powerDetails;
}
package com.ruoyi.system.service; package com.ruoyi.system.service;
import com.ruoyi.system.model.wages.dao.PowerAllDAO;
import com.ruoyi.system.model.wages.dao.PowerDAO; import com.ruoyi.system.model.wages.dao.PowerDAO;
import com.ruoyi.system.model.wages.dao.PowerWagesComparation; import com.ruoyi.system.model.wages.dao.PowerWagesComparation;
import com.ruoyi.system.model.wages.dao.PowerWagesDetails; import com.ruoyi.system.model.wages.dao.PowerWagesDetails;
...@@ -20,7 +21,9 @@ public interface PowerWagesService { ...@@ -20,7 +21,9 @@ public interface PowerWagesService {
Boolean readCExcel(MultipartFile file, String date, String mineId); Boolean readCExcel(MultipartFile file, String date, String mineId);
void add(PowerDAO dao);
List<PowerVo> selectByMineIdAndDate(String mineId, String date); List<PowerVo> selectByMineIdAndDate(String mineId, String date);
Boolean add(PowerDAO powerDAO);
Boolean pAdd(PowerAllDAO powerAllDAO);
} }
...@@ -6,10 +6,7 @@ import com.alibaba.excel.EasyExcel; ...@@ -6,10 +6,7 @@ import com.alibaba.excel.EasyExcel;
import com.ruoyi.system.listener.ExcelListener; import com.ruoyi.system.listener.ExcelListener;
import com.ruoyi.system.mapper.PowerWagesComMapper; import com.ruoyi.system.mapper.PowerWagesComMapper;
import com.ruoyi.system.mapper.PowerWagesDeMapper; import com.ruoyi.system.mapper.PowerWagesDeMapper;
import com.ruoyi.system.model.wages.dao.Power; import com.ruoyi.system.model.wages.dao.*;
import com.ruoyi.system.model.wages.dao.PowerDAO;
import com.ruoyi.system.model.wages.dao.PowerWagesComparation;
import com.ruoyi.system.model.wages.dao.PowerWagesDetails;
import com.ruoyi.system.model.wages.vo.PowerVo; import com.ruoyi.system.model.wages.vo.PowerVo;
import com.ruoyi.system.service.PowerWagesService; import com.ruoyi.system.service.PowerWagesService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -45,16 +42,15 @@ public class PowerWagesServiceImpl implements PowerWagesService { ...@@ -45,16 +42,15 @@ public class PowerWagesServiceImpl implements PowerWagesService {
@Override @Override
public Boolean readDExcel(MultipartFile file, String date, String mineId) { public Boolean readDExcel(MultipartFile file, String date, String mineId) {
try { try {
//定义需要解析的sheet名 //定义需要解析的sheet名
List<String> sheetList = Arrays.asList("电量数据专业化公司", "外界电量数据"); List<String> sheetList = Arrays.asList("电量数据专业化公司", "外界电量数据");
// 定义需要过滤的关键词列表 // 定义需要过滤的关键词列表
List<String> filterList = Arrays.asList( "小计", "总表小计", "劳服总表", "校验", "null"); List<String> filterList = Arrays.asList("小计", "总表小计", "劳服总表", "校验", "null");
List<String> filterList2 = Arrays.asList("20000","30000","40000"); List<String> filterList2 = Arrays.asList("20000", "30000", "40000");
// 获取上传文件的输入流 // 获取上传文件的输入流
for (int i = 0; i < sheetList.size(); i++) { for (int i = 0; i < sheetList.size(); i++) {
String type = ""; String type = "";
switch (sheetList.get(i)){ switch (sheetList.get(i)) {
case "电量数据专业化公司": case "电量数据专业化公司":
type = "1"; type = "1";
break; break;
...@@ -62,12 +58,11 @@ public class PowerWagesServiceImpl implements PowerWagesService { ...@@ -62,12 +58,11 @@ public class PowerWagesServiceImpl implements PowerWagesService {
type = "2"; type = "2";
break; break;
} }
PowerWagesComparation comparation = ceMapper.select(type, date, mineId); PowerWagesComparation comparation = ceMapper.select(type, date, mineId);
if (comparation != null) { if (comparation != null) {
//获取对应表的id //获取对应表的id
Integer comparisonId = comparation.getComparisonId(); Integer comparisonId = comparation.getComparisonId();
deMapper.deleteByDateAndMineIdAndComparisonId(mineId,date,comparisonId); deMapper.deleteByDateAndMineIdAndComparisonId(mineId, date, comparisonId);
InputStream inputStream = file.getInputStream(); InputStream inputStream = file.getInputStream();
System.err.println(sheetList.get(i)); System.err.println(sheetList.get(i));
List<PowerWagesDetails> PowerList = EasyExcel List<PowerWagesDetails> PowerList = EasyExcel
...@@ -85,8 +80,6 @@ public class PowerWagesServiceImpl implements PowerWagesService { ...@@ -85,8 +80,6 @@ public class PowerWagesServiceImpl implements PowerWagesService {
.peek(v -> v.setComparisonId(comparisonId)) .peek(v -> v.setComparisonId(comparisonId))
.collect(Collectors.toList()); .collect(Collectors.toList());
deMapper.insertBatch(PowerList, mineId, date); deMapper.insertBatch(PowerList, mineId, date);
} else {
return false;
} }
} }
return true; return true;
...@@ -104,7 +97,7 @@ public class PowerWagesServiceImpl implements PowerWagesService { ...@@ -104,7 +97,7 @@ public class PowerWagesServiceImpl implements PowerWagesService {
// 获取上传文件的输入流 // 获取上传文件的输入流
for (int i = 0; i < sheetList.size(); i++) { for (int i = 0; i < sheetList.size(); i++) {
String type = ""; String type = "";
switch (sheetList.get(i)){ switch (sheetList.get(i)) {
case "电量数据专业化公司": case "电量数据专业化公司":
type = "1"; type = "1";
break; break;
...@@ -112,7 +105,7 @@ public class PowerWagesServiceImpl implements PowerWagesService { ...@@ -112,7 +105,7 @@ public class PowerWagesServiceImpl implements PowerWagesService {
type = "2"; type = "2";
break; break;
} }
ceMapper.deleteByDateAndMineIdAndType(mineId,date,type); ceMapper.deleteByDateAndMineIdAndType(mineId, date, type);
InputStream inputStream = file.getInputStream(); InputStream inputStream = file.getInputStream();
System.err.println(sheetList.get(i)); System.err.println(sheetList.get(i));
List<PowerWagesComparation> powerList = EasyExcel List<PowerWagesComparation> powerList = EasyExcel
...@@ -136,32 +129,7 @@ public class PowerWagesServiceImpl implements PowerWagesService { ...@@ -136,32 +129,7 @@ public class PowerWagesServiceImpl implements PowerWagesService {
} }
@Override @Override
public void add(PowerDAO dao) { public List<PowerVo> selectByMineIdAndDate(String mineId, String date) {
//获取相关属性
String type = dao.getType();
String importTime = dao.getImportTime();
String mineId = dao.getMineId();
List<Power> powerDetails = dao.getPowerDetails();
//如何这个集合的长度>1,说明导入的是详细表
if (powerDetails.size() > 1) {
PowerWagesComparation comparation = ceMapper.select(type, importTime, mineId);
if (comparation != null) {
//获取对应表的id
Integer comparisonId = comparation.getComparisonId();
deMapper.deleteByDateAndMineIdAndComparisonId(mineId,importTime,comparisonId);
deMapper.add(powerDetails, comparisonId, importTime, mineId);
}
} else {
PowerWagesComparation comparation = ceMapper.select(type, importTime, mineId);
Integer comparisonId = comparation.getComparisonId();
deMapper.deleteByDateAndMineIdAndComparisonId(mineId,importTime,comparisonId);
ceMapper.deleteByDateAndMineIdAndType(mineId,importTime,type);
ceMapper.add(powerDetails, mineId, importTime, type);
}
}
@Override
public List<PowerVo> selectByMineIdAndDate(String mineId, String date){
//定义一个集合用来返回所需要的数据 //定义一个集合用来返回所需要的数据
List<PowerVo> voList = new ArrayList<>(); List<PowerVo> voList = new ArrayList<>();
List<PowerWagesComparation> comparations = ceMapper.selectByMineIdAndDate(mineId, date); List<PowerWagesComparation> comparations = ceMapper.selectByMineIdAndDate(mineId, date);
...@@ -175,7 +143,54 @@ public class PowerWagesServiceImpl implements PowerWagesService { ...@@ -175,7 +143,54 @@ public class PowerWagesServiceImpl implements PowerWagesService {
return voList; return voList;
} }
/**
* 特殊表表头处理
*
* @param powerDAO
* @return
*/
@Override
public Boolean add(PowerDAO powerDAO) {
//获取相关属性
String type = powerDAO.getType();
String importTime = powerDAO.getImportTime();
String mineId = powerDAO.getMineId();
List<Power> powerDetails = powerDAO.getPowerDetails();
//删除表格中原有的数据
ceMapper.deleteByDateAndMineIdAndType(mineId, importTime, type);
Boolean added = ceMapper.add(powerDetails, mineId, importTime, type);
if (!added) {
return false;
}
return true;
}
@Override
public Boolean pAdd(PowerAllDAO powerAllDAO) {
//获取相关属性
String type = powerAllDAO.getType();
String importTime = powerAllDAO.getImportTime();
String mineId = powerAllDAO.getMineId();
List<Power> powerDetails = powerAllDAO.getPowerDetails();
//查找对照表是否插入
PowerWagesComparation comparation = ceMapper.select(type, importTime, mineId);
if (comparation == null) {
return false;
}
//获取对应表的id
Integer comparisonId = comparation.getComparisonId();
//删除原有数据
deMapper.deleteByDateAndMineIdAndComparisonId(mineId, importTime, comparisonId);
Boolean added = deMapper.add(powerDetails, comparisonId, importTime, mineId);
if (!added) {
return false;
}
return true;
}
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment