From ec274798ed9e48a5972670a5b6d9517662aa0999 Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Tue, 27 May 2025 16:55:59 +0800 Subject: [PATCH] =?UTF-8?q?demand:=E6=8A=A5=E4=BB=B7=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=96=B0=E5=A2=9E=E6=89=B9=E9=87=8F=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=8A=A5=E4=BB=B7=E6=8E=A5=E5=8F=A3=20committer:=20he?= =?UTF-8?q?yu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/emis/EmisQuotePriceController.java | 19 ++++++++++ .../emis/service/IEmisQuotePriceService.java | 8 ++++ .../impl/EmisQuotePriceServiceImpl.java | 38 +++++++++++++++++++ 3 files changed, 65 insertions(+) diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisQuotePriceController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisQuotePriceController.java index 557252370..f6301328b 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisQuotePriceController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisQuotePriceController.java @@ -164,6 +164,25 @@ public class EmisQuotePriceController extends EmisBaseController } } + /** + * 批量修改费用报价 + */ + @PreAuthorize("@ss.hasPermi('emis:emisQuotePrice:edit')") + @Log(title = "费用报价", businessType = BusinessType.UPDATE) + @PutMapping("/batch") + public AjaxResult batchEdit(@RequestBody List emisQuotePriceList) { + try { + return toAjax(emisQuotePriceService.batchUpdateEmisQuotePrice(emisQuotePriceList)); + } catch (Exception ex) { + ex.printStackTrace(); + // 返回自定义异常 + if (ex instanceof EmisBizError) { + return AjaxResult.error(ex.getMessage(), ((EmisBizError) ex).getErrorCode()); + } + return AjaxResult.error("服务器异常,联系客服"); + } + } + /** * 删除费用报价 */ diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisQuotePriceService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisQuotePriceService.java index ae23f0216..c65105187 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisQuotePriceService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisQuotePriceService.java @@ -70,4 +70,12 @@ public interface IEmisQuotePriceService * @return 结果 */ public int deleteEmisQuotePriceByQuoteId(Long quoteId); + + /** + * 批量修改费用报价 + * + * @param emisQuotePriceList 费用报价列表 + * @return 结果 + */ + public int batchUpdateEmisQuotePrice(List emisQuotePriceList) throws EmisBizError; } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisQuotePriceServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisQuotePriceServiceImpl.java index 2818f6631..a155f97e5 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisQuotePriceServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisQuotePriceServiceImpl.java @@ -152,4 +152,42 @@ public class EmisQuotePriceServiceImpl implements IEmisQuotePriceService return emisQuotePriceMapper.deleteEmisQuotePriceByQuoteId(quoteId); } + /** + * 批量修改费用报价 + * + * @param emisQuotePriceList 费用报价列表 + * @return 结果 + */ + @Override + @Transactional + public int batchUpdateEmisQuotePrice(List emisQuotePriceList) throws EmisBizError { + if (CollectionUtil.isEmpty(emisQuotePriceList)) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "费用报价列表不能为空"); + } + + int successCount = 0; + for (EmisQuotePrice emisQuotePrice : emisQuotePriceList) { + try { + // 检查是否重复 + List listOld = emisQuotePriceMapper.checkUnique(emisQuotePrice); + if (!CollectionUtil.isEmpty(listOld)) { + String estNameStr = ""; + for (EmisQuotePrice item : listOld) { + estNameStr = estNameStr + item.getQuoteName() + ","; + } + throw new EmisBizError(EmisBizErrorType.EXISTS, "报价重复[" + estNameStr + "]"); + } + + // 更新主表 + int ret = emisQuotePriceMapper.updateEmisQuotePrice(emisQuotePrice); + if (ret > 0) { + successCount++; + } + } catch (Exception e) { + throw new EmisBizError(EmisBizErrorType.SYS_EXCEPTION, "批量修改费用报价失败:" + e.getMessage()); + } + } + return successCount; + } + }