Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 9a8217b9
由
zshaohui
编写于
2023-03-31 15:26:20 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
修改库存时,同时保存1个小时内出入库数量
1 个父辈
ff812e90
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
54 行增加
和
2 行删除
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
src/main/java/com/neotel/smfcore/core/inout/service/dao/impl/InOutDataDaoImpl.java
src/main/java/com/neotel/smfcore/core/inout/service/manager/IInOutDataManager.java
src/main/java/com/neotel/smfcore/core/inout/service/manager/impl/InOutDataManagerImpl.java
src/main/java/com/neotel/smfcore/core/inout/service/po/InOutData.java
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
查看文件 @
9a8217b
package
com
.
neotel
.
smfcore
.
core
.
device
.
util
;
package
com
.
neotel
.
smfcore
.
core
.
device
.
util
;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.google.common.base.Strings
;
import
com.google.common.base.Strings
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
...
@@ -34,6 +36,8 @@ import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
...
@@ -34,6 +36,8 @@ import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.apache.logging.log4j.Logger
;
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.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
javax.annotation.PostConstruct
;
import
javax.annotation.PostConstruct
;
...
@@ -672,7 +676,6 @@ public class DataCache {
...
@@ -672,7 +676,6 @@ public class DataCache {
*/
*/
public
int
updateInventory
(
StoragePos
pos
,
Barcode
barcode
)
{
public
int
updateInventory
(
StoragePos
pos
,
Barcode
barcode
)
{
Storage
storage
=
getStorageById
(
pos
.
getStorageId
());
Storage
storage
=
getStorageById
(
pos
.
getStorageId
());
String
cid
=
storage
.
getCid
();
String
cid
=
storage
.
getCid
();
String
partNumber
=
barcode
.
getPartNumber
();
String
partNumber
=
barcode
.
getPartNumber
();
int
amount
=
0
;
int
amount
=
0
;
...
@@ -683,6 +686,7 @@ public class DataCache {
...
@@ -683,6 +686,7 @@ public class DataCache {
storage
.
emptyOnePos
(
pos
);
storage
.
emptyOnePos
(
pos
);
updateSpUsePosCount
(
storage
,
pos
,
-
1
);
updateSpUsePosCount
(
storage
,
pos
,
-
1
);
removeUsedPosList
(
cid
,
pos
);
removeUsedPosList
(
cid
,
pos
);
updateInOutData
(
cid
,
storage
.
getId
(),
-
1
);
}
else
{
}
else
{
//入库
//入库
amount
=
barcode
.
getAmount
();
amount
=
barcode
.
getAmount
();
...
@@ -693,6 +697,7 @@ public class DataCache {
...
@@ -693,6 +697,7 @@ public class DataCache {
if
(
ObjectUtil
.
isNotEmpty
(
storage
.
getInListName
()))
{
if
(
ObjectUtil
.
isNotEmpty
(
storage
.
getInListName
()))
{
inListCache
.
UpdateInList
(
storage
.
getInListName
(),
pos
,
barcode
);
inListCache
.
UpdateInList
(
storage
.
getInListName
(),
pos
,
barcode
);
}
}
updateInOutData
(
cid
,
storage
.
getId
(),
1
);
}
}
allStorage
.
put
(
cid
,
storage
);
allStorage
.
put
(
cid
,
storage
);
return
updateInventoryAmount
(
cid
,
partNumber
,
amount
);
return
updateInventoryAmount
(
cid
,
partNumber
,
amount
);
...
@@ -893,4 +898,37 @@ public class DataCache {
...
@@ -893,4 +898,37 @@ public class DataCache {
}
}
return
true
;
return
true
;
}
}
private
synchronized
void
updateInOutData
(
String
cid
,
String
storageId
,
int
amount
)
{
InOutData
inOutData
=
getLastSaveInOutData
(
cid
,
storageId
);
//如果amount小于0,则是出库,否则入库
if
(
amount
<
0
)
{
inOutData
.
setOutCount
(
inOutData
.
getOutCount
()
+
1
);
}
else
if
(
amount
>
0
)
{
inOutData
.
setInCount
(
inOutData
.
getInCount
()
+
1
);
}
inOutData
.
setUpdateDate
(
new
Date
());
inOutDataManager
.
save
(
inOutData
);
}
private
InOutData
getLastSaveInOutData
(
String
cid
,
String
storageId
)
{
InOutData
inOutData
=
inOutDataManager
.
findOneByQuery
(
new
Query
(
Criteria
.
where
(
"cid"
).
is
(
cid
).
and
(
"storageId"
).
is
(
storageId
)));
if
(
inOutData
==
null
)
{
inOutData
=
new
InOutData
();
}
else
{
Date
createDate
=
inOutData
.
getCreateDate
();
//判断当前是否超过1个小时
String
createDateStr
=
DateUtil
.
format
(
createDate
,
"yyyy-MM-dd HH"
);
String
currentDateStr
=
DateUtil
.
format
(
new
Date
(),
"yyyy-MM-dd HH"
);
long
between
=
DateUtil
.
between
(
DateUtil
.
parse
(
createDateStr
,
"yyyy-MM-dd HH"
),
DateUtil
.
parse
(
currentDateStr
,
"yyyy-MM-dd HH"
),
DateUnit
.
HOUR
);
if
(
between
>=
1
)
{
inOutData
=
new
InOutData
();
}
}
inOutData
.
setCid
(
cid
);
inOutData
.
setStorageId
(
storageId
);
return
inOutData
;
}
}
}
src/main/java/com/neotel/smfcore/core/inout/service/dao/impl/InOutDataDaoImpl.java
查看文件 @
9a8217b
...
@@ -2,12 +2,13 @@ package com.neotel.smfcore.core.inout.service.dao.impl;
...
@@ -2,12 +2,13 @@ package com.neotel.smfcore.core.inout.service.dao.impl;
import
com.neotel.smfcore.common.base.AbstractBaseDao
;
import
com.neotel.smfcore.common.base.AbstractBaseDao
;
import
com.neotel.smfcore.core.inout.service.dao.IInOutDataDao
;
import
com.neotel.smfcore.core.inout.service.dao.IInOutDataDao
;
import
com.neotel.smfcore.core.inout.service.po.InOutData
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
@Service
@Service
public
class
InOutDataDaoImpl
extends
AbstractBaseDao
implements
IInOutDataDao
{
public
class
InOutDataDaoImpl
extends
AbstractBaseDao
implements
IInOutDataDao
{
@Override
@Override
public
Class
getEntityClass
()
{
public
Class
getEntityClass
()
{
return
I
InOutDataDao
.
class
;
return
I
nOutData
.
class
;
}
}
}
}
src/main/java/com/neotel/smfcore/core/inout/service/manager/IInOutDataManager.java
查看文件 @
9a8217b
...
@@ -2,9 +2,12 @@ package com.neotel.smfcore.core.inout.service.manager;
...
@@ -2,9 +2,12 @@ package com.neotel.smfcore.core.inout.service.manager;
import
com.neotel.smfcore.common.base.IBaseManager
;
import
com.neotel.smfcore.common.base.IBaseManager
;
import
com.neotel.smfcore.core.inout.service.po.InOutData
;
import
com.neotel.smfcore.core.inout.service.po.InOutData
;
import
org.springframework.data.mongodb.core.query.Query
;
import
java.util.Date
;
import
java.util.Date
;
public
interface
IInOutDataManager
extends
IBaseManager
<
InOutData
>
{
public
interface
IInOutDataManager
extends
IBaseManager
<
InOutData
>
{
InOutData
findOneByDate
(
Date
startDate
,
Date
endDate
);
InOutData
findOneByDate
(
Date
startDate
,
Date
endDate
);
InOutData
findOneByQuery
(
Query
query
);
}
}
src/main/java/com/neotel/smfcore/core/inout/service/manager/impl/InOutDataManagerImpl.java
查看文件 @
9a8217b
...
@@ -57,4 +57,10 @@ public class InOutDataManagerImpl implements IInOutDataManager {
...
@@ -57,4 +57,10 @@ public class InOutDataManagerImpl implements IInOutDataManager {
Sort
s
=
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"createDate"
);
Sort
s
=
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"createDate"
);
return
inOutDataDao
.
findOne
(
q
.
addCriteria
(
c
).
with
(
s
));
return
inOutDataDao
.
findOne
(
q
.
addCriteria
(
c
).
with
(
s
));
}
}
@Override
public
InOutData
findOneByQuery
(
Query
query
)
{
query
.
with
(
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"createDate"
));
return
inOutDataDao
.
findOne
(
query
);
}
}
}
src/main/java/com/neotel/smfcore/core/inout/service/po/InOutData.java
查看文件 @
9a8217b
package
com
.
neotel
.
smfcore
.
core
.
inout
.
service
.
po
;
package
com
.
neotel
.
smfcore
.
core
.
inout
.
service
.
po
;
import
com.neotel.smfcore.common.base.BasePo
;
import
com.neotel.smfcore.common.base.BasePo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
org.springframework.data.mongodb.core.mapping.Document
;
@Data
@Data
@Document
@Document
@AllArgsConstructor
@NoArgsConstructor
public
class
InOutData
extends
BasePo
{
public
class
InOutData
extends
BasePo
{
/**
/**
* 设备cid
* 设备cid
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论