10-21-收票与开票-收票登记

This commit is contained in:
2025-10-21 17:31:00 +08:00
parent 37d0c776c0
commit c6ae8a4c00
11 changed files with 1254 additions and 6 deletions

View File

@ -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;
/**
* 备注

View File

@ -72,12 +72,12 @@ public class XzdContractAdvanceInfoBo extends BaseEntity {
/**
* 变更合同预收款金额
*/
private Long changeContractAmount;
private BigDecimal changeContractAmount;
/**
* 预收百分比
*/
private Long advancePercentage;
private BigDecimal advancePercentage;
/**
* 变更预收百分比

View File

@ -299,6 +299,11 @@ public class XzdProjectBo extends BaseEntity {
*/
private String sheng;
/**
* 城市
*/
private String cs;
/**
* 区县
*/

View File

@ -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;
/**
* 变更预收百分比

View File

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

View File

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

View File

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

View File

@ -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<XzdSpykpSpdj, XzdSpykpSpdjVo> {
}

View File

@ -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<XzdSpykpSpdj>{
/**
* 查询收票登记
*
* @param id 主键
* @return 收票登记
*/
XzdSpykpSpdjVo queryById(Long id);
/**
* 分页查询收票登记列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 收票登记分页列表
*/
TableDataInfo<XzdSpykpSpdjVo> queryPageList(XzdSpykpSpdjBo bo, PageQuery pageQuery);
/**
* 查询符合条件的收票登记列表
*
* @param bo 查询条件
* @return 收票登记列表
*/
List<XzdSpykpSpdjVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<XzdSpykpSpdjMapper, XzdSpykpSpdj> 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<XzdSpykpSpdjVo> spdjVo1 = List.of(spdjVo);
setValue(spdjVo1);
return spdjVo1.getFirst();
}
/**
* 分页查询收票登记列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 收票登记分页列表
*/
@Override
public TableDataInfo<XzdSpykpSpdjVo> queryPageList(XzdSpykpSpdjBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdSpykpSpdj> lqw = buildQueryWrapper(bo);
Page<XzdSpykpSpdjVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
setValue(result.getRecords());
return TableDataInfo.build(result);
}
/**
* 查询符合条件的收票登记列表
*
* @param bo 查询条件
* @return 收票登记列表
*/
@Override
public List<XzdSpykpSpdjVo> queryList(XzdSpykpSpdjBo bo) {
LambdaQueryWrapper<XzdSpykpSpdj> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdSpykpSpdj> buildQueryWrapper(XzdSpykpSpdjBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdSpykpSpdj> 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<Long> oldFileId = Arrays.stream(old.getFileId().split(",")).map(Long::valueOf).toList();
List<Long> 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<Long> 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<Long> 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<Long> 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<XzdSpykpSpdjVo> 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<QuerCorrespondentDto> 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());
}
}
}
}
}

View File

@ -71,6 +71,10 @@
AND profile.province = #{sheng}
</if>
<if test='cs != null and cs != ""'>
AND profile.city = #{cs}
</if>
<if test='qx != null and qx != ""'>
AND profile.district = #{qx}
</if>