diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractChangeController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractChangeController.java new file mode 100644 index 00000000..07028f51 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractChangeController.java @@ -0,0 +1,105 @@ +package org.dromara.xzd.comprehensive.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.comprehensive.domain.vo.XzdCsContractChangeVo; +import org.dromara.xzd.comprehensive.domain.bo.XzdCsContractChangeBo; +import org.dromara.xzd.comprehensive.service.IXzdCsContractChangeService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 综合服务合同变更 + * + * @author Lion Li + * @date 2025-10-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/comprehensive/csContractChange") +public class XzdCsContractChangeController extends BaseController { + + private final IXzdCsContractChangeService xzdCsContractChangeService; + + /** + * 查询综合服务合同变更列表 + */ + @SaCheckPermission("comprehensive:csContractChange:list") + @GetMapping("/list") + public TableDataInfo list(XzdCsContractChangeBo bo, PageQuery pageQuery) { + return xzdCsContractChangeService.queryPageList(bo, pageQuery); + } + + /** + * 导出综合服务合同变更列表 + */ + @SaCheckPermission("comprehensive:csContractChange:export") + @Log(title = "综合服务合同变更", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdCsContractChangeBo bo, HttpServletResponse response) { + List list = xzdCsContractChangeService.queryList(bo); + ExcelUtil.exportExcel(list, "综合服务合同变更", XzdCsContractChangeVo.class, response); + } + + /** + * 获取综合服务合同变更详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("comprehensive:csContractChange:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdCsContractChangeService.queryById(id)); + } + + /** + * 新增综合服务合同变更 + */ + @SaCheckPermission("comprehensive:csContractChange:add") + @Log(title = "综合服务合同变更", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdCsContractChangeBo bo) { + return toAjax(xzdCsContractChangeService.insertByBo(bo)); + } + + /** + * 修改综合服务合同变更 + */ + @SaCheckPermission("comprehensive:csContractChange:edit") + @Log(title = "综合服务合同变更", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdCsContractChangeBo bo) { + return toAjax(xzdCsContractChangeService.updateByBo(bo)); + } + + /** + * 删除综合服务合同变更 + * + * @param ids 主键串 + */ + @SaCheckPermission("comprehensive:csContractChange:remove") + @Log(title = "综合服务合同变更", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdCsContractChangeService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractInformationController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractInformationController.java new file mode 100644 index 00000000..fb5e1584 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractInformationController.java @@ -0,0 +1,114 @@ +package org.dromara.xzd.comprehensive.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.comprehensive.domain.vo.XzdCsContractInformationVo; +import org.dromara.xzd.comprehensive.domain.bo.XzdCsContractInformationBo; +import org.dromara.xzd.comprehensive.service.IXzdCsContractInformationService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 综合服务合同信息 + * + * @author Lion Li + * @date 2025-10-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/comprehensive/csContractInformation") +public class XzdCsContractInformationController extends BaseController { + + private final IXzdCsContractInformationService xzdCsContractInformationService; + + /** + * 查询综合服务合同信息列表 + */ + @SaCheckPermission("comprehensive:csContractInformation:list") + @GetMapping("/list") + public TableDataInfo list(XzdCsContractInformationBo bo, PageQuery pageQuery) { + return xzdCsContractInformationService.queryPageList(bo, pageQuery); + } + + /** + * 查询综合服务合同信息列表 + */ + @SaCheckPermission("comprehensive:csContractInformation:getList") + @GetMapping("/getList") + public TableDataInfo getList(XzdCsContractInformationBo bo, PageQuery pageQuery) { + return xzdCsContractInformationService.queryPageList(bo, pageQuery); + } + + /** + * 导出综合服务合同信息列表 + */ + @SaCheckPermission("comprehensive:csContractInformation:export") + @Log(title = "综合服务合同信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdCsContractInformationBo bo, HttpServletResponse response) { + List list = xzdCsContractInformationService.queryList(bo); + ExcelUtil.exportExcel(list, "综合服务合同信息", XzdCsContractInformationVo.class, response); + } + + /** + * 获取综合服务合同信息详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("comprehensive:csContractInformation:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdCsContractInformationService.queryById(id)); + } + + /** + * 新增综合服务合同信息 + */ + @SaCheckPermission("comprehensive:csContractInformation:add") + @Log(title = "综合服务合同信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdCsContractInformationBo bo) { + return toAjax(xzdCsContractInformationService.insertByBo(bo)); + } + + /** + * 修改综合服务合同信息 + */ + @SaCheckPermission("comprehensive:csContractInformation:edit") + @Log(title = "综合服务合同信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdCsContractInformationBo bo) { + return toAjax(xzdCsContractInformationService.updateByBo(bo)); + } + + /** + * 删除综合服务合同信息 + * + * @param ids 主键串 + */ + @SaCheckPermission("comprehensive:csContractInformation:remove") + @Log(title = "综合服务合同信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdCsContractInformationService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractSuspendController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractSuspendController.java new file mode 100644 index 00000000..7acb3cbc --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/controller/XzdCsContractSuspendController.java @@ -0,0 +1,105 @@ +package org.dromara.xzd.comprehensive.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.comprehensive.domain.vo.XzdCsContractSuspendVo; +import org.dromara.xzd.comprehensive.domain.bo.XzdCsContractSuspendBo; +import org.dromara.xzd.comprehensive.service.IXzdCsContractSuspendService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 综合服务合同终止 + * + * @author Lion Li + * @date 2025-10-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/comprehensive/csContractSuspend") +public class XzdCsContractSuspendController extends BaseController { + + private final IXzdCsContractSuspendService xzdCsContractSuspendService; + + /** + * 查询综合服务合同终止列表 + */ + @SaCheckPermission("comprehensive:csContractSuspend:list") + @GetMapping("/list") + public TableDataInfo list(XzdCsContractSuspendBo bo, PageQuery pageQuery) { + return xzdCsContractSuspendService.queryPageList(bo, pageQuery); + } + + /** + * 导出综合服务合同终止列表 + */ + @SaCheckPermission("comprehensive:csContractSuspend:export") + @Log(title = "综合服务合同终止", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdCsContractSuspendBo bo, HttpServletResponse response) { + List list = xzdCsContractSuspendService.queryList(bo); + ExcelUtil.exportExcel(list, "综合服务合同终止", XzdCsContractSuspendVo.class, response); + } + + /** + * 获取综合服务合同终止详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("comprehensive:csContractSuspend:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdCsContractSuspendService.queryById(id)); + } + + /** + * 新增综合服务合同终止 + */ + @SaCheckPermission("comprehensive:csContractSuspend:add") + @Log(title = "综合服务合同终止", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdCsContractSuspendBo bo) { + return toAjax(xzdCsContractSuspendService.insertByBo(bo)); + } + + /** + * 修改综合服务合同终止 + */ + @SaCheckPermission("comprehensive:csContractSuspend:edit") + @Log(title = "综合服务合同终止", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdCsContractSuspendBo bo) { + return toAjax(xzdCsContractSuspendService.updateByBo(bo)); + } + + /** + * 删除综合服务合同终止 + * + * @param ids 主键串 + */ + @SaCheckPermission("comprehensive:csContractSuspend:remove") + @Log(title = "综合服务合同终止", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdCsContractSuspendService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdCsContractChange.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdCsContractChange.java new file mode 100644 index 00000000..1172fe96 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdCsContractChange.java @@ -0,0 +1,206 @@ +package org.dromara.xzd.comprehensive.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.time.LocalDate; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 综合服务合同变更对象 xzd_cs_contract_change + * + * @author Lion Li + * @date 2025-10-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_cs_contract_change") +public class XzdCsContractChange extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 单据编码 + */ + private String docCode; + + /** + * 标题 + */ + private String title; + + /** + * 单据日期 + */ + private LocalDate docDate; + + /** + * 合同编码(关联合同表) + */ + private Long contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 合同类型 + */ + private String contractType; + + /** + * 变更类型 + */ + private Long changeType; + + /** + * 项目 + */ + private Long project; + + /** + * 经营模式 + */ + private String businessMode; + + /** + * 组织 + */ + private Long organization; + + /** + * 甲方单位 + */ + private Long partyA; + + /** + * 乙方单位 + */ + private Long partyB; + + /** + * 原合同造价 + */ + private BigDecimal originalContractAmount; + + /** + * 变更价税合计 + */ + private BigDecimal changeTaxIncludedAmount; + + /** + * 变更后价税合计 + */ + private BigDecimal afterChangeTaxIncludedAmount; + + /** + * 累计变更金额 + */ + private BigDecimal cumulativeChangeAmount; + + /** + * 警示 + */ + private String warning; + + /** + * 备注 + */ + private String remark; + + /** + * 支付条款 + */ + private String paymentTerms; + + /** + * 是否用印(0:否,1:是) + */ + private Long isSealed; + + /** + * 变更后项目经理 + */ + private Long afterChangeProjectManager; + + /** + * 变更后项目责任人 + */ + private Long afterChangeProjectLeader; + + /** + * 变更后现场经理 + */ + private Long afterChangeSiteManager; + + /** + * 变更后合同备注 + */ + private String afterChangeContractRemark; + + /** + * 项目大类 + */ + private String projectCategory; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 付款额不能超合同额(0:否,1:是) + */ + private Long paymentNotExceedContract; + + /** + * 付款额不超合同额支付比例(%) + */ + private BigDecimal paymentNotExceedRatio; + + /** + * 预结算/结算不能超合同额(0:否,1:是) + */ + private Long budgetNotExceedContract; + + /** + * 预结算/结算不超合同额比例(%) + */ + private BigDecimal budgetNotExceedRatio; + + /** + * 实时刷新(0:否,1:是) + */ + private Long realTimeUpdate; + + /** + * 合同累计变更金额 + */ + private BigDecimal contractCumulativeChangeAmount; + + /** + * 单据引用 + */ + private String documentReference; + + /** + * 文件id + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdCsContractInformation.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdCsContractInformation.java new file mode 100644 index 00000000..66b528e6 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdCsContractInformation.java @@ -0,0 +1,241 @@ +package org.dromara.xzd.comprehensive.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.time.LocalDate; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 综合服务合同信息对象 xzd_cs_contract_information + * + * @author Lion Li + * @date 2025-10-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_cs_contract_information") +public class XzdCsContractInformation extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 合同编码 + */ + private String contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 单据日期 + */ + private LocalDate documentDate; + + /** + * 合同类型(如:租车合同) + */ + private String contractType; + + /** + * 项目ID(关联项目表) + */ + private Long projectId; + + /** + * 经营模式 + */ + private String businessMode; + + /** + * 签订日期 + */ + private LocalDate signDate; + + /** + * 甲方单位 + */ + private Long partyA; + + /** + * 含税合同金额 + */ + private BigDecimal taxIncludedAmount; + + /** + * 合同状态(如:新增、生效) + */ + private String contractStatus; + + /** + * 乙方单位 + */ + private Long partyB; + + /** + * 累计变更金额 + */ + private BigDecimal cumulativeChangeAmount; + + /** + * 部门ID(关联部门表) + */ + private Long departmentId; + + /** + * 归档日期 + */ + private LocalDate archivalDate; + + /** + * 是否研发类(0:否,1:是) + */ + private Long isRD; + + /** + * 开票单位 + */ + private Long invoiceIssuer; + + /** + * 收票单位 + */ + private Long invoiceReceiver; + + /** + * 有效期开始日期 + */ + private LocalDate validStartDate; + + /** + * 有效期结束日期 + */ + private LocalDate validEndDate; + + /** + * 是否用印(0:否,1:是) + */ + private Long isSealed; + + /** + * 大写合同价税合计 + */ + private String taxIncludedAmountUpper; + + /** + * 警示 + */ + private String warning; + + /** + * 支付条款 + */ + private String paymentTerms; + + /** + * 备注 + */ + private String remark; + + /** + * 签约组织 + */ + private Long signOrganization; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 项目大类 + */ + private String projectCategory; + + /** + * 项目责任人 + */ + private Long projectOwner; + + /** + * WBS编码 + */ + private Long wbs; + + /** + * 备案状态(如:未备案、已备案) + */ + private String filingStatus; + + /** + * 备案时间 + */ + private LocalDate filingTime; + + /** + * 是否需备案(0:否,1:是) + */ + private Long needFiling; + + /** + * 预算分类 + */ + private Long budgetCategory; + + /** + * 是否固定单价合同(0:否,1:是) + */ + private Long isFixedUnitPrice; + + /** + * 是否总价包干合同(0:否,1:是) + */ + private Long isLumpSum; + + /** + * 付款额不能超合同额(0:否,1:是) + */ + private Long paymentNotExceedContract; + + /** + * 付款额不超合同额比例(%) + */ + private BigDecimal paymentNotExceedRatio; + + /** + * 预结算/结算不能超合同额(0:否,1:是) + */ + private Long budgetNotExceedContract; + + /** + * 预结算/结算不超合同额比例(%) + */ + private BigDecimal budgetNotExceedRatio; + + /** + * 单据引用 + */ + private String documentReference; + + /** + * 文件id + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdCsContractSuspend.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdCsContractSuspend.java new file mode 100644 index 00000000..d5e03f06 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/XzdCsContractSuspend.java @@ -0,0 +1,122 @@ +package org.dromara.xzd.comprehensive.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.time.LocalDate; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 综合服务合同终止对象 xzd_cs_contract_suspend + * + * @author Lion Li + * @date 2025-10-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_cs_contract_suspend") +public class XzdCsContractSuspend extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 采购合同信息ID(合同编码) + */ + private Long contractInformationId; + + /** + * 单据编码 + */ + private String receiptsCode; + + /** + * 标题 + */ + private String title; + + /** + * 单据日期 + */ + private LocalDate documentDate; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 终止日期 + */ + private LocalDate terminationDate; + + /** + * 工程项目 + */ + private Long project; + + /** + * 乙方单位 + */ + private Long artyBUnit; + + /** + * 甲方单位 + */ + private Long partyAUnit; + + /** + * 终止原因 + */ + private String terminationCause; + + /** + * 项目大类 + */ + private String projectCategory; + + /** + * 项目类型 + */ + private String projectType; + + + /** + * 累计结算金额 + */ + private BigDecimal cumulativeSettlementAmount; + + /** + * 累计付款金额 + */ + private BigDecimal cumulativePaymentAmount; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractChangeBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractChangeBo.java new file mode 100644 index 00000000..470ec51d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractChangeBo.java @@ -0,0 +1,229 @@ +package org.dromara.xzd.comprehensive.domain.bo; + +import org.dromara.xzd.comprehensive.domain.XzdCsContractChange; +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.time.LocalDate; +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.domain.XzdContractClause; +import org.dromara.xzd.domain.XzdDeductionItems; +import org.dromara.xzd.domain.XzdSettlementRules; + +/** + * 综合服务合同变更业务对象 xzd_cs_contract_change + * + * @author Lion Li + * @date 2025-10-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdCsContractChange.class, reverseConvertGenerate = false) +public class XzdCsContractChangeBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 单据编码 + */ + @NotBlank(message = "单据编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String docCode; + + /** + * 标题 + */ + @NotBlank(message = "标题不能为空", groups = { AddGroup.class, EditGroup.class }) + private String title; + + /** + * 单据日期 + */ + @NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate docDate; + + /** + * 合同编码(关联合同表) + */ + private Long contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 合同类型 + */ + private String contractType; + + /** + * 变更类型 + */ + private Long changeType; + + /** + * 项目 + */ + private Long project; + + /** + * 经营模式 + */ + private String businessMode; + + /** + * 组织 + */ + private Long organization; + + /** + * 甲方单位 + */ + private Long partyA; + + /** + * 乙方单位 + */ + private Long partyB; + + /** + * 原合同造价 + */ + private BigDecimal originalContractAmount; + + /** + * 变更价税合计 + */ + private BigDecimal changeTaxIncludedAmount; + + /** + * 变更后价税合计 + */ + private BigDecimal afterChangeTaxIncludedAmount; + + /** + * 累计变更金额 + */ + private BigDecimal cumulativeChangeAmount; + + /** + * 警示 + */ + private String warning; + + /** + * 备注 + */ + private String remark; + + /** + * 支付条款 + */ + private String paymentTerms; + + /** + * 是否用印(0:否,1:是) + */ + private Long isSealed; + + /** + * 变更后项目经理 + */ + private Long afterChangeProjectManager; + + /** + * 变更后项目责任人 + */ + private Long afterChangeProjectLeader; + + /** + * 变更后现场经理 + */ + private Long afterChangeSiteManager; + + /** + * 变更后合同备注 + */ + private String afterChangeContractRemark; + + /** + * 项目大类 + */ + private String projectCategory; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 付款额不能超合同额(0:否,1:是) + */ + private Long paymentNotExceedContract; + + /** + * 付款额不超合同额支付比例(%) + */ + private BigDecimal paymentNotExceedRatio; + + /** + * 预结算/结算不能超合同额(0:否,1:是) + */ + private Long budgetNotExceedContract; + + /** + * 预结算/结算不超合同额比例(%) + */ + private BigDecimal budgetNotExceedRatio; + + /** + * 实时刷新(0:否,1:是) + */ + private Long realTimeUpdate; + + /** + * 合同累计变更金额 + */ + private BigDecimal contractCumulativeChangeAmount; + + /** + * 单据引用 + */ + private String documentReference; + + /** + * 文件id + */ + private String fileId; + + + /** + * 扣款与奖励项 + */ + private List kkyjlx; + + /** + * 合同条款 + */ + private List httk; + + /** + * 支付条款 + */ + private List zftk; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractInformationBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractInformationBo.java new file mode 100644 index 00000000..84c25f2b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractInformationBo.java @@ -0,0 +1,272 @@ +package org.dromara.xzd.comprehensive.domain.bo; + +import org.dromara.xzd.comprehensive.domain.XzdCsContractInformation; +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.time.LocalDate; +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.domain.XzdContractClause; +import org.dromara.xzd.domain.XzdDeductionItems; +import org.dromara.xzd.domain.XzdSettlementRules; + +/** + * 综合服务合同信息业务对象 xzd_cs_contract_information + * + * @author Lion Li + * @date 2025-10-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdCsContractInformation.class, reverseConvertGenerate = false) +public class XzdCsContractInformationBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 合同编码 + */ + @NotBlank(message = "合同编码不能为空", groups = { EditGroup.class }) + private String contractCode; + + /** + * 合同名称 + */ + @NotBlank(message = "合同名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractName; + + /** + * 单据日期 + */ + @NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate documentDate; + + /** + * 合同类型(如:租车合同) + */ + @NotBlank(message = "合同类型(如:租车合同)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractType; + + /** + * 项目ID(关联项目表) + */ + @NotNull(message = "项目ID(关联项目表)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectId; + + /** + * 经营模式 + */ + private String businessMode; + + /** + * 签订日期 + */ + private LocalDate signDate; + + /** + * 甲方单位 + */ + @NotNull(message = "甲方单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long partyA; + + /** + * 含税合同金额 + */ + private BigDecimal taxIncludedAmount; + + /** + * 合同状态(如:新增、生效) + */ + private String contractStatus; + + /** + * 乙方单位 + */ + @NotNull(message = "乙方单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long partyB; + + /** + * 累计变更金额 + */ + private BigDecimal cumulativeChangeAmount; + + /** + * 部门ID(关联部门表) + */ + private Long departmentId; + + /** + * 归档日期 + */ + private LocalDate archivalDate; + + /** + * 是否研发类(0:否,1:是) + */ + @NotNull(message = "是否研发类(0:否,1:是)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long isRD; + + /** + * 开票单位 + */ + @NotNull(message = "开票单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long invoiceIssuer; + + /** + * 收票单位 + */ + @NotNull(message = "收票单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long invoiceReceiver; + + /** + * 有效期开始日期 + */ + private LocalDate validStartDate; + + /** + * 有效期结束日期 + */ + private LocalDate validEndDate; + + /** + * 是否用印(0:否,1:是) + */ + private Long isSealed; + + /** + * 大写合同价税合计 + */ + private String taxIncludedAmountUpper; + + /** + * 警示 + */ + private String warning; + + /** + * 支付条款 + */ + private String paymentTerms; + + /** + * 备注 + */ + private String remark; + + /** + * 签约组织 + */ + @NotNull(message = "签约组织不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long signOrganization; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 项目大类 + */ + private String projectCategory; + + /** + * 项目责任人 + */ + private Long projectOwner; + + /** + * WBS编码 + */ + private Long wbs; + + /** + * 备案状态(如:未备案、已备案) + */ + private String filingStatus; + + /** + * 备案时间 + */ + private LocalDate filingTime; + + /** + * 是否需备案(0:否,1:是) + */ + private Long needFiling; + + /** + * 预算分类 + */ + @NotNull(message = "预算分类不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long budgetCategory; + + /** + * 是否固定单价合同(0:否,1:是) + */ + private Long isFixedUnitPrice; + + /** + * 是否总价包干合同(0:否,1:是) + */ + private Long isLumpSum; + + /** + * 付款额不能超合同额(0:否,1:是) + */ + private Long paymentNotExceedContract; + + /** + * 付款额不超合同额比例(%) + */ + private BigDecimal paymentNotExceedRatio; + + /** + * 预结算/结算不能超合同额(0:否,1:是) + */ + private Long budgetNotExceedContract; + + /** + * 预结算/结算不超合同额比例(%) + */ + private BigDecimal budgetNotExceedRatio; + + /** + * 单据引用 + */ + private String documentReference; + + /** + * 文件id + */ + private String fileId; + + /** + * 扣款与奖励项 + */ + private List kkyjlx; + + /** + * 合同条款 + */ + private List httk; + + /** + * 支付条款 + */ + private List zftk; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractSuspendBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractSuspendBo.java new file mode 100644 index 00000000..55607b5f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/bo/XzdCsContractSuspendBo.java @@ -0,0 +1,131 @@ +package org.dromara.xzd.comprehensive.domain.bo; + +import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspend; +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.time.LocalDate; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 综合服务合同终止业务对象 xzd_cs_contract_suspend + * + * @author Lion Li + * @date 2025-10-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdCsContractSuspend.class, reverseConvertGenerate = false) +public class XzdCsContractSuspendBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 采购合同信息ID(合同编码) + */ + @NotNull(message = "采购合同信息ID(合同编码)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long contractInformationId; + + /** + * 单据编码 + */ + @NotBlank(message = "单据编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String receiptsCode; + + /** + * 标题 + */ + @NotBlank(message = "标题不能为空", groups = { AddGroup.class, EditGroup.class }) + private String title; + + /** + * 单据日期 + */ + @NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate documentDate; + + /** + * 合同名称 + */ + @NotBlank(message = "合同名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractName; + + /** + * 终止日期 + */ + @NotNull(message = "终止日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate terminationDate; + + /** + * 工程项目 + */ + @NotNull(message = "工程项目不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long project; + + /** + * 乙方单位 + */ + @NotNull(message = "乙方单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long artyBUnit; + + /** + * 甲方单位 + */ + @NotNull(message = "甲方单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long partyAUnit; + + /** + * 终止原因 + */ +// @NotBlank(message = "终止原因不能为空", groups = { AddGroup.class, EditGroup.class }) + private String terminationCause; + + /** + * 项目大类 + */ + private String projectCategory; + + /** + * 项目类型 + */ + private String projectType; + + + /** + * 累计结算金额 + */ + private BigDecimal cumulativeSettlementAmount; + + /** + * 累计付款金额 + */ + private BigDecimal cumulativePaymentAmount; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractChangeVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractChangeVo.java new file mode 100644 index 00000000..9c24fdb6 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractChangeVo.java @@ -0,0 +1,275 @@ +package org.dromara.xzd.comprehensive.domain.vo; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.comprehensive.domain.XzdCsContractChange; +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 org.dromara.xzd.domain.XzdContractClause; +import org.dromara.xzd.domain.XzdDeductionItems; +import org.dromara.xzd.domain.XzdSettlementRules; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + + +/** + * 综合服务合同变更视图对象 xzd_cs_contract_change + * + * @author Lion Li + * @date 2025-10-13 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdCsContractChange.class) +public class XzdCsContractChangeVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 单据编码 + */ + @ExcelProperty(value = "单据编码") + private String docCode; + + /** + * 标题 + */ + @ExcelProperty(value = "标题") + private String title; + + /** + * 单据日期 + */ + @ExcelProperty(value = "单据日期") + private LocalDate docDate; + + /** + * 合同编码(关联合同表) + */ + @ExcelProperty(value = "合同编码", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "关=联合同表") + private Long contractCode; + + /** + * 合同名称 + */ + @ExcelProperty(value = "合同名称") + private String contractName; + + /** + * 合同类型 + */ + @ExcelProperty(value = "合同类型") + private String contractType; + + /** + * 变更类型 + */ + @ExcelProperty(value = "变更类型") + private Long changeType; + + /** + * 项目 + */ + @ExcelProperty(value = "项目") + private Long project; + private String projectName; + + /** + * 经营模式 + */ + @ExcelProperty(value = "经营模式") + private String businessMode; + + /** + * 组织 + */ + @ExcelProperty(value = "组织") + private Long organization; + private String organizationName; + + /** + * 甲方单位 + */ + @ExcelProperty(value = "甲方单位") + private Long partyA; + private String partyAName; + + /** + * 乙方单位 + */ + @ExcelProperty(value = "乙方单位") + private Long partyB; + private String partyBName; + + /** + * 原合同造价 + */ + @ExcelProperty(value = "原合同造价") + private BigDecimal originalContractAmount; + + /** + * 变更价税合计 + */ + @ExcelProperty(value = "变更价税合计") + private BigDecimal changeTaxIncludedAmount; + + /** + * 变更后价税合计 + */ + @ExcelProperty(value = "变更后价税合计") + private BigDecimal afterChangeTaxIncludedAmount; + + /** + * 累计变更金额 + */ + @ExcelProperty(value = "累计变更金额") + private BigDecimal cumulativeChangeAmount; + + /** + * 警示 + */ + @ExcelProperty(value = "警示") + private String warning; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 支付条款 + */ + @ExcelProperty(value = "支付条款") + private String paymentTerms; + + /** + * 是否用印(0:否,1:是) + */ + @ExcelProperty(value = "是否用印", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=:否,1:是") + private Long isSealed; + + /** + * 变更后项目经理 + */ + @ExcelProperty(value = "变更后项目经理") + private Long afterChangeProjectManager; + + /** + * 变更后项目责任人 + */ + @ExcelProperty(value = "变更后项目责任人") + private Long afterChangeProjectLeader; + + /** + * 变更后现场经理 + */ + @ExcelProperty(value = "变更后现场经理") + private Long afterChangeSiteManager; + + /** + * 变更后合同备注 + */ + @ExcelProperty(value = "变更后合同备注") + private String afterChangeContractRemark; + + /** + * 项目大类 + */ + @ExcelProperty(value = "项目大类") + private String projectCategory; + + /** + * 项目类型 + */ + @ExcelProperty(value = "项目类型") + private String projectType; + + /** + * 付款额不能超合同额(0:否,1:是) + */ + @ExcelProperty(value = "付款额不能超合同额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=:否,1:是") + private Long paymentNotExceedContract; + + /** + * 付款额不超合同额支付比例(%) + */ + @ExcelProperty(value = "付款额不超合同额支付比例", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "%=") + private BigDecimal paymentNotExceedRatio; + + /** + * 预结算/结算不能超合同额(0:否,1:是) + */ + @ExcelProperty(value = "预结算/结算不能超合同额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=:否,1:是") + private Long budgetNotExceedContract; + + /** + * 预结算/结算不超合同额比例(%) + */ + @ExcelProperty(value = "预结算/结算不超合同额比例", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "%=") + private BigDecimal budgetNotExceedRatio; + + /** + * 实时刷新(0:否,1:是) + */ + @ExcelProperty(value = "实时刷新", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=:否,1:是") + private Long realTimeUpdate; + + /** + * 合同累计变更金额 + */ + @ExcelProperty(value = "合同累计变更金额") + private BigDecimal contractCumulativeChangeAmount; + + /** + * 单据引用 + */ + @ExcelProperty(value = "单据引用") + private String documentReference; + + /** + * 文件id + */ + @ExcelProperty(value = "文件id") + private String fileId; + + /** + * 扣款与奖励项 + */ + private List kkyjlx; + + /** + * 合同条款 + */ + private List httk; + + /** + * 支付条款 + */ + private List zftk; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractInformationVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractInformationVo.java new file mode 100644 index 00000000..854e9ef7 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractInformationVo.java @@ -0,0 +1,327 @@ +package org.dromara.xzd.comprehensive.domain.vo; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.comprehensive.domain.XzdCsContractInformation; +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 org.dromara.xzd.domain.XzdContractClause; +import org.dromara.xzd.domain.XzdDeductionItems; +import org.dromara.xzd.domain.XzdSettlementRules; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + + +/** + * 综合服务合同信息视图对象 xzd_cs_contract_information + * + * @author Lion Li + * @date 2025-10-13 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdCsContractInformation.class) +public class XzdCsContractInformationVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 合同编码 + */ + @ExcelProperty(value = "合同编码") + private String contractCode; + + /** + * 合同名称 + */ + @ExcelProperty(value = "合同名称") + private String contractName; + + /** + * 单据日期 + */ + @ExcelProperty(value = "单据日期") + private LocalDate documentDate; + + /** + * 合同类型(如:租车合同) + */ + @ExcelProperty(value = "合同类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "如=:租车合同") + private String contractType; + + /** + * 项目ID(关联项目表) + */ + @ExcelProperty(value = "项目ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "关=联项目表") + private Long projectId; + private String projectName; + + /** + * 经营模式 + */ + @ExcelProperty(value = "经营模式") + private String businessMode; + + /** + * 签订日期 + */ + @ExcelProperty(value = "签订日期") + private LocalDate signDate; + + /** + * 甲方单位 + */ + @ExcelProperty(value = "甲方单位") + private Long partyA; + private String partyAName; + + /** + * 含税合同金额 + */ + @ExcelProperty(value = "含税合同金额") + private BigDecimal taxIncludedAmount; + + /** + * 合同状态(如:新增、生效) + */ + @ExcelProperty(value = "合同状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "如=:新增、生效") + private String contractStatus; + + /** + * 乙方单位 + */ + @ExcelProperty(value = "乙方单位") + private Long partyB; + private String partyBName; + + /** + * 累计变更金额 + */ + @ExcelProperty(value = "累计变更金额") + private BigDecimal cumulativeChangeAmount; + + /** + * 部门ID(关联部门表) + */ + @ExcelProperty(value = "部门ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "关=联部门表") + private Long departmentId; + private String departmentName; + + /** + * 归档日期 + */ + @ExcelProperty(value = "归档日期") + private LocalDate archivalDate; + + /** + * 是否研发类(0:否,1:是) + */ + @ExcelProperty(value = "是否研发类", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=:否,1:是") + private Long isRD; + + /** + * 开票单位 + */ + @ExcelProperty(value = "开票单位") + private Long invoiceIssuer; + private String invoiceIssuerName; + + /** + * 收票单位 + */ + @ExcelProperty(value = "收票单位") + private Long invoiceReceiver; + private String invoiceReceiverName; + + /** + * 有效期开始日期 + */ + @ExcelProperty(value = "有效期开始日期") + private LocalDate validStartDate; + + /** + * 有效期结束日期 + */ + @ExcelProperty(value = "有效期结束日期") + private LocalDate validEndDate; + + /** + * 是否用印(0:否,1:是) + */ + @ExcelProperty(value = "是否用印", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=:否,1:是") + private Long isSealed; + + /** + * 大写合同价税合计 + */ + @ExcelProperty(value = "大写合同价税合计") + private String taxIncludedAmountUpper; + + /** + * 警示 + */ + @ExcelProperty(value = "警示") + private String warning; + + /** + * 支付条款 + */ + @ExcelProperty(value = "支付条款") + private String paymentTerms; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 签约组织 + */ + @ExcelProperty(value = "签约组织") + private Long signOrganization; + private String signOrganizationName; + + /** + * 项目类型 + */ + @ExcelProperty(value = "项目类型") + private String projectType; + + /** + * 项目大类 + */ + @ExcelProperty(value = "项目大类") + private String projectCategory; + + /** + * 项目责任人 + */ + @ExcelProperty(value = "项目责任人") + private Long projectOwner; + + /** + * WBS编码 + */ + @ExcelProperty(value = "WBS编码") + private Long wbs; + + /** + * 备案状态(如:未备案、已备案) + */ + @ExcelProperty(value = "备案状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "如=:未备案、已备案") + private String filingStatus; + + /** + * 备案时间 + */ + @ExcelProperty(value = "备案时间") + private LocalDate filingTime; + + /** + * 是否需备案(0:否,1:是) + */ + @ExcelProperty(value = "是否需备案", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=:否,1:是") + private Long needFiling; + + /** + * 预算分类 + */ + @ExcelProperty(value = "预算分类") + private Long budgetCategory; + + /** + * 是否固定单价合同(0:否,1:是) + */ + @ExcelProperty(value = "是否固定单价合同", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=:否,1:是") + private Long isFixedUnitPrice; + + /** + * 是否总价包干合同(0:否,1:是) + */ + @ExcelProperty(value = "是否总价包干合同", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=:否,1:是") + private Long isLumpSum; + + /** + * 付款额不能超合同额(0:否,1:是) + */ + @ExcelProperty(value = "付款额不能超合同额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=:否,1:是") + private Long paymentNotExceedContract; + + /** + * 付款额不超合同额比例(%) + */ + @ExcelProperty(value = "付款额不超合同额比例", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "%=") + private BigDecimal paymentNotExceedRatio; + + /** + * 预结算/结算不能超合同额(0:否,1:是) + */ + @ExcelProperty(value = "预结算/结算不能超合同额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=:否,1:是") + private Long budgetNotExceedContract; + + /** + * 预结算/结算不超合同额比例(%) + */ + @ExcelProperty(value = "预结算/结算不超合同额比例", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "%=") + private BigDecimal budgetNotExceedRatio; + + /** + * 单据引用 + */ + @ExcelProperty(value = "单据引用") + private String documentReference; + + /** + * 文件id + */ + @ExcelProperty(value = "文件id") + private String fileId; + + /** + * 扣款与奖励项 + */ + private List kkyjlx; + + /** + * 合同条款 + */ + private List httk; + + /** + * 支付条款 + */ + private List zftk; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractSuspendVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractSuspendVo.java new file mode 100644 index 00000000..6de4b5ec --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/domain/vo/XzdCsContractSuspendVo.java @@ -0,0 +1,148 @@ +package org.dromara.xzd.comprehensive.domain.vo; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspend; +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; +import java.util.Date; + + + +/** + * 综合服务合同终止视图对象 xzd_cs_contract_suspend + * + * @author Lion Li + * @date 2025-10-13 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdCsContractSuspend.class) +public class XzdCsContractSuspendVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 采购合同信息ID(合同编码) + */ + @ExcelProperty(value = "采购合同信息ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "合=同编码") + private Long contractInformationId; + + /** + * 单据编码 + */ + @ExcelProperty(value = "单据编码") + private String receiptsCode; + + /** + * 标题 + */ + @ExcelProperty(value = "标题") + private String title; + + /** + * 单据日期 + */ + @ExcelProperty(value = "单据日期") + private LocalDate documentDate; + + /** + * 合同名称 + */ + @ExcelProperty(value = "合同名称") + private String contractName; + + /** + * 终止日期 + */ + @ExcelProperty(value = "终止日期") + private LocalDate terminationDate; + + /** + * 工程项目 + */ + @ExcelProperty(value = "工程项目") + private Long project; + private String projectName; + + /** + * 乙方单位 + */ + @ExcelProperty(value = "乙方单位") + private Long artyBUnit; + private String artyBUnitName; + + /** + * 甲方单位 + */ + @ExcelProperty(value = "甲方单位") + private Long partyAUnit; + private String partyAUnitNamme; + + /** + * 终止原因 + */ + @ExcelProperty(value = "终止原因") + private String terminationCause; + + /** + * 项目大类 + */ + @ExcelProperty(value = "项目大类") + private String projectCategory; + + /** + * 项目类型 + */ + @ExcelProperty(value = "项目类型") + private String projectType; + + /** + * 累计结算金额 + */ + @ExcelProperty(value = "累计结算金额") + private BigDecimal cumulativeSettlementAmount; + + /** + * 累计付款金额 + */ + @ExcelProperty(value = "累计付款金额") + private BigDecimal cumulativePaymentAmount; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/mapper/XzdCsContractChangeMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/mapper/XzdCsContractChangeMapper.java new file mode 100644 index 00000000..fa9cf236 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/mapper/XzdCsContractChangeMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.comprehensive.mapper; + +import org.dromara.xzd.comprehensive.domain.XzdCsContractChange; +import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractChangeVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 综合服务合同变更Mapper接口 + * + * @author Lion Li + * @date 2025-10-13 + */ +public interface XzdCsContractChangeMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/mapper/XzdCsContractInformationMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/mapper/XzdCsContractInformationMapper.java new file mode 100644 index 00000000..29186e08 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/mapper/XzdCsContractInformationMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.comprehensive.mapper; + +import org.dromara.xzd.comprehensive.domain.XzdCsContractInformation; +import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractInformationVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 综合服务合同信息Mapper接口 + * + * @author Lion Li + * @date 2025-10-13 + */ +public interface XzdCsContractInformationMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/mapper/XzdCsContractSuspendMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/mapper/XzdCsContractSuspendMapper.java new file mode 100644 index 00000000..8c1af2c4 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/mapper/XzdCsContractSuspendMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.comprehensive.mapper; + +import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspend; +import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractSuspendVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 综合服务合同终止Mapper接口 + * + * @author Lion Li + * @date 2025-10-13 + */ +public interface XzdCsContractSuspendMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/IXzdCsContractChangeService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/IXzdCsContractChangeService.java new file mode 100644 index 00000000..38c382f9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/IXzdCsContractChangeService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.comprehensive.service; + +import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractChangeVo; +import org.dromara.xzd.comprehensive.domain.bo.XzdCsContractChangeBo; +import org.dromara.xzd.comprehensive.domain.XzdCsContractChange; +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-13 + */ +public interface IXzdCsContractChangeService extends IService{ + + /** + * 查询综合服务合同变更 + * + * @param id 主键 + * @return 综合服务合同变更 + */ + XzdCsContractChangeVo queryById(Long id); + + /** + * 分页查询综合服务合同变更列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 综合服务合同变更分页列表 + */ + TableDataInfo queryPageList(XzdCsContractChangeBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的综合服务合同变更列表 + * + * @param bo 查询条件 + * @return 综合服务合同变更列表 + */ + List queryList(XzdCsContractChangeBo bo); + + /** + * 新增综合服务合同变更 + * + * @param bo 综合服务合同变更 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdCsContractChangeBo bo); + + /** + * 修改综合服务合同变更 + * + * @param bo 综合服务合同变更 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdCsContractChangeBo 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/comprehensive/service/IXzdCsContractInformationService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/IXzdCsContractInformationService.java new file mode 100644 index 00000000..92f39a31 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/IXzdCsContractInformationService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.comprehensive.service; + +import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractInformationVo; +import org.dromara.xzd.comprehensive.domain.bo.XzdCsContractInformationBo; +import org.dromara.xzd.comprehensive.domain.XzdCsContractInformation; +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-13 + */ +public interface IXzdCsContractInformationService extends IService{ + + /** + * 查询综合服务合同信息 + * + * @param id 主键 + * @return 综合服务合同信息 + */ + XzdCsContractInformationVo queryById(Long id); + + /** + * 分页查询综合服务合同信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 综合服务合同信息分页列表 + */ + TableDataInfo queryPageList(XzdCsContractInformationBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的综合服务合同信息列表 + * + * @param bo 查询条件 + * @return 综合服务合同信息列表 + */ + List queryList(XzdCsContractInformationBo bo); + + /** + * 新增综合服务合同信息 + * + * @param bo 综合服务合同信息 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdCsContractInformationBo bo); + + /** + * 修改综合服务合同信息 + * + * @param bo 综合服务合同信息 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdCsContractInformationBo 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/comprehensive/service/IXzdCsContractSuspendService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/IXzdCsContractSuspendService.java new file mode 100644 index 00000000..cc27dfe9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/IXzdCsContractSuspendService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.comprehensive.service; + +import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractSuspendVo; +import org.dromara.xzd.comprehensive.domain.bo.XzdCsContractSuspendBo; +import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspend; +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-13 + */ +public interface IXzdCsContractSuspendService extends IService{ + + /** + * 查询综合服务合同终止 + * + * @param id 主键 + * @return 综合服务合同终止 + */ + XzdCsContractSuspendVo queryById(Long id); + + /** + * 分页查询综合服务合同终止列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 综合服务合同终止分页列表 + */ + TableDataInfo queryPageList(XzdCsContractSuspendBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的综合服务合同终止列表 + * + * @param bo 查询条件 + * @return 综合服务合同终止列表 + */ + List queryList(XzdCsContractSuspendBo bo); + + /** + * 新增综合服务合同终止 + * + * @param bo 综合服务合同终止 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdCsContractSuspendBo bo); + + /** + * 修改综合服务合同终止 + * + * @param bo 综合服务合同终止 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdCsContractSuspendBo 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/comprehensive/service/impl/XzdCsContractChangeServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractChangeServiceImpl.java new file mode 100644 index 00000000..5ee34a13 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractChangeServiceImpl.java @@ -0,0 +1,371 @@ +package org.dromara.xzd.comprehensive.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.exception.ServiceException; +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.service.impl.SysDeptServiceImpl; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.comprehensive.domain.XzdCsContractInformation; +import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractInformationVo; +import org.dromara.xzd.domain.XzdContractClause; +import org.dromara.xzd.domain.XzdDeductionItems; +import org.dromara.xzd.domain.XzdSettlementRules; +import org.dromara.xzd.domain.dto.QuerCorrespondentDto; +import org.dromara.xzd.domain.vo.XzdProjectVo; +import org.dromara.xzd.domain.vo.XzdSupplierInfoVo; +import org.dromara.xzd.enums.XzdClassEnum; +import org.dromara.xzd.service.IXzdCorrespondentList; +import org.dromara.xzd.service.impl.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.dromara.xzd.comprehensive.domain.bo.XzdCsContractChangeBo; +import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractChangeVo; +import org.dromara.xzd.comprehensive.domain.XzdCsContractChange; +import org.dromara.xzd.comprehensive.mapper.XzdCsContractChangeMapper; +import org.dromara.xzd.comprehensive.service.IXzdCsContractChangeService; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +/** + * 综合服务合同变更Service业务层处理 + * + * @author Lion Li + * @date 2025-10-13 + */ +@RequiredArgsConstructor +@Service +public class XzdCsContractChangeServiceImpl extends ServiceImpl implements IXzdCsContractChangeService { + + private final XzdCsContractChangeMapper baseMapper; + + @Autowired + private XzdDeductionItemsServiceImpl xzdDeductionItemsService; + @Autowired + private XzdContractClauseServiceImpl xzdContractClauseService; + @Autowired + private XzdSettlementRulesServiceImpl xzdSettlementRulesService; + @Autowired + private SysOssServiceImpl sysOssService; + + + @Autowired + private XzdProjectServiceImpl xzdProjectService; + @Autowired + private IXzdCorrespondentList iXzdCorrespondentList; + @Autowired + private XzdSupplierInfoServiceImpl xzdSupplierInfoService; + + + /** + * 查询综合服务合同变更 + * + * @param id 主键 + * @return 综合服务合同变更 + */ + @Override + public XzdCsContractChangeVo queryById(Long id){ + XzdCsContractChangeVo xzdCsContractChangeVo = baseMapper.selectVoById(id); + if (xzdCsContractChangeVo!=null){ + getName(xzdCsContractChangeVo); + getHttk(xzdCsContractChangeVo); + } + return xzdCsContractChangeVo; + } + + /** + * 分页查询综合服务合同变更列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 综合服务合同变更分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdCsContractChangeBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + result.getRecords().forEach(this::getName); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的综合服务合同变更列表 + * + * @param bo 查询条件 + * @return 综合服务合同变更列表 + */ + @Override + public List queryList(XzdCsContractChangeBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdCsContractChangeBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdCsContractChange::getId); + lqw.eq(StringUtils.isNotBlank(bo.getDocCode()), XzdCsContractChange::getDocCode, bo.getDocCode()); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdCsContractChange::getTitle, bo.getTitle()); + lqw.eq(bo.getDocDate() != null, XzdCsContractChange::getDocDate, bo.getDocDate()); + lqw.eq(bo.getContractCode() != null, XzdCsContractChange::getContractCode, bo.getContractCode()); + lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdCsContractChange::getContractName, bo.getContractName()); + lqw.eq(StringUtils.isNotBlank(bo.getContractType()), XzdCsContractChange::getContractType, bo.getContractType()); + lqw.eq(bo.getChangeType() != null, XzdCsContractChange::getChangeType, bo.getChangeType()); + lqw.eq(bo.getProject() != null, XzdCsContractChange::getProject, bo.getProject()); + lqw.eq(StringUtils.isNotBlank(bo.getBusinessMode()), XzdCsContractChange::getBusinessMode, bo.getBusinessMode()); + lqw.eq(bo.getOrganization() !=null, XzdCsContractChange::getOrganization, bo.getOrganization()); + lqw.eq(bo.getPartyA() != null, XzdCsContractChange::getPartyA, bo.getPartyA()); + lqw.eq(bo.getPartyB() != null, XzdCsContractChange::getPartyB, bo.getPartyB()); + lqw.eq(bo.getOriginalContractAmount() != null, XzdCsContractChange::getOriginalContractAmount, bo.getOriginalContractAmount()); + lqw.eq(bo.getChangeTaxIncludedAmount() != null, XzdCsContractChange::getChangeTaxIncludedAmount, bo.getChangeTaxIncludedAmount()); + lqw.eq(bo.getAfterChangeTaxIncludedAmount() != null, XzdCsContractChange::getAfterChangeTaxIncludedAmount, bo.getAfterChangeTaxIncludedAmount()); + lqw.eq(bo.getCumulativeChangeAmount() != null, XzdCsContractChange::getCumulativeChangeAmount, bo.getCumulativeChangeAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getWarning()), XzdCsContractChange::getWarning, bo.getWarning()); + lqw.eq(StringUtils.isNotBlank(bo.getPaymentTerms()), XzdCsContractChange::getPaymentTerms, bo.getPaymentTerms()); + lqw.eq(bo.getIsSealed() != null, XzdCsContractChange::getIsSealed, bo.getIsSealed()); + lqw.eq(bo.getAfterChangeProjectManager() != null, XzdCsContractChange::getAfterChangeProjectManager, bo.getAfterChangeProjectManager()); + lqw.eq(bo.getAfterChangeProjectLeader() != null, XzdCsContractChange::getAfterChangeProjectLeader, bo.getAfterChangeProjectLeader()); + lqw.eq(bo.getAfterChangeSiteManager() != null, XzdCsContractChange::getAfterChangeSiteManager, bo.getAfterChangeSiteManager()); + lqw.eq(StringUtils.isNotBlank(bo.getAfterChangeContractRemark()), XzdCsContractChange::getAfterChangeContractRemark, bo.getAfterChangeContractRemark()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdCsContractChange::getProjectCategory, bo.getProjectCategory()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdCsContractChange::getProjectType, bo.getProjectType()); + lqw.eq(bo.getPaymentNotExceedContract() != null, XzdCsContractChange::getPaymentNotExceedContract, bo.getPaymentNotExceedContract()); + lqw.eq(bo.getPaymentNotExceedRatio() != null, XzdCsContractChange::getPaymentNotExceedRatio, bo.getPaymentNotExceedRatio()); + lqw.eq(bo.getBudgetNotExceedContract() != null, XzdCsContractChange::getBudgetNotExceedContract, bo.getBudgetNotExceedContract()); + lqw.eq(bo.getBudgetNotExceedRatio() != null, XzdCsContractChange::getBudgetNotExceedRatio, bo.getBudgetNotExceedRatio()); + lqw.eq(bo.getRealTimeUpdate() != null, XzdCsContractChange::getRealTimeUpdate, bo.getRealTimeUpdate()); + lqw.eq(bo.getContractCumulativeChangeAmount() != null, XzdCsContractChange::getContractCumulativeChangeAmount, bo.getContractCumulativeChangeAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getDocumentReference()), XzdCsContractChange::getDocumentReference, bo.getDocumentReference()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdCsContractChange::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增综合服务合同变更 + * + * @param bo 综合服务合同变更 + * @return 是否新增成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertByBo(XzdCsContractChangeBo bo) { + XzdCsContractChange add = MapstructUtils.convert(bo, XzdCsContractChange.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + addzixiang(bo,add); + String tableName = XzdClassEnum.CS_CONTRACT_CHANGE.getClassName(); + if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) { + throw new ServiceException("扣款与奖励项不能为空"); + } + //合同条款-扣款与奖励项 + for (XzdDeductionItems kkyjlx : bo.getKkyjlx()) { + kkyjlx.setTableName(tableName); + kkyjlx.setContractDetailsId(add.getId()); + } + xzdDeductionItemsService.saveBatch(bo.getKkyjlx()); + if (bo.getHttk() == null || bo.getHttk().isEmpty()) { + throw new ServiceException("合同条款不能为空"); + } + //合同条款-合同条款 + for (XzdContractClause clause : bo.getHttk()) { + clause.setTableName(tableName); + clause.setContractDetailsId(add.getId()); + } + xzdContractClauseService.saveBatch(bo.getHttk()); + if (bo.getZftk() == null || bo.getZftk().isEmpty()) { + throw new ServiceException("支付条款不能为空"); + } + //支付条款 + for (XzdSettlementRules clause : bo.getZftk()) { + clause.setContractDetailsId(add.getId()); + } + xzdSettlementRulesService.saveBatch(bo.getZftk()); + + return flag; + } + + /** + * 修改综合服务合同变更 + * + * @param bo 综合服务合同变更 + * @return 是否修改成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateByBo(XzdCsContractChangeBo bo) { + XzdCsContractChange update = MapstructUtils.convert(bo, XzdCsContractChange.class); + validEntityBeforeSave(update); + + XzdCsContractChange old = baseMapper.selectById(update.getId()); + if (old == null){ + throw new ServiceException("找不到要修改数据!!!"); + } + //合同条款-合同条款 + LambdaQueryWrapper lambdaQueryWrapper2 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, old.getId()); + xzdContractClauseService.remove(lambdaQueryWrapper2); + + + //支付条款 + LambdaQueryWrapper lambdaQueryWrapper3 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper3.eq(XzdSettlementRules::getContractDetailsId, old.getId()); + xzdSettlementRulesService.remove(lambdaQueryWrapper3); + + + //合同条款-扣款与奖励项 + LambdaQueryWrapper lambdaQueryWrapper4 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper4.eq(XzdDeductionItems::getContractDetailsId, old.getId()); + xzdDeductionItemsService.remove(lambdaQueryWrapper4); + + addzixiang(bo, update); + return baseMapper.updateById(update) > 0; + } + + private void addzixiang(XzdCsContractChangeBo bo, XzdCsContractChange update) { + String tableName = XzdClassEnum.CS_CONTRACT_CHANGE.getClassName(); + if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) { + throw new ServiceException("扣款与奖励项不能为空"); + } + //合同条款-扣款与奖励项 + for (XzdDeductionItems kkyjlx : bo.getKkyjlx()) { + kkyjlx.setTableName(tableName); + kkyjlx.setContractDetailsId(update.getId()); + } + xzdDeductionItemsService.saveBatch(bo.getKkyjlx()); + if (bo.getHttk() == null || bo.getHttk().isEmpty()) { + throw new ServiceException("合同条款不能为空"); + } + //合同条款-合同条款 + for (XzdContractClause clause : bo.getHttk()) { + clause.setTableName(tableName); + clause.setContractDetailsId(update.getId()); + } + xzdContractClauseService.saveBatch(bo.getHttk()); + if (bo.getZftk() == null || bo.getZftk().isEmpty()) { + throw new ServiceException("支付条款不能为空"); + } + //支付条款 + for (XzdSettlementRules clause : bo.getZftk()) { + clause.setContractDetailsId(update.getId()); + } + xzdSettlementRulesService.saveBatch(bo.getZftk()); + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdCsContractChange entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除综合服务合同变更信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + List deleteIds = new ArrayList<>(); + for (Long id : ids) { + XzdCsContractChangeVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + //合同条款-扣款与奖励项 + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.in(XzdDeductionItems::getContractDetailsId, ids); + xzdDeductionItemsService.remove(lambdaQueryWrapper1); + + //合同条款-合同条款 + LambdaQueryWrapper lambdaQueryWrapper2 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper2.in(XzdContractClause::getContractDetailsId, ids); + xzdContractClauseService.remove(lambdaQueryWrapper2); + + //支付条款 + LambdaQueryWrapper lambdaQueryWrapper3 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper3.in(XzdSettlementRules::getContractDetailsId, ids); + xzdSettlementRulesService.remove(lambdaQueryWrapper3); + return baseMapper.deleteByIds(ids) > 0; + } + + + /** + * 获取部分字段名称 + * @param item + */ + private void getName(XzdCsContractChangeVo item) { + //项目名称 + if (item.getProject() != null){ + String projectName = xzdProjectService.queryNameById(item.getProject()); + if (projectName != null){ + item.setProjectName(projectName); + } + } + //签约组织(客户信息列表) + String dtoR = iXzdCorrespondentList.queryNameById(item.getOrganization()); + if (dtoR!=null){ + item.setOrganizationName(dtoR); + } + + //甲方单位(客户信息列表) + String byid = iXzdCorrespondentList.queryNameById(item.getPartyA()); + if (byid!=null){ + item.setPartyAName(byid); + } + //乙方单位(供应商信息列表) + String xzdSupplierInfoVo = xzdSupplierInfoService.queryNameById(item.getPartyB()); + if (xzdSupplierInfoVo != null){ + item.setPartyBName(xzdSupplierInfoVo); + } + } + + /** + * 获取合同条款内容 + * @param vo + */ + private void getHttk(XzdCsContractChangeVo vo) { + //合同条款-扣款与奖励项 + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.eq(XzdDeductionItems::getContractDetailsId, vo.getId()); + List list = xzdDeductionItemsService.list(lambdaQueryWrapper1); + vo.setKkyjlx(list); + + //合同条款-合同条款 + LambdaQueryWrapper lambdaQueryWrapper2 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, vo.getId()); + List list1 = xzdContractClauseService.list(lambdaQueryWrapper2); + vo.setHttk(list1); + + //支付条款 + LambdaQueryWrapper lambdaQueryWrapper3 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper3.eq(XzdSettlementRules::getContractDetailsId, vo.getId()); + List list2 = xzdSettlementRulesService.list(lambdaQueryWrapper3); + vo.setZftk(list2); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractInformationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractInformationServiceImpl.java new file mode 100644 index 00000000..f03b074d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractInformationServiceImpl.java @@ -0,0 +1,408 @@ +package org.dromara.xzd.comprehensive.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.domain.R; +import org.dromara.common.core.exception.ServiceException; +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.common.utils.BatchNumberGenerator; +import org.dromara.system.domain.vo.SysDeptVo; +import org.dromara.system.service.impl.SysDeptServiceImpl; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.domain.XzdContractAdvanceInfo; +import org.dromara.xzd.domain.XzdContractClause; +import org.dromara.xzd.domain.XzdDeductionItems; +import org.dromara.xzd.domain.XzdSettlementRules; +import org.dromara.xzd.domain.dto.QuerCorrespondentDto; +import org.dromara.xzd.domain.vo.XzdContractDetailsVo; +import org.dromara.xzd.domain.vo.XzdProjectVo; +import org.dromara.xzd.domain.vo.XzdSupplierInfoVo; +import org.dromara.xzd.enums.XzdClassEnum; +import org.dromara.xzd.service.IXzdCorrespondentList; +import org.dromara.xzd.service.impl.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.dromara.xzd.comprehensive.domain.bo.XzdCsContractInformationBo; +import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractInformationVo; +import org.dromara.xzd.comprehensive.domain.XzdCsContractInformation; +import org.dromara.xzd.comprehensive.mapper.XzdCsContractInformationMapper; +import org.dromara.xzd.comprehensive.service.IXzdCsContractInformationService; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +/** + * 综合服务合同信息Service业务层处理 + * + * @author Lion Li + * @date 2025-10-13 + */ +@RequiredArgsConstructor +@Service +public class XzdCsContractInformationServiceImpl extends ServiceImpl implements IXzdCsContractInformationService { + + private final XzdCsContractInformationMapper baseMapper; + + @Autowired + private XzdDeductionItemsServiceImpl xzdDeductionItemsService; + @Autowired + private XzdContractClauseServiceImpl xzdContractClauseService; + @Autowired + private XzdSettlementRulesServiceImpl xzdSettlementRulesService; + @Autowired + private SysOssServiceImpl sysOssService; + + + @Autowired + private SysDeptServiceImpl sysDeptService; + @Autowired + private XzdProjectServiceImpl xzdProjectService; + @Autowired + private IXzdCorrespondentList iXzdCorrespondentList; + @Autowired + private XzdSupplierInfoServiceImpl xzdSupplierInfoService; + + /** + * 查询综合服务合同信息 + * + * @param id 主键 + * @return 综合服务合同信息 + */ + @Override + public XzdCsContractInformationVo queryById(Long id){ + XzdCsContractInformationVo vo = baseMapper.selectVoById(id); + if (vo!=null){ + getName(vo); + getHttk(vo); + } + return vo; + } + + /** + * 获取合同条款内容 + * @param vo + */ + private void getHttk(XzdCsContractInformationVo vo) { + //合同条款-扣款与奖励项 + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.eq(XzdDeductionItems::getContractDetailsId, vo.getId()); + List list = xzdDeductionItemsService.list(lambdaQueryWrapper1); + vo.setKkyjlx(list); + + //合同条款-合同条款 + LambdaQueryWrapper lambdaQueryWrapper2 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, vo.getId()); + List list1 = xzdContractClauseService.list(lambdaQueryWrapper2); + vo.setHttk(list1); + + //支付条款 + LambdaQueryWrapper lambdaQueryWrapper3 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper3.eq(XzdSettlementRules::getContractDetailsId, vo.getId()); + List list2 = xzdSettlementRulesService.list(lambdaQueryWrapper3); + vo.setZftk(list2); + } + + /** + * 分页查询综合服务合同信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 综合服务合同信息分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdCsContractInformationBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + for (XzdCsContractInformationVo item : result.getRecords()) { + getName(item); + } + return TableDataInfo.build(result); + } + + /** + * 获取部分字段名称 + * @param item + */ + private void getName(XzdCsContractInformationVo item) { + //部门名称 + if (item.getDepartmentId() != null){ + SysDeptVo sysDeptVo = sysDeptService.selectDeptById(item.getDepartmentId()); + if (sysDeptVo != null){ + item.setDepartmentName(sysDeptVo.getDeptName()); + } + } + //项目名称 + if (item.getProjectId() != null){ + String projectName = xzdProjectService.queryNameById(item.getProjectId()); + if (projectName != null){ + item.setProjectName(projectName); + } + } + //签约组织(客户信息列表) + + if (item.getSignOrganization() != null){ + String byid = iXzdCorrespondentList.queryNameById(item.getSignOrganization()); + if (byid!=null){ + item.setSignOrganizationName(byid); + } + } + //甲方单位(客户信息列表) + if (item.getPartyA() != null){ + String byid = iXzdCorrespondentList.queryNameById(item.getPartyA()); + if (byid!=null){ + item.setPartyAName(byid); + } + } + //乙方单位(供应商信息列表) + if (item.getPartyB() != null){ + String unitName = xzdSupplierInfoService.queryNameById(item.getPartyB()); + if (unitName != null){ + + item.setPartyBName(unitName); + } + } + //开票单位名称(供应商名称) + if (item.getInvoiceIssuer() != null){ + String unitName = xzdSupplierInfoService.queryNameById(item.getInvoiceIssuer()); + if (unitName != null){ + item.setInvoiceIssuerName(unitName); + } + } + //收票单位名称(客户名称) + if (item.getInvoiceReceiver()!= null){ + String byid = iXzdCorrespondentList.queryNameById(item.getInvoiceReceiver()); + if (byid!=null){ + item.setInvoiceReceiverName(byid); + } + } + } + + /** + * 查询符合条件的综合服务合同信息列表 + * + * @param bo 查询条件 + * @return 综合服务合同信息列表 + */ + @Override + public List queryList(XzdCsContractInformationBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdCsContractInformationBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdCsContractInformation::getId); + lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), XzdCsContractInformation::getContractCode, bo.getContractCode()); + lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdCsContractInformation::getContractName, bo.getContractName()); + lqw.eq(bo.getDocumentDate() != null, XzdCsContractInformation::getDocumentDate, bo.getDocumentDate()); + lqw.eq(StringUtils.isNotBlank(bo.getContractType()), XzdCsContractInformation::getContractType, bo.getContractType()); + lqw.eq(bo.getProjectId() != null, XzdCsContractInformation::getProjectId, bo.getProjectId()); + lqw.eq(StringUtils.isNotBlank(bo.getBusinessMode()), XzdCsContractInformation::getBusinessMode, bo.getBusinessMode()); + lqw.eq(bo.getSignDate() != null, XzdCsContractInformation::getSignDate, bo.getSignDate()); + lqw.eq(bo.getPartyA() != null, XzdCsContractInformation::getPartyA, bo.getPartyA()); + lqw.eq(bo.getTaxIncludedAmount() != null, XzdCsContractInformation::getTaxIncludedAmount, bo.getTaxIncludedAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getContractStatus()), XzdCsContractInformation::getContractStatus, bo.getContractStatus()); + lqw.eq(bo.getPartyB() != null, XzdCsContractInformation::getPartyB, bo.getPartyB()); + lqw.eq(bo.getCumulativeChangeAmount() != null, XzdCsContractInformation::getCumulativeChangeAmount, bo.getCumulativeChangeAmount()); + lqw.eq(bo.getDepartmentId() != null, XzdCsContractInformation::getDepartmentId, bo.getDepartmentId()); + lqw.eq(bo.getArchivalDate() != null, XzdCsContractInformation::getArchivalDate, bo.getArchivalDate()); + lqw.eq(bo.getIsRD() != null, XzdCsContractInformation::getIsRD, bo.getIsRD()); + lqw.eq(bo.getInvoiceIssuer() != null, XzdCsContractInformation::getInvoiceIssuer, bo.getInvoiceIssuer()); + lqw.eq(bo.getInvoiceReceiver() != null, XzdCsContractInformation::getInvoiceReceiver, bo.getInvoiceReceiver()); + lqw.eq(bo.getValidStartDate() != null, XzdCsContractInformation::getValidStartDate, bo.getValidStartDate()); + lqw.eq(bo.getValidEndDate() != null, XzdCsContractInformation::getValidEndDate, bo.getValidEndDate()); + lqw.eq(bo.getIsSealed() != null, XzdCsContractInformation::getIsSealed, bo.getIsSealed()); + lqw.eq(StringUtils.isNotBlank(bo.getTaxIncludedAmountUpper()), XzdCsContractInformation::getTaxIncludedAmountUpper, bo.getTaxIncludedAmountUpper()); + lqw.eq(StringUtils.isNotBlank(bo.getWarning()), XzdCsContractInformation::getWarning, bo.getWarning()); + lqw.eq(StringUtils.isNotBlank(bo.getPaymentTerms()), XzdCsContractInformation::getPaymentTerms, bo.getPaymentTerms()); + lqw.eq(bo.getSignOrganization() != null, XzdCsContractInformation::getSignOrganization, bo.getSignOrganization()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdCsContractInformation::getProjectType, bo.getProjectType()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdCsContractInformation::getProjectCategory, bo.getProjectCategory()); + lqw.eq(bo.getProjectOwner() != null, XzdCsContractInformation::getProjectOwner, bo.getProjectOwner()); + lqw.eq(bo.getWbs() != null, XzdCsContractInformation::getWbs, bo.getWbs()); + lqw.eq(StringUtils.isNotBlank(bo.getFilingStatus()), XzdCsContractInformation::getFilingStatus, bo.getFilingStatus()); + lqw.eq(bo.getFilingTime() != null, XzdCsContractInformation::getFilingTime, bo.getFilingTime()); + lqw.eq(bo.getNeedFiling() != null, XzdCsContractInformation::getNeedFiling, bo.getNeedFiling()); + lqw.eq(bo.getBudgetCategory() != null, XzdCsContractInformation::getBudgetCategory, bo.getBudgetCategory()); + lqw.eq(bo.getIsFixedUnitPrice() != null, XzdCsContractInformation::getIsFixedUnitPrice, bo.getIsFixedUnitPrice()); + lqw.eq(bo.getIsLumpSum() != null, XzdCsContractInformation::getIsLumpSum, bo.getIsLumpSum()); + lqw.eq(bo.getPaymentNotExceedContract() != null, XzdCsContractInformation::getPaymentNotExceedContract, bo.getPaymentNotExceedContract()); + lqw.eq(bo.getPaymentNotExceedRatio() != null, XzdCsContractInformation::getPaymentNotExceedRatio, bo.getPaymentNotExceedRatio()); + lqw.eq(bo.getBudgetNotExceedContract() != null, XzdCsContractInformation::getBudgetNotExceedContract, bo.getBudgetNotExceedContract()); + lqw.eq(bo.getBudgetNotExceedRatio() != null, XzdCsContractInformation::getBudgetNotExceedRatio, bo.getBudgetNotExceedRatio()); + lqw.eq(StringUtils.isNotBlank(bo.getDocumentReference()), XzdCsContractInformation::getDocumentReference, bo.getDocumentReference()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdCsContractInformation::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增综合服务合同信息 + * + * @param bo 综合服务合同信息 + * @return 是否新增成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertByBo(XzdCsContractInformationBo bo) { + XzdCsContractInformation add = MapstructUtils.convert(bo, XzdCsContractInformation.class); + validEntityBeforeSave(add); + String banBen = BatchNumberGenerator.generateBatchNumber("ZHFWHT-"); + add.setContractCode(banBen); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + String tableName = XzdClassEnum.CS_CONTRACT_INFORMATION.getClassName(); + if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) { + throw new ServiceException("扣款与奖励项不能为空"); + } + //合同条款-扣款与奖励项 + for (XzdDeductionItems kkyjlx : bo.getKkyjlx()) { + kkyjlx.setTableName(tableName); + kkyjlx.setContractDetailsId(add.getId()); + } + xzdDeductionItemsService.saveBatch(bo.getKkyjlx()); + if (bo.getHttk() == null || bo.getHttk().isEmpty()) { + throw new ServiceException("合同条款不能为空"); + } + //合同条款-合同条款 + for (XzdContractClause clause : bo.getHttk()) { + clause.setTableName(tableName); + clause.setContractDetailsId(add.getId()); + } + xzdContractClauseService.saveBatch(bo.getHttk()); + if (bo.getZftk() == null || bo.getZftk().isEmpty()) { + throw new ServiceException("支付条款不能为空"); + } + //支付条款 + for (XzdSettlementRules clause : bo.getZftk()) { + clause.setContractDetailsId(add.getId()); + } + xzdSettlementRulesService.saveBatch(bo.getZftk()); + return flag; + } + + /** + * 修改综合服务合同信息 + * + * @param bo 综合服务合同信息 + * @return 是否修改成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateByBo(XzdCsContractInformationBo bo) { + XzdCsContractInformation update = MapstructUtils.convert(bo, XzdCsContractInformation.class); + validEntityBeforeSave(update); + XzdCsContractInformation old = baseMapper.selectById(update.getId()); + if (old == null){ + throw new ServiceException("找不到要修改数据!!!"); + } + + //合同条款-合同条款 + LambdaQueryWrapper lambdaQueryWrapper2 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper2.eq(XzdContractClause::getContractDetailsId, old.getId()); + xzdContractClauseService.remove(lambdaQueryWrapper2); + + + //支付条款 + LambdaQueryWrapper lambdaQueryWrapper3 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper3.eq(XzdSettlementRules::getContractDetailsId, old.getId()); + xzdSettlementRulesService.remove(lambdaQueryWrapper3); + + + //合同条款-扣款与奖励项 + LambdaQueryWrapper lambdaQueryWrapper4 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper4.eq(XzdDeductionItems::getContractDetailsId, old.getId()); + xzdDeductionItemsService.remove(lambdaQueryWrapper4); + + String tableName = XzdClassEnum.CS_CONTRACT_INFORMATION.getClassName(); + if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) { + throw new ServiceException("扣款与奖励项不能为空"); + } + //合同条款-扣款与奖励项 + for (XzdDeductionItems kkyjlx : bo.getKkyjlx()) { + kkyjlx.setTableName(tableName); + kkyjlx.setContractDetailsId(update.getId()); + } + xzdDeductionItemsService.saveBatch(bo.getKkyjlx()); + if (bo.getHttk() == null || bo.getHttk().isEmpty()) { + throw new ServiceException("合同条款不能为空"); + } + //合同条款-合同条款 + for (XzdContractClause clause : bo.getHttk()) { + clause.setTableName(tableName); + clause.setContractDetailsId(update.getId()); + } + xzdContractClauseService.saveBatch(bo.getHttk()); + if (bo.getZftk() == null || bo.getZftk().isEmpty()) { + throw new ServiceException("支付条款不能为空"); + } + //支付条款 + for (XzdSettlementRules clause : bo.getZftk()) { + clause.setContractDetailsId(update.getId()); + } + xzdSettlementRulesService.saveBatch(bo.getZftk()); + + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdCsContractInformation entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除综合服务合同信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + List deleteIds = new ArrayList<>(); + for (Long id : ids) { + XzdCsContractInformationVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + //合同条款-扣款与奖励项 + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.in(XzdDeductionItems::getContractDetailsId, ids); + xzdDeductionItemsService.remove(lambdaQueryWrapper1); + + //合同条款-合同条款 + LambdaQueryWrapper lambdaQueryWrapper2 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper2.in(XzdContractClause::getContractDetailsId, ids); + xzdContractClauseService.remove(lambdaQueryWrapper2); + + //支付条款 + LambdaQueryWrapper lambdaQueryWrapper3 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper3.in(XzdSettlementRules::getContractDetailsId, ids); + xzdSettlementRulesService.remove(lambdaQueryWrapper3); + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractSuspendServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractSuspendServiceImpl.java new file mode 100644 index 00000000..832b5f7a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/comprehensive/service/impl/XzdCsContractSuspendServiceImpl.java @@ -0,0 +1,210 @@ +package org.dromara.xzd.comprehensive.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.system.domain.vo.SysDeptVo; +import org.dromara.system.service.impl.SysDeptServiceImpl; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractInformationVo; +import org.dromara.xzd.domain.dto.QuerCorrespondentDto; +import org.dromara.xzd.domain.vo.XzdProjectVo; +import org.dromara.xzd.domain.vo.XzdSupplierInfoVo; +import org.dromara.xzd.service.IXzdCorrespondentList; +import org.dromara.xzd.service.impl.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.dromara.xzd.comprehensive.domain.bo.XzdCsContractSuspendBo; +import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractSuspendVo; +import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspend; +import org.dromara.xzd.comprehensive.mapper.XzdCsContractSuspendMapper; +import org.dromara.xzd.comprehensive.service.IXzdCsContractSuspendService; + +import java.util.*; + +/** + * 综合服务合同终止Service业务层处理 + * + * @author Lion Li + * @date 2025-10-13 + */ +@RequiredArgsConstructor +@Service +public class XzdCsContractSuspendServiceImpl extends ServiceImpl implements IXzdCsContractSuspendService { + + private final XzdCsContractSuspendMapper baseMapper; + + @Autowired + private SysOssServiceImpl sysOssService; + + + + @Autowired + private XzdProjectServiceImpl xzdProjectService; + @Autowired + private IXzdCorrespondentList iXzdCorrespondentList; + @Autowired + private XzdSupplierInfoServiceImpl xzdSupplierInfoService; + + /** + * 查询综合服务合同终止 + * + * @param id 主键 + * @return 综合服务合同终止 + */ + @Override + public XzdCsContractSuspendVo queryById(Long id){ + XzdCsContractSuspendVo vo = baseMapper.selectVoById(id); + if (vo!=null){ + getName(vo); + } + return vo; + } + + /** + * 分页查询综合服务合同终止列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 综合服务合同终止分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdCsContractSuspendBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + result.getRecords().forEach(this::getName); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的综合服务合同终止列表 + * + * @param bo 查询条件 + * @return 综合服务合同终止列表 + */ + @Override + public List queryList(XzdCsContractSuspendBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdCsContractSuspendBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdCsContractSuspend::getId); + lqw.eq(bo.getContractInformationId() != null, XzdCsContractSuspend::getContractInformationId, bo.getContractInformationId()); + lqw.eq(StringUtils.isNotBlank(bo.getReceiptsCode()), XzdCsContractSuspend::getReceiptsCode, bo.getReceiptsCode()); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdCsContractSuspend::getTitle, bo.getTitle()); + lqw.eq(bo.getDocumentDate() != null, XzdCsContractSuspend::getDocumentDate, bo.getDocumentDate()); + lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdCsContractSuspend::getContractName, bo.getContractName()); + lqw.eq(bo.getTerminationDate() != null, XzdCsContractSuspend::getTerminationDate, bo.getTerminationDate()); + lqw.eq(bo.getProject()!=null, XzdCsContractSuspend::getProject, bo.getProject()); + lqw.eq(bo.getArtyBUnit() != null, XzdCsContractSuspend::getArtyBUnit, bo.getArtyBUnit()); + lqw.eq(bo.getPartyAUnit() != null, XzdCsContractSuspend::getPartyAUnit, bo.getPartyAUnit()); + lqw.eq(StringUtils.isNotBlank(bo.getTerminationCause()), XzdCsContractSuspend::getTerminationCause, bo.getTerminationCause()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), XzdCsContractSuspend::getProjectCategory, bo.getProjectCategory()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdCsContractSuspend::getProjectType, bo.getProjectType()); + lqw.eq(bo.getCumulativeSettlementAmount() != null, XzdCsContractSuspend::getCumulativeSettlementAmount, bo.getCumulativeSettlementAmount()); + lqw.eq(bo.getCumulativePaymentAmount() != null, XzdCsContractSuspend::getCumulativePaymentAmount, bo.getCumulativePaymentAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdCsContractSuspend::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdCsContractSuspend::getAuditStatus, bo.getAuditStatus()); + return lqw; + } + + /** + * 新增综合服务合同终止 + * + * @param bo 综合服务合同终止 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdCsContractSuspendBo bo) { + XzdCsContractSuspend add = MapstructUtils.convert(bo, XzdCsContractSuspend.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改综合服务合同终止 + * + * @param bo 综合服务合同终止 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdCsContractSuspendBo bo) { + XzdCsContractSuspend update = MapstructUtils.convert(bo, XzdCsContractSuspend.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdCsContractSuspend entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除综合服务合同终止信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + List deleteIds = new ArrayList<>(); + for (Long id : ids) { + XzdCsContractSuspendVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + return baseMapper.deleteByIds(ids) > 0; + } + + /** + * 获取部分字段名称 + * @param item + */ + private void getName(XzdCsContractSuspendVo item) { + //项目名称 + if (item.getProject() != null){ + String projectName = xzdProjectService.queryNameById(item.getProject()); + if (projectName != null){ + item.setProjectName(projectName); + } + } + //甲方单位(客户信息列表) + String byid = iXzdCorrespondentList.queryNameById(item.getPartyAUnit()); + if (byid!=null){ + item.setPartyAUnitNamme(byid); + } + //乙方单位(供应商信息列表) + String xzdSupplierInfoVo = xzdSupplierInfoService.queryNameById(item.getArtyBUnit()); + if (xzdSupplierInfoVo != null){ + item.setArtyBUnitName(xzdSupplierInfoVo); + } + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSettlementRules.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSettlementRules.java index c7d15738..25309776 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSettlementRules.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdSettlementRules.java @@ -22,7 +22,7 @@ public class XzdSettlementRules extends BaseEntity { private static final long serialVersionUID = 1L; /** - * + * */ @TableId(value = "id") private Long id; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/enums/XzdClassEnum.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/enums/XzdClassEnum.java index 98308b5b..0f10ab65 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/enums/XzdClassEnum.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/enums/XzdClassEnum.java @@ -7,7 +7,11 @@ public enum XzdClassEnum { XZD_CONTRACT_CHANGE("xzd_contract_change"), - CS_CONTRACT_INFORMATION("xzd_cs_contract_information"), + CS_CONTRACT_INFORMATION("xzd_cs_contract_information"), //综合服务合同信息 + CS_CONTRACT_CHANGE("xzd_cs_contract_change"), //综合服务合同变更 + JS_ZHFW_JINDU("xzd_js_zhfw_jindu"), //综合服务合同进度结算 + JS_CG_JUNGON("xzd_js_cg_jungon"), //采购合同竣工结算 + JS_CG_JINDU("xzd_js_cg_jindu"), //采购合同进度结算 // 分包合同 FENBAOHETONG_INFORMATION("xzd_subcontract"), // 采购变更合同 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCorrespondentList.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCorrespondentList.java index 50ddb835..4064b1fb 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCorrespondentList.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCorrespondentList.java @@ -24,4 +24,6 @@ public interface IXzdCorrespondentList { R putCorrespondent(AddCorrespondentDto dto); R getCustomerByid(Long id); + + String queryNameById(Long partyAUnit); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCorrespondentListImp.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCorrespondentListImp.java index d7b5d75f..c28bc35e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCorrespondentListImp.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCorrespondentListImp.java @@ -504,6 +504,12 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList { return R.ok(dto); } + @Override + public String queryNameById(Long id) { + XzdCustomerinformation xzdCustomerinformation = xzdCustomerinformationMapper.selectById(id); + return xzdCustomerinformation != null ? xzdCustomerinformation.getUnitName():null; + } + public void delCorrespondentVoid(Long dto){ // 客户信息 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsCgJinduController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsCgJinduController.java new file mode 100644 index 00000000..c3e34322 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsCgJinduController.java @@ -0,0 +1,105 @@ +package org.dromara.xzd.settlement.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.settlement.domain.vo.XzdJsCgJinduVo; +import org.dromara.xzd.settlement.domain.bo.XzdJsCgJinduBo; +import org.dromara.xzd.settlement.service.IXzdJsCgJinduService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 采购合同进度结算 + * + * @author Lion Li + * @date 2025-10-14 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/settlement/jsCgJindu") +public class XzdJsCgJinduController extends BaseController { + + private final IXzdJsCgJinduService xzdJsCgJinduService; + + /** + * 查询采购合同进度结算列表 + */ + @SaCheckPermission("settlement:jsCgJindu:list") + @GetMapping("/list") + public TableDataInfo list(XzdJsCgJinduBo bo, PageQuery pageQuery) { + return xzdJsCgJinduService.queryPageList(bo, pageQuery); + } + + /** + * 导出采购合同进度结算列表 + */ + @SaCheckPermission("settlement:jsCgJindu:export") + @Log(title = "采购合同进度结算", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdJsCgJinduBo bo, HttpServletResponse response) { + List list = xzdJsCgJinduService.queryList(bo); + ExcelUtil.exportExcel(list, "采购合同进度结算", XzdJsCgJinduVo.class, response); + } + + /** + * 获取采购合同进度结算详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("settlement:jsCgJindu:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdJsCgJinduService.queryById(id)); + } + + /** + * 新增采购合同进度结算 + */ + @SaCheckPermission("settlement:jsCgJindu:add") + @Log(title = "采购合同进度结算", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdJsCgJinduBo bo) { + return toAjax(xzdJsCgJinduService.insertByBo(bo)); + } + + /** + * 修改采购合同进度结算 + */ + @SaCheckPermission("settlement:jsCgJindu:edit") + @Log(title = "采购合同进度结算", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdJsCgJinduBo bo) { + return toAjax(xzdJsCgJinduService.updateByBo(bo)); + } + + /** + * 删除采购合同进度结算 + * + * @param ids 主键串 + */ + @SaCheckPermission("settlement:jsCgJindu:remove") + @Log(title = "采购合同进度结算", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdJsCgJinduService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsCgJungonController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsCgJungonController.java new file mode 100644 index 00000000..3b8a98fa --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsCgJungonController.java @@ -0,0 +1,105 @@ +package org.dromara.xzd.settlement.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.settlement.domain.vo.XzdJsCgJungonVo; +import org.dromara.xzd.settlement.domain.bo.XzdJsCgJungonBo; +import org.dromara.xzd.settlement.service.IXzdJsCgJungonService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 采购合同竣工结算 + * + * @author Lion Li + * @date 2025-10-14 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/settlement/jsCgJungon") +public class XzdJsCgJungonController extends BaseController { + + private final IXzdJsCgJungonService xzdJsCgJungonService; + + /** + * 查询采购合同竣工结算列表 + */ + @SaCheckPermission("settlement:jsCgJungon:list") + @GetMapping("/list") + public TableDataInfo list(XzdJsCgJungonBo bo, PageQuery pageQuery) { + return xzdJsCgJungonService.queryPageList(bo, pageQuery); + } + + /** + * 导出采购合同竣工结算列表 + */ + @SaCheckPermission("settlement:jsCgJungon:export") + @Log(title = "采购合同竣工结算", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdJsCgJungonBo bo, HttpServletResponse response) { + List list = xzdJsCgJungonService.queryList(bo); + ExcelUtil.exportExcel(list, "采购合同竣工结算", XzdJsCgJungonVo.class, response); + } + + /** + * 获取采购合同竣工结算详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("settlement:jsCgJungon:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdJsCgJungonService.queryById(id)); + } + + /** + * 新增采购合同竣工结算 + */ + @SaCheckPermission("settlement:jsCgJungon:add") + @Log(title = "采购合同竣工结算", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdJsCgJungonBo bo) { + return toAjax(xzdJsCgJungonService.insertByBo(bo)); + } + + /** + * 修改采购合同竣工结算 + */ + @SaCheckPermission("settlement:jsCgJungon:edit") + @Log(title = "采购合同竣工结算", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdJsCgJungonBo bo) { + return toAjax(xzdJsCgJungonService.updateByBo(bo)); + } + + /** + * 删除采购合同竣工结算 + * + * @param ids 主键串 + */ + @SaCheckPermission("settlement:jsCgJungon:remove") + @Log(title = "采购合同竣工结算", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdJsCgJungonService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsCgJungonEditController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsCgJungonEditController.java new file mode 100644 index 00000000..2bd5a708 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsCgJungonEditController.java @@ -0,0 +1,105 @@ +package org.dromara.xzd.settlement.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.settlement.domain.vo.XzdJsCgJungonEditVo; +import org.dromara.xzd.settlement.domain.bo.XzdJsCgJungonEditBo; +import org.dromara.xzd.settlement.service.IXzdJsCgJungonEditService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 采购合同竣工结算调整 + * + * @author Lion Li + * @date 2025-10-14 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/settlement/jsCgJungonEdit") +public class XzdJsCgJungonEditController extends BaseController { + + private final IXzdJsCgJungonEditService xzdJsCgJungonEditService; + + /** + * 查询采购合同竣工结算调整列表 + */ + @SaCheckPermission("settlement:jsCgJungonEdit:list") + @GetMapping("/list") + public TableDataInfo list(XzdJsCgJungonEditBo bo, PageQuery pageQuery) { + return xzdJsCgJungonEditService.queryPageList(bo, pageQuery); + } + + /** + * 导出采购合同竣工结算调整列表 + */ + @SaCheckPermission("settlement:jsCgJungonEdit:export") + @Log(title = "采购合同竣工结算调整", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdJsCgJungonEditBo bo, HttpServletResponse response) { + List list = xzdJsCgJungonEditService.queryList(bo); + ExcelUtil.exportExcel(list, "采购合同竣工结算调整", XzdJsCgJungonEditVo.class, response); + } + + /** + * 获取采购合同竣工结算调整详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("settlement:jsCgJungonEdit:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdJsCgJungonEditService.queryById(id)); + } + + /** + * 新增采购合同竣工结算调整 + */ + @SaCheckPermission("settlement:jsCgJungonEdit:add") + @Log(title = "采购合同竣工结算调整", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdJsCgJungonEditBo bo) { + return toAjax(xzdJsCgJungonEditService.insertByBo(bo)); + } + + /** + * 修改采购合同竣工结算调整 + */ + @SaCheckPermission("settlement:jsCgJungonEdit:edit") + @Log(title = "采购合同竣工结算调整", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdJsCgJungonEditBo bo) { + return toAjax(xzdJsCgJungonEditService.updateByBo(bo)); + } + + /** + * 删除采购合同竣工结算调整 + * + * @param ids 主键串 + */ + @SaCheckPermission("settlement:jsCgJungonEdit:remove") + @Log(title = "采购合同竣工结算调整", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdJsCgJungonEditService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsDeductionItemsController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsDeductionItemsController.java new file mode 100644 index 00000000..cfe5c41a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsDeductionItemsController.java @@ -0,0 +1,105 @@ +package org.dromara.xzd.settlement.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.settlement.domain.vo.XzdJsDeductionItemsVo; +import org.dromara.xzd.settlement.domain.bo.XzdJsDeductionItemsBo; +import org.dromara.xzd.settlement.service.IXzdJsDeductionItemsService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 结算-扣款与奖励项 + * + * @author Lion Li + * @date 2025-10-14 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/settlement/jsDeductionItems") +public class XzdJsDeductionItemsController extends BaseController { + + private final IXzdJsDeductionItemsService xzdJsDeductionItemsService; + + /** + * 查询结算-扣款与奖励项列表 + */ + @SaCheckPermission("settlement:jsDeductionItems:list") + @GetMapping("/list") + public TableDataInfo list(XzdJsDeductionItemsBo bo, PageQuery pageQuery) { + return xzdJsDeductionItemsService.queryPageList(bo, pageQuery); + } + + /** + * 导出结算-扣款与奖励项列表 + */ + @SaCheckPermission("settlement:jsDeductionItems:export") + @Log(title = "结算-扣款与奖励项", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdJsDeductionItemsBo bo, HttpServletResponse response) { + List list = xzdJsDeductionItemsService.queryList(bo); + ExcelUtil.exportExcel(list, "结算-扣款与奖励项", XzdJsDeductionItemsVo.class, response); + } + + /** + * 获取结算-扣款与奖励项详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("settlement:jsDeductionItems:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdJsDeductionItemsService.queryById(id)); + } + + /** + * 新增结算-扣款与奖励项 + */ + @SaCheckPermission("settlement:jsDeductionItems:add") + @Log(title = "结算-扣款与奖励项", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdJsDeductionItemsBo bo) { + return toAjax(xzdJsDeductionItemsService.insertByBo(bo)); + } + + /** + * 修改结算-扣款与奖励项 + */ + @SaCheckPermission("settlement:jsDeductionItems:edit") + @Log(title = "结算-扣款与奖励项", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdJsDeductionItemsBo bo) { + return toAjax(xzdJsDeductionItemsService.updateByBo(bo)); + } + + /** + * 删除结算-扣款与奖励项 + * + * @param ids 主键串 + */ + @SaCheckPermission("settlement:jsDeductionItems:remove") + @Log(title = "结算-扣款与奖励项", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdJsDeductionItemsService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsZhfwJinduController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsZhfwJinduController.java new file mode 100644 index 00000000..120ea8bf --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/controller/XzdJsZhfwJinduController.java @@ -0,0 +1,105 @@ +package org.dromara.xzd.settlement.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.settlement.domain.vo.XzdJsZhfwJinduVo; +import org.dromara.xzd.settlement.domain.bo.XzdJsZhfwJinduBo; +import org.dromara.xzd.settlement.service.IXzdJsZhfwJinduService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 综合服务合同进度结算 + * + * @author Lion Li + * @date 2025-10-14 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/settlement/jsZhfwJindu") +public class XzdJsZhfwJinduController extends BaseController { + + private final IXzdJsZhfwJinduService xzdJsZhfwJinduService; + + /** + * 查询综合服务合同进度结算列表 + */ + @SaCheckPermission("settlement:jsZhfwJindu:list") + @GetMapping("/list") + public TableDataInfo list(XzdJsZhfwJinduBo bo, PageQuery pageQuery) { + return xzdJsZhfwJinduService.queryPageList(bo, pageQuery); + } + + /** + * 导出综合服务合同进度结算列表 + */ + @SaCheckPermission("settlement:jsZhfwJindu:export") + @Log(title = "综合服务合同进度结算", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdJsZhfwJinduBo bo, HttpServletResponse response) { + List list = xzdJsZhfwJinduService.queryList(bo); + ExcelUtil.exportExcel(list, "综合服务合同进度结算", XzdJsZhfwJinduVo.class, response); + } + + /** + * 获取综合服务合同进度结算详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("settlement:jsZhfwJindu:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdJsZhfwJinduService.queryById(id)); + } + + /** + * 新增综合服务合同进度结算 + */ + @SaCheckPermission("settlement:jsZhfwJindu:add") + @Log(title = "综合服务合同进度结算", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdJsZhfwJinduBo bo) { + return toAjax(xzdJsZhfwJinduService.insertByBo(bo)); + } + + /** + * 修改综合服务合同进度结算 + */ + @SaCheckPermission("settlement:jsZhfwJindu:edit") + @Log(title = "综合服务合同进度结算", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdJsZhfwJinduBo bo) { + return toAjax(xzdJsZhfwJinduService.updateByBo(bo)); + } + + /** + * 删除综合服务合同进度结算 + * + * @param ids 主键串 + */ + @SaCheckPermission("settlement:jsZhfwJindu:remove") + @Log(title = "综合服务合同进度结算", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdJsZhfwJinduService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsCgJindu.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsCgJindu.java new file mode 100644 index 00000000..72a89838 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsCgJindu.java @@ -0,0 +1,163 @@ +package org.dromara.xzd.settlement.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.io.Serial; +import java.time.LocalDate; + +/** + * 采购合同进度结算对象 xzd_js_cg_jindu + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_js_cg_jindu") +public class XzdJsCgJindu extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID,自增 + */ + @TableId(value = "id") + private Long id; + + /** + * 单据编码(带*,必填) + */ + private String docCode; + + /** + * 标题(带*,必填) + */ + private String title; + + /** + * 单据日期(带*,必填) + */ + private LocalDate docDate; + + /** + * 合同编码(带查询,关联合同表) + */ + private Long contractCode; + + /** + * 合同名称(关联合同后显示) + */ + private String contractName; + + /** + * 统计周期(带*,必填,下拉选择) + */ + private String statCycle; + + /** + * 计量开始(带*,必填) + */ + private LocalDate measureStart; + + /** + * 项目(带*,必填) + */ + private Long project; + + /** + * 审批金额(默认0.00) + */ + private BigDecimal approveAmount; + + /** + * 计量结束(带*,必填) + */ + private LocalDate measureEnd; + + /** + * 结算单位(带查询,关联单位表) + */ + private Long settlementUnit; + + /** + * 合同金额(默认0.00) + */ + private BigDecimal contractAmount; + + /** + * 累计结算金额(不含本期)(默认0.00) + */ + private BigDecimal totalSettlementExcludeCurrent; + + /** + * 累计结算金额(含本期)(默认0.00) + */ + private BigDecimal totalSettlementIncludeCurrent; + + /** + * 本次结算比例(默认0.00%) + */ + private BigDecimal currentSettlementRatio; + + /** + * 已结算比例(不含本期)(默认0.00%) + */ + private BigDecimal settledRatioExcludeCurrent; + + /** + * 截止本期结算比例(默认0.00%) + */ + private BigDecimal settlementRatioUntilCurrent; + + /** + * 备注(长文本) + */ + private String remark; + + /** + * 实时刷新(复选框,0=未勾选,1=勾选) + */ + private Long realTimeRefresh; + + /** + * 合同含税金额(默认0.00) + */ + private BigDecimal contractTaxInclAmount; + + /** + * 合同不含税金额(默认0.00) + */ + private BigDecimal contractTaxExclAmount; + + /** + * 累计结算金额(默认0.00) + */ + private BigDecimal totalSettledAmount; + + /** + * 本期扣款金额(默认0.00) + */ + private BigDecimal currentDeductionAmount; + + /** + * 本期奖励金额(默认0.00) + */ + private BigDecimal currentRewardAmount; + + /** + * 单据引用 + */ + private String documentReference; + + /** + * 文件ID + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsCgJungon.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsCgJungon.java new file mode 100644 index 00000000..594cbe9a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsCgJungon.java @@ -0,0 +1,143 @@ +package org.dromara.xzd.settlement.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.io.Serial; +import java.time.LocalDate; + +/** + * 采购合同竣工结算对象 xzd_js_cg_jungon + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_js_cg_jungon") +public class XzdJsCgJungon extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID,自增 + */ + @TableId(value = "id") + private Long id; + + /** + * 单据编号(带*,必填) + */ + private String docCode; + + /** + * 标题(带*,必填) + */ + private String title; + + /** + * 单据日期(带*,必填) + */ + private LocalDate docDate; + + /** + * 合同编号(带*,关联合同表) + */ + private Long contractCode; + + /** + * 合同名称(关联合同后显示) + */ + private String contractName; + + /** + * 决算金额 + */ + private BigDecimal finalAmount; + + /** + * 本期决算总额 + */ + private BigDecimal currentPeriodTotal; + + /** + * 本期扣款金额 + */ + private BigDecimal currentDeduction; + + /** + * 本期奖励金额 + */ + private BigDecimal currentReward; + + /** + * 审定日期 + */ + private LocalDate approveDate; + + /** + * 工程项目(带*,关联项目表) + */ + private Long projectId; + + /** + * 统计周期(下拉选择,如“2025年10月”) + */ + private String statCycle; + + /** + * 甲方单位 + */ + private Long partyA; + + /** + * 乙方单位 + */ + private Long partyB; + + /** + * 备注 + */ + private String remark; + + /** + * 集采模式 + */ + private Long procurementMode; + + /** + * 业主单位(带查询,关联单位表) + */ + private Long ownerUnit; + + /** + * 监理单位(带查询,关联单位表) + */ + private Long supervisionUnit; + + /** + * 施工单位(带查询,关联单位表) + */ + private Long constructionUnit; + + /** + * 审核单位(带查询,关联单位表) + */ + private Long auditUnit; + + /** + * 单据引用 + */ + private String documentReference; + + /** + * 文件ID + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsCgJungonEdit.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsCgJungonEdit.java new file mode 100644 index 00000000..5a08b92d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsCgJungonEdit.java @@ -0,0 +1,93 @@ +package org.dromara.xzd.settlement.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.io.Serial; +import java.time.LocalDate; + +/** + * 采购合同竣工结算调整对象 xzd_js_cg_jungon_edit + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_js_cg_jungon_edit") +public class XzdJsCgJungonEdit extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID,自增 + */ + @TableId(value = "id") + private Long id; + + /** + * 单据编号(带*,必填) + */ + private String docCode; + + /** + * 标题(带*,必填) + */ + private String title; + + /** + * 单据日期(带*,必填) + */ + private LocalDate docDate; + + /** + * 决算单号(带*,必填) + */ + private String finalAccountCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 合同编号 + */ + private String contractCode; + + /** + * 调整后决算金额(带*,必填) + */ + private BigDecimal adjustedFinalAmount; + + /** + * 工程项目(带*,必填) + */ + private Long projectId; + + /** + * 默认财务组织 + */ + private Long defaultFinanceOrg; + + /** + * 调整说明 + */ + private String adjustmentDescription; + + /** + * 备注 + */ + private String remark; + + /** + * 集采模式 + */ + private String procurementMode; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsDeductionItems.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsDeductionItems.java new file mode 100644 index 00000000..ca0efcbc --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsDeductionItems.java @@ -0,0 +1,100 @@ +package org.dromara.xzd.settlement.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.io.Serial; + +/** + * 结算-扣款与奖励项对象 xzd_js_deduction_items + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_js_deduction_items") +public class XzdJsDeductionItems extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 明细记录主键(自增) + */ + @TableId(value = "id") + private Long id; + + /** + * 表名 + */ + private String tableName; + + /** + * 关联结算主表的ID(外键,指向结算单据表) + */ + private Long mainDocId; + + /** + * 明细类型:1=扣款,2=奖励 + */ + private Long detailType; + + /** + * 款项类别(带*,必填) + */ + private String itemCategory; + + /** + * 本期金额(扣款/奖励金额) + */ + private BigDecimal currentPeriodAmount; + + /** + * 本期不含税金额 + */ + private BigDecimal currentTaxExclAmount; + /** + * 税率 + */ + private BigDecimal taxRate; + /** + * 税额 + */ + private BigDecimal taxAmount; + + /** + * 累计金额(累计扣款/累计奖励) + */ + private BigDecimal totalAmount; + + /** + * 申请扣除(仅“扣款”明细必填,1=是,0=否) + */ + private Long applyDeduction; + + /** + * 款项属性(带*,必填) + */ + private String itemProperty; + + /** + * WBS编码(项目工作分解结构编码) + */ + private String wbs; + + /** + * CBS编码(项目成本分解结构编码) + */ + private String cbs; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsZhfwJindu.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsZhfwJindu.java new file mode 100644 index 00000000..4ef772f3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/XzdJsZhfwJindu.java @@ -0,0 +1,158 @@ +package org.dromara.xzd.settlement.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.io.Serial; +import java.time.LocalDate; + +/** + * 综合服务合同进度结算对象 xzd_js_zhfw_jindu + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_js_zhfw_jindu") +public class XzdJsZhfwJindu extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID,自增 + */ + @TableId(value = "id") + private Long id; + + /** + * 单据编码(带*,必填) + */ + private String docCode; + + /** + * 标题(带*,必填) + */ + private String title; + + /** + * 单据日期(带*,必填) + */ + private LocalDate docDate; + + /** + * 合同编码 + */ + private Long contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 统计周期(带*,必填) + */ + private String statCycle; + + /** + * 计量开始 + */ + private LocalDate measureStart; + + /** + * 审批金额 + */ + private BigDecimal approveAmount; + + /** + * 项目 + */ + private Long project; + + /** + * 结算单位 + */ + private Long settlementUnit; + + /** + * 合同金额 + */ + private BigDecimal contractAmount; + + /** + * 累计结算金额(不含本期) + */ + private BigDecimal totalSettlementExclCurrent; + + /** + * 累计结算金额(含本期) + */ + private BigDecimal totalSettlementInclCurrent; + + /** + * 本次结算比例 + */ + private BigDecimal currentSettlementRatio; + + /** + * 已结算比例(不含本期) + */ + private BigDecimal settledRatioExclCurrent; + + /** + * 截止本期结算比例 + */ + private BigDecimal settlementRatioUntilCurrent; + + /** + * 备注 + */ + private String remark; + + /** + * 实时刷新(0=未勾选,1=勾选) + */ + private Long realTimeRefresh; + + /** + * 累计结算金额(统计及控制信息) + */ + private BigDecimal totalSettledAmount; + + /** + * 本期扣款金额 + */ + private BigDecimal currentDeductionAmount; + + /** + * 本期奖励金额 + */ + private BigDecimal currentRewardAmount; + + /** + * 合同含税金额 + */ + private BigDecimal contractTaxInclAmount; + + /** + * 合同不含税金额 + */ + private BigDecimal contractTaxExclAmount; + + /** + * 单据引用 + */ + private String documentReference; + + /** + * 文件ID + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsCgJinduBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsCgJinduBo.java new file mode 100644 index 00000000..4a028a1b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsCgJinduBo.java @@ -0,0 +1,175 @@ +package org.dromara.xzd.settlement.domain.bo; + +import org.dromara.xzd.domain.XzdDeductionItems; +import org.dromara.xzd.settlement.domain.XzdJsCgJindu; +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.settlement.domain.XzdJsDeductionItems; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + +/** + * 采购合同进度结算业务对象 xzd_js_cg_jindu + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdJsCgJindu.class, reverseConvertGenerate = false) +public class XzdJsCgJinduBo extends BaseEntity { + + /** + * 主键ID,自增 + */ + @NotNull(message = "主键ID,自增不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 单据编码(带*,必填) + */ + @NotBlank(message = "单据编码(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String docCode; + + /** + * 标题(带*,必填) + */ + @NotBlank(message = "标题(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String title; + + /** + * 单据日期(带*,必填) + */ + @NotNull(message = "单据日期(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate docDate; + + /** + * 合同编码(带查询,关联合同表) + */ + private Long contractCode; + + /** + * 合同名称(关联合同后显示) + */ + private String contractName; + + /** + * 统计周期(带*,必填,下拉选择) + */ + @NotBlank(message = "统计周期(带*,必填,下拉选择)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String statCycle; + + /** + * 计量开始(带*,必填) + */ + @NotNull(message = "计量开始(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate measureStart; + + /** + * 项目(带*,必填) + */ + @NotBlank(message = "项目(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long project; + + /** + * 审批金额(默认0.00) + */ + private BigDecimal approveAmount; + + /** + * 计量结束(带*,必填) + */ + @NotNull(message = "计量结束(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate measureEnd; + + /** + * 结算单位(带查询,关联单位表) + */ + private Long settlementUnit; + + /** + * 合同金额(默认0.00) + */ + private BigDecimal contractAmount; + + /** + * 累计结算金额(不含本期)(默认0.00) + */ + private BigDecimal totalSettlementExcludeCurrent; + + /** + * 累计结算金额(含本期)(默认0.00) + */ + private BigDecimal totalSettlementIncludeCurrent; + + /** + * 本次结算比例(默认0.00%) + */ + private BigDecimal currentSettlementRatio; + + /** + * 已结算比例(不含本期)(默认0.00%) + */ + private BigDecimal settledRatioExcludeCurrent; + + /** + * 截止本期结算比例(默认0.00%) + */ + private BigDecimal settlementRatioUntilCurrent; + + /** + * 备注(长文本) + */ + private String remark; + + /** + * 实时刷新(复选框,0=未勾选,1=勾选) + */ + private Long realTimeRefresh; + + /** + * 合同含税金额(默认0.00) + */ + private BigDecimal contractTaxInclAmount; + + /** + * 合同不含税金额(默认0.00) + */ + private BigDecimal contractTaxExclAmount; + + /** + * 累计结算金额(默认0.00) + */ + private BigDecimal totalSettledAmount; + + /** + * 本期扣款金额(默认0.00) + */ + private BigDecimal currentDeductionAmount; + + /** + * 本期奖励金额(默认0.00) + */ + private BigDecimal currentRewardAmount; + + /** + * 单据引用 + */ + private String documentReference; + + /** + * 文件ID + */ + private String fileId; + + List kkyjlx; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsCgJungonBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsCgJungonBo.java new file mode 100644 index 00000000..b092d629 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsCgJungonBo.java @@ -0,0 +1,146 @@ +package org.dromara.xzd.settlement.domain.bo; + +import org.dromara.xzd.settlement.domain.XzdJsCgJungon; +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.time.LocalDate; + +/** + * 采购合同竣工结算业务对象 xzd_js_cg_jungon + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdJsCgJungon.class, reverseConvertGenerate = false) +public class XzdJsCgJungonBo extends BaseEntity { + + /** + * 主键ID,自增 + */ + @NotNull(message = "主键ID,自增不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 单据编号(带*,必填) + */ + @NotBlank(message = "单据编号(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String docCode; + + /** + * 标题(带*,必填) + */ + @NotBlank(message = "标题(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String title; + + /** + * 单据日期(带*,必填) + */ + @NotNull(message = "单据日期(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate docDate; + + /** + * 合同编号(带*,关联合同表) + */ + private Long contractCode; + + /** + * 合同名称(关联合同后显示) + */ + private String contractName; + + /** + * 决算金额 + */ + private BigDecimal finalAmount; + + /** + * 本期决算总额 + */ + private BigDecimal currentPeriodTotal; + + /** + * 本期扣款金额 + */ + private BigDecimal currentDeduction; + + /** + * 本期奖励金额 + */ + private BigDecimal currentReward; + + /** + * 审定日期 + */ + private LocalDate approveDate; + + /** + * 工程项目(带*,关联项目表) + */ + @NotNull(message = "工程项目(带*,关联项目表)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectId; + + /** + * 统计周期(下拉选择,如“2025年10月”) + */ + private String statCycle; + + /** + * 甲方单位 + */ + private Long partyA; + + /** + * 乙方单位 + */ + private Long partyB; + + /** + * 备注 + */ + private String remark; + + /** + * 集采模式 + */ + private Long procurementMode; + + /** + * 业主单位(带查询,关联单位表) + */ + private Long ownerUnit; + + /** + * 监理单位(带查询,关联单位表) + */ + private Long supervisionUnit; + + /** + * 施工单位(带查询,关联单位表) + */ + private Long constructionUnit; + + /** + * 审核单位(带查询,关联单位表) + */ + private Long auditUnit; + + /** + * 单据引用 + */ + private String documentReference; + + /** + * 文件ID + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsCgJungonEditBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsCgJungonEditBo.java new file mode 100644 index 00000000..595eca8d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsCgJungonEditBo.java @@ -0,0 +1,98 @@ +package org.dromara.xzd.settlement.domain.bo; + +import org.dromara.xzd.settlement.domain.XzdJsCgJungonEdit; +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.time.LocalDate; + +/** + * 采购合同竣工结算调整业务对象 xzd_js_cg_jungon_edit + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdJsCgJungonEdit.class, reverseConvertGenerate = false) +public class XzdJsCgJungonEditBo extends BaseEntity { + + /** + * 主键ID,自增 + */ + @NotNull(message = "主键ID,自增不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 单据编号(带*,必填) + */ + @NotBlank(message = "单据编号(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String docCode; + + /** + * 标题(带*,必填) + */ + @NotBlank(message = "标题(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String title; + + /** + * 单据日期(带*,必填) + */ + @NotNull(message = "单据日期(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate docDate; + + /** + * 决算单号(带*,必填) + */ + @NotBlank(message = "决算单号(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String finalAccountCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 合同编号 + */ + private String contractCode; + + /** + * 调整后决算金额(带*,必填) + */ + @NotNull(message = "调整后决算金额(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal adjustedFinalAmount; + + /** + * 工程项目(带*,必填) + */ + @NotNull(message = "工程项目(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectId; + + /** + * 默认财务组织 + */ + private Long defaultFinanceOrg; + + /** + * 调整说明 + */ + private String adjustmentDescription; + + /** + * 备注 + */ + private String remark; + + /** + * 集采模式 + */ + private String procurementMode; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsDeductionItemsBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsDeductionItemsBo.java new file mode 100644 index 00000000..7a7a2832 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsDeductionItemsBo.java @@ -0,0 +1,103 @@ +package org.dromara.xzd.settlement.domain.bo; + +import org.dromara.xzd.settlement.domain.XzdJsDeductionItems; +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_js_deduction_items + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdJsDeductionItems.class, reverseConvertGenerate = false) +public class XzdJsDeductionItemsBo extends BaseEntity { + + /** + * 明细记录主键(自增) + */ + @NotNull(message = "明细记录主键(自增)不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 表名 + */ + private String tableName; + + /** + * 关联结算主表的ID(外键,指向结算单据表) + */ + @NotNull(message = "关联结算主表的ID(外键,指向结算单据表)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long mainDocId; + + /** + * 明细类型:1=扣款,2=奖励 + */ + @NotNull(message = "明细类型:1=扣款,2=奖励不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long detailType; + + /** + * 款项类别(带*,必填) + */ + @NotBlank(message = "款项类别(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String itemCategory; + + /** + * 本期金额(扣款/奖励金额) + */ + private BigDecimal currentPeriodAmount; + + /** + * 本期不含税金额 + */ + private BigDecimal currentTaxExclAmount; + /** + * 税率 + */ + private BigDecimal taxRate; + /** + * 税额 + */ + private BigDecimal taxAmount; + + /** + * 累计金额(累计扣款/累计奖励) + */ + private BigDecimal totalAmount; + + /** + * 申请扣除(仅“扣款”明细必填,1=是,0=否) + */ + private Long applyDeduction; + + /** + * 款项属性(带*,必填) + */ + @NotBlank(message = "款项属性(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String itemProperty; + + /** + * WBS编码(项目工作分解结构编码) + */ + private String wbs; + + /** + * CBS编码(项目成本分解结构编码) + */ + private String cbs; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsZhfwJinduBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsZhfwJinduBo.java new file mode 100644 index 00000000..5be284fc --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/bo/XzdJsZhfwJinduBo.java @@ -0,0 +1,161 @@ +package org.dromara.xzd.settlement.domain.bo; + +import org.dromara.xzd.settlement.domain.XzdJsZhfwJindu; +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.time.LocalDate; + +/** + * 综合服务合同进度结算业务对象 xzd_js_zhfw_jindu + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdJsZhfwJindu.class, reverseConvertGenerate = false) +public class XzdJsZhfwJinduBo extends BaseEntity { + + /** + * 主键ID,自增 + */ + @NotNull(message = "主键ID,自增不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 单据编码(带*,必填) + */ + @NotBlank(message = "单据编码(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String docCode; + + /** + * 标题(带*,必填) + */ + @NotBlank(message = "标题(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String title; + + /** + * 单据日期(带*,必填) + */ + @NotNull(message = "单据日期(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate docDate; + + /** + * 合同编码 + */ + private Long contractCode; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 统计周期(带*,必填) + */ + @NotBlank(message = "统计周期(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String statCycle; + + /** + * 计量开始 + */ + private LocalDate measureStart; + + /** + * 审批金额 + */ + private BigDecimal approveAmount; + + /** + * 项目 + */ + private Long project; + + /** + * 结算单位 + */ + private Long settlementUnit; + + /** + * 合同金额 + */ + private BigDecimal contractAmount; + + /** + * 累计结算金额(不含本期) + */ + private BigDecimal totalSettlementExclCurrent; + + /** + * 累计结算金额(含本期) + */ + private BigDecimal totalSettlementInclCurrent; + + /** + * 本次结算比例 + */ + private BigDecimal currentSettlementRatio; + + /** + * 已结算比例(不含本期) + */ + private BigDecimal settledRatioExclCurrent; + + /** + * 截止本期结算比例 + */ + private BigDecimal settlementRatioUntilCurrent; + + /** + * 备注 + */ + private String remark; + + /** + * 实时刷新(0=未勾选,1=勾选) + */ + private Long realTimeRefresh; + + /** + * 累计结算金额(统计及控制信息) + */ + private BigDecimal totalSettledAmount; + + /** + * 本期扣款金额 + */ + private BigDecimal currentDeductionAmount; + + /** + * 本期奖励金额 + */ + private BigDecimal currentRewardAmount; + + /** + * 合同含税金额 + */ + private BigDecimal contractTaxInclAmount; + + /** + * 合同不含税金额 + */ + private BigDecimal contractTaxExclAmount; + + /** + * 单据引用 + */ + private String documentReference; + + /** + * 文件ID + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsCgJinduVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsCgJinduVo.java new file mode 100644 index 00000000..0e0a1712 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsCgJinduVo.java @@ -0,0 +1,222 @@ +package org.dromara.xzd.settlement.domain.vo; + +import java.math.BigDecimal; +import org.dromara.xzd.settlement.domain.XzdJsCgJindu; +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; +import java.time.LocalDate; +import java.util.Date; + + + +/** + * 采购合同进度结算视图对象 xzd_js_cg_jindu + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdJsCgJindu.class) +public class XzdJsCgJinduVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID,自增 + */ + @ExcelProperty(value = "主键ID,自增") + private Long id; + + /** + * 单据编码(带*,必填) + */ + @ExcelProperty(value = "单据编码", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String docCode; + + /** + * 标题(带*,必填) + */ + @ExcelProperty(value = "标题", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String title; + + /** + * 单据日期(带*,必填) + */ + @ExcelProperty(value = "单据日期", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private LocalDate docDate; + + /** + * 合同编码(带查询,关联合同表) + */ + @ExcelProperty(value = "合同编码", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=查询,关联合同表") + private Long contractCode; + + /** + * 合同名称(关联合同后显示) + */ + @ExcelProperty(value = "合同名称", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "关=联合同后显示") + private String contractName; + + /** + * 统计周期(带*,必填,下拉选择) + */ + @ExcelProperty(value = "统计周期", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填,下拉选择") + private String statCycle; + + /** + * 计量开始(带*,必填) + */ + @ExcelProperty(value = "计量开始", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private LocalDate measureStart; + + /** + * 项目(带*,必填) + */ + @ExcelProperty(value = "项目", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private Long project; + private String projectName; + + /** + * 审批金额(默认0.00) + */ + @ExcelProperty(value = "审批金额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "默=认0.00") + private BigDecimal approveAmount; + + /** + * 计量结束(带*,必填) + */ + @ExcelProperty(value = "计量结束", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private LocalDate measureEnd; + + /** + * 结算单位(带查询,关联单位表) + */ + @ExcelProperty(value = "结算单位", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=查询,关联单位表") + private Long settlementUnit; + private String settlementUnitName; + + /** + * 合同金额(默认0.00) + */ + @ExcelProperty(value = "合同金额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "默=认0.00") + private BigDecimal contractAmount; + + /** + * 累计结算金额(不含本期)(默认0.00) + */ + @ExcelProperty(value = "累计结算金额(不含本期)", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "默=认0.00") + private BigDecimal totalSettlementExcludeCurrent; + + /** + * 累计结算金额(含本期)(默认0.00) + */ + @ExcelProperty(value = "累计结算金额(含本期)", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "默=认0.00") + private BigDecimal totalSettlementIncludeCurrent; + + /** + * 本次结算比例(默认0.00%) + */ + @ExcelProperty(value = "本次结算比例", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "默=认0.00%") + private BigDecimal currentSettlementRatio; + + /** + * 已结算比例(不含本期)(默认0.00%) + */ + @ExcelProperty(value = "已结算比例(不含本期)", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "默=认0.00%") + private BigDecimal settledRatioExcludeCurrent; + + /** + * 截止本期结算比例(默认0.00%) + */ + @ExcelProperty(value = "截止本期结算比例", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "默=认0.00%") + private BigDecimal settlementRatioUntilCurrent; + + /** + * 备注(长文本) + */ + @ExcelProperty(value = "备注", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "长=文本") + private String remark; + + /** + * 实时刷新(复选框,0=未勾选,1=勾选) + */ + @ExcelProperty(value = "实时刷新", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "复=选框,0=未勾选,1=勾选") + private Long realTimeRefresh; + + /** + * 合同含税金额(默认0.00) + */ + @ExcelProperty(value = "合同含税金额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "默=认0.00") + private BigDecimal contractTaxInclAmount; + + /** + * 合同不含税金额(默认0.00) + */ + @ExcelProperty(value = "合同不含税金额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "默=认0.00") + private BigDecimal contractTaxExclAmount; + + /** + * 累计结算金额(默认0.00) + */ + @ExcelProperty(value = "累计结算金额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "默=认0.00") + private BigDecimal totalSettledAmount; + + /** + * 本期扣款金额(默认0.00) + */ + @ExcelProperty(value = "本期扣款金额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "默=认0.00") + private BigDecimal currentDeductionAmount; + + /** + * 本期奖励金额(默认0.00) + */ + @ExcelProperty(value = "本期奖励金额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "默=认0.00") + private BigDecimal currentRewardAmount; + + /** + * 单据引用 + */ + @ExcelProperty(value = "单据引用") + private String documentReference; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsCgJungonEditVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsCgJungonEditVo.java new file mode 100644 index 00000000..c15d1b93 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsCgJungonEditVo.java @@ -0,0 +1,118 @@ +package org.dromara.xzd.settlement.domain.vo; + +import java.math.BigDecimal; +import org.dromara.xzd.settlement.domain.XzdJsCgJungonEdit; +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; +import java.time.LocalDate; +import java.util.Date; + + + +/** + * 采购合同竣工结算调整视图对象 xzd_js_cg_jungon_edit + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdJsCgJungonEdit.class) +public class XzdJsCgJungonEditVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID,自增 + */ + @ExcelProperty(value = "主键ID,自增") + private Long id; + + /** + * 单据编号(带*,必填) + */ + @ExcelProperty(value = "单据编号", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String docCode; + + /** + * 标题(带*,必填) + */ + @ExcelProperty(value = "标题", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String title; + + /** + * 单据日期(带*,必填) + */ + @ExcelProperty(value = "单据日期", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private LocalDate docDate; + + /** + * 决算单号(带*,必填) + */ + @ExcelProperty(value = "决算单号", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String finalAccountCode; + + /** + * 合同名称 + */ + @ExcelProperty(value = "合同名称") + private String contractName; + + /** + * 合同编号 + */ + @ExcelProperty(value = "合同编号") + private String contractCode; + + /** + * 调整后决算金额(带*,必填) + */ + @ExcelProperty(value = "调整后决算金额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private BigDecimal adjustedFinalAmount; + + /** + * 工程项目(带*,必填) + */ + @ExcelProperty(value = "工程项目", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private Long projectId; + + /** + * 默认财务组织 + */ + @ExcelProperty(value = "默认财务组织") + private Long defaultFinanceOrg; + + /** + * 调整说明 + */ + @ExcelProperty(value = "调整说明") + private String adjustmentDescription; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 集采模式 + */ + @ExcelProperty(value = "集采模式") + private String procurementMode; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsCgJungonVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsCgJungonVo.java new file mode 100644 index 00000000..03c74884 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsCgJungonVo.java @@ -0,0 +1,190 @@ +package org.dromara.xzd.settlement.domain.vo; + +import java.math.BigDecimal; +import org.dromara.xzd.settlement.domain.XzdJsCgJungon; +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; +import java.time.LocalDate; +import java.util.Date; + + + +/** + * 采购合同竣工结算视图对象 xzd_js_cg_jungon + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdJsCgJungon.class) +public class XzdJsCgJungonVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID,自增 + */ + @ExcelProperty(value = "主键ID,自增") + private Long id; + + /** + * 单据编号(带*,必填) + */ + @ExcelProperty(value = "单据编号", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String docCode; + + /** + * 标题(带*,必填) + */ + @ExcelProperty(value = "标题", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String title; + + /** + * 单据日期(带*,必填) + */ + @ExcelProperty(value = "单据日期", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private LocalDate docDate; + + /** + * 合同编号(带*,关联合同表) + */ + @ExcelProperty(value = "合同编号", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,关联合同表") + private Long contractCode; + + /** + * 合同名称(关联合同后显示) + */ + @ExcelProperty(value = "合同名称", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "关=联合同后显示") + private String contractName; + + /** + * 决算金额 + */ + @ExcelProperty(value = "决算金额") + private BigDecimal finalAmount; + + /** + * 本期决算总额 + */ + @ExcelProperty(value = "本期决算总额") + private BigDecimal currentPeriodTotal; + + /** + * 本期扣款金额 + */ + @ExcelProperty(value = "本期扣款金额") + private BigDecimal currentDeduction; + + /** + * 本期奖励金额 + */ + @ExcelProperty(value = "本期奖励金额") + private BigDecimal currentReward; + + /** + * 审定日期 + */ + @ExcelProperty(value = "审定日期") + private LocalDate approveDate; + + /** + * 工程项目(带*,关联项目表) + */ + @ExcelProperty(value = "工程项目", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,关联项目表") + private Long projectId; + private String projectName; + + /** + * 统计周期(下拉选择,如“2025年10月”) + */ + @ExcelProperty(value = "统计周期", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "下=拉选择,如“2025年10月”") + private String statCycle; + + /** + * 甲方单位 + */ + @ExcelProperty(value = "甲方单位") + private Long partyA; + private String partyAName; + + /** + * 乙方单位 + */ + @ExcelProperty(value = "乙方单位") + private Long partyB; + private String partyBName; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 集采模式 + */ + @ExcelProperty(value = "集采模式") + private Long procurementMode; + + /** + * 业主单位(带查询,关联单位表) + */ + @ExcelProperty(value = "业主单位", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=查询,关联单位表") + private Long ownerUnit; + private String ownerUnitName; + + /** + * 监理单位(带查询,关联单位表) + */ + @ExcelProperty(value = "监理单位", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=查询,关联单位表") + private Long supervisionUnit; + private String supervisionUnitName; + + /** + * 施工单位(带查询,关联单位表) + */ + @ExcelProperty(value = "施工单位", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=查询,关联单位表") + private Long constructionUnit; + private String constructionUnitName; + + /** + * 审核单位(带查询,关联单位表) + */ + @ExcelProperty(value = "审核单位", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=查询,关联单位表") + private Long auditUnit; + private String auditUnitName; + + /** + * 单据引用 + */ + @ExcelProperty(value = "单据引用") + private String documentReference; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsDeductionItemsVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsDeductionItemsVo.java new file mode 100644 index 00000000..377590e1 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsDeductionItemsVo.java @@ -0,0 +1,126 @@ +package org.dromara.xzd.settlement.domain.vo; + +import java.math.BigDecimal; +import org.dromara.xzd.settlement.domain.XzdJsDeductionItems; +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; +import java.util.Date; + + + +/** + * 结算-扣款与奖励项视图对象 xzd_js_deduction_items + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdJsDeductionItems.class) +public class XzdJsDeductionItemsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 明细记录主键(自增) + */ + @ExcelProperty(value = "明细记录主键", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "自=增") + private Long id; + + /** + * 表名 + */ + private String tableName; + + /** + * 关联结算主表的ID(外键,指向结算单据表) + */ + @ExcelProperty(value = "关联结算主表的ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "外=键,指向结算单据表") + private Long mainDocId; + + /** + * 明细类型:1=扣款,2=奖励 + */ + @ExcelProperty(value = "明细类型:1=扣款,2=奖励") + private Long detailType; + + /** + * 款项类别(带*,必填) + */ + @ExcelProperty(value = "款项类别", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String itemCategory; + + /** + * 本期金额(扣款/奖励金额) + */ + @ExcelProperty(value = "本期金额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "扣=款/奖励金额") + private BigDecimal currentPeriodAmount; + + /** + * 本期不含税金额 + */ + private BigDecimal currentTaxExclAmount; + /** + * 税率 + */ + private BigDecimal taxRate; + /** + * 税额 + */ + private BigDecimal taxAmount; + + /** + * 累计金额(累计扣款/累计奖励) + */ + @ExcelProperty(value = "累计金额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "累=计扣款/累计奖励") + private BigDecimal totalAmount; + + /** + * 申请扣除(仅“扣款”明细必填,1=是,0=否) + */ + @ExcelProperty(value = "申请扣除", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "仅=“扣款”明细必填,1=是,0=否") + private Long applyDeduction; + + /** + * 款项属性(带*,必填) + */ + @ExcelProperty(value = "款项属性", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String itemProperty; + + /** + * WBS编码(项目工作分解结构编码) + */ + @ExcelProperty(value = "WBS编码", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "项=目工作分解结构编码") + private String wbs; + + /** + * CBS编码(项目成本分解结构编码) + */ + @ExcelProperty(value = "CBS编码", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "项=目成本分解结构编码") + private String cbs; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsZhfwJinduVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsZhfwJinduVo.java new file mode 100644 index 00000000..dce075ff --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/domain/vo/XzdJsZhfwJinduVo.java @@ -0,0 +1,196 @@ +package org.dromara.xzd.settlement.domain.vo; + +import java.math.BigDecimal; +import org.dromara.xzd.settlement.domain.XzdJsZhfwJindu; +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; +import java.time.LocalDate; +import java.util.Date; + + + +/** + * 综合服务合同进度结算视图对象 xzd_js_zhfw_jindu + * + * @author Lion Li + * @date 2025-10-14 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdJsZhfwJindu.class) +public class XzdJsZhfwJinduVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID,自增 + */ + @ExcelProperty(value = "主键ID,自增") + private Long id; + + /** + * 单据编码(带*,必填) + */ + @ExcelProperty(value = "单据编码", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String docCode; + + /** + * 标题(带*,必填) + */ + @ExcelProperty(value = "标题", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String title; + + /** + * 单据日期(带*,必填) + */ + @ExcelProperty(value = "单据日期", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private LocalDate docDate; + + /** + * 合同编码 + */ + @ExcelProperty(value = "合同编码") + private Long contractCode; + + /** + * 合同名称 + */ + @ExcelProperty(value = "合同名称") + private String contractName; + + /** + * 统计周期(带*,必填) + */ + @ExcelProperty(value = "统计周期", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "带=*,必填") + private String statCycle; + + /** + * 计量开始 + */ + @ExcelProperty(value = "计量开始") + private LocalDate measureStart; + + /** + * 审批金额 + */ + @ExcelProperty(value = "审批金额") + private BigDecimal approveAmount; + + /** + * 项目 + */ + @ExcelProperty(value = "项目") + private Long project; + + /** + * 结算单位 + */ + @ExcelProperty(value = "结算单位") + private Long settlementUnit; + + /** + * 合同金额 + */ + @ExcelProperty(value = "合同金额") + private BigDecimal contractAmount; + + /** + * 累计结算金额(不含本期) + */ + @ExcelProperty(value = "累计结算金额(不含本期)") + private BigDecimal totalSettlementExclCurrent; + + /** + * 累计结算金额(含本期) + */ + @ExcelProperty(value = "累计结算金额(含本期)") + private BigDecimal totalSettlementInclCurrent; + + /** + * 本次结算比例 + */ + @ExcelProperty(value = "本次结算比例") + private BigDecimal currentSettlementRatio; + + /** + * 已结算比例(不含本期) + */ + @ExcelProperty(value = "已结算比例(不含本期)") + private BigDecimal settledRatioExclCurrent; + + /** + * 截止本期结算比例 + */ + @ExcelProperty(value = "截止本期结算比例") + private BigDecimal settlementRatioUntilCurrent; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 实时刷新(0=未勾选,1=勾选) + */ + @ExcelProperty(value = "实时刷新", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0==未勾选,1=勾选") + private Long realTimeRefresh; + + /** + * 累计结算金额(统计及控制信息) + */ + @ExcelProperty(value = "累计结算金额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "统=计及控制信息") + private BigDecimal totalSettledAmount; + + /** + * 本期扣款金额 + */ + @ExcelProperty(value = "本期扣款金额") + private BigDecimal currentDeductionAmount; + + /** + * 本期奖励金额 + */ + @ExcelProperty(value = "本期奖励金额") + private BigDecimal currentRewardAmount; + + /** + * 合同含税金额 + */ + @ExcelProperty(value = "合同含税金额") + private BigDecimal contractTaxInclAmount; + + /** + * 合同不含税金额 + */ + @ExcelProperty(value = "合同不含税金额") + private BigDecimal contractTaxExclAmount; + + /** + * 单据引用 + */ + @ExcelProperty(value = "单据引用") + private String documentReference; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsCgJinduMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsCgJinduMapper.java new file mode 100644 index 00000000..ca8cfc19 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsCgJinduMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.settlement.mapper; + +import org.dromara.xzd.settlement.domain.XzdJsCgJindu; +import org.dromara.xzd.settlement.domain.vo.XzdJsCgJinduVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 采购合同进度结算Mapper接口 + * + * @author Lion Li + * @date 2025-10-14 + */ +public interface XzdJsCgJinduMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsCgJungonEditMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsCgJungonEditMapper.java new file mode 100644 index 00000000..c15d5cb7 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsCgJungonEditMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.settlement.mapper; + +import org.dromara.xzd.settlement.domain.XzdJsCgJungonEdit; +import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonEditVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 采购合同竣工结算调整Mapper接口 + * + * @author Lion Li + * @date 2025-10-14 + */ +public interface XzdJsCgJungonEditMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsCgJungonMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsCgJungonMapper.java new file mode 100644 index 00000000..10b63c6d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsCgJungonMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.settlement.mapper; + +import org.dromara.xzd.settlement.domain.XzdJsCgJungon; +import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 采购合同竣工结算Mapper接口 + * + * @author Lion Li + * @date 2025-10-14 + */ +public interface XzdJsCgJungonMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsDeductionItemsMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsDeductionItemsMapper.java new file mode 100644 index 00000000..2188aecb --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsDeductionItemsMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.settlement.mapper; + +import org.dromara.xzd.settlement.domain.XzdJsDeductionItems; +import org.dromara.xzd.settlement.domain.vo.XzdJsDeductionItemsVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 结算-扣款与奖励项Mapper接口 + * + * @author Lion Li + * @date 2025-10-14 + */ +public interface XzdJsDeductionItemsMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsZhfwJinduMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsZhfwJinduMapper.java new file mode 100644 index 00000000..9914ca48 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/mapper/XzdJsZhfwJinduMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xzd.settlement.mapper; + +import org.dromara.xzd.settlement.domain.XzdJsZhfwJindu; +import org.dromara.xzd.settlement.domain.vo.XzdJsZhfwJinduVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 综合服务合同进度结算Mapper接口 + * + * @author Lion Li + * @date 2025-10-14 + */ +public interface XzdJsZhfwJinduMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/IXzdJsCgJinduService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/IXzdJsCgJinduService.java new file mode 100644 index 00000000..8e8f64d1 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/IXzdJsCgJinduService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.settlement.service; + +import org.dromara.xzd.settlement.domain.vo.XzdJsCgJinduVo; +import org.dromara.xzd.settlement.domain.bo.XzdJsCgJinduBo; +import org.dromara.xzd.settlement.domain.XzdJsCgJindu; +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-14 + */ +public interface IXzdJsCgJinduService extends IService{ + + /** + * 查询采购合同进度结算 + * + * @param id 主键 + * @return 采购合同进度结算 + */ + XzdJsCgJinduVo queryById(Long id); + + /** + * 分页查询采购合同进度结算列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 采购合同进度结算分页列表 + */ + TableDataInfo queryPageList(XzdJsCgJinduBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的采购合同进度结算列表 + * + * @param bo 查询条件 + * @return 采购合同进度结算列表 + */ + List queryList(XzdJsCgJinduBo bo); + + /** + * 新增采购合同进度结算 + * + * @param bo 采购合同进度结算 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdJsCgJinduBo bo); + + /** + * 修改采购合同进度结算 + * + * @param bo 采购合同进度结算 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdJsCgJinduBo 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/settlement/service/IXzdJsCgJungonEditService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/IXzdJsCgJungonEditService.java new file mode 100644 index 00000000..3ca418e1 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/IXzdJsCgJungonEditService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.settlement.service; + +import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonEditVo; +import org.dromara.xzd.settlement.domain.bo.XzdJsCgJungonEditBo; +import org.dromara.xzd.settlement.domain.XzdJsCgJungonEdit; +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-14 + */ +public interface IXzdJsCgJungonEditService extends IService{ + + /** + * 查询采购合同竣工结算调整 + * + * @param id 主键 + * @return 采购合同竣工结算调整 + */ + XzdJsCgJungonEditVo queryById(Long id); + + /** + * 分页查询采购合同竣工结算调整列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 采购合同竣工结算调整分页列表 + */ + TableDataInfo queryPageList(XzdJsCgJungonEditBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的采购合同竣工结算调整列表 + * + * @param bo 查询条件 + * @return 采购合同竣工结算调整列表 + */ + List queryList(XzdJsCgJungonEditBo bo); + + /** + * 新增采购合同竣工结算调整 + * + * @param bo 采购合同竣工结算调整 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdJsCgJungonEditBo bo); + + /** + * 修改采购合同竣工结算调整 + * + * @param bo 采购合同竣工结算调整 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdJsCgJungonEditBo 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/settlement/service/IXzdJsCgJungonService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/IXzdJsCgJungonService.java new file mode 100644 index 00000000..fc1b0214 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/IXzdJsCgJungonService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.settlement.service; + +import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonVo; +import org.dromara.xzd.settlement.domain.bo.XzdJsCgJungonBo; +import org.dromara.xzd.settlement.domain.XzdJsCgJungon; +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-14 + */ +public interface IXzdJsCgJungonService extends IService{ + + /** + * 查询采购合同竣工结算 + * + * @param id 主键 + * @return 采购合同竣工结算 + */ + XzdJsCgJungonVo queryById(Long id); + + /** + * 分页查询采购合同竣工结算列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 采购合同竣工结算分页列表 + */ + TableDataInfo queryPageList(XzdJsCgJungonBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的采购合同竣工结算列表 + * + * @param bo 查询条件 + * @return 采购合同竣工结算列表 + */ + List queryList(XzdJsCgJungonBo bo); + + /** + * 新增采购合同竣工结算 + * + * @param bo 采购合同竣工结算 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdJsCgJungonBo bo); + + /** + * 修改采购合同竣工结算 + * + * @param bo 采购合同竣工结算 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdJsCgJungonBo 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/settlement/service/IXzdJsDeductionItemsService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/IXzdJsDeductionItemsService.java new file mode 100644 index 00000000..208aa2fa --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/IXzdJsDeductionItemsService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.settlement.service; + +import org.dromara.xzd.settlement.domain.vo.XzdJsDeductionItemsVo; +import org.dromara.xzd.settlement.domain.bo.XzdJsDeductionItemsBo; +import org.dromara.xzd.settlement.domain.XzdJsDeductionItems; +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-14 + */ +public interface IXzdJsDeductionItemsService extends IService{ + + /** + * 查询结算-扣款与奖励项 + * + * @param id 主键 + * @return 结算-扣款与奖励项 + */ + XzdJsDeductionItemsVo queryById(Long id); + + /** + * 分页查询结算-扣款与奖励项列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 结算-扣款与奖励项分页列表 + */ + TableDataInfo queryPageList(XzdJsDeductionItemsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的结算-扣款与奖励项列表 + * + * @param bo 查询条件 + * @return 结算-扣款与奖励项列表 + */ + List queryList(XzdJsDeductionItemsBo bo); + + /** + * 新增结算-扣款与奖励项 + * + * @param bo 结算-扣款与奖励项 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdJsDeductionItemsBo bo); + + /** + * 修改结算-扣款与奖励项 + * + * @param bo 结算-扣款与奖励项 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdJsDeductionItemsBo 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/settlement/service/IXzdJsZhfwJinduService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/IXzdJsZhfwJinduService.java new file mode 100644 index 00000000..0b1313b5 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/IXzdJsZhfwJinduService.java @@ -0,0 +1,70 @@ +package org.dromara.xzd.settlement.service; + +import org.dromara.xzd.settlement.domain.vo.XzdJsZhfwJinduVo; +import org.dromara.xzd.settlement.domain.bo.XzdJsZhfwJinduBo; +import org.dromara.xzd.settlement.domain.XzdJsZhfwJindu; +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-14 + */ +public interface IXzdJsZhfwJinduService extends IService{ + + /** + * 查询综合服务合同进度结算 + * + * @param id 主键 + * @return 综合服务合同进度结算 + */ + XzdJsZhfwJinduVo queryById(Long id); + + /** + * 分页查询综合服务合同进度结算列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 综合服务合同进度结算分页列表 + */ + TableDataInfo queryPageList(XzdJsZhfwJinduBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的综合服务合同进度结算列表 + * + * @param bo 查询条件 + * @return 综合服务合同进度结算列表 + */ + List queryList(XzdJsZhfwJinduBo bo); + + /** + * 新增综合服务合同进度结算 + * + * @param bo 综合服务合同进度结算 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdJsZhfwJinduBo bo); + + /** + * 修改综合服务合同进度结算 + * + * @param bo 综合服务合同进度结算 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdJsZhfwJinduBo 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/settlement/service/impl/XzdJsCgJinduServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJinduServiceImpl.java new file mode 100644 index 00000000..fa55e401 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJinduServiceImpl.java @@ -0,0 +1,218 @@ +package org.dromara.xzd.settlement.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.exception.ServiceException; +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.common.utils.BatchNumberGenerator; +import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractChangeVo; +import org.dromara.xzd.domain.XzdContractClause; +import org.dromara.xzd.domain.XzdDeductionItems; +import org.dromara.xzd.domain.XzdSettlementRules; +import org.dromara.xzd.domain.dto.QuerCorrespondentDto; +import org.dromara.xzd.enums.XzdClassEnum; +import org.dromara.xzd.service.IXzdCorrespondentList; +import org.dromara.xzd.service.impl.XzdProjectServiceImpl; +import org.dromara.xzd.service.impl.XzdSupplierInfoServiceImpl; +import org.dromara.xzd.settlement.domain.XzdJsDeductionItems; +import org.dromara.xzd.settlement.domain.bo.XzdJsDeductionItemsBo; +import org.dromara.xzd.settlement.service.IXzdJsDeductionItemsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.dromara.xzd.settlement.domain.bo.XzdJsCgJinduBo; +import org.dromara.xzd.settlement.domain.vo.XzdJsCgJinduVo; +import org.dromara.xzd.settlement.domain.XzdJsCgJindu; +import org.dromara.xzd.settlement.mapper.XzdJsCgJinduMapper; +import org.dromara.xzd.settlement.service.IXzdJsCgJinduService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 采购合同进度结算Service业务层处理 + * + * @author Lion Li + * @date 2025-10-14 + */ +@RequiredArgsConstructor +@Service +public class XzdJsCgJinduServiceImpl extends ServiceImpl implements IXzdJsCgJinduService { + + private final XzdJsCgJinduMapper baseMapper; + + @Autowired + private XzdProjectServiceImpl xzdProjectService; + @Autowired + private IXzdCorrespondentList iXzdCorrespondentList; + + @Autowired + private IXzdJsDeductionItemsService deductionItemsService; + + /** + * 查询采购合同进度结算 + * + * @param id 主键 + * @return 采购合同进度结算 + */ + @Override + public XzdJsCgJinduVo queryById(Long id){ + XzdJsCgJinduVo xzdJsCgJinduVo = baseMapper.selectVoById(id); + getName(xzdJsCgJinduVo); + return xzdJsCgJinduVo; + } + + /** + * 分页查询采购合同进度结算列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 采购合同进度结算分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdJsCgJinduBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + result.getRecords().forEach(this::getName); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的采购合同进度结算列表 + * + * @param bo 查询条件 + * @return 采购合同进度结算列表 + */ + @Override + public List queryList(XzdJsCgJinduBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + List xzdJsCgJinduVos = baseMapper.selectVoList(lqw); + xzdJsCgJinduVos.forEach(this::getName); + return xzdJsCgJinduVos; + } + + private LambdaQueryWrapper buildQueryWrapper(XzdJsCgJinduBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdJsCgJindu::getId); + lqw.eq(StringUtils.isNotBlank(bo.getDocCode()), XzdJsCgJindu::getDocCode, bo.getDocCode()); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdJsCgJindu::getTitle, bo.getTitle()); + lqw.eq(bo.getDocDate() != null, XzdJsCgJindu::getDocDate, bo.getDocDate()); + lqw.eq(bo.getContractCode() != null, XzdJsCgJindu::getContractCode, bo.getContractCode()); + lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdJsCgJindu::getContractName, bo.getContractName()); + lqw.eq(StringUtils.isNotBlank(bo.getStatCycle()), XzdJsCgJindu::getStatCycle, bo.getStatCycle()); + lqw.eq(bo.getMeasureStart() != null, XzdJsCgJindu::getMeasureStart, bo.getMeasureStart()); + lqw.eq(bo.getProject() != null, XzdJsCgJindu::getProject, bo.getProject()); + lqw.eq(bo.getApproveAmount() != null, XzdJsCgJindu::getApproveAmount, bo.getApproveAmount()); + lqw.eq(bo.getMeasureEnd() != null, XzdJsCgJindu::getMeasureEnd, bo.getMeasureEnd()); + lqw.eq(bo.getSettlementUnit() != null, XzdJsCgJindu::getSettlementUnit, bo.getSettlementUnit()); + lqw.eq(bo.getContractAmount() != null, XzdJsCgJindu::getContractAmount, bo.getContractAmount()); + lqw.eq(bo.getTotalSettlementExcludeCurrent() != null, XzdJsCgJindu::getTotalSettlementExcludeCurrent, bo.getTotalSettlementExcludeCurrent()); + lqw.eq(bo.getTotalSettlementIncludeCurrent() != null, XzdJsCgJindu::getTotalSettlementIncludeCurrent, bo.getTotalSettlementIncludeCurrent()); + lqw.eq(bo.getCurrentSettlementRatio() != null, XzdJsCgJindu::getCurrentSettlementRatio, bo.getCurrentSettlementRatio()); + lqw.eq(bo.getSettledRatioExcludeCurrent() != null, XzdJsCgJindu::getSettledRatioExcludeCurrent, bo.getSettledRatioExcludeCurrent()); + lqw.eq(bo.getSettlementRatioUntilCurrent() != null, XzdJsCgJindu::getSettlementRatioUntilCurrent, bo.getSettlementRatioUntilCurrent()); + lqw.eq(bo.getRealTimeRefresh() != null, XzdJsCgJindu::getRealTimeRefresh, bo.getRealTimeRefresh()); + lqw.eq(bo.getContractTaxInclAmount() != null, XzdJsCgJindu::getContractTaxInclAmount, bo.getContractTaxInclAmount()); + lqw.eq(bo.getContractTaxExclAmount() != null, XzdJsCgJindu::getContractTaxExclAmount, bo.getContractTaxExclAmount()); + lqw.eq(bo.getTotalSettledAmount() != null, XzdJsCgJindu::getTotalSettledAmount, bo.getTotalSettledAmount()); + lqw.eq(bo.getCurrentDeductionAmount() != null, XzdJsCgJindu::getCurrentDeductionAmount, bo.getCurrentDeductionAmount()); + lqw.eq(bo.getCurrentRewardAmount() != null, XzdJsCgJindu::getCurrentRewardAmount, bo.getCurrentRewardAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getDocumentReference()), XzdJsCgJindu::getDocumentReference, bo.getDocumentReference()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdJsCgJindu::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增采购合同进度结算 + * + * @param bo 采购合同进度结算 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdJsCgJinduBo bo) { + XzdJsCgJindu add = MapstructUtils.convert(bo, XzdJsCgJindu.class); + validEntityBeforeSave(add); + String code = BatchNumberGenerator.generateBatchNumber("ZHFWHT-"); + add.setDocCode(code); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + + String tableName = XzdClassEnum.JS_CG_JINDU.getClassName(); + if (bo.getKkyjlx() == null || bo.getKkyjlx().isEmpty()) { + throw new ServiceException("扣款与奖励项不能为空"); + } + //合同条款-扣款与奖励项 + for (XzdJsDeductionItems kkyjlx : bo.getKkyjlx()) { + kkyjlx.setTableName(tableName); + kkyjlx.setMainDocId(add.getId()); + } + deductionItemsService.saveBatch(bo.getKkyjlx()); + return flag; + } + + /** + * 修改采购合同进度结算 + * + * @param bo 采购合同进度结算 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdJsCgJinduBo bo) { + XzdJsCgJindu update = MapstructUtils.convert(bo, XzdJsCgJindu.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdJsCgJindu entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除采购合同进度结算信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + /** + * 获取部分字段名称 + * @param item + */ + private void getName(XzdJsCgJinduVo item) { + //项目名称 + if (item.getProject() != null){ + String projectName = xzdProjectService.queryNameById(item.getProject()); + if (projectName != null){ + item.setProjectName(projectName); + } + } + //结算单位(客户信息列表) + R dtoR = iXzdCorrespondentList.getCustomerByid(item.getSettlementUnit()); + if (dtoR!=null){ + if (dtoR.getData().getXzdCustomerinformation() != null){ + item.setSettlementUnitName(dtoR.getData().getXzdCustomerinformation().getUnitName()); + } + } + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJungonEditServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJungonEditServiceImpl.java new file mode 100644 index 00000000..c0a1d14c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJungonEditServiceImpl.java @@ -0,0 +1,141 @@ +package org.dromara.xzd.settlement.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.settlement.domain.bo.XzdJsCgJungonEditBo; +import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonEditVo; +import org.dromara.xzd.settlement.domain.XzdJsCgJungonEdit; +import org.dromara.xzd.settlement.mapper.XzdJsCgJungonEditMapper; +import org.dromara.xzd.settlement.service.IXzdJsCgJungonEditService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 采购合同竣工结算调整Service业务层处理 + * + * @author Lion Li + * @date 2025-10-14 + */ +@RequiredArgsConstructor +@Service +public class XzdJsCgJungonEditServiceImpl extends ServiceImpl implements IXzdJsCgJungonEditService { + + private final XzdJsCgJungonEditMapper baseMapper; + + /** + * 查询采购合同竣工结算调整 + * + * @param id 主键 + * @return 采购合同竣工结算调整 + */ + @Override + public XzdJsCgJungonEditVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询采购合同竣工结算调整列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 采购合同竣工结算调整分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdJsCgJungonEditBo 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(XzdJsCgJungonEditBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdJsCgJungonEditBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdJsCgJungonEdit::getId); + lqw.eq(StringUtils.isNotBlank(bo.getDocCode()), XzdJsCgJungonEdit::getDocCode, bo.getDocCode()); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdJsCgJungonEdit::getTitle, bo.getTitle()); + lqw.eq(bo.getDocDate() != null, XzdJsCgJungonEdit::getDocDate, bo.getDocDate()); + lqw.eq(StringUtils.isNotBlank(bo.getFinalAccountCode()), XzdJsCgJungonEdit::getFinalAccountCode, bo.getFinalAccountCode()); + lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdJsCgJungonEdit::getContractName, bo.getContractName()); + lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), XzdJsCgJungonEdit::getContractCode, bo.getContractCode()); + lqw.eq(bo.getAdjustedFinalAmount() != null, XzdJsCgJungonEdit::getAdjustedFinalAmount, bo.getAdjustedFinalAmount()); + lqw.eq(bo.getProjectId() != null, XzdJsCgJungonEdit::getProjectId, bo.getProjectId()); + lqw.eq(bo.getDefaultFinanceOrg() != null, XzdJsCgJungonEdit::getDefaultFinanceOrg, bo.getDefaultFinanceOrg()); + lqw.eq(StringUtils.isNotBlank(bo.getAdjustmentDescription()), XzdJsCgJungonEdit::getAdjustmentDescription, bo.getAdjustmentDescription()); + lqw.eq(StringUtils.isNotBlank(bo.getProcurementMode()), XzdJsCgJungonEdit::getProcurementMode, bo.getProcurementMode()); + return lqw; + } + + /** + * 新增采购合同竣工结算调整 + * + * @param bo 采购合同竣工结算调整 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdJsCgJungonEditBo bo) { + XzdJsCgJungonEdit add = MapstructUtils.convert(bo, XzdJsCgJungonEdit.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改采购合同竣工结算调整 + * + * @param bo 采购合同竣工结算调整 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdJsCgJungonEditBo bo) { + XzdJsCgJungonEdit update = MapstructUtils.convert(bo, XzdJsCgJungonEdit.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdJsCgJungonEdit 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/settlement/service/impl/XzdJsCgJungonServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJungonServiceImpl.java new file mode 100644 index 00000000..71360c22 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsCgJungonServiceImpl.java @@ -0,0 +1,151 @@ +package org.dromara.xzd.settlement.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.settlement.domain.bo.XzdJsCgJungonBo; +import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonVo; +import org.dromara.xzd.settlement.domain.XzdJsCgJungon; +import org.dromara.xzd.settlement.mapper.XzdJsCgJungonMapper; +import org.dromara.xzd.settlement.service.IXzdJsCgJungonService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 采购合同竣工结算Service业务层处理 + * + * @author Lion Li + * @date 2025-10-14 + */ +@RequiredArgsConstructor +@Service +public class XzdJsCgJungonServiceImpl extends ServiceImpl implements IXzdJsCgJungonService { + + private final XzdJsCgJungonMapper baseMapper; + + /** + * 查询采购合同竣工结算 + * + * @param id 主键 + * @return 采购合同竣工结算 + */ + @Override + public XzdJsCgJungonVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询采购合同竣工结算列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 采购合同竣工结算分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdJsCgJungonBo 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(XzdJsCgJungonBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdJsCgJungonBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdJsCgJungon::getId); + lqw.eq(StringUtils.isNotBlank(bo.getDocCode()), XzdJsCgJungon::getDocCode, bo.getDocCode()); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdJsCgJungon::getTitle, bo.getTitle()); + lqw.eq(bo.getDocDate() != null, XzdJsCgJungon::getDocDate, bo.getDocDate()); + lqw.eq(bo.getContractCode() != null, XzdJsCgJungon::getContractCode, bo.getContractCode()); + lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdJsCgJungon::getContractName, bo.getContractName()); + lqw.eq(bo.getFinalAmount() != null, XzdJsCgJungon::getFinalAmount, bo.getFinalAmount()); + lqw.eq(bo.getCurrentPeriodTotal() != null, XzdJsCgJungon::getCurrentPeriodTotal, bo.getCurrentPeriodTotal()); + lqw.eq(bo.getCurrentDeduction() != null, XzdJsCgJungon::getCurrentDeduction, bo.getCurrentDeduction()); + lqw.eq(bo.getCurrentReward() != null, XzdJsCgJungon::getCurrentReward, bo.getCurrentReward()); + lqw.eq(bo.getApproveDate() != null, XzdJsCgJungon::getApproveDate, bo.getApproveDate()); + lqw.eq(bo.getProjectId() != null, XzdJsCgJungon::getProjectId, bo.getProjectId()); + lqw.eq(StringUtils.isNotBlank(bo.getStatCycle()), XzdJsCgJungon::getStatCycle, bo.getStatCycle()); + lqw.eq(bo.getPartyA() != null, XzdJsCgJungon::getPartyA, bo.getPartyA()); + lqw.eq(bo.getPartyB() != null, XzdJsCgJungon::getPartyB, bo.getPartyB()); + lqw.eq(bo.getProcurementMode() != null, XzdJsCgJungon::getProcurementMode, bo.getProcurementMode()); + lqw.eq(bo.getOwnerUnit() != null, XzdJsCgJungon::getOwnerUnit, bo.getOwnerUnit()); + lqw.eq(bo.getSupervisionUnit() != null, XzdJsCgJungon::getSupervisionUnit, bo.getSupervisionUnit()); + lqw.eq(bo.getConstructionUnit() != null, XzdJsCgJungon::getConstructionUnit, bo.getConstructionUnit()); + lqw.eq(bo.getAuditUnit() != null, XzdJsCgJungon::getAuditUnit, bo.getAuditUnit()); + lqw.eq(StringUtils.isNotBlank(bo.getDocumentReference()), XzdJsCgJungon::getDocumentReference, bo.getDocumentReference()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdJsCgJungon::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增采购合同竣工结算 + * + * @param bo 采购合同竣工结算 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdJsCgJungonBo bo) { + XzdJsCgJungon add = MapstructUtils.convert(bo, XzdJsCgJungon.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改采购合同竣工结算 + * + * @param bo 采购合同竣工结算 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdJsCgJungonBo bo) { + XzdJsCgJungon update = MapstructUtils.convert(bo, XzdJsCgJungon.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdJsCgJungon 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/settlement/service/impl/XzdJsDeductionItemsServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsDeductionItemsServiceImpl.java new file mode 100644 index 00000000..0148c7d7 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsDeductionItemsServiceImpl.java @@ -0,0 +1,139 @@ +package org.dromara.xzd.settlement.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.settlement.domain.bo.XzdJsDeductionItemsBo; +import org.dromara.xzd.settlement.domain.vo.XzdJsDeductionItemsVo; +import org.dromara.xzd.settlement.domain.XzdJsDeductionItems; +import org.dromara.xzd.settlement.mapper.XzdJsDeductionItemsMapper; +import org.dromara.xzd.settlement.service.IXzdJsDeductionItemsService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 结算-扣款与奖励项Service业务层处理 + * + * @author Lion Li + * @date 2025-10-14 + */ +@RequiredArgsConstructor +@Service +public class XzdJsDeductionItemsServiceImpl extends ServiceImpl implements IXzdJsDeductionItemsService { + + private final XzdJsDeductionItemsMapper baseMapper; + + /** + * 查询结算-扣款与奖励项 + * + * @param id 主键 + * @return 结算-扣款与奖励项 + */ + @Override + public XzdJsDeductionItemsVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询结算-扣款与奖励项列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 结算-扣款与奖励项分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdJsDeductionItemsBo 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(XzdJsDeductionItemsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdJsDeductionItemsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdJsDeductionItems::getId); + lqw.eq(bo.getMainDocId() != null, XzdJsDeductionItems::getMainDocId, bo.getMainDocId()); + lqw.eq(bo.getDetailType() != null, XzdJsDeductionItems::getDetailType, bo.getDetailType()); + lqw.eq(StringUtils.isNotBlank(bo.getItemCategory()), XzdJsDeductionItems::getItemCategory, bo.getItemCategory()); + lqw.eq(bo.getCurrentPeriodAmount() != null, XzdJsDeductionItems::getCurrentPeriodAmount, bo.getCurrentPeriodAmount()); + lqw.eq(bo.getTotalAmount() != null, XzdJsDeductionItems::getTotalAmount, bo.getTotalAmount()); + lqw.eq(bo.getApplyDeduction() != null, XzdJsDeductionItems::getApplyDeduction, bo.getApplyDeduction()); + lqw.eq(StringUtils.isNotBlank(bo.getItemProperty()), XzdJsDeductionItems::getItemProperty, bo.getItemProperty()); + lqw.eq(StringUtils.isNotBlank(bo.getWbs()), XzdJsDeductionItems::getWbs, bo.getWbs()); + lqw.eq(StringUtils.isNotBlank(bo.getCbs()), XzdJsDeductionItems::getCbs, bo.getCbs()); + return lqw; + } + + /** + * 新增结算-扣款与奖励项 + * + * @param bo 结算-扣款与奖励项 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdJsDeductionItemsBo bo) { + XzdJsDeductionItems add = MapstructUtils.convert(bo, XzdJsDeductionItems.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改结算-扣款与奖励项 + * + * @param bo 结算-扣款与奖励项 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdJsDeductionItemsBo bo) { + XzdJsDeductionItems update = MapstructUtils.convert(bo, XzdJsDeductionItems.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdJsDeductionItems 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/settlement/service/impl/XzdJsZhfwJinduServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsZhfwJinduServiceImpl.java new file mode 100644 index 00000000..168fdd5b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/settlement/service/impl/XzdJsZhfwJinduServiceImpl.java @@ -0,0 +1,154 @@ +package org.dromara.xzd.settlement.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.settlement.domain.bo.XzdJsZhfwJinduBo; +import org.dromara.xzd.settlement.domain.vo.XzdJsZhfwJinduVo; +import org.dromara.xzd.settlement.domain.XzdJsZhfwJindu; +import org.dromara.xzd.settlement.mapper.XzdJsZhfwJinduMapper; +import org.dromara.xzd.settlement.service.IXzdJsZhfwJinduService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 综合服务合同进度结算Service业务层处理 + * + * @author Lion Li + * @date 2025-10-14 + */ +@RequiredArgsConstructor +@Service +public class XzdJsZhfwJinduServiceImpl extends ServiceImpl implements IXzdJsZhfwJinduService { + + private final XzdJsZhfwJinduMapper baseMapper; + + /** + * 查询综合服务合同进度结算 + * + * @param id 主键 + * @return 综合服务合同进度结算 + */ + @Override + public XzdJsZhfwJinduVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询综合服务合同进度结算列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 综合服务合同进度结算分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdJsZhfwJinduBo 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(XzdJsZhfwJinduBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdJsZhfwJinduBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdJsZhfwJindu::getId); + lqw.eq(StringUtils.isNotBlank(bo.getDocCode()), XzdJsZhfwJindu::getDocCode, bo.getDocCode()); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdJsZhfwJindu::getTitle, bo.getTitle()); + lqw.eq(bo.getDocDate() != null, XzdJsZhfwJindu::getDocDate, bo.getDocDate()); + lqw.eq(bo.getContractCode() != null, XzdJsZhfwJindu::getContractCode, bo.getContractCode()); + lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdJsZhfwJindu::getContractName, bo.getContractName()); + lqw.eq(StringUtils.isNotBlank(bo.getStatCycle()), XzdJsZhfwJindu::getStatCycle, bo.getStatCycle()); + lqw.eq(bo.getMeasureStart() != null, XzdJsZhfwJindu::getMeasureStart, bo.getMeasureStart()); + lqw.eq(bo.getApproveAmount() != null, XzdJsZhfwJindu::getApproveAmount, bo.getApproveAmount()); + lqw.eq(bo.getProject() != null, XzdJsZhfwJindu::getProject, bo.getProject()); + lqw.eq(bo.getSettlementUnit() != null, XzdJsZhfwJindu::getSettlementUnit, bo.getSettlementUnit()); + lqw.eq(bo.getContractAmount() != null, XzdJsZhfwJindu::getContractAmount, bo.getContractAmount()); + lqw.eq(bo.getTotalSettlementExclCurrent() != null, XzdJsZhfwJindu::getTotalSettlementExclCurrent, bo.getTotalSettlementExclCurrent()); + lqw.eq(bo.getTotalSettlementInclCurrent() != null, XzdJsZhfwJindu::getTotalSettlementInclCurrent, bo.getTotalSettlementInclCurrent()); + lqw.eq(bo.getCurrentSettlementRatio() != null, XzdJsZhfwJindu::getCurrentSettlementRatio, bo.getCurrentSettlementRatio()); + lqw.eq(bo.getSettledRatioExclCurrent() != null, XzdJsZhfwJindu::getSettledRatioExclCurrent, bo.getSettledRatioExclCurrent()); + lqw.eq(bo.getSettlementRatioUntilCurrent() != null, XzdJsZhfwJindu::getSettlementRatioUntilCurrent, bo.getSettlementRatioUntilCurrent()); + lqw.eq(bo.getRealTimeRefresh() != null, XzdJsZhfwJindu::getRealTimeRefresh, bo.getRealTimeRefresh()); + lqw.eq(bo.getTotalSettledAmount() != null, XzdJsZhfwJindu::getTotalSettledAmount, bo.getTotalSettledAmount()); + lqw.eq(bo.getCurrentDeductionAmount() != null, XzdJsZhfwJindu::getCurrentDeductionAmount, bo.getCurrentDeductionAmount()); + lqw.eq(bo.getCurrentRewardAmount() != null, XzdJsZhfwJindu::getCurrentRewardAmount, bo.getCurrentRewardAmount()); + lqw.eq(bo.getContractTaxInclAmount() != null, XzdJsZhfwJindu::getContractTaxInclAmount, bo.getContractTaxInclAmount()); + lqw.eq(bo.getContractTaxExclAmount() != null, XzdJsZhfwJindu::getContractTaxExclAmount, bo.getContractTaxExclAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getDocumentReference()), XzdJsZhfwJindu::getDocumentReference, bo.getDocumentReference()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdJsZhfwJindu::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增综合服务合同进度结算 + * + * @param bo 综合服务合同进度结算 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdJsZhfwJinduBo bo) { + XzdJsZhfwJindu add = MapstructUtils.convert(bo, XzdJsZhfwJindu.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改综合服务合同进度结算 + * + * @param bo 综合服务合同进度结算 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdJsZhfwJinduBo bo) { + XzdJsZhfwJindu update = MapstructUtils.convert(bo, XzdJsZhfwJindu.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdJsZhfwJindu 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/resources/mapper/xzd/comprehensive/XzdCsContractChangeMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/comprehensive/XzdCsContractChangeMapper.xml new file mode 100644 index 00000000..014b2360 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/comprehensive/XzdCsContractChangeMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/comprehensive/XzdCsContractInformationMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/comprehensive/XzdCsContractInformationMapper.xml new file mode 100644 index 00000000..66fd2450 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/comprehensive/XzdCsContractInformationMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/comprehensive/XzdCsContractSuspendMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/comprehensive/XzdCsContractSuspendMapper.xml new file mode 100644 index 00000000..5768b88f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/comprehensive/XzdCsContractSuspendMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsCgJinduMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsCgJinduMapper.xml new file mode 100644 index 00000000..d8048367 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsCgJinduMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsCgJungonEditMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsCgJungonEditMapper.xml new file mode 100644 index 00000000..55823737 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsCgJungonEditMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsCgJungonMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsCgJungonMapper.xml new file mode 100644 index 00000000..1c87be4f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsCgJungonMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsDeductionItemsMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsDeductionItemsMapper.xml new file mode 100644 index 00000000..726b1e19 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsDeductionItemsMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsZhfwJinduMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsZhfwJinduMapper.xml new file mode 100644 index 00000000..aa97b566 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/xzd/settlement/XzdJsZhfwJinduMapper.xml @@ -0,0 +1,7 @@ + + + + +