123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- package com.zhcs.dt.controller.information.monthProgress;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import net.sf.json.JSONArray;
- import net.sf.json.JSONObject;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.ResponseBody;
- 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.DownloadZip;
- import com.zhcs.dt.service.information.annualPlan.MultExcelUtils;
- import com.zhcs.dt.service.information.monthProgress.KyxmMonthProgressManager;
- import com.zhcs.dt.service.information.monthProgress.MonthProgressManager;
- import com.zhcs.dt.service.information.monthProgress.SyjcMonthProgressManager;
- import com.zhcs.dt.util.AppUtil;
- import com.zhcs.dt.util.Jurisdiction;
- import com.zhcs.dt.util.PageData;
- import com.zhcs.dt.util.Tools;
- /**
- * @author yuanfei
- * @date 2019年2月22日
- * @desc 预防养护
- */
- @Controller
- @RequestMapping(value="/scientific")
- public class KyxmMonthProgressController extends BaseController{
-
- @Resource(name="kyxmmonthProgressService")
- private KyxmMonthProgressManager kyxmmonthProgressService;
-
- @Resource(name="monthProgressService")
- private MonthProgressManager monthProgressService;
-
- /**月度列表
- * @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();
- PageData userInfo = monthProgressService.getCompanyAndRoad(Jurisdiction.getUsername().toString()); //通过username获取公司和路段
- //通过ROLE_ID获取角色
- String roleName = monthProgressService.getRoleName(userInfo.get("ROLE_ID").toString());
- pd = this.getPageData();
- String keywords = pd.getString("keywords"); //关键词检索条件
- if(null != keywords && !"".equals(keywords)){
- pd.put("keywords", keywords.trim());
- }
- if(userInfo.get("COMPANY") != null){
- pd.put("COMPANY", userInfo.get("COMPANY"));
- }
- //page.setPd(pd);
- List<PageData> varList = kyxmmonthProgressService.getReportlist(pd); //列出月度报告
- mv.setViewName("information/monthProgress/kyxm/monthProgress_list");
- mv.addObject("varList", varList);
- mv.addObject("pd", pd);
- mv.addObject("userInfo", userInfo);
- mv.addObject("roleName", roleName);
- mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
- return mv;
- }
-
- /**去新增页面
- * @param
- * @throws Exception
- */
- @RequestMapping(value="/goAdd")
- public ModelAndView goAdd()throws Exception{
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- String company = pd.get("COMPANY").toString();
- mv.setViewName("information/monthProgress/kyxm/monthProgress_add");
- mv.addObject("company", company);
- mv.addObject("msg", "save");
- mv.addObject("pd", pd);
- return mv;
- }
-
- /**新增报告
- * @param
- * @throws Exception
- */
- @RequestMapping(value="/saveNewReport")
- public ModelAndView saveNewReport() throws Exception{
- logBefore(logger, Jurisdiction.getUsername()+"新增预防养护月报");
- //List<PageData> reportList = new ArrayList<PageData>();
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- String planID = this.get32UUID();
- String companyid = monthProgressService.getCompanyid(pd.get("COMPANY"));
- pd.put("COMPANY_ID", companyid);
- pd.put("ID", planID);//主键
- pd.put("NAME", pd.get("YEAR")+"年"+pd.get("COMPANY")+"月度养护报告");
- pd.put("CTIME", Tools.date2Str(new Date())); //创建时间
- pd.put("MTIME", Tools.date2Str(new Date())); //修改时间
- pd.put("STATUS", "新建"); //创建时间
- kyxmmonthProgressService.addMonthlyReport(pd); //新建月度养护报告
- mv.addObject("pd", pd);
- mv.addObject("msg","success");
- mv.setViewName("save_result");
- return mv;
- }
-
- /**列表
- * @param page
- * @throws Exception
- */
- @RequestMapping(value="/showTable")
- public ModelAndView showTable() throws Exception{
- logBefore(logger, Jurisdiction.getUsername()+"月度预防养护");
- //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- PageData userInfo = monthProgressService.getCompanyAndRoad(Jurisdiction.getUsername().toString()); //通过username获取公司和路段
- //通过ROLE_ID获取角色
- String roleName = monthProgressService.getRoleName(userInfo.get("ROLE_ID").toString());
- if("路段管理员".equalsIgnoreCase(roleName)){
- pd.put("ROADS", userInfo.get("ROAD").toString().split(","));
- }
- List<PageData> varList = kyxmmonthProgressService.getReportInfo(pd); //获取月报相应数据
- mv.setViewName("information/monthProgress/kyxm/scientificCompletion_list");
- mv.addObject("varList", varList);
- mv.addObject("pd", pd);
- mv.addObject("QX",Jurisdiction.getHC());
- return mv;
- }
-
- /**
- * 保存
- * @throws Exception
- */
- @RequestMapping(value = "/saveData")
- @ResponseBody
- public Object saveData(String data) throws Exception{
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- // JSONArray jsonarray = JSONArray.fromObject(pd.get("data"));
- JSONArray jsonarray = JSONArray.fromObject(data);
- Map<String,Object> map = dealWithData(pd,jsonarray);
- return AppUtil.returnObject(new PageData(), map);
- }
-
- /**
- * 处理新增编辑数据
- */
- @ResponseBody
- public Map<String,Object> dealWithData(PageData pd,JSONArray jsonarray) throws Exception{
- for (Object object : jsonarray) {
- JSONObject arrMap = JSONObject.fromObject(object);
- pd.put("YEAR", arrMap.get("YEAR"));
- pd.put("COMPANY", arrMap.get("COMPANY"));
- pd.put("COMPANY_ID", arrMap.get("COMPANY_ID"));
- pd.put("ROAD", arrMap.get("ROAD"));
- pd.put("ROAD_ID", arrMap.get("ROAD_ID"));
- pd.put("PROJECT_NAME", arrMap.get("PROJECT_NAME"));
- pd.put("SJWCGCL", arrMap.get("SJWCGCL"));
- String type = pd.get("TABLETYPE").toString();
- if("monthly_scientific_project_completion".equalsIgnoreCase(type)){
- pd.put("TABLE_NAME", "highway_scientific_project_dettable");
- }
- kyxmmonthProgressService.updateWCQKRecord(pd);
- kyxmmonthProgressService.deleteMonthRecord(pd);
- for (int i = 1; i < 13; i++) {
- pd.put("MONTH",i);
- if ((!arrMap.get("ACTUAL_COST_"+i).equals(""))||(!arrMap.get("PAY_COST_"+i).equals(""))
- ||(!arrMap.get("ACTUAL_QUANTITIES_"+i).equals(""))) {
- pd.put("ACTUAL_QUANTITIES", arrMap.get("ACTUAL_QUANTITIES_"+i).equals("")?null:arrMap.get("ACTUAL_QUANTITIES_"+i));
- pd.put("ACTUAL_COST", arrMap.get("ACTUAL_COST_"+i).equals("")?null:arrMap.get("ACTUAL_COST_"+i));
- pd.put("PAY_COST", arrMap.get("PAY_COST_"+i).equals("")?null:arrMap.get("PAY_COST_"+i));
- pd.put("RATIO", arrMap.get("RATIO_"+i).equals("")?null:arrMap.get("RATIO_"+i));
- kyxmmonthProgressService.insertMonthRecord(pd);
- }
- }
- }
- Map<String,Object> map = new HashMap<String,Object>();
- map.put("msg","success");
- return map;
- }
-
- /**删除月度报告
- * @param
- * @throws Exception
- */
- @RequestMapping(value="/delMonthlyReport")
- @ResponseBody
- public Object delMonthlyReport()throws Exception{
- Map<String,String> map = new HashMap<String,String>();
- PageData pd = new PageData();
- pd = this.getPageData();
- kyxmmonthProgressService.delMonthlyReport(pd); //删除月度报告
- kyxmmonthProgressService.delMonthlyCompletion(pd); //删除对应月度完成情况
- map.put("result", "success");
- return AppUtil.returnObject(new PageData(), map);
- }
- @RequestMapping("/excelExport")
- public String excelExport(HttpServletRequest request,HttpServletResponse response) throws Exception{
- String path = request.getSession().getServletContext().getRealPath("/uploadFiles/file");
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- List<String> paths = new ArrayList<String>();
- List<String> result = new ArrayList<String>();
- List<PageData> exceldata = setExcelData(pd);
- MultExcelUtils ex = new MultExcelUtils();
- String excelpath = ex.exportExcel(pd.getString("exportname")+".xlsx",path,response,exceldata);
- result.add(excelpath);
- //zip压缩下载
- DownloadZip.downloadZip(response,request,result,path);
- return null;
- }
-
- public List<PageData> setExcelData(PageData param) throws Exception {
- List<PageData> result = new ArrayList<PageData>();
- PageData data = new PageData();
- if (param.get("TABLETYPE").equals("monthly_scientific_project_completion")) {
- param.put("subtable", "highway_scientific_project_dettable");
- data.put("modelName", "科研项目月度完成情况");
- data.put("keyStr", "num,PROJECT_NAME,CATEGORY,CONTENT,PROJECT_COST,AUDIT_FEE,MATTER_YEAR,MATTER_NEW_CARRY,MATTER_CONSULT"
- + ",ACTUAL_COST_1,PAY_COST_1,RATIO_1,ACTUAL_COST_2,PAY_COST_2,RATIO_2,ACTUAL_COST_3,PAY_COST_3,RATIO_3"
- + ",ACTUAL_COST_4,PAY_COST_4,RATIO_4,ACTUAL_COST_5,PAY_COST_5,RATIO_5,ACTUAL_COST_6,PAY_COST_6,RATIO_6"
- + ",ACTUAL_COST_7,PAY_COST_7,RATIO_7,ACTUAL_COST_8,PAY_COST_8,RATIO_8,ACTUAL_COST_9,PAY_COST_9,RATIO_9"
- + ",ACTUAL_COST_10,PAY_COST_10,RATIO_10,ACTUAL_COST_11,PAY_COST_11,RATIO_11,ACTUAL_COST_12,PAY_COST_12,RATIO_12"
- + ",ACTUAL_COST,PAY_COST,RATIO");
- String[][] funcArry = {
- {"percent","RATIO_1","IF(ISERROR((L#row#/G#row#)),\"\",(L#row#/G#row#))"}
- ,{"percent","RATIO_2","IF(ISERROR((O#row#/G#row#)),\"\",(O#row#/G#row#))"}
- ,{"percent","RATIO_3","IF(ISERROR((R#row#/G#row#)),\"\",(R#row#/G#row#))"}
- ,{"percent","RATIO_4","IF(ISERROR((U#row#/G#row#)),\"\",(U#row#/G#row#))"}
- ,{"percent","RATIO_5","IF(ISERROR((X#row#/G#row#)),\"\",(X#row#/G#row#))"}
- ,{"percent","RATIO_6","IF(ISERROR((AA#row#/G#row#)),\"\",(AA#row#/G#row#))"}
- ,{"percent","RATIO_7","IF(ISERROR((AD#row#/G#row#)),\"\",(AD#row#/G#row#))"}
- ,{"percent","RATIO_8","IF(ISERROR((AG#row#/G#row#)),\"\",(AG#row#/G#row#))"}
- ,{"percent","RATIO_9","IF(ISERROR((AJ#row#/G#row#)),\"\",(AJ#row#/G#row#))"}
- ,{"percent","RATIO_10","IF(ISERROR((AM#row#/G#row#)),\"\",(AM#row#/G#row#))"}
- ,{"percent","RATIO_11","IF(ISERROR((AP#row#/G#row#)),\"\",(AP#row#/G#row#))"}
- ,{"percent","RATIO_12","IF(ISERROR((AS#row#/G#row#)),\"\",(AS#row#/G#row#))"}
- ,{"sum","ACTUAL_COST","SUM(K#row#,N#row#,Q#row#,T#row#,W#row#,Z#row#,AC#row#,AF#row#,AI#row#,AL#row#,AO#row#,AR#row#)"}
- ,{"sum","PAY_COST","SUM(L#row#,O#row#,R#row#,U#row#,X#row#,AA#row#,AD#row#,AG#row#,AJ#row#,AM#row#,AP#row#,AS#row#)"}
- ,{"percent","RATIO","IF(ISERROR((AV#row#/G#row#)),\"\",(AV#row#/G#row#))"}
- };
- data.put("funcArry", funcArry);
- data.put("tabletype", 3);
- data.put("totalRange", 4);
- data.put("startRowIndex", 3);
- }
- List<PageData> list = kyxmmonthProgressService.getReportInfo(param);
- data.put("list", list);
- data.put("pd", param);
- result.add(data);
- return result;
- }
- }
|