package com.gunshi.project.xyt.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gunshi.core.result.R; import com.gunshi.project.xyt.entity.vo.OsmoticWaterRVo; import com.gunshi.project.xyt.listener.OsmoticWaterRImportListener; import com.gunshi.project.xyt.model.OsmoticWaterR; import com.gunshi.project.xyt.service.OsmoticWaterRService; import com.gunshi.project.xyt.util.ConvertUtil; import com.gunshi.project.xyt.util.DateUtil; import com.gunshi.project.xyt.util.ExcelUtil; import com.gunshi.project.xyt.util.ResultJson; import com.gunshi.project.xyt.util.excel.ExcelResult; import com.gunshi.project.xyt.validate.markers.Insert; import com.gunshi.project.xyt.validate.markers.Update; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.Serializable; import java.util.ArrayList; import java.util.List; /** * 描述: 水质采样记录表 * author: xusan * date: 2024-07-08 17:40:37 */ @Tag(name = "水质采样记录表") @RestController @RequestMapping(value="/osmoticWaterR") public class OsmoticWaterRController { @Autowired private OsmoticWaterRService service; @Operation(summary = "新增") @PostMapping("/insert") public R insert(@Validated(Insert.class) @RequestBody OsmoticWaterR dto) { boolean result = service.save(dto); return R.ok(result ? dto : null); } @Operation(summary = "修改") @PostMapping("/update") public R update(@Validated(Update.class) @RequestBody OsmoticWaterR dto) { boolean result = service.updateById(dto); return R.ok(result ? dto : null); } @Operation(summary = "删除") @GetMapping("/del/{id}") public R del(@Schema(name = "id") @PathVariable("id") Serializable id) { return R.ok(service.removeById(id)); } @Operation(summary = "获取最新一条数据") @PostMapping("/getLastData") public R getLastData() { QueryWrapper qw = new QueryWrapper<>(); qw.orderBy(true, false, "tm"); OsmoticWaterR result = service.getOne(qw); return R.ok(result); } @Operation(summary = "列表") @PostMapping("/list") public R> list(@RequestBody @Validated OsmoticWaterR osmoticWaterR) { QueryWrapper wrapper = new QueryWrapper() .ge(ObjectUtils.isNotNull(osmoticWaterR.getStartTime()), "tm", osmoticWaterR.getStartTime()) .le(ObjectUtils.isNotNull(osmoticWaterR.getEndTime()), "tm", osmoticWaterR.getEndTime()); if(StringUtils.isNotBlank(osmoticWaterR.getSortField())){ wrapper.orderBy(true, ObjectUtils.isEmpty(osmoticWaterR.getIsAsc()) ? false : osmoticWaterR.getIsAsc(), osmoticWaterR.getSortField()); } return R.ok(service.list(wrapper)); } @Operation(summary = "分页") @PostMapping("/page") public R> page(@RequestBody @Validated OsmoticWaterR osmoticWaterR) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.ge(ObjectUtils.isNotNull(osmoticWaterR.getStartTime()), "tm", osmoticWaterR.getStartTime()) .le(ObjectUtils.isNotNull(osmoticWaterR.getEndTime()), "tm", osmoticWaterR.getEndTime()); if(StringUtils.isNotBlank(osmoticWaterR.getSortField())){ wrapper.orderBy(true, ObjectUtils.isEmpty(osmoticWaterR.getIsAsc()) ? false : osmoticWaterR.getIsAsc(), osmoticWaterR.getSortField()); } return R.ok(service.page(osmoticWaterR.getPageSo().toPage(), wrapper)); } /** * 获取导入模板 */ @Operation(summary = "获取导入模板") @PostMapping("/importTemplate") public void importTemplate(HttpServletResponse response) { ExcelUtil.exportExcel(new ArrayList<>(), "水质整编表", OsmoticWaterRVo.class, response, "水质整编表"); } /** * 导入数据 * * @param file 导入文件 * */ @Operation(summary = "导入数据") @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public ResultJson importData(@RequestPart("file") MultipartFile file) throws Exception { ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), OsmoticWaterRVo.class, new OsmoticWaterRImportListener()); return ResultJson.ok(result.getAnalysis()); } @Operation(summary = "导出") @PostMapping("/exportOsmoticWaterRDataExcel") @CrossOrigin public void exportOsmoticWaterRDataExcel(@RequestBody @Validated OsmoticWaterR osmoticWaterR, HttpServletResponse response) { String filename = "水质整编表"; if (ObjectUtils.isNotEmpty(osmoticWaterR.getStartTime())) { filename.concat("_").concat(DateUtil.convertDateToString(osmoticWaterR.getStartTime())); } if (ObjectUtils.isNotEmpty(osmoticWaterR.getStartTime())) { filename.concat("_").concat(DateUtil.convertDateToString(osmoticWaterR.getEndTime())); } List vos = ConvertUtil.entityToVoList(this.list(osmoticWaterR).getData(), OsmoticWaterRVo.class); ExcelUtil.exportExcel(vos, filename, OsmoticWaterRVo.class, response, "水质整编表"); } }