刘小明
2024-08-13 986de1ea52ea40a848a8e8ffe478122850bb03a2
pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/station/StationCtrl.java
@@ -1,5 +1,6 @@
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;
@@ -7,14 +8,18 @@
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.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
 * 工站
@@ -24,6 +29,8 @@
@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){
@@ -33,22 +40,19 @@
    /**
     * 保存
     * @param station
     * @param bindingResult
     * @return
     */
    @PostMapping(path="save")
    @SsoPowerAop(power = "10300001")
    @SsoPowerAop(power = "10300007")
    @Log("保存工站")
    public BaseResponse<PltStation> save(@RequestBody @Valid PltStation station,BindingResult bindingResult){
        try {
            if (bindingResult != null && bindingResult.hasErrors()) {
                return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
            }
            station.deleted = false;
            return BaseResponseUtils.buildSuccess(sv.save(station));
        }catch (Exception e){
            log.error("保存工站异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
    public BaseResponse<Boolean> save(@RequestBody @Valid PltStation station){
        station.deleted = false;
        int count = sv.save(station);
        if (count <= 0) {
            return BaseResponseUtils.buildFail("数据库存储失败");
        } else {
            return BaseResponseUtils.buildSuccess(true);
        }
    }
@@ -56,21 +60,18 @@
    /**
     * 更新
     * @param station
     * @param bindingResult
     * @return
     */
    @PostMapping(path="update")
    @SsoPowerAop(power = "10300001")
    @SsoPowerAop(power = "10300007")
    @Log("更新工站")
    public BaseResponse<PltStation> update(@RequestBody @Valid PltStation station,BindingResult bindingResult){
        try {
            if (bindingResult != null && bindingResult.hasErrors()) {
                return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
            }
            return BaseResponseUtils.buildSuccess(sv.update(station));
        }catch (Exception e){
            log.error("更新工站异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
    public BaseResponse<Boolean> update(@RequestBody @Valid PltStation station){
        int count = sv.update(station);
        if (count <= 0) {
            return BaseResponseUtils.buildFail("数据库存储失败");
        } else {
            return BaseResponseUtils.buildSuccess(true);
        }
    }
@@ -80,34 +81,27 @@
     * @return
     */
    @GetMapping(path="delete")
    @SsoPowerAop(power = "10300001")
    @SsoPowerAop(power = "10300007")
    @Log("删除工站")
    public BaseResponse<PltStation> delete(String id){
        try {
            return BaseResponseUtils.buildSuccess(sv.delete(Long.parseLong(id)));
        }catch (Exception e){
            log.error("删除工站异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
    public BaseResponse<Boolean> 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 = "10300000") //登录与权限同时验证
    @SsoPowerAop(power = "10300006") //登录与权限同时验证
    @Log("根据ID查询工站")
    public BaseResponse<PltStation> one(String id){
        try{
            PltStation param=sv.selectById(id);
            return BaseResponseUtils.buildSuccess(JSON.toJSON(param));
        }catch (Exception e){
            log.error("根据ID查询工站异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
        PltStation param=sv.selectById(id);
        return BaseResponseUtils.buildSuccess(JSON.toJSON(param));
    }
    /**
@@ -116,17 +110,48 @@
     * @return
     */
    @PostMapping(path="some")
    @SsoPowerAop(power = "10300000")
    @SsoPowerAop(power = "10300006")
    @Log("分页查询工站")
    public BaseResponse<QueryResultVo<List<PltStation>>> some(@RequestBody QueryVo vo){
        try {
            QueryResultVo<List<PltStation>> list = sv.selectSome(vo) ;
            return BaseResponseUtils.buildSuccess(list);
        }catch (Exception e){
            log.error("分页查询工站异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
        QueryResultVo<List<PltStation>> list = sv.selectSome(vo) ;
        return BaseResponseUtils.buildSuccess(list);
    }
    @PostMapping(path="disabled")
    @SsoPowerAop(power = "10300007")
    @Log("禁用或启用工站")
    public BaseResponse<Boolean> 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<Converter> list = new ArrayList<>() ;
        List<PltStation> 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);
    }
}