package com.jeeplus.modules.sg.web; import com.jeeplus.common.utils.DateUtils; import com.jeeplus.common.utils.StringUtils; 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.TzData; 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.bind.annotation.ResponseBody; 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.math.BigDecimal; 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); } double[] tzfee = getTzFee(file); jkxlService.saveTzFee(tzfee,id); } catch (Exception e){ addMessage(redirectAttributes, "导入失败"); } addMessage(redirectAttributes, "导入成功"); return "redirect:/a/jkxl/list?id="+id; } @RequestMapping("/gettz") @ResponseBody public List getTz(TzData tzData){ String id = tzData.getId(); List list = jkxlService.getList(id); List list1 = new ArrayList<>(); for(JkxlData jkxlData: list){ if(jkxlData.getOriginalTotalCost() != null){ list1.add(jkxlData); } } return list1; } // @RequestMapping("/relist") // public String reList(){ // // } @RequestMapping("/list") public String list(HttpServletRequest request,Model model){ String id = request.getParameter("id"); JkxlData jkxlData = new JkxlData(); TzData tzData = new TzData(); jkxlData.setId(id); tzData.setId(id); List list1 = new ArrayList<>(); list1.add(jkxlData); List list = jkxlService.getList(id); List list2 = jkxlService.getTzFee(tzData); HashMap map = new HashMap(); map.put("list1",list1); map.put("list",list); map.put("list2",list2); 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, "导出失败"); } 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 ); //工程项目竣工结算汇总表 ImportExcel gzhz = new ImportExcel(file,1,BashInfo.SHEET_GCHZ ); //架空线路工程费用汇总表 double[] csRate = getCsRate(csqd); double[] gfRate = getGfRate(gf); double[] qtFees = getQtFees(qt); double[] wsbFees = getFees(total); int[] zjgcFee = getZjgcFee(gzhz); double totalFee = 0.00; List list = new ArrayList<>(); int lastRow = importExcel.getLastDataRowNum(); int[] row = new int[6]; for(int i=0;i