package cn.yw.xhd.action;

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

import java.util.*;

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

    @Autowired
    private NhywledydpxjbService service;

    /**
     * 分页
     */
    @OperateType(value = LogConstants.LOG_QUERY, info = "listNhywledydpxjbByPage")
    public void listNhywledydpxjbByPage() {
        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.listNhywledydpxjbByPage(map));
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywledydpxjbAction-listNhywledydpxjbByPage-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    /**
     * 查询已经加入巡检的设备
     */
    @OperateType(value = LogConstants.LOG_QUERY, info = "listNhywledydpxjbtaskByPage")
    public void listNhywledydpxjbtaskByPage() {
        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.listNhywledydpxjbtaskByPage(map));
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywledydpxjbAction-listNhywledydpxjbMy-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }


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

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

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

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

    /**
     * 插入
     */
    @OperateType(value = LogConstants.LOG_ADD, info = "insert_Nhywledydpxjb")
    public void insert_Nhywledydpxjb() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            if (StringUtil.checkEmpty(map.get("id"))) {
                map.put("id", StringUtil.getUUID());
            }
            String username = ((PtyhBean) Struts2Utils.getSession().getAttribute("userInfo")).getYhzh();
            map.put("create_user", username);
            map.put("create_time", DateUtil.currentDateTime());
            //map.put("detectionstarttime", DateUtil.currentDateTime());

            if (!StringUtil.checkEmpty(map.get("checkparam"))) {
                Map sMap = new HashMap();
                sMap.put("tableparam", map.get("checkparam"));
                List ls = service.query_Nhywledydpxjb(sMap);
                if (!StringUtil.checkEmpty(ls) || ls.size() > 0) {
                    Struts2Utils.renderJson(Constants.SAME);
                } else {
                    service.insert_Nhywledydpxjb(map);
                    Struts2Utils.renderJson(Constants.SUCCESS);
                }
            } else {
                service.insert_Nhywledydpxjb(map);
                Struts2Utils.renderJson(Constants.SUCCESS);
            }
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywledydpxjbAction-insert_Nhywledydpxjb()-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    /**
     * 修改
     */
    @OperateType(value = LogConstants.LOG_UPDATE, info = "update_Nhywledydpxjb")
    public void update_Nhywledydpxjb() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            String username = ((PtyhBean) Struts2Utils.getSession().getAttribute("userInfo")).getYhzh();

            if (!StringUtil.checkEmpty(map.get("checkparam"))) {
                Map sMap = new HashMap();
                sMap.put("tableparam", map.get("checkparam"));
                List ls = service.query_Nhywledydpxjb(sMap);
                if (!StringUtil.checkEmpty(ls) || ls.size() > 0) {
                    Struts2Utils.renderJson(Constants.SAME);
                } else {
                    int result = service.update_Nhywledydpxjb(map);
                    Struts2Utils.renderJson(Constants.SUCCESS);
                }
            } else {
                int result = service.update_Nhywledydpxjb(map);
                Struts2Utils.renderJson(Constants.SUCCESS);
            }
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywledydpxjbAction-update_Nhywledydpxjb-error: " + e);
            Struts2Utils.renderJson(null);
        }
    }

    /**
     * 删除任务集合
     */
    @OperateType(value = LogConstants.LOG_UPDATE, info = "delete_channelset_Nhywledydpxjb")
    public void delete_channelset_Nhywledydpxjb() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            if (StringUtil.isEmpty((String) map.get("taskid"))) {
                Struts2Utils.renderJson(Constants.FAIL);
                return;
            }
            String username = ((PtyhBean) Struts2Utils.getSession().getAttribute("userInfo")).getYhzh();
            map.put("modifyaccount", username);
            map.put("modifytime", DateUtil.currentDateTime());

            int result = service.delete_channelset_Nhywledydpxjb(map);
            Struts2Utils.renderJson(Constants.SUCCESS);
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywledydpxjbAction-delete_channelset_Nhywledydpxjb-error: " + e);
            Struts2Utils.renderJson(null);
        }
    }

    /**
     * 批量删除
     */
    @OperateType(value = LogConstants.LOG_DELETE, info = "batch_delete_Nhywledydpxjb")
    public void batch_delete_Nhywledydpxjb() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            String keyword = map.get("keyword").toString();
            if (StringUtil.isEmpty(keyword)) {
                Struts2Utils.renderJson(null);
                return;
            } else {
                List<String> lists = new ArrayList<String>();
                String[] ids = keyword.split(",");
                for (int i = 0; i < ids.length; i++) {
                    lists.add(ids[i]);
                }
                if (lists != null && lists.size() > 0) {

                    service.batch_delete_Nhywledydpxjb(lists);
                }
                Struts2Utils.renderJson(Constants.SUCCESS);
            }
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywledydpxjbAction-batch_delete_Nhywledydpxjb-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    /**
     * 批量更新
     */
    @OperateType(value = LogConstants.LOG_DELETE, info = "batch_update_Nhywledydpxjb")
    public void batch_update_Nhywledydpxjb() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            String keyword = map.get("keyword").toString();
            if (StringUtil.isEmpty(keyword)) {
                Struts2Utils.renderJson(null);
                return;
            } else {
//				List<String> lists = new ArrayList<String>();
                String[] ids = keyword.split(",");
//				for(int i=0;i<ids.length;i++){
//					lists.add(ids[i]);
//				}
//				if(lists!=null && lists.size()>0){
                if (ids != null && ids.length > 0) {
                    map.put("keyword", ids);
                    String username = ((PtyhBean) Struts2Utils.getSession().getAttribute("userInfo")).getYhzh();
                    map.put("modifyaccount", username);
                    map.put("modifytime", DateUtil.currentDateTime());
                    map.put("detectionstarttime", DateUtil.currentDateTime());
                    service.batch_update_Nhywledydpxjb(map);
                }
                Struts2Utils.renderJson(Constants.SUCCESS);
            }
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywledydpxjbAction-batch_delete_Nhywledydpxjb-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }


    @OperateType(value = LogConstants.LOG_QUERY, info = "listNhywxlydptaskByPage")
    public void listNhywxlydptaskByPage() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            Struts2Utils.renderJson(this.service.listNhywxlydptaskByPage(map));
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywledydpxjbAction-listnhywxhdxjtaskByPage-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    @OperateType(value = LogConstants.LOG_QUERY, info = "listNhywledydpxjbNotaskByPage")
    public void listNhywledydpxjbNotaskByPage() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            Struts2Utils.renderJson(this.service.listNhywledydpxjbNotaskByPage(map));
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywledydpxjbAction-listnhywxhdxjtaskByPage-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    //删除关联的设备id
    @OperateType(value = LogConstants.LOG_DELETE, info = "delete_Nhywxlydp")
    public void delete_Nhywxlydp() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            this.service.delete_Nhywxlydp(map);
            Struts2Utils.renderJson(Constants.SUCCESS);
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywledydpxjbAction-delete_Nhywxlydp-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    //批量删除关联的设备id
    @OperateType(value = LogConstants.LOG_DELETE, info = "batchdelete_Nhywxlydp")
    public void batchdelete_Nhywxlydp() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
            String ids = (String) map.get("keyword");
            if (RHUtil.isNotEmpty(ids)) {
                String[] keys = ids.split(",");
                map.put("ids", keys);
            }
            this.service.batchdelete_Nhywxlydp(map);
            Struts2Utils.renderJson(Constants.SUCCESS);
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywledydpxjbAction-batchdelete_Nhywxlydp-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }

    //批量新增关联的设备id
    @OperateType(value = LogConstants.LOG_DELETE, info = "batchinsert_Nhywxlydp")
    public void batchinsert_Nhywxlydp() {
        Map map = Struts2Utils.getRequestParameterMap();
        String keyword = map.get("keyword").toString();
        List maplist = new ArrayList<>();
        try {
            if (StringUtil.isEmpty(keyword)) {
                Struts2Utils.renderJson(null);
                return;
            } else {
                String[] ids = keyword.split(",");
                if (ids != null && ids.length > 0) {
                    for (String deviceid : ids) {
                        Map value = new HashMap();
                        value.put("id", StringUtil.getUUID());
                        value.put("deviceid", deviceid);
                        value.putAll(map);
                        maplist.add(value);
                    }
                    service.batchinsert_Nhywxlydp(maplist);

                }
            }
            Struts2Utils.renderJson(Constants.SUCCESS);
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("NhywledydpxjbAction-batchinsert_Nhywxlydp-error:" + e);
            Struts2Utils.renderJson(null);
        }
    }


    // 更新
    @OperateType(value = LogConstants.LOG_UPDATE, info = "edit_Nhywledydpxjb")
    public void edit_Nhywledydpxjb() {
        Map map = Struts2Utils.getRequestParameterMap();
        try {
             String ids = (String) map.get("ids");
            if (RHUtil.isNotEmpty(ids)) {
                String[] keys = ids.split(",");
                map.put("keys", keys);
            }
            int result = service.edit_Nhywledydpxjb(map);
            Struts2Utils.renderJson(Constants.SUCCESS);
        } catch (Exception e) {
            e.printStackTrace();
            iLog.error("nhywjtxhdglAction-edit_Ywmachineinfo-error: " + e);
            Struts2Utils.renderJson(null);
        }
    }

    /**
     * 导出Excel
     */
	/*
	//@OperateType(value = LogConstants.LOG_EXPORT ,info ="exp_Nhywledydpxjb")
	public void exp_Nhywledydpxjb(){
		try {
			Map map = Struts2Utils.getRequestParameterMap();
			map.put("start",0 );
			map.put("limit",5000);
			List<Map> sList = service.query_Nhywledydpxjb(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", "运维监控任务表-"+dateTime);
			params.put("sheetName", "运维监控任务表");
			params.put("header", "运维监控任务表");
			new ExportEngine().exportCommData(params, cells, (ArrayList)map.get("rows"), Struts2Utils.getResponse());
		} catch (Exception e) {
			e.printStackTrace();
			iLog.error("NhywledydpxjbAction-exoprtExcel-error:" +e);

		}
	}
	*/

    /**
     * 导入Excel
     */
	/*
	//@OperateType(value = LogConstants.LOG_IMPORT ,info ="imp_Nhywledydpxjb")
	public String imp_Nhywledydpxjb(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("NhywledydpxjbAction-imp_Nhywledydpxjb-error:" +e);
			e.printStackTrace();
		}		
		return rs;
	}
	*/
}
