Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
Gree
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 8f158bb5
由
sunke
编写于
2020-03-10 12:32:39 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
料仓库位信息放入缓存
1 个父辈
be279abb
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
285 行增加
和
176 行删除
myproject/src/main/java/com/myproject/bean/qisda/InquiryShelfBean.java
myproject/src/main/java/com/myproject/bean/qisda/ShelfInfo.java
myproject/src/main/java/com/myproject/bean/update/Storage.java
myproject/src/main/java/com/myproject/bean/update/StoragePos.java
myproject/src/main/java/com/myproject/webapp/controller/FileUploadController.java
myproject/src/main/java/com/myproject/webapp/controller/cloud/StorageCloudUpdateController.java
myproject/src/main/java/com/myproject/webapp/controller/storage/StorageUpdateController.java
myproject/src/main/java/com/myproject/webapp/controller/storage/VirtualBoxController.java
myproject/src/main/java/com/myproject/webapp/controller/webService/DataCache.java
myproject/src/main/java/com/myproject/webapp/controller/webService/QisdaApiController.java
myproject/src/main/java/com/myproject/webapp/controller/webService/QisdaDeviceController.java
myproject/src/main/java/com/myproject/webapp/controller/webService/StorageDataController.java
myproject/src/main/java/com/myproject/webapp/controller/webService/TaskService.java
myproject/src/main/webapp/WEB-INF/pages/cloud/alarmInfoSearch.jsp
myproject/src/main/webapp/WEB-INF/pages/component/componentSearch.jsp
myproject/src/main/webapp/WEB-INF/pages/storage/allBoxView.jsp
myproject/src/main/webapp/WEB-INF/pages/storage/boxView.jsp
myproject/src/main/java/com/myproject/bean/qisda/InquiryShelfBean.java
查看文件 @
8f158bb
...
@@ -222,7 +222,7 @@ public class InquiryShelfBean {
...
@@ -222,7 +222,7 @@ public class InquiryShelfBean {
if
(
bigRfid
==
null
){
if
(
bigRfid
==
null
){
return
null
;
return
null
;
}
}
ShelfInfo
m
axLoc
Shelf
=
null
;
ShelfInfo
m
inIndex
Shelf
=
null
;
for
(
Map
<
String
,
ShelfInfo
>
shelfInfoMap
:
hSerialShelfMap
.
values
())
{
for
(
Map
<
String
,
ShelfInfo
>
shelfInfoMap
:
hSerialShelfMap
.
values
())
{
for
(
ShelfInfo
shelf
:
shelfInfoMap
.
values
())
{
for
(
ShelfInfo
shelf
:
shelfInfoMap
.
values
())
{
String
shelfRFID
=
shelf
.
getRealRfid
();
String
shelfRFID
=
shelf
.
getRealRfid
();
...
@@ -234,16 +234,16 @@ public class InquiryShelfBean {
...
@@ -234,16 +234,16 @@ public class InquiryShelfBean {
}
}
}
else
{
}
else
{
//未绑定过的
//未绑定过的
if
(
m
axLoc
Shelf
==
null
){
if
(
m
inIndex
Shelf
==
null
){
m
axLoc
Shelf
=
shelf
;
m
inIndex
Shelf
=
shelf
;
}
else
if
(
shelf
.
get
UsedLocCount
()
>
maxLocShelf
.
getUsedLocCount
()){
}
else
if
(
shelf
.
get
RfidIndex
()
<
minIndexShelf
.
getRfidIndex
()){
m
axLoc
Shelf
=
shelf
;
m
inIndex
Shelf
=
shelf
;
}
}
}
}
}
}
}
}
}
}
return
m
axLoc
Shelf
;
return
m
inIndex
Shelf
;
}
}
/**
/**
...
@@ -298,24 +298,24 @@ public class InquiryShelfBean {
...
@@ -298,24 +298,24 @@ public class InquiryShelfBean {
public
ShelfInfo
findMaxUsedShelf
(
String
hSerial
,
String
shelfType
){
public
ShelfInfo
findMaxUsedShelf
(
String
hSerial
,
String
shelfType
){
Map
<
String
,
ShelfInfo
>
shelfMap
=
hSerialShelfMap
.
get
(
hSerial
);
Map
<
String
,
ShelfInfo
>
shelfMap
=
hSerialShelfMap
.
get
(
hSerial
);
ShelfInfo
m
axLoc
Shelf
=
null
;
ShelfInfo
m
inIndex
Shelf
=
null
;
for
(
ShelfInfo
shelf
:
shelfMap
.
values
())
{
for
(
ShelfInfo
shelf
:
shelfMap
.
values
())
{
if
(
StorageConstants
.
SHEFL_TYPE
.
judgeType
(
shelfType
,
shelf
.
getShelfType
())){
if
(
StorageConstants
.
SHEFL_TYPE
.
judgeType
(
shelfType
,
shelf
.
getShelfType
())){
//同一种料架
//同一种料架
if
(
m
axLoc
Shelf
==
null
){
if
(
m
inIndex
Shelf
==
null
){
m
axLoc
Shelf
=
shelf
;
m
inIndex
Shelf
=
shelf
;
}
}
if
(
shelf
.
get
UsedLocCount
()
>
maxLocShelf
.
getUsedLocCount
()){
if
(
shelf
.
get
RfidIndex
()
>
minIndexShelf
.
getRfidIndex
()){
m
axLoc
Shelf
=
shelf
;
m
inIndex
Shelf
=
shelf
;
}
}
}
}
}
}
if
(
m
axLoc
Shelf
!=
null
){
if
(
m
inIndex
Shelf
!=
null
){
log
.
info
(
"找到类型为["
+
shelfType
+
"]
库位最多的同种料架["
+
maxLoc
Shelf
.
tempRfid
()+
"]"
);
log
.
info
(
"找到类型为["
+
shelfType
+
"]
最小序号同种料架["
+
minIndex
Shelf
.
tempRfid
()+
"]"
);
}
else
{
}
else
{
log
.
info
(
"已没有与["
+
shelfType
+
"]类型相同的料架"
);;
log
.
info
(
"已没有与["
+
shelfType
+
"]类型相同的料架"
);;
}
}
return
m
axLoc
Shelf
;
return
m
inIndex
Shelf
;
}
}
/**
/**
...
@@ -346,22 +346,22 @@ public class InquiryShelfBean {
...
@@ -346,22 +346,22 @@ public class InquiryShelfBean {
//未找到已经有实际RFID的料架,查找库位最多的料架
//未找到已经有实际RFID的料架,查找库位最多的料架
if
(
shelfInfo
==
null
){
if
(
shelfInfo
==
null
){
log
.
info
(
task
.
getBarcode
()
+
"未找到实际绑定的["
+
rfid
+
"]料架,开始查找
库位最多的
同种料架["
+
task
.
getAppendInfo
().
getShelfType
()+
"]"
);
log
.
info
(
task
.
getBarcode
()
+
"未找到实际绑定的["
+
rfid
+
"]料架,开始查找
序号最小
同种料架["
+
task
.
getAppendInfo
().
getShelfType
()+
"]"
);
ShelfInfo
m
axLoc
Shelf
=
null
;
ShelfInfo
m
inIndex
Shelf
=
null
;
for
(
ShelfInfo
shelf
:
shelfMap
.
values
())
{
for
(
ShelfInfo
shelf
:
shelfMap
.
values
())
{
if
(
StorageConstants
.
SHEFL_TYPE
.
judgeType
(
task
.
getAppendInfo
().
getShelfType
(),
shelf
.
getShelfType
())){
if
(
StorageConstants
.
SHEFL_TYPE
.
judgeType
(
task
.
getAppendInfo
().
getShelfType
(),
shelf
.
getShelfType
())){
//同一种料架
//同一种料架
if
(
m
axLoc
Shelf
==
null
){
if
(
m
inIndex
Shelf
==
null
){
m
axLoc
Shelf
=
shelf
;
m
inIndex
Shelf
=
shelf
;
}
}
if
(
shelf
.
get
UsedLocCount
()
>
maxLocShelf
.
getUsedLocCount
()){
if
(
shelf
.
get
RfidIndex
()
>
minIndexShelf
.
getRfidIndex
()){
m
axLoc
Shelf
=
shelf
;
m
inIndex
Shelf
=
shelf
;
}
}
}
}
}
}
shelfInfo
=
m
axLoc
Shelf
;
shelfInfo
=
m
inIndex
Shelf
;
if
(
shelfInfo
!=
null
){
if
(
shelfInfo
!=
null
){
log
.
info
(
task
.
getBarcode
()
+
"["
+
appendInfo
.
getTempRfid
()+
"]未找到rfid=["
+
rfid
+
"]的空料架,使用
库位最多
的同种料架["
+
shelfInfo
.
tempRfid
()+
"]"
);
log
.
info
(
task
.
getBarcode
()
+
"["
+
appendInfo
.
getTempRfid
()+
"]未找到rfid=["
+
rfid
+
"]的空料架,使用
序号最小
的同种料架["
+
shelfInfo
.
tempRfid
()+
"]"
);
}
else
{
}
else
{
log
.
info
(
"已没有与["
+
rfid
+
"]类型相同的料架"
);;
log
.
info
(
"已没有与["
+
rfid
+
"]类型相同的料架"
);;
}
}
...
...
myproject/src/main/java/com/myproject/bean/qisda/ShelfInfo.java
查看文件 @
8f158bb
...
@@ -202,6 +202,23 @@ public class ShelfInfo {
...
@@ -202,6 +202,23 @@ public class ShelfInfo {
}
}
/**
/**
* 为包装料锁定架位
* @param shelfLoc 架位信息
* @param packageReelId 包装料条码
* @return
*/
public
boolean
lockForPackage
(
ShelfLoc
shelfLoc
,
String
packageReelId
){
ShelfLoc
emptyLoc
=
locMap
.
get
(
shelfLoc
.
getLoc
());
if
(!
emptyLoc
.
isEmpty
()){
log
.
info
(
"为包装料["
+
packageReelId
+
"]锁定C型料架"
+
tempRfid
()+
"["
+
shelfLoc
.
getLoc
()+
"]失败,位置为不空"
);
return
false
;
}
log
.
info
(
"为包装料["
+
packageReelId
+
"]锁定架位"
+
tempRfid
()+
"["
+
shelfLoc
.
getLoc
()+
"]"
);
emptyLoc
.
setBarcode
(
packageReelId
);
return
true
;
}
/**
* 为不需要按顺序摆放的料盘锁定一个架位,如果已经锁定过,返回对应的架位
* 为不需要按顺序摆放的料盘锁定一个架位,如果已经锁定过,返回对应的架位
*/
*/
public
ShelfLoc
lockOneEmptyLoc
(
String
barcode
,
int
reelType
,
String
robotIndex
){
public
ShelfLoc
lockOneEmptyLoc
(
String
barcode
,
int
reelType
,
String
robotIndex
){
...
...
myproject/src/main/java/com/myproject/bean/update/Storage.java
查看文件 @
8f158bb
package
com
.
myproject
.
bean
.
update
;
package
com
.
myproject
.
bean
.
update
;
import
com.myproject.bean.BaseMongoBean
;
import
com.myproject.bean.BaseMongoBean
;
import
com.myproject.bean.json.PlateSizeBean
;
import
com.myproject.bean.json.UsageItem
;
import
com.myproject.util.PLATE_SIZE
;
import
com.myproject.util.PLATE_SIZE
;
import
com.myproject.util.StorageConstants
;
import
com.myproject.util.StorageConstants
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
org.springframework.data.annotation.Transient
;
import
org.springframework.data.annotation.Transient
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
/**
/**
* Created by kangmor on 2015/12/3.
* Created by kangmor on 2015/12/3.
...
@@ -41,20 +45,26 @@ public class Storage extends BaseMongoBean {
...
@@ -41,20 +45,26 @@ public class Storage extends BaseMongoBean {
return
boxCount
;
return
boxCount
;
}
}
/**
/**
*
允许放入的料盘尺寸信息
*
使用情况
*/
*/
@Transient
private
Map
<
String
,
UsageItem
>
usageMap
=
new
ConcurrentHashMap
<>();
private
List
<
PLATE_SIZE
>
plateSizes
;
// /**
// * 允许放入的料盘尺寸信息
public
List
<
PLATE_SIZE
>
getPlateSizes
()
{
// */
return
plateSizes
;
// @Transient
}
// private List<PLATE_SIZE> plateSizes;
//
public
void
setPlateSizes
(
List
<
PLATE_SIZE
>
plateSizes
)
{
//
this
.
plateSizes
=
plateSizes
;
// public List<PLATE_SIZE> getPlateSizes() {
}
// return plateSizes;
// }
//
// public void setPlateSizes(List<PLATE_SIZE> plateSizes) {
// this.plateSizes = plateSizes;
// }
public
String
getType
()
{
public
String
getType
()
{
...
@@ -180,7 +190,6 @@ public class Storage extends BaseMongoBean {
...
@@ -180,7 +190,6 @@ public class Storage extends BaseMongoBean {
public
boolean
canPutInPos
(
int
w
,
int
h
,
int
PosW
,
int
posH
){
public
boolean
canPutInPos
(
int
w
,
int
h
,
int
PosW
,
int
posH
){
if
(
compatibleType
==
StorageConstants
.
COMPATIBLE_TYPE
.
EXACT_MATCH
){
//完全匹配
if
(
compatibleType
==
StorageConstants
.
COMPATIBLE_TYPE
.
EXACT_MATCH
){
//完全匹配
if
(
w
==
PosW
&&
h
==
posH
){
if
(
w
==
PosW
&&
h
==
posH
){
return
true
;
return
true
;
...
@@ -201,9 +210,9 @@ public class Storage extends BaseMongoBean {
...
@@ -201,9 +210,9 @@ public class Storage extends BaseMongoBean {
* 判断料盘是否能够放入该仓库: 0=完全匹配,1=完全兼容,2=同尺寸兼容
* 判断料盘是否能够放入该仓库: 0=完全匹配,1=完全兼容,2=同尺寸兼容
*/
*/
public
boolean
canPutIn
(
int
w
,
int
h
){
public
boolean
canPutIn
(
int
w
,
int
h
){
if
(
plateSizes
!=
null
){
if
(
usageMap
!=
null
){
for
(
PLATE_SIZE
plateSize
:
plateSizes
)
{
for
(
UsageItem
usageItem
:
usageMap
.
values
()
)
{
if
(
canPutInPos
(
w
,
h
,
plateSize
.
getW
(),
plateSize
.
getH
())){
if
(
canPutInPos
(
w
,
h
,
usageItem
.
getW
(),
usageItem
.
getH
())){
return
true
;
return
true
;
}
}
}
}
...
@@ -226,4 +235,70 @@ public class Storage extends BaseMongoBean {
...
@@ -226,4 +235,70 @@ public class Storage extends BaseMongoBean {
public
void
setCompatibleType
(
StorageConstants
.
COMPATIBLE_TYPE
compatibleType
)
{
public
void
setCompatibleType
(
StorageConstants
.
COMPATIBLE_TYPE
compatibleType
)
{
this
.
compatibleType
=
compatibleType
;
this
.
compatibleType
=
compatibleType
;
}
}
public
Map
<
String
,
UsageItem
>
getUsageMap
()
{
return
usageMap
;
}
public
void
setUsageMap
(
Map
<
String
,
UsageItem
>
usageMap
)
{
this
.
usageMap
=
usageMap
;
}
/**
* 使用一个仓位,更新使用情况
*/
public
void
useOnePos
(
StoragePos
pos
){
if
(
usageMap
!=
null
){
String
sizeStr
=
pos
.
getSizeStr
();
UsageItem
usageItem
=
usageMap
.
get
(
sizeStr
);
if
(
usageItem
!=
null
){
this
.
emptySlots
=
this
.
emptySlots
-
1
;
int
usedCount
=
usageItem
.
getUsedCount
();
usageItem
.
setUsedCount
(
usedCount
+
1
);
usageMap
.
put
(
sizeStr
,
usageItem
);
}
}
}
public
void
emptyOnePos
(
StoragePos
pos
){
if
(
usageMap
!=
null
){
String
sizeStr
=
pos
.
getSizeStr
();
UsageItem
usageItem
=
usageMap
.
get
(
sizeStr
);
if
(
usageItem
!=
null
){
this
.
emptySlots
=
this
.
emptySlots
+
1
;
int
usedCount
=
usageItem
.
getUsedCount
();
usageItem
.
setUsedCount
(
usedCount
-
1
);
usageMap
.
put
(
sizeStr
,
usageItem
);
}
}
}
public
void
initUsage
(
List
<
PlateSizeBean
>
plateSizeBeanList
){
usageMap
=
new
ConcurrentHashMap
<>();
int
totalPosCount
=
0
;
int
emptyPosCount
=
0
;
for
(
PlateSizeBean
plateSizeBean
:
plateSizeBeanList
)
{
String
sizeStr
=
plateSizeBean
.
getSizeStr
();
UsageItem
usageItem
=
usageMap
.
get
(
sizeStr
);
if
(
usageItem
==
null
){
usageItem
=
new
UsageItem
();
usageItem
.
setW
(
plateSizeBean
.
getPlateSize
().
getW
());
usageItem
.
setH
(
plateSizeBean
.
getPlateSize
().
getH
());
}
if
(
plateSizeBean
.
getPlateSize
().
isUsed
()){
int
usedCount
=
plateSizeBean
.
getCount
();
usageItem
.
setUsedCount
(
usedCount
);
usageItem
.
setTotalCount
(
usedCount
+
usageItem
.
getTotalCount
());
}
else
{
//未使用的数量
int
idleCount
=
plateSizeBean
.
getCount
();
usageItem
.
setTotalCount
(
idleCount
+
usageItem
.
getTotalCount
());
emptyPosCount
=
emptyPosCount
+
idleCount
;
}
totalPosCount
=
totalPosCount
+
plateSizeBean
.
getCount
();
usageMap
.
put
(
sizeStr
,
usageItem
);
}
this
.
setEmptySlots
(
emptyPosCount
);
this
.
setTotalSlots
(
totalPosCount
);
}
}
}
myproject/src/main/java/com/myproject/bean/update/StoragePos.java
查看文件 @
8f158bb
...
@@ -187,4 +187,8 @@ public class StoragePos extends BaseMongoBean {
...
@@ -187,4 +187,8 @@ public class StoragePos extends BaseMongoBean {
public
void
setLimitPnList
(
List
<
String
>
limitPnList
)
{
public
void
setLimitPnList
(
List
<
String
>
limitPnList
)
{
this
.
limitPnList
=
limitPnList
;
this
.
limitPnList
=
limitPnList
;
}
}
public
String
getSizeStr
(){
return
w
+
"x"
+
h
;
}
}
}
myproject/src/main/java/com/myproject/webapp/controller/FileUploadController.java
查看文件 @
8f158bb
...
@@ -372,7 +372,7 @@ public class FileUploadController extends BaseFormController {
...
@@ -372,7 +372,7 @@ public class FileUploadController extends BaseFormController {
storagePosManager
.
save
(
storagePos
);
storagePosManager
.
save
(
storagePos
);
}
}
}
}
dataCache
.
update
Storage
(
storage
);
dataCache
.
reload
Storage
(
storage
);
String
msg
=
"读取到["
+
list
.
size
()+
"]个位置信息:新增【"
+
newRowCount
+
"】更新【"
+
updateRowCount
+
"】"
;
String
msg
=
"读取到["
+
list
.
size
()+
"]个位置信息:新增【"
+
newRowCount
+
"】更新【"
+
updateRowCount
+
"】"
;
log
.
info
(
msg
);
log
.
info
(
msg
);
...
...
myproject/src/main/java/com/myproject/webapp/controller/cloud/StorageCloudUpdateController.java
查看文件 @
8f158bb
...
@@ -85,13 +85,13 @@ public class StorageCloudUpdateController extends BaseUpdateController {
...
@@ -85,13 +85,13 @@ public class StorageCloudUpdateController extends BaseUpdateController {
}
else
{
}
else
{
try
{
try
{
Storage
storage
=
storageUpdateForm
.
getStorage
();
Storage
storage
=
storageUpdateForm
.
getStorage
();
storage
=
dataCache
.
update
Storage
(
storage
);
storage
=
dataCache
.
reload
Storage
(
storage
);
fileUpload
.
setParam
(
storage
.
getId
());
fileUpload
.
setParam
(
storage
.
getId
());
saveMessage
(
request
,
getText
(
"storage.saveSuccess"
,
request
.
getLocale
()));
saveMessage
(
request
,
getText
(
"storage.saveSuccess"
,
request
.
getLocale
()));
return
"redirect:storageUpdate.html?id="
+
storage
.
getId
();
return
"redirect:storageUpdate.html?id="
+
storage
.
getId
();
}
catch
(
Validate
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
);
log
.
error
(
e
);
String
errormsg
=
getText
(
e
.
getMessage
(),
e
.
getParams
(),
request
.
getLocale
());
String
errormsg
=
getText
(
e
.
getMessage
(),
request
.
getLocale
());
log
.
error
(
errormsg
);
log
.
error
(
errormsg
);
saveError
(
request
,
errormsg
);
saveError
(
request
,
errormsg
);
}
}
...
...
myproject/src/main/java/com/myproject/webapp/controller/storage/StorageUpdateController.java
查看文件 @
8f158bb
...
@@ -66,13 +66,13 @@ public class StorageUpdateController extends BaseUpdateController {
...
@@ -66,13 +66,13 @@ public class StorageUpdateController extends BaseUpdateController {
return
getSuccessView
();
return
getSuccessView
();
}
else
{
}
else
{
try
{
try
{
dataCache
.
update
Storage
(
storage
);
dataCache
.
reload
Storage
(
storage
);
//fileUpload.setParam(storage.getId());
//fileUpload.setParam(storage.getId());
saveMessage
(
request
,
getText
(
"storage.saveSuccess"
,
request
.
getLocale
()));
saveMessage
(
request
,
getText
(
"storage.saveSuccess"
,
request
.
getLocale
()));
//return "redirect:storageUpdate.html?id="+storage.getId();
//return "redirect:storageUpdate.html?id="+storage.getId();
}
catch
(
Validate
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
);
log
.
error
(
e
);
String
errormsg
=
getText
(
e
.
getMessage
(),
e
.
getParams
(),
request
.
getLocale
());
String
errormsg
=
getText
(
e
.
getMessage
(),
request
.
getLocale
());
log
.
error
(
errormsg
);
log
.
error
(
errormsg
);
saveError
(
request
,
errormsg
);
saveError
(
request
,
errormsg
);
}
}
...
...
myproject/src/main/java/com/myproject/webapp/controller/storage/VirtualBoxController.java
查看文件 @
8f158bb
...
@@ -203,7 +203,7 @@ public class VirtualBoxController extends BaseController{
...
@@ -203,7 +203,7 @@ public class VirtualBoxController extends BaseController{
}
}
storagePosManager
.
insertAll
(
posList
);
storagePosManager
.
insertAll
(
posList
);
dataCache
.
update
Storage
(
virtualStorage
);
dataCache
.
reload
Storage
(
virtualStorage
);
return
"保存成功"
;
return
"保存成功"
;
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/DataCache.java
查看文件 @
8f158bb
...
@@ -7,6 +7,7 @@ import com.google.common.collect.Maps;
...
@@ -7,6 +7,7 @@ import com.google.common.collect.Maps;
import
com.google.common.collect.Multiset
;
import
com.google.common.collect.Multiset
;
import
com.myproject.bean.CodeBean
;
import
com.myproject.bean.CodeBean
;
import
com.myproject.bean.json.InventoryItem
;
import
com.myproject.bean.json.InventoryItem
;
import
com.myproject.bean.json.PlateSizeBean
;
import
com.myproject.bean.update.*
;
import
com.myproject.bean.update.*
;
import
com.myproject.dao.mongo.*
;
import
com.myproject.dao.mongo.*
;
import
com.myproject.exception.ValidateException
;
import
com.myproject.exception.ValidateException
;
...
@@ -509,9 +510,13 @@ public class DataCache{
...
@@ -509,9 +510,13 @@ public class DataCache{
if
(
all
!=
null
){
if
(
all
!=
null
){
Map
<
String
,
Storage
>
map
=
new
ConcurrentHashMap
<>();
Map
<
String
,
Storage
>
map
=
new
ConcurrentHashMap
<>();
for
(
Storage
storage
:
all
){
for
(
Storage
storage
:
all
){
List
<
PLATE_SIZE
>
plateSizes
=
storagePosManager
.
distinctPlateSize
(
storage
.
getId
());
storage
.
setPlateSizes
(
plateSizes
);
List
<
PlateSizeBean
>
plateSizeBeanList
=
storagePosManager
.
getStoragePosUsage
(
storage
.
getId
());
storage
.
initUsage
(
plateSizeBeanList
);
map
.
put
(
storage
.
getCid
(),
storage
);
map
.
put
(
storage
.
getCid
(),
storage
);
}
}
allStorage
=
map
;
allStorage
=
map
;
log
.
info
(
"加载所有料仓["
+
all
.
size
()+
"]信息到缓存"
);
log
.
info
(
"加载所有料仓["
+
all
.
size
()+
"]信息到缓存"
);
...
@@ -524,17 +529,6 @@ public class DataCache{
...
@@ -524,17 +529,6 @@ public class DataCache{
/**
/**
* 获取某区域可以放入该尺寸料盘的所有料仓名称
*/
public
List
<
String
>
getCanPutInStorages
(
String
areaId
,
int
w
,
int
h
){
List
<
String
>
storageList
=
Lists
.
newArrayList
();
for
(
Storage
storage
:
getAllStorage
().
values
()){
storageList
.
add
(
storage
.
getName
());
}
return
storageList
;
}
/**
* 根据 cid 获取料仓信息
* 根据 cid 获取料仓信息
*/
*/
public
Storage
getStorage
(
String
cid
){
public
Storage
getStorage
(
String
cid
){
...
@@ -559,21 +553,26 @@ public class DataCache{
...
@@ -559,21 +553,26 @@ public class DataCache{
/**
/**
* 更新料仓信息
* 更新料仓信息
*/
*/
public
Storage
updateStorage
(
String
cid
)
throws
ValidateException
{
// public Storage updateStorage(String cid) throws ValidateException {
Storage
storage
=
getStorage
(
cid
);
// Storage storage = getStorage(cid);
return
updateStorage
(
storage
);
// return updateStorage(storage);
}
// }
//
/**
// /**
* 更新料仓信息
// * 更新料仓信息
*/
// */
public
Storage
updateStorage
(
Storage
storage
)
throws
ValidateException
{
// public Storage updateStorage(Storage storage) throws ValidateException {
storage
.
setTotalSlots
(
storagePosManager
.
countTotalStorageSize
(
storage
.
getId
()));
// storage.setTotalSlots(storagePosManager.countTotalStorageSize(storage.getId()));
storage
.
setEmptySlots
(
storagePosManager
.
countEmptyStorageSize
(
storage
.
getId
()));
// storage.setEmptySlots(storagePosManager.countEmptyStorageSize(storage.getId()));
storageManager
.
save
(
storage
);
// storageManager.save(storage);
List
<
PLATE_SIZE
>
plateSizes
=
storagePosManager
.
distinctPlateSize
(
storage
.
getId
());
// getAllStorage().put(storage.getCid(), storage);
storage
.
setPlateSizes
(
plateSizes
);
// return storage;
getAllStorage
().
put
(
storage
.
getCid
(),
storage
);
// }
public
Storage
reloadStorage
(
Storage
storage
){
List
<
PlateSizeBean
>
plateSizeBeanList
=
storagePosManager
.
getStoragePosUsage
(
storage
.
getId
());
storage
.
initUsage
(
plateSizeBeanList
);
allStorage
.
put
(
storage
.
getCid
(),
storage
);
return
storage
;
return
storage
;
}
}
...
@@ -681,7 +680,24 @@ public class DataCache{
...
@@ -681,7 +680,24 @@ public class DataCache{
/**
/**
* 修改库存,出库为负,入库为正
* 修改库存,出库为负,入库为正
*/
*/
public
int
updateInventory
(
String
cid
,
String
partNumber
,
int
amount
){
public
int
updateInventory
(
StoragePos
pos
,
Barcode
barcode
){
Storage
storage
=
getStorageById
(
pos
.
getStorageId
());
String
cid
=
storage
.
getCid
();
String
partNumber
=
barcode
.
getPartNumber
();
int
amount
=
0
;
String
sizeStr
=
pos
.
getSizeStr
();
if
(
pos
.
getBarcode
()
==
null
){
//出库
amount
=
-
barcode
.
getAmount
();
storage
.
emptyOnePos
(
pos
);
}
else
{
//入库
amount
=
barcode
.
getAmount
();
storage
.
useOnePos
(
pos
);
}
allStorage
.
put
(
cid
,
storage
);
if
(
amount
!=
0
){
if
(
amount
!=
0
){
InventoryItem
inventoryItem
=
getStorageInventoryByPartNumber
(
cid
,
partNumber
);
InventoryItem
inventoryItem
=
getStorageInventoryByPartNumber
(
cid
,
partNumber
);
if
(
inventoryItem
==
null
){
if
(
inventoryItem
==
null
){
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/QisdaApiController.java
查看文件 @
8f158bb
...
@@ -1036,21 +1036,25 @@ public class QisdaApiController extends BaseController {
...
@@ -1036,21 +1036,25 @@ public class QisdaApiController extends BaseController {
private
List
<
DataLog
>
checkOutTail
(
OutItem
outItem
){
private
List
<
DataLog
>
checkOutTail
(
OutItem
outItem
){
List
<
DataLog
>
tasks
=
new
ArrayList
<>();
List
<
DataLog
>
tasks
=
new
ArrayList
<>();
if
(
outItem
.
getSendQty
()
>
outItem
.
getQty
()){
//出经发完料
return
tasks
;
}
//再绑定一遍
//再绑定一遍
firstBindCutReel
(
outItem
);
firstBindCutReel
(
outItem
);
secondBindCutReel
(
outItem
);
secondBindCutReel
(
outItem
);
realBindReel
(
outItem
);
realBindReel
(
outItem
);
List
<
StoragePos
>
bindPosList
=
storagePosDao
.
findBindList
(
outItem
.
getSo
(),
outItem
.
getSlotlocation
());
List
<
StoragePos
>
bindPosList
=
storagePosDao
.
findBindList
(
outItem
.
getSo
(),
outItem
.
getSlotlocation
());
//没有顺序
//没有顺序
int
outQty
=
outItem
.
getOut
Qty
();
int
sendQty
=
outItem
.
getSend
Qty
();
for
(
StoragePos
pos
:
bindPosList
)
{
for
(
StoragePos
pos
:
bindPosList
)
{
Barcode
posBarcode
=
pos
.
getBarcode
();
Barcode
posBarcode
=
pos
.
getBarcode
();
DataLog
task
=
newTask
(
outItem
,
pos
);
DataLog
task
=
newTask
(
outItem
,
pos
);
task
=
InquiryShelfBean
.
addUnlimitLoc
(
task
,
outItem
);
task
=
InquiryShelfBean
.
addUnlimitLoc
(
task
,
outItem
);
task
=
dataLogDao
.
save
(
task
);
task
=
dataLogDao
.
save
(
task
);
tasks
.
add
(
task
);
tasks
.
add
(
task
);
outQty
=
out
Qty
+
posBarcode
.
getAmount
();
sendQty
=
send
Qty
+
posBarcode
.
getAmount
();
if
(
out
Qty
>
outItem
.
getQty
()){
if
(
send
Qty
>
outItem
.
getQty
()){
break
;
break
;
}
}
}
}
...
@@ -1064,8 +1068,8 @@ public class QisdaApiController extends BaseController {
...
@@ -1064,8 +1068,8 @@ public class QisdaApiController extends BaseController {
secondBindCutReel
(
outItem
);
secondBindCutReel
(
outItem
);
realBindReel
(
outItem
);
realBindReel
(
outItem
);
if
(
outItem
.
get
Out
Qty
()
>
0
){
if
(
outItem
.
get
Send
Qty
()
>
0
){
//出经
出完
//出经
发完料
return
tasks
;
return
tasks
;
}
}
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/QisdaDeviceController.java
查看文件 @
8f158bb
...
@@ -207,7 +207,7 @@ public class QisdaDeviceController extends BaseController {
...
@@ -207,7 +207,7 @@ public class QisdaDeviceController extends BaseController {
//未找到,说明是未绑定过的新料架,找相同类型的进行绑定
//未找到,说明是未绑定过的新料架,找相同类型的进行绑定
//未找到已经有实际RFID的料架,查找库位最多的料架
//未找到已经有实际RFID的料架,查找库位最多的料架
if
(
bigShelf
==
null
){
if
(
bigShelf
==
null
){
log
.
info
(
"未找到实际绑定的["
+
bigRfid
+
"]料架,开始查找
库位最多
的C型料架"
);
log
.
info
(
"未找到实际绑定的["
+
bigRfid
+
"]料架,开始查找
序号最小
的C型料架"
);
ShelfInfo
maxLocShelf
=
inquiryShelfBean
.
findMaxUsedShelf
(
hSerial
,
StorageConstants
.
SHEFL_TYPE
.
C
);
ShelfInfo
maxLocShelf
=
inquiryShelfBean
.
findMaxUsedShelf
(
hSerial
,
StorageConstants
.
SHEFL_TYPE
.
C
);
if
(
maxLocShelf
!=
null
){
if
(
maxLocShelf
!=
null
){
bigShelf
=
maxLocShelf
;
bigShelf
=
maxLocShelf
;
...
@@ -283,7 +283,9 @@ public class QisdaDeviceController extends BaseController {
...
@@ -283,7 +283,9 @@ public class QisdaDeviceController extends BaseController {
bigLoc
=
shelfLoc
.
getLoc
()
+
""
;
bigLoc
=
shelfLoc
.
getLoc
()
+
""
;
}
}
}
else
{
}
else
{
//尾料,不需要固定位置
//尾料,不需要固定位置,返回机器人架位的同时,锁定此位置
bigShelf
.
lockForPackage
(
shelfLoc
,
barcode
);
InquiryShelfBean
.
updateShelfInfo
(
bigShelf
);
bigLoc
=
shelfLoc
.
getLoc
()
+
""
;
bigLoc
=
shelfLoc
.
getLoc
()
+
""
;
}
}
}
}
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/StorageDataController.java
查看文件 @
8f158bb
...
@@ -600,7 +600,7 @@ public class StorageDataController extends BaseController {
...
@@ -600,7 +600,7 @@ public class StorageDataController extends BaseController {
taskService
.
addPutInTaskToExecute
(
theStorage
,
barcode
,
pos
);
taskService
.
addPutInTaskToExecute
(
theStorage
,
barcode
,
pos
);
}
else
{
}
else
{
resultMap
.
put
(
"result"
,
"104"
);
resultMap
.
put
(
"result"
,
"104"
);
errorMsg
=
"未找到可用的仓位"
;
errorMsg
=
"未找到可用的
["
+
barcode
.
getPlateSize
()
+
"x"
+
barcode
.
getHeight
()+
"]
仓位"
;
resultMap
.
put
(
"msg"
,
errorMsg
);
resultMap
.
put
(
"msg"
,
errorMsg
);
}
}
}
catch
(
ValidateException
e
)
{
}
catch
(
ValidateException
e
)
{
...
@@ -661,39 +661,55 @@ public class StorageDataController extends BaseController {
...
@@ -661,39 +661,55 @@ public class StorageDataController extends BaseController {
return
componentList
.
getList
();
return
componentList
.
getList
();
}
}
@RequestMapping
(
"/getStorage
Useage
"
)
@RequestMapping
(
"/getStorage"
)
@ResponseBody
@ResponseBody
public
List
<
PlateSizeBean
>
getStorageUseage
(
HttpServletRequest
request
,
HttpServletResponse
response
){
public
Storage
getStorageUseage
(
HttpServletRequest
request
,
HttpServletResponse
response
){
String
cid
=
request
.
getParameter
(
"cid"
);
String
cid
=
request
.
getParameter
(
"cid"
);
Storage
storage
=
dataCache
.
getStorage
(
cid
);
return
dataCache
.
getStorage
(
cid
);
if
(
storage
==
null
){
}
return
null
;
//
}
// @RequestMapping("/listStorageUseage")
String
storageId
=
storage
.
getId
();
// @ResponseBody
return
storagePosManager
.
getStoragePosUsage
(
storageId
);
// public Map<String,List<PlateSizeBean>> listStorageUseage(HttpServletRequest request, HttpServletResponse response){
}
// String cids = request.getParameter("cids");
// Collection<String> cidList;
// if(Strings.isNullOrEmpty(cids)){
// cidList = dataCache.getAllStorage().keySet();
// }else{
// cidList = Lists.newArrayList(cids.split(","));
// }
// Map<String, List<PlateSizeBean>> map= Maps.newHashMap();
// for (String cid : cidList) {
// Storage storage = dataCache.getStorage(cid);
// if(storage == null){
// continue;
// }
// String storageId = storage.getId();
// List<PlateSizeBean> usage = storagePosManager.getStoragePosUsage(storageId);
// map.put(cid, usage);
// }
// return map;
// }
@RequestMapping
(
"/
listStorageUseage
"
)
@RequestMapping
(
"/
storageList
"
)
@ResponseBody
@ResponseBody
public
Map
<
String
,
List
<
PlateSizeBean
>>
listStorageUseage
(
HttpServletRequest
request
,
HttpServletResponse
response
){
public
Collection
<
Storage
>
usageMap
(
HttpServletRequest
request
,
HttpServletResponse
response
){
String
cids
=
request
.
getParameter
(
"cids"
);
String
cids
=
request
.
getParameter
(
"cids"
);
Collection
<
St
ring
>
cidList
;
Collection
<
St
orage
>
storageList
=
null
;
if
(
Strings
.
isNullOrEmpty
(
cids
)){
if
(
Strings
.
isNullOrEmpty
(
cids
)){
cidList
=
dataCache
.
getAllStorage
().
keySet
();
storageList
=
dataCache
.
getAllStorage
().
values
();
}
else
{
}
else
{
cidList
=
Lists
.
newArrayList
(
cids
.
split
(
","
)
);
storageList
=
new
ArrayList
<>(
);
}
for
(
String
cid
:
Lists
.
newArrayList
(
cids
.
split
(
","
)))
{
Map
<
String
,
List
<
PlateSizeBean
>>
map
=
Maps
.
newHashMap
(
);
Storage
storage
=
dataCache
.
getStorage
(
cid
);
for
(
String
cid
:
cidList
)
{
if
(
storage
==
null
)
{
Storage
storage
=
dataCache
.
getStorage
(
cid
)
;
continue
;
if
(
storage
==
null
){
}
continue
;
storageList
.
add
(
storage
)
;
}
}
String
storageId
=
storage
.
getId
();
List
<
PlateSizeBean
>
usage
=
storagePosManager
.
getStoragePosUsage
(
storageId
);
map
.
put
(
cid
,
usage
);
}
}
return
map
;
return
storageList
;
}
}
@RequestMapping
(
"/deviceInfos"
)
@RequestMapping
(
"/deviceInfos"
)
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/TaskService.java
查看文件 @
8f158bb
...
@@ -1012,6 +1012,8 @@ public class TaskService implements ITaskService {
...
@@ -1012,6 +1012,8 @@ public class TaskService implements ITaskService {
}
}
if
(
storageTask
!=
null
){
if
(
storageTask
!=
null
){
log
.
info
(
"出库首盘料任务"
+
storageTask
.
getBarcode
()+
"["
+
storageTask
.
getPosName
()+
"]"
+
storageTask
.
getAppendInfo
());
log
.
info
(
"出库首盘料任务"
+
storageTask
.
getBarcode
()+
"["
+
storageTask
.
getPosName
()+
"]"
+
storageTask
.
getAppendInfo
());
}
else
{
return
null
;
}
}
//如果当前任务(执行中或已完成出库但未放到料架上的任务)的C或D料架数量大于2个,不允许出库
//如果当前任务(执行中或已完成出库但未放到料架上的任务)的C或D料架数量大于2个,不允许出库
...
@@ -1035,12 +1037,17 @@ public class TaskService implements ITaskService {
...
@@ -1035,12 +1037,17 @@ public class TaskService implements ITaskService {
}
}
}
}
}
}
if
(!
shelfNameList
.
contains
(
storageTask
.
getAppendInfo
().
getTempRfid
())){
if
(!
shelfNameList
.
contains
(
storageTask
.
getAppendInfo
().
getTempRfid
())){
if
(
storageTask
.
getAppendInfo
().
isCShelfTask
()){
for
(
String
shelfName
:
shelfNameList
)
{
//大料(C料架)只能同时出一个架子,不然到包装料工位时无法切换
//判断未完成的工单料架中是否有大料架
log
.
info
(
"未完成的工单料架为:["
+
String
.
join
(
","
,
shelfNameList
)+
"]大料架任务["
+
storageTask
.
getBarcode
()+
"]暂停出库,以免包装工位无法切换"
);
if
(
StorageConstants
.
SHEFL_TYPE
.
isCShelf
(
shelfName
)){
return
null
;
//大料(C料架)只能同时出一个架子,不然到包装料工位时无法切换
}
log
.
info
(
"未完成的工单料架为:["
+
String
.
join
(
","
,
shelfNameList
)+
"]大料架任务["
+
storageTask
.
getBarcode
()+
"]暂停出库,以免包装工位无法切换"
);
return
null
;
}
}
//未完成的工单任务料架数量>2,且未包含此任务,任务先不出,等到只有一个料架时再说
//未完成的工单任务料架数量>2,且未包含此任务,任务先不出,等到只有一个料架时再说
if
(
shelfNameList
.
size
()
>=
2
){
if
(
shelfNameList
.
size
()
>=
2
){
log
.
info
(
"未完成的工单任务料架为:["
+
String
.
join
(
","
,
shelfNameList
)+
"]任务"
+
storageTask
.
getBarcode
()+
"暂停出库"
);
log
.
info
(
"未完成的工单任务料架为:["
+
String
.
join
(
","
,
shelfNameList
)+
"]任务"
+
storageTask
.
getBarcode
()+
"暂停出库"
);
...
@@ -1688,8 +1695,8 @@ public class TaskService implements ITaskService {
...
@@ -1688,8 +1695,8 @@ public class TaskService implements ITaskService {
task
.
setAppendInfo
(
barcode
.
getAppendInfo
());
task
.
setAppendInfo
(
barcode
.
getAppendInfo
());
task
.
setNum
(
barcode
.
getAmount
());
task
.
setNum
(
barcode
.
getAmount
());
dataCache
.
updateInventory
(
task
.
getCid
(),
barcode
.
getPartNumber
(),
barcode
.
getAmount
()
);
dataCache
.
updateInventory
(
pos
,
barcode
);
dataCache
.
updateStorage
(
task
.
getCid
());
//
dataCache.updateStorage(task.getCid());
}
else
{
}
else
{
barcode
=
pos
.
getBarcode
();
barcode
=
pos
.
getBarcode
();
...
@@ -1707,8 +1714,8 @@ public class TaskService implements ITaskService {
...
@@ -1707,8 +1714,8 @@ public class TaskService implements ITaskService {
storagePosManager
.
save
(
pos
);
storagePosManager
.
save
(
pos
);
dataCache
.
updateInventory
(
task
.
getCid
(),
barcode
.
getPartNumber
(),
-
barcode
.
getAmount
()
);
dataCache
.
updateInventory
(
pos
,
barcode
);
dataCache
.
updateStorage
(
task
.
getCid
());
//
dataCache.updateStorage(task.getCid());
}
}
...
@@ -1846,17 +1853,17 @@ public class TaskService implements ITaskService {
...
@@ -1846,17 +1853,17 @@ public class TaskService implements ITaskService {
/**
/**
* 仓位状态
* 仓位状态
*/
*/
componentPos
.
setBarcode
(
componentBarcode
);
componentPos
.
setUsed
(
true
);
componentPos
.
setCanCheckOutTime
(
canCheckOutTime
);
storagePosManager
.
save
(
componentPos
);
//更新缓存中的库存信息
//更新缓存中的库存信息
int
stockReel
=
dataCache
.
updateInventory
(
task
.
getCid
(),
componentBarcode
.
getPartNumber
(),
componentBarcode
.
getAmount
()
);
int
stockReel
=
dataCache
.
updateInventory
(
storagePos
,
componentBarcode
);
dataCache
.
updateStorage
(
task
.
getCid
());
//
dataCache.updateStorage(task.getCid());
log
.
info
(
"入库"
+
componentBarcode
.
getPartNumber
()+
"["
+
componentBarcode
.
getBarcode
()+
"]当前库存:"
+
stockReel
+
"到"
+
componentPos
.
getPosName
()+
"可出库时间:"
+
new
Date
(
canCheckOutTime
));
log
.
info
(
"入库"
+
componentBarcode
.
getPartNumber
()+
"["
+
componentBarcode
.
getBarcode
()+
"]当前库存:"
+
stockReel
+
"到"
+
componentPos
.
getPosName
()+
"可出库时间:"
+
new
Date
(
canCheckOutTime
));
componentPos
.
setBarcode
(
componentBarcode
);
componentPos
.
setUsed
(
true
);
componentPos
.
setCanCheckOutTime
(
canCheckOutTime
);
storagePosManager
.
save
(
componentPos
);
}
}
}
else
{
//条码不是夹具
}
else
{
//条码不是夹具
...
@@ -1891,9 +1898,9 @@ public class TaskService implements ITaskService {
...
@@ -1891,9 +1898,9 @@ public class TaskService implements ITaskService {
storagePosManager
.
save
(
storagePos
);
storagePosManager
.
save
(
storagePos
);
//更新缓存中的库存信息
//更新缓存中的库存信息
dataCache
.
updateInventory
(
task
.
getCid
(),
task
.
getPartNumber
(),
barcode
.
getAmount
()
);
dataCache
.
updateInventory
(
storagePos
,
barcode
);
dataCache
.
updateStorage
(
task
.
getCid
());
//
dataCache.updateStorage(task.getCid());
//
//
// Storage storage = dataCache.getStorage(task.getCid());
// Storage storage = dataCache.getStorage(task.getCid());
// if(storage != null){
// if(storage != null){
...
@@ -1908,7 +1915,6 @@ public class TaskService implements ITaskService {
...
@@ -1908,7 +1915,6 @@ public class TaskService implements ITaskService {
dataLogDao
.
save
(
task
);
dataLogDao
.
save
(
task
);
finishedTaskMap
.
put
(
task
.
getBarcode
(),
task
);
finishedTaskMap
.
put
(
task
.
getBarcode
(),
task
);
updateInQisdaData
(
barcode
,
task
);
updateInQisdaData
(
barcode
,
task
);
...
@@ -2005,9 +2011,8 @@ public class TaskService implements ITaskService {
...
@@ -2005,9 +2011,8 @@ public class TaskService implements ITaskService {
String
outItemId
=
appendInfo
.
getOutItemId
();
String
outItemId
=
appendInfo
.
getOutItemId
();
log
.
info
(
"出库完成,清空仓位: "
+
storagePos
.
getId
()
+
"["
+
storagePos
.
getPosName
()
+
"]outItemId"
+
outItemId
);
log
.
info
(
"出库完成,清空仓位: "
+
storagePos
.
getId
()
+
"["
+
storagePos
.
getPosName
()
+
"]outItemId"
+
outItemId
);
dataCache
.
updateStorage
(
task
.
getCid
());
//更新缓存中的库存信息
//更新缓存中的库存信息
dataCache
.
updateInventory
(
task
.
getCid
(),
task
.
getPartNumber
(),
0
-
task
.
getNum
()
);
dataCache
.
updateInventory
(
storagePos
,
barcode
);
//记录日志
//记录日志
task
.
setStatus
(
StorageConstants
.
OP_STATUS
.
OUTBOX
.
name
());
task
.
setStatus
(
StorageConstants
.
OP_STATUS
.
OUTBOX
.
name
());
...
@@ -2015,7 +2020,7 @@ public class TaskService implements ITaskService {
...
@@ -2015,7 +2020,7 @@ public class TaskService implements ITaskService {
finishedTaskMap
.
put
(
task
.
getBarcode
(),
task
);
finishedTaskMap
.
put
(
task
.
getBarcode
(),
task
);
dataCache
.
updateStorage
(
task
.
getCid
());
//
dataCache.updateStorage(task.getCid());
finishedOrderTask
(
task
);
finishedOrderTask
(
task
);
//checkTaskSetFinished(task);
//checkTaskSetFinished(task);
...
...
myproject/src/main/webapp/WEB-INF/pages/cloud/alarmInfoSearch.jsp
查看文件 @
8f158bb
...
@@ -52,7 +52,8 @@
...
@@ -52,7 +52,8 @@
</form>
</form>
<display:table name="searchCriteria.pageList" requestURI=""
<display:table name="searchCriteria.pageList" requestURI=""
sort="external"
sort="external"
defaultsort="1" class="table table-striped table-bordered table-hover" export="false" id="alarmInfo">
defaultsort="1" class="table table-striped table-bordered table-hover" export="true" id="alarmInfo">
<display:setProperty name="export.csv.filename" value="alarmInfoList.csv" />
<display:column titleKey="alarmInfo.position" sortable="true" sortProperty="storageName">
<display:column titleKey="alarmInfo.position" sortable="true" sortProperty="storageName">
${alarmInfo.storageName}<c:if test="${alarmInfo.boxId != 0}">-BOX ${alarmInfo.boxId}</c:if>
${alarmInfo.storageName}<c:if test="${alarmInfo.boxId != 0}">-BOX ${alarmInfo.boxId}</c:if>
</display:column>
</display:column>
...
...
myproject/src/main/webapp/WEB-INF/pages/component/componentSearch.jsp
查看文件 @
8f158bb
...
@@ -84,7 +84,7 @@
...
@@ -84,7 +84,7 @@
<div class="table-scrollable">
<div class="table-scrollable">
<display:table name="searchCriteria.pageList" cellspacing="0" cellpadding="0" requestURI="componentSearch.html?type=${type}"
<display:table name="searchCriteria.pageList" cellspacing="0" cellpadding="0" requestURI="componentSearch.html?type=${type}"
sort="external"
sort="external"
defaultsort="1" class="table table-striped table-bordered table-hover" export="
fals
e" id="component">
defaultsort="1" class="table table-striped table-bordered table-hover" export="
tru
e" id="component">
<%--<display:column property="name" titleKey="component.name"/>--%>
<%--<display:column property="name" titleKey="component.name"/>--%>
<display:column titleKey="component.partNumber">
<display:column titleKey="component.partNumber">
<a href="${ctx}/component/componentUpdate.html?type=${component.type}&id=${component.id}">${component.partNumber}</a>
<a href="${ctx}/component/componentUpdate.html?type=${component.type}&id=${component.id}">${component.partNumber}</a>
...
...
myproject/src/main/webapp/WEB-INF/pages/storage/allBoxView.jsp
查看文件 @
8f158bb
...
@@ -761,27 +761,10 @@
...
@@ -761,27 +761,10 @@
//刷新库存情况
//刷新库存情况
function flushUsageItem(){
function flushUsageItem(){
$.post("${ctx}/service/store/listStorageUseage", {cids:"${cids}"}, function (dataMap) {
$.post("${ctx}/service/store/storageList", {cids:"${cids}"}, function (storageList) {
for(var cid in dataMap){
for(var i in storageList){
var data = dataMap[cid];
var storage = storageList[i];
var sizeData = {};
var sizeData = storage.usageMap;
for(var i in data){
var itemData = data[i];
var sizeItem = sizeData[itemData.sizeStr];
if(!sizeItem){
sizeItem = {};
sizeItem["w"] = itemData.plateSize.w;
sizeItem["h"] = itemData.plateSize.h;
sizeItem["usedCount"] = 0;
sizeItem["idleCount"] = 0;
}
if(itemData.plateSize.used){
sizeItem["usedCount"] = itemData.count;
}else{
sizeItem["idleCount"] = itemData.count;
}
sizeData[itemData.sizeStr] = sizeItem;
}
var sizeList = new Array();
var sizeList = new Array();
for(var sizeStr in sizeData){
for(var sizeStr in sizeData){
...
@@ -797,10 +780,12 @@
...
@@ -797,10 +780,12 @@
return w1 - w2;
return w1 - w2;
});
});
var cid = storage.cid;
for(var i in sizeList){
for(var i in sizeList){
var sizeItem = sizeList[i];
var sizeItem = sizeList[i];
var sizeStr = sizeItem.w + "x" + sizeItem.h;
var sizeStr = sizeItem.sizeStr;
var html = getItemBar(sizeItem["w"],sizeItem["h"],sizeItem["usedCount"],sizeItem["idleCount"]);
var idleCount = sizeItem.totalCount - sizeItem.usedCount;
var html = getItemBar(sizeItem["w"],sizeItem["h"],sizeItem["usedCount"],idleCount);
var sizeDom = $("#"+cid+" ."+sizeStr);
var sizeDom = $("#"+cid+" ."+sizeStr);
if(sizeDom.length == 0){
if(sizeDom.length == 0){
...
...
myproject/src/main/webapp/WEB-INF/pages/storage/boxView.jsp
查看文件 @
8f158bb
...
@@ -470,32 +470,16 @@
...
@@ -470,32 +470,16 @@
}
}
function flushUsageItem(){
function flushUsageItem(){
$.post("${ctx}/service/store/getStorageUseage", {cid: '${show}'}, function (data) {
$.post("${ctx}/service/store/getStorage", {cid: '${show}'}, function (storage) {
if(!isLimitOpt(data)){
if(!isLimitOpt(storage)){
var sizeData = {};
var sizeData = storage.usageMap;
for(var i in data){
var itemData = data[i];
var sizeItem = sizeData[itemData.sizeStr];
if(!sizeItem){
sizeItem = {};
sizeItem["w"] = itemData.plateSize.w;
sizeItem["h"] = itemData.plateSize.h;
sizeItem["usedCount"] = 0;
sizeItem["idleCount"] = 0;
}
if(itemData.plateSize.used){
sizeItem["usedCount"] = itemData.count;
}else{
sizeItem["idleCount"] = itemData.count;
}
sizeData[itemData.sizeStr] = sizeItem;
}
var cid = storage.cid;
var totalCount = 0;
var totalCount = 0;
for(var sizeStr in sizeData){
for(var sizeStr in sizeData){
sizeItem = sizeData[sizeStr];
var
sizeItem = sizeData[sizeStr];
totalCount = totalCount + sizeItem["usedCount"] + sizeItem["idleCount"]
;
var idleCount = sizeItem.totalCount - sizeItem.usedCount
;
var html = getItemBar(sizeItem["w"],sizeItem["h"],sizeItem["usedCount"],
sizeItem["idleCount"]
);
var html = getItemBar(sizeItem["w"],sizeItem["h"],sizeItem["usedCount"],
idleCount
);
var sizeDom = $("#"+sizeStr);
var sizeDom = $("#"+sizeStr);
if(sizeDom.length == 0){
if(sizeDom.length == 0){
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论