package com.dy.pmsPlatform.station; import com.alibaba.excel.converters.Converter; import com.alibaba.fastjson2.JSON; import com.dy.common.aop.SsoPowerAop; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.pmsGlobal.aop.Log; import com.dy.pmsGlobal.pojoPlt.PltStation; import com.dy.pmsGlobal.util.QrCodeConstant; import com.dy.pmsGlobal.util.QrCodeUtil; import com.google.zxing.WriterException; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * 工站 */ @Slf4j @RestController @RequestMapping(path="station") @SuppressWarnings("unchecked") public class StationCtrl { private static final String fileName = "工站信息" ; private static final String sheetName = "工站信息" ; private StationSv sv; @Autowired public StationCtrl(StationSv sv){ this.sv = sv; } /** * 保存 * @param station * @return */ @PostMapping(path="save") @SsoPowerAop(power = "10300007") @Log("保存工站") public BaseResponse save(@RequestBody @Valid PltStation station){ station.deleted = false; int count = sv.save(station); if (count <= 0) { return BaseResponseUtils.buildFail("数据库存储失败"); } else { return BaseResponseUtils.buildSuccess(true); } } /** * 更新 * @param station * @return */ @PostMapping(path="update") @SsoPowerAop(power = "10300007") @Log("更新工站") public BaseResponse update(@RequestBody @Valid PltStation station){ int count = sv.update(station); if (count <= 0) { return BaseResponseUtils.buildFail("数据库存储失败"); } else { return BaseResponseUtils.buildSuccess(true); } } /** * 删除 * @param id * @return */ @GetMapping(path="delete") @SsoPowerAop(power = "10300007") @Log("删除工站") public BaseResponse delete(String id){ int count = sv.delete(Long.parseLong(id)); if (count <= 0) { return BaseResponseUtils.buildFail("数据库存储失败"); } else { return BaseResponseUtils.buildSuccess(true); } } /** * 根据ID查询 * @return */ @GetMapping(path="one") @SsoPowerAop(power = "10300006") //登录与权限同时验证 @Log("根据ID查询工站") public BaseResponse one(String id){ PltStation param=sv.selectById(id); return BaseResponseUtils.buildSuccess(JSON.toJSON(param)); } /** * 分页查询 * @param vo * @return */ @PostMapping(path="some") @SsoPowerAop(power = "10300006") @Log("分页查询工站") public BaseResponse>> some(@RequestBody QueryVo vo){ QueryResultVo> list = sv.selectSome(vo) ; return BaseResponseUtils.buildSuccess(list); } @PostMapping(path="disabled") @SsoPowerAop(power = "10300007") @Log("禁用或启用工站") public BaseResponse disabled(@RequestBody PltStation station){ int count = sv.disabled(station.id,station.disabled); if (count <= 0) { return BaseResponseUtils.buildFail("数据库存储失败"); } else { return BaseResponseUtils.buildSuccess(true); } } @PostMapping(path="export") @SsoPowerAop(power = "10300007") @Log("导出工站信息") public void export(HttpServletResponse response){ List list = new ArrayList<>() ; List stations = sv.selectAll(); // 使用并行流提高性能 stations.parallelStream().forEach(station -> { ExcelVo vo = new ExcelVo(); vo.name = station.name; // vo.code = "103"+station.id; vo.lineName = station.lineName; try { vo.qrCode = QrCodeUtil.genQrCode(QrCodeConstant.TypeStation+station.id); } catch (IOException e) { e.printStackTrace(); } catch (WriterException e) { e.printStackTrace(); } list.add(vo); }); QrCodeUtil.downloadExcel(response, fileName,sheetName,list); } }