Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,19 @@ public class Material {

private Long standardCost; // 표준단가

@Column(name = "standard_total_cost")
private Long standardTotalCost; // 표준총비용 (standardCost * standardQuantity)

@Version
private Long version; // JPA가 자동 관리 (낙관적 락 + 자동 증가)

@PostLoad
@PrePersist
@PreUpdate
private void updateStandardTotalCost() {
this.standardTotalCost = calculateStandardTotalCost();
}
Comment thread
taemin3 marked this conversation as resolved.

/** 이름/단위/기준단위/리드타임/기준수량 수정 */
public void updateBasicInfo(String name, String unit, Integer baseQuantity, Integer standardQuantity, Integer leadTime, Long standardCost) {
this.name = name;
Expand All @@ -51,11 +61,32 @@ public void updateBasicInfo(String name, String unit, Integer baseQuantity, Inte
this.standardQuantity = standardQuantity != null ? standardQuantity : 1;
this.leadTime = leadTime;
this.standardCost = standardCost;
updateStandardTotalCost();
}

/** 카테고리 변경 + 코드 재발급 */
public void changeCategory(MaterialCategory newCategory, String newCode) {
this.materialCategory = newCategory;
this.materialCode = newCode;
}

/** 표준총비용 계산 */
private Long calculateStandardTotalCost() {
if (this.standardCost == null || this.standardQuantity == null) {
return null;
}
return this.standardCost * this.standardQuantity;
}

/** 표준비용 업데이트 시 총비용도 함께 업데이트 */
public void updateStandardCost(Long standardCost) {
this.standardCost = standardCost;
updateStandardTotalCost();
}

/** 표준수량 업데이트 시 총비용도 함께 업데이트 */
public void updateStandardQuantity(Integer standardQuantity) {
this.standardQuantity = standardQuantity != null ? standardQuantity : 1;
updateStandardTotalCost();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,6 @@ public static class Payload {
private boolean deleted;
private Long materialCategoryId;
private Long standardCost;
private Long standardTotalCost; // 표준총비용 추가
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public void publishAllMaterialEvents() {
.standardQuantity(material.getStandardQuantity() != null ? material.getStandardQuantity() : 1)
.leadTime(material.getLeadTime())
.standardCost(material.getStandardCost())
.standardTotalCost(material.getStandardTotalCost())
.deleted(false)
.materialCategoryId(material.getMaterialCategory().getId())
.build())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ public MaterialResponseDTO createMaterial(MaterialRequestDTO requestDTO) {
.deleted(false)
.materialCategoryId(category.getId())
.standardCost(material.getStandardCost())
.standardTotalCost(material.getStandardTotalCost())
.build())
.build();

Expand Down Expand Up @@ -188,6 +189,7 @@ public MaterialResponseDTO updateMaterial(Long id, MaterialRequestDTO requestDTO
.deleted(false)
.materialCategoryId(material.getMaterialCategory().getId())
.standardCost(material.getStandardCost())
.standardTotalCost(material.getStandardTotalCost())
.build())
.build();

Expand Down Expand Up @@ -225,6 +227,7 @@ public void deleteMaterial(Long id) {
.deleted(true)
.materialCategoryId(material.getMaterialCategory().getId())
.standardCost(material.getStandardCost())
.standardTotalCost(material.getStandardTotalCost())
.build())
.build();

Expand Down