commit
aa01a218cd
@ -0,0 +1,13 @@ |
|||||||
|
package com.dxhy.erp.dao; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import com.dxhy.erp.entity.BaseTDxRecordInvoiceOut; |
||||||
|
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author peipei.li |
||||||
|
* @date 2019-04-23 |
||||||
|
* |
||||||
|
*/ |
||||||
|
@Mapper |
||||||
|
public interface BaseReceiptOutDao extends BaseMapper<BaseTDxRecordInvoiceOut> {} |
@ -0,0 +1,21 @@ |
|||||||
|
package com.dxhy.erp.dao; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import com.dxhy.erp.entity.BaseTDxRecordInvoice; |
||||||
|
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* |
||||||
|
* 底账表dao |
||||||
|
* |
||||||
|
* @author peipei.li |
||||||
|
* @date 2019-04-23 |
||||||
|
*/ |
||||||
|
@SuppressWarnings("AlibabaClassNamingShouldBeCamel") |
||||||
|
@Mapper |
||||||
|
public interface BaseTDxRecordInvoiceDao extends BaseMapper<BaseTDxRecordInvoice> { |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,45 @@ |
|||||||
|
package com.dxhy.erp.entity; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author peipei.li |
||||||
|
* @date 2019-04-25 进项税转出确认,条件vo |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class BaseInvoiceEditVO { |
||||||
|
|
||||||
|
/** |
||||||
|
* 主键,多个以英文逗号分隔,结尾不加逗号 |
||||||
|
*/ |
||||||
|
private String primaryKey; |
||||||
|
/** |
||||||
|
* 转出选项,1=全部转出, 2=部分转出 |
||||||
|
*/ |
||||||
|
private String outStatus; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出金额 |
||||||
|
*/ |
||||||
|
private String outAmount; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出税额 |
||||||
|
*/ |
||||||
|
private String outTax; |
||||||
|
/** |
||||||
|
* 转出原因 |
||||||
|
*/ |
||||||
|
private String outReason; |
||||||
|
|
||||||
|
/** |
||||||
|
* 备注 |
||||||
|
*/ |
||||||
|
private String outRemark; |
||||||
|
/** |
||||||
|
* 属期 |
||||||
|
*/ |
||||||
|
private String outTaxPeriod; |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,468 @@ |
|||||||
|
package com.dxhy.erp.entity; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill; |
||||||
|
import com.baomidou.mybatisplus.annotation.TableField; |
||||||
|
import com.baomidou.mybatisplus.annotation.TableName; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.math.BigDecimal; |
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* |
||||||
|
* 底账表 |
||||||
|
* |
||||||
|
* @author peipei.li |
||||||
|
* @date 2019-04-23 |
||||||
|
*/ |
||||||
|
@SuppressWarnings("AlibabaClassNamingShouldBeCamel") |
||||||
|
@Data |
||||||
|
@TableName("t_dx_record_invoice") |
||||||
|
public class BaseTDxRecordInvoice implements Serializable { |
||||||
|
|
||||||
|
private static final long serialVersionUID = 6086166653761632484L; |
||||||
|
|
||||||
|
/** |
||||||
|
* id |
||||||
|
*/ |
||||||
|
private Long id; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票类型 01-增值税专用发票 03-机动车销售统一发票 04-增值税普通发票 10-电子发票 11-卷票 14-通行费发票 |
||||||
|
*/ |
||||||
|
private String invoiceType; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票代码 |
||||||
|
*/ |
||||||
|
private String invoiceCode; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票号码 |
||||||
|
*/ |
||||||
|
private String invoiceNo; |
||||||
|
|
||||||
|
/** |
||||||
|
* 开票日期 |
||||||
|
*/ |
||||||
|
private Date invoiceDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 购方税号 |
||||||
|
*/ |
||||||
|
private String gfTaxNo; |
||||||
|
|
||||||
|
/** |
||||||
|
* 购方名称 |
||||||
|
*/ |
||||||
|
private String gfName; |
||||||
|
|
||||||
|
/** |
||||||
|
* 购方地址电话 |
||||||
|
*/ |
||||||
|
private String gfAddressAndPhone; |
||||||
|
|
||||||
|
/** |
||||||
|
* 购方开户行及账号 |
||||||
|
*/ |
||||||
|
private String gfBankAndNo; |
||||||
|
|
||||||
|
/** |
||||||
|
* 销方税号 |
||||||
|
*/ |
||||||
|
private String xfTaxNo; |
||||||
|
|
||||||
|
/** |
||||||
|
* 销方名称 |
||||||
|
*/ |
||||||
|
private String xfName; |
||||||
|
|
||||||
|
/** |
||||||
|
* 销方地址及电话 |
||||||
|
*/ |
||||||
|
private String xfAddressAndPhone; |
||||||
|
|
||||||
|
/** |
||||||
|
* 销方开户行及账号 |
||||||
|
*/ |
||||||
|
private String xfBankAndNo; |
||||||
|
|
||||||
|
/** |
||||||
|
* 金额 |
||||||
|
*/ |
||||||
|
private BigDecimal invoiceAmount; |
||||||
|
|
||||||
|
/** |
||||||
|
* 税额 |
||||||
|
*/ |
||||||
|
private BigDecimal taxAmount; |
||||||
|
|
||||||
|
/** |
||||||
|
* 价格合计 |
||||||
|
*/ |
||||||
|
private BigDecimal totalAmount; |
||||||
|
|
||||||
|
/** |
||||||
|
* 备注 |
||||||
|
*/ |
||||||
|
private String remark; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票状态 0-正常 1-失控 2-作废 3-红冲 4-异常 |
||||||
|
*/ |
||||||
|
private String invoiceStatus; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票状态修改时间 |
||||||
|
*/ |
||||||
|
private Date statusUpdateDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票状态最后修改时间 |
||||||
|
*/ |
||||||
|
private Date lastUpdateDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 认证时间 |
||||||
|
*/ |
||||||
|
private Date rzhDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 签收时间 |
||||||
|
*/ |
||||||
|
private Date qsDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 最晚认证归属期 yyyymm |
||||||
|
*/ |
||||||
|
private String rzhBelongDateLate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 实际认证归属期 yyyymm |
||||||
|
*/ |
||||||
|
private String rzhBelongDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 认证确认时间 |
||||||
|
*/ |
||||||
|
private Date confirmDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 认证方式 1-勾选认证 2-扫描认证 |
||||||
|
*/ |
||||||
|
private String rzhType; |
||||||
|
|
||||||
|
/** |
||||||
|
* 是否认证 0-未认证 1-已认证 |
||||||
|
*/ |
||||||
|
private String rzhYesorno; |
||||||
|
|
||||||
|
/** |
||||||
|
* 提交认证操作人账号 |
||||||
|
*/ |
||||||
|
private String gxUserAccount; |
||||||
|
|
||||||
|
/** |
||||||
|
* 提交认证操作人 |
||||||
|
*/ |
||||||
|
private String gxUserName; |
||||||
|
|
||||||
|
/** |
||||||
|
* 底账来源 0-采集 1-查验 |
||||||
|
*/ |
||||||
|
private String sourceSystem; |
||||||
|
|
||||||
|
/** |
||||||
|
* 是否有效 1-有效 0-无效 |
||||||
|
*/ |
||||||
|
private String valid; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票代码+发票号码 唯一索引 防重复 |
||||||
|
*/ |
||||||
|
private String uuid; |
||||||
|
|
||||||
|
/** |
||||||
|
* 采集时间 |
||||||
|
*/ |
||||||
|
private Date createDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 勾选时间 |
||||||
|
*/ |
||||||
|
private Date gxDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 认证结果回传信息 |
||||||
|
*/ |
||||||
|
private String rzhBackMsg; |
||||||
|
|
||||||
|
/** |
||||||
|
* 当前税款所属期 |
||||||
|
*/ |
||||||
|
private String dqskssq; |
||||||
|
|
||||||
|
/** |
||||||
|
* 当前税款所属期勾选截止日 |
||||||
|
*/ |
||||||
|
private String gxjzr; |
||||||
|
|
||||||
|
/** |
||||||
|
* 当前税款所属期可勾选发票开票日期范围起 |
||||||
|
*/ |
||||||
|
private String gxfwq; |
||||||
|
|
||||||
|
/** |
||||||
|
* 当前税款所属期可勾选发票开票日期范围止 |
||||||
|
*/ |
||||||
|
private String gxfwz; |
||||||
|
|
||||||
|
/** |
||||||
|
* 是否已勾选 |
||||||
|
*/ |
||||||
|
private String sfygx; |
||||||
|
|
||||||
|
/** |
||||||
|
* 是否存入明细 0 无明细 1 有明细 |
||||||
|
*/ |
||||||
|
private String detailYesorno; |
||||||
|
|
||||||
|
/** |
||||||
|
* 勾选方式(0-手工勾选 1-扫码勾选 2-导入勾选 3- 智能勾选 4-手工认证 5-扫码认证 6-导入认证) |
||||||
|
*/ |
||||||
|
private String gxType; |
||||||
|
|
||||||
|
/** |
||||||
|
* 认证处理状态 0-未认证 1-已勾选未确认,2已确认 3 已发送认证 4 认证成功 5 认证失败 |
||||||
|
*/ |
||||||
|
private String authStatus; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发送认证时间 |
||||||
|
*/ |
||||||
|
private Date sendDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 认证类型(1-抵扣 2-退税 3-代理退税 4-不抵扣 5逾期 发票已认证、已勾选有该标签) |
||||||
|
*/ |
||||||
|
private String rzlx; |
||||||
|
|
||||||
|
/** |
||||||
|
* 是否代办退税(0:否 1:是) |
||||||
|
*/ |
||||||
|
private String sfdbts; |
||||||
|
|
||||||
|
/** |
||||||
|
* 签收方式(0-扫码签收 1-扫描仪签收 2-app签收 3-导入签收 4-手工签收5-pdf上传签收 |
||||||
|
*/ |
||||||
|
private String qsType; |
||||||
|
|
||||||
|
/** |
||||||
|
* 签收结果(0-未签收 1-已签收) |
||||||
|
*/ |
||||||
|
private String qsStatus; |
||||||
|
|
||||||
|
/** |
||||||
|
* 校验码 |
||||||
|
*/ |
||||||
|
private String checkCode; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通行费标志(y-可抵扣通行费,n-不可抵扣通行费) |
||||||
|
*/ |
||||||
|
private String txfbz; |
||||||
|
|
||||||
|
/** |
||||||
|
* 零税率标志 (空:非零税率,1:税率栏位显示“免税”,2:税率栏位显示“不征收”,3:零税率 |
||||||
|
*/ |
||||||
|
private String lslbz; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出状态 0-未转出 1-全部转出 2-部分转出 |
||||||
|
*/ |
||||||
|
private String outStatus; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出金额 |
||||||
|
*/ |
||||||
|
@TableField(fill = FieldFill.UPDATE) |
||||||
|
private BigDecimal outInvoiceAmout; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出税额 |
||||||
|
*/ |
||||||
|
@TableField(fill = FieldFill.UPDATE) |
||||||
|
private BigDecimal outTaxAmount; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出原因1-免税项目用 ;2-集体福利,个人消费;3-非正常损失;4-简易计税方法征税项目用;5-免抵退税办法不得抵扣的进项税额;6-纳税检查调减进项税额;7-红字专用发票通知单注明的进项税额;8-上期留抵税额抵减欠税 |
||||||
|
*/ |
||||||
|
@TableField(fill = FieldFill.UPDATE) |
||||||
|
private String outReason; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出备注 |
||||||
|
*/ |
||||||
|
@TableField(fill = FieldFill.UPDATE) |
||||||
|
private String outRemark; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出日期 |
||||||
|
*/ |
||||||
|
@TableField(fill = FieldFill.UPDATE) |
||||||
|
private Date outDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出人 |
||||||
|
*/ |
||||||
|
@TableField(fill = FieldFill.UPDATE) |
||||||
|
private String outBy; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出税款所属期 |
||||||
|
*/ |
||||||
|
@TableField(fill = FieldFill.UPDATE) |
||||||
|
private String outBelongDate; |
||||||
|
/** |
||||||
|
* 确认人 |
||||||
|
*/ |
||||||
|
private String confirmUser; |
||||||
|
|
||||||
|
/** |
||||||
|
* 机器编号 collate utf32_general_ci |
||||||
|
*/ |
||||||
|
private String machinecode; |
||||||
|
|
||||||
|
/** |
||||||
|
* 部门id |
||||||
|
*/ |
||||||
|
private String deptId; |
||||||
|
|
||||||
|
/** |
||||||
|
* 部门名称 |
||||||
|
*/ |
||||||
|
private String deptName; |
||||||
|
|
||||||
|
/** |
||||||
|
* 结算单号 |
||||||
|
*/ |
||||||
|
private String settlementNo; |
||||||
|
|
||||||
|
/** |
||||||
|
* 是否结算(0未结算1已结算) |
||||||
|
*/ |
||||||
|
private String settlementStatus; |
||||||
|
|
||||||
|
/** |
||||||
|
* 结算单来源 |
||||||
|
*/ |
||||||
|
private String settleSource; |
||||||
|
|
||||||
|
/** |
||||||
|
* 付款状态(0-付款成功 1-付款失败) collate utf8_bin |
||||||
|
*/ |
||||||
|
private String paymentStatus; |
||||||
|
|
||||||
|
/** |
||||||
|
* 付款日期 |
||||||
|
*/ |
||||||
|
private String paymentDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 凭证号 |
||||||
|
*/ |
||||||
|
private String voucherNumber; |
||||||
|
|
||||||
|
/** |
||||||
|
* 付款金额 |
||||||
|
*/ |
||||||
|
private String paymentSum; |
||||||
|
|
||||||
|
/** |
||||||
|
* 签收人 |
||||||
|
*/ |
||||||
|
private String qsName; |
||||||
|
|
||||||
|
/** |
||||||
|
* 逾期申请结果 |
||||||
|
*/ |
||||||
|
private String yqsqMsg; |
||||||
|
|
||||||
|
/** |
||||||
|
* 逾期申请标志 0-未申请 1--已申请 默认为空 |
||||||
|
*/ |
||||||
|
private String yqsqStatus; |
||||||
|
/** |
||||||
|
* 逾期申请属期 |
||||||
|
*/ |
||||||
|
private String yqCurrentPeriod; |
||||||
|
|
||||||
|
/** |
||||||
|
* 管理状态 0正常1异常 |
||||||
|
*/ |
||||||
|
private String glzt; |
||||||
|
|
||||||
|
/** |
||||||
|
* 信息来源 0扫描认证 1系统推送 2出口转内销 |
||||||
|
*/ |
||||||
|
private String xxly; |
||||||
|
|
||||||
|
/** |
||||||
|
* 抵扣税额 |
||||||
|
*/ |
||||||
|
private BigDecimal dkTaxAmount; |
||||||
|
|
||||||
|
/** |
||||||
|
* 逾期可勾选标志 0默认值,1可勾选逾期 |
||||||
|
*/ |
||||||
|
private String yqkgxbz; |
||||||
|
|
||||||
|
/** |
||||||
|
* 异常类型 0发票状态异常1申报用途变更(抵扣变代办退税)2管理状态异常、注:发票状态为正常时为空 |
||||||
|
*/ |
||||||
|
private String yclx; |
||||||
|
|
||||||
|
/** |
||||||
|
* 逾期审核状态 0--未审核 1--已审核 默认为空 |
||||||
|
*/ |
||||||
|
private String yqshzt; |
||||||
|
|
||||||
|
/** |
||||||
|
* 撤销认证处理状态0未撤销1撤销申请2发送撤销4撤销成功5撤销失败 |
||||||
|
*/ |
||||||
|
private String cxrzStatus; |
||||||
|
/** |
||||||
|
* 撤销认证操作时间 |
||||||
|
*/ |
||||||
|
private Date cxrzDate; |
||||||
|
/** |
||||||
|
* 撤销认证属期 |
||||||
|
*/ |
||||||
|
private String cxrzCurrentPeriod; |
||||||
|
/** |
||||||
|
* 不认证处理状态0未申请,1申请,2发送申请,4申请成功,5申请失败 |
||||||
|
*/ |
||||||
|
private String bdkStatus; |
||||||
|
/** |
||||||
|
* 撤销不认证处理0未申请,1申请,2发送申请,4申请成功,5申请失败 |
||||||
|
*/ |
||||||
|
private String cxbdkStatus; |
||||||
|
/** |
||||||
|
* 逾期申请日期 |
||||||
|
*/ |
||||||
|
private Date yqsqDate; |
||||||
|
/** |
||||||
|
* 集团编码 |
||||||
|
*/ |
||||||
|
private String company; |
||||||
|
|
||||||
|
private String exportMark; |
||||||
|
/** |
||||||
|
* 打款状态 |
||||||
|
*/ |
||||||
|
private String inAccountStatus; |
||||||
|
|
||||||
|
private String invoiceSource; |
||||||
|
} |
@ -0,0 +1,93 @@ |
|||||||
|
package com.dxhy.erp.entity; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.math.BigDecimal; |
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
/** |
||||||
|
* 进项税转出表 |
||||||
|
* |
||||||
|
* @author lipeipei 2019-04-24 |
||||||
|
*/ |
||||||
|
@SuppressWarnings("AlibabaClassNamingShouldBeCamel") |
||||||
|
@Data |
||||||
|
@TableName("t_dx_record_invoice_out") |
||||||
|
public class BaseTDxRecordInvoiceOut implements Serializable { |
||||||
|
|
||||||
|
private static final long serialVersionUID = -1633227564761160276L; |
||||||
|
|
||||||
|
/** |
||||||
|
* id |
||||||
|
*/ |
||||||
|
private Long id; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票代码 |
||||||
|
*/ |
||||||
|
private String invoiceCode; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票号码 |
||||||
|
*/ |
||||||
|
private String invoiceNo; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票代码+发票号码 |
||||||
|
*/ |
||||||
|
private String uuid; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出状态 1-全部转出 2-部分转出 |
||||||
|
*/ |
||||||
|
private String outStatus; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出金额 |
||||||
|
*/ |
||||||
|
private BigDecimal outInvoiceAmout; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出税额 |
||||||
|
*/ |
||||||
|
private BigDecimal outTaxAmount; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出原因1-免税项目用 ;2-集体福利,个人消费;3-非正常损失;4-简易计税方法征税项目用;5-免抵退税办法不得抵扣的进项税额;6-纳税检查调减进项税额;7-红字专用发票通知单注明的进项税额;8-上期留抵税额抵减欠税 |
||||||
|
*/ |
||||||
|
private String outReason; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出备注 |
||||||
|
*/ |
||||||
|
private String outRemark; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出日期 |
||||||
|
*/ |
||||||
|
private Date outDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出人 |
||||||
|
*/ |
||||||
|
private String outBy; |
||||||
|
|
||||||
|
/** |
||||||
|
* 转出税款所属期 |
||||||
|
*/ |
||||||
|
private String outBelongDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 是否取消(0-未取消 1-已取消) |
||||||
|
*/ |
||||||
|
private String isCancel; |
||||||
|
/** |
||||||
|
* 集团编码 |
||||||
|
*/ |
||||||
|
private String company; |
||||||
|
|
||||||
|
public BaseTDxRecordInvoiceOut() {} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
package com.dxhy.erp.service; |
||||||
|
|
||||||
|
|
||||||
|
import com.dxhy.erp.entity.BaseTDxRecordInvoice; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author peipei.li |
||||||
|
* @date 2019-04-23 进项税模块,底账表单表相关操作 |
||||||
|
*/ |
||||||
|
@SuppressWarnings("AlibabaClassNamingShouldBeCamel") |
||||||
|
public interface BaseIReceiptInvoiceService { |
||||||
|
|
||||||
|
|
||||||
|
List<BaseTDxRecordInvoice> selectByUuids(String[] uuids); |
||||||
|
/** |
||||||
|
* 进项税转出,批量 update 抵账表数据 |
||||||
|
* |
||||||
|
* @param condEntity |
||||||
|
* 请求参数 |
||||||
|
*/ |
||||||
|
void updateBatch(List<BaseTDxRecordInvoice> condEntity); |
||||||
|
|
||||||
|
} |
@ -0,0 +1,14 @@ |
|||||||
|
package com.dxhy.erp.service; |
||||||
|
|
||||||
|
import com.dxhy.common.vo.UserInfo; |
||||||
|
import com.dxhy.erp.entity.BaseInvoiceEditVO; |
||||||
|
import com.dxhy.erp.model.ErpInvoiceData; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author wangzhikun |
||||||
|
* @Date 2022/12/24 2022/12/24 |
||||||
|
*/ |
||||||
|
public interface IReceiptOutService { |
||||||
|
|
||||||
|
String transfer(ErpInvoiceData erpInvoiceData, BaseInvoiceEditVO baseInvoiceEditVO, UserInfo userInfo); |
||||||
|
} |
@ -0,0 +1,45 @@ |
|||||||
|
package com.dxhy.erp.service.impl; |
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject; |
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
||||||
|
import com.dxhy.common.service.impl.MpBaseServiceImpl; |
||||||
|
import com.dxhy.erp.dao.BaseTDxRecordInvoiceDao; |
||||||
|
import com.dxhy.erp.entity.BaseTDxRecordInvoice; |
||||||
|
import com.dxhy.erp.service.BaseIReceiptInvoiceService; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author wangzhikun |
||||||
|
* @Date 2022/12/24 2022/12/24 |
||||||
|
*/ |
||||||
|
|
||||||
|
/** |
||||||
|
* @author peipei.li |
||||||
|
* @date 2019-04-23 进项税模块,底账表单表相关操作 |
||||||
|
*/ |
||||||
|
@SuppressWarnings("AlibabaUndefineMagicConstant") |
||||||
|
@Service("baseIReceiptInvoiceService") |
||||||
|
public class BaseIReceiptInvoiceServiceImpl extends MpBaseServiceImpl<BaseTDxRecordInvoiceDao, BaseTDxRecordInvoice> implements BaseIReceiptInvoiceService { |
||||||
|
@Override |
||||||
|
public List<BaseTDxRecordInvoice> selectByUuids(String[] uuids) { |
||||||
|
QueryWrapper<BaseTDxRecordInvoice> queryWrapper = new QueryWrapper<>(); |
||||||
|
queryWrapper.lambda().in(BaseTDxRecordInvoice::getUuid, uuids); |
||||||
|
return super.list(queryWrapper); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void updateBatch(List<BaseTDxRecordInvoice> condList) { |
||||||
|
for (BaseTDxRecordInvoice entity : condList) { |
||||||
|
LambdaUpdateWrapper<BaseTDxRecordInvoice> updateWrapper = |
||||||
|
new UpdateWrapper<BaseTDxRecordInvoice>().lambda(); |
||||||
|
updateWrapper.eq(BaseTDxRecordInvoice::getId, entity.getId()); |
||||||
|
super.update(entity, updateWrapper); |
||||||
|
} |
||||||
|
super.succResult(new JSONObject()); |
||||||
|
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,245 @@ |
|||||||
|
package com.dxhy.erp.service.impl; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||||
|
import com.dxhy.common.constant.DbConstant; |
||||||
|
import com.dxhy.common.datasource.config.DynamicContextHolder; |
||||||
|
import com.dxhy.common.enums.JxszcCancelEnum; |
||||||
|
import com.dxhy.common.enums.JxszcZtEnum; |
||||||
|
import com.dxhy.common.service.impl.MpBaseServiceImpl; |
||||||
|
import com.dxhy.common.utils.DateUtils; |
||||||
|
import com.dxhy.common.utils.RRException; |
||||||
|
import com.dxhy.common.vo.UserInfo; |
||||||
|
import com.dxhy.erp.dao.BaseReceiptOutDao; |
||||||
|
import com.dxhy.erp.entity.BaseInvoiceEditVO; |
||||||
|
import com.dxhy.erp.entity.BaseTDxRecordInvoice; |
||||||
|
import com.dxhy.erp.entity.BaseTDxRecordInvoiceOut; |
||||||
|
import com.dxhy.erp.model.ErpInvoiceData; |
||||||
|
import com.dxhy.erp.model.EsOutPutResp; |
||||||
|
import com.dxhy.erp.service.BaseIReceiptInvoiceService; |
||||||
|
import com.dxhy.erp.service.IReceiptOutService; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import org.springframework.transaction.annotation.Transactional; |
||||||
|
|
||||||
|
import javax.annotation.Resource; |
||||||
|
import java.math.BigDecimal; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.stream.Collectors; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author wangzhikun |
||||||
|
* @Date 2022/12/24 2022/12/24 |
||||||
|
*/ |
||||||
|
@Service |
||||||
|
@Slf4j |
||||||
|
public class ReceiptOutServiceImpl extends MpBaseServiceImpl<BaseReceiptOutDao, BaseTDxRecordInvoiceOut> |
||||||
|
implements IReceiptOutService { |
||||||
|
@Resource |
||||||
|
BaseIReceiptInvoiceService baseIReceiptInvoiceService; |
||||||
|
@Override |
||||||
|
public String transfer(ErpInvoiceData erpInvoiceData, BaseInvoiceEditVO condVO, UserInfo userInfo) { |
||||||
|
EsOutPutResp es = new EsOutPutResp(); |
||||||
|
es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY()); |
||||||
|
DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ); |
||||||
|
|
||||||
|
String idStr = condVO.getPrimaryKey(); |
||||||
|
String[] ids = idStr.split(","); |
||||||
|
|
||||||
|
// first:查询出底账表相关数据
|
||||||
|
List<BaseTDxRecordInvoice> invoices = baseIReceiptInvoiceService.selectByUuids(ids); |
||||||
|
// second:根据uuids查询出转出明细并转为map,key=uuid ,value=转出明细
|
||||||
|
List<BaseTDxRecordInvoiceOut> outs = listByUuids(ids); |
||||||
|
Map<String, BaseTDxRecordInvoiceOut> outMap = |
||||||
|
outs.stream().collect(Collectors.toMap(BaseTDxRecordInvoiceOut::getUuid, tri -> tri)); |
||||||
|
|
||||||
|
// third:设置底账表中的 进项税转出 部分相关字段
|
||||||
|
List<BaseTDxRecordInvoice> condList = setPartInvoiceByType(invoices, condVO, userInfo); |
||||||
|
|
||||||
|
List<BaseTDxRecordInvoiceOut> outList = new ArrayList<>(); |
||||||
|
// fourth:对比流水明细,区分底账表list中需要update或者insert的数据
|
||||||
|
invoices.forEach(invoice -> { |
||||||
|
BaseTDxRecordInvoiceOut e = new BaseTDxRecordInvoiceOut(); |
||||||
|
if (outMap.containsKey(invoice.getUuid())) { |
||||||
|
e = outMap.get(invoice.getUuid()); |
||||||
|
} |
||||||
|
// 从构建的底账数据中(进项税转出相关字段),更新需要变更的流水字段
|
||||||
|
e.setCompany(userInfo.getCompany()); |
||||||
|
createInvoiceOut(condVO, userInfo, invoice, e); |
||||||
|
outList.add(e); |
||||||
|
}); |
||||||
|
|
||||||
|
DynamicContextHolder.push("business" + DbConstant.BUSINESS_WRITE); |
||||||
|
excuteTransferWrite(condList, outList); |
||||||
|
|
||||||
|
return "success"; |
||||||
|
} |
||||||
|
/** |
||||||
|
* 根据uuids查询进项税转出明细 |
||||||
|
* |
||||||
|
* @param uuids |
||||||
|
* 请求参数 |
||||||
|
* @return 返回结果 |
||||||
|
*/ |
||||||
|
private List<BaseTDxRecordInvoiceOut> listByUuids(String[] uuids) { |
||||||
|
QueryWrapper<BaseTDxRecordInvoiceOut> queryWrapper = new QueryWrapper<>(); |
||||||
|
queryWrapper.lambda().in(BaseTDxRecordInvoiceOut::getUuid, uuids); |
||||||
|
return super.list(queryWrapper); |
||||||
|
} |
||||||
|
/** |
||||||
|
* 根据转出类型 set 抵账表中进项税转出相关字段 (部分转出 or 全部转出) |
||||||
|
* |
||||||
|
* @param invoices |
||||||
|
* 请求参数 |
||||||
|
* @param condVO |
||||||
|
* 请求参数 |
||||||
|
* @param userInfo |
||||||
|
* 请求参数 |
||||||
|
* @return 返回结果 |
||||||
|
*/ |
||||||
|
private List<BaseTDxRecordInvoice> setPartInvoiceByType(List<BaseTDxRecordInvoice> invoices, |
||||||
|
BaseInvoiceEditVO condVO, UserInfo userInfo) { |
||||||
|
List<BaseTDxRecordInvoice> condList = new ArrayList<>(); |
||||||
|
for (BaseTDxRecordInvoice record : invoices) { |
||||||
|
record.setOutBelongDate(condVO.getOutTaxPeriod()); |
||||||
|
BaseTDxRecordInvoice condRecord = new BaseTDxRecordInvoice(); |
||||||
|
condRecord.setId(record.getId()); |
||||||
|
// 转出状态
|
||||||
|
condRecord.setOutStatus(condVO.getOutStatus()); |
||||||
|
// 转出原因
|
||||||
|
condRecord.setOutReason(condVO.getOutReason()); |
||||||
|
// 备注
|
||||||
|
condRecord.setOutRemark(condVO.getOutRemark()); |
||||||
|
// 转出日期
|
||||||
|
condRecord.setOutDate(DateUtils.getNow()); |
||||||
|
// 转出人
|
||||||
|
condRecord.setOutBy(userInfo.getUsername()); |
||||||
|
//转出金额取价税合计
|
||||||
|
condRecord.setOutInvoiceAmout(record.getTotalAmount()); |
||||||
|
// 税款所属期
|
||||||
|
condRecord.setOutBelongDate(condVO.getOutTaxPeriod()); |
||||||
|
|
||||||
|
/*全部转出 */ |
||||||
|
if (JxszcZtEnum.QBZC.getZcztDm().equals(condVO.getOutStatus())) { |
||||||
|
// 转出金额
|
||||||
|
condRecord.setOutInvoiceAmout(record.getInvoiceAmount()); |
||||||
|
// 转出税额
|
||||||
|
condRecord.setOutTaxAmount(record.getDkTaxAmount()); |
||||||
|
} |
||||||
|
/*部分转出 */ |
||||||
|
if (JxszcZtEnum.BFZC.getZcztDm().equals(condVO.getOutStatus())) { |
||||||
|
// 转出金额累加
|
||||||
|
BigDecimal oldOutAmount = |
||||||
|
record.getOutInvoiceAmout() == null ? new BigDecimal(0) : record.getOutInvoiceAmout(); |
||||||
|
BigDecimal newOutAmount = oldOutAmount.add(new BigDecimal(condVO.getOutAmount())); |
||||||
|
// -1=小于; 0=等于; 1=大于;
|
||||||
|
int compareOut = newOutAmount.compareTo(record.getInvoiceAmount()); |
||||||
|
if (compareOut > 0) { |
||||||
|
throw new RRException("累计转出金额不能大于发票金额"); |
||||||
|
} |
||||||
|
// 转出金额
|
||||||
|
condRecord.setOutInvoiceAmout(newOutAmount); |
||||||
|
|
||||||
|
// 转出税额累加
|
||||||
|
BigDecimal oldOutTax = record.getOutTaxAmount() == null ? new BigDecimal(0) : record.getOutTaxAmount(); |
||||||
|
BigDecimal newOutTax = oldOutTax.add(new BigDecimal(condVO.getOutTax())); |
||||||
|
int compareTax = newOutTax.compareTo(record.getDkTaxAmount()); |
||||||
|
if (compareTax > 0) { |
||||||
|
throw new RRException("累计转出税额不能大于发票税额"); |
||||||
|
} |
||||||
|
// 转出税额
|
||||||
|
condRecord.setOutTaxAmount(newOutTax); |
||||||
|
|
||||||
|
if (compareOut == 0 && compareTax == 0) { |
||||||
|
// 金额税额已经全部转完,设为 全部转出
|
||||||
|
condRecord.setOutStatus(JxszcZtEnum.QBZC.getZcztDm()); |
||||||
|
} |
||||||
|
} |
||||||
|
condList.add(condRecord); |
||||||
|
|
||||||
|
} |
||||||
|
return condList; |
||||||
|
} |
||||||
|
/** |
||||||
|
* 构建进项税转出明细 |
||||||
|
* |
||||||
|
* @param condVO |
||||||
|
* 请求参数 |
||||||
|
* @param userInfo |
||||||
|
* 请求参数 |
||||||
|
* @param invoice |
||||||
|
* 请求参数 |
||||||
|
* @param record |
||||||
|
* 请求参数 |
||||||
|
*/ |
||||||
|
private void createInvoiceOut(BaseInvoiceEditVO condVO, UserInfo userInfo, BaseTDxRecordInvoice invoice, |
||||||
|
BaseTDxRecordInvoiceOut record) { |
||||||
|
// uuid
|
||||||
|
record.setUuid(invoice.getUuid()); |
||||||
|
// 发票号码
|
||||||
|
record.setInvoiceNo(invoice.getInvoiceNo()); |
||||||
|
// 发票代码
|
||||||
|
record.setInvoiceCode(invoice.getInvoiceCode()); |
||||||
|
record.setOutBelongDate(invoice.getOutBelongDate()); |
||||||
|
// 转出状态
|
||||||
|
record.setOutStatus(condVO.getOutStatus()); |
||||||
|
|
||||||
|
/* 全部转出 */ |
||||||
|
if (JxszcZtEnum.QBZC.getZcztDm().equals(condVO.getOutStatus())) { |
||||||
|
// 转出金额
|
||||||
|
record.setOutInvoiceAmout(invoice.getInvoiceAmount()); |
||||||
|
// 转出税额
|
||||||
|
record.setOutTaxAmount(invoice.getDkTaxAmount()); |
||||||
|
} |
||||||
|
/* 部分转出 */ |
||||||
|
if (JxszcZtEnum.BFZC.getZcztDm().equals(condVO.getOutStatus())) { |
||||||
|
// 转出金额累加
|
||||||
|
BigDecimal oldOutAmount = |
||||||
|
record.getOutInvoiceAmout() == null ? new BigDecimal(0) : record.getOutInvoiceAmout(); |
||||||
|
BigDecimal newOutAmount = oldOutAmount.add(new BigDecimal(condVO.getOutAmount())); |
||||||
|
// -1=小于; 0=等于; 1=大于;
|
||||||
|
int compareOut = newOutAmount.compareTo(invoice.getInvoiceAmount()); |
||||||
|
if (compareOut > 0) { |
||||||
|
throw new RRException("累计转出金额不能大于发票金额"); |
||||||
|
} |
||||||
|
// 转出金额
|
||||||
|
record.setOutInvoiceAmout(newOutAmount); |
||||||
|
|
||||||
|
// 转出税额累加
|
||||||
|
BigDecimal oldOutTax = record.getOutTaxAmount() == null ? new BigDecimal(0) : record.getOutTaxAmount(); |
||||||
|
BigDecimal newOutTax = oldOutTax.add(new BigDecimal(condVO.getOutTax())); |
||||||
|
int compareTax = newOutTax.compareTo(invoice.getDkTaxAmount()); |
||||||
|
if (compareTax > 0) { |
||||||
|
throw new RRException("累计转出税额不能大于发票税额"); |
||||||
|
} |
||||||
|
// 转出税额
|
||||||
|
record.setOutTaxAmount(newOutTax); |
||||||
|
|
||||||
|
// 金额税额全部转完,设置状态为 全部转出
|
||||||
|
if (compareOut == 0 && compareTax == 0) { |
||||||
|
record.setOutStatus(JxszcZtEnum.QBZC.getZcztDm()); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// 转出日期
|
||||||
|
record.setOutDate(DateUtils.getNow()); |
||||||
|
// 转出原因
|
||||||
|
record.setOutReason(condVO.getOutReason()); |
||||||
|
// 备注
|
||||||
|
record.setOutRemark(condVO.getOutRemark()); |
||||||
|
// 转出人
|
||||||
|
record.setOutBy(userInfo.getUsername()); |
||||||
|
// 是否取消,默认未取消
|
||||||
|
record.setIsCancel(JxszcCancelEnum.WQX.getQxztDm()); |
||||||
|
} |
||||||
|
@Transactional(rollbackFor = Exception.class) |
||||||
|
public void excuteTransferWrite(List<BaseTDxRecordInvoice> condList, List<BaseTDxRecordInvoiceOut> outList) { |
||||||
|
// 流水表批量insert or update
|
||||||
|
saveOrUpdateBatch(outList); |
||||||
|
// 抵账表批量update
|
||||||
|
baseIReceiptInvoiceService.updateBatch(condList); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue