Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
SmdBox
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 0cb430a4
由
孙克
编写于
2023-05-13 19:41:33 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
阳光电源增加感应料架
1 个父辈
0ed0ccf9
全部展开
显示空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
213 行增加
和
5 行删除
myproject/src/main/java/com/myproject/bean/utils/PosInfo.java
myproject/src/main/java/com/myproject/bean/utils/StatusBean.java
myproject/src/main/java/com/myproject/manager/IStoragePosManager.java
myproject/src/main/java/com/myproject/manager/impl/StoragePosManagerImpl.java
myproject/src/main/java/com/myproject/util/StorageConstants.java
myproject/src/main/java/com/myproject/webapp/controller/storage/NLPShelfController.java
myproject/src/main/java/com/myproject/webapp/controller/webService/DataCache.java
myproject/src/main/java/com/myproject/webapp/controller/webService/ITaskService.java
myproject/src/main/java/com/myproject/webapp/controller/webService/TaskService.java
myproject/src/main/webapp/WEB-INF/pages/storage/allBoxView.jsp
myproject/src/main/webapp/WEB-INF/pages/storage/nlpShelf.jsp
myproject/src/main/java/com/myproject/bean/utils/PosInfo.java
0 → 100644
查看文件 @
0cb430a
package
com
.
myproject
.
bean
.
utils
;
import
java.io.Serializable
;
public
class
PosInfo
implements
Serializable
{
/**
* 库位号
*/
private
String
pos
;
/**
* 优先级
*/
private
Integer
pri
;
/**
* 高度
*/
private
Integer
h
;
/**
* 宽度
*/
private
Integer
w
;
public
String
getPos
()
{
return
pos
;
}
public
void
setPos
(
String
pos
)
{
this
.
pos
=
pos
;
}
public
Integer
getPri
()
{
return
pri
;
}
public
void
setPri
(
Integer
pri
)
{
this
.
pri
=
pri
;
}
public
Integer
getH
()
{
return
h
;
}
public
void
setH
(
Integer
h
)
{
this
.
h
=
h
;
}
public
Integer
getW
()
{
return
w
;
}
public
void
setW
(
Integer
w
)
{
this
.
w
=
w
;
}
}
\ No newline at end of file
\ No newline at end of file
myproject/src/main/java/com/myproject/bean/utils/StatusBean.java
查看文件 @
0cb430a
...
@@ -22,7 +22,18 @@ public class StatusBean {
...
@@ -22,7 +22,18 @@ public class StatusBean {
/// </summary>;
/// </summary>;
private
String
cid
;
private
String
cid
;
/// <summary>
///@ApiOperation("客户端判断CID是否存在")
// @RequestMapping(value = "/service/store/cidIsExists")
// @ResponseBody
// @AnonymousAccess
// public ResultBean cidIsExists(HttpServletRequest request) {
// String cid = request.getParameter("cid");
// Storage storage = dataCache.getStorage(cid);
// if (storage == null) {
// return ResultBean.newErrorResult(1, "smfcore.valueNotFind", "未找到{0}[{1}]", new String[]{"CID", cid});
// }
// return ResultBean.newOkResult(cid);
// } <summary>
/// 请求序列号
/// 请求序列号
/// </summary>
/// </summary>
private
int
seq
;
private
int
seq
;
...
@@ -71,6 +82,9 @@ public class StatusBean {
...
@@ -71,6 +82,9 @@ public class StatusBean {
/// </summary>
/// </summary>
private
Map
<
Integer
,
BoxStatusBean
>
boxStatus
=
new
HashMap
<>();
private
Map
<
Integer
,
BoxStatusBean
>
boxStatus
=
new
HashMap
<>();
private
List
<
PosInfo
>
posList
=
null
;
/**
/**
* 报警集合
* 报警集合
*/
*/
...
@@ -462,4 +476,13 @@ public class StatusBean {
...
@@ -462,4 +476,13 @@ public class StatusBean {
}
}
return
doorReelSignal
;
return
doorReelSignal
;
}
}
public
List
<
PosInfo
>
getPosList
()
{
return
posList
;
}
public
void
setPosList
(
List
<
PosInfo
>
posList
)
{
this
.
posList
=
posList
;
}
}
}
myproject/src/main/java/com/myproject/manager/IStoragePosManager.java
查看文件 @
0cb430a
...
@@ -38,6 +38,10 @@ public interface IStoragePosManager extends IManager<StoragePos> {
...
@@ -38,6 +38,10 @@ public interface IStoragePosManager extends IManager<StoragePos> {
StoragePos
getByBarcodeId
(
String
barcodeId
);
StoragePos
getByBarcodeId
(
String
barcodeId
);
List
<
StoragePos
>
findUsedPosNameByStorageId
(
String
storageId
);
List
<
StoragePos
>
findDisabled
();
List
<
StoragePos
>
findEnablePosList
(
String
storageId
);
List
<
StoragePos
>
findEnablePosList
(
String
storageId
);
void
clearPos
(
String
storageId
);
void
clearPos
(
String
storageId
);
...
@@ -100,6 +104,8 @@ public interface IStoragePosManager extends IManager<StoragePos> {
...
@@ -100,6 +104,8 @@ public interface IStoragePosManager extends IManager<StoragePos> {
List
<
StoragePos
>
findLockPos
(
String
lockId
);
List
<
StoragePos
>
findLockPos
(
String
lockId
);
List
<
StoragePos
>
findByStorage
(
String
storageId
);
int
countByQuery
(
Query
query
);
int
countByQuery
(
Query
query
);
/**
/**
...
...
myproject/src/main/java/com/myproject/manager/impl/StoragePosManagerImpl.java
查看文件 @
0cb430a
...
@@ -17,8 +17,6 @@ import com.myproject.manager.IStoragePosManager;
...
@@ -17,8 +17,6 @@ import com.myproject.manager.IStoragePosManager;
import
com.myproject.util.DateUtil
;
import
com.myproject.util.DateUtil
;
import
com.myproject.util.PLATE_SIZE
;
import
com.myproject.util.PLATE_SIZE
;
import
com.myproject.util.StorageConstants
;
import
com.myproject.util.StorageConstants
;
import
com.myproject.webapp.controller.webService.DataCache
;
import
org.apache.commons.lang.StringUtils
;
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
;
...
@@ -48,6 +46,25 @@ public class StoragePosManagerImpl implements IStoragePosManager {
...
@@ -48,6 +46,25 @@ public class StoragePosManagerImpl implements IStoragePosManager {
}
}
@Override
@Override
public
List
<
StoragePos
>
findUsedPosNameByStorageId
(
String
storageId
)
{
Criteria
c
=
Criteria
.
where
(
"barcode"
).
exists
(
true
)
.
and
(
"enabled"
).
is
(
true
);
//可用;
if
(!
Strings
.
isNullOrEmpty
(
storageId
)){
c
=
c
.
and
(
"storageId"
).
is
(
storageId
);
}
Query
query
=
new
Query
(
c
);
// query.fields().include("posName").exclude("id");
return
storagePosDao
.
findByQuery
(
query
);
}
@Override
public
List
<
StoragePos
>
findDisabled
(){
Criteria
c
=
Criteria
.
where
(
"enabled"
).
is
(
false
);
//不可用;
Query
query
=
new
Query
(
c
);
return
storagePosDao
.
findByQuery
(
query
);
}
@Override
public
List
<
StoragePos
>
findEnablePosList
(
String
storageId
)
{
public
List
<
StoragePos
>
findEnablePosList
(
String
storageId
)
{
Criteria
c
=
Criteria
.
where
(
"storageId"
).
is
(
storageId
).
and
(
"enabled"
).
is
(
true
);
//可用
Criteria
c
=
Criteria
.
where
(
"storageId"
).
is
(
storageId
).
and
(
"enabled"
).
is
(
true
);
//可用
Query
query
=
new
Query
(
c
);
Query
query
=
new
Query
(
c
);
...
@@ -565,6 +582,11 @@ public class StoragePosManagerImpl implements IStoragePosManager {
...
@@ -565,6 +582,11 @@ public class StoragePosManagerImpl implements IStoragePosManager {
}
}
@Override
@Override
public
List
<
StoragePos
>
findByStorage
(
String
storageId
)
{
return
storagePosDao
.
findListByCondition
(
new
String
[]{
"storageId"
},
new
String
[]{
storageId
});
}
@Override
public
int
countByQuery
(
Query
query
)
{
public
int
countByQuery
(
Query
query
)
{
return
storagePosDao
.
countByQuery
(
query
);
return
storagePosDao
.
countByQuery
(
query
);
}
}
...
...
myproject/src/main/java/com/myproject/util/StorageConstants.java
查看文件 @
0cb430a
...
@@ -260,7 +260,7 @@ public class StorageConstants {
...
@@ -260,7 +260,7 @@ public class StorageConstants {
/**
/**
* 6智能料架
* 6智能料架
*/
*/
SHELF
(
"storage.type.
shelf
"
),
SHELF
(
"storage.type.
nlp
"
),
/**
/**
* 7 料柜
* 7 料柜
...
@@ -293,6 +293,7 @@ public class StorageConstants {
...
@@ -293,6 +293,7 @@ public class StorageConstants {
*/
*/
VERTICALBOX
(
"storage.type.verticalBox"
)
VERTICALBOX
(
"storage.type.verticalBox"
)
;
;
private
String
key
;
private
String
key
;
...
...
myproject/src/main/java/com/myproject/webapp/controller/storage/NLPShelfController.java
0 → 100644
查看文件 @
0cb430a
此文件的差异被折叠,
点击展开。
myproject/src/main/java/com/myproject/webapp/controller/webService/DataCache.java
查看文件 @
0cb430a
...
@@ -36,6 +36,7 @@ public class DataCache{
...
@@ -36,6 +36,7 @@ public class DataCache{
protected
final
transient
Logger
log
=
LogManager
.
getLogger
(
getClass
());
protected
final
transient
Logger
log
=
LogManager
.
getLogger
(
getClass
());
//客户
//客户
public
static
class
CUSTOMER
{
public
static
class
CUSTOMER
{
public
static
String
LIAN_DIAN
=
"LianDian"
;
public
static
String
LIAN_DIAN
=
"LianDian"
;
...
@@ -715,10 +716,13 @@ public class DataCache{
...
@@ -715,10 +716,13 @@ public class DataCache{
//出库
//出库
amount
=
-
barcode
.
getAmount
();
amount
=
-
barcode
.
getAmount
();
storage
.
emptyOnePos
(
pos
);
storage
.
emptyOnePos
(
pos
);
removeUsedPosNameList
(
cid
,
pos
.
getPosName
());
}
else
{
}
else
{
//入库
//入库
amount
=
barcode
.
getAmount
();
amount
=
barcode
.
getAmount
();
storage
.
useOnePos
(
pos
);
storage
.
useOnePos
(
pos
);
addUsedPosNameList
(
cid
,
pos
.
getPosName
());
}
}
allStorage
.
put
(
cid
,
storage
);
allStorage
.
put
(
cid
,
storage
);
return
updateInventoryAmount
(
cid
,
partNumber
,
amount
);
return
updateInventoryAmount
(
cid
,
partNumber
,
amount
);
...
@@ -744,4 +748,89 @@ public class DataCache{
...
@@ -744,4 +748,89 @@ public class DataCache{
return
allBoxMap
;
return
allBoxMap
;
}
}
/**
* 库位占用Map, key为cid,value为已使用的库位列表
*/
private
static
Map
<
String
,
List
<
String
>>
usedPosNameMap
=
new
ConcurrentHashMap
<>();
/**
* 出库时清除使用库位列表
*/
private
void
removeUsedPosNameList
(
String
cid
,
String
posName
)
{
List
<
String
>
usedPosNameList
=
getUsedPosNameList
(
cid
);
usedPosNameList
.
remove
(
posName
);
usedPosNameMap
.
put
(
cid
,
usedPosNameList
);
}
/**
* 入库时增加使用库位列表
*/
private
void
addUsedPosNameList
(
String
cid
,
String
posName
)
{
List
<
String
>
usedPosNameList
=
getUsedPosNameList
(
cid
);
usedPosNameList
.
add
(
posName
);
usedPosNameMap
.
put
(
cid
,
usedPosNameList
);
}
/**
* 获取设备所有占用的库位名称列表
*/
public
synchronized
List
<
String
>
getUsedPosNameList
(
String
cid
)
{
if
(
cid
==
null
||
cid
.
isEmpty
()){
return
new
ArrayList
<>();
}
List
<
String
>
posNameList
=
usedPosNameMap
.
get
(
cid
);
if
(
posNameList
==
null
)
{
Storage
storage
=
getStorage
(
cid
);
posNameList
=
new
ArrayList
<>();
if
(
storage
!=
null
)
{
log
.
info
(
"加载["
+
cid
+
"]所有已使用库位到缓存"
);
List
<
StoragePos
>
allPos
=
storagePosManager
.
findNotEmptyByStorageId
(
storage
.
getId
());
for
(
StoragePos
pos
:
allPos
)
{
posNameList
.
add
(
pos
.
getPosName
());
}
usedPosNameMap
.
put
(
cid
,
posNameList
);
}
}
return
posNameList
;
}
/**
* 禁用库位名称列表
*/
private
static
Set
<
String
>
disabledPosNameSet
;
/**
* 获取禁用库位缓存
*/
public
Set
<
String
>
getDisabledPosNameSet
(){
initDisabledPosNameSet
();
return
disabledPosNameSet
;
}
/**
* 初始化禁用库位缓存
*/
private
synchronized
void
initDisabledPosNameSet
(){
if
(
disabledPosNameSet
==
null
){
disabledPosNameSet
=
new
HashSet
<>();
List
<
StoragePos
>
disabledPosList
=
storagePosManager
.
findDisabled
();
for
(
StoragePos
disabledPos
:
disabledPosList
)
{
disabledPosNameSet
.
add
(
disabledPos
.
getPosName
());
}
log
.
info
(
"加载禁用库位缓存,共"
+
disabledPosNameSet
.
size
()
+
"个"
);
}
}
/**
* 更新禁用库位缓存
*/
public
void
updateDisablePos
(
StoragePos
pos
){
initDisabledPosNameSet
();
if
(
pos
.
isEnabled
()){
disabledPosNameSet
.
remove
(
pos
.
getPosName
());
}
else
{
disabledPosNameSet
.
add
(
pos
.
getPosName
());
}
}
}
}
myproject/src/main/java/com/myproject/webapp/controller/webService/ITaskService.java
查看文件 @
0cb430a
...
@@ -75,4 +75,9 @@ public interface ITaskService {
...
@@ -75,4 +75,9 @@ public interface ITaskService {
void
addTaskToFinished
(
StoragePos
pos
,
Barcode
barcode
,
String
opUser
);
void
addTaskToFinished
(
StoragePos
pos
,
Barcode
barcode
,
String
opUser
);
void
addTaskToExecute
(
DataLog
task
);
void
addTaskToExecute
(
DataLog
task
);
//入仓位完成
void
putInFinished
(
DataLog
task
)
throws
ValidateException
;
void
checkoutFinished
(
DataLog
task
)
throws
ValidateException
;
}
}
myproject/src/main/java/com/myproject/webapp/controller/webService/TaskService.java
查看文件 @
0cb430a
...
@@ -1699,6 +1699,7 @@ public class TaskService implements ITaskService {
...
@@ -1699,6 +1699,7 @@ public class TaskService implements ITaskService {
//入仓位完成
//入仓位完成
@Override
public
void
putInFinished
(
DataLog
task
)
throws
ValidateException
{
public
void
putInFinished
(
DataLog
task
)
throws
ValidateException
{
//从队列里面移除操作
//从队列里面移除操作
...
@@ -1810,6 +1811,7 @@ public class TaskService implements ITaskService {
...
@@ -1810,6 +1811,7 @@ public class TaskService implements ITaskService {
/**
/**
* 出库完成
* 出库完成
*/
*/
@Override
public
void
checkoutFinished
(
DataLog
task
)
throws
ValidateException
{
public
void
checkoutFinished
(
DataLog
task
)
throws
ValidateException
{
//从队列里面移除操作
//从队列里面移除操作
...
...
myproject/src/main/webapp/WEB-INF/pages/storage/allBoxView.jsp
查看文件 @
0cb430a
...
@@ -168,7 +168,7 @@
...
@@ -168,7 +168,7 @@
<c:set var="detailUrl" value="${ctx}/cabinet/${storage.cid}"/>
<c:set var="detailUrl" value="${ctx}/cabinet/${storage.cid}"/>
</c:if>
</c:if>
<c:if test="${storage.shelf}">
<c:if test="${storage.shelf}">
<c:set var="detailUrl" value="${ctx}/storage/
shelf
/${storage.cid}"/>
<c:set var="detailUrl" value="${ctx}/storage/
nlp
/${storage.cid}"/>
</c:if>
</c:if>
<c:if test="${storage.accShelf}">
<c:if test="${storage.accShelf}">
<c:set var="detailUrl" value="${ctx}/storage/accShelf/${storage.cid}"/>
<c:set var="detailUrl" value="${ctx}/storage/accShelf/${storage.cid}"/>
...
...
myproject/src/main/webapp/WEB-INF/pages/storage/nlpShelf.jsp
0 → 100644
查看文件 @
0cb430a
此文件的差异被折叠,
点击展开。
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论