From b2fccdd946e66c364617228f97d2773ebd8766e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Mon, 24 Jul 2023 14:34:25 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=88=EC=82=B0=ED=8E=B8=EC=84=B1=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=EC=88=98=EC=A0=95.=20=20-=20=ED=95=AD?= =?UTF-8?q?=EB=AA=A9=EB=AA=85=EB=B3=80=EA=B2=BD=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=A0=95=EC=83=81=ED=99=94=20=20-=20=ED=95=AD=EB=AA=A9?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20=EA=B8=B0=EB=8A=A5=20=EC=A0=95=EC=83=81?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../faisp/main/budget/BudgetController.java | 6 +- .../main/budget/mapper/BudgetMapper.java | 4 - .../repository/TblBudgetCodeL1Repository.java | 2 +- .../repository/TblBudgetCodeL2Repository.java | 2 +- .../repository/TblBudgetCodeL3Repository.java | 4 +- .../repository/TblBudgetPlanRepository.java | 5 +- .../main/budget/service/BudgetService.java | 102 +-- .../resources/mybatisMapper/BudgetMapper.xml | 9 - .../resources/static/js/budget/budgeting.js | 702 +++++++++--------- 9 files changed, 420 insertions(+), 416 deletions(-) diff --git a/src/main/java/com/dbnt/faisp/main/budget/BudgetController.java b/src/main/java/com/dbnt/faisp/main/budget/BudgetController.java index 62646eb1..70abb0a8 100644 --- a/src/main/java/com/dbnt/faisp/main/budget/BudgetController.java +++ b/src/main/java/com/dbnt/faisp/main/budget/BudgetController.java @@ -90,15 +90,13 @@ public class BudgetController { //예산편성 - 항목변경 @PutMapping("/budgeting/code") public ResultResponse updateBudgeting(@AuthenticationPrincipal UserInfo loginUser, BudgetDto.BudgetingUpdateReqeust requestDto) { - budgetService.updateBudgetingList(loginUser, requestDto); - return new ResultResponse().successResponse(ResultResponseCode.SUCCESS); + return new ResultResponse(budgetService.updateBudgetingList(loginUser, requestDto)); } //예산편성 - 항목삭제 @DeleteMapping("/budgeting/code") public ResultResponse deleteBudgeting(@AuthenticationPrincipal UserInfo loginUser, BudgetDto.BudgetingInsertReqeust requestDto) { - budgetService.deleteBudgetingList(loginUser, requestDto); - return new ResultResponse().successResponse(ResultResponseCode.SUCCESS); + return new ResultResponse(budgetService.deleteBudgetingList(loginUser, requestDto)); } // 예산편성 - 예산편성 버튼(modal) diff --git a/src/main/java/com/dbnt/faisp/main/budget/mapper/BudgetMapper.java b/src/main/java/com/dbnt/faisp/main/budget/mapper/BudgetMapper.java index 9d8cc977..79d13ccc 100644 --- a/src/main/java/com/dbnt/faisp/main/budget/mapper/BudgetMapper.java +++ b/src/main/java/com/dbnt/faisp/main/budget/mapper/BudgetMapper.java @@ -12,9 +12,6 @@ public interface BudgetMapper { List callSpGetBudgetCodeYearList(); UpdateResult callSpCopyBudgetItem(BudgetParams param); UpdateResult callBruteForceDeleteBudgetItem(BudgetParams param); - UpdateResult callSpAddBudgetPlanCodeName(BudgetParams param); - UpdateResult callSpUpdateBudgetPlanCodeName(BudgetParams param); - UpdateResult callSpDeleteBudgetPlanCodeName(BudgetParams param); UpdateResult callSpUpdateBudgetPlanCodeItem(BudgetParams param); UpdateResult callSpDeleteBudgetPlan(BudgetParams param); List callSpGetBudgetAssignInfo(BudgetParams param); @@ -25,7 +22,6 @@ public interface BudgetMapper { List callSpGetBudgetExpenseInfo(BudgetParams params); List callSpGetBudgetExpense(BudgetParams params); UpdateResult callSpAddBudgetExpense(BudgetParams params); - List callSpUpdateBudgetExpense(BudgetParams params); List callSpGetbudgetStatOrg(BudgetParams params); List callSpGetbudgetStatDetail(BudgetParams params); List callSpGetBudgetCodeL3(BudgetParams params); diff --git a/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetCodeL1Repository.java b/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetCodeL1Repository.java index 7ee3d2a0..f32e60c0 100644 --- a/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetCodeL1Repository.java +++ b/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetCodeL1Repository.java @@ -7,5 +7,5 @@ import java.util.Optional; public interface TblBudgetCodeL1Repository extends JpaRepository { Optional findByL1NameAndL1YearAndUseTag(String l1Name, String l1Year, String useTag); - Optional findTop1ByL1YearAndUseTagOrderByL1CodeDesc(String l1Year, String useTag); + Optional findTop1ByL1YearOrderByL1CodeDesc(String l1Year); } diff --git a/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetCodeL2Repository.java b/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetCodeL2Repository.java index 3902c1ed..26b02b63 100644 --- a/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetCodeL2Repository.java +++ b/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetCodeL2Repository.java @@ -8,5 +8,5 @@ import java.util.Optional; public interface TblBudgetCodeL2Repository extends JpaRepository { Optional findByL2NameAndL1CodeAndUseTag(String codeL2Name, String l1Code, String y); - Optional findTop1ByL1CodeAndUseTagOrderByL2CodeDesc(String l1Code, String useTag); + Optional findTop1ByL1CodeOrderByL2CodeDesc(String l1Code); } diff --git a/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetCodeL3Repository.java b/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetCodeL3Repository.java index 5eb94776..8b54244b 100644 --- a/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetCodeL3Repository.java +++ b/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetCodeL3Repository.java @@ -6,7 +6,7 @@ import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; public interface TblBudgetCodeL3Repository extends JpaRepository { - Optional findByL3NameAndL2CodeAndUseTag(String codeL3Name, String l2Code, String y); + Optional findByL3NameAndL2CodeAndUseTag(String codeL3Name, String l2Code, String useTag); - Optional findTop1ByL2CodeAndUseTagOrderByL3CodeDesc(String l2Code, String y); + Optional findTop1ByL2CodeOrderByL3CodeDesc(String l2Code); } diff --git a/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetPlanRepository.java b/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetPlanRepository.java index d149c6fb..d67e675b 100644 --- a/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetPlanRepository.java +++ b/src/main/java/com/dbnt/faisp/main/budget/repository/TblBudgetPlanRepository.java @@ -1,9 +1,10 @@ package com.dbnt.faisp.main.budget.repository; -import com.dbnt.faisp.main.budget.model.TblBudgetHistory; import com.dbnt.faisp.main.budget.model.TblBudgetPlan; import org.springframework.data.jpa.repository.JpaRepository; -public interface TblBudgetPlanRepository extends JpaRepository { +import java.util.Optional; +public interface TblBudgetPlanRepository extends JpaRepository { + Optional findTop1ByBudgetCodeAndOrgCode(String budgetCode, String orgCode); } diff --git a/src/main/java/com/dbnt/faisp/main/budget/service/BudgetService.java b/src/main/java/com/dbnt/faisp/main/budget/service/BudgetService.java index b5679161..912c7c4a 100644 --- a/src/main/java/com/dbnt/faisp/main/budget/service/BudgetService.java +++ b/src/main/java/com/dbnt/faisp/main/budget/service/BudgetService.java @@ -117,7 +117,7 @@ public class BudgetService { TblBudgetCodeL1 codeL1 = codeL1Repository.findByL1NameAndL1YearAndUseTag(codeL1Name, year, "Y").orElse(new TblBudgetCodeL1()); if(codeL1.getL1Code() == null){ - TblBudgetCodeL1 lastL1Code = codeL1Repository.findTop1ByL1YearAndUseTagOrderByL1CodeDesc(year, "Y").orElse(null); + TblBudgetCodeL1 lastL1Code = codeL1Repository.findTop1ByL1YearOrderByL1CodeDesc(year).orElse(null); String l1Code = makeCode(year.substring(2), lastL1Code==null?null:lastL1Code.getL1Code()); Integer seqOrd = lastL1Code==null?1:(lastL1Code.getSeqOrd()+1); codeL1.setData(l1Code, codeL1Name, year, "Y", seqOrd, "항목추가", modiDate); @@ -127,7 +127,7 @@ public class BudgetService { String l1Code = codeL1.getL1Code(); TblBudgetCodeL2 codeL2 = codeL2Repository.findByL2NameAndL1CodeAndUseTag(codeL2Name, l1Code, "Y").orElse(new TblBudgetCodeL2());; if(codeL2.getL1Code() == null){ - TblBudgetCodeL2 lastL2Code = codeL2Repository.findTop1ByL1CodeAndUseTagOrderByL2CodeDesc(l1Code, "Y").orElse(null); + TblBudgetCodeL2 lastL2Code = codeL2Repository.findTop1ByL1CodeOrderByL2CodeDesc(l1Code).orElse(null); String l2Code = makeCode(l1Code, lastL2Code==null?null: lastL2Code.getL2Code()); Integer seqOrd = lastL2Code==null?1:(lastL2Code.getSeqOrd()+1); codeL2.setData(l2Code, codeL1Name, l1Code, "Y", seqOrd, "항목추가", modiDate); @@ -137,7 +137,7 @@ public class BudgetService { String l2Code = codeL2.getL2Code(); TblBudgetCodeL3 codeL3 = codeL3Repository.findByL3NameAndL2CodeAndUseTag(codeL3Name, l2Code, "Y").orElse(new TblBudgetCodeL3());; if(codeL3.getL3Code() == null){ - TblBudgetCodeL3 lastL3Code = codeL3Repository.findTop1ByL2CodeAndUseTagOrderByL3CodeDesc(l2Code, "Y").orElse(null); + TblBudgetCodeL3 lastL3Code = codeL3Repository.findTop1ByL2CodeOrderByL3CodeDesc(l2Code).orElse(null); String l3Code = makeCode(l2Code, lastL3Code==null?null: lastL3Code.getL3Code()); Integer seqOrd = lastL3Code==null?1:(lastL3Code.getSeqOrd()+1); codeL3.setData(l3Code, codeL3Name, l2Code, "Y", seqOrd, "항목추가", modiDate); @@ -167,51 +167,69 @@ public class BudgetService { } //예산편성 - 항목변경 - public void updateBudgetingList(UserInfo loginUser, BudgetDto.BudgetingUpdateReqeust requestDto){ -// UpdateResult result = budgetRepository.callSpUpdateBudgetPlanCodeName( requestDto.getYear(), requestDto.getPrevNameL1(), requestDto.getPrevNameL2(), requestDto.getPrevNameL3(),requestDto.getNameL1(),requestDto.getNameL2(),requestDto.getNameL3(), "OG001", "admin"); - BudgetParams params = new BudgetParams(); - params.setYear(requestDto.getYear()); - params.setCode1(requestDto.getNameL1()); - params.setCode2(requestDto.getNameL2()); - params.setCode3(requestDto.getNameL3()); - params.setNewCode1(requestDto.getPrevNameL1()); - params.setNewCode2(requestDto.getPrevNameL2()); - params.setNewCode3(requestDto.getPrevNameL3()); - params.setOrg("OG001"); - params.setId("admin"); - UpdateResult result = budgetMapper.callSpUpdateBudgetPlanCodeName(params); + @Transactional + public ResultResponseCode updateBudgetingList(UserInfo loginUser, BudgetDto.BudgetingUpdateReqeust requestDto){ - if(result.getResultCode().equals("100")) { - return; - } else if (result.getResultCode().equals("91")) { - throw new BaseException(ResultResponseCode.DUPLICATE_CODE); + TblBudgetCodeL1 codeL1 = codeL1Repository.findByL1NameAndL1YearAndUseTag(requestDto.getPrevNameL1(), requestDto.getYear(), "Y").orElse(new TblBudgetCodeL1()); + TblBudgetCodeL2 codeL2 = codeL2Repository.findByL2NameAndL1CodeAndUseTag(requestDto.getPrevNameL2(), codeL1.getL1Code(), "Y").orElse(new TblBudgetCodeL2()); + TblBudgetCodeL3 codeL3 = codeL3Repository.findByL3NameAndL2CodeAndUseTag(requestDto.getPrevNameL3(), codeL2.getL2Code(), "Y").orElse(null); + if(codeL3 == null){ + return ResultResponseCode.NOT_FOUND_CODE; } + + if(!codeL3.getL3Name().equals(requestDto.getNameL3())){ + TblBudgetCodeL3 duplCodeChk = codeL3Repository.findByL3NameAndL2CodeAndUseTag(requestDto.getNameL3(), codeL2.getL2Code(), "Y").orElse(null); + if(duplCodeChk!=null){ + return ResultResponseCode.DUPLICATE_CODE; + }else{ + codeL3.setL3Name(requestDto.getNameL3()); + codeL3Repository.save(codeL3); + } + } + if(!codeL2.getL2Name().equals(requestDto.getNameL2())){ + TblBudgetCodeL2 duplCodeChk = codeL2Repository.findByL2NameAndL1CodeAndUseTag(requestDto.getNameL2(), codeL1.getL1Code(), "Y").orElse(null); + if(duplCodeChk!=null){ + return ResultResponseCode.DUPLICATE_CODE; + }else{ + codeL2.setL2Name(requestDto.getNameL2()); + codeL2Repository.save(codeL2); + } + } + if(!codeL1.getL1Name().equals(requestDto.getNameL1())){ + TblBudgetCodeL1 duplCodeChk = codeL1Repository.findByL1NameAndL1YearAndUseTag(requestDto.getNameL1(), requestDto.getYear(), "Y").orElse(null); + if(duplCodeChk!=null){ + return ResultResponseCode.DUPLICATE_CODE; + }else{ + codeL1.setL1Name(requestDto.getNameL1()); + codeL1Repository.save(codeL1); + } + } + + return ResultResponseCode.SUCCESS; } //예산편성 - 항목삭제 - public void deleteBudgetingList(UserInfo loginUser, BudgetDto.BudgetingInsertReqeust requestDto){ -// System.out.println(requestDto.getYear()); -// System.out.println(requestDto.getNameL1()); -// System.out.println(requestDto.getNameL2()); -// System.out.println(requestDto.getNameL3()); - UpdateResult result = budgetRepository.callSpDeleteBudgetPlanCodeName(requestDto.getYear(),requestDto.getNameL1(),requestDto.getNameL2(),requestDto.getNameL3(), "OG001", "admin"); -// BudgetParams params = new BudgetParams(); -// params.setYear(requestDto.getYear()); -// params.setCode1(requestDto.getNameL1()); -// params.setCode2(requestDto.getNameL2()); -// params.setCode3(requestDto.getNameL3()); -// params.setOrg("OG001"); -// params.setId("admin"); -// UpdateResult result = budgetMapper.callSpDeleteBudgetPlanCodeName(params); - -// System.out.println(result.getErrorMessage()); -// System.out.println(result.getResultCode()); -// System.out.println(result.getResultCount()); - if(result.getResultCode().equals("100")) { - return; - } else { - throw new BaseException(ResultResponseCode.DELETE_FOUND_VALUE); + @Transactional + public ResultResponseCode deleteBudgetingList(UserInfo loginUser, BudgetDto.BudgetingInsertReqeust requestDto){ + /*잔여 예산 확인*/ + TblBudgetCodeL1 codeL1 = codeL1Repository.findByL1NameAndL1YearAndUseTag(requestDto.getNameL1(), requestDto.getYear(), "Y").orElse(new TblBudgetCodeL1()); + TblBudgetCodeL2 codeL2 = codeL2Repository.findByL2NameAndL1CodeAndUseTag(requestDto.getNameL2(), codeL1.getL1Code(), "Y").orElse(new TblBudgetCodeL2()); + TblBudgetCodeL3 codeL3 = codeL3Repository.findByL3NameAndL2CodeAndUseTag(requestDto.getNameL3(), codeL2.getL2Code(), "Y").orElse(null); + if(codeL3 == null){ + return ResultResponseCode.NOT_FOUND_CODE; } + + TblBudgetPlan savedAmount = planRepository.findTop1ByBudgetCodeAndOrgCode(codeL3.getL3Code(), loginUser.getOgCd()).orElse(null); + if(savedAmount==null){ + return ResultResponseCode.NOT_FOUND_CODE; + }else if(savedAmount.getAmount()>0){ + return ResultResponseCode.DELETE_FOUND_VALUE; + }else{ + codeL3.setUseTag("N"); + codeL3Repository.save(codeL3); + } + + return ResultResponseCode.SUCCESS; } // 예산편성 - 예산편성 저장(modal) diff --git a/src/main/resources/mybatisMapper/BudgetMapper.xml b/src/main/resources/mybatisMapper/BudgetMapper.xml index 8f1e24f4..ce7f6034 100644 --- a/src/main/resources/mybatisMapper/BudgetMapper.xml +++ b/src/main/resources/mybatisMapper/BudgetMapper.xml @@ -26,12 +26,6 @@ - - @@ -69,9 +63,6 @@ -