承包分包合同进度结算

This commit is contained in:
lcj
2025-10-18 19:44:37 +08:00
parent 83b7b32035
commit e7fa22e573
47 changed files with 4316 additions and 27 deletions

View File

@ -253,6 +253,8 @@ springdoc:
packages-to-scan: org.dromara.design packages-to-scan: org.dromara.design
- group: 13.工作流模块 - group: 13.工作流模块
packages-to-scan: org.dromara.workflow packages-to-scan: org.dromara.workflow
- group: 14.合同模块
packages-to-scan: org.dromara.ctr
- group: 15.无人机模块 - group: 15.无人机模块
packages-to-scan: org.dromara.drone packages-to-scan: org.dromara.drone
- group: 20.代码生成模块 - group: 20.代码生成模块

View File

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

View File

@ -0,0 +1,105 @@
package org.dromara.ctr.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.ctr.domain.vo.CtrContractProgressSettlementItemVo;
import org.dromara.ctr.domain.bo.CtrContractProgressSettlementItemBo;
import org.dromara.ctr.service.ICtrContractProgressSettlementItemService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 承包合同进度结算清单
*
* @author lilemy
* @date 2025-10-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/ctr/contractProgressSettlementItem")
public class CtrContractProgressSettlementItemController extends BaseController {
private final ICtrContractProgressSettlementItemService ctrContractProgressSettlementItemService;
/**
* 查询承包合同进度结算清单列表
*/
@SaCheckPermission("ctr:contractProgressSettlementItem:list")
@GetMapping("/list")
public TableDataInfo<CtrContractProgressSettlementItemVo> list(CtrContractProgressSettlementItemBo bo, PageQuery pageQuery) {
return ctrContractProgressSettlementItemService.queryPageList(bo, pageQuery);
}
/**
* 导出承包合同进度结算清单列表
*/
@SaCheckPermission("ctr:contractProgressSettlementItem:export")
@Log(title = "承包合同进度结算清单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CtrContractProgressSettlementItemBo bo, HttpServletResponse response) {
List<CtrContractProgressSettlementItemVo> list = ctrContractProgressSettlementItemService.queryList(bo);
ExcelUtil.exportExcel(list, "承包合同进度结算清单", CtrContractProgressSettlementItemVo.class, response);
}
/**
* 获取承包合同进度结算清单详细信息
*
* @param id 主键
*/
@SaCheckPermission("ctr:contractProgressSettlementItem:query")
@GetMapping("/{id}")
public R<CtrContractProgressSettlementItemVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(ctrContractProgressSettlementItemService.queryById(id));
}
/**
* 新增承包合同进度结算清单
*/
@SaCheckPermission("ctr:contractProgressSettlementItem:add")
@Log(title = "承包合同进度结算清单", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody CtrContractProgressSettlementItemBo bo) {
return toAjax(ctrContractProgressSettlementItemService.insertByBo(bo));
}
/**
* 修改承包合同进度结算清单
*/
@SaCheckPermission("ctr:contractProgressSettlementItem:edit")
@Log(title = "承包合同进度结算清单", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody CtrContractProgressSettlementItemBo bo) {
return toAjax(ctrContractProgressSettlementItemService.updateByBo(bo));
}
/**
* 删除承包合同进度结算清单
*
* @param ids 主键串
*/
@SaCheckPermission("ctr:contractProgressSettlementItem:remove")
@Log(title = "承包合同进度结算清单", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(ctrContractProgressSettlementItemService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,106 @@
package org.dromara.ctr.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.ctr.domain.bo.CtrSubcontractProgressSettlementBo;
import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementCreateReq;
import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementUpdateReq;
import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementVo;
import org.dromara.ctr.service.ICtrSubcontractProgressSettlementService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 分包合同进度结算
*
* @author lilemy
* @date 2025-10-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/ctr/subcontractProgressSettlement")
public class CtrSubcontractProgressSettlementController extends BaseController {
private final ICtrSubcontractProgressSettlementService ctrSubcontractProgressSettlementService;
/**
* 查询分包合同进度结算列表
*/
@SaCheckPermission("ctr:subcontractProgressSettlement:list")
@GetMapping("/list")
public TableDataInfo<CtrSubcontractProgressSettlementVo> list(CtrSubcontractProgressSettlementBo bo, PageQuery pageQuery) {
return ctrSubcontractProgressSettlementService.queryPageList(bo, pageQuery);
}
/**
* 导出分包合同进度结算列表
*/
@SaCheckPermission("ctr:subcontractProgressSettlement:export")
@Log(title = "分包合同进度结算", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CtrSubcontractProgressSettlementBo bo, HttpServletResponse response) {
List<CtrSubcontractProgressSettlementVo> list = ctrSubcontractProgressSettlementService.queryList(bo);
ExcelUtil.exportExcel(list, "分包合同进度结算", CtrSubcontractProgressSettlementVo.class, response);
}
/**
* 获取分包合同进度结算详细信息
*
* @param id 主键
*/
@SaCheckPermission("ctr:subcontractProgressSettlement:query")
@GetMapping("/{id}")
public R<CtrSubcontractProgressSettlementVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(ctrSubcontractProgressSettlementService.queryById(id));
}
/**
* 新增分包合同进度结算
*/
@SaCheckPermission("ctr:subcontractProgressSettlement:add")
@Log(title = "分包合同进度结算", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated @RequestBody CtrSubcontractProgressSettlementCreateReq req) {
return toAjax(ctrSubcontractProgressSettlementService.insertByBo(req));
}
/**
* 修改分包合同进度结算
*/
@SaCheckPermission("ctr:subcontractProgressSettlement:edit")
@Log(title = "分包合同进度结算", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated @RequestBody CtrSubcontractProgressSettlementUpdateReq req) {
return toAjax(ctrSubcontractProgressSettlementService.updateByBo(req));
}
/**
* 删除分包合同进度结算
*
* @param ids 主键串
*/
@SaCheckPermission("ctr:subcontractProgressSettlement:remove")
@Log(title = "分包合同进度结算", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(ctrSubcontractProgressSettlementService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,105 @@
package org.dromara.ctr.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.ctr.domain.vo.CtrSubcontractProgressSettlementItemVo;
import org.dromara.ctr.domain.bo.CtrSubcontractProgressSettlementItemBo;
import org.dromara.ctr.service.ICtrSubcontractProgressSettlementItemService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 分包合同进度结算清单
*
* @author lilemy
* @date 2025-10-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/ctr/subcontractProgressSettlementItem")
public class CtrSubcontractProgressSettlementItemController extends BaseController {
private final ICtrSubcontractProgressSettlementItemService ctrSubcontractProgressSettlementItemService;
/**
* 查询分包合同进度结算清单列表
*/
@SaCheckPermission("ctr:subcontractProgressSettlementItem:list")
@GetMapping("/list")
public TableDataInfo<CtrSubcontractProgressSettlementItemVo> list(CtrSubcontractProgressSettlementItemBo bo, PageQuery pageQuery) {
return ctrSubcontractProgressSettlementItemService.queryPageList(bo, pageQuery);
}
/**
* 导出分包合同进度结算清单列表
*/
@SaCheckPermission("ctr:subcontractProgressSettlementItem:export")
@Log(title = "分包合同进度结算清单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CtrSubcontractProgressSettlementItemBo bo, HttpServletResponse response) {
List<CtrSubcontractProgressSettlementItemVo> list = ctrSubcontractProgressSettlementItemService.queryList(bo);
ExcelUtil.exportExcel(list, "分包合同进度结算清单", CtrSubcontractProgressSettlementItemVo.class, response);
}
/**
* 获取分包合同进度结算清单详细信息
*
* @param id 主键
*/
@SaCheckPermission("ctr:subcontractProgressSettlementItem:query")
@GetMapping("/{id}")
public R<CtrSubcontractProgressSettlementItemVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(ctrSubcontractProgressSettlementItemService.queryById(id));
}
/**
* 新增分包合同进度结算清单
*/
@SaCheckPermission("ctr:subcontractProgressSettlementItem:add")
@Log(title = "分包合同进度结算清单", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody CtrSubcontractProgressSettlementItemBo bo) {
return toAjax(ctrSubcontractProgressSettlementItemService.insertByBo(bo));
}
/**
* 修改分包合同进度结算清单
*/
@SaCheckPermission("ctr:subcontractProgressSettlementItem:edit")
@Log(title = "分包合同进度结算清单", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody CtrSubcontractProgressSettlementItemBo bo) {
return toAjax(ctrSubcontractProgressSettlementItemService.updateByBo(bo));
}
/**
* 删除分包合同进度结算清单
*
* @param ids 主键串
*/
@SaCheckPermission("ctr:subcontractProgressSettlementItem:remove")
@Log(title = "分包合同进度结算清单", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(ctrSubcontractProgressSettlementItemService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,139 @@
package org.dromara.ctr.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 承包合同进度结算对象 ctr_contract_progress_settlement
*
* @author lilemy
* @date 2025-10-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("ctr_contract_progress_settlement")
public class CtrContractProgressSettlement extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 所属部门
*/
private Long deptId;
/**
* 单据编码
*/
private String documentCode;
/**
* 标题
*/
private String title;
/**
* 结算日期
*/
private LocalDate settlementDate;
/**
* 合同编码
*/
private String contractCode;
/**
* 合同名称
*/
private String contractName;
/**
* 统计周期
*/
private String contractProgress;
/**
* 项目ID
*/
private Long projectId;
/**
* 项目名称
*/
private String projectName;
/**
* 审批金额
*/
private BigDecimal approvalAmount;
/**
* 计量开始日期
*/
private LocalDate measureDateBegin;
/**
* 计量结束日期
*/
private LocalDate measureDateEnd;
/**
* 结算单位(客户)
*/
private Long settlementUnit;
/**
* 本期结算金额
*/
private BigDecimal settlementMoney;
/**
* 本期扣款金额
*/
private BigDecimal deductionMoney;
/**
* 本期奖励金额
*/
private BigDecimal bonus;
/**
* 合同金额
*/
private BigDecimal contractAmount;
/**
* 本次结算比例
*/
private BigDecimal thisSettlementRatio;
/**
* 支付条款
*/
private Long paymentTerms;
/**
* 多文件逗号分隔
*/
private String fileId;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,107 @@
package org.dromara.ctr.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;
/**
* 承包合同进度结算清单对象 ctr_contract_progress_settlement_item
*
* @author lilemy
* @date 2025-10-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("ctr_contract_progress_settlement_item")
public class CtrContractProgressSettlementItem extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 结算单ID
*/
private Long settlementId;
/**
* 类型(1合同内清单 2变更增加清单 3合同外清单)
*/
private String type;
/**
* 编码
*/
private String code;
/**
* 合同清单名称
*/
private String name;
/**
* 计量单位
*/
private String unit;
/**
* 单价
*/
private BigDecimal unitPrice;
/**
* 含税单价
*/
private BigDecimal taxUnitPrice;
/**
* 本期结算数量
*/
private BigDecimal currentQty;
/**
* 本期结算百分比
*/
private BigDecimal currentRate;
/**
* 本期结算金额
*/
private BigDecimal currentAmount;
/**
* 本期结算不含税金额
*/
private BigDecimal currentNoAmount;
/**
* 本期审批数量
*/
private BigDecimal currentApprovedQty;
/**
* 本期审批金额
*/
private BigDecimal currentApprovedAmount;
/**
* 税率(%
*/
private String taxRate;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,118 @@
package org.dromara.ctr.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;
/**
* 分包合同进度结算对象 ctr_subcontract_progress_settlement
*
* @author lilemy
* @date 2025-10-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("ctr_subcontract_progress_settlement")
public class CtrSubcontractProgressSettlement extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 单据编码
*/
private String documentCode;
/**
* 标题
*/
private String title;
/**
* 单据日期
*/
private LocalDate documentDate;
/**
* 合同编码
*/
private String contractCode;
/**
* 合同名称
*/
private String contractName;
/**
* 统计周期
*/
private String contractProgress;
/**
* 计量开始日期
*/
private LocalDate measureDateBegin;
/**
* 计量结束日期
*/
private LocalDate measureDateEnd;
/**
* 项目ID
*/
private Long projectId;
/**
* 项目名称
*/
private String projectName;
/**
* 审批金额
*/
private BigDecimal approvalAmount;
/**
* 结算单位
*/
private Long settlementUnit;
/**
* 合同金额
*/
private BigDecimal contractAmount;
/**
* 本次结算比例
*/
private BigDecimal currentSettlementRate;
/**
* 文件ID
*/
private String fileId;
/**
* 审核状态
*/
private String auditStatus;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,130 @@
package org.dromara.ctr.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 分包合同进度结算清单对象 ctr_subcontract_progress_settlement_item
*
* @author lilemy
* @date 2025-10-18
*/
@Data
@TableName("ctr_subcontract_progress_settlement_item")
public class CtrSubcontractProgressSettlementItem implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 结算单ID
*/
private Long settlementId;
/**
* 类型(1合同内清单 2变更增加清单 3合同外清单)
*/
private String type;
/**
* 编码
*/
private String code;
/**
* 合同清单名称
*/
private String name;
/**
* 计量单位
*/
private String unit;
/**
* 单价
*/
private BigDecimal unitPrice;
/**
* 含税单价
*/
private BigDecimal taxUnitPrice;
/**
* 本期结算数量
*/
private BigDecimal currentQty;
/**
* 本期结算百分比
*/
private BigDecimal currentRate;
/**
* 本期结算金额
*/
private BigDecimal currentAmount;
/**
* 本期结算不含税金额
*/
private BigDecimal currentNoAmount;
/**
* 本期审批数量
*/
private BigDecimal currentApprovedQty;
/**
* 本期审批金额
*/
private BigDecimal currentApprovedAmount;
/**
* 税率(%
*/
private String taxRate;
/**
* 税额
*/
private String tax;
/**
* WBS工作分解结构
*/
private String wbs;
/**
* CBS成本分解结构
*/
private String cbs;
/**
* CBS预算总额
*/
private BigDecimal cbsBudgetTotal;
/**
* CBS余额
*/
private BigDecimal cbsBalance;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,145 @@
package org.dromara.ctr.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.ctr.domain.CtrContractProgressSettlement;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 承包合同进度结算业务对象 ctr_contract_progress_settlement
*
* @author lilemy
* @date 2025-10-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = CtrContractProgressSettlement.class, reverseConvertGenerate = false)
public class CtrContractProgressSettlementBo extends BaseEntity {
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = {EditGroup.class})
private Long id;
/**
* 所属部门
*/
@NotNull(message = "所属部门不能为空", groups = {AddGroup.class, EditGroup.class})
private Long deptId;
/**
* 单据编码
*/
@NotBlank(message = "单据编码不能为空", groups = {AddGroup.class, EditGroup.class})
private String documentCode;
/**
* 标题
*/
@NotBlank(message = "标题不能为空", groups = {AddGroup.class, EditGroup.class})
private String title;
/**
* 结算日期
*/
@NotNull(message = "结算日期不能为空", groups = {AddGroup.class, EditGroup.class})
private LocalDate settlementDate;
/**
* 合同编码
*/
@NotBlank(message = "合同编码不能为空", groups = {AddGroup.class, EditGroup.class})
private String contractCode;
/**
* 合同名称
*/
private String contractName;
/**
* 统计周期
*/
private String contractProgress;
/**
* 项目ID
*/
private Long projectId;
/**
* 项目名称
*/
private String projectName;
/**
* 审批金额
*/
@NotNull(message = "审批金额不能为空", groups = {AddGroup.class, EditGroup.class})
private BigDecimal approvalAmount;
/**
* 计量开始日期
*/
private LocalDate measureDateBegin;
/**
* 计量结束日期
*/
private LocalDate measureDateEnd;
/**
* 结算单位(客户)
*/
private Long settlementUnit;
/**
* 本期结算金额
*/
private BigDecimal settlementMoney;
/**
* 本期扣款金额
*/
private BigDecimal deductionMoney;
/**
* 本期奖励金额
*/
private BigDecimal bonus;
/**
* 合同金额
*/
private BigDecimal contractAmount;
/**
* 本次结算比例
*/
private BigDecimal thisSettlementRatio;
/**
* 支付条款
*/
private Long paymentTerms;
/**
* 多文件逗号分隔
*/
private String fileId;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,110 @@
package org.dromara.ctr.domain.bo;
import org.dromara.ctr.domain.CtrContractProgressSettlementItem;
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;
/**
* 承包合同进度结算清单业务对象 ctr_contract_progress_settlement_item
*
* @author lilemy
* @date 2025-10-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = CtrContractProgressSettlementItem.class, reverseConvertGenerate = false)
public class CtrContractProgressSettlementItemBo extends BaseEntity {
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long id;
/**
* 结算单ID
*/
@NotNull(message = "结算单ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long settlementId;
/**
* 类型(1合同内清单 2变更增加清单 3合同外清单)
*/
@NotBlank(message = "类型(1合同内清单 2变更增加清单 3合同外清单)不能为空", groups = { AddGroup.class, EditGroup.class })
private String type;
/**
* 编码
*/
@NotBlank(message = "编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String code;
/**
* 合同清单名称
*/
@NotBlank(message = "合同清单名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 计量单位
*/
@NotBlank(message = "计量单位不能为空", groups = { AddGroup.class, EditGroup.class })
private String unit;
/**
* 单价
*/
private BigDecimal unitPrice;
/**
* 含税单价
*/
private BigDecimal taxUnitPrice;
/**
* 本期结算数量
*/
private BigDecimal currentQty;
/**
* 本期结算百分比
*/
private BigDecimal currentRate;
/**
* 本期结算金额
*/
private BigDecimal currentAmount;
/**
* 本期结算不含税金额
*/
private BigDecimal currentNoAmount;
/**
* 本期审批数量
*/
private BigDecimal currentApprovedQty;
/**
* 本期审批金额
*/
private BigDecimal currentApprovedAmount;
/**
* 税率(%
*/
private String taxRate;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,122 @@
package org.dromara.ctr.domain.bo;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlement;
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;
/**
* 分包合同进度结算业务对象 ctr_subcontract_progress_settlement
*
* @author lilemy
* @date 2025-10-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = CtrSubcontractProgressSettlement.class, reverseConvertGenerate = false)
public class CtrSubcontractProgressSettlementBo extends BaseEntity {
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long id;
/**
* 单据编码
*/
@NotBlank(message = "单据编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String documentCode;
/**
* 标题
*/
@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 contractCode;
/**
* 合同名称
*/
private String contractName;
/**
* 统计周期
*/
private String contractProgress;
/**
* 计量开始日期
*/
private LocalDate measureDateBegin;
/**
* 计量结束日期
*/
private LocalDate measureDateEnd;
/**
* 项目ID
*/
private Long projectId;
/**
* 项目名称
*/
private String projectName;
/**
* 审批金额
*/
@NotNull(message = "审批金额不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal approvalAmount;
/**
* 结算单位
*/
private Long settlementUnit;
/**
* 合同金额
*/
private BigDecimal contractAmount;
/**
* 本次结算比例
*/
private BigDecimal currentSettlementRate;
/**
* 文件ID
*/
private String fileId;
/**
* 审核状态
*/
private String auditStatus;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,136 @@
package org.dromara.ctr.domain.bo;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem;
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;
/**
* 分包合同进度结算清单业务对象 ctr_subcontract_progress_settlement_item
*
* @author lilemy
* @date 2025-10-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = CtrSubcontractProgressSettlementItem.class, reverseConvertGenerate = false)
public class CtrSubcontractProgressSettlementItemBo extends BaseEntity {
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long id;
/**
* 结算单ID
*/
@NotNull(message = "结算单ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long settlementId;
/**
* 类型(1合同内清单 2变更增加清单 3合同外清单)
*/
@NotBlank(message = "类型(1合同内清单 2变更增加清单 3合同外清单)不能为空", groups = { AddGroup.class, EditGroup.class })
private String type;
/**
* 编码
*/
@NotBlank(message = "编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String code;
/**
* 合同清单名称
*/
@NotBlank(message = "合同清单名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 计量单位
*/
@NotBlank(message = "计量单位不能为空", groups = { AddGroup.class, EditGroup.class })
private String unit;
/**
* 单价
*/
private BigDecimal unitPrice;
/**
* 含税单价
*/
private BigDecimal taxUnitPrice;
/**
* 本期结算数量
*/
private BigDecimal currentQty;
/**
* 本期结算百分比
*/
private BigDecimal currentRate;
/**
* 本期结算金额
*/
private BigDecimal currentAmount;
/**
* 本期结算不含税金额
*/
private BigDecimal currentNoAmount;
/**
* 本期审批数量
*/
private BigDecimal currentApprovedQty;
/**
* 本期审批金额
*/
private BigDecimal currentApprovedAmount;
/**
* 税率(%
*/
private String taxRate;
/**
* 税额
*/
private String tax;
/**
* WBS工作分解结构
*/
private String wbs;
/**
* CBS成本分解结构
*/
private String cbs;
/**
* CBS预算总额
*/
private BigDecimal cbsBudgetTotal;
/**
* CBS余额
*/
private BigDecimal cbsBalance;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,154 @@
package org.dromara.ctr.domain.dto;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.ctr.domain.CtrContractProgressSettlement;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
/**
* 承包合同进度结算业务对象 ctr_contract_progress_settlement
*
* @author lilemy
* @date 2025-10-18
*/
@Data
@AutoMapper(target = CtrContractProgressSettlement.class, reverseConvertGenerate = false)
public class CtrContractProgressSettlementCreateReq implements Serializable {
@Serial
private static final long serialVersionUID = -7707258738219359278L;
/**
* 所属部门
*/
@NotNull(message = "所属部门不能为空")
private Long deptId;
/**
* 单据编码
*/
@NotBlank(message = "单据编码不能为空")
private String documentCode;
/**
* 标题
*/
@NotBlank(message = "标题不能为空")
private String title;
/**
* 结算日期
*/
@NotNull(message = "结算日期不能为空")
private LocalDate settlementDate;
/**
* 合同编码
*/
@NotBlank(message = "合同编码不能为空")
private String contractCode;
/**
* 合同名称
*/
private String contractName;
/**
* 统计周期
*/
private String contractProgress;
/**
* 项目ID
*/
private Long projectId;
/**
* 项目名称
*/
private String projectName;
/**
* 审批金额
*/
@NotNull(message = "审批金额不能为空")
private BigDecimal approvalAmount;
/**
* 计量开始日期
*/
private LocalDate measureDateBegin;
/**
* 计量结束日期
*/
private LocalDate measureDateEnd;
/**
* 结算单位(客户)
*/
private Long settlementUnit;
/**
* 本期结算金额
*/
private BigDecimal settlementMoney;
/**
* 本期扣款金额
*/
private BigDecimal deductionMoney;
/**
* 本期奖励金额
*/
private BigDecimal bonus;
/**
* 合同金额
*/
private BigDecimal contractAmount;
/**
* 本次结算比例
*/
private BigDecimal thisSettlementRatio;
/**
* 支付条款
*/
private Long paymentTerms;
/**
* 多文件逗号分隔
*/
private String fileId;
/**
* 备注
*/
private String remark;
/**
* 合同内清单
*/
private List<CtrContractProgressSettlementItemCreateReq> inInventory;
/**
* 变更增加清单
*/
private List<CtrContractProgressSettlementItemCreateReq> changeInventory;
/**
* 合同外清单
*/
private List<CtrContractProgressSettlementItemCreateReq> outInventory;
}

View File

@ -0,0 +1,86 @@
package org.dromara.ctr.domain.dto;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @author lilemy
* @date 2025-10-18 17:05
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CtrContractProgressSettlementItemCreateReq {
/**
* 编码
*/
@NotBlank(message = "编码不能为空")
private String code;
/**
* 合同清单名称
*/
@NotBlank(message = "合同清单名称不能为空")
private String name;
/**
* 计量单位
*/
@NotBlank(message = "计量单位不能为空")
private String unit;
/**
* 单价
*/
private BigDecimal unitPrice;
/**
* 含税单价
*/
private BigDecimal taxUnitPrice;
/**
* 本期结算数量
*/
private BigDecimal currentQty;
/**
* 本期结算百分比
*/
private BigDecimal currentRate;
/**
* 本期结算金额
*/
private BigDecimal currentAmount;
/**
* 本期结算不含税金额
*/
private BigDecimal currentNoAmount;
/**
* 本期审批数量
*/
private BigDecimal currentApprovedQty;
/**
* 本期审批金额
*/
private BigDecimal currentApprovedAmount;
/**
* 税率(%
*/
private String taxRate;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,91 @@
package org.dromara.ctr.domain.dto;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @author lilemy
* @date 2025-10-18 17:39
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CtrContractProgressSettlementItemUpdateReq {
/**
* 主键ID
*/
private Long id;
/**
* 编码
*/
@NotBlank(message = "编码不能为空")
private String code;
/**
* 合同清单名称
*/
@NotBlank(message = "合同清单名称不能为空")
private String name;
/**
* 计量单位
*/
@NotBlank(message = "计量单位不能为空")
private String unit;
/**
* 单价
*/
private BigDecimal unitPrice;
/**
* 含税单价
*/
private BigDecimal taxUnitPrice;
/**
* 本期结算数量
*/
private BigDecimal currentQty;
/**
* 本期结算百分比
*/
private BigDecimal currentRate;
/**
* 本期结算金额
*/
private BigDecimal currentAmount;
/**
* 本期结算不含税金额
*/
private BigDecimal currentNoAmount;
/**
* 本期审批数量
*/
private BigDecimal currentApprovedQty;
/**
* 本期审批金额
*/
private BigDecimal currentApprovedAmount;
/**
* 税率(%
*/
private String taxRate;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,157 @@
package org.dromara.ctr.domain.dto;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.ctr.domain.CtrContractProgressSettlement;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
/**
* @author lilemy
* @date 2025-10-18 17:30
*/
@Data
@AutoMapper(target = CtrContractProgressSettlement.class, reverseConvertGenerate = false)
public class CtrContractProgressSettlementUpdateReq implements Serializable {
@Serial
private static final long serialVersionUID = -105855005415297131L;
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空")
private Long id;
/**
* 所属部门
*/
@NotNull(message = "所属部门不能为空")
private Long deptId;
/**
* 单据编码
*/
@NotBlank(message = "单据编码不能为空")
private String documentCode;
/**
* 标题
*/
@NotBlank(message = "标题不能为空")
private String title;
/**
* 结算日期
*/
@NotNull(message = "结算日期不能为空")
private LocalDate settlementDate;
/**
* 合同编码
*/
@NotBlank(message = "合同编码不能为空")
private String contractCode;
/**
* 合同名称
*/
private String contractName;
/**
* 统计周期
*/
private String contractProgress;
/**
* 项目ID
*/
private Long projectId;
/**
* 项目名称
*/
private String projectName;
/**
* 审批金额
*/
@NotNull(message = "审批金额不能为空")
private BigDecimal approvalAmount;
/**
* 计量开始日期
*/
private LocalDate measureDateBegin;
/**
* 计量结束日期
*/
private LocalDate measureDateEnd;
/**
* 结算单位(客户)
*/
private Long settlementUnit;
/**
* 本期结算金额
*/
private BigDecimal settlementMoney;
/**
* 本期扣款金额
*/
private BigDecimal deductionMoney;
/**
* 本期奖励金额
*/
private BigDecimal bonus;
/**
* 合同金额
*/
private BigDecimal contractAmount;
/**
* 本次结算比例
*/
private BigDecimal thisSettlementRatio;
/**
* 支付条款
*/
private Long paymentTerms;
/**
* 多文件逗号分隔
*/
private String fileId;
/**
* 备注
*/
private String remark;
/**
* 合同内清单
*/
private List<CtrContractProgressSettlementItemUpdateReq> inInventory;
/**
* 变更增加清单
*/
private List<CtrContractProgressSettlementItemUpdateReq> changeInventory;
/**
* 合同外清单
*/
private List<CtrContractProgressSettlementItemUpdateReq> outInventory;
}

View File

@ -0,0 +1,130 @@
package org.dromara.ctr.domain.dto;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlement;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
/**
* @author lilemy
* @date 2025-10-18 19:14
*/
@Data
@AutoMapper(target = CtrSubcontractProgressSettlement.class, reverseConvertGenerate = false)
public class CtrSubcontractProgressSettlementCreateReq implements Serializable {
@Serial
private static final long serialVersionUID = 770553999547826460L;
/**
* 单据编码
*/
@NotBlank(message = "单据编码不能为空")
private String documentCode;
/**
* 标题
*/
@NotBlank(message = "标题不能为空")
private String title;
/**
* 单据日期
*/
@NotNull(message = "单据日期不能为空")
private LocalDate documentDate;
/**
* 合同编码
*/
@NotBlank(message = "合同编码不能为空")
private String contractCode;
/**
* 合同名称
*/
private String contractName;
/**
* 统计周期
*/
private String contractProgress;
/**
* 计量开始日期
*/
private LocalDate measureDateBegin;
/**
* 计量结束日期
*/
private LocalDate measureDateEnd;
/**
* 项目ID
*/
private Long projectId;
/**
* 项目名称
*/
private String projectName;
/**
* 审批金额
*/
@NotNull(message = "审批金额不能为空")
private BigDecimal approvalAmount;
/**
* 结算单位
*/
private Long settlementUnit;
/**
* 合同金额
*/
private BigDecimal contractAmount;
/**
* 本次结算比例
*/
private BigDecimal currentSettlementRate;
/**
* 文件ID
*/
private String fileId;
/**
* 审核状态
*/
private String auditStatus;
/**
* 备注
*/
private String remark;
/**
* 合同内清单
*/
private List<CtrSubcontractProgressSettlementItemCreateReq> inInventory;
/**
* 变更增加清单
*/
private List<CtrSubcontractProgressSettlementItemCreateReq> changeInventory;
/**
* 合同外清单
*/
private List<CtrSubcontractProgressSettlementItemCreateReq> outInventory;
}

View File

@ -0,0 +1,115 @@
package org.dromara.ctr.domain.dto;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author lilemy
* @date 2025-10-18 19:17
*/
@Data
@AutoMapper(target = CtrSubcontractProgressSettlementItem.class, reverseConvertGenerate = false)
public class CtrSubcontractProgressSettlementItemCreateReq implements Serializable {
@Serial
private static final long serialVersionUID = -7720839036718185218L;
/**
* 编码
*/
@NotBlank(message = "编码不能为空")
private String code;
/**
* 合同清单名称
*/
@NotBlank(message = "合同清单名称不能为空")
private String name;
/**
* 计量单位
*/
@NotBlank(message = "计量单位不能为空")
private String unit;
/**
* 单价
*/
private BigDecimal unitPrice;
/**
* 含税单价
*/
private BigDecimal taxUnitPrice;
/**
* 本期结算数量
*/
private BigDecimal currentQty;
/**
* 本期结算百分比
*/
private BigDecimal currentRate;
/**
* 本期结算金额
*/
private BigDecimal currentAmount;
/**
* 本期结算不含税金额
*/
private BigDecimal currentNoAmount;
/**
* 本期审批数量
*/
private BigDecimal currentApprovedQty;
/**
* 本期审批金额
*/
private BigDecimal currentApprovedAmount;
/**
* 税率(%
*/
private String taxRate;
/**
* 税额
*/
private String tax;
/**
* WBS工作分解结构
*/
private String wbs;
/**
* CBS成本分解结构
*/
private String cbs;
/**
* CBS预算总额
*/
private BigDecimal cbsBudgetTotal;
/**
* CBS余额
*/
private BigDecimal cbsBalance;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,123 @@
package org.dromara.ctr.domain.dto;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author lilemy
* @date 2025-10-18 19:21
*/
@Data
@AutoMapper(target = CtrSubcontractProgressSettlementItem.class, reverseConvertGenerate = false)
public class CtrSubcontractProgressSettlementItemUpdateReq implements Serializable {
@Serial
private static final long serialVersionUID = 4319471696029509036L;
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空")
private Long id;
/**
* 编码
*/
@NotBlank(message = "编码不能为空")
private String code;
/**
* 合同清单名称
*/
@NotBlank(message = "合同清单名称不能为空")
private String name;
/**
* 计量单位
*/
@NotBlank(message = "计量单位不能为空")
private String unit;
/**
* 单价
*/
private BigDecimal unitPrice;
/**
* 含税单价
*/
private BigDecimal taxUnitPrice;
/**
* 本期结算数量
*/
private BigDecimal currentQty;
/**
* 本期结算百分比
*/
private BigDecimal currentRate;
/**
* 本期结算金额
*/
private BigDecimal currentAmount;
/**
* 本期结算不含税金额
*/
private BigDecimal currentNoAmount;
/**
* 本期审批数量
*/
private BigDecimal currentApprovedQty;
/**
* 本期审批金额
*/
private BigDecimal currentApprovedAmount;
/**
* 税率(%
*/
private String taxRate;
/**
* 税额
*/
private String tax;
/**
* WBS工作分解结构
*/
private String wbs;
/**
* CBS成本分解结构
*/
private String cbs;
/**
* CBS预算总额
*/
private BigDecimal cbsBudgetTotal;
/**
* CBS余额
*/
private BigDecimal cbsBalance;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,136 @@
package org.dromara.ctr.domain.dto;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlement;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
/**
* @author lilemy
* @date 2025-10-18 19:20
*/
@Data
@AutoMapper(target = CtrSubcontractProgressSettlement.class, reverseConvertGenerate = false)
public class CtrSubcontractProgressSettlementUpdateReq implements Serializable {
@Serial
private static final long serialVersionUID = -7099475527833822253L;
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空")
private Long id;
/**
* 单据编码
*/
@NotBlank(message = "单据编码不能为空")
private String documentCode;
/**
* 标题
*/
@NotBlank(message = "标题不能为空")
private String title;
/**
* 单据日期
*/
@NotNull(message = "单据日期不能为空")
private LocalDate documentDate;
/**
* 合同编码
*/
@NotBlank(message = "合同编码不能为空")
private String contractCode;
/**
* 合同名称
*/
private String contractName;
/**
* 统计周期
*/
private String contractProgress;
/**
* 计量开始日期
*/
private LocalDate measureDateBegin;
/**
* 计量结束日期
*/
private LocalDate measureDateEnd;
/**
* 项目ID
*/
private Long projectId;
/**
* 项目名称
*/
private String projectName;
/**
* 审批金额
*/
@NotNull(message = "审批金额不能为空")
private BigDecimal approvalAmount;
/**
* 结算单位
*/
private Long settlementUnit;
/**
* 合同金额
*/
private BigDecimal contractAmount;
/**
* 本次结算比例
*/
private BigDecimal currentSettlementRate;
/**
* 文件ID
*/
private String fileId;
/**
* 审核状态
*/
private String auditStatus;
/**
* 备注
*/
private String remark;
/**
* 合同内清单
*/
private List<CtrSubcontractProgressSettlementItemUpdateReq> inInventory;
/**
* 变更增加清单
*/
private List<CtrSubcontractProgressSettlementItemUpdateReq> changeInventory;
/**
* 合同外清单
*/
private List<CtrSubcontractProgressSettlementItemUpdateReq> outInventory;
}

View File

@ -0,0 +1,130 @@
package org.dromara.ctr.domain.vo;
import java.math.BigDecimal;
import org.dromara.ctr.domain.CtrContractProgressSettlementItem;
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;
/**
* 承包合同进度结算清单视图对象 ctr_contract_progress_settlement_item
*
* @author lilemy
* @date 2025-10-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = CtrContractProgressSettlementItem.class)
public class CtrContractProgressSettlementItemVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 结算单ID
*/
@ExcelProperty(value = "结算单ID")
private Long settlementId;
/**
* 类型(1合同内清单 2变更增加清单 3合同外清单)
*/
@ExcelProperty(value = "类型(1合同内清单 2变更增加清单 3合同外清单)")
private String type;
/**
* 编码
*/
@ExcelProperty(value = "编码")
private String code;
/**
* 合同清单名称
*/
@ExcelProperty(value = "合同清单名称")
private String name;
/**
* 计量单位
*/
@ExcelProperty(value = "计量单位")
private String unit;
/**
* 单价
*/
@ExcelProperty(value = "单价")
private BigDecimal unitPrice;
/**
* 含税单价
*/
@ExcelProperty(value = "含税单价")
private BigDecimal taxUnitPrice;
/**
* 本期结算数量
*/
@ExcelProperty(value = "本期结算数量")
private BigDecimal currentQty;
/**
* 本期结算百分比
*/
@ExcelProperty(value = "本期结算百分比")
private BigDecimal currentRate;
/**
* 本期结算金额
*/
@ExcelProperty(value = "本期结算金额")
private BigDecimal currentAmount;
/**
* 本期结算不含税金额
*/
@ExcelProperty(value = "本期结算不含税金额")
private BigDecimal currentNoAmount;
/**
* 本期审批数量
*/
@ExcelProperty(value = "本期审批数量")
private BigDecimal currentApprovedQty;
/**
* 本期审批金额
*/
@ExcelProperty(value = "本期审批金额")
private BigDecimal currentApprovedAmount;
/**
* 税率(%
*/
@ExcelProperty(value = "税率", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "xzd_tax_rate")
private String taxRate;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@ -0,0 +1,180 @@
package org.dromara.ctr.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.ctr.domain.CtrContractProgressSettlement;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
/**
* 承包合同进度结算视图对象 ctr_contract_progress_settlement
*
* @author lilemy
* @date 2025-10-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = CtrContractProgressSettlement.class)
public class CtrContractProgressSettlementVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 所属部门
*/
@ExcelProperty(value = "所属部门")
private Long deptId;
/**
* 单据编码
*/
@ExcelProperty(value = "单据编码")
private String documentCode;
/**
* 标题
*/
@ExcelProperty(value = "标题")
private String title;
/**
* 结算日期
*/
@ExcelProperty(value = "结算日期")
private LocalDate settlementDate;
/**
* 合同编码
*/
@ExcelProperty(value = "合同编码")
private String contractCode;
/**
* 合同名称
*/
@ExcelProperty(value = "合同名称")
private String contractName;
/**
* 统计周期
*/
@ExcelProperty(value = "统计周期")
private String contractProgress;
/**
* 项目ID
*/
@ExcelProperty(value = "项目ID")
private Long projectId;
/**
* 项目名称
*/
@ExcelProperty(value = "项目名称")
@Translation(type = TransConstant.PROJECT_ID_TO_NAME, mapper = "projectId")
private String projectName;
/**
* 审批金额
*/
@ExcelProperty(value = "审批金额")
private BigDecimal approvalAmount;
/**
* 计量开始日期
*/
@ExcelProperty(value = "计量开始日期")
private LocalDate measureDateBegin;
/**
* 计量结束日期
*/
@ExcelProperty(value = "计量结束日期")
private LocalDate measureDateEnd;
/**
* 结算单位(客户)
*/
@ExcelProperty(value = "结算单位(客户)")
private Long settlementUnit;
/**
* 本期结算金额
*/
@ExcelProperty(value = "本期结算金额")
private BigDecimal settlementMoney;
/**
* 本期扣款金额
*/
@ExcelProperty(value = "本期扣款金额")
private BigDecimal deductionMoney;
/**
* 本期奖励金额
*/
@ExcelProperty(value = "本期奖励金额")
private BigDecimal bonus;
/**
* 合同金额
*/
@ExcelProperty(value = "合同金额")
private BigDecimal contractAmount;
/**
* 本次结算比例
*/
@ExcelProperty(value = "本次结算比例")
private BigDecimal thisSettlementRatio;
/**
* 支付条款
*/
@ExcelProperty(value = "支付条款")
private Long paymentTerms;
/**
* 多文件逗号分隔
*/
@ExcelProperty(value = "多文件逗号分隔")
private String fileId;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 合同内清单
*/
private List<CtrContractProgressSettlementItemVo> inInventory;
/**
* 变更增加清单
*/
private List<CtrContractProgressSettlementItemVo> changeInventory;
/**
* 合同外清单
*/
private List<CtrContractProgressSettlementItemVo> outInventory;
}

View File

@ -0,0 +1,160 @@
package org.dromara.ctr.domain.vo;
import java.math.BigDecimal;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem;
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;
/**
* 分包合同进度结算清单视图对象 ctr_subcontract_progress_settlement_item
*
* @author lilemy
* @date 2025-10-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = CtrSubcontractProgressSettlementItem.class)
public class CtrSubcontractProgressSettlementItemVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 结算单ID
*/
@ExcelProperty(value = "结算单ID")
private Long settlementId;
/**
* 类型(1合同内清单 2变更增加清单 3合同外清单)
*/
@ExcelProperty(value = "类型(1合同内清单 2变更增加清单 3合同外清单)")
private String type;
/**
* 编码
*/
@ExcelProperty(value = "编码")
private String code;
/**
* 合同清单名称
*/
@ExcelProperty(value = "合同清单名称")
private String name;
/**
* 计量单位
*/
@ExcelProperty(value = "计量单位")
private String unit;
/**
* 单价
*/
@ExcelProperty(value = "单价")
private BigDecimal unitPrice;
/**
* 含税单价
*/
@ExcelProperty(value = "含税单价")
private BigDecimal taxUnitPrice;
/**
* 本期结算数量
*/
@ExcelProperty(value = "本期结算数量")
private BigDecimal currentQty;
/**
* 本期结算百分比
*/
@ExcelProperty(value = "本期结算百分比")
private BigDecimal currentRate;
/**
* 本期结算金额
*/
@ExcelProperty(value = "本期结算金额")
private BigDecimal currentAmount;
/**
* 本期结算不含税金额
*/
@ExcelProperty(value = "本期结算不含税金额")
private BigDecimal currentNoAmount;
/**
* 本期审批数量
*/
@ExcelProperty(value = "本期审批数量")
private BigDecimal currentApprovedQty;
/**
* 本期审批金额
*/
@ExcelProperty(value = "本期审批金额")
private BigDecimal currentApprovedAmount;
/**
* 税率(%
*/
@ExcelProperty(value = "税率", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "xzd_tax_rate")
private String taxRate;
/**
* 税额
*/
@ExcelProperty(value = "税额")
private String tax;
/**
* WBS工作分解结构
*/
@ExcelProperty(value = "WBS工作分解结构")
private String wbs;
/**
* CBS成本分解结构
*/
@ExcelProperty(value = "CBS成本分解结构")
private String cbs;
/**
* CBS预算总额
*/
@ExcelProperty(value = "CBS预算总额")
private BigDecimal cbsBudgetTotal;
/**
* CBS余额
*/
@ExcelProperty(value = "CBS余额")
private BigDecimal cbsBalance;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@ -0,0 +1,153 @@
package org.dromara.ctr.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlement;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
/**
* 分包合同进度结算视图对象 ctr_subcontract_progress_settlement
*
* @author lilemy
* @date 2025-10-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = CtrSubcontractProgressSettlement.class)
public class CtrSubcontractProgressSettlementVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 单据编码
*/
@ExcelProperty(value = "单据编码")
private String documentCode;
/**
* 标题
*/
@ExcelProperty(value = "标题")
private String title;
/**
* 单据日期
*/
@ExcelProperty(value = "单据日期")
private LocalDate documentDate;
/**
* 合同编码
*/
@ExcelProperty(value = "合同编码")
private String contractCode;
/**
* 合同名称
*/
@ExcelProperty(value = "合同名称")
private String contractName;
/**
* 统计周期
*/
@ExcelProperty(value = "统计周期")
private String contractProgress;
/**
* 计量开始日期
*/
@ExcelProperty(value = "计量开始日期")
private LocalDate measureDateBegin;
/**
* 计量结束日期
*/
@ExcelProperty(value = "计量结束日期")
private LocalDate measureDateEnd;
/**
* 项目ID
*/
@ExcelProperty(value = "项目ID")
private Long projectId;
/**
* 项目名称
*/
@ExcelProperty(value = "项目名称")
private String projectName;
/**
* 审批金额
*/
@ExcelProperty(value = "审批金额")
private BigDecimal approvalAmount;
/**
* 结算单位
*/
@ExcelProperty(value = "结算单位")
private Long settlementUnit;
/**
* 合同金额
*/
@ExcelProperty(value = "合同金额")
private BigDecimal contractAmount;
/**
* 本次结算比例
*/
@ExcelProperty(value = "本次结算比例")
private BigDecimal currentSettlementRate;
/**
* 文件ID
*/
@ExcelProperty(value = "文件ID")
private String fileId;
/**
* 审核状态
*/
@ExcelProperty(value = "审核状态")
private String auditStatus;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 合同内清单
*/
private List<CtrSubcontractProgressSettlementItemVo> inInventory;
/**
* 变更增加清单
*/
private List<CtrSubcontractProgressSettlementItemVo> changeInventory;
/**
* 合同外清单
*/
private List<CtrSubcontractProgressSettlementItemVo> outInventory;
}

View File

@ -0,0 +1,15 @@
package org.dromara.ctr.mapper;
import org.dromara.ctr.domain.CtrContractProgressSettlementItem;
import org.dromara.ctr.domain.vo.CtrContractProgressSettlementItemVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 承包合同进度结算清单Mapper接口
*
* @author lilemy
* @date 2025-10-18
*/
public interface CtrContractProgressSettlementItemMapper extends BaseMapperPlus<CtrContractProgressSettlementItem, CtrContractProgressSettlementItemVo> {
}

View File

@ -0,0 +1,15 @@
package org.dromara.ctr.mapper;
import org.dromara.ctr.domain.CtrContractProgressSettlement;
import org.dromara.ctr.domain.vo.CtrContractProgressSettlementVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 承包合同进度结算Mapper接口
*
* @author lilemy
* @date 2025-10-18
*/
public interface CtrContractProgressSettlementMapper extends BaseMapperPlus<CtrContractProgressSettlement, CtrContractProgressSettlementVo> {
}

View File

@ -0,0 +1,15 @@
package org.dromara.ctr.mapper;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem;
import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementItemVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 分包合同进度结算清单Mapper接口
*
* @author lilemy
* @date 2025-10-18
*/
public interface CtrSubcontractProgressSettlementItemMapper extends BaseMapperPlus<CtrSubcontractProgressSettlementItem, CtrSubcontractProgressSettlementItemVo> {
}

View File

@ -0,0 +1,15 @@
package org.dromara.ctr.mapper;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlement;
import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 分包合同进度结算Mapper接口
*
* @author lilemy
* @date 2025-10-18
*/
public interface CtrSubcontractProgressSettlementMapper extends BaseMapperPlus<CtrSubcontractProgressSettlement, CtrSubcontractProgressSettlementVo> {
}

View File

@ -0,0 +1,70 @@
package org.dromara.ctr.service;
import org.dromara.ctr.domain.vo.CtrContractProgressSettlementItemVo;
import org.dromara.ctr.domain.bo.CtrContractProgressSettlementItemBo;
import org.dromara.ctr.domain.CtrContractProgressSettlementItem;
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 lilemy
* @date 2025-10-18
*/
public interface ICtrContractProgressSettlementItemService extends IService<CtrContractProgressSettlementItem>{
/**
* 查询承包合同进度结算清单
*
* @param id 主键
* @return 承包合同进度结算清单
*/
CtrContractProgressSettlementItemVo queryById(Long id);
/**
* 分页查询承包合同进度结算清单列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 承包合同进度结算清单分页列表
*/
TableDataInfo<CtrContractProgressSettlementItemVo> queryPageList(CtrContractProgressSettlementItemBo bo, PageQuery pageQuery);
/**
* 查询符合条件的承包合同进度结算清单列表
*
* @param bo 查询条件
* @return 承包合同进度结算清单列表
*/
List<CtrContractProgressSettlementItemVo> queryList(CtrContractProgressSettlementItemBo bo);
/**
* 新增承包合同进度结算清单
*
* @param bo 承包合同进度结算清单
* @return 是否新增成功
*/
Boolean insertByBo(CtrContractProgressSettlementItemBo bo);
/**
* 修改承包合同进度结算清单
*
* @param bo 承包合同进度结算清单
* @return 是否修改成功
*/
Boolean updateByBo(CtrContractProgressSettlementItemBo bo);
/**
* 校验并批量删除承包合同进度结算清单信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,72 @@
package org.dromara.ctr.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.ctr.domain.CtrContractProgressSettlement;
import org.dromara.ctr.domain.bo.CtrContractProgressSettlementBo;
import org.dromara.ctr.domain.dto.CtrContractProgressSettlementCreateReq;
import org.dromara.ctr.domain.dto.CtrContractProgressSettlementUpdateReq;
import org.dromara.ctr.domain.vo.CtrContractProgressSettlementVo;
import java.util.Collection;
import java.util.List;
/**
* 承包合同进度结算Service接口
*
* @author lilemy
* @date 2025-10-18
*/
public interface ICtrContractProgressSettlementService extends IService<CtrContractProgressSettlement> {
/**
* 查询承包合同进度结算
*
* @param id 主键
* @return 承包合同进度结算
*/
CtrContractProgressSettlementVo queryById(Long id);
/**
* 分页查询承包合同进度结算列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 承包合同进度结算分页列表
*/
TableDataInfo<CtrContractProgressSettlementVo> queryPageList(CtrContractProgressSettlementBo bo, PageQuery pageQuery);
/**
* 查询符合条件的承包合同进度结算列表
*
* @param bo 查询条件
* @return 承包合同进度结算列表
*/
List<CtrContractProgressSettlementVo> queryList(CtrContractProgressSettlementBo bo);
/**
* 新增承包合同进度结算
*
* @param req 承包合同进度结算
* @return 是否新增成功
*/
Boolean insertByBo(CtrContractProgressSettlementCreateReq req);
/**
* 修改承包合同进度结算
*
* @param req 承包合同进度结算
* @return 是否修改成功
*/
Boolean updateByBo(CtrContractProgressSettlementUpdateReq req);
/**
* 校验并批量删除承包合同进度结算信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,70 @@
package org.dromara.ctr.service;
import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementItemVo;
import org.dromara.ctr.domain.bo.CtrSubcontractProgressSettlementItemBo;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem;
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 lilemy
* @date 2025-10-18
*/
public interface ICtrSubcontractProgressSettlementItemService extends IService<CtrSubcontractProgressSettlementItem>{
/**
* 查询分包合同进度结算清单
*
* @param id 主键
* @return 分包合同进度结算清单
*/
CtrSubcontractProgressSettlementItemVo queryById(Long id);
/**
* 分页查询分包合同进度结算清单列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 分包合同进度结算清单分页列表
*/
TableDataInfo<CtrSubcontractProgressSettlementItemVo> queryPageList(CtrSubcontractProgressSettlementItemBo bo, PageQuery pageQuery);
/**
* 查询符合条件的分包合同进度结算清单列表
*
* @param bo 查询条件
* @return 分包合同进度结算清单列表
*/
List<CtrSubcontractProgressSettlementItemVo> queryList(CtrSubcontractProgressSettlementItemBo bo);
/**
* 新增分包合同进度结算清单
*
* @param bo 分包合同进度结算清单
* @return 是否新增成功
*/
Boolean insertByBo(CtrSubcontractProgressSettlementItemBo bo);
/**
* 修改分包合同进度结算清单
*
* @param bo 分包合同进度结算清单
* @return 是否修改成功
*/
Boolean updateByBo(CtrSubcontractProgressSettlementItemBo bo);
/**
* 校验并批量删除分包合同进度结算清单信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,72 @@
package org.dromara.ctr.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlement;
import org.dromara.ctr.domain.bo.CtrSubcontractProgressSettlementBo;
import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementCreateReq;
import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementUpdateReq;
import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementVo;
import java.util.Collection;
import java.util.List;
/**
* 分包合同进度结算Service接口
*
* @author lilemy
* @date 2025-10-18
*/
public interface ICtrSubcontractProgressSettlementService extends IService<CtrSubcontractProgressSettlement> {
/**
* 查询分包合同进度结算
*
* @param id 主键
* @return 分包合同进度结算
*/
CtrSubcontractProgressSettlementVo queryById(Long id);
/**
* 分页查询分包合同进度结算列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 分包合同进度结算分页列表
*/
TableDataInfo<CtrSubcontractProgressSettlementVo> queryPageList(CtrSubcontractProgressSettlementBo bo, PageQuery pageQuery);
/**
* 查询符合条件的分包合同进度结算列表
*
* @param bo 查询条件
* @return 分包合同进度结算列表
*/
List<CtrSubcontractProgressSettlementVo> queryList(CtrSubcontractProgressSettlementBo bo);
/**
* 新增分包合同进度结算
*
* @param req 分包合同进度结算
* @return 是否新增成功
*/
Boolean insertByBo(CtrSubcontractProgressSettlementCreateReq req);
/**
* 修改分包合同进度结算
*
* @param req 分包合同进度结算
* @return 是否修改成功
*/
Boolean updateByBo(CtrSubcontractProgressSettlementUpdateReq req);
/**
* 校验并批量删除分包合同进度结算信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,142 @@
package org.dromara.ctr.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.ctr.domain.bo.CtrContractProgressSettlementItemBo;
import org.dromara.ctr.domain.vo.CtrContractProgressSettlementItemVo;
import org.dromara.ctr.domain.CtrContractProgressSettlementItem;
import org.dromara.ctr.mapper.CtrContractProgressSettlementItemMapper;
import org.dromara.ctr.service.ICtrContractProgressSettlementItemService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 承包合同进度结算清单Service业务层处理
*
* @author lilemy
* @date 2025-10-18
*/
@RequiredArgsConstructor
@Service
public class CtrContractProgressSettlementItemServiceImpl extends ServiceImpl<CtrContractProgressSettlementItemMapper, CtrContractProgressSettlementItem> implements ICtrContractProgressSettlementItemService {
/**
* 查询承包合同进度结算清单
*
* @param id 主键
* @return 承包合同进度结算清单
*/
@Override
public CtrContractProgressSettlementItemVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询承包合同进度结算清单列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 承包合同进度结算清单分页列表
*/
@Override
public TableDataInfo<CtrContractProgressSettlementItemVo> queryPageList(CtrContractProgressSettlementItemBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<CtrContractProgressSettlementItem> lqw = buildQueryWrapper(bo);
Page<CtrContractProgressSettlementItemVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的承包合同进度结算清单列表
*
* @param bo 查询条件
* @return 承包合同进度结算清单列表
*/
@Override
public List<CtrContractProgressSettlementItemVo> queryList(CtrContractProgressSettlementItemBo bo) {
LambdaQueryWrapper<CtrContractProgressSettlementItem> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<CtrContractProgressSettlementItem> buildQueryWrapper(CtrContractProgressSettlementItemBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<CtrContractProgressSettlementItem> lqw = Wrappers.lambdaQuery();
lqw.orderByDesc(CtrContractProgressSettlementItem::getId);
lqw.eq(bo.getSettlementId() != null, CtrContractProgressSettlementItem::getSettlementId, bo.getSettlementId());
lqw.eq(StringUtils.isNotBlank(bo.getType()), CtrContractProgressSettlementItem::getType, bo.getType());
lqw.eq(StringUtils.isNotBlank(bo.getCode()), CtrContractProgressSettlementItem::getCode, bo.getCode());
lqw.like(StringUtils.isNotBlank(bo.getName()), CtrContractProgressSettlementItem::getName, bo.getName());
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), CtrContractProgressSettlementItem::getUnit, bo.getUnit());
lqw.eq(bo.getUnitPrice() != null, CtrContractProgressSettlementItem::getUnitPrice, bo.getUnitPrice());
lqw.eq(bo.getTaxUnitPrice() != null, CtrContractProgressSettlementItem::getTaxUnitPrice, bo.getTaxUnitPrice());
lqw.eq(bo.getCurrentQty() != null, CtrContractProgressSettlementItem::getCurrentQty, bo.getCurrentQty());
lqw.eq(bo.getCurrentRate() != null, CtrContractProgressSettlementItem::getCurrentRate, bo.getCurrentRate());
lqw.eq(bo.getCurrentAmount() != null, CtrContractProgressSettlementItem::getCurrentAmount, bo.getCurrentAmount());
lqw.eq(bo.getCurrentNoAmount() != null, CtrContractProgressSettlementItem::getCurrentNoAmount, bo.getCurrentNoAmount());
lqw.eq(bo.getCurrentApprovedQty() != null, CtrContractProgressSettlementItem::getCurrentApprovedQty, bo.getCurrentApprovedQty());
lqw.eq(bo.getCurrentApprovedAmount() != null, CtrContractProgressSettlementItem::getCurrentApprovedAmount, bo.getCurrentApprovedAmount());
lqw.eq(StringUtils.isNotBlank(bo.getTaxRate()), CtrContractProgressSettlementItem::getTaxRate, bo.getTaxRate());
return lqw;
}
/**
* 新增承包合同进度结算清单
*
* @param bo 承包合同进度结算清单
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(CtrContractProgressSettlementItemBo bo) {
CtrContractProgressSettlementItem add = MapstructUtils.convert(bo, CtrContractProgressSettlementItem.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改承包合同进度结算清单
*
* @param bo 承包合同进度结算清单
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(CtrContractProgressSettlementItemBo bo) {
CtrContractProgressSettlementItem update = MapstructUtils.convert(bo, CtrContractProgressSettlementItem.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(CtrContractProgressSettlementItem entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除承包合同进度结算清单信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -0,0 +1,269 @@
package org.dromara.ctr.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
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.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.ctr.domain.CtrContractProgressSettlement;
import org.dromara.ctr.domain.CtrContractProgressSettlementItem;
import org.dromara.ctr.domain.bo.CtrContractProgressSettlementBo;
import org.dromara.ctr.domain.dto.CtrContractProgressSettlementCreateReq;
import org.dromara.ctr.domain.dto.CtrContractProgressSettlementItemCreateReq;
import org.dromara.ctr.domain.dto.CtrContractProgressSettlementItemUpdateReq;
import org.dromara.ctr.domain.dto.CtrContractProgressSettlementUpdateReq;
import org.dromara.ctr.domain.vo.CtrContractProgressSettlementItemVo;
import org.dromara.ctr.domain.vo.CtrContractProgressSettlementVo;
import org.dromara.ctr.mapper.CtrContractProgressSettlementMapper;
import org.dromara.ctr.service.ICtrContractProgressSettlementItemService;
import org.dromara.ctr.service.ICtrContractProgressSettlementService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 承包合同进度结算Service业务层处理
*
* @author lilemy
* @date 2025-10-18
*/
@RequiredArgsConstructor
@Service
public class CtrContractProgressSettlementServiceImpl extends ServiceImpl<CtrContractProgressSettlementMapper, CtrContractProgressSettlement>
implements ICtrContractProgressSettlementService {
private final ICtrContractProgressSettlementItemService contractProgressSettlementItemService;
/**
* 查询承包合同进度结算
*
* @param id 主键
* @return 承包合同进度结算
*/
@Override
public CtrContractProgressSettlementVo queryById(Long id) {
CtrContractProgressSettlementVo vo = baseMapper.selectVoById(id);
List<CtrContractProgressSettlementItem> list = contractProgressSettlementItemService.lambdaQuery()
.eq(CtrContractProgressSettlementItem::getSettlementId, id)
.list();
if (CollUtil.isNotEmpty(list)) {
List<CtrContractProgressSettlementItemVo> listVo = list.stream().map(item ->
MapstructUtils.convert(item, CtrContractProgressSettlementItemVo.class))
.toList();
Map<String, List<CtrContractProgressSettlementItemVo>> map = listVo.stream()
.collect(Collectors.groupingBy(CtrContractProgressSettlementItemVo::getType));
vo.setInInventory(map.getOrDefault("1", new ArrayList<>()));
vo.setChangeInventory(map.getOrDefault("2", new ArrayList<>()));
vo.setOutInventory(map.getOrDefault("3", new ArrayList<>()));
}
return vo;
}
/**
* 分页查询承包合同进度结算列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 承包合同进度结算分页列表
*/
@Override
public TableDataInfo<CtrContractProgressSettlementVo> queryPageList(CtrContractProgressSettlementBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<CtrContractProgressSettlement> lqw = buildQueryWrapper(bo);
Page<CtrContractProgressSettlementVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的承包合同进度结算列表
*
* @param bo 查询条件
* @return 承包合同进度结算列表
*/
@Override
public List<CtrContractProgressSettlementVo> queryList(CtrContractProgressSettlementBo bo) {
LambdaQueryWrapper<CtrContractProgressSettlement> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<CtrContractProgressSettlement> buildQueryWrapper(CtrContractProgressSettlementBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<CtrContractProgressSettlement> lqw = Wrappers.lambdaQuery();
lqw.orderByDesc(CtrContractProgressSettlement::getId);
lqw.eq(bo.getDeptId() != null, CtrContractProgressSettlement::getDeptId, bo.getDeptId());
lqw.like(StringUtils.isNotBlank(bo.getDocumentCode()), CtrContractProgressSettlement::getDocumentCode, bo.getDocumentCode());
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), CtrContractProgressSettlement::getTitle, bo.getTitle());
lqw.eq(bo.getSettlementDate() != null, CtrContractProgressSettlement::getSettlementDate, bo.getSettlementDate());
lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), CtrContractProgressSettlement::getContractCode, bo.getContractCode());
lqw.like(StringUtils.isNotBlank(bo.getContractName()), CtrContractProgressSettlement::getContractName, bo.getContractName());
lqw.eq(StringUtils.isNotBlank(bo.getContractProgress()), CtrContractProgressSettlement::getContractProgress, bo.getContractProgress());
lqw.eq(bo.getProjectId() != null, CtrContractProgressSettlement::getProjectId, bo.getProjectId());
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), CtrContractProgressSettlement::getProjectName, bo.getProjectName());
lqw.eq(bo.getApprovalAmount() != null, CtrContractProgressSettlement::getApprovalAmount, bo.getApprovalAmount());
lqw.eq(bo.getMeasureDateBegin() != null, CtrContractProgressSettlement::getMeasureDateBegin, bo.getMeasureDateBegin());
lqw.eq(bo.getMeasureDateEnd() != null, CtrContractProgressSettlement::getMeasureDateEnd, bo.getMeasureDateEnd());
lqw.eq(bo.getSettlementUnit() != null, CtrContractProgressSettlement::getSettlementUnit, bo.getSettlementUnit());
lqw.eq(bo.getSettlementMoney() != null, CtrContractProgressSettlement::getSettlementMoney, bo.getSettlementMoney());
lqw.eq(bo.getDeductionMoney() != null, CtrContractProgressSettlement::getDeductionMoney, bo.getDeductionMoney());
lqw.eq(bo.getBonus() != null, CtrContractProgressSettlement::getBonus, bo.getBonus());
lqw.eq(bo.getContractAmount() != null, CtrContractProgressSettlement::getContractAmount, bo.getContractAmount());
lqw.eq(bo.getThisSettlementRatio() != null, CtrContractProgressSettlement::getThisSettlementRatio, bo.getThisSettlementRatio());
lqw.eq(bo.getPaymentTerms() != null, CtrContractProgressSettlement::getPaymentTerms, bo.getPaymentTerms());
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), CtrContractProgressSettlement::getFileId, bo.getFileId());
return lqw;
}
/**
* 新增承包合同进度结算
*
* @param req 承包合同进度结算
* @return 是否新增成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(CtrContractProgressSettlementCreateReq req) {
CtrContractProgressSettlement add = MapstructUtils.convert(req, CtrContractProgressSettlement.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
Long id = add.getId();
List<CtrContractProgressSettlementItemCreateReq> inInventory = req.getInInventory();
List<CtrContractProgressSettlementItemCreateReq> changeInventory = req.getChangeInventory();
List<CtrContractProgressSettlementItemCreateReq> outInventory = req.getOutInventory();
List<CtrContractProgressSettlementItem> itemList = new ArrayList<>();
itemList.addAll(inInventory.stream().map(r -> {
CtrContractProgressSettlementItem item = new CtrContractProgressSettlementItem();
item.setSettlementId(id);
item.setType("1");
BeanUtils.copyProperties(r, item);
return item;
}).toList());
itemList.addAll(changeInventory.stream().map(r -> {
CtrContractProgressSettlementItem item = new CtrContractProgressSettlementItem();
item.setSettlementId(id);
item.setType("2");
BeanUtils.copyProperties(r, item);
return item;
}).toList());
itemList.addAll(outInventory.stream().map(r -> {
CtrContractProgressSettlementItem item = new CtrContractProgressSettlementItem();
item.setSettlementId(id);
item.setType("3");
BeanUtils.copyProperties(r, item);
return item;
}).toList());
if (CollUtil.isNotEmpty(itemList)) {
boolean saveBatch = contractProgressSettlementItemService.saveBatch(itemList);
if (!saveBatch) {
throw new ServiceException("保存承包合同进度结算明细失败");
}
}
}
return flag;
}
/**
* 修改承包合同进度结算
*
* @param req 承包合同进度结算
* @return 是否修改成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(CtrContractProgressSettlementUpdateReq req) {
CtrContractProgressSettlement update = MapstructUtils.convert(req, CtrContractProgressSettlement.class);
validEntityBeforeSave(update);
Long id = req.getId();
// 删除旧数据
List<CtrContractProgressSettlementItem> oldList = contractProgressSettlementItemService.lambdaQuery()
.eq(CtrContractProgressSettlementItem::getSettlementId, id)
.list();
if (CollUtil.isNotEmpty(oldList)) {
boolean deleteBatch = contractProgressSettlementItemService.removeByIds(oldList);
if (!deleteBatch) {
throw new ServiceException("删除承包合同进度结算明细失败");
}
}
// 新增子数据
List<CtrContractProgressSettlementItemUpdateReq> inInventory = req.getInInventory();
List<CtrContractProgressSettlementItemUpdateReq> changeInventory = req.getChangeInventory();
List<CtrContractProgressSettlementItemUpdateReq> outInventory = req.getOutInventory();
List<CtrContractProgressSettlementItem> itemList = new ArrayList<>();
itemList.addAll(inInventory.stream().map(r -> {
CtrContractProgressSettlementItem item = new CtrContractProgressSettlementItem();
item.setSettlementId(id);
item.setType("1");
BeanUtils.copyProperties(r, item);
return item;
}).toList());
itemList.addAll(changeInventory.stream().map(r -> {
CtrContractProgressSettlementItem item = new CtrContractProgressSettlementItem();
item.setSettlementId(id);
item.setType("2");
BeanUtils.copyProperties(r, item);
return item;
}).toList());
itemList.addAll(outInventory.stream().map(r -> {
CtrContractProgressSettlementItem item = new CtrContractProgressSettlementItem();
item.setSettlementId(id);
item.setType("3");
BeanUtils.copyProperties(r, item);
return item;
}).toList());
if (CollUtil.isNotEmpty(itemList)) {
boolean saveBatch = contractProgressSettlementItemService.saveBatch(itemList);
if (!saveBatch) {
throw new ServiceException("保存承包合同进度结算明细失败");
}
}
// 保存主数据
boolean b = baseMapper.updateById(update) > 0;
if (!b) {
throw new ServiceException("修改承包合同进度结算失败");
}
return true;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(CtrContractProgressSettlement entity) {
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除承包合同进度结算信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
// 删除关联数据
List<CtrContractProgressSettlementItem> list = contractProgressSettlementItemService.lambdaQuery()
.in(CtrContractProgressSettlementItem::getSettlementId, ids)
.list();
if (CollUtil.isNotEmpty(list)) {
boolean deleteBatch = contractProgressSettlementItemService.removeByIds(list);
if (!deleteBatch) {
throw new ServiceException("删除承包合同进度结算明细失败");
}
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -0,0 +1,150 @@
package org.dromara.ctr.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem;
import org.dromara.ctr.domain.bo.CtrSubcontractProgressSettlementItemBo;
import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementItemVo;
import org.dromara.ctr.mapper.CtrSubcontractProgressSettlementItemMapper;
import org.dromara.ctr.service.ICtrSubcontractProgressSettlementItemService;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 分包合同进度结算清单Service业务层处理
*
* @author lilemy
* @date 2025-10-18
*/
@RequiredArgsConstructor
@Service
public class CtrSubcontractProgressSettlementItemServiceImpl extends ServiceImpl<CtrSubcontractProgressSettlementItemMapper, CtrSubcontractProgressSettlementItem>
implements ICtrSubcontractProgressSettlementItemService {
private final CtrSubcontractProgressSettlementItemMapper baseMapper;
/**
* 查询分包合同进度结算清单
*
* @param id 主键
* @return 分包合同进度结算清单
*/
@Override
public CtrSubcontractProgressSettlementItemVo queryById(Long id) {
return baseMapper.selectVoById(id);
}
/**
* 分页查询分包合同进度结算清单列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 分包合同进度结算清单分页列表
*/
@Override
public TableDataInfo<CtrSubcontractProgressSettlementItemVo> queryPageList(CtrSubcontractProgressSettlementItemBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<CtrSubcontractProgressSettlementItem> lqw = buildQueryWrapper(bo);
Page<CtrSubcontractProgressSettlementItemVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的分包合同进度结算清单列表
*
* @param bo 查询条件
* @return 分包合同进度结算清单列表
*/
@Override
public List<CtrSubcontractProgressSettlementItemVo> queryList(CtrSubcontractProgressSettlementItemBo bo) {
LambdaQueryWrapper<CtrSubcontractProgressSettlementItem> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<CtrSubcontractProgressSettlementItem> buildQueryWrapper(CtrSubcontractProgressSettlementItemBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<CtrSubcontractProgressSettlementItem> lqw = Wrappers.lambdaQuery();
lqw.orderByDesc(CtrSubcontractProgressSettlementItem::getId);
lqw.eq(bo.getSettlementId() != null, CtrSubcontractProgressSettlementItem::getSettlementId, bo.getSettlementId());
lqw.eq(StringUtils.isNotBlank(bo.getType()), CtrSubcontractProgressSettlementItem::getType, bo.getType());
lqw.eq(StringUtils.isNotBlank(bo.getCode()), CtrSubcontractProgressSettlementItem::getCode, bo.getCode());
lqw.like(StringUtils.isNotBlank(bo.getName()), CtrSubcontractProgressSettlementItem::getName, bo.getName());
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), CtrSubcontractProgressSettlementItem::getUnit, bo.getUnit());
lqw.eq(bo.getUnitPrice() != null, CtrSubcontractProgressSettlementItem::getUnitPrice, bo.getUnitPrice());
lqw.eq(bo.getTaxUnitPrice() != null, CtrSubcontractProgressSettlementItem::getTaxUnitPrice, bo.getTaxUnitPrice());
lqw.eq(bo.getCurrentQty() != null, CtrSubcontractProgressSettlementItem::getCurrentQty, bo.getCurrentQty());
lqw.eq(bo.getCurrentRate() != null, CtrSubcontractProgressSettlementItem::getCurrentRate, bo.getCurrentRate());
lqw.eq(bo.getCurrentAmount() != null, CtrSubcontractProgressSettlementItem::getCurrentAmount, bo.getCurrentAmount());
lqw.eq(bo.getCurrentNoAmount() != null, CtrSubcontractProgressSettlementItem::getCurrentNoAmount, bo.getCurrentNoAmount());
lqw.eq(bo.getCurrentApprovedQty() != null, CtrSubcontractProgressSettlementItem::getCurrentApprovedQty, bo.getCurrentApprovedQty());
lqw.eq(bo.getCurrentApprovedAmount() != null, CtrSubcontractProgressSettlementItem::getCurrentApprovedAmount, bo.getCurrentApprovedAmount());
lqw.eq(StringUtils.isNotBlank(bo.getTaxRate()), CtrSubcontractProgressSettlementItem::getTaxRate, bo.getTaxRate());
lqw.eq(StringUtils.isNotBlank(bo.getTax()), CtrSubcontractProgressSettlementItem::getTax, bo.getTax());
lqw.eq(StringUtils.isNotBlank(bo.getWbs()), CtrSubcontractProgressSettlementItem::getWbs, bo.getWbs());
lqw.eq(StringUtils.isNotBlank(bo.getCbs()), CtrSubcontractProgressSettlementItem::getCbs, bo.getCbs());
lqw.eq(bo.getCbsBudgetTotal() != null, CtrSubcontractProgressSettlementItem::getCbsBudgetTotal, bo.getCbsBudgetTotal());
lqw.eq(bo.getCbsBalance() != null, CtrSubcontractProgressSettlementItem::getCbsBalance, bo.getCbsBalance());
return lqw;
}
/**
* 新增分包合同进度结算清单
*
* @param bo 分包合同进度结算清单
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(CtrSubcontractProgressSettlementItemBo bo) {
CtrSubcontractProgressSettlementItem add = MapstructUtils.convert(bo, CtrSubcontractProgressSettlementItem.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改分包合同进度结算清单
*
* @param bo 分包合同进度结算清单
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(CtrSubcontractProgressSettlementItemBo bo) {
CtrSubcontractProgressSettlementItem update = MapstructUtils.convert(bo, CtrSubcontractProgressSettlementItem.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(CtrSubcontractProgressSettlementItem entity) {
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除分包合同进度结算清单信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -0,0 +1,262 @@
package org.dromara.ctr.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
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.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlement;
import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem;
import org.dromara.ctr.domain.bo.CtrSubcontractProgressSettlementBo;
import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementCreateReq;
import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementItemCreateReq;
import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementItemUpdateReq;
import org.dromara.ctr.domain.dto.CtrSubcontractProgressSettlementUpdateReq;
import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementItemVo;
import org.dromara.ctr.domain.vo.CtrSubcontractProgressSettlementVo;
import org.dromara.ctr.mapper.CtrSubcontractProgressSettlementMapper;
import org.dromara.ctr.service.ICtrSubcontractProgressSettlementItemService;
import org.dromara.ctr.service.ICtrSubcontractProgressSettlementService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 分包合同进度结算Service业务层处理
*
* @author lilemy
* @date 2025-10-18
*/
@RequiredArgsConstructor
@Service
public class CtrSubcontractProgressSettlementServiceImpl extends ServiceImpl<CtrSubcontractProgressSettlementMapper, CtrSubcontractProgressSettlement>
implements ICtrSubcontractProgressSettlementService {
private final ICtrSubcontractProgressSettlementItemService subcontractProgressSettlementItemService;
/**
* 查询分包合同进度结算
*
* @param id 主键
* @return 分包合同进度结算
*/
@Override
public CtrSubcontractProgressSettlementVo queryById(Long id) {
CtrSubcontractProgressSettlementVo vo = baseMapper.selectVoById(id);
List<CtrSubcontractProgressSettlementItem> list = subcontractProgressSettlementItemService.lambdaQuery()
.eq(CtrSubcontractProgressSettlementItem::getSettlementId, id)
.list();
if (CollUtil.isNotEmpty(list)) {
List<CtrSubcontractProgressSettlementItemVo> listVo = list.stream().map(item ->
MapstructUtils.convert(item, CtrSubcontractProgressSettlementItemVo.class))
.toList();
Map<String, List<CtrSubcontractProgressSettlementItemVo>> map = listVo.stream()
.collect(Collectors.groupingBy(CtrSubcontractProgressSettlementItemVo::getType));
vo.setInInventory(map.getOrDefault("1", new ArrayList<>()));
vo.setChangeInventory(map.getOrDefault("2", new ArrayList<>()));
vo.setOutInventory(map.getOrDefault("3", new ArrayList<>()));
}
return vo;
}
/**
* 分页查询分包合同进度结算列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 分包合同进度结算分页列表
*/
@Override
public TableDataInfo<CtrSubcontractProgressSettlementVo> queryPageList(CtrSubcontractProgressSettlementBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<CtrSubcontractProgressSettlement> lqw = buildQueryWrapper(bo);
Page<CtrSubcontractProgressSettlementVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的分包合同进度结算列表
*
* @param bo 查询条件
* @return 分包合同进度结算列表
*/
@Override
public List<CtrSubcontractProgressSettlementVo> queryList(CtrSubcontractProgressSettlementBo bo) {
LambdaQueryWrapper<CtrSubcontractProgressSettlement> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<CtrSubcontractProgressSettlement> buildQueryWrapper(CtrSubcontractProgressSettlementBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<CtrSubcontractProgressSettlement> lqw = Wrappers.lambdaQuery();
lqw.orderByDesc(CtrSubcontractProgressSettlement::getId);
lqw.like(StringUtils.isNotBlank(bo.getDocumentCode()), CtrSubcontractProgressSettlement::getDocumentCode, bo.getDocumentCode());
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), CtrSubcontractProgressSettlement::getTitle, bo.getTitle());
lqw.eq(bo.getDocumentDate() != null, CtrSubcontractProgressSettlement::getDocumentDate, bo.getDocumentDate());
lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), CtrSubcontractProgressSettlement::getContractCode, bo.getContractCode());
lqw.like(StringUtils.isNotBlank(bo.getContractName()), CtrSubcontractProgressSettlement::getContractName, bo.getContractName());
lqw.eq(StringUtils.isNotBlank(bo.getContractProgress()), CtrSubcontractProgressSettlement::getContractProgress, bo.getContractProgress());
lqw.eq(bo.getMeasureDateBegin() != null, CtrSubcontractProgressSettlement::getMeasureDateBegin, bo.getMeasureDateBegin());
lqw.eq(bo.getMeasureDateEnd() != null, CtrSubcontractProgressSettlement::getMeasureDateEnd, bo.getMeasureDateEnd());
lqw.eq(bo.getProjectId() != null, CtrSubcontractProgressSettlement::getProjectId, bo.getProjectId());
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), CtrSubcontractProgressSettlement::getProjectName, bo.getProjectName());
lqw.eq(bo.getApprovalAmount() != null, CtrSubcontractProgressSettlement::getApprovalAmount, bo.getApprovalAmount());
lqw.eq(bo.getSettlementUnit() != null, CtrSubcontractProgressSettlement::getSettlementUnit, bo.getSettlementUnit());
lqw.eq(bo.getContractAmount() != null, CtrSubcontractProgressSettlement::getContractAmount, bo.getContractAmount());
lqw.eq(bo.getCurrentSettlementRate() != null, CtrSubcontractProgressSettlement::getCurrentSettlementRate, bo.getCurrentSettlementRate());
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), CtrSubcontractProgressSettlement::getFileId, bo.getFileId());
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), CtrSubcontractProgressSettlement::getAuditStatus, bo.getAuditStatus());
return lqw;
}
/**
* 新增分包合同进度结算
*
* @param req 分包合同进度结算
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(CtrSubcontractProgressSettlementCreateReq req) {
CtrSubcontractProgressSettlement add = MapstructUtils.convert(req, CtrSubcontractProgressSettlement.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
Long id = add.getId();
List<CtrSubcontractProgressSettlementItemCreateReq> inInventory = req.getInInventory();
List<CtrSubcontractProgressSettlementItemCreateReq> changeInventory = req.getChangeInventory();
List<CtrSubcontractProgressSettlementItemCreateReq> outInventory = req.getOutInventory();
List<CtrSubcontractProgressSettlementItem> itemList = new ArrayList<>();
itemList.addAll(inInventory.stream().map(r -> {
CtrSubcontractProgressSettlementItem item = new CtrSubcontractProgressSettlementItem();
item.setSettlementId(id);
item.setType("1");
BeanUtils.copyProperties(r, item);
return item;
}).toList());
itemList.addAll(changeInventory.stream().map(r -> {
CtrSubcontractProgressSettlementItem item = new CtrSubcontractProgressSettlementItem();
item.setSettlementId(id);
item.setType("2");
BeanUtils.copyProperties(r, item);
return item;
}).toList());
itemList.addAll(outInventory.stream().map(r -> {
CtrSubcontractProgressSettlementItem item = new CtrSubcontractProgressSettlementItem();
item.setSettlementId(id);
item.setType("3");
BeanUtils.copyProperties(r, item);
return item;
}).toList());
if (CollUtil.isNotEmpty(itemList)) {
boolean saveBatch = subcontractProgressSettlementItemService.saveBatch(itemList);
if (!saveBatch) {
throw new ServiceException("保存分包合同进度结算明细失败");
}
}
}
return flag;
}
/**
* 修改分包合同进度结算
*
* @param req 分包合同进度结算
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(CtrSubcontractProgressSettlementUpdateReq req) {
CtrSubcontractProgressSettlement update = MapstructUtils.convert(req, CtrSubcontractProgressSettlement.class);
validEntityBeforeSave(update);
Long id = req.getId();
// 删除旧数据
List<CtrSubcontractProgressSettlementItem> oldList = subcontractProgressSettlementItemService.lambdaQuery()
.eq(CtrSubcontractProgressSettlementItem::getSettlementId, id)
.list();
if (CollUtil.isNotEmpty(oldList)) {
boolean deleteBatch = subcontractProgressSettlementItemService.removeByIds(oldList);
if (!deleteBatch) {
throw new ServiceException("删除分包合同进度结算明细失败");
}
}
// 新增子数据
List<CtrSubcontractProgressSettlementItemUpdateReq> inInventory = req.getInInventory();
List<CtrSubcontractProgressSettlementItemUpdateReq> changeInventory = req.getChangeInventory();
List<CtrSubcontractProgressSettlementItemUpdateReq> outInventory = req.getOutInventory();
List<CtrSubcontractProgressSettlementItem> itemList = new ArrayList<>();
itemList.addAll(inInventory.stream().map(r -> {
CtrSubcontractProgressSettlementItem item = new CtrSubcontractProgressSettlementItem();
item.setSettlementId(id);
item.setType("1");
BeanUtils.copyProperties(r, item);
return item;
}).toList());
itemList.addAll(changeInventory.stream().map(r -> {
CtrSubcontractProgressSettlementItem item = new CtrSubcontractProgressSettlementItem();
item.setSettlementId(id);
item.setType("2");
BeanUtils.copyProperties(r, item);
return item;
}).toList());
itemList.addAll(outInventory.stream().map(r -> {
CtrSubcontractProgressSettlementItem item = new CtrSubcontractProgressSettlementItem();
item.setSettlementId(id);
item.setType("3");
BeanUtils.copyProperties(r, item);
return item;
}).toList());
if (CollUtil.isNotEmpty(itemList)) {
boolean saveBatch = subcontractProgressSettlementItemService.saveBatch(itemList);
if (!saveBatch) {
throw new ServiceException("保存承包合同进度结算明细失败");
}
}
// 保存主数据
boolean b = baseMapper.updateById(update) > 0;
if (!b) {
throw new ServiceException("修改分包合同进度结算失败");
}
return true;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(CtrSubcontractProgressSettlement entity) {
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除分包合同进度结算信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
// 删除关联数据
List<CtrSubcontractProgressSettlementItem> list = subcontractProgressSettlementItemService.lambdaQuery()
.in(CtrSubcontractProgressSettlementItem::getSettlementId, ids)
.list();
if (CollUtil.isNotEmpty(list)) {
boolean deleteBatch = subcontractProgressSettlementItemService.removeByIds(list);
if (!deleteBatch) {
throw new ServiceException("删除分包合同进度结算明细失败");
}
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -152,4 +152,9 @@ public class BusProjectUpdateReq implements Serializable {
*/ */
private String position; private String position;
/**
* 所属部门列表
*/
private List<Long> deptIds;
} }

View File

@ -8,7 +8,6 @@ import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert; import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.project.domain.BusProject; import org.dromara.project.domain.BusProject;
import org.dromara.project.domain.bo.Punchrange; import org.dromara.project.domain.bo.Punchrange;
import org.dromara.system.domain.vo.SysDeptVo;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
@ -214,8 +213,8 @@ public class BusProjectVo implements Serializable {
private String position; private String position;
/** /**
* 所属部门 * 所属部门列表
*/ */
private List<SysDeptVo> deptList; private List<Long> deptIds;
} }

View File

@ -562,6 +562,43 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
throw new ServiceException("打卡范围增加失败", HttpStatus.ERROR); throw new ServiceException("打卡范围增加失败", HttpStatus.ERROR);
} }
} }
List<Long> deptIds = req.getDeptIds();
// 根据项目查询部门
List<Long> oldDeptIds = projectDeptService.lambdaQuery()
.eq(BusProjectDept::getProjectId, project.getId())
.list()
.stream().map(BusProjectDept::getDeptId)
.toList();
if (CollUtil.isEmpty(deptIds) && CollUtil.isEmpty(oldDeptIds)) {
return true;
} else if (CollUtil.isEmpty(deptIds) && CollUtil.isNotEmpty(oldDeptIds)) {
//删除所有旧部门
boolean remove = projectDeptService.remove(Wrappers.lambdaQuery(BusProjectDept.class)
.eq(BusProjectDept::getProjectId, project.getId()));
if (!remove) {
throw new ServiceException("删除项目部门失败", HttpStatus.ERROR);
}
} else if (CollUtil.isNotEmpty(deptIds)) {
if (CollUtil.isNotEmpty(oldDeptIds)) {
//删除所有旧部门
boolean remove = projectDeptService.remove(Wrappers.lambdaQuery(BusProjectDept.class)
.eq(BusProjectDept::getProjectId, project.getId()));
if (!remove) {
throw new ServiceException("删除项目部门失败", HttpStatus.ERROR);
}
}
//新增部门
List<BusProjectDept> busProjectDepts = deptIds.stream().map(deptId -> {
BusProjectDept projectDept = new BusProjectDept();
projectDept.setDeptId(deptId);
projectDept.setProjectId(project.getId());
return projectDept;
}).toList();
boolean save = projectDeptService.saveBatch(busProjectDepts);
if (!save) {
throw new ServiceException("部门增加失败", HttpStatus.ERROR);
}
}
return true; return true;
} }
return false; return false;
@ -691,6 +728,11 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
}).toList(); }).toList();
projectVo.setChildren(subProjectVoList); projectVo.setChildren(subProjectVoList);
} }
// 关联所属部门
List<BusProjectDept> deptList = projectDeptService.lambdaQuery()
.eq(BusProjectDept::getProjectId, project.getId())
.list();
projectVo.setDeptIds(deptList.stream().map(BusProjectDept::getDeptId).toList());
return projectVo; return projectVo;
} }

View File

@ -1,9 +1,12 @@
package org.dromara.safety.domain.vo.safetyinspection; package org.dromara.safety.domain.vo.safetyinspection;
import lombok.Data; import lombok.Data;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @author lilemy * @author lilemy
@ -26,9 +29,10 @@ public class HseSafetyInspectionGis implements Serializable {
private String checkType; private String checkType;
/** /**
* 违章类型 * 巡检类型名称
*/ */
private String violationType; @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "checkType", other = "safety_inspection_check_type")
private String inspectionTypeLabel;
/** /**
* 巡检结果 * 巡检结果
@ -40,4 +44,9 @@ public class HseSafetyInspectionGis implements Serializable {
*/ */
private String status; private String status;
/**
* 创建时间
*/
private Date createTime;
} }

View File

@ -217,50 +217,33 @@ public class HseSafetyInspectionServiceImpl extends ServiceImpl<HseSafetyInspect
} else { } else {
gisVo.setTeamMeetingList(new ArrayList<>()); gisVo.setTeamMeetingList(new ArrayList<>());
} }
gisVo.setTeamMeetingCount((long) teamMeetings.size());
// 获取整改情况 // 获取整改情况
List<HseSafetyInspection> safetyInspectionList = this.lambdaQuery() List<HseSafetyInspection> safetyInspectionList = this.lambdaQuery()
.select(HseSafetyInspection::getId, HseSafetyInspection::getStatus, HseSafetyInspection::getIsReply)
.eq(HseSafetyInspection::getProjectId, projectId) .eq(HseSafetyInspection::getProjectId, projectId)
.list(); .list();
long passCount = 0L;
for (HseSafetyInspection safetyInspection : safetyInspectionList) {
if ("1".equals(safetyInspection.getIsReply())) {
if (!safetyInspection.getStatus().equals(HseSafetyInspectionStatusEnum.INFORM.getValue())) {
passCount++;
}
}
}
List<HseSafetyInspection> passList = safetyInspectionList.stream() List<HseSafetyInspection> passList = safetyInspectionList.stream()
.filter(q -> "1".equals(q.getIsReply())) .filter(q -> "1".equals(q.getIsReply()))
.filter(q -> !q.getStatus().equals(HseSafetyInspectionStatusEnum.INFORM.getValue())) .filter(q -> !q.getStatus().equals(HseSafetyInspectionStatusEnum.INFORM.getValue()))
.toList(); .toList();
List<HseSafetyInspectionGis> pass = passList.stream().map(p -> { List<HseSafetyInspectionGis> pass = passList.stream().map(p -> {
HseSafetyInspectionGis gis = new HseSafetyInspectionGis(); HseSafetyInspectionGis gis = new HseSafetyInspectionGis();
gis.setId(p.getId()); BeanUtils.copyProperties(p, gis);
gis.setCheckType(p.getCheckType());
gis.setViolationType(p.getViolationType());
gis.setInspectionResult(p.getInspectionResult());
gis.setStatus(p.getStatus());
return gis; return gis;
}).toList(); }).toList();
gisVo.setTeamMeetingCount((long) teamMeetings.size());
List<HseSafetyInspectionGis> inspections = safetyInspectionList.stream() List<HseSafetyInspectionGis> inspections = safetyInspectionList.stream()
.filter(q -> "2".equals(q.getIsReply())) .filter(q -> "2".equals(q.getIsReply()))
.toList() .toList()
.stream().map(p -> { .stream().map(p -> {
HseSafetyInspectionGis gis = new HseSafetyInspectionGis(); HseSafetyInspectionGis gis = new HseSafetyInspectionGis();
gis.setId(p.getId()); BeanUtils.copyProperties(p, gis);
gis.setCheckType(p.getCheckType());
gis.setViolationType(p.getViolationType());
gis.setInspectionResult(p.getInspectionResult());
gis.setStatus(p.getStatus());
return gis; return gis;
}).toList(); }).toList();
gisVo.setSafetyInspectionCount((long) inspections.size()); gisVo.setSafetyInspectionCount((long) inspections.size());
gisVo.setSafetyInspectionList(inspections); gisVo.setSafetyInspectionList(inspections);
gisVo.setCorrectSituationCount(passCount); gisVo.setCorrectSituationCount((long) pass.size());
gisVo.setCorrectSituationList(pass); gisVo.setCorrectSituationList(pass);
gisVo.setCorrectSituation(String.format("%.2f", passCount * 100.0 / safetyInspectionList.size())); // gisVo.setCorrectSituation(String.format("%.2f", (long) pass.size() * 100.0 / safetyInspectionList.size()));
return gisVo; return gisVo;
} }

View File

@ -148,4 +148,13 @@ public class SysDeptController extends BaseController {
return R.ok(deptService.selectDeptByIds(deptIds == null ? null : List.of(deptIds))); return R.ok(deptService.selectDeptByIds(deptIds == null ? null : List.of(deptIds)));
} }
/**
* 查询部门
*/
@GetMapping("/listTopDept")
public R<List<SysDeptVo>> list() {
List<SysDeptVo> list = deptService.querListDept();
return R.ok(list);
}
} }

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.ctr.mapper.CtrContractProgressSettlementItemMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.ctr.mapper.CtrContractProgressSettlementMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.ctr.mapper.CtrSubcontractProgressSettlementItemMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.ctr.mapper.CtrSubcontractProgressSettlementMapper">
</mapper>