From c91aedb344767e3e6275451754d95e446a38f7e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Fri, 6 Mar 2026 19:53:04 +0800 Subject: [PATCH 1/3] =?UTF-8?q?WMS=E5=87=BA=E5=BA=93=E4=BA=A4=E6=8E=A5?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E4=B8=8B=E5=8F=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/HandoverTaskOrderImpl.java | 14 ++++- .../HandoverTaskOrderDomainService.java | 53 +++++++++++++++++-- .../HandoverTaskOrderDTO.java | 30 +++++++++++ 3 files changed, 91 insertions(+), 6 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java index d89cf45fc..47d8b07b1 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java @@ -18,6 +18,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * 交接作业单Service业务层处理 @@ -88,6 +89,17 @@ public class HandoverTaskOrderImpl extends ServiceImpl handoverTaskOrderIds = handoverTaskOrderDO.getHandoverTaskOrderIds(); + if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) { + return false; + } + // 过滤掉 null 值 + handoverTaskOrderIds = handoverTaskOrderIds.stream() + .filter(id -> id != null) + .collect(Collectors.toList()); + if (handoverTaskOrderIds.isEmpty()) { + return false; + } HandoverTaskOrder handoverTaskOrder = new HandoverTaskOrder(); handoverTaskOrder.setTaskDistribution(1); handoverTaskOrder.setTaskDistributionTime(new Date()); @@ -95,7 +107,7 @@ public class HandoverTaskOrderImpl extends ServiceImpl().lambda() - .in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderDO.getHandoverTaskOrderIds())); + .in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderIds)); return i > 0; } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java index 4b5d188d3..a44639a5c 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java @@ -36,6 +36,7 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * 交接作业单 @@ -108,6 +109,17 @@ public class HandoverTaskOrderDomainService { * @return Boolean */ public Boolean allocationPlatform(HandoverTaskOrderDO handoverTaskOrderDO){ + List handoverTaskOrderIds = handoverTaskOrderDO.getHandoverTaskOrderIds(); + if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) { + return false; + } + // 过滤掉 null 值 + handoverTaskOrderIds = handoverTaskOrderIds.stream() + .filter(id -> id != null) + .collect(Collectors.toList()); + if (handoverTaskOrderIds.isEmpty()) { + return false; + } LoginUser loginUser = SecurityUtils.getLoginUser(); return handoverTaskOrderService.update(null, new UpdateWrapper().lambda() .set(HandoverTaskOrder::getPlatformUseStatus, 1) @@ -120,7 +132,7 @@ public class HandoverTaskOrderDomainService { .set(HandoverTaskOrder::getUpdateBy, loginUser.getUserid()) .set(HandoverTaskOrder::getUpdateByName, loginUser.getUsername()) .set(HandoverTaskOrder::getUpdateTime, new Date()) - .in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderDO.getHandoverTaskOrderIds()) + .in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderIds) ); } @@ -132,13 +144,24 @@ public class HandoverTaskOrderDomainService { * @return Boolean */ public Boolean releasePlatform(HandoverTaskOrderDO handoverTaskOrderDO){ + List handoverTaskOrderIds = handoverTaskOrderDO.getHandoverTaskOrderIds(); + if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) { + return false; + } + // 过滤掉 null 值 + handoverTaskOrderIds = handoverTaskOrderIds.stream() + .filter(id -> id != null) + .collect(Collectors.toList()); + if (handoverTaskOrderIds.isEmpty()) { + return false; + } LoginUser loginUser = SecurityUtils.getLoginUser(); return handoverTaskOrderService.update(null, new UpdateWrapper().lambda() .set(HandoverTaskOrder::getPlatformUseStatus, 3) .set(HandoverTaskOrder::getUpdateBy, loginUser.getUserid()) .set(HandoverTaskOrder::getUpdateByName, loginUser.getUsername()) .set(HandoverTaskOrder::getUpdateTime, new Date()) - .in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderDO.getHandoverTaskOrderIds()) + .in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderIds) ); } @@ -152,7 +175,14 @@ public class HandoverTaskOrderDomainService { */ public Boolean completeHandover(HandoverTaskOrderDO handoverTaskOrderDO) { List handoverTaskOrderIds = handoverTaskOrderDO.getHandoverTaskOrderIds(); - if (handoverTaskOrderIds == null || handoverTaskOrderIds.size() == 0) { + if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) { + return false; + } + // 过滤掉 null 值 + handoverTaskOrderIds = handoverTaskOrderIds.stream() + .filter(id -> id != null) + .collect(Collectors.toList()); + if (handoverTaskOrderIds.isEmpty()) { return false; } LoginUser loginUser = SecurityUtils.getLoginUser(); @@ -163,7 +193,7 @@ public class HandoverTaskOrderDomainService { .set(HandoverTaskOrder::getUpdateBy, loginUser.getUserid()) .set(HandoverTaskOrder::getUpdateByName, loginUser.getUsername()) .set(HandoverTaskOrder::getUpdateTime, new Date()) - .in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderDO.getHandoverTaskOrderIds()) + .in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderIds) ); } @@ -293,8 +323,21 @@ public class HandoverTaskOrderDomainService { */ @Transactional(rollbackFor = Exception.class) public boolean taskDistribution(HandoverTaskOrderDO handoverTaskOrderDO) { + List handoverTaskOrderIds = handoverTaskOrderDO.getHandoverTaskOrderIds(); + if (handoverTaskOrderIds == null || handoverTaskOrderIds.isEmpty()) { + throw new ServiceException("未选择交接作业单,请重新选择"); + } + // 过滤掉 null 值 + handoverTaskOrderIds = handoverTaskOrderIds.stream() + .filter(id -> id != null) + .collect(Collectors.toList()); + if (handoverTaskOrderIds.isEmpty()) { + throw new ServiceException("交接作业单ID不能为空,请重新选择"); + } + // 更新 DO 对象中的列表,确保后续调用使用过滤后的列表 + handoverTaskOrderDO.setHandoverTaskOrderIds(handoverTaskOrderIds); List handoverTaskOrders = handoverTaskOrderService.list(new LambdaQueryWrapper() - .in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderDO.getHandoverTaskOrderIds()) + .in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderIds) .eq(HandoverTaskOrder::getTaskDistribution, 2) ); if (CollectionUtils.isEmpty(handoverTaskOrders)) { diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/handoverTaskOrder/HandoverTaskOrderDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/handoverTaskOrder/HandoverTaskOrderDTO.java index 0a9f4c95b..1f64a802a 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/handoverTaskOrder/HandoverTaskOrderDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/handoverTaskOrder/HandoverTaskOrderDTO.java @@ -6,6 +6,7 @@ import com.mhd.common.core.web.domain.BaseVOEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -132,6 +133,35 @@ public class HandoverTaskOrderDTO extends BaseVOEntity { @ApiModelProperty("交接作业单id") private List handoverTaskOrderIds; + /** + * 自定义setter方法,支持单个整数和数组两种格式 + */ + public void setHandoverTaskOrderIds(Object value) { + if (value == null) { + this.handoverTaskOrderIds = null; + return; + } + + List result = new ArrayList<>(); + + if (value instanceof List) { + // 如果是列表,遍历并转换 + List list = (List) value; + for (Object item : list) { + if (item != null) { + if (item instanceof Number) { + result.add(((Number) item).longValue()); + } + } + } + } else if (value instanceof Number) { + // 如果是单个数字,转换为列表 + result.add(((Number) value).longValue()); + } + + this.handoverTaskOrderIds = result.isEmpty() ? null : result; + } + @ApiModelProperty("作业人用户ID") @Excel(name = "作业人用户ID") private Long operatorsBy; From 1f8085709b65dbdd45e46e48ffdb72b514d9cbf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 6 Mar 2026 20:59:18 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=BA=94=E6=94=B6=E8=B4=A6=E5=8D=95?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20=E7=A8=8E=E9=A2=9D=20=E6=97=A0=E7=A8=8E?= =?UTF-8?q?=E8=B4=B9=E7=94=A8;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mhd/common/core/domain/dto/ReconciliationDTO.java | 7 +++++-- .../domain/reconciliation/entity/Reconciliation.java | 7 ++++++- .../reconciliation/repository/po/ReconciliationPO.java | 6 +++++- .../reconciliation/repository/todo/ReconciliationDO.java | 7 ++++++- .../mapper/reconciliation/ReconciliationMapper.xml | 8 ++++++-- 5 files changed, 28 insertions(+), 7 deletions(-) diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationDTO.java index 744ccd476..9ccf18fb9 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationDTO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationDTO.java @@ -252,5 +252,8 @@ public class ReconciliationDTO extends BaseVOEntity{ @ApiModelProperty(value = "财务审核意见") private String financeReviewOpinion; - -} + @ApiModelProperty(value = "无税费用") + private BigDecimal taxFreeFee; + @ApiModelProperty(value = "税额") + private BigDecimal taxAmount; +} \ No newline at end of file diff --git a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/entity/Reconciliation.java b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/entity/Reconciliation.java index 16c5c3cb7..934ae0aa5 100644 --- a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/entity/Reconciliation.java +++ b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/entity/Reconciliation.java @@ -255,4 +255,9 @@ public class Reconciliation extends BaseVOEntity{ @ApiModelProperty(value = "财务审核意见") private String financeReviewOpinion; -} + @ApiModelProperty(value = "无税费用") + private BigDecimal taxFreeFee; + + @ApiModelProperty(value = "税额") + private BigDecimal taxAmount; +} \ No newline at end of file diff --git a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/po/ReconciliationPO.java b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/po/ReconciliationPO.java index 6f02f2553..e3a9ed628 100644 --- a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/po/ReconciliationPO.java +++ b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/po/ReconciliationPO.java @@ -263,4 +263,8 @@ public class ReconciliationPO extends BaseVOEntity{ @ApiModelProperty(value = "财务审核意见") private String financeReviewOpinion; -} + @ApiModelProperty(value = "无税费用") + private BigDecimal taxFreeFee; + @ApiModelProperty(value = "税额") + private BigDecimal taxAmount; +} \ No newline at end of file diff --git a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/todo/ReconciliationDO.java b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/todo/ReconciliationDO.java index 7b7feaeeb..9eeabe0bb 100644 --- a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/todo/ReconciliationDO.java +++ b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/todo/ReconciliationDO.java @@ -292,4 +292,9 @@ public class ReconciliationDO extends BaseVOEntity{ @ApiModelProperty(value = "账单科目明细") public List reconciliationAccountDTOList; -} + + @ApiModelProperty(value = "无税费用") + private BigDecimal taxFreeFee; + @ApiModelProperty(value = "税额") + private BigDecimal taxAmount; +} \ No newline at end of file diff --git a/mhd_finance/src/main/resources/mapper/reconciliation/ReconciliationMapper.xml b/mhd_finance/src/main/resources/mapper/reconciliation/ReconciliationMapper.xml index 6bba75cf4..48f89613d 100644 --- a/mhd_finance/src/main/resources/mapper/reconciliation/ReconciliationMapper.xml +++ b/mhd_finance/src/main/resources/mapper/reconciliation/ReconciliationMapper.xml @@ -279,7 +279,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sk_synchronous_status, sk_synchronous_time, sk_nc_id, - account_information + account_information, + tax_amount, + tax_free_fee ) VALUES ( #{verificationMoney}, #{settlementCount}, @@ -352,7 +354,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{skSynchronousStatus}, #{skSynchronousTime}, #{skNcId}, - #{accountInformation} + #{accountInformation}, + #{taxAmount}, + #{taxFreeFee} ) \ No newline at end of file From 38b2868c358f43fa13413633fb2186d6006db14e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E8=BE=89?= <2830717623@qq.com> Date: Fri, 6 Mar 2026 21:26:25 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=BA=94=E6=94=B6=E8=B4=A6=E5=8D=95?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/reconciliation/ReconciliationApplicationService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mhd_finance/src/main/java/com/linke/finance/application/server/reconciliation/ReconciliationApplicationService.java b/mhd_finance/src/main/java/com/linke/finance/application/server/reconciliation/ReconciliationApplicationService.java index 176e40b78..20270d1b2 100644 --- a/mhd_finance/src/main/java/com/linke/finance/application/server/reconciliation/ReconciliationApplicationService.java +++ b/mhd_finance/src/main/java/com/linke/finance/application/server/reconciliation/ReconciliationApplicationService.java @@ -832,6 +832,7 @@ public class ReconciliationApplicationService { updateDO.setFinanceManager(reconciliationDTO.getFinanceManager()); updateDO.setFinanceReviewStatus(financeReviewStatus); updateDO.setFinanceReviewOpinion(reconciliationDTO.getFinanceReviewOpinion()); + updateDO.setAuditorName(userPo.getUserName()); // 执行更新 boolean result = reconciliationDomainService.update(updateDO);