PC 회로구성도 처리 API 변경
This commit is contained in:
parent
23272ffdc5
commit
3d9d326daa
@ -41,6 +41,7 @@ import java.io.InputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@ -584,6 +585,7 @@ public class EstimateService {
|
||||
estimateMapper.deleteEstimateCircuitItemList(estimateRequest);
|
||||
|
||||
// 견적서 지붕면/아이템 신규 추가
|
||||
List<ItemRequest> allModuleList = new ArrayList<ItemRequest>();
|
||||
for (RoofRequest roofRequest : roofList) {
|
||||
roofRequest.setObjectNo(estimateRequest.getObjectNo());
|
||||
roofRequest.setPlanNo(estimateRequest.getPlanNo());
|
||||
@ -611,6 +613,8 @@ public class EstimateService {
|
||||
itemRequest.setAmount("1");
|
||||
roofItemList.add(itemRequest);
|
||||
}
|
||||
|
||||
allModuleList.add(itemRequest);
|
||||
}
|
||||
|
||||
for (ItemRequest itemRequest : roofItemList) {
|
||||
@ -622,12 +626,14 @@ public class EstimateService {
|
||||
}
|
||||
}
|
||||
|
||||
// 견적서 PCS 아이템 회로 구성
|
||||
List<ItemRequest> circuitPcsItemList =
|
||||
this.getPcsCircuitList(circuitItemList, allModuleList);
|
||||
|
||||
// 견적서 회로구성 아이템 신규 추가
|
||||
for (ItemRequest circuitItemRequest : circuitItemList) {
|
||||
for (ItemRequest circuitItemRequest : circuitPcsItemList) {
|
||||
circuitItemRequest.setObjectNo(estimateRequest.getObjectNo());
|
||||
circuitItemRequest.setPlanNo(estimateRequest.getPlanNo());
|
||||
circuitItemRequest.setItemId(circuitItemRequest.getItemId());
|
||||
circuitItemRequest.setCircuitCfg(circuitItemRequest.getCircuitCfg());
|
||||
|
||||
estimateMapper.insertEstimateCircuitItem(circuitItemRequest);
|
||||
}
|
||||
@ -2135,4 +2141,76 @@ public class EstimateService {
|
||||
}
|
||||
return cnt;
|
||||
}
|
||||
|
||||
/**
|
||||
* PC 회로 구성도 설정
|
||||
*
|
||||
* @param pcsItemList
|
||||
* @param moduleList
|
||||
* @return
|
||||
*/
|
||||
private List<ItemRequest> getPcsCircuitList(
|
||||
List<ItemRequest> pcsItemList, List<ItemRequest> moduleList) {
|
||||
|
||||
if (pcsItemList != null && pcsItemList.size() > 0) {
|
||||
if (pcsItemList.size() == 1) {
|
||||
pcsItemList.get(0).setCircuitCfg(this.getPcsCircuitCtg(moduleList));
|
||||
} else {
|
||||
if (moduleList != null && moduleList.size() > 0) {
|
||||
for (ItemRequest data : pcsItemList) {
|
||||
String val = data.getItemId();
|
||||
|
||||
List<ItemRequest> resultList =
|
||||
moduleList.stream()
|
||||
.filter(t -> StringUtils.equals(val, t.getPcItemId()))
|
||||
.collect(Collectors.toList());
|
||||
data.setCircuitCfg(this.getPcsCircuitCtg(resultList));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return pcsItemList;
|
||||
}
|
||||
|
||||
/**
|
||||
* PC 회로구성도 조회
|
||||
*
|
||||
* @param circuitList
|
||||
* @return
|
||||
*/
|
||||
private String getPcsCircuitCtg(List<ItemRequest> circuitList) {
|
||||
|
||||
String circuitCfg = "";
|
||||
|
||||
if (circuitList != null && circuitList.size() > 0) {
|
||||
// ArrayList 생성 변환
|
||||
ArrayList<String> list = new ArrayList<String>();
|
||||
for (ItemRequest pcsSerItemReq : circuitList) {
|
||||
list.add(pcsSerItemReq.getCircuit());
|
||||
}
|
||||
|
||||
// ArrayList 회로 중복수 오름차순 정렬
|
||||
Set<String> set = new HashSet<String>(list);
|
||||
List<String> setList = new ArrayList<>(set);
|
||||
|
||||
Collections.sort(
|
||||
setList,
|
||||
new Comparator<String>() {
|
||||
@Override
|
||||
public int compare(String o1, String o2) {
|
||||
int first = Integer.parseInt(o1.split("-")[0]);
|
||||
int second = Integer.parseInt(o2.split("-")[0]);
|
||||
return second > first ? -1 : second < first ? 1 : 0; // 오름차순 정렬
|
||||
}
|
||||
});
|
||||
|
||||
for (String str : setList) {
|
||||
if (!StringUtils.isEmpty(circuitCfg)) circuitCfg += ", ";
|
||||
circuitCfg += Collections.frequency(list, str);
|
||||
}
|
||||
}
|
||||
|
||||
return circuitCfg;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user