From b9cf8ea3de97872834469cadc3d535a71848a02c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E5=B1=95=E8=88=AA?= <2426745133@qq.com> Date: Sun, 12 Oct 2025 16:07:54 +0800 Subject: [PATCH] =?UTF-8?q?10-12-=E6=96=B0=E5=A2=9E=E9=93=B6=E8=A1=8C?= =?UTF-8?q?=E5=8D=A1=EF=BC=8C=E5=90=88=E4=BD=9C=E5=8D=8F=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../XzdContractAgreementController.java | 105 +++++++++ .../controller/XzdProjectTypeController.java | 5 +- .../XzdSupplierOpenBankController.java | 106 +++++++++ .../xzd/domain/XzdContractAgreement.java | 114 ++++++++++ .../dromara/xzd/domain/XzdSettlementInfo.java | 20 +- .../dromara/xzd/domain/XzdSupplierInfo.java | 7 + .../xzd/domain/XzdSupplierOpenBank.java | 76 +++++++ .../xzd/domain/bo/XzdContractAgreementBo.java | 120 +++++++++++ .../xzd/domain/bo/XzdSupplierInfoBo.java | 6 + .../xzd/domain/bo/XzdSupplierOpenBankBo.java | 77 +++++++ .../xzd/domain/vo/XzdContractAgreementVo.java | 150 +++++++++++++ .../dromara/xzd/domain/vo/XzdProjectVo.java | 9 +- .../xzd/domain/vo/XzdSupplierInfoVo.java | 16 ++ .../xzd/domain/vo/XzdSupplierOpenBankVo.java | 87 ++++++++ .../mapper/XzdContractAgreementMapper.java | 15 ++ .../xzd/mapper/XzdSupplierOpenBankMapper.java | 15 ++ .../service/IXzdContractAgreementService.java | 70 ++++++ .../xzd/service/IXzdProjectTypeService.java | 1 + .../service/IXzdSupplierOpenBankService.java | 71 ++++++ .../impl/XzdContractAgreementServiceImpl.java | 202 ++++++++++++++++++ .../service/impl/XzdProjectServiceImpl.java | 36 ++++ .../impl/XzdProjectTypeServiceImpl.java | 48 +++++ .../impl/XzdSettlementInfoServiceImpl.java | 12 +- .../impl/XzdSupplierInfoServiceImpl.java | 73 ++++++- .../impl/XzdSupplierOpenBankServiceImpl.java | 150 +++++++++++++ 25 files changed, 1566 insertions(+), 25 deletions(-) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdContractAgreementController.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdSupplierOpenBankController.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractAgreement.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSupplierOpenBank.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractAgreementBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdSupplierOpenBankBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractAgreementVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdSupplierOpenBankVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractAgreementMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdSupplierOpenBankMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractAgreementService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdSupplierOpenBankService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAgreementServiceImpl.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierOpenBankServiceImpl.java diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdContractAgreementController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdContractAgreementController.java new file mode 100644 index 00000000..6558f70d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdContractAgreementController.java @@ -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 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 list = xzdContractAgreementService.queryList(bo); + ExcelUtil.exportExcel(list, "合作协议", XzdContractAgreementVo.class, response); + } + + /** + * 获取合作协议详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("xzd:contractAgreement:query") + @GetMapping("/{id}") + public R 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 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 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 remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdContractAgreementService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdProjectTypeController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdProjectTypeController.java index aefdc3f5..2466112a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdProjectTypeController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdProjectTypeController.java @@ -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 list = xzdProjectTypeService.queryList(bo); - ExcelUtil.exportExcel(list, "项目类型", XzdProjectTypeVo.class, response); +// List list = xzdProjectTypeService.queryList(bo); +// ExcelUtil.exportExcel(list, "项目类型", XzdProjectTypeVo.class, response); } /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdSupplierOpenBankController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdSupplierOpenBankController.java new file mode 100644 index 00000000..13463608 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdSupplierOpenBankController.java @@ -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 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 list = xzdSupplierOpenBankService.queryList(bo); + ExcelUtil.exportExcel(list, "供应商信息-开户银行", XzdSupplierOpenBankVo.class, response); + } + + /** + * 获取供应商信息-开户银行详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("xzd:supplierOpenBank:query") + @GetMapping("/{id}") + public R 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 add(@Validated(AddGroup.class) @RequestBody List bo) { + return xzdSupplierOpenBankService.insertByBo(bo); + } + + /** + * 修改供应商信息-开户银行 + */ + @SaCheckPermission("xzd:supplierOpenBank:edit") + @Log(title = "供应商信息-开户银行", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R 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 remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdSupplierOpenBankService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractAgreement.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractAgreement.java new file mode 100644 index 00000000..f6b4e2e3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractAgreement.java @@ -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; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSettlementInfo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSettlementInfo.java index d93ab111..27309bb7 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSettlementInfo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSettlementInfo.java @@ -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 openBanks; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSupplierInfo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSupplierInfo.java index 279562a8..88fd00a2 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSupplierInfo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSupplierInfo.java @@ -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; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSupplierOpenBank.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSupplierOpenBank.java new file mode 100644 index 00000000..5b4b45f4 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSupplierOpenBank.java @@ -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; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractAgreementBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractAgreementBo.java new file mode 100644 index 00000000..4d48ac35 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractAgreementBo.java @@ -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; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdSupplierInfoBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdSupplierInfoBo.java index e7b9c3cc..e8b9e39c 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdSupplierInfoBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdSupplierInfoBo.java @@ -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; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdSupplierOpenBankBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdSupplierOpenBankBo.java new file mode 100644 index 00000000..f4024a97 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdSupplierOpenBankBo.java @@ -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; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractAgreementVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractAgreementVo.java new file mode 100644 index 00000000..bdbcdb6a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractAgreementVo.java @@ -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; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdProjectVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdProjectVo.java index 2a016271..966097e5 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdProjectVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdProjectVo.java @@ -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; /** * 项目属性 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdSupplierInfoVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdSupplierInfoVo.java index 426716e5..0d03095b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdSupplierInfoVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdSupplierInfoVo.java @@ -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 openBanks; + /** * 开户银行 */ @@ -376,6 +387,11 @@ public class XzdSupplierInfoVo implements Serializable { */ private String khhzh; + /** + * 开户行户名 + */ + private String khhhm; + /** * 创建者 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdSupplierOpenBankVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdSupplierOpenBankVo.java new file mode 100644 index 00000000..6125340d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdSupplierOpenBankVo.java @@ -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; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractAgreementMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractAgreementMapper.java new file mode 100644 index 00000000..a417a517 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractAgreementMapper.java @@ -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 { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdSupplierOpenBankMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdSupplierOpenBankMapper.java new file mode 100644 index 00000000..45933708 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdSupplierOpenBankMapper.java @@ -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 { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractAgreementService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractAgreementService.java new file mode 100644 index 00000000..55d0d099 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractAgreementService.java @@ -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{ + + /** + * 查询合作协议 + * + * @param id 主键 + * @return 合作协议 + */ + XzdContractAgreementVo queryById(Long id); + + /** + * 分页查询合作协议列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 合作协议分页列表 + */ + TableDataInfo queryPageList(XzdContractAgreementBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的合作协议列表 + * + * @param bo 查询条件 + * @return 合作协议列表 + */ + List 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 ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdProjectTypeService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdProjectTypeService.java index 796b5e6b..26c4647b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdProjectTypeService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdProjectTypeService.java @@ -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; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdSupplierOpenBankService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdSupplierOpenBankService.java new file mode 100644 index 00000000..cc51c595 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdSupplierOpenBankService.java @@ -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{ + + /** + * 查询供应商信息-开户银行 + * + * @param id 主键 + * @return 供应商信息-开户银行 + */ + XzdSupplierOpenBankVo queryById(Long id); + + /** + * 分页查询供应商信息-开户银行列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 供应商信息-开户银行分页列表 + */ + TableDataInfo queryPageList(XzdSupplierOpenBankBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的供应商信息-开户银行列表 + * + * @param bo 查询条件 + * @return 供应商信息-开户银行列表 + */ + List queryList(XzdSupplierOpenBankBo bo); + + /** + * 新增供应商信息-开户银行 + * + * @param bo 供应商信息-开户银行 + * @return 是否新增成功 + */ + R insertByBo(List bo); + + /** + * 修改供应商信息-开户银行 + * + * @param bo 供应商信息-开户银行 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdSupplierOpenBankBo bo); + + /** + * 校验并批量删除供应商信息-开户银行信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAgreementServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAgreementServiceImpl.java new file mode 100644 index 00000000..15139b6f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAgreementServiceImpl.java @@ -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 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 vos = List.of(vo); + setValue(vos); + return vos.getFirst(); + } + + /** + * 分页查询合作协议列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 合作协议分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdContractAgreementBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + setValue(result.getRecords()); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的合作协议列表 + * + * @param bo 查询条件 + * @return 合作协议列表 + */ + @Override + public List queryList(XzdContractAgreementBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdContractAgreementBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + public void setValue(List vos){ + for (XzdContractAgreementVo vo : vos) { + //客户单位 + R 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()); + } + } + } + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectServiceImpl.java index 7b7326a3..7866f384 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectServiceImpl.java @@ -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 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()); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectTypeServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectTypeServiceImpl.java index 6550efad..18717af9 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectTypeServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdProjectTypeServiceImpl.java @@ -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 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> 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; } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSettlementInfoServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSettlementInfoServiceImpl.java index 1a9c3023..8d2aeae8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSettlementInfoServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSettlementInfoServiceImpl.java @@ -78,14 +78,14 @@ public class XzdSettlementInfoServiceImpl extends ServiceImpl 0; @@ -364,6 +377,27 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl bankLambdaQueryWrapper = new LambdaQueryWrapper<>(); + bankLambdaQueryWrapper.eq(XzdSupplierOpenBank::getSupplierId,vo.getId()); + List openBanks = xzdSupplierOpenBankService.list(bankLambdaQueryWrapper); + xzdSupplierOpenBankService.removeBatchByIds(openBanks); + //处理业务信息 LambdaQueryWrapper businessInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); businessInfoLambdaQueryWrapper.eq(XzdBusinessInfo::getType,"2"); @@ -686,13 +726,28 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl 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 openBanks = xzdSupplierOpenBankService.list(bankLambdaQueryWrapper); + vo.getSettlement().setOpenBanks(openBanks); + //处理业务信息 LambdaQueryWrapper businessInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); businessInfoLambdaQueryWrapper.eq(XzdBusinessInfo::getCustomerinformationId,vo.getId()).eq(XzdBusinessInfo::getType,"2"); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierOpenBankServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierOpenBankServiceImpl.java new file mode 100644 index 00000000..7e9902d9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierOpenBankServiceImpl.java @@ -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 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 queryPageList(XzdSupplierOpenBankBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的供应商信息-开户银行列表 + * + * @param bo 查询条件 + * @return 供应商信息-开户银行列表 + */ + @Override + public List queryList(XzdSupplierOpenBankBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdSupplierOpenBankBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 insertByBo(List 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +}