Compare commits
5 Commits
45761415fa
...
59623f53a0
| Author | SHA1 | Date | |
|---|---|---|---|
| 59623f53a0 | |||
| b9cf8ea3de | |||
| 0efaf12849 | |||
| 809494ffca | |||
| c7dcddb58e |
@ -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));
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
|
||||
}
|
||||
@ -4,6 +4,8 @@ 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 com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
@ -82,7 +84,7 @@ public class XzdProject extends BaseEntity {
|
||||
/**
|
||||
* 项目金额
|
||||
*/
|
||||
private Long projectAmount;
|
||||
private BigDecimal projectAmount;
|
||||
|
||||
/**
|
||||
* 项目备案经理
|
||||
@ -102,7 +104,7 @@ public class XzdProject extends BaseEntity {
|
||||
/**
|
||||
* 项目中标金额
|
||||
*/
|
||||
private Long winningBidAmount;
|
||||
private BigDecimal winningBidAmount;
|
||||
|
||||
/**
|
||||
* 计划工期
|
||||
@ -182,22 +184,22 @@ public class XzdProject extends BaseEntity {
|
||||
/**
|
||||
* 目标中标金额
|
||||
*/
|
||||
private Long targetWinningBidAmount;
|
||||
private BigDecimal targetWinningBidAmount;
|
||||
|
||||
/**
|
||||
* 目标合同金额
|
||||
*/
|
||||
private Long targetContractAmount;
|
||||
private BigDecimal targetContractAmount;
|
||||
|
||||
/**
|
||||
* 目标产值金额
|
||||
*/
|
||||
private Long targetOutputValueAmount;
|
||||
private BigDecimal targetOutputValueAmount;
|
||||
|
||||
/**
|
||||
* 目标收款金额
|
||||
*/
|
||||
private Long targetCollectionAmount;
|
||||
private BigDecimal targetCollectionAmount;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
|
||||
@ -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 String openingBank;
|
||||
// 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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
|
||||
}
|
||||
@ -8,6 +8,8 @@ import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@ -37,13 +39,13 @@ public class XzdProjectBo extends BaseEntity {
|
||||
/**
|
||||
* 项目编号
|
||||
*/
|
||||
@NotBlank(message = "项目编号不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// @NotBlank(message = "项目编号不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String projectNumber;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// @NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
@ -54,13 +56,13 @@ public class XzdProjectBo extends BaseEntity {
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
@NotNull(message = "项目类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// @NotNull(message = "项目类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectType;
|
||||
|
||||
/**
|
||||
* 项目状态
|
||||
*/
|
||||
@NotBlank(message = "项目状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// @NotBlank(message = "项目状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String projectStatus;
|
||||
|
||||
/**
|
||||
@ -95,7 +97,7 @@ public class XzdProjectBo extends BaseEntity {
|
||||
/**
|
||||
* 项目金额
|
||||
*/
|
||||
private Long projectAmount;
|
||||
private BigDecimal projectAmount;
|
||||
|
||||
/**
|
||||
* 项目备案经理
|
||||
@ -115,7 +117,7 @@ public class XzdProjectBo extends BaseEntity {
|
||||
/**
|
||||
* 项目中标金额
|
||||
*/
|
||||
private Long winningBidAmount;
|
||||
private BigDecimal winningBidAmount;
|
||||
|
||||
/**
|
||||
* 计划工期
|
||||
@ -150,7 +152,7 @@ public class XzdProjectBo extends BaseEntity {
|
||||
/**
|
||||
* 建设单位
|
||||
*/
|
||||
@NotBlank(message = "建设单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// @NotBlank(message = "建设单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String constructionUnit;
|
||||
|
||||
/**
|
||||
@ -181,7 +183,7 @@ public class XzdProjectBo extends BaseEntity {
|
||||
/**
|
||||
* 政府备案项目名称
|
||||
*/
|
||||
@NotBlank(message = "政府备案项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// @NotBlank(message = "政府备案项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String govFilingProjectName;
|
||||
|
||||
/**
|
||||
@ -197,22 +199,22 @@ public class XzdProjectBo extends BaseEntity {
|
||||
/**
|
||||
* 目标中标金额
|
||||
*/
|
||||
private Long targetWinningBidAmount;
|
||||
private BigDecimal targetWinningBidAmount;
|
||||
|
||||
/**
|
||||
* 目标合同金额
|
||||
*/
|
||||
private Long targetContractAmount;
|
||||
private BigDecimal targetContractAmount;
|
||||
|
||||
/**
|
||||
* 目标产值金额
|
||||
*/
|
||||
private Long targetOutputValueAmount;
|
||||
private BigDecimal targetOutputValueAmount;
|
||||
|
||||
/**
|
||||
* 目标收款金额
|
||||
*/
|
||||
private Long targetCollectionAmount;
|
||||
private BigDecimal targetCollectionAmount;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
@ -304,4 +306,6 @@ public class XzdProjectBo extends BaseEntity {
|
||||
|
||||
private Integer offset;
|
||||
|
||||
private String selfId;
|
||||
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ public class XzdProjectPersonnelBo extends BaseEntity {
|
||||
/**
|
||||
* 项目角色
|
||||
*/
|
||||
@NotBlank(message = "项目角色不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// @NotBlank(message = "项目角色不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String projectRole;
|
||||
|
||||
/**
|
||||
|
||||
@ -33,7 +33,7 @@ public class XzdProjectProfileBo extends BaseEntity {
|
||||
/**
|
||||
* 国家
|
||||
*/
|
||||
@NotBlank(message = "国家不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// @NotBlank(message = "国家不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String country;
|
||||
|
||||
/**
|
||||
@ -54,7 +54,7 @@ public class XzdProjectProfileBo extends BaseEntity {
|
||||
/**
|
||||
* 项目地址
|
||||
*/
|
||||
@NotBlank(message = "项目地址不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// @NotBlank(message = "项目地址不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String projectAddress;
|
||||
|
||||
/**
|
||||
|
||||
@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
|
||||
}
|
||||
@ -74,24 +74,28 @@ public class XzdProjectVo implements Serializable {
|
||||
* 计划开工日期
|
||||
*/
|
||||
@ExcelProperty(value = "计划开工日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date plannedStartDate;
|
||||
|
||||
/**
|
||||
* 计划竣工日期
|
||||
*/
|
||||
@ExcelProperty(value = "计划竣工日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date plannedCompletionDate;
|
||||
|
||||
/**
|
||||
* 实际开工日期
|
||||
*/
|
||||
@ExcelProperty(value = "实际开工日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date actualStartDate;
|
||||
|
||||
/**
|
||||
* 实际竣工日期
|
||||
*/
|
||||
@ExcelProperty(value = "实际竣工日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date actualCompletionDate;
|
||||
|
||||
/**
|
||||
@ -104,7 +108,7 @@ public class XzdProjectVo implements Serializable {
|
||||
* 项目金额
|
||||
*/
|
||||
@ExcelProperty(value = "项目金额")
|
||||
private Long projectAmount;
|
||||
private BigDecimal projectAmount;
|
||||
|
||||
/**
|
||||
* 项目备案经理
|
||||
@ -131,11 +135,13 @@ public class XzdProjectVo implements Serializable {
|
||||
@ExcelProperty(value = "项目责任人")
|
||||
private Long managerResponsible;
|
||||
|
||||
private String managerResponsibleName;
|
||||
|
||||
/**
|
||||
* 项目中标金额
|
||||
*/
|
||||
@ExcelProperty(value = "项目中标金额")
|
||||
private Long winningBidAmount;
|
||||
private BigDecimal winningBidAmount;
|
||||
|
||||
/**
|
||||
* 计划工期
|
||||
@ -177,7 +183,12 @@ public class XzdProjectVo implements Serializable {
|
||||
* 建设单位
|
||||
*/
|
||||
@ExcelProperty(value = "建设单位")
|
||||
private String constructionUnit;
|
||||
private Long constructionUnit;
|
||||
|
||||
/**
|
||||
* 建设单位名
|
||||
*/
|
||||
private String constructionUnitName;
|
||||
|
||||
/**
|
||||
* 项目属性
|
||||
|
||||
@ -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;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
}
|
||||
@ -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> {
|
||||
|
||||
}
|
||||
@ -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> {
|
||||
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
}
|
||||
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,5 +1,7 @@
|
||||
package org.dromara.xzd.service.impl;
|
||||
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
@ -19,9 +21,7 @@ import org.dromara.xzd.mapper.XzdProjectManagerApprovalMapper;
|
||||
import org.dromara.xzd.service.IXzdProjectManagerApprovalService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 项目经理推荐及审批Service业务层处理
|
||||
@ -96,18 +96,15 @@ public class XzdProjectManagerApprovalServiceImpl extends ServiceImpl<XzdProject
|
||||
* @param bo 项目经理推荐及审批
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public Boolean insertByBo(XzdProjectManagerApprovalBo bo) {
|
||||
bo.setDocumentNumber(IdUtil.getSnowflake().nextIdStr());
|
||||
XzdProjectManagerApproval add = MapstructUtils.convert(bo, XzdProjectManagerApproval.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
//生成过后更新单据编号为ID
|
||||
add.setDocumentNumber(add.getId().toString());
|
||||
baseMapper.updateById(add);
|
||||
return flag;
|
||||
}
|
||||
|
||||
@ -117,14 +114,27 @@ public class XzdProjectManagerApprovalServiceImpl extends ServiceImpl<XzdProject
|
||||
* @param bo 项目经理推荐及审批
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public Boolean updateByBo(XzdProjectManagerApprovalBo bo) {
|
||||
//先通过BO中ID获取老数据的文件ID
|
||||
XzdProjectManagerApprovalVo approvalVo = baseMapper.selectVoById(bo.getId());
|
||||
if (!approvalVo.getFileId().equals(bo.getFileId())){
|
||||
//如果不一样则先删除旧的再更新
|
||||
sysOssService.deleteWithValidByIds(List.of(Long.valueOf(approvalVo.getFileId())), false);
|
||||
XzdProjectManagerApprovalVo oldVo = baseMapper.selectVoById(bo.getId());
|
||||
List<String> list = Arrays.stream(oldVo.getFileId().split(",")).toList();
|
||||
|
||||
List<String> news = Arrays.stream(bo.getFileId().split(",")).toList();
|
||||
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (String id : list) {
|
||||
if (!news.contains(id)){
|
||||
deleteIds.add(Long.valueOf(id));
|
||||
}
|
||||
}
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
//
|
||||
// if (!oldVo.getFileId().equals(bo.getFileId())){
|
||||
// //如果不一样则先删除旧的再更新
|
||||
// sysOssService.deleteWithValidByIds(List.of(Long.valueOf(oldVo.getFileId())), false);
|
||||
// }
|
||||
XzdProjectManagerApproval update = MapstructUtils.convert(bo, XzdProjectManagerApproval.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
@ -156,7 +166,10 @@ public class XzdProjectManagerApprovalServiceImpl extends ServiceImpl<XzdProject
|
||||
if (vo == null){
|
||||
continue;
|
||||
}
|
||||
sysOssService.deleteWithValidByIds(List.of(Long.valueOf(vo.getFileId())), false);
|
||||
if (vo.getFileId() != null && !vo.getFileId().isEmpty()) {
|
||||
List<Long> deleteIds = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
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;
|
||||
@ -10,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;
|
||||
@ -30,6 +36,7 @@ import java.util.stream.Collectors;
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProject> implements IXzdProjectService {
|
||||
@ -50,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;
|
||||
|
||||
/**
|
||||
* 查询项目信息
|
||||
@ -232,6 +243,7 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
|
||||
public Boolean updateByBo(XzdProjectBo bo) {
|
||||
|
||||
XzdProjectVo oldValue = baseMapper.selectVoById(bo.getId());
|
||||
setValue(oldValue);
|
||||
|
||||
XzdProject update = MapstructUtils.convert(bo, XzdProject.class);
|
||||
validEntityBeforeSave(update);
|
||||
@ -246,47 +258,43 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
|
||||
}
|
||||
|
||||
//项目人员处理
|
||||
//项目人员处理 - 更精确的更新方式
|
||||
if (bo.getXmry() != null && !bo.getXmry().isEmpty()){
|
||||
// 获取原有记录
|
||||
LambdaQueryWrapper<XzdProjectPersonnel> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(XzdProjectPersonnel::getXzdProjectId, bo.getId());
|
||||
List<XzdProjectPersonnel> existingPersonnel = xzdProjectPersonnelService.list(queryWrapper);
|
||||
// 获取原有记录的ID列表
|
||||
if (oldValue.getXmry() != null && !oldValue.getXmry().isEmpty()) {
|
||||
|
||||
// 提取现有ID集合
|
||||
Set<Long> existingIds = existingPersonnel.stream()
|
||||
.map(XzdProjectPersonnel::getId)
|
||||
.collect(Collectors.toSet());
|
||||
//把双方都转换为实体
|
||||
List<XzdProjectPersonnel> old = new ArrayList<>();
|
||||
for (XzdProjectPersonnelVo personVo : oldValue.getXmry()) {
|
||||
XzdProjectPersonnel temp = new XzdProjectPersonnel();
|
||||
BeanUtils.copyProperties(personVo, temp);
|
||||
old.add(temp);
|
||||
}
|
||||
|
||||
// 处理新的或更新的记录
|
||||
Set<Long> processedIds = new HashSet<>();
|
||||
for (XzdProjectPersonnelBo personnelBo : bo.getXmry()) {
|
||||
personnelBo.setXzdProjectId(update.getId());
|
||||
if (personnelBo.getId() != null && existingIds.contains(personnelBo.getId())) {
|
||||
// 更新已有记录
|
||||
xzdProjectPersonnelService.updateByBo(personnelBo);
|
||||
processedIds.add(personnelBo.getId());
|
||||
} else {
|
||||
// 新增记录
|
||||
personnelBo.setId(null); // 确保是新增而不是更新
|
||||
xzdProjectPersonnelService.insertByBo(personnelBo);
|
||||
List<XzdProjectPersonnel> now = new ArrayList<>();
|
||||
for (XzdProjectPersonnelBo boValue : bo.getXmry()) {
|
||||
if (boValue.getId() == null){
|
||||
boValue.setXzdProjectId(update.getId());
|
||||
}
|
||||
XzdProjectPersonnel temp = new XzdProjectPersonnel();
|
||||
BeanUtils.copyProperties(boValue, temp);
|
||||
now.add(temp);
|
||||
}
|
||||
|
||||
for (XzdProjectPersonnel warehouses : old) {
|
||||
if (!now.contains(warehouses)) {
|
||||
// 删除不存在的记录
|
||||
xzdProjectPersonnelService.removeById(warehouses.getId());
|
||||
}
|
||||
}
|
||||
xzdProjectPersonnelService.saveOrUpdateBatch( now);
|
||||
|
||||
}else {
|
||||
for (XzdProjectPersonnelBo boValue : bo.getXmry()) {
|
||||
boValue.setXzdProjectId(update.getId());
|
||||
xzdProjectPersonnelService.insertByBo(boValue);
|
||||
}
|
||||
}
|
||||
|
||||
// 删除未被处理的旧记录
|
||||
existingIds.removeAll(processedIds);
|
||||
if (!existingIds.isEmpty()) {
|
||||
xzdProjectPersonnelService.removeBatchByIds(existingIds);
|
||||
}
|
||||
}
|
||||
// if (bo.getXmry() != null && !bo.getXmry().isEmpty()){
|
||||
// //删除后再新增
|
||||
// xzdProjectPersonnelService.removeBatchByIds(oldValue.getXmry());
|
||||
// for (XzdProjectPersonnelBo personnelBo : bo.getXmry()) {
|
||||
// personnelBo.setXzdProjectId(update.getId());
|
||||
// xzdProjectPersonnelService.insertByBo(personnelBo);
|
||||
// }
|
||||
// }
|
||||
|
||||
//税务信息处理
|
||||
if (bo.getSwxx() != null){
|
||||
@ -298,93 +306,121 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
|
||||
xzdProjectAccountingInfoService.updateByBo(bo.getHsxx());
|
||||
}
|
||||
|
||||
// //仓库信息
|
||||
// if (bo.getXmck() != null && !bo.getXmck().isEmpty()){
|
||||
// xzdProjectWarehousesService.removeBatchByIds(oldValue.getXmck());
|
||||
// for (XzdProjectWarehousesBo warehousesBo : bo.getXmck()) {
|
||||
// warehousesBo.setXzdProjectId(update.getId());
|
||||
// xzdProjectWarehousesService.insertByBo(warehousesBo);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// //内部账户信息
|
||||
// if (bo.getNbzj() != null && !bo.getNbzj().isEmpty()){
|
||||
// xzdProjectInternalAccountsService.removeBatchByIds(oldValue.getNbzj());
|
||||
// for (XzdProjectInternalAccountsBo internalAccountsBo : bo.getNbzj()) {
|
||||
// internalAccountsBo.setXzdProjectId(update.getId());
|
||||
// xzdProjectInternalAccountsService.insertByBo(internalAccountsBo);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// //参与单位信息
|
||||
// if (bo.getCjdw() != null && !bo.getCjdw().isEmpty()){
|
||||
// xzdProjectParticipatingUnitsService.removeBatchByIds(oldValue.getCjdw());
|
||||
// for (XzdProjectParticipatingUnitsBo participatingUnitsBo : bo.getCjdw()) {
|
||||
// participatingUnitsBo.setXzdProjectId(update.getId());
|
||||
// xzdProjectParticipatingUnitsService.insertByBo(participatingUnitsBo);
|
||||
// }
|
||||
// }
|
||||
|
||||
//仓库信息
|
||||
if (bo.getXmck() != null && !bo.getXmck().isEmpty()){
|
||||
// 获取原有记录的ID列表
|
||||
List<Long> oldWarehouseIds = oldValue.getXmck().stream()
|
||||
.map(XzdProjectWarehousesVo::getId)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
if (oldValue.getXmck() != null && !oldValue.getXmck().isEmpty()) {
|
||||
|
||||
// 删除原有记录
|
||||
if (!oldWarehouseIds.isEmpty()) {
|
||||
xzdProjectWarehousesService.removeBatchByIds(oldWarehouseIds);
|
||||
}
|
||||
//把双方都转换为实体
|
||||
List<XzdProjectWarehouses> old = new ArrayList<>();
|
||||
for (XzdProjectWarehousesVo warehousesVo : oldValue.getXmck()) {
|
||||
XzdProjectWarehouses temp = new XzdProjectWarehouses();
|
||||
BeanUtils.copyProperties(warehousesVo, temp);
|
||||
old.add(temp);
|
||||
}
|
||||
|
||||
// 插入新记录
|
||||
for (XzdProjectWarehousesBo warehousesBo : bo.getXmck()) {
|
||||
warehousesBo.setId(null); // 清除ID避免主键冲突
|
||||
warehousesBo.setXzdProjectId(update.getId());
|
||||
xzdProjectWarehousesService.insertByBo(warehousesBo);
|
||||
List<XzdProjectWarehouses> now = new ArrayList<>();
|
||||
for (XzdProjectWarehousesBo boValue : bo.getXmck()) {
|
||||
if (boValue.getId() == null){
|
||||
boValue.setXzdProjectId(update.getId());
|
||||
}
|
||||
XzdProjectWarehouses temp = new XzdProjectWarehouses();
|
||||
BeanUtils.copyProperties(boValue, temp);
|
||||
now.add(temp);
|
||||
}
|
||||
|
||||
for (XzdProjectWarehouses warehouses : old) {
|
||||
if (!now.contains(warehouses)) {
|
||||
// 删除不存在的记录
|
||||
xzdProjectWarehousesService.removeById(warehouses.getId());
|
||||
}
|
||||
}
|
||||
xzdProjectWarehousesService.saveOrUpdateBatch( now);
|
||||
|
||||
}else {
|
||||
for (XzdProjectWarehousesBo boValue : bo.getXmck()) {
|
||||
boValue.setXzdProjectId(update.getId());
|
||||
xzdProjectWarehousesService.insertByBo(boValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//内部账户信息
|
||||
if (bo.getNbzj() != null && !bo.getNbzj().isEmpty()){
|
||||
// 获取原有记录的ID列表
|
||||
List<Long> oldAccountIds = oldValue.getNbzj().stream()
|
||||
.map(XzdProjectInternalAccountsVo::getId)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
if (oldValue.getNbzj() != null && !oldValue.getNbzj().isEmpty()) {
|
||||
|
||||
// 删除原有记录
|
||||
if (!oldAccountIds.isEmpty()) {
|
||||
xzdProjectInternalAccountsService.removeBatchByIds(oldAccountIds);
|
||||
}
|
||||
//把双方都转换为实体
|
||||
List<XzdProjectInternalAccounts> old = new ArrayList<>();
|
||||
for (XzdProjectInternalAccountsVo Vo : oldValue.getNbzj()) {
|
||||
XzdProjectInternalAccounts temp = new XzdProjectInternalAccounts();
|
||||
BeanUtils.copyProperties(Vo, temp);
|
||||
old.add(temp);
|
||||
}
|
||||
|
||||
// 插入新记录
|
||||
for (XzdProjectInternalAccountsBo internalAccountsBo : bo.getNbzj()) {
|
||||
internalAccountsBo.setId(null); // 清除ID避免主键冲突
|
||||
internalAccountsBo.setXzdProjectId(update.getId());
|
||||
xzdProjectInternalAccountsService.insertByBo(internalAccountsBo);
|
||||
List<XzdProjectInternalAccounts> now = new ArrayList<>();
|
||||
for (XzdProjectInternalAccountsBo boValue : bo.getNbzj()) {
|
||||
if (boValue.getId() == null){
|
||||
boValue.setXzdProjectId(update.getId());
|
||||
}
|
||||
XzdProjectInternalAccounts temp = new XzdProjectInternalAccounts();
|
||||
BeanUtils.copyProperties(boValue, temp);
|
||||
now.add(temp);
|
||||
}
|
||||
|
||||
for (XzdProjectInternalAccounts warehouses : old) {
|
||||
if (!now.contains(warehouses)) {
|
||||
// 删除不存在的记录
|
||||
xzdProjectInternalAccountsService.removeById(warehouses.getId());
|
||||
}
|
||||
}
|
||||
xzdProjectInternalAccountsService.saveOrUpdateBatch( now);
|
||||
|
||||
}else {
|
||||
for (XzdProjectInternalAccountsBo boValue : bo.getNbzj()) {
|
||||
boValue.setXzdProjectId(update.getId());
|
||||
xzdProjectInternalAccountsService.insertByBo(boValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//参与单位信息
|
||||
if (bo.getCjdw() != null && !bo.getCjdw().isEmpty()){
|
||||
// 获取原有记录的ID列表
|
||||
List<Long> oldUnitIds = oldValue.getCjdw().stream()
|
||||
.map(XzdProjectParticipatingUnitsVo::getId)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
if (oldValue.getCjdw() != null && !oldValue.getCjdw().isEmpty()) {
|
||||
|
||||
// 删除原有记录
|
||||
if (!oldUnitIds.isEmpty()) {
|
||||
xzdProjectParticipatingUnitsService.removeBatchByIds(oldUnitIds);
|
||||
}
|
||||
//把双方都转换为实体
|
||||
List<XzdProjectParticipatingUnits> old = new ArrayList<>();
|
||||
for (XzdProjectParticipatingUnitsVo Vo : oldValue.getCjdw()) {
|
||||
XzdProjectParticipatingUnits temp = new XzdProjectParticipatingUnits();
|
||||
BeanUtils.copyProperties(Vo, temp);
|
||||
old.add(temp);
|
||||
}
|
||||
|
||||
// 插入新记录
|
||||
for (XzdProjectParticipatingUnitsBo participatingUnitsBo : bo.getCjdw()) {
|
||||
participatingUnitsBo.setId(null); // 清除ID避免主键冲突
|
||||
participatingUnitsBo.setXzdProjectId(update.getId());
|
||||
xzdProjectParticipatingUnitsService.insertByBo(participatingUnitsBo);
|
||||
List<XzdProjectParticipatingUnits> now = new ArrayList<>();
|
||||
for (XzdProjectParticipatingUnitsBo boValue : bo.getCjdw()) {
|
||||
if (boValue.getId() == null){
|
||||
boValue.setXzdProjectId(update.getId());
|
||||
}
|
||||
XzdProjectParticipatingUnits temp = new XzdProjectParticipatingUnits();
|
||||
BeanUtils.copyProperties(boValue, temp);
|
||||
now.add(temp);
|
||||
}
|
||||
|
||||
for (XzdProjectParticipatingUnits warehouses : old) {
|
||||
if (!now.contains(warehouses)) {
|
||||
// 删除不存在的记录
|
||||
xzdProjectParticipatingUnitsService.removeById(warehouses.getId());
|
||||
}
|
||||
}
|
||||
xzdProjectParticipatingUnitsService.saveOrUpdateBatch( now);
|
||||
|
||||
}else {
|
||||
for (XzdProjectParticipatingUnitsBo boValue : bo.getCjdw()) {
|
||||
boValue.setXzdProjectId(update.getId());
|
||||
xzdProjectParticipatingUnitsService.insertByBo(boValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -422,8 +458,13 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
|
||||
personnelLambdaQueryWrapper.eq(XzdProjectPersonnel::getXzdProjectId, id);
|
||||
List<XzdProjectPersonnel> list = xzdProjectPersonnelService.list(personnelLambdaQueryWrapper);
|
||||
for (XzdProjectPersonnel xzdProjectPersonnel : list) {
|
||||
if (xzdProjectPersonnel.getFileId() != null){
|
||||
sysOssService.deleteWithValidByIds(List.of(Long.valueOf(xzdProjectPersonnel.getFileId())), false);
|
||||
if (xzdProjectPersonnel.getFileId() != null && !xzdProjectPersonnel.getFileId().isEmpty()) {
|
||||
try {
|
||||
sysOssService.deleteWithValidByIds(List.of(Long.valueOf(xzdProjectPersonnel.getFileId())), false);
|
||||
} catch (NumberFormatException e) {
|
||||
log.warn("项目人员关联文件ID格式不正确,fileId: {}", xzdProjectPersonnel.getFileId(), e);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
xzdProjectPersonnelService.remove(personnelLambdaQueryWrapper);
|
||||
@ -495,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());
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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());
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -30,6 +30,7 @@
|
||||
profile.city as cs,
|
||||
user3.nick_name as lrr,
|
||||
project.create_time as createTime,
|
||||
project.project_amount as projectAmount,
|
||||
profile.height as gd,
|
||||
project.contracting_method as contractingMethod,
|
||||
project.manager_execution_phone as managerExecutionPhone,
|
||||
@ -78,6 +79,10 @@
|
||||
AND user2.nick_name = #{xmbajl}
|
||||
</if>
|
||||
|
||||
<if test='selfId != null and selfId != ""'>
|
||||
AND project.id != #{selfId}
|
||||
</if>
|
||||
|
||||
</where>
|
||||
|
||||
<if test='pageNum != null and pageSize != null'>
|
||||
|
||||
Reference in New Issue
Block a user