Skip to content
DriversManageController.java 6.18 KiB
Newer Older
杨郁彬's avatar
杨郁彬 committed
package com.cesgroup.bdc.driverManage.controller;


import cn.hutool.core.date.DateUtil;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import cn.hutool.poi.excel.StyleSet;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cesgroup.bdc.driverManage.entity.DriversManage;
import com.cesgroup.bdc.driverManage.service.IDriversManageService;
import com.cesgroup.bdc.logs.entity.LogType;
import com.cesgroup.bdc.util.CuiPage;
import com.cesgroup.bdc.util.DownloadUtil;
import com.cesgroup.bdc.util.PageVo;
import com.cesgroup.bdc.util.PrimaryKey;
import com.cesgroup.kingkong.web.BaseServiceController;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 硬件设备录入 前端控制器
 * </p>
 *
 * @author ChenKai
 * @since 2019-07-29
 */

@Controller
@RequestMapping("/driverManage")
public class DriversManageController extends BaseServiceController<DriversManage, IDriversManageService> {


    @RequestMapping("/index")
    public ModelAndView index() {
        ModelAndView mv = new ModelAndView("manageRecord/driverManageList");
        return mv;
    }

    @RequestMapping("/queryList")
    @ResponseBody
    public PageVo queryList(CuiPage<DriversManage> pager) {
        QueryWrapper<DriversManage> driversManage = new QueryWrapper<>();
        IPage<DriversManage> page = getBaseService().page(pager, driversManage);
        PageVo<DriversManage> pv = PageVo.<DriversManage>convertFromMybatisplusPage(page);
        return pv;
    }


    @RequestMapping("/add")
    public ModelAndView add() {
        ModelAndView mv = new ModelAndView("manageRecord/add");
        return mv;
    }


    @RequestMapping("/addNew")
    @ResponseBody
    public boolean addNew(DriversManage driversManage) {
        driversManage.setId(PrimaryKey.generateId());
        driversManage.setCreateTime(new Date());
        boolean flag = getBaseService().save(driversManage);
        return flag;
    }

    @RequestMapping("/edit")
    public ModelAndView edit(String id) {
        ModelAndView mv = new ModelAndView("manageRecord/edit");
        mv.addObject("id", id);
        return mv;
    }


    @RequestMapping("/loadById")
    @ResponseBody
    public DriversManage loadById(String id) {
        return getBaseService().getById(id);
    }

    @RequestMapping("/updateById")
    @ResponseBody
    public boolean updateById(DriversManage driversManage) {
        UpdateWrapper<DriversManage> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("ID", driversManage.getId());
        boolean flag = getBaseService().update(driversManage, updateWrapper);
        return flag;
    }


    @RequestMapping("/removeDrivers")
    @ResponseBody
    public boolean removeDrivers(String ids) {
        try {
            if (StringUtils.isNotBlank(ids)) {
                String[] idsArr = ids.split(",");

                for (String id : idsArr
                ) {
                    getBaseService().removeById(id);
                }
                return true;
            } else {
                throw new RuntimeException("ids不能为空!");
            }

        } catch (Exception e) {
            throw new RuntimeException("删除失败!");
        }


    }


    @RequestMapping("/queryList/exp")
    @ResponseBody
    public void toQueryExp(DriversManage driversManage,HttpServletRequest request, HttpServletResponse response) {
        ServletOutputStream sos = null;
        try {
            QueryWrapper<DriversManage> queryWrapper = new QueryWrapper<>();

            List<DriversManage> driverList = getBaseService().list(queryWrapper);

            ExcelWriter writer = ExcelUtil.getWriter(true);
            StyleSet styleSet = writer.getStyleSet();
            styleSet.setBorder(BorderStyle.THIN, IndexedColors.BLACK);
            writer.setColumnWidth(-1, 30);
            writer.setColumnWidth(0, 6);
            writer.setColumnWidth(2, 60);
            writer.setColumnWidth(3, 60);
            //writer.setRowHeight(-1, 25);

            List<List<String>> rowList = new ArrayList<>();

            List<String> head = new ArrayList<>();
            head.add("序号");
            head.add("序列号");
            head.add("MAC地址");
            head.add("IP");
            head.add("单位");
            head.add("用途");
            head.add("用户");
            rowList.add(head);

            int i = 0;
            for (DriversManage m : driverList) {
                i++;
                List<String> row = new ArrayList<>();
                row.add(i + "");//序号
                row.add(m.getManageNumb());//序列号
                row.add(m.getMacAddress());//MAC地址
                row.add(m.getIp());//IP
                row.add(m.getDeptName());//单位
                row.add(m.getUses());//用途
                row.add(m.getUserName());//用户
                rowList.add(row);
            }
            String fileName = "硬件设备录入" + DateUtil.today() + ".xlsx";
            sos = response.getOutputStream();
            response.setStatus(200);
            //response.setContentType("application/x-msdownload");
            //response.setContentType("application/vnd.ms-excel;charset=utf-8");
            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            response.setHeader("Content-Disposition", DownloadUtil.getContentDisposition(request, fileName));
            writer.write(rowList);
            writer.flush(sos);
            writer.close();
            //sos.flush();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}