package cn.yw.nhyw.nhywjtledydpgl.action;

import cn.base.aspect.OperateType;
import cn.base.bean.BaseAction;
import cn.base.util.*;
import cn.bsystem.ptuserrole.model.PtyhBean;
import cn.yw.nhyw.nhywjtledydpgl.service.NhywjtledydpglService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@SuppressWarnings({"all"})
@Component("nhywjtledydpglAction")
public class NhywjtledydpglAction extends BaseAction {
    private static final long serialVersionUID = 1L;
    private static Logger iLog = Logger.getLogger(NhywjtledydpglAction.class);

    @Autowired
    private NhywjtledydpglService service;

    /**
     * 分页
     */
    @OperateType(value = LogConstants.LOG_QUERY, info = "listNhywjtledydpglByPage")
    public void listNhywjtledydpglByPage() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            int page = Integer.parseInt(Struts2Utils.getParameter("page"));
            int rows = Integer.parseInt(Struts2Utils.getParameter("rows"));
            int start = ((page == 0 ? 1 : page) - 1) * rows;
            map.put("start", start);
            map.put("limit", rows);
            Struts2Utils.renderJson(this.service.listNhywjtledydpglByPage(map));
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywjtledydpglAction-listNhywjtledydpglByPage-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    /**
     * 查询总数
     */
	/*
	//@OperateType(value = LogConstants.LOG_QUERY ,info ="count_Nhywjtledydpgl")
	public void count_Nhywjtledydpgl(){
		Map map = Struts2Utils.getRequestParameterMap();
		try {
			Struts2Utils.renderJson(this.service.count_Nhywjtledydpgl(map));
		} catch (Exception e) {
			e.printStackTrace();
			iLog.error("NhywjtledydpglAction-count_Nhywjtledydpgl-error:" +e);
			Struts2Utils.renderJson(null);
		}
	}
	*/

    /**
     * 查询 Nhywjtledydpgl
     */
    @OperateType(value = LogConstants.LOG_GET, info = "query_Nhywjtledydpgl")
    public void query_Nhywjtledydpgl() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            Struts2Utils.renderJson(this.service.query_AllNhywjtledydpgl(map));
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywjtledydpglAction-query_Nhywjtledydpgl-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    /**
     * 查询 一条Nhywjtledydpgl
     */
    @OperateType(value = LogConstants.LOG_GET, info = "get_Nhywjtledydpgl")
    public void get_Nhywjtledydpgl() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            Struts2Utils.renderJson(this.service.get_Nhywjtledydpgl(map));
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywjtledydpglActionquery_Nhywjtledydpgl-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    /**
     * 删除
     */
    @OperateType(value = LogConstants.LOG_DELETE, info = "deleteNhywjtledydpgl")
    public void delete_Nhywjtledydpgl() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            if (!CommUtils.isEmpty(map)) {
                int result = service.delete_Nhywjtledydpgl(map);
                Struts2Utils.renderJson(Constants.SUCCESS);
            } else {
                throw new Exception("请正确的选择删除记录!!!");
            }
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywjtledydpglAction-delete_Nhywjtledydpgl-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    /**
     * 插入
     */
    @OperateType(value = LogConstants.LOG_ADD, info = "insert_Nhywjtledydpgl")
    public void insert_Nhywjtledydpgl() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            if (StringUtil.checkEmpty(map.get("xh"))) {
                map.put("xh", StringUtil.getUUID());
            }
            if (!StringUtil.checkEmpty(map.get("checkparam"))) {
                Map sMap = new HashMap();
                sMap.put("tableparam", map.get("checkparam"));
                List ls = service.query_Nhywjtledydpgl(sMap);
                if (!StringUtil.checkEmpty(ls) || ls.size() > 0) {
                    Struts2Utils.renderJson(Constants.SAME);
                } else {
                    service.insert_Nhywjtledydpgl(map);
                    Struts2Utils.renderJson(Constants.SUCCESS);
                }
            } else {
                service.insert_Nhywjtledydpgl(map);
                Struts2Utils.renderJson(Constants.SUCCESS);
            }
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywjtledydpglAction-insert_Nhywjtledydpgl()-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    /**
     * 修改
     */
    @OperateType(value = LogConstants.LOG_UPDATE, info = "update_Nhywjtledydpgl")
    public void update_Nhywjtledydpgl() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            if (!StringUtil.checkEmpty(map.get("checkparam"))) {
                Map sMap = new HashMap();
                sMap.put("tableparam", map.get("checkparam"));
                List ls = service.query_Nhywjtledydpgl(sMap);
                if (!StringUtil.checkEmpty(ls) || ls.size() > 0) {
                    Struts2Utils.renderJson(Constants.SAME);
                } else {
                    int result = service.update_Nhywjtledydpgl(map);
                    Struts2Utils.renderJson(Constants.SUCCESS);
                }
            } else {
                int result = service.update_Nhywjtledydpgl(map);
                Struts2Utils.renderJson(Constants.SUCCESS);
            }
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywjtledydpglAction-update_Nhywjtledydpgl-error: " + e);
            Struts2Utils.renderJson(null);
        }
    }
    /**
     * 修改备注及repairstate
     */
    @OperateType(value = LogConstants.LOG_UPDATE, info = "update_NhywjtledydpglRemarks")
    public void update_NhywjtledydpglRemarks() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            if(RHUtil.isNotEmpty(map.get("bz"))&& map.get("bz").toString().contains("survey")){
                map.put("repairstate",900);
                map.put("state",1);
            }
            int result = service.update_NhywjtledydpglRemarks(map);
            Struts2Utils.renderJson(Constants.SUCCESS);
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywjtledydpglAction-update_NhywjtledydpglRemarks-error: " + e);
            Struts2Utils.renderJson(null);
        }
    }



    /**
     * 修改经纬度
     */
    @OperateType(value = LogConstants.LOG_UPDATE, info = "updateJtydpJdWdByXh")
    public void updateJtydpJdWdByXh() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            if (!StringUtil.checkEmpty(map.get("checkparam"))) {
                Map sMap = new HashMap();
                sMap.put("tableparam", map.get("checkparam"));
                List ls = service.query_Nhywjtledydpgl(sMap);
                if (!StringUtil.checkEmpty(ls) || ls.size() > 0) {
                    Struts2Utils.renderJson(Constants.SAME);
                } else {
                    int result = service.updateJtydpJdWdByXh(map);
                    Struts2Utils.renderJson(Constants.SUCCESS);
                }
            } else {
                int result = service.updateJtydpJdWdByXh(map);
                Struts2Utils.renderJson(Constants.SUCCESS);
            }
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywjtledydpglAction-updateJtydpJdWdByXh-error: " + e);
            Struts2Utils.renderJson(null);
        }
    }

    /**
     * 批量删除
     */
	/*
	@OperateType(value = LogConstants.LOG_DELETE ,info ="batch_delete_Nhywjtledydpgl")
	public void batch_delete_Nhywjtledydpgl(){
		Map map = Struts2Utils.getRequestParameterMap();
		try {
			Map m = new HashMap();
			m.put("keyword", map.get("keyword").toString());
			int result = service.batch_delete_Nhywjtledydpgl(m);
			Struts2Utils.renderJson(Constants.SUCCESS);
		} catch (Exception e) {
			e.printStackTrace();
			iLog.error("NhywjtledydpglAction-batch_delete_Nhywjtledydpgl-error:" +e);
			Struts2Utils.renderJson(null);
		}
	}
	*/

    /**
     * 导出Excel
     */
	/*
	//@OperateType(value = LogConstants.LOG_EXPORT ,info ="exp_Nhywjtledydpgl")
	public void exp_Nhywjtledydpgl(){
		try {
			Map map = Struts2Utils.getRequestParameterMap();
			map.put("start",0 );
			map.put("limit",5000);
			List<Map> sList = service.query_Nhywjtledydpgl(map);		
			List<HashMap> expList = new ArrayList<HashMap>();
			for(Map m : sList){
				Map exportMap = new HashMap();
				exportMap.put("yhzh", m.get("yhzh"));
				expList.add((HashMap) exportMap);
			}
			int excelNum = 2;
			ExcelCol[] cells = new ExcelCol[excelNum];
			String[] zdbm = {"yhzh", "yhmc",};
			String[] zdmc = {"用户账号", "用户名称"};
			for(int i=0;i<excelNum;i++){
				cells[i] = new ExcelCol();
				cells[i].setColKey(zdbm[i]);
				cells[i].setColName(zdmc[i]);
			}		
			SimpleDateFormat formart = new SimpleDateFormat("yyyy-MM-dd");   
        	String dateTime=formart.format(new Date()); 
			Map params = new HashMap();
			params.put("fileName", "交通LED诱导屏管理-"+dateTime);
			params.put("sheetName", "交通LED诱导屏管理");
			params.put("header", "交通LED诱导屏管理");	
			new ExportEngine().exportCommData(params, cells, (ArrayList)map.get("rows"), Struts2Utils.getResponse());
		} catch (Exception e) {
			e.printStackTrace();
			iLog.error("NhywjtledydpglAction-exoprtExcel-error:" +e);
			
		}
	}
	*/

    /**
     * 导入Excel
     */
	/*
	//@OperateType(value = LogConstants.LOG_IMPORT ,info ="imp_Nhywjtledydpgl")
	public String imp_Nhywjtledydpgl(String excelFile,Object user) {
		String rs = "导入格式有误!";
		int rowNum = 0;
		int dataCount = 0;
		int successNum = 0;
		int repeatNum = 0;
		int failNum = 0;
		try {
		
			ExcelReader readExcel = new ExcelReader();
			readExcel.openFile(excelFile);
			readExcel.setSheetNum(0);
			int count = readExcel.getRowCount();
			iLog.info("总行数count--->" + count);
			rs = " 导入数据成功！总共"+ dataCount +"条数据,重复"+repeatNum+"条数据！失败"+failNum+"条数据!";
			File file = new File(excelFile);
			if(file.exists()){
				file.delete();
			}
		} catch (Exception e) {
			if (rowNum > 3) {
				rs = "资源部分导入(更新)失败！Excel第" + rowNum + "行起未导入(更新)成功！";
			} else {
				rs = "资源导入(更新)失败！";
			}
			iLog.error("NhywjtledydpglAction-imp_Nhywjtledydpgl-error:" +e);
			e.printStackTrace();
		}		
		return rs;
	}
	*/

    /**
     * led在线率统计
     */
    @OperateType(value = LogConstants.LOG_GET, info = "statisticsYDPOnlineRate")
    public void statisticsYDPOnlineRate() {
        try {
            Struts2Utils.renderJson(this.service.statisticsYDPOnlineRate());
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywjtledydpglAction-statisticsYDPOnlineRate-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    @OperateType(value = LogConstants.LOG_GET, info = "listNhywjtledydpglStatusByPage")
    public void listNhywjtledydpglStatusByPage() {
        try {
            Map map = Struts2Utils.getRequestParameterMap();
            int page = Integer.parseInt(Struts2Utils.getParameter("page"));
            int rows = Integer.parseInt(Struts2Utils.getParameter("rows"));
            int start = ((page == 0 ? 1 : page) - 1) * rows;
            map.put("start", start);
            map.put("limit", rows);
            Struts2Utils.renderJson(this.service.listNhywjtledydpglStatusByPage(map));
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywjtledydpglAction-listNhywjtledydpglStatusByPage-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    @OperateType(value = LogConstants.LOG_GET, info = "listNhywjtledydpglUnonlineStatusByPage")
    public void listNhywjtledydpglUnonlineStatusByPage() {
        try {
            Map map = Struts2Utils.getRequestParameterMap();
            int page = Integer.parseInt(Struts2Utils.getParameter("page"));
            int rows = Integer.parseInt(Struts2Utils.getParameter("rows"));
            int start = ((page == 0 ? 1 : page) - 1) * rows;
            map.put("start", start);
            map.put("limit", rows);
            Struts2Utils.renderJson(this.service.listNhywjtledydpglStatusByPageUnonline(map));
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywjtledydpglAction-listNhywjtledydpglStatusByPage-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }


    //查询历史巡检记录
    @OperateType(value = LogConstants.LOG_QUERY, info = "listYwydphistorystateByPage")
    public void listYwydphistorystateByPage() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            int page = Integer.parseInt(Struts2Utils.getParameter("page"));
            int rows = Integer.parseInt(Struts2Utils.getParameter("rows"));
            int start = ((page == 0 ? 1 : page) - 1) * rows;
            map.put("start", start);
            map.put("limit", rows);
            Struts2Utils.renderJson(this.service.listYwydphistorystateByPage(map));
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywjtledydpglAction-listYwydphistorystateByPage-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    @OperateType(value = LogConstants.LOG_QUERY, info = "listYwydpstatusinfoByPage")
    public void listYwydpstatusinfoByPage() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            int page = Integer.parseInt(Struts2Utils.getParameter("page"));
            int rows = Integer.parseInt(Struts2Utils.getParameter("rows"));
            int start = ((page == 0 ? 1 : page) - 1) * rows;
            map.put("start", start);
            map.put("limit", rows);
            if (map.get("TaskMachine").equals("1")) {
                Struts2Utils.renderJson(this.service.listYwydpstatusinfoByPage(map));
            } else {
                Struts2Utils.renderJson(this.service.get_YwNoTaskydpstatusinfo(map));
            }
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywjtledydpglAction-listYwydpstatusinfoByPage-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    // 更新
    @OperateType(value = LogConstants.LOG_UPDATE, info = "edit_Ywydpinfo")
    public void edit_Ywydpinfo() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            String username = ((PtyhBean) Struts2Utils.getSession().getAttribute("userInfo")).getYhbh();
            String time = DateUtil.getDateTimeStr(new Date());
            map.put("modifyaccount", username);
            map.put("modifytime", time);
            String ids = (String) map.get("ids");
            if (RHUtil.isNotEmpty(ids)) {
                String[] keys = ids.split(",");
                map.put("keys", keys);
            }
            int result = service.edit_Ywydpinfo(map);
            Struts2Utils.renderJson(Constants.SUCCESS);
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("YwmachineinfoAction-edit_Ywmachineinfo-error: " + e);
            Struts2Utils.renderJson(null);
        }
    }

    @OperateType(value = LogConstants.LOG_QUERY, info = "listYwAllydpstatusinfo")
    public void listYwAllydpstatusinfo() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            int page = Integer.parseInt(Struts2Utils.getParameter("page"));
            int rows = Integer.parseInt(Struts2Utils.getParameter("rows"));
            int start = ((page == 0 ? 1 : page) - 1) * rows;
            map.put("start", start);
            map.put("limit", rows);
            Struts2Utils.renderJson(this.service.listYwAllydpstatusinfo(map));

        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywjtledydpglAction-listYwAllydpstatusinfo-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }


}
