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

电力汇总-代码重构与优化

parent f990a2e2
...@@ -52,9 +52,8 @@ public class PowerWagesController { ...@@ -52,9 +52,8 @@ public class PowerWagesController {
@PostMapping("/cExcel") @PostMapping("/cExcel")
public AjaxResult readCExcel(@RequestParam("file") MultipartFile file, public AjaxResult readCExcel(@RequestParam("file") MultipartFile file,
String date, String date,
String mineId, String mineId) {
String type) { Boolean analyzed = powerWagesService.readCExcel(file,date,mineId);
Boolean analyzed = powerWagesService.readCExcel(file,date,mineId,type);
if (!analyzed) { if (!analyzed) {
return AjaxResult.error("解析失败"); return AjaxResult.error("解析失败");
}else{ }else{
......
...@@ -26,4 +26,6 @@ public interface PowerWagesComMapper { ...@@ -26,4 +26,6 @@ public interface PowerWagesComMapper {
PowerWagesComparation selectByCId(Integer comparisonId); PowerWagesComparation selectByCId(Integer comparisonId);
List<PowerWagesComparation> selectByMineIdAndDate(@Param("mineId") String mineId, @Param("date") String date); List<PowerWagesComparation> selectByMineIdAndDate(@Param("mineId") String mineId, @Param("date") String date);
void deleteByDateAndMineIdAndType(@Param("mineId") String mineId, @Param("date") String date, @Param("type") String type);
} }
...@@ -22,5 +22,5 @@ public interface PowerWagesDeMapper { ...@@ -22,5 +22,5 @@ public interface PowerWagesDeMapper {
List<PowerWagesDetails> selectByCId(int comparisonId); List<PowerWagesDetails> selectByCId(int comparisonId);
void deleteByDateAndMineId(@Param("mineId") String mineId, @Param("date") String date); void deleteByDateAndMineIdAndComparisonId(@Param("mineId") String mineId, @Param("date") String date,@Param("comparisonId") Integer comparisonId);
} }
...@@ -18,7 +18,7 @@ public interface PowerWagesService { ...@@ -18,7 +18,7 @@ public interface PowerWagesService {
Boolean readDExcel(MultipartFile file, String date, String mineId); Boolean readDExcel(MultipartFile file, String date, String mineId);
Boolean readCExcel(MultipartFile file, String date, String mineId, String type); Boolean readCExcel(MultipartFile file, String date, String mineId);
void add(PowerDAO dao); void add(PowerDAO dao);
......
...@@ -45,7 +45,7 @@ public class PowerWagesServiceImpl implements PowerWagesService { ...@@ -45,7 +45,7 @@ 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 {
String type = "1";
//定义需要解析的sheet名 //定义需要解析的sheet名
List<String> sheetList = Arrays.asList("电量数据专业化公司", "外界电量数据"); List<String> sheetList = Arrays.asList("电量数据专业化公司", "外界电量数据");
// 定义需要过滤的关键词列表 // 定义需要过滤的关键词列表
...@@ -53,11 +53,21 @@ public class PowerWagesServiceImpl implements PowerWagesService { ...@@ -53,11 +53,21 @@ public class PowerWagesServiceImpl implements PowerWagesService {
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++) {
type = type + i; String type = "";
switch (sheetList.get(i)){
case "电量数据专业化公司":
type = "1";
break;
case "外界电量数据":
type = "2";
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);
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
...@@ -86,12 +96,23 @@ public class PowerWagesServiceImpl implements PowerWagesService { ...@@ -86,12 +96,23 @@ public class PowerWagesServiceImpl implements PowerWagesService {
} }
@Override @Override
public Boolean readCExcel(MultipartFile file, String date, String mineId, String type) { public Boolean readCExcel(MultipartFile file, String date, String mineId) {
try { try {
//定义需要解析的sheet名 //定义需要解析的sheet名
List<String> sheetList = Arrays.asList("电量数据专业化公司", "外界电量数据"); List<String> sheetList = Arrays.asList("电量数据专业化公司", "外界电量数据");
// 获取上传文件的输入流 // 获取上传文件的输入流
for (int i = 0; i < sheetList.size(); i++) { for (int i = 0; i < sheetList.size(); i++) {
String type = "";
switch (sheetList.get(i)){
case "电量数据专业化公司":
type = "1";
break;
case "外界电量数据":
type = "2";
break;
}
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
...@@ -102,7 +123,7 @@ public class PowerWagesServiceImpl implements PowerWagesService { ...@@ -102,7 +123,7 @@ public class PowerWagesServiceImpl implements PowerWagesService {
.doReadSync(); .doReadSync();
inputStream.close(); inputStream.close();
PowerWagesComparation comparation = powerList.get(0); PowerWagesComparation comparation = powerList.get(0);
type = type + i;
comparation.setType(type); comparation.setType(type);
comparation.setMineId(mineId); comparation.setMineId(mineId);
comparation.setImportTime(date); comparation.setImportTime(date);
...@@ -120,7 +141,6 @@ public class PowerWagesServiceImpl implements PowerWagesService { ...@@ -120,7 +141,6 @@ public class PowerWagesServiceImpl implements PowerWagesService {
String type = dao.getType(); String type = dao.getType();
String importTime = dao.getImportTime(); String importTime = dao.getImportTime();
String mineId = dao.getMineId(); String mineId = dao.getMineId();
PowerWagesDetails powerWagesDetails = new PowerWagesDetails();
List<Power> powerDetails = dao.getPowerDetails(); List<Power> powerDetails = dao.getPowerDetails();
//如何这个集合的长度>1,说明导入的是详细表 //如何这个集合的长度>1,说明导入的是详细表
if (powerDetails.size() > 1) { if (powerDetails.size() > 1) {
...@@ -128,15 +148,17 @@ public class PowerWagesServiceImpl implements PowerWagesService { ...@@ -128,15 +148,17 @@ public class PowerWagesServiceImpl implements PowerWagesService {
if (comparation != null) { if (comparation != null) {
//获取对应表的id //获取对应表的id
Integer comparisonId = comparation.getComparisonId(); Integer comparisonId = comparation.getComparisonId();
deMapper.deleteByDateAndMineIdAndComparisonId(mineId,importTime,comparisonId);
deMapper.add(powerDetails, comparisonId, importTime, mineId); deMapper.add(powerDetails, comparisonId, importTime, mineId);
} }
} else { } else {
PowerWagesComparation comparation = ceMapper.select(type, importTime, mineId); PowerWagesComparation comparation = ceMapper.select(type, importTime, mineId);
if (comparation == null) { Integer comparisonId = comparation.getComparisonId();
deMapper.deleteByDateAndMineIdAndComparisonId(mineId,importTime,comparisonId);
ceMapper.deleteByDateAndMineIdAndType(mineId,importTime,type);
ceMapper.add(powerDetails, mineId, importTime, type); ceMapper.add(powerDetails, mineId, importTime, type);
} }
} }
}
@Override @Override
public List<PowerVo> selectByMineIdAndDate(String mineId, String date){ public List<PowerVo> selectByMineIdAndDate(String mineId, String date){
......
...@@ -335,6 +335,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -335,6 +335,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
) )
</foreach> </foreach>
</insert> </insert>
<delete id="deleteByDateAndMineIdAndType">
delete from power_wages_comparation
where mine_id = #{mineId} and import_time = #{date} and type = #{type}
</delete>
<select id="select" resultType="com.ruoyi.system.model.wages.dao.PowerWagesComparation"> <select id="select" resultType="com.ruoyi.system.model.wages.dao.PowerWagesComparation">
select comparisonId, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, select comparisonId, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
a11, a12, a13, a14, a15, a16, a17, a18, a19, a11, a12, a13, a14, a15, a16, a17, a18, a19,
......
...@@ -475,9 +475,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -475,9 +475,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{mineId},#{importTime},#{comparisonId}) #{mineId},#{importTime},#{comparisonId})
</foreach> </foreach>
</insert> </insert>
<delete id="deleteByDateAndMineId"> <delete id="deleteByDateAndMineIdAndComparisonId">
delete from power_wages_details delete from power_wages_details
where mine_id = #{mineId} and import_time = #{date} where mine_id = #{mineId} and import_time = #{date} and comparison_id = #{comparisonId}
</delete> </delete>
<select id="selectByMineIdAndDate" resultMap="PowerWagesDetailsResult"> <select id="selectByMineIdAndDate" resultMap="PowerWagesDetailsResult">
select id, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, select id, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
......
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