枚举更换、归属类型调整
This commit is contained in:
@@ -18,10 +18,10 @@ public class ProjectPlanningPageReqVO extends PageParam {
|
||||
@Schema(description = "项目 ID", example = "1")
|
||||
private Long projectId;
|
||||
|
||||
@Schema(description = "归属类型", example = "专业所")
|
||||
@Schema(description = "归属类型", example = "major")
|
||||
private String ownershipType;
|
||||
|
||||
@Schema(description = "产值计算方式", example = "指导价法")
|
||||
@Schema(description = "产值计算方式", example = "guidance_price")
|
||||
private String calculationMethod;
|
||||
|
||||
@Schema(description = "项目任务包,模糊匹配", example = "建筑")
|
||||
|
||||
@@ -24,12 +24,12 @@ public class ProjectPlanningSaveReqVO {
|
||||
@Schema(description = "排序", example = "0")
|
||||
private Integer sortNo;
|
||||
|
||||
@Schema(description = "归属类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "专业所")
|
||||
@Schema(description = "归属类型:major/comprehensive/special_subcontract_major/special_subcontract_source_coop/special_subcontract_comprehensive", requiredMode = Schema.RequiredMode.REQUIRED, example = "major")
|
||||
@NotBlank(message = "归属类型不能为空")
|
||||
@Size(max = 20, message = "归属类型长度不能超过 20 个字符")
|
||||
@Size(max = 64, message = "归属类型长度不能超过 64 个字符")
|
||||
private String ownershipType;
|
||||
|
||||
@Schema(description = "产值计算方式,页面 2 维护", example = "指导价法")
|
||||
@Schema(description = "产值计算方式:guidance_price/contract_price/virtual_output,页面 2 维护", example = "guidance_price")
|
||||
@Size(max = 30, message = "产值计算方式长度不能超过 30 个字符")
|
||||
private String calculationMethod;
|
||||
|
||||
@@ -73,7 +73,7 @@ public class ProjectPlanningSaveReqVO {
|
||||
@Schema(description = "面积", example = "30000")
|
||||
private BigDecimal planningArea;
|
||||
|
||||
@Schema(description = "设计阶段", example = "方案设计")
|
||||
@Schema(description = "设计阶段:scheme/construction_drawing/scheme_and_construction_drawing", example = "scheme")
|
||||
@Size(max = 50, message = "设计阶段长度不能超过 50 个字符")
|
||||
private String designStage;
|
||||
|
||||
@@ -119,7 +119,7 @@ public class ProjectPlanningSaveReqVO {
|
||||
@Schema(description = "内部指导单价(元/m²)", example = "80.00")
|
||||
private BigDecimal internalGuidanceUnitPrice;
|
||||
|
||||
@Schema(description = "虚拟产值计算方式:指导单价法/指导总价法/工日法", example = "工日法")
|
||||
@Schema(description = "虚拟产值计算方式:guidance_price/guidance_total_price/working_day", example = "working_day")
|
||||
@Size(max = 30, message = "虚拟产值计算方式长度不能超过 30 个字符")
|
||||
private String virtualCalculationMethod;
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ public class ProjectPlanningGuideDetailSaveReqVO {
|
||||
@Schema(description = "明细 ID", example = "1")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "设计部位", requiredMode = Schema.RequiredMode.REQUIRED, example = "地上部分")
|
||||
@Schema(description = "设计部位:above_ground/underground/other", requiredMode = Schema.RequiredMode.REQUIRED, example = "above_ground")
|
||||
@NotBlank(message = "设计部位不能为空")
|
||||
@Size(max = 20, message = "设计部位长度不能超过 20 个字符")
|
||||
private String designPart;
|
||||
|
||||
@@ -34,15 +34,18 @@ public class ProjectProfitRespVO {
|
||||
@Schema(description = "综合所人工成本")
|
||||
private BigDecimal comprehensivePlanningAmount;
|
||||
|
||||
@Schema(description = "专项/源头合作分包人工成本合计")
|
||||
@Schema(description = "专项分包人工成本合计")
|
||||
private BigDecimal subcontractPlanningAmount;
|
||||
|
||||
@Schema(description = "专项分包人工成本")
|
||||
@Schema(description = "专项分包-专业所人工成本")
|
||||
private BigDecimal specialSubcontractPlanningAmount;
|
||||
|
||||
@Schema(description = "源头合作分包人工成本")
|
||||
@Schema(description = "专项分包-源头合作分包人工成本")
|
||||
private BigDecimal sourceCoopSubcontractPlanningAmount;
|
||||
|
||||
@Schema(description = "专项分包-综合所人工成本")
|
||||
private BigDecimal comprehensiveSubcontractPlanningAmount;
|
||||
|
||||
@Schema(description = "专业所考核产值")
|
||||
private BigDecimal majorOutputValue;
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ public class ProjectPageReqVO extends PageParam {
|
||||
@Schema(description = "项目开始年度", example = "2026")
|
||||
private Integer projectStartYear;
|
||||
|
||||
@Schema(description = "项目状态", example = "进行中")
|
||||
@Schema(description = "项目状态:in_progress/completed/paused/terminated", example = "in_progress")
|
||||
private String projectStatus;
|
||||
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
|
||||
@@ -72,7 +72,7 @@ public class ProjectSaveReqVO {
|
||||
@NotNull(message = "项目开始年度不能为空")
|
||||
private Integer projectStartYear;
|
||||
|
||||
@Schema(description = "项目状态", example = "进行中")
|
||||
@Schema(description = "项目状态:in_progress/completed/paused/terminated", example = "in_progress")
|
||||
@Size(max = 20, message = "项目状态长度不能超过 20 个字符")
|
||||
private String projectStatus;
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ public interface ErrorCodeConstants {
|
||||
|
||||
// ========== 项目管理 1-020-001-000 ==========
|
||||
ErrorCode PROJECT_NOT_EXISTS = new ErrorCode(1_020_001_000, "项目不存在");
|
||||
ErrorCode PROJECT_STATUS_INVALID = new ErrorCode(1_020_001_001, "项目状态不正确");
|
||||
|
||||
// ========== 合约规划管理 1-020-002-000 ==========
|
||||
ErrorCode PROJECT_PLANNING_NOT_EXISTS = new ErrorCode(1_020_002_000, "合约规划不存在");
|
||||
@@ -25,6 +26,7 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode PROJECT_PLANNING_DESIGN_PART_INVALID = new ErrorCode(1_020_002_009, "设计部位不正确");
|
||||
ErrorCode PROJECT_PLANNING_GUIDE_DETAIL_NOT_EXISTS = new ErrorCode(1_020_002_010, "指导价法明细不存在");
|
||||
ErrorCode PROJECT_PLANNING_GUIDE_DETAIL_SCENE_INVALID = new ErrorCode(1_020_002_011, "当前合约规划不是专业所指导价法,不能维护指导价法明细");
|
||||
ErrorCode PROJECT_PLANNING_DESIGN_STAGE_INVALID = new ErrorCode(1_020_002_012, "设计阶段不正确");
|
||||
|
||||
// ========== 季度分配管理 1-020-003-000 ==========
|
||||
ErrorCode PROJECT_PLANNING_QUARTER_NOT_EXISTS = new ErrorCode(1_020_003_000, "季度分配明细不存在");
|
||||
|
||||
@@ -15,55 +15,55 @@ import java.util.Map;
|
||||
*/
|
||||
public final class OutputSplitBizConstants {
|
||||
|
||||
public static final String SPECIALTY_PROJECT_LEAD = "project_lead";
|
||||
public static final String SPECIALTY_ARCH = "arch";
|
||||
public static final String SPECIALTY_DECOR = "decor";
|
||||
public static final String SPECIALTY_STRUCT = "struct";
|
||||
public static final String SPECIALTY_WATER = "water";
|
||||
public static final String SPECIALTY_ELEC = "elec";
|
||||
public static final String SPECIALTY_HVAC = "hvac";
|
||||
public static final String SPECIALTY_DIGITAL = "digital";
|
||||
public static final String SPECIALTY_PROJECT_LEAD = OutputSplitSpecialtyEnum.PROJECT_LEAD.getCode();
|
||||
public static final String SPECIALTY_ARCH = OutputSplitSpecialtyEnum.ARCH.getCode();
|
||||
public static final String SPECIALTY_DECOR = OutputSplitSpecialtyEnum.DECOR.getCode();
|
||||
public static final String SPECIALTY_STRUCT = OutputSplitSpecialtyEnum.STRUCT.getCode();
|
||||
public static final String SPECIALTY_WATER = OutputSplitSpecialtyEnum.WATER.getCode();
|
||||
public static final String SPECIALTY_ELEC = OutputSplitSpecialtyEnum.ELEC.getCode();
|
||||
public static final String SPECIALTY_HVAC = OutputSplitSpecialtyEnum.HVAC.getCode();
|
||||
public static final String SPECIALTY_DIGITAL = OutputSplitSpecialtyEnum.DIGITAL.getCode();
|
||||
|
||||
public static final String ROLE_DIRECTOR = "director";
|
||||
public static final String ROLE_CHECK = "check";
|
||||
public static final String ROLE_REVIEW = "review";
|
||||
public static final String ROLE_APPROVE = "approve";
|
||||
public static final String ROLE_DESIGN = "design";
|
||||
public static final String ROLE_PROJECT_MANAGER = "project_manager";
|
||||
public static final String ROLE_ENGINEERING_PRINCIPAL = "engineering_principal";
|
||||
public static final String ROLE_DIRECTOR = OutputSplitRoleEnum.DIRECTOR.getCode();
|
||||
public static final String ROLE_CHECK = OutputSplitRoleEnum.CHECK.getCode();
|
||||
public static final String ROLE_REVIEW = OutputSplitRoleEnum.REVIEW.getCode();
|
||||
public static final String ROLE_APPROVE = OutputSplitRoleEnum.APPROVE.getCode();
|
||||
public static final String ROLE_DESIGN = OutputSplitRoleEnum.DESIGN.getCode();
|
||||
public static final String ROLE_PROJECT_MANAGER = OutputSplitRoleEnum.PROJECT_MANAGER.getCode();
|
||||
public static final String ROLE_ENGINEERING_PRINCIPAL = OutputSplitRoleEnum.ENGINEERING_PRINCIPAL.getCode();
|
||||
|
||||
public static final List<SpecialtyItem> ASSIGNMENT_SPECIALTY_ITEMS = Arrays.asList(
|
||||
new SpecialtyItem(SPECIALTY_PROJECT_LEAD, "项目经理/工程负责人", 0),
|
||||
new SpecialtyItem(SPECIALTY_ARCH, "建筑", 1),
|
||||
new SpecialtyItem(SPECIALTY_DECOR, "装饰", 2),
|
||||
new SpecialtyItem(SPECIALTY_STRUCT, "结构", 3),
|
||||
new SpecialtyItem(SPECIALTY_WATER, "给排水", 4),
|
||||
new SpecialtyItem(SPECIALTY_ELEC, "电气", 5),
|
||||
new SpecialtyItem(SPECIALTY_HVAC, "暖通", 6),
|
||||
new SpecialtyItem(SPECIALTY_DIGITAL, "数字化设计", 7)
|
||||
new SpecialtyItem(SPECIALTY_PROJECT_LEAD, OutputSplitSpecialtyEnum.PROJECT_LEAD.getLabel(), 0),
|
||||
new SpecialtyItem(SPECIALTY_ARCH, OutputSplitSpecialtyEnum.ARCH.getLabel(), 1),
|
||||
new SpecialtyItem(SPECIALTY_DECOR, OutputSplitSpecialtyEnum.DECOR.getLabel(), 2),
|
||||
new SpecialtyItem(SPECIALTY_STRUCT, OutputSplitSpecialtyEnum.STRUCT.getLabel(), 3),
|
||||
new SpecialtyItem(SPECIALTY_WATER, OutputSplitSpecialtyEnum.WATER.getLabel(), 4),
|
||||
new SpecialtyItem(SPECIALTY_ELEC, OutputSplitSpecialtyEnum.ELEC.getLabel(), 5),
|
||||
new SpecialtyItem(SPECIALTY_HVAC, OutputSplitSpecialtyEnum.HVAC.getLabel(), 6),
|
||||
new SpecialtyItem(SPECIALTY_DIGITAL, OutputSplitSpecialtyEnum.DIGITAL.getLabel(), 7)
|
||||
);
|
||||
|
||||
public static final List<SpecialtyItem> SPECIALTY_ITEMS = Arrays.asList(
|
||||
new SpecialtyItem(SPECIALTY_ARCH, "建筑", 1),
|
||||
new SpecialtyItem(SPECIALTY_DECOR, "装饰", 2),
|
||||
new SpecialtyItem(SPECIALTY_STRUCT, "结构", 3),
|
||||
new SpecialtyItem(SPECIALTY_WATER, "给排水", 4),
|
||||
new SpecialtyItem(SPECIALTY_ELEC, "电气", 5),
|
||||
new SpecialtyItem(SPECIALTY_HVAC, "暖通", 6),
|
||||
new SpecialtyItem(SPECIALTY_DIGITAL, "数字化设计", 7)
|
||||
new SpecialtyItem(SPECIALTY_ARCH, OutputSplitSpecialtyEnum.ARCH.getLabel(), 1),
|
||||
new SpecialtyItem(SPECIALTY_DECOR, OutputSplitSpecialtyEnum.DECOR.getLabel(), 2),
|
||||
new SpecialtyItem(SPECIALTY_STRUCT, OutputSplitSpecialtyEnum.STRUCT.getLabel(), 3),
|
||||
new SpecialtyItem(SPECIALTY_WATER, OutputSplitSpecialtyEnum.WATER.getLabel(), 4),
|
||||
new SpecialtyItem(SPECIALTY_ELEC, OutputSplitSpecialtyEnum.ELEC.getLabel(), 5),
|
||||
new SpecialtyItem(SPECIALTY_HVAC, OutputSplitSpecialtyEnum.HVAC.getLabel(), 6),
|
||||
new SpecialtyItem(SPECIALTY_DIGITAL, OutputSplitSpecialtyEnum.DIGITAL.getLabel(), 7)
|
||||
);
|
||||
|
||||
public static final List<RoleItem> SPECIALTY_ROLE_ITEMS = Arrays.asList(
|
||||
new RoleItem(ROLE_DIRECTOR, "专业负责人", 1),
|
||||
new RoleItem(ROLE_CHECK, "校对", 2),
|
||||
new RoleItem(ROLE_REVIEW, "审核", 3),
|
||||
new RoleItem(ROLE_APPROVE, "审定", 4),
|
||||
new RoleItem(ROLE_DESIGN, "设计", 5)
|
||||
new RoleItem(ROLE_DIRECTOR, OutputSplitRoleEnum.DIRECTOR.getLabel(), 1),
|
||||
new RoleItem(ROLE_CHECK, OutputSplitRoleEnum.CHECK.getLabel(), 2),
|
||||
new RoleItem(ROLE_REVIEW, OutputSplitRoleEnum.REVIEW.getLabel(), 3),
|
||||
new RoleItem(ROLE_APPROVE, OutputSplitRoleEnum.APPROVE.getLabel(), 4),
|
||||
new RoleItem(ROLE_DESIGN, OutputSplitRoleEnum.DESIGN.getLabel(), 5)
|
||||
);
|
||||
|
||||
public static final List<RoleItem> PROJECT_LEAD_ROLE_ITEMS = Arrays.asList(
|
||||
new RoleItem(ROLE_PROJECT_MANAGER, "项目经理", 1),
|
||||
new RoleItem(ROLE_ENGINEERING_PRINCIPAL, "工程负责人", 2)
|
||||
new RoleItem(ROLE_PROJECT_MANAGER, OutputSplitRoleEnum.PROJECT_MANAGER.getLabel(), 1),
|
||||
new RoleItem(ROLE_ENGINEERING_PRINCIPAL, OutputSplitRoleEnum.ENGINEERING_PRINCIPAL.getLabel(), 2)
|
||||
);
|
||||
|
||||
private OutputSplitBizConstants() {
|
||||
|
||||
@@ -1,74 +1,62 @@
|
||||
package cn.iocoder.lyzsys.module.tjt.enums;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 合约规划业务类型常量
|
||||
* 合约规划业务类型常量。
|
||||
*
|
||||
* <p>数据库存储稳定 code,页面和 Excel 按 label 展示。</p>
|
||||
*
|
||||
* @author Codex
|
||||
*/
|
||||
public final class ProjectPlanningBizTypeConstants {
|
||||
|
||||
public static final String OWNERSHIP_TYPE_MAJOR = "专业所";
|
||||
public static final String OWNERSHIP_TYPE_COMPREHENSIVE = "综合所";
|
||||
public static final String OWNERSHIP_TYPE_SPECIAL_SUBCONTRACT = "专项分包";
|
||||
public static final String OWNERSHIP_TYPE_SOURCE_COOP_SUBCONTRACT = "源头合作分包";
|
||||
public static final String DESIGN_PART_REAL_ESTATE = "地上部分";
|
||||
public static final String DESIGN_PART_UNDERGROUND = "地下部分";
|
||||
public static final String DESIGN_PART_OTHER = "其他";
|
||||
public static final String OWNERSHIP_TYPE_MAJOR = ProjectPlanningOwnershipTypeEnum.MAJOR.getCode();
|
||||
public static final String OWNERSHIP_TYPE_COMPREHENSIVE = ProjectPlanningOwnershipTypeEnum.COMPREHENSIVE.getCode();
|
||||
public static final String OWNERSHIP_TYPE_SPECIAL_SUBCONTRACT =
|
||||
ProjectPlanningOwnershipTypeEnum.SPECIAL_SUBCONTRACT_MAJOR.getCode();
|
||||
public static final String OWNERSHIP_TYPE_SOURCE_COOP_SUBCONTRACT =
|
||||
ProjectPlanningOwnershipTypeEnum.SPECIAL_SUBCONTRACT_SOURCE_COOP.getCode();
|
||||
public static final String OWNERSHIP_TYPE_COMPREHENSIVE_SUBCONTRACT =
|
||||
ProjectPlanningOwnershipTypeEnum.SPECIAL_SUBCONTRACT_COMPREHENSIVE.getCode();
|
||||
|
||||
public static final String CALCULATION_METHOD_GUIDANCE_PRICE = "指导价法";
|
||||
public static final String CALCULATION_METHOD_CONTRACT_PRICE = "合同价法";
|
||||
public static final String CALCULATION_METHOD_VIRTUAL_OUTPUT = "虚拟产值法";
|
||||
public static final String DESIGN_PART_REAL_ESTATE = ProjectPlanningDesignPartEnum.ABOVE_GROUND.getCode();
|
||||
public static final String DESIGN_PART_UNDERGROUND = ProjectPlanningDesignPartEnum.UNDERGROUND.getCode();
|
||||
public static final String DESIGN_PART_OTHER = ProjectPlanningDesignPartEnum.OTHER.getCode();
|
||||
|
||||
public static final String VIRTUAL_CALCULATION_METHOD_GUIDANCE_PRICE = "指导单价法";
|
||||
public static final String VIRTUAL_CALCULATION_METHOD_GUIDANCE_TOTAL_PRICE = "指导总价法";
|
||||
public static final String VIRTUAL_CALCULATION_METHOD_WORKING_DAY = "工日法";
|
||||
public static final String CALCULATION_METHOD_GUIDANCE_PRICE =
|
||||
ProjectPlanningCalculationMethodEnum.GUIDANCE_PRICE.getCode();
|
||||
public static final String CALCULATION_METHOD_CONTRACT_PRICE =
|
||||
ProjectPlanningCalculationMethodEnum.CONTRACT_PRICE.getCode();
|
||||
public static final String CALCULATION_METHOD_VIRTUAL_OUTPUT =
|
||||
ProjectPlanningCalculationMethodEnum.VIRTUAL_OUTPUT.getCode();
|
||||
|
||||
private static final Set<String> OWNERSHIP_TYPES = new HashSet<>(Arrays.asList(
|
||||
OWNERSHIP_TYPE_MAJOR,
|
||||
OWNERSHIP_TYPE_COMPREHENSIVE,
|
||||
OWNERSHIP_TYPE_SPECIAL_SUBCONTRACT,
|
||||
OWNERSHIP_TYPE_SOURCE_COOP_SUBCONTRACT
|
||||
));
|
||||
|
||||
private static final Set<String> CALCULATION_METHODS = new HashSet<>(Arrays.asList(
|
||||
CALCULATION_METHOD_GUIDANCE_PRICE,
|
||||
CALCULATION_METHOD_CONTRACT_PRICE,
|
||||
CALCULATION_METHOD_VIRTUAL_OUTPUT
|
||||
));
|
||||
|
||||
private static final Set<String> DESIGN_PARTS = new HashSet<>(Arrays.asList(
|
||||
DESIGN_PART_REAL_ESTATE,
|
||||
DESIGN_PART_UNDERGROUND,
|
||||
DESIGN_PART_OTHER
|
||||
));
|
||||
|
||||
private static final Set<String> VIRTUAL_CALCULATION_METHODS = new HashSet<>(Arrays.asList(
|
||||
VIRTUAL_CALCULATION_METHOD_GUIDANCE_PRICE,
|
||||
VIRTUAL_CALCULATION_METHOD_GUIDANCE_TOTAL_PRICE,
|
||||
VIRTUAL_CALCULATION_METHOD_WORKING_DAY
|
||||
));
|
||||
public static final String VIRTUAL_CALCULATION_METHOD_GUIDANCE_PRICE =
|
||||
ProjectPlanningVirtualCalculationMethodEnum.GUIDANCE_PRICE.getCode();
|
||||
public static final String VIRTUAL_CALCULATION_METHOD_GUIDANCE_TOTAL_PRICE =
|
||||
ProjectPlanningVirtualCalculationMethodEnum.GUIDANCE_TOTAL_PRICE.getCode();
|
||||
public static final String VIRTUAL_CALCULATION_METHOD_WORKING_DAY =
|
||||
ProjectPlanningVirtualCalculationMethodEnum.WORKING_DAY.getCode();
|
||||
|
||||
private ProjectPlanningBizTypeConstants() {
|
||||
}
|
||||
|
||||
public static boolean isValidOwnershipType(String value) {
|
||||
return OWNERSHIP_TYPES.contains(value);
|
||||
return ProjectPlanningOwnershipTypeEnum.contains(value);
|
||||
}
|
||||
|
||||
public static boolean isValidCalculationMethod(String value) {
|
||||
return CALCULATION_METHODS.contains(value);
|
||||
return ProjectPlanningCalculationMethodEnum.contains(value);
|
||||
}
|
||||
|
||||
public static boolean isValidDesignStage(String value) {
|
||||
return ProjectPlanningDesignStageEnum.contains(value);
|
||||
}
|
||||
|
||||
public static boolean isValidDesignPart(String value) {
|
||||
return DESIGN_PARTS.contains(value);
|
||||
return ProjectPlanningDesignPartEnum.contains(value);
|
||||
}
|
||||
|
||||
public static boolean isValidVirtualCalculationMethod(String value) {
|
||||
return VIRTUAL_CALCULATION_METHODS.contains(value);
|
||||
return ProjectPlanningVirtualCalculationMethodEnum.contains(value);
|
||||
}
|
||||
|
||||
public static boolean isMajor(String value) {
|
||||
@@ -80,7 +68,7 @@ public final class ProjectPlanningBizTypeConstants {
|
||||
}
|
||||
|
||||
public static boolean isSubcontract(String value) {
|
||||
return isSpecialSubcontract(value) || isSourceCoopSubcontract(value);
|
||||
return isSpecialSubcontract(value) || isSourceCoopSubcontract(value) || isComprehensiveSubcontract(value);
|
||||
}
|
||||
|
||||
public static boolean isSpecialSubcontract(String value) {
|
||||
@@ -91,6 +79,10 @@ public final class ProjectPlanningBizTypeConstants {
|
||||
return OWNERSHIP_TYPE_SOURCE_COOP_SUBCONTRACT.equals(value);
|
||||
}
|
||||
|
||||
public static boolean isComprehensiveSubcontract(String value) {
|
||||
return OWNERSHIP_TYPE_COMPREHENSIVE_SUBCONTRACT.equals(value);
|
||||
}
|
||||
|
||||
public static boolean isGuidancePrice(String value) {
|
||||
return CALCULATION_METHOD_GUIDANCE_PRICE.equals(value);
|
||||
}
|
||||
@@ -119,4 +111,24 @@ public final class ProjectPlanningBizTypeConstants {
|
||||
return VIRTUAL_CALCULATION_METHOD_GUIDANCE_TOTAL_PRICE.equals(value);
|
||||
}
|
||||
|
||||
public static String getOwnershipTypeLabel(String value) {
|
||||
return ProjectPlanningOwnershipTypeEnum.labelOf(value);
|
||||
}
|
||||
|
||||
public static String getCalculationMethodLabel(String value) {
|
||||
return ProjectPlanningCalculationMethodEnum.labelOf(value);
|
||||
}
|
||||
|
||||
public static String getDesignStageLabel(String value) {
|
||||
return ProjectPlanningDesignStageEnum.labelOf(value);
|
||||
}
|
||||
|
||||
public static String getDesignPartLabel(String value) {
|
||||
return ProjectPlanningDesignPartEnum.labelOf(value);
|
||||
}
|
||||
|
||||
public static String getVirtualCalculationMethodLabel(String value) {
|
||||
return ProjectPlanningVirtualCalculationMethodEnum.labelOf(value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -276,24 +276,28 @@ public class ProjectOutputSplitServiceImpl implements ProjectOutputSplitService
|
||||
}
|
||||
|
||||
private BigDecimal getSpecialtyRatio(ProjectOutputSplitDO outputSplit, String specialtyCode) {
|
||||
switch (specialtyCode) {
|
||||
case OutputSplitBizConstants.SPECIALTY_ARCH:
|
||||
return ratio(outputSplit.getArchRatio());
|
||||
case OutputSplitBizConstants.SPECIALTY_DECOR:
|
||||
return ratio(outputSplit.getDecorRatio());
|
||||
case OutputSplitBizConstants.SPECIALTY_STRUCT:
|
||||
return ratio(outputSplit.getStructRatio());
|
||||
case OutputSplitBizConstants.SPECIALTY_WATER:
|
||||
return ratio(outputSplit.getWaterRatio());
|
||||
case OutputSplitBizConstants.SPECIALTY_ELEC:
|
||||
return ratio(outputSplit.getElecRatio());
|
||||
case OutputSplitBizConstants.SPECIALTY_HVAC:
|
||||
return ratio(outputSplit.getHvacRatio());
|
||||
case OutputSplitBizConstants.SPECIALTY_DIGITAL:
|
||||
return ratio(outputSplit.getDigitalRatio());
|
||||
default:
|
||||
return ZERO_RATIO;
|
||||
if (OutputSplitBizConstants.SPECIALTY_ARCH.equals(specialtyCode)) {
|
||||
return ratio(outputSplit.getArchRatio());
|
||||
}
|
||||
if (OutputSplitBizConstants.SPECIALTY_DECOR.equals(specialtyCode)) {
|
||||
return ratio(outputSplit.getDecorRatio());
|
||||
}
|
||||
if (OutputSplitBizConstants.SPECIALTY_STRUCT.equals(specialtyCode)) {
|
||||
return ratio(outputSplit.getStructRatio());
|
||||
}
|
||||
if (OutputSplitBizConstants.SPECIALTY_WATER.equals(specialtyCode)) {
|
||||
return ratio(outputSplit.getWaterRatio());
|
||||
}
|
||||
if (OutputSplitBizConstants.SPECIALTY_ELEC.equals(specialtyCode)) {
|
||||
return ratio(outputSplit.getElecRatio());
|
||||
}
|
||||
if (OutputSplitBizConstants.SPECIALTY_HVAC.equals(specialtyCode)) {
|
||||
return ratio(outputSplit.getHvacRatio());
|
||||
}
|
||||
if (OutputSplitBizConstants.SPECIALTY_DIGITAL.equals(specialtyCode)) {
|
||||
return ratio(outputSplit.getDigitalRatio());
|
||||
}
|
||||
return ZERO_RATIO;
|
||||
}
|
||||
|
||||
private BigDecimal multiplyAmount(BigDecimal left, BigDecimal right) {
|
||||
|
||||
@@ -31,6 +31,7 @@ import java.util.Objects;
|
||||
|
||||
import static cn.iocoder.lyzsys.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.lyzsys.module.tjt.enums.ErrorCodeConstants.PROJECT_PLANNING_CALCULATION_METHOD_INVALID;
|
||||
import static cn.iocoder.lyzsys.module.tjt.enums.ErrorCodeConstants.PROJECT_PLANNING_DESIGN_STAGE_INVALID;
|
||||
import static cn.iocoder.lyzsys.module.tjt.enums.ErrorCodeConstants.PROJECT_PLANNING_NOT_EXISTS;
|
||||
import static cn.iocoder.lyzsys.module.tjt.enums.ErrorCodeConstants.PROJECT_PLANNING_OWNERSHIP_TYPE_IMMUTABLE;
|
||||
import static cn.iocoder.lyzsys.module.tjt.enums.ErrorCodeConstants.PROJECT_PLANNING_OWNERSHIP_TYPE_INVALID;
|
||||
@@ -181,6 +182,10 @@ public class ProjectPlanningServiceImpl implements ProjectPlanningService {
|
||||
&& !ProjectPlanningBizTypeConstants.isValidVirtualCalculationMethod(reqVO.getVirtualCalculationMethod())) {
|
||||
throw exception(PROJECT_PLANNING_VIRTUAL_CALCULATION_METHOD_INVALID);
|
||||
}
|
||||
if (StrUtil.isNotBlank(reqVO.getDesignStage())
|
||||
&& !ProjectPlanningBizTypeConstants.isValidDesignStage(reqVO.getDesignStage())) {
|
||||
throw exception(PROJECT_PLANNING_DESIGN_STAGE_INVALID);
|
||||
}
|
||||
if (ProjectPlanningBizTypeConstants.isWorkingDay(reqVO.getVirtualCalculationMethod())) {
|
||||
if (reqVO.getWorkingDayCount() == null) {
|
||||
throw exception(PROJECT_PLANNING_WORKING_DAY_COUNT_REQUIRED);
|
||||
|
||||
@@ -83,6 +83,7 @@ public class ProjectProfitServiceImpl implements ProjectProfitService {
|
||||
BigDecimal comprehensivePlanningAmount = ZERO_AMOUNT;
|
||||
BigDecimal specialSubcontractPlanningAmount = ZERO_AMOUNT;
|
||||
BigDecimal sourceCoopSubcontractPlanningAmount = ZERO_AMOUNT;
|
||||
BigDecimal comprehensiveSubcontractPlanningAmount = ZERO_AMOUNT;
|
||||
BigDecimal majorOutputValue = ZERO_AMOUNT;
|
||||
List<ProjectPlanningDO> majorPlanningList = safePlanningList.stream()
|
||||
.filter(planning -> ProjectPlanningBizTypeConstants.isMajor(planning.getOwnershipType()))
|
||||
@@ -101,6 +102,10 @@ public class ProjectProfitServiceImpl implements ProjectProfitService {
|
||||
sourceCoopSubcontractPlanningAmount = sourceCoopSubcontractPlanningAmount.add(amount(planning.getPlanningAmount()));
|
||||
continue;
|
||||
}
|
||||
if (ProjectPlanningBizTypeConstants.isComprehensiveSubcontract(planning.getOwnershipType())) {
|
||||
comprehensiveSubcontractPlanningAmount = comprehensiveSubcontractPlanningAmount.add(amount(planning.getPlanningAmount()));
|
||||
continue;
|
||||
}
|
||||
if (ProjectPlanningBizTypeConstants.isMajor(planning.getOwnershipType())) {
|
||||
majorOutputValue = majorOutputValue.add(amount(planning.getAssessmentOutputValue()));
|
||||
}
|
||||
@@ -117,7 +122,9 @@ public class ProjectProfitServiceImpl implements ProjectProfitService {
|
||||
? ZERO_AMOUNT
|
||||
: contractAmount.multiply(innovationOutputRate).setScale(2, RoundingMode.HALF_UP);
|
||||
BigDecimal otherCost = amount(project.getOtherCost());
|
||||
BigDecimal subcontractPlanningAmount = specialSubcontractPlanningAmount.add(sourceCoopSubcontractPlanningAmount);
|
||||
BigDecimal subcontractPlanningAmount = specialSubcontractPlanningAmount
|
||||
.add(sourceCoopSubcontractPlanningAmount)
|
||||
.add(comprehensiveSubcontractPlanningAmount);
|
||||
BigDecimal profitLossValue = effectiveSettlementAmount
|
||||
.subtract(comprehensivePlanningAmount)
|
||||
.subtract(subcontractPlanningAmount)
|
||||
@@ -141,6 +148,7 @@ public class ProjectProfitServiceImpl implements ProjectProfitService {
|
||||
respVO.setSubcontractPlanningAmount(subcontractPlanningAmount.setScale(2, RoundingMode.HALF_UP));
|
||||
respVO.setSpecialSubcontractPlanningAmount(specialSubcontractPlanningAmount.setScale(2, RoundingMode.HALF_UP));
|
||||
respVO.setSourceCoopSubcontractPlanningAmount(sourceCoopSubcontractPlanningAmount.setScale(2, RoundingMode.HALF_UP));
|
||||
respVO.setComprehensiveSubcontractPlanningAmount(comprehensiveSubcontractPlanningAmount.setScale(2, RoundingMode.HALF_UP));
|
||||
respVO.setMajorOutputValue(majorOutputValue.setScale(2, RoundingMode.HALF_UP));
|
||||
respVO.setMajorExpectedPerformance(majorExpectedPerformance);
|
||||
respVO.setInnovationOutputRate(innovationOutputRate);
|
||||
|
||||
@@ -18,6 +18,8 @@ import cn.iocoder.lyzsys.module.tjt.dal.mysql.planning.ProjectPlanningMapper;
|
||||
import cn.iocoder.lyzsys.module.tjt.dal.mysql.planningquarter.ProjectPlanningQuarterMapper;
|
||||
import cn.iocoder.lyzsys.module.tjt.dal.mysql.project.ProjectMapper;
|
||||
import cn.iocoder.lyzsys.module.tjt.dal.mysql.projectroleperson.ProjectRolePersonMapper;
|
||||
import cn.iocoder.lyzsys.module.tjt.enums.OutputSplitBizConstants;
|
||||
import cn.iocoder.lyzsys.module.tjt.enums.ProjectStatusEnum;
|
||||
import cn.iocoder.lyzsys.module.tjt.service.employee.EmployeeService;
|
||||
import cn.iocoder.lyzsys.module.tjt.service.outputsplit.ProjectOutputSplitService;
|
||||
import cn.iocoder.lyzsys.module.tjt.service.planningguidedetail.ProjectPlanningGuideDetailService;
|
||||
@@ -37,6 +39,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.lyzsys.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.lyzsys.module.tjt.enums.ErrorCodeConstants.PROJECT_NOT_EXISTS;
|
||||
import static cn.iocoder.lyzsys.module.tjt.enums.ErrorCodeConstants.PROJECT_STATUS_INVALID;
|
||||
|
||||
/**
|
||||
* 项目 Service 实现类
|
||||
@@ -47,14 +50,12 @@ import static cn.iocoder.lyzsys.module.tjt.enums.ErrorCodeConstants.PROJECT_NOT_
|
||||
@Validated
|
||||
public class ProjectServiceImpl implements ProjectService {
|
||||
|
||||
private static final String ROLE_CODE_PROJECT_MANAGER = "project_manager";
|
||||
private static final String ROLE_CODE_ENGINEERING_PRINCIPAL = "engineering_principal";
|
||||
private static final String ROLE_NAME_PROJECT_MANAGER = "项目经理";
|
||||
private static final String ROLE_NAME_ENGINEERING_PRINCIPAL = "工程负责人";
|
||||
private static final String STATUS_IN_PROGRESS = "进行中";
|
||||
private static final String STATUS_COMPLETED = "完成";
|
||||
private static final String STATUS_PAUSED = "暂停";
|
||||
private static final String STATUS_TERMINATED = "中止";
|
||||
private static final String ROLE_CODE_PROJECT_MANAGER = OutputSplitBizConstants.ROLE_PROJECT_MANAGER;
|
||||
private static final String ROLE_CODE_ENGINEERING_PRINCIPAL = OutputSplitBizConstants.ROLE_ENGINEERING_PRINCIPAL;
|
||||
private static final String STATUS_IN_PROGRESS = ProjectStatusEnum.IN_PROGRESS.getCode();
|
||||
private static final String STATUS_COMPLETED = ProjectStatusEnum.COMPLETED.getCode();
|
||||
private static final String STATUS_PAUSED = ProjectStatusEnum.PAUSED.getCode();
|
||||
private static final String STATUS_TERMINATED = ProjectStatusEnum.TERMINATED.getCode();
|
||||
|
||||
@Resource
|
||||
private ProjectMapper projectMapper;
|
||||
@@ -141,6 +142,9 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
if (project.getProjectStatus() == null || project.getProjectStatus().trim().isEmpty()) {
|
||||
project.setProjectStatus(dbProject == null ? STATUS_IN_PROGRESS : dbProject.getProjectStatus());
|
||||
}
|
||||
if (!ProjectStatusEnum.contains(project.getProjectStatus())) {
|
||||
throw exception(PROJECT_STATUS_INVALID);
|
||||
}
|
||||
if (project.getArchiveFlag() == null) {
|
||||
project.setArchiveFlag(dbProject != null && Boolean.TRUE.equals(dbProject.getArchiveFlag()));
|
||||
}
|
||||
@@ -203,10 +207,10 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
|
||||
private String getRoleName(String roleCode) {
|
||||
if (Objects.equals(roleCode, ROLE_CODE_PROJECT_MANAGER)) {
|
||||
return ROLE_NAME_PROJECT_MANAGER;
|
||||
return OutputSplitBizConstants.getRoleName(roleCode);
|
||||
}
|
||||
if (Objects.equals(roleCode, ROLE_CODE_ENGINEERING_PRINCIPAL)) {
|
||||
return ROLE_NAME_ENGINEERING_PRINCIPAL;
|
||||
return OutputSplitBizConstants.getRoleName(roleCode);
|
||||
}
|
||||
return roleCode;
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ import cn.iocoder.lyzsys.module.tjt.dal.mysql.specialtyrolesplitperson.Specialty
|
||||
import cn.iocoder.lyzsys.module.tjt.dal.mysql.yearkvalue.YearKValueMapper;
|
||||
import cn.iocoder.lyzsys.module.tjt.enums.OutputSplitBizConstants;
|
||||
import cn.iocoder.lyzsys.module.tjt.enums.ProjectPlanningBizTypeConstants;
|
||||
import cn.iocoder.lyzsys.module.tjt.enums.ProjectStatusEnum;
|
||||
import cn.iocoder.lyzsys.module.tjt.service.outputsplit.ProjectOutputSplitService;
|
||||
import cn.iocoder.lyzsys.module.tjt.service.planningguidedetail.ProjectPlanningGuideDetailService;
|
||||
import cn.iocoder.lyzsys.module.tjt.service.report.builder.*;
|
||||
@@ -937,7 +938,8 @@ public class ProjectOutputReportServiceImpl implements ProjectOutputReportServic
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_MAJOR,
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_COMPREHENSIVE,
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_SPECIAL_SUBCONTRACT,
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_SOURCE_COOP_SUBCONTRACT
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_SOURCE_COOP_SUBCONTRACT,
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_COMPREHENSIVE_SUBCONTRACT
|
||||
)));
|
||||
}
|
||||
|
||||
@@ -963,7 +965,8 @@ public class ProjectOutputReportServiceImpl implements ProjectOutputReportServic
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_MAJOR,
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_COMPREHENSIVE,
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_SPECIAL_SUBCONTRACT,
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_SOURCE_COOP_SUBCONTRACT
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_SOURCE_COOP_SUBCONTRACT,
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_COMPREHENSIVE_SUBCONTRACT
|
||||
)))
|
||||
.stream()
|
||||
.map(ProjectPlanningDO::getId)
|
||||
@@ -1009,7 +1012,8 @@ public class ProjectOutputReportServiceImpl implements ProjectOutputReportServic
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_MAJOR,
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_COMPREHENSIVE,
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_SPECIAL_SUBCONTRACT,
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_SOURCE_COOP_SUBCONTRACT
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_SOURCE_COOP_SUBCONTRACT,
|
||||
ProjectPlanningBizTypeConstants.OWNERSHIP_TYPE_COMPREHENSIVE_SUBCONTRACT
|
||||
)))
|
||||
.stream()
|
||||
.map(ProjectPlanningDO::getId)
|
||||
@@ -1311,11 +1315,13 @@ public class ProjectOutputReportServiceImpl implements ProjectOutputReportServic
|
||||
return;
|
||||
}
|
||||
for (ProjectPlanningGuideDetailDO detail : partPlanningList) {
|
||||
rows.add(buildBudgetDetailRow(planning, planningContent, designPart, detail));
|
||||
rows.add(buildBudgetDetailRow(planning, planningContent,
|
||||
ProjectPlanningBizTypeConstants.getDesignPartLabel(designPart), detail));
|
||||
}
|
||||
if (partPlanningList.size() > 2) {
|
||||
rows.add(buildBudgetSummaryRow(ProjectBudgetExcelBuilder.BudgetRowType.PART_SUBTOTAL,
|
||||
planning, planningContent, designPart + "总计", partPlanningList));
|
||||
planning, planningContent,
|
||||
ProjectPlanningBizTypeConstants.getDesignPartLabel(designPart) + "总计", partPlanningList));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1356,7 +1362,8 @@ public class ProjectOutputReportServiceImpl implements ProjectOutputReportServic
|
||||
}
|
||||
|
||||
private ProjectBudgetExcelBuilder.BudgetRow buildBudgetEmptyRow(String designPart) {
|
||||
return initBudgetRow(ProjectBudgetExcelBuilder.BudgetRowType.PART_EMPTY, null, "", designPart);
|
||||
return initBudgetRow(ProjectBudgetExcelBuilder.BudgetRowType.PART_EMPTY, null, "",
|
||||
ProjectPlanningBizTypeConstants.getDesignPartLabel(designPart));
|
||||
}
|
||||
|
||||
private ProjectBudgetExcelBuilder.BudgetRow buildBudgetSummaryRow(ProjectBudgetExcelBuilder.BudgetRowType rowType,
|
||||
@@ -1754,24 +1761,28 @@ public class ProjectOutputReportServiceImpl implements ProjectOutputReportServic
|
||||
if (outputSplit == null || specialtyCode == null) {
|
||||
return ZERO_RATIO;
|
||||
}
|
||||
switch (specialtyCode) {
|
||||
case OutputSplitBizConstants.SPECIALTY_ARCH:
|
||||
return ratio(outputSplit.getArchRatio());
|
||||
case OutputSplitBizConstants.SPECIALTY_DECOR:
|
||||
return ratio(outputSplit.getDecorRatio());
|
||||
case OutputSplitBizConstants.SPECIALTY_STRUCT:
|
||||
return ratio(outputSplit.getStructRatio());
|
||||
case OutputSplitBizConstants.SPECIALTY_WATER:
|
||||
return ratio(outputSplit.getWaterRatio());
|
||||
case OutputSplitBizConstants.SPECIALTY_ELEC:
|
||||
return ratio(outputSplit.getElecRatio());
|
||||
case OutputSplitBizConstants.SPECIALTY_HVAC:
|
||||
return ratio(outputSplit.getHvacRatio());
|
||||
case OutputSplitBizConstants.SPECIALTY_DIGITAL:
|
||||
return ratio(outputSplit.getDigitalRatio());
|
||||
default:
|
||||
return ZERO_RATIO;
|
||||
if (OutputSplitBizConstants.SPECIALTY_ARCH.equals(specialtyCode)) {
|
||||
return ratio(outputSplit.getArchRatio());
|
||||
}
|
||||
if (OutputSplitBizConstants.SPECIALTY_DECOR.equals(specialtyCode)) {
|
||||
return ratio(outputSplit.getDecorRatio());
|
||||
}
|
||||
if (OutputSplitBizConstants.SPECIALTY_STRUCT.equals(specialtyCode)) {
|
||||
return ratio(outputSplit.getStructRatio());
|
||||
}
|
||||
if (OutputSplitBizConstants.SPECIALTY_WATER.equals(specialtyCode)) {
|
||||
return ratio(outputSplit.getWaterRatio());
|
||||
}
|
||||
if (OutputSplitBizConstants.SPECIALTY_ELEC.equals(specialtyCode)) {
|
||||
return ratio(outputSplit.getElecRatio());
|
||||
}
|
||||
if (OutputSplitBizConstants.SPECIALTY_HVAC.equals(specialtyCode)) {
|
||||
return ratio(outputSplit.getHvacRatio());
|
||||
}
|
||||
if (OutputSplitBizConstants.SPECIALTY_DIGITAL.equals(specialtyCode)) {
|
||||
return ratio(outputSplit.getDigitalRatio());
|
||||
}
|
||||
return ZERO_RATIO;
|
||||
}
|
||||
|
||||
private String buildSpecialtySummary(ProjectOutputSplitDO outputSplit, BigDecimal baseAmount) {
|
||||
@@ -1798,10 +1809,13 @@ public class ProjectOutputReportServiceImpl implements ProjectOutputReportServic
|
||||
return "六大专业考核产值";
|
||||
}
|
||||
if (ProjectPlanningBizTypeConstants.isSpecialSubcontract(ownershipType)) {
|
||||
return "专项分包产值";
|
||||
return "专项分包-专业所产值";
|
||||
}
|
||||
if (ProjectPlanningBizTypeConstants.isSourceCoopSubcontract(ownershipType)) {
|
||||
return "源头合作分包产值";
|
||||
return "专项分包-源头合作分包产值";
|
||||
}
|
||||
if (ProjectPlanningBizTypeConstants.isComprehensiveSubcontract(ownershipType)) {
|
||||
return "专项分包-综合所产值";
|
||||
}
|
||||
if (ProjectPlanningBizTypeConstants.isComprehensive(ownershipType)) {
|
||||
return "内部协作产值";
|
||||
@@ -1814,16 +1828,19 @@ public class ProjectOutputReportServiceImpl implements ProjectOutputReportServic
|
||||
if (Objects.equals(outputType, "六大专业考核产值")) {
|
||||
return 1;
|
||||
}
|
||||
if (Objects.equals(outputType, "专项分包产值")) {
|
||||
if (Objects.equals(outputType, "专项分包-专业所产值")) {
|
||||
return 2;
|
||||
}
|
||||
if (Objects.equals(outputType, "源头合作分包产值")) {
|
||||
if (Objects.equals(outputType, "专项分包-源头合作分包产值")) {
|
||||
return 3;
|
||||
}
|
||||
if (Objects.equals(outputType, "内部协作产值")) {
|
||||
if (Objects.equals(outputType, "专项分包-综合所产值")) {
|
||||
return 4;
|
||||
}
|
||||
return 5;
|
||||
if (Objects.equals(outputType, "内部协作产值")) {
|
||||
return 5;
|
||||
}
|
||||
return 6;
|
||||
}
|
||||
|
||||
private String buildPlanningDisplayName(ProjectPlanningDO planning) {
|
||||
@@ -1831,7 +1848,8 @@ public class ProjectOutputReportServiceImpl implements ProjectOutputReportServic
|
||||
return "";
|
||||
}
|
||||
String planningContent = defaultString(planning.getPlanningContent());
|
||||
String ownershipType = defaultString(planning.getOwnershipType());
|
||||
String ownershipType = defaultString(ProjectPlanningBizTypeConstants.getOwnershipTypeLabel(
|
||||
planning.getOwnershipType()));
|
||||
if (planningContent.isEmpty()) {
|
||||
return ownershipType;
|
||||
}
|
||||
@@ -2195,7 +2213,8 @@ public class ProjectOutputReportServiceImpl implements ProjectOutputReportServic
|
||||
if (!planningContent.isEmpty()) {
|
||||
return planningContent;
|
||||
}
|
||||
return defaultString(planning == null ? null : planning.getDesignStage());
|
||||
return defaultString(ProjectPlanningBizTypeConstants.getDesignStageLabel(
|
||||
planning == null ? null : planning.getDesignStage()));
|
||||
}
|
||||
|
||||
private List<ProjectOverviewOutputExcelBuilder.EmployeeColumn> buildProjectOverviewEmployeeColumns(
|
||||
@@ -2321,7 +2340,7 @@ public class ProjectOutputReportServiceImpl implements ProjectOutputReportServic
|
||||
}
|
||||
|
||||
private String buildProgressText(ProjectDO project, ProjectPlanningDO planning) {
|
||||
String projectStatus = project == null ? "" : defaultString(project.getProjectStatus());
|
||||
String projectStatus = project == null ? "" : defaultString(ProjectStatusEnum.labelOf(project.getProjectStatus()));
|
||||
String planningRemark = planning == null ? "" : defaultString(planning.getProgressRemark());
|
||||
if (projectStatus.isEmpty()) {
|
||||
return planningRemark;
|
||||
|
||||
@@ -28,8 +28,9 @@ public class ProjectLeadQuarterOutputExcelBuilder extends AbstractProjectOutputE
|
||||
private static final String DEFAULT_PROJECT_SIGNER = "项目经理/工程负责人(签名):";
|
||||
private static final List<String> OUTPUT_TYPE_ORDER = Arrays.asList(
|
||||
"六大专业考核产值",
|
||||
"专项分包产值",
|
||||
"源头合作分包产值",
|
||||
"专项分包-专业所产值",
|
||||
"专项分包-源头合作分包产值",
|
||||
"专项分包-综合所产值",
|
||||
"内部协作产值",
|
||||
"其他产值"
|
||||
);
|
||||
|
||||
@@ -36,16 +36,18 @@ public class ProjectQuarterOutputExcelBuilder extends AbstractProjectOutputExcel
|
||||
|
||||
private static final List<String> OUTPUT_TYPE_ORDER = Arrays.asList(
|
||||
"六大专业考核产值",
|
||||
"专项分包产值",
|
||||
"源头合作分包产值",
|
||||
"专项分包-专业所产值",
|
||||
"专项分包-源头合作分包产值",
|
||||
"专项分包-综合所产值",
|
||||
"内部协作产值",
|
||||
"其他产值"
|
||||
);
|
||||
|
||||
private static final List<String> FIXED_OUTPUT_TYPES = Arrays.asList(
|
||||
"六大专业考核产值",
|
||||
"专项分包产值",
|
||||
"源头合作分包产值",
|
||||
"专项分包-专业所产值",
|
||||
"专项分包-源头合作分包产值",
|
||||
"专项分包-综合所产值",
|
||||
"内部协作产值"
|
||||
);
|
||||
|
||||
|
||||
@@ -534,15 +534,18 @@ public class SpecialtyPersonOutputExcelBuilder extends AbstractProjectOutputExce
|
||||
if (Objects.equals(current, "六大专业考核产值")) {
|
||||
return 1;
|
||||
}
|
||||
if (Objects.equals(current, "专项分包产值")) {
|
||||
if (Objects.equals(current, "专项分包-专业所产值")) {
|
||||
return 2;
|
||||
}
|
||||
if (Objects.equals(current, "源头合作分包产值")) {
|
||||
if (Objects.equals(current, "专项分包-源头合作分包产值")) {
|
||||
return 3;
|
||||
}
|
||||
if (Objects.equals(current, "内部协作产值")) {
|
||||
if (Objects.equals(current, "专项分包-综合所产值")) {
|
||||
return 4;
|
||||
}
|
||||
if (Objects.equals(current, "内部协作产值")) {
|
||||
return 5;
|
||||
}
|
||||
return 9;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user