package org.springblade.modules.equipage.controller; import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.apache.commons.codec.Charsets; import org.springblade.common.excel.RowWriteHandler; import org.springblade.common.utils.arg; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.modules.FTP.FtpUtil; import org.springblade.modules.equipage.entity.Car; import org.springblade.modules.equipage.excel.CarExcel; import org.springblade.modules.equipage.excel.CarImporter; import org.springblade.modules.equipage.service.CarService; import org.springblade.modules.equipage.vo.CarVo; import org.springblade.modules.system.service.MyAsyncService; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * @author zhongrj * @time 2021-07-06 * @desc 车辆控制层 */ @RestController @AllArgsConstructor @RequestMapping("/car") public class CarController { private final CarService carService; private final MyAsyncService myAsyncService; /** * 自定义分页 * * @param query page,size * @param car 车辆信息对象 */ @GetMapping("/page") public R> page(CarVo car, Query query) { IPage pages = carService.selectCarPage(Condition.getPage(query), car); return R.data(pages); } /** * 新增 * * @param car 车辆信息对象 */ @PostMapping("/save") @ApiOperation(value = "新增", notes = "传入car") public R save(@RequestBody Car car) { return R.status(carService.save(car)); } /** * 修改 * * @param car 车辆信息对象 */ @PostMapping("/update") public R update(@RequestBody Car car) { return R.status(carService.updateById(car)); } /** * 新增或修改 * * @param car 车辆信息对象 */ @PostMapping("/submit") public R submit(@RequestBody Car car) throws Exception { boolean status = false; if (null == car.getId()) { car.setDateForProduction(new Date()); //新增 status = carService.save(car); if (status) { //数据同步 String s1 = "insert into sys_car(id,car_number,number_type,car_type,dept_id," + "person_in_charge,brand,date_for_production,umweltsatz,mode,jurisdiction) " + "values(" + "'" + car.getId() + "'" + "," + "'" + car.getCarNumber() + "'" + "," + "'" + car.getNumberType() + "'" + "," + "'" + car.getCarType() + "'" + "," + "'" + car.getDeptId() + "'" + "," + "'" + car.getPersonInCharge() + "'" + "," + "'" + car.getBrand() + "'" + "," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(car.getDateForProduction()) + "'" + "," + "'" + car.getUmweltsatz() + "'" + "," + "'" + car.getMode() + "'" + "," + "'" + car.getJurisdiction() + "'" + ")"; myAsyncService.dataSync(s1); } } else { //修改 status = carService.updateById(car); if (status) { //内网同步 String s1 = "update sys_car set car_number = " + "'" + car.getCarNumber() + "'" + ",number_type = " + "'" + car.getNumberType() + "'" + ",car_type = " + "'" + car.getCarType() + "'" + ",dept_id = " + "'" + car.getDeptId() + "'" + ",person_in_charge = " + "'" + car.getPersonInCharge() + "'" + ",brand = " + "'" + car.getBrand() + "'" + ",date_for_production = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(car.getDateForProduction()) + "'" + ",umweltsatz = " + "'" + car.getUmweltsatz() + "'" + ",mode = " + "'" + car.getMode() + "'" + ",jurisdiction = " + "'" + car.getJurisdiction() + "'" + " " + "where id = " + "'" + car.getId() + "'"; myAsyncService.dataSync(s1); } } return R.status(status); } /** * 删除 * * @param ids 车辆信息ids 数组 */ @PostMapping("/remove") public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { //内网删除 List list = Func.toLongList(ids); list.forEach(id -> { //内网同步 String s1 = "delete from sys_car where id = " + "'" + id + "'"; myAsyncService.dataSync(s1); }); return R.status(carService.removeByIds(Func.toLongList(ids))); } /** * 详情 * * @param car 车辆信息对象 */ @GetMapping("/detail") @ApiOperation(value = "详情", notes = "传入car") public R detail(Car car) { CarVo detail = carService.selectCarInfo(car); return R.data(detail); } /** * 导入车辆信息, excel */ @PostMapping("import-car") public R importCar(MultipartFile file, Integer isCovered, String deptId) { CarImporter carImporter = new CarImporter(carService, false, deptId); ExcelUtil.save(file, carImporter, CarExcel.class); return R.success("操作成功"); } /** * 车辆导出模板 */ @GetMapping("export-template-car") @ApiOperation(value = "导出模板") public void exportSecurity(HttpServletResponse response) throws IOException { List list = new ArrayList<>(); CarExcel carExcel1 = new CarExcel(); carExcel1.setDeptId("xxx保安公司"); carExcel1.setBrand("****"); carExcel1.setCarNumber("赣A415225"); carExcel1.setMode("X54512545"); carExcel1.setPersonInCharge("张三"); carExcel1.setUmweltsatz("国IV"); list.add(carExcel1); String fileName = null; try { response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding(org.apache.commons.codec.Charsets.UTF_8.name()); fileName = URLEncoder.encode("车辆导入数据模板" + DateUtil.time(), Charsets.UTF_8.name()); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); //修改单元格格式为文本格式 EasyExcel.write(response.getOutputStream(), CarExcel.class).sheet("车辆数据表").registerWriteHandler(new RowWriteHandler()).doWrite(list); } catch (Throwable var6) { throw var6; } } }