Merge remote-tracking branch 'origin/beta' into xingze

beta-prop-all^2
kane 2 years ago
commit 1e86f4e18e
  1. 45
      jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java
  2. 88
      jianshui-admin/src/main/java/com/jianshui/web/controller/platform/BillInfoAddPController.java
  3. 31
      jianshui-admin/src/main/java/com/jianshui/web/controller/platform/InvoiceAddPController.java
  4. 4
      jianshui-income/src/main/java/com/jianshui/income/service/impl/EleCheckInvoiceImpl.java
  5. 12
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/BillInfo.java
  6. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/elephant/DDTXX.java
  7. 20
      jianshui-invoice/src/main/java/com/jianshui/invoice/utils/IncomeTest.java
  8. 45
      jianshui-platform/src/main/java/com/jianshui/platform/dto/DocumentListQueryPDTO.java
  9. 57
      jianshui-platform/src/main/java/com/jianshui/platform/enums/InvoiceStatus.java
  10. 37
      jianshui-platform/src/main/java/com/jianshui/platform/enums/InvoiceType.java
  11. 29
      jianshui-platform/src/main/java/com/jianshui/platform/service/BillInfoAddPService.java
  12. 18
      jianshui-platform/src/main/java/com/jianshui/platform/service/InvoiceAddPService.java
  13. 30
      jianshui-platform/src/main/java/com/jianshui/platform/service/impl/BillInfoAddPServiceImpl.java
  14. 26
      jianshui-platform/src/main/java/com/jianshui/platform/service/impl/InvoiceAddPServiceImpl.java
  15. 71
      jianshui-platform/src/main/java/com/jianshui/platform/vo/DocumentListPVO.java

@ -1,17 +1,15 @@
package com.jianshui.api.controller.http.invoice.v1; package com.jianshui.api.controller.http.invoice.v1;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.jianshui.common.core.domain.AjaxResult; import com.jianshui.common.core.domain.AjaxResult;
import com.jianshui.common.core.domain.entity.Companyservice; import com.jianshui.common.core.domain.entity.Companyservice;
import com.jianshui.common.core.redis.RedisCache;
import com.jianshui.common.enums.ErrorCode; import com.jianshui.common.enums.ErrorCode;
import com.jianshui.common.exception.jianshui.JianshuiParamErrorException; import com.jianshui.common.exception.jianshui.JianshuiParamErrorException;
import com.jianshui.common.utils.StringUtils; import com.jianshui.common.utils.StringUtils;
import com.jianshui.common.utils.http.HttpHelper; import com.jianshui.common.utils.http.HttpHelper;
import com.jianshui.common.utils.spring.SpringUtils;
import com.jianshui.invoice.domain.BillInfo; import com.jianshui.invoice.domain.BillInfo;
import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO;
import com.jianshui.invoice.domain.Redinfo; import com.jianshui.invoice.domain.Redinfo;
import com.jianshui.invoice.domain.dto.*; import com.jianshui.invoice.domain.dto.*;
import com.jianshui.invoice.domain.dto.api.*; import com.jianshui.invoice.domain.dto.api.*;
@ -22,20 +20,18 @@ import com.jianshui.invoice.factory.IInvoiceResponseFactory;
import com.jianshui.invoice.factory.IInvoiceServiceFactory; import com.jianshui.invoice.factory.IInvoiceServiceFactory;
import com.jianshui.invoice.service.IInvoiceResponseService; import com.jianshui.invoice.service.IInvoiceResponseService;
import com.jianshui.invoice.utils.ApiRequestUtils; import com.jianshui.invoice.utils.ApiRequestUtils;
import com.jianshui.platform.service.InvoiceAddPService;
import com.jianshui.system.service.ICompanyserviceService; import com.jianshui.system.service.ICompanyserviceService;
import com.jianshui.system.service.IServiceManageService; import com.jianshui.system.service.IServiceManageService;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.concurrent.TimeUnit;
/** /**
* @Description * @Description
@ -63,6 +59,9 @@ public class InvoiceController {
@Autowired @Autowired
private IInvoiceServiceFactory invoiceServiceFactory; private IInvoiceServiceFactory invoiceServiceFactory;
@Autowired
private InvoiceAddPService addService;
/** /**
* API回调接口 * API回调接口
@ -1276,6 +1275,40 @@ public class InvoiceController {
} }
/**
* @Author: kk
* @Description: 单据传入
* @DateTime: 2023/6/25 10:00
* @Params:
* @Return
*/
@ApiImplicitParams({
@ApiImplicitParam(name = "identity", value = "身份认证", dataType = "string", example = "1130", required = true),
@ApiImplicitParam(name = "order", value = "请求体", required = true)})
@PostMapping({"/api/invoice/v1/invoiceIncome/{identity}", "/api/invoice/v1/invoiceIncome"})
public Object invoiceIncome(HttpServletRequest request, String identity) throws Exception {
if (StringUtils.isEmpty(identity)) {
return AjaxResult.error(ErrorCode.EMPTY_IDENTITY);
}
Companyservice companyservice = iCompanyserviceService.selectCompanyserviceByIdentity(identity);
if (companyservice == null) {
return AjaxResult.error(ErrorCode.COMPANY_NOT_FOUND);
}
// 获得入口报文适配器
String requestAdapterKey = serviceManageService.getRequestAdapterKey("invoice", companyservice.getCompanyid());
IInvoiceRequestService invoiceRequestService = invoiceRequestFactory.getService(requestAdapterKey);
JSONObject decryptResult = invoiceRequestService.decrypt(request, companyservice, "");
BillInfoPDTO billInfoPDTO = BeanUtil.copyProperties(decryptResult,BillInfoPDTO.class);
HXResponse result = addService.invoiceIssuance(billInfoPDTO);
return result;
}

@ -0,0 +1,88 @@
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.BillInfo;
import com.jianshui.invoice.mapper.BillInfoMapper;
import com.jianshui.platform.dto.DocumentListQueryPDTO;
import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO;
import com.jianshui.platform.service.InvoiceAddPService;
import com.jianshui.platform.vo.InvoiceListPVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 发票录入
*
*/
@Api(tags={"单据管理"},value = "")
@RestController
@RequestMapping("/platForm/billInfoAdd/")
public class BillInfoAddPController extends BaseController {
@Autowired
private InvoiceAddPService addService;
@Autowired
private BillInfoMapper billInfoMapper;
@ApiOperation(value = "单据保存",notes = "单据保存请求(支持数电普票、数电专票)")
@PostMapping( "invoiceSave")
public AjaxResult invoiceSave(@RequestBody BillInfoPDTO billInfoPDTO) throws Exception {
return toAjax(addService.invoiceSave(billInfoPDTO));
}
@ApiOperation(value = "单据管理列表",notes = "发票管理")
@GetMapping( "documentList")
public TableDataInfo documentList(DocumentListQueryPDTO queryPDTO) throws Exception {
startPage();
BillInfo billInfo = BeanUtil.copyProperties(queryPDTO,BillInfo.class);
List<BillInfo> billInfoList = billInfoMapper.selectBillInfoList(billInfo);
List<InvoiceListPVO> invoiceListPVOS = BeanUtil.copyToList(billInfoList,InvoiceListPVO.class);
return getDataTable(invoiceListPVOS);
}
@ApiOperation(value = "税收分类编码列表",notes = "开发中")
@PostMapping( "difference")
public AjaxResult taxClassificationCodeList(@RequestBody JSONObject jsonObject) throws Exception {
// TODO: 税收分类编码列表
return AjaxResult.error("功能开发中!");
}
@ApiOperation(value = "差额",notes = "开发中")
@PostMapping( "difference1")
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,10 +1,7 @@
package com.jianshui.web.controller.platform; package com.jianshui.web.controller.platform;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jianshui.common.core.controller.BaseController; import com.jianshui.common.core.controller.BaseController;
import com.jianshui.common.core.domain.AjaxResult;
import com.jianshui.common.core.page.TableDataInfo; import com.jianshui.common.core.page.TableDataInfo;
import com.jianshui.invoice.domain.Invoice; import com.jianshui.invoice.domain.Invoice;
import com.jianshui.invoice.domain.dto.HXResponse; import com.jianshui.invoice.domain.dto.HXResponse;
@ -12,7 +9,7 @@ import com.jianshui.invoice.mapper.InvoiceMapper;
import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO; import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO;
import com.jianshui.platform.dto.InvoiceListQueryPDTO; import com.jianshui.platform.dto.InvoiceListQueryPDTO;
import com.jianshui.platform.dto.invoicered.InvoiceQueryPDTO; import com.jianshui.platform.dto.invoicered.InvoiceQueryPDTO;
import com.jianshui.platform.service.InvoiceAddService; import com.jianshui.platform.service.InvoiceAddPService;
import com.jianshui.platform.vo.InvoiceListPVO; import com.jianshui.platform.vo.InvoiceListPVO;
import com.jianshui.platform.vo.invoicered.InvoiceQueryPVO; import com.jianshui.platform.vo.invoicered.InvoiceQueryPVO;
import io.swagger.annotations.*; import io.swagger.annotations.*;
@ -26,30 +23,22 @@ import java.util.List;
* 发票录入 * 发票录入
* *
*/ */
@Api(tags={"发票管理"},value = "蓝字、红字发票开具") @Api(tags={"发票管理"},value = "发票管理")
@RestController @RestController
@RequestMapping("/platForm/documentEntry/") @RequestMapping("/platForm/invoiceAdd/")
public class InvoiceAddController extends BaseController { public class InvoiceAddPController extends BaseController {
@Autowired @Autowired
private InvoiceAddService addService; private InvoiceAddPService addService;
@Autowired @Autowired
private InvoiceMapper invoiceMapper; private InvoiceMapper invoiceMapper;
@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") @PostMapping( "invoiceIssuance")
public HXResponse invoiceIssuance(@RequestBody BillInfoPDTO billInfoPDTO) throws Exception { public HXResponse invoiceIssuance(@RequestBody BillInfoPDTO billInfoPDTO) throws Exception {
return addService.invoiceIssuance(billInfoPDTO); return addService.invoiceIssuance(billInfoPDTO);
} }
@ApiOperation(value = "蓝字发票查询",notes = "查询所有未冲红蓝字发票") @ApiOperation(value = "蓝字发票查询",notes = "查询所有未冲红蓝字发票")
@GetMapping( "invoiceQuery") @GetMapping( "invoiceQuery")
public TableDataInfo invoiceQuery(InvoiceQueryPDTO invoiceQueryPDTO) throws Exception { public TableDataInfo invoiceQuery(InvoiceQueryPDTO invoiceQueryPDTO) throws Exception {
@ -62,9 +51,7 @@ public class InvoiceAddController extends BaseController {
return getDataTable(invoiceQueryPVOS); return getDataTable(invoiceQueryPVOS);
} }
@ApiOperation(value = "发票管理列表",notes = "发票管理")
@ApiOperation(value = "发票管理",notes = "发票管理")
@GetMapping( "invoiceList") @GetMapping( "invoiceList")
public TableDataInfo invoiceList(InvoiceListQueryPDTO queryPDTO) throws Exception { public TableDataInfo invoiceList(InvoiceListQueryPDTO queryPDTO) throws Exception {
@ -93,6 +80,10 @@ public class InvoiceAddController extends BaseController {

@ -254,7 +254,7 @@ public class EleCheckInvoiceImpl implements ICheckInvoice {
} }
kprq = (String) tempData.get("kprq"); kprq = (String) tempData.get("kprq");
fphm = (String) tempData.get("fphm"); fphm = (String) tempData.get("fphm");
String[] fpzlList = {"01", "02", "03", "04", "10", "11", "14", "15", "08", "21", "22"}; String[] fpzlList = {"01", "02", "03", "04", "10", "11", "14", "15", "08", "21", "22","61","83"};
if (!Arrays.asList(fpzlList).contains(fpzl)) { // 如果不存发票种类,则挂掉 if (!Arrays.asList(fpzlList).contains(fpzl)) { // 如果不存发票种类,则挂掉
return AjaxResult.error(1025, "发票种类非法!"); return AjaxResult.error(1025, "发票种类非法!");
} }
@ -684,7 +684,7 @@ public class EleCheckInvoiceImpl implements ICheckInvoice {
jym = jym.substring(jym.length() - 6, jym.length()); jym = jym.substring(jym.length() - 6, jym.length());
} }
fpzl = (String) data.get("fpzl"); fpzl = (String) data.get("fpzl");
String[] fpzlList = {"01", "02", "03", "04", "10", "11", "14", "15", "08", "21", "22"}; String[] fpzlList = {"01", "02", "03", "04", "10", "11", "14", "15", "08", "21", "22","61","83"};
if (!Arrays.asList(fpzlList).contains(fpzl)) { // 如果不存发票种类,则挂掉 if (!Arrays.asList(fpzlList).contains(fpzl)) { // 如果不存发票种类,则挂掉
return AjaxResult.error(1025, "发票种类非法!"); return AjaxResult.error(1025, "发票种类非法!");
} }

@ -336,11 +336,19 @@ public class BillInfo extends BaseEntity
private String fjxxnr; private String fjxxnr;
// 2023/6/19 大象冲红原因新增
@TableField(exist=false)
@ApiModelProperty(value = "冲红原因")
private String chyy;
public String getChyy() {
return chyy;
}
public void setChyy(String chyy) {
this.chyy = chyy;
}
@Override @Override
public String getSearchValue() { public String getSearchValue() {

@ -59,7 +59,7 @@ public class DDTXX {
this.setHJJE(billInfo.getTaxfreeamt().toString()); // 合计金额 // 计算金额税额,在processing里 this.setHJJE(billInfo.getTaxfreeamt().toString()); // 合计金额 // 计算金额税额,在processing里
this.setHJSE(billInfo.getTax().toString()); // 合计税额 // 计算金额税额,在processing里 this.setHJSE(billInfo.getTax().toString()); // 合计税额 // 计算金额税额,在processing里
this.setBZ(billInfo.getMessage()); // 备注 this.setBZ(billInfo.getMessage()); // 备注
// this.setCHYY(billInfo.get); // 冲红原因 this.setCHYY(billInfo.getChyy()); // 冲红原因
if (StringUtils.equals(billInfo.getKptype(), "2")) { if (StringUtils.equals(billInfo.getKptype(), "2")) {
if (StringUtils.equals(billInfo.getInvoiceType(), "p")) { if (StringUtils.equals(billInfo.getInvoiceType(), "p")) {
this.setTSCHBZ("0"); // 特殊冲红标志 this.setTSCHBZ("0"); // 特殊冲红标志

@ -27,17 +27,17 @@ public class IncomeTest {
// String key = "zE9+TICzsrejfujj/BXjCQ=="; // 1206 // String key = "zE9+TICzsrejfujj/BXjCQ=="; // 1206
System.out.println("-------------------单个发票查验-----------------------------"); System.out.println("-------------------单个发票查验-----------------------------");
// String order = "{\n" + String order = "{\n" +
// " \"taxNo\": \"91370102MA3UD2FG21\",\n" + " \"taxNo\": \"9T86Z09T5L0000TET6\n\",\n" +
// " \"jym\": \"\",\n" + " \"jym\": \"\",\n" +
// " \"fpje\": \"47802.00\",\n" + " \"fpje\": \"100\",\n" +
// " \"fpdm\": \"3700211130\",\n" + " \"fpdm\": \"\",\n" +
// " \"kprq\": \"20211216\",\n" + " \"kprq\": \"20220727\",\n" +
// " \"fphm\": \"08345487\",\n" + " \"fphm\": \"2231700000000011\",\n" +
// " \"fpzl\": \"01\"\n" + " \"fpzl\": \"61\"\n" +
// "}"; "}";
// String order = "{\"jym\":\"165330\",\"fpje\":\"83.07\",\"fpdm\":\"011002100511\",\"kprq\":\"20220209\",\"fphm\":\"41985485\",\"fpzl\":\"10\",\"taxNo\":\"91370100664851254J\"}"; // String order = "{\"jym\":\"165330\",\"fpje\":\"83.07\",\"fpdm\":\"011002100511\",\"kprq\":\"20220209\",\"fphm\":\"41985485\",\"fpzl\":\"10\",\"taxNo\":\"91370100664851254J\"}";
String order = "{\"jym\":\"356607\",\"fpje\":\"259.23\",\"fpdm\":\"011002000711\",\"kprq\":\"20210111\",\"fphm\":\"66914035\",\"fpzl\":\"01\",\"taxNo\":\"91370102MA3UD2FG21\" }"; // String order = "{\"jym\":\"356607\",\"fpje\":\"259.23\",\"fpdm\":\"011002000711\",\"kprq\":\"20210111\",\"fphm\":\"66914035\",\"fpzl\":\"01\",\"taxNo\":\"91370102MA3UD2FG21\" }";
String m = AisinoInvoiceDecryptUtil.encrypt(order, key); String m = AisinoInvoiceDecryptUtil.encrypt(order, key);
System.out.println("json : " + order); System.out.println("json : " + order);
System.out.println(m); System.out.println(m);

@ -0,0 +1,45 @@
package com.jianshui.platform.dto;
import com.jianshui.common.core.page.PageDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.sql.Date;
/**
* @Author: kk
* @Description: 单据管理查询
* @DateTime: 2023/6/12 10:48
* @Params:
* @Return
*/
@Data
@ApiModel("单据管理查询")
public class DocumentListQueryPDTO extends PageDomain {
@ApiModelProperty(value = "单据类型")
private String billType;
@ApiModelProperty(value = "单据状态")
private Integer state;
@ApiModelProperty(value = "单据编号")
private String fpqqlsh;
@ApiModelProperty(value = "单据开始日期")
private Date startTime;
@ApiModelProperty(value = "单据结束日期")
private Date endTime;
@ApiModelProperty(value = "客户税号")
private String buyerTaxnum;
@ApiModelProperty(value = "客户名称")
private String buyerName;
}

@ -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);
}
}

@ -0,0 +1,29 @@
package com.jianshui.platform.service;
/**
* @Author: kk
* @Description: 单据管理
* @DateTime: 2023/6/26 11:57
*/
public interface BillInfoAddPService {
}

@ -3,34 +3,26 @@ package com.jianshui.platform.service;
import com.jianshui.invoice.domain.dto.HXResponse; import com.jianshui.invoice.domain.dto.HXResponse;
import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO; import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO;
import com.jianshui.platform.vo.invoicered.InvoiceQueryPVO;
import java.util.List;
/** /**
* 发票录入 * @Author: kk
* * @Description: 发票管理
*/ * @DateTime: 2023/6/26 11:55
*/
public interface InvoiceAddService { public interface InvoiceAddPService {
/** /**
* @Author: kk * @Author: kk
* @Description: 单据录入 * @Description: 单据录入
* @DateTime: 2023/6/5 17:14 * @DateTime: 2023/6/5 17:14
* @Params:
* @Return
*/ */
int invoiceSave(BillInfoPDTO billInfoPDTO); int invoiceSave(BillInfoPDTO billInfoPDTO);
/** /**
* @Author: kk * @Author: kk
* @Description: 发票开具 * @Description: 发票开具
* @DateTime: 2023/6/7 14:11 * @DateTime: 2023/6/7 14:11
* @Params:
* @Return
*/ */
HXResponse invoiceIssuance(BillInfoPDTO billInfoPDTO); HXResponse invoiceIssuance(BillInfoPDTO billInfoPDTO);

@ -0,0 +1,30 @@
package com.jianshui.platform.service.impl;
import com.jianshui.invoice.mapper.BillInfoMapper;
import com.jianshui.platform.service.BillInfoAddPService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Author: kk
* @Description: 单据管理
* @DateTime: 2023/6/26 11:58
*/
@Service
@Slf4j
public class BillInfoAddPServiceImpl implements BillInfoAddPService {
@Autowired
private static BillInfoMapper billInfoMapper;
}

@ -1,14 +1,11 @@
package com.jianshui.platform.service.impl; package com.jianshui.platform.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jianshui.common.core.domain.entity.Companyservice; import com.jianshui.common.core.domain.entity.Companyservice;
import com.jianshui.common.exception.jianshui.JianshuiServiceException; import com.jianshui.common.exception.jianshui.JianshuiServiceException;
import com.jianshui.common.utils.SecurityUtils; import com.jianshui.common.utils.SecurityUtils;
import com.jianshui.common.utils.ValidateUtils; import com.jianshui.common.utils.ValidateUtils;
import com.jianshui.invoice.domain.BillInfo; import com.jianshui.invoice.domain.BillInfo;
import com.jianshui.invoice.domain.Invoice;
import com.jianshui.invoice.domain.dto.HXResponse; import com.jianshui.invoice.domain.dto.HXResponse;
import com.jianshui.invoice.enums.ChannelSource; import com.jianshui.invoice.enums.ChannelSource;
import com.jianshui.invoice.factory.IInvoiceServiceFactory; import com.jianshui.invoice.factory.IInvoiceServiceFactory;
@ -18,9 +15,9 @@ import com.jianshui.invoice.service.IInvoiceApiService;
import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO; import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO;
import com.jianshui.platform.dto.InvoiceAdd.species.BillInfoSDGenInvoicePDTO; import com.jianshui.platform.dto.InvoiceAdd.species.BillInfoSDGenInvoicePDTO;
import com.jianshui.platform.dto.InvoiceAdd.species.BillInfoSDSpecialInvoicePDTO; import com.jianshui.platform.dto.InvoiceAdd.species.BillInfoSDSpecialInvoicePDTO;
import com.jianshui.platform.service.InvoiceAddService; import com.jianshui.platform.enums.InvoiceType;
import com.jianshui.platform.service.InvoiceAddPService;
import com.jianshui.platform.utils.InvoiceAllYhdjUtils; import com.jianshui.platform.utils.InvoiceAllYhdjUtils;
import com.jianshui.platform.vo.invoicered.InvoiceQueryPVO;
import com.jianshui.system.domain.InvoiceAllYhdj; import com.jianshui.system.domain.InvoiceAllYhdj;
import com.jianshui.system.mapper.CompanyserviceMapper; import com.jianshui.system.mapper.CompanyserviceMapper;
import com.jianshui.system.service.IServiceManageService; import com.jianshui.system.service.IServiceManageService;
@ -28,16 +25,17 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional; import java.util.Optional;
/** /**
* 发票录入 * @Author: kk
*/ * @Description: 发票管理
* @DateTime: 2023/6/26 11:59
*/
@Service @Service
@Slf4j @Slf4j
public class InvoiceAddServiceImpl implements InvoiceAddService { public class InvoiceAddPServiceImpl implements InvoiceAddPService {
@Autowired @Autowired
private static BillInfoMapper billInfoMapper; private static BillInfoMapper billInfoMapper;
@ -66,6 +64,10 @@ public class InvoiceAddServiceImpl implements InvoiceAddService {
} }
/**
* @Author: kk
* @Description: 发票开具
*/
@Override @Override
public HXResponse invoiceIssuance(BillInfoPDTO billInfoPDTO) { public HXResponse invoiceIssuance(BillInfoPDTO billInfoPDTO) {
@ -73,18 +75,20 @@ public class InvoiceAddServiceImpl implements InvoiceAddService {
// 数电(普票、专票)校验 // 数电(普票、专票)校验
BillInfo billInfo = null; BillInfo billInfo = null;
if("1".equals(invoiceType)){ if(InvoiceType.SHU_DIAN_ZHUAN_PIAO.getCode().equals(invoiceType)){
BillInfoSDGenInvoicePDTO sdGenInvoicePDTO = BeanUtil.copyProperties(billInfoPDTO, BillInfoSDGenInvoicePDTO.class); BillInfoSDGenInvoicePDTO sdGenInvoicePDTO = BeanUtil.copyProperties(billInfoPDTO, BillInfoSDGenInvoicePDTO.class);
ValidateUtils.validate(sdGenInvoicePDTO.getBillInfoDetailPDTOList()); ValidateUtils.validate(sdGenInvoicePDTO.getBillInfoDetailPDTOList());
ValidateUtils.validate(sdGenInvoicePDTO); ValidateUtils.validate(sdGenInvoicePDTO);
billInfo = BeanUtil.copyProperties(sdGenInvoicePDTO, BillInfo.class); 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); BillInfoSDSpecialInvoicePDTO sdSpecialInvoicePDTO = BeanUtil.copyProperties(billInfoPDTO, BillInfoSDSpecialInvoicePDTO.class);
ValidateUtils.validate(sdSpecialInvoicePDTO.getBillInfoDetailPDTOList()); ValidateUtils.validate(sdSpecialInvoicePDTO.getBillInfoDetailPDTOList());
ValidateUtils.validate(sdSpecialInvoicePDTO); ValidateUtils.validate(sdSpecialInvoicePDTO);
billInfo = BeanUtil.copyProperties(sdSpecialInvoicePDTO, BillInfo.class); billInfo = BeanUtil.copyProperties(sdSpecialInvoicePDTO, BillInfo.class);
}else { }else {
return new HXResponse("未获取到发票类别!"); return new HXResponse("未获取到发票类别!");
} }

@ -0,0 +1,71 @@
package com.jianshui.platform.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jianshui.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Author: kk
* @Description: 单据管理列表VO
* @DateTime: 2023/6/12 10:49
* @Params:
* @Return
*/
@Data
@ApiModel("发票管理")
public class DocumentListPVO {
@ApiModelProperty(value = "单据编号")
private String fpqqlsh;
@ApiModelProperty(value = "客户名称")
private String buyerName;
@ApiModelProperty(value = "客户税号")
private String buyerTaxnum;
// @ApiModelProperty(value = "行数")
// private String fphm;
@ApiModelProperty(value = "未税金额")
private BigDecimal taxfreeamt;
@ApiModelProperty(value = "含税金额")
private BigDecimal taxamt;
@ApiModelProperty(value = "日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date invoicedTime;
@ApiModelProperty(value = "单据类型")
private String billType;
@ApiModelProperty(value = "客户地址及电话")
private String buyerAddress;
@ApiModelProperty(value = "客户银行及账号")
private String buyerAccount;
@ApiModelProperty(value = "备注")
private String message;
@ApiModelProperty(value = "来源")
private String source;
// @ApiModelProperty(value = "特殊票种")
// private String sellerTaxnum;
// @ApiModelProperty(value = "失败原因")
// private String sellerTaxnum;
}