Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jyzb_platformV2
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
赵剑炜
jyzb_platformV2
Commits
76ac6478
Commit
76ac6478
authored
Jan 22, 2024
by
李小惠
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of
http://gitlab.sothing.top/843502640/jyzb_platformV2
into develop-lxh
parents
123d14e2
d8edd4b1
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
215 行增加
和
21 行删除
+215
-21
EquipmentsReq.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/EquipmentsReq.java
+29
-0
PoliceListReq.java
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/PoliceListReq.java
+2
-0
PolicemanServiceImpl.java
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/PolicemanServiceImpl.java
+181
-18
application-local.yml
jyzb-boot/src/main/resources/application-local.yml
+1
-1
application.yml
jyzb-boot/src/main/resources/application.yml
+2
-2
没有找到文件。
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/EquipmentsReq.java
0 → 100644
View file @
76ac6478
package
com
.
junmp
.
jyzb
.
api
.
bean
.
req
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Data
public
class
EquipmentsReq
{
private
String
typeId
;
private
String
typeName
;
private
String
sizeId
;
private
String
sizeName
;
private
Integer
num
;
private
Integer
outNum
;
private
Integer
inNum
;
private
BigDecimal
price
;
private
BigDecimal
outPrice
;
private
BigDecimal
inPrice
;
}
\ No newline at end of file
jyzb-api/src/main/java/com/junmp/jyzb/api/bean/req/PoliceListReq.java
View file @
76ac6478
...
...
@@ -23,4 +23,6 @@ public class PoliceListReq {
// * 角色id列表
// */
private
List
<
Long
>
rolesList
;
private
List
<
EquipmentsReq
>
equipments
;
}
jyzb-biz/src/main/java/com/junmp/jyzb/service/impl/PolicemanServiceImpl.java
View file @
76ac6478
...
...
@@ -649,18 +649,24 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
boolean
UploadPolicemanList
(
CabinetUploadReq
req
)
{
List
<
CabinetDataList
>
dataList
=
req
.
getDataList
();
Cabinet
cabinetOrg
=
cabinetService
.
getOne
(
new
LambdaQueryWrapper
<
Cabinet
>().
eq
(
Cabinet:
:
getCabinetNum
,
req
.
getSerialNum
()));
for
(
CabinetDataList
orgList
:
dataList
)
{
// 获取上报的警员列表
List
<
PoliceListReq
>
policeReqList
=
orgList
.
getPoliceList
();
Set
<
String
>
reqPoliceIds
=
policeReqList
.
stream
().
map
(
PoliceListReq:
:
getPoliceID
).
collect
(
Collectors
.
toSet
());
// 查询数据库中的警员列表
List
<
Policeman
>
policeList
=
this
.
list
(
new
LambdaQueryWrapper
<
Policeman
>()
List
<
Policeman
>
policeList
Current
=
this
.
list
(
new
LambdaQueryWrapper
<
Policeman
>()
.
eq
(
Policeman:
:
getOrgId
,
orgList
.
getOrgId
()));
// 从数据库中查询指定警员ID的数据
List
<
Policeman
>
policeList
=
this
.
list
(
new
LambdaQueryWrapper
<
Policeman
>().
in
(
Policeman:
:
getId
,
reqPoliceIds
));
// 获取上报的警员列表
List
<
PoliceListReq
>
policeReqList
=
orgList
.
getPoliceList
();
PubOrg
orgInfo
=
pubOrgService
.
getOne
(
new
LambdaQueryWrapper
<
PubOrg
>().
eq
(
PubOrg:
:
getOrgId
,
orgList
.
getOrgId
()));
// 比较并处理新增、删除和修改的数据
List
<
Policeman
>
toAdd
=
new
ArrayList
<>();
List
<
Policeman
>
toDelete
=
new
ArrayList
<>();
List
<
CabinetBoxPolice
>
toDeleteCabAndPo
=
new
ArrayList
<>();
List
<
Policeman
>
toUpdate
=
new
ArrayList
<>();
// 处理新增和修改
...
...
@@ -669,20 +675,23 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
if
(
dbPolice
==
null
)
{
// 新增数据
Policeman
newPolice
=
convertToPoliceman
(
reqPolice
,
orgList
.
getOrgId
());
Policeman
newPolice
=
convertToPoliceman
(
reqPolice
,
orgList
.
getOrgId
());
toAdd
.
add
(
newPolice
);
}
else
{
// 修改数据
Policeman
updatedPolice
=
updatePoliceman
(
dbPolice
,
reqPolice
);
Policeman
updatedPolice
=
updatePoliceman
(
dbPolice
,
reqPolice
,
orgInfo
,
cabinetOrg
);
toUpdate
.
add
(
updatedPolice
);
}
}
// 处理删除
for
(
Policeman
dbPolice
:
policeList
)
{
for
(
Policeman
dbPolice
:
policeList
Current
)
{
PoliceListReq
matchingReqPolice
=
findPoliceReqById
(
policeReqList
,
dbPolice
.
getId
());
if
(
matchingReqPolice
==
null
)
{
dbPolice
.
setState
(
0
);
// 将箱门全部清除
List
<
CabinetBoxPolice
>
cbplist
=
cabinetBoxPoliceService
.
list
(
new
LambdaQueryWrapper
<
CabinetBoxPolice
>().
eq
(
CabinetBoxPolice:
:
getPoliceId
,
dbPolice
.
getId
()));
toDeleteCabAndPo
.
addAll
(
cbplist
);
// 数据库中存在但上报数据中不存在,需要删除
toDelete
.
add
(
dbPolice
);
}
...
...
@@ -696,20 +705,21 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
this
.
updateBatchById
(
toUpdate
);
}
if
(!
toDelete
.
isEmpty
())
{
this
.
updateBatchById
(
toUpdate
);
this
.
updateBatchById
(
toDelete
);
cabinetBoxPoliceService
.
removeBatchByIds
(
toDeleteCabAndPo
);
}
}
//人员信息修改之后推送至本地主机和单警柜
List
<
Cabinet
>
cabinets
=
cabinetService
.
list
(
new
LambdaQueryWrapper
<
Cabinet
>().
eq
(
Cabinet:
:
getOrgIdInt
,
req
.
getCabinetOrgId
()));
//拿到组织机构下所有的警柜用于消息推送
if
(
cabinets
.
size
()>
0
)
{
cabinets
.
forEach
(
t
->
MQ
.
SendMsg
(
"cabinetMsg"
,
t
.
getCabinetNum
(),
"policeChange"
));
// 人员信息修改之后推送至本地主机和单警柜
List
<
Cabinet
>
cabinets
=
cabinetService
.
list
(
new
LambdaQueryWrapper
<
Cabinet
>().
eq
(
Cabinet:
:
getOrgIdInt
,
req
.
getCabinetOrgId
()));
if
(!
cabinets
.
isEmpty
())
{
cabinets
.
forEach
(
t
->
MQ
.
SendMsg
(
"cabinetMsg"
,
t
.
getCabinetNum
(),
"policeChange"
));
}
req
.
getDataList
().
forEach
(
t
->
MQ
.
SendMsg
(
"warehouseMsg"
,
t
.
getOrgId
(),
"policeChange"
));
//
推送至仓库主机
req
.
getDataList
().
forEach
(
t
->
MQ
.
SendMsg
(
"warehouseMsg"
,
t
.
getOrgId
(),
"policeChange"
));
//
推送至仓库主机
return
true
;
}
// 辅助方法:根据警员ID在列表中查找警员
private
Policeman
findPoliceById
(
List
<
Policeman
>
policeList
,
String
policeId
)
{
return
policeList
.
stream
().
filter
(
p
->
Objects
.
equals
(
p
.
getId
(),
policeId
)).
findFirst
().
orElse
(
null
);
...
...
@@ -754,14 +764,167 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
}
// 辅助方法:更新 Policeman 对象的属性
private
Policeman
updatePoliceman
(
Policeman
dbPolice
,
PoliceListReq
reqPolice
)
{
//判断警员是否存在
//判断传入的修改的警员编号与本身编号一致,如果一致则无所谓,如果不一致则需要判断修改的警员编号是否已经存在
BeanPlusUtil
.
copyProperties
(
reqPolice
,
dbPolice
);
private
Policeman
updatePoliceman
(
Policeman
dbPolice
,
PoliceListReq
reqPolice
,
PubOrg
org
,
Cabinet
cabinet
)
{
CabinetBox
cb
=
cabinetBoxService
.
getById
(
reqPolice
.
getCabinetBoxId
());
if
(
cb
.
getBoxName
()
==
null
)
{
cb
.
setBoxName
(
""
);
}
// 判断警员是否存在
// 判断传入的修改的警员编号与本身编号一致,如果一致则无所谓,如果不一致则需要判断修改的警员编号是否已经存在
dbPolice
.
setUpdateTime
(
DateTimeUtil
.
getCurrentDateTime
());
List
<
PoliceEquipment
>
policeEqsList
=
policeEquipmentService
.
list
(
new
LambdaQueryWrapper
<
PoliceEquipment
>()
.
eq
(
PoliceEquipment:
:
getPoliceId
,
dbPolice
.
getId
()));
if
(!
dbPolice
.
getOrgId
().
equals
(
org
.
getOrgId
()))
{
//现有警员组织机构和原有的不一样,说明是调岗的
policeEquipmentService
.
removeBatchByIds
(
policeEqsList
);
List
<
PoliceEquipment
>
addEqsList
=
new
ArrayList
<>();
List
<
EquipmentsReq
>
reqEquipment
=
reqPolice
.
getEquipments
();
List
<
InventorySummary
>
toUpdateInventoryList
=
new
ArrayList
<>();
List
<
InventorySummary
>
toAddInventoryList
=
new
ArrayList
<>();
List
<
InventorySummary
>
toDeleteInventoryList
=
new
ArrayList
<>();
for
(
EquipmentsReq
reqEq
:
reqEquipment
)
{
PoliceEquipment
pe
=
new
PoliceEquipment
();
pe
.
setId
(
UUID
.
randomUUID
().
toString
());
pe
.
setPoliceId
(
dbPolice
.
getId
());
pe
.
setPoliceName
(
dbPolice
.
getName
());
pe
.
setNum
(
Integer
.
valueOf
(
reqEq
.
getNum
()));
pe
.
setPrice
(
reqEq
.
getPrice
());
pe
.
setCreateTime
(
DateTimeUtil
.
getCurrentDateTime
());
pe
.
setUpdateTime
(
DateTimeUtil
.
getCurrentDateTime
());
pe
.
setOrgId
(
org
.
getOrgId
());
pe
.
setOutNum
(
Integer
.
valueOf
(
reqEq
.
getOutNum
()));
pe
.
setInNum
(
Integer
.
valueOf
(
reqEq
.
getInNum
()));
pe
.
setLocationId
(
cb
.
getId
());
pe
.
setLocationName
(
cabinet
.
getName
()
+
"-"
+
cb
.
getBoxName
());
BeanPlusUtil
.
copyProperties
(
reqEq
,
pe
);
addEqsList
.
add
(
pe
);
List
<
InventorySummary
>
inventoryList
=
inventorySummaryService
.
list
(
new
LambdaQueryWrapper
<
InventorySummary
>().
eq
(
InventorySummary:
:
getOrgId
,
dbPolice
.
getOrgId
())
);
// 判断是否存在相同编号的设备
Optional
<
InventorySummary
>
existingInventory
=
inventoryList
.
stream
()
.
filter
(
inventory
->
inventory
.
getSizeId
().
equals
(
reqEq
.
getSizeId
())
&&
inventory
.
getTypeId
().
equals
(
reqEq
.
getTypeId
())&&
inventory
.
getPrice
().
equals
(
reqEq
.
getPrice
()
))
.
findFirst
();
//原有组织机构数据
List
<
InventorySummary
>
NowInventoryList
=
inventorySummaryService
.
list
(
new
LambdaQueryWrapper
<
InventorySummary
>().
eq
(
InventorySummary:
:
getOrgId
,
org
.
getOrgId
())
);
// 判断是否存在相同编号的设备
Optional
<
InventorySummary
>
NowExistingInventory
=
NowInventoryList
.
stream
()
.
filter
(
inventory
->
inventory
.
getSizeId
().
equals
(
reqEq
.
getSizeId
())
&&
inventory
.
getTypeId
().
equals
(
reqEq
.
getTypeId
())&&
inventory
.
getPrice
().
equals
(
reqEq
.
getPrice
()))
.
findFirst
();
//现在组织机构数据
if
(
dbPolice
.
getOrgId
()
==
null
)
{
//如果为空则说明调岗中,则只需要为当前组织机构增加相应数据即可
if
(
existingInventory
.
isPresent
())
{
// 如果存在,更新数据库中的数据
InventorySummary
existingInventorySummary
=
existingInventory
.
get
();
existingInventorySummary
.
setNumber
(
Integer
.
valueOf
(
reqEq
.
getNum
()
+
existingInventorySummary
.
getNumber
()));
existingInventorySummary
.
setPrice
(
existingInventorySummary
.
getPrice
().
add
(
reqEq
.
getPrice
()));
existingInventorySummary
.
setOutboundNumber
(
existingInventorySummary
.
getOutboundNumber
()
-
Integer
.
valueOf
(
reqEq
.
getOutNum
()));
existingInventorySummary
.
setStockNumber
(
existingInventorySummary
.
getStockNumber
()
+
Integer
.
valueOf
(
reqEq
.
getInNum
()));
toUpdateInventoryList
.
add
(
existingInventorySummary
);
}
else
{
// 如果不存在,新增数据到数据库
InventorySummary
newInventory
=
new
InventorySummary
();
BeanPlusUtil
.
copyProperties
(
reqEq
,
newInventory
);
newInventory
.
setPrice
(
reqEq
.
getPrice
());
newInventory
.
setNumber
(
Integer
.
valueOf
(
reqEq
.
getNum
()));
newInventory
.
setOutboundNumber
(
Integer
.
valueOf
(
reqEq
.
getOutNum
()));
newInventory
.
setLocationType
(
"1"
);
newInventory
.
setStockNumber
(
Integer
.
valueOf
(
reqEq
.
getInNum
()));
newInventory
.
setLocationId
(
cabinet
.
getCabinetNum
());
newInventory
.
setOrgId
(
org
.
getOrgId
());
newInventory
.
setOrgCode
(
org
.
getOrgCode
());
newInventory
.
setOrgName
(
org
.
getOrgName
());
newInventory
.
setCreateTime
(
DateTimeUtil
.
getCurrentDateTime
());
newInventory
.
setUpdateTime
(
DateTimeUtil
.
getCurrentDateTime
());
toAddInventoryList
.
add
(
newInventory
);
}
}
else
{
if
(
existingInventory
.
isPresent
())
{
// 如果存在,减去对应数量
InventorySummary
existingInventorySummary
=
existingInventory
.
get
();
existingInventorySummary
.
setNumber
(
Math
.
max
(
0
,
existingInventorySummary
.
getNumber
()
-
Integer
.
parseInt
(
String
.
valueOf
(
reqEq
.
getNum
()))));
existingInventorySummary
.
setPrice
(
existingInventorySummary
.
getPrice
().
subtract
(
reqEq
.
getPrice
()).
max
(
BigDecimal
.
ZERO
)
);
existingInventorySummary
.
setOutboundNumber
(
Math
.
max
(
0
,
existingInventorySummary
.
getOutboundNumber
()
-
Integer
.
parseInt
(
String
.
valueOf
(
reqEq
.
getOutNum
()))));
existingInventorySummary
.
setStockNumber
(
Math
.
max
(
0
,
existingInventorySummary
.
getStockNumber
()
-
Integer
.
parseInt
(
String
.
valueOf
(
reqEq
.
getInNum
()))));
// existingInventorySummary.setOutboundNumberPrice(
// existingInventorySummary.getOutboundNumberPrice().subtract(reqEq.getOutPrice()).max(BigDecimal.ZERO)
// );
// existingInventorySummary.setStockNumberPrice(
// existingInventorySummary.getStockNumberPrice().subtract(reqEq.getInPrice()).max(BigDecimal.ZERO)
// );
// 判断 Number 是否为 0 或者小于 0
if
(
existingInventorySummary
.
getNumber
()
<=
0
)
{
toDeleteInventoryList
.
add
(
existingInventorySummary
);
}
else
{
toUpdateInventoryList
.
add
(
existingInventorySummary
);
}
}
if
(
NowExistingInventory
.
isPresent
())
{
// 如果存在,更新数据库中的数据
InventorySummary
existingInventorySummary
=
existingInventory
.
get
();
existingInventorySummary
.
setNumber
(
Integer
.
valueOf
(
reqEq
.
getNum
()
+
existingInventorySummary
.
getNumber
()));
existingInventorySummary
.
setPrice
(
existingInventorySummary
.
getPrice
().
add
(
reqEq
.
getPrice
()));
existingInventorySummary
.
setOutboundNumber
(
existingInventorySummary
.
getOutboundNumber
()
-
Integer
.
valueOf
(
reqEq
.
getOutNum
()));
existingInventorySummary
.
setStockNumber
(
existingInventorySummary
.
getStockNumber
()
+
Integer
.
valueOf
(
reqEq
.
getInNum
()));
toUpdateInventoryList
.
add
(
existingInventorySummary
);
}
else
{
// 如果不存在,新增数据到数据库
InventorySummary
newInventory
=
new
InventorySummary
();
BeanPlusUtil
.
copyProperties
(
reqEq
,
newInventory
);
newInventory
.
setPrice
(
reqEq
.
getPrice
());
newInventory
.
setNumber
(
Integer
.
valueOf
(
reqEq
.
getNum
()));
newInventory
.
setOutboundNumber
(
Integer
.
valueOf
(
reqEq
.
getOutNum
()));
newInventory
.
setLocationType
(
"1"
);
newInventory
.
setStockNumber
(
Integer
.
valueOf
(
reqEq
.
getInNum
()));
newInventory
.
setLocationId
(
cabinet
.
getCabinetNum
());
newInventory
.
setOrgId
(
org
.
getOrgId
());
newInventory
.
setOrgCode
(
org
.
getOrgCode
());
newInventory
.
setOrgName
(
org
.
getOrgName
());
newInventory
.
setCreateTime
(
DateTimeUtil
.
getCurrentDateTime
());
newInventory
.
setUpdateTime
(
DateTimeUtil
.
getCurrentDateTime
());
toAddInventoryList
.
add
(
newInventory
);
}
}
}
// 批量更新
if
(!
toUpdateInventoryList
.
isEmpty
())
{
inventorySummaryService
.
updateBatchById
(
toUpdateInventoryList
);
}
// 批量插入
if
(!
toAddInventoryList
.
isEmpty
())
{
inventorySummaryService
.
saveBatch
(
toAddInventoryList
);
}
// 执行删除操作
if
(!
toDeleteInventoryList
.
isEmpty
())
{
inventorySummaryService
.
removeByIds
(
toDeleteInventoryList
.
stream
().
map
(
InventorySummary:
:
getId
).
collect
(
Collectors
.
toList
())
);
}
policeEquipmentService
.
saveBatch
(
addEqsList
);
}
dbPolice
.
setOrgId
(
Long
.
valueOf
(
org
.
getOrgId
()));
dbPolice
.
setState
(
1
);
BeanPlusUtil
.
copyProperties
(
reqPolice
,
dbPolice
);
return
dbPolice
;
}
/**
* 修改用户状态
*
...
...
jyzb-boot/src/main/resources/application-local.yml
View file @
76ac6478
...
...
@@ -3,7 +3,7 @@ scanner:
easy-es
:
enable
:
true
address
:
192.168.3.1
88
:9200
address
:
192.168.3.1
21
:9200
username
:
password
:
...
...
jyzb-boot/src/main/resources/application.yml
View file @
76ac6478
...
...
@@ -4,7 +4,7 @@
easy-es
:
enable
:
true
address
:
192.168.3.1
88
:9200
address
:
192.168.3.1
21
:9200
username
:
password
:
server
:
...
...
@@ -14,7 +14,7 @@ server:
spring
:
elasticsearch
:
rest
:
uris
:
http://192.168.3.1
88
:9200
uris
:
http://192.168.3.1
21
:9200
main
:
#bea同名类进行注册时,准许覆盖注册
allow-bean-definition-overriding
:
true
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论