package com.zhcs.dt.controller.information.monthProgress; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import javax.annotation.Resource; import net.sf.json.JSONArray; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.zhcs.dt.controller.base.BaseController; import com.zhcs.dt.entity.Page; import com.zhcs.dt.service.information.annualPlan.AnnualPlanManager; import com.zhcs.dt.service.information.monthProgress.MonthProgressManager; import com.zhcs.dt.util.Jurisdiction; import com.zhcs.dt.util.PageData; /** * 类名称:年度养护计划 * 创建人:Yuanf * 创建时间:2018-11-12 */ @Controller @RequestMapping(value="/monthProgress") class MonthProgressController extends BaseController { String menuUrl = "monthProgress/list.do"; //菜单地址(权限用) @Resource(name="monthProgressService") private MonthProgressManager monthProgressService; @Resource(name="annualPlanService") private AnnualPlanManager annualPlanService; /**列表 * @param page * @throws Exception */ @RequestMapping(value="/list") public ModelAndView list(Page page) throws Exception{ logBefore(logger, Jurisdiction.getUsername()+"月度养护计划实施情况"); //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码) ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); //通过username获取对应的公司和路段,控股集团管理员只可以看到状态为“待审批”和“已完成”的计划,路公司管理员和路段管理员可以看到本公司所有计划,admin没有权限控制 PageData userInfo = annualPlanService.getCompanyAndRoad(Jurisdiction.getUsername().toString()); //通过username获取公司和路段 //通过ROLE_ID获取角色 String roleName = annualPlanService.getRoleName(userInfo.get("ROLE_ID").toString()); List varList = new ArrayList(); if(!"控股集团管理员".equalsIgnoreCase(roleName) && !"admin".equalsIgnoreCase(Jurisdiction.getUsername().toString())){ String company_id = monthProgressService.getCompanyid(userInfo.get("COMPANY").toString()); pd.put("COMPANY", userInfo.get("COMPANY")); pd.put("COMPANY_ID", company_id); varList = monthProgressService.getCompPlanList(pd); //列出本公司已审核通过的年计划 (次数读取oa_department基础信息) mv.setViewName("information/monthProgress/monthProgress_list"); mv.addObject("varList", varList); }else{ varList = monthProgressService.getCompPlanList(pd); //列出已审核通过的年计划 mv.setViewName("information/monthProgress/monthProgress_kg_list"); mv.addObject("varList", varList); } mv.addObject("pd", pd); mv.addObject("QX",Jurisdiction.getHC()); //按钮权限 return mv; } /**查询所选汇总表 * @param * @throws Exception */ @RequestMapping(value="/showSumTable") public ModelAndView showSumTable(Model model)throws Exception{ ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); mv.setViewName("information/monthProgress/monthSumTable/"+pd.get("type")); List varList = new ArrayList(); if("monthly_test_project_completion".equalsIgnoreCase(pd.get("type").toString()) || "monthly_equipment_overhaul_completion".equalsIgnoreCase(pd.get("type").toString())){ varList = monthProgressService.getTestdata(pd); }else if("monthly_scientific_project_completion".equalsIgnoreCase(pd.get("type").toString())){ varList = monthProgressService.getScidata(pd); }else{ varList = monthProgressService.getdata(pd); } if(varList ==null || varList.equals(" ") || varList.isEmpty() ) { mv.addObject("varList", ""); } // else if("highway_reserve_fees_sumtable_view".equalsIgnoreCase(pd.get("type").toString())){ // List feeList = annualPlanCompService.getTotalFee(pd); // varList = getReserveFee(varList, feeList); // mv.addObject("dettList", varList); // } else { LinkedHashMap>> varMap = new LinkedHashMap>>(); Double sumPlanCost = (double) 0; Double sumActualCost = (double) 0; String prevCompanyName = ""; String prevCompanyId=""; for(PageData tpd : varList){ LinkedHashMap> xjroadMap = new LinkedHashMap>(); String company = tpd.get("COMPANY").toString(); String road = tpd.get("ROAD").toString(); String companyId = tpd.get("COMPANY_ID").toString(); if(varMap.containsKey(company)){ LinkedHashMap> roadMap = varMap.get(company); if(roadMap != null && roadMap.containsKey(road)){ ArrayList pList = roadMap.get(road); pList.add(tpd); }else{ ArrayList npList = new ArrayList(); npList.add(tpd); roadMap.put(road, npList); } xjroadMap = roadMap; prevCompanyName = company; prevCompanyId = companyId; }else{ if(varMap.size() > 0){ ArrayList xjList = new ArrayList(); PageData xjPd = new PageData(); xjPd.put("COMPANY", prevCompanyName); xjPd.put("ROAD", "小计"); xjPd.put("PROJECT_NAME", ""); xjPd.put("COMPANY_ID", prevCompanyId); // xjPd.put("PROJECT_TYPE", ""); // xjPd.put("SCALE", ""); // xjPd.put("PLAN_QUANTITIES", ""); // xjPd.put("PLAN_COST", sumPlanCost); // xjPd.put("ACTUAL_QUANTITIES", ""); // xjPd.put("REMARKS", ""); // xjPd.put("ACTUAL_COST", sumActualCost); xjList.add(xjPd); xjroadMap = varMap.get(prevCompanyName); xjroadMap.put("小计", xjList); varMap.put(prevCompanyName, xjroadMap); } ArrayList mpList = new ArrayList(); LinkedHashMap> mroadMap = new LinkedHashMap>(); mpList.add(tpd); mroadMap.put(road, mpList); varMap.put(company, mroadMap); prevCompanyName = company; prevCompanyId = companyId; } } PageData lastxjPd = new PageData(); lastxjPd.put("COMPANY", prevCompanyName); lastxjPd.put("ROAD", "小计"); lastxjPd.put("PROJECT_NAME", ""); lastxjPd.put("COMPANY_ID", prevCompanyId); List dettListNew = new ArrayList(); for(Entry>> centry : varMap.entrySet()){ HashMap> roadMap = centry.getValue(); for(Entry> rentry : roadMap.entrySet()){ ArrayList projectList = rentry.getValue(); for(PageData ppd : projectList){ dettListNew.add(ppd); } } } dettListNew.add(lastxjPd); mv.addObject("varList", dettListNew); } mv.addObject("pd", pd); mv.addObject("QX",Jurisdiction.getHC()); //按钮权限 return mv; } /**显示对应的报表列表 * @param * @throws Exception */ @RequestMapping(value="/goReport") public ModelAndView goReport()throws Exception{ ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); mv.setViewName("information/monthProgress/monthProgress_list2"); /*mv.addObject("varList", varList); mv.addObject("pd", pd);*/ mv.addObject("QX",Jurisdiction.getHC()); //按钮权限 return mv; } /**显示、编辑子表格 * @param * @throws Exception */ @RequestMapping(value="/showTableRecod") public ModelAndView showTableRecod()throws Exception{ ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); // List varList = monthProgressService.findTableById(pd); //获取对应的表格列表 mv.setViewName("information/monthProgress/monthProgress_edit"); // mv.addObject("varList", varList); mv.addObject("pd", pd); mv.addObject("QX",Jurisdiction.getHC()); //按钮权限 return mv; } /**查询日常月度完成情况表 * @param * @throws Exception */ @RequestMapping(value="/showDailyTable") public ModelAndView showDailyTable(Model model)throws Exception{ ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); pd.put("table","oa_department_"+pd.get("YEAR").toString()); mv.setViewName("information/monthProgress/monthSumTable/dailyCompletion_list"); List varList = new ArrayList(); List companyRoadList = monthProgressService.getCompanyRoadList(pd); Map> companyRoad = new HashMap>(); List companyList = new ArrayList(); for(PageData tpd : companyRoadList){ if(tpd.get("PARENT_ID").equals("0")){ companyList.add(tpd.get("NAME").toString()); List roadList = new ArrayList(); for(PageData tempPd : companyRoadList){ if(tempPd.get("PARENT_ID").equals(tpd.get("DEPARTMENT_ID"))){ roadList.add(tempPd.get("NAME").toString()); } } companyRoad.put(tpd.get("NAME").toString(), roadList); } } mv.addObject("companyList", companyList); mv.addObject("companyRoad", JSONArray.fromObject(companyRoad)); mv.addObject("pd", pd); //mv.addObject("QX",Jurisdiction.getHC()); //按钮权限 return mv; } public static void main(String[] args) { // TODO Auto-generated method stub } }