承包分包合同进度结算
This commit is contained in:
@ -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.代码生成模块
|
||||||
|
|||||||
@ -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));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@ -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> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -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> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -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> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -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> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -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);
|
||||||
|
}
|
||||||
@ -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);
|
||||||
|
}
|
||||||
@ -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);
|
||||||
|
}
|
||||||
@ -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);
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -152,4 +152,9 @@ public class BusProjectUpdateReq implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String position;
|
private String position;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属部门列表
|
||||||
|
*/
|
||||||
|
private List<Long> deptIds;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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>
|
||||||
@ -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>
|
||||||
@ -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>
|
||||||
@ -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>
|
||||||
Reference in New Issue
Block a user