10-12-新增银行卡,合作协议

This commit is contained in:
2025-10-12 16:07:54 +08:00
parent 0efaf12849
commit b9cf8ea3de
25 changed files with 1566 additions and 25 deletions

View File

@ -0,0 +1,105 @@
package org.dromara.xzd.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.xzd.domain.vo.XzdContractAgreementVo;
import org.dromara.xzd.domain.bo.XzdContractAgreementBo;
import org.dromara.xzd.service.IXzdContractAgreementService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 合作协议
*
* @author Lion Li
* @date 2025-10-12
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/xzd/contractAgreement")
public class XzdContractAgreementController extends BaseController {
private final IXzdContractAgreementService xzdContractAgreementService;
/**
* 查询合作协议列表
*/
@SaCheckPermission("xzd:contractAgreement:list")
@GetMapping("/list")
public TableDataInfo<XzdContractAgreementVo> list(XzdContractAgreementBo bo, PageQuery pageQuery) {
return xzdContractAgreementService.queryPageList(bo, pageQuery);
}
/**
* 导出合作协议列表
*/
@SaCheckPermission("xzd:contractAgreement:export")
@Log(title = "合作协议", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(XzdContractAgreementBo bo, HttpServletResponse response) {
List<XzdContractAgreementVo> list = xzdContractAgreementService.queryList(bo);
ExcelUtil.exportExcel(list, "合作协议", XzdContractAgreementVo.class, response);
}
/**
* 获取合作协议详细信息
*
* @param id 主键
*/
@SaCheckPermission("xzd:contractAgreement:query")
@GetMapping("/{id}")
public R<XzdContractAgreementVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(xzdContractAgreementService.queryById(id));
}
/**
* 新增合作协议
*/
@SaCheckPermission("xzd:contractAgreement:add")
@Log(title = "合作协议", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdContractAgreementBo bo) {
return toAjax(xzdContractAgreementService.insertByBo(bo));
}
/**
* 修改合作协议
*/
@SaCheckPermission("xzd:contractAgreement:edit")
@Log(title = "合作协议", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdContractAgreementBo bo) {
return toAjax(xzdContractAgreementService.updateByBo(bo));
}
/**
* 删除合作协议
*
* @param ids 主键串
*/
@SaCheckPermission("xzd:contractAgreement:remove")
@Log(title = "合作协议", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdContractAgreementService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -6,6 +6,7 @@ import cn.hutool.core.lang.tree.Tree;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.xzd.domain.bo.XzdProjectTypeBo;
import org.dromara.xzd.domain.vo.XzdProjectTypeVo;
import org.dromara.xzd.service.IXzdProjectTypeService;
@ -50,8 +51,8 @@ public class XzdProjectTypeController extends BaseController {
@Log(title = "项目类型", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(XzdProjectTypeBo bo, HttpServletResponse response) {
List<XzdProjectTypeVo> list = xzdProjectTypeService.queryList(bo);
ExcelUtil.exportExcel(list, "项目类型", XzdProjectTypeVo.class, response);
// List<XzdProjectTypeVo> list = xzdProjectTypeService.queryList(bo);
// ExcelUtil.exportExcel(list, "项目类型", XzdProjectTypeVo.class, response);
}
/**

View File

@ -0,0 +1,106 @@
package org.dromara.xzd.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.xzd.domain.XzdSupplierOpenBank;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.xzd.domain.vo.XzdSupplierOpenBankVo;
import org.dromara.xzd.domain.bo.XzdSupplierOpenBankBo;
import org.dromara.xzd.service.IXzdSupplierOpenBankService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 供应商信息-开户银行
*
* @author Lion Li
* @date 2025-10-11
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/xzd/supplierOpenBank")
public class XzdSupplierOpenBankController extends BaseController {
private final IXzdSupplierOpenBankService xzdSupplierOpenBankService;
/**
* 查询供应商信息-开户银行列表
*/
@SaCheckPermission("xzd:supplierOpenBank:list")
@GetMapping("/list")
public TableDataInfo<XzdSupplierOpenBankVo> list(XzdSupplierOpenBankBo bo, PageQuery pageQuery) {
return xzdSupplierOpenBankService.queryPageList(bo, pageQuery);
}
/**
* 导出供应商信息-开户银行列表
*/
@SaCheckPermission("xzd:supplierOpenBank:export")
@Log(title = "供应商信息-开户银行", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(XzdSupplierOpenBankBo bo, HttpServletResponse response) {
List<XzdSupplierOpenBankVo> list = xzdSupplierOpenBankService.queryList(bo);
ExcelUtil.exportExcel(list, "供应商信息-开户银行", XzdSupplierOpenBankVo.class, response);
}
/**
* 获取供应商信息-开户银行详细信息
*
* @param id 主键
*/
@SaCheckPermission("xzd:supplierOpenBank:query")
@GetMapping("/{id}")
public R<XzdSupplierOpenBankVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(xzdSupplierOpenBankService.queryById(id));
}
/**
* 新增供应商信息-开户银行
*/
@SaCheckPermission("xzd:supplierOpenBank:add")
@Log(title = "供应商信息-开户银行", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<XzdSupplierOpenBank> add(@Validated(AddGroup.class) @RequestBody List<XzdSupplierOpenBankBo> bo) {
return xzdSupplierOpenBankService.insertByBo(bo);
}
/**
* 修改供应商信息-开户银行
*/
@SaCheckPermission("xzd:supplierOpenBank:edit")
@Log(title = "供应商信息-开户银行", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdSupplierOpenBankBo bo) {
return toAjax(xzdSupplierOpenBankService.updateByBo(bo));
}
/**
* 删除供应商信息-开户银行
*
* @param ids 主键串
*/
@SaCheckPermission("xzd:supplierOpenBank:remove")
@Log(title = "供应商信息-开户银行", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdSupplierOpenBankService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,114 @@
package org.dromara.xzd.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import java.io.Serial;
/**
* 合作协议对象 xzd_contract_agreement
*
* @author Lion Li
* @date 2025-10-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("xzd_contract_agreement")
public class XzdContractAgreement extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "id")
private Long id;
/**
* 合同编码
*/
private String contractCode;
/**
* 合同名称
*/
private String contractName;
/**
* 单据日期
*/
private Date documentDate;
/**
* 甲方单位
*/
private Long partyAUnit;
/**
* 乙方单位
*/
private Long partyBUnit;
/**
* 公司ID
*/
private Long companyId;
/**
* 公司名称
*/
private String companyName;
/**
* 签订日期
*/
private Date signingDate;
/**
* 合同含税总金额
*/
private BigDecimal totalTaxInclusiveAmount;
/**
* 协议类型
*/
private String agreementType;
/**
* 项目经理
*/
private Long projectManager;
/**
* 开始日期
*/
private Date startDate;
/**
* 结束日期
*/
private Date endDate;
/**
* 支付条款
*/
private String paymentTerms;
/**
* 备注
*/
private String remarks;
/**
* 文件id多个文件逗号分隔
*/
private String fileId;
}

View File

@ -1,12 +1,12 @@
package org.dromara.xzd.domain;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.util.List;
/**
* 客户信息-结算信息6对象 xzd_settlement_info
@ -61,12 +61,12 @@ public class XzdSettlementInfo extends BaseEntity {
/**
* 开户银行
*/
private Long openingBankIds;
// private Long openingBank;
/**
* 账号
*/
private String accountNumber;
// private String accountNumber;
/**
* 折扣方式
@ -81,22 +81,22 @@ public class XzdSettlementInfo extends BaseEntity {
/**
* 开户行户名
*/
private String accountName;
// private String accountName;
/**
* 开户行省
*/
private String openingBankProvince;
// private String openingBankProvince;
/**
* 开户行市
*/
private String openingBankCity;
// private String openingBankCity;
/**
* 开户行区县
*/
private String openingBankCountyDistrict;
// private String openingBankCountyDistrict;
/**
* 财务类型
@ -143,5 +143,11 @@ public class XzdSettlementInfo extends BaseEntity {
*/
private Long enableContractCreditControl;
/**
* 开户银行信息
*/
@TableField(exist = false)
private List<XzdSupplierOpenBank> openBanks;
}

View File

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
@ -117,6 +118,8 @@ public class XzdSupplierInfo extends BaseEntity {
/**
* 工商变更时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date industrialCommercialChangeTime;
/**
@ -142,6 +145,8 @@ public class XzdSupplierInfo extends BaseEntity {
/**
* 单位成立日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date establishmentDate;
/**
@ -187,6 +192,8 @@ public class XzdSupplierInfo extends BaseEntity {
/**
* 注册时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date registrationTime;
/**

View File

@ -0,0 +1,76 @@
package org.dromara.xzd.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 供应商信息-开户银行对象 xzd_supplier_open_bank
*
* @author Lion Li
* @date 2025-10-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("xzd_supplier_open_bank")
public class XzdSupplierOpenBank extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 供应商id
*/
private Long supplierId;
/**
* 开户银行
*/
private String openBank;
/**
* 开户账号
*/
private String account;
/**
* 开户户名
*/
private String personName;
/**
* 开户行省份
*/
private String bankSf;
/**
* 开户行城市
*/
private String bankCs;
/**
* 开户行区县
*/
private String bankQx;
/**
* 备注
*/
private String remark;
/**
* 1是2否
*/
private String isDefault;
}

View File

@ -0,0 +1,120 @@
package org.dromara.xzd.domain.bo;
import org.dromara.xzd.domain.XzdContractAgreement;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
/**
* 合作协议业务对象 xzd_contract_agreement
*
* @author Lion Li
* @date 2025-10-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = XzdContractAgreement.class, reverseConvertGenerate = false)
public class XzdContractAgreementBo extends BaseEntity {
/**
*
*/
private Long id;
/**
* 合同编码
*/
private String contractCode;
/**
* 合同名称
*/
private String contractName;
/**
* 单据日期
*/
@NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class })
private Date documentDate;
/**
* 甲方单位
*/
private Long partyAUnit;
/**
* 乙方单位
*/
private Long partyBUnit;
/**
* 公司ID
*/
private Long companyId;
/**
* 公司名称
*/
@NotBlank(message = "公司名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String companyName;
/**
* 签订日期
*/
private Date signingDate;
/**
* 合同含税总金额
*/
private BigDecimal totalTaxInclusiveAmount;
/**
* 协议类型
*/
@NotBlank(message = "协议类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String agreementType;
/**
* 项目经理
*/
private Long projectManager;
/**
* 项目经理名称
*/
private String projectManagerName;
/**
* 开始日期
*/
private Date startDate;
/**
* 结束日期
*/
private Date endDate;
/**
* 支付条款
*/
private String paymentTerms;
/**
* 备注
*/
private String remarks;
/**
* 文件id多个文件逗号分隔
*/
private String fileId;
}

View File

@ -123,6 +123,8 @@ public class XzdSupplierInfoBo extends BaseEntity {
/**
* 工商变更时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date industrialCommercialChangeTime;
/**
@ -148,6 +150,8 @@ public class XzdSupplierInfoBo extends BaseEntity {
/**
* 单位成立日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date establishmentDate;
/**
@ -193,6 +197,8 @@ public class XzdSupplierInfoBo extends BaseEntity {
/**
* 注册时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date registrationTime;
/**

View File

@ -0,0 +1,77 @@
package org.dromara.xzd.domain.bo;
import org.dromara.xzd.domain.XzdSupplierOpenBank;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 供应商信息-开户银行业务对象 xzd_supplier_open_bank
*
* @author Lion Li
* @date 2025-10-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = XzdSupplierOpenBank.class, reverseConvertGenerate = false)
public class XzdSupplierOpenBankBo extends BaseEntity {
/**
* id
*/
private Long id;
/**
* 供应商id
*/
private Long supplierId;
/**
* 开户银行
*/
@NotBlank(message = "开户银行不能为空", groups = { AddGroup.class, EditGroup.class })
private String openBank;
/**
* 开户账号
*/
@NotBlank(message = "开户账号不能为空", groups = { AddGroup.class, EditGroup.class })
private String account;
/**
* 开户户名
*/
private String personName;
/**
* 开户行省份
*/
private String bankSf;
/**
* 开户行城市
*/
private String bankCs;
/**
* 开户行区县
*/
private String bankQx;
/**
* 备注
*/
private String remark;
/**
* 1是2否
*/
@NotBlank(message = "1是2否不能为空", groups = { AddGroup.class, EditGroup.class })
private String isDefault;
}

View File

@ -0,0 +1,150 @@
package org.dromara.xzd.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import org.dromara.xzd.domain.XzdContractAgreement;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 合作协议视图对象 xzd_contract_agreement
*
* @author Lion Li
* @date 2025-10-12
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = XzdContractAgreement.class)
public class XzdContractAgreementVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "")
private Long id;
/**
* 合同编码
*/
@ExcelProperty(value = "合同编码")
private String contractCode;
/**
* 合同名称
*/
@ExcelProperty(value = "合同名称")
private String contractName;
/**
* 单据日期
*/
@ExcelProperty(value = "单据日期")
private Date documentDate;
/**
* 甲方单位
*/
@ExcelProperty(value = "甲方单位")
private Long partyAUnit;
/**
* 客户单位名称
*/
private String partyAUnitName;
/**
* 乙方单位
*/
@ExcelProperty(value = "乙方单位")
private Long partyBUnit;
/**
* 供应商单位名称
*/
private String partyBUnitName;
/**
* 公司ID
*/
@ExcelProperty(value = "公司")
private Long companyId;
/**
* 公司名称
*/
private String companyName;
/**
* 签订日期
*/
@ExcelProperty(value = "签订日期")
private Date signingDate;
/**
* 合同含税总金额
*/
@ExcelProperty(value = "合同含税总金额")
private BigDecimal totalTaxInclusiveAmount;
/**
* 协议类型
*/
@ExcelProperty(value = "协议类型")
private String agreementType;
/**
* 项目经理
*/
@ExcelProperty(value = "项目经理")
private Long projectManager;
/**
* 项目经理名称
*/
private String projectManagerName;
/**
* 开始日期
*/
@ExcelProperty(value = "开始日期")
private Date startDate;
/**
* 结束日期
*/
@ExcelProperty(value = "结束日期")
private Date endDate;
/**
* 支付条款
*/
@ExcelProperty(value = "支付条款")
private String paymentTerms;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remarks;
/**
* 文件id多个文件逗号分隔
*/
@ExcelProperty(value = "文件id", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
private String fileId;
}

View File

@ -135,6 +135,8 @@ public class XzdProjectVo implements Serializable {
@ExcelProperty(value = "项目责任人")
private Long managerResponsible;
private String managerResponsibleName;
/**
* 项目中标金额
*/
@ -181,7 +183,12 @@ public class XzdProjectVo implements Serializable {
* 建设单位
*/
@ExcelProperty(value = "建设单位")
private String constructionUnit;
private Long constructionUnit;
/**
* 建设单位名
*/
private String constructionUnitName;
/**
* 项目属性

View File

@ -9,6 +9,7 @@ import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.io.Serializable;
@ -144,6 +145,8 @@ public class XzdSupplierInfoVo implements Serializable {
* 工商变更时间
*/
@ExcelProperty(value = "工商变更时间")
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date industrialCommercialChangeTime;
/**
@ -178,6 +181,7 @@ public class XzdSupplierInfoVo implements Serializable {
*/
@ExcelProperty(value = "单位成立日期")
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date establishmentDate;
/**
@ -233,6 +237,8 @@ public class XzdSupplierInfoVo implements Serializable {
* 注册时间
*/
@ExcelProperty(value = "注册时间")
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date registrationTime;
/**
@ -366,6 +372,11 @@ public class XzdSupplierInfoVo implements Serializable {
*/
private XzdSettlementInfo settlement;
// /**
// * 开户行数组
// */
// List<XzdSupplierOpenBank> openBanks;
/**
* 开户银行
*/
@ -376,6 +387,11 @@ public class XzdSupplierInfoVo implements Serializable {
*/
private String khhzh;
/**
* 开户行户名
*/
private String khhhm;
/**
* 创建者
*/

View File

@ -0,0 +1,87 @@
package org.dromara.xzd.domain.vo;
import org.dromara.xzd.domain.XzdSupplierOpenBank;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 供应商信息-开户银行视图对象 xzd_supplier_open_bank
*
* @author Lion Li
* @date 2025-10-11
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = XzdSupplierOpenBank.class)
public class XzdSupplierOpenBankVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 供应商id
*/
private Long supplierId;
/**
* 开户银行
*/
@ExcelProperty(value = "开户银行")
private String openBank;
/**
* 开户账号
*/
@ExcelProperty(value = "开户账号")
private String account;
/**
* 开户户名
*/
@ExcelProperty(value = "开户户名")
private String personName;
/**
* 开户行省份
*/
@ExcelProperty(value = "开户行省份")
private String bankSf;
/**
* 开户行城市
*/
@ExcelProperty(value = "开户行城市")
private String bankCs;
/**
* 开户行区县
*/
@ExcelProperty(value = "开户行区县")
private String bankQx;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 1是2否
*/
@ExcelProperty(value = "1是2否")
private String isDefault;
}

View File

@ -0,0 +1,15 @@
package org.dromara.xzd.mapper;
import org.dromara.xzd.domain.XzdContractAgreement;
import org.dromara.xzd.domain.vo.XzdContractAgreementVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 合作协议Mapper接口
*
* @author Lion Li
* @date 2025-10-12
*/
public interface XzdContractAgreementMapper extends BaseMapperPlus<XzdContractAgreement, XzdContractAgreementVo> {
}

View File

@ -0,0 +1,15 @@
package org.dromara.xzd.mapper;
import org.dromara.xzd.domain.XzdSupplierOpenBank;
import org.dromara.xzd.domain.vo.XzdSupplierOpenBankVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 供应商信息-开户银行Mapper接口
*
* @author Lion Li
* @date 2025-10-11
*/
public interface XzdSupplierOpenBankMapper extends BaseMapperPlus<XzdSupplierOpenBank, XzdSupplierOpenBankVo> {
}

View File

@ -0,0 +1,70 @@
package org.dromara.xzd.service;
import org.dromara.xzd.domain.vo.XzdContractAgreementVo;
import org.dromara.xzd.domain.bo.XzdContractAgreementBo;
import org.dromara.xzd.domain.XzdContractAgreement;
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-12
*/
public interface IXzdContractAgreementService extends IService<XzdContractAgreement>{
/**
* 查询合作协议
*
* @param id 主键
* @return 合作协议
*/
XzdContractAgreementVo queryById(Long id);
/**
* 分页查询合作协议列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 合作协议分页列表
*/
TableDataInfo<XzdContractAgreementVo> queryPageList(XzdContractAgreementBo bo, PageQuery pageQuery);
/**
* 查询符合条件的合作协议列表
*
* @param bo 查询条件
* @return 合作协议列表
*/
List<XzdContractAgreementVo> queryList(XzdContractAgreementBo bo);
/**
* 新增合作协议
*
* @param bo 合作协议
* @return 是否新增成功
*/
Boolean insertByBo(XzdContractAgreementBo bo);
/**
* 修改合作协议
*
* @param bo 合作协议
* @return 是否修改成功
*/
Boolean updateByBo(XzdContractAgreementBo bo);
/**
* 校验并批量删除合作协议信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -4,6 +4,7 @@ package org.dromara.xzd.service;
import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.xzd.domain.XzdProjectType;
import org.dromara.xzd.domain.bo.XzdProjectTypeBo;
import org.dromara.xzd.domain.vo.XzdProjectTypeVo;

View File

@ -0,0 +1,71 @@
package org.dromara.xzd.service;
import org.dromara.common.core.domain.R;
import org.dromara.xzd.domain.vo.XzdSupplierOpenBankVo;
import org.dromara.xzd.domain.bo.XzdSupplierOpenBankBo;
import org.dromara.xzd.domain.XzdSupplierOpenBank;
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-11
*/
public interface IXzdSupplierOpenBankService extends IService<XzdSupplierOpenBank>{
/**
* 查询供应商信息-开户银行
*
* @param id 主键
* @return 供应商信息-开户银行
*/
XzdSupplierOpenBankVo queryById(Long id);
/**
* 分页查询供应商信息-开户银行列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 供应商信息-开户银行分页列表
*/
TableDataInfo<XzdSupplierOpenBankVo> queryPageList(XzdSupplierOpenBankBo bo, PageQuery pageQuery);
/**
* 查询符合条件的供应商信息-开户银行列表
*
* @param bo 查询条件
* @return 供应商信息-开户银行列表
*/
List<XzdSupplierOpenBankVo> queryList(XzdSupplierOpenBankBo bo);
/**
* 新增供应商信息-开户银行
*
* @param bo 供应商信息-开户银行
* @return 是否新增成功
*/
R<XzdSupplierOpenBank> insertByBo(List<XzdSupplierOpenBankBo> bo);
/**
* 修改供应商信息-开户银行
*
* @param bo 供应商信息-开户银行
* @return 是否修改成功
*/
Boolean updateByBo(XzdSupplierOpenBankBo bo);
/**
* 校验并批量删除供应商信息-开户银行信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,202 @@
package org.dromara.xzd.service.impl;
import cn.hutool.core.util.IdUtil;
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.SysUserServiceImpl;
import org.dromara.xzd.domain.dto.QuerCorrespondentDto;
import org.dromara.xzd.domain.vo.XzdSupplierInfoVo;
import org.dromara.xzd.service.IXzdCorrespondentList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.dromara.xzd.domain.bo.XzdContractAgreementBo;
import org.dromara.xzd.domain.vo.XzdContractAgreementVo;
import org.dromara.xzd.domain.XzdContractAgreement;
import org.dromara.xzd.mapper.XzdContractAgreementMapper;
import org.dromara.xzd.service.IXzdContractAgreementService;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 合作协议Service业务层处理
*
* @author Lion Li
* @date 2025-10-12
*/
@RequiredArgsConstructor
@Service
public class XzdContractAgreementServiceImpl extends ServiceImpl<XzdContractAgreementMapper, XzdContractAgreement> implements IXzdContractAgreementService {
private final XzdContractAgreementMapper baseMapper;
@Autowired
private IXzdCorrespondentList iXzdCorrespondentList;
@Autowired
private XzdSupplierInfoServiceImpl xzdSupplierInfoService;
@Autowired
private SysDeptServiceImpl sysDeptService;
@Autowired
private SysUserServiceImpl sysUserService;
/**
* 查询合作协议
*
* @param id 主键
* @return 合作协议
*/
@Override
public XzdContractAgreementVo queryById(Long id){
XzdContractAgreementVo vo = baseMapper.selectVoById(id);
List<XzdContractAgreementVo> vos = List.of(vo);
setValue(vos);
return vos.getFirst();
}
/**
* 分页查询合作协议列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 合作协议分页列表
*/
@Override
public TableDataInfo<XzdContractAgreementVo> queryPageList(XzdContractAgreementBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdContractAgreement> lqw = buildQueryWrapper(bo);
Page<XzdContractAgreementVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
setValue(result.getRecords());
return TableDataInfo.build(result);
}
/**
* 查询符合条件的合作协议列表
*
* @param bo 查询条件
* @return 合作协议列表
*/
@Override
public List<XzdContractAgreementVo> queryList(XzdContractAgreementBo bo) {
LambdaQueryWrapper<XzdContractAgreement> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdContractAgreement> buildQueryWrapper(XzdContractAgreementBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdContractAgreement> lqw = Wrappers.lambdaQuery();
lqw.orderByDesc(XzdContractAgreement::getId);
lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), XzdContractAgreement::getContractCode, bo.getContractCode());
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdContractAgreement::getContractName, bo.getContractName());
lqw.eq(bo.getDocumentDate() != null, XzdContractAgreement::getDocumentDate, bo.getDocumentDate());
lqw.eq(bo.getPartyAUnit() != null, XzdContractAgreement::getPartyAUnit, bo.getPartyAUnit());
lqw.eq(bo.getPartyBUnit() != null, XzdContractAgreement::getPartyBUnit, bo.getPartyBUnit());
lqw.like(StringUtils.isNotBlank(bo.getCompanyName()), XzdContractAgreement::getCompanyName, bo.getCompanyName());
lqw.eq(bo.getSigningDate() != null, XzdContractAgreement::getSigningDate, bo.getSigningDate());
lqw.eq(bo.getTotalTaxInclusiveAmount() != null, XzdContractAgreement::getTotalTaxInclusiveAmount, bo.getTotalTaxInclusiveAmount());
lqw.eq(StringUtils.isNotBlank(bo.getAgreementType()), XzdContractAgreement::getAgreementType, bo.getAgreementType());
// lqw.eq(StringUtils.isNotBlank(bo.getProjectManager()), XzdContractAgreement::getProjectManager, bo.getProjectManager());
lqw.eq(bo.getStartDate() != null, XzdContractAgreement::getStartDate, bo.getStartDate());
lqw.eq(bo.getEndDate() != null, XzdContractAgreement::getEndDate, bo.getEndDate());
lqw.eq(StringUtils.isNotBlank(bo.getPaymentTerms()), XzdContractAgreement::getPaymentTerms, bo.getPaymentTerms());
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdContractAgreement::getRemarks, bo.getRemarks());
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdContractAgreement::getFileId, bo.getFileId());
return lqw;
}
/**
* 新增合作协议
*
* @param bo 合作协议
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(XzdContractAgreementBo bo) {
XzdContractAgreement add = MapstructUtils.convert(bo, XzdContractAgreement.class);
validEntityBeforeSave(add);
add.setContractCode(IdUtil.getSnowflakeNextIdStr());
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改合作协议
*
* @param bo 合作协议
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(XzdContractAgreementBo bo) {
XzdContractAgreement update = MapstructUtils.convert(bo, XzdContractAgreement.class);
validEntityBeforeSave(update);
//老数据
XzdContractAgreementVo old = baseMapper.selectVoById(update.getId());
setValue(Collections.singletonList(old));
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(XzdContractAgreement entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除合作协议信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
public void setValue(List<XzdContractAgreementVo> vos){
for (XzdContractAgreementVo vo : vos) {
//客户单位
R<QuerCorrespondentDto> byid = iXzdCorrespondentList.getCustomerByid(vo.getPartyAUnit());
if (byid!=null){
if (byid.getData().getXzdCustomerinformation() != null){
vo.setPartyAUnitName(byid.getData().getXzdCustomerinformation().getUnitName());
}
}
//供应商单位
XzdSupplierInfoVo supplierInfoVo = xzdSupplierInfoService.queryById(vo.getPartyBUnit());
if (supplierInfoVo != null){
vo.setPartyBUnitName(supplierInfoVo.getUnitName());
}
//部门公司
SysDeptVo sysDeptVo = sysDeptService.selectDeptById(vo.getCompanyId());
if (sysDeptVo != null){
vo.setCompanyName(sysDeptVo.getDeptName());
}
//项目经理
SysUserVo sysUserVo = sysUserService.selectUserById(vo.getProjectManager());
if (sysUserVo != null){
vo.setProjectManagerName(sysUserVo.getNickName());
}
}
}
}

View File

@ -2,6 +2,7 @@ package org.dromara.xzd.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
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;
@ -11,10 +12,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.system.domain.vo.SysOssVo;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.impl.SysOssServiceImpl;
import org.dromara.system.service.impl.SysUserServiceImpl;
import org.dromara.xzd.domain.*;
import org.dromara.xzd.domain.bo.*;
import org.dromara.xzd.domain.dto.QuerCorrespondentDto;
import org.dromara.xzd.domain.vo.*;
import org.dromara.xzd.service.IXzdCorrespondentList;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -52,11 +57,15 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
private XzdProjectInternalAccountsServiceImpl xzdProjectInternalAccountsService;
@Autowired
private XzdProjectParticipatingUnitsServiceImpl xzdProjectParticipatingUnitsService;
@Autowired
private IXzdCorrespondentList iXzdCorrespondentList;
@Autowired
private SysOssServiceImpl sysOssService;
@Autowired
private XzdProjectTypeServiceImpl xzdProjectTypeService;
@Autowired
private SysUserServiceImpl sysUserService;
/**
* 查询项目信息
@ -527,6 +536,33 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
participatingUnitsLambdaQueryWrapper.eq(XzdProjectParticipatingUnits::getXzdProjectId, entity.getId());
entity.setCjdw(xzdProjectParticipatingUnitsService.getBaseMapper().selectVoList(participatingUnitsLambdaQueryWrapper));
//建设单位
R<QuerCorrespondentDto> byId = iXzdCorrespondentList.getCustomerByid(entity.getConstructionUnit());
if (byId!=null){
if (byId.getData().getXzdCustomerinformation()!=null){
entity.setConstructionUnitName(byId.getData().getXzdCustomerinformation().getUnitName());
}
}
// entity.setConstructionUnitName(iXzdCorrespondentList);
//备案项目经理
SysUserVo userVo = sysUserService.selectUserById(entity.getFilingManager());
if (userVo!=null){
entity.setFilingManagerName(userVo.getNickName());
}
//执行经理
SysUserVo userVo1 = sysUserService.selectUserById(entity.getManagerExecution());
if (userVo1!=null){
entity.setManagerExecutionName(userVo1.getNickName());
}
//责任人
SysUserVo userVo2 = sysUserService.selectUserById(entity.getManagerResponsible());
if (userVo2!=null){
entity.setManagerResponsibleName(userVo2.getNickName());
}
//项目类型
if (entity.getProjectType() != null){
XzdProjectTypeVo xzdProjectTypeVo = xzdProjectTypeService.queryById(entity.getProjectType());

View File

@ -3,6 +3,7 @@ package org.dromara.xzd.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.lang.tree.TreeNodeConfig;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
@ -10,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.TreeBuildUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.xzd.domain.XzdProjectType;
import org.dromara.xzd.domain.bo.XzdProjectTypeBo;
import org.dromara.xzd.domain.vo.XzdProjectTypeVo;
@ -21,6 +23,7 @@ import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.stream.Collectors;
/**
* 项目类型Service业务层处理
@ -136,5 +139,50 @@ public class XzdProjectTypeServiceImpl extends ServiceImpl<XzdProjectTypeMapper,
.setWeight(menu.getSortOrder());
});
// // 总是使用完整数据构建树
// List<XzdProjectTypeVo> allList = this.list().stream()
// .map(entity -> {
// XzdProjectTypeVo vo = new XzdProjectTypeVo();
// vo.setId(entity.getId());
// vo.setParentId(entity.getParentId());
// vo.setTypeName(entity.getTypeName());
// vo.setSortOrder(entity.getSortOrder());
// return vo;
// })
// .collect(Collectors.toList());
//
// if (CollUtil.isEmpty(allList)) {
// return CollUtil.newArrayList();
// }
//
// TreeNodeConfig config = new TreeNodeConfig();
// config.setDeep(2);
//
// List<Tree<String>> treeList = TreeBuildUtils.build(allList, "0", config, (menu, tree) -> {
// tree.setId(menu.getId().toString())
// .setParentId(menu.getParentId() != null ? menu.getParentId().toString() : "0")
// .setName(menu.getTypeName())
// .setWeight(menu.getSortOrder());
// });
//
// if (treeList == null) {
// treeList = CollUtil.newArrayList();
// }
//
// // 对构建好的树进行分页
// if (pageQuery != null && pageQuery.getPageNum() != null && pageQuery.getPageSize() != null) {
// int pageNum = pageQuery.getPageNum();
// int pageSize = pageQuery.getPageSize();
// int startIndex = (pageNum - 1) * pageSize;
// int endIndex = Math.min(startIndex + pageSize, treeList.size());
//
// if (startIndex < treeList.size()) {
// return treeList.subList(startIndex, endIndex);
// } else {
// return CollUtil.newArrayList();
// }
// }
//
// return treeList;
}
}

View File

@ -78,14 +78,14 @@ public class XzdSettlementInfoServiceImpl extends ServiceImpl<XzdSettlementInfoM
lqw.eq(StringUtils.isNotBlank(bo.getSettlementUnit()), XzdSettlementInfo::getSettlementUnit, bo.getSettlementUnit());
lqw.eq(StringUtils.isNotBlank(bo.getSettlementMethod()), XzdSettlementInfo::getSettlementMethod, bo.getSettlementMethod());
lqw.eq(StringUtils.isNotBlank(bo.getSettlementCurrency()), XzdSettlementInfo::getSettlementCurrency, bo.getSettlementCurrency());
lqw.eq(StringUtils.isNotBlank(bo.getOpeningBank()), XzdSettlementInfo::getOpeningBank, bo.getOpeningBank());
lqw.eq(StringUtils.isNotBlank(bo.getAccountNumber()), XzdSettlementInfo::getAccountNumber, bo.getAccountNumber());
// lqw.eq(StringUtils.isNotBlank(bo.getOpeningBank()), XzdSettlementInfo::getOpeningBank, bo.getOpeningBank());
// lqw.eq(StringUtils.isNotBlank(bo.getAccountNumber()), XzdSettlementInfo::getAccountNumber, bo.getAccountNumber());
lqw.eq(StringUtils.isNotBlank(bo.getDiscountMethod()), XzdSettlementInfo::getDiscountMethod, bo.getDiscountMethod());
lqw.eq(bo.getDefaultDeductionRate() != null, XzdSettlementInfo::getDefaultDeductionRate, bo.getDefaultDeductionRate());
lqw.like(StringUtils.isNotBlank(bo.getAccountName()), XzdSettlementInfo::getAccountName, bo.getAccountName());
lqw.eq(StringUtils.isNotBlank(bo.getOpeningBankProvince()), XzdSettlementInfo::getOpeningBankProvince, bo.getOpeningBankProvince());
lqw.eq(StringUtils.isNotBlank(bo.getOpeningBankCity()), XzdSettlementInfo::getOpeningBankCity, bo.getOpeningBankCity());
lqw.eq(StringUtils.isNotBlank(bo.getOpeningBankCountyDistrict()), XzdSettlementInfo::getOpeningBankCountyDistrict, bo.getOpeningBankCountyDistrict());
// lqw.like(StringUtils.isNotBlank(bo.getAccountName()), XzdSettlementInfo::getAccountName, bo.getAccountName());
// lqw.eq(StringUtils.isNotBlank(bo.getOpeningBankProvince()), XzdSettlementInfo::getOpeningBankProvince, bo.getOpeningBankProvince());
// lqw.eq(StringUtils.isNotBlank(bo.getOpeningBankCity()), XzdSettlementInfo::getOpeningBankCity, bo.getOpeningBankCity());
// lqw.eq(StringUtils.isNotBlank(bo.getOpeningBankCountyDistrict()), XzdSettlementInfo::getOpeningBankCountyDistrict, bo.getOpeningBankCountyDistrict());
lqw.eq(StringUtils.isNotBlank(bo.getFinancialType()), XzdSettlementInfo::getFinancialType, bo.getFinancialType());
lqw.eq(bo.getConsumptionTaxRate() != null, XzdSettlementInfo::getConsumptionTaxRate, bo.getConsumptionTaxRate());
lqw.eq(bo.getPaymentDays() != null, XzdSettlementInfo::getPaymentDays, bo.getPaymentDays());

View File

@ -6,7 +6,6 @@ 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;
@ -15,9 +14,9 @@ import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.impl.SysOssServiceImpl;
import org.dromara.system.service.impl.SysUserServiceImpl;
import org.dromara.xzd.domain.*;
import org.dromara.xzd.domain.bo.XzdSupplierQualificationBo;
import org.dromara.xzd.domain.vo.XzdCustomertypeInfoVo;
import org.dromara.xzd.domain.bo.XzdSupplierOpenBankBo;
import org.dromara.xzd.domain.vo.XzdCustomertypeVo;
import org.dromara.xzd.domain.vo.XzdSupplierOpenBankVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -27,10 +26,7 @@ import org.dromara.xzd.mapper.XzdSupplierInfoMapper;
import org.dromara.xzd.service.IXzdSupplierInfoService;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.*;
/**
* 供应商信息Service业务层处理
@ -70,6 +66,8 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
private XzdContractInfoServiceImpl xzdContractInfoService;
@Autowired
private XzdCustomertypeServiceImpl xzdCustomertypeService;
@Autowired
private XzdSupplierOpenBankServiceImpl xzdSupplierOpenBankService;
@Autowired
private SysUserServiceImpl sysUserService;
@ -250,11 +248,22 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
//处理结算信息
if (bo.getSettlement()!= null){
//开户银行
if(bo.getSettlement().getOpenBanks() != null && !bo.getSettlement().getOpenBanks().isEmpty()){
for (XzdSupplierOpenBank openBank : bo.getSettlement().getOpenBanks()) {
openBank.setSupplierId(add.getId());
}
xzdSupplierOpenBankService.saveBatch(bo.getSettlement().getOpenBanks());
}
bo.getSettlement().setType("2");
bo.getSettlement().setCustomerinformationId(add.getId());
xzdSettlementInfoService.save(bo.getSettlement());
}
//处理业务信息
if (bo.getBusiness() != null){
bo.getBusiness().setType("2");
@ -318,6 +327,10 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
@Transactional
public Boolean updateByBo(XzdSupplierInfoBo bo) {
XzdSupplierInfo update = MapstructUtils.convert(bo, XzdSupplierInfo.class);
XzdSupplierInfoVo old = baseMapper.selectVoById(update.getId());
setValue(Collections.singletonList(old));
validEntityBeforeSave(update);
boolean b = baseMapper.updateById(update) > 0;
@ -364,6 +377,27 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
//处理结算信息
if (bo.getSettlement()!= null){
//开户银行
if(bo.getSettlement().getOpenBanks() != null && !bo.getSettlement().getOpenBanks().isEmpty()){
if (old.getSettlement().getOpenBanks() != null && !old.getSettlement().getOpenBanks().isEmpty()){
for (XzdSupplierOpenBank openBank : old.getSettlement().getOpenBanks()) {
if (!bo.getSettlement().getOpenBanks().contains(openBank)){
xzdSupplierOpenBankService.removeById(openBank);
}
}
xzdSupplierOpenBankService.saveOrUpdateBatch(bo.getSettlement().getOpenBanks());
}else {
for (XzdSupplierOpenBank openBank : bo.getSettlement().getOpenBanks()) {
openBank.setSupplierId(update.getId());
}
xzdSupplierOpenBankService.saveBatch(bo.getSettlement().getOpenBanks());
}
}
bo.getSettlement().setType("2");
bo.getSettlement().setCustomerinformationId(update.getId());
xzdSettlementInfoService.saveOrUpdate(bo.getSettlement());
@ -527,6 +561,12 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
settlementInfoLambdaQueryWrapper.eq(XzdSettlementInfo::getCustomerinformationId, id);
xzdSettlementInfoService.remove(settlementInfoLambdaQueryWrapper);
//删除开户银行
LambdaQueryWrapper<XzdSupplierOpenBank> bankLambdaQueryWrapper = new LambdaQueryWrapper<>();
bankLambdaQueryWrapper.eq(XzdSupplierOpenBank::getSupplierId,vo.getId());
List<XzdSupplierOpenBank> openBanks = xzdSupplierOpenBankService.list(bankLambdaQueryWrapper);
xzdSupplierOpenBankService.removeBatchByIds(openBanks);
//处理业务信息
LambdaQueryWrapper<XzdBusinessInfo> businessInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
businessInfoLambdaQueryWrapper.eq(XzdBusinessInfo::getType,"2");
@ -686,13 +726,28 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
XzdSettlementInfo settlements = xzdSettlementInfoService.getOne(settlementInfoLambdaQueryWrapper);
if (settlements!= null){
vo.setSettlement(settlements);
vo.setKhyh(settlements.getOpeningBank());
vo.setKhhzh(settlements.getAccountNumber());
}
//处理开户银行
LambdaQueryWrapper<XzdSupplierOpenBank> bankLambdaQueryWrapper = new LambdaQueryWrapper<>();
bankLambdaQueryWrapper.eq(XzdSupplierOpenBank::getSupplierId,vo.getId());
bankLambdaQueryWrapper.eq(XzdSupplierOpenBank::getIsDefault,"1");
XzdSupplierOpenBank openBank = xzdSupplierOpenBankService.getOne(bankLambdaQueryWrapper);
if (openBank!= null){
vo.setKhyh(openBank.getOpenBank());
vo.setKhhzh(openBank.getAccount());
vo.setKhhhm(openBank.getOpenBank());
}else {
vo.setKhyh("暂无数据");
vo.setKhhzh("暂无数据");
vo.setKhhhm("暂无数据");
}
bankLambdaQueryWrapper.clear();
bankLambdaQueryWrapper.eq(XzdSupplierOpenBank::getSupplierId,vo.getId());
List<XzdSupplierOpenBank> openBanks = xzdSupplierOpenBankService.list(bankLambdaQueryWrapper);
vo.getSettlement().setOpenBanks(openBanks);
//处理业务信息
LambdaQueryWrapper<XzdBusinessInfo> businessInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
businessInfoLambdaQueryWrapper.eq(XzdBusinessInfo::getCustomerinformationId,vo.getId()).eq(XzdBusinessInfo::getType,"2");

View File

@ -0,0 +1,150 @@
package org.dromara.xzd.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.springframework.stereotype.Service;
import org.dromara.xzd.domain.bo.XzdSupplierOpenBankBo;
import org.dromara.xzd.domain.vo.XzdSupplierOpenBankVo;
import org.dromara.xzd.domain.XzdSupplierOpenBank;
import org.dromara.xzd.mapper.XzdSupplierOpenBankMapper;
import org.dromara.xzd.service.IXzdSupplierOpenBankService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 供应商信息-开户银行Service业务层处理
*
* @author Lion Li
* @date 2025-10-11
*/
@RequiredArgsConstructor
@Service
public class XzdSupplierOpenBankServiceImpl extends ServiceImpl<XzdSupplierOpenBankMapper, XzdSupplierOpenBank> implements IXzdSupplierOpenBankService {
private final XzdSupplierOpenBankMapper baseMapper;
/**
* 查询供应商信息-开户银行
*
* @param id 主键
* @return 供应商信息-开户银行
*/
@Override
public XzdSupplierOpenBankVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询供应商信息-开户银行列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 供应商信息-开户银行分页列表
*/
@Override
public TableDataInfo<XzdSupplierOpenBankVo> queryPageList(XzdSupplierOpenBankBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdSupplierOpenBank> lqw = buildQueryWrapper(bo);
Page<XzdSupplierOpenBankVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的供应商信息-开户银行列表
*
* @param bo 查询条件
* @return 供应商信息-开户银行列表
*/
@Override
public List<XzdSupplierOpenBankVo> queryList(XzdSupplierOpenBankBo bo) {
LambdaQueryWrapper<XzdSupplierOpenBank> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdSupplierOpenBank> buildQueryWrapper(XzdSupplierOpenBankBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdSupplierOpenBank> lqw = Wrappers.lambdaQuery();
lqw.orderByDesc(XzdSupplierOpenBank::getId);
lqw.eq(StringUtils.isNotBlank(bo.getOpenBank()), XzdSupplierOpenBank::getOpenBank, bo.getOpenBank());
lqw.eq(StringUtils.isNotBlank(bo.getAccount()), XzdSupplierOpenBank::getAccount, bo.getAccount());
lqw.like(StringUtils.isNotBlank(bo.getPersonName()), XzdSupplierOpenBank::getPersonName, bo.getPersonName());
lqw.eq(StringUtils.isNotBlank(bo.getBankSf()), XzdSupplierOpenBank::getBankSf, bo.getBankSf());
lqw.eq(StringUtils.isNotBlank(bo.getBankCs()), XzdSupplierOpenBank::getBankCs, bo.getBankCs());
lqw.eq(StringUtils.isNotBlank(bo.getBankQx()), XzdSupplierOpenBank::getBankQx, bo.getBankQx());
lqw.eq(StringUtils.isNotBlank(bo.getIsDefault()), XzdSupplierOpenBank::getIsDefault, bo.getIsDefault());
return lqw;
}
/**
* 新增供应商信息-开户银行
*
* @param bo 供应商信息-开户银行
* @return 是否新增成功
*/
@Override
public R<XzdSupplierOpenBank> insertByBo(List<XzdSupplierOpenBankBo> bo) {
XzdSupplierOpenBank temp = new XzdSupplierOpenBank();
for (XzdSupplierOpenBankBo bankBo : bo) {
XzdSupplierOpenBank add = MapstructUtils.convert(bankBo, XzdSupplierOpenBank.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (!flag) {
return R.fail();
}
if (add.getIsDefault().equals("1")){
temp = add;
}
}
return R.ok(temp);
}
/**
* 修改供应商信息-开户银行
*
* @param bo 供应商信息-开户银行
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(XzdSupplierOpenBankBo bo) {
XzdSupplierOpenBank update = MapstructUtils.convert(bo, XzdSupplierOpenBank.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(XzdSupplierOpenBank entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除供应商信息-开户银行信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}