Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
caosy
/
fun-admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
bb454e2e
authored
Jan 14, 2019
by
chongli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
销售后台提交发票
parent
f87b54ad
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1257 additions
and
0 deletions
src/main/java/com/ctrip/fun/admin/controller/JsonController.java
src/main/java/com/ctrip/fun/admin/controller/basic/InvoiceRequestController.java
src/main/java/com/ctrip/fun/admin/form/basic/InvoiceOrderInfo.java
src/main/java/com/ctrip/fun/admin/form/basic/InvoiceRquestDto.java
src/main/java/com/ctrip/fun/admin/service/basic/InvoiceRequestExcelExportService.java
src/main/java/com/ctrip/fun/admin/service/basic/InvoiceRequestExcelImportService.java
src/main/java/com/ctrip/fun/admin/service/basic/InvoiceRequestService.java
src/main/resources/config/spring-service.xml
src/main/resources/properties/service.properties
src/main/webapp/WEB-INF/templates/basic/invoiceRequest/invoiceRequestForm.ftl
src/main/webapp/WEB-INF/templates/basic/invoiceRequest/invoiceRequestList.ftl
src/main/webapp/WEB-INF/templates/common/layout.ftl
src/main/java/com/ctrip/fun/admin/controller/JsonController.java
View file @
bb454e2e
...
...
@@ -37,6 +37,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import
org.springframework.web.bind.annotation.ResponseStatus
;
import
com.ctrip.fun.admin.form.PaginationForm
;
import
com.ctrip.fun.admin.form.basic.InvoiceRquestDto
;
import
com.ctrip.fun.admin.form.golf.ResourceInventoryForm
;
import
com.ctrip.fun.admin.form.golf.ResourcePriceForm
;
import
com.ctrip.fun.admin.form.market.EventGameGroupForm
;
...
...
@@ -44,6 +45,7 @@ import com.ctrip.fun.admin.form.market.EventGamePlayerForm;
import
com.ctrip.fun.admin.form.operation.SupplierQueryForm
;
import
com.ctrip.fun.admin.service.basic.DistrictService
;
import
com.ctrip.fun.admin.service.basic.EntityImageService
;
import
com.ctrip.fun.admin.service.basic.InvoiceRequestService
;
import
com.ctrip.fun.admin.service.basic.PrePayCardService
;
import
com.ctrip.fun.admin.service.basic.SubDistrictService
;
import
com.ctrip.fun.admin.service.basic.VoucherShareLogService
;
...
...
@@ -99,6 +101,7 @@ import com.ctrip.fun.common.vo.app.ResponseFriendBean;
import
com.ctrip.fun.common.vo.basic.EntityImageBean
;
import
com.ctrip.fun.common.vo.basic.EntityImageQuery
;
import
com.ctrip.fun.common.vo.basic.ImageSizeEnum
;
import
com.ctrip.fun.common.vo.basic.InvoiceRequestBean
;
import
com.ctrip.fun.common.vo.basic.PrePayCardBean
;
import
com.ctrip.fun.common.vo.basic.SubDistrictBean
;
import
com.ctrip.fun.common.vo.basic.SubDistrictQuery
;
...
...
@@ -265,6 +268,9 @@ public class JsonController {
@Autowired
private
OpVoucherOrderService
opVoucherOrderService
=
null
;
@Autowired
private
InvoiceRequestService
invoiceRequestService
=
null
;
@Value
(
"${imageEndpoint}"
)
private
String
imageEndpoint
;
...
...
@@ -2535,4 +2541,18 @@ public class JsonController {
response
.
setBody
(
vouchers
);
return
response
;
}
@RequestMapping
(
value
=
"/invoiceRequest/financeUpdate"
,
method
=
RequestMethod
.
POST
)
@ResponseStatus
(
HttpStatus
.
OK
)
@ResponseBody
public
Response
<
Integer
>
financeUpdate
(
InvoiceRquestDto
invoiceRquestDto
)
{
Response
<
Integer
>
response
=
new
Response
<
Integer
>();
response
.
setStatus
(
ResponseStatusEnum
.
SUCCESS
.
getValue
());
response
.
setMessage
(
ResponseStatusEnum
.
SUCCESS
.
getMsg
());
InvoiceRequestBean
bean
=
new
InvoiceRequestBean
();
BeanConverter
.
copyProperties
(
bean
,
invoiceRquestDto
);
invoiceRequestService
.
update
(
""
,
bean
);
response
.
setBody
(
1
);
return
response
;
}
}
src/main/java/com/ctrip/fun/admin/controller/basic/InvoiceRequestController.java
0 → 100644
View file @
bb454e2e
package
com
.
ctrip
.
fun
.
admin
.
controller
.
basic
;
import
java.io.IOException
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Collection
;
import
java.util.Date
;
import
java.util.List
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.Valid
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.GrantedAuthority
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.ModelMap
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.web.bind.annotation.ModelAttribute
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.multipart.MultipartFile
;
import
com.ctrip.fun.admin.form.PaginationForm
;
import
com.ctrip.fun.admin.form.basic.InvoiceRquestDto
;
import
com.ctrip.fun.admin.service.basic.InvoiceRequestExcelExportService
;
import
com.ctrip.fun.admin.service.basic.InvoiceRequestExcelImportService
;
import
com.ctrip.fun.admin.service.basic.TelTaskService
;
import
com.ctrip.fun.admin.service.system.UserDetailsService
;
import
com.ctrip.fun.admin.service.system.UserService
;
import
com.ctrip.fun.admin.utility.SpringSecurityUtil
;
import
com.ctrip.fun.common.core.util.BeanConverter
;
import
com.ctrip.fun.common.core.util.DateUtil
;
import
com.ctrip.fun.common.vo.PagedResponseBean
;
import
com.ctrip.fun.common.vo.basic.InvoiceRequestQuery
;
import
com.ctrip.fun.common.vo.basic.InvoiceRequestBean
;
import
com.ctrip.fun.admin.service.basic.InvoiceRequestService
;
/**
* @author gaoc
*/
@Controller
@RequestMapping
(
"/invoiceRequest"
)
public
class
InvoiceRequestController
{
@Autowired
private
TelTaskService
telTaskService
;
@Autowired
private
UserService
userService
;
@Autowired
private
UserDetailsService
userDetailsService
;
@Autowired
private
InvoiceRequestService
invoiceRequestService
;
@Autowired
private
InvoiceRequestExcelExportService
invoiceRequestExcelExportService
;
@Autowired
private
InvoiceRequestExcelImportService
invoiceRequestExcelImportService
;
/**
* 新建任务页面
*/
@RequestMapping
(
value
=
"/create"
,
method
=
RequestMethod
.
GET
)
public
String
toCreateTelTask
(
@ModelAttribute
(
"dto"
)
InvoiceRquestDto
dto
,
ModelMap
model
)
{
model
.
put
(
"action"
,
"/invoiceRequest/create"
);
return
"basic/invoiceRequest/invoiceRequestForm"
;
}
/**
* 新建任务
*/
@RequestMapping
(
value
=
"/create"
,
method
=
RequestMethod
.
POST
)
public
String
createVoucher
(
@Valid
@ModelAttribute
(
"dto"
)
InvoiceRquestDto
dto
,
BindingResult
bindingResult
,
ModelMap
model
)
{
dto
.
setRequestPerson
(
SpringSecurityUtil
.
getCurrentUserName
());
InvoiceRequestBean
bean
=
new
InvoiceRequestBean
();
BeanConverter
.
copyProperties
(
bean
,
dto
);
invoiceRequestService
.
add
(
""
,
bean
);
return
"redirect:list"
;
}
@RequestMapping
(
value
=
"/edit"
,
method
=
RequestMethod
.
GET
)
public
String
editGet
(
HttpServletRequest
request
,
@ModelAttribute
(
"dto"
)
InvoiceRquestDto
dto
,
@RequestParam
(
value
=
"id"
,
required
=
true
)
int
id
,
ModelMap
model
)
{
InvoiceRequestBean
bean
=
invoiceRequestService
.
get
(
""
,
id
);
BeanConverter
.
copyProperties
(
dto
,
bean
);
String
returnPage
=
request
.
getParameter
(
"page"
);
model
.
put
(
"action"
,
"/invoiceRequest/edit"
);
return
"basic/invoiceRequest/invoiceRequestForm"
;
}
@RequestMapping
(
value
=
"/edit"
,
method
=
RequestMethod
.
POST
)
public
String
editPost
(
HttpServletRequest
request
,
@RequestParam
(
value
=
"id"
,
required
=
true
)
int
id
,
@Valid
@ModelAttribute
(
"form"
)
InvoiceRquestDto
form
,
BindingResult
bindingResult
,
ModelMap
model
)
{
InvoiceRequestBean
bean
=
new
InvoiceRequestBean
();
BeanConverter
.
copyProperties
(
bean
,
form
);
invoiceRequestService
.
update
(
""
,
bean
);
return
"redirect:list"
;
}
@RequestMapping
(
value
=
"/excel"
,
method
=
RequestMethod
.
GET
)
public
String
getExcelExport
(
@ModelAttribute
(
value
=
"form"
)
InvoiceRequestQuery
query
,
HttpServletResponse
response
)
{
List
<
InvoiceRequestBean
>
responseBean
=
invoiceRequestExcelExportService
.
list
(
""
,
query
);
response
.
setContentType
(
"application/binary;charset=ISO8859-1"
);
//String filename = communeExcelExportService.createExcelName(form);
String
filename
=
null
;
try
{
ServletOutputStream
outputStream
=
response
.
getOutputStream
();
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
filename
+=
format
.
format
(
new
Date
());
filename
+=
" 公社会员订单 "
;
filename
=
filename
.
replaceAll
(
" "
,
"_"
);
response
.
setHeader
(
"Content-disposition"
,
"attachment;filename="
+
new
String
(
filename
.
getBytes
(
"gb2312"
),
"ISO8859-1"
)
+
".xlsx"
);
invoiceRequestExcelExportService
.
exportExcel
(
filename
,
responseBean
,
outputStream
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
@RequestMapping
(
value
=
"/excelImport"
,
method
=
RequestMethod
.
POST
)
public
String
excelimport
(
MultipartFile
financeFile
,
HttpServletResponse
response
)
{
if
(
financeFile
!=
null
){
String
name
=
financeFile
.
getOriginalFilename
();
try
{
List
<
InvoiceRequestBean
>
list
=
invoiceRequestExcelImportService
.
parseExcel
(
1L
,
financeFile
.
getInputStream
(),
name
);
invoiceRequestService
.
batchUpdate
(
""
,
list
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
return
"redirect:list"
;
}
/**
* 任务列表
*/
@RequestMapping
(
value
=
"/list"
,
method
=
RequestMethod
.
GET
)
public
String
queryList
(
HttpServletRequest
request
,
@ModelAttribute
(
"dto"
)
InvoiceRequestQuery
query
,
ModelMap
model
)
{
int
currentPage
=
0
;
int
pageSize
;
int
total
;
int
pageCount
;
if
(
null
!=
request
.
getParameter
(
"page"
))
{
currentPage
=
Integer
.
parseInt
(
request
.
getParameter
(
"page"
));
}
query
.
setPagerOffset
(
currentPage
*
query
.
getPagerPerPage
());
String
currentUserName
=
SpringSecurityUtil
.
getCurrentUserName
();
boolean
isFinance
=
false
;
UserDetails
userDetails
=
userDetailsService
.
loadUserByUsername
(
currentUserName
);
Collection
<?
extends
GrantedAuthority
>
c
=
userDetails
.
getAuthorities
();
for
(
GrantedAuthority
g
:
c
)
{
if
(
"ROLE_insuranceFinance"
.
equals
(
g
.
getAuthority
())){
isFinance
=
true
;
break
;
}
}
if
(!
isFinance
){
query
.
setRequestPerson
(
currentUserName
);
}
PagedResponseBean
<
InvoiceRequestBean
>
response
=
invoiceRequestService
.
queryList
(
currentUserName
,
query
);
List
<
InvoiceRequestBean
>
list
=
new
ArrayList
<
InvoiceRequestBean
>();
list
.
add
(
null
);
pageSize
=
query
.
getPagerPerPage
();
total
=
response
.
getCount
();
StringBuilder
excel
=
new
StringBuilder
(
"/invoiceRequest/excel?"
);
String
contactName
=
(
query
.
getContactName
()
==
null
)
?
(
""
)
:
(
query
.
getContactName
());
String
requestPerson
=
(
query
.
getRequestPerson
()
==
null
)
?
(
""
)
:
(
query
.
getRequestPerson
());
int
status
=
(
query
.
getStatus
()
==
null
)
?
(
0
)
:
(
query
.
getStatus
());
if
(
query
.
getCreateTimeStart
()
==
null
){
query
.
setCreateTimeStart
(
DateUtil
.
addDateField
(
new
Date
(),
Calendar
.
MONTH
,
-
3
));
}
if
(
query
.
getCreateTimeEnd
()
==
null
){
query
.
setCreateTimeEnd
(
DateUtil
.
addDateField
(
new
Date
(),
Calendar
.
MONTH
,
3
));
}
excel
.
append
(
"contactName="
).
append
(
contactName
);
excel
.
append
(
"&requestPerson="
).
append
(
requestPerson
);
excel
.
append
(
"&status="
).
append
(
status
);
excel
.
append
(
"&createTimeStart="
).
append
(
DateUtil
.
getDateStr
(
query
.
getCreateTimeStart
()));
excel
.
append
(
"&createTimeEnd="
).
append
(
DateUtil
.
getDateStr
(
query
.
getCreateTimeEnd
()));
model
.
put
(
"excelpath"
,
excel
.
toString
());
pageCount
=
(
0
==
total
%
pageSize
)
?
(
total
/
pageSize
)
:
(
total
/
pageSize
+
1
);
model
.
put
(
"list"
,
response
.
getResult
());
model
.
put
(
"paginationData"
,
new
PaginationForm
(
currentPage
,
pageSize
,
pageCount
,
total
));
return
"basic/invoiceRequest/invoiceRequestList"
;
}
}
src/main/java/com/ctrip/fun/admin/form/basic/InvoiceOrderInfo.java
0 → 100644
View file @
bb454e2e
package
com
.
ctrip
.
fun
.
admin
.
form
.
basic
;
public
class
InvoiceOrderInfo
{
private
String
orderNo
;
private
String
courseName
;
private
String
amount
;
public
String
getOrderNo
()
{
return
orderNo
;
}
public
void
setOrderNo
(
String
orderNo
)
{
this
.
orderNo
=
orderNo
;
}
public
String
getCourseName
()
{
return
courseName
;
}
public
void
setCourseName
(
String
courseName
)
{
this
.
courseName
=
courseName
;
}
public
String
getAmount
()
{
return
amount
;
}
public
void
setAmount
(
String
amount
)
{
this
.
amount
=
amount
;
}
}
src/main/java/com/ctrip/fun/admin/form/basic/InvoiceRquestDto.java
0 → 100644
View file @
bb454e2e
package
com
.
ctrip
.
fun
.
admin
.
form
.
basic
;
import
java.util.Date
;
import
java.util.List
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
com.ctrip.fun.common.vo.basic.InvoiceOrderInfoBean
;
/**
*销售提交开票申请
*/
public
class
InvoiceRquestDto
{
//开票申请id
private
Integer
id
;
//快递费用归属部门
private
String
costOfDepart
;
//开票总金额
private
String
invoiceAmount
;
//发票抬头
private
String
invoiceTitle
;
//纳税识别号
private
String
taxIdNum
;
//寄送联系人
private
String
contactName
;
//联系方式
private
String
contactTel
;
//寄送地址
private
String
contactAddress
;
//开票备注
private
String
invoiceRemark
;
//快递单号
private
String
expressNo
;
//发票邮递时间
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
sendTime
;
//未开票原因
private
String
refusedReason
;
//开票申请人
private
String
requestPerson
;
//销售员备注
private
String
salesRemark
;
private
List
<
InvoiceOrderInfoBean
>
invoiceOrderInfoBeans
;
public
Integer
getId
()
{
return
id
;
}
public
void
setId
(
Integer
id
)
{
this
.
id
=
id
;
}
public
String
getCostOfDepart
()
{
return
costOfDepart
;
}
public
void
setCostOfDepart
(
String
costOfDepart
)
{
this
.
costOfDepart
=
costOfDepart
;
}
public
String
getInvoiceAmount
()
{
return
invoiceAmount
;
}
public
void
setInvoiceAmount
(
String
invoiceAmount
)
{
this
.
invoiceAmount
=
invoiceAmount
;
}
public
String
getInvoiceTitle
()
{
return
invoiceTitle
;
}
public
void
setInvoiceTitle
(
String
invoiceTitle
)
{
this
.
invoiceTitle
=
invoiceTitle
;
}
public
String
getTaxIdNum
()
{
return
taxIdNum
;
}
public
void
setTaxIdNum
(
String
taxIdNum
)
{
this
.
taxIdNum
=
taxIdNum
;
}
public
String
getContactName
()
{
return
contactName
;
}
public
void
setContactName
(
String
contactName
)
{
this
.
contactName
=
contactName
;
}
public
String
getContactTel
()
{
return
contactTel
;
}
public
void
setContactTel
(
String
contactTel
)
{
this
.
contactTel
=
contactTel
;
}
public
String
getContactAddress
()
{
return
contactAddress
;
}
public
void
setContactAddress
(
String
contactAddress
)
{
this
.
contactAddress
=
contactAddress
;
}
public
String
getInvoiceRemark
()
{
return
invoiceRemark
;
}
public
void
setInvoiceRemark
(
String
invoiceRemark
)
{
this
.
invoiceRemark
=
invoiceRemark
;
}
public
String
getExpressNo
()
{
return
expressNo
;
}
public
void
setExpressNo
(
String
expressNo
)
{
this
.
expressNo
=
expressNo
;
}
public
Date
getSendTime
()
{
return
sendTime
;
}
public
void
setSendTime
(
Date
sendTime
)
{
this
.
sendTime
=
sendTime
;
}
public
String
getRefusedReason
()
{
return
refusedReason
;
}
public
void
setRefusedReason
(
String
refusedReason
)
{
this
.
refusedReason
=
refusedReason
;
}
public
List
<
InvoiceOrderInfoBean
>
getInvoiceOrderInfoBeans
()
{
return
invoiceOrderInfoBeans
;
}
public
void
setInvoiceOrderInfoBeans
(
List
<
InvoiceOrderInfoBean
>
invoiceOrderInfoBeans
)
{
this
.
invoiceOrderInfoBeans
=
invoiceOrderInfoBeans
;
}
public
String
getRequestPerson
()
{
return
requestPerson
;
}
public
void
setRequestPerson
(
String
requestPerson
)
{
this
.
requestPerson
=
requestPerson
;
}
public
String
getSalesRemark
()
{
return
salesRemark
;
}
public
void
setSalesRemark
(
String
salesRemark
)
{
this
.
salesRemark
=
salesRemark
;
}
}
src/main/java/com/ctrip/fun/admin/service/basic/InvoiceRequestExcelExportService.java
0 → 100644
View file @
bb454e2e
package
com
.
ctrip
.
fun
.
admin
.
service
.
basic
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.apache.poi.xssf.usermodel.XSSFCell
;
import
org.apache.poi.xssf.usermodel.XSSFCellStyle
;
import
org.apache.poi.xssf.usermodel.XSSFRow
;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.springframework.core.ParameterizedTypeReference
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpMethod
;
import
com.ctrip.fun.admin.utility.AbstractExcelExportService
;
import
com.ctrip.fun.admin.utility.ExportUtil
;
import
com.ctrip.fun.common.core.util.DateUtil
;
import
com.ctrip.fun.common.vo.Request
;
import
com.ctrip.fun.common.vo.Response
;
import
com.ctrip.fun.common.vo.ResponseStatusEnum
;
import
com.ctrip.fun.common.vo.basic.InvoiceOrderInfoBean
;
import
com.ctrip.fun.common.vo.basic.InvoiceRequestBean
;
import
com.ctrip.fun.common.vo.basic.InvoiceRequestQuery
;
public
class
InvoiceRequestExcelExportService
extends
AbstractExcelExportService
<
InvoiceRequestQuery
,
InvoiceRequestBean
>{
@Override
public
Class
<
InvoiceRequestBean
>
getTClass
()
{
return
InvoiceRequestBean
.
class
;
}
@Override
public
List
<
InvoiceRequestBean
>
list
(
String
userId
,
InvoiceRequestQuery
query
)
{
List
<
InvoiceRequestBean
>
responseBean
=
new
ArrayList
<
InvoiceRequestBean
>();
String
uri
=
super
.
getServiceUri
(
"uri.invoiceRequest.excelList"
);
Request
<
InvoiceRequestQuery
>
request
=
new
Request
<
InvoiceRequestQuery
>(
""
,
query
);
HttpEntity
<
Request
<
InvoiceRequestQuery
>>
entity
=
new
HttpEntity
<
Request
<
InvoiceRequestQuery
>>(
request
);
Response
<
List
<
InvoiceRequestBean
>>
response
=
super
.
exchange
(
uri
,
HttpMethod
.
POST
,
entity
,
new
ParameterizedTypeReference
<
Response
<
List
<
InvoiceRequestBean
>>>()
{
}).
getBody
();
if
(
null
!=
response
&&
response
.
getStatus
()
==
ResponseStatusEnum
.
SUCCESS
.
getValue
())
{
responseBean
=
response
.
getBody
();
}
return
responseBean
;
}
@Override
public
void
exportExcel
(
String
filename
,
Collection
<
InvoiceRequestBean
>
collection
,
OutputStream
outputStream
)
{
createExcelTitle
();
XSSFWorkbook
workBook
=
new
XSSFWorkbook
();
XSSFSheet
sheet
=
workBook
.
createSheet
();
ExportUtil
exportUtil
=
new
ExportUtil
(
workBook
,
sheet
);
XSSFCellStyle
headStyle
=
exportUtil
.
getHeadStyle
();
//XSSFCellStyle bodyStyle = exportUtil.getBodyStyle();
XSSFRow
headRow
=
sheet
.
createRow
(
0
);
XSSFCell
cell
=
null
;
List
<
String
>
titleList
=
new
ArrayList
<
String
>();
titleList
.
add
(
"发票申请ID"
);
titleList
.
add
(
"快递费用归属部门"
);
titleList
.
add
(
"发票抬头"
);
titleList
.
add
(
"纳税识别号"
);
titleList
.
add
(
"发票寄送地址"
);
titleList
.
add
(
"寄送联系人"
);
titleList
.
add
(
"联系方式"
);
titleList
.
add
(
"开票备注"
);
titleList
.
add
(
"未开票原因"
);
titleList
.
add
(
"快递单号"
);
titleList
.
add
(
"寄出时间"
);
titleList
.
add
(
"订单号"
);
titleList
.
add
(
"开票金额"
);
titleList
.
add
(
"球场"
);
for
(
int
i
=
0
;
i
<
titleList
.
size
();
i
++)
{
cell
=
headRow
.
createCell
(
i
);
cell
.
setCellStyle
(
headStyle
);
cell
.
setCellValue
(
titleList
.
get
(
i
));
}
int
count
=
1
;
int
rowbased
=
1
;
for
(
InvoiceRequestBean
item
:
collection
)
{
List
<
InvoiceOrderInfoBean
>
infoBeans
=
item
.
getInvoiceOrderInfoBeans
();
for
(
InvoiceOrderInfoBean
invoiceOrderInfoBean:
infoBeans
){
XSSFRow
row
=
sheet
.
createRow
(
count
++);
XSSFCell
cell_Id
=
row
.
createCell
(
0
);
cell_Id
.
setCellValue
(
item
.
getId
()==
null
?
""
:
item
.
getId
()+
""
);
XSSFCell
cell_CostOfDepart
=
row
.
createCell
(
1
);
cell_CostOfDepart
.
setCellValue
(
item
.
getCostOfDepart
()==
null
?
""
:
item
.
getCostOfDepart
());
XSSFCell
cell_InvoiceTitle
=
row
.
createCell
(
2
);
cell_InvoiceTitle
.
setCellValue
(
item
.
getInvoiceTitle
()==
null
?
""
:
item
.
getInvoiceTitle
());
XSSFCell
cell_taxIdNum
=
row
.
createCell
(
3
);
cell_taxIdNum
.
setCellValue
(
item
.
getTaxIdNum
()==
null
?
""
:
item
.
getTaxIdNum
());
XSSFCell
cell_ContactAddress
=
row
.
createCell
(
4
);
cell_ContactAddress
.
setCellValue
(
item
.
getContactAddress
()==
null
?
""
:
item
.
getContactAddress
());
XSSFCell
cell_ContactName
=
row
.
createCell
(
5
);
cell_ContactName
.
setCellValue
(
item
.
getContactName
()==
null
?
""
:
item
.
getContactName
());
XSSFCell
cell_ContactTel
=
row
.
createCell
(
6
);
cell_ContactTel
.
setCellValue
(
item
.
getContactTel
()==
null
?
""
:
item
.
getContactTel
());
XSSFCell
cell_InvoiceRemark
=
row
.
createCell
(
7
);
cell_InvoiceRemark
.
setCellValue
(
item
.
getInvoiceRemark
()==
null
?
""
:
item
.
getInvoiceRemark
());
XSSFCell
cell_RefusedReason
=
row
.
createCell
(
8
);
cell_RefusedReason
.
setCellValue
(
item
.
getRefusedReason
()==
null
?
""
:
item
.
getRefusedReason
());
XSSFCell
cell_ExpressNo
=
row
.
createCell
(
9
);
cell_ExpressNo
.
setCellValue
(
item
.
getExpressNo
()==
null
?
""
:
item
.
getExpressNo
());
XSSFCell
cell_SendTime
=
row
.
createCell
(
10
);
cell_SendTime
.
setCellValue
(
item
.
getSendTime
()==
null
?
""
:
DateUtil
.
getDateStr
(
item
.
getSendTime
()));
XSSFCell
cell_orderNo
=
row
.
createCell
(
11
);
cell_orderNo
.
setCellValue
(
invoiceOrderInfoBean
.
getOrderNo
()==
null
?
""
:
invoiceOrderInfoBean
.
getOrderNo
());
XSSFCell
cell_Amount
=
row
.
createCell
(
12
);
cell_Amount
.
setCellValue
(
invoiceOrderInfoBean
.
getAmount
()==
null
?
""
:
invoiceOrderInfoBean
.
getAmount
());
XSSFCell
cell_CourseName
=
row
.
createCell
(
13
);
cell_CourseName
.
setCellValue
(
invoiceOrderInfoBean
.
getCourseName
()==
null
?
""
:
invoiceOrderInfoBean
.
getCourseName
());
}
for
(
int
i
=
0
;
i
<
11
;
i
++){
//如果订单数量大于1就要合并
if
(
infoBeans
.
size
()>
1
){
sheet
.
addMergedRegion
(
new
CellRangeAddress
(
rowbased
,
rowbased
+
infoBeans
.
size
()-
1
,
i
,
i
));
}
else
{
sheet
.
addMergedRegion
(
new
CellRangeAddress
(
rowbased
,
rowbased
,
i
,
i
));
}
}
//计算开始行
rowbased
=
rowbased
+
infoBeans
.
size
();
}
try
{
workBook
.
write
(
outputStream
);
outputStream
.
flush
();
outputStream
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
outputStream
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
}
src/main/java/com/ctrip/fun/admin/service/basic/InvoiceRequestExcelImportService.java
0 → 100644
View file @
bb454e2e
package
com
.
ctrip
.
fun
.
admin
.
service
.
basic
;
import
java.io.InputStream
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.apache.poi.hssf.usermodel.HSSFWorkbook
;
import
org.apache.poi.ss.usermodel.Cell
;
import
org.apache.poi.ss.usermodel.Row
;
import
org.apache.poi.ss.usermodel.Sheet
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
com.ctrip.fun.common.core.util.DateUtil
;
import
com.ctrip.fun.common.vo.basic.InvoiceRequestBean
;
public
class
InvoiceRequestExcelImportService
{
public
List
<
InvoiceRequestBean
>
parseExcel
(
Long
userId
,
InputStream
inputStream
,
String
fileName
)
throws
Exception
{
String
message
=
"Import success"
;
boolean
isE2007
=
false
;
//判断是否是excel2007格式
if
(
fileName
.
endsWith
(
"xlsx"
)){
isE2007
=
true
;
}
int
rowIndex
=
0
;
List
<
InvoiceRequestBean
>
beans
=
new
ArrayList
<
InvoiceRequestBean
>();
try
{
InputStream
input
=
inputStream
;
//建立输入流
Workbook
wb
=
null
;
if
(
isE2007
){
wb
=
new
XSSFWorkbook
(
input
);
}
else
{
wb
=
new
HSSFWorkbook
(
input
);
}
Sheet
sheet
=
wb
.
getSheetAt
(
0
);
//获得第一个表单
List
<
CellRangeAddress
>
cras
=
getCombineCell
(
sheet
);
int
count
=
sheet
.
getLastRowNum
()+
1
;
//总行数
for
(
int
i
=
1
;
i
<
count
;
i
++){
rowIndex
=
i
;
Row
row
=
sheet
.
getRow
(
i
);
InvoiceRequestBean
bean
=
new
InvoiceRequestBean
();
bean
.
setId
(
Integer
.
valueOf
(
getCellValue
(
row
.
getCell
(
0
))));
bean
.
setRefusedReason
(
getCellValue
(
row
.
getCell
(
8
)));
bean
.
setExpressNo
(
getCellValue
(
row
.
getCell
(
9
)));
bean
.
setSendTime
(
DateUtil
.
parseDate
(
getCellValue
(
row
.
getCell
(
10
))));
if
(
isMergedRegion
(
sheet
,
i
,
0
)){
int
lastRow
=
getRowNum
(
cras
,
sheet
.
getRow
(
i
).
getCell
(
0
),
sheet
);
i
=
i
+
lastRow
-
1
;
}
beans
.
add
(
bean
);
}
return
beans
;
}
catch
(
Exception
ex
)
{
message
=
"Import failed, please check the data in "
+
rowIndex
+
" rows "
;
return
null
;
}
finally
{
if
(
inputStream
!=
null
){
inputStream
.
close
();
}
}
}
/**
* 合并单元格处理,获取合并行
* @param sheet
* @return List<CellRangeAddress>
*/
public
List
<
CellRangeAddress
>
getCombineCell
(
Sheet
sheet
)
{
List
<
CellRangeAddress
>
list
=
new
ArrayList
<
CellRangeAddress
>();
//获得一个 sheet 中合并单元格的数量
int
sheetmergerCount
=
sheet
.
getNumMergedRegions
();
//遍历所有的合并单元格
for
(
int
i
=
0
;
i
<
sheetmergerCount
;
i
++)
{
//获得合并单元格保存进list中
CellRangeAddress
ca
=
sheet
.
getMergedRegion
(
i
);
list
.
add
(
ca
);
}
return
list
;
}
private
int
getRowNum
(
List
<
CellRangeAddress
>
listCombineCell
,
Cell
cell
,
Sheet
sheet
){
int
xr
=
0
;
int
firstC
=
0
;
int
lastC
=
0
;
int
firstR
=
0
;
int
lastR
=
0
;
for
(
CellRangeAddress
ca:
listCombineCell
)
{
//获得合并单元格的起始行, 结束行, 起始列, 结束列
firstC
=
ca
.
getFirstColumn
();
lastC
=
ca
.
getLastColumn
();
firstR
=
ca
.
getFirstRow
();
lastR
=
ca
.
getLastRow
();
if
(
cell
.
getRowIndex
()
>=
firstR
&&
cell
.
getRowIndex
()
<=
lastR
)
{
if
(
cell
.
getColumnIndex
()
>=
firstC
&&
cell
.
getColumnIndex
()
<=
lastC
)
{
xr
=
lastR
;
}
}
}
return
xr
;
}
/**
* 判断单元格是否为合并单元格,是的话则将单元格的值返回
* @param listCombineCell 存放合并单元格的list
* @param cell 需要判断的单元格
* @param sheet sheet
* @return
*/
public
String
isCombineCell
(
List
<
CellRangeAddress
>
listCombineCell
,
Cell
cell
,
Sheet
sheet
)
throws
Exception
{
int
firstC
=
0
;
int
lastC
=
0
;
int
firstR
=
0
;
int
lastR
=
0
;
String
cellValue
=
null
;
for
(
CellRangeAddress
ca:
listCombineCell
)
{
//获得合并单元格的起始行, 结束行, 起始列, 结束列
firstC
=
ca
.
getFirstColumn
();
lastC
=
ca
.
getLastColumn
();
firstR
=
ca
.
getFirstRow
();
lastR
=
ca
.
getLastRow
();
if
(
cell
.
getRowIndex
()
>=
firstR
&&
cell
.
getRowIndex
()
<=
lastR
)
{
if
(
cell
.
getColumnIndex
()
>=
firstC
&&
cell
.
getColumnIndex
()
<=
lastC
)
{
Row
fRow
=
sheet
.
getRow
(
firstR
);
Cell
fCell
=
fRow
.
getCell
(
firstC
);
cellValue
=
getCellValue
(
fCell
);
break
;
}
}
else
{
cellValue
=
""
;
}
}
return
cellValue
;
}
/**
* 获取合并单元格的值
* @param sheet
* @param row
* @param column
* @return
*/
public
String
getMergedRegionValue
(
Sheet
sheet
,
int
row
,
int
column
){
int
sheetMergeCount
=
sheet
.
getNumMergedRegions
();
for
(
int
i
=
0
;
i
<
sheetMergeCount
;
i
++){
CellRangeAddress
ca
=
sheet
.
getMergedRegion
(
i
);
int
firstColumn
=
ca
.
getFirstColumn
();
int
lastColumn
=
ca
.
getLastColumn
();
int
firstRow
=
ca
.
getFirstRow
();
int
lastRow
=
ca
.
getLastRow
();
if
(
row
>=
firstRow
&&
row
<=
lastRow
){
if
(
column
>=
firstColumn
&&
column
<=
lastColumn
){
Row
fRow
=
sheet
.
getRow
(
firstRow
);
Cell
fCell
=
fRow
.
getCell
(
firstColumn
);
return
getCellValue
(
fCell
)
;
}
}
}
return
null
;
}
/**
* 判断指定的单元格是否是合并单元格
* @param sheet
* @param row 行下标
* @param column 列下标
* @return
*/
private
boolean
isMergedRegion
(
Sheet
sheet
,
int
row
,
int
column
)
{
int
sheetMergeCount
=
sheet
.
getNumMergedRegions
();
for
(
int
i
=
0
;
i
<
sheetMergeCount
;
i
++)
{
CellRangeAddress
range
=
sheet
.
getMergedRegion
(
i
);
int
firstColumn
=
range
.
getFirstColumn
();
int
lastColumn
=
range
.
getLastColumn
();
int
firstRow
=
range
.
getFirstRow
();
int
lastRow
=
range
.
getLastRow
();
if
(
row
>=
firstRow
&&
row
<=
lastRow
){
if
(
column
>=
firstColumn
&&
column
<=
lastColumn
){
return
true
;
}
}
}
return
false
;
}
/**
* 获取单元格的值
* @param cell
* @return
*/
public
String
getCellValue
(
Cell
cell
){
if
(
cell
==
null
)
return
""
;
if
(
cell
.
getCellType
()
==
Cell
.
CELL_TYPE_STRING
){
return
cell
.
getStringCellValue
();
}
else
if
(
cell
.
getCellType
()
==
Cell
.
CELL_TYPE_BOOLEAN
){
return
String
.
valueOf
(
cell
.
getBooleanCellValue
());
}
else
if
(
cell
.
getCellType
()
==
Cell
.
CELL_TYPE_FORMULA
){
return
cell
.
getCellFormula
()
;
}
else
if
(
cell
.
getCellType
()
==
Cell
.
CELL_TYPE_NUMERIC
){
return
String
.
valueOf
(
cell
.
getNumericCellValue
());
}
return
""
;
}
}
src/main/java/com/ctrip/fun/admin/service/basic/InvoiceRequestService.java
0 → 100644
View file @
bb454e2e
package
com
.
ctrip
.
fun
.
admin
.
service
.
basic
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
javax.servlet.ServletOutputStream
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.core.ParameterizedTypeReference
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.web.client.RestClientException
;
import
com.ctrip.fun.admin.service.BaseService
;
import
com.ctrip.fun.common.vo.PagedResponseBean
;
import
com.ctrip.fun.common.vo.Request
;
import
com.ctrip.fun.common.vo.Response
;
import
com.ctrip.fun.common.vo.ResponseStatusEnum
;
import
com.ctrip.fun.common.vo.basic.InvoiceRequestBean
;
import
com.ctrip.fun.common.vo.basic.InvoiceRequestQuery
;
public
class
InvoiceRequestService
extends
BaseService
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
InvoiceRequestService
.
class
);
/**
*查询发票申请
*/
public
PagedResponseBean
<
InvoiceRequestBean
>
queryList
(
String
userId
,
InvoiceRequestQuery
query
)
{
PagedResponseBean
<
InvoiceRequestBean
>
responseBean
=
new
PagedResponseBean
<
InvoiceRequestBean
>(
0
,
new
ArrayList
<
InvoiceRequestBean
>());
String
uri
=
super
.
getServiceUri
(
"uri.invoiceRequest.queryList"
);
Request
<
InvoiceRequestQuery
>
request
=
new
Request
<
InvoiceRequestQuery
>(
""
,
query
);
HttpEntity
<
Request
<
InvoiceRequestQuery
>>
entity
=
new
HttpEntity
<
Request
<
InvoiceRequestQuery
>>(
request
);
Response
<
PagedResponseBean
<
InvoiceRequestBean
>>
response
=
null
;
try
{
response
=
super
.
exchange
(
uri
,
HttpMethod
.
POST
,
entity
,
new
ParameterizedTypeReference
<
Response
<
PagedResponseBean
<
InvoiceRequestBean
>>>()
{
}).
getBody
();
}
catch
(
RestClientException
e
)
{
logger
.
error
(
e
.
getMessage
());
}
if
(
null
!=
response
&&
response
.
getStatus
()
==
ResponseStatusEnum
.
SUCCESS
.
getValue
())
{
responseBean
=
response
.
getBody
();
}
else
{
logger
.
error
(
"{} status: {}, msg: {}"
,
"获取电销任务列表异常"
,
response
.
getStatus
(),
response
.
getMessage
());
}
return
responseBean
;
}
/**
*保存发票申请
*/
public
int
add
(
String
userId
,
InvoiceRequestBean
bean
)
{
String
uri
=
super
.
getServiceUri
(
"uri.invoiceRequest.add"
);
int
retKey
=
0
;
Request
<
InvoiceRequestBean
>
request
=
new
Request
<
InvoiceRequestBean
>(
userId
,
bean
);
HttpEntity
<
Request
<
InvoiceRequestBean
>>
entity
=
new
HttpEntity
<
Request
<
InvoiceRequestBean
>>(
request
);
Response
<
Integer
>
response
=
super
.
exchange
(
uri
,
HttpMethod
.
POST
,
entity
,
new
ParameterizedTypeReference
<
Response
<
Integer
>>()
{
}).
getBody
();
if
(
null
!=
response
)
{
if
(
response
.
getStatus
()
==
0
)
{
retKey
=
response
.
getBody
();
}
else
{
Map
<
String
,
String
>
tags
=
new
HashMap
<>();
tags
.
put
(
"userId"
,
userId
);
tags
.
put
(
"bean"
,
bean
.
toString
());
logger
.
error
(
"add异常"
,
String
.
format
(
"status: %d, msg: %s"
,
response
.
getStatus
(),
response
.
getMessage
()),
tags
);
}
}
return
retKey
;
}
/**
*获取发票申请
*/
public
InvoiceRequestBean
get
(
String
userId
,
Integer
id
)
{
String
uri
=
super
.
getServiceUri
(
"uri.invoiceRequest.get"
);
InvoiceRequestBean
invoiceRequestBean
=
null
;
Request
<
Integer
>
request
=
new
Request
<
Integer
>(
userId
,
id
);
HttpEntity
<
Request
<
Integer
>>
entity
=
new
HttpEntity
<
Request
<
Integer
>>(
request
);
Response
<
InvoiceRequestBean
>
response
=
super
.
exchange
(
uri
,
HttpMethod
.
POST
,
entity
,
new
ParameterizedTypeReference
<
Response
<
InvoiceRequestBean
>>()
{
}).
getBody
();
if
(
null
!=
response
)
{
if
(
response
.
getStatus
()
==
0
)
{
invoiceRequestBean
=
response
.
getBody
();
}
else
{
Map
<
String
,
String
>
tags
=
new
HashMap
<>();
tags
.
put
(
"userId"
,
userId
);
logger
.
error
(
"add异常"
,
String
.
format
(
"status: %d, msg: %s"
,
response
.
getStatus
(),
response
.
getMessage
()),
tags
);
}
}
return
invoiceRequestBean
;
}
/**
*更新发票申请
*/
public
int
update
(
String
userId
,
InvoiceRequestBean
bean
)
{
String
uri
=
super
.
getServiceUri
(
"uri.invoiceRequest.update"
);
Request
<
InvoiceRequestBean
>
request
=
new
Request
<
InvoiceRequestBean
>(
userId
,
bean
);
HttpEntity
<
Request
<
InvoiceRequestBean
>>
entity
=
new
HttpEntity
<
Request
<
InvoiceRequestBean
>>(
request
);
super
.
exchange
(
uri
,
HttpMethod
.
POST
,
entity
,
new
ParameterizedTypeReference
<
Response
<
Boolean
>>()
{
}).
getBody
();
return
1
;
}
public
int
batchUpdate
(
String
string
,
List
<
InvoiceRequestBean
>
list
)
{
String
uri
=
super
.
getServiceUri
(
"uri.invoiceRequest.batchUpdate"
);
Request
<
List
<
InvoiceRequestBean
>>
request
=
new
Request
<
List
<
InvoiceRequestBean
>>(
""
,
list
);
HttpEntity
<
Request
<
List
<
InvoiceRequestBean
>>>
entity
=
new
HttpEntity
<
Request
<
List
<
InvoiceRequestBean
>>>(
request
);
super
.
exchange
(
uri
,
HttpMethod
.
POST
,
entity
,
new
ParameterizedTypeReference
<
Response
<
Boolean
>>()
{}).
getBody
();
return
1
;
}
}
src/main/resources/config/spring-service.xml
View file @
bb454e2e
...
...
@@ -300,6 +300,17 @@
<!-- 电话销售 -->
<bean
name=
"telTaskService"
class=
"com.ctrip.fun.admin.service.basic.TelTaskService"
parent=
"baseService"
/>
<!-- 开票请求 -->
<bean
name=
"invoiceRequestService"
class=
"com.ctrip.fun.admin.service.basic.InvoiceRequestService"
parent=
"baseService"
/>
<bean
name=
"invoiceRequestExcelExportService"
class=
"com.ctrip.fun.admin.service.basic.InvoiceRequestExcelExportService"
parent=
"baseService"
/>
<bean
name=
"invoiceRequestExcelImportService"
class=
"com.ctrip.fun.admin.service.basic.InvoiceRequestExcelImportService"
/>
<!-- excel导入 -->
<bean
name=
"abstractExcelService"
class=
"com.ctrip.fun.admin.service.excel.AbstractExcelService"
parent=
"baseService"
...
...
src/main/resources/properties/service.properties
View file @
bb454e2e
...
...
@@ -588,3 +588,11 @@ uri.teetime.operateLog=/fun-golf-service/eventCustomerInfo/queryEventCustomerInf
uri.teetime.confirm
=
/fun-golf-service/eventCustomerInfo/confirmOfflineEventCustomerInfo
uri.teetime.cancel
=
/fun-golf-service/eventCustomerInfo/cancelOfflineEventCustomerInfo
uri.invoiceRequest.add
=
/fun-golf-service/invoiceRequest/add
uri.invoiceRequest.get
=
/fun-golf-service/invoiceRequest/get
uri.invoiceRequest.edit
=
/fun-golf-service/invoiceRequest/edit
uri.invoiceRequest.update
=
/fun-golf-service/invoiceRequest/update
uri.invoiceRequest.batchUpdate
=
/fun-golf-service/invoiceRequest/batchUpdate
uri.invoiceRequest.queryList
=
/fun-golf-service/invoiceRequest/list
uri.invoiceRequest.excelList
=
/fun-golf-service/invoiceRequest/excelList
src/main/webapp/WEB-INF/templates/basic/invoiceRequest/invoiceRequestForm.ftl
0 → 100644
View file @
bb454e2e
<#assign pageJsContent>
<script id="ul_template_city" type="text/x-handlebars-template">
{{#each body}}
<option value="{{value}}">{{label}}</option>
{{/each}}
</script>
<script>
$("#submitCheck").click(function(){
$("#telTaskForm").submit();
});
var index = $("#rowsOfOrder").children().length;
$("#addOrder").click(function(){
$("#rowsOfOrder").append("<tr> <td style='width:10%'><input type='checkbox'></td> <td style='width:10%'><input name='invoiceOrderInfoBeans["+index+"].orderNo'></td><td style='width:5%'><input name='invoiceOrderInfoBeans["+index+"].courseName'></td><td style='width:16%'><input name='invoiceOrderInfoBeans["+index+"].amount'></td></tr>");
index++;
});
$("#deleteOrder").click(function(){
$('input[type=checkbox]:checked').each(function () {
$(this).parent("td").parent('tr').remove();
index--;
})
});
</script>
</#assign>
<#assign pageCssContent>
<style>
.modal{
width: 1120px;
margin-left: -560px;
}
.ordersInput{
width:445px;
}
</style>
</#assign>
<@com.layout title="新建发票信息" module="tools" current="invoiceInfo_create" pageJs=pageJsContent pageCss=pageCssContent>
<form id="telTaskForm" class="form-inline form-horizontal" action="${action}" method="post">
<div id="course_container">
<div class="row-fluid show-grid">
<h3 class="open span12" data-collapse-summary="" aria-expanded="true">录入发票信息</h3>
<div class="feature_content">
<@form.hidden "dto.id"/>
<@form.textInput path="dto.costOfDepart" attributes="class=\"input-medium\"" label="快递费用归属部门" required = true />
<@form.textInput path="dto.invoiceTitle" attributes="class=\"input-medium\"" label="发票抬头" required = true />
<@form.textInput path="dto.taxIdNum" attributes="class=\"input-medium\"" label="纳税识别号" required = true />
<@form.textInput path="dto.contactAddress" attributes="class=\"input-medium\"" label="发票寄送地址" required = true />
<@form.textInput path="dto.contactName" attributes="class=\"input-medium\"" label="寄送联系人" required = true />
<@form.textInput path="dto.contactTel" attributes="class=\"input-medium\"" label="联系方式" required = true />
<@form.textInput path="dto.invoiceRemark" attributes="class=\"input-medium\"" label="发票备注" required = true />
<@form.textInput path="dto.salesRemark" attributes="class=\"input-medium\"" label="销售备注" required = true />
<table class="table table-bordered table-striped widthShow" style="width:70%" enctype="multipart/form-data">
<thead>
<tr>
<tr style="width:10%" >
<td colspan='4' align="center">
<button id="addOrder" type="button" style="margin-left:80px;margin-right:400px">添加订单</button>
<button id="deleteOrder" type="button" >删除订单</button>
</td>
</tr>
</tr>
<tr>
<td style="width:10%">请选择</td>
<td style="width:10%">订单号</td>
<td style="width:5%">开票金额</td>
<td style="width:16%">球场名称</td>
</tr>
</thead>
<tbody id="rowsOfOrder">
<#if dto.id ?? >
<#list dto.invoiceOrderInfoBeans as item>
<tr> <td style="width:10%"><input type='checkbox' /></td> <td style='width:10%'><input name='invoiceOrderInfoBeans[${item_index}].orderNo' value=${item.orderNo} ></td><td style='width:5%'><input name='invoiceOrderInfoBeans[${item_index}].courseName' value=${item.courseName}></td><td style='width:16%'><input name='invoiceOrderInfoBeans[${item_index}].amount' value=${item.amount}></td></tr>
</#list>
</#if>
</tbody>
</table>
<#if dto.id ?? >
<#else>
<div>
<button id="submitCheck" type="button" class="btn btn-primary pull-left bottom_margin" >确认信息</button>
</div>
</#if>
</div>
</form>
</@com.layout>
src/main/webapp/WEB-INF/templates/basic/invoiceRequest/invoiceRequestList.ftl
0 → 100644
View file @
bb454e2e
<#assign pageJsContent>
<script>
function changeMobilePhoneToEdit(orderId){
var changeMobilePhoneToEdit = $("#changeMobilePhoneToEdit");
console.dir($("#changeMobilePhoneToEdit"));
changeMobilePhoneToEdit.modal('show');
console.log(changeMobilePhoneToEdit);
$("#idForFinanceUpdate").val(orderId);
}
function submitParseForm(){
$("#parseForm").submit();
}
$("#sendTimeForFinanceUpdate").iCalendar({
placeholder: $("#sendTimeForFinanceUpdate").val() ? $("#sendTimeForFinanceUpdate").val() : "blank"
});
function financeUpdate(){
alert($('#expressNoForFinanceUpdate').val());
alert($('#idForFinanceUpdate').val());
alert($('#refusedReasonForFinanceUpdate').val());
alert($('#sendTimeForFinanceUpdate').val());
jQuery.ajax({
type:"POST",
contentType:"application/x-www-form-urlencoded",
url:"/j/invoiceRequest/financeUpdate",
data:{
id:$('#idForFinanceUpdate').val(),
expressNo:$('#expressNoForFinanceUpdate').val(),
refusedReason:$('#refusedReasonForFinanceUpdate').val(),
sendTime:$('#sendTimeForFinanceUpdate').val()
},
success:function(data){
data = eval(data);
if(data.status == 0){
alert("修改成功");
window.location.reload();
}else{
alert("修改失败!" + data.message);
}
},
error:function(){
alert("修改失败!");
}
});
$('#changeMobilePhoneToEdit').modal('hide');
};
</script>
</#assign>
<#assign pageCssContent>
<style>
.table th, .table td{ text-align:center;vertical-align:middle;}
.widthShow {
width: 1100px;
}
</style>
</#assign>
<@com.layout title="开票申请列表" module="tools" current="invoiceInfo_list" pageCss=pageCssContent pageJs=pageJsContent>
<form class="form-inline search-box" action="/invoiceRequest/list" method="get" autocomplete="off" style="float:left">
<@com.textInput "dto.contactName" "style=\"margin-left: 5px;\"" "寄送联系人"/>
<@com.textInput "dto.requestPerson" "style=\"margin-left: 5px;\"" "发票提交人"/>
<@com.singleSelectQuery "dto.status" enums["com.ctrip.fun.common.vo.basic.InvoiceRequestStatusEnum"] "" "处理状态"/>
<@com.textInputTwoDate "dto.createTimeStart" "dto.createTimeEnd" "style=\"margin-left: 5px;\"" "发票提交时间"/>
<button id="J_submit" class="btn btn-primary">查询</button>
<button type="button" class="btn btn-success" onclick="javascript:location.href='/invoiceRequest/list';" style="margin-left:20px;">重置</button>
</form>
<table class="table table-bordered table-striped widthShow">
<thead>
<tr>
<th style="width: 50px;">寄送联系人</th>
<th style="width: 50px;">联系方式</th>
<th style="width: 60px;">提交人</th>
<th style="width: 60px;">提交日期</th>
<th style="width: 50px;">处理状态</th>
<th style="width: 38px;">未开票原因</th>
<th style="width: 38px;">运单号</th>
<th style="width: 38px;">寄送时间</th>
<th style="width: 38px;">详情查看</th>
<th style="width: 38px;">财务处理</th>
</tr>
</thead>
<tbody>
<#list list as item>
<tr>
<td>${item.contactName!}</td>
<td>${item.contactTel!}</td>
<td>${item.requestPerson!}</td>
<td>${(item.createTime?string('yyyy-MM-dd hh:mm:ss'))!}</td>
<#if item.status==1>
<td>待处理</td>
<#elseif item.status==2>
<td>已处理</td>
</#if>
<td>${item.refusedReason!}</td>
<td>${item.expressNo!}</td>
<td>${(item.sendTime?string('yyyy-MM-dd'))!}</td>
<td> <a href="/invoiceRequest/edit?id=${item.id!}" >查看</a> </td>
<td> <a href='javascript:void(0);' onclick="changeMobilePhoneToEdit('${item.id!}')" >处理</a> </td>
</tr>
</#list>
</tbody>
</table>
<form method="post" id="parseForm" action='/invoiceRequest/excelImport' enctype="multipart/form-data"><br>
<a href="${excelpath}">excel导出</a>
<input type="file" name="financeFile" style="margin-left:50px"/>
<input type="button" value="解析数据" onclick='submitParseForm()' />
</form>
<div class="pagination pagination-right widthShow">
<ul>
<@paginator.first />
<@paginator.previous />
<@paginator.numbers separator=""/>
<@paginator.next />
<@paginator.last />
</ul>
<@paginator.statistics />
</div>
<div class="modal hide fade" id="changeMobilePhoneToEdit">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h3>发票处理</h3>
</div>
<div class="modal-body" id='courseSelector'>
<table class="table table-bordered table-striped">
<tbody id="tableList">
<tr>
<input type='hidden' id='idForFinanceUpdate' />
<td style="text-align: right">寄出时间:</td> <td style="text-align: left"> <input id='sendTimeForFinanceUpdate' value=''/> </td>
<td rowspan='3'> <input type='button' onclick='financeUpdate()' value='处理完成'/> </td>
</tr>
<tr>
<td style="text-align: right">快递单号:</td> <td style="text-align: left"> <input id='expressNoForFinanceUpdate' value=''/> </td>
</tr>
<tr>
<td style="text-align: right">未开票原因:</td> <td style="text-align: left"> <input id='refusedReasonForFinanceUpdate' value=''/> </td>
</tr>
</tbody>
</table>
<div class="pagination pagination-mini">
</div>
</div>
</div>
</@com.layout>
\ No newline at end of file
src/main/webapp/WEB-INF/templates/common/layout.ftl
View file @
bb454e2e
...
...
@@ -358,6 +358,14 @@ ${pageCss}
<li
<#
if
current =
=
"
rankList
"
>
class="active"
</
#
if>
>
<a
href=
"/eventCustomerInfo/importExcelRankList"
>
成绩导入
</a>
</li>
<li
class=
"nav-header"
>
发票提交
</li>
<li
<#
if
current =
=
"
invoiceInfo_create
"
>
class="active"
</
#
if>
>
<a
href=
"/invoiceRequest/create"
>
录入发票
</a>
</li>
<li
<#
if
current =
=
"
invoiceInfo_list
"
>
class="active"
</
#
if>
>
<a
href=
"/invoiceRequest/list"
>
查询发票
</a>
</li>
</ul>
<
#
elseif
module=
="tourOrder"
>
<ul
class=
"nav nav-list"
>
...
...
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