From c6ae8a4c00b6930c3acee2a72a38a7c20ba737b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E5=B1=95=E8=88=AA?= <2426745133@qq.com> Date: Tue, 21 Oct 2025 17:31:00 +0800 Subject: [PATCH] =?UTF-8?q?10-21-=E6=94=B6=E7=A5=A8=E4=B8=8E=E5=BC=80?= =?UTF-8?q?=E7=A5=A8-=E6=94=B6=E7=A5=A8=E7=99=BB=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xzd/domain/XzdContractAdvanceInfo.java | 4 +- .../domain/bo/XzdContractAdvanceInfoBo.java | 4 +- .../dromara/xzd/domain/bo/XzdProjectBo.java | 5 + .../domain/vo/XzdContractAdvanceInfoVo.java | 4 +- .../xzd/spykp/spdj/domain/XzdSpykpSpdj.java | 258 ++++++++++++++ .../spykp/spdj/domain/bo/XzdSpykpSpdjBo.java | 256 ++++++++++++++ .../spykp/spdj/domain/vo/XzdSpykpSpdjVo.java | 329 ++++++++++++++++++ .../spykp/spdj/mapper/XzdSpykpSpdjMapper.java | 15 + .../spdj/service/IXzdSpykpSpdjService.java | 70 ++++ .../service/impl/XzdSpykpSpdjServiceImpl.java | 311 +++++++++++++++++ .../resources/mapper/xzd/XzdProjectMapper.xml | 4 + 11 files changed, 1254 insertions(+), 6 deletions(-) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/domain/XzdSpykpSpdj.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/domain/bo/XzdSpykpSpdjBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/domain/vo/XzdSpykpSpdjVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/mapper/XzdSpykpSpdjMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/service/IXzdSpykpSpdjService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/service/impl/XzdSpykpSpdjServiceImpl.java diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractAdvanceInfo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractAdvanceInfo.java index 72ee8461..4e97568a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractAdvanceInfo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractAdvanceInfo.java @@ -71,7 +71,7 @@ public class XzdContractAdvanceInfo extends BaseEntity { /** * 变更合同预收款金额 */ - private Long changeContractAmount; + private BigDecimal changeContractAmount; /** * 预收百分比 @@ -81,7 +81,7 @@ public class XzdContractAdvanceInfo extends BaseEntity { /** * 变更预收百分比 */ - private Long changeAdvancePercentage; + private BigDecimal changeAdvancePercentage; /** * 备注 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractAdvanceInfoBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractAdvanceInfoBo.java index a0773de9..102fca1a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractAdvanceInfoBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractAdvanceInfoBo.java @@ -72,12 +72,12 @@ public class XzdContractAdvanceInfoBo extends BaseEntity { /** * 变更合同预收款金额 */ - private Long changeContractAmount; + private BigDecimal changeContractAmount; /** * 预收百分比 */ - private Long advancePercentage; + private BigDecimal advancePercentage; /** * 变更预收百分比 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectBo.java index 856f380f..c6864c0f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectBo.java @@ -299,6 +299,11 @@ public class XzdProjectBo extends BaseEntity { */ private String sheng; + /** + * 城市 + */ + private String cs; + /** * 区县 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractAdvanceInfoVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractAdvanceInfoVo.java index 90184a20..0ee1199f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractAdvanceInfoVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractAdvanceInfoVo.java @@ -83,13 +83,13 @@ public class XzdContractAdvanceInfoVo implements Serializable { * 变更合同预收款金额 */ @ExcelProperty(value = "变更合同预收款金额") - private Long changeContractAmount; + private BigDecimal changeContractAmount; /** * 预收百分比 */ @ExcelProperty(value = "预收百分比") - private Long advancePercentage; + private BigDecimal advancePercentage; /** * 变更预收百分比 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/domain/XzdSpykpSpdj.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/domain/XzdSpykpSpdj.java new file mode 100644 index 00000000..386203b4 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/domain/XzdSpykpSpdj.java @@ -0,0 +1,258 @@ +package org.dromara.xzd.spykp.spdj.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + +import java.io.Serial; + +/** + * 收票登记对象 xzd_spykp_spdj + * + * @author Lion Li + * @date 2025-10-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_spykp_spdj") +public class XzdSpykpSpdj extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id") + private Long id; + + /** + * 发票类型(字典) + */ + private String invoiceType; + + /** + * 进项类型(字典) + */ + private String jxlx; + + /** + * 进项结构类型(字典) + */ + private String jxjglx; + + /** + * 所属组织id(部门) + */ + private Long sszzId; + + /** + * 记账组织id(部门) + */ + private Long jzzzId; + + /** + * 经办人id(用户) + */ + private Long jbrId; + + /** + * 发票用途 + */ + private String fpyt; + + /** + * 发票号码 + */ + private String fphm; + + /** + * 开票日期 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date kprq; + + /** + * 公司税号 + */ + private String gssh; + + /** + * 公司名称 + */ + private String gsmc; + + /** + * 金额 + */ + private BigDecimal je; + + /** + * 税率 + */ + private BigDecimal sl; + + /** + * 扣除率 + */ + private BigDecimal kcl; + + /** + * 税额 + */ + private BigDecimal se; + + /** + * 价税合计 + */ + private BigDecimal jshj; + + /** + * 部分转出 + */ + private String bfzc; + + /** + * 进项转出(是或否) + */ + private String jxzc; + + /** + * 转出项目id + */ + private Long zcxmid; + + /** + * 转出类型 + */ + private String zclx; + + /** + * 进项转出税额 + */ + private BigDecimal jxzcse; + + /** + * 销方税号 + */ + private String xfsh; + + /** + * 销方id(客户) + */ + private Long xfId; + + /** + * 销项纳税人名称 + */ + private String xxnsrmc; + + /** + * 代开发票(0否1是) + */ + private String dkfp; + + /** + * 代开机构代码 + */ + private String dkjgdm; + + /** + * 代开机构名称 + */ + private String dkjgmc; + + /** + * 多项目发票(0否1是) + */ + private String dxmfp; + + /** + * 个人发票(0否1是) + */ + private String grfp; + + /** + * 指定项目 + */ + private String zdxm; + + /** + * 出口退税(0否1是) + */ + private String ckts; + + /** + * 黑名单(0否1是) + */ + private String hmd; + + /** + * 证明信息(0否1是) + */ + private String zmxx; + + /** + * 发票图片id + */ + private Long fptp; + + /** + * 证明信息文件id + */ + private Long zmxxwj; + + /** + * 文件ids(逗号分隔) + */ + private String fileId; + + /** + * 拆分标志 + */ + private String cfbz; + + /** + * 校验码 + */ + private String jym; + + /** + * 机器编码 + */ + private String jqbm; + + /** + * 发票备注 + */ + private String fpbz; + + /** + * 备注 + */ + private String remark; + + /** + * CBS + */ + private String cbs; + + /** + * 备注金额 + */ + private BigDecimal bzje; + + /** + * 合同id + */ + private Long contractId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/domain/bo/XzdSpykpSpdjBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/domain/bo/XzdSpykpSpdjBo.java new file mode 100644 index 00000000..9fef79c5 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/domain/bo/XzdSpykpSpdjBo.java @@ -0,0 +1,256 @@ +package org.dromara.xzd.spykp.spdj.domain.bo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.spykp.spdj.domain.XzdSpykpSpdj; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 收票登记业务对象 xzd_spykp_spdj + * + * @author Lion Li + * @date 2025-10-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdSpykpSpdj.class, reverseConvertGenerate = false) +public class XzdSpykpSpdjBo extends BaseEntity { + + /** + * id + */ + @NotNull(message = "id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 发票类型(字典) + */ + private String invoiceType; + + /** + * 进项类型(字典) + */ + private String jxlx; + + /** + * 进项结构类型(字典) + */ + private String jxjglx; + + /** + * 所属组织id(部门) + */ + private Long sszzId; + + /** + * 记账组织id(部门) + */ + private Long jzzzId; + + /** + * 经办人id(用户) + */ + private Long jbrId; + + /** + * 发票用途 + */ + private String fpyt; + + /** + * 发票号码 + */ + private String fphm; + + /** + * 开票日期 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date kprq; + + /** + * 公司税号 + */ + private String gssh; + + /** + * 公司名称 + */ + private String gsmc; + + /** + * 金额 + */ + private BigDecimal je; + + /** + * 税率 + */ + private BigDecimal sl; + + /** + * 扣除率 + */ + private BigDecimal kcl; + + /** + * 税额 + */ + private BigDecimal se; + + /** + * 价税合计 + */ + private BigDecimal jshj; + + /** + * 部分转出 + */ + private String bfzc; + + /** + * 进项转出(是或否) + */ + private String jxzc; + + /** + * 转出项目id + */ + private Long zcxmid; + + /** + * 转出类型 + */ + private String zclx; + + /** + * 进项转出税额 + */ + private BigDecimal jxzcse; + + /** + * 销方税号 + */ + private String xfsh; + + /** + * 销方id(客户) + */ + private Long xfId; + + /** + * 销项纳税人名称 + */ + private String xxnsrmc; + + /** + * 代开发票(0否1是) + */ + private String dkfp; + + /** + * 代开机构代码 + */ + private String dkjgdm; + + /** + * 代开机构名称 + */ + private String dkjgmc; + + /** + * 多项目发票(0否1是) + */ + private String dxmfp; + + /** + * 个人发票(0否1是) + */ + private String grfp; + + /** + * 指定项目 + */ + private String zdxm; + + /** + * 出口退税(0否1是) + */ + private String ckts; + + /** + * 黑名单(0否1是) + */ + private String hmd; + + /** + * 证明信息(0否1是) + */ + private String zmxx; + + /** + * 发票图片id + */ + private Long fptp; + + /** + * 证明信息文件id + */ + private Long zmxxwj; + + /** + * 文件ids(逗号分隔) + */ + private String fileId; + + /** + * 拆分标志 + */ + private String cfbz; + + /** + * 校验码 + */ + private String jym; + + /** + * 机器编码 + */ + private String jqbm; + + /** + * 发票备注 + */ + private String fpbz; + + /** + * 备注 + */ + private String remark; + + /** + * CBS + */ + private String cbs; + + /** + * 备注金额 + */ + private BigDecimal bzje; + + /** + * 合同id + */ + private Long contractId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/domain/vo/XzdSpykpSpdjVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/domain/vo/XzdSpykpSpdjVo.java new file mode 100644 index 00000000..017b0e15 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/domain/vo/XzdSpykpSpdjVo.java @@ -0,0 +1,329 @@ +package org.dromara.xzd.spykp.spdj.domain.vo; + +import java.math.BigDecimal; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.spykp.spdj.domain.XzdSpykpSpdj; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 收票登记视图对象 xzd_spykp_spdj + * + * @author Lion Li + * @date 2025-10-21 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdSpykpSpdj.class) +public class XzdSpykpSpdjVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @ExcelProperty(value = "id") + private Long id; + + /** + * 发票类型(字典) + */ + @ExcelProperty(value = "发票类型(字典)") + private String invoiceType; + + /** + * 进项类型(字典) + */ + @ExcelProperty(value = "进项类型(字典)") + private String jxlx; + + /** + * 进项结构类型(字典) + */ + @ExcelProperty(value = "进项结构类型(字典)") + private String jxjglx; + + /** + * 所属组织id(部门) + */ + @ExcelProperty(value = "所属组织id(部门)") + private Long sszzId; + + /** + * 所属组织名称 + */ + private String sszzmc; + + /** + * 记账组织id(部门) + */ + @ExcelProperty(value = "记账组织id(部门)") + private Long jzzzId; + + /** + * 记账组织名称 + */ + private String jzzzmc; + + /** + * 经办人id(用户) + */ + @ExcelProperty(value = "经办人id(用户)") + private Long jbrId; + + /** + * 经办人名称 + */ + private String jbrmc; + + /** + * 发票用途 + */ + @ExcelProperty(value = "发票用途") + private String fpyt; + + /** + * 发票号码 + */ + @ExcelProperty(value = "发票号码") + private String fphm; + + /** + * 开票日期 + */ + @ExcelProperty(value = "开票日期") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date kprq; + + /** + * 公司税号 + */ + @ExcelProperty(value = "公司税号") + private String gssh; + + /** + * 公司名称 + */ + @ExcelProperty(value = "公司名称") + private String gsmc; + + /** + * 金额 + */ + @ExcelProperty(value = "金额") + private BigDecimal je; + + /** + * 税率 + */ + @ExcelProperty(value = "税率") + private BigDecimal sl; + + /** + * 扣除率 + */ + @ExcelProperty(value = "扣除率") + private BigDecimal kcl; + + /** + * 税额 + */ + @ExcelProperty(value = "税额") + private BigDecimal se; + + /** + * 价税合计 + */ + @ExcelProperty(value = "价税合计") + private BigDecimal jshj; + + /** + * 部分转出 + */ + private String bfzc; + + /** + * 进项转出(是或否) + */ + private String jxzc; + + /** + * 转出项目id + */ + private Long zcxmid; + + /** + * 转出项目名称 + */ + private String zcxmmc; + + /** + * 转出类型 + */ + private String zclx; + + /** + * 进项转出税额 + */ + private BigDecimal jxzcse; + + /** + * 销方税号 + */ + @ExcelProperty(value = "销方税号") + private String xfsh; + + /** + * 销方id(客户) + */ + @ExcelProperty(value = "销方id(客户)") + private Long xfId; + + /** + * 销方(客户)名称 + */ + private String xfmc; + + /** + * 销项纳税人名称 + */ + @ExcelProperty(value = "销项纳税人名称") + private String xxnsrmc; + + /** + * 代开发票(0否1是) + */ + @ExcelProperty(value = "代开发票(0否1是)") + private String dkfp; + + /** + * 代开机构代码 + */ + @ExcelProperty(value = "代开机构代码") + private String dkjgdm; + + /** + * 代开机构名称 + */ + @ExcelProperty(value = "代开机构名称") + private String dkjgmc; + + /** + * 多项目发票(0否1是) + */ + @ExcelProperty(value = "多项目发票(0否1是)") + private String dxmfp; + + /** + * 个人发票(0否1是) + */ + @ExcelProperty(value = "个人发票(0否1是)") + private String grfp; + + /** + * 指定项目 + */ + @ExcelProperty(value = "指定项目") + private String zdxm; + + /** + * 出口退税(0否1是) + */ + @ExcelProperty(value = "出口退税(0否1是)") + private String ckts; + + /** + * 黑名单(0否1是) + */ + @ExcelProperty(value = "黑名单(0否1是)") + private String hmd; + + /** + * 证明信息(0否1是) + */ + @ExcelProperty(value = "证明信息(0否1是)") + private String zmxx; + + /** + * 发票图片id + */ + @ExcelProperty(value = "发票图片id") + private Long fptp; + + /** + * 证明信息文件id + */ + @ExcelProperty(value = "证明信息文件id") + private Long zmxxwj; + + /** + * 文件ids(逗号分隔) + */ + @ExcelProperty(value = "文件ids(逗号分隔)") + private String fileId; + + /** + * 拆分标志 + */ + @ExcelProperty(value = "拆分标志") + private String cfbz; + + /** + * 校验码 + */ + @ExcelProperty(value = "校验码") + private String jym; + + /** + * 机器编码 + */ + @ExcelProperty(value = "机器编码") + private String jqbm; + + /** + * 发票备注 + */ + @ExcelProperty(value = "发票备注") + private String fpbz; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * CBS + */ + @ExcelProperty(value = "CBS") + private String cbs; + + /** + * 备注金额 + */ + @ExcelProperty(value = "备注金额") + private BigDecimal bzje; + + /** + * 合同id + */ + @ExcelProperty(value = "合同id") + private Long contractId; + + /** + * 合同名称 + */ + private String contractName; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/mapper/XzdSpykpSpdjMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/mapper/XzdSpykpSpdjMapper.java new file mode 100644 index 00000000..a2bd7b55 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/mapper/XzdSpykpSpdjMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.spykp.spdj.mapper; + +import org.dromara.xzd.spykp.spdj.domain.XzdSpykpSpdj; +import org.dromara.xzd.spykp.spdj.domain.vo.XzdSpykpSpdjVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 收票登记Mapper接口 + * + * @author Lion Li + * @date 2025-10-21 + */ +public interface XzdSpykpSpdjMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/service/IXzdSpykpSpdjService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/service/IXzdSpykpSpdjService.java new file mode 100644 index 00000000..e4433b20 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/service/IXzdSpykpSpdjService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.spykp.spdj.service; + +import org.dromara.xzd.spykp.spdj.domain.vo.XzdSpykpSpdjVo; +import org.dromara.xzd.spykp.spdj.domain.bo.XzdSpykpSpdjBo; +import org.dromara.xzd.spykp.spdj.domain.XzdSpykpSpdj; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 收票登记Service接口 + * + * @author Lion Li + * @date 2025-10-21 + */ +public interface IXzdSpykpSpdjService extends IService{ + + /** + * 查询收票登记 + * + * @param id 主键 + * @return 收票登记 + */ + XzdSpykpSpdjVo queryById(Long id); + + /** + * 分页查询收票登记列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 收票登记分页列表 + */ + TableDataInfo queryPageList(XzdSpykpSpdjBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的收票登记列表 + * + * @param bo 查询条件 + * @return 收票登记列表 + */ + List queryList(XzdSpykpSpdjBo bo); + + /** + * 新增收票登记 + * + * @param bo 收票登记 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdSpykpSpdjBo bo); + + /** + * 修改收票登记 + * + * @param bo 收票登记 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdSpykpSpdjBo bo); + + /** + * 校验并批量删除收票登记信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/service/impl/XzdSpykpSpdjServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/service/impl/XzdSpykpSpdjServiceImpl.java new file mode 100644 index 00000000..69e407ea --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/spykp/spdj/service/impl/XzdSpykpSpdjServiceImpl.java @@ -0,0 +1,311 @@ +package org.dromara.xzd.spykp.spdj.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.system.domain.vo.SysDeptVo; +import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.service.impl.SysDeptServiceImpl; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.system.service.impl.SysUserServiceImpl; +import org.dromara.xzd.domain.XzdContractDetails; +import org.dromara.xzd.domain.XzdProject; +import org.dromara.xzd.domain.dto.QuerCorrespondentDto; +import org.dromara.xzd.service.IXzdCorrespondentList; +import org.dromara.xzd.service.impl.XzdContractDetailsServiceImpl; +import org.dromara.xzd.service.impl.XzdProjectServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.dromara.xzd.spykp.spdj.domain.bo.XzdSpykpSpdjBo; +import org.dromara.xzd.spykp.spdj.domain.vo.XzdSpykpSpdjVo; +import org.dromara.xzd.spykp.spdj.domain.XzdSpykpSpdj; +import org.dromara.xzd.spykp.spdj.mapper.XzdSpykpSpdjMapper; +import org.dromara.xzd.spykp.spdj.service.IXzdSpykpSpdjService; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 收票登记Service业务层处理 + * + * @author Lion Li + * @date 2025-10-21 + */ +@RequiredArgsConstructor +@Service +public class XzdSpykpSpdjServiceImpl extends ServiceImpl implements IXzdSpykpSpdjService { + + private final XzdSpykpSpdjMapper baseMapper; + @Autowired + private XzdContractDetailsServiceImpl xzdContractDetailsService; + @Autowired + private IXzdCorrespondentList iXzdCorrespondentList; + @Autowired + private SysUserServiceImpl sysUserService; + @Autowired + private SysDeptServiceImpl sysDeptService; + @Autowired + private SysOssServiceImpl sysOssService; + @Autowired + private XzdProjectServiceImpl xzdProjectService; + + /** + * 查询收票登记 + * + * @param id 主键 + * @return 收票登记 + */ + @Override + public XzdSpykpSpdjVo queryById(Long id){ + XzdSpykpSpdjVo spdjVo = baseMapper.selectVoById(id); + List spdjVo1 = List.of(spdjVo); + setValue(spdjVo1); + return spdjVo1.getFirst(); + } + + /** + * 分页查询收票登记列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 收票登记分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdSpykpSpdjBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + setValue(result.getRecords()); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的收票登记列表 + * + * @param bo 查询条件 + * @return 收票登记列表 + */ + @Override + public List queryList(XzdSpykpSpdjBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdSpykpSpdjBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdSpykpSpdj::getId); + lqw.eq(StringUtils.isNotBlank(bo.getInvoiceType()), XzdSpykpSpdj::getInvoiceType, bo.getInvoiceType()); + lqw.eq(StringUtils.isNotBlank(bo.getJxlx()), XzdSpykpSpdj::getJxlx, bo.getJxlx()); + lqw.eq(StringUtils.isNotBlank(bo.getJxjglx()), XzdSpykpSpdj::getJxjglx, bo.getJxjglx()); + lqw.eq(bo.getSszzId() != null, XzdSpykpSpdj::getSszzId, bo.getSszzId()); + lqw.eq(bo.getJzzzId() != null, XzdSpykpSpdj::getJzzzId, bo.getJzzzId()); + lqw.eq(bo.getJbrId() != null, XzdSpykpSpdj::getJbrId, bo.getJbrId()); + lqw.eq(StringUtils.isNotBlank(bo.getFpyt()), XzdSpykpSpdj::getFpyt, bo.getFpyt()); + lqw.eq(StringUtils.isNotBlank(bo.getFphm()), XzdSpykpSpdj::getFphm, bo.getFphm()); + lqw.between(params.get("beginKprq") != null && params.get("endKprq") != null, + XzdSpykpSpdj::getKprq ,params.get("beginKprq"), params.get("endKprq")); + lqw.eq(StringUtils.isNotBlank(bo.getGssh()), XzdSpykpSpdj::getGssh, bo.getGssh()); + lqw.eq(StringUtils.isNotBlank(bo.getGsmc()), XzdSpykpSpdj::getGsmc, bo.getGsmc()); + lqw.eq(bo.getJe() != null, XzdSpykpSpdj::getJe, bo.getJe()); + lqw.eq(bo.getSl() != null, XzdSpykpSpdj::getSl, bo.getSl()); + lqw.eq(bo.getKcl() != null, XzdSpykpSpdj::getKcl, bo.getKcl()); + lqw.eq(bo.getSe() != null, XzdSpykpSpdj::getSe, bo.getSe()); + lqw.eq(bo.getJshj() != null, XzdSpykpSpdj::getJshj, bo.getJshj()); + lqw.eq(StringUtils.isNotBlank(bo.getXfsh()), XzdSpykpSpdj::getXfsh, bo.getXfsh()); + lqw.eq(bo.getXfId() != null, XzdSpykpSpdj::getXfId, bo.getXfId()); + lqw.eq(StringUtils.isNotBlank(bo.getXxnsrmc()), XzdSpykpSpdj::getXxnsrmc, bo.getXxnsrmc()); + lqw.eq(StringUtils.isNotBlank(bo.getDkfp()), XzdSpykpSpdj::getDkfp, bo.getDkfp()); + lqw.eq(StringUtils.isNotBlank(bo.getDkjgdm()), XzdSpykpSpdj::getDkjgdm, bo.getDkjgdm()); + lqw.eq(StringUtils.isNotBlank(bo.getDkjgmc()), XzdSpykpSpdj::getDkjgmc, bo.getDkjgmc()); + lqw.eq(StringUtils.isNotBlank(bo.getDxmfp()), XzdSpykpSpdj::getDxmfp, bo.getDxmfp()); + lqw.eq(StringUtils.isNotBlank(bo.getGrfp()), XzdSpykpSpdj::getGrfp, bo.getGrfp()); + lqw.eq(StringUtils.isNotBlank(bo.getZdxm()), XzdSpykpSpdj::getZdxm, bo.getZdxm()); + lqw.eq(StringUtils.isNotBlank(bo.getCkts()), XzdSpykpSpdj::getCkts, bo.getCkts()); + lqw.eq(StringUtils.isNotBlank(bo.getHmd()), XzdSpykpSpdj::getHmd, bo.getHmd()); + lqw.eq(StringUtils.isNotBlank(bo.getZmxx()), XzdSpykpSpdj::getZmxx, bo.getZmxx()); + lqw.eq(bo.getFptp() != null, XzdSpykpSpdj::getFptp, bo.getFptp()); + lqw.eq(bo.getZmxxwj() != null, XzdSpykpSpdj::getZmxxwj, bo.getZmxxwj()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdSpykpSpdj::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getCfbz()), XzdSpykpSpdj::getCfbz, bo.getCfbz()); + lqw.eq(StringUtils.isNotBlank(bo.getJym()), XzdSpykpSpdj::getJym, bo.getJym()); + lqw.eq(StringUtils.isNotBlank(bo.getJqbm()), XzdSpykpSpdj::getJqbm, bo.getJqbm()); + lqw.eq(StringUtils.isNotBlank(bo.getFpbz()), XzdSpykpSpdj::getFpbz, bo.getFpbz()); + lqw.eq(StringUtils.isNotBlank(bo.getCbs()), XzdSpykpSpdj::getCbs, bo.getCbs()); + lqw.eq(bo.getBzje() != null, XzdSpykpSpdj::getBzje, bo.getBzje()); + lqw.eq(bo.getContractId() != null, XzdSpykpSpdj::getContractId, bo.getContractId()); + return lqw; + } + + /** + * 新增收票登记 + * + * @param bo 收票登记 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdSpykpSpdjBo bo) { + XzdSpykpSpdj add = MapstructUtils.convert(bo, XzdSpykpSpdj.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改收票登记 + * + * @param bo 收票登记 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdSpykpSpdjBo bo) { + XzdSpykpSpdj update = MapstructUtils.convert(bo, XzdSpykpSpdj.class); + validEntityBeforeSave(update); + + XzdSpykpSpdj old = baseMapper.selectById(update.getId()); + //更新文件 + if (bo.getFileId() != null && !bo.getFileId().isEmpty()){ + if (old.getFileId() != null && !old.getFileId().isEmpty()) { + List oldFileId = Arrays.stream(old.getFileId().split(",")).map(Long::valueOf).toList(); + List nowFileId = Arrays.stream(bo.getFileId().split(",")).map(Long::valueOf).toList(); + for (Long l : oldFileId) { + if (!nowFileId.contains(l)) { + sysOssService.deleteWithValidByIds(List.of(l), false); + } + } + } + }else { + if (old.getFileId()!= null && !old.getFileId().isEmpty()){ + List deleteIds = Arrays.stream(old.getFileId().split(",")).map(Long::valueOf).toList(); + sysOssService.deleteWithValidByIds(deleteIds, false); + } + } + //发票图片 + if (bo.getFptp() != null){ + if (!bo.getFptp().equals(old.getFptp())){ + sysOssService.deleteWithValidByIds(List.of(old.getFptp()), false); + } + }else { + if (old.getFptp()!= null){ + sysOssService.deleteWithValidByIds(List.of(old.getFptp()), false); + } + } + //证明信息文件 + if (bo.getZmxxwj() != null){ + if (!bo.getZmxxwj().equals(old.getZmxxwj())){ + sysOssService.deleteWithValidByIds(List.of(old.getZmxxwj()), false); + } + }else { + if (old.getZmxxwj()!= null){ + sysOssService.deleteWithValidByIds(List.of(old.getZmxxwj()), false); + } + } + + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdSpykpSpdj entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除收票登记信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + + for (Long id : ids) { + + XzdSpykpSpdj byId = baseMapper.selectById(id); + if (byId == null){ + continue; + } + //删除附件 + if (byId.getFileId() != null && !byId.getFileId().isEmpty()) { + List fileId = Arrays.stream(byId.getFileId().split(",")).map(Long::valueOf).toList(); + sysOssService.deleteWithValidByIds(fileId, false); + } + //删除发票图片 + if (byId.getFptp() != null){ + sysOssService.deleteWithValidByIds(List.of(byId.getFptp()), false); + } + //删除证明信息文件 + if (byId.getZmxxwj() != null){ + sysOssService.deleteWithValidByIds(List.of(byId.getZmxxwj()), false); + } + } + + return baseMapper.deleteByIds(ids) > 0; + } + + public void setValue(List vos){ + for (XzdSpykpSpdjVo vo : vos) { + if (vo.getContractId() != null){ + XzdContractDetails byId = xzdContractDetailsService.getById(vo.getContractId()); + if (byId != null){ + // 合同名称 + vo.setContractName(byId.getContractName()); + } + } + //销方(客户id) + if (vo.getXfId() != null){ + R byid2 = iXzdCorrespondentList.getCustomerByid(vo.getXfId()); + if (byid2 != null) { + if (byid2.getData().getXzdCustomerinformation() != null) { + vo.setXfmc(byid2.getData().getXzdCustomerinformation().getUnitName()); + } + } + } + //经办人 + if (vo.getJbrId() != null){ + SysUserVo sysUserVo = sysUserService.selectUserById(vo.getJbrId()); + if (sysUserVo != null){ + vo.setJbrmc(sysUserVo.getUserName()); + } + } + //记账组织 + if (vo.getJzzzId() != null){ + SysDeptVo sysDeptVo = sysDeptService.selectDeptById(vo.getJzzzId()); + if (sysDeptVo != null){ + vo.setJzzzmc(sysDeptVo.getDeptName()); + } + } + //所属组织 + if (vo.getSszzId() != null){ + SysDeptVo sysDeptVo = sysDeptService.selectDeptById(vo.getSszzId()); + if (sysDeptVo != null){ + vo.setSszzmc(sysDeptVo.getDeptName()); + } + } + //转出项目名称 + if (vo.getZcxmid() != null){ + XzdProject xzdProject = xzdProjectService.getById(vo.getZcxmid()); + if ( xzdProject != null){ + vo.setZclx(xzdProject.getProjectName()); + } + } + } + } + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/XzdProjectMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/XzdProjectMapper.xml index 98b925e5..921d2788 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/XzdProjectMapper.xml +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/XzdProjectMapper.xml @@ -71,6 +71,10 @@ AND profile.province = #{sheng} + + AND profile.city = #{cs} + + AND profile.district = #{qx}