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 1/4] =?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; + } + } From ace2a5034d2ad5f66dbae375e61ed8c95a274c77 Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Tue, 27 May 2025 18:49:21 +0800 Subject: [PATCH 2/4] =?UTF-8?q?demand:TMS-=E7=8E=B0=E9=87=91=E6=A0=B8?= =?UTF-8?q?=E9=94=80=E7=95=8C=E9=9D=A2/=E6=9C=88=E7=BB=93=E6=A0=B8?= =?UTF-8?q?=E9=94=80=E7=95=8C=E9=9D=A2/=E5=8F=91=E7=A5=A8=E6=94=B6?= =?UTF-8?q?=E6=AC=BE=E7=95=8C=E9=9D=A2=E6=96=B0=E5=A2=9E=E9=99=90=E5=88=B6?= =?UTF-8?q?=E4=BA=A4=E6=98=93=E6=97=B6=E9=97=B4=E4=B8=8D=E8=83=BD=E6=97=A9?= =?UTF-8?q?=E4=BA=8E=E5=BD=93=E5=A4=A9=20committer:=20heyu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/EmisSettlePayRecordServiceImpl.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java index 9e7692aa7..a5a80ab1a 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java @@ -11,6 +11,9 @@ package com.xdadan.erp.emis.service.impl; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; @@ -150,6 +153,9 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I } } + // 校验交易日期不能晚于当天 + checkTradeDate(emisSettlePayRecord); + emisSettlePayRecord.setSettleBillNo(WaybillHelper.formatQueryValue(emisSettlePayRecord.getSettleBillNo())); // 多账单合并收款 String [] settleBillNoArr = emisSettlePayRecord.getSettleBillNo().split(","); @@ -232,6 +238,19 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I return 1; } + private static void checkTradeDate(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError { + if (emisSettlePayRecord.getTradeDate() != null) { + LocalDate tradeDate = emisSettlePayRecord.getTradeDate().toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDate(); + LocalDate today = LocalDate.now(); + if (tradeDate.isAfter(today)) { + throw new EmisBizError(EmisBizErrorType.FAIL, + "交易时间不能晚于当天(" + today.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ")"); + } + } + } + /** * 收款退款 * @param id From db4e658ec175875118b476bb31300c88dd6fc858 Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Tue, 27 May 2025 18:58:44 +0800 Subject: [PATCH 3/4] =?UTF-8?q?demand:TMS-=E7=8E=B0=E9=87=91=E6=A0=B8?= =?UTF-8?q?=E9=94=80=E7=95=8C=E9=9D=A2/=E6=9C=88=E7=BB=93=E6=A0=B8?= =?UTF-8?q?=E9=94=80=E7=95=8C=E9=9D=A2/=E5=8F=91=E7=A5=A8=E6=94=B6?= =?UTF-8?q?=E6=AC=BE=E7=95=8C=E9=9D=A2=E6=96=B0=E5=A2=9E=E9=99=90=E5=88=B6?= =?UTF-8?q?=E4=BA=A4=E6=98=93/=E9=80=80=E6=AC=BE=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E6=97=A9=E4=BA=8E=E5=BD=93=E5=A4=A9=20commit?= =?UTF-8?q?ter:=20heyu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/EmisSettlePayRecordServiceImpl.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java index a5a80ab1a..734000195 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java @@ -154,7 +154,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I } // 校验交易日期不能晚于当天 - checkTradeDate(emisSettlePayRecord); + checkDate(emisSettlePayRecord); emisSettlePayRecord.setSettleBillNo(WaybillHelper.formatQueryValue(emisSettlePayRecord.getSettleBillNo())); // 多账单合并收款 @@ -238,17 +238,26 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I return 1; } - private static void checkTradeDate(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError { + private static void checkDate(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError { + LocalDate today = LocalDate.now(); if (emisSettlePayRecord.getTradeDate() != null) { LocalDate tradeDate = emisSettlePayRecord.getTradeDate().toInstant() .atZone(ZoneId.systemDefault()) .toLocalDate(); - LocalDate today = LocalDate.now(); if (tradeDate.isAfter(today)) { throw new EmisBizError(EmisBizErrorType.FAIL, "交易时间不能晚于当天(" + today.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ")"); } } + if (emisSettlePayRecord.getRefundDate() != null) { + LocalDate refundDate = emisSettlePayRecord.getRefundDate().toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDate(); + if (refundDate.isAfter(today)) { + throw new EmisBizError(EmisBizErrorType.FAIL, + "退款时间不能晚于当天(" + today.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ")"); + } + } } /** From 31259ec806275aa93ab547897c2fdb05a96bc5dc Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Wed, 28 May 2025 10:52:56 +0800 Subject: [PATCH 4/4] =?UTF-8?q?demand:TMS=E7=B3=BB=E7=BB=9F-=E8=BF=90?= =?UTF-8?q?=E5=8D=95=E5=BD=95=E5=85=A5=E9=99=90=E5=88=B6=EF=BC=9A=E5=AF=84?= =?UTF-8?q?=E4=BB=B6=E5=9B=BD=E5=AE=B6=E5=92=8C=E7=9B=AE=E7=9A=84=E5=9B=BD?= =?UTF-8?q?=E5=AE=B6=E9=9C=80=E8=A6=81=E5=92=8C=E6=89=80=E9=80=89=E7=BA=BF?= =?UTF-8?q?=E8=B7=AF=E4=B8=80=E8=87=B4=20committer:=20heyu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/EmisWaybillServiceImpl.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java index 05859f9b1..e1e85f073 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java @@ -1451,6 +1451,9 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb // 检查是否已锁单 checkDBBillIsLock(emisWaybillOld); + // 校验寄件国家是否匹配线路 + checkCountry(emisWaybillSave); + emisWaybillSave.setId(emisWaybillOld.getId()); // 把历史发货日期带过来用于重新计算预估到到时间 @@ -3023,6 +3026,9 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb throw new EmisBizError(EmisBizErrorType.FAIL, "单号与子单号相同,请换单号"); } + // 校验寄件国家是否匹配线路 + checkCountry(emisWaybillSave); + // 子单号做扣减 if ("1".equals(emisWaybillSave.getBlGenSubbill())) { Integer subBillCount = emisElectronicSitePagService.getTotalAvailablePagCount(emisWaybillSave.getSendSiteCode(), "T7080", "1002"); @@ -3208,6 +3214,19 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb } } + private void checkCountry(EmisWaybill emisWaybillSave) throws EmisBizError { + EmisTransLine emisTransLine = new EmisTransLine(); + emisTransLine.setLineCode(emisWaybillSave.getTransLineType()); + List emisTransLines = emisTransLineMapper.selectEmisTransLineList(emisTransLine); + if(CollectionUtil.isEmpty(emisTransLines)){ + return; + } + if(emisWaybillSave.getSendCountry().equals(emisTransLines.get(0).getFromCountry())){ + return; + } + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "寄件国家与所选线路不匹配" ); + } + public int bindSalesmen(String empCode,String customerCode) throws EmisBizError {