package com.jeeplus.modules.sg.web; import com.jeeplus.common.utils.DateUtils; import com.jeeplus.common.utils.excel.ExportExcel; import com.jeeplus.common.utils.excel.ImportExcel; import com.jeeplus.core.web.BaseController; import com.jeeplus.modules.sg.entity.JkxlData; import com.jeeplus.modules.sg.entity.WbsProject; import com.jeeplus.modules.sg.service.JkxlService; import com.jeeplus.modules.sg.util.BashInfo; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.*; /** * 架空线路 */ @Controller @RequestMapping(value = "${adminPath}/jkxl") public class JkxlController extends BaseController { @Autowired private JkxlService jkxlService; @RequestMapping("/index") public String toImport(){ return "modules/sg/free/indexProject"; } @RequestMapping("/import") public String importFile(MultipartFile file, RedirectAttributes redirectAttributes, HttpServletRequest request, Model model){ double sl = Double.valueOf(request.getParameter("jxsl")); String projectName = request.getParameter("name"); String id = getId(); try { double[] rate = getRate(); WbsProject wbsProject = new WbsProject(); wbsProject.setId(id); wbsProject.setName(projectName); wbsProject.setCreateDate(new Date()); jkxlService.saveProject(wbsProject); List list = getData(file,rate,id,sl); for(JkxlData jkxlData : list){ jkxlService.save(jkxlData); } } catch (Exception e){ addMessage(redirectAttributes, "导入失败"); } addMessage(redirectAttributes, "导入成功"); return "redirect:/a/jkxl/list?id="+id; } @RequestMapping("/list") public String list(HttpServletRequest request,Model model){ String id = request.getParameter("id"); JkxlData jkxlData = new JkxlData(); jkxlData.setId(id); List list1 = new ArrayList<>(); list1.add(jkxlData); List list = jkxlService.getList(id); HashMap map = new HashMap(); map.put("list1",list1); map.put("list",list); model.addAttribute("map",map); return "modules/sg/free/wbslist"; } @RequestMapping("/export") public String export(HttpServletRequest request, HttpServletResponse response,Model model,RedirectAttributes redirectAttributes) { String id = request.getParameter("id"); try{ String fileName = "架空线路"+ DateUtils.getDate("yyyyMMddHHmmss")+".xlsx"; List list = jkxlService.findList(id); new ExportExcel(null,JkxlData.class).setDataList(list).write(response, fileName).dispose(); return null; }catch (Exception e){ addMessage(redirectAttributes, "导出失败"); } return "redirect:/a/jkxl/list?id="+id; } public List getData(MultipartFile file,double[] rate,String id,double sl) throws IOException, InvalidFormatException { ImportExcel importExcel = new ImportExcel(file,1,BashInfo.SHEET_FBFXJJ); ImportExcel csqd = new ImportExcel(file,1,BashInfo.SHEET_CSB); ImportExcel gf = new ImportExcel(file,1,BashInfo.SHEET_GFQD); ImportExcel qt = new ImportExcel(file,1,BashInfo.SHEET_QTFY); ImportExcel total = new ImportExcel(file,1,BashInfo.SHEET_HZB ); double[] csRate = getCsRate(csqd); double[] gfRate = getGfRate(gf); double[] qtFees = getQtFees(qt); double[] wsbFees = getFees(total); double totalFee = 0.00; List list = new ArrayList<>(); int lastRow = importExcel.getLastDataRowNum(); int[] row = new int[6]; for(int i=0;i