Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
bailuntec-cost
Overview
Overview
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
huluobin
bailuntec-cost
Commits
d63ed670
Commit
d63ed670
authored
Jan 22, 2021
by
huluobin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
# update
parent
684662ce
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
281 additions
and
29 deletions
+281
-29
OaUserMapper.java
...main/java/com/blt/other/module/auth/dao/OaUserMapper.java
+5
-0
CostCompanyDao.java
...in/java/com/blt/other/module/cost/dao/CostCompanyDao.java
+7
-3
CostCompanyService.java
...com/blt/other/module/cost/service/CostCompanyService.java
+6
-2
CostCompanyServiceImpl.java
...ther/module/cost/service/impl/CostCompanyServiceImpl.java
+46
-22
CostReviewerImportItem.java
.../other/module/sys/dto/request/CostReviewerImportItem.java
+28
-0
CostReviewerExportItem.java
...other/module/sys/dto/response/CostReviewerExportItem.java
+28
-0
CostReviewerImportItemListener.java
...dule/sys/service/impl/CostReviewerImportItemListener.java
+113
-0
CostCompanyMapper.xml
cost-service/src/main/resources/mapper/CostCompanyMapper.xml
+48
-2
No files found.
cost-service/src/main/java/com/blt/other/module/auth/dao/OaUserMapper.java
View file @
d63ed670
...
...
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import
com.blt.other.module.auth.model.OaUser
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
/**
* <p>
* Mapper 接口
...
...
@@ -18,4 +20,7 @@ public interface OaUserMapper extends BaseMapper<OaUser> {
OaUser
selectByOaUserId
(
Integer
oaUserId
);
OaUser
selectByUserName
(
String
userName
);
//
List
<
OaUser
>
selectByUserNames
(
String
financialReviewerUser
);
}
cost-service/src/main/java/com/blt/other/module/cost/dao/CostCompanyDao.java
View file @
d63ed670
...
...
@@ -2,8 +2,9 @@ package com.blt.other.module.cost.dao;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.blt.other.module.sys.dto.request.CompanyReviewerListReq
;
import
com.blt.other.database.model.CostCompanyDomain
;
import
com.blt.other.module.sys.dto.request.CompanyReviewerListReq
;
import
com.blt.other.module.sys.dto.response.CostReviewerExportItem
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
...
...
@@ -69,8 +70,11 @@ public interface CostCompanyDao extends BaseMapper<CostCompanyDomain> {
* </p>
*
* @param page 分页参数
* @param req 查询参数
* @param req
查询参数
* @return
*/
IPage
<
CostCompanyDomain
>
reviewerList
(
@Param
(
"page"
)
IPage
<
CostCompanyDomain
>
page
,
@Param
(
"req"
)
CompanyReviewerListReq
req
);
IPage
<
CostCompanyDomain
>
reviewerPage
(
@Param
(
"page"
)
IPage
<
CostCompanyDomain
>
page
,
@Param
(
"req"
)
CompanyReviewerListReq
req
);
//导出
List
<
CostReviewerExportItem
>
costReviewerExportItemList
();
}
cost-service/src/main/java/com/blt/other/module/cost/service/CostCompanyService.java
View file @
d63ed670
...
...
@@ -8,6 +8,8 @@ import com.blt.other.module.sys.dto.request.CostReviewerExportReq;
import
com.blt.other.module.sys.dto.request.CostReviewerImportReq
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.UnsupportedEncodingException
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -83,7 +85,9 @@ public interface CostCompanyService extends IService<CostCompanyDomain> {
*/
Map
<
String
,
CostCompanyDomain
>
costCompanyMap
();
void
importExcel
(
CostReviewerImportReq
req
);
//import excel
void
importExcel
(
CostReviewerImportReq
req
)
throws
IOException
;
void
exportExcel
(
HttpServletResponse
response
,
CostReviewerExportReq
req
);
//export excel
void
exportExcel
(
HttpServletResponse
response
,
CostReviewerExportReq
req
)
throws
IOException
;
}
cost-service/src/main/java/com/blt/other/module/cost/service/impl/CostCompanyServiceImpl.java
View file @
d63ed670
package
com
.
blt
.
other
.
module
.
cost
.
service
.
impl
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy
;
import
com.bailuntec.common.ListUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
...
...
@@ -7,17 +9,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.blt.other.common.config.property.CostUrlProperties
;
import
com.blt.other.common.util.CompanyUtil
;
import
com.blt.other.
module.sys.dao.CostReviewerMapper
;
import
com.blt.other.
database.model.CostCompanyDomain
;
import
com.blt.other.module.auth.dao.OaUserMapper
;
import
com.blt.other.module.sys.dto.request.CompanyReviewerListReq
;
import
com.blt.other.module.sys.dto.request.CostReviewerExportReq
;
import
com.blt.other.module.sys.dto.request.CostReviewerImportReq
;
import
com.blt.other.module.sys.model.CostReviewer
;
import
com.blt.other.module.auth.model.OaUser
;
import
com.blt.other.module.cost.dao.CostCompanyDao
;
import
com.blt.other.module.cost.service.CostCompanyService
;
import
com.blt.other.database.model.CostCompanyDomain
;
import
com.blt.other.module.purchasing.vo.CompanyVo
;
import
com.blt.other.module.sys.dao.CostReviewerMapper
;
import
com.blt.other.module.sys.dto.request.CompanyReviewerListReq
;
import
com.blt.other.module.sys.dto.request.CostReviewerExportReq
;
import
com.blt.other.module.sys.dto.request.CostReviewerImportItem
;
import
com.blt.other.module.sys.dto.request.CostReviewerImportReq
;
import
com.blt.other.module.sys.dto.response.CostReviewerExportItem
;
import
com.blt.other.module.sys.dto.response.SpecDepartmentCheckConfigExportExcelItem
;
import
com.blt.other.module.sys.model.CostReviewer
;
import
com.blt.other.module.sys.service.impl.CostReviewerImportItemListener
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Service
;
...
...
@@ -25,6 +31,8 @@ import springfox.documentation.annotations.Cacheable;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.net.URLEncoder
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
...
...
@@ -91,15 +99,9 @@ public class CostCompanyServiceImpl extends ServiceImpl<CostCompanyDao, CostComp
return
costCompanyDao
.
getAllCompanyAuthority
();
}
@Override
public
IPage
<
CostCompanyDomain
>
reviewerList
(
CompanyReviewerListReq
req
)
{
IPage
<
CostCompanyDomain
>
page
=
new
Page
<>(
req
.
getPageNum
(),
req
.
getPageSize
());
page
=
baseMapper
.
reviewerList
(
page
,
req
);
if
(
ListUtil
.
isNotEmpty
(
page
.
getRecords
()))
{
List
<
Integer
>
costCompanyIds
=
page
.
getRecords
().
stream
().
map
(
CostCompanyDomain:
:
getId
).
collect
(
Collectors
.
toList
());
private
void
setCostCompany
(
List
<
CostCompanyDomain
>
costCompanyDomainList
)
{
if
(
ListUtil
.
isNotEmpty
(
costCompanyDomainList
)
{
List
<
Integer
>
costCompanyIds
=
costCompanyDomainList
.
stream
().
map
(
CostCompanyDomain:
:
getId
).
collect
(
Collectors
.
toList
());
//最终审核人
List
<
CostReviewer
>
finalCostReviewerList
=
costReviewerMapper
.
selectList
(
new
LambdaQueryWrapper
<
CostReviewer
>()
...
...
@@ -107,7 +109,7 @@ public class CostCompanyServiceImpl extends ServiceImpl<CostCompanyDao, CostComp
.
eq
(
CostReviewer:
:
getType
,
CostReviewer
.
finalReviewer
));
Map
<
Integer
,
CostReviewer
>
finalReviewerMap
=
finalCostReviewerList
.
stream
().
collect
(
Collectors
.
toMap
(
CostReviewer:
:
getReferId
,
costReviewer
->
costReviewer
));
page
.
getRecords
()
.
forEach
(
record
->
record
.
setFinalReviewer
(
finalReviewerMap
.
get
(
record
.
getId
())));
costCompanyDomainList
.
forEach
(
record
->
record
.
setFinalReviewer
(
finalReviewerMap
.
get
(
record
.
getId
())));
//财务审核人
List
<
CostReviewer
>
financialCostReviewerList
=
costReviewerMapper
.
selectList
(
new
LambdaQueryWrapper
<
CostReviewer
>()
...
...
@@ -115,7 +117,7 @@ public class CostCompanyServiceImpl extends ServiceImpl<CostCompanyDao, CostComp
.
eq
(
CostReviewer:
:
getType
,
CostReviewer
.
financialReviewer
));
Map
<
Integer
,
List
<
CostReviewer
>>
financialReviewerMap
=
financialCostReviewerList
.
stream
().
collect
(
Collectors
.
groupingBy
(
CostReviewer:
:
getReferId
));
page
.
getRecords
()
.
forEach
(
record
->
{
costCompanyDomainList
.
forEach
(
record
->
{
record
.
setFinancialReviewer
(
financialReviewerMap
.
get
(
record
.
getId
()));
});
...
...
@@ -125,11 +127,20 @@ public class CostCompanyServiceImpl extends ServiceImpl<CostCompanyDao, CostComp
.
eq
(
CostReviewer:
:
getType
,
CostReviewer
.
hrReviewer
));
Map
<
Integer
,
List
<
CostReviewer
>>
htReviewerMap
=
hrCostReviewerList
.
stream
().
collect
(
Collectors
.
groupingBy
(
CostReviewer:
:
getReferId
));
page
.
getRecords
()
.
forEach
(
record
->
{
costCompanyDomainList
.
forEach
(
record
->
{
record
.
setHrReviewer
(
htReviewerMap
.
get
(
record
.
getId
()));
});
}
}
@Override
public
IPage
<
CostCompanyDomain
>
reviewerList
(
CompanyReviewerListReq
req
)
{
IPage
<
CostCompanyDomain
>
page
=
new
Page
<>(
req
.
getPageNum
(),
req
.
getPageSize
());
page
=
baseMapper
.
reviewerPage
(
page
,
req
);
this
.
setCostCompany
(
page
.
getRecords
());
return
page
;
}
...
...
@@ -240,13 +251,26 @@ public class CostCompanyServiceImpl extends ServiceImpl<CostCompanyDao, CostComp
}
@Override
public
void
importExcel
(
CostReviewerImportReq
req
)
{
public
void
importExcel
(
CostReviewerImportReq
req
)
throws
IOException
{
CostReviewerImportItemListener
listener
=
new
CostReviewerImportItemListener
();
EasyExcel
.
read
(
req
.
getMultipartFile
().
getInputStream
(),
CostReviewerImportItem
.
class
,
listener
).
sheet
().
doRead
();
}
@Override
public
void
exportExcel
(
HttpServletResponse
response
,
CostReviewerExportReq
req
)
{
public
void
exportExcel
(
HttpServletResponse
response
,
CostReviewerExportReq
req
)
throws
IOException
{
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
response
.
setContentType
(
"application/vnd.ms-excel"
);
response
.
setCharacterEncoding
(
"utf-8"
);
//
String
fileName
=
URLEncoder
.
encode
(
"模版"
,
"UTF-8"
);
response
.
setHeader
(
"Content-disposition"
,
"attachment;filename="
+
fileName
+
".xlsx"
);
LongestMatchColumnWidthStyleStrategy
longestMatchColumnWidthStyleStrategy
=
new
LongestMatchColumnWidthStyleStrategy
();
List
<
CostReviewerExportItem
>
aiList
=
baseMapper
.
costReviewerExportItemList
();
EasyExcel
.
write
(
response
.
getOutputStream
(),
CostReviewerExportItem
.
class
)
.
sheet
(
"sheet"
)
.
registerWriteHandler
(
longestMatchColumnWidthStyleStrategy
)
.
doWrite
(
aiList
);
}
/**
...
...
cost-service/src/main/java/com/blt/other/module/sys/dto/request/CostReviewerImportItem.java
0 → 100644
View file @
d63ed670
package
com
.
blt
.
other
.
module
.
sys
.
dto
.
request
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2021/1/22 2:52 下午
*/
@Data
public
class
CostReviewerImportItem
{
@ExcelProperty
(
"出纳公司主体"
)
private
String
companyName
,
@ExcelProperty
(
"财务审核人"
)
private
String
financialReviewerUser
,
@ExcelProperty
(
"最终审核人"
)
private
String
finalReviewerUser
,
@ExcelProperty
(
"人事审核人"
)
private
String
hrReviewerUser
}
cost-service/src/main/java/com/blt/other/module/sys/dto/response/CostReviewerExportItem.java
0 → 100644
View file @
d63ed670
package
com
.
blt
.
other
.
module
.
sys
.
dto
.
response
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2021/1/22 2:53 下午
*/
@Data
public
class
CostReviewerExportItem
{
@ExcelProperty
(
"出纳公司主体"
)
private
String
companyName
,
@ExcelProperty
(
"财务审核人"
)
private
String
financialReviewerUser
,
@ExcelProperty
(
"最终审核人"
)
private
String
finalReviewerUser
,
@ExcelProperty
(
"人事审核人"
)
private
String
hrReviewerUser
}
cost-service/src/main/java/com/blt/other/module/sys/service/impl/CostReviewerImportItemListener.java
0 → 100644
View file @
d63ed670
package
com
.
blt
.
other
.
module
.
sys
.
service
.
impl
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.alibaba.fastjson.JSON
;
import
com.bailuntec.common.ListUtil
;
import
com.bailuntec.common.SpringContextUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.blt.other.database.model.CostCompanyDomain
;
import
com.blt.other.module.auth.dao.OaUserMapper
;
import
com.blt.other.module.auth.model.OaUser
;
import
com.blt.other.module.cost.dao.CostCompanyDao
;
import
com.blt.other.module.sys.dao.CostReviewerMapper
;
import
com.blt.other.module.sys.dto.request.CostReviewerImportItem
;
import
com.blt.other.module.sys.model.CostReviewer
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2021/1/22 2:54 下午
*/
public
class
CostReviewerImportItemListener
extends
AnalysisEventListener
<
CostReviewerImportItem
>
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
CostReviewerImportItemListener
.
class
);
private
static
final
int
BATCH_COUNT
=
1000
;
List
<
CostReviewerImportItem
>
list
=
new
ArrayList
<>();
@Override
public
void
invoke
(
CostReviewerImportItem
data
,
AnalysisContext
context
)
{
LOGGER
.
info
(
"解析到一条数据:{}"
,
JSON
.
toJSONString
(
data
));
list
.
add
(
data
);
if
(
list
.
size
()
>=
BATCH_COUNT
)
{
syncData
();
list
.
clear
();
}
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
syncData
();
LOGGER
.
info
(
"所有数据解析完成!"
);
}
private
void
syncData
()
{
LOGGER
.
info
(
"{}条数据,开始存储数据库!"
,
list
.
size
());
CostCompanyDao
costCompanyDao
=
SpringContextUtil
.
getBean
(
CostCompanyDao
.
class
);
OaUserMapper
oaUserMapper
=
SpringContextUtil
.
getBean
(
OaUserMapper
.
class
);
CostReviewerMapper
costReviewerMapper
=
SpringContextUtil
.
getBean
(
CostReviewerMapper
.
class
);
list
.
forEach
(
item
->
{
CostCompanyDomain
costCompanyDomain
=
costCompanyDao
.
selectByName
(
item
.
getCompanyName
());
if
(
costCompanyDomain
!=
null
)
{
List
<
OaUser
>
financialReviewerUser
=
oaUserMapper
.
selectByUserNames
(
item
.
getFinancialReviewerUser
());
if
(
ListUtil
.
isNotEmpty
(
financialReviewerUser
))
{
costReviewerMapper
.
delete
(
new
LambdaQueryWrapper
<
CostReviewer
>()
.
eq
(
CostReviewer:
:
getType
,
CostReviewer
.
financialReviewer
));
financialReviewerUser
.
forEach
(
oaUser
->
{
CostReviewer
costReviewer
=
new
CostReviewer
();
costReviewer
.
setReviewerUserId
(
oaUser
.
getOaUserId
());
costReviewer
.
setReviewerUserName
(
oaUser
.
getUserName
());
costReviewer
.
setReferId
(
costCompanyDomain
.
getId
());
costReviewer
.
setType
(
CostReviewer
.
financialReviewer
);
costReviewerMapper
.
insert
(
costReviewer
);
});
}
List
<
OaUser
>
finalReviewerUser
=
oaUserMapper
.
selectByUserNames
(
item
.
getFinalReviewerUser
());
if
(
ListUtil
.
isNotEmpty
(
finalReviewerUser
))
{
costReviewerMapper
.
delete
(
new
LambdaQueryWrapper
<
CostReviewer
>()
.
eq
(
CostReviewer:
:
getType
,
CostReviewer
.
finalReviewer
));
financialReviewerUser
.
forEach
(
oaUser
->
{
CostReviewer
costReviewer
=
new
CostReviewer
();
costReviewer
.
setReviewerUserId
(
oaUser
.
getOaUserId
());
costReviewer
.
setReviewerUserName
(
oaUser
.
getUserName
());
costReviewer
.
setReferId
(
costCompanyDomain
.
getId
());
costReviewer
.
setType
(
CostReviewer
.
finalReviewer
);
costReviewerMapper
.
insert
(
costReviewer
);
});
}
List
<
OaUser
>
hrReviewerUser
=
oaUserMapper
.
selectByUserNames
(
item
.
getHrReviewerUser
());
if
(
ListUtil
.
isNotEmpty
(
hrReviewerUser
))
{
costReviewerMapper
.
delete
(
new
LambdaQueryWrapper
<
CostReviewer
>()
.
eq
(
CostReviewer:
:
getType
,
CostReviewer
.
hrReviewer
));
financialReviewerUser
.
forEach
(
oaUser
->
{
CostReviewer
costReviewer
=
new
CostReviewer
();
costReviewer
.
setReviewerUserId
(
oaUser
.
getOaUserId
());
costReviewer
.
setReviewerUserName
(
oaUser
.
getUserName
());
costReviewer
.
setReferId
(
costCompanyDomain
.
getId
());
costReviewer
.
setType
(
CostReviewer
.
hrReviewer
);
costReviewerMapper
.
insert
(
costReviewer
);
});
}
}
});
LOGGER
.
info
(
"存储数据库成功!"
);
}
}
cost-service/src/main/resources/mapper/CostCompanyMapper.xml
View file @
d63ed670
...
...
@@ -51,7 +51,11 @@
FROM cost_company
</select>
<select
id=
"reviewerList"
resultType=
"com.blt.other.database.model.CostCompanyDomain"
>
<select
id=
"reviewerPage"
resultType=
"com.blt.other.database.model.CostCompanyDomain"
>
<include
refid=
"reviewerSql"
/>
</select>
<sql
id=
"reviewerSql"
>
select t1.* from cost_company t1
<if
test=
"req.financialReviewerUserId !=null"
>
left join cost_reviewer t2 on t1.id = t2.refer_id and t2.type = 2
...
...
@@ -60,7 +64,7 @@
left join cost_reviewer t3 on t1.id = t3.refer_id and t3.type = 3
</if>
<if
test=
"req.hrReviewerUserId !=null"
>
left join cost_reviewer t
3 on t1.id = t3.refer_id and t3
.type = 4
left join cost_reviewer t
4 on t1.id = t4.refer_id and t4
.type = 4
</if>
where true
/*财务审核人*/
...
...
@@ -73,6 +77,48 @@
</if>
/*行政审核人*/
<if
test=
"req.hrReviewerUserId !=null"
>
and t4.reviewer_user_id =#{req.hrReviewerUserId}
</if>
/*最后修改时间*/
<if
test=
"req.startTime !=null"
>
and t1.last_update_time
>
#{req.startTime}
</if>
/*最后修改时间*/
<if
test=
"req.endTime !=null"
>
and t1.last_update_time
<
#{req.endTime}
</if>
/*修改人*/
<if
test=
"req.modifyUserId !=null"
>
and t1.update_user_id =#{req.modifyUserId}
</if>
<if
test=
"req.companyNo !=null and req.companyNo!= '' "
>
and t1.company_no =#{req.companyNo}
</if>
group by t1.id
</sql>
<select
id=
"costReviewerExportItemList"
resultType=
"com.blt.other.module.sys.dto.response.CostReviewerExportItem"
>
select t1.company_name,
group_concat(t2.reviewer_user_name) financial_reviewer_user,
group_concat(t3.reviewer_user_name) final_reviewer_user,
group_concat(t4.reviewer_user_name) hr_reviewer_user
from cost_company t1
left join cost_reviewer t2 on t1.id = t2.refer_id and t2.type = 2
left join cost_reviewer t3 on t1.id = t3.refer_id and t3.type = 3
left join cost_reviewer t4 on t1.id = t3.refer_id and t3.type = 4
where true
/*财务审核人*/
<if
test=
"req.financialReviewerUserId !=null"
>
and t2.reviewer_user_id =#{req.financialReviewerUserId}
</if>
/*最终审核人*/
<if
test=
"req.finalReviewerUserId !=null"
>
and t3.reviewer_user_id =#{req.finalReviewerUserId}
</if>
/*行政审核人*/
<if
test=
"req.hrReviewerUserId !=null"
>
and t3.reviewer_user_id =#{req.hrReviewerUserId}
</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