产值
This commit is contained in:
@ -2,6 +2,7 @@ package org.dromara.out.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.http.HttpStatus;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.enums.BusinessStatusEnum;
|
||||
import org.dromara.common.core.enums.FormatsType;
|
||||
@ -11,11 +12,11 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.utils.BigDecimalUtil;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.out.domain.OutConstructionValue;
|
||||
import org.dromara.out.domain.OutMonthPlan;
|
||||
import org.dromara.out.domain.OutMonthPlanAudit;
|
||||
import org.dromara.out.domain.bo.OutMonthPlanBo;
|
||||
import org.dromara.out.domain.bo.OutTableBo;
|
||||
import org.dromara.out.domain.vo.OutComparisonOfCompletionAndSettlementVo;
|
||||
import org.dromara.out.domain.vo.OutComparisonOfOwnerAndSubVo;
|
||||
import org.dromara.out.domain.vo.OutMonthlyConstructionVo;
|
||||
import org.dromara.out.domain.vo.*;
|
||||
import org.dromara.out.service.*;
|
||||
import org.dromara.progress.domain.PgsProgressCategory;
|
||||
import org.dromara.progress.domain.PgsProgressPlanDetail;
|
||||
@ -29,15 +30,18 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDate;
|
||||
import java.time.YearMonth;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 月度产值计划
|
||||
* 报表
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-07-30
|
||||
@ -68,9 +72,9 @@ public class OutTableController extends BaseController {
|
||||
/**
|
||||
* 施工产值报表(计划 VS 实际)
|
||||
*/
|
||||
@SaCheckPermission("out:table:list")
|
||||
// @SaCheckPermission("out:table:list")
|
||||
@GetMapping("/monthlyConstruct")
|
||||
public TableDataInfo<OutMonthlyConstructionVo> list(OutTableBo bo, PageQuery pageQuery) {
|
||||
public TableDataInfo<OutMonthlyConstructionVo> list(@NotNull String month, PageQuery pageQuery) {
|
||||
|
||||
//分页查询所有父项目
|
||||
BusProjectQueryReq busProjectQueryReq = new BusProjectQueryReq();
|
||||
@ -90,7 +94,7 @@ public class OutTableController extends BaseController {
|
||||
|
||||
|
||||
//计算日期
|
||||
LocalDate parsedDate = DateUtils.parseLocalDateTime(FormatsType.YYYY_MM, bo.getMonth());
|
||||
LocalDate parsedDate = DateUtils.parseLocalDateTime(FormatsType.YYYY_MM, month);
|
||||
// 当前月的第一天
|
||||
LocalDate firstDay = parsedDate.with(TemporalAdjusters.firstDayOfMonth());
|
||||
// 当前月的最后一天
|
||||
@ -98,7 +102,7 @@ public class OutTableController extends BaseController {
|
||||
// 方法1: 使用 YearMonth 进行比较(推荐)
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
|
||||
|
||||
YearMonth month = YearMonth.parse(bo.getMonth(), formatter);
|
||||
YearMonth yearMonth = YearMonth.parse(month, formatter);
|
||||
|
||||
//构建返回数据
|
||||
List<OutMonthlyConstructionVo> outMonthlyConstructionVos = new ArrayList<>();
|
||||
@ -126,9 +130,9 @@ public class OutTableController extends BaseController {
|
||||
for (OutMonthPlanAudit planAudit : planAudits) {
|
||||
YearMonth planMonth = YearMonth.parse(planAudit.getPlanMonth(), formatter);
|
||||
// 比较大小
|
||||
if (planMonth.isBefore(month)) {
|
||||
if (planMonth.isBefore(yearMonth)) {
|
||||
estimatedTotalValue=estimatedTotalValue.add(planAudit.getConstructionValue());
|
||||
} else if (month.isAfter(planMonth)) {
|
||||
} else if (yearMonth.isAfter(planMonth)) {
|
||||
|
||||
} else {
|
||||
estimatedTotalValue = estimatedTotalValue.add(planAudit.getConstructionValue());
|
||||
@ -219,8 +223,8 @@ public class OutTableController extends BaseController {
|
||||
|
||||
vo.setTotalCompletionProgress(BigDecimalUtil.toPercentage(accumulatedCompletionValue, totalValue));
|
||||
|
||||
outMonthlyConstructionVos.add(vo);
|
||||
}
|
||||
outMonthlyConstructionVos.add(vo);
|
||||
}
|
||||
|
||||
TableDataInfo<OutMonthlyConstructionVo> rspData = new TableDataInfo<>();
|
||||
@ -236,7 +240,7 @@ public class OutTableController extends BaseController {
|
||||
/**
|
||||
* 分包完工产值与结算产值对比表
|
||||
*/
|
||||
@SaCheckPermission("out:table:list")
|
||||
// @SaCheckPermission("out:table:list")
|
||||
@GetMapping("/comparisonOfCompletionAndSettlement")
|
||||
public TableDataInfo<OutComparisonOfCompletionAndSettlementVo> comparisonOfCompletionAndSettlement(OutTableBo bo, PageQuery pageQuery) {
|
||||
|
||||
@ -258,17 +262,32 @@ public class OutTableController extends BaseController {
|
||||
|
||||
vo.setProjectId(projectVoId);
|
||||
|
||||
//设计完工产值
|
||||
BigDecimal designValue = monthPlanService.getDesignValueByProjectId(projectVoId);
|
||||
//施工完工产值
|
||||
BigDecimal constructionValue = constructionValueService.getCompleteValue(projectVoId);
|
||||
//采购完工产值 todo: 掉罗成的接口
|
||||
BigDecimal purchaseValue = BigDecimal.ZERO;
|
||||
if("1".equals(bo.getValueType())){
|
||||
//设计完工产值
|
||||
BigDecimal designValue = monthPlanService.getDesignValueByProjectId(projectVoId,null);
|
||||
vo.setTotalCompletionOutputValue( designValue);
|
||||
} else if ("2".equals(bo.getValueType())) {
|
||||
//施工完工产值
|
||||
BigDecimal constructionValue = constructionValueService.getCompleteValue(projectVoId,null);
|
||||
vo.setTotalCompletionOutputValue(constructionValue);
|
||||
}else if ("3".equals(bo.getValueType())) {
|
||||
//采购完工产值 todo: 掉罗成的接口
|
||||
BigDecimal purchaseValue = BigDecimal.ZERO;
|
||||
vo.setTotalCompletionOutputValue(purchaseValue);
|
||||
}else{
|
||||
//设计完工产值
|
||||
BigDecimal designValue = monthPlanService.getDesignValueByProjectId(projectVoId,null);
|
||||
//施工完工产值
|
||||
BigDecimal constructionValue = constructionValueService.getCompleteValue(projectVoId,null);
|
||||
//采购完工产值 todo: 掉罗成的接口
|
||||
BigDecimal purchaseValue = BigDecimal.ZERO;
|
||||
|
||||
vo.setTotalCompletionOutputValue( designValue.add(constructionValue).add(purchaseValue));
|
||||
}
|
||||
|
||||
vo.setTotalCompletionOutputValue( designValue.add(constructionValue).add(purchaseValue));
|
||||
|
||||
//结算产值
|
||||
BigDecimal settlementValue = settlementValueSubcontractService.getValueByProjectId(projectVoId);
|
||||
BigDecimal settlementValue = settlementValueSubcontractService.getValueByProjectId(projectVoId,bo.getValueType(),null);
|
||||
vo.setTotalSettlementOutputValue(settlementValue);
|
||||
vo.setCompletionUnsettledAmount(vo.getTotalSettlementOutputValue().subtract(vo.getTotalCompletionOutputValue()));
|
||||
vo.setCompletionUnsettledRatio(BigDecimalUtil.toPercentage(vo.getCompletionUnsettledAmount(), vo.getTotalCompletionOutputValue()));
|
||||
@ -288,7 +307,7 @@ public class OutTableController extends BaseController {
|
||||
/**
|
||||
* 结算产值 VS 业主结算报表
|
||||
*/
|
||||
@SaCheckPermission("out:table:list")
|
||||
// @SaCheckPermission("out:table:list")
|
||||
@GetMapping("/comparisonOfOwnerAndSub")
|
||||
public TableDataInfo<OutComparisonOfOwnerAndSubVo> comparisonOfOwnerAndSub(OutTableBo bo, PageQuery pageQuery){
|
||||
//分页查询所有父项目
|
||||
@ -305,24 +324,23 @@ public class OutTableController extends BaseController {
|
||||
|
||||
OutComparisonOfOwnerAndSubVo vo = new OutComparisonOfOwnerAndSubVo();
|
||||
vo.setProjectName(projectVo.getProjectName());
|
||||
|
||||
vo.setProjectId(projectVoId);
|
||||
|
||||
//设计完工产值
|
||||
BigDecimal designValue = monthPlanService.getDesignValueByProjectId(projectVoId);
|
||||
BigDecimal designValue = monthPlanService.getDesignValueByProjectId(projectVoId,bo.getMonth());
|
||||
//施工完工产值
|
||||
BigDecimal constructionValue = constructionValueService.getCompleteValue(projectVoId);
|
||||
BigDecimal constructionValue = constructionValueService.getCompleteValue(projectVoId,bo.getMonth());
|
||||
//采购完工产值 todo: 掉罗成的接口
|
||||
BigDecimal purchaseValue = BigDecimal.ZERO;
|
||||
|
||||
vo.setTotalCompletionOutputValue( designValue.add(constructionValue).add(purchaseValue));
|
||||
|
||||
//分包结算产值
|
||||
BigDecimal settlementValue = settlementValueSubcontractService.getValueByProjectId(projectVoId);
|
||||
BigDecimal settlementValue = settlementValueSubcontractService.getValueByProjectId(projectVoId,null,bo.getMonth());
|
||||
vo.setSubTotalSettlementOutputValue(settlementValue);
|
||||
|
||||
//业主结算产值
|
||||
BigDecimal ownerSettlementValue = settlementValueOwnerService.getValueByProjectId(projectVoId);
|
||||
BigDecimal ownerSettlementValue = settlementValueOwnerService.getValueByProjectId(projectVoId,bo.getMonth());
|
||||
vo.setOwnerTotalSettlementOutputValue(ownerSettlementValue);
|
||||
|
||||
vos.add(vo);
|
||||
@ -338,5 +356,81 @@ public class OutTableController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 采购设计产值报表(计划 VS 实际)
|
||||
*/
|
||||
// @SaCheckPermission("out:table:list")
|
||||
@GetMapping("/monthlyPurchase")
|
||||
public TableDataInfo<OutDesignAndPurchaseValueVo> monthlyPurchase(OutTableBo bo, PageQuery pageQuery){
|
||||
|
||||
//分页查询所有父项目
|
||||
BusProjectQueryReq busProjectQueryReq = new BusProjectQueryReq();
|
||||
busProjectQueryReq.setPId(0L);
|
||||
TableDataInfo<BusProjectVo> busProjectVoTableDataInfo = projectService.queryPageList(busProjectQueryReq, pageQuery);
|
||||
List<BusProjectVo> rows = busProjectVoTableDataInfo.getRows();
|
||||
List<OutDesignAndPurchaseValueVo> vos = new ArrayList<>();
|
||||
|
||||
for (BusProjectVo projectVo : rows) {
|
||||
OutDesignAndPurchaseValueVo vo = new OutDesignAndPurchaseValueVo();
|
||||
vo.setProjectName(projectVo.getProjectName());
|
||||
vo.setProjectId(projectVo.getId());
|
||||
|
||||
|
||||
List<OutMonthPlan> list = monthPlanService.lambdaQuery().eq(OutMonthPlan::getProjectId, projectVo.getId())
|
||||
.list();
|
||||
|
||||
// 计算累计完成值
|
||||
BigDecimal totalValue = list.stream()
|
||||
.map(OutMonthPlan::getCompleteValue)
|
||||
.filter(Objects::nonNull)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
vo.setTotalValue(totalValue);
|
||||
|
||||
OutMonthPlan matchedPlan = list.stream()
|
||||
.filter(plan -> Objects.equals(plan.getValueType(), bo.getValueType())
|
||||
&& Objects.equals(plan.getPlanMonth(), bo.getMonth()))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
List<OutMonthPlan> matchedPlans = list.stream()
|
||||
.filter(plan -> Objects.equals(plan.getValueType(), bo.getValueType())
|
||||
&& plan.getPlanMonth() != null
|
||||
&& bo.getMonth() != null
|
||||
&& plan.getPlanMonth().compareTo(bo.getMonth()) <= 0)
|
||||
.toList();
|
||||
|
||||
vo.setMonthEstimatedValue(matchedPlan == null? BigDecimal.ZERO :matchedPlan.getPlanValue());
|
||||
|
||||
if("1".equals(bo.getValueType())){
|
||||
vo.setMonthCompletionValue(matchedPlan == null? BigDecimal.ZERO :matchedPlan.getCompleteValue());
|
||||
|
||||
// 计算累计完成值
|
||||
BigDecimal accumulatedCompleteValue = matchedPlans.stream()
|
||||
.map(OutMonthPlan::getCompleteValue)
|
||||
.filter(Objects::nonNull)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
vo.setAccumulatedCompletionValue(accumulatedCompleteValue);
|
||||
|
||||
}else if("2".equals(bo.getValueType())){
|
||||
//todo: 掉罗成的接口
|
||||
vo.setMonthCompletionValue(BigDecimal.ZERO);
|
||||
vo.setAccumulatedCompletionValue(BigDecimal.ZERO);
|
||||
|
||||
}
|
||||
vo.setValueDifference(vo.getMonthCompletionValue().subtract(vo.getMonthEstimatedValue()));
|
||||
vo.setProjectCompletionRate(BigDecimalUtil.toPercentage(vo.getAccumulatedCompletionValue(), totalValue));
|
||||
|
||||
vos.add(vo);
|
||||
|
||||
}
|
||||
TableDataInfo<OutDesignAndPurchaseValueVo> rspData = new TableDataInfo<>();
|
||||
rspData.setCode(HttpStatus.HTTP_OK);
|
||||
rspData.setMsg("查询成功");
|
||||
rspData.setRows(vos);
|
||||
rspData.setTotal(busProjectVoTableDataInfo.getTotal());
|
||||
|
||||
return TableDataInfo.build();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,105 @@
|
||||
package org.dromara.out.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.out.domain.vo.OutValueAllocationVo;
|
||||
import org.dromara.out.domain.bo.OutValueAllocationBo;
|
||||
import org.dromara.out.service.IOutValueAllocationService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 项目总产值分配
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-02
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/out/valueAllocation")
|
||||
public class OutValueAllocationController extends BaseController {
|
||||
|
||||
private final IOutValueAllocationService outValueAllocationService;
|
||||
|
||||
/**
|
||||
* 查询项目总产值分配列表
|
||||
*/
|
||||
@SaCheckPermission("out:valueAllocation:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<OutValueAllocationVo> list(OutValueAllocationBo bo, PageQuery pageQuery) {
|
||||
return outValueAllocationService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出项目总产值分配列表
|
||||
*/
|
||||
@SaCheckPermission("out:valueAllocation:export")
|
||||
@Log(title = "项目总产值分配", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(OutValueAllocationBo bo, HttpServletResponse response) {
|
||||
List<OutValueAllocationVo> list = outValueAllocationService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "项目总产值分配", OutValueAllocationVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目总产值分配详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("out:valueAllocation:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<OutValueAllocationVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(outValueAllocationService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增项目总产值分配
|
||||
*/
|
||||
@SaCheckPermission("out:valueAllocation:add")
|
||||
@Log(title = "项目总产值分配", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody OutValueAllocationBo bo) {
|
||||
return toAjax(outValueAllocationService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改项目总产值分配
|
||||
*/
|
||||
@SaCheckPermission("out:valueAllocation:edit")
|
||||
@Log(title = "项目总产值分配", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OutValueAllocationBo bo) {
|
||||
return toAjax(outValueAllocationService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除项目总产值分配
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("out:valueAllocation:remove")
|
||||
@Log(title = "项目总产值分配", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(outValueAllocationService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,77 @@
|
||||
package org.dromara.out.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;
|
||||
|
||||
/**
|
||||
* 项目总产值分配对象 out_value_allocation
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-02
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("out_value_allocation")
|
||||
public class OutValueAllocation extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 对甲设计产值
|
||||
*/
|
||||
private BigDecimal ownerDesignValue;
|
||||
|
||||
/**
|
||||
* 对甲采购产值
|
||||
*/
|
||||
private BigDecimal ownerPurchaseValue;
|
||||
|
||||
/**
|
||||
* 对甲施工产值
|
||||
*/
|
||||
private BigDecimal ownerConstructionValue;
|
||||
|
||||
/**
|
||||
* 对甲总产值
|
||||
*/
|
||||
private BigDecimal ownerTotalValue;
|
||||
|
||||
/**
|
||||
* 对乙设计产值
|
||||
*/
|
||||
private BigDecimal subDesignValue;
|
||||
|
||||
/**
|
||||
* 对乙采购产值
|
||||
*/
|
||||
private BigDecimal subPurchaseValue;
|
||||
|
||||
/**
|
||||
* 对乙施工产值
|
||||
*/
|
||||
private BigDecimal subConstructionValue;
|
||||
|
||||
/**
|
||||
* 对乙总产值
|
||||
*/
|
||||
private BigDecimal subTotalValue;
|
||||
|
||||
|
||||
}
|
@ -8,7 +8,13 @@ import org.dromara.common.core.validate.EditGroup;
|
||||
@Data
|
||||
public class OutTableBo {
|
||||
|
||||
@NotBlank(message = "月份(YYYY-MM)不能为空")
|
||||
private String month;
|
||||
/**
|
||||
* 1-设计 2-采购 3-施工
|
||||
*/
|
||||
private String valueType;
|
||||
|
||||
/**
|
||||
* 月份
|
||||
*/
|
||||
private String month;
|
||||
}
|
||||
|
@ -0,0 +1,85 @@
|
||||
package org.dromara.out.domain.bo;
|
||||
|
||||
import org.dromara.out.domain.OutValueAllocation;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 项目总产值分配业务对象 out_value_allocation
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-02
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = OutValueAllocation.class, reverseConvertGenerate = false)
|
||||
public class OutValueAllocationBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
@NotNull(message = "项目ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 对甲设计产值
|
||||
*/
|
||||
@NotNull(message = "对甲设计产值不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal ownerDesignValue;
|
||||
|
||||
/**
|
||||
* 对甲采购产值
|
||||
*/
|
||||
@NotNull(message = "对甲采购产值不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal ownerPurchaseValue;
|
||||
|
||||
/**
|
||||
* 对甲施工产值
|
||||
*/
|
||||
@NotNull(message = "对甲施工产值不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal ownerConstructionValue;
|
||||
|
||||
/**
|
||||
* 对甲总产值
|
||||
*/
|
||||
@NotNull(message = "对甲总产值不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal ownerTotalValue;
|
||||
|
||||
/**
|
||||
* 对乙设计产值
|
||||
*/
|
||||
@NotNull(message = "对乙设计产值不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal subDesignValue;
|
||||
|
||||
/**
|
||||
* 对乙采购产值
|
||||
*/
|
||||
@NotNull(message = "对乙采购产值不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal subPurchaseValue;
|
||||
|
||||
/**
|
||||
* 对乙施工产值
|
||||
*/
|
||||
@NotNull(message = "对乙施工产值不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal subConstructionValue;
|
||||
|
||||
/**
|
||||
* 对乙总产值
|
||||
*/
|
||||
@NotNull(message = "对乙总产值不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal subTotalValue;
|
||||
|
||||
|
||||
}
|
@ -24,23 +24,23 @@ public class OutComparisonOfCompletionAndSettlementVo {
|
||||
* 累计完工产值
|
||||
*/
|
||||
@ExcelProperty(value = "累计完工产值")
|
||||
private BigDecimal totalCompletionOutputValue;
|
||||
private BigDecimal totalCompletionOutputValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 累计结算产值
|
||||
*/
|
||||
@ExcelProperty(value = "累计结算产值")
|
||||
private BigDecimal totalSettlementOutputValue;
|
||||
private BigDecimal totalSettlementOutputValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 完工未结算额
|
||||
*/
|
||||
@ExcelProperty(value = "完工未结算额")
|
||||
private BigDecimal completionUnsettledAmount;
|
||||
private BigDecimal completionUnsettledAmount= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 完工未结算比例
|
||||
*/
|
||||
@ExcelProperty(value = "完工未结算比例")
|
||||
private BigDecimal completionUnsettledRatio;
|
||||
private BigDecimal completionUnsettledRatio= BigDecimal.ZERO;
|
||||
}
|
||||
|
@ -24,24 +24,24 @@ public class OutComparisonOfOwnerAndSubVo {
|
||||
* 累计完工产值
|
||||
*/
|
||||
@ExcelProperty(value = "累计完工产值")
|
||||
private BigDecimal totalCompletionOutputValue;
|
||||
private BigDecimal totalCompletionOutputValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 分包累计结算产值
|
||||
*/
|
||||
@ExcelProperty(value = "分包累计结算产值")
|
||||
private BigDecimal subTotalSettlementOutputValue;
|
||||
private BigDecimal subTotalSettlementOutputValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 业主累计结算产值
|
||||
*/
|
||||
@ExcelProperty(value = "业主累计结算产值")
|
||||
private BigDecimal ownerTotalSettlementOutputValue;
|
||||
private BigDecimal ownerTotalSettlementOutputValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 差额
|
||||
*/
|
||||
@ExcelProperty(value = "差额")
|
||||
private BigDecimal differenceValue;
|
||||
private BigDecimal differenceValue= BigDecimal.ZERO;
|
||||
|
||||
}
|
||||
|
@ -154,7 +154,7 @@ public class OutConstructionValueVo implements Serializable {
|
||||
/**
|
||||
* 上报人
|
||||
*/
|
||||
@ExcelProperty(value = "审核状态")
|
||||
@ExcelProperty(value = "上报人")
|
||||
@Translation(type = TransConstant.USER_ID_TO_NAME, mapper = "createBy")
|
||||
private String createByName;
|
||||
|
||||
|
@ -0,0 +1,57 @@
|
||||
package org.dromara.out.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class OutDesignAndPurchaseValueVo {
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
@ExcelProperty(value = "项目名称")
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 月预计产值
|
||||
*/
|
||||
@ExcelProperty(value = "月预计产值")
|
||||
private BigDecimal monthEstimatedValue = BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 月完成产值
|
||||
*/
|
||||
@ExcelProperty(value = "月完成产值")
|
||||
private BigDecimal monthCompletionValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 产值差额
|
||||
*/
|
||||
@ExcelProperty(value = "产值差额")
|
||||
private BigDecimal valueDifference= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 项目总产值
|
||||
*/
|
||||
@ExcelProperty(value = "项目总产值")
|
||||
private BigDecimal totalValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 累计完成产值
|
||||
*/
|
||||
@ExcelProperty(value = "累计完成产值")
|
||||
private BigDecimal accumulatedCompletionValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 项目完成率
|
||||
*/
|
||||
@ExcelProperty(value = "项目完成率")
|
||||
private BigDecimal projectCompletionRate= BigDecimal.ZERO;
|
||||
|
||||
}
|
@ -21,79 +21,79 @@ public class OutMonthlyConstructionVo {
|
||||
* 总产值(万元)
|
||||
*/
|
||||
@ExcelProperty(value = "总产值(万元)")
|
||||
private BigDecimal totalValue;
|
||||
private BigDecimal totalValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 月预计产值(万元)
|
||||
*/
|
||||
@ExcelProperty(value = "月预计产值(万元)")
|
||||
private BigDecimal monthlyEstimatedValue;
|
||||
private BigDecimal monthlyEstimatedValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 第一周完成产值(万元)
|
||||
*/
|
||||
@ExcelProperty(value = "第一周完成产值(万元)")
|
||||
private BigDecimal firstWeekCompletionValue;
|
||||
private BigDecimal firstWeekCompletionValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 第二周完成产值(万元)
|
||||
*/
|
||||
@ExcelProperty(value = "第二周完成产值(万元)")
|
||||
private BigDecimal secondWeekCompletionValue;
|
||||
private BigDecimal secondWeekCompletionValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 第三周完成产值(万元)
|
||||
*/
|
||||
@ExcelProperty(value = "第三周完成产值(万元)")
|
||||
private BigDecimal thirdWeekCompletionValue;
|
||||
private BigDecimal thirdWeekCompletionValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 第四周完成产值(万元)
|
||||
*/
|
||||
@ExcelProperty(value = "第四周完成产值(万元)")
|
||||
private BigDecimal fourthWeekCompletionValue;
|
||||
private BigDecimal fourthWeekCompletionValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 第五周完成产值(万元)
|
||||
*/
|
||||
@ExcelProperty(value = "第五周完成产值(万元)")
|
||||
private BigDecimal fifthWeekCompletionValue;
|
||||
private BigDecimal fifthWeekCompletionValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 完成产值月合计(万元)
|
||||
*/
|
||||
@ExcelProperty(value = "完成产值月合计(万元)")
|
||||
private BigDecimal totalCompletionValue;
|
||||
private BigDecimal totalCompletionValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 产值差额(万元)
|
||||
*/
|
||||
@ExcelProperty(value = "产值差额(万元)")
|
||||
private BigDecimal valueDifference;
|
||||
private BigDecimal valueDifference= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 预计累计产值(万元)
|
||||
*/
|
||||
@ExcelProperty(value = "预计累计产值(万元)")
|
||||
private BigDecimal estimatedAccumulatedValue;
|
||||
private BigDecimal estimatedAccumulatedValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 累计完成产值(万元)
|
||||
*/
|
||||
@ExcelProperty(value = "累计完成产值(万元)")
|
||||
private BigDecimal accumulatedCompletionValue;
|
||||
private BigDecimal accumulatedCompletionValue= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 产值差额累计(万元)
|
||||
*/
|
||||
@ExcelProperty(value = "产值差额累计(万元)")
|
||||
private BigDecimal valueDifferenceAccumulation;
|
||||
private BigDecimal valueDifferenceAccumulation= BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 项目完成总进度(百分比)%
|
||||
*/
|
||||
@ExcelProperty(value = "项目完成总进度(百分比)%")
|
||||
private BigDecimal totalCompletionProgress;
|
||||
private BigDecimal totalCompletionProgress= BigDecimal.ZERO;
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,9 @@
|
||||
package org.dromara.out.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.out.domain.OutSettlementValueOwner;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -67,4 +70,21 @@ public class OutSettlementValueOwnerVo implements Serializable {
|
||||
private LocalDate settlementDate;
|
||||
|
||||
|
||||
/**
|
||||
* 上报人Id
|
||||
*/
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 填报人
|
||||
*/
|
||||
@ExcelProperty(value = "填报人")
|
||||
@Translation(type = TransConstant.USER_ID_TO_NAME, mapper = "createBy")
|
||||
private String createByName;
|
||||
|
||||
/**
|
||||
* 填报时间
|
||||
*/
|
||||
@ExcelProperty(value = "填报时间")
|
||||
private Date createTime;
|
||||
}
|
||||
|
@ -1,6 +1,9 @@
|
||||
package org.dromara.out.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.out.domain.OutSettlementValueSubcontract;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -116,5 +119,21 @@ public class OutSettlementValueSubcontractVo implements Serializable {
|
||||
@ExcelProperty(value = "合同地址")
|
||||
private String contractUrl;
|
||||
|
||||
/**
|
||||
* 上报人Id
|
||||
*/
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 填报人
|
||||
*/
|
||||
@ExcelProperty(value = "填报人")
|
||||
@Translation(type = TransConstant.USER_ID_TO_NAME, mapper = "createBy")
|
||||
private String createByName;
|
||||
|
||||
/**
|
||||
* 填报时间
|
||||
*/
|
||||
@ExcelProperty(value = "填报时间")
|
||||
private Date createTime;
|
||||
}
|
||||
|
@ -0,0 +1,93 @@
|
||||
package org.dromara.out.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import org.dromara.out.domain.OutValueAllocation;
|
||||
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;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 项目总产值分配视图对象 out_value_allocation
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-02
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = OutValueAllocation.class)
|
||||
public class OutValueAllocationVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
@ExcelProperty(value = "项目ID")
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 对甲设计产值
|
||||
*/
|
||||
@ExcelProperty(value = "对甲设计产值")
|
||||
private BigDecimal ownerDesignValue;
|
||||
|
||||
/**
|
||||
* 对甲采购产值
|
||||
*/
|
||||
@ExcelProperty(value = "对甲采购产值")
|
||||
private BigDecimal ownerPurchaseValue;
|
||||
|
||||
/**
|
||||
* 对甲施工产值
|
||||
*/
|
||||
@ExcelProperty(value = "对甲施工产值")
|
||||
private BigDecimal ownerConstructionValue;
|
||||
|
||||
/**
|
||||
* 对甲总产值
|
||||
*/
|
||||
@ExcelProperty(value = "对甲总产值")
|
||||
private BigDecimal ownerTotalValue;
|
||||
|
||||
/**
|
||||
* 对乙设计产值
|
||||
*/
|
||||
@ExcelProperty(value = "对乙设计产值")
|
||||
private BigDecimal subDesignValue;
|
||||
|
||||
/**
|
||||
* 对乙采购产值
|
||||
*/
|
||||
@ExcelProperty(value = "对乙采购产值")
|
||||
private BigDecimal subPurchaseValue;
|
||||
|
||||
/**
|
||||
* 对乙施工产值
|
||||
*/
|
||||
@ExcelProperty(value = "对乙施工产值")
|
||||
private BigDecimal subConstructionValue;
|
||||
|
||||
/**
|
||||
* 对乙总产值
|
||||
*/
|
||||
@ExcelProperty(value = "对乙总产值")
|
||||
private BigDecimal subTotalValue;
|
||||
|
||||
|
||||
}
|
@ -17,7 +17,14 @@ import java.math.BigDecimal;
|
||||
public interface OutConstructionValueMapper extends BaseMapperPlus<OutConstructionValue, OutConstructionValueVo> {
|
||||
|
||||
|
||||
@Select("select sum(out_value) from out_construction_value where project_id = #{projectId} and audit_status = 'finish' ")
|
||||
BigDecimal getCompleteValue( @Param("projectId") Long projectId);
|
||||
@Select({
|
||||
"<script>",
|
||||
"select sum(out_value) from out_construction_value where project_id = #{projectId} and audit_status = 'finish'",
|
||||
"<if test='month != null and month != \"\"'>",
|
||||
"and DATE_FORMAT(report_date, '%Y-%m') = #{month}",
|
||||
"</if>",
|
||||
"</script>"
|
||||
})
|
||||
BigDecimal getCompleteValue( @Param("projectId") Long projectId,@Param("month")String month);
|
||||
|
||||
}
|
||||
|
@ -16,6 +16,13 @@ import java.math.BigDecimal;
|
||||
*/
|
||||
public interface OutMonthPlanMapper extends BaseMapperPlus<OutMonthPlan, OutMonthPlanVo> {
|
||||
|
||||
@Select("select sum(complete_value) from out_month_plan where value_type = 1 and complete_audit_status = 'finish' and project_id = #{projectId}")
|
||||
BigDecimal getDesignValueByProjectId(@Param("projectId") Long projectId);
|
||||
@Select({
|
||||
"<script>",
|
||||
"select sum(complete_value) from out_month_plan where value_type = 1 and complete_audit_status = 'finish' and project_id = #{projectId}",
|
||||
"<if test='planMonth != null and planMonth != \"\"'>",
|
||||
"and plan_month = #{planMonth}",
|
||||
"</if>",
|
||||
"</script>"
|
||||
})
|
||||
BigDecimal getDesignValueByProjectId(@Param("projectId") Long projectId,@Param("planMonth") String planMonth);
|
||||
}
|
||||
|
@ -17,6 +17,13 @@ import java.math.BigDecimal;
|
||||
public interface OutSettlementValueOwnerMapper extends BaseMapperPlus<OutSettlementValueOwner, OutSettlementValueOwnerVo> {
|
||||
|
||||
|
||||
@Select("select sum(settlement_value) from out_settlement_value_owner where project_id = #{projectId}")
|
||||
BigDecimal getValueByProjectId(@Param("projectId") Long projectId);
|
||||
@Select({
|
||||
"<script>",
|
||||
"select sum(settlement_value) from out_settlement_value_owner where project_id = #{projectId}",
|
||||
"<if test='month != null and month != \"\"'>",
|
||||
"and DATE_FORMAT(settlement_date, '%Y-%m') = #{month}",
|
||||
"</if>",
|
||||
"</script>"
|
||||
})
|
||||
BigDecimal getValueByProjectId(@Param("projectId") Long projectId, @Param("month") String month);
|
||||
}
|
||||
|
@ -17,6 +17,16 @@ import java.math.BigDecimal;
|
||||
public interface OutSettlementValueSubcontractMapper extends BaseMapperPlus<OutSettlementValueSubcontract, OutSettlementValueSubcontractVo> {
|
||||
|
||||
|
||||
@Select("select sum(settlement_value) from out_settlement_value_subcontract where project_id = #{projectId} ")
|
||||
BigDecimal getValueByProjectId(@Param("projectId") Long projectId);
|
||||
@Select({
|
||||
"<script>",
|
||||
"select sum(settlement_value) from out_settlement_value_subcontract where project_id = #{projectId}",
|
||||
"<if test='valueType != null and valueType != \"\"'>",
|
||||
"and value_type = #{valueType}",
|
||||
"</if>",
|
||||
"<if test='month != null and month != \"\"'>",
|
||||
"and settlement_month = #{month}",
|
||||
"</if>",
|
||||
"</script>"
|
||||
})
|
||||
BigDecimal getValueByProjectId(@Param("projectId") Long projectId, @Param("valueType") String valueType,@Param("month")String month);
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
package org.dromara.out.mapper;
|
||||
|
||||
import org.dromara.out.domain.OutValueAllocation;
|
||||
import org.dromara.out.domain.vo.OutValueAllocationVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 项目总产值分配Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-02
|
||||
*/
|
||||
public interface OutValueAllocationMapper extends BaseMapperPlus<OutValueAllocation, OutValueAllocationVo> {
|
||||
|
||||
}
|
@ -77,5 +77,5 @@ public interface IOutConstructionValueService extends IService<OutConstructionVa
|
||||
* @param projectId 项目id
|
||||
* @return 项目施工完成值
|
||||
*/
|
||||
BigDecimal getCompleteValue(Long projectId);
|
||||
BigDecimal getCompleteValue(Long projectId,String month);
|
||||
}
|
||||
|
@ -87,6 +87,6 @@ public interface IOutMonthPlanService extends IService<OutMonthPlan>{
|
||||
/**
|
||||
* 根据项目id查询项目已完工的设计产值
|
||||
*/
|
||||
BigDecimal getDesignValueByProjectId(Long projectId);
|
||||
BigDecimal getDesignValueByProjectId(Long projectId,String month);
|
||||
|
||||
}
|
||||
|
@ -74,5 +74,5 @@ public interface IOutSettlementValueOwnerService extends IService<OutSettlementV
|
||||
/**
|
||||
* 根据项目id获取项目结算产值
|
||||
*/
|
||||
BigDecimal getValueByProjectId(Long projectId);
|
||||
BigDecimal getValueByProjectId(Long projectId,String month);
|
||||
}
|
||||
|
@ -73,5 +73,5 @@ public interface IOutSettlementValueSubcontractService extends IService<OutSettl
|
||||
/**
|
||||
* 根据项目id获取项目结算产值
|
||||
*/
|
||||
BigDecimal getValueByProjectId(Long projectId);
|
||||
BigDecimal getValueByProjectId(Long projectId,String valueType,String month);
|
||||
}
|
||||
|
@ -0,0 +1,70 @@
|
||||
package org.dromara.out.service;
|
||||
|
||||
import org.dromara.out.domain.vo.OutValueAllocationVo;
|
||||
import org.dromara.out.domain.bo.OutValueAllocationBo;
|
||||
import org.dromara.out.domain.OutValueAllocation;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 项目总产值分配Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-02
|
||||
*/
|
||||
public interface IOutValueAllocationService extends IService<OutValueAllocation>{
|
||||
|
||||
/**
|
||||
* 查询项目总产值分配
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 项目总产值分配
|
||||
*/
|
||||
OutValueAllocationVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询项目总产值分配列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 项目总产值分配分页列表
|
||||
*/
|
||||
TableDataInfo<OutValueAllocationVo> queryPageList(OutValueAllocationBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的项目总产值分配列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 项目总产值分配列表
|
||||
*/
|
||||
List<OutValueAllocationVo> queryList(OutValueAllocationBo bo);
|
||||
|
||||
/**
|
||||
* 新增项目总产值分配
|
||||
*
|
||||
* @param bo 项目总产值分配
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(OutValueAllocationBo bo);
|
||||
|
||||
/**
|
||||
* 修改项目总产值分配
|
||||
*
|
||||
* @param bo 项目总产值分配
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(OutValueAllocationBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除项目总产值分配信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
@ -174,8 +174,8 @@ public class OutConstructionValueServiceImpl extends ServiceImpl<OutConstruction
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal getCompleteValue(Long projectId) {
|
||||
return baseMapper.getCompleteValue(projectId);
|
||||
public BigDecimal getCompleteValue(Long projectId, String month) {
|
||||
return baseMapper.getCompleteValue(projectId,month);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -192,8 +192,8 @@ public class OutMonthPlanServiceImpl extends ServiceImpl<OutMonthPlanMapper, Out
|
||||
|
||||
|
||||
@Override
|
||||
public BigDecimal getDesignValueByProjectId(Long projectId) {
|
||||
return baseMapper.getDesignValueByProjectId(projectId);
|
||||
public BigDecimal getDesignValueByProjectId(Long projectId,String month) {
|
||||
return baseMapper.getDesignValueByProjectId(projectId,month);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -134,7 +134,7 @@ public class OutSettlementValueOwnerServiceImpl extends ServiceImpl<OutSettlemen
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal getValueByProjectId(Long projectId) {
|
||||
return baseMapper.getValueByProjectId(projectId);
|
||||
public BigDecimal getValueByProjectId(Long projectId,String month) {
|
||||
return baseMapper.getValueByProjectId(projectId,month);
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.contractor.service.ISubContractorService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.out.domain.bo.OutSettlementValueSubcontractBo;
|
||||
import org.dromara.out.domain.vo.OutSettlementValueSubcontractVo;
|
||||
@ -33,6 +34,8 @@ public class OutSettlementValueSubcontractServiceImpl extends ServiceImpl<OutSet
|
||||
|
||||
private final OutSettlementValueSubcontractMapper baseMapper;
|
||||
|
||||
private final ISubContractorService contractorService;
|
||||
|
||||
/**
|
||||
* 查询结算产值登记(对乙)
|
||||
*
|
||||
@ -55,6 +58,9 @@ public class OutSettlementValueSubcontractServiceImpl extends ServiceImpl<OutSet
|
||||
public TableDataInfo<OutSettlementValueSubcontractVo> queryPageList(OutSettlementValueSubcontractBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<OutSettlementValueSubcontract> lqw = buildQueryWrapper(bo);
|
||||
Page<OutSettlementValueSubcontractVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
result.getRecords().forEach(e -> {
|
||||
e.setContractorName(contractorService.queryById(e.getContractorId()).getName());
|
||||
});
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@ -141,7 +147,7 @@ public class OutSettlementValueSubcontractServiceImpl extends ServiceImpl<OutSet
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal getValueByProjectId(Long projectId) {
|
||||
return baseMapper.getValueByProjectId(projectId);
|
||||
public BigDecimal getValueByProjectId(Long projectId,String valueType,String month) {
|
||||
return baseMapper.getValueByProjectId(projectId, valueType,month);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,139 @@
|
||||
package org.dromara.out.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.out.domain.bo.OutValueAllocationBo;
|
||||
import org.dromara.out.domain.vo.OutValueAllocationVo;
|
||||
import org.dromara.out.domain.OutValueAllocation;
|
||||
import org.dromara.out.mapper.OutValueAllocationMapper;
|
||||
import org.dromara.out.service.IOutValueAllocationService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 项目总产值分配Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-02
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class OutValueAllocationServiceImpl extends ServiceImpl<OutValueAllocationMapper, OutValueAllocation> implements IOutValueAllocationService {
|
||||
|
||||
private final OutValueAllocationMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询项目总产值分配
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 项目总产值分配
|
||||
*/
|
||||
@Override
|
||||
public OutValueAllocationVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询项目总产值分配列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 项目总产值分配分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<OutValueAllocationVo> queryPageList(OutValueAllocationBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<OutValueAllocation> lqw = buildQueryWrapper(bo);
|
||||
Page<OutValueAllocationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的项目总产值分配列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 项目总产值分配列表
|
||||
*/
|
||||
@Override
|
||||
public List<OutValueAllocationVo> queryList(OutValueAllocationBo bo) {
|
||||
LambdaQueryWrapper<OutValueAllocation> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<OutValueAllocation> buildQueryWrapper(OutValueAllocationBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<OutValueAllocation> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByAsc(OutValueAllocation::getId);
|
||||
lqw.eq(bo.getProjectId() != null, OutValueAllocation::getProjectId, bo.getProjectId());
|
||||
lqw.eq(bo.getOwnerDesignValue() != null, OutValueAllocation::getOwnerDesignValue, bo.getOwnerDesignValue());
|
||||
lqw.eq(bo.getOwnerPurchaseValue() != null, OutValueAllocation::getOwnerPurchaseValue, bo.getOwnerPurchaseValue());
|
||||
lqw.eq(bo.getOwnerConstructionValue() != null, OutValueAllocation::getOwnerConstructionValue, bo.getOwnerConstructionValue());
|
||||
lqw.eq(bo.getOwnerTotalValue() != null, OutValueAllocation::getOwnerTotalValue, bo.getOwnerTotalValue());
|
||||
lqw.eq(bo.getSubDesignValue() != null, OutValueAllocation::getSubDesignValue, bo.getSubDesignValue());
|
||||
lqw.eq(bo.getSubPurchaseValue() != null, OutValueAllocation::getSubPurchaseValue, bo.getSubPurchaseValue());
|
||||
lqw.eq(bo.getSubConstructionValue() != null, OutValueAllocation::getSubConstructionValue, bo.getSubConstructionValue());
|
||||
lqw.eq(bo.getSubTotalValue() != null, OutValueAllocation::getSubTotalValue, bo.getSubTotalValue());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增项目总产值分配
|
||||
*
|
||||
* @param bo 项目总产值分配
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(OutValueAllocationBo bo) {
|
||||
OutValueAllocation add = MapstructUtils.convert(bo, OutValueAllocation.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改项目总产值分配
|
||||
*
|
||||
* @param bo 项目总产值分配
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(OutValueAllocationBo bo) {
|
||||
OutValueAllocation update = MapstructUtils.convert(bo, OutValueAllocation.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(OutValueAllocation 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,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.out.mapper.OutValueAllocationMapper">
|
||||
|
||||
</mapper>
|
Reference in New Issue
Block a user