应收账单创建时间修改

This commit is contained in:
赵辉
2026-02-05 10:48:33 +08:00
parent 7f6d04e122
commit 37dd75622a
8 changed files with 205 additions and 1 deletions
@@ -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;
@@ -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<String> orderIds) {
return reconciliationDomainService.getEarliestCreateTimeByOrderIdList(orderIds);
}
}
@@ -29,4 +29,9 @@ public interface ReconciliationMapper extends BaseMapper<Reconciliation>
Boolean delReconciliationByInnerNumber(@Param("innerNumber") String innerNumber);
Boolean delReconciliationDetailByInnerNumber(@Param("reconciliationId") Long reconciliationId);
/**
* 插入对账单并使用传入的createTime值
*/
void insertWithCreateTime(Reconciliation reconciliation);
}
@@ -129,7 +129,8 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
public ReconciliationDO insert(ReconciliationDO reconciliationDO) {
Reconciliation reconciliation = new Reconciliation();
BeanUtils.copyProperties(reconciliationDO,reconciliation);
this.save(reconciliation);
// 使用自定义插入方法,确保传入的createTime被使用
reconciliationMapper.insertWithCreateTime(reconciliation);
reconciliationDO.setReconciliationId(reconciliation.getReconciliationId());
return reconciliationDO;
}
@@ -30,6 +30,11 @@ import java.util.List;
public class ReconciliationDO 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;
@@ -172,5 +172,26 @@ public class ReconciliationDomainService {
return reconciliationService.editIsInvoice(innerNumber,isInvoice,invoiceId,invoiceMakeTime,applyNumber);
}
/**
* 根据订单ID列表查询RECONCILIATION_ORDER_DETAIL表中这些订单创建最早的日期
*
* @param orderIds 订单ID列表
* @return 最早创建日期
*/
public Date getEarliestCreateTimeByOrderIdList(List<String> orderIds) {
if (orderIds == null || orderIds.isEmpty()) {
return null;
}
LambdaQueryWrapper<ReconciliationOrderDetail> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(ReconciliationOrderDetail::getTmsOrderId, orderIds);
queryWrapper.eq(ReconciliationOrderDetail::getDelFlag, 1);
queryWrapper.orderByAsc(ReconciliationOrderDetail::getCreateTime);
List<ReconciliationOrderDetail> list = reconciliationOrderDetailService.list(queryWrapper);
if (list != null && !list.isEmpty()) {
return list.get(0).getCreateTime();
}
return null;
}
}
@@ -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<String> orderIds)
{
Date earliestDate = reconciliationApplicationService.getEarliestCreateTimeByOrderIdList(orderIds);
return AjaxResult.success(earliestDate);
}
}
@@ -207,4 +207,137 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="delReconciliationDetailByInnerNumber">
update reconciliation_order_detail set del_flag = 2 where reconciliation_id = #{reconciliationId}
</update>
<!-- 自定义插入语句,确保传入的createTime被使用 -->
<insert id="insertWithCreateTime" parameterType="com.linke.finance.domain.reconciliation.entity.Reconciliation" useGeneratedKeys="true" keyProperty="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}
)
</insert>
</mapper>