diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/einvoice/appservice/IEinvoiceAppService.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/einvoice/appservice/IEinvoiceAppService.java new file mode 100644 index 000000000..278cb0566 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/einvoice/appservice/IEinvoiceAppService.java @@ -0,0 +1,13 @@ +package com.healthlink.his.web.einvoice.appservice; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.healthlink.his.einvoice.domain.EinvoiceHeader; + +import java.util.Map; + +public interface IEinvoiceAppService { + EinvoiceHeader generate(EinvoiceHeader header); + IPage page(String invoiceStatus, String patientName, Integer pageNum, Integer pageSize); + void voidInvoice(Long id, String reason); + Map getReconciliation(Integer pageNum, Integer pageSize); +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/einvoice/appservice/impl/EinvoiceAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/einvoice/appservice/impl/EinvoiceAppServiceImpl.java new file mode 100644 index 000000000..c328bacce --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/einvoice/appservice/impl/EinvoiceAppServiceImpl.java @@ -0,0 +1,82 @@ +package com.healthlink.his.web.einvoice.appservice.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.healthlink.his.einvoice.domain.EinvoiceHeader; +import com.healthlink.his.einvoice.service.IEinvoiceHeaderService; +import com.healthlink.his.einvoice.service.IEinvoiceReconciliationService; +import com.healthlink.his.web.einvoice.appservice.IEinvoiceAppService; +import com.core.common.utils.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +@Service +public class EinvoiceAppServiceImpl implements IEinvoiceAppService { + + @Autowired + private IEinvoiceHeaderService headerService; + + @Autowired + private IEinvoiceReconciliationService reconciliationService; + + @Override + public EinvoiceHeader generate(EinvoiceHeader header) { + header.setInvoiceNo("EINV" + System.currentTimeMillis()); + header.setInvoiceType("ELECTRONIC"); + header.setInvoiceStatus("ISSUED"); + header.setIssueTime(new Date()); + header.setIssuerName(SecurityUtils.getUsername()); + headerService.save(header); + return header; + } + + @Override + public IPage page(String invoiceStatus, String patientName, Integer pageNum, Integer pageSize) { + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + if (StringUtils.hasText(invoiceStatus)) { + w.eq(EinvoiceHeader::getInvoiceStatus, invoiceStatus); + } + if (StringUtils.hasText(patientName)) { + w.like(EinvoiceHeader::getPatientName, patientName); + } + w.orderByDesc(EinvoiceHeader::getCreateTime); + return headerService.page(new Page<>(pageNum, pageSize), w); + } + + @Override + public void voidInvoice(Long id, String reason) { + EinvoiceHeader header = headerService.getById(id); + if (header == null) { + throw new RuntimeException("发票不存在"); + } + header.setInvoiceStatus("VOID"); + header.setVoidTime(new Date()); + header.setVoidReason(reason); + headerService.updateById(header); + } + + @Override + public Map getReconciliation(Integer pageNum, Integer pageSize) { + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + w.eq(EinvoiceHeader::getInvoiceStatus, "ISSUED"); + w.orderByDesc(EinvoiceHeader::getIssueTime); + IPage page = headerService.page(new Page<>(pageNum, pageSize), w); + + Map result = new HashMap<>(); + result.put("records", page.getRecords()); + result.put("total", page.getTotal()); + + LambdaQueryWrapper totalW = new LambdaQueryWrapper<>(); + totalW.eq(EinvoiceHeader::getInvoiceStatus, "ISSUED"); + long totalCount = headerService.count(totalW); + result.put("totalCount", totalCount); + + return result; + } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/einvoice/controller/EinvoiceController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/einvoice/controller/EinvoiceController.java new file mode 100644 index 000000000..cb6e5c27a --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/einvoice/controller/EinvoiceController.java @@ -0,0 +1,54 @@ +package com.healthlink.his.web.einvoice.controller; + +import com.core.common.core.domain.AjaxResult; +import com.healthlink.his.einvoice.domain.EinvoiceHeader; +import com.healthlink.his.web.einvoice.appservice.IEinvoiceAppService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +@Tag(name = "电子票据管理") +@RestController +@RequestMapping("/invoice") +public class EinvoiceController { + + @Autowired + private IEinvoiceAppService einvoiceAppService; + + @Operation(summary = "生成电子票据") + @PreAuthorize("@ss.hasPermi('basicmanage:invoice:edit')") + @PostMapping("/generate") + public AjaxResult generate(@RequestBody EinvoiceHeader header) { + return AjaxResult.success(einvoiceAppService.generate(header)); + } + + @Operation(summary = "电子票据分页") + @PreAuthorize("@ss.hasPermi('basicmanage:invoice:list')") + @GetMapping("/page") + public AjaxResult page(@RequestParam(required = false) String invoiceStatus, + @RequestParam(required = false) String patientName, + @RequestParam(defaultValue = "1") Integer pageNum, + @RequestParam(defaultValue = "10") Integer pageSize) { + return AjaxResult.success(einvoiceAppService.page(invoiceStatus, patientName, pageNum, pageSize)); + } + + @Operation(summary = "作废电子票据") + @PreAuthorize("@ss.hasPermi('basicmanage:invoice:edit')") + @PostMapping("/void") + public AjaxResult voidInvoice(@RequestParam Long id, @RequestParam(required = false) String reason) { + einvoiceAppService.voidInvoice(id, reason); + return AjaxResult.success(); + } + + @Operation(summary = "票据对账") + @PreAuthorize("@ss.hasPermi('basicmanage:invoice:list')") + @GetMapping("/reconciliation") + public AjaxResult reconciliation(@RequestParam(defaultValue = "1") Integer pageNum, + @RequestParam(defaultValue = "10") Integer pageSize) { + return AjaxResult.success(einvoiceAppService.getReconciliation(pageNum, pageSize)); + } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V69__einvoice.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V69__einvoice.sql new file mode 100644 index 000000000..61cc9934c --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V69__einvoice.sql @@ -0,0 +1,82 @@ +CREATE TABLE IF NOT EXISTS invoice_header ( + id BIGINT PRIMARY KEY, + invoice_no VARCHAR(64) NOT NULL, + invoice_type VARCHAR(20) NOT NULL DEFAULT 'ELECTRONIC', + encounter_id BIGINT, + patient_id BIGINT, + patient_name VARCHAR(64), + total_amount NUMERIC(12,2) NOT NULL DEFAULT 0, + discount_amount NUMERIC(12,2) DEFAULT 0, + payable_amount NUMERIC(12,2) NOT NULL DEFAULT 0, + paid_amount NUMERIC(12,2) DEFAULT 0, + invoice_status VARCHAR(20) NOT NULL DEFAULT 'ISSUED', + issue_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + void_time TIMESTAMP, + void_reason VARCHAR(256), + issuer_id BIGINT, + issuer_name VARCHAR(64), + create_by VARCHAR(64), + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64), + update_time TIMESTAMP, + tenant_id INT DEFAULT 1, + delete_flag VARCHAR(1) DEFAULT '0' +); + +CREATE TABLE IF NOT EXISTS invoice_detail ( + id BIGINT PRIMARY KEY, + header_id BIGINT NOT NULL, + item_code VARCHAR(64), + item_name VARCHAR(128) NOT NULL, + item_type VARCHAR(20), + quantity NUMERIC(10,2) DEFAULT 1, + unit_price NUMERIC(12,2) DEFAULT 0, + amount NUMERIC(12,2) NOT NULL DEFAULT 0, + create_by VARCHAR(64), + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64), + update_time TIMESTAMP, + tenant_id INT DEFAULT 1, + delete_flag VARCHAR(1) DEFAULT '0' +); + +CREATE TABLE IF NOT EXISTS invoice_segment ( + id BIGINT PRIMARY KEY, + segment_name VARCHAR(128) NOT NULL, + start_no VARCHAR(64) NOT NULL, + end_no VARCHAR(64) NOT NULL, + current_no VARCHAR(64), + status VARCHAR(20) NOT NULL DEFAULT 'ACTIVE', + invoice_type VARCHAR(20) DEFAULT 'ELECTRONIC', + create_by VARCHAR(64), + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64), + update_time TIMESTAMP, + tenant_id INT DEFAULT 1, + delete_flag VARCHAR(1) DEFAULT '0' +); + +CREATE TABLE IF NOT EXISTS invoice_reconciliation ( + id BIGINT PRIMARY KEY, + recon_date DATE NOT NULL, + total_invoices INT DEFAULT 0, + total_amount NUMERIC(14,2) DEFAULT 0, + reconciled_count INT DEFAULT 0, + reconciled_amount NUMERIC(14,2) DEFAULT 0, + status VARCHAR(20) NOT NULL DEFAULT 'PENDING', + reconciler_id BIGINT, + reconciler_name VARCHAR(64), + reconcile_time TIMESTAMP, + create_by VARCHAR(64), + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64), + update_time TIMESTAMP, + tenant_id INT DEFAULT 1, + delete_flag VARCHAR(1) DEFAULT '0' +); + +CREATE INDEX idx_inv_header_no ON invoice_header(invoice_no); +CREATE INDEX idx_inv_header_status ON invoice_header(invoice_status); +CREATE INDEX idx_inv_header_patient ON invoice_header(patient_id); +CREATE INDEX idx_inv_detail_header ON invoice_detail(header_id); +CREATE INDEX idx_inv_recon_date ON invoice_reconciliation(recon_date); diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/domain/EinvoiceDetail.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/domain/EinvoiceDetail.java new file mode 100644 index 000000000..9211a030f --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/domain/EinvoiceDetail.java @@ -0,0 +1,29 @@ +package com.healthlink.his.einvoice.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.core.common.core.domain.HisBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import tools.jackson.databind.annotation.JsonSerialize; +import tools.jackson.databind.ser.std.ToStringSerializer; + +import java.math.BigDecimal; + +@Data +@TableName("invoice_detail") +@EqualsAndHashCode(callSuper = true) +public class EinvoiceDetail extends HisBaseEntity { + @TableId(value = "id", type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + @JsonSerialize(using = ToStringSerializer.class) + private Long headerId; + private String itemCode; + private String itemName; + private String itemType; + private BigDecimal quantity; + private BigDecimal unitPrice; + private BigDecimal amount; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/domain/EinvoiceHeader.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/domain/EinvoiceHeader.java new file mode 100644 index 000000000..600c40ba6 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/domain/EinvoiceHeader.java @@ -0,0 +1,43 @@ +package com.healthlink.his.einvoice.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.core.common.core.domain.HisBaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import tools.jackson.databind.annotation.JsonSerialize; +import tools.jackson.databind.ser.std.ToStringSerializer; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("invoice_header") +@EqualsAndHashCode(callSuper = true) +public class EinvoiceHeader extends HisBaseEntity { + @TableId(value = "id", type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + private String invoiceNo; + private String invoiceType; + @JsonSerialize(using = ToStringSerializer.class) + private Long encounterId; + @JsonSerialize(using = ToStringSerializer.class) + private Long patientId; + private String patientName; + private BigDecimal totalAmount; + private BigDecimal discountAmount; + private BigDecimal payableAmount; + private BigDecimal paidAmount; + private String invoiceStatus; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date issueTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date voidTime; + private String voidReason; + @JsonSerialize(using = ToStringSerializer.class) + private Long issuerId; + private String issuerName; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/domain/EinvoiceReconciliation.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/domain/EinvoiceReconciliation.java new file mode 100644 index 000000000..5f5c0cb4c --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/domain/EinvoiceReconciliation.java @@ -0,0 +1,35 @@ +package com.healthlink.his.einvoice.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.core.common.core.domain.HisBaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import tools.jackson.databind.annotation.JsonSerialize; +import tools.jackson.databind.ser.std.ToStringSerializer; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("invoice_reconciliation") +@EqualsAndHashCode(callSuper = true) +public class EinvoiceReconciliation extends HisBaseEntity { + @TableId(value = "id", type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + @JsonFormat(pattern = "yyyy-MM-dd") + private Date reconDate; + private Integer totalInvoices; + private BigDecimal totalAmount; + private Integer reconciledCount; + private BigDecimal reconciledAmount; + private String status; + @JsonSerialize(using = ToStringSerializer.class) + private Long reconcilerId; + private String reconcilerName; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date reconcileTime; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/domain/EinvoiceSegment.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/domain/EinvoiceSegment.java new file mode 100644 index 000000000..900d2c305 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/domain/EinvoiceSegment.java @@ -0,0 +1,25 @@ +package com.healthlink.his.einvoice.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.core.common.core.domain.HisBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import tools.jackson.databind.annotation.JsonSerialize; +import tools.jackson.databind.ser.std.ToStringSerializer; + +@Data +@TableName("invoice_segment") +@EqualsAndHashCode(callSuper = true) +public class EinvoiceSegment extends HisBaseEntity { + @TableId(value = "id", type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + private String segmentName; + private String startNo; + private String endNo; + private String currentNo; + private String status; + private String invoiceType; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/mapper/EinvoiceDetailMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/mapper/EinvoiceDetailMapper.java new file mode 100644 index 000000000..ca41f1bba --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/mapper/EinvoiceDetailMapper.java @@ -0,0 +1,9 @@ +package com.healthlink.his.einvoice.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.einvoice.domain.EinvoiceDetail; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface EinvoiceDetailMapper extends BaseMapper { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/mapper/EinvoiceHeaderMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/mapper/EinvoiceHeaderMapper.java new file mode 100644 index 000000000..3769a63ce --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/mapper/EinvoiceHeaderMapper.java @@ -0,0 +1,9 @@ +package com.healthlink.his.einvoice.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.einvoice.domain.EinvoiceHeader; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface EinvoiceHeaderMapper extends BaseMapper { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/mapper/EinvoiceReconciliationMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/mapper/EinvoiceReconciliationMapper.java new file mode 100644 index 000000000..d13ae1788 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/mapper/EinvoiceReconciliationMapper.java @@ -0,0 +1,9 @@ +package com.healthlink.his.einvoice.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.einvoice.domain.EinvoiceReconciliation; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface EinvoiceReconciliationMapper extends BaseMapper { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/mapper/EinvoiceSegmentMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/mapper/EinvoiceSegmentMapper.java new file mode 100644 index 000000000..cbd360f67 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/mapper/EinvoiceSegmentMapper.java @@ -0,0 +1,9 @@ +package com.healthlink.his.einvoice.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.einvoice.domain.EinvoiceSegment; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface EinvoiceSegmentMapper extends BaseMapper { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/IEinvoiceDetailService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/IEinvoiceDetailService.java new file mode 100644 index 000000000..477dd49a0 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/IEinvoiceDetailService.java @@ -0,0 +1,7 @@ +package com.healthlink.his.einvoice.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.einvoice.domain.EinvoiceDetail; + +public interface IEinvoiceDetailService extends IService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/IEinvoiceHeaderService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/IEinvoiceHeaderService.java new file mode 100644 index 000000000..6f910d67e --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/IEinvoiceHeaderService.java @@ -0,0 +1,7 @@ +package com.healthlink.his.einvoice.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.einvoice.domain.EinvoiceHeader; + +public interface IEinvoiceHeaderService extends IService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/IEinvoiceReconciliationService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/IEinvoiceReconciliationService.java new file mode 100644 index 000000000..084d4b4b7 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/IEinvoiceReconciliationService.java @@ -0,0 +1,7 @@ +package com.healthlink.his.einvoice.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.einvoice.domain.EinvoiceReconciliation; + +public interface IEinvoiceReconciliationService extends IService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/IEinvoiceSegmentService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/IEinvoiceSegmentService.java new file mode 100644 index 000000000..9858c2f62 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/IEinvoiceSegmentService.java @@ -0,0 +1,7 @@ +package com.healthlink.his.einvoice.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.einvoice.domain.EinvoiceSegment; + +public interface IEinvoiceSegmentService extends IService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/impl/EinvoiceDetailServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/impl/EinvoiceDetailServiceImpl.java new file mode 100644 index 000000000..3f05e1098 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/impl/EinvoiceDetailServiceImpl.java @@ -0,0 +1,11 @@ +package com.healthlink.his.einvoice.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.einvoice.domain.EinvoiceDetail; +import com.healthlink.his.einvoice.mapper.EinvoiceDetailMapper; +import com.healthlink.his.einvoice.service.IEinvoiceDetailService; +import org.springframework.stereotype.Service; + +@Service +public class EinvoiceDetailServiceImpl extends ServiceImpl implements IEinvoiceDetailService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/impl/EinvoiceHeaderServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/impl/EinvoiceHeaderServiceImpl.java new file mode 100644 index 000000000..c18f160db --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/impl/EinvoiceHeaderServiceImpl.java @@ -0,0 +1,11 @@ +package com.healthlink.his.einvoice.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.einvoice.domain.EinvoiceHeader; +import com.healthlink.his.einvoice.mapper.EinvoiceHeaderMapper; +import com.healthlink.his.einvoice.service.IEinvoiceHeaderService; +import org.springframework.stereotype.Service; + +@Service +public class EinvoiceHeaderServiceImpl extends ServiceImpl implements IEinvoiceHeaderService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/impl/EinvoiceReconciliationServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/impl/EinvoiceReconciliationServiceImpl.java new file mode 100644 index 000000000..ea9d1502e --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/impl/EinvoiceReconciliationServiceImpl.java @@ -0,0 +1,11 @@ +package com.healthlink.his.einvoice.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.einvoice.domain.EinvoiceReconciliation; +import com.healthlink.his.einvoice.mapper.EinvoiceReconciliationMapper; +import com.healthlink.his.einvoice.service.IEinvoiceReconciliationService; +import org.springframework.stereotype.Service; + +@Service +public class EinvoiceReconciliationServiceImpl extends ServiceImpl implements IEinvoiceReconciliationService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/impl/EinvoiceSegmentServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/impl/EinvoiceSegmentServiceImpl.java new file mode 100644 index 000000000..7fc52c263 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/einvoice/service/impl/EinvoiceSegmentServiceImpl.java @@ -0,0 +1,11 @@ +package com.healthlink.his.einvoice.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.einvoice.domain.EinvoiceSegment; +import com.healthlink.his.einvoice.mapper.EinvoiceSegmentMapper; +import com.healthlink.his.einvoice.service.IEinvoiceSegmentService; +import org.springframework.stereotype.Service; + +@Service +public class EinvoiceSegmentServiceImpl extends ServiceImpl implements IEinvoiceSegmentService { +} diff --git a/healthlink-his-ui/src/views/einvoice/InvoiceManagement.vue b/healthlink-his-ui/src/views/einvoice/InvoiceManagement.vue new file mode 100644 index 000000000..78411dee7 --- /dev/null +++ b/healthlink-his-ui/src/views/einvoice/InvoiceManagement.vue @@ -0,0 +1,204 @@ + + + diff --git a/healthlink-his-ui/src/views/einvoice/api.js b/healthlink-his-ui/src/views/einvoice/api.js new file mode 100644 index 000000000..0d131e1f7 --- /dev/null +++ b/healthlink-his-ui/src/views/einvoice/api.js @@ -0,0 +1,17 @@ +import request from '@/utils/request' + +export function generateInvoice(data) { + return request({ url: '/invoice/generate', method: 'post', data }) +} + +export function getInvoicePage(params) { + return request({ url: '/invoice/page', method: 'get', params }) +} + +export function voidInvoice(params) { + return request({ url: '/invoice/void', method: 'post', params }) +} + +export function getReconciliation(params) { + return request({ url: '/invoice/reconciliation', method: 'get', params }) +}