parent
31fcd9dd69
commit
94b9b3e3de
|
|
@ -33,7 +33,7 @@ public class BudgetController {
|
|||
ModelAndView mav = new ModelAndView("budget/budgeting");
|
||||
if (requestDto.getYear() == null || requestDto.getYear().equals("")) {
|
||||
LocalDate date = LocalDate.now();
|
||||
requestDto.setYear(String.valueOf(date.getYear()));
|
||||
requestDto.setYear(date.getYear());
|
||||
}
|
||||
System.out.println(requestDto.getYear());
|
||||
List<BudgetingList> list = budgetService.selectBudgetingList(loginUser, requestDto);
|
||||
|
|
@ -215,7 +215,8 @@ public class BudgetController {
|
|||
if (requestDto.getYear() != null) {
|
||||
userOrgCode = requestDto.getCode();
|
||||
|
||||
List<ExpenseResult> list = budgetService.selectBudgetExpenseInfo(loginUser, requestDto);
|
||||
// List<ExpenseResult> list = budgetService.selectBudgetExpenseInfo(loginUser, requestDto);
|
||||
List<ExpenseResult> list = budgetService.selectBudgetExpenseInfoList(loginUser, requestDto);
|
||||
mav.addObject("list", list);
|
||||
} else {
|
||||
// 로그인된 해당청 기본선택
|
||||
|
|
@ -226,13 +227,14 @@ public class BudgetController {
|
|||
|
||||
// 첫해 첫날 ~ 오늘날짜 기본세팅
|
||||
LocalDate date = LocalDate.now();
|
||||
String CurrentYear = String.valueOf(date.getYear()) + "-01-01";
|
||||
String CurrentYear = date.getYear() + "-01-01";
|
||||
requestDto.setStDate(LocalDate.parse(CurrentYear));
|
||||
requestDto.setEdDate(date);
|
||||
}
|
||||
//하위청 리스트
|
||||
List<CodeResult> downOrgList = budgetService.selectDownOrg(userOrgCode);
|
||||
mav.addObject("downOrgList", downOrgList);
|
||||
mav.addObject("loginOrgan", loginUser.getOgCd());
|
||||
|
||||
mav.addObject("searchParams", requestDto);
|
||||
|
||||
|
|
@ -241,11 +243,10 @@ public class BudgetController {
|
|||
|
||||
@PostMapping("/expense")
|
||||
public ResultResponse<?> saveExpense(@AuthenticationPrincipal UserInfo loginUser, @RequestBody BudgetDto.ExpenseSaveReqeust requestDto) {
|
||||
budgetService.insertExpense(loginUser, requestDto);
|
||||
return new ResultResponse().successResponse(ResultResponseCode.SUCCESS);
|
||||
return new ResultResponse(budgetService.insertExpense(loginUser, requestDto));
|
||||
}
|
||||
|
||||
/* 예산편성 - 팝업화면 */
|
||||
/* 집행? - 팝업화면 */
|
||||
@GetMapping("/expense/modal/view")
|
||||
public ModelAndView viewExpenseModal(@AuthenticationPrincipal UserInfo loginUser, BudgetDto.ExpenseSearchReqeust requestDto, Pageable pageable) {
|
||||
ModelAndView mav = new ModelAndView("budget/expenseEditModal");
|
||||
|
|
|
|||
|
|
@ -15,8 +15,6 @@ public interface BudgetMapper {
|
|||
UpdateResult callSpUpdateBudgetPlanCodeItem(BudgetParams param);
|
||||
UpdateResult callSpDeleteBudgetPlan(BudgetParams param);
|
||||
List<AssignResult> callSpGetBudgetAssignInfo(BudgetParams param);
|
||||
List<AssignResult> selectBudgetAssignInfoList(BudgetParams params);
|
||||
List<AssignAmount> selectBudgetAssignAmountList(BudgetParams params);
|
||||
List<CodeResult> callSpGetDownOrg(BudgetParams param);
|
||||
List<CodeResult> selectDownOrgList(BudgetParams params);
|
||||
List<CodeResult> callSpGetLowerOrgCodeByName();
|
||||
|
|
@ -29,4 +27,8 @@ public interface BudgetMapper {
|
|||
List<StatsItemResult> callSpGetbudgetStatDetail(BudgetParams params);
|
||||
List<L3CodeResult> callSpGetBudgetCodeL3(BudgetParams params);
|
||||
|
||||
|
||||
List<BudgetName> selectBudgetInfoList(BudgetParams params);
|
||||
List<AssignAmount> selectBudgetAssignAmountList(BudgetParams params);
|
||||
List<ExpenseAmount> selectBudgetExpenseAmountList(BudgetParams params);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public class BudgetDto {
|
|||
@AllArgsConstructor
|
||||
@ToString
|
||||
public static class BudgetingSearchReqeust {
|
||||
private String year;
|
||||
private Integer year;
|
||||
private Long sum;
|
||||
}
|
||||
|
||||
|
|
@ -90,7 +90,7 @@ public class BudgetDto {
|
|||
@AllArgsConstructor
|
||||
@ToString
|
||||
public static class AssignSearchReqeust {
|
||||
private String year;
|
||||
private Integer year;
|
||||
private String code;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate stDate;
|
||||
|
|
|
|||
|
|
@ -5,13 +5,7 @@ import lombok.Setter;
|
|||
|
||||
@Getter
|
||||
@Setter
|
||||
public class AssignResult {
|
||||
String orgCount;
|
||||
String budgetNameL1;
|
||||
String budgetNameL2;
|
||||
String budgetNameL3;
|
||||
String budgetCodeL3;
|
||||
String planAmount = "0";
|
||||
public class AssignResult extends BudgetName{
|
||||
String totalAssignAmount = "0";
|
||||
String periodAssignAmount1 = "0";
|
||||
String sumAssignAmount1 = "0";
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
package com.dbnt.faisp.main.budget.model.result;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class BudgetName {
|
||||
String orgCount;
|
||||
String budgetNameL1;
|
||||
String budgetNameL2;
|
||||
String budgetNameL3;
|
||||
String budgetCodeL3;
|
||||
String planAmount = "0";
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package com.dbnt.faisp.main.budget.model.result;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public class ExpenseAmount {
|
||||
Integer orderSeq;
|
||||
String organCd;
|
||||
String budgetCode;
|
||||
Integer periodAssignAmount;
|
||||
Integer expenseAssignAmount;
|
||||
Integer balanceAmount;
|
||||
Double expenseRate;
|
||||
}
|
||||
|
|
@ -1,63 +1,60 @@
|
|||
package com.dbnt.faisp.main.budget.model.result;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
public class ExpenseResult {
|
||||
String orgCount;
|
||||
String budgetNameL1;
|
||||
String budgetNameL2;
|
||||
String budgetNameL3;
|
||||
String budgetCodeL3;
|
||||
String planAmount;
|
||||
String totalAssignAmount;
|
||||
String expenseTAmount;
|
||||
String balanceTAmount;
|
||||
Integer periodAssignAmount1;
|
||||
Integer expensePAmount1;
|
||||
Integer blanceAmount1;
|
||||
Integer expenseRate1;
|
||||
@Setter
|
||||
public class ExpenseResult extends BudgetName{
|
||||
Integer totalAssignAmount = 0;
|
||||
Integer expenseTAmount = 0;
|
||||
Integer balanceTAmount = 0;
|
||||
|
||||
String periodAssignAmount2;
|
||||
String expensePAmount2;
|
||||
String blanceAmount2;
|
||||
String expenseRate2;
|
||||
Integer periodAssignAmount1 = 0;
|
||||
Integer expensePAmount1 = 0;
|
||||
Integer balanceAmount1 = 0;
|
||||
Double expenseRate1 = 0d;
|
||||
|
||||
String periodAssignAmount3;
|
||||
String expensePAmount3;
|
||||
String blanceAmount3;
|
||||
String expenseRate3;
|
||||
Integer periodAssignAmount2 = 0;
|
||||
Integer expensePAmount2 = 0;
|
||||
Integer balanceAmount2 = 0;
|
||||
Double expenseRate2 = 0d;
|
||||
|
||||
Integer periodAssignAmount3 = 0;
|
||||
Integer expensePAmount3 = 0;
|
||||
Integer balanceAmount3 = 0;
|
||||
Double expenseRate3 = 0d;
|
||||
|
||||
|
||||
String periodAssignAmount4;
|
||||
String expensePAmount4;
|
||||
String blanceAmount4;
|
||||
String expenseRate4;
|
||||
Integer periodAssignAmount4 = 0;
|
||||
Integer expensePAmount4 = 0;
|
||||
Integer balanceAmount4 = 0;
|
||||
Double expenseRate4 = 0d;
|
||||
|
||||
|
||||
String periodAssignAmount5;
|
||||
String expensePAmount5;
|
||||
String blanceAmount5;
|
||||
String expenseRate5;
|
||||
Integer periodAssignAmount5 = 0;
|
||||
Integer expensePAmount5 = 0;
|
||||
Integer balanceAmount5 = 0;
|
||||
Double expenseRate5 = 0d;
|
||||
|
||||
|
||||
String periodAssignAmount6;
|
||||
String expensePAmount6;
|
||||
String blanceAmount6;
|
||||
String expenseRate6;
|
||||
Integer periodAssignAmount6 = 0;
|
||||
Integer expensePAmount6 = 0;
|
||||
Integer balanceAmount6 = 0;
|
||||
Double expenseRate6 = 0d;
|
||||
|
||||
String periodAssignAmount7;
|
||||
String expensePAmount7;
|
||||
String blanceAmount7;
|
||||
String expenseRate7;
|
||||
Integer periodAssignAmount7 = 0;
|
||||
Integer expensePAmount7 = 0;
|
||||
Integer balanceAmount7 = 0;
|
||||
Double expenseRate7 = 0d;
|
||||
|
||||
String periodAssignAmount8;
|
||||
String expensePAmount8;
|
||||
String blanceAmount8;
|
||||
String expenseRate8;
|
||||
Integer periodAssignAmount8 = 0;
|
||||
Integer expensePAmount8 = 0;
|
||||
Integer balanceAmount8 = 0;
|
||||
Double expenseRate8 = 0d;
|
||||
|
||||
String periodAssignAmount9;
|
||||
String expensePAmount9;
|
||||
String blanceAmount9;
|
||||
String expenseRate9;
|
||||
Integer periodAssignAmount9 = 0;
|
||||
Integer expensePAmount9 = 0;
|
||||
Integer balanceAmount9 = 0;
|
||||
Double expenseRate9 = 0d;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ import lombok.Getter;
|
|||
|
||||
@Getter
|
||||
public class YearResult {
|
||||
String year;
|
||||
Integer year;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ public class BudgetService {
|
|||
|
||||
/*return budgetRepository.callSpGetBudgetPlanInfo(requestDto.getYear(), "OG001", "admin");*/
|
||||
BudgetParams param = new BudgetParams();
|
||||
param.setCode1(requestDto.getYear());
|
||||
param.setCode1(requestDto.getYear().toString());
|
||||
param.setCode2("OG001");
|
||||
param.setCode3("admin");
|
||||
return budgetMapper.callSpGetBudgetPlanInfo(param);
|
||||
|
|
@ -276,7 +276,7 @@ public class BudgetService {
|
|||
// 예산배정
|
||||
public List<AssignResult> selectBudgetAssignInfo(UserInfo loginUser, BudgetDto.AssignSearchReqeust requestDto){
|
||||
BudgetParams params = new BudgetParams();
|
||||
params.setYear(requestDto.getYear());
|
||||
params.setYear(requestDto.getYear().toString());
|
||||
params.setCode(requestDto.getCode());
|
||||
params.setUser("admin");
|
||||
params.setStDate(requestDto.getStDate());
|
||||
|
|
@ -286,14 +286,21 @@ public class BudgetService {
|
|||
|
||||
public List<AssignResult> selectBudgetAssignInfoList(BudgetDto.AssignSearchReqeust requestDto){
|
||||
BudgetParams params = new BudgetParams();
|
||||
params.setYear(requestDto.getYear());
|
||||
params.setYear(requestDto.getYear().toString());
|
||||
params.setCode(requestDto.getCode());
|
||||
params.setUser("admin");
|
||||
params.setStDate(requestDto.getStDate());
|
||||
params.setEdDate(requestDto.getEdDate());
|
||||
List<AssignResult> assignResultList = budgetMapper.selectBudgetAssignInfoList(params);
|
||||
List<AssignResult> assignResultList = new ArrayList<>();
|
||||
List<BudgetName> budgetList = budgetMapper.selectBudgetInfoList(params);
|
||||
List<AssignAmount> assignAmountList = budgetMapper.selectBudgetAssignAmountList(params);
|
||||
for(AssignResult result: assignResultList){
|
||||
for(BudgetName budget: budgetList){
|
||||
AssignResult result = new AssignResult();
|
||||
result.setBudgetNameL1(budget.getBudgetNameL1());
|
||||
result.setBudgetNameL2(budget.getBudgetNameL2());
|
||||
result.setBudgetNameL3(budget.getBudgetNameL3());
|
||||
result.setBudgetCodeL3(budget.getBudgetCodeL3());
|
||||
result.setPlanAmount(budget.getPlanAmount());
|
||||
for(AssignAmount amount: assignAmountList){
|
||||
if(result.getBudgetCodeL3().equals(amount.getBudgetCode())){
|
||||
int totalAssignAmount = result.getTotalAssignAmount()==null?0:Integer.parseInt(result.getTotalAssignAmount());
|
||||
|
|
@ -339,6 +346,7 @@ public class BudgetService {
|
|||
}
|
||||
}
|
||||
}
|
||||
assignResultList.add(result);
|
||||
}
|
||||
|
||||
return assignResultList;
|
||||
|
|
@ -393,13 +401,8 @@ public class BudgetService {
|
|||
|
||||
//집행관리
|
||||
public List<ExpenseResult> selectBudgetExpenseInfo(UserInfo loginUser, BudgetDto.AssignSearchReqeust requestDto){
|
||||
// System.out.println(requestDto.getYear());
|
||||
// System.out.println(requestDto.getCode());
|
||||
// System.out.println(java.sql.Date.valueOf(requestDto.getStDate()));
|
||||
// System.out.println(requestDto.getEdDate());
|
||||
// return budgetRepository.callSpGetBudgetExpenseInfo(requestDto.getYear(), requestDto.getCode(), "admin", java.sql.Date.valueOf(requestDto.getStDate()),java.sql.Date.valueOf(requestDto.getEdDate()));
|
||||
BudgetParams params = new BudgetParams();
|
||||
params.setYear(requestDto.getYear());
|
||||
params.setYear(requestDto.getYear().toString());
|
||||
params.setCode(requestDto.getCode());
|
||||
params.setUser("admin");
|
||||
params.setStDate(requestDto.getStDate());
|
||||
|
|
@ -407,49 +410,120 @@ public class BudgetService {
|
|||
return budgetMapper.callSpGetBudgetExpenseInfo(params);
|
||||
}
|
||||
|
||||
public List<ExpenseResult> selectBudgetExpenseInfoList(UserInfo loginUser, BudgetDto.AssignSearchReqeust requestDto){
|
||||
BudgetParams params = new BudgetParams();
|
||||
params.setYear(requestDto.getYear().toString());
|
||||
params.setCode(requestDto.getCode());
|
||||
params.setUser("admin");
|
||||
params.setStDate(requestDto.getStDate());
|
||||
params.setEdDate(requestDto.getEdDate());
|
||||
List<ExpenseResult> expenseList = new ArrayList<>();
|
||||
List<BudgetName> budgetList = budgetMapper.selectBudgetInfoList(params);
|
||||
List<ExpenseAmount> amountList = budgetMapper.selectBudgetExpenseAmountList(params);
|
||||
for(BudgetName budget : budgetList){
|
||||
ExpenseResult result = new ExpenseResult();
|
||||
result.setBudgetNameL1(budget.getBudgetNameL1());
|
||||
result.setBudgetNameL2(budget.getBudgetNameL2());
|
||||
result.setBudgetNameL3(budget.getBudgetNameL3());
|
||||
result.setBudgetCodeL3(budget.getBudgetCodeL3());
|
||||
result.setPlanAmount(budget.getPlanAmount());
|
||||
for(ExpenseAmount amount : amountList){
|
||||
if(result.getBudgetCodeL3().equals(amount.getBudgetCode())){
|
||||
result.setTotalAssignAmount(result.getTotalAssignAmount()+amount.getPeriodAssignAmount());
|
||||
result.setExpenseTAmount(result.getExpenseTAmount()+amount.getExpenseAssignAmount());
|
||||
result.setBalanceTAmount(result.getBalanceTAmount()+ amount.getBalanceAmount());
|
||||
switch (amount.getOrderSeq()){
|
||||
case 1:
|
||||
result.setPeriodAssignAmount1(amount.getPeriodAssignAmount());
|
||||
result.setExpensePAmount1(amount.getExpenseAssignAmount());
|
||||
result.setBalanceAmount1(amount.getBalanceAmount());
|
||||
result.setExpenseRate1(amount.getExpenseRate());
|
||||
break;
|
||||
case 2:
|
||||
result.setPeriodAssignAmount2(amount.getPeriodAssignAmount());
|
||||
result.setExpensePAmount2(amount.getExpenseAssignAmount());
|
||||
result.setBalanceAmount2(amount.getBalanceAmount());
|
||||
result.setExpenseRate2(amount.getExpenseRate());
|
||||
break;
|
||||
case 3:
|
||||
result.setPeriodAssignAmount3(amount.getPeriodAssignAmount());
|
||||
result.setExpensePAmount3(amount.getExpenseAssignAmount());
|
||||
result.setBalanceAmount3(amount.getBalanceAmount());
|
||||
result.setExpenseRate3(amount.getExpenseRate());
|
||||
break;
|
||||
case 4:
|
||||
result.setPeriodAssignAmount4(amount.getPeriodAssignAmount());
|
||||
result.setExpensePAmount4(amount.getExpenseAssignAmount());
|
||||
result.setBalanceAmount4(amount.getBalanceAmount());
|
||||
result.setExpenseRate4(amount.getExpenseRate());
|
||||
break;
|
||||
case 5:
|
||||
result.setPeriodAssignAmount5(amount.getPeriodAssignAmount());
|
||||
result.setExpensePAmount5(amount.getExpenseAssignAmount());
|
||||
result.setBalanceAmount5(amount.getBalanceAmount());
|
||||
result.setExpenseRate5(amount.getExpenseRate());
|
||||
break;
|
||||
case 6:
|
||||
result.setPeriodAssignAmount6(amount.getPeriodAssignAmount());
|
||||
result.setExpensePAmount6(amount.getExpenseAssignAmount());
|
||||
result.setBalanceAmount6(amount.getBalanceAmount());
|
||||
result.setExpenseRate6(amount.getExpenseRate());
|
||||
break;
|
||||
case 7:
|
||||
result.setPeriodAssignAmount7(amount.getPeriodAssignAmount());
|
||||
result.setExpensePAmount7(amount.getExpenseAssignAmount());
|
||||
result.setBalanceAmount7(amount.getBalanceAmount());
|
||||
result.setExpenseRate7(amount.getExpenseRate());
|
||||
break;
|
||||
case 8:
|
||||
result.setPeriodAssignAmount8(amount.getPeriodAssignAmount());
|
||||
result.setExpensePAmount8(amount.getExpenseAssignAmount());
|
||||
result.setBalanceAmount8(amount.getBalanceAmount());
|
||||
result.setExpenseRate8(amount.getExpenseRate());
|
||||
break;
|
||||
case 9:
|
||||
result.setPeriodAssignAmount9(amount.getPeriodAssignAmount());
|
||||
result.setExpensePAmount9(amount.getExpenseAssignAmount());
|
||||
result.setBalanceAmount9(amount.getBalanceAmount());
|
||||
result.setExpenseRate9(amount.getExpenseRate());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
expenseList.add(result);
|
||||
}
|
||||
return expenseList;
|
||||
}
|
||||
|
||||
public List<ExpenseInfoResult> selectBudgetExpense(UserInfo loginUser, BudgetDto.ExpenseSearchReqeust requestDto){
|
||||
// System.out.println(requestDto.getYear());
|
||||
// System.out.println(requestDto.getNameL1());
|
||||
// System.out.println(requestDto.getNameL2());
|
||||
// System.out.println(requestDto.getNameL3());
|
||||
// return budgetRepository.callSpGetBudgetExpense(requestDto.getYear(), requestDto.getNameL1(), requestDto.getNameL2(), requestDto.getNameL3(), "본청");
|
||||
BudgetParams params = new BudgetParams();
|
||||
params.setYear(requestDto.getYear());
|
||||
params.setCode1(requestDto.getNameL1());
|
||||
params.setCode2(requestDto.getNameL2());
|
||||
params.setCode3(requestDto.getNameL3());
|
||||
params.setOrg("본청");
|
||||
params.setOrg(loginUser.getOgCd());
|
||||
return budgetMapper.callSpGetBudgetExpense(params);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void insertExpense(UserInfo loginUser, BudgetDto.ExpenseSaveReqeust requestDto){
|
||||
// System.out.println(requestDto.getYear());
|
||||
// System.out.println(requestDto.getNameL1());
|
||||
// System.out.println(requestDto.getNameL2());
|
||||
// System.out.println(requestDto.getNameL3());
|
||||
// UpdateResult result = budgetRepository.callSpAddBudgetExpense(requestDto.getYear(),requestDto.getNameL1(),requestDto.getNameL2(),requestDto.getNameL3(), "본청", requestDto.getItem(), requestDto.getAmount(), java.sql.Date.valueOf(requestDto.getExpenseDate()));
|
||||
|
||||
public ResultResponseCode insertExpense(UserInfo loginUser, BudgetDto.ExpenseSaveReqeust requestDto){
|
||||
BudgetParams params = new BudgetParams();
|
||||
params.setYear(requestDto.getYear());
|
||||
params.setCode1(requestDto.getNameL1());
|
||||
params.setCode2(requestDto.getNameL2());
|
||||
params.setCode3(requestDto.getNameL3());
|
||||
params.setOrg("본청");
|
||||
params.setOrg(loginUser.getOgCd());
|
||||
params.setItem(requestDto.getItem());
|
||||
params.setAmount(requestDto.getAmount());
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
params.setDt(formatter.format(requestDto.getExpenseDate()));
|
||||
UpdateResult result = budgetMapper.callSpAddBudgetExpense(params);
|
||||
// System.out.println(result.getErrorMessage());
|
||||
// System.out.println(result.getResultCode());
|
||||
// System.out.println(result.getResultCount());
|
||||
if(result.getResultCode().equals("100")) {
|
||||
return;
|
||||
return ResultResponseCode.SUCCESS;
|
||||
}else if(result.getResultCode().equals("71")) {
|
||||
throw new BaseException(ResultResponseCode.EXPENSE_OVER_VALUE);
|
||||
return ResultResponseCode.EXPENSE_OVER_VALUE;
|
||||
} else {
|
||||
throw new BaseException(ResultResponseCode.ERROR);
|
||||
return ResultResponseCode.ERROR;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,58 +36,7 @@
|
|||
select *
|
||||
from sp_get_budget_assign_info(#{year}, #{code}, #{user} ,#{stDate}::date, #{edDate}::date)
|
||||
</select>
|
||||
<select id="selectBudgetAssignInfoList" resultType="AssignResult" parameterType="BudgetParams">
|
||||
SELECT d.budget_code as budgetCodeL3,
|
||||
a.l1_name as budgetNameL1,
|
||||
b.l2_name as budgetNameL2,
|
||||
c.l3_name as budgetNameL3,
|
||||
d.amount as plan_amount
|
||||
FROM public.tbl_budget_code_l1 A
|
||||
inner join public.tbl_budget_code_l2 B on a.l1_code = b.l1_code
|
||||
inner join public.tbl_budget_code_l3 C on b.l2_code = c.l2_code and c.use_tag = 'Y'
|
||||
inner join public.tbl_budget_plan D on c.l3_code = d.budget_code and d.org_code = #{code}
|
||||
WHERE a.L1_YEAR = #{year}
|
||||
ORDER BY d.budget_code ASC
|
||||
</select>
|
||||
<select id="selectBudgetAssignAmountList" resultType="AssignAmount" parameterType="BudgetParams">
|
||||
select oc.order_seq,
|
||||
oc.organ_cd,
|
||||
total.budget_code,
|
||||
coalesce(tba.period_assign_amount, 0) as period_assign_amount,
|
||||
coalesce(total.sum_assign_amount, 0) as sum_assign_amount
|
||||
from (
|
||||
select l_org_code, budget_code, sum(amount) as sum_assign_amount
|
||||
from tbl_budget_assign
|
||||
where h_org_code = #{code}
|
||||
and EXTRACT( year FROM assign_date ) = ${year}
|
||||
group by l_org_code, budget_code
|
||||
) total
|
||||
left outer join
|
||||
(
|
||||
select h_org_code, l_org_code, budget_code, sum(amount) as period_assign_amount
|
||||
from tbl_budget_assign
|
||||
where h_org_code = #{code}
|
||||
and assign_date >= #{stDate}::date
|
||||
and assign_date <= #{edDate}::date
|
||||
group by h_org_code, l_org_code, budget_code
|
||||
) tba on tba.l_org_code = total.l_org_code and tba.budget_code = total.budget_code
|
||||
inner join (
|
||||
select (ROW_NUMBER() OVER()) AS order_seq, *
|
||||
from (
|
||||
select organ_cd
|
||||
from (
|
||||
select #{code} as organ_cd
|
||||
union all
|
||||
select organ_cd
|
||||
from organ_config
|
||||
where parent_organ = #{code}
|
||||
) a
|
||||
inner join code_mgt b on a.organ_cd = b.item_cd
|
||||
order by b.order_num
|
||||
) a
|
||||
) oc on total.l_org_code = oc.organ_cd
|
||||
order by order_seq, organ_cd, budget_code
|
||||
</select>
|
||||
|
||||
<select id="callSpGetDownOrg" resultType="CodeResult" parameterType="BudgetParams">
|
||||
select org_code as orgCode,
|
||||
org_name as orgName
|
||||
|
|
@ -140,4 +89,102 @@
|
|||
select *
|
||||
from sp_get_budget_code_l3(#{year},null,null,null)
|
||||
</select>
|
||||
|
||||
<select id="selectBudgetInfoList" resultType="BudgetName" parameterType="BudgetParams">
|
||||
SELECT d.budget_code as budgetCodeL3,
|
||||
a.l1_name as budgetNameL1,
|
||||
b.l2_name as budgetNameL2,
|
||||
c.l3_name as budgetNameL3,
|
||||
d.amount as plan_amount
|
||||
FROM public.tbl_budget_code_l1 A
|
||||
inner join public.tbl_budget_code_l2 B on a.l1_code = b.l1_code
|
||||
inner join public.tbl_budget_code_l3 C on b.l2_code = c.l2_code and c.use_tag = 'Y'
|
||||
inner join public.tbl_budget_plan D on c.l3_code = d.budget_code and d.org_code = #{code}
|
||||
WHERE a.L1_YEAR = #{year}
|
||||
ORDER BY d.budget_code ASC
|
||||
</select>
|
||||
<select id="selectBudgetAssignAmountList" resultType="AssignAmount" parameterType="BudgetParams">
|
||||
select oc.order_seq,
|
||||
oc.organ_cd,
|
||||
total.budget_code,
|
||||
coalesce(tba.period_assign_amount, 0) as period_assign_amount,
|
||||
coalesce(total.sum_assign_amount, 0) as sum_assign_amount
|
||||
from (
|
||||
select l_org_code, budget_code, sum(amount) as sum_assign_amount
|
||||
from tbl_budget_assign
|
||||
where h_org_code = #{code}
|
||||
and EXTRACT( year FROM assign_date ) = ${year}
|
||||
group by l_org_code, budget_code
|
||||
) total
|
||||
left outer join
|
||||
(
|
||||
select h_org_code, l_org_code, budget_code, sum(amount) as period_assign_amount
|
||||
from tbl_budget_assign
|
||||
where h_org_code = #{code}
|
||||
and assign_date >= #{stDate}::date
|
||||
and assign_date <= #{edDate}::date
|
||||
group by h_org_code, l_org_code, budget_code
|
||||
) tba on tba.l_org_code = total.l_org_code and tba.budget_code = total.budget_code
|
||||
inner join (
|
||||
select (ROW_NUMBER() OVER()) AS order_seq, *
|
||||
from (
|
||||
select organ_cd
|
||||
from (
|
||||
select #{code} as organ_cd
|
||||
union all
|
||||
select organ_cd
|
||||
from organ_config
|
||||
where parent_organ = #{code}
|
||||
) a
|
||||
inner join code_mgt b on a.organ_cd = b.item_cd
|
||||
order by b.order_num
|
||||
) a
|
||||
) oc on total.l_org_code = oc.organ_cd
|
||||
order by order_seq, organ_cd, budget_code
|
||||
</select>
|
||||
<select id="selectBudgetExpenseAmountList" resultType="ExpenseAmount" parameterType="BudgetParams">
|
||||
select order_seq,
|
||||
organ_cd,
|
||||
budget_code,
|
||||
period_assign_amount,
|
||||
expense_assign_amount,
|
||||
period_assign_amount-expense_assign_amount as balance_amount,
|
||||
round(expense_assign_amount/period_assign_amount*100 ,2) as expense_rate
|
||||
from (
|
||||
select oc.order_seq, oc.organ_cd, total.budget_code,
|
||||
coalesce(total.sum_assign_amount, 0) as period_assign_amount,
|
||||
coalesce(expn.expense_assign_amount, 0) as expense_assign_amount
|
||||
from (
|
||||
select l_org_code, budget_code, sum(amount) as sum_assign_amount
|
||||
from tbl_budget_assign
|
||||
where h_org_code = #{code}
|
||||
and EXTRACT( year FROM assign_date ) = ${year}
|
||||
and amount > 0
|
||||
group by l_org_code, budget_code
|
||||
) total
|
||||
inner join (
|
||||
select (ROW_NUMBER() OVER()) AS order_seq, *
|
||||
from (
|
||||
select organ_cd
|
||||
from (
|
||||
select #{code} as organ_cd
|
||||
union all
|
||||
select organ_cd
|
||||
from organ_config
|
||||
where parent_organ = #{code}
|
||||
) a
|
||||
inner join code_mgt b on a.organ_cd = b.item_cd
|
||||
order by b.order_num
|
||||
) a
|
||||
) oc on total.l_org_code = oc.organ_cd
|
||||
left outer join (
|
||||
select org_code, budget_code, sum(amount) as expense_assign_amount
|
||||
from tbl_budget_expense
|
||||
where expense_date >= #{stDate}::date
|
||||
and expense_date <= #{edDate}::date
|
||||
group by org_code, budget_code
|
||||
) expn on total.l_org_code = expn.org_code and total.budget_code = expn.budget_code
|
||||
order by order_seq, organ_cd, budget_code
|
||||
) a
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -30,9 +30,10 @@
|
|||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="year" id="searchYear">
|
||||
<option th:each="info, i : ${yearList}" th:value="${info.year}"
|
||||
th:selected="${searchParams?.year eq info.year}"
|
||||
th:text="${info.year}"></option>
|
||||
<th:block th:each="year, i : ${yearList}">
|
||||
<option th:value="${year.year}" th:text="${year.year}"
|
||||
th:selected="${searchParams.year eq year.year}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
|
|
@ -83,6 +84,7 @@
|
|||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<th:block th:if="${#temporals.year(#temporals.createNow())<= searchParams.year}">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<button class="btn btn-success" id="addBtn">항목추가</button>
|
||||
|
|
@ -97,7 +99,7 @@
|
|||
<button class="btn btn-primary" id="budgetDeleteBtn">예산삭제</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</th:block>
|
||||
<div class="modal fade" id="editModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="faRptEditModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-xxl modal-dialog-scrollable">
|
||||
<div class="modal-content" id="editModalContent"></div>
|
||||
|
|
|
|||
|
|
@ -38,12 +38,17 @@
|
|||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<th:block th:if="${loginOrgan eq 'OG001'}">
|
||||
<select class="form-select form-select-sm" name="code" id="code">
|
||||
<option value="OG001" th:selected="${searchParams?.code eq '본청'}">본청</option>
|
||||
<option th:each="code, i : ${codeList}" th:value="${code?.orgCode}"
|
||||
<option value="OG001">본청</option>
|
||||
<option th:each="code : ${downOrgList}" th:value="${code?.orgCode}"
|
||||
th:text="${code?.orgName}" th:selected="${searchParams?.code eq code.orgCode}">
|
||||
</option>
|
||||
</select>
|
||||
</th:block>
|
||||
<th:block th:unless="${loginOrgan eq 'OG001'}">
|
||||
<input type="hidden" name="code" id="code" th:value="${loginOrgan}">
|
||||
</th:block>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
|
|
@ -69,12 +74,14 @@
|
|||
<th rowspan="2">예산총액</th>
|
||||
<th rowspan="2">예산총배정액<br>(누적)</th>
|
||||
<th colspan="2">집행액(총계)</th>
|
||||
<th colspan="4" class="w-400px" th:each="orglist : ${downOrgList}" th:text="${orglist.orgName}"></th>
|
||||
<th:block th:each="org:${downOrgList}">
|
||||
<th colspan="4" class="w-400px" th:text="${org.orgName}"></th>
|
||||
</th:block>
|
||||
</tr>
|
||||
<tr class="table-secondary">
|
||||
<th>지출총액</th>
|
||||
<th>보유잔액</th>
|
||||
<th:block th:each="orglist : ${downOrgList}">
|
||||
<th:block th:each="org : ${downOrgList}">
|
||||
<th class="w-100px">배정액</th>
|
||||
<th class="w-100px">지출총액</th>
|
||||
<th class="w-100px">잔액</th>
|
||||
|
|
@ -95,53 +102,53 @@
|
|||
<td th:text="${#numbers.formatInteger(info.expenseTAmount,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceTAmount,1,'COMMA')}" class="text-end"></td>
|
||||
<th:block th:each="orglist, j : ${downOrgList}">
|
||||
<th:block th:if="${j.index} == '0'">
|
||||
<th:block th:if="${j.index} == '0'"><!--배정, 집행, 잔액, 률-->
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount1,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount1,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount1,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate1,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount1,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(info.expenseRate1, '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '1'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount2,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount2,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount2,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate2,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount2,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(info.expenseRate2, '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '2'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount3,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount3,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount3,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate3,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount3,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(info.expenseRate3, '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '3'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount4,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount4,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount4,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate4,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount4,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(info.expenseRate4, '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '4'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount5,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount5,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount5,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate5,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount5,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(info.expenseRate5, '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '5'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount6,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount6,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount6,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate6,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount6,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(info.expenseRate6, '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '6'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount7,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount7,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount7,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate7,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount7,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(info.expenseRate7, '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '7'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount8,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount8,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount8,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate8,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount8,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(info.expenseRate8, '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -115,49 +115,49 @@
|
|||
<th:block th:if="${j.index} == '0'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount1,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount1,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount1,1,'COMMA')}" class="text-end">11</td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount1,1,'COMMA')}" class="text-end">11</td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate1,1,'COMMA')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '1'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount2,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount2,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount2,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount2,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate2,1,'COMMA')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '2'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount3,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount3,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount3,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount3,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate3,1,'COMMA')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '3'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount4,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount4,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount4,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount4,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate4,1,'COMMA')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '4'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount5,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount5,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount5,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount5,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate5,1,'COMMA')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '5'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount6,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount6,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount6,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount6,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate6,1,'COMMA')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '6'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount7,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount7,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount7,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount7,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate7,1,'COMMA')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '7'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount8,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount8,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount8,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceAmount8,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate8,1,'COMMA')}" class="text-end"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
|
|
|
|||
Loading…
Reference in New Issue