FAISP/src/main/java/com/dbnt/faisp/equip/service/EquipService.java

324 lines
11 KiB
Java
Raw Normal View History

2022-09-20 05:35:50 +00:00
package com.dbnt.faisp.equip.service;
import com.dbnt.faisp.equip.mapper.EquipMapper;
import com.dbnt.faisp.equip.model.CellPhone;
2022-09-20 05:35:50 +00:00
import com.dbnt.faisp.equip.model.Equip;
import com.dbnt.faisp.equip.model.Equip.EquipId;
2022-09-20 05:35:50 +00:00
import com.dbnt.faisp.equip.model.EquipFile;
import com.dbnt.faisp.equip.model.EquipFile.EquipFileId;
2022-09-26 08:57:06 +00:00
import com.dbnt.faisp.equip.model.EquipLog;
import com.dbnt.faisp.equip.repository.CellPhoneRepository;
2022-09-20 05:35:50 +00:00
import com.dbnt.faisp.equip.repository.EquipFileRepository;
2022-09-26 08:57:06 +00:00
import com.dbnt.faisp.equip.repository.EquipLogRepository;
2022-09-20 05:35:50 +00:00
import com.dbnt.faisp.equip.repository.EquipRepository;
2022-09-26 00:38:58 +00:00
import com.dbnt.faisp.userInfo.model.UserInfo;
2022-09-20 05:35:50 +00:00
import com.dbnt.faisp.util.ParamMap;
import com.dbnt.faisp.util.Utils;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
2022-09-26 08:57:06 +00:00
import java.time.LocalDateTime;
2022-09-20 05:35:50 +00:00
import java.util.*;
@Service
@RequiredArgsConstructor
public class EquipService {
@Value("${spring.servlet.multipart.location}")
protected String locationPath;
private final EquipRepository equipRepository;
private final EquipFileRepository equipFileRepository;
2022-09-26 08:57:06 +00:00
private final EquipLogRepository equipLogRepository;
private final CellPhoneRepository cellPhoneRepository;
2022-09-20 05:35:50 +00:00
private final EquipMapper equipMapper;
@Transactional
public void saveEquip(Equip equip, MultipartHttpServletRequest request) {
Equip dbEquip = equipRepository.findFirstByOrderByEquKeyDesc();
try {
if(dbEquip == null) {
equip.setEquKey(1);
equip.setVersionNo(1);
equipRepository.save(equip);
} else {
equip.setEquKey(dbEquip.getEquKey()+1);
equip.setVersionNo(1);
equipRepository.save(equip);
}
2022-09-20 05:35:50 +00:00
saveFile(equip,request);
2022-09-26 08:57:06 +00:00
EquipLog equLog = new EquipLog();
equLog.setEquType(equip.getEquType());
equLog.setDetailType(equip.getDetailType());
equLog.setElContents("입력");
equLog.setWrtNm(equip.getWrtNm());
equLog.setWrtOrgan(equip.getWrtOrgan());
equLog.setWrtDt(equip.getWrtDt());
equipLogRepository.save(equLog);
2022-09-20 05:35:50 +00:00
} catch (Exception e) {
e.printStackTrace();
}
}
public void saveFile(Equip equip, MultipartHttpServletRequest mRequest) throws Exception {
try {
String path = locationPath;
String FileSize;
File dir = new File(path);
if(!dir.exists()) dir.mkdir();
//파일등록
2022-09-20 05:35:50 +00:00
List<MultipartFile> mFiles = mRequest.getFiles("file");
for(int i = 0; i < mFiles.size(); i++) {
MultipartFile mFile = mFiles.get(i);
FileSize = calculationSize(mFile.getSize());
if(!"".equals(mFile.getOriginalFilename())){
String fileName = mFile.getOriginalFilename();
if(fileName.contains("\\")){
String notSecuredFileName = fileName.substring(fileName.lastIndexOf("\\") +1);
fileName = ("".equals(notSecuredFileName) || null == notSecuredFileName) ? fileName : notSecuredFileName;
};
String fileExt = Utils.getFileExtention(fileName);
String saveName = Utils.generationSaveName() + "." + fileExt;
FileCopyUtils.copy(mFile.getBytes(), new File(path, saveName));
EquipFile equipFile = new EquipFile();
equipFile.setEquKey(equip.getEquKey());
equipFile.setVersionNo(equip.getVersionNo());
equipFile.setOrigNm(fileName);
equipFile.setConvNm(saveName);
equipFile.setFileExtn(fileExt);
equipFile.setFilePath(path);
equipFile.setFileSize(FileSize);
equipFileRepository.save(equipFile);
} else {
EquipFile equipFile = new EquipFile();
equipFile.setEquKey(equip.getEquKey());
equipFile.setVersionNo(equip.getVersionNo());
2022-09-20 05:35:50 +00:00
equipFileRepository.save(equipFile);
}
}
} catch (Exception e) {
throw e;
}
2022-09-20 05:35:50 +00:00
}
private String calculationSize(double fileSize){
String[] units = {"bytes", "KB", "MB", "GB", "TB", "PB"};
double unitSelector = Math.floor(Math.log(fileSize)/Math.log(1024));
if(fileSize>0){
return Math.round((fileSize/Math.pow(1024, unitSelector))*100)/100d+" "+units[(int)unitSelector];
}else{
return "";
}
}
2022-09-20 08:56:48 +00:00
public List<ParamMap> selectEquipStatus(Equip equip) {
return equipMapper.selectEquipStatus(equip);
}
public List<Equip> selectEquipList(Equip equip) {
return equipMapper.selectEquipList(equip);
}
public Integer selectEquipListCnt(Equip equip) {
return equipMapper.selectEquipListCnt(equip);
}
public Equip selectEquipInfo(Equip equip) {
return equipMapper.selectEquipInfo(equip);
}
@Transactional
public int updateEquip(Equip equip, MultipartHttpServletRequest request) {
try {
Equip dbEquip = equipRepository.findById(new EquipId(equip.getEquKey(), equip.getVersionNo())).orElse(null);
Equip equipTmp = new Equip();
equipTmp.setEquKey(dbEquip.getEquKey());
equipTmp.setVersionNo(dbEquip.getVersionNo()+1);
equipTmp.setMgtOrgan(equip.getMgtOrgan());
equipTmp.setEquType(equip.getEquType());
equipTmp.setDetailType(equip.getDetailType());
equipTmp.setStoredYear(equip.getStoredYear());
equipTmp.setItemQty(equip.getItemQty());
equipTmp.setItemCondition(equip.getItemCondition());
equipTmp.setNote(equip.getNote());
equipTmp.setWrtOrgan(equip.getWrtOrgan());
equipTmp.setWrtNm(equip.getWrtNm());
equipTmp.setWrtDt(equip.getWrtDt());
equipRepository.save(equipTmp);
updateFile(equip,equipTmp,request);
2022-09-26 08:57:06 +00:00
EquipLog equLog = new EquipLog();
equLog.setEquType(equip.getEquType());
equLog.setDetailType(equip.getDetailType());
equLog.setElContents("수정");
equLog.setWrtNm(equip.getWrtNm());
equLog.setWrtOrgan(equip.getWrtOrgan());
equLog.setWrtDt(equip.getWrtDt());
equipLogRepository.save(equLog);
} catch (Exception e) {
e.printStackTrace();
}
return equip.getEquKey();
}
public void updateFile(Equip equip,Equip equipTmp, MultipartHttpServletRequest mRequest) throws Exception {
try {
String path = locationPath;
String FileSize;
File dir = new File(path);
if(!dir.exists()) dir.mkdir();
//이미지 삭제했을경우
if(equip.getDeleteFileKey() != null) {
EquipFile equFile = new EquipFile();
equFile.setEquKey(equip.getDeleteFileKey());
equFile.setVersionNo(equip.getDeleteFileVnum());
EquipFile dbEquFile = equipFileRepository.findById(new EquipFileId(equFile.getEquKey(), equFile.getVersionNo())).orElse(null);
if(dbEquFile != null) {
File file = new File(dbEquFile.getFilePath(), dbEquFile.getConvNm());
if(file.exists()) {
file.delete();
}
}
}
//파일등록
List<MultipartFile> mFiles = mRequest.getFiles("file");
for(int i = 0; i < mFiles.size(); i++) {
MultipartFile mFile = mFiles.get(i);
FileSize = calculationSize(mFile.getSize());
if(!"".equals(mFile.getOriginalFilename())){
String fileName = mFile.getOriginalFilename();
if(fileName.contains("\\")){
String notSecuredFileName = fileName.substring(fileName.lastIndexOf("\\") +1);
fileName = ("".equals(notSecuredFileName) || null == notSecuredFileName) ? fileName : notSecuredFileName;
};
String fileExt = Utils.getFileExtention(fileName);
String saveName = Utils.generationSaveName() + "." + fileExt;
FileCopyUtils.copy(mFile.getBytes(), new File(path, saveName));
EquipFile equipFile = new EquipFile();
equipFile.setEquKey(equipTmp.getEquKey());
equipFile.setVersionNo(equipTmp.getVersionNo());
equipFile.setOrigNm(fileName);
equipFile.setConvNm(saveName);
equipFile.setFileExtn(fileExt);
equipFile.setFilePath(path);
equipFile.setFileSize(FileSize);
2022-09-26 08:57:06 +00:00
equipFileRepository.save(equipFile);
} else if(equip.getNoUpdateImg() != null) {
EquipFile equipFile = new EquipFile();
equipFile.setEquKey(equipTmp.getEquKey());
equipFile.setVersionNo(equipTmp.getVersionNo());
EquipFile dbEquFile = equipFileRepository.findById(new EquipFileId(equip.getEquKey(), equip.getVersionNo())).orElse(null);
equipFile.setOrigNm(dbEquFile.getOrigNm());
equipFile.setConvNm(dbEquFile.getConvNm());
equipFile.setFileExtn(dbEquFile.getFileExtn());
equipFile.setFilePath(dbEquFile.getFilePath());
equipFile.setFileSize(dbEquFile.getFileSize());
equipFileRepository.save(equipFile);
} else {
EquipFile equipFile = new EquipFile();
equipFile.setEquKey(equipTmp.getEquKey());
equipFile.setVersionNo(equipTmp.getVersionNo());
equipFileRepository.save(equipFile);
}
}
} catch (Exception e) {
throw e;
}
}
public ParamMap selectEduType(Equip equip) {
return equipMapper.selectEduType(equip);
}
2022-09-26 00:38:58 +00:00
public List<Equip> selectHistoryView(Equip equip) {
return equipRepository.findByEquKeyOrderByWrtDtDesc(equip.getEquKey());
}
public Equip selectHistoryDetail(Equip equip) {
return equipMapper.selectHistoryDetail(equip);
}
@Transactional
2022-09-26 08:57:06 +00:00
public void equipDelete(List<Equip> equip,UserInfo loginUser) {
2022-09-26 00:38:58 +00:00
for(Equip equ: equip) {
//파일삭제
Equip dbEquip = equipMapper.selectEquipInfo(equ);
if(dbEquip.getOrigNm() != null) {
File file = new File(dbEquip.getFilePath(), dbEquip.getConvNm());
if(file.exists()) {
file.delete();
}
}
equipRepository.deleteByEquKey(equ.getEquKey());
equipFileRepository.deleteByEquKey(equ.getEquKey());
2022-09-26 08:57:06 +00:00
EquipLog equLog = new EquipLog();
equLog.setEquType(dbEquip.getEquType());
equLog.setDetailType(dbEquip.getDetailType());
equLog.setElContents("삭제");
equLog.setWrtNm(loginUser.getUserId());
equLog.setWrtOrgan(loginUser.getOgCd());
equLog.setWrtDt(LocalDateTime.now());
equipLogRepository.save(equLog);
2022-09-26 00:38:58 +00:00
}
}
2022-09-26 08:57:06 +00:00
public List<EquipLog> selectEquipLogList(EquipLog equipLog) {
return equipMapper.selectEquipLogList(equipLog);
}
public Integer selectEquipLogListCnt(EquipLog equipLog) {
return equipMapper.selectEquipLogListCnt(equipLog);
}
public String selectEquipFirstId(Equip equip) {
return equipMapper.selectEquipFirstId(equip);
}
@Transactional
public Integer saveCellPhone(CellPhone cellPhone) {
return cellPhoneRepository.save(cellPhone).getPhoneKey();
}
public List<CellPhone> selectCellPhoneList(CellPhone cellPhone) {
return equipMapper.selectCellPhoneList(cellPhone);
}
public Integer selectCellPhoneListCnt(CellPhone cellPhone) {
return equipMapper.selectCellPhoneListCnt(cellPhone);
}
public CellPhone selectCellPhoneInfo(Integer phoneKey) {
return cellPhoneRepository.findById(phoneKey).orElse(null);
}
@Transactional
public void deleteCellPhone(List<CellPhone> cellPhone) {
cellPhoneRepository.deleteAll(cellPhone);
}
2022-09-26 00:38:58 +00:00
2022-09-20 05:35:50 +00:00
}