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 67192707f..c2253292d 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 @@ -22,6 +22,11 @@ import java.util.List; public class ReconciliationDTO extends BaseVOEntity{ private static final long serialVersionUID = 1L; + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date createTime; + @ApiModelProperty("对账单表id") private Long reconciliationId; 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 16dd0478f..a0c2eb396 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 @@ -299,6 +299,16 @@ public class ReconciliationApplicationService { } }); LoginUser loginUser = SecurityUtils.getLoginUser(); + + // 如果前端传递了创建时间,则使用该时间;否则使用当前时间 + Date specifiedCreateTime = reconciliationDO.getCreateTime(); + if (specifiedCreateTime != null) { + reconciliationDO.setCreateTime(specifiedCreateTime); + } else { + // 没有指定创建时间时,使用当前时间 + reconciliationDO.setCreateTime(new Date()); + } + reconciliationDO = reconciliationDomainService.insert(reconciliationDO); if(reconciliationDO==null){ throw new ServiceException("订单出账-生成应收账单失败!"); @@ -771,4 +781,14 @@ public class ReconciliationApplicationService { { return reconciliationDomainService.editIsInvoice(innerNumber,isInvoice,invoiceId,invoiceMakeTime,applyNumber); } + + /** + * 根据订单ID列表查询RECONCILIATION_ORDER_DETAIL表中这些订单创建最早的日期 + * + * @param orderIds 订单ID列表 + * @return 最早创建日期 + */ + public Date getEarliestCreateTimeByOrderIdList(List orderIds) { + return reconciliationDomainService.getEarliestCreateTimeByOrderIdList(orderIds); + } } diff --git a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/mapper/ReconciliationMapper.java b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/mapper/ReconciliationMapper.java index f16b9a7ca..ec8588aff 100644 --- a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/mapper/ReconciliationMapper.java +++ b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/mapper/ReconciliationMapper.java @@ -29,4 +29,9 @@ public interface ReconciliationMapper extends BaseMapper Boolean delReconciliationByInnerNumber(@Param("innerNumber") String innerNumber); Boolean delReconciliationDetailByInnerNumber(@Param("reconciliationId") Long reconciliationId); + + /** + * 插入对账单并使用传入的createTime值 + */ + void insertWithCreateTime(Reconciliation reconciliation); } diff --git a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java index 89e6a0cf1..f06f247a8 100644 --- a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java +++ b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java @@ -129,7 +129,8 @@ public class ReconciliationImpl extends ServiceImpl orderIds) { + if (orderIds == null || orderIds.isEmpty()) { + return null; + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(ReconciliationOrderDetail::getTmsOrderId, orderIds); + queryWrapper.eq(ReconciliationOrderDetail::getDelFlag, 1); + queryWrapper.orderByAsc(ReconciliationOrderDetail::getCreateTime); + List list = reconciliationOrderDetailService.list(queryWrapper); + if (list != null && !list.isEmpty()) { + return list.get(0).getCreateTime(); + } + return null; + } + } diff --git a/mhd_finance/src/main/java/com/linke/finance/interfaces/facade/reconciliation/ReconciliationApi.java b/mhd_finance/src/main/java/com/linke/finance/interfaces/facade/reconciliation/ReconciliationApi.java index 6f718ae96..51f6f542c 100644 --- a/mhd_finance/src/main/java/com/linke/finance/interfaces/facade/reconciliation/ReconciliationApi.java +++ b/mhd_finance/src/main/java/com/linke/finance/interfaces/facade/reconciliation/ReconciliationApi.java @@ -310,4 +310,18 @@ public class ReconciliationApi extends BaseController{ } + /** + * 根据订单ID列表查询RECONCILIATION_ORDER_DETAIL表中这些订单创建最早的日期 + * + * @param orderIds 订单ID列表 + * @return 最早创建日期 + */ + @ApiOperation("根据订单ID列表查询RECONCILIATION_ORDER_DETAIL表中这些订单创建最早的日期") + @PostMapping("/getEarliestCreateTimeByOrderIds") + public AjaxResult getEarliestCreateTimeByOrderIds(@RequestBody List orderIds) + { + Date earliestDate = reconciliationApplicationService.getEarliestCreateTimeByOrderIdList(orderIds); + return AjaxResult.success(earliestDate); + } + } \ 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 9061b996e..c413c3b89 100644 --- a/mhd_finance/src/main/resources/mapper/reconciliation/ReconciliationMapper.xml +++ b/mhd_finance/src/main/resources/mapper/reconciliation/ReconciliationMapper.xml @@ -207,4 +207,137 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update reconciliation_order_detail set del_flag = 2 where reconciliation_id = #{reconciliationId} + + + + INSERT INTO reconciliation ( + verification_money, + settlement_count, + party_name, + settlement_party_id, + payer_type, + bill_remark, + settlement_remark, + order_shipping_type, + department_name, + user_id, + shipper_name, + waybill_source, + waybill_source_name, + reconciliation_start, + reconciliation_end, + bill_name, + collection_amount, + change_amount, + other_amount, + receivable, + actual_receivable, + uncollected_receivable, + collection_state, + audit_state, + create_time, + create_by, + create_by_name, + update_time, + update_by, + update_by_name, + del_flag, + organization_id, + organization_name, + top_organization_id, + auditor, + auditor_name, + auth_time, + inner_number, + remark, + auth_remark, + auth_file, + waybill_verify_flag, + waybill_verify_time, + invoice_cost_has, + invoice_apply_status, + invoice_info_id, + audit_number, + audit_status, + audit_type, + audit_remark, + instance_id, + approval_status, + approval_result, + is_invoice, + invoice_id, + invoice_make_time, + apply_number, + synchronous_status, + synchronous_time, + nc_id, + sk_synchronous_status, + sk_synchronous_time, + sk_nc_id + ) VALUES ( + #{verificationMoney}, + #{settlementCount}, + #{partyName}, + #{settlementPartyId}, + #{payerType}, + #{billRemark}, + #{settlementRemark}, + #{orderShippingType}, + #{departmentName}, + #{userId}, + #{shipperName}, + #{waybillSource}, + #{waybillSourceName}, + #{reconciliationStart}, + #{reconciliationEnd}, + #{billName}, + #{collectionAmount}, + #{changeAmount}, + #{otherAmount}, + #{receivable}, + #{actualReceivable}, + #{uncollectedReceivable}, + #{collectionState}, + #{auditState}, + #{createTime}, + #{createBy}, + #{createByName}, + #{updateTime}, + #{updateBy}, + #{updateByName}, + #{delFlag}, + #{organizationId}, + #{organizationName}, + #{topOrganizationId}, + #{auditor}, + #{auditorName}, + #{authTime}, + #{innerNumber}, + #{remark}, + #{authRemark}, + #{authFile}, + #{waybillVerifyFlag}, + #{waybillVerifyTime}, + #{invoiceCostHas}, + #{invoiceApplyStatus}, + #{invoiceInfoId}, + #{auditNumber}, + #{auditStatus}, + #{auditType}, + #{auditRemark}, + #{instanceId}, + #{approvalStatus}, + #{approvalResult}, + #{isInvoice}, + #{invoiceId}, + #{invoiceMakeTime}, + #{applyNumber}, + #{synchronousStatus}, + #{synchronousTime}, + #{ncId}, + #{skSynchronousStatus}, + #{skSynchronousTime}, + #{skNcId} + ) +