Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit c16db042
由
zshaohui
编写于
2023-09-26 13:43:42 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.工单统计更改逻辑
2.优化今日出入库数量
1 个父辈
cbec08b7
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
97 行增加
和
14 行删除
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/hikvision/HikvisionApiController.java
src/main/java/com/neotel/smfcore/hikvision/HikvisionKanBanController.java
src/main/java/com/neotel/smfcore/hikvision/service/manager/impl/HikTaskCountManagerImpl.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
c16db04
...
@@ -111,7 +111,6 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -111,7 +111,6 @@ public class LiteOrderCache implements ITaskListener {
liteOrderMap
.
remove
(
order
.
getOrderNo
());
liteOrderMap
.
remove
(
order
.
getOrderNo
());
}
}
liteOrderMap
.
put
(
order
.
getOrderNo
(),
order
);
liteOrderMap
.
put
(
order
.
getOrderNo
(),
order
);
updateOrderProgress
(
order
,
false
);
}
}
public
void
removeOrder
(
LiteOrder
order
)
{
public
void
removeOrder
(
LiteOrder
order
)
{
...
@@ -122,7 +121,6 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -122,7 +121,6 @@ public class LiteOrderCache implements ITaskListener {
public
synchronized
void
updateOrder
(
LiteOrder
order
)
{
public
synchronized
void
updateOrder
(
LiteOrder
order
)
{
order
=
liteOrderManager
.
save
(
order
);
order
=
liteOrderManager
.
save
(
order
);
liteOrderMap
.
put
(
order
.
getOrderNo
(),
order
);
liteOrderMap
.
put
(
order
.
getOrderNo
(),
order
);
updateOrderProgress
(
order
,
false
);
}
}
public
LiteOrder
findOrderById
(
String
orderId
)
{
public
LiteOrder
findOrderById
(
String
orderId
)
{
...
...
src/main/java/com/neotel/smfcore/hikvision/HikvisionApiController.java
查看文件 @
c16db04
...
@@ -93,7 +93,6 @@ public class HikvisionApiController {
...
@@ -93,7 +93,6 @@ public class HikvisionApiController {
liteOrderManager
.
createWithItems
(
order
);
liteOrderManager
.
createWithItems
(
order
);
liteOrderCache
.
addOrderToMap
(
order
);
liteOrderCache
.
addOrderToMap
(
order
);
log
.
info
(
"新建工单["
+
order
.
getOrderNo
()
+
"]工单详情"
+
order
.
getOrderItems
().
size
()+
"条"
);
log
.
info
(
"新建工单["
+
order
.
getOrderNo
()
+
"]工单详情"
+
order
.
getOrderItems
().
size
()+
"条"
);
liteOrderCache
.
updateOrderProgress
(
order
,
true
);
}
else
{
}
else
{
if
(
order
.
getStatus
()
>
LITEORDER_STATUS
.
NEW
)
{
if
(
order
.
getStatus
()
>
LITEORDER_STATUS
.
NEW
)
{
log
.
info
(
"工单["
+
orderNo
+
"]已存在,且状态为["
+
order
.
getStatus
()
+
"],不能修改工单信息:"
+
outInfo
.
toString
());
log
.
info
(
"工单["
+
orderNo
+
"]已存在,且状态为["
+
order
.
getStatus
()
+
"],不能修改工单信息:"
+
outInfo
.
toString
());
...
...
src/main/java/com/neotel/smfcore/hikvision/HikvisionKanBanController.java
查看文件 @
c16db04
package
com
.
neotel
.
smfcore
.
hikvision
;
package
com
.
neotel
.
smfcore
.
hikvision
;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.utils.
Constant
s
;
import
com.neotel.smfcore.common.utils.
StringUtil
s
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.order.bean.OrderProgress
;
import
com.neotel.smfcore.core.order.bean.OrderProgress
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderManager
;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.hikvision.bean.InOutDetailInfo
;
import
com.neotel.smfcore.hikvision.bean.InOutDetailInfo
;
import
com.neotel.smfcore.hikvision.bean.StorageInventoryInfo
;
import
com.neotel.smfcore.hikvision.bean.StorageInventoryInfo
;
...
@@ -14,9 +15,14 @@ import com.neotel.smfcore.hikvision.service.manager.IHikTaskCountManager;
...
@@ -14,9 +15,14 @@ import com.neotel.smfcore.hikvision.service.manager.IHikTaskCountManager;
import
com.neotel.smfcore.hikvision.service.po.TaskCount
;
import
com.neotel.smfcore.hikvision.service.po.TaskCount
;
import
com.neotel.smfcore.hikvision.util.ShiftUtil
;
import
com.neotel.smfcore.hikvision.util.ShiftUtil
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
io.swagger.annotations.*
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
...
@@ -25,6 +31,8 @@ import org.springframework.web.bind.annotation.RestController;
...
@@ -25,6 +31,8 @@ import org.springframework.web.bind.annotation.RestController;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
@Api
(
tags
=
"海康看板"
)
@Api
(
tags
=
"海康看板"
)
@Slf4j
@Slf4j
...
@@ -38,6 +46,9 @@ public class HikvisionKanBanController {
...
@@ -38,6 +46,9 @@ public class HikvisionKanBanController {
@Autowired
@Autowired
private
IHikTaskCountManager
hikTaskCountManager
;
private
IHikTaskCountManager
hikTaskCountManager
;
@Autowired
private
ILiteOrderManager
liteOrderManager
;
@ApiOperation
(
"获取库容信息"
)
@ApiOperation
(
"获取库容信息"
)
@GetMapping
(
"/getStorageInventoryInfo"
)
@GetMapping
(
"/getStorageInventoryInfo"
)
@AnonymousAccess
@AnonymousAccess
...
@@ -172,11 +183,76 @@ public class HikvisionKanBanController {
...
@@ -172,11 +183,76 @@ public class HikvisionKanBanController {
@GetMapping
(
"/getOrderProgress"
)
@GetMapping
(
"/getOrderProgress"
)
@AnonymousAccess
@AnonymousAccess
public
ResultBean
getOrderProgress
()
{
public
ResultBean
getOrderProgress
()
{
OrderProgress
progress
=
dataCache
.
getCache
(
Constants
.
CACHE_OrderProgress
);
return
ResultBean
.
newOkResult
(
getProgress
());
if
(
progress
==
null
)
{
}
progress
=
new
OrderProgress
();
private
Long
lastSaveTime
=
null
;
private
OrderProgress
cacheProgress
=
null
;
private
OrderProgress
getProgress
()
{
if
(
lastSaveTime
!=
null
&&
System
.
currentTimeMillis
()
-
lastSaveTime
<=
1000
*
60
*
10
)
{
if
(
cacheProgress
!=
null
)
{
return
cacheProgress
;
}
}
OrderProgress
progress
=
new
OrderProgress
();
Date
endDate
=
null
;
//判断当前时间是否在今天A班开始时间
Date
currentDate
=
new
Date
();
Date
startDate
=
ShiftUtil
.
getShiftAStartDate
();
if
(
currentDate
.
getTime
()
<
startDate
.
getTime
())
{
endDate
=
ShiftUtil
.
getShiftAStartDate
();
startDate
=
DateUtil
.
offsetDay
(
startDate
,
-
1
);
}
else
{
endDate
=
DateUtil
.
offsetDay
(
startDate
,
1
);
}
}
return
ResultBean
.
newOkResult
(
progress
);
Criteria
c
=
Criteria
.
where
(
"startDate"
).
gte
(
startDate
).
lt
(
endDate
);
Query
q
=
new
Query
(
c
);
List
<
LiteOrder
>
liteOrderList
=
liteOrderManager
.
findByQuery
(
q
);
if
(
liteOrderList
!=
null
&&
!
liteOrderList
.
isEmpty
())
{
int
shiftAOrderCount
=
0
;
int
shiftAOrderFinishedCount
=
0
;
int
shiftBOrderCount
=
0
;
int
shiftBOrderFinishedCount
=
0
;
for
(
LiteOrder
order
:
liteOrderList
)
{
if
(
StringUtils
.
isNotBlank
(
order
.
getReplenishmentNo
()))
{
continue
;
}
//判断是否属于A班数据
Date
orderStartDate
=
order
.
getStartDate
();
boolean
shiftA
=
ShiftUtil
.
isA
(
orderStartDate
);
if
(
shiftA
)
{
shiftAOrderCount
=
shiftAOrderCount
+
1
;
if
(
order
.
isClosed
())
{
shiftAOrderFinishedCount
=
shiftAOrderFinishedCount
+
1
;
}
}
else
{
shiftBOrderCount
=
shiftBOrderCount
+
1
;
if
(
order
.
isClosed
())
{
shiftBOrderFinishedCount
=
shiftBOrderFinishedCount
+
1
;
}
}
}
progress
.
setShiftAOrderCount
(
shiftAOrderCount
);
progress
.
setShiftAOrderFinishedCount
(
shiftAOrderFinishedCount
);
progress
.
setShiftBOrderCount
(
shiftBOrderCount
);
progress
.
setShiftBOrderFinishedCount
(
shiftBOrderFinishedCount
);
}
lastSaveTime
=
System
.
currentTimeMillis
();
cacheProgress
=
progress
;
return
progress
;
}
}
private
static
Date
getFirTwelveMonthsDate
()
{
private
static
Date
getFirTwelveMonthsDate
()
{
...
...
src/main/java/com/neotel/smfcore/hikvision/service/manager/impl/HikTaskCountManagerImpl.java
查看文件 @
c16db04
package
com
.
neotel
.
smfcore
.
hikvision
.
service
.
manager
.
impl
;
package
com
.
neotel
.
smfcore
.
hikvision
.
service
.
manager
.
impl
;
import
cn.hutool.core.date.DateUtil
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.hikvision.service.po.TaskCount
;
import
com.neotel.smfcore.hikvision.service.po.TaskCount
;
...
@@ -36,24 +37,33 @@ public class HikTaskCountManagerImpl implements IHikTaskCountManager {
...
@@ -36,24 +37,33 @@ public class HikTaskCountManagerImpl implements IHikTaskCountManager {
}
}
String
shift
=
""
;
String
shift
=
""
;
Date
createDate
=
null
;
Date
createDate
=
null
;
if
(
ShiftUtil
.
isA
(
task
.
getCreateDate
()))
{
//判断当前时间是否属于A班
Date
taskDate
=
task
.
getCreateDate
();
if
(
ShiftUtil
.
isA
(
taskDate
))
{
shift
=
ShiftUtil
.
SHIFT_A
;
shift
=
ShiftUtil
.
SHIFT_A
;
createDate
=
ShiftUtil
.
getShiftAS
elec
tDate
();
createDate
=
ShiftUtil
.
getShiftAS
tar
tDate
();
}
else
{
}
else
{
shift
=
ShiftUtil
.
SHIFT_B
;
shift
=
ShiftUtil
.
SHIFT_B
;
createDate
=
ShiftUtil
.
getShiftBSelectDate
(
task
.
getCreateDate
());
if
(
taskDate
.
getTime
()
<
ShiftUtil
.
getShiftAStartDate
().
getTime
())
{
createDate
=
DateUtil
.
offsetDay
(
ShiftUtil
.
getShiftAStartDate
(),
-
1
);
}
else
{
createDate
=
ShiftUtil
.
getShiftAStartDate
();
}
}
}
//保存数据
//保存数据
TaskCount
taskCount
=
hikTaskCountDao
.
getByOperatorAndShift
(
operator
,
shift
,
createDate
);
TaskCount
taskCount
=
hikTaskCountDao
.
getByOperatorAndShift
(
operator
,
shift
,
createDate
);
if
(
taskCount
==
null
)
{
if
(
taskCount
==
null
)
{
log
.
info
(
taskDate
+
"操作人:"
+
operator
+
"新建一条记录"
);
taskCount
=
new
TaskCount
();
taskCount
=
new
TaskCount
();
taskCount
.
setName
(
operator
);
taskCount
.
setName
(
operator
);
taskCount
.
setShift
(
shift
);
taskCount
.
setShift
(
shift
);
}
}
if
(
task
.
isPutInTask
())
{
if
(
task
.
isPutInTask
())
{
log
.
info
(
"姓名:"
+
operator
+
"班次:"
+
shift
+
",入库数量+1"
);
taskCount
.
setPutInCount
(
taskCount
.
getPutInCount
()
+
1
);
taskCount
.
setPutInCount
(
taskCount
.
getPutInCount
()
+
1
);
}
else
{
}
else
{
log
.
info
(
"姓名:"
+
operator
+
"班次:"
+
shift
+
",出库数量+1"
);
taskCount
.
setCheckOutCount
(
taskCount
.
getCheckOutCount
()
+
1
);
taskCount
.
setCheckOutCount
(
taskCount
.
getCheckOutCount
()
+
1
);
}
}
hikTaskCountDao
.
save
(
taskCount
);
hikTaskCountDao
.
save
(
taskCount
);
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论