예산편성 오류수정.

- 항목명변경 기능 정상화
 - 항목삭제 기능 정상화
master
강석 최 2023-07-24 14:34:25 +09:00
parent 735f7c9b35
commit b2fccdd946
9 changed files with 420 additions and 416 deletions

View File

@ -90,15 +90,13 @@ public class BudgetController {
//예산편성 - 항목변경 //예산편성 - 항목변경
@PutMapping("/budgeting/code") @PutMapping("/budgeting/code")
public ResultResponse<?> updateBudgeting(@AuthenticationPrincipal UserInfo loginUser, BudgetDto.BudgetingUpdateReqeust requestDto) { public ResultResponse<?> updateBudgeting(@AuthenticationPrincipal UserInfo loginUser, BudgetDto.BudgetingUpdateReqeust requestDto) {
budgetService.updateBudgetingList(loginUser, requestDto); return new ResultResponse(budgetService.updateBudgetingList(loginUser, requestDto));
return new ResultResponse().successResponse(ResultResponseCode.SUCCESS);
} }
//예산편성 - 항목삭제 //예산편성 - 항목삭제
@DeleteMapping("/budgeting/code") @DeleteMapping("/budgeting/code")
public ResultResponse<?> deleteBudgeting(@AuthenticationPrincipal UserInfo loginUser, BudgetDto.BudgetingInsertReqeust requestDto) { public ResultResponse<?> deleteBudgeting(@AuthenticationPrincipal UserInfo loginUser, BudgetDto.BudgetingInsertReqeust requestDto) {
budgetService.deleteBudgetingList(loginUser, requestDto); return new ResultResponse(budgetService.deleteBudgetingList(loginUser, requestDto));
return new ResultResponse().successResponse(ResultResponseCode.SUCCESS);
} }
// 예산편성 - 예산편성 버튼(modal) // 예산편성 - 예산편성 버튼(modal)

View File

@ -12,9 +12,6 @@ public interface BudgetMapper {
List<YearResult> callSpGetBudgetCodeYearList(); List<YearResult> callSpGetBudgetCodeYearList();
UpdateResult callSpCopyBudgetItem(BudgetParams param); UpdateResult callSpCopyBudgetItem(BudgetParams param);
UpdateResult callBruteForceDeleteBudgetItem(BudgetParams param); UpdateResult callBruteForceDeleteBudgetItem(BudgetParams param);
UpdateResult callSpAddBudgetPlanCodeName(BudgetParams param);
UpdateResult callSpUpdateBudgetPlanCodeName(BudgetParams param);
UpdateResult callSpDeleteBudgetPlanCodeName(BudgetParams param);
UpdateResult callSpUpdateBudgetPlanCodeItem(BudgetParams param); UpdateResult callSpUpdateBudgetPlanCodeItem(BudgetParams param);
UpdateResult callSpDeleteBudgetPlan(BudgetParams param); UpdateResult callSpDeleteBudgetPlan(BudgetParams param);
List<AssignResult> callSpGetBudgetAssignInfo(BudgetParams param); List<AssignResult> callSpGetBudgetAssignInfo(BudgetParams param);
@ -25,7 +22,6 @@ public interface BudgetMapper {
List<ExpenseResult> callSpGetBudgetExpenseInfo(BudgetParams params); List<ExpenseResult> callSpGetBudgetExpenseInfo(BudgetParams params);
List<ExpenseInfoResult> callSpGetBudgetExpense(BudgetParams params); List<ExpenseInfoResult> callSpGetBudgetExpense(BudgetParams params);
UpdateResult callSpAddBudgetExpense(BudgetParams params); UpdateResult callSpAddBudgetExpense(BudgetParams params);
List<ExpenseResult> callSpUpdateBudgetExpense(BudgetParams params);
List<ExpenseResult> callSpGetbudgetStatOrg(BudgetParams params); List<ExpenseResult> callSpGetbudgetStatOrg(BudgetParams params);
List<StatsItemResult> callSpGetbudgetStatDetail(BudgetParams params); List<StatsItemResult> callSpGetbudgetStatDetail(BudgetParams params);
List<L3CodeResult> callSpGetBudgetCodeL3(BudgetParams params); List<L3CodeResult> callSpGetBudgetCodeL3(BudgetParams params);

View File

@ -7,5 +7,5 @@ import java.util.Optional;
public interface TblBudgetCodeL1Repository extends JpaRepository<TblBudgetCodeL1, String> { public interface TblBudgetCodeL1Repository extends JpaRepository<TblBudgetCodeL1, String> {
Optional<TblBudgetCodeL1> findByL1NameAndL1YearAndUseTag(String l1Name, String l1Year, String useTag); Optional<TblBudgetCodeL1> findByL1NameAndL1YearAndUseTag(String l1Name, String l1Year, String useTag);
Optional<TblBudgetCodeL1> findTop1ByL1YearAndUseTagOrderByL1CodeDesc(String l1Year, String useTag); Optional<TblBudgetCodeL1> findTop1ByL1YearOrderByL1CodeDesc(String l1Year);
} }

View File

@ -8,5 +8,5 @@ import java.util.Optional;
public interface TblBudgetCodeL2Repository extends JpaRepository<TblBudgetCodeL2, String> { public interface TblBudgetCodeL2Repository extends JpaRepository<TblBudgetCodeL2, String> {
Optional<TblBudgetCodeL2> findByL2NameAndL1CodeAndUseTag(String codeL2Name, String l1Code, String y); Optional<TblBudgetCodeL2> findByL2NameAndL1CodeAndUseTag(String codeL2Name, String l1Code, String y);
Optional<TblBudgetCodeL2> findTop1ByL1CodeAndUseTagOrderByL2CodeDesc(String l1Code, String useTag); Optional<TblBudgetCodeL2> findTop1ByL1CodeOrderByL2CodeDesc(String l1Code);
} }

View File

@ -6,7 +6,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional; import java.util.Optional;
public interface TblBudgetCodeL3Repository extends JpaRepository<TblBudgetCodeL3, String> { public interface TblBudgetCodeL3Repository extends JpaRepository<TblBudgetCodeL3, String> {
Optional<TblBudgetCodeL3> findByL3NameAndL2CodeAndUseTag(String codeL3Name, String l2Code, String y); Optional<TblBudgetCodeL3> findByL3NameAndL2CodeAndUseTag(String codeL3Name, String l2Code, String useTag);
Optional<TblBudgetCodeL3> findTop1ByL2CodeAndUseTagOrderByL3CodeDesc(String l2Code, String y); Optional<TblBudgetCodeL3> findTop1ByL2CodeOrderByL3CodeDesc(String l2Code);
} }

View File

@ -1,9 +1,10 @@
package com.dbnt.faisp.main.budget.repository; package com.dbnt.faisp.main.budget.repository;
import com.dbnt.faisp.main.budget.model.TblBudgetHistory;
import com.dbnt.faisp.main.budget.model.TblBudgetPlan; import com.dbnt.faisp.main.budget.model.TblBudgetPlan;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
public interface TblBudgetPlanRepository extends JpaRepository<TblBudgetPlan, Integer> { import java.util.Optional;
public interface TblBudgetPlanRepository extends JpaRepository<TblBudgetPlan, Integer> {
Optional<TblBudgetPlan> findTop1ByBudgetCodeAndOrgCode(String budgetCode, String orgCode);
} }

View File

@ -117,7 +117,7 @@ public class BudgetService {
TblBudgetCodeL1 codeL1 = codeL1Repository.findByL1NameAndL1YearAndUseTag(codeL1Name, year, "Y").orElse(new TblBudgetCodeL1()); TblBudgetCodeL1 codeL1 = codeL1Repository.findByL1NameAndL1YearAndUseTag(codeL1Name, year, "Y").orElse(new TblBudgetCodeL1());
if(codeL1.getL1Code() == null){ 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()); String l1Code = makeCode(year.substring(2), lastL1Code==null?null:lastL1Code.getL1Code());
Integer seqOrd = lastL1Code==null?1:(lastL1Code.getSeqOrd()+1); Integer seqOrd = lastL1Code==null?1:(lastL1Code.getSeqOrd()+1);
codeL1.setData(l1Code, codeL1Name, year, "Y", seqOrd, "항목추가", modiDate); codeL1.setData(l1Code, codeL1Name, year, "Y", seqOrd, "항목추가", modiDate);
@ -127,7 +127,7 @@ public class BudgetService {
String l1Code = codeL1.getL1Code(); String l1Code = codeL1.getL1Code();
TblBudgetCodeL2 codeL2 = codeL2Repository.findByL2NameAndL1CodeAndUseTag(codeL2Name, l1Code, "Y").orElse(new TblBudgetCodeL2());; TblBudgetCodeL2 codeL2 = codeL2Repository.findByL2NameAndL1CodeAndUseTag(codeL2Name, l1Code, "Y").orElse(new TblBudgetCodeL2());;
if(codeL2.getL1Code() == null){ 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()); String l2Code = makeCode(l1Code, lastL2Code==null?null: lastL2Code.getL2Code());
Integer seqOrd = lastL2Code==null?1:(lastL2Code.getSeqOrd()+1); Integer seqOrd = lastL2Code==null?1:(lastL2Code.getSeqOrd()+1);
codeL2.setData(l2Code, codeL1Name, l1Code, "Y", seqOrd, "항목추가", modiDate); codeL2.setData(l2Code, codeL1Name, l1Code, "Y", seqOrd, "항목추가", modiDate);
@ -137,7 +137,7 @@ public class BudgetService {
String l2Code = codeL2.getL2Code(); String l2Code = codeL2.getL2Code();
TblBudgetCodeL3 codeL3 = codeL3Repository.findByL3NameAndL2CodeAndUseTag(codeL3Name, l2Code, "Y").orElse(new TblBudgetCodeL3());; TblBudgetCodeL3 codeL3 = codeL3Repository.findByL3NameAndL2CodeAndUseTag(codeL3Name, l2Code, "Y").orElse(new TblBudgetCodeL3());;
if(codeL3.getL3Code() == null){ 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()); String l3Code = makeCode(l2Code, lastL3Code==null?null: lastL3Code.getL3Code());
Integer seqOrd = lastL3Code==null?1:(lastL3Code.getSeqOrd()+1); Integer seqOrd = lastL3Code==null?1:(lastL3Code.getSeqOrd()+1);
codeL3.setData(l3Code, codeL3Name, l2Code, "Y", seqOrd, "항목추가", modiDate); codeL3.setData(l3Code, codeL3Name, l2Code, "Y", seqOrd, "항목추가", modiDate);
@ -167,51 +167,69 @@ public class BudgetService {
} }
//예산편성 - 항목변경 //예산편성 - 항목변경
public void updateBudgetingList(UserInfo loginUser, BudgetDto.BudgetingUpdateReqeust requestDto){ @Transactional
// UpdateResult result = budgetRepository.callSpUpdateBudgetPlanCodeName( requestDto.getYear(), requestDto.getPrevNameL1(), requestDto.getPrevNameL2(), requestDto.getPrevNameL3(),requestDto.getNameL1(),requestDto.getNameL2(),requestDto.getNameL3(), "OG001", "admin"); public ResultResponseCode updateBudgetingList(UserInfo loginUser, BudgetDto.BudgetingUpdateReqeust requestDto){
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);
if(result.getResultCode().equals("100")) { TblBudgetCodeL1 codeL1 = codeL1Repository.findByL1NameAndL1YearAndUseTag(requestDto.getPrevNameL1(), requestDto.getYear(), "Y").orElse(new TblBudgetCodeL1());
return; TblBudgetCodeL2 codeL2 = codeL2Repository.findByL2NameAndL1CodeAndUseTag(requestDto.getPrevNameL2(), codeL1.getL1Code(), "Y").orElse(new TblBudgetCodeL2());
} else if (result.getResultCode().equals("91")) { TblBudgetCodeL3 codeL3 = codeL3Repository.findByL3NameAndL2CodeAndUseTag(requestDto.getPrevNameL3(), codeL2.getL2Code(), "Y").orElse(null);
throw new BaseException(ResultResponseCode.DUPLICATE_CODE); 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){ @Transactional
// System.out.println(requestDto.getYear()); public ResultResponseCode deleteBudgetingList(UserInfo loginUser, BudgetDto.BudgetingInsertReqeust requestDto){
// System.out.println(requestDto.getNameL1()); /*잔여 예산 확인*/
// System.out.println(requestDto.getNameL2()); TblBudgetCodeL1 codeL1 = codeL1Repository.findByL1NameAndL1YearAndUseTag(requestDto.getNameL1(), requestDto.getYear(), "Y").orElse(new TblBudgetCodeL1());
// System.out.println(requestDto.getNameL3()); TblBudgetCodeL2 codeL2 = codeL2Repository.findByL2NameAndL1CodeAndUseTag(requestDto.getNameL2(), codeL1.getL1Code(), "Y").orElse(new TblBudgetCodeL2());
UpdateResult result = budgetRepository.callSpDeleteBudgetPlanCodeName(requestDto.getYear(),requestDto.getNameL1(),requestDto.getNameL2(),requestDto.getNameL3(), "OG001", "admin"); TblBudgetCodeL3 codeL3 = codeL3Repository.findByL3NameAndL2CodeAndUseTag(requestDto.getNameL3(), codeL2.getL2Code(), "Y").orElse(null);
// BudgetParams params = new BudgetParams(); if(codeL3 == null){
// params.setYear(requestDto.getYear()); return ResultResponseCode.NOT_FOUND_CODE;
// 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);
} }
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) // 예산편성 - 예산편성 저장(modal)

View File

@ -26,12 +26,6 @@
<select id="callBruteForceDeleteBudgetItem" resultType="UpdateResult" parameterType="BudgetParams"> <select id="callBruteForceDeleteBudgetItem" resultType="UpdateResult" parameterType="BudgetParams">
call sp_brute_force_delete_budget_item(#{year}, #{id},NULL,NULL,NULL) call sp_brute_force_delete_budget_item(#{year}, #{id},NULL,NULL,NULL)
</select> </select>
<select id="callSpUpdateBudgetPlanCodeName" resultType="UpdateResult" parameterType="BudgetParams">
call sp_update_budget_plan_codename(#{year}, #{code1}, #{code2}, #{code3}, #{newCode1}, #{newCode2}, #{newCode3}, #{org},#{id},NULL,NULL,NULL)
</select>
<select id="callSpDeleteBudgetPlanCodeName" resultType="UpdateResult" parameterType="BudgetParams">
call sp_delete_budget_plan_codename(#{year}, #{code1}, #{code2}, #{code3}, #{org},#{id},NULL,NULL,NULL)
</select>
<select id="callSpUpdateBudgetPlanCodeItem" resultType="UpdateResult" parameterType="BudgetParams"> <select id="callSpUpdateBudgetPlanCodeItem" resultType="UpdateResult" parameterType="BudgetParams">
call sp_update_budget_plan_item (#{year}, #{code1}, #{code2}, #{code3}, #{amount}::int, #{org}, #{id},NULL, NULL, NULL) call sp_update_budget_plan_item (#{year}, #{code1}, #{code2}, #{code3}, #{amount}::int, #{org}, #{id},NULL, NULL, NULL)
</select> </select>
@ -69,9 +63,6 @@
<select id="callSpAddBudgetExpense" resultType="UpdateResult" parameterType="BudgetParams"> <select id="callSpAddBudgetExpense" resultType="UpdateResult" parameterType="BudgetParams">
call sp_add_budget_EXPENSE(#{year},#{code1},#{code2},#{code3}, #{org}, #{item} ,cast (#{amount} as bigint), #{dt}::date,'admin',NULL,NULL,NULL) call sp_add_budget_EXPENSE(#{year},#{code1},#{code2},#{code3}, #{org}, #{item} ,cast (#{amount} as bigint), #{dt}::date,'admin',NULL,NULL,NULL)
</select> </select>
<select id="callSpUpdateBudgetExpense" resultType="ExpenseResult" parameterType="BudgetParams">
call sp_update_budget_expense(#{seq},#{item} ,#{amount}::int,NULL,NULL,NULL,NULL,NULL)
</select>
<select id="callSpGetbudgetStatOrg" resultType="ExpenseResult" parameterType="BudgetParams"> <select id="callSpGetbudgetStatOrg" resultType="ExpenseResult" parameterType="BudgetParams">
select * select *
from sp_get_budget_statistics_by_org(#{year},#{code},#{user},#{stDate}::date,#{edDate}::date,#{won}) from sp_get_budget_statistics_by_org(#{year},#{code},#{user},#{stDate}::date,#{edDate}::date,#{won})