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 2ebef9b4
authored
Jun 06, 2023
by
wangli
Browse files
Options
Browse Files
Download
Plain Diff
合并冲突
2 parents
e45ddbfe
7a4c692c
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
246 additions
and
13 deletions
config-init/config/project-gateway.yaml
project-order/src/main/java/com/alibaba/cloud/integration/order/controller/EngineerController.java
project-order/src/main/java/com/alibaba/cloud/integration/order/controller/EnginnerTimelineController.java
project-order/src/main/java/com/alibaba/cloud/integration/order/controller/OrderAssignController.java
project-order/src/main/java/com/alibaba/cloud/integration/order/controller/OrderServiceDetailController.java
project-order/src/main/java/com/alibaba/cloud/integration/order/controller/OrderServiceListController.java
project-order/src/main/java/com/alibaba/cloud/integration/order/dao/EngineerBusinessDao.java
project-order/src/main/java/com/alibaba/cloud/integration/order/dto/EngineerBusinessListResp.java
project-order/src/main/java/com/alibaba/cloud/integration/order/entity/EngineerBusiness.java
project-order/src/main/java/com/alibaba/cloud/integration/order/service/EngineerService.java
project-order/src/main/java/com/alibaba/cloud/integration/order/service/impl/EngineerServiceImpl.java
project-order/src/main/java/com/alibaba/cloud/integration/order/service/impl/OrderServiceListServiceImpl.java
config-init/config/project-gateway.yaml
View file @
2ebef9b
...
...
@@ -2,6 +2,30 @@ spring:
cloud
:
gateway
:
routes
:
-
id
:
placeOrder
uri
:
lb://project-order
predicates
:
-
Path=/pea-order
-
id
:
queryStorage
uri
:
lb://project-storage
predicates
:
-
Path=/storage/
-
id
:
queryAccount
uri
:
lb://project-account
predicates
:
-
Path=/account/
-
id
:
praiseItemRocketMQ
uri
:
lb://project-provider
predicates
:
-
Path=/praise/rocketmq
-
id
:
praiseItemSentinel
uri
:
lb://project-provider
predicates
:
-
Path=/praise/sentinel
-
id
:
queryPraise
uri
:
lb://project-consumer
predicates
:
-
Path=/praise/query
-
id
:
user
uri
:
lb://user
predicates
:
...
...
project-order/src/main/java/com/alibaba/cloud/integration/order/controller/EngineerController.java
View file @
2ebef9b
...
...
@@ -3,13 +3,12 @@ package com.alibaba.cloud.integration.order.controller;
import
com.alibaba.cloud.integration.common.BusinessException
;
import
com.alibaba.cloud.integration.common.Result
;
import
com.alibaba.cloud.integration.order.service.EngineerService
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
@RestController
@RequestMapping
(
"/pea-order"
)
public
class
EngineerController
{
@Autowired
...
...
@@ -38,4 +37,29 @@ public class EngineerController {
}
return
res
;
}
@GetMapping
(
"/engineer/business/list"
)
public
Result
<?>
getEngineerBusinessList
(
@RequestParam
long
page
,
@RequestParam
long
size
)
{
// 技术员业务属性配置列表
Result
<?>
res
=
null
;
try
{
res
=
engineerService
.
getEngineerBusinessList
(
page
,
size
);
}
catch
(
BusinessException
e
)
{
Result
.
failed
(
e
.
getMessage
());
}
return
res
;
}
@PostMapping
(
"/engineer/business/update"
)
public
Result
<?>
engineerBusinessUpdate
(
@RequestBody
String
engineerCode
,
@RequestBody
Integer
maxNum
,
@RequestBody
Integer
maxMinute
,
@RequestBody
String
departure
,
@RequestBody
String
priority
)
{
// 技术员业务属性配置更新
Result
<?>
res
=
null
;
try
{
res
=
engineerService
.
engineerBusinessUpdate
(
engineerCode
,
maxNum
,
maxMinute
,
departure
,
priority
);
}
catch
(
BusinessException
e
)
{
Result
.
failed
(
e
.
getMessage
());
}
return
res
;
}
}
project-order/src/main/java/com/alibaba/cloud/integration/order/controller/EnginnerTimelineController.java
View file @
2ebef9b
...
...
@@ -5,11 +5,13 @@ import com.alibaba.cloud.integration.order.dto.EnginnerTimelineReq;
import
com.alibaba.cloud.integration.order.service.EnginnerTimelineService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RequestMapping
(
"/pea-order"
)
public
class
EnginnerTimelineController
{
@Autowired
...
...
project-order/src/main/java/com/alibaba/cloud/integration/order/controller/OrderAssignController.java
View file @
2ebef9b
...
...
@@ -8,6 +8,7 @@ import org.springframework.stereotype.Controller;
import
org.springframework.web.bind.annotation.*
;
@RestController
@RequestMapping
(
"/pea-order"
)
public
class
OrderAssignController
{
@Autowired
...
...
project-order/src/main/java/com/alibaba/cloud/integration/order/controller/OrderServiceDetailController.java
View file @
2ebef9b
...
...
@@ -5,10 +5,12 @@ import com.alibaba.cloud.integration.common.Result;
import
com.alibaba.cloud.integration.order.service.OrderServiceDetail
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RequestMapping
(
"/pea-order"
)
public
class
OrderServiceDetailController
{
@Autowired
...
...
project-order/src/main/java/com/alibaba/cloud/integration/order/controller/OrderServiceListController.java
View file @
2ebef9b
...
...
@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.*;
* @author wangl@zjhuixinyun.com
*/
@RestController
@RequestMapping
(
"/pea-order"
)
public
class
OrderServiceListController
{
@Autowired
...
...
project-order/src/main/java/com/alibaba/cloud/integration/order/dao/EngineerBusinessDao.java
0 → 100644
View file @
2ebef9b
package
com
.
alibaba
.
cloud
.
integration
.
order
.
dao
;
import
com.alibaba.cloud.integration.order.entity.EngineerBusiness
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
@Mapper
public
interface
EngineerBusinessDao
extends
BaseMapper
<
EngineerBusiness
>
{
}
project-order/src/main/java/com/alibaba/cloud/integration/order/dto/EngineerBusinessListResp.java
0 → 100644
View file @
2ebef9b
package
com
.
alibaba
.
cloud
.
integration
.
order
.
dto
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
EngineerBusinessListResp
{
private
long
total
;
private
long
pages
;
private
long
pageCurrent
;
private
long
pageSize
;
private
List
<
EngineerBusiness
>
content
;
@Data
public
static
class
EngineerBusiness
{
private
String
engineerCode
;
private
String
engineerName
;
private
String
workType
;
private
Integer
maxNum
;
private
Integer
maxMinute
;
private
String
priority
;
private
String
address
;
private
String
location
;
private
String
departure
;
}
}
project-order/src/main/java/com/alibaba/cloud/integration/order/entity/EngineerBusiness.java
0 → 100644
View file @
2ebef9b
package
com
.
alibaba
.
cloud
.
integration
.
order
.
entity
;
import
lombok.Data
;
import
java.sql.Timestamp
;
@Data
public
class
EngineerBusiness
{
private
Integer
id
;
private
String
engineerCode
;
private
Integer
maxNum
;
private
Integer
maxMinute
;
private
Integer
maxDistance
;
private
String
address
;
private
String
x
;
private
String
y
;
private
Integer
priority
;
private
Integer
departure
;
private
String
memo
;
private
Timestamp
createTime
;
private
Timestamp
updateTime
;
}
\ No newline at end of file
project-order/src/main/java/com/alibaba/cloud/integration/order/service/EngineerService.java
View file @
2ebef9b
...
...
@@ -7,6 +7,12 @@ public interface EngineerService {
// 获取公司列表
Result
<?>
getEngineerInfoList
(
long
page
,
long
size
);
//获取工程师技能列表
//
获取工程师技能列表
Result
<?>
getEngineerSkillList
(
long
page
,
long
size
);
// 工程师业务属性配置列表
Result
<?>
getEngineerBusinessList
(
long
page
,
long
size
);
// 技术员业务属性配置修改
Result
<?>
engineerBusinessUpdate
(
String
engineerCode
,
Integer
maxNum
,
Integer
maxMutine
,
String
departure
,
String
priority
);
}
project-order/src/main/java/com/alibaba/cloud/integration/order/service/impl/EngineerServiceImpl.java
View file @
2ebef9b
package
com
.
alibaba
.
cloud
.
integration
.
order
.
service
.
impl
;
import
com.alibaba.cloud.integration.common.Result
;
import
com.alibaba.cloud.integration.order.dao.EngineerBusinessDao
;
import
com.alibaba.cloud.integration.order.dao.EngineerInfoDao
;
import
com.alibaba.cloud.integration.order.dao.EngineerSkillDao
;
import
com.alibaba.cloud.integration.order.dao.OrgGroupDao
;
import
com.alibaba.cloud.integration.order.dto.EngineerBusinessListResp
;
import
com.alibaba.cloud.integration.order.dto.EngineerInfoListResp
;
import
com.alibaba.cloud.integration.order.entity.EngineerBusiness
;
import
com.alibaba.cloud.integration.order.entity.EngineerInfo
;
import
com.alibaba.cloud.integration.order.entity.OrgGroup
;
import
com.alibaba.cloud.integration.order.service.EngineerService
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -17,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Service
public
class
EngineerServiceImpl
implements
EngineerService
{
...
...
@@ -30,6 +35,9 @@ public class EngineerServiceImpl implements EngineerService {
@Autowired
private
OrgGroupDao
orgGroupDao
;
@Autowired
private
EngineerBusinessDao
engineerBusinessDao
;
@Transactional
@Override
public
Result
<?>
getEngineerInfoList
(
long
page
,
long
size
)
{
...
...
@@ -60,9 +68,101 @@ public class EngineerServiceImpl implements EngineerService {
@Transactional
@Override
public
Result
<?>
getEngineerSkillList
(
long
page
,
long
size
)
{
// 获取技术员技能列表
return
null
;
}
@Transactional
@Override
public
Result
<?>
getEngineerBusinessList
(
long
page
,
long
size
)
{
// 技术员业务属性配置列表
// 查询技术员列表
IPage
<
EngineerInfo
>
pg
=
this
.
queryEngineerInfo
(
page
,
size
);
List
<
EngineerInfo
>
records
=
pg
.
getRecords
();
// 获取技术员code列表
List
<
String
>
engineerCodes
=
records
.
stream
().
map
(
EngineerInfo:
:
getEngineerCode
).
collect
(
Collectors
.
toList
());
HashMap
<
String
,
EngineerBusiness
>
buss
=
this
.
queryEngineerBusiness
(
engineerCodes
);
List
<
EngineerBusinessListResp
.
EngineerBusiness
>
items
=
new
ArrayList
<>();
EngineerBusiness
b
;
for
(
EngineerInfo
e:
records
)
{
EngineerBusinessListResp
.
EngineerBusiness
item
=
new
EngineerBusinessListResp
.
EngineerBusiness
();
item
.
setEngineerCode
(
e
.
getEngineerCode
());
item
.
setEngineerName
(
e
.
getName
());
item
.
setWorkType
((
e
.
getKind
()
==
1
)
?
"fullJob"
:
"partJob"
);
b
=
buss
.
getOrDefault
(
e
.
getEngineerCode
(),
null
);
if
(
b
==
null
)
{
item
.
setAddress
(
""
);
item
.
setLocation
(
""
);
item
.
setDeparture
(
""
);
item
.
setMaxMinute
(
0
);
item
.
setMaxNum
(
0
);
item
.
setPriority
(
"低"
);
}
else
{
item
.
setAddress
(
b
.
getAddress
());
item
.
setLocation
(
String
.
format
(
"%s,%s"
,
b
.
getX
(),
b
.
getY
()));
item
.
setDeparture
((
b
.
getDeparture
()
==
1
)
?
"配件仓"
:
"住址"
);
item
.
setMaxMinute
(
b
.
getMaxMinute
());
item
.
setMaxNum
(
b
.
getMaxNum
());
String
priority
;
if
(
b
.
getPriority
()
==
3
)
{
priority
=
"高"
;
}
else
if
(
b
.
getPriority
()
==
2
)
{
priority
=
"中"
;
}
else
{
priority
=
"低"
;
}
item
.
setPriority
(
priority
);
}
items
.
add
(
item
);
}
// 查询技术员业务属性
EngineerBusinessListResp
res
=
new
EngineerBusinessListResp
();
res
.
setTotal
(
pg
.
getTotal
());
res
.
setPages
(
pg
.
getPages
());
res
.
setPageCurrent
(
pg
.
getCurrent
());
res
.
setPageSize
(
pg
.
getSize
());
res
.
setContent
(
items
);
return
Result
.
success
(
res
);
}
@Transactional
@Override
public
Result
<?>
engineerBusinessUpdate
(
String
engineerCode
,
Integer
maxNum
,
Integer
maxMinute
,
String
departure
,
String
priority
)
{
// 技术员业务属性配置修改
LambdaUpdateWrapper
<
EngineerBusiness
>
wrapper
=
new
LambdaUpdateWrapper
<>();
wrapper
.
eq
(
EngineerBusiness:
:
getEngineerCode
,
engineerCode
);
wrapper
.
set
(
maxNum
>=
0
,
EngineerBusiness:
:
getMaxNum
,
maxNum
);
wrapper
.
set
(
maxMinute
>=
0
,
EngineerBusiness:
:
getMaxMinute
,
maxMinute
);
Integer
dep
=
(
departure
.
equals
(
"配件仓"
))
?
1
:
2
;
wrapper
.
set
(
EngineerBusiness:
:
getDeparture
,
dep
);
Integer
pri
;
if
(
priority
.
equals
(
"高"
))
{
pri
=
3
;
}
else
if
(
priority
.
equals
(
"中"
))
{
pri
=
2
;
}
else
{
pri
=
1
;
}
wrapper
.
set
(
EngineerBusiness:
:
getPriority
,
pri
);
// 更新字段
engineerBusinessDao
.
update
(
null
,
wrapper
);
return
Result
.
success
(
null
);
}
private
IPage
<
EngineerInfo
>
queryEngineerInfo
(
long
page
,
long
size
)
{
// 分页查询工程师基础信息
LambdaQueryWrapper
<
EngineerInfo
>
lqw
=
new
LambdaQueryWrapper
<>();
...
...
@@ -91,6 +191,20 @@ public class EngineerServiceImpl implements EngineerService {
return
map
;
}
private
HashMap
<
String
,
EngineerBusiness
>
queryEngineerBusiness
(
List
<
String
>
engineerCodes
)
{
HashMap
<
String
,
EngineerBusiness
>
map
=
new
HashMap
<>();
if
(
engineerCodes
.
isEmpty
())
{
return
map
;
}
LambdaQueryWrapper
<
EngineerBusiness
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
in
(
EngineerBusiness:
:
getEngineerCode
,
engineerCodes
);
List
<
EngineerBusiness
>
records
=
engineerBusinessDao
.
selectList
(
lqw
);
for
(
EngineerBusiness
r:
records
)
{
map
.
put
(
r
.
getEngineerCode
(),
r
);
}
return
map
;
}
private
List
<
EngineerInfoListResp
.
EngineerInfo
>
packEngineerInfo
(
List
<
EngineerInfo
>
engineers
,
HashMap
<
String
,
String
>
groups
)
{
String
groupName
,
age
,
workType
;
...
...
project-order/src/main/java/com/alibaba/cloud/integration/order/service/impl/OrderServiceListServiceImpl.java
View file @
2ebef9b
...
...
@@ -40,7 +40,7 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
String
skill
)
throws
BusinessException
{
//分页
I
Page
<
OrderRequest
>
pg
=
new
Page
(
page
,
size
);
Page
<
OrderRequest
>
pg
=
new
Page
(
page
,
size
);
LambdaQueryWrapper
<
OrderRequest
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
ge
(
OrderRequest:
:
getExpectTimeBegin
,
this
.
getTimestampFromDate
(
startDate
));
//预约开始日期
...
...
@@ -108,7 +108,7 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
public
List
<
OrderAppointment
>
getOrderAppointments
(
List
<
String
>
orderIds
)
{
// 获取指派单列表
if
(
CollectionUtil
.
isEmpty
(
orderIds
))
{
return
new
ArrayList
<
OrderAppointment
>();
return
new
ArrayList
<>();
}
LambdaQueryWrapper
<
OrderAppointment
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
in
(
OrderAppointment:
:
getOrderId
,
orderIds
);
...
...
@@ -118,7 +118,7 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
public
HashMap
<
String
,
List
<
String
>>
getEngineerNames
(
List
<
OrderAppointment
>
orders
){
// 获取orderId最新订单对应的工程师姓名列表
HashMap
<
String
,
List
<
String
>>
engin
n
erNames
=
new
HashMap
<>();
HashMap
<
String
,
List
<
String
>>
engin
e
erNames
=
new
HashMap
<>();
Map
<
String
,
List
<
OrderAppointment
>>
g
=
this
.
groupOrderAppointments
(
orders
);
for
(
String
orderId:
g
.
keySet
())
{
...
...
@@ -126,9 +126,9 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
for
(
OrderAppointment
o:
g
.
get
(
orderId
))
{
names
.
add
(
o
.
getEngineerName
());
}
engin
n
erNames
.
put
(
orderId
,
names
);
engin
e
erNames
.
put
(
orderId
,
names
);
}
return
engin
n
erNames
;
return
engin
e
erNames
;
}
public
Map
<
String
,
List
<
OrderAppointment
>>
groupOrderAppointments
(
List
<
OrderAppointment
>
orders
){
...
...
@@ -145,13 +145,13 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
String
subOrderId
=
""
;
List
<
OrderAppointment
>
items
=
new
ArrayList
<>();
for
(
OrderAppointment
o:
results
)
{
if
(
orderId
!=
o
.
getOrderId
(
))
{
if
(
!
orderId
.
equals
(
o
.
getOrderId
()
))
{
orderId
=
o
.
getOrderId
();
subOrderId
=
o
.
getSuborderId
();
items
.
add
(
o
);
continue
;
}
if
(
subOrderId
==
o
.
getSuborderId
(
))
{
if
(
subOrderId
.
equals
(
o
.
getSuborderId
()
))
{
items
.
add
(
o
);
}
}
...
...
@@ -179,7 +179,7 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
}
private
String
Timestamp2Datetime
(
Timestamp
t
)
{
DateTimeFormatter
df
=
DateTimeFormatter
.
ofPattern
(
"yyyy-
mm-dd HH:MM:SS
"
);
DateTimeFormatter
df
=
DateTimeFormatter
.
ofPattern
(
"yyyy-
MM-dd HH:mm:ss
"
);
return
df
.
format
(
t
.
toLocalDateTime
());
}
}
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