Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
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
项目统一框架
amos-boot-biz
Commits
9c2482dc
Commit
9c2482dc
authored
Nov 07, 2023
by
caotao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.按月统计里程接口增加筛选、异常轨迹接口增加筛选。
2.增加车辆告警相关功能代码。 3.车辆当月里程导出里程规范
parent
5421f63a
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
471 additions
and
441 deletions
+471
-441
CarSpeedWarningRecord.java
...join/equipmanage/common/entity/CarSpeedWarningRecord.java
+1
-0
CarController.java
...ava/com/yeejoin/equipmanage/controller/CarController.java
+10
-5
CarExportDto.java
...c/main/java/com/yeejoin/equipmanage/dto/CarExportDto.java
+2
-0
ICarService.java
...ain/java/com/yeejoin/equipmanage/service/ICarService.java
+4
-5
CarServiceImpl.java
.../com/yeejoin/equipmanage/service/impl/CarServiceImpl.java
+454
-431
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-equip-api/src/main/java/com/yeejoin/equipmanage/common/entity/CarSpeedWarningRecord.java
View file @
9c2482dc
...
...
@@ -10,6 +10,7 @@ import io.swagger.annotations.ApiModelProperty;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
org.springframework.data.elasticsearch.annotations.Field
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.math.BigDecimal
;
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/controller/CarController.java
View file @
9c2482dc
...
...
@@ -1415,14 +1415,14 @@ public class CarController extends AbstractBaseController {
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@RequestMapping
(
value
=
"/getCarEquipStateInfo"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"车辆统计-获取设备状态信息"
,
notes
=
"车辆统计-获取设备状态信息"
)
public
Page
<
CarEquipStateInfoDto
>
getCarEquipStateInfo
()
{
return
iCarService
.
getCarEquipStateInfo
();
public
Page
<
CarEquipStateInfoDto
>
getCarEquipStateInfo
(
@RequestParam
(
required
=
false
)
String
keyWord
,
@RequestParam
String
flag
)
{
return
iCarService
.
getCarEquipStateInfo
(
keyWord
);
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@RequestMapping
(
value
=
"/getCarEquipAlarmInfoDto"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"车辆统计-获取设备告警信息"
,
notes
=
"车辆统计-获取设备告警信息"
)
public
Page
<
CarEquipAlarmInfoDto
>
getCarEquipAlarmInfoDto
(
@RequestParam
(
required
=
false
)
String
keyWord
)
{
public
Page
<
CarEquipAlarmInfoDto
>
getCarEquipAlarmInfoDto
(
@RequestParam
(
required
=
false
)
String
keyWord
,
@RequestParam
String
flag
)
{
return
iCarService
.
getCarEquipAlarmInfoDto
(
keyWord
);
}
...
...
@@ -1475,8 +1475,13 @@ public class CarController extends AbstractBaseController {
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@RequestMapping
(
value
=
"/getCarWarningRecord"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"车辆统计-获取超速信息"
,
notes
=
"车辆统计-获取超速信息"
)
public
Page
<
CarSpeedWarningRecord
>
getCarWarningRecord
(
@RequestParam
(
required
=
false
)
String
keyWord
)
{
public
Page
<
CarSpeedWarningRecord
>
getCarWarningRecord
(
@RequestParam
(
required
=
false
)
String
keyWord
,
@RequestParam
String
flag
)
{
return
iCarService
.
getCarWarningRecord
(
keyWord
);
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@RequestMapping
(
value
=
"/getBizOrgName"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"车辆统计-获取归属单位下拉框值"
,
notes
=
"车辆统计-获取归属单位下拉框值"
)
public
List
<
Map
<
String
,
String
>>
getBizOrgName
(
@RequestParam
(
required
=
false
)
String
keyWord
)
{
return
iCarService
.
getBizOrgName
();
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/dto/CarExportDto.java
View file @
9c2482dc
...
...
@@ -22,4 +22,6 @@ public class CarExportDto {
@Excel
(
name
=
"里程数(km)"
)
private
String
totalTravel
;
private
String
totalTravelValue
;
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/ICarService.java
View file @
9c2482dc
...
...
@@ -18,10 +18,7 @@ import com.yeejoin.equipmanage.common.vo.*;
import
com.yeejoin.equipmanage.dto.*
;
import
javassist.compiler.ast.Keyword
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.*
;
/**
* 消防车信息 服务类
...
...
@@ -197,7 +194,7 @@ public interface ICarService extends IService<Car> {
// 获取车辆归属单位总数
Map
<
String
,
Integer
>
getCountOfCarBelongCompany
();
List
<
ChartIntegerDto
>
getCarCategoryInfo
()
;
Page
<
CarEquipStateInfoDto
>
getCarEquipStateInfo
();
Page
<
CarEquipStateInfoDto
>
getCarEquipStateInfo
(
String
keyWord
);
Page
<
CarEquipAlarmInfoDto
>
getCarEquipAlarmInfoDto
(
String
keyWord
);
List
<
ChartIntegerDto
>
getCarBelongAreaInfo
()
;
Page
<
CarAreaInfoDto
>
getCarAreaInfo
(
String
areaName
)
;
...
...
@@ -206,6 +203,8 @@ public interface ICarService extends IService<Car> {
ZZChartsDto
getCarMileageInfoByMothOFDay
(
String
iotCode
);
Page
<
CarExceptionDto
>
getCarExcepitonTrack
(
Integer
type
,
String
keyWord
);
Page
<
CarSpeedWarningRecord
>
getCarWarningRecord
(
String
keyWord
);
List
<
Map
<
String
,
String
>>
getBizOrgName
();
/**
* 查询车辆启动状态,赋码
*/
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/CarServiceImpl.java
View file @
9c2482dc
...
...
@@ -68,6 +68,7 @@ import java.io.ByteArrayInputStream;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.math.BigDecimal
;
import
java.text.Collator
;
import
java.time.LocalDate
;
import
java.time.ZoneId
;
import
java.util.*
;
...
...
@@ -84,6 +85,15 @@ import java.util.stream.Collectors;
@Service
public
class
CarServiceImpl
extends
ServiceImpl
<
CarMapper
,
Car
>
implements
ICarService
{
private
final
String
CAR_START_INDEX_KEY
=
"FireCar_Start"
;
@Autowired
protected
HttpServletRequest
request
;
@Autowired
EquipmentSpecificMapper
equipmentSpecificMapper
;
@Autowired
WlCarSpeedWaringRecordMapper
wlCarSpeedWaringRecordMapper
;
@Autowired
ISyncDataService
syncDataService
;
@Autowired
private
EquipmentCategoryMapper
equipmentCategoryMapper
;
private
List
<
Consumer
<
LossParams
>>
lossHandlers
;
...
...
@@ -123,8 +133,6 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
@Autowired
private
WarehouseStructureMapper
warehouseStructureMapper
;
@Autowired
protected
HttpServletRequest
request
;
@Autowired
private
IEquipmentService
iEquipmentService
;
@Autowired
private
IUploadFileService
iUploadFileService
;
...
...
@@ -137,51 +145,31 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
private
IManufacturerInfoService
iManufacturerInfoService
;
@Autowired
private
IJournalService
journalService
;
@Autowired
EquipmentSpecificMapper
equipmentSpecificMapper
;
@Autowired
WlCarSpeedWaringRecordMapper
wlCarSpeedWaringRecordMapper
;
@Autowired
private
RemoteSecurityService
remoteSecurityService
;
@Autowired
private
ICarPropertyService
carPropertyService
;
@Autowired
ISyncDataService
syncDataService
;
@Autowired
private
IEquipmentDetailService
iEquipmentDetailService
;
@Autowired
private
IEquipmentCategoryService
iEquipmentCategoryService
;
@Autowired
private
CarPropertyMapper
carPropertyMapper
;
@Value
(
"${equip.dict.car-state}"
)
private
String
carState
;
@Value
(
"${equip.dict.name-key}"
)
private
String
nameKeys
;
@Value
(
"${systemctl.sync.switch}"
)
private
Boolean
syncSwitch
;
@Value
(
"${equip.car.alarmBattery}"
)
private
Integer
carEquipAlarmBatteryNumber
;
@Value
(
"${equip.car.maxTravel}"
)
private
Double
carMaxTravel
;
@Autowired
@Lazy
private
IWlCarMileageService
iWlCarMileageService
;
private
final
String
CAR_START_INDEX_KEY
=
"FireCar_Start"
;
@Value
(
"${car.max.speed:100}"
)
private
Integer
CAR_MAX_SPEED
;
private
Integer
CAR_MAX_SPEED
;
/**
* 当前登录用户信息
...
...
@@ -404,193 +392,6 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
return
result
;
}
class
LossParams
{
private
Long
carId
;
private
Long
lossStateId
;
private
List
<
ExtinguishantLossRequest
>
extinguishants
;
private
Car
car
;
private
Map
<
Long
,
StockDetail
>
details
;
private
List
<
ExtinguishantOnCar
>
extinguishantOnCar
;
/**
* 记录明细账id,用户更新搜索
*/
private
Set
<
Long
>
stockDetailIds
;
/**
* 损耗单
*/
private
WastageBill
bill
;
public
LossParams
(
Long
carId
,
List
<
ExtinguishantLossRequest
>
extinguishants
)
{
this
.
carId
=
carId
;
this
.
extinguishants
=
extinguishants
;
setStockDetailIds
(
new
HashSet
<>());
}
public
StockDetail
getDetailById
(
Long
id
)
{
return
details
.
get
(
id
);
}
public
Long
getCarId
()
{
return
carId
;
}
public
void
setCarId
(
Long
carId
)
{
this
.
carId
=
carId
;
}
public
List
<
ExtinguishantLossRequest
>
getExtinguishants
()
{
return
extinguishants
;
}
public
void
setExtinguishants
(
List
<
ExtinguishantLossRequest
>
extinguishants
)
{
this
.
extinguishants
=
extinguishants
;
}
public
Car
getCar
()
{
return
car
;
}
public
void
setCar
(
Car
car
)
{
this
.
car
=
car
;
}
public
Map
<
Long
,
StockDetail
>
getDetails
()
{
return
details
;
}
public
void
setDetails
(
Map
<
Long
,
StockDetail
>
details
)
{
this
.
details
=
details
;
}
public
List
<
ExtinguishantOnCar
>
getExtinguishantOnCar
()
{
return
extinguishantOnCar
;
}
public
void
setExtinguishantOnCar
(
List
<
ExtinguishantOnCar
>
extinguishantOnCar
)
{
this
.
extinguishantOnCar
=
extinguishantOnCar
;
}
public
WastageBill
getBill
()
{
return
bill
;
}
public
void
setBill
(
WastageBill
bill
)
{
this
.
bill
=
bill
;
}
private
Double
equalLossCountHandler
(
ExtinguishantOnCar
ex
,
Double
lossCount
)
throws
Exception
{
try
{
StockDetail
stockDetail
=
getDetailById
(
ex
.
getStockDetailId
());
stockDetail
.
setStatus
(
EquipStatusEnum
.
LOSS
.
getCode
().
toString
());
stockDetail
.
setId
(
null
);
stockDetailMapper
.
insert
(
stockDetail
);
addStockDetailId
(
stockDetail
.
getId
());
// 查询库存
Stock
stock
=
stockMapper
.
selectById
(
stockDetail
.
getStockId
());
stock
.
setAmount
(
stock
.
getAmount
()
-
lossCount
);
stockMapper
.
updateById
(
stock
);
// 删除
extinguishantOnCarMapper
.
deleteById
(
ex
.
getId
());
// 损耗清单详情
WastageBillDetail
detail
=
new
WastageBillDetail
();
detail
.
setAmount
(
BigDecimal
.
valueOf
(
lossCount
));
detail
.
setStockDetailId
(
stockDetail
.
getId
());
detail
.
setWastageBillId
(
bill
.
getId
());
wastageBillDetailMapper
.
insert
(
detail
);
journalMapper
.
insert
(
createJournal
(
ex
,
stockDetail
.
getId
(),
null
));
return
0
d
;
}
catch
(
Exception
e
)
{
throw
e
;
}
}
private
Double
greaterThanLossCountHandler
(
ExtinguishantOnCar
ex
,
Double
lossCount
)
throws
Exception
{
try
{
StockDetail
stockDetail
=
getDetailById
(
ex
.
getStockDetailId
());
if
(
stockDetail
==
null
)
{
return
0
d
;
}
stockDetail
.
setAmount
(
stockDetail
.
getAmount
()
-
lossCount
);
stockDetailMapper
.
updateById
(
stockDetail
);
addStockDetailId
(
stockDetail
.
getId
());
StockDetail
stockDetailClone
=
new
StockDetail
();
BeanUtils
.
copyProperties
(
stockDetail
,
stockDetailClone
);
stockDetailClone
.
setId
(
null
);
stockDetailClone
.
setAmount
(
lossCount
);
stockDetailClone
.
setStatus
(
EquipStatusEnum
.
LOSS
.
getCode
().
toString
());
stockDetailMapper
.
insert
(
stockDetailClone
);
addStockDetailId
(
stockDetailClone
.
getId
());
Stock
stock
=
stockMapper
.
selectById
(
stockDetail
.
getStockId
());
stock
.
setAmount
(
stock
.
getAmount
()
-
lossCount
);
stockMapper
.
updateById
(
stock
);
ex
.
setAmount
(
ex
.
getAmount
()
-
lossCount
);
extinguishantOnCarMapper
.
updateById
(
ex
);
// 损耗清单详情
WastageBillDetail
detail
=
new
WastageBillDetail
();
detail
.
setAmount
(
BigDecimal
.
valueOf
(
lossCount
));
detail
.
setStockDetailId
(
stockDetailClone
.
getId
());
detail
.
setWastageBillId
(
bill
.
getId
());
wastageBillDetailMapper
.
insert
(
detail
);
journalMapper
.
insert
(
createJournal
(
ex
,
stockDetailClone
.
getId
(),
lossCount
));
return
0
d
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
e
;
}
}
public
Journal
createJournal
(
ExtinguishantOnCar
e
,
Long
stockDetailId
,
Double
amount
)
{
Journal
journal
=
new
Journal
();
Double
lossAmount
=
(
null
!=
amount
)
?
amount
:
e
.
getAmount
();
Long
lossStockDetailId
=
(
null
!=
stockDetailId
)
?
stockDetailId
:
e
.
getStockDetailId
();
journal
.
setAmount
(
lossAmount
);
journal
.
setCarId
(
getCarId
());
journal
.
setEquipmentDetailId
(
e
.
getEquipmentDetailId
());
journal
.
setUserId
(
Long
.
valueOf
(
getUser
().
getUserId
()));
// 查询EquipmentDetail
EquipmentDetail
equipmentDetail
=
equipmentDetailMapper
.
selectById
(
getDetailById
(
e
.
getStockDetailId
()).
getEquipmentDetailId
());
Equipment
equipment
=
iEquipmentService
.
getById
(
equipmentDetail
.
getEquipmentId
());
Unit
unit
=
unitMapper
.
selectById
(
equipment
.
getUnitId
());
journal
.
setRemark
(
String
.
format
(
"【%s】在车牌号为【%s】的车辆上,损耗了【%.2f】%s【%s】"
,
getUser
().
getRealName
(),
getCar
().
getCarNum
(),
lossAmount
,
unit
.
getName
(),
equipmentDetail
.
getName
()));
journal
.
setOrgCode
(
getCar
().
getOrgCode
());
journal
.
setStockDetailId
(
lossStockDetailId
);
journal
.
setState
(
getLossStateId
().
toString
());
return
journal
;
}
public
Set
<
Long
>
getStockDetailIds
()
{
return
stockDetailIds
;
}
public
void
setStockDetailIds
(
Set
<
Long
>
stockDetailIds
)
{
this
.
stockDetailIds
=
stockDetailIds
;
}
public
void
addStockDetailId
(
Long
id
)
{
stockDetailIds
.
add
(
id
);
}
public
Long
getLossStateId
()
{
return
lossStateId
;
}
public
void
setLossStateId
(
Long
lossStateId
)
{
this
.
lossStateId
=
lossStateId
;
}
}
@PostConstruct
public
void
init
()
{
if
(
null
==
loadingHandlers
)
{
...
...
@@ -617,7 +418,7 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
loadingHandlers
.
add
(
this
::
destocking
);
// loadingHandlers.add((p) ->
// loadingHandlers.add((p) ->
// AsynUtils.run(p.getStockDetailIds(), iRemoteSearchServer::updateStockDetails));
}
if
(
null
==
lossHandlers
)
{
...
...
@@ -765,146 +566,39 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
return
result
;
}
class
LoadingParams
{
private
Long
carId
;
private
String
loadingId
;
@Override
public
void
loadingEquipment
(
OnBoardEquipment
equipment
,
AgencyUserModel
user
)
{
List
<
Equip
>
eqs
=
generate
(
equipment
);
try
{
eqs
.
forEach
(
eq
->
{
StockDetail
detail
=
getEligibleStockDetail
(
eq
);
if
(
null
==
detail
)
{
throw
new
RuntimeException
(
"二维码为【"
+
eq
.
getQrCode
()
+
"】的装备库存量不足!"
);
}
updateStockDetail
(
detail
,
equipment
.
getType
(),
null
,
null
);
loading
(
detail
,
eq
);
generateJournal
(
detail
,
eq
,
equipment
.
getType
(),
user
,
null
);
});
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
.
getMessage
());
}
private
List
<
ExtinguishantRequeset
>
extinguishants
;
}
private
Car
car
;
private
Map
<
Long
,
StockDetail
>
details
;
private
Set
<
Long
>
stockDetailIds
;
public
LoadingParams
(
Long
carId
,
List
<
ExtinguishantRequeset
>
extinguishants
)
{
this
.
carId
=
carId
;
this
.
extinguishants
=
extinguishants
;
setStockDetailIds
(
new
HashSet
<>());
}
public
ExtinguishantOnCar
create
(
ExtinguishantRequeset
r
,
StockDetail
detail
)
{
ExtinguishantOnCar
extinguishantOnCar
=
new
ExtinguishantOnCar
();
extinguishantOnCar
.
setCarId
(
carId
);
extinguishantOnCar
.
setAmount
(
r
.
getAmount
());
extinguishantOnCar
.
setStockDetailId
(
detail
.
getId
());
extinguishantOnCar
.
setEquipmentDetailId
(
getDetailById
(
r
.
getStockDetailId
()).
getEquipmentDetailId
());
return
extinguishantOnCar
;
}
public
Journal
createJournal
(
ExtinguishantRequeset
r
,
Long
stockDetailId
)
{
// 查询EquipmentDetail
EquipmentDetail
equipmentDetail
=
equipmentDetailMapper
.
selectById
(
getDetailById
(
r
.
getStockDetailId
()).
getEquipmentDetailId
());
Equipment
equipment
=
iEquipmentService
.
getById
(
equipmentDetail
.
getEquipmentId
());
Unit
unit
=
unitMapper
.
selectById
(
equipment
.
getUnitId
());
Journal
journal
=
new
Journal
();
journal
.
setAmount
(
r
.
getAmount
());
journal
.
setCarId
(
getCarId
());
journal
.
setEquipmentDetailId
(
getDetailById
(
r
.
getStockDetailId
()).
getEquipmentDetailId
());
journal
.
setUserId
(
Long
.
valueOf
(
getUser
().
getUserId
()));
journal
.
setWarehouseStructureId
(
getDetailById
(
r
.
getStockDetailId
()).
getWarehouseStructureId
());
journal
.
setRemark
(
String
.
format
(
"【%s】向车牌号为【%s】的车辆上,装载了【%.2f】%s【%s】"
,
getUser
().
getRealName
(),
getCar
().
getCarNum
(),
r
.
getAmount
(),
unit
.
getName
(),
equipmentDetail
.
getName
()));
journal
.
setOrgCode
(
getCar
().
getOrgCode
());
journal
.
setStockDetailId
(
stockDetailId
);
journal
.
setState
(
getLoadingId
());
return
journal
;
}
public
StockDetail
getDetailById
(
Long
id
)
{
return
details
.
get
(
id
);
}
public
Long
getCarId
()
{
return
carId
;
}
public
void
setCarId
(
Long
carId
)
{
this
.
carId
=
carId
;
}
public
List
<
ExtinguishantRequeset
>
getExtinguishants
()
{
return
extinguishants
;
}
public
void
setExtinguishants
(
List
<
ExtinguishantRequeset
>
extinguishants
)
{
this
.
extinguishants
=
extinguishants
;
}
public
Car
getCar
()
{
return
car
;
}
public
void
setCar
(
Car
car
)
{
this
.
car
=
car
;
}
public
Map
<
Long
,
StockDetail
>
getDetails
()
{
return
details
;
}
public
void
setDetails
(
Map
<
Long
,
StockDetail
>
details
)
{
this
.
details
=
details
;
}
public
Set
<
Long
>
getStockDetailIds
()
{
return
stockDetailIds
;
}
public
void
setStockDetailIds
(
Set
<
Long
>
stockDetailIds
)
{
this
.
stockDetailIds
=
stockDetailIds
;
}
public
void
addStockDetailId
(
Long
id
)
{
stockDetailIds
.
add
(
id
);
}
public
String
getLoadingId
()
{
return
loadingId
;
}
public
void
setLoadingId
(
String
loadingId
)
{
this
.
loadingId
=
loadingId
;
}
}
@Override
public
void
loadingEquipment
(
OnBoardEquipment
equipment
,
AgencyUserModel
user
)
{
List
<
Equip
>
eqs
=
generate
(
equipment
);
try
{
eqs
.
forEach
(
eq
->
{
StockDetail
detail
=
getEligibleStockDetail
(
eq
);
if
(
null
==
detail
)
{
throw
new
RuntimeException
(
"二维码为【"
+
eq
.
getQrCode
()
+
"】的装备库存量不足!"
);
}
updateStockDetail
(
detail
,
equipment
.
getType
(),
null
,
null
);
loading
(
detail
,
eq
);
generateJournal
(
detail
,
eq
,
equipment
.
getType
(),
user
,
null
);
});
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
.
getMessage
());
}
}
private
void
loading
(
StockDetail
detail
,
Equip
eq
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"qr_code"
,
detail
.
getQrCode
());
EquipmentSpecific
equipmentSpecific
=
equipmentSpecificMapper
.
selectOne
(
queryWrapper
);
EquipmentOnCar
equipmentOnCar
=
new
EquipmentOnCar
();
equipmentOnCar
.
setCarId
(
eq
.
getCarId
());
equipmentOnCar
.
setStockDetailId
(
detail
.
getId
());
equipmentOnCar
.
setAmount
(
eq
.
getAmount
());
equipmentOnCar
.
setEquipmentDetailId
(
eq
.
getEquipmentDetailId
());
if
(
equipmentSpecific
!=
null
)
{
equipmentOnCar
.
setEquipmentSpecificId
(
equipmentSpecific
.
getId
());
}
equipmentOnCarMapper
.
insert
(
equipmentOnCar
);
}
private
void
loading
(
StockDetail
detail
,
Equip
eq
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"qr_code"
,
detail
.
getQrCode
());
EquipmentSpecific
equipmentSpecific
=
equipmentSpecificMapper
.
selectOne
(
queryWrapper
);
EquipmentOnCar
equipmentOnCar
=
new
EquipmentOnCar
();
equipmentOnCar
.
setCarId
(
eq
.
getCarId
());
equipmentOnCar
.
setStockDetailId
(
detail
.
getId
());
equipmentOnCar
.
setAmount
(
eq
.
getAmount
());
equipmentOnCar
.
setEquipmentDetailId
(
eq
.
getEquipmentDetailId
());
if
(
equipmentSpecific
!=
null
)
{
equipmentOnCar
.
setEquipmentSpecificId
(
equipmentSpecific
.
getId
());
}
equipmentOnCarMapper
.
insert
(
equipmentOnCar
);
}
private
void
generateJournal
(
StockDetail
detail
,
Equip
eq
,
String
type
,
AgencyUserModel
user
,
Long
shelfCellId
)
{
OnBoardEquipmentEnum
typeEnum
=
OnBoardEquipmentEnum
.
getEnum
(
type
);
...
...
@@ -1380,7 +1074,7 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
if
(!
ObjectUtils
.
isEmpty
(
car
.
getIotCode
()))
{
Double
monthTravel
=
0.0
;
Double
monthTravel
=
0.0
;
Double
totalTravel
=
0.0
;
String
currentYearAndMonth
=
DateUtil
.
format
(
new
Date
(),
"yyyy-MM"
);
LambdaQueryWrapper
<
WlCarMileage
>
wrapper
=
new
LambdaQueryWrapper
<
WlCarMileage
>();
...
...
@@ -1389,18 +1083,18 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
wrapper
.
isNotNull
(
WlCarMileage:
:
getEndTime
);
wrapper
.
isNotNull
(
WlCarMileage:
:
getStartTime
);
// .ge("travel", 0.5)
List
<
WlCarMileage
>
list
=
iWlCarMileageService
.
list
(
wrapper
);
List
<
WlCarMileage
>
list
=
iWlCarMileageService
.
list
(
wrapper
);
for
(
WlCarMileage
wl
:
list
)
{
//判断当前车辆全程是否异常,如果时速小于阈值 则对数据进行返回 否则不予返回
if
(!
ObjectUtils
.
isEmpty
(
wl
.
getTakeTime
())
&&
!
ObjectUtils
.
isEmpty
(
wl
.
getTravel
())
&&
((
wl
.
getTravel
()
/
(
wl
.
getTakeTime
()
/
3600000.0
))
<
CAR_MAX_SPEED
))
{
if
(!
ObjectUtils
.
isEmpty
(
wl
.
getTakeTime
())
&&
!
ObjectUtils
.
isEmpty
(
wl
.
getTravel
())
&&
((
wl
.
getTravel
()
/
(
wl
.
getTakeTime
()
/
3600000.0
))
<
CAR_MAX_SPEED
))
{
totalTravel
+=
wl
.
getTravel
();
if
(
DateUtil
.
format
(
wl
.
getStartTime
(),
"yyyy-MM"
).
equals
(
currentYearAndMonth
))
{
if
(
DateUtil
.
format
(
wl
.
getStartTime
(),
"yyyy-MM"
).
equals
(
currentYearAndMonth
))
{
monthTravel
+=
wl
.
getTravel
();
}
}
}
car
.
setTotalTravel
(
Double
.
valueOf
(
String
.
format
(
"%.1f"
,
totalTravel
)));
car
.
setMonthTravel
(
Double
.
valueOf
(
String
.
format
(
"%.1f"
,
monthTravel
)));
car
.
setTotalTravel
(
Double
.
valueOf
(
String
.
format
(
"%.1f"
,
totalTravel
)));
car
.
setMonthTravel
(
Double
.
valueOf
(
String
.
format
(
"%.1f"
,
monthTravel
)));
WlCarMileage
last
=
iWlCarMileageService
.
getOne
(
new
LambdaQueryWrapper
<
WlCarMileage
>().
eq
(
WlCarMileage:
:
getIotCode
,
car
.
getIotCode
())
.
orderByDesc
(
WlCarMileage:
:
getEndTime
).
last
(
"limit 1"
));
...
...
@@ -1607,7 +1301,6 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
return
carMapper
.
getCarStateInfoByCarNum
(
carNum
);
}
@Override
public
CarForUE4VO
getCarDetailByCarNumToThreeDimensional
(
Long
carId
,
String
orgCode
)
{
CarForUE4VO
carForUE4VO
=
new
CarForUE4VO
();
...
...
@@ -1641,7 +1334,6 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
return
carForUE4VO
;
}
@Override
public
Page
<
CarInfoDto
>
equipmentCarList
(
Page
<
CarInfoDto
>
pag
,
Long
teamId
,
String
name
,
String
code
,
Long
id
,
Boolean
isNo
)
{
...
...
@@ -1749,14 +1441,12 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
return
page
;
}
@Override
public
List
<
Car
>
location
()
{
List
<
Car
>
list
=
this
.
list
();
return
list
;
}
@Override
public
Map
<
String
,
Integer
>
getCountOfCar
()
{
Map
<
String
,
Integer
>
map
=
new
HashMap
<>();
...
...
@@ -1788,7 +1478,7 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
}
@Override
public
Page
<
CarEquipStateInfoDto
>
getCarEquipStateInfo
()
{
public
Page
<
CarEquipStateInfoDto
>
getCarEquipStateInfo
(
String
keyWord
)
{
// BasicTableDataDto basicTableDataDto = new BasicTableDataDto();
// List<ColModel> colModels = new ArrayList<>();
// colModels.add(new ColModel("carNum","车牌号"));
...
...
@@ -1796,19 +1486,39 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
// colModels.add(new ColModel("equipState","设备状态"));
// colModels.add(new ColModel("extra2","设备电量"));
Page
<
CarEquipStateInfoDto
>
page
=
new
Page
<>();
List
<
CarEquipStateInfoDto
>
list
=
carMapper
.
getCarEquipStateInfo
();
if
(
list
.
size
()
>
0
)
{
list
.
forEach
(
carEquipStateInfoDto
->
{
if
(
carEquipStateInfoDto
.
getExtra2
()
!=
null
)
{
carEquipStateInfoDto
.
setEquipState
(
"开机"
);
carEquipStateInfoDto
.
setExtra2
(
carEquipStateInfoDto
.
getExtra2
()
+
"%"
);
}
else
{
carEquipStateInfoDto
.
setEquipState
(
"关机"
);
carEquipStateInfoDto
.
setExtra2
(
"未上报"
);
}
});
List
<
CarEquipStateInfoDto
>
result
=
new
ArrayList
<>();
List
<
Car
>
list
=
this
.
list
();
if
(
StringUtils
.
isNotEmpty
(
keyWord
))
{
list
=
list
.
stream
().
filter
(
car
->
car
.
getBizOrgName
().
contains
(
keyWord
)).
collect
(
Collectors
.
toList
());
}
page
.
setRecords
(
list
);
list
=
list
.
stream
().
sorted
(
Comparator
.
comparing
(
Car:
:
getExtra2
,
Comparator
.
comparingDouble
(
Double:
:
valueOf
)).
reversed
()).
collect
(
Collectors
.
toList
());
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
Car
car
=
list
.
get
(
i
);
CarEquipStateInfoDto
carEquipStateInfoDto
=
new
CarEquipStateInfoDto
();
carEquipStateInfoDto
.
setCarNum
(
car
.
getCarNum
());
carEquipStateInfoDto
.
setBizOrgName
(
car
.
getBizOrgName
());
if
(
car
.
getExtra2
()
!=
null
)
{
carEquipStateInfoDto
.
setEquipState
(
"开机"
);
carEquipStateInfoDto
.
setExtra2
(
car
.
getExtra2
()
+
"%"
);
}
else
{
carEquipStateInfoDto
.
setEquipState
(
"关机"
);
carEquipStateInfoDto
.
setExtra2
(
"未上报"
);
}
result
.
add
(
carEquipStateInfoDto
);
}
// List<CarEquipStateInfoDto> list = carMapper.getCarEquipStateInfo();
//// if (list.size() > 0) {
//// list.forEach(carEquipStateInfoDto -> {
//// if (carEquipStateInfoDto.getExtra2() != null) {
//// carEquipStateInfoDto.setEquipState("开机");
//// carEquipStateInfoDto.setExtra2(carEquipStateInfoDto.getExtra2() + "%");
//// } else {
//// carEquipStateInfoDto.setEquipState("关机");
//// carEquipStateInfoDto.setExtra2("未上报");
//// }
//// });
//// }
page
.
setRecords
(
result
);
page
.
setTotal
(
list
.
size
());
page
.
setCurrent
(
1
);
page
.
setSize
(
10
);
...
...
@@ -1822,16 +1532,17 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
@Override
public
Page
<
CarEquipAlarmInfoDto
>
getCarEquipAlarmInfoDto
(
String
keyWord
)
{
Page
<
CarEquipAlarmInfoDto
>
page
=
new
Page
<>();
List
<
Car
>
list
=
this
.
list
().
stream
().
filter
(
car
->
Integer
.
valueOf
(
car
.
getExtra2
())
<
carEquipAlarmBatteryNumber
).
collect
(
Collectors
.
toList
());
if
(
StringUtils
.
isNotEmpty
(
keyWord
))
{
list
=
list
.
stream
().
filter
(
car
->
car
.
getBizOrgName
().
contains
(
keyWord
)||
car
.
getOwnership
().
contains
(
keyWord
)).
collect
(
Collectors
.
toList
());
List
<
Car
>
list
=
this
.
list
().
stream
().
filter
(
car
->
Integer
.
valueOf
(
car
.
getExtra2
())
<
carEquipAlarmBatteryNumber
).
collect
(
Collectors
.
toList
());
if
(
StringUtils
.
isNotEmpty
(
keyWord
))
{
list
=
list
.
stream
().
filter
(
car
->
car
.
getBizOrgName
().
contains
(
keyWord
)).
collect
(
Collectors
.
toList
());
}
List
<
CarEquipAlarmInfoDto
>
carEquipAlarmInfoDtoList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
CarEquipAlarmInfoDto
carEquipAlarmInfoDto
=
new
CarEquipAlarmInfoDto
();
CarEquipAlarmInfoDto
carEquipAlarmInfoDto
=
new
CarEquipAlarmInfoDto
();
carEquipAlarmInfoDto
.
setCarNum
(
list
.
get
(
i
).
getCarNum
());
carEquipAlarmInfoDto
.
setNo
(
i
+
1
);
carEquipAlarmInfoDto
.
setAlarmMessage
(
"该设备电量低于"
+
carEquipAlarmBatteryNumber
+
"%!"
);
carEquipAlarmInfoDto
.
setNo
(
i
+
1
);
carEquipAlarmInfoDto
.
setAlarmMessage
(
"该设备电量低于"
+
carEquipAlarmBatteryNumber
+
"%!"
);
carEquipAlarmInfoDtoList
.
add
(
carEquipAlarmInfoDto
);
}
page
.
setRecords
(
carEquipAlarmInfoDtoList
);
page
.
setTotal
(
list
.
size
());
...
...
@@ -1862,26 +1573,26 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
}
@Override
public
Page
<
CarAreaInfoDto
>
getCarAreaInfo
(
String
areaName
)
{
public
Page
<
CarAreaInfoDto
>
getCarAreaInfo
(
String
areaName
)
{
Page
<
CarAreaInfoDto
>
page
=
new
Page
<>();
List
<
CarAreaInfoDto
>
list
=
new
ArrayList
<>();
CompanyModel
companyModelArea
=
Privilege
.
companyClient
.
queryByCompanyName
(
areaName
).
getResult
();
if
(
companyModelArea
!=
null
)
{
FeignClientResult
<
java
.
util
.
Collection
<
CompanyModel
>>
de
=
Privilege
.
companyClient
.
querySubAgencyTree
(
companyModelArea
.
getSequenceNbr
());
//如果是公司则获取所有片区
ArrayList
<
CompanyModel
>
companyModels
=
(
ArrayList
<
CompanyModel
>)
de
.
getResult
();
if
(
companyModels
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
companyModels
.
size
();
i
++)
{
CompanyModel
companyModel
=
companyModels
.
get
(
i
);
CarAreaInfoDto
carAreaInfoDto
=
new
CarAreaInfoDto
();
Integer
count
=
this
.
count
(
new
QueryWrapper
<
Car
>().
like
(
"biz_org_code"
,
companyModel
.
getOrgCode
()));
carAreaInfoDto
.
setNo
(
i
+
1
);
carAreaInfoDto
.
setName
(
companyModel
.
getCompanyName
());
carAreaInfoDto
.
setCountOfCar
(
count
);
list
.
add
(
carAreaInfoDto
);
}
}
}
CompanyModel
companyModelArea
=
Privilege
.
companyClient
.
queryByCompanyName
(
areaName
).
getResult
();
if
(
companyModelArea
!=
null
)
{
FeignClientResult
<
java
.
util
.
Collection
<
CompanyModel
>>
de
=
Privilege
.
companyClient
.
querySubAgencyTree
(
companyModelArea
.
getSequenceNbr
());
//如果是公司则获取所有片区
ArrayList
<
CompanyModel
>
companyModels
=
(
ArrayList
<
CompanyModel
>)
de
.
getResult
();
if
(
companyModels
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
companyModels
.
size
();
i
++)
{
CompanyModel
companyModel
=
companyModels
.
get
(
i
);
CarAreaInfoDto
carAreaInfoDto
=
new
CarAreaInfoDto
();
Integer
count
=
this
.
count
(
new
QueryWrapper
<
Car
>().
like
(
"biz_org_code"
,
companyModel
.
getOrgCode
()));
carAreaInfoDto
.
setNo
(
i
+
1
);
carAreaInfoDto
.
setName
(
companyModel
.
getCompanyName
());
carAreaInfoDto
.
setCountOfCar
(
count
);
list
.
add
(
carAreaInfoDto
);
}
}
}
page
.
setRecords
(
list
);
page
.
setTotal
(
list
.
size
());
page
.
setCurrent
(
1
);
...
...
@@ -1890,17 +1601,17 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
}
@Override
public
BasicTableDataDto
getCarMileageInfoByMoth
(
String
date
,
Integer
current
,
Integer
pageSize
,
String
keyWord
)
{
public
BasicTableDataDto
getCarMileageInfoByMoth
(
String
date
,
Integer
current
,
Integer
pageSize
,
String
keyWord
)
{
BasicTableDataDto
basicTableDataDto
=
new
BasicTableDataDto
();
List
<
ColModel
>
colModels
=
new
ArrayList
<>();
colModels
.
add
(
new
ColModel
(
"carNum"
,
"车牌号"
));
colModels
.
add
(
new
ColModel
(
"carCode"
,
"编号"
));
colModels
.
add
(
new
ColModel
(
"bizOrgName"
,
"所属单位"
));
colModels
.
add
(
new
ColModel
(
"total"
,
"当月里程"
));
colModels
.
add
(
new
ColModel
(
"carNum"
,
"车牌号"
));
colModels
.
add
(
new
ColModel
(
"carCode"
,
"编号"
));
colModels
.
add
(
new
ColModel
(
"bizOrgName"
,
"所属单位"
));
colModels
.
add
(
new
ColModel
(
"total"
,
"当月里程"
));
List
<
MileageDto
>
mileageDtoList
=
new
ArrayList
<>();
List
<
Car
>
list
=
this
.
list
();
if
(
StringUtils
.
isNotEmpty
(
keyWord
))
{
list
=
list
.
stream
().
filter
(
car
->
car
.
getBizOrgName
().
contains
(
keyWord
)||
car
.
getOwnership
().
contains
(
keyWord
)).
collect
(
Collectors
.
toList
());
if
(
StringUtils
.
isNotEmpty
(
keyWord
))
{
list
=
list
.
stream
().
filter
(
car
->
car
.
getBizOrgName
().
contains
(
keyWord
)).
collect
(
Collectors
.
toList
());
}
if
(
list
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
...
...
@@ -1915,33 +1626,33 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
// mileageDto.setTotalTravel((totalTravel / carMaxTravel) * 100);
mileageDto
.
setTotalTravel
(
totalTravel
);
}
else
{
totalTravel
=
0.0
;
totalTravel
=
0.0
;
mileageDto
.
setTotalTravel
(
totalTravel
);
}
mileageDto
.
setTotal
(
String
.
format
(
"%.1f"
,
totalTravel
)+
"KM"
);
mileageDto
.
setTotal
(
String
.
format
(
"%.1f"
,
totalTravel
)
+
"KM"
);
mileageDtoList
.
add
(
mileageDto
);
}
}
mileageDtoList
=
mileageDtoList
.
stream
().
sorted
(
Comparator
.
comparing
(
MileageDto:
:
getTotalTravel
).
reversed
()).
collect
(
Collectors
.
toList
());
Integer
from
=(
current
-
1
)*
pageSize
>
mileageDtoList
.
size
()?
mileageDtoList
.
size
():(
current
-
1
)*
pageSize
;
Integer
to
=
current
*
pageSize
>
mileageDtoList
.
size
()?
mileageDtoList
.
size
():
current
*
pageSize
;
DataGridMock
mypageDto
=
new
DataGridMock
(
current
,
mileageDtoList
.
size
(),
true
,
current
,
mileageDtoList
.
subList
(
from
,
to
));
Integer
from
=
(
current
-
1
)
*
pageSize
>
mileageDtoList
.
size
()
?
mileageDtoList
.
size
()
:
(
current
-
1
)
*
pageSize
;
Integer
to
=
current
*
pageSize
>
mileageDtoList
.
size
()
?
mileageDtoList
.
size
()
:
current
*
pageSize
;
DataGridMock
mypageDto
=
new
DataGridMock
(
current
,
mileageDtoList
.
size
(),
true
,
current
,
mileageDtoList
.
subList
(
from
,
to
));
basicTableDataDto
.
setDataGridMock
(
mypageDto
);
basicTableDataDto
.
setColModel
(
colModels
);
return
basicTableDataDto
;
}
@Override
public
List
<
CarExportDto
>
exportCarMileageInfoByMoth
(
String
date
,
String
keyWord
)
{
public
List
<
CarExportDto
>
exportCarMileageInfoByMoth
(
String
date
,
String
keyWord
)
{
List
<
CarExportDto
>
carExportDtos
=
new
ArrayList
<>();
List
<
Car
>
list
=
this
.
list
();
if
(
StringUtils
.
isNotEmpty
(
keyWord
))
{
list
=
list
.
stream
().
filter
(
car
->
car
.
getBizOrgName
().
contains
(
keyWord
)||
car
.
getOwnership
().
contains
(
keyWord
)).
collect
(
Collectors
.
toList
());
if
(
StringUtils
.
isNotEmpty
(
keyWord
))
{
list
=
list
.
stream
().
filter
(
car
->
car
.
getBizOrgName
().
contains
(
keyWord
)).
collect
(
Collectors
.
toList
());
}
if
(
list
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
CarExportDto
carExportDto
=
new
CarExportDto
();
Car
car
=
list
.
get
(
i
);
Car
car
=
list
.
get
(
i
);
Double
totalTravel
=
iWlCarMileageService
.
getTotalTravelByIotCodeAndDate
(
date
,
car
.
getIotCode
());
carExportDto
.
setCode
(
car
.
getRemark
());
carExportDto
.
setCarNumber
(
car
.
getCarNum
());
...
...
@@ -1950,21 +1661,23 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
carExportDto
.
setOrgName
(
car
.
getBizOrgName
());
carExportDto
.
setStandard
(
car
.
getStandard
());
carExportDto
.
setDisplacement
(
car
.
getDisplacement
());
if
(
totalTravel
!=
null
){
carExportDto
.
setTotalTravel
(
String
.
format
(
"%.1f"
,
totalTravel
)+
"KM"
);
}
else
{
carExportDto
.
setTotalTravel
(
"0.0KM"
);
if
(
totalTravel
!=
null
)
{
carExportDto
.
setTotalTravel
(
String
.
format
(
"%.1f"
,
totalTravel
)
+
"KM"
);
carExportDto
.
setTotalTravelValue
(
String
.
format
(
"%.1f"
,
totalTravel
));
}
else
{
carExportDto
.
setTotalTravel
(
"0KM"
);
carExportDto
.
setTotalTravelValue
(
"0.0"
);
}
carExportDtos
.
add
(
carExportDto
);
}
}
Collections
.
sort
(
carExportDtos
,
(
e1
,
e2
)->
Double
.
valueOf
(
e2
.
getTotalTravel
()).
compareTo
(
Double
.
valueOf
(
e1
.
getTotalTravel
())));
Collections
.
sort
(
carExportDtos
,
(
e1
,
e2
)
->
Double
.
valueOf
(
e2
.
getTotalTravelValue
()).
compareTo
(
Double
.
valueOf
(
e1
.
getTotalTravelValue
())));
return
carExportDtos
;
}
@Override
public
ZZChartsDto
getCarMileageInfoByMothOFDay
(
String
iotCode
)
{
ZZChartsDto
zzChartsDto
=
new
ZZChartsDto
();
ZZChartsDto
zzChartsDto
=
new
ZZChartsDto
();
//X轴数据
List
<
String
>
x
=
new
ArrayList
<>();
// Y轴数据
...
...
@@ -1976,10 +1689,10 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
calendar
.
set
(
Calendar
.
YEAR
,
Integer
.
parseInt
(
dates
[
0
]));
calendar
.
set
(
Calendar
.
MONTH
,
Integer
.
parseInt
(
dates
[
1
]));
for
(
int
i
=
0
;
i
<
calendar
.
getActualMaximum
(
Calendar
.
DATE
);
i
++)
{
String
dateStr
=
i
<
9
?
dates
[
1
]+
"-0"
+
(
i
+
1
)
:
dates
[
1
]
+
"-"
+
(
i
+
1
);
String
dateStr
=
i
<
9
?
dates
[
1
]
+
"-0"
+
(
i
+
1
)
:
dates
[
1
]
+
"-"
+
(
i
+
1
);
Double
totalTravel
=
iWlCarMileageService
.
getTotalTravelByIotCodeAndDate
(
dateStr
,
datas
[
1
]);
if
(
totalTravel
==
null
)
{
totalTravel
=
0.0
;
totalTravel
=
0.0
;
}
x
.
add
(
dateStr
);
y
.
add
(
totalTravel
);
...
...
@@ -1990,22 +1703,22 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
}
@Override
public
Page
<
CarExceptionDto
>
getCarExcepitonTrack
(
Integer
type
,
String
keyWord
)
{
public
Page
<
CarExceptionDto
>
getCarExcepitonTrack
(
Integer
type
,
String
keyWord
)
{
Page
<
CarExceptionDto
>
page
=
new
Page
<>();
List
<
CarExceptionDto
>
carExceptionDtos
=
new
ArrayList
<>();
LocalDate
localDate
=
LocalDate
.
now
(
ZoneId
.
of
(
"+8"
));
String
startDate
=
localDate
.
plusDays
(-
1
).
toString
();
String
endDate
=
localDate
.
plusDays
((
0
-
type
)).
toString
();
String
endDate
=
localDate
.
plusDays
((
0
-
type
)).
toString
();
List
<
Car
>
list
=
this
.
list
();
if
(
StringUtils
.
isNotEmpty
(
keyWord
))
{
list
=
list
.
stream
().
filter
(
car
->
car
.
getBizOrgName
().
contains
(
keyWord
)||
car
.
getOwnership
().
contains
(
keyWord
)).
collect
(
Collectors
.
toList
());
if
(
StringUtils
.
isNotEmpty
(
keyWord
))
{
list
=
list
.
stream
().
filter
(
car
->
car
.
getBizOrgName
().
contains
(
keyWord
)).
collect
(
Collectors
.
toList
());
}
if
(
list
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
CarExceptionDto
carExceptionDto
=
new
CarExceptionDto
();
Car
car
=
list
.
get
(
i
);
Double
totalTravel
=
iWlCarMileageService
.
getTotalTravelByIotCodeAndDateProd
(
startDate
,
endDate
,
list
.
get
(
i
).
getIotCode
());
if
(!(
totalTravel
!=
null
&&
totalTravel
>
0.0
))
{
Double
totalTravel
=
iWlCarMileageService
.
getTotalTravelByIotCodeAndDateProd
(
startDate
,
endDate
,
list
.
get
(
i
).
getIotCode
());
if
(!(
totalTravel
!=
null
&&
totalTravel
>
0.0
))
{
carExceptionDto
.
setCarId
(
String
.
valueOf
(
car
.
getId
()));
carExceptionDto
.
setCarNumber
(
car
.
getCarNum
());
carExceptionDto
.
setBelongStation
(
car
.
getBizOrgName
());
...
...
@@ -2025,13 +1738,13 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
Page
<
CarSpeedWarningRecord
>
carSpeedWarningRecordPage
=
new
Page
<>();
Date
date
=
new
Date
();
String
endTime
=
DateUtil
.
format
(
date
,
DatePattern
.
NORM_DATETIME_FORMAT
);
date
=
DateUtil
.
offsetDay
(
date
,-
15
);
date
=
DateUtil
.
offsetDay
(
date
,
-
15
);
String
startTime
=
DateUtil
.
format
(
date
,
DatePattern
.
NORM_DATETIME_FORMAT
);
List
<
CarSpeedWarningRecord
>
list
=
wlCarSpeedWaringRecordMapper
.
selectList
(
new
QueryWrapper
<
CarSpeedWarningRecord
>().
ge
(
"waring_date"
,
startTime
).
le
(
"waring_date"
,
endTime
));
if
(
StringUtils
.
isNotEmpty
(
keyWord
))
{
list
=
list
.
stream
().
filter
(
carSpeedWarningRecord
->
carSpeedWarningRecord
.
getBizOrgName
().
contains
(
keyWord
)||
carSpeedWarningRecord
.
getOwnership
().
contains
(
keyWord
)).
collect
(
Collectors
.
toList
());
List
<
CarSpeedWarningRecord
>
list
=
wlCarSpeedWaringRecordMapper
.
selectList
(
new
QueryWrapper
<
CarSpeedWarningRecord
>().
ge
(
"waring_date"
,
startTime
).
le
(
"waring_date"
,
endTime
));
if
(
StringUtils
.
isNotEmpty
(
keyWord
))
{
list
=
list
.
stream
().
filter
(
carSpeedWarningRecord
->
carSpeedWarningRecord
.
getBizOrgName
().
contains
(
keyWord
)
||
carSpeedWarningRecord
.
getOwnership
().
contains
(
keyWord
)).
collect
(
Collectors
.
toList
());
}
Collections
.
sort
(
list
,
(
e1
,
e2
)->
e2
.
getOverSpeed
().
compareTo
(
e1
.
getOverSpeed
()));
Collections
.
sort
(
list
,
(
e1
,
e2
)
->
e2
.
getOverSpeed
().
compareTo
(
e1
.
getOverSpeed
()));
carSpeedWarningRecordPage
.
setRecords
(
list
);
carSpeedWarningRecordPage
.
setTotal
(
list
.
size
());
carSpeedWarningRecordPage
.
setSize
(
1
);
...
...
@@ -2040,6 +1753,22 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
}
@Override
public
List
<
Map
<
String
,
String
>>
getBizOrgName
()
{
List
<
Map
<
String
,
String
>>
result
=
new
ArrayList
<>();
List
<
Car
>
cars
=
this
.
list
(
new
QueryWrapper
<
Car
>().
groupBy
(
"biz_org_name"
));
List
<
String
>
orgNames
=
cars
.
stream
().
map
(
car
->
car
.
getBizOrgName
()).
collect
(
Collectors
.
toList
());
Comparator
comparator
=
Collator
.
getInstance
(
Locale
.
CHINA
);
Collections
.
sort
(
orgNames
,
(
p1
,
p2
)
->
comparator
.
compare
(
p1
,
p2
));
for
(
int
i
=
0
;
i
<
orgNames
.
size
();
i
++)
{
Map
<
String
,
String
>
item
=
new
HashMap
<>();
item
.
put
(
"text"
,
orgNames
.
get
(
i
));
item
.
put
(
"value"
,
orgNames
.
get
(
i
));
result
.
add
(
item
);
}
return
result
;
}
@Override
public
List
<
Map
<
String
,
String
>>
updateCarStartStatus
()
{
return
carPropertyMapper
.
selectIndexByTime
(
CAR_START_INDEX_KEY
);
}
...
...
@@ -2051,4 +1780,298 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
carMapper
.
updateStatusByIds
(
carIds
,
status
);
}
}
class
LossParams
{
private
Long
carId
;
private
Long
lossStateId
;
private
List
<
ExtinguishantLossRequest
>
extinguishants
;
private
Car
car
;
private
Map
<
Long
,
StockDetail
>
details
;
private
List
<
ExtinguishantOnCar
>
extinguishantOnCar
;
/**
* 记录明细账id,用户更新搜索
*/
private
Set
<
Long
>
stockDetailIds
;
/**
* 损耗单
*/
private
WastageBill
bill
;
public
LossParams
(
Long
carId
,
List
<
ExtinguishantLossRequest
>
extinguishants
)
{
this
.
carId
=
carId
;
this
.
extinguishants
=
extinguishants
;
setStockDetailIds
(
new
HashSet
<>());
}
public
StockDetail
getDetailById
(
Long
id
)
{
return
details
.
get
(
id
);
}
public
Long
getCarId
()
{
return
carId
;
}
public
void
setCarId
(
Long
carId
)
{
this
.
carId
=
carId
;
}
public
List
<
ExtinguishantLossRequest
>
getExtinguishants
()
{
return
extinguishants
;
}
public
void
setExtinguishants
(
List
<
ExtinguishantLossRequest
>
extinguishants
)
{
this
.
extinguishants
=
extinguishants
;
}
public
Car
getCar
()
{
return
car
;
}
public
void
setCar
(
Car
car
)
{
this
.
car
=
car
;
}
public
Map
<
Long
,
StockDetail
>
getDetails
()
{
return
details
;
}
public
void
setDetails
(
Map
<
Long
,
StockDetail
>
details
)
{
this
.
details
=
details
;
}
public
List
<
ExtinguishantOnCar
>
getExtinguishantOnCar
()
{
return
extinguishantOnCar
;
}
public
void
setExtinguishantOnCar
(
List
<
ExtinguishantOnCar
>
extinguishantOnCar
)
{
this
.
extinguishantOnCar
=
extinguishantOnCar
;
}
public
WastageBill
getBill
()
{
return
bill
;
}
public
void
setBill
(
WastageBill
bill
)
{
this
.
bill
=
bill
;
}
private
Double
equalLossCountHandler
(
ExtinguishantOnCar
ex
,
Double
lossCount
)
throws
Exception
{
try
{
StockDetail
stockDetail
=
getDetailById
(
ex
.
getStockDetailId
());
stockDetail
.
setStatus
(
EquipStatusEnum
.
LOSS
.
getCode
().
toString
());
stockDetail
.
setId
(
null
);
stockDetailMapper
.
insert
(
stockDetail
);
addStockDetailId
(
stockDetail
.
getId
());
// 查询库存
Stock
stock
=
stockMapper
.
selectById
(
stockDetail
.
getStockId
());
stock
.
setAmount
(
stock
.
getAmount
()
-
lossCount
);
stockMapper
.
updateById
(
stock
);
// 删除
extinguishantOnCarMapper
.
deleteById
(
ex
.
getId
());
// 损耗清单详情
WastageBillDetail
detail
=
new
WastageBillDetail
();
detail
.
setAmount
(
BigDecimal
.
valueOf
(
lossCount
));
detail
.
setStockDetailId
(
stockDetail
.
getId
());
detail
.
setWastageBillId
(
bill
.
getId
());
wastageBillDetailMapper
.
insert
(
detail
);
journalMapper
.
insert
(
createJournal
(
ex
,
stockDetail
.
getId
(),
null
));
return
0
d
;
}
catch
(
Exception
e
)
{
throw
e
;
}
}
private
Double
greaterThanLossCountHandler
(
ExtinguishantOnCar
ex
,
Double
lossCount
)
throws
Exception
{
try
{
StockDetail
stockDetail
=
getDetailById
(
ex
.
getStockDetailId
());
if
(
stockDetail
==
null
)
{
return
0
d
;
}
stockDetail
.
setAmount
(
stockDetail
.
getAmount
()
-
lossCount
);
stockDetailMapper
.
updateById
(
stockDetail
);
addStockDetailId
(
stockDetail
.
getId
());
StockDetail
stockDetailClone
=
new
StockDetail
();
BeanUtils
.
copyProperties
(
stockDetail
,
stockDetailClone
);
stockDetailClone
.
setId
(
null
);
stockDetailClone
.
setAmount
(
lossCount
);
stockDetailClone
.
setStatus
(
EquipStatusEnum
.
LOSS
.
getCode
().
toString
());
stockDetailMapper
.
insert
(
stockDetailClone
);
addStockDetailId
(
stockDetailClone
.
getId
());
Stock
stock
=
stockMapper
.
selectById
(
stockDetail
.
getStockId
());
stock
.
setAmount
(
stock
.
getAmount
()
-
lossCount
);
stockMapper
.
updateById
(
stock
);
ex
.
setAmount
(
ex
.
getAmount
()
-
lossCount
);
extinguishantOnCarMapper
.
updateById
(
ex
);
// 损耗清单详情
WastageBillDetail
detail
=
new
WastageBillDetail
();
detail
.
setAmount
(
BigDecimal
.
valueOf
(
lossCount
));
detail
.
setStockDetailId
(
stockDetailClone
.
getId
());
detail
.
setWastageBillId
(
bill
.
getId
());
wastageBillDetailMapper
.
insert
(
detail
);
journalMapper
.
insert
(
createJournal
(
ex
,
stockDetailClone
.
getId
(),
lossCount
));
return
0
d
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
e
;
}
}
public
Journal
createJournal
(
ExtinguishantOnCar
e
,
Long
stockDetailId
,
Double
amount
)
{
Journal
journal
=
new
Journal
();
Double
lossAmount
=
(
null
!=
amount
)
?
amount
:
e
.
getAmount
();
Long
lossStockDetailId
=
(
null
!=
stockDetailId
)
?
stockDetailId
:
e
.
getStockDetailId
();
journal
.
setAmount
(
lossAmount
);
journal
.
setCarId
(
getCarId
());
journal
.
setEquipmentDetailId
(
e
.
getEquipmentDetailId
());
journal
.
setUserId
(
Long
.
valueOf
(
getUser
().
getUserId
()));
// 查询EquipmentDetail
EquipmentDetail
equipmentDetail
=
equipmentDetailMapper
.
selectById
(
getDetailById
(
e
.
getStockDetailId
()).
getEquipmentDetailId
());
Equipment
equipment
=
iEquipmentService
.
getById
(
equipmentDetail
.
getEquipmentId
());
Unit
unit
=
unitMapper
.
selectById
(
equipment
.
getUnitId
());
journal
.
setRemark
(
String
.
format
(
"【%s】在车牌号为【%s】的车辆上,损耗了【%.2f】%s【%s】"
,
getUser
().
getRealName
(),
getCar
().
getCarNum
(),
lossAmount
,
unit
.
getName
(),
equipmentDetail
.
getName
()));
journal
.
setOrgCode
(
getCar
().
getOrgCode
());
journal
.
setStockDetailId
(
lossStockDetailId
);
journal
.
setState
(
getLossStateId
().
toString
());
return
journal
;
}
public
Set
<
Long
>
getStockDetailIds
()
{
return
stockDetailIds
;
}
public
void
setStockDetailIds
(
Set
<
Long
>
stockDetailIds
)
{
this
.
stockDetailIds
=
stockDetailIds
;
}
public
void
addStockDetailId
(
Long
id
)
{
stockDetailIds
.
add
(
id
);
}
public
Long
getLossStateId
()
{
return
lossStateId
;
}
public
void
setLossStateId
(
Long
lossStateId
)
{
this
.
lossStateId
=
lossStateId
;
}
}
class
LoadingParams
{
private
Long
carId
;
private
String
loadingId
;
private
List
<
ExtinguishantRequeset
>
extinguishants
;
private
Car
car
;
private
Map
<
Long
,
StockDetail
>
details
;
private
Set
<
Long
>
stockDetailIds
;
public
LoadingParams
(
Long
carId
,
List
<
ExtinguishantRequeset
>
extinguishants
)
{
this
.
carId
=
carId
;
this
.
extinguishants
=
extinguishants
;
setStockDetailIds
(
new
HashSet
<>());
}
public
ExtinguishantOnCar
create
(
ExtinguishantRequeset
r
,
StockDetail
detail
)
{
ExtinguishantOnCar
extinguishantOnCar
=
new
ExtinguishantOnCar
();
extinguishantOnCar
.
setCarId
(
carId
);
extinguishantOnCar
.
setAmount
(
r
.
getAmount
());
extinguishantOnCar
.
setStockDetailId
(
detail
.
getId
());
extinguishantOnCar
.
setEquipmentDetailId
(
getDetailById
(
r
.
getStockDetailId
()).
getEquipmentDetailId
());
return
extinguishantOnCar
;
}
public
Journal
createJournal
(
ExtinguishantRequeset
r
,
Long
stockDetailId
)
{
// 查询EquipmentDetail
EquipmentDetail
equipmentDetail
=
equipmentDetailMapper
.
selectById
(
getDetailById
(
r
.
getStockDetailId
()).
getEquipmentDetailId
());
Equipment
equipment
=
iEquipmentService
.
getById
(
equipmentDetail
.
getEquipmentId
());
Unit
unit
=
unitMapper
.
selectById
(
equipment
.
getUnitId
());
Journal
journal
=
new
Journal
();
journal
.
setAmount
(
r
.
getAmount
());
journal
.
setCarId
(
getCarId
());
journal
.
setEquipmentDetailId
(
getDetailById
(
r
.
getStockDetailId
()).
getEquipmentDetailId
());
journal
.
setUserId
(
Long
.
valueOf
(
getUser
().
getUserId
()));
journal
.
setWarehouseStructureId
(
getDetailById
(
r
.
getStockDetailId
()).
getWarehouseStructureId
());
journal
.
setRemark
(
String
.
format
(
"【%s】向车牌号为【%s】的车辆上,装载了【%.2f】%s【%s】"
,
getUser
().
getRealName
(),
getCar
().
getCarNum
(),
r
.
getAmount
(),
unit
.
getName
(),
equipmentDetail
.
getName
()));
journal
.
setOrgCode
(
getCar
().
getOrgCode
());
journal
.
setStockDetailId
(
stockDetailId
);
journal
.
setState
(
getLoadingId
());
return
journal
;
}
public
StockDetail
getDetailById
(
Long
id
)
{
return
details
.
get
(
id
);
}
public
Long
getCarId
()
{
return
carId
;
}
public
void
setCarId
(
Long
carId
)
{
this
.
carId
=
carId
;
}
public
List
<
ExtinguishantRequeset
>
getExtinguishants
()
{
return
extinguishants
;
}
public
void
setExtinguishants
(
List
<
ExtinguishantRequeset
>
extinguishants
)
{
this
.
extinguishants
=
extinguishants
;
}
public
Car
getCar
()
{
return
car
;
}
public
void
setCar
(
Car
car
)
{
this
.
car
=
car
;
}
public
Map
<
Long
,
StockDetail
>
getDetails
()
{
return
details
;
}
public
void
setDetails
(
Map
<
Long
,
StockDetail
>
details
)
{
this
.
details
=
details
;
}
public
Set
<
Long
>
getStockDetailIds
()
{
return
stockDetailIds
;
}
public
void
setStockDetailIds
(
Set
<
Long
>
stockDetailIds
)
{
this
.
stockDetailIds
=
stockDetailIds
;
}
public
void
addStockDetailId
(
Long
id
)
{
stockDetailIds
.
add
(
id
);
}
public
String
getLoadingId
()
{
return
loadingId
;
}
public
void
setLoadingId
(
String
loadingId
)
{
this
.
loadingId
=
loadingId
;
}
}
}
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