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
a0df5fc8
authored
Nov 29, 2023
by
caosy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
发票改版
parent
93365012
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
121 additions
and
86 deletions
src/main/java/com/ctrip/fun/admin/controller/basic/InvoiceRequestController.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/InvoiceRequestService.java
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/order/detail/waitingPayDetail.ftl
src/main/java/com/ctrip/fun/admin/controller/basic/InvoiceRequestController.java
View file @
a0df5fc8
...
...
@@ -14,6 +14,7 @@ import javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.Valid
;
import
org.jsoup.helper.StringUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.GrantedAuthority
;
import
org.springframework.security.core.userdetails.UserDetails
;
...
...
@@ -25,6 +26,7 @@ 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
org.springframework.web.servlet.ModelAndView
;
import
org.springframework.web.servlet.mvc.support.RedirectAttributes
;
import
com.alibaba.fastjson.JSON
;
...
...
@@ -87,28 +89,31 @@ public class InvoiceRequestController {
*/
@RequestMapping
(
value
=
"/create"
,
method
=
RequestMethod
.
POST
)
public
String
createVoucher
(
@Valid
@ModelAttribute
(
"dto"
)
InvoiceRquestDto
dto
,
BindingResult
bindingResult
,
ModelMap
model
,
HttpServletResponse
res
)
{
// dto.setRequestPerson(SpringSecurityUtil.getCurrentUserName());
// InvoiceRequestBean bean = new InvoiceRequestBean();
// BeanConverter.copyProperties(bean, dto);
// invoiceRequestService.add("", bean);
// return "redirect:list";
//InvoiceOrderInfoBean invoiceOrderInfo = null;
BindingResult
bindingResult
,
ModelMap
model
,
HttpServletResponse
res
,
RedirectAttributes
redirectAttributes
)
{
dto
.
setRequestPerson
(
SpringSecurityUtil
.
getCurrentUserName
());
InvoiceRequestBean
bean
=
new
InvoiceRequestBean
();
InvoiceOrderInfoBean
invoiceOrder
=
new
InvoiceOrderInfoBean
();
//List<String> invoiceOrders = new ArrayList<String>();
String
orders
=
""
;
for
(
InvoiceOrderInfoBean
invoiceOrderInfoBean
:
dto
.
getInvoiceOrderInfoBeans
())
{
invoiceOrder
=
invoiceRequestService
.
findInvoiceInfoByOrderNo
(
""
,
invoiceOrderInfoBean
.
getOrderNo
());
if
(
invoiceOrder
!=
null
){
//invoiceOrders.add(invoiceOrder.getOrderNo());
invoiceOrderInfoBean
.
setCompanyIndex
(
dto
.
getCompanyIndex
());
invoiceOrderInfoBean
.
setOrderNo
(
invoiceOrderInfoBean
.
getOrderNo
().
replaceAll
(
" "
,
""
));
invoiceOrder
=
invoiceRequestService
.
findInvoiceInfoByOrderNo
(
""
,
invoiceOrderInfoBean
);
if
(!
StringUtil
.
isBlank
(
invoiceOrder
.
getMsg
())){
orders
+=
invoiceOrder
.
getOrderNo
()+
","
;
break
;
}
else
{
invoiceOrderInfoBean
.
setBasePrice
(
invoiceOrder
.
getBasePrice
());
invoiceOrderInfoBean
.
setCostPrice
(
invoiceOrder
.
getCostPrice
());
invoiceOrderInfoBean
.
setAmount
(
String
.
valueOf
(
invoiceOrder
.
getCostPrice
()));
invoiceOrderInfoBean
.
setCourseName
(
invoiceOrder
.
getCourseName
());
}
}
if
(
orders
!=
""
&&
!
""
.
equals
(
orders
)){
model
.
addAttribute
(
"orderValue"
,
"该订单号或者支付凭证号已存在"
+
orders
);
dto
.
setMsg
(
invoiceOrder
.
getMsg
());
redirectAttributes
.
addFlashAttribute
(
"dto"
,
dto
);
return
"redirect:create"
;
}
else
{
BeanConverter
.
copyProperties
(
bean
,
dto
);
...
...
src/main/java/com/ctrip/fun/admin/form/basic/InvoiceRquestDto.java
View file @
a0df5fc8
...
...
@@ -48,6 +48,8 @@ public class InvoiceRquestDto {
//开票申请人
private
String
requestPerson
;
//销售员备注
private
String
salesRemark
;
...
...
@@ -56,6 +58,14 @@ public class InvoiceRquestDto {
//到付,付款信息
private
String
payInfo
;
//开票公司
private
String
billingCompany
;
private
String
companyIndex
;
private
String
msg
;
private
List
<
InvoiceOrderInfoBean
>
invoiceOrderInfoBeans
;
...
...
@@ -198,6 +208,31 @@ public class InvoiceRquestDto {
this
.
payInfo
=
payInfo
;
}
public
String
getBillingCompany
()
{
return
billingCompany
;
}
public
void
setBillingCompany
(
String
billingCompany
)
{
this
.
billingCompany
=
billingCompany
;
}
public
String
getMsg
()
{
return
msg
;
}
public
void
setMsg
(
String
msg
)
{
this
.
msg
=
msg
;
}
public
String
getCompanyIndex
()
{
return
companyIndex
;
}
public
void
setCompanyIndex
(
String
companyIndex
)
{
this
.
companyIndex
=
companyIndex
;
}
}
src/main/java/com/ctrip/fun/admin/service/basic/InvoiceRequestExcelExportService.java
View file @
a0df5fc8
...
...
@@ -2,6 +2,7 @@ package com.ctrip.fun.admin.service.basic;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Collection
;
import
java.util.List
;
...
...
@@ -66,11 +67,13 @@ public class InvoiceRequestExcelExportService extends AbstractExcelExportService
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
(
"发票寄送费凭证"
);
titleList
.
add
(
"订单号"
);
titleList
.
add
(
"开票金额"
);
titleList
.
add
(
"球场"
);
// 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("发票寄送费凭证");
// titleList.add("订单号");titleList.add("开票金额");titleList.add("球场");
List
<
String
>
titleList
=
Arrays
.
asList
(
"发票申请ID"
,
"快递费用归属部门"
,
"提交人"
,
"发票抬头"
,
"纳税识别号"
,
"发票寄送地址"
,
"寄送联系人"
,
"联系方式"
,
"开票备注"
,
"未开票原因"
,
"快递单号"
,
"寄出时间"
,
"寄送方式"
,
"发票寄送费凭证"
,
"订单号"
,
"开票金额"
,
"成本"
,
"开票单位"
);
for
(
int
i
=
0
;
i
<
titleList
.
size
();
i
++)
{
cell
=
headRow
.
createCell
(
i
);
...
...
@@ -118,9 +121,11 @@ public class InvoiceRequestExcelExportService extends AbstractExcelExportService
XSSFCell
cell_orderNo
=
row
.
createCell
(
14
);
cell_orderNo
.
setCellValue
(
invoiceOrderInfoBean
.
getOrderNo
()==
null
?
""
:
invoiceOrderInfoBean
.
getOrderNo
());
XSSFCell
cell_Amount
=
row
.
createCell
(
15
);
cell_Amount
.
setCell
Value
(
invoiceOrderInfoBean
.
getAmount
()==
null
?
""
:
invoiceOrderInfoBean
.
getAmount
());
cell_Amount
.
setCell
Formula
(
invoiceOrderInfoBean
.
getCostPrice
().
toString
()==
null
?
""
:
invoiceOrderInfoBean
.
getCostPrice
().
toString
());
XSSFCell
cell_CourseName
=
row
.
createCell
(
16
);
cell_CourseName
.
setCellValue
(
invoiceOrderInfoBean
.
getCourseName
()==
null
?
""
:
invoiceOrderInfoBean
.
getCourseName
());
cell_CourseName
.
setCellFormula
(
invoiceOrderInfoBean
.
getBasePrice
().
toString
()==
null
?
""
:
invoiceOrderInfoBean
.
getBasePrice
().
toString
());
XSSFCell
cell_billingCompany
=
row
.
createCell
(
17
);
cell_billingCompany
.
setCellValue
(
item
.
getBillingCompany
());
}
for
(
int
i
=
0
;
i
<
14
;
i
++){
...
...
src/main/java/com/ctrip/fun/admin/service/basic/InvoiceRequestService.java
View file @
a0df5fc8
...
...
@@ -82,12 +82,12 @@ public class InvoiceRequestService extends BaseService {
* @return InvoiceOrderInfoBean
* @author lsj
*/
public
InvoiceOrderInfoBean
findInvoiceInfoByOrderNo
(
String
userId
,
String
orderNoOrNum
){
public
InvoiceOrderInfoBean
findInvoiceInfoByOrderNo
(
String
userId
,
InvoiceOrderInfoBean
bean
){
String
uri
=
super
.
getServiceUri
(
"uri.invoiceRequest.findInvoiceInfoByOrderNo"
);
InvoiceOrderInfoBean
invoiceRequestBean
=
null
;
Request
<
String
>
request
=
new
Request
<
String
>(
userId
,
orderNoOrNum
);
HttpEntity
<
Request
<
String
>>
entity
=
new
HttpEntity
<
Request
<
String
>>(
request
);
Request
<
InvoiceOrderInfoBean
>
request
=
new
Request
<
InvoiceOrderInfoBean
>(
userId
,
bean
);
HttpEntity
<
Request
<
InvoiceOrderInfoBean
>>
entity
=
new
HttpEntity
<
Request
<
InvoiceOrderInfoBean
>>(
request
);
Response
<
InvoiceOrderInfoBean
>
response
=
super
.
exchange
(
uri
,
HttpMethod
.
POST
,
entity
,
new
ParameterizedTypeReference
<
Response
<
InvoiceOrderInfoBean
>>()
{
}).
getBody
();
...
...
src/main/webapp/WEB-INF/templates/basic/invoiceRequest/invoiceRequestForm.ftl
View file @
a0df5fc8
...
...
@@ -21,6 +21,7 @@ $(function(){
var index = $("#rowsOfOrder").children().length;
$("#submitCheck").click(function(){
var costOfDepart = $("#costOfDepart").val();
var billingCompany = $("#billingCompany").val();
var invoiceTitle = $("#invoiceTitle").val();
var taxIdNum = $("#taxIdNum").val();
...
...
@@ -30,8 +31,7 @@ $("#submitCheck").click(function(){
var road = $("#road").val();
var room = $("#room").val();
var contactName = $("#contactName").val();
var contactTel = $("#contactTel").val();
var payInfo = $("#payInfo").val();
...
...
@@ -40,7 +40,10 @@ $("#submitCheck").click(function(){
var sendWay = $("input[name='sendWay']:checked").val();
if(billingCompany==""){
alert("请填入开票公司");
return;
}
if(costOfDepart==""){
alert("请填入快递费用归属部门");
return;
...
...
@@ -54,35 +57,8 @@ $("#submitCheck").click(function(){
return;
}
if(province==""){
alert("请填入邮寄地址省份部分");
return;
}
if(city==""){
alert("请填入邮寄地址城市部分");
return;
}
if(county==""){
alert("请填入邮寄地址区县部分");
return;
}
if(road==""){
alert("请填入邮寄地址道路部分");
return;
}
if(room==""){
alert("请填入邮寄地址门牌号部分");
return;
}
if(contactName==""){
alert("请填入寄送联系人");
return;
}
if(contactTel==""){
alert("请填入联系方式");
return;
}
if(sendWay==2){
if(payInfo==""){
...
...
@@ -104,7 +80,7 @@ $("#submitCheck").click(function(){
$("#addOrder").click(function(){
$("#rowsOfOrder").append("<tr> <td style='width:10%'><input type='checkbox'></td> <td style='width:10%'><input name='invoiceOrderInfoBeans["+index+"].orderNo' title='非订单号格式:入社费(张三20190101-12:30)'></td><
td style='width:5%'><input name='invoiceOrderInfoBeans["+index+"].amount'></td><td style='width:16%'><input name='invoiceOrderInfoBeans["+index+"].courseName'></td><
/tr>");
$("#rowsOfOrder").append("<tr> <td style='width:10%'><input type='checkbox'></td> <td style='width:10%'><input name='invoiceOrderInfoBeans["+index+"].orderNo' title='非订单号格式:入社费(张三20190101-12:30)'></td></tr>");
index++;
});
...
...
@@ -141,14 +117,16 @@ $("#deleteOrder").click(function(){
<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>
<h3 class="open span12" data-collapse-summary="" aria-expanded="true">录入发票信息<
span style ="color:red" >(开票金额 不包含劵金额、余额)</span><
/h3>
<div class="feature_content">
<@form.hidden "dto.id"/>
<!--<@form.textInput path="dto.costOfDepart" attributes="class=\"input-medium\"" label="快递费用归属部门" required = true />-->
<@form.singleSelect path="dto.costOfDepart" options=enums["com.ctrip.fun.common.vo.product.InvoiceStatusEnum"] attributes="" label="快递费用归属部门" required=true/>
<@form.singleSelect path="dto.companyIndex" options=enums["com.ctrip.fun.common.vo.basic.InvoiceCompanyEnum"] attributes="" 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 />
<div class="long_content_div control-group ">
<
!-- <
div class="long_content_div control-group ">
<label class="control-label" for="contactAddress">发票寄送地址</label>
<div class="controls">
<input type="text" id="province" placeholder="省" class="input-medium" " style='width:50px'>
...
...
@@ -158,28 +136,36 @@ $("#deleteOrder").click(function(){
<input type="text" id="room" placeholder="门牌号和房间号" class="input-medium" " style='width:120px'>
</div>
</div>
<@form.hidden "dto.contactAddress"/>
-->
<
!-- <
@form.hidden "dto.contactAddress"/>
<@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 />
-->
<@form.textInput path="dto.invoiceRemark" attributes="class=\"input-medium\"" label="发票备注" />
<!-- <@form.textInput path="dto.salesRemark" attributes="class=\"input-medium\"" label="销售备注" />
<div class="long_content_div control-group ">
<label class="control-label" for="contactAddress">递送方式</label>
<div class="controls">
<input id="sendWay_Id_1" name="sendWay" type="radio" value="2" checked=true />寄送
<input id="sendWay_Id_3" name="sendWay" type="radio" value="3" checked=true />电子发票
<input id="sendWay_Id_1" name="sendWay" type="radio" value="2" />寄送
<input id="sendWay_Id_2" name="sendWay" type="radio" value="1" <#if sendWay??> <#if sendWay=="1">checked=true</#if> </#if> />到付
</div>
</div>
<div class="long_content_div control-group ">
<label class="control-label" for="payInfo">付款信息</label>
<div class="controls">
<input id="payInfo" name="payInfo" type="text" placeholder='微信:10654321111111233' value="${payInfo!}" />
</div>
</div>
<#if dto.msg ??><span style ="color:red" >${dto.msg}</span></#if>
</div>
</div>
-->
<div class="long_content_div control-group ">
<#if dto.msg ??><span style ="color:red" >${dto.msg}</span></#if>
</div>
<table class="table table-bordered table-striped widthShow" style="width:70%" enctype="multipart/form-data">
<thead>
...
...
@@ -194,15 +180,23 @@ $("#deleteOrder").click(function(){
</tr>
<tr>
<td style="width:10%">删除勾选</td>
<td style="width:10%">订单号/赛事活动(<font color="red">唯一</font>属性)</td>
<td style="width:5%">开票金额</td>
<td style="width:16%">球场名称</td>
<td style="width:10%">订单号/赛事活动</td>
<#if dto.id ?? >
<td style="width:5%">开票金额(<font color="red">开票金额不包含劵金额、余额</font>)</td>
<td style="width:16%">订单名称</td>
</#if>
</tr>
</thead>
<tbody id="rowsOfOrder">
<#if dto.i
d
?? >
<#if dto.i
nvoiceOrderInfoBeans
?? >
<#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}].amount' value=${item.amount}></td><td style='width:16%'><input name='invoiceOrderInfoBeans[${item_index}].courseName' value=${item.courseName}></td></tr>
<tr> <td style="width:10%"><input type='checkbox' /></td>
<td style='width:10%'><input name='invoiceOrderInfoBeans[${item_index}].orderNo' value=${item.orderNo} ></td>
<#if dto.id ?? >
<td style='width:5%'><input name='invoiceOrderInfoBeans[${item_index}].amount' value=${item.amount}></td>
<td style='width:16%'><input name='invoiceOrderInfoBeans[${item_index}].courseName' value=${item.courseName}></td>
</#if>
</tr>
</#list>
</#if>
</tbody>
...
...
src/main/webapp/WEB-INF/templates/basic/invoiceRequest/invoiceRequestList.ftl
View file @
a0df5fc8
...
...
@@ -91,17 +91,18 @@ function financeUpdate(){
<thead>
<tr>
<th style="width: 50px;">申请ID</th>
<th style="width: 50px;">寄送联系人</th>
<th style="width: 50px;">联系方式</th>
<
!-- <
th style="width: 50px;">寄送联系人</th>
<th style="width: 50px;">联系方式</th>
-->
<th style="width: 60px;">提交人</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>
<
!-- <
th style="width: 38px;">寄送方式</th>
<th style="width: 38px;">寄送费凭证</th>
-->
<th style="width: 38px;">详情查看</th>
<th style="width: 38px;">财务处理</th>
...
...
@@ -113,9 +114,10 @@ function financeUpdate(){
<#list list as item>
<tr>
<td>${item.id!}</td>
<td>${item.contactName!}</td>
<td>${item.contactTel!}</td>
<
!--<
td>${item.contactName!}</td>
<td>${item.contactTel!}</td>
-->
<td>${item.requestPerson!}</td>
<td>${item.nickName!}</td>
<td>${(item.createTime?string('yyyy-MM-dd hh:mm:ss'))!}</td>
<#if item.status==1>
<td>待处理</td>
...
...
@@ -128,15 +130,6 @@ function financeUpdate(){
<td>${item.expressNo!}</td>
<td>${item.sendTime!}</td>
<#if item.sendWay=="1">
<td>到付</td>
<#elseif item.sendWay=="2">
<td>寄送</td>
<#else>
<td>未知</td>
</#if>
<td>${item.payInfo!}</td>
<td> <a href="/invoiceRequest/edit?id=${item.id!}" >查看</a> </td>
<td> <a href='javascript:void(0);' onclick="changeMobilePhoneToEdit('${item.id!}')" >处理</a> </td>
...
...
@@ -148,8 +141,11 @@ function financeUpdate(){
<form method="post" id="parseForm" action='/invoiceRequest/excelImport' enctype="multipart/form-data"><br>
<#if "${Session['SPRING_SECURITY_CONTEXT'].authentication.name}" == "jingchaoh">
<a href="${excelpath}">excel导出</a>
</#if>
<input type="file" name="financeFile" style="margin-left:50px"/>
<input type="button" value="解析数据" onclick='submitParseForm()' />
</form>
...
...
src/main/webapp/WEB-INF/templates/order/detail/waitingPayDetail.ftl
View file @
a0df5fc8
...
...
@@ -54,7 +54,7 @@
<a href="javascript:;" onclick="javascript:$('#cancelForm').attr('action','/order/confirmPaied').submit();" class="btn btn-primary btn-large">确认打款</a>
<#if orderBean.canRefund = 2 >
<#if "${Session['SPRING_SECURITY_CONTEXT'].authentication.name}" == "
xiaoxuanliu" || "${Session['SPRING_SECURITY_CONTEXT'].authentication.name}" == "zhou.ting" || "${Session['SPRING_SECURITY_CONTEXT'].authentication.name}" == "junfengz" || "${Session['SPRING_SECURITY_CONTEXT'].authentication.name}" == "beisuoh
" || "${Session['SPRING_SECURITY_CONTEXT'].authentication.name}" == "jingchaoh">
<#if "${Session['SPRING_SECURITY_CONTEXT'].authentication.name}" == "
chuanyue
" || "${Session['SPRING_SECURITY_CONTEXT'].authentication.name}" == "jingchaoh">
<a href="javascript:;" onclick="refund()" class="btn btn-primary btn-large">退单</a>
</#if>
</#if>
...
...
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