| | |
| | | package com.dy.pmsPlatform.product; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.alibaba.excel.converters.Converter; |
| | | 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.PltProduct; |
| | | 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; |
| | | |
| | |
| | | this.proSv = proSv; |
| | | } |
| | | |
| | | |
| | | private static final String fileName = "产品信息" ; |
| | | private static final String sheetName = "产品信息" ; |
| | | |
| | | /** |
| | | * 保存产品信息 |
| | | * @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 { |
| | |
| | | /** |
| | | * 更新产品信息 |
| | | * @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 { |
| | |
| | | @GetMapping(path="delete") |
| | | @SsoPowerAop(power = "10300001") |
| | | @Log("删除产品信息") |
| | | public BaseResponse<PltProduct> delete(String id){ |
| | | try { |
| | | return BaseResponseUtils.buildSuccess(proSv.delete(Long.parseLong(id))); |
| | | }catch (Exception e){ |
| | | log.error("删除产品异常", e); |
| | | return BaseResponseUtils.buildException(e.getMessage()); |
| | | public BaseResponse<Boolean> delete(String id){ |
| | | int count = proSv.delete(Long.parseLong(id)); |
| | | if (count <= 0) { |
| | | return BaseResponseUtils.buildFail("数据库存储失败"); |
| | | } else { |
| | | return BaseResponseUtils.buildSuccess(true); |
| | | } |
| | | } |
| | | |
| | |
| | | @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("查询产品异常", e); |
| | | return BaseResponseUtils.buildException(e.getMessage()); |
| | | } |
| | | return BaseResponseUtils.buildSuccess(pro); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @PostMapping(path="some") |
| | | @SsoPowerAop(power = "10300000") |
| | | @Log("查询产品信息") |
| | | @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); |
| | | } |
| | | |
| | | /** |
| | |
| | | @SsoPowerAop(power = "10300000") |
| | | @Log("查询所有产品") |
| | | public BaseResponse<List<PltProduct>> all(){ |
| | | try { |
| | | List<PltProduct> list = proSv.selectAll() ; |
| | | return BaseResponseUtils.buildSuccess(list); |
| | | }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 = "10300001") |
| | | @Log("导出产品信息") |
| | | public void export(@RequestBody QueryVo queryVo, HttpServletResponse response){ |
| | | 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); |
| | | } |
| | | |
| | | |
| | | } |