feat(operation): 新增对账发票和对账付款功能模块
- 添加了对账发票管理的完整CRUD控制器和接口定义 - 实现了对账发票的创建、查询、更新、删除功能 - 添加了对账付款管理的完整CRUD控制器和接口定义 - 实现了对账付款的创建、查询、更新、删除功能 - 定义了对账发票和对账付款的数据传输对象(DTO) - 实现了数据访问层的映射转换器和执行器 - 集成了Swagger API文档注解支持 - 添加了分页查询和列表查询功能实现
This commit is contained in:
parent
a66ca25cef
commit
1e29eda0b4
@ -0,0 +1,79 @@
|
||||
package com.xunhong.erp.turbo.admin.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||
import com.alibaba.cola.dto.MultiResponse;
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.Response;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.xunhong.erp.turbo.api.biz.api.ReconciliationInvoiceServiceI;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceCreateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceDestroyCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceUpdateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoiceListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoicePageQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoiceShowQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationInvoiceVO;
|
||||
import com.xunhong.erp.turbo.base.dto.PageDTO;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Tag(name = "ReconciliationInvoice", description = "对账发票管理")
|
||||
@RestController("operationReconciliationInvoiceController")
|
||||
@RequestMapping(value = "/operation")
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationInvoiceController {
|
||||
|
||||
@DubboReference(version = "1.0.0")
|
||||
private final ReconciliationInvoiceServiceI reconciliationInvoiceService;
|
||||
|
||||
@SaCheckLogin
|
||||
@GetMapping("listReconciliationInvoice")
|
||||
@Operation(summary = "对账发票列表", method = "GET")
|
||||
public MultiResponse<ReconciliationInvoiceVO> listReconciliationInvoice(@ModelAttribute @Validated ReconciliationInvoiceListQry reconciliationInvoiceListQry) {
|
||||
return MultiResponse.of(reconciliationInvoiceService.list(reconciliationInvoiceListQry));
|
||||
}
|
||||
|
||||
@SaCheckLogin
|
||||
@PostMapping("createReconciliationInvoice")
|
||||
@Operation(summary = "创建对账发票", method = "POST")
|
||||
public SingleResponse<ReconciliationInvoiceVO> createReconciliationInvoice(@RequestBody @Validated ReconciliationInvoiceCreateCmd reconciliationInvoiceCreateCmd) {
|
||||
return SingleResponse.of(reconciliationInvoiceService.create(reconciliationInvoiceCreateCmd));
|
||||
}
|
||||
|
||||
@SaCheckLogin
|
||||
@GetMapping("showReconciliationInvoice")
|
||||
@Operation(summary = "对账发票详情", method = "GET")
|
||||
public SingleResponse<ReconciliationInvoiceVO> showReconciliationInvoice(@ModelAttribute @Validated ReconciliationInvoiceShowQry reconciliationInvoiceShowQry) {
|
||||
return SingleResponse.of(reconciliationInvoiceService.show(reconciliationInvoiceShowQry));
|
||||
}
|
||||
|
||||
@SaCheckLogin
|
||||
@GetMapping("pageReconciliationInvoice")
|
||||
@Operation(summary = "对账发票列表", method = "GET")
|
||||
public PageResponse<ReconciliationInvoiceVO> pageReconciliationInvoice(@ModelAttribute @Validated ReconciliationInvoicePageQry reconciliationInvoicePageQry) {
|
||||
PageDTO<ReconciliationInvoiceVO> page = reconciliationInvoiceService.page(reconciliationInvoicePageQry);
|
||||
return PageResponse.of(page.getRecords(), (int) page.getTotal(), (int) page.getSize(), (int) page.getCurrent());
|
||||
}
|
||||
|
||||
@SaCheckLogin
|
||||
@RequestMapping(value = "updateReconciliationInvoice", method = {RequestMethod.PATCH, RequestMethod.PUT})
|
||||
@Operation(summary = "对账发票更新", method = "PATCH")
|
||||
public SingleResponse<ReconciliationInvoiceVO> updateReconciliationInvoice(@RequestBody @Validated ReconciliationInvoiceUpdateCmd reconciliationInvoiceUpdateCmd) {
|
||||
return SingleResponse.of(reconciliationInvoiceService.update(reconciliationInvoiceUpdateCmd));
|
||||
}
|
||||
|
||||
@SaCheckLogin
|
||||
@DeleteMapping("destroyReconciliationInvoice")
|
||||
@Operation(summary = "对账发票删除", method = "DELETE")
|
||||
public Response destroyReconciliationInvoice(@RequestBody @Validated ReconciliationInvoiceDestroyCmd reconciliationInvoiceDestroyCmd) {
|
||||
reconciliationInvoiceService.destroy(reconciliationInvoiceDestroyCmd);
|
||||
return Response.buildSuccess();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,79 @@
|
||||
package com.xunhong.erp.turbo.admin.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||
import com.alibaba.cola.dto.MultiResponse;
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.Response;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.xunhong.erp.turbo.api.biz.api.ReconciliationPaymentServiceI;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentCreateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentDestroyCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentUpdateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentPageQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentShowQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationPaymentVO;
|
||||
import com.xunhong.erp.turbo.base.dto.PageDTO;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Tag(name = "ReconciliationPayment", description = "对账付款管理")
|
||||
@RestController("operationReconciliationPaymentController")
|
||||
@RequestMapping(value = "/operation")
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationPaymentController {
|
||||
|
||||
@DubboReference(version = "1.0.0")
|
||||
private final ReconciliationPaymentServiceI reconciliationPaymentService;
|
||||
|
||||
@SaCheckLogin
|
||||
@GetMapping("listReconciliationPayment")
|
||||
@Operation(summary = "对账付款列表", method = "GET")
|
||||
public MultiResponse<ReconciliationPaymentVO> listReconciliationPayment(@ModelAttribute @Validated ReconciliationPaymentListQry reconciliationPaymentListQry) {
|
||||
return MultiResponse.of(reconciliationPaymentService.list(reconciliationPaymentListQry));
|
||||
}
|
||||
|
||||
@SaCheckLogin
|
||||
@PostMapping("createReconciliationPayment")
|
||||
@Operation(summary = "创建对账付款", method = "POST")
|
||||
public SingleResponse<ReconciliationPaymentVO> createReconciliationPayment(@RequestBody @Validated ReconciliationPaymentCreateCmd reconciliationPaymentCreateCmd) {
|
||||
return SingleResponse.of(reconciliationPaymentService.create(reconciliationPaymentCreateCmd));
|
||||
}
|
||||
|
||||
@SaCheckLogin
|
||||
@GetMapping("showReconciliationPayment")
|
||||
@Operation(summary = "对账付款详情", method = "GET")
|
||||
public SingleResponse<ReconciliationPaymentVO> showReconciliationPayment(@ModelAttribute @Validated ReconciliationPaymentShowQry reconciliationPaymentShowQry) {
|
||||
return SingleResponse.of(reconciliationPaymentService.show(reconciliationPaymentShowQry));
|
||||
}
|
||||
|
||||
@SaCheckLogin
|
||||
@GetMapping("pageReconciliationPayment")
|
||||
@Operation(summary = "对账付款列表", method = "GET")
|
||||
public PageResponse<ReconciliationPaymentVO> pageReconciliationPayment(@ModelAttribute @Validated ReconciliationPaymentPageQry reconciliationPaymentPageQry) {
|
||||
PageDTO<ReconciliationPaymentVO> page = reconciliationPaymentService.page(reconciliationPaymentPageQry);
|
||||
return PageResponse.of(page.getRecords(), (int) page.getTotal(), (int) page.getSize(), (int) page.getCurrent());
|
||||
}
|
||||
|
||||
@SaCheckLogin
|
||||
@RequestMapping(value = "updateReconciliationPayment", method = {RequestMethod.PATCH, RequestMethod.PUT})
|
||||
@Operation(summary = "对账付款更新", method = "PATCH")
|
||||
public SingleResponse<ReconciliationPaymentVO> updateReconciliationPayment(@RequestBody @Validated ReconciliationPaymentUpdateCmd reconciliationPaymentUpdateCmd) {
|
||||
return SingleResponse.of(reconciliationPaymentService.update(reconciliationPaymentUpdateCmd));
|
||||
}
|
||||
|
||||
@SaCheckLogin
|
||||
@DeleteMapping("destroyReconciliationPayment")
|
||||
@Operation(summary = "对账付款删除", method = "DELETE")
|
||||
public Response destroyReconciliationPayment(@RequestBody @Validated ReconciliationPaymentDestroyCmd reconciliationPaymentDestroyCmd) {
|
||||
reconciliationPaymentService.destroy(reconciliationPaymentDestroyCmd);
|
||||
return Response.buildSuccess();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.xunhong.erp.turbo.biz.app.assembler;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationInvoiceVO;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationInvoice;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.NullValueCheckStrategy;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
|
||||
public interface ReconciliationInvoiceAssembler {
|
||||
|
||||
ReconciliationInvoiceVO toReconciliationInvoiceVO(ReconciliationInvoice reconciliationInvoice);
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.xunhong.erp.turbo.biz.app.assembler;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationPaymentVO;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationPayment;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.NullValueCheckStrategy;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
|
||||
public interface ReconciliationPaymentAssembler {
|
||||
|
||||
ReconciliationPaymentVO toReconciliationPaymentVO(ReconciliationPayment reconciliationPayment);
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package com.xunhong.erp.turbo.biz.app.executor.cmd;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceCreateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationInvoiceVO;
|
||||
import com.xunhong.erp.turbo.biz.app.assembler.ReconciliationInvoiceAssembler;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationInvoice;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.ReconciliationInvoiceGateway;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationInvoiceCreateCmdExe {
|
||||
|
||||
private final ReconciliationInvoiceAssembler reconciliationInvoiceAssembler;
|
||||
private final ReconciliationInvoiceGateway reconciliationInvoiceGateway;
|
||||
|
||||
public ReconciliationInvoiceVO execute(ReconciliationInvoiceCreateCmd reconciliationInvoiceCreateCmd) {
|
||||
ReconciliationInvoice reconciliationInvoice = reconciliationInvoiceGateway.save(reconciliationInvoiceCreateCmd);
|
||||
|
||||
return reconciliationInvoiceAssembler.toReconciliationInvoiceVO(reconciliationInvoice);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
package com.xunhong.erp.turbo.biz.app.executor.cmd;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceDestroyCmd;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.ReconciliationInvoiceGateway;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationInvoiceDestroyCmdExe {
|
||||
private final ReconciliationInvoiceGateway reconciliationInvoiceGateway;
|
||||
|
||||
public void execute(ReconciliationInvoiceDestroyCmd reconciliationInvoiceDestroyCmd) {
|
||||
reconciliationInvoiceGateway.destroy(reconciliationInvoiceDestroyCmd);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
package com.xunhong.erp.turbo.biz.app.executor.cmd;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceUpdateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationInvoiceVO;
|
||||
import com.xunhong.erp.turbo.biz.app.assembler.ReconciliationInvoiceAssembler;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationInvoice;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.ReconciliationInvoiceGateway;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationInvoiceUpdateCmdExe {
|
||||
|
||||
private final ReconciliationInvoiceAssembler reconciliationInvoiceAssembler;
|
||||
private final ReconciliationInvoiceGateway reconciliationInvoiceGateway;
|
||||
|
||||
public ReconciliationInvoiceVO execute(ReconciliationInvoiceUpdateCmd reconciliationInvoiceUpdateCmd) {
|
||||
ReconciliationInvoice reconciliationInvoice = reconciliationInvoiceGateway.update(reconciliationInvoiceUpdateCmd);
|
||||
return reconciliationInvoiceAssembler.toReconciliationInvoiceVO(reconciliationInvoice);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package com.xunhong.erp.turbo.biz.app.executor.cmd;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentCreateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationPaymentVO;
|
||||
import com.xunhong.erp.turbo.biz.app.assembler.ReconciliationPaymentAssembler;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationPayment;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.ReconciliationPaymentGateway;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationPaymentCreateCmdExe {
|
||||
|
||||
private final ReconciliationPaymentAssembler reconciliationPaymentAssembler;
|
||||
private final ReconciliationPaymentGateway reconciliationPaymentGateway;
|
||||
|
||||
public ReconciliationPaymentVO execute(ReconciliationPaymentCreateCmd reconciliationPaymentCreateCmd) {
|
||||
ReconciliationPayment reconciliationPayment = reconciliationPaymentGateway.save(reconciliationPaymentCreateCmd);
|
||||
|
||||
return reconciliationPaymentAssembler.toReconciliationPaymentVO(reconciliationPayment);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
package com.xunhong.erp.turbo.biz.app.executor.cmd;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentDestroyCmd;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.ReconciliationPaymentGateway;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationPaymentDestroyCmdExe {
|
||||
private final ReconciliationPaymentGateway reconciliationPaymentGateway;
|
||||
|
||||
public void execute(ReconciliationPaymentDestroyCmd reconciliationPaymentDestroyCmd) {
|
||||
reconciliationPaymentGateway.destroy(reconciliationPaymentDestroyCmd);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
package com.xunhong.erp.turbo.biz.app.executor.cmd;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentUpdateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationPaymentVO;
|
||||
import com.xunhong.erp.turbo.biz.app.assembler.ReconciliationPaymentAssembler;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationPayment;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.ReconciliationPaymentGateway;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationPaymentUpdateCmdExe {
|
||||
|
||||
private final ReconciliationPaymentAssembler reconciliationPaymentAssembler;
|
||||
private final ReconciliationPaymentGateway reconciliationPaymentGateway;
|
||||
|
||||
public ReconciliationPaymentVO execute(ReconciliationPaymentUpdateCmd reconciliationPaymentUpdateCmd) {
|
||||
ReconciliationPayment reconciliationPayment = reconciliationPaymentGateway.update(reconciliationPaymentUpdateCmd);
|
||||
return reconciliationPaymentAssembler.toReconciliationPaymentVO(reconciliationPayment);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package com.xunhong.erp.turbo.biz.app.executor.query;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoiceListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationInvoiceVO;
|
||||
import com.xunhong.erp.turbo.biz.app.assembler.ReconciliationInvoiceAssembler;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationInvoice;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.ReconciliationInvoiceGateway;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationInvoiceListQryExe {
|
||||
|
||||
private final ReconciliationInvoiceGateway reconciliationInvoiceGateway;
|
||||
private final ReconciliationInvoiceAssembler reconciliationInvoiceAssembler;
|
||||
|
||||
public List<ReconciliationInvoiceVO> execute(ReconciliationInvoiceListQry reconciliationInvoiceListQry) {
|
||||
List<ReconciliationInvoice> reconciliationInvoiceList = reconciliationInvoiceGateway.list(reconciliationInvoiceListQry);
|
||||
return reconciliationInvoiceList.stream().map(reconciliationInvoiceAssembler::toReconciliationInvoiceVO).toList();
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
package com.xunhong.erp.turbo.biz.app.executor.query;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoicePageQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationInvoiceVO;
|
||||
import com.xunhong.erp.turbo.biz.app.assembler.ReconciliationInvoiceAssembler;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationInvoice;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.ReconciliationInvoiceGateway;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationInvoicePageQryExe {
|
||||
|
||||
private final ReconciliationInvoiceGateway reconciliationInvoiceGateway;
|
||||
private final ReconciliationInvoiceAssembler reconciliationInvoiceAssembler;
|
||||
|
||||
public IPage<ReconciliationInvoiceVO> execute(ReconciliationInvoicePageQry reconciliationInvoicePageQry) {
|
||||
IPage<ReconciliationInvoice> page = reconciliationInvoiceGateway.page(reconciliationInvoicePageQry);
|
||||
return page.convert(reconciliationInvoiceAssembler::toReconciliationInvoiceVO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
package com.xunhong.erp.turbo.biz.app.executor.query;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoiceShowQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationInvoiceVO;
|
||||
import com.xunhong.erp.turbo.biz.app.assembler.ReconciliationInvoiceAssembler;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationInvoice;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.ReconciliationInvoiceGateway;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationInvoiceShowQryExe {
|
||||
|
||||
private final ReconciliationInvoiceAssembler reconciliationInvoiceAssembler;
|
||||
private final ReconciliationInvoiceGateway reconciliationInvoiceGateway;
|
||||
|
||||
public ReconciliationInvoiceVO execute(ReconciliationInvoiceShowQry reconciliationInvoiceShowQry) {
|
||||
ReconciliationInvoice reconciliationInvoice = reconciliationInvoiceGateway.show(reconciliationInvoiceShowQry);
|
||||
|
||||
return reconciliationInvoiceAssembler.toReconciliationInvoiceVO(reconciliationInvoice);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
package com.xunhong.erp.turbo.biz.app.executor.query;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationPaymentVO;
|
||||
import com.xunhong.erp.turbo.biz.app.assembler.ReconciliationPaymentAssembler;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationPayment;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.ReconciliationPaymentGateway;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationPaymentListQryExe {
|
||||
|
||||
private final ReconciliationPaymentGateway reconciliationPaymentGateway;
|
||||
private final ReconciliationPaymentAssembler reconciliationPaymentAssembler;
|
||||
|
||||
public List<ReconciliationPaymentVO> execute(ReconciliationPaymentListQry reconciliationPaymentListQry) {
|
||||
List<ReconciliationPayment> reconciliationPaymentList = reconciliationPaymentGateway.list(reconciliationPaymentListQry);
|
||||
return reconciliationPaymentList.stream().map(reconciliationPaymentAssembler::toReconciliationPaymentVO).toList();
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
package com.xunhong.erp.turbo.biz.app.executor.query;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentPageQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationPaymentVO;
|
||||
import com.xunhong.erp.turbo.biz.app.assembler.ReconciliationPaymentAssembler;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationPayment;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.ReconciliationPaymentGateway;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationPaymentPageQryExe {
|
||||
|
||||
private final ReconciliationPaymentGateway reconciliationPaymentGateway;
|
||||
private final ReconciliationPaymentAssembler reconciliationPaymentAssembler;
|
||||
|
||||
public IPage<ReconciliationPaymentVO> execute(ReconciliationPaymentPageQry reconciliationPaymentPageQry) {
|
||||
IPage<ReconciliationPayment> page = reconciliationPaymentGateway.page(reconciliationPaymentPageQry);
|
||||
return page.convert(reconciliationPaymentAssembler::toReconciliationPaymentVO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
package com.xunhong.erp.turbo.biz.app.executor.query;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentShowQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationPaymentVO;
|
||||
import com.xunhong.erp.turbo.biz.app.assembler.ReconciliationPaymentAssembler;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationPayment;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.ReconciliationPaymentGateway;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationPaymentShowQryExe {
|
||||
|
||||
private final ReconciliationPaymentAssembler reconciliationPaymentAssembler;
|
||||
private final ReconciliationPaymentGateway reconciliationPaymentGateway;
|
||||
|
||||
public ReconciliationPaymentVO execute(ReconciliationPaymentShowQry reconciliationPaymentShowQry) {
|
||||
ReconciliationPayment reconciliationPayment = reconciliationPaymentGateway.show(reconciliationPaymentShowQry);
|
||||
|
||||
return reconciliationPaymentAssembler.toReconciliationPaymentVO(reconciliationPayment);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,71 @@
|
||||
package com.xunhong.erp.turbo.biz.app.service;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.api.ReconciliationInvoiceServiceI;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceCreateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceDestroyCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceUpdateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoiceListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoicePageQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoiceShowQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationInvoiceVO;
|
||||
import com.xunhong.erp.turbo.base.dto.PageDTO;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.cmd.ReconciliationInvoiceCreateCmdExe;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.cmd.ReconciliationInvoiceDestroyCmdExe;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.cmd.ReconciliationInvoiceUpdateCmdExe;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.query.ReconciliationInvoiceListQryExe;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.query.ReconciliationInvoicePageQryExe;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.query.ReconciliationInvoiceShowQryExe;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@DubboService(interfaceClass = ReconciliationInvoiceServiceI.class, version = "1.0.0")
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationInvoiceServiceImpl implements ReconciliationInvoiceServiceI {
|
||||
|
||||
private final ReconciliationInvoiceCreateCmdExe reconciliationInvoiceCreateCmdExe;
|
||||
private final ReconciliationInvoiceUpdateCmdExe reconciliationInvoiceUpdateCmdExe;
|
||||
private final ReconciliationInvoicePageQryExe reconciliationInvoicePageQryExe;
|
||||
private final ReconciliationInvoiceListQryExe reconciliationInvoiceListQryExe;
|
||||
private final ReconciliationInvoiceShowQryExe reconciliationInvoiceShowQryExe;
|
||||
private final ReconciliationInvoiceDestroyCmdExe reconciliationInvoiceDestroyCmdExe;
|
||||
|
||||
@Override
|
||||
public ReconciliationInvoiceVO create(ReconciliationInvoiceCreateCmd reconciliationInvoiceCreateCmd) {
|
||||
return reconciliationInvoiceCreateCmdExe.execute(reconciliationInvoiceCreateCmd);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageDTO<ReconciliationInvoiceVO> page(ReconciliationInvoicePageQry reconciliationInvoicePageQry) {
|
||||
return PageDTO.of(reconciliationInvoicePageQryExe.execute(reconciliationInvoicePageQry));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ReconciliationInvoiceVO> list(ReconciliationInvoiceListQry reconciliationInvoiceListQry) {
|
||||
return reconciliationInvoiceListQryExe.execute(reconciliationInvoiceListQry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReconciliationInvoiceVO update(ReconciliationInvoiceUpdateCmd reconciliationInvoiceUpdateCmd) {
|
||||
return reconciliationInvoiceUpdateCmdExe.execute(reconciliationInvoiceUpdateCmd);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReconciliationInvoiceVO show(ReconciliationInvoiceShowQry reconciliationInvoiceShowQry) {
|
||||
return reconciliationInvoiceShowQryExe.execute(reconciliationInvoiceShowQry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy(ReconciliationInvoiceDestroyCmd reconciliationInvoiceDestroyCmd) {
|
||||
reconciliationInvoiceDestroyCmdExe.execute(reconciliationInvoiceDestroyCmd);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,71 @@
|
||||
package com.xunhong.erp.turbo.biz.app.service;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.api.ReconciliationPaymentServiceI;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentCreateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentDestroyCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentUpdateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentPageQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentShowQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationPaymentVO;
|
||||
import com.xunhong.erp.turbo.base.dto.PageDTO;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.cmd.ReconciliationPaymentCreateCmdExe;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.cmd.ReconciliationPaymentDestroyCmdExe;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.cmd.ReconciliationPaymentUpdateCmdExe;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.query.ReconciliationPaymentListQryExe;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.query.ReconciliationPaymentPageQryExe;
|
||||
import com.xunhong.erp.turbo.biz.app.executor.query.ReconciliationPaymentShowQryExe;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@DubboService(interfaceClass = ReconciliationPaymentServiceI.class, version = "1.0.0")
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationPaymentServiceImpl implements ReconciliationPaymentServiceI {
|
||||
|
||||
private final ReconciliationPaymentCreateCmdExe reconciliationPaymentCreateCmdExe;
|
||||
private final ReconciliationPaymentUpdateCmdExe reconciliationPaymentUpdateCmdExe;
|
||||
private final ReconciliationPaymentPageQryExe reconciliationPaymentPageQryExe;
|
||||
private final ReconciliationPaymentListQryExe reconciliationPaymentListQryExe;
|
||||
private final ReconciliationPaymentShowQryExe reconciliationPaymentShowQryExe;
|
||||
private final ReconciliationPaymentDestroyCmdExe reconciliationPaymentDestroyCmdExe;
|
||||
|
||||
@Override
|
||||
public ReconciliationPaymentVO create(ReconciliationPaymentCreateCmd reconciliationPaymentCreateCmd) {
|
||||
return reconciliationPaymentCreateCmdExe.execute(reconciliationPaymentCreateCmd);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageDTO<ReconciliationPaymentVO> page(ReconciliationPaymentPageQry reconciliationPaymentPageQry) {
|
||||
return PageDTO.of(reconciliationPaymentPageQryExe.execute(reconciliationPaymentPageQry));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ReconciliationPaymentVO> list(ReconciliationPaymentListQry reconciliationPaymentListQry) {
|
||||
return reconciliationPaymentListQryExe.execute(reconciliationPaymentListQry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReconciliationPaymentVO update(ReconciliationPaymentUpdateCmd reconciliationPaymentUpdateCmd) {
|
||||
return reconciliationPaymentUpdateCmdExe.execute(reconciliationPaymentUpdateCmd);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReconciliationPaymentVO show(ReconciliationPaymentShowQry reconciliationPaymentShowQry) {
|
||||
return reconciliationPaymentShowQryExe.execute(reconciliationPaymentShowQry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy(ReconciliationPaymentDestroyCmd reconciliationPaymentDestroyCmd) {
|
||||
reconciliationPaymentDestroyCmdExe.execute(reconciliationPaymentDestroyCmd);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,78 @@
|
||||
package com.xunhong.erp.turbo.biz.domain.entity;
|
||||
|
||||
import com.alibaba.cola.domain.Entity;
|
||||
import com.alibaba.cola.dto.DTO;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.common.UploadFileItem;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Entity
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationInvoice extends DTO {
|
||||
|
||||
/**
|
||||
* 对账发票ID
|
||||
*/
|
||||
private Long reconciliationInvoiceId;
|
||||
|
||||
/**
|
||||
* 对账ID
|
||||
*/
|
||||
private Long reconciliationId;
|
||||
|
||||
/**
|
||||
* 对账发票编码
|
||||
*/
|
||||
private String invoiceSn;
|
||||
|
||||
/**
|
||||
* 经销商ID
|
||||
*/
|
||||
private Long dealerId;
|
||||
|
||||
/**
|
||||
* 经销商账户ID
|
||||
*/
|
||||
private Long accountId;
|
||||
|
||||
/**
|
||||
* 发票金额
|
||||
*/
|
||||
private BigDecimal invoiceAmount;
|
||||
|
||||
/**
|
||||
* 入账公司ID
|
||||
*/
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 发票日期
|
||||
*/
|
||||
private LocalDate invoiceDate;
|
||||
|
||||
/**
|
||||
* 发票图片(支持多张)
|
||||
*/
|
||||
private List<UploadFileItem> invoiceImg;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,95 @@
|
||||
package com.xunhong.erp.turbo.biz.domain.entity;
|
||||
|
||||
import com.alibaba.cola.domain.Entity;
|
||||
import com.alibaba.cola.dto.DTO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Entity
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationPayment extends DTO {
|
||||
|
||||
/**
|
||||
* 对账付款ID
|
||||
*/
|
||||
private Long reconciliationPaymentId;
|
||||
|
||||
/**
|
||||
* 对账ID
|
||||
*/
|
||||
private Long reconciliationId;
|
||||
|
||||
/**
|
||||
* 经销商ID
|
||||
*/
|
||||
private Long dealerId;
|
||||
|
||||
/**
|
||||
* 我方收款公司ID
|
||||
*/
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 我方收款公司账户ID
|
||||
*/
|
||||
private Long accountId;
|
||||
|
||||
/**
|
||||
* 账户类别:1_对公账户;2_私人账户
|
||||
*/
|
||||
private Boolean accountCategory;
|
||||
|
||||
/**
|
||||
* 账户类型:1_银行卡;2_支付宝;3_微信
|
||||
*/
|
||||
private Boolean accountType;
|
||||
|
||||
/**
|
||||
* 银行名称
|
||||
*/
|
||||
private String bankName;
|
||||
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* 开户公司名称/支付宝昵称/微信号
|
||||
*/
|
||||
private String accountName;
|
||||
|
||||
/**
|
||||
* 银行账号/支付宝账号/微信账号
|
||||
*/
|
||||
private String accountNumber;
|
||||
|
||||
/**
|
||||
* 回款时间
|
||||
*/
|
||||
private LocalDateTime returnAt;
|
||||
|
||||
/**
|
||||
* 回款金额
|
||||
*/
|
||||
private BigDecimal returnAmount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
package com.xunhong.erp.turbo.biz.domain.gateway;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceCreateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceDestroyCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceUpdateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoiceListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoicePageQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoiceShowQry;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationInvoice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
public interface ReconciliationInvoiceGateway {
|
||||
ReconciliationInvoice save(ReconciliationInvoiceCreateCmd reconciliationInvoiceCreateCmd);
|
||||
|
||||
IPage<ReconciliationInvoice> page(ReconciliationInvoicePageQry reconciliationInvoicePageQry);
|
||||
|
||||
List<ReconciliationInvoice> list(ReconciliationInvoiceListQry reconciliationInvoiceListQry);
|
||||
|
||||
ReconciliationInvoice update(ReconciliationInvoiceUpdateCmd reconciliationInvoiceUpdateCmd);
|
||||
|
||||
ReconciliationInvoice show(ReconciliationInvoiceShowQry reconciliationInvoiceShowQry);
|
||||
|
||||
void destroy(ReconciliationInvoiceDestroyCmd reconciliationInvoiceDestroyCmd);
|
||||
}
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
package com.xunhong.erp.turbo.biz.domain.gateway;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentCreateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentDestroyCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentUpdateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentPageQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentShowQry;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationPayment;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
public interface ReconciliationPaymentGateway {
|
||||
ReconciliationPayment save(ReconciliationPaymentCreateCmd reconciliationPaymentCreateCmd);
|
||||
|
||||
IPage<ReconciliationPayment> page(ReconciliationPaymentPageQry reconciliationPaymentPageQry);
|
||||
|
||||
List<ReconciliationPayment> list(ReconciliationPaymentListQry reconciliationPaymentListQry);
|
||||
|
||||
ReconciliationPayment update(ReconciliationPaymentUpdateCmd reconciliationPaymentUpdateCmd);
|
||||
|
||||
ReconciliationPayment show(ReconciliationPaymentShowQry reconciliationPaymentShowQry);
|
||||
|
||||
void destroy(ReconciliationPaymentDestroyCmd reconciliationPaymentDestroyCmd);
|
||||
}
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
package com.xunhong.erp.turbo.biz.infrastructure.convert;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceCreateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceUpdateCmd;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationInvoice;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.entity.ReconciliationInvoiceDO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import org.mapstruct.NullValueCheckStrategy;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
|
||||
public interface ReconciliationInvoiceConvert {
|
||||
|
||||
ReconciliationInvoice toReconciliationInvoice(ReconciliationInvoiceDO reconciliationInvoiceDO);
|
||||
|
||||
@Mapping(target = "version", ignore = true)
|
||||
@Mapping(target = "updatedAt", ignore = true)
|
||||
@Mapping(target = "isDelete", ignore = true)
|
||||
@Mapping(target = "createdAt", ignore = true)
|
||||
ReconciliationInvoiceDO toReconciliationInvoiceDO(ReconciliationInvoiceCreateCmd reconciliationInvoiceCreateCmd);
|
||||
|
||||
@Mapping(target = "version", ignore = true)
|
||||
@Mapping(target = "updatedAt", ignore = true)
|
||||
@Mapping(target = "isDelete", ignore = true)
|
||||
@Mapping(target = "createdAt", ignore = true)
|
||||
void toReconciliationInvoiceDO(@MappingTarget ReconciliationInvoiceDO reconciliationInvoiceDO, ReconciliationInvoiceUpdateCmd reconciliationInvoiceUpdateCmd);
|
||||
}
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
package com.xunhong.erp.turbo.biz.infrastructure.convert;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentCreateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentUpdateCmd;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationPayment;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.entity.ReconciliationPaymentDO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import org.mapstruct.NullValueCheckStrategy;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
|
||||
public interface ReconciliationPaymentConvert {
|
||||
|
||||
ReconciliationPayment toReconciliationPayment(ReconciliationPaymentDO reconciliationPaymentDO);
|
||||
|
||||
@Mapping(target = "version", ignore = true)
|
||||
@Mapping(target = "updatedAt", ignore = true)
|
||||
@Mapping(target = "isDelete", ignore = true)
|
||||
@Mapping(target = "createdAt", ignore = true)
|
||||
ReconciliationPaymentDO toReconciliationPaymentDO(ReconciliationPaymentCreateCmd reconciliationPaymentCreateCmd);
|
||||
|
||||
@Mapping(target = "version", ignore = true)
|
||||
@Mapping(target = "updatedAt", ignore = true)
|
||||
@Mapping(target = "isDelete", ignore = true)
|
||||
@Mapping(target = "createdAt", ignore = true)
|
||||
void toReconciliationPaymentDO(@MappingTarget ReconciliationPaymentDO reconciliationPaymentDO, ReconciliationPaymentUpdateCmd reconciliationPaymentUpdateCmd);
|
||||
}
|
||||
|
||||
@ -138,16 +138,5 @@ public class PaymentRecordDO extends BaseDO<PaymentRecordDO> {
|
||||
|
||||
@TableField(exist = false)
|
||||
private OrderCostDO orderCostDO;
|
||||
|
||||
/**
|
||||
* 付款记录编号
|
||||
*
|
||||
* @return 付款记录编号
|
||||
*/
|
||||
public String generatePaymentRecordSn() {
|
||||
// 生成类似 PAY20251105001 格式的编号
|
||||
return "PAY" + java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.BASIC_ISO_DATE)
|
||||
+ String.format("%03d", System.currentTimeMillis() % 1000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -94,10 +94,5 @@ public class ReconciliationDO extends BaseDO<ReconciliationDO> {
|
||||
|
||||
@TableField(exist = false)
|
||||
private DealerDO dealerDO;
|
||||
|
||||
public String generateReconciliationSn() {
|
||||
return "DZ" + java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.BASIC_ISO_DATE)
|
||||
+ String.format("%03d", System.currentTimeMillis() % 1000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,93 @@
|
||||
package com.xunhong.erp.turbo.biz.infrastructure.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.common.UploadFileItem;
|
||||
import com.xunhong.erp.turbo.datasource.domain.entity.BaseDO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "reconciliation_invoice", autoResultMap = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationInvoiceDO extends BaseDO<ReconciliationInvoiceDO> {
|
||||
|
||||
/**
|
||||
* 对账发票ID
|
||||
*/
|
||||
@TableId(value = "reconciliation_invoice_id", type = IdType.ASSIGN_ID)
|
||||
private Long reconciliationInvoiceId;
|
||||
|
||||
/**
|
||||
* 对账ID
|
||||
*/
|
||||
@TableField(value = "reconciliation_id")
|
||||
private Long reconciliationId;
|
||||
|
||||
/**
|
||||
* 对账发票编码
|
||||
*/
|
||||
@TableField(value = "invoice_sn")
|
||||
private String invoiceSn;
|
||||
|
||||
/**
|
||||
* 经销商ID
|
||||
*/
|
||||
@TableField(value = "dealer_id")
|
||||
private Long dealerId;
|
||||
|
||||
/**
|
||||
* 经销商账户ID
|
||||
*/
|
||||
@TableField(value = "account_id")
|
||||
private Long accountId;
|
||||
|
||||
/**
|
||||
* 发票金额
|
||||
*/
|
||||
@TableField(value = "invoice_amount")
|
||||
private BigDecimal invoiceAmount;
|
||||
|
||||
/**
|
||||
* 入账公司ID
|
||||
*/
|
||||
@TableField(value = "company_id")
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 发票日期
|
||||
*/
|
||||
@TableField(value = "invoice_date")
|
||||
private LocalDate invoiceDate;
|
||||
|
||||
/**
|
||||
* 发票图片(支持多张)
|
||||
*/
|
||||
@TableField(value = "invoice_img", typeHandler = JacksonTypeHandler.class)
|
||||
private List<UploadFileItem> invoiceImg;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField(value = "remark")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(value = "created_at")
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,107 @@
|
||||
package com.xunhong.erp.turbo.biz.infrastructure.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.xunhong.erp.turbo.datasource.domain.entity.BaseDO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "reconciliation_payment")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationPaymentDO extends BaseDO<ReconciliationPaymentDO> {
|
||||
|
||||
/**
|
||||
* 对账付款ID
|
||||
*/
|
||||
@TableId(value = "reconciliation_payment_id", type = IdType.ASSIGN_ID)
|
||||
private Long reconciliationPaymentId;
|
||||
|
||||
/**
|
||||
* 对账ID
|
||||
*/
|
||||
@TableField(value = "reconciliation_id")
|
||||
private Long reconciliationId;
|
||||
|
||||
/**
|
||||
* 经销商ID
|
||||
*/
|
||||
@TableField(value = "dealer_id")
|
||||
private Long dealerId;
|
||||
|
||||
/**
|
||||
* 我方收款公司ID
|
||||
*/
|
||||
@TableField(value = "company_id")
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 我方收款公司账户ID
|
||||
*/
|
||||
@TableField(value = "account_id")
|
||||
private Long accountId;
|
||||
|
||||
/**
|
||||
* 账户类别:1_对公账户;2_私人账户
|
||||
*/
|
||||
@TableField(value = "account_category")
|
||||
private Boolean accountCategory;
|
||||
|
||||
/**
|
||||
* 账户类型:1_银行卡;2_支付宝;3_微信
|
||||
*/
|
||||
@TableField(value = "account_type")
|
||||
private Boolean accountType;
|
||||
|
||||
/**
|
||||
* 银行名称
|
||||
*/
|
||||
@TableField(value = "bank_name")
|
||||
private String bankName;
|
||||
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
@TableField(value = "branch_name")
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* 开户公司名称/支付宝昵称/微信号
|
||||
*/
|
||||
@TableField(value = "account_name")
|
||||
private String accountName;
|
||||
|
||||
/**
|
||||
* 银行账号/支付宝账号/微信账号
|
||||
*/
|
||||
@TableField(value = "account_number")
|
||||
private String accountNumber;
|
||||
|
||||
/**
|
||||
* 回款时间
|
||||
*/
|
||||
@TableField(value = "return_at")
|
||||
private LocalDateTime returnAt;
|
||||
|
||||
/**
|
||||
* 回款金额
|
||||
*/
|
||||
@TableField(value = "return_amount")
|
||||
private BigDecimal returnAmount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField(value = "remark")
|
||||
private String remark;
|
||||
|
||||
}
|
||||
|
||||
@ -20,6 +20,7 @@ import com.xunhong.erp.turbo.biz.infrastructure.convert.OrderCostConvert;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.convert.PaymentRecordConvert;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.entity.*;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.mapper.*;
|
||||
import com.xunhong.erp.turbo.biz.util.SerialNumberGenerator;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Repository;
|
||||
@ -137,7 +138,7 @@ public class OrderCostGatewayImpl implements OrderCostGateway {
|
||||
}
|
||||
|
||||
PaymentRecordDO paymentRecordDO = orderCostConvert.toPaymentRecordDO(orderCostPayCmd);
|
||||
paymentRecordDO.setPaymentRecordSn(paymentRecordDO.generatePaymentRecordSn());
|
||||
paymentRecordDO.setPaymentRecordSn(SerialNumberGenerator.generate("PAY"));
|
||||
paymentRecordDO.setTargetId(orderCostPayCmd.getOrderCostId());
|
||||
paymentRecordDO.setTargetType(PaymentTargetTypeEnum.ORDER_COST);
|
||||
paymentRecordDO.setPaidState(PaymentRecordStateEnum.PAID);
|
||||
|
||||
@ -18,6 +18,7 @@ import com.xunhong.erp.turbo.biz.domain.gateway.OrderGateway;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.convert.*;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.entity.*;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.mapper.*;
|
||||
import com.xunhong.erp.turbo.biz.util.SerialNumberGenerator;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@ -430,7 +431,7 @@ public class OrderGatewayImpl implements OrderGateway {
|
||||
orderShipDO.setOrderShipId(null);
|
||||
// 生成发货单编号
|
||||
if (StrUtil.isBlank(orderShipDO.getOrderSn())) {
|
||||
orderShipDO.setOrderSn("FH" + generateOrderShipSn());
|
||||
orderShipDO.setOrderSn(SerialNumberGenerator.generate("FH"));
|
||||
}
|
||||
shipsToInsert.add(orderShipDO);
|
||||
}
|
||||
@ -716,17 +717,6 @@ public class OrderGatewayImpl implements OrderGateway {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成发货单编号
|
||||
*
|
||||
* @return 发货单编号
|
||||
*/
|
||||
private String generateOrderShipSn() {
|
||||
// 生成类似 SO20251105001 格式的编号
|
||||
return java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.BASIC_ISO_DATE)
|
||||
+ String.format("%03d", System.currentTimeMillis() % 1000);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rejectFinal(OrderRejectFinalCmd orderRejectFinalCmd) {
|
||||
LambdaQueryWrapper<OrderDO> queryWrapper = Wrappers.lambdaQuery(OrderDO.class);
|
||||
@ -762,7 +752,7 @@ public class OrderGatewayImpl implements OrderGateway {
|
||||
if (orderStep1Cmd.getOrderId() == null) {
|
||||
orderDO = orderConvert.toOrderDO(orderStep1Cmd);
|
||||
orderDO.setState(OrderStateEnum.DRAFT);
|
||||
orderDO.setOrderSn("CG" + generateOrderShipSn());
|
||||
orderDO.setOrderSn(SerialNumberGenerator.generate("CG"));
|
||||
orderDO.setType(orderStep1Cmd.getType());
|
||||
orderMapper.insert(orderDO);
|
||||
} else {
|
||||
@ -1000,15 +990,6 @@ public class OrderGatewayImpl implements OrderGateway {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成编码
|
||||
*/
|
||||
private String generateInvoiceSn() {
|
||||
// 生成类似 SO20251105001 格式的编号
|
||||
return java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.BASIC_ISO_DATE)
|
||||
+ String.format("%03d", System.currentTimeMillis() % 1000);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理供应商发票信息
|
||||
* 逻辑:
|
||||
@ -1049,7 +1030,7 @@ public class OrderGatewayImpl implements OrderGateway {
|
||||
newInvoice.setInvoiceImg(frontendInvoiceImg);
|
||||
newInvoice.setCreatedBy(orderStep2Cmd.getCreatedBy());
|
||||
newInvoice.setCreatedByName(orderStep2Cmd.getCreatedByName());
|
||||
newInvoice.setInvoiceSn("INV" + generateInvoiceSn());
|
||||
newInvoice.setInvoiceSn(SerialNumberGenerator.generate("INV"));
|
||||
|
||||
// 构建 orderSupplierInvoice 列表
|
||||
List<OrderSupplierInvoice> orderSupplierInvoiceList = buildOrderSupplierInvoiceList(supplierDO);
|
||||
|
||||
@ -24,6 +24,7 @@ import com.xunhong.erp.turbo.biz.infrastructure.convert.PaymentTaskConvert;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.convert.PaymentTaskSupplierConvert;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.entity.*;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.mapper.*;
|
||||
import com.xunhong.erp.turbo.biz.util.SerialNumberGenerator;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.ibatis.session.ExecutorType;
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
@ -60,22 +61,11 @@ public class PaymentTaskGatewayImpl implements PaymentTaskGateway {
|
||||
|
||||
private final PaymentRecordMapper paymentRecordMapper;
|
||||
|
||||
/**
|
||||
* 付款任务编号
|
||||
*
|
||||
* @return 付款任务编号
|
||||
*/
|
||||
private String generatePaymentTaskSn() {
|
||||
// 生成类似 SO20251105001 格式的编号
|
||||
return java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.BASIC_ISO_DATE)
|
||||
+ String.format("%03d", System.currentTimeMillis() % 1000);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public PaymentTask save(PaymentTaskCreateCmd paymentTaskCreateCmd) {
|
||||
PaymentTaskDO paymentTaskDO = paymentTaskConvert.toPaymentTaskDO(paymentTaskCreateCmd);
|
||||
paymentTaskDO.setPaymentTaskSn("TASK" + generatePaymentTaskSn());
|
||||
paymentTaskDO.setPaymentTaskSn(SerialNumberGenerator.generate("TASK"));
|
||||
paymentTaskMapper.insert(paymentTaskDO);
|
||||
|
||||
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
|
||||
@ -239,7 +229,7 @@ public class PaymentTaskGatewayImpl implements PaymentTaskGateway {
|
||||
|
||||
// 创建付款记录
|
||||
PaymentRecordDO paymentRecordDO = new PaymentRecordDO();
|
||||
paymentRecordDO.setPaymentRecordSn(paymentRecordDO.generatePaymentRecordSn());
|
||||
paymentRecordDO.setPaymentRecordSn(SerialNumberGenerator.generate("PAY"));
|
||||
paymentRecordDO.setPaymentTaskId(paymentTaskPayCmd.getPaymentTaskId());
|
||||
paymentRecordDO.setTargetId(paymentTaskDO.getTargetId());
|
||||
paymentRecordDO.setTargetType(paymentTaskDO.getTaskType().equals(PaymentTaskTypeEnum.MELON_FARMER)
|
||||
|
||||
@ -22,6 +22,7 @@ import com.xunhong.erp.turbo.biz.infrastructure.convert.ReconciliationConvert;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.convert.ReconciliationItemConvert;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.entity.*;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.mapper.*;
|
||||
import com.xunhong.erp.turbo.biz.util.SerialNumberGenerator;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.ibatis.session.ExecutorType;
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
@ -60,7 +61,7 @@ public class ReconciliationGatewayImpl implements ReconciliationGateway {
|
||||
@Transactional
|
||||
public Reconciliation save(ReconciliationCreateCmd reconciliationCreateCmd) {
|
||||
ReconciliationDO reconciliationDO = reconciliationConvert.toReconciliationDO(reconciliationCreateCmd);
|
||||
reconciliationDO.setReconciliationSn(reconciliationDO.generateReconciliationSn());
|
||||
reconciliationDO.setReconciliationSn(SerialNumberGenerator.generate("DZ"));
|
||||
reconciliationDO.setState(ReconciliationStateEnum.PENDING);
|
||||
|
||||
reconciliationMapper.insert(reconciliationDO);
|
||||
|
||||
@ -0,0 +1,94 @@
|
||||
package com.xunhong.erp.turbo.biz.infrastructure.gateway;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceCreateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceDestroyCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceUpdateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoiceListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoicePageQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoiceShowQry;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationInvoice;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.ReconciliationInvoiceGateway;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.convert.ReconciliationInvoiceConvert;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.entity.ReconciliationInvoiceDO;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.mapper.ReconciliationInvoiceMapper;
|
||||
import com.xunhong.erp.turbo.biz.util.SerialNumberGenerator;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationInvoiceGatewayImpl implements ReconciliationInvoiceGateway {
|
||||
private final ReconciliationInvoiceMapper reconciliationInvoiceMapper;
|
||||
private final ReconciliationInvoiceConvert reconciliationInvoiceConvert;
|
||||
|
||||
@Override
|
||||
public ReconciliationInvoice save(ReconciliationInvoiceCreateCmd reconciliationInvoiceCreateCmd) {
|
||||
ReconciliationInvoiceDO reconciliationInvoiceDO = reconciliationInvoiceConvert.toReconciliationInvoiceDO(reconciliationInvoiceCreateCmd);
|
||||
reconciliationInvoiceDO.setInvoiceSn(SerialNumberGenerator.generate("INV"));
|
||||
reconciliationInvoiceMapper.insert(reconciliationInvoiceDO);
|
||||
|
||||
return reconciliationInvoiceConvert.toReconciliationInvoice(reconciliationInvoiceDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<ReconciliationInvoice> page(ReconciliationInvoicePageQry reconciliationInvoicePageQry) {
|
||||
LambdaQueryWrapper<ReconciliationInvoiceDO> queryWrapper = Wrappers.lambdaQuery(ReconciliationInvoiceDO.class);
|
||||
queryWrapper.orderByDesc(ReconciliationInvoiceDO::getCreatedAt);
|
||||
|
||||
IPage<ReconciliationInvoiceDO> page = new Page<>(reconciliationInvoicePageQry.getPageIndex(), reconciliationInvoicePageQry.getPageSize());
|
||||
page = reconciliationInvoiceMapper.selectPage(page, queryWrapper);
|
||||
|
||||
return page.convert(reconciliationInvoiceConvert::toReconciliationInvoice);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ReconciliationInvoice> list(ReconciliationInvoiceListQry reconciliationInvoiceListQry) {
|
||||
LambdaQueryWrapper<ReconciliationInvoiceDO> queryWrapper = Wrappers.lambdaQuery(ReconciliationInvoiceDO.class);
|
||||
List<ReconciliationInvoiceDO> reconciliationInvoiceDOList = reconciliationInvoiceMapper.selectList(queryWrapper);
|
||||
return reconciliationInvoiceDOList.stream().map(reconciliationInvoiceConvert::toReconciliationInvoice).toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReconciliationInvoice update(ReconciliationInvoiceUpdateCmd reconciliationInvoiceUpdateCmd) {
|
||||
LambdaQueryWrapper<ReconciliationInvoiceDO> queryWrapper = Wrappers.lambdaQuery(ReconciliationInvoiceDO.class);
|
||||
queryWrapper.eq(ReconciliationInvoiceDO::getReconciliationInvoiceId, reconciliationInvoiceUpdateCmd.getReconciliationInvoiceId());
|
||||
queryWrapper.last("limit 1");
|
||||
|
||||
ReconciliationInvoiceDO reconciliationInvoiceDO = reconciliationInvoiceMapper.selectOne(queryWrapper);
|
||||
|
||||
reconciliationInvoiceConvert.toReconciliationInvoiceDO(reconciliationInvoiceDO, reconciliationInvoiceUpdateCmd);
|
||||
reconciliationInvoiceMapper.updateById(reconciliationInvoiceDO);
|
||||
|
||||
return reconciliationInvoiceConvert.toReconciliationInvoice(reconciliationInvoiceDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReconciliationInvoice show(ReconciliationInvoiceShowQry reconciliationInvoiceShowQry) {
|
||||
LambdaQueryWrapper<ReconciliationInvoiceDO> queryWrapper = Wrappers.lambdaQuery(ReconciliationInvoiceDO.class);
|
||||
queryWrapper.eq(ReconciliationInvoiceDO::getReconciliationInvoiceId, reconciliationInvoiceShowQry.getReconciliationInvoiceId());
|
||||
queryWrapper.last("limit 1");
|
||||
|
||||
ReconciliationInvoiceDO reconciliationInvoiceDO = reconciliationInvoiceMapper.selectOne(queryWrapper);
|
||||
return reconciliationInvoiceConvert.toReconciliationInvoice(reconciliationInvoiceDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy(ReconciliationInvoiceDestroyCmd reconciliationInvoiceDestroyCmd) {
|
||||
LambdaQueryWrapper<ReconciliationInvoiceDO> queryWrapper = Wrappers.lambdaQuery(ReconciliationInvoiceDO.class);
|
||||
queryWrapper.eq(ReconciliationInvoiceDO::getReconciliationInvoiceId, reconciliationInvoiceDestroyCmd.getReconciliationInvoiceId());
|
||||
queryWrapper.last("limit 1");
|
||||
|
||||
ReconciliationInvoiceDO reconciliationInvoiceDO = reconciliationInvoiceMapper.selectOne(queryWrapper);
|
||||
reconciliationInvoiceDO.deleteById();
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,92 @@
|
||||
package com.xunhong.erp.turbo.biz.infrastructure.gateway;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentCreateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentDestroyCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentUpdateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentPageQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentShowQry;
|
||||
import com.xunhong.erp.turbo.biz.domain.entity.ReconciliationPayment;
|
||||
import com.xunhong.erp.turbo.biz.domain.gateway.ReconciliationPaymentGateway;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.convert.ReconciliationPaymentConvert;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.entity.ReconciliationPaymentDO;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.mapper.ReconciliationPaymentMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
public class ReconciliationPaymentGatewayImpl implements ReconciliationPaymentGateway {
|
||||
private final ReconciliationPaymentMapper reconciliationPaymentMapper;
|
||||
private final ReconciliationPaymentConvert reconciliationPaymentConvert;
|
||||
|
||||
@Override
|
||||
public ReconciliationPayment save(ReconciliationPaymentCreateCmd reconciliationPaymentCreateCmd) {
|
||||
ReconciliationPaymentDO reconciliationPaymentDO = reconciliationPaymentConvert.toReconciliationPaymentDO(reconciliationPaymentCreateCmd);
|
||||
reconciliationPaymentMapper.insert(reconciliationPaymentDO);
|
||||
|
||||
return reconciliationPaymentConvert.toReconciliationPayment(reconciliationPaymentDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<ReconciliationPayment> page(ReconciliationPaymentPageQry reconciliationPaymentPageQry) {
|
||||
LambdaQueryWrapper<ReconciliationPaymentDO> queryWrapper = Wrappers.lambdaQuery(ReconciliationPaymentDO.class);
|
||||
queryWrapper.orderByDesc(ReconciliationPaymentDO::getCreatedAt);
|
||||
|
||||
IPage<ReconciliationPaymentDO> page = new Page<>(reconciliationPaymentPageQry.getPageIndex(), reconciliationPaymentPageQry.getPageSize());
|
||||
page = reconciliationPaymentMapper.selectPage(page, queryWrapper);
|
||||
|
||||
return page.convert(reconciliationPaymentConvert::toReconciliationPayment);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ReconciliationPayment> list(ReconciliationPaymentListQry reconciliationPaymentListQry) {
|
||||
LambdaQueryWrapper<ReconciliationPaymentDO> queryWrapper = Wrappers.lambdaQuery(ReconciliationPaymentDO.class);
|
||||
List<ReconciliationPaymentDO> reconciliationPaymentDOList = reconciliationPaymentMapper.selectList(queryWrapper);
|
||||
return reconciliationPaymentDOList.stream().map(reconciliationPaymentConvert::toReconciliationPayment).toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReconciliationPayment update(ReconciliationPaymentUpdateCmd reconciliationPaymentUpdateCmd) {
|
||||
LambdaQueryWrapper<ReconciliationPaymentDO> queryWrapper = Wrappers.lambdaQuery(ReconciliationPaymentDO.class);
|
||||
queryWrapper.eq(ReconciliationPaymentDO::getReconciliationPaymentId, reconciliationPaymentUpdateCmd.getReconciliationPaymentId());
|
||||
queryWrapper.last("limit 1");
|
||||
|
||||
ReconciliationPaymentDO reconciliationPaymentDO = reconciliationPaymentMapper.selectOne(queryWrapper);
|
||||
|
||||
reconciliationPaymentConvert.toReconciliationPaymentDO(reconciliationPaymentDO, reconciliationPaymentUpdateCmd);
|
||||
reconciliationPaymentMapper.updateById(reconciliationPaymentDO);
|
||||
|
||||
return reconciliationPaymentConvert.toReconciliationPayment(reconciliationPaymentDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReconciliationPayment show(ReconciliationPaymentShowQry reconciliationPaymentShowQry) {
|
||||
LambdaQueryWrapper<ReconciliationPaymentDO> queryWrapper = Wrappers.lambdaQuery(ReconciliationPaymentDO.class);
|
||||
queryWrapper.eq(ReconciliationPaymentDO::getReconciliationPaymentId, reconciliationPaymentShowQry.getReconciliationPaymentId());
|
||||
queryWrapper.last("limit 1");
|
||||
|
||||
ReconciliationPaymentDO reconciliationPaymentDO = reconciliationPaymentMapper.selectOne(queryWrapper);
|
||||
return reconciliationPaymentConvert.toReconciliationPayment(reconciliationPaymentDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy(ReconciliationPaymentDestroyCmd reconciliationPaymentDestroyCmd) {
|
||||
LambdaQueryWrapper<ReconciliationPaymentDO> queryWrapper = Wrappers.lambdaQuery(ReconciliationPaymentDO.class);
|
||||
queryWrapper.eq(ReconciliationPaymentDO::getReconciliationPaymentId, reconciliationPaymentDestroyCmd.getReconciliationPaymentId());
|
||||
queryWrapper.last("limit 1");
|
||||
|
||||
ReconciliationPaymentDO reconciliationPaymentDO = reconciliationPaymentMapper.selectOne(queryWrapper);
|
||||
reconciliationPaymentDO.deleteById();
|
||||
}
|
||||
}
|
||||
|
||||
@ -20,6 +20,7 @@ import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderSupplierDO;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.entity.SupplierInvoiceDO;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderSupplierMapper;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.mapper.SupplierInvoiceMapper;
|
||||
import com.xunhong.erp.turbo.biz.util.SerialNumberGenerator;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@ -38,20 +39,11 @@ public class SupplierInvoiceGatewayImpl implements SupplierInvoiceGateway {
|
||||
|
||||
private final OrderSupplierMapper orderSupplierMapper;
|
||||
|
||||
/**
|
||||
* 生成编码
|
||||
*/
|
||||
private String generateInvoiceSn() {
|
||||
// 生成类似 SO20251105001 格式的编号
|
||||
return java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.BASIC_ISO_DATE)
|
||||
+ String.format("%03d", System.currentTimeMillis() % 1000);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public SupplierInvoice save(SupplierInvoiceCreateCmd supplierInvoiceCreateCmd) {
|
||||
SupplierInvoiceDO supplierInvoiceDO = supplierInvoiceConvert.toInvoiceDO(supplierInvoiceCreateCmd);
|
||||
supplierInvoiceDO.setInvoiceSn("INV" + generateInvoiceSn());
|
||||
supplierInvoiceDO.setInvoiceSn(SerialNumberGenerator.generate("INV"));
|
||||
supplierInvoiceMapper.insert(supplierInvoiceDO);
|
||||
|
||||
List<Long> orderSupplierIdList = supplierInvoiceCreateCmd.getOrderSupplierInvoiceList().stream().map(OrderSupplierInvoice::getOrderSupplierId).toList();
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
package com.xunhong.erp.turbo.biz.infrastructure.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.entity.ReconciliationInvoiceDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Mapper
|
||||
public interface ReconciliationInvoiceMapper extends BaseMapper<ReconciliationInvoiceDO> {
|
||||
}
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
package com.xunhong.erp.turbo.biz.infrastructure.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.xunhong.erp.turbo.biz.infrastructure.entity.ReconciliationPaymentDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Mapper
|
||||
public interface ReconciliationPaymentMapper extends BaseMapper<ReconciliationPaymentDO> {
|
||||
}
|
||||
|
||||
@ -0,0 +1,134 @@
|
||||
package com.xunhong.erp.turbo.biz.util;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
/**
|
||||
* 编号生成工具类
|
||||
* <p>
|
||||
* 用于生成各类业务编号,格式为:前缀 + 日期(YYYYMMDD) + 序号
|
||||
* 例如:DZ20250113001, INV20250113002
|
||||
*
|
||||
* @author shenyifei
|
||||
*/
|
||||
public class SerialNumberGenerator {
|
||||
|
||||
/**
|
||||
* 日期格式化器 - 基本格式(YYYYMMDD)
|
||||
*/
|
||||
private static final DateTimeFormatter BASIC_DATE_FORMATTER = DateTimeFormatter.BASIC_ISO_DATE;
|
||||
|
||||
/**
|
||||
* 默认序号位数
|
||||
*/
|
||||
private static final int DEFAULT_SEQUENCE_DIGITS = 3;
|
||||
|
||||
/**
|
||||
* 默认序号范围(0-999)
|
||||
*/
|
||||
private static final int MAX_SEQUENCE = 1000;
|
||||
|
||||
/**
|
||||
* 私有构造函数,防止实例化
|
||||
*/
|
||||
private SerialNumberGenerator() {
|
||||
throw new UnsupportedOperationException("Utility class cannot be instantiated");
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成编号(不带前缀)
|
||||
* <p>
|
||||
* 格式:YYYYMMDD + 序号(3位)
|
||||
* 例如:20250113001
|
||||
*
|
||||
* @return 编号字符串
|
||||
*/
|
||||
public static String generate() {
|
||||
return generate(null, DEFAULT_SEQUENCE_DIGITS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成编号(带前缀)
|
||||
* <p>
|
||||
* 格式:前缀 + YYYYMMDD + 序号(3位)
|
||||
* 例如:DZ20250113001
|
||||
*
|
||||
* @param prefix 编号前缀(可为空)
|
||||
* @return 编号字符串
|
||||
*/
|
||||
public static String generate(String prefix) {
|
||||
return generate(prefix, DEFAULT_SEQUENCE_DIGITS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成编号(自定义序号位数)
|
||||
* <p>
|
||||
* 格式:前缀 + YYYYMMDD + 序号
|
||||
* 例如:DZ20250113001(3位序号)、DZ20250113000001(5位序号)
|
||||
*
|
||||
* @param prefix 编号前缀(可为空)
|
||||
* @param sequenceDigits 序号位数
|
||||
* @return 编号字符串
|
||||
*/
|
||||
public static String generate(String prefix, int sequenceDigits) {
|
||||
String datePart = LocalDate.now().format(BASIC_DATE_FORMATTER);
|
||||
int sequence = (int) (System.currentTimeMillis() % getMaxSequence(sequenceDigits));
|
||||
String sequencePart = String.format("%0" + sequenceDigits + "d", sequence);
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (prefix != null && !prefix.isEmpty()) {
|
||||
sb.append(prefix);
|
||||
}
|
||||
sb.append(datePart).append(sequencePart);
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成日期部分(YYYYMMDD)
|
||||
*
|
||||
* @return 日期字符串
|
||||
*/
|
||||
public static String generateDatePart() {
|
||||
return LocalDate.now().format(BASIC_DATE_FORMATTER);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成序号部分
|
||||
*
|
||||
* @param digits 序号位数
|
||||
* @return 序号字符串
|
||||
*/
|
||||
public static String generateSequencePart(int digits) {
|
||||
int sequence = (int) (System.currentTimeMillis() % getMaxSequence(digits));
|
||||
return String.format("%0" + digits + "d", sequence);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定位数的最大序号
|
||||
*
|
||||
* @param digits 序号位数
|
||||
* @return 最大序号(10的digits次方)
|
||||
*/
|
||||
private static int getMaxSequence(int digits) {
|
||||
if (digits <= 0) {
|
||||
throw new IllegalArgumentException("Sequence digits must be positive");
|
||||
}
|
||||
if (digits > 9) {
|
||||
throw new IllegalArgumentException("Sequence digits cannot exceed 9");
|
||||
}
|
||||
return (int) Math.pow(10, digits);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成编号(使用当前时间戳的低3位作为序号)
|
||||
* <p>
|
||||
* 与旧代码兼容的方法,生成格式:YYYYMMDD + 3位序号
|
||||
*
|
||||
* @return 编号字符串
|
||||
*/
|
||||
public static String generateLegacy() {
|
||||
return LocalDate.now().format(BASIC_DATE_FORMATTER)
|
||||
+ String.format("%03d", System.currentTimeMillis() % MAX_SEQUENCE);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.xunhong.erp.turbo.biz.infrastructure.mapper.ReconciliationPaymentMapper">
|
||||
<resultMap id="BaseResultMap" type="com.xunhong.erp.turbo.biz.infrastructure.entity.ReconciliationPaymentDO">
|
||||
<result property="reconciliationPaymentId" column="reconciliation_payment_id"/>
|
||||
<result property="reconciliationId" column="reconciliation_id"/>
|
||||
<result property="dealerId" column="dealer_id"/>
|
||||
<result property="companyId" column="company_id"/>
|
||||
<result property="accountId" column="account_id"/>
|
||||
<result property="accountCategory" column="account_category"/>
|
||||
<result property="accountType" column="account_type"/>
|
||||
<result property="bankName" column="bank_name"/>
|
||||
<result property="branchName" column="branch_name"/>
|
||||
<result property="accountName" column="account_name"/>
|
||||
<result property="accountNumber" column="account_number"/>
|
||||
<result property="returnAt" column="return_at"/>
|
||||
<result property="returnAmount" column="return_amount"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createdAt" column="created_at"/>
|
||||
<result property="createdAt" column="created_at"/>
|
||||
<result property="updatedAt" column="updated_at"/>
|
||||
<result property="isDelete" column="is_delete"/>
|
||||
<result property="version" column="version"/>
|
||||
</resultMap>
|
||||
</mapper>
|
||||
|
||||
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.xunhong.erp.turbo.biz.infrastructure.mapper.ReconciliationInvoiceMapper">
|
||||
<resultMap id="BaseResultMap" type="com.xunhong.erp.turbo.biz.infrastructure.entity.ReconciliationInvoiceDO">
|
||||
<result property="reconciliationInvoiceId" column="reconciliation_invoice_id"/>
|
||||
<result property="reconciliationId" column="reconciliation_id"/>
|
||||
<result property="invoiceSn" column="invoice_sn"/>
|
||||
<result property="dealerId" column="dealer_id"/>
|
||||
<result property="accountId" column="account_id"/>
|
||||
<result property="invoiceAmount" column="invoice_amount"/>
|
||||
<result property="companyId" column="company_id"/>
|
||||
<result property="invoiceDate" column="invoice_date"/>
|
||||
<result property="invoiceImg" column="invoice_img"
|
||||
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createdAt" column="created_at"/>
|
||||
<result property="createdAt" column="created_at"/>
|
||||
<result property="updatedAt" column="updated_at"/>
|
||||
<result property="isDelete" column="is_delete"/>
|
||||
<result property="version" column="version"/>
|
||||
</resultMap>
|
||||
</mapper>
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
package com.xunhong.erp.turbo.api.biz.api;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceCreateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceDestroyCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationInvoiceUpdateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoiceListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoicePageQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationInvoiceShowQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationInvoiceVO;
|
||||
import com.xunhong.erp.turbo.base.dto.PageDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
public interface ReconciliationInvoiceServiceI {
|
||||
ReconciliationInvoiceVO create(ReconciliationInvoiceCreateCmd reconciliationInvoiceCreateCmd);
|
||||
|
||||
PageDTO<ReconciliationInvoiceVO> page(ReconciliationInvoicePageQry reconciliationInvoicePageQry);
|
||||
|
||||
List<ReconciliationInvoiceVO> list(ReconciliationInvoiceListQry reconciliationInvoiceListQry);
|
||||
|
||||
ReconciliationInvoiceVO update(ReconciliationInvoiceUpdateCmd reconciliationInvoiceUpdateCmd);
|
||||
|
||||
ReconciliationInvoiceVO show(ReconciliationInvoiceShowQry reconciliationInvoiceShowQry);
|
||||
|
||||
void destroy(ReconciliationInvoiceDestroyCmd reconciliationInvoiceDestroyCmd);
|
||||
}
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
package com.xunhong.erp.turbo.api.biz.api;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentCreateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentDestroyCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.cmd.ReconciliationPaymentUpdateCmd;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentListQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentPageQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.qry.ReconciliationPaymentShowQry;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.vo.ReconciliationPaymentVO;
|
||||
import com.xunhong.erp.turbo.base.dto.PageDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
public interface ReconciliationPaymentServiceI {
|
||||
ReconciliationPaymentVO create(ReconciliationPaymentCreateCmd reconciliationPaymentCreateCmd);
|
||||
|
||||
PageDTO<ReconciliationPaymentVO> page(ReconciliationPaymentPageQry reconciliationPaymentPageQry);
|
||||
|
||||
List<ReconciliationPaymentVO> list(ReconciliationPaymentListQry reconciliationPaymentListQry);
|
||||
|
||||
ReconciliationPaymentVO update(ReconciliationPaymentUpdateCmd reconciliationPaymentUpdateCmd);
|
||||
|
||||
ReconciliationPaymentVO show(ReconciliationPaymentShowQry reconciliationPaymentShowQry);
|
||||
|
||||
void destroy(ReconciliationPaymentDestroyCmd reconciliationPaymentDestroyCmd);
|
||||
}
|
||||
|
||||
@ -0,0 +1,89 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.cmd;
|
||||
|
||||
import com.xunhong.erp.turbo.api.biz.dto.common.UploadFileItem;
|
||||
import com.xunhong.erp.turbo.base.dto.Command;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "对账发票创建")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationInvoiceCreateCmd extends Command {
|
||||
|
||||
/**
|
||||
* 对账发票ID
|
||||
*/
|
||||
@Schema(title = "对账发票ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long reconciliationInvoiceId;
|
||||
|
||||
/**
|
||||
* 对账ID
|
||||
*/
|
||||
@Schema(title = "对账ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long reconciliationId;
|
||||
|
||||
/**
|
||||
* 对账发票编码
|
||||
*/
|
||||
@Schema(title = "对账发票编码", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String invoiceSn;
|
||||
|
||||
/**
|
||||
* 经销商ID
|
||||
*/
|
||||
@Schema(title = "经销商ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long dealerId;
|
||||
|
||||
/**
|
||||
* 经销商账户ID
|
||||
*/
|
||||
@Schema(title = "经销商账户ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long accountId;
|
||||
|
||||
/**
|
||||
* 发票金额
|
||||
*/
|
||||
@Schema(title = "发票金额", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private BigDecimal invoiceAmount;
|
||||
|
||||
/**
|
||||
* 入账公司ID
|
||||
*/
|
||||
@Schema(title = "入账公司ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 发票日期
|
||||
*/
|
||||
@Schema(title = "发票日期", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDate invoiceDate;
|
||||
|
||||
/**
|
||||
* 发票图片(支持多张)
|
||||
*/
|
||||
@Schema(title = "发票图片(支持多张)")
|
||||
private List<UploadFileItem> invoiceImg;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@Schema(title = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Schema(title = "创建时间")
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.cmd;
|
||||
|
||||
import com.xunhong.erp.turbo.base.dto.Command;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "删除对账发票")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationInvoiceDestroyCmd extends Command {
|
||||
|
||||
@Schema(title = "对账发票ID", requiredMode = Schema.RequiredMode.REQUIRED, type = "string")
|
||||
private Long reconciliationInvoiceId;
|
||||
}
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.cmd;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "对账发票更新")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationInvoiceUpdateCmd extends ReconciliationInvoiceCreateCmd {
|
||||
|
||||
@Schema(title = "对账发票ID", requiredMode = Schema.RequiredMode.REQUIRED, type = "string")
|
||||
private Long reconciliationInvoiceId;
|
||||
}
|
||||
|
||||
@ -0,0 +1,110 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.cmd;
|
||||
|
||||
import com.xunhong.erp.turbo.base.dto.Command;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "对账付款创建")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationPaymentCreateCmd extends Command {
|
||||
|
||||
/**
|
||||
* 对账付款ID
|
||||
*/
|
||||
@Schema(title = "对账付款ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long reconciliationPaymentId;
|
||||
|
||||
/**
|
||||
* 对账ID
|
||||
*/
|
||||
@Schema(title = "对账ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long reconciliationId;
|
||||
|
||||
/**
|
||||
* 经销商ID
|
||||
*/
|
||||
@Schema(title = "经销商ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long dealerId;
|
||||
|
||||
/**
|
||||
* 我方收款公司ID
|
||||
*/
|
||||
@Schema(title = "我方收款公司ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 我方收款公司账户ID
|
||||
*/
|
||||
@Schema(title = "我方收款公司账户ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long accountId;
|
||||
|
||||
/**
|
||||
* 账户类别:1_对公账户;2_私人账户
|
||||
*/
|
||||
@Schema(title = "账户类别:1_对公账户;2_私人账户", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Boolean accountCategory;
|
||||
|
||||
/**
|
||||
* 账户类型:1_银行卡;2_支付宝;3_微信
|
||||
*/
|
||||
@Schema(title = "账户类型:1_银行卡;2_支付宝;3_微信", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Boolean accountType;
|
||||
|
||||
/**
|
||||
* 银行名称
|
||||
*/
|
||||
@Schema(title = "银行名称")
|
||||
private String bankName;
|
||||
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
@Schema(title = "支行名称")
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* 开户公司名称/支付宝昵称/微信号
|
||||
*/
|
||||
@Schema(title = "开户公司名称/支付宝昵称/微信号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String accountName;
|
||||
|
||||
/**
|
||||
* 银行账号/支付宝账号/微信账号
|
||||
*/
|
||||
@Schema(title = "银行账号/支付宝账号/微信账号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String accountNumber;
|
||||
|
||||
/**
|
||||
* 回款时间
|
||||
*/
|
||||
@Schema(title = "回款时间")
|
||||
private LocalDateTime returnAt;
|
||||
|
||||
/**
|
||||
* 回款金额
|
||||
*/
|
||||
@Schema(title = "回款金额", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private BigDecimal returnAmount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@Schema(title = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Schema(title = "创建时间")
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.cmd;
|
||||
|
||||
import com.xunhong.erp.turbo.base.dto.Command;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "删除对账付款")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationPaymentDestroyCmd extends Command {
|
||||
|
||||
@Schema(title = "对账付款ID", requiredMode = Schema.RequiredMode.REQUIRED, type = "string")
|
||||
private Long reconciliationPaymentId;
|
||||
}
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.cmd;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "对账付款更新")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationPaymentUpdateCmd extends ReconciliationPaymentCreateCmd {
|
||||
|
||||
@Schema(title = "对账付款ID", requiredMode = Schema.RequiredMode.REQUIRED, type = "string")
|
||||
private Long reconciliationPaymentId;
|
||||
}
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.qry;
|
||||
|
||||
import com.xunhong.erp.turbo.base.dto.Query;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "对账发票列表查询")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationInvoiceListQry extends Query {
|
||||
|
||||
@Schema(title = "对账发票ID", type = "string")
|
||||
private Long reconciliationInvoiceId;
|
||||
}
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.qry;
|
||||
|
||||
import com.xunhong.erp.turbo.base.dto.PageQuery;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "对账发票分页查询")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationInvoicePageQry extends PageQuery {
|
||||
|
||||
@Schema(title = "对账发票ID", type = "string")
|
||||
private Long reconciliationInvoiceId;
|
||||
}
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.qry;
|
||||
|
||||
import com.xunhong.erp.turbo.base.dto.Query;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "对账发票查询")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationInvoiceShowQry extends Query {
|
||||
|
||||
@Schema(title = "对账发票ID", type = "string")
|
||||
private Long reconciliationInvoiceId;
|
||||
}
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.qry;
|
||||
|
||||
import com.xunhong.erp.turbo.base.dto.Query;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "对账付款列表查询")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationPaymentListQry extends Query {
|
||||
|
||||
@Schema(title = "对账付款ID", type = "string")
|
||||
private Long reconciliationPaymentId;
|
||||
}
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.qry;
|
||||
|
||||
import com.xunhong.erp.turbo.base.dto.PageQuery;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "对账付款分页查询")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationPaymentPageQry extends PageQuery {
|
||||
|
||||
@Schema(title = "对账付款ID", type = "string")
|
||||
private Long reconciliationPaymentId;
|
||||
}
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.qry;
|
||||
|
||||
import com.xunhong.erp.turbo.base.dto.Query;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "对账付款查询")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationPaymentShowQry extends Query {
|
||||
|
||||
@Schema(title = "对账付款ID", type = "string")
|
||||
private Long reconciliationPaymentId;
|
||||
}
|
||||
|
||||
@ -0,0 +1,89 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.vo;
|
||||
|
||||
import com.alibaba.cola.dto.DTO;
|
||||
import com.xunhong.erp.turbo.api.biz.dto.common.UploadFileItem;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "对账发票")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationInvoiceVO extends DTO {
|
||||
|
||||
/**
|
||||
* 对账发票ID
|
||||
*/
|
||||
@Schema(title = "对账发票ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long reconciliationInvoiceId;
|
||||
|
||||
/**
|
||||
* 对账ID
|
||||
*/
|
||||
@Schema(title = "对账ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long reconciliationId;
|
||||
|
||||
/**
|
||||
* 对账发票编码
|
||||
*/
|
||||
@Schema(title = "对账发票编码", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String invoiceSn;
|
||||
|
||||
/**
|
||||
* 经销商ID
|
||||
*/
|
||||
@Schema(title = "经销商ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long dealerId;
|
||||
|
||||
/**
|
||||
* 经销商账户ID
|
||||
*/
|
||||
@Schema(title = "经销商账户ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long accountId;
|
||||
|
||||
/**
|
||||
* 发票金额
|
||||
*/
|
||||
@Schema(title = "发票金额", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private BigDecimal invoiceAmount;
|
||||
|
||||
/**
|
||||
* 入账公司ID
|
||||
*/
|
||||
@Schema(title = "入账公司ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 发票日期
|
||||
*/
|
||||
@Schema(title = "发票日期", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDate invoiceDate;
|
||||
|
||||
/**
|
||||
* 发票图片(支持多张)
|
||||
*/
|
||||
@Schema(title = "发票图片(支持多张)")
|
||||
private List<UploadFileItem> invoiceImg;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@Schema(title = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Schema(title = "创建时间")
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,110 @@
|
||||
package com.xunhong.erp.turbo.api.biz.dto.vo;
|
||||
|
||||
import com.alibaba.cola.dto.DTO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@Data
|
||||
@Schema(title = "对账付款")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ReconciliationPaymentVO extends DTO {
|
||||
|
||||
/**
|
||||
* 对账付款ID
|
||||
*/
|
||||
@Schema(title = "对账付款ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long reconciliationPaymentId;
|
||||
|
||||
/**
|
||||
* 对账ID
|
||||
*/
|
||||
@Schema(title = "对账ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long reconciliationId;
|
||||
|
||||
/**
|
||||
* 经销商ID
|
||||
*/
|
||||
@Schema(title = "经销商ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long dealerId;
|
||||
|
||||
/**
|
||||
* 我方收款公司ID
|
||||
*/
|
||||
@Schema(title = "我方收款公司ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 我方收款公司账户ID
|
||||
*/
|
||||
@Schema(title = "我方收款公司账户ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long accountId;
|
||||
|
||||
/**
|
||||
* 账户类别:1_对公账户;2_私人账户
|
||||
*/
|
||||
@Schema(title = "账户类别:1_对公账户;2_私人账户", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Boolean accountCategory;
|
||||
|
||||
/**
|
||||
* 账户类型:1_银行卡;2_支付宝;3_微信
|
||||
*/
|
||||
@Schema(title = "账户类型:1_银行卡;2_支付宝;3_微信", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Boolean accountType;
|
||||
|
||||
/**
|
||||
* 银行名称
|
||||
*/
|
||||
@Schema(title = "银行名称")
|
||||
private String bankName;
|
||||
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
@Schema(title = "支行名称")
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* 开户公司名称/支付宝昵称/微信号
|
||||
*/
|
||||
@Schema(title = "开户公司名称/支付宝昵称/微信号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String accountName;
|
||||
|
||||
/**
|
||||
* 银行账号/支付宝账号/微信账号
|
||||
*/
|
||||
@Schema(title = "银行账号/支付宝账号/微信账号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String accountNumber;
|
||||
|
||||
/**
|
||||
* 回款时间
|
||||
*/
|
||||
@Schema(title = "回款时间")
|
||||
private LocalDateTime returnAt;
|
||||
|
||||
/**
|
||||
* 回款金额
|
||||
*/
|
||||
@Schema(title = "回款金额", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private BigDecimal returnAmount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@Schema(title = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Schema(title = "创建时间")
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user