From 742df7279bd4319152842aeb178b676ee03cb119 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 18:52:18 +0800 Subject: [PATCH] =?UTF-8?q?10-12-=E6=89=BF=E5=8C=85=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../XzdContractDetailsController.java | 105 +++++++ .../xzd/domain/XzdContractAdvanceInfo.java | 92 ++++++ .../xzd/domain/XzdContractDetails.java | 217 ++++++++++++++ .../dromara/xzd/domain/XzdDeductionItems.java | 112 ++++++++ .../org/dromara/xzd/domain/XzdProject.java | 8 +- .../domain/bo/XzdContractAdvanceInfoBo.java | 93 ++++++ .../xzd/domain/bo/XzdContractDetailsBo.java | 240 ++++++++++++++++ .../xzd/domain/bo/XzdDeductionItemsBo.java | 112 ++++++++ .../dromara/xzd/domain/bo/XzdProjectBo.java | 28 +- .../domain/vo/XzdContractAdvanceInfoVo.java | 107 +++++++ .../xzd/domain/vo/XzdContractDetailsVo.java | 266 ++++++++++++++++++ .../xzd/domain/vo/XzdDeductionItemsVo.java | 136 +++++++++ .../dromara/xzd/domain/vo/XzdProjectVo.java | 28 +- .../mapper/XzdContractAdvanceInfoMapper.java | 15 + .../xzd/mapper/XzdContractDetailsMapper.java | 15 + .../xzd/mapper/XzdDeductionItemsMapper.java | 15 + .../IXzdContractAdvanceInfoService.java | 70 +++++ .../service/IXzdContractDetailsService.java | 70 +++++ .../service/IXzdDeductionItemsService.java | 70 +++++ .../XzdContractAdvanceInfoServiceImpl.java | 141 ++++++++++ .../impl/XzdContractDetailsServiceImpl.java | 205 ++++++++++++++ .../impl/XzdDeductionItemsServiceImpl.java | 145 ++++++++++ .../service/impl/XzdProjectServiceImpl.java | 52 +++- 23 files changed, 2326 insertions(+), 16 deletions(-) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdContractDetailsController.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractAdvanceInfo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractDetails.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdDeductionItems.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractAdvanceInfoBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDetailsBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdDeductionItemsBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractAdvanceInfoVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDetailsVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdDeductionItemsVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractAdvanceInfoMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractDetailsMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdDeductionItemsMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractAdvanceInfoService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractDetailsService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdDeductionItemsService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAdvanceInfoServiceImpl.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDetailsServiceImpl.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdDeductionItemsServiceImpl.java diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdContractDetailsController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdContractDetailsController.java new file mode 100644 index 00000000..3f3abfbb --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdContractDetailsController.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.XzdContractDetailsVo; +import org.dromara.xzd.domain.bo.XzdContractDetailsBo; +import org.dromara.xzd.service.IXzdContractDetailsService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 承包合同信息 + * + * @author Lion Li + * @date 2025-10-12 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/xzd/contractDetails") +public class XzdContractDetailsController extends BaseController { + + private final IXzdContractDetailsService xzdContractDetailsService; + + /** + * 查询承包合同信息列表 + */ + @SaCheckPermission("xzd:contractDetails:list") + @GetMapping("/list") + public TableDataInfo list(XzdContractDetailsBo bo, PageQuery pageQuery) { + return xzdContractDetailsService.queryPageList(bo, pageQuery); + } + + /** + * 导出承包合同信息列表 + */ + @SaCheckPermission("xzd:contractDetails:export") + @Log(title = "承包合同信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdContractDetailsBo bo, HttpServletResponse response) { + List list = xzdContractDetailsService.queryList(bo); + ExcelUtil.exportExcel(list, "承包合同信息", XzdContractDetailsVo.class, response); + } + + /** + * 获取承包合同信息详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("xzd:contractDetails:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdContractDetailsService.queryById(id)); + } + + /** + * 新增承包合同信息 + */ + @SaCheckPermission("xzd:contractDetails:add") + @Log(title = "承包合同信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdContractDetailsBo bo) { + return toAjax(xzdContractDetailsService.insertByBo(bo)); + } + + /** + * 修改承包合同信息 + */ + @SaCheckPermission("xzd:contractDetails:edit") + @Log(title = "承包合同信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdContractDetailsBo bo) { + return toAjax(xzdContractDetailsService.updateByBo(bo)); + } + + /** + * 删除承包合同信息 + * + * @param ids 主键串 + */ + @SaCheckPermission("xzd:contractDetails:remove") + @Log(title = "承包合同信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdContractDetailsService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractAdvanceInfo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractAdvanceInfo.java new file mode 100644 index 00000000..4d254869 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractAdvanceInfo.java @@ -0,0 +1,92 @@ +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; +import java.math.BigDecimal; + +/** + * 合同条款-预收预付款项对象 xzd_contract_advance_info + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_contract_advance_info") +public class XzdContractAdvanceInfo extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * 表名 + */ + private String tableName; + + /** + * 承包合同信息ID + */ + private Long contractDetailsId; + + /** + * 名称 + */ + private String name; + + /** + * 款项 + */ + private String funds; + + /** + * 变更款项 + */ + private String changeFunds; + + /** + * 款项属性 + */ + private String itemAttribute; + + /** + * 变更款项属性 + */ + private String changeItemAttribute; + + /** + * 合同预收款金额 + */ + private BigDecimal contractAmount; + + /** + * 变更合同预收款金额 + */ + private Long changeContractAmount; + + /** + * 预收百分比 + */ + private BigDecimal advancePercentage; + + /** + * 变更预收百分比 + */ + private Long changeAdvancePercentage; + + /** + * 备注 + */ + private String remarks; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractDetails.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractDetails.java new file mode 100644 index 00000000..4925412d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdContractDetails.java @@ -0,0 +1,217 @@ +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.util.Date; + +import java.io.Serial; + +/** + * 承包合同信息对象 xzd_contract_details + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_contract_details") +public class XzdContractDetails extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * 合同类型|模式(字典) + */ + private String contractType; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 单据日期 + */ + private Date documentDate; + + /** + * 项目 + */ + private Long project; + + /** + * 签订日期 + */ + private Date signingDate; + + /** + * 客户性质(字典) + */ + private String customerNature; + + /** + * 甲方单位 + */ + private Long partyAUnit; + + /** + * 乙方单位 + */ + private Long partyBUnit; + + /** + * 合同金额 + */ + private Long contractAmount; + + /** + * 开票单位 + */ + private Long invoicingUnit; + + /** + * 总投资额 + */ + private Long totalInvestment; + + /** + * 预算分类 + */ + private Long budgetClassification; + + /** + * 收票单位 + */ + private Long ticketReceivingUnit; + + /** + * 归档日期 + */ + private Date filingDate; + + /** + * 支付方式(字典) + */ + private String paymentMethod; + + /** + * 支付条款 + */ + private String paymentTerms; + + /** + * 工程规模 + */ + private String projectScale; + + /** + * 备注 + */ + private String remarks; + + /** + * 印章名称 + */ + private Long sealName; + + /** + * 大写合同含税合计 + */ + private String capitalizedTaxInclusiveTotal; + + /** + * 签约组织 + */ + private Long signingOrganization; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 项目大类 + */ + private String projectCategory; + + /** + * 是否审批后发起印章申请 + */ + private Long isStampApplicationAfterApproval; + + /** + * 项目责任人 + */ + private Long projectResponsiblePerson; + + /** + * 是否需备案 + */ + private Long isNeedFiling; + + /** + * 备案状态(字典) + */ + private String filingStatus; + + /** + * 备案时间 + */ + private Date filingTime; + + /** + * 是否固定单价合同 + */ + private Long isFixedUnitPriceContract; + + /** + * 是否总价包干合同 + */ + private Long isLumpSumContract; + + /** + * 是否实时刷新 + */ + private Long isRealTimeRefresh; + + /** + * 原合同金额 + */ + private Long originalContractAmount; + + /** + * 合同含税金额 + */ + private Long contractTaxInclusiveAmount; + + /** + * 累计结算金额 + */ + private Long cumulativeSettlementAmount; + + /** + * 单据ID(单据引用) + */ + private Long danjuId; + + /** + * 文件ID(多个文件逗号分隔) + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdDeductionItems.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdDeductionItems.java new file mode 100644 index 00000000..ab04cd79 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdDeductionItems.java @@ -0,0 +1,112 @@ +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.util.Date; + +import java.io.Serial; + +/** + * 合同条款-扣款与奖励项对象 xzd_deduction_items + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_deduction_items") +public class XzdDeductionItems extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * 表名 + */ + private String tableName; + + /** + * 承包合同信息ID + */ + private Long contractDetailsId; + + /** + * 扣款项目名称 + */ + private String deductionProjectName; + + /** + * 款项 + */ + private String funds; + + /** + * 变更款项 + */ + private String changeFunds; + + /** + * 扣款类型 + */ + private String deductionType; + + /** + * 变更扣款类型 + */ + private String changeDeductionType; + + /** + * 公式 + */ + private String formula; + + /** + * 变更公式 + */ + private String changeFormula; + + /** + * 扣款属性 + */ + private String deductionAttribute; + + /** + * 变更扣款属性 + */ + private String changeDeductionAttribute; + + /** + * 归还时间 + */ + private Date returnTime; + + /** + * 变更归还时间 + */ + private Date changeReturnTime; + + /** + * 申请扣除(0:否,1:是) + */ + private Long applyDeduction; + + /** + * 变更申请扣除(0:否,1:是) + */ + private Long changeApplyDeduction; + + /** + * 备注 + */ + private String remarks; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdProject.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdProject.java index 54baf4a0..0c9febfa 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdProject.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdProject.java @@ -79,7 +79,7 @@ public class XzdProject extends BaseEntity { /** * 管理组织 */ - private String managementOrganization; + private Long managementOrganization; /** * 项目金额 @@ -119,7 +119,7 @@ public class XzdProject extends BaseEntity { /** * 默认财务组织 */ - private String defaultFinancialOrganization; + private Long defaultFinancialOrganization; /** * 承包方式 @@ -129,7 +129,7 @@ public class XzdProject extends BaseEntity { /** * 涉及财务组织 */ - private String involvedFinancialOrganization; + private Long involvedFinancialOrganization; /** * 经营模式 @@ -179,7 +179,7 @@ public class XzdProject extends BaseEntity { /** * 共享组织 */ - private String sharingOrganization; + private Long sharingOrganization; /** * 目标中标金额 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractAdvanceInfoBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractAdvanceInfoBo.java new file mode 100644 index 00000000..edcf13e0 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractAdvanceInfoBo.java @@ -0,0 +1,93 @@ +package org.dromara.xzd.domain.bo; + +import org.dromara.xzd.domain.XzdContractAdvanceInfo; +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; + +/** + * 合同条款-预收预付款项业务对象 xzd_contract_advance_info + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdContractAdvanceInfo.class, reverseConvertGenerate = false) +public class XzdContractAdvanceInfoBo extends BaseEntity { + + /** + * + */ + private Long id; + + /** + * 表名 + */ + @NotBlank(message = "表名不能为空", groups = { AddGroup.class, EditGroup.class }) + private String tableName; + + /** + * 承包合同信息ID + */ + @NotNull(message = "承包合同信息ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long contractDetailsId; + + /** + * 名称 + */ + private String name; + + /** + * 款项 + */ + private String funds; + + /** + * 变更款项 + */ + private String changeFunds; + + /** + * 款项属性 + */ + private String itemAttribute; + + /** + * 变更款项属性 + */ + private String changeItemAttribute; + + /** + * 合同预收款金额 + */ + private BigDecimal contractAmount; + + /** + * 变更合同预收款金额 + */ + private Long changeContractAmount; + + /** + * 预收百分比 + */ + private Long advancePercentage; + + /** + * 变更预收百分比 + */ + private BigDecimal changeAdvancePercentage; + + /** + * 备注 + */ + private String remarks; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDetailsBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDetailsBo.java new file mode 100644 index 00000000..2222712a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdContractDetailsBo.java @@ -0,0 +1,240 @@ +package org.dromara.xzd.domain.bo; + +import org.dromara.xzd.domain.XzdContractAdvanceInfo; +import org.dromara.xzd.domain.XzdContractDetails; +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 org.dromara.xzd.domain.XzdDeductionItems; + +import java.util.Date; +import java.util.List; + +/** + * 承包合同信息业务对象 xzd_contract_details + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdContractDetails.class, reverseConvertGenerate = false) +public class XzdContractDetailsBo extends BaseEntity { + + /** + * + */ + private Long id; + + /** + * 合同类型|模式(字典) + */ + @NotBlank(message = "合同类型|模式(字典)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractType; + + /** + * 合同编码 + */ + @NotBlank(message = "合同编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractCode; + + /** + * 合同名称 + */ + @NotBlank(message = "合同名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractName; + + /** + * 单据日期 + */ + @NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date documentDate; + + /** + * 项目 + */ + @NotNull(message = "项目不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long project; + + /** + * 签订日期 + */ + private Date signingDate; + + /** + * 客户性质(字典) + */ + private String customerNature; + + /** + * 甲方单位 + */ + @NotNull(message = "甲方单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long partyAUnit; + + /** + * 乙方单位 + */ + @NotNull(message = "乙方单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long partyBUnit; + + /** + * 合同金额 + */ + private Long contractAmount; + + /** + * 开票单位 + */ + @NotNull(message = "开票单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long invoicingUnit; + + /** + * 总投资额 + */ + @NotNull(message = "总投资额不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long totalInvestment; + + /** + * 预算分类 + */ + private Long budgetClassification; + + /** + * 收票单位 + */ + @NotNull(message = "收票单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long ticketReceivingUnit; + + /** + * 归档日期 + */ + private Date filingDate; + + /** + * 支付方式(字典) + */ + private String paymentMethod; + + /** + * 支付条款 + */ + private String paymentTerms; + + /** + * 工程规模 + */ + private String projectScale; + + /** + * 备注 + */ + private String remarks; + + /** + * 印章名称 + */ + @NotNull(message = "印章名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long sealName; + + /** + * 大写合同含税合计 + */ + private String capitalizedTaxInclusiveTotal; + + /** + * 签约组织 + */ + @NotNull(message = "签约组织不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long signingOrganization; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 项目大类 + */ + private String projectCategory; + + /** + * 是否审批后发起印章申请 + */ + private Long isStampApplicationAfterApproval; + + /** + * 项目责任人 + */ + private Long projectResponsiblePerson; + + /** + * 是否需备案 + */ + private Long isNeedFiling; + + /** + * 备案状态(字典) + */ + private String filingStatus; + + /** + * 备案时间 + */ + private Date filingTime; + + /** + * 是否固定单价合同 + */ + private Long isFixedUnitPriceContract; + + /** + * 是否总价包干合同 + */ + private Long isLumpSumContract; + + /** + * 是否实时刷新 + */ + private Long isRealTimeRefresh; + + /** + * 原合同金额 + */ + private Long originalContractAmount; + + /** + * 合同含税金额 + */ + private Long contractTaxInclusiveAmount; + + /** + * 累计结算金额 + */ + private Long cumulativeSettlementAmount; + + /** + * 单据ID(单据引用) + */ + private Long danjuId; + + /** + * 文件ID(多个文件逗号分隔) + */ + private String fileId; + + /** + * 预收款项 + */ + private List yskx; + + /** + * 扣款与奖励项 + */ + private List kkyjlx; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdDeductionItemsBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdDeductionItemsBo.java new file mode 100644 index 00000000..e5453ba8 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdDeductionItemsBo.java @@ -0,0 +1,112 @@ +package org.dromara.xzd.domain.bo; + +import org.dromara.xzd.domain.XzdDeductionItems; +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.util.Date; + +/** + * 合同条款-扣款与奖励项业务对象 xzd_deduction_items + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdDeductionItems.class, reverseConvertGenerate = false) +public class XzdDeductionItemsBo extends BaseEntity { + + /** + * + */ + private Long id; + + /** + * 表名 + */ + @NotBlank(message = "表名不能为空", groups = { AddGroup.class, EditGroup.class }) + private String tableName; + + /** + * 承包合同信息ID + */ + @NotNull(message = "承包合同信息ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long contractDetailsId; + + /** + * 扣款项目名称 + */ + private String deductionProjectName; + + /** + * 款项 + */ + private String funds; + + /** + * 变更款项 + */ + private String changeFunds; + + /** + * 扣款类型 + */ + private String deductionType; + + /** + * 变更扣款类型 + */ + private String changeDeductionType; + + /** + * 公式 + */ + private String formula; + + /** + * 变更公式 + */ + private String changeFormula; + + /** + * 扣款属性 + */ + private String deductionAttribute; + + /** + * 变更扣款属性 + */ + private String changeDeductionAttribute; + + /** + * 归还时间 + */ + private Date returnTime; + + /** + * 变更归还时间 + */ + private Date changeReturnTime; + + /** + * 申请扣除(0:否,1:是) + */ + private Long applyDeduction; + + /** + * 变更申请扣除(0:否,1:是) + */ + private Long changeApplyDeduction; + + /** + * 备注 + */ + private String remarks; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectBo.java index 2c2193e3..04331494 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdProjectBo.java @@ -92,7 +92,12 @@ public class XzdProjectBo extends BaseEntity { /** * 管理组织 */ - private String managementOrganization; + private Long managementOrganization; + + /** + * 管理组织名 + */ + private String managementOrganizationName; /** * 项目金额 @@ -132,7 +137,12 @@ public class XzdProjectBo extends BaseEntity { /** * 默认财务组织 */ - private String defaultFinancialOrganization; + private Long defaultFinancialOrganization; + + /** + * 默认财务组织名 + */ + private String defaultFinancialOrganizationName; /** * 承包方式 @@ -142,7 +152,12 @@ public class XzdProjectBo extends BaseEntity { /** * 涉及财务组织 */ - private String involvedFinancialOrganization; + private Long involvedFinancialOrganization; + + /** + * 涉及财务组织名 + */ + private String involvedFinancialOrganizationName; /** * 经营模式 @@ -194,7 +209,12 @@ public class XzdProjectBo extends BaseEntity { /** * 共享组织 */ - private String sharingOrganization; + private Long sharingOrganization; + + /** + * 共享组织名 + */ + private String sharingOrganizationName; /** * 目标中标金额 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractAdvanceInfoVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractAdvanceInfoVo.java new file mode 100644 index 00000000..d5c9c910 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractAdvanceInfoVo.java @@ -0,0 +1,107 @@ +package org.dromara.xzd.domain.vo; + +import org.dromara.xzd.domain.XzdContractAdvanceInfo; +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; +import java.math.BigDecimal; + + +/** + * 合同条款-预收预付款项视图对象 xzd_contract_advance_info + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdContractAdvanceInfo.class) +public class XzdContractAdvanceInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long id; + + /** + * 表名 + */ + @ExcelProperty(value = "表名") + private String tableName; + + /** + * 承包合同信息ID + */ + @ExcelProperty(value = "承包合同信息ID") + private Long contractDetailsId; + + /** + * 名称 + */ + @ExcelProperty(value = "名称") + private String name; + + /** + * 款项 + */ + @ExcelProperty(value = "款项") + private String funds; + + /** + * 变更款项 + */ + @ExcelProperty(value = "变更款项") + private String changeFunds; + + /** + * 款项属性 + */ + @ExcelProperty(value = "款项属性") + private String itemAttribute; + + /** + * 变更款项属性 + */ + @ExcelProperty(value = "变更款项属性") + private String changeItemAttribute; + + /** + * 合同预收款金额 + */ + @ExcelProperty(value = "合同预收款金额") + private BigDecimal contractAmount; + + /** + * 变更合同预收款金额 + */ + @ExcelProperty(value = "变更合同预收款金额") + private Long changeContractAmount; + + /** + * 预收百分比 + */ + @ExcelProperty(value = "预收百分比") + private Long advancePercentage; + + /** + * 变更预收百分比 + */ + @ExcelProperty(value = "变更预收百分比") + private BigDecimal changeAdvancePercentage; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remarks; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDetailsVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDetailsVo.java new file mode 100644 index 00000000..0c86ec64 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdContractDetailsVo.java @@ -0,0 +1,266 @@ +package org.dromara.xzd.domain.vo; + +import java.util.Date; + +import org.dromara.xzd.domain.XzdContractDetails; +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_details + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdContractDetails.class) +public class XzdContractDetailsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long id; + + /** + * 合同类型|模式(字典) + */ + @ExcelProperty(value = "合同类型|模式", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "字=典") + private String contractType; + + /** + * 合同编码 + */ + @ExcelProperty(value = "合同编码") + private String contractCode; + + /** + * 合同名称 + */ + @ExcelProperty(value = "合同名称") + private String contractName; + + /** + * 单据日期 + */ + @ExcelProperty(value = "单据日期") + private Date documentDate; + + /** + * 项目 + */ + @ExcelProperty(value = "项目") + private Long project; + + /** + * 签订日期 + */ + @ExcelProperty(value = "签订日期") + private Date signingDate; + + /** + * 客户性质(字典) + */ + @ExcelProperty(value = "客户性质", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "字=典") + private String customerNature; + + /** + * 甲方单位 + */ + @ExcelProperty(value = "甲方单位") + private Long partyAUnit; + + /** + * 乙方单位 + */ + @ExcelProperty(value = "乙方单位") + private Long partyBUnit; + + /** + * 合同金额 + */ + @ExcelProperty(value = "合同金额") + private Long contractAmount; + + /** + * 开票单位 + */ + @ExcelProperty(value = "开票单位") + private Long invoicingUnit; + + /** + * 总投资额 + */ + @ExcelProperty(value = "总投资额") + private Long totalInvestment; + + /** + * 预算分类 + */ + @ExcelProperty(value = "预算分类") + private Long budgetClassification; + + /** + * 收票单位 + */ + @ExcelProperty(value = "收票单位") + private Long ticketReceivingUnit; + + /** + * 归档日期 + */ + @ExcelProperty(value = "归档日期") + private Date filingDate; + + /** + * 支付方式(字典) + */ + @ExcelProperty(value = "支付方式", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "字=典") + private String paymentMethod; + + /** + * 支付条款 + */ + @ExcelProperty(value = "支付条款") + private String paymentTerms; + + /** + * 工程规模 + */ + @ExcelProperty(value = "工程规模") + private String projectScale; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remarks; + + /** + * 印章名称 + */ + @ExcelProperty(value = "印章名称") + private Long sealName; + + /** + * 大写合同含税合计 + */ + @ExcelProperty(value = "大写合同含税合计") + private String capitalizedTaxInclusiveTotal; + + /** + * 签约组织 + */ + @ExcelProperty(value = "签约组织") + private Long signingOrganization; + + /** + * 项目类型 + */ + @ExcelProperty(value = "项目类型") + private String projectType; + + /** + * 项目大类 + */ + @ExcelProperty(value = "项目大类") + private String projectCategory; + + /** + * 是否审批后发起印章申请 + */ + @ExcelProperty(value = "是否审批后发起印章申请") + private Long isStampApplicationAfterApproval; + + /** + * 项目责任人 + */ + @ExcelProperty(value = "项目责任人") + private Long projectResponsiblePerson; + + /** + * 是否需备案 + */ + @ExcelProperty(value = "是否需备案") + private Long isNeedFiling; + + /** + * 备案状态(字典) + */ + @ExcelProperty(value = "备案状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "字=典") + private String filingStatus; + + /** + * 备案时间 + */ + @ExcelProperty(value = "备案时间") + private Date filingTime; + + /** + * 是否固定单价合同 + */ + @ExcelProperty(value = "是否固定单价合同") + private Long isFixedUnitPriceContract; + + /** + * 是否总价包干合同 + */ + @ExcelProperty(value = "是否总价包干合同") + private Long isLumpSumContract; + + /** + * 是否实时刷新 + */ + @ExcelProperty(value = "是否实时刷新") + private Long isRealTimeRefresh; + + /** + * 原合同金额 + */ + @ExcelProperty(value = "原合同金额") + private Long originalContractAmount; + + /** + * 合同含税金额 + */ + @ExcelProperty(value = "合同含税金额") + private Long contractTaxInclusiveAmount; + + /** + * 累计结算金额 + */ + @ExcelProperty(value = "累计结算金额") + private Long cumulativeSettlementAmount; + + /** + * 单据ID(单据引用) + */ + @ExcelProperty(value = "单据ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "单=据引用") + private Long danjuId; + + /** + * 文件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/XzdDeductionItemsVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdDeductionItemsVo.java new file mode 100644 index 00000000..d92084ba --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdDeductionItemsVo.java @@ -0,0 +1,136 @@ +package org.dromara.xzd.domain.vo; + +import java.util.Date; + +import org.dromara.xzd.domain.XzdDeductionItems; +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_deduction_items + * + * @author Lion Li + * @date 2025-10-12 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdDeductionItems.class) +public class XzdDeductionItemsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long id; + + /** + * 表名 + */ + @ExcelProperty(value = "表名") + private String tableName; + + /** + * 承包合同信息ID + */ + @ExcelProperty(value = "承包合同信息ID") + private Long contractDetailsId; + + /** + * 扣款项目名称 + */ + @ExcelProperty(value = "扣款项目名称") + private String deductionProjectName; + + /** + * 款项 + */ + @ExcelProperty(value = "款项") + private String funds; + + /** + * 变更款项 + */ + @ExcelProperty(value = "变更款项") + private String changeFunds; + + /** + * 扣款类型 + */ + @ExcelProperty(value = "扣款类型") + private String deductionType; + + /** + * 变更扣款类型 + */ + @ExcelProperty(value = "变更扣款类型") + private String changeDeductionType; + + /** + * 公式 + */ + @ExcelProperty(value = "公式") + private String formula; + + /** + * 变更公式 + */ + @ExcelProperty(value = "变更公式") + private String changeFormula; + + /** + * 扣款属性 + */ + @ExcelProperty(value = "扣款属性") + private String deductionAttribute; + + /** + * 变更扣款属性 + */ + @ExcelProperty(value = "变更扣款属性") + private String changeDeductionAttribute; + + /** + * 归还时间 + */ + @ExcelProperty(value = "归还时间") + private Date returnTime; + + /** + * 变更归还时间 + */ + @ExcelProperty(value = "变更归还时间") + private Date changeReturnTime; + + /** + * 申请扣除(0:否,1:是) + */ + @ExcelProperty(value = "申请扣除", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=:否,1:是") + private Long applyDeduction; + + /** + * 变更申请扣除(0:否,1:是) + */ + @ExcelProperty(value = "变更申请扣除", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=:否,1:是") + private Long changeApplyDeduction; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remarks; + + +} 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 966097e5..c4a45a5e 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 @@ -102,7 +102,12 @@ public class XzdProjectVo implements Serializable { * 管理组织 */ @ExcelProperty(value = "管理组织") - private String managementOrganization; + private Long managementOrganization; + + /** + * 管理组织名 + */ + private String managementOrganizationName; /** * 项目金额 @@ -159,7 +164,12 @@ public class XzdProjectVo implements Serializable { * 默认财务组织 */ @ExcelProperty(value = "默认财务组织") - private String defaultFinancialOrganization; + private Long defaultFinancialOrganization; + + /** + * 默认财务组织名 + */ + private String defaultFinancialOrganizationName; /** * 承包方式 @@ -171,7 +181,12 @@ public class XzdProjectVo implements Serializable { * 涉及财务组织 */ @ExcelProperty(value = "涉及财务组织") - private String involvedFinancialOrganization; + private Long involvedFinancialOrganization; + + /** + * 涉及财务组织名 + */ + private String involvedFinancialOrganizationName; /** * 经营模式 @@ -236,7 +251,12 @@ public class XzdProjectVo implements Serializable { * 共享组织 */ @ExcelProperty(value = "共享组织") - private String sharingOrganization; + private Long sharingOrganization; + + /** + * 共享组织名 + */ + private String sharingOrganizationName; /** * 目标中标金额 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractAdvanceInfoMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractAdvanceInfoMapper.java new file mode 100644 index 00000000..ec752178 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractAdvanceInfoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.mapper; + +import org.dromara.xzd.domain.XzdContractAdvanceInfo; +import org.dromara.xzd.domain.vo.XzdContractAdvanceInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 合同条款-预收预付款项Mapper接口 + * + * @author Lion Li + * @date 2025-10-12 + */ +public interface XzdContractAdvanceInfoMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractDetailsMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractDetailsMapper.java new file mode 100644 index 00000000..fe73a8f7 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdContractDetailsMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.mapper; + +import org.dromara.xzd.domain.XzdContractDetails; +import org.dromara.xzd.domain.vo.XzdContractDetailsVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 承包合同信息Mapper接口 + * + * @author Lion Li + * @date 2025-10-12 + */ +public interface XzdContractDetailsMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdDeductionItemsMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdDeductionItemsMapper.java new file mode 100644 index 00000000..501a8e22 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/mapper/XzdDeductionItemsMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.mapper; + +import org.dromara.xzd.domain.XzdDeductionItems; +import org.dromara.xzd.domain.vo.XzdDeductionItemsVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 合同条款-扣款与奖励项Mapper接口 + * + * @author Lion Li + * @date 2025-10-12 + */ +public interface XzdDeductionItemsMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractAdvanceInfoService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractAdvanceInfoService.java new file mode 100644 index 00000000..9fdda4aa --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractAdvanceInfoService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.service; + +import org.dromara.xzd.domain.vo.XzdContractAdvanceInfoVo; +import org.dromara.xzd.domain.bo.XzdContractAdvanceInfoBo; +import org.dromara.xzd.domain.XzdContractAdvanceInfo; +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 IXzdContractAdvanceInfoService extends IService{ + + /** + * 查询合同条款-预收预付款项 + * + * @param id 主键 + * @return 合同条款-预收预付款项 + */ + XzdContractAdvanceInfoVo queryById(Long id); + + /** + * 分页查询合同条款-预收预付款项列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 合同条款-预收预付款项分页列表 + */ + TableDataInfo queryPageList(XzdContractAdvanceInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的合同条款-预收预付款项列表 + * + * @param bo 查询条件 + * @return 合同条款-预收预付款项列表 + */ + List queryList(XzdContractAdvanceInfoBo bo); + + /** + * 新增合同条款-预收预付款项 + * + * @param bo 合同条款-预收预付款项 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdContractAdvanceInfoBo bo); + + /** + * 修改合同条款-预收预付款项 + * + * @param bo 合同条款-预收预付款项 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdContractAdvanceInfoBo 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/IXzdContractDetailsService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractDetailsService.java new file mode 100644 index 00000000..d7fdd3ce --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdContractDetailsService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.service; + +import org.dromara.xzd.domain.vo.XzdContractDetailsVo; +import org.dromara.xzd.domain.bo.XzdContractDetailsBo; +import org.dromara.xzd.domain.XzdContractDetails; +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 IXzdContractDetailsService extends IService{ + + /** + * 查询承包合同信息 + * + * @param id 主键 + * @return 承包合同信息 + */ + XzdContractDetailsVo queryById(Long id); + + /** + * 分页查询承包合同信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 承包合同信息分页列表 + */ + TableDataInfo queryPageList(XzdContractDetailsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的承包合同信息列表 + * + * @param bo 查询条件 + * @return 承包合同信息列表 + */ + List queryList(XzdContractDetailsBo bo); + + /** + * 新增承包合同信息 + * + * @param bo 承包合同信息 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdContractDetailsBo bo); + + /** + * 修改承包合同信息 + * + * @param bo 承包合同信息 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdContractDetailsBo 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/IXzdDeductionItemsService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdDeductionItemsService.java new file mode 100644 index 00000000..aebc513e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdDeductionItemsService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.service; + +import org.dromara.xzd.domain.vo.XzdDeductionItemsVo; +import org.dromara.xzd.domain.bo.XzdDeductionItemsBo; +import org.dromara.xzd.domain.XzdDeductionItems; +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 IXzdDeductionItemsService extends IService{ + + /** + * 查询合同条款-扣款与奖励项 + * + * @param id 主键 + * @return 合同条款-扣款与奖励项 + */ + XzdDeductionItemsVo queryById(Long id); + + /** + * 分页查询合同条款-扣款与奖励项列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 合同条款-扣款与奖励项分页列表 + */ + TableDataInfo queryPageList(XzdDeductionItemsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的合同条款-扣款与奖励项列表 + * + * @param bo 查询条件 + * @return 合同条款-扣款与奖励项列表 + */ + List queryList(XzdDeductionItemsBo bo); + + /** + * 新增合同条款-扣款与奖励项 + * + * @param bo 合同条款-扣款与奖励项 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdDeductionItemsBo bo); + + /** + * 修改合同条款-扣款与奖励项 + * + * @param bo 合同条款-扣款与奖励项 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdDeductionItemsBo 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/XzdContractAdvanceInfoServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAdvanceInfoServiceImpl.java new file mode 100644 index 00000000..17f1fecf --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractAdvanceInfoServiceImpl.java @@ -0,0 +1,141 @@ +package org.dromara.xzd.service.impl; + +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.XzdContractAdvanceInfoBo; +import org.dromara.xzd.domain.vo.XzdContractAdvanceInfoVo; +import org.dromara.xzd.domain.XzdContractAdvanceInfo; +import org.dromara.xzd.mapper.XzdContractAdvanceInfoMapper; +import org.dromara.xzd.service.IXzdContractAdvanceInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 合同条款-预收预付款项Service业务层处理 + * + * @author Lion Li + * @date 2025-10-12 + */ +@RequiredArgsConstructor +@Service +public class XzdContractAdvanceInfoServiceImpl extends ServiceImpl implements IXzdContractAdvanceInfoService { + + private final XzdContractAdvanceInfoMapper baseMapper; + + /** + * 查询合同条款-预收预付款项 + * + * @param id 主键 + * @return 合同条款-预收预付款项 + */ + @Override + public XzdContractAdvanceInfoVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询合同条款-预收预付款项列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 合同条款-预收预付款项分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdContractAdvanceInfoBo 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(XzdContractAdvanceInfoBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdContractAdvanceInfoBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdContractAdvanceInfo::getId); + lqw.like(StringUtils.isNotBlank(bo.getTableName()), XzdContractAdvanceInfo::getTableName, bo.getTableName()); + lqw.eq(bo.getContractDetailsId() != null, XzdContractAdvanceInfo::getContractDetailsId, bo.getContractDetailsId()); + lqw.like(StringUtils.isNotBlank(bo.getName()), XzdContractAdvanceInfo::getName, bo.getName()); + lqw.eq(StringUtils.isNotBlank(bo.getFunds()), XzdContractAdvanceInfo::getFunds, bo.getFunds()); + lqw.eq(StringUtils.isNotBlank(bo.getChangeFunds()), XzdContractAdvanceInfo::getChangeFunds, bo.getChangeFunds()); + lqw.eq(StringUtils.isNotBlank(bo.getItemAttribute()), XzdContractAdvanceInfo::getItemAttribute, bo.getItemAttribute()); + lqw.eq(StringUtils.isNotBlank(bo.getChangeItemAttribute()), XzdContractAdvanceInfo::getChangeItemAttribute, bo.getChangeItemAttribute()); + lqw.eq(bo.getContractAmount() != null, XzdContractAdvanceInfo::getContractAmount, bo.getContractAmount()); + lqw.eq(bo.getChangeContractAmount() != null, XzdContractAdvanceInfo::getChangeContractAmount, bo.getChangeContractAmount()); + lqw.eq(bo.getAdvancePercentage() != null, XzdContractAdvanceInfo::getAdvancePercentage, bo.getAdvancePercentage()); + lqw.eq(bo.getChangeAdvancePercentage() != null, XzdContractAdvanceInfo::getChangeAdvancePercentage, bo.getChangeAdvancePercentage()); + lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdContractAdvanceInfo::getRemarks, bo.getRemarks()); + return lqw; + } + + /** + * 新增合同条款-预收预付款项 + * + * @param bo 合同条款-预收预付款项 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdContractAdvanceInfoBo bo) { + XzdContractAdvanceInfo add = MapstructUtils.convert(bo, XzdContractAdvanceInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改合同条款-预收预付款项 + * + * @param bo 合同条款-预收预付款项 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdContractAdvanceInfoBo bo) { + XzdContractAdvanceInfo update = MapstructUtils.convert(bo, XzdContractAdvanceInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdContractAdvanceInfo entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除合同条款-预收预付款项信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDetailsServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDetailsServiceImpl.java new file mode 100644 index 00000000..cd5f27d7 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdContractDetailsServiceImpl.java @@ -0,0 +1,205 @@ +package org.dromara.xzd.service.impl; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import io.github.linpeilie.annotations.AutoMapper; +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.xzd.domain.XzdContractAdvanceInfo; +import org.dromara.xzd.domain.XzdDeductionItems; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.dromara.xzd.domain.bo.XzdContractDetailsBo; +import org.dromara.xzd.domain.vo.XzdContractDetailsVo; +import org.dromara.xzd.domain.XzdContractDetails; +import org.dromara.xzd.mapper.XzdContractDetailsMapper; +import org.dromara.xzd.service.IXzdContractDetailsService; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 承包合同信息Service业务层处理 + * + * @author Lion Li + * @date 2025-10-12 + */ +@RequiredArgsConstructor +@Service +public class XzdContractDetailsServiceImpl extends ServiceImpl implements IXzdContractDetailsService { + + private final XzdContractDetailsMapper baseMapper; + @Autowired + private XzdContractAdvanceInfoServiceImpl xzdContractAdvanceInfoService; + @Autowired + private XzdDeductionItemsServiceImpl xzdDeductionItemsService; + + /** + * 查询承包合同信息 + * + * @param id 主键 + * @return 承包合同信息 + */ + @Override + public XzdContractDetailsVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询承包合同信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 承包合同信息分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdContractDetailsBo 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(XzdContractDetailsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdContractDetailsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdContractDetails::getId); + lqw.eq(StringUtils.isNotBlank(bo.getContractType()), XzdContractDetails::getContractType, bo.getContractType()); + lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), XzdContractDetails::getContractCode, bo.getContractCode()); + lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdContractDetails::getContractName, bo.getContractName()); + lqw.eq(bo.getDocumentDate() != null, XzdContractDetails::getDocumentDate, bo.getDocumentDate()); + lqw.eq(bo.getProject() != null, XzdContractDetails::getProject, bo.getProject()); + lqw.eq(bo.getSigningDate() != null, XzdContractDetails::getSigningDate, bo.getSigningDate()); + lqw.eq(StringUtils.isNotBlank(bo.getCustomerNature()), XzdContractDetails::getCustomerNature, bo.getCustomerNature()); + lqw.eq(bo.getPartyAUnit() != null, XzdContractDetails::getPartyAUnit, bo.getPartyAUnit()); + lqw.eq(bo.getPartyBUnit() != null, XzdContractDetails::getPartyBUnit, bo.getPartyBUnit()); + lqw.eq(bo.getContractAmount() != null, XzdContractDetails::getContractAmount, bo.getContractAmount()); + lqw.eq(bo.getInvoicingUnit() != null, XzdContractDetails::getInvoicingUnit, bo.getInvoicingUnit()); + lqw.eq(bo.getTotalInvestment() != null, XzdContractDetails::getTotalInvestment, bo.getTotalInvestment()); + lqw.eq(bo.getBudgetClassification() != null, XzdContractDetails::getBudgetClassification, bo.getBudgetClassification()); + lqw.eq(bo.getTicketReceivingUnit() != null, XzdContractDetails::getTicketReceivingUnit, bo.getTicketReceivingUnit()); + lqw.eq(bo.getFilingDate() != null, XzdContractDetails::getFilingDate, bo.getFilingDate()); + lqw.eq(StringUtils.isNotBlank(bo.getPaymentMethod()), XzdContractDetails::getPaymentMethod, bo.getPaymentMethod()); + lqw.eq(StringUtils.isNotBlank(bo.getPaymentTerms()), XzdContractDetails::getPaymentTerms, bo.getPaymentTerms()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectScale()), XzdContractDetails::getProjectScale, bo.getProjectScale()); + lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdContractDetails::getRemarks, bo.getRemarks()); + lqw.like(bo.getSealName() != null, XzdContractDetails::getSealName, bo.getSealName()); + lqw.eq(StringUtils.isNotBlank(bo.getCapitalizedTaxInclusiveTotal()), XzdContractDetails::getCapitalizedTaxInclusiveTotal, bo.getCapitalizedTaxInclusiveTotal()); + lqw.eq(bo.getSigningOrganization() != null, XzdContractDetails::getSigningOrganization, bo.getSigningOrganization()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdContractDetails::getProjectType, bo.getProjectType()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdContractDetails::getProjectCategory, bo.getProjectCategory()); + lqw.eq(bo.getIsStampApplicationAfterApproval() != null, XzdContractDetails::getIsStampApplicationAfterApproval, bo.getIsStampApplicationAfterApproval()); + lqw.eq(bo.getProjectResponsiblePerson() != null, XzdContractDetails::getProjectResponsiblePerson, bo.getProjectResponsiblePerson()); + lqw.eq(bo.getIsNeedFiling() != null, XzdContractDetails::getIsNeedFiling, bo.getIsNeedFiling()); + lqw.eq(StringUtils.isNotBlank(bo.getFilingStatus()), XzdContractDetails::getFilingStatus, bo.getFilingStatus()); + lqw.eq(bo.getFilingTime() != null, XzdContractDetails::getFilingTime, bo.getFilingTime()); + lqw.eq(bo.getIsFixedUnitPriceContract() != null, XzdContractDetails::getIsFixedUnitPriceContract, bo.getIsFixedUnitPriceContract()); + lqw.eq(bo.getIsLumpSumContract() != null, XzdContractDetails::getIsLumpSumContract, bo.getIsLumpSumContract()); + lqw.eq(bo.getIsRealTimeRefresh() != null, XzdContractDetails::getIsRealTimeRefresh, bo.getIsRealTimeRefresh()); + lqw.eq(bo.getOriginalContractAmount() != null, XzdContractDetails::getOriginalContractAmount, bo.getOriginalContractAmount()); + lqw.eq(bo.getContractTaxInclusiveAmount() != null, XzdContractDetails::getContractTaxInclusiveAmount, bo.getContractTaxInclusiveAmount()); + lqw.eq(bo.getCumulativeSettlementAmount() != null, XzdContractDetails::getCumulativeSettlementAmount, bo.getCumulativeSettlementAmount()); + lqw.eq(bo.getDanjuId() != null, XzdContractDetails::getDanjuId, bo.getDanjuId()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdContractDetails::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增承包合同信息 + * + * @param bo 承包合同信息 + * @return 是否新增成功 + */ + @Transactional + @Override + public Boolean insertByBo(XzdContractDetailsBo bo) { + XzdContractDetails add = MapstructUtils.convert(bo, XzdContractDetails.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (!flag) { + return false; + } + + //合同文本-预收款项 + String tableName = null; + Class boClass = bo.getClass(); + AutoMapper autoMapper = boClass.getAnnotation(AutoMapper.class); + if (autoMapper != null) { + Class targetClass = autoMapper.target(); + TableName tableNameAnnotation = targetClass.getAnnotation(TableName.class); + if (tableNameAnnotation != null) { + tableName = tableNameAnnotation.value(); + } + } + for (XzdContractAdvanceInfo yskx : bo.getYskx()) { + yskx.setTableName(tableName); + yskx.setContractDetailsId(add.getId()); + } + xzdContractAdvanceInfoService.saveBatch(bo.getYskx()); + + //合同条款-扣款与奖励项 + for (XzdDeductionItems kkyjlx : bo.getKkyjlx()) { + kkyjlx.setTableName(tableName); + kkyjlx.setContractDetailsId(add.getId()); + } + xzdDeductionItemsService.saveBatch(bo.getKkyjlx()); + + + + return true; + } + + /** + * 修改承包合同信息 + * + * @param bo 承包合同信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdContractDetailsBo bo) { + XzdContractDetails update = MapstructUtils.convert(bo, XzdContractDetails.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdContractDetails entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除承包合同信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdDeductionItemsServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdDeductionItemsServiceImpl.java new file mode 100644 index 00000000..25e07895 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdDeductionItemsServiceImpl.java @@ -0,0 +1,145 @@ +package org.dromara.xzd.service.impl; + +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.XzdDeductionItemsBo; +import org.dromara.xzd.domain.vo.XzdDeductionItemsVo; +import org.dromara.xzd.domain.XzdDeductionItems; +import org.dromara.xzd.mapper.XzdDeductionItemsMapper; +import org.dromara.xzd.service.IXzdDeductionItemsService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 合同条款-扣款与奖励项Service业务层处理 + * + * @author Lion Li + * @date 2025-10-12 + */ +@RequiredArgsConstructor +@Service +public class XzdDeductionItemsServiceImpl extends ServiceImpl implements IXzdDeductionItemsService { + + private final XzdDeductionItemsMapper baseMapper; + + /** + * 查询合同条款-扣款与奖励项 + * + * @param id 主键 + * @return 合同条款-扣款与奖励项 + */ + @Override + public XzdDeductionItemsVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询合同条款-扣款与奖励项列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 合同条款-扣款与奖励项分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdDeductionItemsBo 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(XzdDeductionItemsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdDeductionItemsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdDeductionItems::getId); + lqw.like(StringUtils.isNotBlank(bo.getTableName()), XzdDeductionItems::getTableName, bo.getTableName()); + lqw.eq(bo.getContractDetailsId() != null, XzdDeductionItems::getContractDetailsId, bo.getContractDetailsId()); + lqw.like(StringUtils.isNotBlank(bo.getDeductionProjectName()), XzdDeductionItems::getDeductionProjectName, bo.getDeductionProjectName()); + lqw.eq(StringUtils.isNotBlank(bo.getFunds()), XzdDeductionItems::getFunds, bo.getFunds()); + lqw.eq(StringUtils.isNotBlank(bo.getChangeFunds()), XzdDeductionItems::getChangeFunds, bo.getChangeFunds()); + lqw.eq(StringUtils.isNotBlank(bo.getDeductionType()), XzdDeductionItems::getDeductionType, bo.getDeductionType()); + lqw.eq(StringUtils.isNotBlank(bo.getChangeDeductionType()), XzdDeductionItems::getChangeDeductionType, bo.getChangeDeductionType()); + lqw.eq(StringUtils.isNotBlank(bo.getFormula()), XzdDeductionItems::getFormula, bo.getFormula()); + lqw.eq(StringUtils.isNotBlank(bo.getChangeFormula()), XzdDeductionItems::getChangeFormula, bo.getChangeFormula()); + lqw.eq(StringUtils.isNotBlank(bo.getDeductionAttribute()), XzdDeductionItems::getDeductionAttribute, bo.getDeductionAttribute()); + lqw.eq(StringUtils.isNotBlank(bo.getChangeDeductionAttribute()), XzdDeductionItems::getChangeDeductionAttribute, bo.getChangeDeductionAttribute()); + lqw.eq(bo.getReturnTime() != null, XzdDeductionItems::getReturnTime, bo.getReturnTime()); + lqw.eq(bo.getChangeReturnTime() != null, XzdDeductionItems::getChangeReturnTime, bo.getChangeReturnTime()); + lqw.eq(bo.getApplyDeduction() != null, XzdDeductionItems::getApplyDeduction, bo.getApplyDeduction()); + lqw.eq(bo.getChangeApplyDeduction() != null, XzdDeductionItems::getChangeApplyDeduction, bo.getChangeApplyDeduction()); + lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdDeductionItems::getRemarks, bo.getRemarks()); + return lqw; + } + + /** + * 新增合同条款-扣款与奖励项 + * + * @param bo 合同条款-扣款与奖励项 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdDeductionItemsBo bo) { + XzdDeductionItems add = MapstructUtils.convert(bo, XzdDeductionItems.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改合同条款-扣款与奖励项 + * + * @param bo 合同条款-扣款与奖励项 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdDeductionItemsBo bo) { + XzdDeductionItems update = MapstructUtils.convert(bo, XzdDeductionItems.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdDeductionItems entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除合同条款-扣款与奖励项信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} 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 7866f384..1f09432e 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 @@ -11,8 +11,10 @@ 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.SysOssVo; import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.service.ISysDeptService; import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.system.service.impl.SysUserServiceImpl; import org.dromara.xzd.domain.*; @@ -66,6 +68,8 @@ public class XzdProjectServiceImpl extends ServiceImpl