FAISP/src/main/java/com/dbnt/faisp/codeMgt/service/CodeMgtService.java

67 lines
2.1 KiB
Java

package com.dbnt.faisp.codeMgt.service;
import com.dbnt.faisp.codeMgt.model.CodeCatg;
import com.dbnt.faisp.codeMgt.model.CodeMgt;
import com.dbnt.faisp.codeMgt.repository.CodeCatgRepository;
import com.dbnt.faisp.codeMgt.repository.CodeMgtRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@RequiredArgsConstructor
public class CodeMgtService{
private final CodeMgtRepository codeMgtRepository;
private final CodeCatgRepository codeCatgRepository;
@Transactional
public String saveCode(List<CodeCatg> codeMgtList){
for(CodeCatg codeCatg: codeMgtList){
codeCatgRepository.save(codeCatg);
if (codeCatg.getItemList().size()>0){
codeItemSave(codeCatg.getItemList());
}
}
return "";
}
private void codeItemSave(List<CodeMgt> itemList){
codeMgtRepository.saveAll(itemList);
}
public List<CodeCatg> selectCodeCatgAndChild() {
List<CodeCatg> codeCatgList = codeCatgRepository.findAll();
for(CodeCatg codeCatg: codeCatgList){
codeCatg.setItemList(codeMgtRepository.findByCategoryCdOrderByItemCdAsc(codeCatg.getCategoryCd()));
}
return codeCatgList;
}
public Map<String, List<CodeMgt>> getCommonCode() {
//return codeMgtRepository.findByUseChkOrderByItemCdAsc("T");
List<CodeCatg> categoryList = codeCatgRepository.findAll();
List<CodeMgt> codeList = codeMgtRepository.findByOrderByItemCdAsc();
Map<String, List<CodeMgt>> categoryMap = new HashMap<>();
for(CodeCatg category: categoryList){
List<CodeMgt> childList = new ArrayList<>();
for(CodeMgt code: codeList){
if(code.getCategoryCd().equals(category.getCategoryCd())){
childList.add(code);
}
}
categoryMap.put(category.getCategoryCd(), childList);
}
return categoryMap;
}
public List<CodeMgt> selectCodeMgtList(String categoryCd) {
return codeMgtRepository.findByCategoryCdAndUseChkOrderByItemCdAsc(categoryCd, "T");
}
}