Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
yangxiujun
/
paidan_demo
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 15d180f2
authored
Oct 24, 2023
by
huangjinxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:添加根据excel导入工程师,技能,业务信息相关代码
1 parent
d33f257f
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
269 additions
and
27 deletions
project-order/src/main/java/com/dituhui/pea/order/controller/ImportEngineerContrloller.java
project-order/src/main/java/com/dituhui/pea/order/dao/EngineerSkillGroupDao.java
project-order/src/main/java/com/dituhui/pea/order/dao/SkillGroupDao.java
project-order/src/main/java/com/dituhui/pea/order/entity/EngineerSkillGroupEntity.java
project-order/src/main/java/com/dituhui/pea/order/service/ImportEngineerService.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/ImportEngineerServiceImpl.java
project-order/src/main/java/com/dituhui/pea/order/controller/ImportEngineerContrloller.java
View file @
15d180f
...
...
@@ -15,4 +15,8 @@ public class ImportEngineerContrloller {
public
void
importEngineer
(
String
excelUrl
)
{
importEngineerService
.
ImportEngineerByExcel
(
excelUrl
);
}
@GetMapping
(
"/ImportEngineerAndSkillByExcel"
)
public
void
ImportEngineerAndSkillByExcel
(
String
excelUrl
)
{
importEngineerService
.
ImportEngineerAndSkillByExcel
(
excelUrl
);
}
}
project-order/src/main/java/com/dituhui/pea/order/dao/EngineerSkillGroupDao.java
View file @
15d180f
...
...
@@ -7,10 +7,17 @@ import org.springframework.stereotype.Repository;
import
java.util.List
;
public
interface
EngineerSkillGroupDao
extends
JpaRepository
<
EngineerSkillGroupEntity
,
Integer
>
{
List
<
EngineerSkillGroupEntity
>
findByEngineerCode
(
String
engineerCode
);
List
<
EngineerSkillGroupEntity
>
findByEngineerCodeAndStatus
(
String
engineerCode
,
boolean
status
);
List
<
EngineerSkillGroupEntity
>
findByEngineerCodeInAndStatus
(
List
<
String
>
engineerCodes
,
boolean
status
);
List
<
EngineerSkillGroupEntity
>
findByEngineerCodeInAndStatusIn
(
List
<
String
>
engineerCodes
,
List
<
Boolean
>
status
);
List
<
EngineerSkillGroupEntity
>
findBySkillGroupCode
(
String
skillGroupCode
);
List
<
EngineerSkillGroupEntity
>
findBySkillGroupCodeAndStatus
(
String
skillGroupCode
,
boolean
status
);
List
<
EngineerSkillGroupEntity
>
findByEngineerCode
(
String
engineerCode
);
EngineerSkillGroupEntity
findByEngineerCodeAndSkillGroupCode
(
String
engineerCode
,
String
skillGroupCode
);
List
<
EngineerSkillGroupEntity
>
findByEngineerCodeAndStatus
(
String
engineerCode
,
boolean
status
);
List
<
EngineerSkillGroupEntity
>
findByEngineerCodeInAndStatus
(
List
<
String
>
engineerCodes
,
boolean
status
);
List
<
EngineerSkillGroupEntity
>
findByEngineerCodeInAndStatusIn
(
List
<
String
>
engineerCodes
,
List
<
Boolean
>
status
);
List
<
EngineerSkillGroupEntity
>
findBySkillGroupCode
(
String
skillGroupCode
);
List
<
EngineerSkillGroupEntity
>
findBySkillGroupCodeAndStatus
(
String
skillGroupCode
,
boolean
status
);
}
project-order/src/main/java/com/dituhui/pea/order/dao/SkillGroupDao.java
View file @
15d180f
...
...
@@ -4,4 +4,5 @@ import com.dituhui.pea.order.entity.SkillGroupEntity;
import
org.springframework.data.jpa.repository.JpaRepository
;
public
interface
SkillGroupDao
extends
JpaRepository
<
SkillGroupEntity
,
Long
>
{
SkillGroupEntity
findBySkillGroup
(
String
stringCellValue
);
}
project-order/src/main/java/com/dituhui/pea/order/entity/EngineerSkillGroupEntity.java
View file @
15d180f
...
...
@@ -29,14 +29,14 @@ public class EngineerSkillGroupEntity {
@Column
(
nullable
=
false
)
private
Boolean
status
;
@Column
(
length
=
100
,
nullable
=
fals
e
)
@Column
(
length
=
100
,
nullable
=
tru
e
)
private
String
memo
;
@Column
(
name
=
"create_time"
,
nullable
=
false
,
columnDefinition
=
"timestamp DEFAULT CURRENT_TIMESTAMP"
)
private
LocalDateTime
createTime
;
private
LocalDateTime
createTime
=
LocalDateTime
.
now
()
;
@Column
(
name
=
"update_time"
,
nullable
=
false
,
columnDefinition
=
"timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"
)
private
LocalDateTime
updateTime
;
private
LocalDateTime
updateTime
=
LocalDateTime
.
now
()
;
// Getters and Setters
// ...
...
...
project-order/src/main/java/com/dituhui/pea/order/service/ImportEngineerService.java
View file @
15d180f
...
...
@@ -3,4 +3,6 @@ package com.dituhui.pea.order.service;
public
interface
ImportEngineerService
{
void
ImportEngineerByExcel
(
String
excelurl
);
void
ImportEngineerAndSkillByExcel
(
String
excelurl
);
}
project-order/src/main/java/com/dituhui/pea/order/service/impl/ImportEngineerServiceImpl.java
View file @
15d180f
package
com
.
dituhui
.
pea
.
order
.
service
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.dituhui.pea.order.dao.EngineerBusinessDao
;
import
com.dituhui.pea.order.dao.EngineerInfoDao
;
import
com.dituhui.pea.order.dao.EngineerSkillGroupDao
;
import
com.dituhui.pea.order.dao.SkillGroupDao
;
import
com.dituhui.pea.order.entity.EngineerBusinessEntity
;
import
com.dituhui.pea.order.entity.EngineerInfoEntity
;
import
com.dituhui.pea.order.entity.EngineerSkillGroupEntity
;
import
com.dituhui.pea.order.entity.SkillGroupEntity
;
import
com.dituhui.pea.order.service.ImportEngineerService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.ss.usermodel.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -10,14 +18,97 @@ import org.springframework.transaction.annotation.Transactional;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
@Service
public
class
ImportEngineerServiceImpl
implements
ImportEngineerService
{
public
static
String
filePath
=
"C:\\Users\\hjx\\Documents\\WXWork\\1688854266489901\\Cache\\File\\2023-10\\副本网点技术员清单.xlsx"
;
//public static String filePath = "D:\\工作\\项目\\博西\\无锡分部工程师技能清单-20231011.xlsx";
private
String
group_id
=
"gsuzhou-wangdian"
;
private
String
wuxi_group_id
=
"379022fa9adb4b0eacdf9491c7d3c372"
;
private
String
changzhou_group_id
=
"6d151354073d4fb190bce2cb5f5eaef9"
;
@Autowired
private
EngineerInfoDao
engineerInfoDao
;
@Autowired
private
SkillGroupDao
skillGroupDao
;
@Autowired
private
EngineerSkillGroupDao
engineerSkillGroupDao
;
@Autowired
private
EngineerBusinessDao
engineerBusinessDao
;
private
static
Map
<
Integer
,
String
>
skillMap
=
new
HashMap
<>()
{
{
//7嵌冰小修
put
(
7
,
"Built-inPRF_MediumRepair(B/S)"
);
//8嵌冰中修
put
(
8
,
"Built-inPRF_MediumRepair(B/S)"
);
//10嵌饮机小修
put
(
10
,
"WaterPurifier_MediumRepair(B/S)"
);
//11嵌饮机中修
put
(
11
,
"WaterPurifier_MediumRepair(B/S)"
);
//13清洗服务-冰洗
put
(
13
,
"CleanService(B/S)"
);
//14清洗服务-烟灶
put
(
14
,
"CleanService(B/S)"
);
//27嵌入式咖啡机安装(包含设计、调试)
put
(
27
,
"CoffeeMachine_Install(B/S)"
);
//30洗衣机小修
put
(
30
,
"Washer_MediumRepair(B/S)"
);
//31干衣机小修
put
(
31
,
"Dryer_MediumRepair(B/S)"
);
//32洗干一体机小修
put
(
32
,
"WasherDryer_MediumRepair(B/S)"
);
//33冰箱小修
put
(
33
,
"FreeStandingPRF_MediumRepair(B/S)"
);
//34洗碗机小修
put
(
34
,
"Dishcare_MediumRepair(B/S)"
);
//35吸油烟机小修
put
(
35
,
"Ventilation_MediumRepair(B/S)"
);
//36灶具小修
put
(
36
,
"Hob_MediumRepair(B/S)"
);
//37蒸烤微小修
put
(
37
,
"Cavity_MediumRepair(B/S)"
);
//38消毒柜小修
put
(
38
,
"Sterilizer_MediumRepair(B/S)"
);
//39嵌入式咖啡机小修
put
(
39
,
"CoffeeMachine_MediumRepair(B/S)"
);
//40洗衣机中修
put
(
40
,
"Washer_MediumRepair(B/S)"
);
//41干衣机中修
put
(
41
,
"Dryer_MediumRepair(B/S)"
);
//42洗干一体机中修
put
(
42
,
"WasherDryer_MediumRepair(B/S)"
);
//43冰箱中修
put
(
43
,
"FreeStandingPRF_MediumRepair(B/S)"
);
//44洗碗机中修
put
(
44
,
"Dishcare_MediumRepair(B/S)"
);
//45吸油烟机中修
put
(
45
,
"Ventilation_MediumRepair(B/S)"
);
//46灶具中修
put
(
46
,
"Hob_MediumRepair(B/S)"
);
//47蒸烤微中修
put
(
47
,
"Cavity_MediumRepair(B/S)"
);
//48消毒柜中修
put
(
48
,
"Sterilizer_MediumRepair(B/S)"
);
//49洗衣机大修
put
(
49
,
"Washer_MediumRepair(B/S)"
);
//50洗碗机大修
put
(
50
,
"Dishcare_MediumRepair(B/S)"
);
//51洗干一体机大修
put
(
51
,
"WasherDryer_MediumRepair(B/S)"
);
//52吸油烟机大修
put
(
52
,
"Ventilation_MediumRepair(B/S)"
);
//53消毒柜大修
put
(
53
,
"Sterilizer_MediumRepair(B/S)"
);
//54嵌入式咖啡机中修
put
(
54
,
"CoffeeMachine_MediumRepair(B/S)"
);
}
};
@Override
@Transactional
...
...
@@ -38,6 +129,69 @@ public class ImportEngineerServiceImpl implements ImportEngineerService {
}
}
@Override
public
void
ImportEngineerAndSkillByExcel
(
String
excelurl
)
{
File
file
=
new
File
(
filePath
);
FileInputStream
fis
=
null
;
Workbook
workBook
=
null
;
if
(
file
.
exists
())
{
try
{
fis
=
new
FileInputStream
(
file
);
workBook
=
WorkbookFactory
.
create
(
fis
);
ImportEngineerAndSkillByExcel
(
workBook
,
0
,
80
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
private
void
ImportEngineerAndSkillByExcel
(
Workbook
workBook
,
int
sheetNo
,
int
rowNo
)
{
Sheet
managerSheet
=
workBook
.
getSheetAt
(
sheetNo
);
//获取工作表名称
String
managerSheetName
=
managerSheet
.
getSheetName
();
System
.
out
.
println
(
"工作表名称:"
+
managerSheetName
);
// 获取当前Sheet的总行数
// int rowsOfManagerSheet = managerSheet.getPhysicalNumberOfRows();
System
.
out
.
println
(
"当前表格的总行数:"
+
rowNo
);
try
{
Row
skillRow
=
managerSheet
.
getRow
(
2
);
for
(
int
i
=
6
;
i
<
55
;
i
++)
{
Cell
shillCell
=
skillRow
.
getCell
(
i
);
shillCell
.
setCellType
(
CellType
.
STRING
);
SkillGroupEntity
skillGroupEntity
=
skillGroupDao
.
findBySkillGroup
(
shillCell
.
getStringCellValue
());
if
(
null
!=
skillGroupEntity
)
{
skillMap
.
put
(
i
,
skillGroupEntity
.
getSkillGroupCode
());
}
}
for
(
int
i
=
3
;
i
<
90
;
i
++)
{
Row
row
=
managerSheet
.
getRow
(
i
);
EngineerInfoEntity
engineerInfoEntity
=
makeEngineer
(
row
);
for
(
int
j
=
6
;
j
<
55
;
j
++)
{
Cell
shillCell
=
row
.
getCell
(
j
);
if
(
StringUtils
.
isBlank
(
shillCell
.
getStringCellValue
()))
{
continue
;
}
String
skillCode
=
skillMap
.
get
(
j
);
EngineerSkillGroupEntity
engineerSkillGroup
=
engineerSkillGroupDao
.
findByEngineerCodeAndSkillGroupCode
(
engineerInfoEntity
.
getEngineerCode
(),
skillCode
);
if
(
null
!=
engineerSkillGroup
)
{
continue
;
}
engineerSkillGroup
=
new
EngineerSkillGroupEntity
();
engineerSkillGroup
.
setEngineerCode
(
engineerInfoEntity
.
getEngineerCode
());
engineerSkillGroup
.
setSkillGroupCode
(
skillCode
);
engineerSkillGroup
.
setBeanStatus
(
true
);
engineerSkillGroup
.
setStatus
(
true
);
engineerSkillGroup
.
setDescription
(
""
);
engineerSkillGroupDao
.
save
(
engineerSkillGroup
);
}
System
.
out
.
println
(
"工程师执行code:"
+
engineerInfoEntity
.
getEngineerCode
());
System
.
out
.
println
(
"当前row:"
+
i
);
}
}
finally
{
}
}
private
void
importEngineerByExcel
(
Workbook
workBook
,
int
sheetNo
,
int
rowNo
)
{
Sheet
managerSheet
=
workBook
.
getSheetAt
(
sheetNo
);
...
...
@@ -70,24 +224,8 @@ public class ImportEngineerServiceImpl implements ImportEngineerService {
if
(
null
==
phone
)
{
continue
;
}
EngineerInfoEntity
byEngineerCode
=
engineerInfoDao
.
getByEngineerCode
(
code
);
if
(
null
==
byEngineerCode
)
{
byEngineerCode
=
new
EngineerInfoEntity
();
byEngineerCode
.
setEngineerCode
(
code
);
byEngineerCode
.
setName
(
name
);
byEngineerCode
.
setPhone
(
phone
);
byEngineerCode
.
setGroupId
(
group_id
);
byEngineerCode
.
setCosmosId
(
code
);
byEngineerCode
.
setGender
(
"男"
);
byEngineerCode
.
setBirth
(
""
);
byEngineerCode
.
setAddress
(
"苏州网点"
);
byEngineerCode
.
setKind
(
1
);
byEngineerCode
.
setGrade
(
"B1"
);
byEngineerCode
.
setVehicle
(
1
);
byEngineerCode
.
setMemo
(
"无"
);
byEngineerCode
.
setBeanStatus
(
1
);
engineerInfoDao
.
save
(
byEngineerCode
);
}
EngineerInfoEntity
byEngineerCode
=
getEngineerByCode
(
code
,
name
,
phone
,
""
,
""
);
System
.
out
.
println
(
"当前表格行数:"
+
i
);
System
.
out
.
println
(
"当前手机号:"
+
phone
);
System
.
out
.
println
();
...
...
@@ -97,4 +235,94 @@ public class ImportEngineerServiceImpl implements ImportEngineerService {
}
}
private
EngineerInfoEntity
makeEngineer
(
Row
row
)
{
Cell
cellCode
=
row
.
getCell
(
1
);
Cell
cellName
=
row
.
getCell
(
3
);
Cell
cityCell
=
row
.
getCell
(
4
);
Cell
categoryCell
=
row
.
getCell
(
0
);
Cell
levelCell
=
row
.
getCell
(
5
);
String
phone
=
""
;
String
group_id
=
""
;
String
name
=
null
;
String
code
=
null
;
String
category
=
null
;
String
city
=
null
;
String
level
=
null
;
try
{
//设置单元格类型
cellCode
.
setCellType
(
CellType
.
STRING
);
cellName
.
setCellType
(
CellType
.
STRING
);
cityCell
.
setCellType
(
CellType
.
STRING
);
categoryCell
.
setCellType
(
CellType
.
STRING
);
levelCell
.
setCellType
(
CellType
.
STRING
);
code
=
cellCode
.
getStringCellValue
();
name
=
cellName
.
getStringCellValue
();
city
=
cityCell
.
getStringCellValue
();
category
=
categoryCell
.
getStringCellValue
();
level
=
levelCell
.
getStringCellValue
();
if
(
category
.
equals
(
"自有"
))
{
if
(
city
.
equals
(
"无锡市"
))
{
group_id
=
"379022fa9adb4b0eacdf9491c7d3c372"
;
}
else
if
(
city
.
equals
(
"常州市"
))
{
group_id
=
"6d151354073d4fb190bce2cb5f5eaef9"
;
}
}
else
if
(
category
.
equals
(
"网点"
))
{
if
(
city
.
equals
(
"无锡市"
))
{
group_id
=
"2a863286b3af4f5a962d1c17945485da"
;
}
else
if
(
city
.
equals
(
"常州市"
))
{
group_id
=
"b5baf665de49421fb1b632f18de82c7a"
;
}
}
}
catch
(
Exception
exception
)
{
System
.
out
.
println
(
exception
.
getMessage
());
}
EngineerInfoEntity
byEngineerCode
=
getEngineerByCode
(
code
,
name
,
phone
,
city
,
level
);
System
.
out
.
println
(
"当前code:"
+
cellCode
);
System
.
out
.
println
();
return
byEngineerCode
;
}
private
EngineerInfoEntity
getEngineerByCode
(
String
code
,
String
name
,
String
phone
,
String
city
,
String
level
)
{
EngineerInfoEntity
byEngineerCode
=
engineerInfoDao
.
getByEngineerCode
(
code
);
if
(
null
==
byEngineerCode
)
{
byEngineerCode
=
new
EngineerInfoEntity
();
byEngineerCode
.
setEngineerCode
(
code
);
byEngineerCode
.
setName
(
name
);
byEngineerCode
.
setPhone
(
phone
);
byEngineerCode
.
setGroupId
(
group_id
);
byEngineerCode
.
setCosmosId
(
code
);
byEngineerCode
.
setGender
(
"男"
);
byEngineerCode
.
setBirth
(
""
);
byEngineerCode
.
setAddress
(
city
);
byEngineerCode
.
setKind
(
1
);
byEngineerCode
.
setGrade
(
level
);
byEngineerCode
.
setVehicle
(
1
);
byEngineerCode
.
setMemo
(
"无"
);
byEngineerCode
.
setBeanStatus
(
1
);
engineerInfoDao
.
save
(
byEngineerCode
);
}
EngineerBusinessEntity
businessEntity
=
engineerBusinessDao
.
getByEngineerCode
(
byEngineerCode
.
getEngineerCode
());
if
(
null
==
businessEntity
)
{
businessEntity
=
new
EngineerBusinessEntity
();
businessEntity
.
setEngineerCode
(
byEngineerCode
.
getEngineerCode
());
businessEntity
.
setWorkOn
(
"08:00"
);
businessEntity
.
setWorkOff
(
"18:00"
);
businessEntity
.
setMaxNum
(
8
);
businessEntity
.
setMaxMinute
(
600
);
businessEntity
.
setMaxDistance
(
100
);
businessEntity
.
setAddress
(
""
);
businessEntity
.
setX
(
""
);
businessEntity
.
setY
(
""
);
businessEntity
.
setPriority
(
1
);
businessEntity
.
setDeparture
(
1
);
businessEntity
.
setDispatchStrategy
(
"CENTER"
);
businessEntity
.
setMemo
(
""
);
businessEntity
.
setVehicleNo
(
""
);
engineerBusinessDao
.
save
(
businessEntity
);
}
return
byEngineerCode
;
}
}
Write
Preview
Markdown
is supported
Attach a file
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 post a comment