diff --git a/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/ReconciliationInvoiceController.java b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/ReconciliationInvoiceController.java new file mode 100644 index 0000000..fe1d544 --- /dev/null +++ b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/ReconciliationInvoiceController.java @@ -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 listReconciliationInvoice(@ModelAttribute @Validated ReconciliationInvoiceListQry reconciliationInvoiceListQry) { + return MultiResponse.of(reconciliationInvoiceService.list(reconciliationInvoiceListQry)); + } + + @SaCheckLogin + @PostMapping("createReconciliationInvoice") + @Operation(summary = "创建对账发票", method = "POST") + public SingleResponse createReconciliationInvoice(@RequestBody @Validated ReconciliationInvoiceCreateCmd reconciliationInvoiceCreateCmd) { + return SingleResponse.of(reconciliationInvoiceService.create(reconciliationInvoiceCreateCmd)); + } + + @SaCheckLogin + @GetMapping("showReconciliationInvoice") + @Operation(summary = "对账发票详情", method = "GET") + public SingleResponse showReconciliationInvoice(@ModelAttribute @Validated ReconciliationInvoiceShowQry reconciliationInvoiceShowQry) { + return SingleResponse.of(reconciliationInvoiceService.show(reconciliationInvoiceShowQry)); + } + + @SaCheckLogin + @GetMapping("pageReconciliationInvoice") + @Operation(summary = "对账发票列表", method = "GET") + public PageResponse pageReconciliationInvoice(@ModelAttribute @Validated ReconciliationInvoicePageQry reconciliationInvoicePageQry) { + PageDTO 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 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(); + } +} diff --git a/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/ReconciliationPaymentController.java b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/ReconciliationPaymentController.java new file mode 100644 index 0000000..fb4fbc7 --- /dev/null +++ b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/ReconciliationPaymentController.java @@ -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 listReconciliationPayment(@ModelAttribute @Validated ReconciliationPaymentListQry reconciliationPaymentListQry) { + return MultiResponse.of(reconciliationPaymentService.list(reconciliationPaymentListQry)); + } + + @SaCheckLogin + @PostMapping("createReconciliationPayment") + @Operation(summary = "创建对账付款", method = "POST") + public SingleResponse createReconciliationPayment(@RequestBody @Validated ReconciliationPaymentCreateCmd reconciliationPaymentCreateCmd) { + return SingleResponse.of(reconciliationPaymentService.create(reconciliationPaymentCreateCmd)); + } + + @SaCheckLogin + @GetMapping("showReconciliationPayment") + @Operation(summary = "对账付款详情", method = "GET") + public SingleResponse showReconciliationPayment(@ModelAttribute @Validated ReconciliationPaymentShowQry reconciliationPaymentShowQry) { + return SingleResponse.of(reconciliationPaymentService.show(reconciliationPaymentShowQry)); + } + + @SaCheckLogin + @GetMapping("pageReconciliationPayment") + @Operation(summary = "对账付款列表", method = "GET") + public PageResponse pageReconciliationPayment(@ModelAttribute @Validated ReconciliationPaymentPageQry reconciliationPaymentPageQry) { + PageDTO 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 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(); + } +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/ReconciliationInvoiceAssembler.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/ReconciliationInvoiceAssembler.java new file mode 100644 index 0000000..d76a4c4 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/ReconciliationInvoiceAssembler.java @@ -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); +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/ReconciliationPaymentAssembler.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/ReconciliationPaymentAssembler.java new file mode 100644 index 0000000..5e904de --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/ReconciliationPaymentAssembler.java @@ -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); +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationInvoiceCreateCmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationInvoiceCreateCmdExe.java new file mode 100644 index 0000000..ca04be9 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationInvoiceCreateCmdExe.java @@ -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); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationInvoiceDestroyCmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationInvoiceDestroyCmdExe.java new file mode 100644 index 0000000..fcac3cc --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationInvoiceDestroyCmdExe.java @@ -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); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationInvoiceUpdateCmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationInvoiceUpdateCmdExe.java new file mode 100644 index 0000000..b2fcc44 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationInvoiceUpdateCmdExe.java @@ -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); + } +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationPaymentCreateCmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationPaymentCreateCmdExe.java new file mode 100644 index 0000000..6638231 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationPaymentCreateCmdExe.java @@ -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); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationPaymentDestroyCmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationPaymentDestroyCmdExe.java new file mode 100644 index 0000000..f12c97e --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationPaymentDestroyCmdExe.java @@ -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); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationPaymentUpdateCmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationPaymentUpdateCmdExe.java new file mode 100644 index 0000000..02f5a52 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/ReconciliationPaymentUpdateCmdExe.java @@ -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); + } +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationInvoiceListQryExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationInvoiceListQryExe.java new file mode 100644 index 0000000..adb0cad --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationInvoiceListQryExe.java @@ -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 execute(ReconciliationInvoiceListQry reconciliationInvoiceListQry) { + List reconciliationInvoiceList = reconciliationInvoiceGateway.list(reconciliationInvoiceListQry); + return reconciliationInvoiceList.stream().map(reconciliationInvoiceAssembler::toReconciliationInvoiceVO).toList(); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationInvoicePageQryExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationInvoicePageQryExe.java new file mode 100644 index 0000000..c3b487c --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationInvoicePageQryExe.java @@ -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 execute(ReconciliationInvoicePageQry reconciliationInvoicePageQry) { + IPage page = reconciliationInvoiceGateway.page(reconciliationInvoicePageQry); + return page.convert(reconciliationInvoiceAssembler::toReconciliationInvoiceVO); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationInvoiceShowQryExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationInvoiceShowQryExe.java new file mode 100644 index 0000000..0f76d18 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationInvoiceShowQryExe.java @@ -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); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationPaymentListQryExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationPaymentListQryExe.java new file mode 100644 index 0000000..e1aee91 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationPaymentListQryExe.java @@ -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 execute(ReconciliationPaymentListQry reconciliationPaymentListQry) { + List reconciliationPaymentList = reconciliationPaymentGateway.list(reconciliationPaymentListQry); + return reconciliationPaymentList.stream().map(reconciliationPaymentAssembler::toReconciliationPaymentVO).toList(); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationPaymentPageQryExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationPaymentPageQryExe.java new file mode 100644 index 0000000..5217ee0 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationPaymentPageQryExe.java @@ -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 execute(ReconciliationPaymentPageQry reconciliationPaymentPageQry) { + IPage page = reconciliationPaymentGateway.page(reconciliationPaymentPageQry); + return page.convert(reconciliationPaymentAssembler::toReconciliationPaymentVO); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationPaymentShowQryExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationPaymentShowQryExe.java new file mode 100644 index 0000000..42f26e3 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/ReconciliationPaymentShowQryExe.java @@ -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); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/ReconciliationInvoiceServiceImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/ReconciliationInvoiceServiceImpl.java new file mode 100644 index 0000000..066267f --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/ReconciliationInvoiceServiceImpl.java @@ -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 page(ReconciliationInvoicePageQry reconciliationInvoicePageQry) { + return PageDTO.of(reconciliationInvoicePageQryExe.execute(reconciliationInvoicePageQry)); + } + + @Override + public List 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); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/ReconciliationPaymentServiceImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/ReconciliationPaymentServiceImpl.java new file mode 100644 index 0000000..a98c8e6 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/ReconciliationPaymentServiceImpl.java @@ -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 page(ReconciliationPaymentPageQry reconciliationPaymentPageQry) { + return PageDTO.of(reconciliationPaymentPageQryExe.execute(reconciliationPaymentPageQry)); + } + + @Override + public List 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); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/ReconciliationInvoice.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/ReconciliationInvoice.java new file mode 100644 index 0000000..1365e36 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/ReconciliationInvoice.java @@ -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 invoiceImg; + + /** + * 备注 + */ + private String remark; + + /** + * 创建时间 + */ + private LocalDateTime createdAt; + +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/ReconciliationPayment.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/ReconciliationPayment.java new file mode 100644 index 0000000..5a78503 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/ReconciliationPayment.java @@ -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; + +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/ReconciliationInvoiceGateway.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/ReconciliationInvoiceGateway.java new file mode 100644 index 0000000..5d9becc --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/ReconciliationInvoiceGateway.java @@ -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 page(ReconciliationInvoicePageQry reconciliationInvoicePageQry); + + List list(ReconciliationInvoiceListQry reconciliationInvoiceListQry); + + ReconciliationInvoice update(ReconciliationInvoiceUpdateCmd reconciliationInvoiceUpdateCmd); + + ReconciliationInvoice show(ReconciliationInvoiceShowQry reconciliationInvoiceShowQry); + + void destroy(ReconciliationInvoiceDestroyCmd reconciliationInvoiceDestroyCmd); +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/ReconciliationPaymentGateway.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/ReconciliationPaymentGateway.java new file mode 100644 index 0000000..698eb03 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/ReconciliationPaymentGateway.java @@ -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 page(ReconciliationPaymentPageQry reconciliationPaymentPageQry); + + List list(ReconciliationPaymentListQry reconciliationPaymentListQry); + + ReconciliationPayment update(ReconciliationPaymentUpdateCmd reconciliationPaymentUpdateCmd); + + ReconciliationPayment show(ReconciliationPaymentShowQry reconciliationPaymentShowQry); + + void destroy(ReconciliationPaymentDestroyCmd reconciliationPaymentDestroyCmd); +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/ReconciliationInvoiceConvert.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/ReconciliationInvoiceConvert.java new file mode 100644 index 0000000..4ff4c90 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/ReconciliationInvoiceConvert.java @@ -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); +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/ReconciliationPaymentConvert.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/ReconciliationPaymentConvert.java new file mode 100644 index 0000000..a96040a --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/ReconciliationPaymentConvert.java @@ -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); +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/PaymentRecordDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/PaymentRecordDO.java index 7d1893c..eb083cf 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/PaymentRecordDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/PaymentRecordDO.java @@ -138,16 +138,5 @@ public class PaymentRecordDO extends BaseDO { @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); - } } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ReconciliationDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ReconciliationDO.java index 6a43aa8..11462c2 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ReconciliationDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ReconciliationDO.java @@ -94,10 +94,5 @@ public class ReconciliationDO extends BaseDO { @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); - } } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ReconciliationInvoiceDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ReconciliationInvoiceDO.java new file mode 100644 index 0000000..063e71f --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ReconciliationInvoiceDO.java @@ -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 { + + /** + * 对账发票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 invoiceImg; + + /** + * 备注 + */ + @TableField(value = "remark") + private String remark; + + /** + * 创建时间 + */ + @TableField(value = "created_at") + private LocalDateTime createdAt; + +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ReconciliationPaymentDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ReconciliationPaymentDO.java new file mode 100644 index 0000000..de74cd8 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/ReconciliationPaymentDO.java @@ -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 { + + /** + * 对账付款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; + +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderCostGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderCostGatewayImpl.java index eb64f47..fb742e3 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderCostGatewayImpl.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderCostGatewayImpl.java @@ -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); diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderGatewayImpl.java index 42bac0a..66e8c53 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderGatewayImpl.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderGatewayImpl.java @@ -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 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 orderSupplierInvoiceList = buildOrderSupplierInvoiceList(supplierDO); diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/PaymentTaskGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/PaymentTaskGatewayImpl.java index d0b9566..8a4d18d 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/PaymentTaskGatewayImpl.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/PaymentTaskGatewayImpl.java @@ -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) diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/ReconciliationGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/ReconciliationGatewayImpl.java index 117ff0d..3bd4751 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/ReconciliationGatewayImpl.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/ReconciliationGatewayImpl.java @@ -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); diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/ReconciliationInvoiceGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/ReconciliationInvoiceGatewayImpl.java new file mode 100644 index 0000000..f6032a3 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/ReconciliationInvoiceGatewayImpl.java @@ -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 page(ReconciliationInvoicePageQry reconciliationInvoicePageQry) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(ReconciliationInvoiceDO.class); + queryWrapper.orderByDesc(ReconciliationInvoiceDO::getCreatedAt); + + IPage page = new Page<>(reconciliationInvoicePageQry.getPageIndex(), reconciliationInvoicePageQry.getPageSize()); + page = reconciliationInvoiceMapper.selectPage(page, queryWrapper); + + return page.convert(reconciliationInvoiceConvert::toReconciliationInvoice); + } + + @Override + public List list(ReconciliationInvoiceListQry reconciliationInvoiceListQry) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(ReconciliationInvoiceDO.class); + List reconciliationInvoiceDOList = reconciliationInvoiceMapper.selectList(queryWrapper); + return reconciliationInvoiceDOList.stream().map(reconciliationInvoiceConvert::toReconciliationInvoice).toList(); + } + + @Override + public ReconciliationInvoice update(ReconciliationInvoiceUpdateCmd reconciliationInvoiceUpdateCmd) { + LambdaQueryWrapper 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 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 queryWrapper = Wrappers.lambdaQuery(ReconciliationInvoiceDO.class); + queryWrapper.eq(ReconciliationInvoiceDO::getReconciliationInvoiceId, reconciliationInvoiceDestroyCmd.getReconciliationInvoiceId()); + queryWrapper.last("limit 1"); + + ReconciliationInvoiceDO reconciliationInvoiceDO = reconciliationInvoiceMapper.selectOne(queryWrapper); + reconciliationInvoiceDO.deleteById(); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/ReconciliationPaymentGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/ReconciliationPaymentGatewayImpl.java new file mode 100644 index 0000000..682ba42 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/ReconciliationPaymentGatewayImpl.java @@ -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 page(ReconciliationPaymentPageQry reconciliationPaymentPageQry) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(ReconciliationPaymentDO.class); + queryWrapper.orderByDesc(ReconciliationPaymentDO::getCreatedAt); + + IPage page = new Page<>(reconciliationPaymentPageQry.getPageIndex(), reconciliationPaymentPageQry.getPageSize()); + page = reconciliationPaymentMapper.selectPage(page, queryWrapper); + + return page.convert(reconciliationPaymentConvert::toReconciliationPayment); + } + + @Override + public List list(ReconciliationPaymentListQry reconciliationPaymentListQry) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(ReconciliationPaymentDO.class); + List reconciliationPaymentDOList = reconciliationPaymentMapper.selectList(queryWrapper); + return reconciliationPaymentDOList.stream().map(reconciliationPaymentConvert::toReconciliationPayment).toList(); + } + + @Override + public ReconciliationPayment update(ReconciliationPaymentUpdateCmd reconciliationPaymentUpdateCmd) { + LambdaQueryWrapper 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 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 queryWrapper = Wrappers.lambdaQuery(ReconciliationPaymentDO.class); + queryWrapper.eq(ReconciliationPaymentDO::getReconciliationPaymentId, reconciliationPaymentDestroyCmd.getReconciliationPaymentId()); + queryWrapper.last("limit 1"); + + ReconciliationPaymentDO reconciliationPaymentDO = reconciliationPaymentMapper.selectOne(queryWrapper); + reconciliationPaymentDO.deleteById(); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/SupplierInvoiceGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/SupplierInvoiceGatewayImpl.java index 7c25e72..3a5cfe3 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/SupplierInvoiceGatewayImpl.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/SupplierInvoiceGatewayImpl.java @@ -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 orderSupplierIdList = supplierInvoiceCreateCmd.getOrderSupplierInvoiceList().stream().map(OrderSupplierInvoice::getOrderSupplierId).toList(); diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/ReconciliationInvoiceMapper.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/ReconciliationInvoiceMapper.java new file mode 100644 index 0000000..0dbc264 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/ReconciliationInvoiceMapper.java @@ -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 { +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/ReconciliationPaymentMapper.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/ReconciliationPaymentMapper.java new file mode 100644 index 0000000..f4b1e59 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/ReconciliationPaymentMapper.java @@ -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 { +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/util/SerialNumberGenerator.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/util/SerialNumberGenerator.java new file mode 100644 index 0000000..fb94a03 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/util/SerialNumberGenerator.java @@ -0,0 +1,134 @@ +package com.xunhong.erp.turbo.biz.util; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +/** + * 编号生成工具类 + *

+ * 用于生成各类业务编号,格式为:前缀 + 日期(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"); + } + + /** + * 生成编号(不带前缀) + *

+ * 格式:YYYYMMDD + 序号(3位) + * 例如:20250113001 + * + * @return 编号字符串 + */ + public static String generate() { + return generate(null, DEFAULT_SEQUENCE_DIGITS); + } + + /** + * 生成编号(带前缀) + *

+ * 格式:前缀 + YYYYMMDD + 序号(3位) + * 例如:DZ20250113001 + * + * @param prefix 编号前缀(可为空) + * @return 编号字符串 + */ + public static String generate(String prefix) { + return generate(prefix, DEFAULT_SEQUENCE_DIGITS); + } + + /** + * 生成编号(自定义序号位数) + *

+ * 格式:前缀 + 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位作为序号) + *

+ * 与旧代码兼容的方法,生成格式:YYYYMMDD + 3位序号 + * + * @return 编号字符串 + */ + public static String generateLegacy() { + return LocalDate.now().format(BASIC_DATE_FORMATTER) + + String.format("%03d", System.currentTimeMillis() % MAX_SEQUENCE); + } +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/ReconciliationPaymentMapper.xml b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/ReconciliationPaymentMapper.xml new file mode 100644 index 0000000..636ac17 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/ReconciliationPaymentMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/reconciliationInvoiceMapper.xml b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/reconciliationInvoiceMapper.xml new file mode 100644 index 0000000..49546eb --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/reconciliationInvoiceMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/ReconciliationInvoiceServiceI.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/ReconciliationInvoiceServiceI.java new file mode 100644 index 0000000..4587a03 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/ReconciliationInvoiceServiceI.java @@ -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 page(ReconciliationInvoicePageQry reconciliationInvoicePageQry); + + List list(ReconciliationInvoiceListQry reconciliationInvoiceListQry); + + ReconciliationInvoiceVO update(ReconciliationInvoiceUpdateCmd reconciliationInvoiceUpdateCmd); + + ReconciliationInvoiceVO show(ReconciliationInvoiceShowQry reconciliationInvoiceShowQry); + + void destroy(ReconciliationInvoiceDestroyCmd reconciliationInvoiceDestroyCmd); +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/ReconciliationPaymentServiceI.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/ReconciliationPaymentServiceI.java new file mode 100644 index 0000000..6a251b0 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/ReconciliationPaymentServiceI.java @@ -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 page(ReconciliationPaymentPageQry reconciliationPaymentPageQry); + + List list(ReconciliationPaymentListQry reconciliationPaymentListQry); + + ReconciliationPaymentVO update(ReconciliationPaymentUpdateCmd reconciliationPaymentUpdateCmd); + + ReconciliationPaymentVO show(ReconciliationPaymentShowQry reconciliationPaymentShowQry); + + void destroy(ReconciliationPaymentDestroyCmd reconciliationPaymentDestroyCmd); +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationInvoiceCreateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationInvoiceCreateCmd.java new file mode 100644 index 0000000..4e190f5 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationInvoiceCreateCmd.java @@ -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 invoiceImg; + + /** + * 备注 + */ + @Schema(title = "备注") + private String remark; + + /** + * 创建时间 + */ + @Schema(title = "创建时间") + private LocalDateTime createdAt; + +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationInvoiceDestroyCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationInvoiceDestroyCmd.java new file mode 100644 index 0000000..57cf23b --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationInvoiceDestroyCmd.java @@ -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; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationInvoiceUpdateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationInvoiceUpdateCmd.java new file mode 100644 index 0000000..85ceea4 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationInvoiceUpdateCmd.java @@ -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; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationPaymentCreateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationPaymentCreateCmd.java new file mode 100644 index 0000000..3d44dea --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationPaymentCreateCmd.java @@ -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; + +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationPaymentDestroyCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationPaymentDestroyCmd.java new file mode 100644 index 0000000..f0e61e3 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationPaymentDestroyCmd.java @@ -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; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationPaymentUpdateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationPaymentUpdateCmd.java new file mode 100644 index 0000000..2b299c6 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/ReconciliationPaymentUpdateCmd.java @@ -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; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationInvoiceListQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationInvoiceListQry.java new file mode 100644 index 0000000..f5c6719 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationInvoiceListQry.java @@ -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; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationInvoicePageQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationInvoicePageQry.java new file mode 100644 index 0000000..483f2c0 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationInvoicePageQry.java @@ -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; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationInvoiceShowQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationInvoiceShowQry.java new file mode 100644 index 0000000..3a98ba9 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationInvoiceShowQry.java @@ -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; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationPaymentListQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationPaymentListQry.java new file mode 100644 index 0000000..eeb76dd --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationPaymentListQry.java @@ -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; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationPaymentPageQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationPaymentPageQry.java new file mode 100644 index 0000000..def31fc --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationPaymentPageQry.java @@ -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; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationPaymentShowQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationPaymentShowQry.java new file mode 100644 index 0000000..147dc72 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/ReconciliationPaymentShowQry.java @@ -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; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/ReconciliationInvoiceVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/ReconciliationInvoiceVO.java new file mode 100644 index 0000000..57b82bc --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/ReconciliationInvoiceVO.java @@ -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 invoiceImg; + + /** + * 备注 + */ + @Schema(title = "备注") + private String remark; + + /** + * 创建时间 + */ + @Schema(title = "创建时间") + private LocalDateTime createdAt; + +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/ReconciliationPaymentVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/ReconciliationPaymentVO.java new file mode 100644 index 0000000..bf3231a --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/ReconciliationPaymentVO.java @@ -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; + +} +