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.math.BigDecimal;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@ -584,6 +585,7 @@ public class EstimateService {
|
|||||||
estimateMapper.deleteEstimateCircuitItemList(estimateRequest);
|
estimateMapper.deleteEstimateCircuitItemList(estimateRequest);
|
||||||
|
|
||||||
// 견적서 지붕면/아이템 신규 추가
|
// 견적서 지붕면/아이템 신규 추가
|
||||||
|
List<ItemRequest> allModuleList = new ArrayList<ItemRequest>();
|
||||||
for (RoofRequest roofRequest : roofList) {
|
for (RoofRequest roofRequest : roofList) {
|
||||||
roofRequest.setObjectNo(estimateRequest.getObjectNo());
|
roofRequest.setObjectNo(estimateRequest.getObjectNo());
|
||||||
roofRequest.setPlanNo(estimateRequest.getPlanNo());
|
roofRequest.setPlanNo(estimateRequest.getPlanNo());
|
||||||
@ -611,6 +613,8 @@ public class EstimateService {
|
|||||||
itemRequest.setAmount("1");
|
itemRequest.setAmount("1");
|
||||||
roofItemList.add(itemRequest);
|
roofItemList.add(itemRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
allModuleList.add(itemRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ItemRequest itemRequest : roofItemList) {
|
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.setObjectNo(estimateRequest.getObjectNo());
|
||||||
circuitItemRequest.setPlanNo(estimateRequest.getPlanNo());
|
circuitItemRequest.setPlanNo(estimateRequest.getPlanNo());
|
||||||
circuitItemRequest.setItemId(circuitItemRequest.getItemId());
|
|
||||||
circuitItemRequest.setCircuitCfg(circuitItemRequest.getCircuitCfg());
|
|
||||||
|
|
||||||
estimateMapper.insertEstimateCircuitItem(circuitItemRequest);
|
estimateMapper.insertEstimateCircuitItem(circuitItemRequest);
|
||||||
}
|
}
|
||||||
@ -2135,4 +2141,76 @@ public class EstimateService {
|
|||||||
}
|
}
|
||||||
return cnt;
|
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