FnaBudgetfeeTypeDownload.jsp
10.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<%@page import="org.apache.commons.lang.StringEscapeUtils" %>
<%@ page import="weaver.file.ExcelSheet" %>
<%@ page import="weaver.file.ExcelFile" %>
<%@ page import="weaver.systeminfo.SystemEnv" %>
<%@ page import="weaver.hrm.User" %>
<%@ page import="org.apache.commons.lang.StringUtils" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.fna.general.ExcelUtils" %>
<%@ page import="weaver.fna.general.IExcelSheet" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ include file="/systeminfo/init_wev8.jsp" %>
<jsp:useBean id="ExcelFile" class="weaver.file.ExcelFile" scope="session"/>
<%!
private void secondSheet(ExcelUtils excelUtils,RecordSet rs, User user) {
//把第一行的头放入到excel中去。
String[] titles = {SystemEnv.getHtmlLabelName(15409,user.getLanguage()),//科目名称
SystemEnv.getHtmlLabelName(21108,user.getLanguage()),//科目编码
SystemEnv.getHtmlLabelNames("596,15409",user.getLanguage()),//上级科目名称
SystemEnv.getHtmlLabelNames("596,21108",user.getLanguage()),//上级科目编码
SystemEnv.getHtmlLabelName(15388,user.getLanguage()),//预算周期
SystemEnv.getHtmlLabelName(130715,user.getLanguage()),//预算可为负数
SystemEnv.getHtmlLabelName(128826,user.getLanguage()),//可编制预算
SystemEnv.getHtmlLabelName(32099,user.getLanguage()),//下级统一费控
SystemEnv.getHtmlLabelName(30786,user.getLanguage()),//是否结转
SystemEnv.getHtmlLabelName(602,user.getLanguage()),//状态
SystemEnv.getHtmlLabelName(18429,user.getLanguage()),//科目预警值
SystemEnv.getHtmlLabelName(15389,user.getLanguage()),//允许偏差
SystemEnv.getHtmlLabelName(15385,user.getLanguage()),//收支类型
SystemEnv.getHtmlLabelName(433,user.getLanguage()),//描述
SystemEnv.getHtmlLabelName(15513,user.getLanguage()),//显示顺序
SystemEnv.getHtmlLabelName(132177,user.getLanguage())//会计科目编码
};
excelUtils.setTitles(titles);
excelUtils.setDataColumns(new String[]{"name","codeName","pname", "pid", "feeperiod","budgetCanBeNegative", "isEditFeeType", "groupCtrl", "budgetAutoMove", "Archive", "alertvalue", "agreegap", "feetype", "description","displayOrder","codeName2"});
final String sheetName = "导入科目";
excelUtils.addSheet(new IExcelSheet() {
public void init(Map<String, ExcelSheet> sheetMap,ExcelFile excelFile) {
ExcelSheet sheet = new ExcelSheet();
excelFile.addSheet(sheetName,sheet);
sheetMap.put(sheetName,sheet);
}
});
excelUtils.makeSheet(sheetName, rs);
}
private void firstSheet(ExcelUtils excelUtils, User user) {
String[] titles = new String[]{"",
SystemEnv.getHtmlLabelName(15409,user.getLanguage()),//科目名称
SystemEnv.getHtmlLabelName(21108,user.getLanguage()),//科目编码
SystemEnv.getHtmlLabelNames("596,15409",user.getLanguage()),//上级科目名称
SystemEnv.getHtmlLabelNames("596,21108",user.getLanguage()),//上级科目编码
SystemEnv.getHtmlLabelName(15388,user.getLanguage()),//预算周期
SystemEnv.getHtmlLabelName(130715,user.getLanguage()),//预算可为负数
SystemEnv.getHtmlLabelName(128826,user.getLanguage()),//可编制预算
SystemEnv.getHtmlLabelName(32099,user.getLanguage()),//下级统一费控
SystemEnv.getHtmlLabelName(30786,user.getLanguage()),//是否结转
SystemEnv.getHtmlLabelName(602,user.getLanguage()),//状态
SystemEnv.getHtmlLabelName(18429,user.getLanguage()),//科目预警值
SystemEnv.getHtmlLabelName(15389,user.getLanguage()),//允许偏差
SystemEnv.getHtmlLabelName(15385,user.getLanguage()),//收支类型
SystemEnv.getHtmlLabelName(433,user.getLanguage()),//描述
SystemEnv.getHtmlLabelName(15513,user.getLanguage()),//显示顺序
SystemEnv.getHtmlLabelName(132177,user.getLanguage())//会计科目编码
};
String[] values = new String[]{
SystemEnv.getHtmlLabelName(128884,user.getLanguage()),//"导入说明",
SystemEnv.getHtmlLabelName(128885,user.getLanguage()),//"预算科目名称(必填)",
SystemEnv.getHtmlLabelName(128886,user.getLanguage()),//"预算科目编码(当科目编码作为重复验证字段时,该字段必填)",
SystemEnv.getHtmlLabelName(128887,user.getLanguage()),//"预算科目名称(当科目名称作为重复验证字段时,且该科目非一级科目时,该字段必填)",
SystemEnv.getHtmlLabelName(128888,user.getLanguage()),//"预算科目编码(当科目编码作为重复验证字段时,且该科目非一级科目时,该字段必填)",
SystemEnv.getHtmlLabelName(128889,user.getLanguage()),//"可选值:每月、每季度、每半年、每年(一级科目必填)",
SystemEnv.getHtmlLabelName(130836,user.getLanguage()),//"下级统一费控的科目必填,可选值:是、否。为是时,是否结转必须为否"
SystemEnv.getHtmlLabelName(128890,user.getLanguage()),//"同一科目上下级条线中只有一个科目可以开启可编制预算选项",
SystemEnv.getHtmlLabelName(128918,user.getLanguage()),//"在开启了可编制预算的科目及其上级科目中,只有一个科目可以开启(且必须有一个开启)下级统一费控选项",
SystemEnv.getHtmlLabelName(128950,user.getLanguage()),//"下级统一费控的科目必填,可选值:是、否",
SystemEnv.getHtmlLabelName(128892,user.getLanguage()),//"可选值:未封存、已封存(为空表示未封存)",
SystemEnv.getHtmlLabelName(128893,user.getLanguage()),//"整数",
SystemEnv.getHtmlLabelName(128893,user.getLanguage()),//"整数",
SystemEnv.getHtmlLabelName(128894,user.getLanguage()),//"可选值:收入、支出(为空表示支出)",
SystemEnv.getHtmlLabelName(128895,user.getLanguage()),//"文本",
SystemEnv.getHtmlLabelName(128896,user.getLanguage()),//"整数部分最多三位,小数部分最多三位的数字(可为负数)"
SystemEnv.getHtmlLabelName(128895,user.getLanguage())//"文本",
};
final String sheetName = SystemEnv.getHtmlLabelName(33803, user.getLanguage());
excelUtils.addSheet(new IExcelSheet() {
public void init(Map<String, ExcelSheet> sheetMap,ExcelFile excelFile) {
ExcelSheet sheet = new ExcelSheet();
sheet.addColumnwidth(6000);
sheet.addColumnwidth(30000);
excelFile.addSheet(sheetName,sheet);
sheetMap.put(sheetName,sheet);
}
});
excelUtils.makeSheet(sheetName,titles, values);
}
public void downloadExcel(ExcelUtils excelUtils,User user,RecordSet rs) {
firstSheet(excelUtils, user);
secondSheet(excelUtils,rs, user);
//设置excel文件的名字
excelUtils.getExcelFile().setFilename("FnaBudgetTypeBatchImp" );
}
public RecordSet query(String ids) {
String sqlMsg = "SELECT fbt.id,fbt.name,fbt.codeName codeName,fbt.codeName2 codeName2,pfbt.name pname,pfbt.codeName pid,fbt.groupDispalyOrder," +
" CASE WHEN fbt.feeperiod=1 and fbt.feelevel=1 THEN '每月' " +
" WHEN fbt.feeperiod=2 and fbt.feelevel=1 THEN '每季度' " +
" WHEN fbt.feeperiod=3 and fbt.feelevel=1 THEN '每半年' " +
" WHEN fbt.feeperiod=4 and fbt.feelevel=1 THEN '每年' " +
" END feeperiod ," +
" CASE " +
" WHEN fbt.budgetCanBeNegative = 1 THEN '是' " +
" ELSE '否' END budgetCanBeNegative, " +//--预算可为负数
" CASE " +
" WHEN fbt.isEditFeeType=1 THEN '是' " +
" ELSE '否' END isEditFeeType, " +//--可编制预算
" CASE " +
" WHEN fbt.groupCtrl='1' THEN '是' " +
" ELSE '否' END groupCtrl, " +//--下级统一费控
" CASE " +
" WHEN fbt.groupCtrl='1' and fbt.budgetAutoMove=1 THEN '是' " +
" WHEN fbt.groupCtrl='1' and (fbt.budgetAutoMove is null or fbt.budgetAutoMove=0) THEN '否' END budgetAutoMove, " +//--是否结转
"case fbt.Archive when 1 then '已封存' else '未封存'" +
"end Archive, " +//--状态
"fbt.alertvalue," +//--科目预警
"fbt.agreegap," +//--允许偏差
" case when (fbt.isEditFeeType=1 and fbt.feetype=1) then '支出' when (fbt.isEditFeeType=1 and fbt.feetype=2) then '收入' else '' end feetype, " +//收支类型
"fbt.description ," +// -- 描述
"fbt.displayOrder "+//显示顺序
"FROM FnaBudgetfeeType fbt left join FnaBudgetfeeType pfbt on fbt.supsubject=pfbt.id WHERE 1=1 ";
if(StringUtils.isNotBlank(ids)) {
sqlMsg += "AND fbt.id IN("+ StringEscapeUtils.escapeSql(ids)+" )" ;
}
sqlMsg += " order by fbt.groupDispalyOrder,fbt.feeperiod,fbt.feelevel,fbt.displayOrder,fbt.codename,fbt.name,fbt.id";
RecordSet rs = new RecordSet();
rs.executeQuery(sqlMsg);
return rs;
}
%>
<%
boolean canEdit = HrmUserVarify.checkUserRight("FnaLedgerAdd:Add",user) || HrmUserVarify.checkUserRight("FnaLedgerEdit:Edit",user);
if(!canEdit){
response.sendRedirect("/notice/noright.jsp") ;
return ;
}
/**
* 得到前台传递的参数
*
*/
String type = request.getParameter("type");
RecordSet rs = null;
if(type !=null && type.equalsIgnoreCase("all")) {
rs = query("");
}else if(type != null && type.equalsIgnoreCase("select")) {
String ids = request.getParameter("ids");
/**
* 对ids进行处理
*/
ids = ids.substring(0,ids.length()-1);
rs = query(ids);
}
ExcelUtils excelUtils = new ExcelUtils();
excelUtils.setExcelFile(ExcelFile);
downloadExcel(excelUtils,user,rs);
%>
<iframe id="ExcelOut" name="ExcelOut" border=0 frameborder=no noresize=NORESIZE height="0%" width="0%"></iframe>
<script type="text/javascript">
var iframe_ExcelOut = document.getElementById("ExcelOut");
iframe_ExcelOut.src = "/weaver/weaver.file.ExcelOut";
</script>