ソースを参照

架空导线数据导出功能提交

user5 3 年 前
コミット
b205bf47fa

+ 41 - 20
src/main/java/com/jeeplus/modules/sg/raiseCapitalDesign/service/RaiseCapitalDesignService.java

@@ -24,6 +24,8 @@ import com.jeeplus.modules.sg.raiseCapitalDesign.entity.CableSectionInfo;
 import com.jeeplus.modules.sg.raiseCapitalDesign.entity.VoltageData;
 import com.jeeplus.modules.sg.raiseCapitalDesign.entity.VoltageInfo;
 import com.jeeplus.modules.sg.raiseCapitalDesign.mapper.RaiseCapitalDesignMapper;
+import com.jeeplus.modules.sg.raiseCapitalDesign.utils.RaiseCapitalDesignExportUtil;
+import com.jeeplus.modules.sg.raiseCapitalDesign.utils.RaiseCapitalDesignTemplate;
 import com.jeeplus.modules.sys.entity.DictValue;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.test.one.dialog.mapper.Leave1Mapper;
@@ -91,7 +93,7 @@ public class RaiseCapitalDesignService extends CrudService<RaiseCapitalDesignMap
 	 * @param response
 	 */
 	@Transactional(readOnly = false)
-	public void getExport(String projectName,HttpServletRequest request, HttpServletResponse response){
+	public void getExport(String projectName,String uuid,HttpServletRequest request, HttpServletResponse response){
 		String id = UserUtils.getUser().getId();
 		CacheChannel channel = J2Cache.getChannel();
 		RedisClient client = ((RedisCacheProvider)channel.getL2Provider()).getRedisClient();
@@ -104,11 +106,18 @@ public class RaiseCapitalDesignService extends CrudService<RaiseCapitalDesignMap
 		showList.setProjectName(projectName);
 		//领料清单-从数据库
 		List<ShowList> materialsList = showListMapper.findRaiseList(showList);
-
+		//获取架空导线计算表中的数据
+		VoltageData voltageData = new VoltageData();
+		//查询10KV数据
+		List<VoltageInfo> highVoltageList = this.getAerialConductor(uuid + "highVoltage","highVoltage");
+		//查询0.4KV数据
+		List<VoltageInfo> lowVoltageList = this.getAerialConductor(uuid + "lowVoltage","lowVoltage");
+		voltageData.setHighVoltageList(highVoltageList);
+		voltageData.setLowVoltageList(lowVoltageList);
 
 		RaiseCapital newRaise = (RaiseCapital) newMap.get("raiseCapital");
 
-		RaiseTemplate raiseTemplate = new RaiseTemplate();
+		RaiseCapitalDesignTemplate raiseTemplate = new RaiseCapitalDesignTemplate();
 		File newFile = raiseTemplate.createNewFile();
 		InputStream inputStream = null;
 		XSSFWorkbook workbook = null;
@@ -117,6 +126,8 @@ public class RaiseCapitalDesignService extends CrudService<RaiseCapitalDesignMap
 		XSSFSheet sheetModular = null;
 		//领料清单
 		XSSFSheet sheetPickingList = null;
+
+		XSSFSheet sheetVoltageList = null;
 		try {
 			inputStream = new FileInputStream(newFile);// 将excel文件转为输入流
 			workbook = new XSSFWorkbook(inputStream);// 创建个workbook,
@@ -124,15 +135,18 @@ public class RaiseCapitalDesignService extends CrudService<RaiseCapitalDesignMap
 			sheetModular =workbook.getSheetAt(0);//模块表
 			/*sheetModuleList = workbook.getSheetAt(1);//模块清单*/
 			sheetPickingList = workbook.getSheetAt(1);//领料清单
+
+			sheetVoltageList = workbook.getSheetAt(2);//架空导线计算表
 		} catch (Exception e1) {
 			e1.printStackTrace();
 		}
 		try {
 			// 写数据
 			FileOutputStream fos = new FileOutputStream(newFile);
-			RaiseExportUtil.getSheetModular(sheetModular,myList,newList,newRaise,workbook);//模块表
+			RaiseCapitalDesignExportUtil.getSheetModular(sheetModular,myList,newList,newRaise,workbook);//模块表
 			/*RaiseExportUtil.getSheetModuleList(sheetModuleList,moduleList,workbook);//模块清单*/
-			RaiseExportUtil.getSheetPickingList(sheetPickingList,materialsList,newRaise,workbook);//领料清单
+			RaiseCapitalDesignExportUtil.getSheetPickingList(sheetPickingList,materialsList,newRaise,workbook);//领料清单
+			RaiseCapitalDesignExportUtil.getSheetVoltageList(sheetVoltageList,voltageData,newRaise,workbook);//架空导线计算表
             showListMapper.trunCate(projectName);
 			workbook.write(fos);
 			fos.flush();
@@ -260,13 +274,17 @@ public class RaiseCapitalDesignService extends CrudService<RaiseCapitalDesignMap
 		List<DisposeData> voltageDisposeDataList = Lists.newArrayList();
 		CacheChannel channel = J2Cache.getChannel();
 		RedisClient client = ((RedisCacheProvider)channel.getL2Provider()).getRedisClient();
-		BinaryJedisCommands binaryJedisCommands = client.get();
-		byte[] voltageDisposeBytes = binaryJedisCommands.get((uuid+"voltageDisposeData").getBytes());
-		String voltageDisposeItem = null;
-		if(null != voltageDisposeBytes){
-			voltageDisposeItem = new String(voltageDisposeBytes);
-			if(StringUtils.isNotBlank(voltageDisposeItem))
-				voltageDisposeDataList = JSON.parseArray(voltageDisposeItem,DisposeData.class);
+		try {
+			BinaryJedisCommands binaryJedisCommands = client.get();
+			byte[] voltageDisposeBytes = binaryJedisCommands.get((uuid+"voltageDisposeData").getBytes());
+			String voltageDisposeItem = null;
+			if(null != voltageDisposeBytes){
+				voltageDisposeItem = new String(voltageDisposeBytes);
+				if(StringUtils.isNotBlank(voltageDisposeItem))
+					voltageDisposeDataList = JSON.parseArray(voltageDisposeItem,DisposeData.class);
+			}
+		} finally {
+			client.release();
 		}
 		return voltageDisposeDataList;
 	}
@@ -396,14 +414,17 @@ public class RaiseCapitalDesignService extends CrudService<RaiseCapitalDesignMap
 
 		CacheChannel channel = J2Cache.getChannel();
 		RedisClient client = ((RedisCacheProvider)channel.getL2Provider()).getRedisClient();
-		BinaryJedisCommands binaryJedisCommands = client.get();
-		binaryJedisCommands.set((voltageData.getUuid()+"voltageDisposeData").getBytes(),voltageDisposeDataJson.getBytes());
-		binaryJedisCommands.set((voltageData.getUuid()+"highVoltage").getBytes(),highVoltageJson.getBytes());
-		binaryJedisCommands.set((voltageData.getUuid()+"lowVoltage").getBytes(),lowVoltageJson.getBytes());
-		binaryJedisCommands.expire((voltageData.getUuid()+"voltageDisposeData").getBytes(),86400);
-		binaryJedisCommands.expire((voltageData.getUuid()+"highVoltage").getBytes(),86400);
-		binaryJedisCommands.expire((voltageData.getUuid()+"lowVoltage").getBytes(),86400);
-
+		try {
+			BinaryJedisCommands binaryJedisCommands = client.get();
+			binaryJedisCommands.set((voltageData.getUuid()+"voltageDisposeData").getBytes(),voltageDisposeDataJson.getBytes());
+			binaryJedisCommands.set((voltageData.getUuid()+"highVoltage").getBytes(),highVoltageJson.getBytes());
+			binaryJedisCommands.set((voltageData.getUuid()+"lowVoltage").getBytes(),lowVoltageJson.getBytes());
+			binaryJedisCommands.expire((voltageData.getUuid()+"voltageDisposeData").getBytes(),86400);
+			binaryJedisCommands.expire((voltageData.getUuid()+"highVoltage").getBytes(),86400);
+			binaryJedisCommands.expire((voltageData.getUuid()+"lowVoltage").getBytes(),86400);
+		} finally {
+			client.release();
+		}
 	}
 	/**
 	 * 电缆分段计算处理

+ 101 - 8
src/main/java/com/jeeplus/modules/sg/raiseCapitalDesign/utils/RaiseCapitalDesignExportUtil.java

@@ -1,5 +1,6 @@
 package com.jeeplus.modules.sg.raiseCapitalDesign.utils;
 
+import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.modules.sg.financial.erpcredit.entity.*;
 import com.jeeplus.modules.sg.financial.erpcredit.util.ExportUtilCalculate;
 import com.jeeplus.modules.sg.financial.settlement.entity.MaintainData;
@@ -8,6 +9,8 @@ import com.jeeplus.modules.sg.picking.activiti.entity.MdTheClass;
 import com.jeeplus.modules.sg.picking.activiti.entity.PickList;
 import com.jeeplus.modules.sg.picking.activiti.entity.ShowList;
 import com.jeeplus.modules.sg.raiseCapital.entity.RaiseCapital;
+import com.jeeplus.modules.sg.raiseCapitalDesign.entity.VoltageData;
+import com.jeeplus.modules.sg.raiseCapitalDesign.entity.VoltageInfo;
 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
 import org.apache.poi.hssf.usermodel.HSSFFont;
 import org.apache.poi.ss.usermodel.CellStyle;
@@ -288,7 +291,7 @@ public class RaiseCapitalDesignExportUtil {
             for (int i = 0; i < showLists.size(); i++) {
                 showList = showLists.get(i);
                 row = (XSSFRow) sheet.createRow((int) i + 6);
-                //第一
+                //第一
                 if (row.getCell(0) == null) {
                     cell = row.createCell(0);
                 } else {
@@ -297,7 +300,7 @@ public class RaiseCapitalDesignExportUtil {
                 cell.setCellValue(i + 1);
                 cell.setCellStyle(cellStyle);
 
-                //第二
+                //第二
                 if (row.getCell(1) == null) {
                     cell = row.createCell(1);
                 } else {
@@ -306,7 +309,7 @@ public class RaiseCapitalDesignExportUtil {
                 cell.setCellValue(showList.getMaterialCode());//物料编码
                 cell.setCellStyle(cellStyle);
 
-                //第三
+                //第三
                 if (row.getCell(2) == null) {
                     cell = row.createCell(2);
                 } else {
@@ -316,7 +319,7 @@ public class RaiseCapitalDesignExportUtil {
                 cell.setCellStyle(cellStyle);
 
 
-                //第四
+                //第四
                 if (row.getCell(3) == null) {
                     cell = row.createCell(3);
                 } else {
@@ -326,7 +329,7 @@ public class RaiseCapitalDesignExportUtil {
                 cell.setCellStyle(cellStyle);
 
 
-                //第五
+                //第五
                 if (row.getCell(4) == null) {
                     cell = row.createCell(4);
                 } else {
@@ -335,7 +338,7 @@ public class RaiseCapitalDesignExportUtil {
                 cell.setCellValue(showList.getMdUnits());//单位
                 cell.setCellStyle(cellStyle);
 
-                //第六
+                //第六
                 if (row.getCell(5) == null) {
                     cell = row.createCell(5);
                 } else {
@@ -344,7 +347,7 @@ public class RaiseCapitalDesignExportUtil {
                 cell.setCellValue(showList.getMdTotalAmount());//总量
                 cell.setCellStyle(cellStyle);
 
-                //第七
+                //第七
                 if (row.getCell(6) == null) {
                     cell = row.createCell(6);
                 } else {
@@ -353,7 +356,7 @@ public class RaiseCapitalDesignExportUtil {
                 cell.setCellValue(showList.getMdSingleWeight());//单重
                 cell.setCellStyle(cellStyle);
 
-                //第8
+                //第8
                 if (row.getCell(7) == null) {
                     cell = row.createCell(7);
                 } else {
@@ -366,6 +369,96 @@ public class RaiseCapitalDesignExportUtil {
         }
     }
 
+    //架空导线计算表
+    public static void getSheetVoltageList(Sheet sheet, VoltageData voltageData, RaiseCapital raiseCapital, Workbook workbook) {
+        if (sheet != null) {
+            CellStyle style = getCellStyleFont(workbook);
+            CellStyle cellStyle = getCellStyle(workbook);
+
+            XSSFRow row = (XSSFRow) sheet.getRow(0);
+            XSSFCell cell = row.getCell(0);
+
+            List<VoltageInfo> highVoltageList = voltageData.getHighVoltageList();
+            List<VoltageInfo> lowVoltageList = voltageData.getLowVoltageList();
+
+            for (VoltageInfo highVoltage : highVoltageList) {
+                switch (highVoltage.getVoltageName()){
+                    case "JKLYJ-10/240":
+                        disposeRowData(2,sheet,highVoltage,cellStyle);
+                        break;
+                    case "JKLYJ-10/150":
+                        disposeRowData(3,sheet,highVoltage,cellStyle);
+                        break;
+                    case "JKLYJ-10/50":
+                        disposeRowData(4,sheet,highVoltage,cellStyle);
+                        break;
+                }
+
+            }
+
+            for (VoltageInfo lowVoltage : lowVoltageList) {
+                switch (lowVoltage.getVoltageName()){
+                    case "JKLYJ-120":
+                        disposeRowData(6,sheet,lowVoltage,cellStyle);
+                        break;
+                    case "JKLYJ-70":
+                        disposeRowData(7,sheet,lowVoltage,cellStyle);
+                        break;
+                    case "JKLGYJ-120/20":
+                        disposeRowData(8,sheet,lowVoltage,cellStyle);
+                        break;
+                    case "JKYJ-120":
+                        disposeRowData(9,sheet,lowVoltage,cellStyle);
+                        break;
+                    case "JKYJ-70":
+                        disposeRowData(10,sheet,lowVoltage,cellStyle);
+                        break;
+                    case "JKYJ-35":
+                        disposeRowData(11,sheet,lowVoltage,cellStyle);
+                        break;
+                    case "JKYJ-16":
+                        disposeRowData(12,sheet,lowVoltage,cellStyle);
+                        break;
+                }
+
+            }
+        }
+    }
+
+    private static void disposeRowData(Integer rowLineNumber, Sheet sheet, VoltageInfo voltageInfo, CellStyle cellStyle){
+
+        XSSFRow row = (XSSFRow) sheet.getRow(rowLineNumber);
+        XSSFCell cell = row.getCell(1);
+        //第二列
+        if (row.getCell(1) == null) {
+            cell = row.getCell(1);
+        } else {
+            cell = row.getCell(1);
+        }
+        cell.setCellValue(voltageInfo.getSingleCircuitPath());//物料编码
+
+        //第三列
+        if (row.getCell(2) == null) {
+            cell = row.getCell(2);
+        } else {
+            cell = row.getCell(2);
+        }
+        cell.setCellValue(voltageInfo.getDoubleCircuitPath());//物料名称
+
+        //第四列
+        if (row.getCell(3) == null) {
+            cell = row.getCell(3);
+        } else {
+            cell = row.getCell(3);
+        }
+        if(StringUtils.isNotBlank(voltageInfo.getSingleLong())){
+            cell.setCellValue(voltageInfo.getSingleLong());//扩展描述
+        }else{
+            cell.setCellValue("0");//扩展描述
+        }
+
+    }
+
     //设置 字体边框
     public static CellStyle getCellStyleFont(Workbook workbook) {
         XSSFFont font = (XSSFFont) workbook.createFont();

+ 1 - 1
src/main/java/com/jeeplus/modules/sg/raiseCapitalDesign/utils/RaiseCapitalDesignTemplate.java

@@ -50,7 +50,7 @@ public class RaiseCapitalDesignTemplate {
     public File createNewFile() {
         // 读取模板,并赋值到新文件
         // 文件模板路径
-        String path = (getSispPath() + "excelmodel/raiseCapital.xlsx");
+        String path = (getSispPath() + "excelmodel/raiseCapitalDesign.xlsx");
         File file = new File(path);
         // 保存文件的路径
         String realPath = (getSispPath() + "excelmodel");

+ 10 - 7
src/main/java/com/jeeplus/modules/sg/raiseCapitalDesign/web/RaiseCapitalDesignController.java

@@ -373,22 +373,25 @@ public class RaiseCapitalDesignController extends BaseController {
 			client.release();
 		}
 		j.setSuccess(true);
-		//导出成功后删除reids中的对应uuid的数据(没有模糊删除,只能一条条删除)
-		BinaryJedisCommands binaryJedisCommands = client.get();
-		binaryJedisCommands.del((uuid + "voltageDisposeData").getBytes());
-		binaryJedisCommands.del((uuid + "highVoltage").getBytes());
-		binaryJedisCommands.del((uuid + "lowVoltage").getBytes());
 		return j;
 	}
 
 	@ResponseBody
 	@RequestMapping(value = "export")
-	public Result exportFile(String projectName,HttpServletRequest request, HttpServletResponse response){
+	public Result exportFile(String projectName,String uuid,HttpServletRequest request, HttpServletResponse response){
 		Result j = new Result();
 		try {
-			raiseCapitalDesignService.getExport(projectName,request,response);
+			raiseCapitalDesignService.getExport(projectName,uuid,request,response);
 			j.setSuccess(true);
 			j.setMsg("导出成功!");
+
+			CacheChannel channel = J2Cache.getChannel();
+			RedisClient client = ((RedisCacheProvider)channel.getL2Provider()).getRedisClient();
+			//导出成功后删除reids中的对应uuid的数据(没有模糊删除,只能一条条删除)
+			BinaryJedisCommands binaryJedisCommands = client.get();
+			binaryJedisCommands.del((uuid + "voltageDisposeData").getBytes());
+			binaryJedisCommands.del((uuid + "highVoltage").getBytes());
+			binaryJedisCommands.del((uuid + "lowVoltage").getBytes());
 		}catch (Exception e){
 			j.setSuccess(false);
 			j.setMsg("导出失败!失败信息:"+e.getMessage());

+ 1 - 1
src/main/webapp/webpage/modules/sg/raiseCapitalDesign/raiseCapitalDesign.js

@@ -373,7 +373,7 @@ $(document).ready(function() {
 			},
 			function (data) {
 				if(data.success){
-					jp.downloadFile('${ctx}/raiseCapitalDesign/export?projectName='+projectName,'raiseCapital');//给个name是为了能够在某些条件下下载两个文件
+					jp.downloadFile('${ctx}/raiseCapitalDesign/export?projectName='+projectName + "&uuid="+uuid,'raiseCapital');//给个name是为了能够在某些条件下下载两个文件
 					jp.success("下载成功")
 					refreshWindows();
 				}