diff --git a/jianshui-admin/src/main/java/com/jianshui/web/controller/platform/InvoiceAddController.java b/jianshui-admin/src/main/java/com/jianshui/web/controller/platform/InvoiceAddController.java index 16a6d98..89e7e05 100644 --- a/jianshui-admin/src/main/java/com/jianshui/web/controller/platform/InvoiceAddController.java +++ b/jianshui-admin/src/main/java/com/jianshui/web/controller/platform/InvoiceAddController.java @@ -1,9 +1,8 @@ package com.jianshui.web.controller.platform; -import cn.hutool.json.JSON; import com.jianshui.common.core.controller.BaseController; import com.jianshui.common.core.domain.AjaxResult; -import com.jianshui.platform.dto.BillInfoPDTO; +import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO; import com.jianshui.platform.service.InvoiceAddService; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; @@ -22,12 +21,18 @@ public class InvoiceAddController extends BaseController { @Autowired private static InvoiceAddService addService; - @ApiOperation(value = "单据保存",notes = "单据保存请求") + @ApiOperation(value = "单据保存",notes = "单据保存请求(支持数电普票、数电专票)") @PostMapping( "invoiceSave") public AjaxResult invoiceSave(@RequestBody BillInfoPDTO billInfoPDTO) throws Exception { return toAjax(addService.invoiceSave(billInfoPDTO)); } + @ApiOperation(value = "发票开具",notes = "发票直接开具请求(支持数电普票、数电专票)") + @PostMapping( "invoiceIssuance") + public AjaxResult invoiceIssuance(@RequestBody BillInfoPDTO billInfoPDTO) throws Exception { + return addService.invoiceIssuance(billInfoPDTO); + } + diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/dto/BillInfoDetailPDTO.java b/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/BillInfoDetailPDTO.java similarity index 95% rename from jianshui-platform/src/main/java/com/jianshui/platform/dto/BillInfoDetailPDTO.java rename to jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/BillInfoDetailPDTO.java index 197b2bc..08011ca 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/dto/BillInfoDetailPDTO.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/BillInfoDetailPDTO.java @@ -1,4 +1,4 @@ -package com.jianshui.platform.dto; +package com.jianshui.platform.dto.InvoiceAdd; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/dto/BillInfoPDTO.java b/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/BillInfoPDTO.java similarity index 96% rename from jianshui-platform/src/main/java/com/jianshui/platform/dto/BillInfoPDTO.java rename to jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/BillInfoPDTO.java index a1e5bef..d999fd2 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/dto/BillInfoPDTO.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/BillInfoPDTO.java @@ -1,4 +1,4 @@ -package com.jianshui.platform.dto; +package com.jianshui.platform.dto.InvoiceAdd; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -14,7 +14,6 @@ import java.util.List; @ApiModel("单据录入") public class BillInfoPDTO { - // TODO: 2023/6/5 增值税普通发票 @ApiModelProperty(value = "购方名称") private String buyerName; diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/species/BillInfoDetailSDGenInvoicePDTO.java b/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/species/BillInfoDetailSDGenInvoicePDTO.java new file mode 100644 index 0000000..9d13434 --- /dev/null +++ b/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/species/BillInfoDetailSDGenInvoicePDTO.java @@ -0,0 +1,49 @@ +package com.jianshui.platform.dto.InvoiceAdd.species; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @Author: kk + * @Description: 数电普通发票-明细 + * @DateTime: 2023/6/7 10:42 + * @Params: + * @Return + */ +@Data +@ApiModel("单据录入详情") +public class BillInfoDetailSDGenInvoicePDTO { + + @ApiModelProperty(value = "商品名称") + private String goodName; + + @ApiModelProperty(value = "规格型号") + private String spec; + + @ApiModelProperty(value = "单位") + private String unit; + + @ApiModelProperty(value = "商品数量") + private BigDecimal num; + + @ApiModelProperty(value = "商品单价") + private BigDecimal price; + + @ApiModelProperty(value = "金额(不含税)") + private BigDecimal taxfreeamt; + + @ApiModelProperty(value = "税率") + private BigDecimal taxrate; + + @ApiModelProperty(value = "税额") + private BigDecimal tax; + + + + + + +} diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/species/BillInfoDetailSDSpecialInvoicePDTO.java b/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/species/BillInfoDetailSDSpecialInvoicePDTO.java new file mode 100644 index 0000000..9151345 --- /dev/null +++ b/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/species/BillInfoDetailSDSpecialInvoicePDTO.java @@ -0,0 +1,50 @@ +package com.jianshui.platform.dto.InvoiceAdd.species; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @Author: kk + * @Description: 数电专用发票-明细 + * @DateTime: 2023/6/7 10:42 + * @Params: + * @Return + */ +@Data +@ApiModel("单据录入详情") +public class BillInfoDetailSDSpecialInvoicePDTO { + + // TODO: 2023/6/5 增值税普通发票 + @ApiModelProperty(value = "商品名称") + private String goodName; + + @ApiModelProperty(value = "规格型号") + private String spec; + + @ApiModelProperty(value = "单位") + private String unit; + + @ApiModelProperty(value = "商品数量") + private BigDecimal num; + + @ApiModelProperty(value = "商品单价") + private BigDecimal price; + + @ApiModelProperty(value = "金额(不含税)") + private BigDecimal taxfreeamt; + + @ApiModelProperty(value = "税率") + private BigDecimal taxrate; + + @ApiModelProperty(value = "税额") + private BigDecimal tax; + + + + + + +} diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/species/BillInfoSDGenInvoicePDTO.java b/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/species/BillInfoSDGenInvoicePDTO.java new file mode 100644 index 0000000..850ef23 --- /dev/null +++ b/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/species/BillInfoSDGenInvoicePDTO.java @@ -0,0 +1,84 @@ +package com.jianshui.platform.dto.InvoiceAdd.species; + +import com.jianshui.common.annotation.Excel; +import com.jianshui.platform.dto.InvoiceAdd.BillInfoDetailPDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import java.math.BigDecimal; +import java.util.List; + +/** +* @Author: kk +* @Description: 数电普通发票 +* @DateTime: 2023/6/7 10:42 +* @Params: +* @Return +*/ + +@Data +@ApiModel("单据录入") +public class BillInfoSDGenInvoicePDTO { + + @NotEmpty + @ApiModelProperty(value = "购方名称") + private String buyerName; + + @NotEmpty + @ApiModelProperty(value = "购方税号") + private String buyerTaxnum; + + @ApiModelProperty(value = "购方地址") + private String buyerAddress; + + @ApiModelProperty(value = "购方电话") + private String buyerTelephone; + + @ApiModelProperty(value = "开户行") + private String buyerBank; + + @ApiModelProperty(value = "购买方开户行账号") + private String buyerAccount; + + @ApiModelProperty(value = "购方邮箱") + private String buyerEmail; + + + @ApiModelProperty(value = "销方名称") + private String sellerName; + + @ApiModelProperty(value = "销方税号") + private String sellerTaxnum; + + @ApiModelProperty(value = "销方地址") + private String sellerAddress; + + @ApiModelProperty(value = "销方电话") + private String sellerTelephone; + + @ApiModelProperty(value = "销方开户行名称") + private String sellerBank; + + @ApiModelProperty(value = "销方开户行账户") + private String sellerAccount; + + + @ApiModelProperty(value = "备注") + private String message; + + @ApiModelProperty(value = "价税合计") + private String jshj; + + @ApiModelProperty(value = "金额(不含税)") + private BigDecimal taxfreeamt; + + @ApiModelProperty(value = "税额") + private BigDecimal tax; + + @ApiModelProperty(value = "明细") + List billInfoDetailPDTOList; + + +} diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/species/BillInfoSDSpecialInvoicePDTO.java b/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/species/BillInfoSDSpecialInvoicePDTO.java new file mode 100644 index 0000000..2d1a717 --- /dev/null +++ b/jianshui-platform/src/main/java/com/jianshui/platform/dto/InvoiceAdd/species/BillInfoSDSpecialInvoicePDTO.java @@ -0,0 +1,83 @@ +package com.jianshui.platform.dto.InvoiceAdd.species; + +import com.jianshui.platform.dto.InvoiceAdd.BillInfoDetailPDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import java.math.BigDecimal; +import java.util.List; + +/** + * @Author: kk + * @Description: 数电专用发票 + * @DateTime: 2023/6/7 10:42 + * @Params: + * @Return + */ + +@Data +@ApiModel("单据录入") +public class BillInfoSDSpecialInvoicePDTO { + + @NotEmpty + @ApiModelProperty(value = "购方名称") + private String buyerName; + + @NotEmpty + @ApiModelProperty(value = "购方税号") + private String buyerTaxnum; + + @ApiModelProperty(value = "购方地址") + private String buyerAddress; + + @ApiModelProperty(value = "购方电话") + private String buyerTelephone; + + @ApiModelProperty(value = "开户行") + private String buyerBank; + + @ApiModelProperty(value = "购买方开户行账号") + private String buyerAccount; + + @ApiModelProperty(value = "购方邮箱") + private String buyerEmail; + + + @ApiModelProperty(value = "销方名称") + private String sellerName; + + @ApiModelProperty(value = "销方税号") + private String sellerTaxnum; + + @ApiModelProperty(value = "销方地址") + private String sellerAddress; + + @ApiModelProperty(value = "销方电话") + private String sellerTelephone; + + @ApiModelProperty(value = "销方开户行名称") + private String sellerBank; + + @ApiModelProperty(value = "销方开户行账户") + private String sellerAccount; + + + @ApiModelProperty(value = "备注") + private String message; + + @ApiModelProperty(value = "价税合计") + private String jshj; + + @ApiModelProperty(value = "金额(不含税)") + private BigDecimal taxfreeamt; + + @ApiModelProperty(value = "税额") + private BigDecimal tax; + + @ApiModelProperty(value = "明细") + List billInfoDetailPDTOList; + + +} diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/service/InvoiceAddService.java b/jianshui-platform/src/main/java/com/jianshui/platform/service/InvoiceAddService.java index 50da827..398e756 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/service/InvoiceAddService.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/service/InvoiceAddService.java @@ -1,7 +1,8 @@ package com.jianshui.platform.service; -import com.jianshui.platform.dto.BillInfoPDTO; +import com.jianshui.common.core.domain.AjaxResult; +import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO; /** * 发票录入 @@ -20,4 +21,16 @@ public interface InvoiceAddService { */ int invoiceSave(BillInfoPDTO billInfoPDTO); + + /** + * @Author: kk + * @Description: 发票开具 + * @DateTime: 2023/6/7 14:11 + * @Params: + * @Return + */ + AjaxResult invoiceIssuance(BillInfoPDTO billInfoPDTO); + + + } diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/service/impl/InvoiceAddServiceImpl.java b/jianshui-platform/src/main/java/com/jianshui/platform/service/impl/InvoiceAddServiceImpl.java index 264f3c3..3f59e50 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/service/impl/InvoiceAddServiceImpl.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/service/impl/InvoiceAddServiceImpl.java @@ -1,10 +1,19 @@ package com.jianshui.platform.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSONObject; +import com.jianshui.common.core.domain.AjaxResult; +import com.jianshui.common.core.domain.entity.Companyservice; +import com.jianshui.common.enums.ErrorCode; +import com.jianshui.common.exception.jianshui.JianshuiParamErrorException; import com.jianshui.common.utils.ValidateUtils; import com.jianshui.invoice.domain.BillInfo; +import com.jianshui.invoice.domain.dto.HXResponse; import com.jianshui.invoice.mapper.BillInfoMapper; -import com.jianshui.platform.dto.BillInfoPDTO; +import com.jianshui.invoice.service.IInvoiceApiService; +import com.jianshui.invoice.service.IInvoiceRequestService; +import com.jianshui.invoice.service.IInvoiceResponseService; +import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO; import com.jianshui.platform.service.InvoiceAddService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -31,6 +40,8 @@ public class InvoiceAddServiceImpl implements InvoiceAddService { } + @Override + public AjaxResult invoiceIssuance(BillInfoPDTO billInfoPDTO) { @@ -39,24 +50,8 @@ public class InvoiceAddServiceImpl implements InvoiceAddService { - - - - - - - - - - - - - - - - - - + return null; + } diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/vo/BillInfoPVO.java b/jianshui-platform/src/main/java/com/jianshui/platform/vo/BillInfoPVO.java index 18bbcdd..a6865a0 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/vo/BillInfoPVO.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/vo/BillInfoPVO.java @@ -1,6 +1,6 @@ package com.jianshui.platform.vo; -import com.jianshui.platform.dto.BillInfoDetailPDTO; +import com.jianshui.platform.dto.InvoiceAdd.BillInfoDetailPDTO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data;