From 825c0bdc20519b8eabf86065c497977952c4a0f0 Mon Sep 17 00:00:00 2001 From: kane Date: Sun, 25 Jun 2023 18:08:29 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=A2=E5=AD=97=E4=BF=A1=E6=81=AF=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform/RedInformationController.java | 18 +- .../ExceptionInformationConstants.java | 6 + .../platform/constant/RedWordConstants.java | 12 + .../platform/dto/invoicered/RedWordDTO.java | 72 ++++++ .../RedWordSelectionDTO.java} | 13 +- .../dto/invoicered/RedinfodetailDTO.java | 46 ++++ .../service/RedInformationService.java | 16 +- .../impl/RedInformationServiceImpl.java | 216 +++++++++++++++--- .../RedWordSelectionVO.java} | 9 +- 9 files changed, 358 insertions(+), 50 deletions(-) create mode 100644 jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedWordDTO.java rename jianshui-platform/src/main/java/com/jianshui/platform/dto/{RedInformationDTO.java => invoicered/RedWordSelectionDTO.java} (65%) create mode 100644 jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedinfodetailDTO.java rename jianshui-platform/src/main/java/com/jianshui/platform/vo/{BlueInvoiceVO.java => invoicered/RedWordSelectionVO.java} (86%) 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 index 4ce5bd5..820a927 100644 --- 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 @@ -1,7 +1,8 @@ package com.jianshui.web.controller.platform; import com.jianshui.common.core.domain.AjaxResult; -import com.jianshui.platform.dto.RedInformationDTO; +import com.jianshui.platform.dto.invoicered.RedWordSelectionDTO; +import com.jianshui.platform.dto.invoicered.RedWordDTO; import com.jianshui.platform.service.RedInformationService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -22,9 +23,16 @@ public class RedInformationController { @Autowired private RedInformationService redInformationService; - @ApiOperation("蓝字发票信息查询") - @PostMapping("/findBlueInvoice") - public AjaxResult findBlueInvoice(@RequestBody RedInformationDTO redInformationDTO){ - return redInformationService.findBlueInvoice(redInformationDTO); + @ApiOperation("红字信息选择") + @PostMapping("/redWordSelection") + public AjaxResult redWordSelection(@RequestBody RedWordSelectionDTO redWordSelectionDTO){ + return redInformationService.redWordSelection(redWordSelectionDTO); + } + + + @ApiOperation("红字信息提交") + @PostMapping("/redWordSubmit") + public AjaxResult redWordSubmit(@RequestBody RedWordDTO dto){ + return redInformationService.redWordSubmit(dto); } } 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 index 29aaf53..be1a885 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/constant/ExceptionInformationConstants.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/constant/ExceptionInformationConstants.java @@ -16,4 +16,10 @@ public class ExceptionInformationConstants { // 未查询到发票信息 public static final String NOTINVOICEINFORMATION = "本地未查询到对应的蓝字发票信息,点击确定继续录入单据"; + + // 申请类型有误 + public static final String REQUESTTYPEERROR = "申请类型有误"; + + //发票相关信息为空 + public static final String INVOICEINFORMATIONISEMPTY = "发票相关信息为空"; } 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 index d313888..59c3cc1 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/constant/RedWordConstants.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/constant/RedWordConstants.java @@ -11,4 +11,16 @@ public class RedWordConstants { public static final String XFTYPE = "0"; // 购方类型(已抵扣) public static final String ISDEDUCTION = "1"; + + // 购方类型(未抵扣) + public static final String NOTDEDUCTION = "2"; + + // 含税单价 + public static final String TAXINVOICE = "0"; + + // 不含税单价 + public static final String NOTTAXINVOICE = "1"; + + // 提交结果响应 + public static final String SUBMITSUCCESS = "提交成功"; } diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedWordDTO.java b/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedWordDTO.java new file mode 100644 index 0000000..33d9d06 --- /dev/null +++ b/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedWordDTO.java @@ -0,0 +1,72 @@ +package com.jianshui.platform.dto.invoicered; + +import com.jianshui.invoice.domain.Redinfodetail; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * @Author: kane + * @Description: 红字信息类 + * @CreateTime: 2023-06-21 17:20 + * @Version: 1.0 + **/ +@ApiModel("红字信息") +@Data +public class RedWordDTO { + + @NotEmpty + @ApiModelProperty("填开类型") + private String billInputType; + @NotNull + @ApiModelProperty("填开日期") + private String billInputTime; + + @NotEmpty + @ApiModelProperty("含税不含税标志 0-含税 1-不含税") + private String status; + @ApiModelProperty("经办人") + private String jbr; + @NotEmpty + @ApiModelProperty("销方名称") + private String sellerName; + @NotEmpty + @ApiModelProperty("销方税号") + private String sellerTaxnum; + @NotEmpty + @ApiModelProperty("购方名称") + private String buyerName; + @NotEmpty + @ApiModelProperty("购方税号") + private String buyerTaxnum; + @NotEmpty + @ApiModelProperty("申请类型 0-销方 1-购方已抵扣 2-购方未抵扣") + private String sqlx; + + @ApiModelProperty("发票代码") + private String originFpdm; + + @ApiModelProperty("发票号码") + private String originFphm; + + @NotEmpty + @ApiModelProperty("发票种类 p电子增值税普通发票 c增值税普通发票 s 增值税专用发票 e 收购发票 f 收购发票 r增值税普通发票") + private String invoiceType; + @NotNull + @ApiModelProperty("开票日期") + private String originKprq; + @NotNull + @ApiModelProperty("合计金额") + private BigDecimal totalMoney; + @NotNull + @ApiModelProperty("合计税额") + private BigDecimal totalTax; + + @ApiModelProperty("红字信息详情列表") + private List redinfodetailList; +} diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/dto/RedInformationDTO.java b/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedWordSelectionDTO.java similarity index 65% rename from jianshui-platform/src/main/java/com/jianshui/platform/dto/RedInformationDTO.java rename to jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedWordSelectionDTO.java index 714ba07..cd5b951 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/dto/RedInformationDTO.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedWordSelectionDTO.java @@ -1,22 +1,25 @@ -package com.jianshui.platform.dto; +package com.jianshui.platform.dto.invoicered; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotEmpty; /** * @Author: kane - * @Description: 红字信息填开类 + * @Description: 红字信息选择类 * @CreateTime: 2023-06-21 15:14 * @Version: 1.0 **/ @Data -@ApiModel("红字信息填开类") -public class RedInformationDTO { +@ApiModel("红字信息选择") +public class RedWordSelectionDTO { - @ApiModelProperty("发票类型") + @NotEmpty + @ApiModelProperty("发票类型 s-专用发票") private String fplx; + @NotEmpty @ApiModelProperty("申请类型 0-销方 1-购方已抵扣 2-购方未抵扣") private String sqlx; diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedinfodetailDTO.java b/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedinfodetailDTO.java new file mode 100644 index 0000000..dfd8020 --- /dev/null +++ b/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedinfodetailDTO.java @@ -0,0 +1,46 @@ +package com.jianshui.platform.dto.invoicered; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + * @Author: kane + * @Description: 红字信息详情 + * @CreateTime: 2023-06-25 15:38 + * @Version: 1.0 + **/ +@Data +@ApiModel("红字信息详情") +public class RedinfodetailDTO { + + @NotEmpty + @ApiModelProperty("商品名称") + private String goodName; + @NotEmpty + @ApiModelProperty("规格型号") + private String spec; + @NotEmpty + @ApiModelProperty("单位") + private String unit; + @NotEmpty + @ApiModelProperty("商品数量") + private BigDecimal num; + @NotNull + @ApiModelProperty("单价") + private BigDecimal cost; + @NotNull + @ApiModelProperty("金额") + private BigDecimal money; + + @NotNull + @ApiModelProperty("税率") + private BigDecimal taxrate; + @NotNull + @ApiModelProperty("税额") + private BigDecimal tax; +} 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 index 781868e..f251738 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/service/RedInformationService.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/service/RedInformationService.java @@ -1,7 +1,8 @@ package com.jianshui.platform.service; import com.jianshui.common.core.domain.AjaxResult; -import com.jianshui.platform.dto.RedInformationDTO; +import com.jianshui.platform.dto.invoicered.RedWordSelectionDTO; +import com.jianshui.platform.dto.invoicered.RedWordDTO; /** * @Author: kane @@ -11,9 +12,16 @@ import com.jianshui.platform.dto.RedInformationDTO; **/ public interface RedInformationService { /** - * 功能描述: 获取蓝票信息 - * @param redInformationDTO + * 功能描述: 红字信息选择 + * @param redWordSelectionDTO * @return : com.jianshui.common.core.domain.AjaxResult */ - AjaxResult findBlueInvoice(RedInformationDTO redInformationDTO); + AjaxResult redWordSelection(RedWordSelectionDTO redWordSelectionDTO); + + /** + * 功能描述: 红字信息提交 + * @param dto + * @return : com.jianshui.common.core.domain.AjaxResult + */ + AjaxResult redWordSubmit(RedWordDTO dto); } 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 index 0932e16..02c575f 100644 --- 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 @@ -4,23 +4,36 @@ 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.exception.jianshui.JianshuiServiceException; import com.jianshui.common.utils.SecurityUtils; +import com.jianshui.common.utils.ValidateUtils; import com.jianshui.invoice.domain.Invoice; import com.jianshui.invoice.domain.InvoiceDetail; +import com.jianshui.invoice.domain.Redinfo; +import com.jianshui.invoice.domain.Redinfodetail; import com.jianshui.invoice.mapper.InvoiceMapper; import com.jianshui.invoice.mapper.RedinfoMapper; +import com.jianshui.invoice.service.IInvoiceApiService; import com.jianshui.platform.constant.ExceptionInformationConstants; import com.jianshui.platform.constant.RedWordConstants; -import com.jianshui.platform.dto.RedInformationDTO; +import com.jianshui.platform.dto.invoicered.RedWordSelectionDTO; +import com.jianshui.platform.dto.invoicered.RedWordDTO; +import com.jianshui.platform.dto.invoicered.RedinfodetailDTO; import com.jianshui.platform.service.RedInformationService; -import com.jianshui.platform.vo.BlueInvoiceVO; +import com.jianshui.platform.vo.invoicered.RedWordSelectionVO; import com.jianshui.system.mapper.CompanyserviceMapper; import com.jianshui.system.mapper.SysUserMapper; +import com.jianshui.system.service.IServiceManageService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; - +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.UUID; /** * @Author: kane @@ -29,6 +42,7 @@ import java.util.List; * @Version: 1.0 **/ @Service +@Slf4j public class RedInformationServiceImpl implements RedInformationService { @Autowired @@ -42,60 +56,196 @@ public class RedInformationServiceImpl implements RedInformationService { @Autowired private CompanyserviceMapper companyserviceMapper; + @Autowired + private IServiceManageService serviceManageService; + /** - * 功能描述: 蓝票信息获取 - * @param redInformationDTO + * 功能描述: 红字信息选择 + * @param redWordSelectionDTO * @return : com.jianshui.common.core.domain.AjaxResult */ @Override - public AjaxResult findBlueInvoice(RedInformationDTO redInformationDTO) { + public AjaxResult redWordSelection(RedWordSelectionDTO redWordSelectionDTO) { //判空 - 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); - } + ValidateUtils.validate(redWordSelectionDTO); //获取当前用户信息 LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser sysUser = sysUserMapper.selectUserById(loginUser.getUserId()); //根据用户信息获取企业信息 Companyservice companyservice = companyserviceMapper.selectCompanyserviceByCompanyid(sysUser.getCompanyId()); //销方类型 - if (RedWordConstants.XFTYPE.equals(redInformationDTO.getSqlx())){ + if (RedWordConstants.XFTYPE.equals(redWordSelectionDTO.getSqlx())){ + //空信息响应 + if (redWordSelectionDTO.getFpdm().isEmpty()){ + return AjaxResult.error(ExceptionInformationConstants.FPDMISEMPTY); + } + if (redWordSelectionDTO.getFphm().isEmpty()){ + return AjaxResult.error(ExceptionInformationConstants.FPHMISEMPTY); + } + if (redWordSelectionDTO.getKprq().isEmpty()){ + return AjaxResult.error(ExceptionInformationConstants.KPRQISEMPTY); + } //查询蓝票信息 - Invoice invoice = invoiceMapper.selectByFpdmFphm(companyservice.getCompanyid(),redInformationDTO.getFpdm(), redInformationDTO.getFphm()); + Invoice invoice = invoiceMapper.selectByFpdmFphm(companyservice.getCompanyid(),redWordSelectionDTO.getFpdm(), redWordSelectionDTO.getFphm()); + //明细行数记录 int count = 0; if (invoice != null){ - BlueInvoiceVO blueInvoiceVO = new BlueInvoiceVO(); - BeanUtils.copyProperties(invoice,blueInvoiceVO); + //封装红字信息选择返回 + RedWordSelectionVO redWordSelectionVO = new RedWordSelectionVO(); + BeanUtils.copyProperties(invoice,redWordSelectionVO); List invoiceDetailList = invoice.getInvoiceDetailList(); + //统计明细行数 for (InvoiceDetail invoiceDetail : invoiceDetailList) { if (invoiceDetail != null){ count++; } } - blueInvoiceVO.setDetailCount(count); - return AjaxResult.success(blueInvoiceVO); + redWordSelectionVO.setDetailCount(count); + redWordSelectionVO.setSqlx(redWordSelectionDTO.getSqlx()); + return AjaxResult.success(redWordSelectionVO); } 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 if (RedWordConstants.ISDEDUCTION.equals(redWordSelectionDTO.getSqlx())){ + //购方已抵扣返回类 + RedWordSelectionVO redWordSelectionVO = new RedWordSelectionVO(); + redWordSelectionVO.setBuyerName(companyservice.getSellername()); + redWordSelectionVO.setBuyerTaxnum(companyservice.getSellertax()); + redWordSelectionVO.setSqlx(redWordSelectionDTO.getSqlx()); + return AjaxResult.success(redWordSelectionVO); + }else if (RedWordConstants.NOTDEDUCTION.equals(redWordSelectionDTO.getSqlx())){ + //空信息响应 + if (redWordSelectionDTO.getFpdm().isEmpty()){ + return AjaxResult.error(ExceptionInformationConstants.FPDMISEMPTY); + } + if (redWordSelectionDTO.getFphm().isEmpty()){ + return AjaxResult.error(ExceptionInformationConstants.FPHMISEMPTY); + } + if (redWordSelectionDTO.getKprq().isEmpty()){ + return AjaxResult.error(ExceptionInformationConstants.KPRQISEMPTY); + } + //购方未抵扣返回类 + RedWordSelectionVO redWordSelectionVO = new RedWordSelectionVO(); + BeanUtils.copyProperties(redWordSelectionDTO,redWordSelectionVO); + redWordSelectionVO.setBuyerName(companyservice.getSellername()); + redWordSelectionVO.setBuyerTaxnum(companyservice.getSellertax()); + return AjaxResult.success(redWordSelectionVO); + }else { + return AjaxResult.error(ExceptionInformationConstants.REQUESTTYPEERROR); + } + } + + /** + * 功能描述: 红字信息提交 + * @param dto + * @return : com.jianshui.common.core.domain.AjaxResult + */ + @Override + public AjaxResult redWordSubmit(RedWordDTO dto) { + //判空 + ValidateUtils.validate(dto); + //类型判断 + if (RedWordConstants.XFTYPE.equals(dto.getSqlx())){ + //发票信息判断 + if (dto.getOriginFpdm().isEmpty() || dto.getOriginFphm().isEmpty() || dto.getOriginKprq().isEmpty()){ + return AjaxResult.error(ExceptionInformationConstants.INVOICEINFORMATIONISEMPTY); + } + //红字信息保存 + insertRedWord(dto); + }else if (RedWordConstants.ISDEDUCTION.equals(dto.getSqlx())){ + //红字信息保存 + insertRedWord(dto); }else { - //购方未抵扣 - BlueInvoiceVO blueInvoiceVO = new BlueInvoiceVO(); - BeanUtils.copyProperties(redInformationDTO,blueInvoiceVO); - blueInvoiceVO.setBuyerName(companyservice.getSellername()); - blueInvoiceVO.setBuyerTaxnum(companyservice.getSellertax()); - return AjaxResult.success(blueInvoiceVO); + //发票信息判断 + if (dto.getOriginFpdm().isEmpty() || dto.getOriginFphm().isEmpty() || dto.getOriginKprq().isEmpty()){ + return AjaxResult.error(ExceptionInformationConstants.INVOICEINFORMATIONISEMPTY); + } + //红字信息保存 + insertRedWord(dto); + } + return AjaxResult.success(RedWordConstants.SUBMITSUCCESS); + } + + /** + * 功能描述: 红字信息保存 + * @param dto + * @return : com.jianshui.common.core.domain.AjaxResult + */ + public void insertRedWord(RedWordDTO dto){ + //获取用户信息 + Long userId = SecurityUtils.getUserId(); + SysUser sysUser = sysUserMapper.selectUserById(userId); + Companyservice companyservice = companyserviceMapper.selectCompanyserviceByCompanyid(sysUser.getCompanyId()); + //封装红字信息实体类 + Redinfo redinfo = new Redinfo(); + BeanUtils.copyProperties(dto,redinfo); + if (RedWordConstants.TAXINVOICE.equals(dto.getStatus())){ + //含税总计金额 + redinfo.setTaxamt(dto.getTotalMoney()); + //总计税额 + redinfo.setTax(dto.getTotalTax()); + //不含税总计金额 + redinfo.setTaxfreeamt(dto.getTotalMoney().subtract(dto.getTotalTax())); + } + if (RedWordConstants.NOTTAXINVOICE.equals(dto.getStatus())){ + //不含税总计金额 + redinfo.setTaxfreeamt(dto.getTotalMoney()); + //含税总计金额 + redinfo.setTaxamt(dto.getTotalMoney().add(dto.getTotalTax())); + //总计税额 + redinfo.setTax(dto.getTotalTax()); + } + //不为空字段 + String uuidhm = UUID.randomUUID().toString(); + redinfo.setSystemOrderno(uuidhm); + String outOrderNO = uuidhm.replaceAll("-", ""); + redinfo.setOutTradeOrderno(outOrderNO); + redinfo.setFpqqlsh(uuidhm); + redinfo.setCompanyId(sysUser.getCompanyId()); + redinfo.setRedInfoStatus("0"); + String serviceKey = null; + try { + serviceKey = serviceManageService.getCompanyServiceSupplier("invoice", sysUser.getCompanyId()); + redinfo.setServiceSupplierKey(serviceKey); + } catch (Exception e) { + log.error("简税产品端,红字信息提交失败,企业税号={},servicekey={}",companyservice.toString(),serviceKey); + throw new JianshuiServiceException("红字信息提交异常!"); + } + //保存红字信息 + redinfoMapper.insertRedinfo(redinfo); + //封装红字信息详情实体类 + List redinfodetailList = dto.getRedinfodetailList(); + List redinfodetails = new ArrayList<>(); + //行数 + int count = 1; + for (RedinfodetailDTO redinfodetailDTO : redinfodetailList) { + //红字信息详情实体类 + Redinfodetail redinfodetail = new Redinfodetail(); + BeanUtils.copyProperties(redinfodetailDTO,redinfodetail); + redinfodetail.setRedinfoId(redinfo.getId()); + redinfodetail.setIndex(count); + redinfodetail.setTaxrate(redinfodetailDTO.getTaxrate().divide(new BigDecimal("100"),4,BigDecimal.ROUND_HALF_UP)); + if (RedWordConstants.TAXINVOICE.equals(dto.getStatus())){ + //单价税额 + BigDecimal taxCost = redinfodetailDTO.getTax().divide(redinfodetailDTO.getNum(),2,BigDecimal.ROUND_HALF_UP); + //不含税单价 + redinfodetail.setPrice(redinfodetailDTO.getCost().subtract(taxCost)); + //含税金额 + redinfodetail.setTaxamt(redinfodetailDTO.getMoney()); + //不含税金额 + redinfodetail.setTaxfreeamt(redinfodetailDTO.getMoney().subtract(redinfodetailDTO.getTax())); + }else if (RedWordConstants.NOTTAXINVOICE.equals(dto.getStatus())){ + //不含税单价 + redinfodetail.setPrice(redinfodetailDTO.getCost()); + //不含税金额 + redinfodetail.setTaxfreeamt(redinfodetailDTO.getMoney()); + //含税金额 + redinfodetail.setTaxamt(redinfodetailDTO.getMoney().add(redinfodetailDTO.getTax())); + } + redinfodetails.add(redinfodetail); + count++; } + //保存红字信息详情 + redinfoMapper.batchRedinfodetail(redinfodetails); } } diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/vo/BlueInvoiceVO.java b/jianshui-platform/src/main/java/com/jianshui/platform/vo/invoicered/RedWordSelectionVO.java similarity index 86% rename from jianshui-platform/src/main/java/com/jianshui/platform/vo/BlueInvoiceVO.java rename to jianshui-platform/src/main/java/com/jianshui/platform/vo/invoicered/RedWordSelectionVO.java index 15170bc..d8dcd35 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/vo/BlueInvoiceVO.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/vo/invoicered/RedWordSelectionVO.java @@ -1,7 +1,6 @@ -package com.jianshui.platform.vo; +package com.jianshui.platform.vo.invoicered; 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; @@ -17,7 +16,7 @@ import java.util.Date; **/ @ApiModel("蓝票信息类") @Data -public class BlueInvoiceVO { +public class RedWordSelectionVO { @ApiModelProperty("发票代码") private String fpdm; @@ -37,6 +36,9 @@ public class BlueInvoiceVO { @ApiModelProperty("购买方银行") private String buyerAccount; + @ApiModelProperty("申请类型 0-销方 1-购方已抵扣 2-购方未抵扣") + private String sqlx; + @ApiModelProperty("含税金额") private BigDecimal taxamt; @@ -53,4 +55,5 @@ public class BlueInvoiceVO { private String deprecateType; @ApiModelProperty("明细行数") private Integer detailCount; + }