From b2f6a6c49b14811c2bfe3a85bc592df3f569bf2f Mon Sep 17 00:00:00 2001 From: kane Date: Wed, 21 Jun 2023 17:57:10 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=A2=E5=AD=97=E4=BF=A1=E6=81=AF=E8=8E=B7?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform/RedInformationController.java | 30 ++++++ .../ExceptionInformationConstants.java | 19 ++++ .../platform/constant/RedWordConstants.java | 14 +++ .../platform/dto/RedInformationDTO.java | 33 ++++++ .../service/RedInformationService.java | 19 ++++ .../impl/RedInformationServiceImpl.java | 101 ++++++++++++++++++ .../jianshui/platform/vo/BlueInvoiceVO.java | 56 ++++++++++ 7 files changed, 272 insertions(+) create mode 100644 jianshui-admin/src/main/java/com/jianshui/web/controller/platform/RedInformationController.java create mode 100644 jianshui-platform/src/main/java/com/jianshui/platform/constant/ExceptionInformationConstants.java create mode 100644 jianshui-platform/src/main/java/com/jianshui/platform/constant/RedWordConstants.java create mode 100644 jianshui-platform/src/main/java/com/jianshui/platform/dto/RedInformationDTO.java create mode 100644 jianshui-platform/src/main/java/com/jianshui/platform/service/RedInformationService.java create mode 100644 jianshui-platform/src/main/java/com/jianshui/platform/service/impl/RedInformationServiceImpl.java create mode 100644 jianshui-platform/src/main/java/com/jianshui/platform/vo/BlueInvoiceVO.java diff --git a/jianshui-admin/src/main/java/com/jianshui/web/controller/platform/RedInformationController.java b/jianshui-admin/src/main/java/com/jianshui/web/controller/platform/RedInformationController.java new file mode 100644 index 0000000..4ce5bd5 --- /dev/null +++ b/jianshui-admin/src/main/java/com/jianshui/web/controller/platform/RedInformationController.java @@ -0,0 +1,30 @@ +package com.jianshui.web.controller.platform; + +import com.jianshui.common.core.domain.AjaxResult; +import com.jianshui.platform.dto.RedInformationDTO; +import com.jianshui.platform.service.RedInformationService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @Author: kane + * @Description: 红字信息相关接口 + * @CreateTime: 2023-06-21 15:06 + * @Version: 1.0 + **/ +@Api(tags = "红字信息相关接口") +@RestController +@RequestMapping("/platForm/redInformation") +public class RedInformationController { + + @Autowired + private RedInformationService redInformationService; + + @ApiOperation("蓝字发票信息查询") + @PostMapping("/findBlueInvoice") + public AjaxResult findBlueInvoice(@RequestBody RedInformationDTO redInformationDTO){ + return redInformationService.findBlueInvoice(redInformationDTO); + } +} diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/constant/ExceptionInformationConstants.java b/jianshui-platform/src/main/java/com/jianshui/platform/constant/ExceptionInformationConstants.java new file mode 100644 index 0000000..29aaf53 --- /dev/null +++ b/jianshui-platform/src/main/java/com/jianshui/platform/constant/ExceptionInformationConstants.java @@ -0,0 +1,19 @@ +package com.jianshui.platform.constant; + +/** + * @Author: kane + * @Description: 异常信息常量类 + * @CreateTime: 2023-06-21 15:27 + * @Version: 1.0 + **/ +public class ExceptionInformationConstants { + // 发票代码为空 + public static final String FPDMISEMPTY = "发票代码不能为空"; + // 发票号码为空 + public static final String FPHMISEMPTY = "发票号码不能为空"; + // 开票日期为空 + public static final String KPRQISEMPTY = "开票时间不能为空"; + + // 未查询到发票信息 + public static final String NOTINVOICEINFORMATION = "本地未查询到对应的蓝字发票信息,点击确定继续录入单据"; +} diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/constant/RedWordConstants.java b/jianshui-platform/src/main/java/com/jianshui/platform/constant/RedWordConstants.java new file mode 100644 index 0000000..d313888 --- /dev/null +++ b/jianshui-platform/src/main/java/com/jianshui/platform/constant/RedWordConstants.java @@ -0,0 +1,14 @@ +package com.jianshui.platform.constant; + +/** + * @Author: kane + * @Description: 红字信息常量类 + * @CreateTime: 2023-06-21 17:25 + * @Version: 1.0 + **/ +public class RedWordConstants { + // 销方类型 + public static final String XFTYPE = "0"; + // 购方类型(已抵扣) + public static final String ISDEDUCTION = "1"; +} diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/dto/RedInformationDTO.java b/jianshui-platform/src/main/java/com/jianshui/platform/dto/RedInformationDTO.java new file mode 100644 index 0000000..714ba07 --- /dev/null +++ b/jianshui-platform/src/main/java/com/jianshui/platform/dto/RedInformationDTO.java @@ -0,0 +1,33 @@ +package com.jianshui.platform.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: kane + * @Description: 红字信息填开类 + * @CreateTime: 2023-06-21 15:14 + * @Version: 1.0 + **/ +@Data +@ApiModel("红字信息填开类") +public class RedInformationDTO { + + @ApiModelProperty("发票类型") + private String fplx; + + @ApiModelProperty("申请类型 0-销方 1-购方已抵扣 2-购方未抵扣") + private String sqlx; + + @ApiModelProperty("发票代码") + private String fpdm; + + @ApiModelProperty("发票号码") + private String fphm; + + @ApiModelProperty("开票时间") + private String kprq; + + +} diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/service/RedInformationService.java b/jianshui-platform/src/main/java/com/jianshui/platform/service/RedInformationService.java new file mode 100644 index 0000000..781868e --- /dev/null +++ b/jianshui-platform/src/main/java/com/jianshui/platform/service/RedInformationService.java @@ -0,0 +1,19 @@ +package com.jianshui.platform.service; + +import com.jianshui.common.core.domain.AjaxResult; +import com.jianshui.platform.dto.RedInformationDTO; + +/** + * @Author: kane + * @Description: 红字信息业务类 + * @CreateTime: 2023-06-21 15:20 + * @Version: 1.0 + **/ +public interface RedInformationService { + /** + * 功能描述: 获取蓝票信息 + * @param redInformationDTO + * @return : com.jianshui.common.core.domain.AjaxResult + */ + AjaxResult findBlueInvoice(RedInformationDTO redInformationDTO); +} diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/service/impl/RedInformationServiceImpl.java b/jianshui-platform/src/main/java/com/jianshui/platform/service/impl/RedInformationServiceImpl.java new file mode 100644 index 0000000..0932e16 --- /dev/null +++ b/jianshui-platform/src/main/java/com/jianshui/platform/service/impl/RedInformationServiceImpl.java @@ -0,0 +1,101 @@ +package com.jianshui.platform.service.impl; + +import com.jianshui.common.core.domain.AjaxResult; +import com.jianshui.common.core.domain.entity.Companyservice; +import com.jianshui.common.core.domain.entity.SysUser; +import com.jianshui.common.core.domain.model.LoginUser; +import com.jianshui.common.utils.SecurityUtils; +import com.jianshui.invoice.domain.Invoice; +import com.jianshui.invoice.domain.InvoiceDetail; +import com.jianshui.invoice.mapper.InvoiceMapper; +import com.jianshui.invoice.mapper.RedinfoMapper; +import com.jianshui.platform.constant.ExceptionInformationConstants; +import com.jianshui.platform.constant.RedWordConstants; +import com.jianshui.platform.dto.RedInformationDTO; +import com.jianshui.platform.service.RedInformationService; +import com.jianshui.platform.vo.BlueInvoiceVO; +import com.jianshui.system.mapper.CompanyserviceMapper; +import com.jianshui.system.mapper.SysUserMapper; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author: kane + * @Description: 红字信息业务类 + * @CreateTime: 2023-06-21 15:21 + * @Version: 1.0 + **/ +@Service +public class RedInformationServiceImpl implements RedInformationService { + + @Autowired + private InvoiceMapper invoiceMapper; + + @Autowired + private RedinfoMapper redinfoMapper; + + @Autowired + private SysUserMapper sysUserMapper; + + @Autowired + private CompanyserviceMapper companyserviceMapper; + + /** + * 功能描述: 蓝票信息获取 + * @param redInformationDTO + * @return : com.jianshui.common.core.domain.AjaxResult + */ + @Override + public AjaxResult findBlueInvoice(RedInformationDTO redInformationDTO) { + //判空 + if (redInformationDTO.getFpdm().isEmpty()){ + return AjaxResult.error(ExceptionInformationConstants.FPDMISEMPTY); + } + if (redInformationDTO.getFphm().isEmpty()){ + return AjaxResult.error(ExceptionInformationConstants.FPHMISEMPTY); + } + if (redInformationDTO.getKprq().isEmpty()){ + return AjaxResult.error(ExceptionInformationConstants.KPRQISEMPTY); + } + //获取当前用户信息 + LoginUser loginUser = SecurityUtils.getLoginUser(); + SysUser sysUser = sysUserMapper.selectUserById(loginUser.getUserId()); + //根据用户信息获取企业信息 + Companyservice companyservice = companyserviceMapper.selectCompanyserviceByCompanyid(sysUser.getCompanyId()); + //销方类型 + if (RedWordConstants.XFTYPE.equals(redInformationDTO.getSqlx())){ + //查询蓝票信息 + Invoice invoice = invoiceMapper.selectByFpdmFphm(companyservice.getCompanyid(),redInformationDTO.getFpdm(), redInformationDTO.getFphm()); + int count = 0; + if (invoice != null){ + BlueInvoiceVO blueInvoiceVO = new BlueInvoiceVO(); + BeanUtils.copyProperties(invoice,blueInvoiceVO); + List invoiceDetailList = invoice.getInvoiceDetailList(); + for (InvoiceDetail invoiceDetail : invoiceDetailList) { + if (invoiceDetail != null){ + count++; + } + } + blueInvoiceVO.setDetailCount(count); + return AjaxResult.success(blueInvoiceVO); + } + return AjaxResult.error(ExceptionInformationConstants.NOTINVOICEINFORMATION); + }else if (RedWordConstants.ISDEDUCTION.equals(redInformationDTO.getSqlx())){ + //购方已抵扣 + BlueInvoiceVO blueInvoiceVO = new BlueInvoiceVO(); + blueInvoiceVO.setBuyerName(companyservice.getSellername()); + blueInvoiceVO.setBuyerTaxnum(companyservice.getSellertax()); + return AjaxResult.success(blueInvoiceVO); + }else { + //购方未抵扣 + BlueInvoiceVO blueInvoiceVO = new BlueInvoiceVO(); + BeanUtils.copyProperties(redInformationDTO,blueInvoiceVO); + blueInvoiceVO.setBuyerName(companyservice.getSellername()); + blueInvoiceVO.setBuyerTaxnum(companyservice.getSellertax()); + return AjaxResult.success(blueInvoiceVO); + } + } +} diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/vo/BlueInvoiceVO.java b/jianshui-platform/src/main/java/com/jianshui/platform/vo/BlueInvoiceVO.java new file mode 100644 index 0000000..15170bc --- /dev/null +++ b/jianshui-platform/src/main/java/com/jianshui/platform/vo/BlueInvoiceVO.java @@ -0,0 +1,56 @@ +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: kane + * @Description: 蓝票信息类 + * @CreateTime: 2023-06-21 15:59 + * @Version: 1.0 + **/ +@ApiModel("蓝票信息类") +@Data +public class BlueInvoiceVO { + + @ApiModelProperty("发票代码") + private String fpdm; + + @ApiModelProperty("发票号码") + private String fphm; + + @ApiModelProperty("购方名称") + private String buyerName; + + @ApiModelProperty("购方税号") + private String buyerTaxnum; + + @ApiModelProperty("购方地址") + private String buyerAddress; + + @ApiModelProperty("购买方银行") + private String buyerAccount; + + @ApiModelProperty("含税金额") + private BigDecimal taxamt; + + @ApiModelProperty("税额") + private BigDecimal tax; + + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty("开票日期") + private Date kprq; + + @ApiModelProperty("开票人") + private String clerk; + @ApiModelProperty("作废类型") + private String deprecateType; + @ApiModelProperty("明细行数") + private Integer detailCount; +}