单据管理

beta-enc
dongxiaoke 2 years ago
parent 61cc2b905b
commit 46be46253f
  1. 29
      jianshui-admin/src/main/java/com/jianshui/web/controller/platform/BillInfoAddController.java
  2. 4
      jianshui-admin/src/main/java/com/jianshui/web/controller/platform/InvoiceAddController.java
  3. 57
      jianshui-platform/src/main/java/com/jianshui/platform/enums/InvoiceStatus.java
  4. 37
      jianshui-platform/src/main/java/com/jianshui/platform/enums/InvoiceType.java
  5. 11
      jianshui-platform/src/main/java/com/jianshui/platform/service/impl/InvoiceAddServiceImpl.java

@ -1,6 +1,7 @@
package com.jianshui.web.controller.platform;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONObject;
import com.jianshui.common.core.controller.BaseController;
import com.jianshui.common.core.domain.AjaxResult;
import com.jianshui.common.core.page.TableDataInfo;
@ -57,25 +58,33 @@ public class BillInfoAddController extends BaseController {
return getDataTable(invoiceListPVOS);
}
@ApiOperation(value = "税收分类编码列表",notes = "开发中")
@PostMapping( "difference")
public AjaxResult taxClassificationCodeList(@RequestBody JSONObject jsonObject) throws Exception {
// TODO: 税收分类编码列表
return AjaxResult.error("功能开发中!");
}
@ApiOperation(value = "差额",notes = "开发中")
@PostMapping( "difference")
public AjaxResult difference(@RequestBody JSONObject jsonObject) throws Exception {
// TODO: 差额:
return AjaxResult.error("功能开发中!");
}
@ApiOperation(value = "复制",notes = "开发中")
@PostMapping( "copy")
public AjaxResult copy(@RequestBody JSONObject jsonObject) throws Exception {
// TODO: 复制:复制的是开票信息还是发票信息
return AjaxResult.error("功能开发中!");
}

@ -1,7 +1,9 @@
package com.jianshui.web.controller.platform;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONObject;
import com.jianshui.common.core.controller.BaseController;
import com.jianshui.common.core.domain.AjaxResult;
import com.jianshui.common.core.page.TableDataInfo;
import com.jianshui.invoice.domain.Invoice;
import com.jianshui.invoice.domain.dto.HXResponse;
@ -33,7 +35,7 @@ public class InvoiceAddController extends BaseController {
@Autowired
private InvoiceMapper invoiceMapper;
@ApiOperation(value = "发票开具",notes = "发票直接开具请求(支持数电普票、数电专票)")
@ApiOperation(value = "发票开具(数电)",notes = "发票直接开具请求(支持数电普票、数电专票)")
@PostMapping( "invoiceIssuance")
public HXResponse invoiceIssuance(@RequestBody BillInfoPDTO billInfoPDTO) throws Exception {
return addService.invoiceIssuance(billInfoPDTO);

@ -0,0 +1,57 @@
package com.jianshui.platform.enums;
/**
* @Author: kk
* @Description: 发票状态枚举BillINfo票据 Invoice发票 RedInfo红字
*/
public enum InvoiceStatus {
INVOICE_NOT_INVOICED("0", "未开票"),
INVOICE_INVOICING("20", "开票中"),
INVOICE_COMPLETED("2", "开票完成"),
INVOICE_FAILED("22", "开票失败"),
INVOICE_RED_FLAGGED("99", "已冲红"),
INVOICE_CANCELLED("3", "已作废"),
INVOICE_MERGED("18", "已合并"),
INVOICE_SIGNING("21", "开票成功签章中"),
INVOICE_SIGNING_FAILED("24", "开票成功签章失败"),
INVOICE_CANCELLING("31", "发票作废中"),
INVOICE_RED_FLAGGING("98", "冲红中"),
INVOICE_SPLIT("17", "已拆分"),
INVOICE_UNSIGNED("23", "开票成功未签章"),
INVOICE_PARTIAL_RED("25", "部分冲红"),
// RedInfo
REDINFO_APPLICATION_PENDING("0", "申请中"),
REDINFO_APPROVAL_SUCCESS("1", "审核成功"),
REDINFO_APPROVAL_FAILED("2", "审核失败"),
REDINFO_APPLICATION_SUCCESS("3", "申请成功"),
REDINFO_APPLICATION_FAILED("4", "申请失败");
private String code;
private String displayName;
private InvoiceStatus(String code, String displayName) {
this.code = code;
this.displayName = displayName;
}
public String getCode() {
return code;
}
public String getDisplayName() {
return displayName;
}
public static InvoiceStatus fromCode(String code) {
for (InvoiceStatus type : InvoiceStatus.values()) {
if (type.getCode().equals(code)) {
return type;
}
}
throw new IllegalArgumentException("Invalid InvoiceType code: " + code);
}
}

@ -0,0 +1,37 @@
package com.jianshui.platform.enums;
/**
* @Author: kk
* @Description: 开票类型枚举
*/
public enum InvoiceType {
SHU_DIAN_ZHUAN_PIAO("1", "数电专票"),
SHU_DIAN_PU_PIAO("2", "数电普票");
private String code;
private String displayName;
private InvoiceType(String code, String displayName) {
this.code = code;
this.displayName = displayName;
}
public String getCode() {
return code;
}
public String getDisplayName() {
return displayName;
}
public static InvoiceType fromCode(String code) {
for (InvoiceType type : InvoiceType.values()) {
if (type.getCode().equals(code)) {
return type;
}
}
throw new IllegalArgumentException("Invalid InvoiceType code: " + code);
}
}

@ -18,6 +18,7 @@ import com.jianshui.invoice.service.IInvoiceApiService;
import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO;
import com.jianshui.platform.dto.InvoiceAdd.species.BillInfoSDGenInvoicePDTO;
import com.jianshui.platform.dto.InvoiceAdd.species.BillInfoSDSpecialInvoicePDTO;
import com.jianshui.platform.enums.InvoiceType;
import com.jianshui.platform.service.InvoiceAddService;
import com.jianshui.platform.utils.InvoiceAllYhdjUtils;
import com.jianshui.platform.vo.invoicered.InvoiceQueryPVO;
@ -68,6 +69,10 @@ public class InvoiceAddServiceImpl implements InvoiceAddService {
}
/**
* @Author: kk
* @Description: 发票开具
*/
@Override
public HXResponse invoiceIssuance(BillInfoPDTO billInfoPDTO) {
@ -75,18 +80,20 @@ public class InvoiceAddServiceImpl implements InvoiceAddService {
// 数电(普票、专票)校验
BillInfo billInfo = null;
if("1".equals(invoiceType)){
if(InvoiceType.SHU_DIAN_ZHUAN_PIAO.getCode().equals(invoiceType)){
BillInfoSDGenInvoicePDTO sdGenInvoicePDTO = BeanUtil.copyProperties(billInfoPDTO, BillInfoSDGenInvoicePDTO.class);
ValidateUtils.validate(sdGenInvoicePDTO.getBillInfoDetailPDTOList());
ValidateUtils.validate(sdGenInvoicePDTO);
billInfo = BeanUtil.copyProperties(sdGenInvoicePDTO, BillInfo.class);
}else if("2".equals(invoiceType)){
}else if(InvoiceType.SHU_DIAN_PU_PIAO.getCode().equals(invoiceType)){
BillInfoSDSpecialInvoicePDTO sdSpecialInvoicePDTO = BeanUtil.copyProperties(billInfoPDTO, BillInfoSDSpecialInvoicePDTO.class);
ValidateUtils.validate(sdSpecialInvoicePDTO.getBillInfoDetailPDTOList());
ValidateUtils.validate(sdSpecialInvoicePDTO);
billInfo = BeanUtil.copyProperties(sdSpecialInvoicePDTO, BillInfo.class);
}else {
return new HXResponse("未获取到发票类别!");
}

Loading…
Cancel
Save