Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
N
njzsb
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
徐州
njzsb
Commits
e5fb46e4
Commit
e5fb46e4
authored
Jan 13, 2023
by
徐州
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成全部逻辑
parent
5bd3624c
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
272 additions
and
91 deletions
+272
-91
ISFJ_v2_0_139_7_BAISC_JDK14.jar
WebRoot/WEB-INF/lib/ISFJ_v2_0_139_7_BAISC_JDK14.jar
+0
-0
crypto.jar
WebRoot/WEB-INF/lib/crypto.jar
+0
-0
netsign.jar
WebRoot/WEB-INF/lib/netsign.jar
+0
-0
netsignapi.jar
WebRoot/WEB-INF/lib/netsignapi.jar
+0
-0
nsframework.jar
WebRoot/WEB-INF/lib/nsframework.jar
+0
-0
Fstzs_Add.jsp
WebRoot/WEB-INF/pages/fstzs/Fstzs_Add.jsp
+1
-1
Fstzs_Print.jsp
WebRoot/WEB-INF/pages/fstzs/Fstzs_Print.jsp
+2
-2
Fstzs_Yjk.jsp
WebRoot/WEB-INF/pages/fstzs/Fstzs_Yjk.jsp
+61
-26
njzsb.iml
njzsb.iml
+2
-0
sql-map-fstzs.xml
src/com/jshx/fstzs/conf/sql-map-fstzs.xml
+2
-2
struts-fstzs.xml
src/com/jshx/fstzs/conf/struts-fstzs.xml
+5
-1
Fstzs.java
src/com/jshx/fstzs/entity/Fstzs.java
+8
-6
FsRequest.java
src/com/jshx/fstzs/fsutil/FsRequest.java
+15
-9
FsSignUtil.java
src/com/jshx/fstzs/fsutil/FsSignUtil.java
+105
-0
netsignagent.properties
src/com/jshx/fstzs/fsutil/netsignagent.properties
+32
-0
FstzsAction.java
src/com/jshx/fstzs/web/FstzsAction.java
+39
-44
No files found.
WebRoot/WEB-INF/lib/ISFJ_v2_0_139_7_BAISC_JDK14.jar
0 → 100644
View file @
e5fb46e4
File added
WebRoot/WEB-INF/lib/crypto.jar
0 → 100644
View file @
e5fb46e4
File added
WebRoot/WEB-INF/lib/netsign.jar
0 → 100644
View file @
e5fb46e4
File added
WebRoot/WEB-INF/lib/netsignapi.jar
0 → 100644
View file @
e5fb46e4
File added
WebRoot/WEB-INF/lib/nsframework.jar
0 → 100644
View file @
e5fb46e4
File added
WebRoot/WEB-INF/pages/fstzs/Fstzs_Add.jsp
View file @
e5fb46e4
...
...
@@ -82,7 +82,7 @@
<tr
class=
"table-line-td"
>
<th
width=
"15%"
>
建设单位
</th>
<td
width=
"35%"
>
<input
id=
"jsdw"
name=
"fstzsXm.jsdwmc"
style=
"width:96%;margin-top: 6px;"
value=
"${fstzsXm.jsdwmc}"
disabled
/>
<input
id=
"jsdw"
name=
"fstzsXm.jsdwmc"
style=
"width:96%;margin-top: 6px;"
value=
"${fstzsXm.jsdwmc}"
/>
</td>
...
...
WebRoot/WEB-INF/pages/fstzs/Fstzs_Print.jsp
View file @
e5fb46e4
...
...
@@ -231,7 +231,7 @@
class=
'f7'
>
${fstzsXm.jkrlx}
</div>
<div
id=
'f8'
draggable=
'true'
class=
'f8'
>
${fstzsXm.
zhanghao
}
class=
'f8'
>
${fstzsXm.
kpsjgl.skrzh
}
</div>
<c:choose>
...
...
@@ -248,7 +248,7 @@
</c:otherwise>
</c:choose>
<div
id=
'f10'
draggable=
'true'
class=
'f10'
>
${fstzsXm.khh}
class=
'f10'
>
${fstzsXm.k
psjgl.skrk
hh}
</div>
<div
id=
'f11'
draggable=
'true'
class=
'f11'
>
${fstzsXm.kpsjgl.xmbm}
...
...
WebRoot/WEB-INF/pages/fstzs/Fstzs_Yjk.jsp
View file @
e5fb46e4
...
...
@@ -13,6 +13,11 @@
<
%@
include
file=
"/common/jsLib.jsp"
%
>
<script>
function
reloadDate
(){
$
(
'#pagination'
).
datagrid
(
'clearSelections'
);
search_fstzs
();
}
function
search_fstzs
(){
var
queryParams
=
{
...
...
@@ -22,7 +27,7 @@
"fstzs.yjje"
:
$
(
"#yjje"
).
val
(),
"fstzs.jkm"
:
$
(
"#jkm"
).
val
(),
"fstzs.status"
:
$
(
"#status"
).
val
(),
"fstzs.
isKp"
:
$
(
"#isKp
"
).
val
(),
"fstzs.
kpState"
:
$
(
"#kpState
"
).
val
(),
"kssj"
:
$
(
"#kssj"
).
val
(),
"jssj"
:
$
(
"#jssj"
).
val
()
};
...
...
@@ -45,48 +50,51 @@
"kssj"
:
$
(
"#kssj"
).
val
(),
"jssj"
:
$
(
"#jssj"
).
val
()
},
frozenColumns
:[[
{
field
:
'id'
,
checkbox
:
true
}
]],
//
frozenColumns:[[
//
{field:'id',checkbox:true}
//
]],
columns
:[[
{
field
:
'op'
,
title
:
'操作'
,
width
:
8
0
,
align
:
'center'
,
formatter
:
function
(
value
,
rec
){
{
field
:
'op'
,
title
:
'操作'
,
width
:
12
0
,
align
:
'center'
,
formatter
:
function
(
value
,
rec
){
var
result
=
""
;
if
(
rec
.
isKp
==
0
)
{
if
(
rec
.
kpState
==
0
)
{
result
+=
"<a class='btn_01_mini' onclick=kaipiao('"
+
rec
.
id
+
"') >开票<b></b></a>"
;
}
else
if
(
rec
.
kpState
==
2
)
{
result
+=
"<a class='btn_01_mini' onclick=kaipiaoCx('"
+
rec
.
id
+
"') >查询<b></b></a>"
;
}
return
result
;
}},
{
field
:
'jkm'
,
title
:
'缴款码'
,
width
:
1
0
0
},
{
field
:
'bzrq'
,
title
:
'编制日期'
,
width
:
1
0
0
},
{
field
:
'slbh'
,
title
:
'受理编号'
,
width
:
1
0
0
},
{
field
:
'jsdwmc'
,
title
:
'建设单位名称'
,
width
:
1
0
0
},
{
field
:
'gcxmmc'
,
title
:
'工程项目名称'
,
width
:
1
0
0
},
{
field
:
'jkm'
,
title
:
'缴款码'
,
width
:
1
5
0
},
{
field
:
'bzrq'
,
title
:
'编制日期'
,
width
:
1
5
0
},
{
field
:
'slbh'
,
title
:
'受理编号'
,
width
:
1
5
0
},
{
field
:
'jsdwmc'
,
title
:
'建设单位名称'
,
width
:
1
5
0
},
{
field
:
'gcxmmc'
,
title
:
'工程项目名称'
,
width
:
1
5
0
},
{
field
:
'jkr'
,
title
:
'缴款人'
,
width
:
100
},
{
field
:
'yjje'
,
title
:
'金额'
,
width
:
100
},
{
field
:
'pjdm'
,
title
:
'票据代码'
,
width
:
1
0
0
},
{
field
:
'dzph'
,
title
:
'票据号码'
,
width
:
1
0
0
,
formatter
:
function
(
value
,
row
,
index
){
{
field
:
'pjdm'
,
title
:
'票据代码'
,
width
:
1
5
0
},
{
field
:
'dzph'
,
title
:
'票据号码'
,
width
:
1
5
0
,
formatter
:
function
(
value
,
row
,
index
){
return
"<a class='to_path' target='_black' href='"
+
row
.
pjUrl
+
"'>"
+
value
+
"<b></b></a>"
}},
{
field
:
'
isKp
'
,
title
:
'开票状态'
,
width
:
100
,
formatter
:
function
(
value
,
row
,
index
){
{
field
:
'
kpState
'
,
title
:
'开票状态'
,
width
:
100
,
formatter
:
function
(
value
,
row
,
index
){
if
(
value
==
0
)
return
"未开票"
;
if
(
value
==
2
)
return
"开票中"
;
return
"已开票"
;
}},
{
field
:
'isJk'
,
title
:
'缴款状态'
,
width
:
100
,
formatter
:
function
(
value
,
row
,
index
){
if
(
value
==
0
)
return
"未缴款"
;
return
"已缴款"
;
}},
{
field
:
'jkTime'
,
title
:
'缴款日期'
,
width
:
1
0
0
},
{
field
:
'jkTime'
,
title
:
'缴款日期'
,
width
:
1
2
0
},
{
field
:
'jkqd'
,
title
:
'缴款渠道'
,
width
:
100
}
]]
,
toolbar
:[{
id
:
'btnkaipiao'
,
text
:
'批量开票'
,
iconCls
:
'icon-ok'
,
handler
:
function
(){
addNew
();
}
}
]
]]
//
toolbar:[{
//
id:'btnkaipiao',
//
text:'批量开票',
//
iconCls:'icon-ok',
//
handler:function(){
// kaipiaoBat
();
//
}
//
}
//
]
}));
});
...
...
@@ -119,6 +127,32 @@
}
function
kaipiaoCx
(
id
){
$
.
ajax
({
url
:
"${ctx}/jsp/fstzs/kaipiaoCx.action"
,
type
:
'post'
,
dataType
:
'json'
,
data
:{
id
:
id
},
async
:
false
,
error
:
function
(
data
)
{
$
.
messager
.
alert
(
'错误'
,
data
.
message
);
},
success
:
function
(
data
)
{
if
(
data
.
result
)
{
$
.
messager
.
alert
(
"提示"
,
data
.
message
)
reloadDate
()
}
else
{
$
.
messager
.
alert
(
'错误'
,
data
.
message
);
}
}
});
}
</script>
</head>
<body>
...
...
@@ -164,10 +198,11 @@
<td></td>
<th
width=
"12%"
>
开票状态
</th>
<td
width=
"12%"
>
<select
name=
"rfxm.
isKp"
id=
"isKp
"
>
<select
name=
"rfxm.
kpState"
id=
"kpState
"
>
<option
value=
""
>
请选择
</option>
<option
value=
"0"
>
未开票
</option>
<option
value=
"1"
>
已开票
</option>
<option
value=
"2"
>
开票中
</option>
</select>
</td>
</tr>
...
...
njzsb.iml
View file @
e5fb46e4
...
...
@@ -31,5 +31,6 @@
<orderEntry
type=
"library"
exported=
""
name=
"lib"
level=
"project"
/>
<orderEntry
type=
"library"
exported=
""
name=
"fr-applet-8.0"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"PROVIDED"
name=
"TomEE 8.5.47"
level=
"application_server_libraries"
/>
<orderEntry
type=
"library"
name=
"crypto1"
level=
"project"
/>
</component>
</module>
\ No newline at end of file
src/com/jshx/fstzs/conf/sql-map-fstzs.xml
View file @
e5fb46e4
...
...
@@ -28,8 +28,8 @@
<![CDATA[and t.jkm like :jkm]]>
</isNotEmpty>
<isNotEmpty
property=
"
isKp
"
>
<![CDATA[and t.isKp = :
isKp
]]>
<isNotEmpty
property=
"
kpState
"
>
<![CDATA[and t.isKp = :
kpState
]]>
</isNotEmpty>
<isNotEmpty
property=
"kssj"
>
...
...
src/com/jshx/fstzs/conf/struts-fstzs.xml
View file @
e5fb46e4
...
...
@@ -86,10 +86,14 @@
<result
name=
"invalid.token"
>
/invalid.jsp
</result>
</action>
<!--
激活项目,参数传到财政系统
-->
<!--
开票操作
-->
<action
name=
"kaipiao"
class=
"com.jshx.fstzs.web.FstzsAction"
method=
"kaipiao"
>
</action>
<!--开票查询结果-->
<action
name=
"kaipiaoCx"
class=
"com.jshx.fstzs.web.FstzsAction"
method=
"kaipiaoCx"
>
</action>
<!--查询缴费状态-->
<action
name=
"queryJfzt"
class=
"com.jshx.fstzs.web.FstzsAction"
method=
"queryJfzt"
>
</action>
...
...
src/com/jshx/fstzs/entity/Fstzs.java
View file @
e5fb46e4
...
...
@@ -112,8 +112,10 @@ public class Fstzs extends BaseModel {
/**
* 是否开票
* 0 没开
* 1,已开票
* 2,开票中
*/
private
Integer
isKp
;
private
Integer
kpState
;
/**
* 是否缴款
...
...
@@ -174,7 +176,7 @@ public class Fstzs extends BaseModel {
* 对应项目信息
*/
@ManyToOne
(
targetEntity
=
FstzsXm
.
class
,
fetch
=
FetchType
.
LAZY
)
@JoinColumn
(
name
=
"XMZJ"
,
insertable
=
tru
e
,
updatable
=
false
)
@JoinColumn
(
name
=
"XMZJ"
,
insertable
=
fals
e
,
updatable
=
false
)
public
FstzsXm
getFstzsXm
()
{
return
fstzsXm
;
}
...
...
@@ -279,12 +281,12 @@ public class Fstzs extends BaseModel {
this
.
dzph
=
dzph
;
}
public
Integer
get
IsKp
()
{
return
isKp
;
public
Integer
get
KpState
()
{
return
kpState
;
}
public
void
set
IsKp
(
Integer
isKp
)
{
this
.
isKp
=
isKp
;
public
void
set
KpState
(
Integer
kpState
)
{
this
.
kpState
=
kpState
;
}
public
Integer
getIsJk
()
{
...
...
src/com/jshx/fstzs/fsutil/FsRequest.java
View file @
e5fb46e4
...
...
@@ -104,6 +104,7 @@ public class FsRequest {
/**
* 作废电子缴款书
* {"error_message":{"error_code":"0001","error_msg":"缴款书已缴款确认,不能作废!"}}
* @param fstzs
*/
public
static
FsResult
<
Boolean
>
zuofei
(
Fstzs
fstzs
)
{
...
...
@@ -118,7 +119,7 @@ public class FsRequest {
if
(
resp
.
message
!=
null
&&
"0000"
.
equals
(
resp
.
message
.
succCode
))
{
return
new
FsResult
<>(
true
);
}
return
new
FsResult
(
resp
.
errorMessage
.
errorMsg
);
return
FsResult
.
fail
(
resp
.
errorMessage
.
errorMsg
);
}
/**
...
...
@@ -155,7 +156,7 @@ public class FsRequest {
* @param jbr
* @return
*/
public
static
FsResult
<
KpResp
>
kaipiao
(
Fstzs
fstzs
,
String
jbr
)
{
public
static
FsResult
<
String
>
kaipiao
(
Fstzs
fstzs
,
String
jbr
)
{
//1,stock.billno.get 获取电子票号
Map
<
String
,
Object
>
mapPh
=
new
HashMap
<>();
mapPh
.
put
(
"place_code"
,
getProp
(
"fs-kpdbm"
));
//开票点编码
...
...
@@ -188,7 +189,7 @@ public class FsRequest {
xml
=
xml
.
replaceAll
(
"\\{\\{EInvoiceID}}"
,
eInvoiceID
);
xml
=
xml
.
replaceAll
(
"\\{\\{EInvoiceCode}}"
,
respPh
.
message
.
billBatchCode
);
xml
=
xml
.
replaceAll
(
"\\{\\{EInvoiceNumber}}"
,
respPh
.
message
.
billNo
);
xml
=
xml
.
replaceAll
(
"\\{\\{random}}"
,
new
Random
().
nextInt
(
100000
)
+
""
);
xml
=
xml
.
replaceAll
(
"\\{\\{random}}"
,
((
int
)((
Math
.
random
()*
9
+
1
)*
100000
)
)
+
""
);
xml
=
xml
.
replaceAll
(
"\\{\\{yjje}}"
,
fstzs
.
getYjje
());
xml
=
xml
.
replaceAll
(
"\\{\\{kprq}}"
,
new
SimpleDateFormat
(
"yyyyMMdd"
).
format
(
new
Date
()));
xml
=
xml
.
replaceAll
(
"\\{\\{kpsj}}"
,
new
SimpleDateFormat
(
"HH:mm:ss"
).
format
(
new
Date
()));
...
...
@@ -205,7 +206,7 @@ public class FsRequest {
map
.
put
(
"invoice_data"
,
xmlBase64
);
// 电子票据头部、票面信息进行base64编码后内容。
Map
<
String
,
String
>
signInfo
=
new
HashMap
<>();
signInfo
.
put
(
"value"
,
xmlBase64
);
//对电子票据头部、票面信息的签名值(签名原文为电子票据数据 Header和EInvoiceData内容),base64格式。
signInfo
.
put
(
"value"
,
FsSignUtil
.
sign
(
xml
)
);
//对电子票据头部、票面信息的签名值(签名原文为电子票据数据 Header和EInvoiceData内容),base64格式。
signInfo
.
put
(
"format"
,
"DETACH"
);
//签名格式类型,目前固定 DETACH
signInfo
.
put
(
"algorithm"
,
"SM2"
);
//摘要算法,默认SM2
signInfo
.
put
(
"time"
,
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
).
format
(
new
Date
()));
//签名时间
...
...
@@ -217,10 +218,9 @@ public class FsRequest {
if
(
resp
.
errorMessage
!=
null
)
{
return
FsResult
.
fail
(
resp
.
errorMessage
.
errorMsg
);
}
if
(
resp
.
message
!=
null
)
{
KpResp
kpResp
=
kaipiaoCx
(
kpLsh
);
kpResp
.
lsh
=
kpLsh
;
return
new
FsResult
<>(
kpResp
);
return
new
FsResult
<>(
kpLsh
);
}
return
FsResult
.
fail
(
"操作错误!"
+
new
Gson
().
toJson
(
resp
));
...
...
@@ -237,14 +237,20 @@ public class FsRequest {
* @param kpLsh
* @return
*/
p
rivate
static
KpResp
kaipiaoCx
(
String
kpLsh
)
{
p
ublic
static
FsResult
<
KpResp
>
kaipiaoCx
(
String
kpLsh
)
{
String
method
=
"invoice.jiangsu.get"
;
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"serial_number"
,
kpLsh
);
String
request
=
request
(
method
,
map
);
FsResp
<
KpResp
>
resp
=
new
Gson
().
fromJson
(
request
,
new
TypeToken
<
FsResp
<
KpResp
>>()
{
}.
getType
());
return
resp
.
message
;
if
(
resp
.
errorMessage
!=
null
)
{
return
FsResult
.
fail
(
resp
.
errorMessage
.
errorMsg
);
}
if
(
resp
.
message
!=
null
&&
!
TextUtils
.
isEmpty
(
resp
.
message
.
url
))
{
return
new
FsResult
<>(
resp
.
message
);
}
return
FsResult
.
fail
(
"开票未完成"
);
}
...
...
src/com/jshx/fstzs/fsutil/FsSignUtil.java
0 → 100644
View file @
e5fb46e4
package
com
.
jshx
.
fstzs
.
fsutil
;
import
cn.com.infosec.netsign.agent.NetSignAgent
;
import
cn.com.infosec.netsign.agent.NetSignResult
;
import
cn.com.infosec.netsign.agent.exception.NetSignAgentException
;
import
cn.com.infosec.netsign.agent.exception.ServerProcessException
;
import
java.net.URL
;
import
java.security.cert.X509Certificate
;
/**
* 财政签名
*/
public
class
FsSignUtil
{
public
static
String
sign
(
String
old
)
{
try
{
URL
url
=
FsSignUtil
.
class
.
getResource
(
""
);
NetSignAgent
.
initialize
(
url
.
getPath
()
+
"netsignagent.properties"
);
}
catch
(
NetSignAgentException
e
)
{
e
.
printStackTrace
();
}
try
{
//签名原文
byte
[]
laintext
=
old
.
getBytes
()
;
//签名证书DN,null表示用服务器默认证书进行签名
String
subject
=
null
;
//摘要算法,null表示用服务器默认的摘要算法
String
digestAlg
=
null
;
//是否做TSA签名
boolean
useTSA
=
false
;
//签名
NetSignResult
result
=
NetSignAgent
.
detachedSignature
(
laintext
,
subject
,
digestAlg
,
useTSA
)
;
//获取byte形式的签名结果
byte
[]
signedText
=
result
.
getByteArrayResult
(
NetSignResult
.
SIGN_TEXT
)
;
//获取base64编码后的签名结果
return
result
.
getStringResult
(
NetSignResult
.
SIGN_TEXT
)
;
}
catch
(
NetSignAgentException
e
)
{
e
.
printStackTrace
();
System
.
out
.
println
(
"errorCode:"
+
e
.
getErrorCode
()
);
System
.
out
.
println
(
"errorMsg:"
+
e
.
getMessage
()
);
}
catch
(
ServerProcessException
e
)
{
e
.
printStackTrace
();
System
.
out
.
println
(
"errorCode:"
+
e
.
getErrorCode
()
);
System
.
out
.
println
(
"errorMsg:"
+
e
.
getMessage
()
);
}
return
null
;
}
/**
* @param old
* @param signedText base64编码的签名
* @param tsaText base64编码的TSA
*/
public
static
void
design
(
String
old
,
String
signedText
,
String
tsaText
)
{
try
{
// 签名原文
byte
[]
laintext
=
old
.
getBytes
();
// 是否需要返回签名证书
boolean
needCert
=
false
;
// 验签名
NetSignResult
result
=
NetSignAgent
.
detachedVerify
(
laintext
,
signedText
,
tsaText
,
needCert
);
// 签名证书主题
result
.
getStringResult
(
NetSignResult
.
SIGN_SUBJECT
);
// 签名证书颁发者主题为
result
.
getStringResult
(
NetSignResult
.
SIGN_ISSUER_SUBJECT
);
// 签名证书序列号为
result
.
getStringResult
(
NetSignResult
.
SIGN_SER_NUMBER
);
// 签名证书起始时间为
result
.
getStringResult
(
NetSignResult
.
SIGN_START_TIME
);
// 签名证书终止时间为
result
.
getStringResult
(
NetSignResult
.
SIGN_END_TIME
);
// 签名证书
X509Certificate
cert
=
(
X509Certificate
)
result
.
getResult
(
NetSignResult
.
SIGN_CERT
);
}
catch
(
NetSignAgentException
e
)
{
e
.
printStackTrace
();
System
.
out
.
println
(
"errorCode:"
+
e
.
getErrorCode
()
);
System
.
out
.
println
(
"errorMsg:"
+
e
.
getMessage
()
);
}
catch
(
ServerProcessException
e
)
{
e
.
printStackTrace
();
System
.
out
.
println
(
"errorCode:"
+
e
.
getErrorCode
()
);
System
.
out
.
println
(
"errorMsg:"
+
e
.
getMessage
()
);
}
}
}
src/com/jshx/fstzs/fsutil/netsignagent.properties
0 → 100644
View file @
e5fb46e4
######server ip######
#ServerIP=192.168.2.248,192.168.2.248
#ServerPort=40019,5555
#测试签名地址↓
ServerIP
=
172.16.250.115
ServerPort
=
18005
Timeout
=
30000,30000
servicetestistest
=
yes
servicetestinterval
=
10000
connectionmode
=
1
CommunicateMode
=
1
UsedConnectionPool
=
false
MaxConnections
=
5
ZipMode
=
false
MinZipSize
=
200
encoding
=
GBK
orderdn
=
0
gc
=
0
snmode
=
1
src/com/jshx/fstzs/web/FstzsAction.java
View file @
e5fb46e4
...
...
@@ -127,8 +127,8 @@ public class FstzsAction extends BaseAction {
paraMap
.
put
(
"yjje"
,
"%"
+
yjje
+
"%"
);
}
if
(
fstzs
.
get
IsKp
()
!=
null
){
paraMap
.
put
(
"
isKp"
,
fstzs
.
getIsKp
());
if
(
fstzs
.
get
KpState
()
!=
null
){
paraMap
.
put
(
"
kpState"
,
fstzs
.
getKpState
());
}
if
(!
TextUtils
.
isEmpty
(
kssj
))
{
...
...
@@ -260,6 +260,7 @@ public class FstzsAction extends BaseAction {
public
String
addFstzs
()
{
FstzsXm
dbXm
=
fstzsXmService
.
getById
(
fstzsXm
.
getId
());
//更新数据库项目状态
dbXm
.
setJsdwmc
(
fstzsXm
.
getJsdwmc
());
dbXm
.
setStatus
(
1
);
//状态改为已生成、待复核
dbXm
.
setJbr
(
this
.
getLoginUser
().
getDisplayName
());
dbXm
.
setBeizhu
(
fstzsXm
.
getBeizhu
());
...
...
@@ -278,22 +279,6 @@ public class FstzsAction extends BaseAction {
dbXm
.
setBeizhu
(
dbXm
.
getBeizhu
()
+
","
+
beizhuAppend
);
}
fstzsXmService
.
update
(
dbXm
);
/**
* TODO 删除测试代码
* 上一个走了,再创建个新的
*/
String
time
=
new
SimpleDateFormat
(
"yyyyMMddHHmm"
).
format
(
new
Date
());
FstzsXm
xm
=
new
FstzsXm
();
xm
.
setSlbh
(
"slbh"
+
time
);
xm
.
setStatus
(
0
);
//状态改为已生成、待复核
xm
.
setYjje
(
"9000"
);
xm
.
setKpsjgl
(
dbXm
.
getKpsjgl
());
xm
.
setGcxmmc
(
"项目名称"
+
time
);
xm
.
setJsdwmc
(
"单位名称"
+
time
);
xm
.
setDelFlag
(
0
);
xm
.
setPaymentItemPending
(
dbXm
.
getPaymentItemPending
());
fstzsXmService
.
save
(
xm
);
return
RELOAD
;
}
...
...
@@ -360,7 +345,7 @@ public class FstzsAction extends BaseAction {
i
.
setSlbh
(
fstzsXm
.
getSlbh
());
i
.
setLength
(
fstzsList
.
size
());
i
.
setIsJk
(
0
);
i
.
set
IsKp
(
0
);
i
.
set
KpState
(
0
);
return
i
;
}).
forEach
(
i
->
fstzsService
.
save
(
i
));
}
...
...
@@ -465,26 +450,24 @@ public class FstzsAction extends BaseAction {
message
=
jkList
.
get
(
0
).
getJkr
()
+
"已缴款,无法作废其他!"
;
}
if
(
result
)
{
list
.
stream
().
forEach
(
i
->
{
for
(
Fstzs
f
:
list
)
{
// 需要调用财政系统,作废接口
if
(
i
.
getStatus
()
!=
2
)
{
//已作废的不再重复作废
FsResult
<
Boolean
>
zuofei
=
FsRequest
.
zuofei
(
i
);
if
(
f
.
getStatus
()
!=
2
)
{
//已作废的不再重复作废
FsResult
<
Boolean
>
zuofei
=
FsRequest
.
zuofei
(
f
);
if
(
zuofei
.
success
)
{
i
.
setStatus
(
2
);
//已作废
fstzsService
.
update
(
i
);
f
.
setStatus
(
2
);
//已作废
fstzsService
.
update
(
f
);
}
else
{
result
=
false
;
message
=
zuofei
.
msg
;
break
;
}
}
}
});
//获取未作废成功的数据
List
<
Fstzs
>
failList
=
list
.
stream
().
filter
(
i
->
i
.
getStatus
()
!=
2
).
collect
(
Collectors
.
toList
());
if
(
failList
==
null
||
failList
.
size
()
==
0
)
{
//都作废成功,才修改项目状态
if
(
result
)
{
xm
.
setStatus
(
4
);
//已作废
fstzsXmService
.
update
(
xm
);
}
else
{
result
=
false
;
message
=
"请重新操作!"
;
}
}
this
.
getResponse
().
getWriter
().
println
(
"{\"result\":"
+
result
+
",\"message\":\""
+
message
+
"!"
+
"\"}"
);
...
...
@@ -501,11 +484,30 @@ public class FstzsAction extends BaseAction {
FstzsXm
xm
=
fstzsXmService
.
getBySlbh
(
fstzs
.
getSlbh
());
String
jbr
=
this
.
getLoginUser
().
getDisplayName
();
fstzs
.
setFstzsXm
(
xm
);
FsResult
<
KpResp
>
kaipiao
=
FsRequest
.
kaipiao
(
fstzs
,
jbr
);
FsResult
<
String
>
kaipiao
=
FsRequest
.
kaipiao
(
fstzs
,
jbr
);
if
(
kaipiao
.
success
)
{
fstzs
.
setIsKp
(
1
);
fstzs
.
setKpState
(
2
);
//非同步返回,需要异步查询
fstzs
.
setKpLsh
(
kaipiao
.
data
);
fstzs
.
setKpJbr
(
jbr
);
fstzs
.
setKpLsh
(
kaipiao
.
data
.
lsh
);
fstzsService
.
update
(
fstzs
);
message
=
"开票中,请稍后查询!"
;
}
else
{
result
=
false
;
message
=
kaipiao
.
msg
;
}
this
.
getResponse
().
getWriter
().
println
(
"{\"result\":"
+
result
+
",\"message\":\""
+
message
+
"!"
+
"\"}"
);
}
public
void
kaipiaoCx
()
throws
IOException
{
boolean
result
=
true
;
String
message
=
"操作成功"
;
Fstzs
fstzs
=
fstzsService
.
getById
(
id
);
FsResult
<
KpResp
>
kaipiao
=
FsRequest
.
kaipiaoCx
(
fstzs
.
getKpLsh
());
if
(
kaipiao
.
success
)
{
fstzs
.
setKpState
(
1
);
//修改为开票完成状态
fstzs
.
setKpTime
(
kaipiao
.
data
.
date
);
fstzs
.
setDzph
(
kaipiao
.
data
.
billNo
);
fstzs
.
setPjdm
(
kaipiao
.
data
.
billBatchCode
);
...
...
@@ -515,9 +517,7 @@ public class FstzsAction extends BaseAction {
result
=
false
;
message
=
kaipiao
.
msg
;
}
this
.
getResponse
().
getWriter
().
println
(
"{\"result\":"
+
result
+
",\"message\":\""
+
message
+
"!"
+
"\"}"
);
}
/**
...
...
@@ -567,15 +567,10 @@ public class FstzsAction extends BaseAction {
i
.
setIsJk
(
1
);
i
.
setJkTime
(
jiaokuanzt
.
data
.
confirmDate
);
i
.
setJkqd
(
jiaokuanzt
.
data
.
paymentChannel
);
}
else
{
try
{
FstzsAction
.
this
.
getResponse
().
getWriter
().
println
(
"{\"result\":"
+
false
+
",\"message\":\""
+
jiaokuanzt
.
msg
+
"!"
+
"\"}"
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
fstzsService
.
update
(
i
);
}
return
i
;
}).
forEach
(
i
->
fstzsService
.
update
(
i
));
}).
forEach
(
i
->
System
.
out
.
println
(
"查询缴费状态!"
));
}
public
Pagination
getPagination
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment