package com.dy.pmsPlatform.station; 
 | 
  
 | 
import cn.hutool.json.JSONArray; 
 | 
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<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); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 更新 
 | 
     * @param station 
 | 
     * @return 
 | 
     */ 
 | 
    @PostMapping(path="update") 
 | 
    @SsoPowerAop(power = "10300007") 
 | 
    @Log("更新工站") 
 | 
    public BaseResponse<Boolean> 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<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 = "10300006") //登录与权限同时验证 
 | 
    @Log("根据ID查询工站") 
 | 
    public BaseResponse<PltStation> 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<QueryResultVo<List<PltStation>>> some(@RequestBody QueryVo vo){ 
 | 
        QueryResultVo<List<PltStation>> list = sv.selectSome(vo) ; 
 | 
        return BaseResponseUtils.buildSuccess(list); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询所有工站 
 | 
     * @return 
 | 
     */ 
 | 
    @GetMapping(path="all") 
 | 
    @SsoPowerAop(power = "10300006") 
 | 
    @Log("查询所有工站") 
 | 
    public BaseResponse<JSONArray> all(){ 
 | 
        JSONArray array = sv.selectAllIdAndName() ; 
 | 
        return BaseResponseUtils.buildSuccess(array); 
 | 
    } 
 | 
  
 | 
    @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); 
 | 
    } 
 | 
} 
 |