Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gdtel-gztel-school-center
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
吴学德
gdtel-gztel-school-center
Commits
543e078e
Commit
543e078e
authored
Mar 14, 2021
by
罗承锋
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
d84a720c
b29deb58
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
316 additions
and
4 deletions
+316
-4
common/src/main/java/com/winsun/bean/School.java
+5
-0
common/src/main/java/com/winsun/mapper/SchoolMapper.java
+9
-0
common/src/main/resources/com/winsun/mapper/mapping/SchoolMapper.xml
+49
-0
service-manager/src/main/java/com/winsun/controller/SchoolManagementController.java
+237
-4
service-manager/src/main/java/com/winsun/utils/ExcelDealUtils.java
+16
-0
No files found.
common/src/main/java/com/winsun/bean/School.java
View file @
543e078e
...
...
@@ -53,6 +53,11 @@ public class School implements Serializable {
*/
@TableField
(
"service_qrcode"
)
private
String
serviceQrcode
;
/**
* 揽装人
*/
@TableField
(
"lz_user"
)
private
String
lzUser
;
/**
* 揽装工号
...
...
common/src/main/java/com/winsun/mapper/SchoolMapper.java
View file @
543e078e
...
...
@@ -56,4 +56,13 @@ public interface SchoolMapper extends BaseMapper<School> {
" LEFT JOIN hhr_school s ON s.`id`=us.`school_id`"
+
" WHERE u.id=#{id}"
)
Map
<
String
,
Object
>
querySchoolById
(
@Param
(
"id"
)
String
id
);
Map
<
String
,
Object
>
querySchoolMap
(
@Param
(
"subName"
)
String
subName
,
@Param
(
"schoolName"
)
String
schoolName
);
int
insertSchoolMap
(
Map
<
String
,
Object
>
map
);
int
updateSchoolMap
(
Map
<
String
,
Object
>
map
);
int
insertNetworkInfo
(
Map
<
String
,
Object
>
map
);
}
common/src/main/resources/com/winsun/mapper/mapping/SchoolMapper.xml
0 → 100644
View file @
543e078e
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.winsun.mapper.SchoolMapper"
>
<select
id=
"querySchoolMap"
parameterType=
"String"
resultType=
"HashMap"
>
select * from hhr_school where sub_name = #{subName} and school_name = #{schoolName}
</select>
<insert
id=
"insertSchoolMap"
>
INSERT INTO hhr_school
(sub_name,school_name,status,lz_user,lzgh,network_code,network_name,app_id,app_key)
VALUES (#{a},#{b},0,#{c},#{d},#{e},#{f},#{g},#{h})
</insert>
<update
id=
"updateSchoolMap"
>
update hhr_school set
<if
test=
"c != null and c != ''"
>
lz_user = #{c},
</if>
<if
test=
"d != null and d != ''"
>
lzgh = #{d},
</if>
<if
test=
"e != null and e != ''"
>
network_code = #{e},
</if>
<if
test=
"f != null and f != ''"
>
network_name = #{f},
</if>
<if
test=
"g != null and g != ''"
>
app_id = #{g},
</if>
<if
test=
"h != null and h != ''"
>
app_key = #{h},
</if>
sub_name = #{a},school_name = #{b}
where
sub_name = #{a}
and
school_name = #{b}
</update>
<insert
id=
"insertNetworkInfo"
>
INSERT INTO hhr_network_info (area_name,school_name,network_code,network_name)
VALUES (#{a},#{b},#{e},#{f})
</insert>
</mapper>
\ No newline at end of file
service-manager/src/main/java/com/winsun/controller/SchoolManagementController.java
View file @
543e078e
...
...
@@ -9,6 +9,7 @@ import com.winsun.auth.core.annotion.Permission;
import
com.winsun.auth.core.base.controller.BaseController
;
import
com.winsun.auth.core.common.model.ResponseData
;
import
com.winsun.auth.core.shiro.ShiroUser
;
import
com.winsun.auth.core.util.IOUtils
;
import
com.winsun.bean.Package
;
import
com.winsun.bean.Product
;
import
com.winsun.bean.School
;
...
...
@@ -18,9 +19,14 @@ import com.winsun.mapper.PackageMapper;
import
com.winsun.mapper.ProductMapper
;
import
com.winsun.mapper.SchoolMapper
;
import
com.winsun.mapper.SchoolPackageMapper
;
import
com.winsun.utils.ExcelDealUtils
;
import
com.winsun.utils.ImportExcel
;
import
com.winsun.utils.MyBatisPlusUpdateUtils
;
import
io.lettuce.core.dynamic.annotation.Param
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.ss.usermodel.HorizontalAlignment
;
import
org.apache.poi.xssf.usermodel.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
...
@@ -29,13 +35,13 @@ import org.springframework.web.bind.annotation.RequestParam;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
/**
* @Author: chancy
...
...
@@ -46,6 +52,25 @@ import java.util.Map;
@RequestMapping
(
"/school/schoolManagement"
)
public
class
SchoolManagementController
extends
BaseController
{
/**
* 导入
*/
private
static
final
int
HEADER_NUM
=
-
1
;
private
static
final
int
SHEET_INDEX
=
0
;
/**
* 受理单模板列名
* 校园名称(必填) 所属县分(必填) 揽装人 揽装工号 网点编码 网点名称 终端编码 终端密匙
*/
private
static
String
SL_SUB_NAME
=
"所属县分(必填)"
;
private
static
String
SL_SCHOOL
=
"校园名称(必填)"
;
private
static
String
SL_LZ_USER
=
"揽装人"
;
private
static
String
SL_LZGH
=
"揽装工号"
;
private
static
String
SL_NET_CODE
=
"网点编码"
;
private
static
String
SL_NET_NAME
=
"网点名称"
;
private
static
String
SL_APP_ID
=
"终端编码"
;
private
static
String
SL_APP_KEY
=
"终端密匙"
;
private
static
SchoolMapper
schoolMapper
;
private
static
SchoolPackageMapper
schoolPackageMapper
;
...
...
@@ -307,5 +332,213 @@ public class SchoolManagementController extends BaseController {
return
ResponseData
.
success
(
schoolList
,
"查询完毕!"
);
}
/**
* 受理订单
*
* @param file 上传的数据文件
* @return
*/
@Permission
(
menuname
=
"上传数据"
,
value
=
"importDate"
,
method
=
RequestMethod
.
POST
)
public
ResponseData
<
String
>
updateDatas
(
@RequestParam
(
name
=
"file"
)
MultipartFile
file
)
{
StringBuffer
error
=
new
StringBuffer
();
if
(!
StringUtils
.
endsWithAny
(
file
.
getOriginalFilename
(),
"xlsx"
,
"xls"
))
{
return
ResponseData
.
error
(
"手工上传数据仅支持Excel文件,其他格式不支持!"
);
}
if
(
(
double
)
file
.
getSize
()/
1048576
>
100
)
{
return
ResponseData
.
error
(
"文件过大,无法上传"
);
}
ShiroUser
user
=
getShiroUser
();
// 当前是否有数据权限
boolean
hasDataPermission
=
user
.
getRoleNames
().
stream
().
anyMatch
(
data
->
StringUtils
.
equalsAny
(
data
,
"超级管理员"
));
if
(!
hasDataPermission
)
{
return
ResponseData
.
error
(
"无数据权限!"
);
}
ImportExcel
importExcel
=
null
;
try
{
importExcel
=
new
ImportExcel
(
file
,
HEADER_NUM
,
SHEET_INDEX
);
}
catch
(
Exception
e
)
{
log
.
error
(
"受理单导入异常"
,
e
.
getMessage
());
return
ResponseData
.
error
(
"导入异常!"
);
}
List
<
Map
<
String
,
Object
>>
listMap
=
importExcel
.
getDataListMap
();
if
(
listMap
.
size
()
==
1
)
{
return
ResponseData
.
error
(
"文件不能为空"
);
}
if
(!
listMap
.
get
(
0
).
get
(
"a"
).
toString
().
equals
(
SL_SUB_NAME
))
{
return
ResponseData
.
error
(
"模板不对,请选择正确的模板!"
);
}
if
(!
listMap
.
get
(
0
).
get
(
"b"
).
toString
().
equals
(
SL_SCHOOL
))
{
return
ResponseData
.
error
(
"模板不对,请选择正确的模板!"
);
}
if
(!
listMap
.
get
(
0
).
get
(
"c"
).
toString
().
equals
(
SL_LZ_USER
))
{
return
ResponseData
.
error
(
"模板不对,请选择正确的模板!"
);
}
if
(!
listMap
.
get
(
0
).
get
(
"d"
).
toString
().
equals
(
SL_LZGH
))
{
return
ResponseData
.
error
(
"模板不对,请选择正确的模板!"
);
}
if
(!
listMap
.
get
(
0
).
get
(
"e"
).
toString
().
equals
(
SL_NET_CODE
))
{
return
ResponseData
.
error
(
"模板不对,请选择正确的模板!"
);
}
if
(!
listMap
.
get
(
0
).
get
(
"f"
).
toString
().
equals
(
SL_NET_NAME
))
{
return
ResponseData
.
error
(
"模板不对,请选择正确的模板!"
);
}
if
(!
listMap
.
get
(
0
).
get
(
"g"
).
toString
().
equals
(
SL_APP_ID
))
{
return
ResponseData
.
error
(
"模板不对,请选择正确的模板!"
);
}
if
(!
listMap
.
get
(
0
).
get
(
"h"
).
toString
().
equals
(
SL_APP_KEY
))
{
return
ResponseData
.
error
(
"模板不对,请选择正确的模板!"
);
}
if
(
listMap
.
get
(
0
).
size
()
!=
8
)
{
return
ResponseData
.
error
(
"模板不对,请选择正确的模板!"
);
}
//校验数据
try
{
//校验数据
for
(
int
i
=
1
;
i
<
listMap
.
size
();
i
++)
{
Map
<
String
,
Object
>
temp
=
listMap
.
get
(
i
);
if
(!
temp
.
containsKey
(
"a"
))
{
return
ResponseData
.
error
(
"第"
+
(
i
+
1
)
+
"行的所属县份不能为空"
);
}
if
(
StringUtils
.
isBlank
(
temp
.
get
(
"a"
).
toString
()))
{
return
ResponseData
.
error
(
"第"
+
(
i
+
1
)
+
"行的所属县份不能为空"
);
}
if
(!
temp
.
containsKey
(
"b"
))
{
return
ResponseData
.
error
(
"第"
+
(
i
+
1
)
+
"行的学校名称不能为空"
);
}
if
(
StringUtils
.
isBlank
(
temp
.
get
(
"b"
).
toString
()))
{
return
ResponseData
.
error
(
"第"
+
(
i
+
1
)
+
"行的学校名称不能为空"
);
}
if
(!
temp
.
containsKey
(
"c"
))
{
listMap
.
get
(
i
).
put
(
"c"
,
""
);
}
if
(!
temp
.
containsKey
(
"d"
))
{
listMap
.
get
(
i
).
put
(
"d"
,
""
);
}
if
(!
temp
.
containsKey
(
"e"
))
{
listMap
.
get
(
i
).
put
(
"e"
,
""
);
}
if
(!
temp
.
containsKey
(
"f"
))
{
listMap
.
get
(
i
).
put
(
"f"
,
""
);
}
if
(!
temp
.
containsKey
(
"g"
))
{
listMap
.
get
(
i
).
put
(
"g"
,
""
);
}
if
(!
temp
.
containsKey
(
"h"
))
{
listMap
.
get
(
i
).
put
(
"h"
,
""
);
}
}
//检查excel表中是否有重复人员编号
int
size
=
listMap
.
size
();
Set
<
String
>
accountSet
=
new
HashSet
<>(
size
);
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
Map
<
String
,
Object
>
temp
=
listMap
.
get
(
i
);
accountSet
.
add
((
String
)
temp
.
get
(
"a"
)+
temp
.
get
(
"b"
));
}
if
(
accountSet
.
size
()
!=
size
)
{
return
ResponseData
.
error
(
"文件中有重复的学校,请确认学校不能重复!"
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"学校导入异常"
,
e
.
getMessage
());
return
ResponseData
.
error
(
"导入异常!"
);
}
int
number
=
0
;
Date
acceptDate
=
new
Date
();
Date
successTime
=
acceptDate
;
StringBuffer
subName
=
new
StringBuffer
();
StringBuffer
schoolName
=
new
StringBuffer
();
Integer
integer
=
0
;
Map
<
String
,
Object
>
schoolMap
=
new
HashMap
<>();
for
(
int
i
=
1
;
i
<
listMap
.
size
();
i
++)
{
Map
<
String
,
Object
>
map
=
listMap
.
get
(
i
);
subName
=
new
StringBuffer
(
map
.
get
(
"a"
).
toString
());
schoolName
=
new
StringBuffer
(
map
.
get
(
"b"
).
toString
());
integer
=
0
;
schoolMap
=
schoolMapper
.
querySchoolMap
(
subName
.
toString
(),
schoolName
.
toString
());
try
{
if
(
schoolMap
!=
null
&&
schoolMap
.
size
()
!=
0
){
integer
=
schoolMapper
.
updateSchoolMap
(
map
);
}
else
{
integer
=
schoolMapper
.
insertSchoolMap
(
map
);
}
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
if
(
integer
==
1
)
{
number
++;
}
else
{
error
.
append
(
"第"
+
(
i
+
1
)
+
"行的更新失败,"
);
}
}
error
.
append
(
"成功更新"
+
number
+
"条数据!"
);
return
ResponseData
.
success
(
error
.
toString
(),
"导入完成"
);
}
/**
*
* @return
*/
@Permission
(
menuname
=
"导出学校列表信息"
,
value
=
"excelOut"
,
method
=
RequestMethod
.
POST
)
public
void
excelOut
(
@Param
(
"networkName"
)
String
networkName
,
@Param
(
"networkName"
)
String
status
,
@Param
(
"networkName"
)
String
subName
,
@Param
(
"networkName"
)
String
schoolName
){
Wrapper
<
School
>
wrapper
=
new
EntityWrapper
();
wrapper
.
like
(
StringUtils
.
isNotBlank
(
networkName
),
"network_name"
,
networkName
,
SqlLike
.
DEFAULT
);
wrapper
.
like
(
StringUtils
.
isNotBlank
(
schoolName
),
"school_name"
,
schoolName
,
SqlLike
.
DEFAULT
);
wrapper
.
eq
(
StringUtils
.
isNotBlank
(
subName
),
"sub_name"
,
subName
);
wrapper
.
eq
(
StringUtils
.
isNotBlank
(
status
),
"status"
,
status
);
List
<
Map
<
String
,
Object
>>
maps
=
schoolMapper
.
selectMaps
(
wrapper
);
ServletOutputStream
os
=
null
;
XSSFWorkbook
workbook
=
ExcelDealUtils
.
getWorkBook
(
ExcelDealUtils
.
schoolExcel
(
"校园列表"
),
maps
);
try
{
HttpServletResponse
response
=
getHttpServletResponse
();
response
.
reset
();
response
.
setCharacterEncoding
(
"UTF-8"
);
response
.
setContentType
(
"application/octet-stream"
);
os
=
response
.
getOutputStream
();
workbook
.
write
(
os
);
os
.
flush
();
}
catch
(
Exception
e
)
{
log
.
error
(
"文件出错!"
+
e
.
getMessage
(),
e
);
}
finally
{
IOUtils
.
closeQuite
(
workbook
,
os
);
}
}
@Permission
(
menuname
=
"下载学校上传模板"
,
value
=
"excelMBOut"
,
method
=
RequestMethod
.
POST
)
public
void
excelMBOut
(){
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"subName"
,
""
);
map
.
put
(
"schoolName"
,
""
);
map
.
put
(
"lzUser"
,
""
);
map
.
put
(
"lzgh"
,
""
);
map
.
put
(
"networkCode"
,
""
);
map
.
put
(
"networkName"
,
""
);
map
.
put
(
"appId"
,
""
);
map
.
put
(
"appKey"
,
""
);
List
<
Map
<
String
,
Object
>>
maps
=
new
ArrayList
<
Map
<
String
,
Object
>>();
maps
.
add
(
map
);
ServletOutputStream
os
=
null
;
XSSFWorkbook
workbook
=
ExcelDealUtils
.
getWorkBook
(
ExcelDealUtils
.
schoolExcel
(
"校园模板"
),
maps
);
try
{
HttpServletResponse
response
=
getHttpServletResponse
();
response
.
reset
();
response
.
setCharacterEncoding
(
"UTF-8"
);
response
.
setContentType
(
"application/octet-stream"
);
os
=
response
.
getOutputStream
();
workbook
.
write
(
os
);
os
.
flush
();
}
catch
(
Exception
e
)
{
log
.
error
(
"文件出错!"
+
e
.
getMessage
(),
e
);
}
finally
{
IOUtils
.
closeQuite
(
workbook
,
os
);
}
}
}
service-manager/src/main/java/com/winsun/utils/ExcelDealUtils.java
View file @
543e078e
...
...
@@ -527,4 +527,20 @@ public class ExcelDealUtils {
return
resultMap
;
}
// 管理导出excel表头
public
static
Map
<
String
,
Object
>
schoolExcel
(
String
sheetName
){
Map
<
String
,
Object
>
headMap
=
new
LinkedHashMap
<
String
,
Object
>();
headMap
.
put
(
"所属县分(必填)"
,
"subName"
);
headMap
.
put
(
"校园名称(必填)"
,
"schoolName"
);
headMap
.
put
(
"揽装人"
,
"lzUser"
);
headMap
.
put
(
"揽装工号"
,
"lzgh"
);
headMap
.
put
(
"网点编码"
,
"networkCode"
);
headMap
.
put
(
"网点名称"
,
"networkName"
);
headMap
.
put
(
"终端编码"
,
"appId"
);
headMap
.
put
(
"终端密匙"
,
"appKey"
);
Map
<
String
,
Object
>
resultMap
=
dealHeadMap
(
headMap
);
resultMap
.
put
(
"sheetName"
,
sheetName
);
return
resultMap
;
}
}
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