立项及成本-成本预算-阶段成本分解接口
This commit is contained in:
@ -0,0 +1,105 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysJdcbfjVo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysJdcbfjBo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysJdcbfjService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-阶段成本分解
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/costBudget/cbysJdcbfj")
|
||||
public class XzdCbysJdcbfjController extends BaseController {
|
||||
|
||||
private final IXzdCbysJdcbfjService xzdCbysJdcbfjService;
|
||||
|
||||
/**
|
||||
* 查询立项及成本-成本预算-阶段成本分解列表
|
||||
*/
|
||||
@SaCheckPermission("costBudget:cbysJdcbfj:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<XzdCbysJdcbfjVo> list(XzdCbysJdcbfjBo bo, PageQuery pageQuery) {
|
||||
return xzdCbysJdcbfjService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出立项及成本-成本预算-阶段成本分解列表
|
||||
*/
|
||||
@SaCheckPermission("costBudget:cbysJdcbfj:export")
|
||||
@Log(title = "立项及成本-成本预算-阶段成本分解", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(XzdCbysJdcbfjBo bo, HttpServletResponse response) {
|
||||
List<XzdCbysJdcbfjVo> list = xzdCbysJdcbfjService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "立项及成本-成本预算-阶段成本分解", XzdCbysJdcbfjVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取立项及成本-成本预算-阶段成本分解详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("costBudget:cbysJdcbfj:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<XzdCbysJdcbfjVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdCbysJdcbfjService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增立项及成本-成本预算-阶段成本分解
|
||||
*/
|
||||
@SaCheckPermission("costBudget:cbysJdcbfj:add")
|
||||
@Log(title = "立项及成本-成本预算-阶段成本分解", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdCbysJdcbfjBo bo) {
|
||||
return toAjax(xzdCbysJdcbfjService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改立项及成本-成本预算-阶段成本分解
|
||||
*/
|
||||
@SaCheckPermission("costBudget:cbysJdcbfj:edit")
|
||||
@Log(title = "立项及成本-成本预算-阶段成本分解", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdCbysJdcbfjBo bo) {
|
||||
return toAjax(xzdCbysJdcbfjService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除立项及成本-成本预算-阶段成本分解
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("costBudget:cbysJdcbfj:remove")
|
||||
@Log(title = "立项及成本-成本预算-阶段成本分解", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(xzdCbysJdcbfjService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,105 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysJdcbfjFubiaoVo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysJdcbfjFubiaoBo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysJdcbfjFubiaoService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-阶段成本分解附
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/costBudget/cbysJdcbfjFubiao")
|
||||
public class XzdCbysJdcbfjFubiaoController extends BaseController {
|
||||
|
||||
private final IXzdCbysJdcbfjFubiaoService xzdCbysJdcbfjFubiaoService;
|
||||
|
||||
/**
|
||||
* 查询立项及成本-成本预算-阶段成本分解附列表
|
||||
*/
|
||||
@SaCheckPermission("costBudget:cbysJdcbfjFubiao:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<XzdCbysJdcbfjFubiaoVo> list(XzdCbysJdcbfjFubiaoBo bo, PageQuery pageQuery) {
|
||||
return xzdCbysJdcbfjFubiaoService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出立项及成本-成本预算-阶段成本分解附列表
|
||||
*/
|
||||
@SaCheckPermission("costBudget:cbysJdcbfjFubiao:export")
|
||||
@Log(title = "立项及成本-成本预算-阶段成本分解附", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(XzdCbysJdcbfjFubiaoBo bo, HttpServletResponse response) {
|
||||
List<XzdCbysJdcbfjFubiaoVo> list = xzdCbysJdcbfjFubiaoService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "立项及成本-成本预算-阶段成本分解附", XzdCbysJdcbfjFubiaoVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取立项及成本-成本预算-阶段成本分解附详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("costBudget:cbysJdcbfjFubiao:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<XzdCbysJdcbfjFubiaoVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdCbysJdcbfjFubiaoService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增立项及成本-成本预算-阶段成本分解附
|
||||
*/
|
||||
@SaCheckPermission("costBudget:cbysJdcbfjFubiao:add")
|
||||
@Log(title = "立项及成本-成本预算-阶段成本分解附", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdCbysJdcbfjFubiaoBo bo) {
|
||||
return toAjax(xzdCbysJdcbfjFubiaoService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改立项及成本-成本预算-阶段成本分解附
|
||||
*/
|
||||
@SaCheckPermission("costBudget:cbysJdcbfjFubiao:edit")
|
||||
@Log(title = "立项及成本-成本预算-阶段成本分解附", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdCbysJdcbfjFubiaoBo bo) {
|
||||
return toAjax(xzdCbysJdcbfjFubiaoService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除立项及成本-成本预算-阶段成本分解附
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("costBudget:cbysJdcbfjFubiao:remove")
|
||||
@Log(title = "立项及成本-成本预算-阶段成本分解附", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(xzdCbysJdcbfjFubiaoService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,108 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-阶段成本分解对象 xzd_cbys_jdcbfj
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("xzd_cbys_jdcbfj")
|
||||
public class XzdCbysJdcbfj extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码(带*,必填)
|
||||
*/
|
||||
private String docCode;
|
||||
|
||||
/**
|
||||
* 单据标题(带*,必填)
|
||||
*/
|
||||
private String docTitle;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private LocalDate docDate;
|
||||
|
||||
/**
|
||||
* 工程项目
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 预算分类
|
||||
*/
|
||||
private String budgetCategory;
|
||||
|
||||
/**
|
||||
* 总体计划成本(带*,必填)
|
||||
*/
|
||||
private Long totalPlanCost;
|
||||
|
||||
/**
|
||||
* 项目责任人
|
||||
*/
|
||||
private Long projectLeader;
|
||||
|
||||
/**
|
||||
* 开工日期
|
||||
*/
|
||||
private LocalDate startDate;
|
||||
|
||||
/**
|
||||
* 竣工日期
|
||||
*/
|
||||
private LocalDate completionDate;
|
||||
|
||||
/**
|
||||
* 年度
|
||||
*/
|
||||
private Long year;
|
||||
|
||||
/**
|
||||
* 币种
|
||||
*/
|
||||
private String currency;
|
||||
|
||||
/**
|
||||
* 汇率
|
||||
*/
|
||||
private BigDecimal exchangeRate;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 单据引用
|
||||
*/
|
||||
private String documentReference;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,122 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-阶段成本分解附对象 xzd_cbys_jdcbfj_fubiao
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("xzd_cbys_jdcbfj_fubiao")
|
||||
public class XzdCbysJdcbfjFubiao extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主表id
|
||||
*/
|
||||
private Long mainTableId;
|
||||
|
||||
/**
|
||||
* 预算项编码
|
||||
*/
|
||||
private String budgetItemCode;
|
||||
|
||||
/**
|
||||
* 预算项名称
|
||||
*/
|
||||
private String budgetItemName;
|
||||
|
||||
/**
|
||||
* BOQ编码
|
||||
*/
|
||||
private String boq;
|
||||
|
||||
/**
|
||||
* WBS编码
|
||||
*/
|
||||
private String wbs;
|
||||
|
||||
/**
|
||||
* CBS编码
|
||||
*/
|
||||
private String cbs;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
/**
|
||||
* 金额
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 变更数量
|
||||
*/
|
||||
private BigDecimal changeQuantity;
|
||||
|
||||
/**
|
||||
* 变更金额
|
||||
*/
|
||||
private BigDecimal changeAmount;
|
||||
|
||||
/**
|
||||
* 变更后数量
|
||||
*/
|
||||
private BigDecimal afterChangeQuantity;
|
||||
|
||||
/**
|
||||
* 变更后单价
|
||||
*/
|
||||
private BigDecimal afterChangeUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更后金额
|
||||
*/
|
||||
private BigDecimal afterChangeAmount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 单据引用
|
||||
*/
|
||||
private String documentReference;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,182 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-总体计划成本附对象 xzd_cbys_zjhcb_fubiao
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("xzd_cbys_zjhcb_fubiao")
|
||||
public class XzdCbysZjhcbFubiao extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联主单据的ID(外键,指向对应主表,如预算/付款单据表等)
|
||||
*/
|
||||
private Long mainDocumentId;
|
||||
|
||||
/**
|
||||
* 预算项编码(budgetCode)
|
||||
*/
|
||||
private String budgetCode;
|
||||
|
||||
/**
|
||||
* 预算项名称(budgetName)
|
||||
*/
|
||||
private String budgetName;
|
||||
|
||||
/**
|
||||
* WBS编码(wbs)
|
||||
*/
|
||||
private String wbs;
|
||||
|
||||
/**
|
||||
* CBS编码(cbs)
|
||||
*/
|
||||
private String cbs;
|
||||
|
||||
/**
|
||||
* 单位(unit)
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 数量(quantity)
|
||||
*/
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 单价(unitPrice)
|
||||
*/
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
/**
|
||||
* 含税单价(taxIncludedUnitPrice)
|
||||
*/
|
||||
private BigDecimal taxIncludedUnitPrice;
|
||||
|
||||
/**
|
||||
* 税率(taxRate,如13%表示为0.1300)
|
||||
*/
|
||||
private BigDecimal taxRate;
|
||||
|
||||
/**
|
||||
* 税额(taxAmount)
|
||||
*/
|
||||
private BigDecimal taxAmount;
|
||||
|
||||
/**
|
||||
* 不含税金额(taxExcludedAmount)
|
||||
*/
|
||||
private BigDecimal taxExcludedAmount;
|
||||
|
||||
/**
|
||||
* 含税金额(taxIncludedAmount)
|
||||
*/
|
||||
private BigDecimal taxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 变更数量(changeQuantity)
|
||||
*/
|
||||
private BigDecimal changeQuantity;
|
||||
|
||||
/**
|
||||
* 变更单价(changeUnitPrice)
|
||||
*/
|
||||
private BigDecimal changeUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更后含税单价(changeTaxIncludedUnitPrice)
|
||||
*/
|
||||
private BigDecimal changeTaxIncludedUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更税率(changeTaxRate)
|
||||
*/
|
||||
private BigDecimal changeTaxRate;
|
||||
|
||||
/**
|
||||
* 变更税额(changeTaxAmount)
|
||||
*/
|
||||
private BigDecimal changeTaxAmount;
|
||||
|
||||
/**
|
||||
* 变更后数量(afterChangeQuantity)
|
||||
*/
|
||||
private BigDecimal afterChangeQuantity;
|
||||
|
||||
/**
|
||||
* 变更后单价(afterChangeUnitPrice)
|
||||
*/
|
||||
private BigDecimal afterChangeUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更后含税单价(afterChangeTaxIncludedUnitPrice)
|
||||
*/
|
||||
private BigDecimal afterChangeTaxIncludedUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更后税率(afterChangeTaxRate)
|
||||
*/
|
||||
private BigDecimal afterChangeTaxRate;
|
||||
|
||||
/**
|
||||
* 变更后税额(afterChangeTaxAmount)
|
||||
*/
|
||||
private BigDecimal afterChangeTaxAmount;
|
||||
|
||||
/**
|
||||
* 变更后不含税金额(afterChangeTaxExcludedAmount)
|
||||
*/
|
||||
private BigDecimal afterChangeTaxExcludedAmount;
|
||||
|
||||
/**
|
||||
* 变更后含税金额(afterChangeTaxIncludedAmount)
|
||||
*/
|
||||
private BigDecimal afterChangeTaxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 备注(remarks)
|
||||
*/
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 合同模式(contractMode)
|
||||
*/
|
||||
private String contractMode;
|
||||
|
||||
/**
|
||||
* 中标预算收入(bidBudgetIncome)
|
||||
*/
|
||||
private BigDecimal bidBudgetIncome;
|
||||
|
||||
/**
|
||||
* 利润率(profitRate,如20%表示为20.00)
|
||||
*/
|
||||
private BigDecimal profitRate;
|
||||
|
||||
/**
|
||||
* 附件(attachment,存储附件路径或关联ID)
|
||||
*/
|
||||
private String attachment;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,118 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.domain.bo;
|
||||
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysJdcbfj;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysJdcbfjFubiao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-阶段成本分解业务对象 xzd_cbys_jdcbfj
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = XzdCbysJdcbfj.class, reverseConvertGenerate = false)
|
||||
public class XzdCbysJdcbfjBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码(带*,必填)
|
||||
*/
|
||||
@NotBlank(message = "单据编码(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String docCode;
|
||||
|
||||
/**
|
||||
* 单据标题(带*,必填)
|
||||
*/
|
||||
@NotBlank(message = "单据标题(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String docTitle;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
private LocalDate docDate;
|
||||
|
||||
/**
|
||||
* 工程项目
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 预算分类
|
||||
*/
|
||||
private String budgetCategory;
|
||||
|
||||
/**
|
||||
* 总体计划成本(带*,必填)
|
||||
*/
|
||||
@NotNull(message = "总体计划成本(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long totalPlanCost;
|
||||
|
||||
/**
|
||||
* 项目责任人
|
||||
*/
|
||||
private Long projectLeader;
|
||||
|
||||
/**
|
||||
* 开工日期
|
||||
*/
|
||||
private LocalDate startDate;
|
||||
|
||||
/**
|
||||
* 竣工日期
|
||||
*/
|
||||
private LocalDate completionDate;
|
||||
|
||||
/**
|
||||
* 年度
|
||||
*/
|
||||
private Long year;
|
||||
|
||||
/**
|
||||
* 币种
|
||||
*/
|
||||
private String currency;
|
||||
|
||||
/**
|
||||
* 汇率
|
||||
*/
|
||||
private BigDecimal exchangeRate;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 单据引用
|
||||
*/
|
||||
private String documentReference;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 副表数据
|
||||
*/
|
||||
List<XzdCbysJdcbfjFubiao> xzdCbysJdcbfjFubiao;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,121 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.domain.bo;
|
||||
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysJdcbfjFubiao;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-阶段成本分解附业务对象 xzd_cbys_jdcbfj_fubiao
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = XzdCbysJdcbfjFubiao.class, reverseConvertGenerate = false)
|
||||
public class XzdCbysJdcbfjFubiaoBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主表id
|
||||
*/
|
||||
private Long mainTableId;
|
||||
|
||||
/**
|
||||
* 预算项编码
|
||||
*/
|
||||
private String budgetItemCode;
|
||||
|
||||
/**
|
||||
* 预算项名称
|
||||
*/
|
||||
private String budgetItemName;
|
||||
|
||||
/**
|
||||
* BOQ编码
|
||||
*/
|
||||
private String boq;
|
||||
|
||||
/**
|
||||
* WBS编码
|
||||
*/
|
||||
private String wbs;
|
||||
|
||||
/**
|
||||
* CBS编码
|
||||
*/
|
||||
private String cbs;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
/**
|
||||
* 金额
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 变更数量
|
||||
*/
|
||||
private BigDecimal changeQuantity;
|
||||
|
||||
/**
|
||||
* 变更金额
|
||||
*/
|
||||
private BigDecimal changeAmount;
|
||||
|
||||
/**
|
||||
* 变更后数量
|
||||
*/
|
||||
private BigDecimal afterChangeQuantity;
|
||||
|
||||
/**
|
||||
* 变更后单价
|
||||
*/
|
||||
private BigDecimal afterChangeUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更后金额
|
||||
*/
|
||||
private BigDecimal afterChangeAmount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 单据引用
|
||||
*/
|
||||
private String documentReference;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
|
||||
}
|
||||
@ -1,8 +1,6 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.domain.bo;
|
||||
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysSscb;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysWgcbtbFubiao;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcb;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.*;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
@ -10,7 +8,6 @@ import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZtjhcbBgjl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
@ -161,7 +158,7 @@ public class XzdCbysZjhcbBo extends BaseEntity {
|
||||
/**
|
||||
* 成本明细
|
||||
*/
|
||||
List<XzdCbysWgcbtbFubiao> xzdCbysWgcbtbFubiao;
|
||||
List<XzdCbysZjhcbFubiao> xzdCbysWgcbtbFubiao;
|
||||
|
||||
/**
|
||||
* 税收成本
|
||||
|
||||
@ -0,0 +1,183 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.domain.bo;
|
||||
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbFubiao;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-总体计划成本附业务对象 xzd_cbys_zjhcb_fubiao
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = XzdCbysZjhcbFubiao.class, reverseConvertGenerate = false)
|
||||
public class XzdCbysZjhcbFubiaoBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联主单据的ID(外键,指向对应主表,如预算/付款单据表等)
|
||||
*/
|
||||
private Long mainDocumentId;
|
||||
|
||||
/**
|
||||
* 预算项编码(budgetCode)
|
||||
*/
|
||||
@NotBlank(message = "预算项编码(budgetCode)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String budgetCode;
|
||||
|
||||
/**
|
||||
* 预算项名称(budgetName)
|
||||
*/
|
||||
@NotBlank(message = "预算项名称(budgetName)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String budgetName;
|
||||
|
||||
/**
|
||||
* WBS编码(wbs)
|
||||
*/
|
||||
private String wbs;
|
||||
|
||||
/**
|
||||
* CBS编码(cbs)
|
||||
*/
|
||||
private String cbs;
|
||||
|
||||
/**
|
||||
* 单位(unit)
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 数量(quantity)
|
||||
*/
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 单价(unitPrice)
|
||||
*/
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
/**
|
||||
* 含税单价(taxIncludedUnitPrice)
|
||||
*/
|
||||
private BigDecimal taxIncludedUnitPrice;
|
||||
|
||||
/**
|
||||
* 税率(taxRate,如13%表示为0.1300)
|
||||
*/
|
||||
private BigDecimal taxRate;
|
||||
|
||||
/**
|
||||
* 税额(taxAmount)
|
||||
*/
|
||||
private BigDecimal taxAmount;
|
||||
|
||||
/**
|
||||
* 不含税金额(taxExcludedAmount)
|
||||
*/
|
||||
private BigDecimal taxExcludedAmount;
|
||||
|
||||
/**
|
||||
* 含税金额(taxIncludedAmount)
|
||||
*/
|
||||
private BigDecimal taxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 变更数量(changeQuantity)
|
||||
*/
|
||||
private BigDecimal changeQuantity;
|
||||
|
||||
/**
|
||||
* 变更单价(changeUnitPrice)
|
||||
*/
|
||||
private BigDecimal changeUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更后含税单价(changeTaxIncludedUnitPrice)
|
||||
*/
|
||||
private BigDecimal changeTaxIncludedUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更税率(changeTaxRate)
|
||||
*/
|
||||
private BigDecimal changeTaxRate;
|
||||
|
||||
/**
|
||||
* 变更税额(changeTaxAmount)
|
||||
*/
|
||||
private BigDecimal changeTaxAmount;
|
||||
|
||||
/**
|
||||
* 变更后数量(afterChangeQuantity)
|
||||
*/
|
||||
private BigDecimal afterChangeQuantity;
|
||||
|
||||
/**
|
||||
* 变更后单价(afterChangeUnitPrice)
|
||||
*/
|
||||
private BigDecimal afterChangeUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更后含税单价(afterChangeTaxIncludedUnitPrice)
|
||||
*/
|
||||
private BigDecimal afterChangeTaxIncludedUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更后税率(afterChangeTaxRate)
|
||||
*/
|
||||
private BigDecimal afterChangeTaxRate;
|
||||
|
||||
/**
|
||||
* 变更后税额(afterChangeTaxAmount)
|
||||
*/
|
||||
private BigDecimal afterChangeTaxAmount;
|
||||
|
||||
/**
|
||||
* 变更后不含税金额(afterChangeTaxExcludedAmount)
|
||||
*/
|
||||
private BigDecimal afterChangeTaxExcludedAmount;
|
||||
|
||||
/**
|
||||
* 变更后含税金额(afterChangeTaxIncludedAmount)
|
||||
*/
|
||||
private BigDecimal afterChangeTaxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 备注(remarks)
|
||||
*/
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 合同模式(contractMode)
|
||||
*/
|
||||
private String contractMode;
|
||||
|
||||
/**
|
||||
* 中标预算收入(bidBudgetIncome)
|
||||
*/
|
||||
private BigDecimal bidBudgetIncome;
|
||||
|
||||
/**
|
||||
* 利润率(profitRate,如20%表示为20.00)
|
||||
*/
|
||||
private BigDecimal profitRate;
|
||||
|
||||
/**
|
||||
* 附件(attachment,存储附件路径或关联ID)
|
||||
*/
|
||||
private String attachment;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,147 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysJdcbfjFubiao;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-阶段成本分解附视图对象 xzd_cbys_jdcbfj_fubiao
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdCbysJdcbfjFubiao.class)
|
||||
public class XzdCbysJdcbfjFubiaoVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主表id
|
||||
*/
|
||||
@ExcelProperty(value = "主表id")
|
||||
private Long mainTableId;
|
||||
|
||||
/**
|
||||
* 预算项编码
|
||||
*/
|
||||
@ExcelProperty(value = "预算项编码")
|
||||
private String budgetItemCode;
|
||||
|
||||
/**
|
||||
* 预算项名称
|
||||
*/
|
||||
@ExcelProperty(value = "预算项名称")
|
||||
private String budgetItemName;
|
||||
|
||||
/**
|
||||
* BOQ编码
|
||||
*/
|
||||
@ExcelProperty(value = "BOQ编码")
|
||||
private String boq;
|
||||
|
||||
/**
|
||||
* WBS编码
|
||||
*/
|
||||
@ExcelProperty(value = "WBS编码")
|
||||
private String wbs;
|
||||
|
||||
/**
|
||||
* CBS编码
|
||||
*/
|
||||
@ExcelProperty(value = "CBS编码")
|
||||
private String cbs;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@ExcelProperty(value = "单位")
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
@ExcelProperty(value = "数量")
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
@ExcelProperty(value = "单价")
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
/**
|
||||
* 金额
|
||||
*/
|
||||
@ExcelProperty(value = "金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 变更数量
|
||||
*/
|
||||
@ExcelProperty(value = "变更数量")
|
||||
private BigDecimal changeQuantity;
|
||||
|
||||
/**
|
||||
* 变更金额
|
||||
*/
|
||||
@ExcelProperty(value = "变更金额")
|
||||
private BigDecimal changeAmount;
|
||||
|
||||
/**
|
||||
* 变更后数量
|
||||
*/
|
||||
@ExcelProperty(value = "变更后数量")
|
||||
private BigDecimal afterChangeQuantity;
|
||||
|
||||
/**
|
||||
* 变更后单价
|
||||
*/
|
||||
@ExcelProperty(value = "变更后单价")
|
||||
private BigDecimal afterChangeUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更后金额
|
||||
*/
|
||||
@ExcelProperty(value = "变更后金额")
|
||||
private BigDecimal afterChangeAmount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 单据引用
|
||||
*/
|
||||
@ExcelProperty(value = "单据引用")
|
||||
private String documentReference;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
@ExcelProperty(value = "文件ID")
|
||||
private String fileId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,142 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysJdcbfj;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysJdcbfjFubiao;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-阶段成本分解视图对象 xzd_cbys_jdcbfj
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdCbysJdcbfj.class)
|
||||
public class XzdCbysJdcbfjVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编码(带*,必填)
|
||||
*/
|
||||
@ExcelProperty(value = "单据编码", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||
private String docCode;
|
||||
|
||||
/**
|
||||
* 单据标题(带*,必填)
|
||||
*/
|
||||
@ExcelProperty(value = "单据标题", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||
private String docTitle;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@ExcelProperty(value = "单据日期")
|
||||
private LocalDate docDate;
|
||||
|
||||
/**
|
||||
* 工程项目
|
||||
*/
|
||||
@ExcelProperty(value = "工程项目")
|
||||
private Long projectId;
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 预算分类
|
||||
*/
|
||||
@ExcelProperty(value = "预算分类")
|
||||
private String budgetCategory;
|
||||
|
||||
/**
|
||||
* 总体计划成本(带*,必填)
|
||||
*/
|
||||
@ExcelProperty(value = "总体计划成本", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "带=*,必填")
|
||||
private Long totalPlanCost;
|
||||
private String totalPlanCostName;
|
||||
|
||||
/**
|
||||
* 项目责任人
|
||||
*/
|
||||
@ExcelProperty(value = "项目责任人")
|
||||
private Long projectLeader;
|
||||
private String projectLeaderName;
|
||||
|
||||
/**
|
||||
* 开工日期
|
||||
*/
|
||||
@ExcelProperty(value = "开工日期")
|
||||
private LocalDate startDate;
|
||||
|
||||
/**
|
||||
* 竣工日期
|
||||
*/
|
||||
@ExcelProperty(value = "竣工日期")
|
||||
private LocalDate completionDate;
|
||||
|
||||
/**
|
||||
* 年度
|
||||
*/
|
||||
@ExcelProperty(value = "年度")
|
||||
private Long year;
|
||||
|
||||
/**
|
||||
* 币种
|
||||
*/
|
||||
@ExcelProperty(value = "币种")
|
||||
private String currency;
|
||||
|
||||
/**
|
||||
* 汇率
|
||||
*/
|
||||
@ExcelProperty(value = "汇率")
|
||||
private BigDecimal exchangeRate;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 单据引用
|
||||
*/
|
||||
@ExcelProperty(value = "单据引用")
|
||||
private String documentReference;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
@ExcelProperty(value = "文件ID")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 副表数据
|
||||
*/
|
||||
List<XzdCbysJdcbfjFubiao> xzdCbysJdcbfjFubiao;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,247 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbFubiao;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-总体计划成本附视图对象 xzd_cbys_zjhcb_fubiao
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdCbysZjhcbFubiao.class)
|
||||
public class XzdCbysZjhcbFubiaoVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联主单据的ID(外键,指向对应主表,如预算/付款单据表等)
|
||||
*/
|
||||
private Long mainDocumentId;
|
||||
|
||||
/**
|
||||
* 预算项编码(budgetCode)
|
||||
*/
|
||||
@ExcelProperty(value = "预算项编码", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "b=udgetCode")
|
||||
private String budgetCode;
|
||||
|
||||
/**
|
||||
* 预算项名称(budgetName)
|
||||
*/
|
||||
@ExcelProperty(value = "预算项名称", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "b=udgetName")
|
||||
private String budgetName;
|
||||
|
||||
/**
|
||||
* WBS编码(wbs)
|
||||
*/
|
||||
@ExcelProperty(value = "WBS编码", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "w=bs")
|
||||
private String wbs;
|
||||
|
||||
/**
|
||||
* CBS编码(cbs)
|
||||
*/
|
||||
@ExcelProperty(value = "CBS编码", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "c=bs")
|
||||
private String cbs;
|
||||
|
||||
/**
|
||||
* 单位(unit)
|
||||
*/
|
||||
@ExcelProperty(value = "单位", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "u=nit")
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 数量(quantity)
|
||||
*/
|
||||
@ExcelProperty(value = "数量", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "q=uantity")
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 单价(unitPrice)
|
||||
*/
|
||||
@ExcelProperty(value = "单价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "u=nitPrice")
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
/**
|
||||
* 含税单价(taxIncludedUnitPrice)
|
||||
*/
|
||||
@ExcelProperty(value = "含税单价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "t=axIncludedUnitPrice")
|
||||
private BigDecimal taxIncludedUnitPrice;
|
||||
|
||||
/**
|
||||
* 税率(taxRate,如13%表示为0.1300)
|
||||
*/
|
||||
@ExcelProperty(value = "税率", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "t=axRate,如13%表示为0.1300")
|
||||
private BigDecimal taxRate;
|
||||
|
||||
/**
|
||||
* 税额(taxAmount)
|
||||
*/
|
||||
@ExcelProperty(value = "税额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "t=axAmount")
|
||||
private BigDecimal taxAmount;
|
||||
|
||||
/**
|
||||
* 不含税金额(taxExcludedAmount)
|
||||
*/
|
||||
@ExcelProperty(value = "不含税金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "t=axExcludedAmount")
|
||||
private BigDecimal taxExcludedAmount;
|
||||
|
||||
/**
|
||||
* 含税金额(taxIncludedAmount)
|
||||
*/
|
||||
@ExcelProperty(value = "含税金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "t=axIncludedAmount")
|
||||
private BigDecimal taxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 变更数量(changeQuantity)
|
||||
*/
|
||||
@ExcelProperty(value = "变更数量", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "c=hangeQuantity")
|
||||
private BigDecimal changeQuantity;
|
||||
|
||||
/**
|
||||
* 变更单价(changeUnitPrice)
|
||||
*/
|
||||
@ExcelProperty(value = "变更单价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "c=hangeUnitPrice")
|
||||
private BigDecimal changeUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更后含税单价(changeTaxIncludedUnitPrice)
|
||||
*/
|
||||
@ExcelProperty(value = "变更后含税单价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "c=hangeTaxIncludedUnitPrice")
|
||||
private BigDecimal changeTaxIncludedUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更税率(changeTaxRate)
|
||||
*/
|
||||
@ExcelProperty(value = "变更税率", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "c=hangeTaxRate")
|
||||
private BigDecimal changeTaxRate;
|
||||
|
||||
/**
|
||||
* 变更税额(changeTaxAmount)
|
||||
*/
|
||||
@ExcelProperty(value = "变更税额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "c=hangeTaxAmount")
|
||||
private BigDecimal changeTaxAmount;
|
||||
|
||||
/**
|
||||
* 变更后数量(afterChangeQuantity)
|
||||
*/
|
||||
@ExcelProperty(value = "变更后数量", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "a=fterChangeQuantity")
|
||||
private BigDecimal afterChangeQuantity;
|
||||
|
||||
/**
|
||||
* 变更后单价(afterChangeUnitPrice)
|
||||
*/
|
||||
@ExcelProperty(value = "变更后单价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "a=fterChangeUnitPrice")
|
||||
private BigDecimal afterChangeUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更后含税单价(afterChangeTaxIncludedUnitPrice)
|
||||
*/
|
||||
@ExcelProperty(value = "变更后含税单价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "a=fterChangeTaxIncludedUnitPrice")
|
||||
private BigDecimal afterChangeTaxIncludedUnitPrice;
|
||||
|
||||
/**
|
||||
* 变更后税率(afterChangeTaxRate)
|
||||
*/
|
||||
@ExcelProperty(value = "变更后税率", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "a=fterChangeTaxRate")
|
||||
private BigDecimal afterChangeTaxRate;
|
||||
|
||||
/**
|
||||
* 变更后税额(afterChangeTaxAmount)
|
||||
*/
|
||||
@ExcelProperty(value = "变更后税额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "a=fterChangeTaxAmount")
|
||||
private BigDecimal afterChangeTaxAmount;
|
||||
|
||||
/**
|
||||
* 变更后不含税金额(afterChangeTaxExcludedAmount)
|
||||
*/
|
||||
@ExcelProperty(value = "变更后不含税金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "a=fterChangeTaxExcludedAmount")
|
||||
private BigDecimal afterChangeTaxExcludedAmount;
|
||||
|
||||
/**
|
||||
* 变更后含税金额(afterChangeTaxIncludedAmount)
|
||||
*/
|
||||
@ExcelProperty(value = "变更后含税金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "a=fterChangeTaxIncludedAmount")
|
||||
private BigDecimal afterChangeTaxIncludedAmount;
|
||||
|
||||
/**
|
||||
* 备注(remarks)
|
||||
*/
|
||||
@ExcelProperty(value = "备注", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "r=emarks")
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 合同模式(contractMode)
|
||||
*/
|
||||
@ExcelProperty(value = "合同模式", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "c=ontractMode")
|
||||
private String contractMode;
|
||||
|
||||
/**
|
||||
* 中标预算收入(bidBudgetIncome)
|
||||
*/
|
||||
@ExcelProperty(value = "中标预算收入", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "b=idBudgetIncome")
|
||||
private BigDecimal bidBudgetIncome;
|
||||
|
||||
/**
|
||||
* 利润率(profitRate,如20%表示为20.00)
|
||||
*/
|
||||
@ExcelProperty(value = "利润率", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "p=rofitRate,如20%表示为20.00")
|
||||
private BigDecimal profitRate;
|
||||
|
||||
/**
|
||||
* 附件(attachment,存储附件路径或关联ID)
|
||||
*/
|
||||
@ExcelProperty(value = "附件", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "a=ttachment,存储附件路径或关联ID")
|
||||
private String attachment;
|
||||
|
||||
|
||||
}
|
||||
@ -2,16 +2,13 @@ package org.dromara.xzd.costProjectApproval.costBudget.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysSscb;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysWgcbtbFubiao;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcb;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.*;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZtjhcbBgjl;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
@ -199,7 +196,7 @@ public class XzdCbysZjhcbVo implements Serializable {
|
||||
/**
|
||||
* 成本明细
|
||||
*/
|
||||
List<XzdCbysWgcbtbFubiao> xzdCbysWgcbtbFubiao;
|
||||
List<XzdCbysZjhcbFubiao> xzdCbysWgcbtbFubiao;
|
||||
|
||||
/**
|
||||
* 税收成本
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.mapper;
|
||||
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysJdcbfjFubiao;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysJdcbfjFubiaoVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-阶段成本分解附Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
public interface XzdCbysJdcbfjFubiaoMapper extends BaseMapperPlus<XzdCbysJdcbfjFubiao, XzdCbysJdcbfjFubiaoVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.mapper;
|
||||
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysJdcbfj;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysJdcbfjVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-阶段成本分解Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
public interface XzdCbysJdcbfjMapper extends BaseMapperPlus<XzdCbysJdcbfj, XzdCbysJdcbfjVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.mapper;
|
||||
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbFubiao;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbFubiaoVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-总体计划成本附Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
public interface XzdCbysZjhcbFubiaoMapper extends BaseMapperPlus<XzdCbysZjhcbFubiao, XzdCbysZjhcbFubiaoVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.service;
|
||||
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysJdcbfjFubiaoVo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysJdcbfjFubiaoBo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysJdcbfjFubiao;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-阶段成本分解附Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
public interface IXzdCbysJdcbfjFubiaoService extends IService<XzdCbysJdcbfjFubiao>{
|
||||
|
||||
/**
|
||||
* 查询立项及成本-成本预算-阶段成本分解附
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 立项及成本-成本预算-阶段成本分解附
|
||||
*/
|
||||
XzdCbysJdcbfjFubiaoVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询立项及成本-成本预算-阶段成本分解附列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 立项及成本-成本预算-阶段成本分解附分页列表
|
||||
*/
|
||||
TableDataInfo<XzdCbysJdcbfjFubiaoVo> queryPageList(XzdCbysJdcbfjFubiaoBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的立项及成本-成本预算-阶段成本分解附列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 立项及成本-成本预算-阶段成本分解附列表
|
||||
*/
|
||||
List<XzdCbysJdcbfjFubiaoVo> queryList(XzdCbysJdcbfjFubiaoBo bo);
|
||||
|
||||
/**
|
||||
* 新增立项及成本-成本预算-阶段成本分解附
|
||||
*
|
||||
* @param bo 立项及成本-成本预算-阶段成本分解附
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(XzdCbysJdcbfjFubiaoBo bo);
|
||||
|
||||
/**
|
||||
* 修改立项及成本-成本预算-阶段成本分解附
|
||||
*
|
||||
* @param bo 立项及成本-成本预算-阶段成本分解附
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(XzdCbysJdcbfjFubiaoBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除立项及成本-成本预算-阶段成本分解附信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.service;
|
||||
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysJdcbfjVo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysJdcbfjBo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysJdcbfj;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-阶段成本分解Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
public interface IXzdCbysJdcbfjService extends IService<XzdCbysJdcbfj>{
|
||||
|
||||
/**
|
||||
* 查询立项及成本-成本预算-阶段成本分解
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 立项及成本-成本预算-阶段成本分解
|
||||
*/
|
||||
XzdCbysJdcbfjVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询立项及成本-成本预算-阶段成本分解列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 立项及成本-成本预算-阶段成本分解分页列表
|
||||
*/
|
||||
TableDataInfo<XzdCbysJdcbfjVo> queryPageList(XzdCbysJdcbfjBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的立项及成本-成本预算-阶段成本分解列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 立项及成本-成本预算-阶段成本分解列表
|
||||
*/
|
||||
List<XzdCbysJdcbfjVo> queryList(XzdCbysJdcbfjBo bo);
|
||||
|
||||
/**
|
||||
* 新增立项及成本-成本预算-阶段成本分解
|
||||
*
|
||||
* @param bo 立项及成本-成本预算-阶段成本分解
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(XzdCbysJdcbfjBo bo);
|
||||
|
||||
/**
|
||||
* 修改立项及成本-成本预算-阶段成本分解
|
||||
*
|
||||
* @param bo 立项及成本-成本预算-阶段成本分解
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(XzdCbysJdcbfjBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除立项及成本-成本预算-阶段成本分解信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.service;
|
||||
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbFubiaoVo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbFubiaoBo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbFubiao;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-总体计划成本附Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
public interface IXzdCbysZjhcbFubiaoService extends IService<XzdCbysZjhcbFubiao>{
|
||||
|
||||
/**
|
||||
* 查询立项及成本-成本预算-总体计划成本附
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 立项及成本-成本预算-总体计划成本附
|
||||
*/
|
||||
XzdCbysZjhcbFubiaoVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询立项及成本-成本预算-总体计划成本附列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 立项及成本-成本预算-总体计划成本附分页列表
|
||||
*/
|
||||
TableDataInfo<XzdCbysZjhcbFubiaoVo> queryPageList(XzdCbysZjhcbFubiaoBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的立项及成本-成本预算-总体计划成本附列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 立项及成本-成本预算-总体计划成本附列表
|
||||
*/
|
||||
List<XzdCbysZjhcbFubiaoVo> queryList(XzdCbysZjhcbFubiaoBo bo);
|
||||
|
||||
/**
|
||||
* 新增立项及成本-成本预算-总体计划成本附
|
||||
*
|
||||
* @param bo 立项及成本-成本预算-总体计划成本附
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(XzdCbysZjhcbFubiaoBo bo);
|
||||
|
||||
/**
|
||||
* 修改立项及成本-成本预算-总体计划成本附
|
||||
*
|
||||
* @param bo 立项及成本-成本预算-总体计划成本附
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(XzdCbysZjhcbFubiaoBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除立项及成本-成本预算-总体计划成本附信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -67,4 +67,6 @@ public interface IXzdCbysZjhcbService extends IService<XzdCbysZjhcb>{
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
String queryNameById(Long id);
|
||||
}
|
||||
|
||||
@ -0,0 +1,147 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysJdcbfjFubiaoBo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysJdcbfjFubiaoVo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysJdcbfjFubiao;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.mapper.XzdCbysJdcbfjFubiaoMapper;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysJdcbfjFubiaoService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-阶段成本分解附Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class XzdCbysJdcbfjFubiaoServiceImpl extends ServiceImpl<XzdCbysJdcbfjFubiaoMapper, XzdCbysJdcbfjFubiao> implements IXzdCbysJdcbfjFubiaoService {
|
||||
|
||||
private final XzdCbysJdcbfjFubiaoMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询立项及成本-成本预算-阶段成本分解附
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 立项及成本-成本预算-阶段成本分解附
|
||||
*/
|
||||
@Override
|
||||
public XzdCbysJdcbfjFubiaoVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询立项及成本-成本预算-阶段成本分解附列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 立项及成本-成本预算-阶段成本分解附分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<XzdCbysJdcbfjFubiaoVo> queryPageList(XzdCbysJdcbfjFubiaoBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdCbysJdcbfjFubiao> lqw = buildQueryWrapper(bo);
|
||||
Page<XzdCbysJdcbfjFubiaoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的立项及成本-成本预算-阶段成本分解附列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 立项及成本-成本预算-阶段成本分解附列表
|
||||
*/
|
||||
@Override
|
||||
public List<XzdCbysJdcbfjFubiaoVo> queryList(XzdCbysJdcbfjFubiaoBo bo) {
|
||||
LambdaQueryWrapper<XzdCbysJdcbfjFubiao> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdCbysJdcbfjFubiao> buildQueryWrapper(XzdCbysJdcbfjFubiaoBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<XzdCbysJdcbfjFubiao> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdCbysJdcbfjFubiao::getId);
|
||||
lqw.eq(bo.getMainTableId() != null, XzdCbysJdcbfjFubiao::getMainTableId, bo.getMainTableId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBudgetItemCode()), XzdCbysJdcbfjFubiao::getBudgetItemCode, bo.getBudgetItemCode());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getBudgetItemName()), XzdCbysJdcbfjFubiao::getBudgetItemName, bo.getBudgetItemName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBoq()), XzdCbysJdcbfjFubiao::getBoq, bo.getBoq());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getWbs()), XzdCbysJdcbfjFubiao::getWbs, bo.getWbs());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCbs()), XzdCbysJdcbfjFubiao::getCbs, bo.getCbs());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), XzdCbysJdcbfjFubiao::getUnit, bo.getUnit());
|
||||
lqw.eq(bo.getQuantity() != null, XzdCbysJdcbfjFubiao::getQuantity, bo.getQuantity());
|
||||
lqw.eq(bo.getUnitPrice() != null, XzdCbysJdcbfjFubiao::getUnitPrice, bo.getUnitPrice());
|
||||
lqw.eq(bo.getAmount() != null, XzdCbysJdcbfjFubiao::getAmount, bo.getAmount());
|
||||
lqw.eq(bo.getChangeQuantity() != null, XzdCbysJdcbfjFubiao::getChangeQuantity, bo.getChangeQuantity());
|
||||
lqw.eq(bo.getChangeAmount() != null, XzdCbysJdcbfjFubiao::getChangeAmount, bo.getChangeAmount());
|
||||
lqw.eq(bo.getAfterChangeQuantity() != null, XzdCbysJdcbfjFubiao::getAfterChangeQuantity, bo.getAfterChangeQuantity());
|
||||
lqw.eq(bo.getAfterChangeUnitPrice() != null, XzdCbysJdcbfjFubiao::getAfterChangeUnitPrice, bo.getAfterChangeUnitPrice());
|
||||
lqw.eq(bo.getAfterChangeAmount() != null, XzdCbysJdcbfjFubiao::getAfterChangeAmount, bo.getAfterChangeAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDocumentReference()), XzdCbysJdcbfjFubiao::getDocumentReference, bo.getDocumentReference());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdCbysJdcbfjFubiao::getFileId, bo.getFileId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增立项及成本-成本预算-阶段成本分解附
|
||||
*
|
||||
* @param bo 立项及成本-成本预算-阶段成本分解附
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(XzdCbysJdcbfjFubiaoBo bo) {
|
||||
XzdCbysJdcbfjFubiao add = MapstructUtils.convert(bo, XzdCbysJdcbfjFubiao.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改立项及成本-成本预算-阶段成本分解附
|
||||
*
|
||||
* @param bo 立项及成本-成本预算-阶段成本分解附
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(XzdCbysJdcbfjFubiaoBo bo) {
|
||||
XzdCbysJdcbfjFubiao update = MapstructUtils.convert(bo, XzdCbysJdcbfjFubiao.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(XzdCbysJdcbfjFubiao entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除立项及成本-成本预算-阶段成本分解附信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,240 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.utils.BatchNumberGenerator;
|
||||
import org.dromara.system.service.ISysUserService;
|
||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.*;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbVo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysJdcbfjFubiaoService;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysZjhcbService;
|
||||
import org.dromara.xzd.service.impl.XzdProjectServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysJdcbfjBo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysJdcbfjVo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.mapper.XzdCbysJdcbfjMapper;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysJdcbfjService;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-阶段成本分解Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class XzdCbysJdcbfjServiceImpl extends ServiceImpl<XzdCbysJdcbfjMapper, XzdCbysJdcbfj> implements IXzdCbysJdcbfjService {
|
||||
|
||||
private final XzdCbysJdcbfjMapper baseMapper;
|
||||
@Autowired
|
||||
private IXzdCbysJdcbfjFubiaoService xzdCbysJdcbfjFubiaoService;
|
||||
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
@Autowired
|
||||
private XzdProjectServiceImpl xzdProjectService;
|
||||
@Autowired
|
||||
private ISysUserService sysUserService;
|
||||
@Autowired
|
||||
private IXzdCbysZjhcbService xzdCbysZjhcbService;
|
||||
|
||||
/**
|
||||
* 查询立项及成本-成本预算-阶段成本分解
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 立项及成本-成本预算-阶段成本分解
|
||||
*/
|
||||
@Override
|
||||
public XzdCbysJdcbfjVo queryById(Long id){
|
||||
XzdCbysJdcbfjVo vo = baseMapper.selectVoById(id);
|
||||
getName(vo);
|
||||
getHttk(vo);
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询立项及成本-成本预算-阶段成本分解列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 立项及成本-成本预算-阶段成本分解分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<XzdCbysJdcbfjVo> queryPageList(XzdCbysJdcbfjBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdCbysJdcbfj> lqw = buildQueryWrapper(bo);
|
||||
Page<XzdCbysJdcbfjVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
result.getRecords().forEach(this::getName);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的立项及成本-成本预算-阶段成本分解列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 立项及成本-成本预算-阶段成本分解列表
|
||||
*/
|
||||
@Override
|
||||
public List<XzdCbysJdcbfjVo> queryList(XzdCbysJdcbfjBo bo) {
|
||||
LambdaQueryWrapper<XzdCbysJdcbfj> lqw = buildQueryWrapper(bo);
|
||||
List<XzdCbysJdcbfjVo> vos = baseMapper.selectVoList(lqw);
|
||||
vos.forEach(this::getName);
|
||||
return vos;
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdCbysJdcbfj> buildQueryWrapper(XzdCbysJdcbfjBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<XzdCbysJdcbfj> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdCbysJdcbfj::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDocCode()), XzdCbysJdcbfj::getDocCode, bo.getDocCode());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDocTitle()), XzdCbysJdcbfj::getDocTitle, bo.getDocTitle());
|
||||
lqw.eq(bo.getDocDate() != null, XzdCbysJdcbfj::getDocDate, bo.getDocDate());
|
||||
lqw.eq(bo.getProjectId() != null, XzdCbysJdcbfj::getProjectId, bo.getProjectId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBudgetCategory()), XzdCbysJdcbfj::getBudgetCategory, bo.getBudgetCategory());
|
||||
lqw.eq(bo.getTotalPlanCost() != null, XzdCbysJdcbfj::getTotalPlanCost, bo.getTotalPlanCost());
|
||||
lqw.eq(bo.getProjectLeader() != null, XzdCbysJdcbfj::getProjectLeader, bo.getProjectLeader());
|
||||
lqw.eq(bo.getStartDate() != null, XzdCbysJdcbfj::getStartDate, bo.getStartDate());
|
||||
lqw.eq(bo.getCompletionDate() != null, XzdCbysJdcbfj::getCompletionDate, bo.getCompletionDate());
|
||||
lqw.eq(bo.getYear() != null, XzdCbysJdcbfj::getYear, bo.getYear());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCurrency()), XzdCbysJdcbfj::getCurrency, bo.getCurrency());
|
||||
lqw.eq(bo.getExchangeRate() != null, XzdCbysJdcbfj::getExchangeRate, bo.getExchangeRate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDocumentReference()), XzdCbysJdcbfj::getDocumentReference, bo.getDocumentReference());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdCbysJdcbfj::getFileId, bo.getFileId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增立项及成本-成本预算-阶段成本分解
|
||||
*
|
||||
* @param bo 立项及成本-成本预算-阶段成本分解
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(XzdCbysJdcbfjBo bo) {
|
||||
XzdCbysJdcbfj add = MapstructUtils.convert(bo, XzdCbysJdcbfj.class);
|
||||
validEntityBeforeSave(add);
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("LXCBJDCBFJ-");
|
||||
add.setDocCode(banBen);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
if (bo.getXzdCbysJdcbfjFubiao() != null && !bo.getXzdCbysJdcbfjFubiao().isEmpty()) {
|
||||
bo.getXzdCbysJdcbfjFubiao().forEach(item -> {
|
||||
String code = BatchNumberGenerator.generateBatchNumber("LXCBYSBM-");
|
||||
item.setBudgetItemCode(code);
|
||||
item.setMainTableId(add.getId());
|
||||
});
|
||||
xzdCbysJdcbfjFubiaoService.saveBatch(bo.getXzdCbysJdcbfjFubiao());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改立项及成本-成本预算-阶段成本分解
|
||||
*
|
||||
* @param bo 立项及成本-成本预算-阶段成本分解
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(XzdCbysJdcbfjBo bo) {
|
||||
XzdCbysJdcbfj update = MapstructUtils.convert(bo, XzdCbysJdcbfj.class);
|
||||
validEntityBeforeSave(update);
|
||||
xzdCbysJdcbfjFubiaoService.remove(new LambdaQueryWrapper<XzdCbysJdcbfjFubiao>().eq(XzdCbysJdcbfjFubiao::getMainTableId, bo.getId()));
|
||||
if (bo.getXzdCbysJdcbfjFubiao() != null && !bo.getXzdCbysJdcbfjFubiao().isEmpty()) {
|
||||
bo.getXzdCbysJdcbfjFubiao().forEach(item -> {
|
||||
String code = BatchNumberGenerator.generateBatchNumber("LXCBYSBM-");
|
||||
item.setBudgetItemCode(code);
|
||||
item.setMainTableId(bo.getId());
|
||||
});
|
||||
xzdCbysJdcbfjFubiaoService.saveBatch(bo.getXzdCbysJdcbfjFubiao());
|
||||
}
|
||||
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(XzdCbysJdcbfj entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除立项及成本-成本预算-阶段成本分解信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
XzdCbysJdcbfjVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
deleteIds.addAll(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
xzdCbysJdcbfjFubiaoService.remove(new LambdaQueryWrapper<XzdCbysJdcbfjFubiao>().in(XzdCbysJdcbfjFubiao::getMainTableId,ids));
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取部分字段名称
|
||||
* @param item
|
||||
*/
|
||||
private void getName(XzdCbysJdcbfjVo item) {
|
||||
//项目名称
|
||||
if (item.getProjectId() != null){
|
||||
String projectName = xzdProjectService.queryNameById(item.getProjectId());
|
||||
if (projectName != null){
|
||||
item.setProjectName(projectName);
|
||||
}
|
||||
}
|
||||
if (item.getProjectLeader() != null){
|
||||
String name = sysUserService.queryNameById(item.getProjectLeader());
|
||||
if (name != null){
|
||||
item.setProjectLeaderName(name);
|
||||
}
|
||||
}
|
||||
if (item.getTotalPlanCost() != null){
|
||||
String name = xzdCbysZjhcbService.queryNameById(item.getTotalPlanCost());
|
||||
if (name != null){
|
||||
item.setTotalPlanCostName(name);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取扣款与奖励项
|
||||
* @param vo
|
||||
*/
|
||||
private void getHttk(XzdCbysJdcbfjVo vo) {
|
||||
List<XzdCbysJdcbfjFubiao> xzdCbysZtjhcbBgjls = xzdCbysJdcbfjFubiaoService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysJdcbfjFubiao>().eq(XzdCbysJdcbfjFubiao::getMainTableId, vo.getId()));
|
||||
vo.setXzdCbysJdcbfjFubiao(xzdCbysZtjhcbBgjls);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,159 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbFubiaoBo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbFubiaoVo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbFubiao;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.mapper.XzdCbysZjhcbFubiaoMapper;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysZjhcbFubiaoService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-总体计划成本附Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-17
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class XzdCbysZjhcbFubiaoServiceImpl extends ServiceImpl<XzdCbysZjhcbFubiaoMapper, XzdCbysZjhcbFubiao> implements IXzdCbysZjhcbFubiaoService {
|
||||
|
||||
private final XzdCbysZjhcbFubiaoMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询立项及成本-成本预算-总体计划成本附
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 立项及成本-成本预算-总体计划成本附
|
||||
*/
|
||||
@Override
|
||||
public XzdCbysZjhcbFubiaoVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询立项及成本-成本预算-总体计划成本附列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 立项及成本-成本预算-总体计划成本附分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<XzdCbysZjhcbFubiaoVo> queryPageList(XzdCbysZjhcbFubiaoBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdCbysZjhcbFubiao> lqw = buildQueryWrapper(bo);
|
||||
Page<XzdCbysZjhcbFubiaoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的立项及成本-成本预算-总体计划成本附列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 立项及成本-成本预算-总体计划成本附列表
|
||||
*/
|
||||
@Override
|
||||
public List<XzdCbysZjhcbFubiaoVo> queryList(XzdCbysZjhcbFubiaoBo bo) {
|
||||
LambdaQueryWrapper<XzdCbysZjhcbFubiao> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdCbysZjhcbFubiao> buildQueryWrapper(XzdCbysZjhcbFubiaoBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<XzdCbysZjhcbFubiao> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdCbysZjhcbFubiao::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBudgetCode()), XzdCbysZjhcbFubiao::getBudgetCode, bo.getBudgetCode());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getBudgetName()), XzdCbysZjhcbFubiao::getBudgetName, bo.getBudgetName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getWbs()), XzdCbysZjhcbFubiao::getWbs, bo.getWbs());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCbs()), XzdCbysZjhcbFubiao::getCbs, bo.getCbs());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), XzdCbysZjhcbFubiao::getUnit, bo.getUnit());
|
||||
lqw.eq(bo.getQuantity() != null, XzdCbysZjhcbFubiao::getQuantity, bo.getQuantity());
|
||||
lqw.eq(bo.getUnitPrice() != null, XzdCbysZjhcbFubiao::getUnitPrice, bo.getUnitPrice());
|
||||
lqw.eq(bo.getTaxIncludedUnitPrice() != null, XzdCbysZjhcbFubiao::getTaxIncludedUnitPrice, bo.getTaxIncludedUnitPrice());
|
||||
lqw.eq(bo.getTaxRate() != null, XzdCbysZjhcbFubiao::getTaxRate, bo.getTaxRate());
|
||||
lqw.eq(bo.getTaxAmount() != null, XzdCbysZjhcbFubiao::getTaxAmount, bo.getTaxAmount());
|
||||
lqw.eq(bo.getTaxExcludedAmount() != null, XzdCbysZjhcbFubiao::getTaxExcludedAmount, bo.getTaxExcludedAmount());
|
||||
lqw.eq(bo.getTaxIncludedAmount() != null, XzdCbysZjhcbFubiao::getTaxIncludedAmount, bo.getTaxIncludedAmount());
|
||||
lqw.eq(bo.getChangeQuantity() != null, XzdCbysZjhcbFubiao::getChangeQuantity, bo.getChangeQuantity());
|
||||
lqw.eq(bo.getChangeUnitPrice() != null, XzdCbysZjhcbFubiao::getChangeUnitPrice, bo.getChangeUnitPrice());
|
||||
lqw.eq(bo.getChangeTaxIncludedUnitPrice() != null, XzdCbysZjhcbFubiao::getChangeTaxIncludedUnitPrice, bo.getChangeTaxIncludedUnitPrice());
|
||||
lqw.eq(bo.getChangeTaxRate() != null, XzdCbysZjhcbFubiao::getChangeTaxRate, bo.getChangeTaxRate());
|
||||
lqw.eq(bo.getChangeTaxAmount() != null, XzdCbysZjhcbFubiao::getChangeTaxAmount, bo.getChangeTaxAmount());
|
||||
lqw.eq(bo.getAfterChangeQuantity() != null, XzdCbysZjhcbFubiao::getAfterChangeQuantity, bo.getAfterChangeQuantity());
|
||||
lqw.eq(bo.getAfterChangeUnitPrice() != null, XzdCbysZjhcbFubiao::getAfterChangeUnitPrice, bo.getAfterChangeUnitPrice());
|
||||
lqw.eq(bo.getAfterChangeTaxIncludedUnitPrice() != null, XzdCbysZjhcbFubiao::getAfterChangeTaxIncludedUnitPrice, bo.getAfterChangeTaxIncludedUnitPrice());
|
||||
lqw.eq(bo.getAfterChangeTaxRate() != null, XzdCbysZjhcbFubiao::getAfterChangeTaxRate, bo.getAfterChangeTaxRate());
|
||||
lqw.eq(bo.getAfterChangeTaxAmount() != null, XzdCbysZjhcbFubiao::getAfterChangeTaxAmount, bo.getAfterChangeTaxAmount());
|
||||
lqw.eq(bo.getAfterChangeTaxExcludedAmount() != null, XzdCbysZjhcbFubiao::getAfterChangeTaxExcludedAmount, bo.getAfterChangeTaxExcludedAmount());
|
||||
lqw.eq(bo.getAfterChangeTaxIncludedAmount() != null, XzdCbysZjhcbFubiao::getAfterChangeTaxIncludedAmount, bo.getAfterChangeTaxIncludedAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdCbysZjhcbFubiao::getRemarks, bo.getRemarks());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContractMode()), XzdCbysZjhcbFubiao::getContractMode, bo.getContractMode());
|
||||
lqw.eq(bo.getBidBudgetIncome() != null, XzdCbysZjhcbFubiao::getBidBudgetIncome, bo.getBidBudgetIncome());
|
||||
lqw.eq(bo.getProfitRate() != null, XzdCbysZjhcbFubiao::getProfitRate, bo.getProfitRate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAttachment()), XzdCbysZjhcbFubiao::getAttachment, bo.getAttachment());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增立项及成本-成本预算-总体计划成本附
|
||||
*
|
||||
* @param bo 立项及成本-成本预算-总体计划成本附
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(XzdCbysZjhcbFubiaoBo bo) {
|
||||
XzdCbysZjhcbFubiao add = MapstructUtils.convert(bo, XzdCbysZjhcbFubiao.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改立项及成本-成本预算-总体计划成本附
|
||||
*
|
||||
* @param bo 立项及成本-成本预算-总体计划成本附
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(XzdCbysZjhcbFubiaoBo bo) {
|
||||
XzdCbysZjhcbFubiao update = MapstructUtils.convert(bo, XzdCbysZjhcbFubiao.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(XzdCbysZjhcbFubiao entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除立项及成本-成本预算-总体计划成本附信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -10,14 +10,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.utils.BatchNumberGenerator;
|
||||
import org.dromara.system.service.ISysUserService;
|
||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysSscb;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysWgcbtbFubiao;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZtjhcbBgjl;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysSscbService;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysWgcbtbFubiaoService;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysZtjhcbBgjlService;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.*;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.service.*;
|
||||
import org.dromara.xzd.service.impl.XzdProjectServiceImpl;
|
||||
import org.dromara.xzd.settlement.domain.XzdJsDeductionItems;
|
||||
import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonVo;
|
||||
@ -25,9 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbBo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbVo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcb;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.mapper.XzdCbysZjhcbMapper;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysZjhcbService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
@ -49,7 +44,7 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl<XzdCbysZjhcbMapper, Xzd
|
||||
@Autowired
|
||||
private IXzdCbysSscbService xzdCbysSscbService;
|
||||
@Autowired
|
||||
private IXzdCbysWgcbtbFubiaoService fubiaoService;
|
||||
private IXzdCbysZjhcbFubiaoService fubiaoService;
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
@Autowired
|
||||
@ -140,6 +135,8 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl<XzdCbysZjhcbMapper, Xzd
|
||||
public Boolean insertByBo(XzdCbysZjhcbBo bo) {
|
||||
XzdCbysZjhcb add = MapstructUtils.convert(bo, XzdCbysZjhcb.class);
|
||||
validEntityBeforeSave(add);
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("LXCBZTJHCB-");
|
||||
add.setDocCode(banBen);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
@ -157,7 +154,7 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl<XzdCbysZjhcbMapper, Xzd
|
||||
xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb());
|
||||
bo.getXzdCbysZtjhcbBgjl().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||
xzdCbysZtjhcbBgjlService.saveBatch(bo.getXzdCbysZtjhcbBgjl());
|
||||
bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocId(add.getId());});
|
||||
bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||
fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao());
|
||||
return flag;
|
||||
}
|
||||
@ -184,12 +181,12 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl<XzdCbysZjhcbMapper, Xzd
|
||||
}
|
||||
xzdCbysZtjhcbBgjlService.remove(new LambdaQueryWrapper<XzdCbysZtjhcbBgjl>().eq(XzdCbysZtjhcbBgjl::getMainDocumentId, bo.getId()));
|
||||
xzdCbysSscbService.remove(new LambdaQueryWrapper<XzdCbysSscb>().eq(XzdCbysSscb::getMainDocumentId, bo.getId()));
|
||||
fubiaoService.remove(new LambdaQueryWrapper<XzdCbysWgcbtbFubiao>().eq(XzdCbysWgcbtbFubiao::getMainDocId, bo.getId()));
|
||||
fubiaoService.remove(new LambdaQueryWrapper<XzdCbysZjhcbFubiao>().eq(XzdCbysZjhcbFubiao::getMainDocumentId, bo.getId()));
|
||||
bo.getXzdCbysSscb().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
||||
xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb());
|
||||
bo.getXzdCbysZtjhcbBgjl().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
||||
xzdCbysZtjhcbBgjlService.saveBatch(bo.getXzdCbysZtjhcbBgjl());
|
||||
bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocId(bo.getId());});
|
||||
bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
||||
fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao());
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
@ -230,10 +227,15 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl<XzdCbysZjhcbMapper, Xzd
|
||||
}
|
||||
xzdCbysZtjhcbBgjlService.remove(new LambdaQueryWrapper<XzdCbysZtjhcbBgjl>().in(XzdCbysZtjhcbBgjl::getMainDocumentId, ids));
|
||||
xzdCbysSscbService.remove(new LambdaQueryWrapper<XzdCbysSscb>().in(XzdCbysSscb::getMainDocumentId, ids));
|
||||
fubiaoService.remove(new LambdaQueryWrapper<XzdCbysWgcbtbFubiao>().in(XzdCbysWgcbtbFubiao::getMainDocId, ids));
|
||||
fubiaoService.remove(new LambdaQueryWrapper<XzdCbysZjhcbFubiao>().in(XzdCbysZjhcbFubiao::getMainDocumentId, ids));
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String queryNameById(Long id) {
|
||||
return baseMapper.selectVoById(id).getDocTitle();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取部分字段名称
|
||||
@ -271,7 +273,7 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl<XzdCbysZjhcbMapper, Xzd
|
||||
vo.setXzdCbysZtjhcbBgjl(xzdCbysZtjhcbBgjls);
|
||||
List<XzdCbysSscb> xzdCbysSscbs = xzdCbysSscbService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysSscb>().eq(XzdCbysSscb::getMainDocumentId, vo.getId()));
|
||||
vo.setXzdCbysSscb(xzdCbysSscbs);
|
||||
List<XzdCbysWgcbtbFubiao> xzdCbysWgcbtbFubiaos = fubiaoService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysWgcbtbFubiao>().eq(XzdCbysWgcbtbFubiao::getMainDocId, vo.getId()));
|
||||
List<XzdCbysZjhcbFubiao> xzdCbysWgcbtbFubiaos = fubiaoService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysZjhcbFubiao>().eq(XzdCbysZjhcbFubiao::getMainDocumentId, vo.getId()));
|
||||
vo.setXzdCbysWgcbtbFubiao(xzdCbysWgcbtbFubiaos);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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.xzd.costProjectApproval.costBudget.mapper.XzdCbysJdcbfjFubiaoMapper">
|
||||
|
||||
</mapper>
|
||||
@ -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.xzd.costProjectApproval.costBudget.mapper.XzdCbysJdcbfjMapper">
|
||||
|
||||
</mapper>
|
||||
@ -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.xzd.costProjectApproval.costBudget.mapper.XzdCbysZjhcbFubiaoMapper">
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user