Fancy
2024-08-21 d8c8530752a3f19f082560f767b04471b2dd1085
pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/product/ProductCtrl.java
@@ -1,7 +1,6 @@
package com.dy.pmsPlatform.product;
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;
@@ -14,7 +13,6 @@
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;
@@ -44,26 +42,15 @@
    /**
     * 保存产品信息
     * @param pro
     * @param bindingResult
     * @return
     */
    @PostMapping(path="save")
    @SsoPowerAop(power = "10300001")
    @Log("保存产品信息")
    public BaseResponse<PltProduct> save(@RequestBody @Valid PltProduct pro,
                                         BindingResult bindingResult){
    public BaseResponse<PltProduct> save(@RequestBody @Valid PltProduct pro){
        pro.id = null;
        int count;
        try {
            if (bindingResult != null && bindingResult.hasErrors()) {
                return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
            }
            pro.setDeleted(false);
            count = proSv.save(pro);
        }catch (Exception e){
            log.error("保存产品异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
        pro.setDeleted(false);
        int count = proSv.save(pro);
        if (count <= 0) {
            return BaseResponseUtils.buildFail("数据库存储失败");
        } else {
@@ -75,23 +62,13 @@
    /**
     * 更新产品信息
     * @param pro
     * @param bindingResult
     * @return
     */
    @PostMapping(path="update")
    @SsoPowerAop(power = "10300001")
    @Log("更新产品信息")
    public BaseResponse<PltProduct> update(@RequestBody @Valid PltProduct pro,BindingResult bindingResult){
        int count;
        try {
            if (bindingResult != null && bindingResult.hasErrors()) {
                return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
            }
            count = proSv.update(pro);
        }catch (Exception e){
            log.error("更新产品异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    public BaseResponse<PltProduct> update(@RequestBody @Valid PltProduct pro){
        int count = proSv.update(pro);
        if (count <= 0) {
            return BaseResponseUtils.buildFail("数据库存储失败");
        } else {
@@ -108,13 +85,7 @@
    @SsoPowerAop(power = "10300001")
    @Log("删除产品信息")
    public BaseResponse<Boolean> delete(String id){
        int count;
        try {
            count = proSv.delete(Long.parseLong(id));
        }catch (Exception e){
            log.error("删除产品异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
        int count = proSv.delete(Long.parseLong(id));
        if (count <= 0) {
            return BaseResponseUtils.buildFail("数据库存储失败");
        } else {
@@ -131,14 +102,9 @@
    @SsoPowerAop(power = "10300000") //登录与权限同时验证
    @Log("根据ID查询产品信息")
    public BaseResponse<PltProduct> one(String id){
        try{
            PltProduct pro=proSv.selectById(id);
        PltProduct pro=proSv.selectById(id);
            return BaseResponseUtils.buildSuccess(JSON.toJSON(pro));
        }catch (Exception e){
            log.error("根据ID查询产品异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
        return BaseResponseUtils.buildSuccess(pro);
    }
    /**
@@ -150,13 +116,8 @@
    @SsoPowerAop(power = "10300000")
    @Log("分页查询产品信息")
    public BaseResponse<QueryResultVo<List<PltProduct>>> some(@RequestBody QueryVo vo){
        try {
            QueryResultVo<List<PltProduct>> list = proSv.selectSome(vo);
            return BaseResponseUtils.buildSuccess(list);
        }catch (Exception e){
            log.error("分页查询产品异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
        QueryResultVo<List<PltProduct>> list = proSv.selectSome(vo);
        return BaseResponseUtils.buildSuccess(list);
    }
    /**
@@ -167,42 +128,44 @@
    @SsoPowerAop(power = "10300000")
    @Log("查询所有产品")
    public BaseResponse<List<PltProduct>> all(){
        try {
            QueryVo vo = new QueryVo();
            return BaseResponseUtils.buildSuccess(proSv.selectAll(vo));
        }catch (Exception e){
            log.error("查询所有产品异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
        QueryVo vo = new QueryVo();
        return BaseResponseUtils.buildSuccess(proSv.selectAll(vo));
    }
    /**
     * 可根据orderId查询产品
     * @return
     */
    @GetMapping(path="selectByOrderId")
    @SsoPowerAop(power = "10300000")
    @Log("可根据orderId查询产品")
    public BaseResponse<List<PltProduct>> selectByOrderId(Long orderId){
        return BaseResponseUtils.buildSuccess(proSv.selectByOrderId(orderId));
    }
    @PostMapping(path="export")
    @SsoPowerAop(power = "10300000")
    @SsoPowerAop(power = "10300001")
    @Log("导出产品信息")
    public void export(@RequestBody QueryVo queryVo, HttpServletResponse response){
        try{
            List<Converter> list = new ArrayList<>() ;
        List<Converter> list = new ArrayList<>() ;
            List<PltProduct> porList = proSv.selectAll(queryVo);
            // 使用并行流提高性能
            porList.parallelStream().forEach(pro -> {
                ExcelVo vo = new ExcelVo();
                vo.name = pro.name;
                vo.type = pro.type;
                vo.code = pro.code;
                try {
                    vo.qrCode = QrCodeUtil.genQrCode(pro.code);
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (WriterException e) {
                    e.printStackTrace();
                }
                list.add(vo);
            });
            QrCodeUtil.downloadExcel(response, fileName,sheetName,list);
        }catch (Exception e){
            log.error("导出产品信息异常", e);
        }
        List<PltProduct> porList = proSv.selectAll(queryVo);
        // 使用并行流提高性能
        porList.parallelStream().forEach(pro -> {
            ExcelVo vo = new ExcelVo();
            vo.name = pro.name;
            vo.type = pro.type;
            vo.code = pro.code;
            try {
                vo.qrCode = QrCodeUtil.genQrCode(pro.code);
            } catch (IOException e) {
                e.printStackTrace();
            } catch (WriterException e) {
                e.printStackTrace();
            }
            list.add(vo);
        });
        QrCodeUtil.downloadExcel(response, fileName,sheetName,list);
    }