package com.jeeplus.modules.sg.project.web; import com.jeeplus.common.json.AjaxJson; import com.jeeplus.common.utils.DateUtils; import com.jeeplus.common.utils.StringUtils; import com.jeeplus.core.web.BaseController; import com.jeeplus.modules.sg.overheadline.entity.JkxlDetailFee; import com.jeeplus.modules.sg.overheadline.service.OverheadLineService; import com.jeeplus.modules.sg.project.entity.WbsItem; import com.jeeplus.modules.sg.project.entity.WbsProject; import com.jeeplus.modules.sg.project.entity.WbsSelection; import com.jeeplus.modules.sg.project.service.ProjectService; import com.jeeplus.modules.sg.project.util.ExportUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import org.springframework.ui.Model; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.List; @Controller @RequestMapping("${adminPath}/project") public class ProjectController extends BaseController { @Autowired private HttpServletRequest request; @Autowired private ProjectService projectService; @Autowired private OverheadLineService overheadLineService; @ModelAttribute public WbsProject get(@RequestParam(required=false) String id) { WbsProject entity = null; if (StringUtils.isNotBlank(id)){ entity = projectService.get(id); } if (entity == null){ entity = new WbsProject(); } return entity; } @RequestMapping(value = {"list", ""}) public String list(WbsSelection wbsSelection, HttpServletRequest request, HttpServletResponse response, Model model) { List list = projectService.findList(wbsSelection); model.addAttribute("list",list); return "modules/sg/project/management"; } @RequestMapping("/form") public String form(WbsProject wbsProject, Model model) { WbsProject wbsProject1 = projectService.get(wbsProject.getId()); List list = new ArrayList<>(); list.add(wbsProject1); model.addAttribute("list", list); String view = "updateItemForm"; String tabId = request.getParameter("tabId"); if("1".equals(tabId)){ view = "lookItemForm"; } return "modules/sg/project/"+view; } //项目保存 @ResponseBody @RequestMapping("/save") public AjaxJson save(WbsProject wbsProject, Model model, RedirectAttributes redirectAttributes){ AjaxJson j = new AjaxJson(); //数据验证 String errMsg = beanValidator(wbsProject); if (StringUtils.isNotBlank(errMsg)){ j.setSuccess(false); j.setMsg(errMsg); return j; } //新增或编辑表单保存 projectService.save(wbsProject);//保存 j.setSuccess(true); addMessage(redirectAttributes, "保存成功"); return j; } //项目编辑 @RequestMapping("/export") public String toList(HttpServletRequest request,Model model,HttpServletResponse response) throws IOException { String id = request.getParameter("id"); WbsProject wbsProject = projectService.get(id); String fileName = wbsProject.getProjectName()+ DateUtils.getDate("yyyyMMddHHmmss")+".xlsx"; List wbsItems = wbsProject.getWbsItems(); String[] sts = new String[wbsItems.size()]; for (int i=0;i jkxlDetailFees = overheadLineService.findList(wbsItems.get(j).getId()); exportUtil.setDataList(jkxlDetailFees,j); } exportUtil.write(response,fileName).dispose(); return "redirect:/a/project/list"; } //项目删除 @ResponseBody @RequestMapping(value = "delete") public AjaxJson delete(WbsProject wbsProject) { AjaxJson j = new AjaxJson(); projectService.delete(wbsProject); j.setMsg("删除项目成功"); return j; } }