Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
SmdBox
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 76c0843e
由
sunke
编写于
2021-03-26 16:41:14 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
同一个PN允许多个供应商
条码数量如果与上次不一致(重打标签,用同一个RI),使用条码中的数量
1 个父辈
133b5c2e
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
22 个修改的文件
包含
236 行增加
和
99 行删除
myproject/src/main/java/com/csvreader/CsvReader.java
myproject/src/main/java/com/myproject/bean/update/Barcode.java
myproject/src/main/java/com/myproject/manager/IComponentManager.java
myproject/src/main/java/com/myproject/manager/impl/BarcodeManagerImpl.java
myproject/src/main/java/com/myproject/manager/impl/ComponentManagerImpl.java
myproject/src/main/java/com/myproject/mina/TcpServer.java
myproject/src/main/java/com/myproject/util/BarcodeRule.java
myproject/src/main/java/com/myproject/webapp/controller/FileUploadController.java
myproject/src/main/java/com/myproject/webapp/controller/barcode/BarcodeGenerateController.java
myproject/src/main/java/com/myproject/webapp/controller/storage/BoxChartController.java
myproject/src/main/java/com/myproject/webapp/controller/storage/SmdXLController.java
myproject/src/main/java/com/myproject/webapp/controller/storage/VerticalBoxController.java
myproject/src/main/java/com/myproject/webapp/controller/webService/DataCache.java
myproject/src/main/java/com/myproject/webapp/controller/webService/MesApiController.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/resources/StorageResources_zh_CN.properties
myproject/src/main/resources/mongo.properties
myproject/src/main/resources/mongo.xml
myproject/src/main/webapp/WEB-INF/pages/storage/accShelf.jsp
myproject/src/main/webapp/WEB-INF/pages/storage/allBoxView.jsp
myproject/src/main/webapp/resources/admin/linePositions.csv
myproject/src/main/java/com/csvreader/CsvReader.java
查看文件 @
76c0843
...
@@ -1455,6 +1455,21 @@ public class CsvReader {
...
@@ -1455,6 +1455,21 @@ public class CsvReader {
}
}
}
}
public
int
getIndex
(
String
...
headerNameAlias
){
for
(
String
headName:
headerNameAlias
)
{
try
{
int
index
=
getIndex
(
headName
);
if
(
index
!=
-
1
){
return
index
;
}
}
catch
(
Exception
e
){
}
}
return
-
1
;
}
/**
/**
* Skips the next record of data by parsing each column. Does not
* Skips the next record of data by parsing each column. Does not
* increment
* increment
...
...
myproject/src/main/java/com/myproject/bean/update/Barcode.java
查看文件 @
76c0843
...
@@ -55,6 +55,10 @@ public class Barcode extends BaseMongoBean {
...
@@ -55,6 +55,10 @@ public class Barcode extends BaseMongoBean {
private
String
providerNumber
;
private
String
providerNumber
;
private
int
initialAmount
;
private
int
initialAmount
;
private
int
amount
;
private
int
amount
;
/**
* 标签解析出来的数量,用于判断条码是否是重新打印的,重新打印的条码需要重新设置数量
*/
private
int
labelAmount
=
0
;
private
int
plateSize
;
private
int
plateSize
;
private
int
height
;
private
int
height
;
private
String
provider
;
private
String
provider
;
...
@@ -638,6 +642,14 @@ public class Barcode extends BaseMongoBean {
...
@@ -638,6 +642,14 @@ public class Barcode extends BaseMongoBean {
return
false
;
return
false
;
}
}
public
int
getLabelAmount
()
{
return
labelAmount
;
}
public
void
setLabelAmount
(
int
labelAmount
)
{
this
.
labelAmount
=
labelAmount
;
}
// public void setNoChangeField(Barcode oldBarcode){
// public void setNoChangeField(Barcode oldBarcode){
// if(oldBarcode != null){
// if(oldBarcode != null){
// this.expireDate = oldBarcode.getExpireDate();
// this.expireDate = oldBarcode.getExpireDate();
...
...
myproject/src/main/java/com/myproject/manager/IComponentManager.java
查看文件 @
76c0843
...
@@ -9,7 +9,9 @@ import java.util.List;
...
@@ -9,7 +9,9 @@ import java.util.List;
*/
*/
public
interface
IComponentManager
extends
IManager
<
Component
>
{
public
interface
IComponentManager
extends
IManager
<
Component
>
{
public
Component
findByPartNumber
(
String
partNumber
);
public
Component
findOneByPN
(
String
partNumber
);
Component
findByPartNumberAndProvider
(
String
partNumber
,
String
provider
);
List
<
Component
>
allNeedAlarmComponents
();
List
<
Component
>
allNeedAlarmComponents
();
...
...
myproject/src/main/java/com/myproject/manager/impl/BarcodeManagerImpl.java
查看文件 @
76c0843
...
@@ -57,8 +57,38 @@ public class BarcodeManagerImpl implements IBarcodeManager {
...
@@ -57,8 +57,38 @@ public class BarcodeManagerImpl implements IBarcodeManager {
@Override
@Override
public
Barcode
save
(
Barcode
barcode
)
throws
ValidateException
{
public
Barcode
save
(
Barcode
barcode
)
throws
ValidateException
{
validateSave
(
barcode
);
validateSave
(
barcode
);
Component
component
=
componentManager
.
findByPartNumber
(
barcode
.
getPartNumber
());
Component
component
=
componentManager
.
findByPartNumberAndProvider
(
barcode
.
getPartNumber
(),
barcode
.
getProvider
());
if
(
component
==
null
){
//未找到对应供应商的物料,如果有无供应商的物料,更改并使用
log
.
info
(
"找到供应商信息为空的档案,修改档案的供应商信息"
+
barcode
.
getProvider
());
component
=
componentManager
.
findByPartNumberAndProvider
(
barcode
.
getPartNumber
(),
null
);
}
if
(
component
==
null
){
//查找其他供应商的物料档案,复制一个
component
=
componentManager
.
findOneByPN
(
barcode
.
getPartNumber
());
if
(
component
!=
null
){
log
.
info
(
"未找到["
+
barcode
.
getPartNumber
()+
"]供应商["
+
barcode
.
getProvider
()+
"]对应的档案信息,从其他供应商["
+
component
.
getProvider
()+
"]档案复制一个"
);
//找到了,复制一个
Component
newComponent
=
new
Component
();
newComponent
.
setProvider
(
barcode
.
getProvider
());
newComponent
.
setPlateSize
(
component
.
getPlateSize
());
newComponent
.
setHeight
(
component
.
getHeight
());
newComponent
.
setPartNumber
(
component
.
getPartNumber
());
newComponent
.
setAmount
(
barcode
.
getAmount
());
newComponent
.
setName
(
component
.
getPartNumber
());
component
=
componentManager
.
save
(
component
);
}
}
if
(
component
!=
null
){
if
(
component
!=
null
){
if
(
Strings
.
isNullOrEmpty
(
component
.
getProvider
())){
//无供应商信息,更新供应商信息
log
.
info
(
"设置["
+
component
.
getPartNumber
()+
"]的供应商信息:"
+
barcode
.
getProvider
());
component
.
setProvider
(
barcode
.
getProvider
());
componentManager
.
save
(
component
);
}
if
(
barcode
.
getMaxStorageTime
()
<=
0
){
if
(
barcode
.
getMaxStorageTime
()
<=
0
){
barcode
.
setMaxStorageTime
(
component
.
getMaxStorageTime
());
barcode
.
setMaxStorageTime
(
component
.
getMaxStorageTime
());
}
}
...
@@ -77,11 +107,6 @@ public class BarcodeManagerImpl implements IBarcodeManager {
...
@@ -77,11 +107,6 @@ public class BarcodeManagerImpl implements IBarcodeManager {
}
else
{
}
else
{
log
.
error
(
"未找到物料["
+
barcode
.
getPartNumber
()+
"]的档案"
);
log
.
error
(
"未找到物料["
+
barcode
.
getPartNumber
()+
"]的档案"
);
}
}
// String id = barcode.getId();
// if(!Strings.isNullOrEmpty(id)){
// Barcode oldBarcode = get(id);
// //barcode.setNoChangeField(oldBarcode);
// }
return
barcodeDao
.
save
(
barcode
);
return
barcodeDao
.
save
(
barcode
);
}
}
...
@@ -120,7 +145,7 @@ public class BarcodeManagerImpl implements IBarcodeManager {
...
@@ -120,7 +145,7 @@ public class BarcodeManagerImpl implements IBarcodeManager {
protected
boolean
validateComponent
(
Barcode
barcode
)
{
protected
boolean
validateComponent
(
Barcode
barcode
)
{
return
componentManager
.
find
ByPartNumber
(
barcode
.
getPartNumber
())
!=
null
;
return
componentManager
.
find
OneByPN
(
barcode
.
getPartNumber
())
!=
null
;
}
}
protected
boolean
validateUnique
(
Barcode
barcode
)
{
protected
boolean
validateUnique
(
Barcode
barcode
)
{
...
...
myproject/src/main/java/com/myproject/manager/impl/ComponentManagerImpl.java
查看文件 @
76c0843
...
@@ -33,13 +33,30 @@ public class ComponentManagerImpl implements IComponentManager {
...
@@ -33,13 +33,30 @@ public class ComponentManagerImpl implements IComponentManager {
}
}
@Override
@Override
public
Component
find
ByPartNumber
(
String
partNumber
)
{
public
Component
find
OneByPN
(
String
partNumber
)
{
if
(
StringUtils
.
isEmpty
(
partNumber
))
if
(
StringUtils
.
isEmpty
(
partNumber
))
return
null
;
return
null
;
else
return
componentDao
.
findOneByCondition
(
new
String
[]
{
"partNumber"
},
new
String
[]
{
partNumber
});
else
return
componentDao
.
findOneByCondition
(
new
String
[]
{
"partNumber"
},
new
String
[]
{
partNumber
});
}
}
@Override
@Override
public
Component
findByPartNumberAndProvider
(
String
partNumber
,
String
provider
)
{
if
(
StringUtils
.
isEmpty
(
partNumber
))
return
null
;
else
{
Component
component
=
componentDao
.
findOneByCondition
(
new
String
[]
{
"partNumber"
,
"provider"
},
new
String
[]
{
partNumber
,
provider
});
if
(
component
==
null
){
component
=
componentDao
.
findOneByCondition
(
new
String
[]
{
"partNumber"
,
"provider"
},
new
String
[]
{
partNumber
,
null
});
if
(
provider
==
null
&&
component
==
null
){
//再查一下空字符串的
component
=
componentDao
.
findOneByCondition
(
new
String
[]
{
"partNumber"
,
"provider"
},
new
String
[]
{
partNumber
,
""
});
}
}
return
component
;
}
}
@Override
public
List
<
Component
>
allNeedAlarmComponents
(){
public
List
<
Component
>
allNeedAlarmComponents
(){
Criteria
c
=
Criteria
.
where
(
"minStoreNum"
).
gt
(
0
);
Criteria
c
=
Criteria
.
where
(
"minStoreNum"
).
gt
(
0
);
Query
query
=
Query
.
query
(
c
);
Query
query
=
Query
.
query
(
c
);
...
@@ -76,7 +93,7 @@ public class ComponentManagerImpl implements IComponentManager {
...
@@ -76,7 +93,7 @@ public class ComponentManagerImpl implements IComponentManager {
public
Component
save
(
Component
component
)
throws
ValidateException
{
public
Component
save
(
Component
component
)
throws
ValidateException
{
String
partNumber
=
component
.
getPartNumber
();
String
partNumber
=
component
.
getPartNumber
();
Component
dbComponent
=
findByPartNumber
(
partNumber
);
Component
dbComponent
=
findByPartNumber
AndProvider
(
partNumber
,
component
.
getProvider
()
);
if
(
dbComponent
!=
null
){
if
(
dbComponent
!=
null
){
//数据库中已存在,但不是更新(要保存的没有 ID,或者有 ID但与数据库中的 ID不一致)
//数据库中已存在,但不是更新(要保存的没有 ID,或者有 ID但与数据库中的 ID不一致)
if
(
Strings
.
isNullOrEmpty
(
component
.
getId
())
||
!
dbComponent
.
getId
().
equals
(
component
.
getId
())
){
if
(
Strings
.
isNullOrEmpty
(
component
.
getId
())
||
!
dbComponent
.
getId
().
equals
(
component
.
getId
())
){
...
...
myproject/src/main/java/com/myproject/mina/TcpServer.java
查看文件 @
76c0843
...
@@ -177,7 +177,7 @@ public class TcpServer {
...
@@ -177,7 +177,7 @@ public class TcpServer {
barcode
.
setAmount
(
amount
);
barcode
.
setAmount
(
amount
);
//未补过料
//未补过料
if
(
Strings
.
isNullOrEmpty
(
barcode
.
getNextBarcode
())){
if
(
Strings
.
isNullOrEmpty
(
barcode
.
getNextBarcode
())){
Component
component
=
componentManager
.
find
ByPartNumber
(
barcode
.
getPartNumber
());
Component
component
=
componentManager
.
find
OneByPN
(
barcode
.
getPartNumber
());
int
alarmAmount
=
component
.
getAlarmAmount
();
int
alarmAmount
=
component
.
getAlarmAmount
();
if
(
amount
<=
alarmAmount
){
if
(
amount
<=
alarmAmount
){
StoragePos
pos
=
storagePosManager
.
findPartNumberPos
(
null
,
barcode
.
getPartNumber
(),
new
ArrayList
<
String
>(),
StorageConstants
.
CHECKOUT_TYPE
.
FIFO
);
StoragePos
pos
=
storagePosManager
.
findPartNumberPos
(
null
,
barcode
.
getPartNumber
(),
new
ArrayList
<
String
>(),
StorageConstants
.
CHECKOUT_TYPE
.
FIFO
);
...
...
myproject/src/main/java/com/myproject/util/BarcodeRule.java
查看文件 @
76c0843
...
@@ -644,7 +644,7 @@ public class BarcodeRule {
...
@@ -644,7 +644,7 @@ public class BarcodeRule {
//rule = "SP;PN;PRODATEyyyyMMdd[0:8:0];BATCH;QTY;RI;";
//rule = "SP;PN;PRODATEyyyyMMdd[0:8:0];BATCH;QTY;RI;";
codeStr
=
"=7x8=[)>@SIIX20@2060GBUW00@1347-01358@5000.000 @@"
;
codeStr
=
"=7x8=[)>@SIIX20@2060GBUW00@1347-01358@5000.000 @@"
;
rule
=
"1@
[RI]
@BATCH@PN@QTY@@"
;
rule
=
"1@
RI
@BATCH@PN@QTY@@"
;
BarcodeRule
br
=
BarcodeRule
.
newRule
(
rule
);
BarcodeRule
br
=
BarcodeRule
.
newRule
(
rule
);
Barcode
b
=
br
.
toCodeBean
(
codeStr
).
getBarcode
();
Barcode
b
=
br
.
toCodeBean
(
codeStr
).
getBarcode
();
...
...
myproject/src/main/java/com/myproject/webapp/controller/FileUploadController.java
查看文件 @
76c0843
此文件的差异被折叠,
点击展开。
myproject/src/main/java/com/myproject/webapp/controller/barcode/BarcodeGenerateController.java
查看文件 @
76c0843
...
@@ -65,7 +65,7 @@ public class BarcodeGenerateController extends BaseUpdateController {
...
@@ -65,7 +65,7 @@ public class BarcodeGenerateController extends BaseUpdateController {
barcode
.
setStatus
(
StorageConstants
.
BARCODE_STATUS
.
NEW
);
barcode
.
setStatus
(
StorageConstants
.
BARCODE_STATUS
.
NEW
);
barcode
.
setUsed
(
false
);
barcode
.
setUsed
(
false
);
//String componentId = barcode.getComponentId();
//String componentId = barcode.getComponentId();
Component
component
=
componentManager
.
find
ByPartNumber
(
barcode
.
getPartNumber
());
Component
component
=
componentManager
.
find
OneByPN
(
barcode
.
getPartNumber
());
if
(
StringUtils
.
isEmpty
(
barcode
.
getBarcode
()))
{
if
(
StringUtils
.
isEmpty
(
barcode
.
getBarcode
()))
{
String
bs
=
getUuid
();
String
bs
=
getUuid
();
...
...
myproject/src/main/java/com/myproject/webapp/controller/storage/BoxChartController.java
查看文件 @
76c0843
...
@@ -282,7 +282,7 @@ public class BoxChartController extends BaseController {
...
@@ -282,7 +282,7 @@ public class BoxChartController extends BaseController {
List
<
SolderInventoryItem
>
results
=
Lists
.
newArrayList
();
List
<
SolderInventoryItem
>
results
=
Lists
.
newArrayList
();
for
(
InventoryItem
inventoryItem
:
storageTypeInventory
.
values
())
{
for
(
InventoryItem
inventoryItem
:
storageTypeInventory
.
values
())
{
String
partNumber
=
inventoryItem
.
getPartNumber
();
String
partNumber
=
inventoryItem
.
getPartNumber
();
Component
component
=
componentManager
.
find
ByPartNumber
(
partNumber
);
Component
component
=
componentManager
.
find
OneByPN
(
partNumber
);
int
minStoreNum
=
component
.
getMinStoreNum
();
int
minStoreNum
=
component
.
getMinStoreNum
();
int
maxStoreNum
=
component
.
getMaxStoreNum
();
int
maxStoreNum
=
component
.
getMaxStoreNum
();
...
...
myproject/src/main/java/com/myproject/webapp/controller/storage/SmdXLController.java
查看文件 @
76c0843
...
@@ -284,7 +284,7 @@ public class SmdXLController extends BaseController{
...
@@ -284,7 +284,7 @@ public class SmdXLController extends BaseController{
if
(
opType
!=
StorageConstants
.
OP
.
NON_OP
){
if
(
opType
!=
StorageConstants
.
OP
.
NON_OP
){
//手动输入,按PN来处理
//手动输入,按PN来处理
//先查找是否有相同的PN,没有创建一个
//先查找是否有相同的PN,没有创建一个
Component
component
=
componentManager
.
find
ByPartNumber
(
pnStr
);
Component
component
=
componentManager
.
find
OneByPN
(
pnStr
);
if
(
component
==
null
){
if
(
component
==
null
){
component
=
new
Component
();
component
=
new
Component
();
component
.
setHeight
(
1
);
component
.
setHeight
(
1
);
...
...
myproject/src/main/java/com/myproject/webapp/controller/storage/VerticalBoxController.java
查看文件 @
76c0843
...
@@ -227,7 +227,7 @@ public class VerticalBoxController extends BaseController{
...
@@ -227,7 +227,7 @@ public class VerticalBoxController extends BaseController{
String
pnStr
=
codeArray
[
0
];
String
pnStr
=
codeArray
[
0
];
int
opQty
=
Integer
.
valueOf
(
codeArray
[
1
]);
int
opQty
=
Integer
.
valueOf
(
codeArray
[
1
]);
//先查找是否有相同的PN,没有创建一个
//先查找是否有相同的PN,没有创建一个
Component
component
=
componentManager
.
find
ByPartNumber
(
pnStr
);
Component
component
=
componentManager
.
find
OneByPN
(
pnStr
);
if
(
component
==
null
){
if
(
component
==
null
){
component
=
new
Component
();
component
=
new
Component
();
component
.
setHeight
(
1
);
component
.
setHeight
(
1
);
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/DataCache.java
查看文件 @
76c0843
...
@@ -228,8 +228,8 @@ public class DataCache{
...
@@ -228,8 +228,8 @@ public class DataCache{
codeBeanFromRule
.
setError
(
null
,
null
);
codeBeanFromRule
.
setError
(
null
,
null
);
codeBeanFromRule
.
setCodeStr
(
barcode
.
getBarcode
());
codeBeanFromRule
.
setCodeStr
(
barcode
.
getBarcode
());
codeBeanFromRule
.
setBarcode
(
barcode
);
codeBeanFromRule
.
setBarcode
(
barcode
);
Component
component
=
componentManager
.
findByPartNumber
(
barcode
.
getPartNumber
());
//
Component component = componentManager.findByPartNumber(barcode.getPartNumber());
codeBeanFromRule
.
setShowImg
(
component
.
getShowImg
());
//
codeBeanFromRule.setShowImg(component.getShowImg());
return
codeBeanFromRule
;
return
codeBeanFromRule
;
}
}
...
@@ -256,7 +256,7 @@ public class DataCache{
...
@@ -256,7 +256,7 @@ public class DataCache{
}
}
}
}
}
}
Component
component
=
componentManager
.
findByPartNumber
(
barcode
.
getPartNumb
er
());
Component
component
=
componentManager
.
findByPartNumber
AndProvider
(
barcode
.
getPartNumber
(),
barcode
.
getProvid
er
());
int
validDay
=
0
;
int
validDay
=
0
;
if
(
component
!=
null
){
if
(
component
!=
null
){
validDay
=
component
.
getValidDay
();
validDay
=
component
.
getValidDay
();
...
@@ -265,23 +265,37 @@ public class DataCache{
...
@@ -265,23 +265,37 @@ public class DataCache{
Barcode
barcodeFromRule
=
codeBeanFromRule
.
getBarcode
();
Barcode
barcodeFromRule
=
codeBeanFromRule
.
getBarcode
();
if
(
barcodeFromRule
!=
null
){
if
(
barcodeFromRule
!=
null
){
boolean
needUpdate
=
false
;
int
lastLabelAmount
=
barcode
.
getLabelAmount
();
int
currentLabelAmount
=
barcodeFromRule
.
getAmount
();
if
(
currentLabelAmount
!=
lastLabelAmount
){
//本次解析出来的数量与上次条码解析出来的数量不一样,重新设置数量
log
.
info
(
"重新设置"
+
codeBeanFromRule
.
getCodeStr
()+
"数量为:"
+
currentLabelAmount
);
barcode
.
setAmount
(
currentLabelAmount
);
barcode
.
setLabelAmount
(
currentLabelAmount
);
needUpdate
=
true
;
}
Date
produceDate
=
barcodeFromRule
.
getProduceDate
();
Date
produceDate
=
barcodeFromRule
.
getProduceDate
();
if
(
produceDate
!=
null
){
if
(
produceDate
!=
null
){
//抓取到了生产日期,未抓取到过期日期,重新设置过期日期
//抓取到了生产日期,未抓取到过期日期,重新设置过期日期
if
(
barcode
.
getExpireDate
()
==
null
){
if
(
barcode
.
getExpireDate
()
==
null
){
if
(
validDay
>
0
){
if
(
validDay
>
0
){
try
{
log
.
info
(
"重新设置"
+
codeBeanFromRule
.
getCodeStr
()+
"生产日期和过期日期"
);
log
.
warn
(
"重新设置"
+
codeBeanFromRule
.
getCodeStr
()+
"生产日期和过期日期"
);
Date
expireDate
=
DateUtil
.
addDays
(
produceDate
,
validDay
);
Date
expireDate
=
DateUtil
.
addDays
(
produceDate
,
validDay
);
barcode
.
setExpireDate
(
expireDate
);
barcode
.
setExpireDate
(
expireDate
);
barcode
.
setProduceDate
(
produceDate
);
barcode
.
setProduceDate
(
produceDate
);
needUpdate
=
true
;
barcodeManager
.
save
(
barcode
);
}
catch
(
Exception
e
){
}
}
}
}
}
}
}
if
(
needUpdate
){
try
{
barcodeManager
.
save
(
barcode
);
}
catch
(
Exception
e
){
log
.
error
(
e
);
}
}
}
}
codeBeanFromRule
.
setError
(
null
,
null
);
codeBeanFromRule
.
setError
(
null
,
null
);
...
@@ -294,7 +308,7 @@ public class DataCache{
...
@@ -294,7 +308,7 @@ public class DataCache{
//如果有料盘尺寸,重新设置料盘尺寸信息,没有档案时自动添加档案
//如果有料盘尺寸,重新设置料盘尺寸信息,没有档案时自动添加档案
if
(
codeBeanFromRule
.
hasReelSizeInfo
()){
if
(
codeBeanFromRule
.
hasReelSizeInfo
()){
//log.info("料盘["+barcode.getBarcode()+"]的尺寸信息从["+barcode.getPlateSize()+"x"+barcode.getHeight()+"]设置为["+codeBeanFromRule.getReelWidth()+"x"+codeBeanFromRule.getReelHeight()+"]");
//log.info("料盘["+barcode.getBarcode()+"]的尺寸信息从["+barcode.getPlateSize()+"x"+barcode.getHeight()+"]设置为["+codeBeanFromRule.getReelWidth()+"x"+codeBeanFromRule.getReelHeight()+"]");
Component
component
=
componentManager
.
findByPartNumber
(
barcodeFromRule
.
getPartNumb
er
());
Component
component
=
componentManager
.
findByPartNumber
AndProvider
(
barcodeFromRule
.
getPartNumber
(),
barcodeFromRule
.
getProvid
er
());
if
(
component
==
null
){
if
(
component
==
null
){
log
.
info
(
"自动添加["
+
barcodeFromRule
.
getPartNumber
()+
"]的档案信息["
+
codeBeanFromRule
.
getReelWidth
()+
"x"
+
codeBeanFromRule
.
getReelHeight
()+
"]"
);
log
.
info
(
"自动添加["
+
barcodeFromRule
.
getPartNumber
()+
"]的档案信息["
+
codeBeanFromRule
.
getReelWidth
()+
"x"
+
codeBeanFromRule
.
getReelHeight
()+
"]"
);
...
@@ -329,7 +343,7 @@ public class DataCache{
...
@@ -329,7 +343,7 @@ public class DataCache{
}
}
if
(
needAddNew
){
if
(
needAddNew
){
log
.
info
(
"自动添加条码"
+
barcodeItemStr
+
"到数据库中"
);
log
.
info
(
"自动添加条码"
+
barcodeItemStr
+
"到数据库中"
);
Component
component
=
componentManager
.
findByPartNumber
(
barcodeFromRule
.
getPartNumb
er
());
Component
component
=
componentManager
.
findByPartNumber
AndProvider
(
barcodeFromRule
.
getPartNumber
(),
barcodeFromRule
.
getProvid
er
());
if
(
component
==
null
){
if
(
component
==
null
){
log
.
info
(
"档案["
+
barcodeFromRule
.
getPartNumber
()+
"]不存在"
);
log
.
info
(
"档案["
+
barcodeFromRule
.
getPartNumber
()+
"]不存在"
);
throw
new
ValidateException
(
"component.error.notExist"
,
new
String
[]{
barcodeFromRule
.
getPartNumber
()});
throw
new
ValidateException
(
"component.error.notExist"
,
new
String
[]{
barcodeFromRule
.
getPartNumber
()});
...
@@ -376,18 +390,18 @@ public class DataCache{
...
@@ -376,18 +390,18 @@ public class DataCache{
}
}
public
Collection
<
CodeBean
>
resolveCodeStr
(
String
codeStr
){
public
Collection
<
CodeBean
>
resolveCodeStr
(
String
codeStr
){
List
<
CodeBean
>
codeBeans
=
Lists
.
newArrayList
();
Map
<
String
,
CodeBean
>
codeBeanMap
=
Maps
.
newHashMap
();
//
Map<String, CodeBean> codeBeanMap = Maps.newHashMap();
if
(!
Strings
.
isNullOrEmpty
(
codeStr
)){
if
(!
Strings
.
isNullOrEmpty
(
codeStr
)){
//双##号分割多个二维码
//双##号分割多个二维码
String
[]
barcodeItemStrs
=
codeStr
.
split
(
"##"
);
String
[]
barcodeItemStrs
=
codeStr
.
split
(
"##"
);
//需要检查partNumber 是否一致
//需要检查partNumber 是否一致
Multiset
<
String
>
partNumberMultiset
=
HashMultiset
.
create
();
//
Multiset<String> partNumberMultiset = HashMultiset.create();
//含有最多的 partNumber
//含有最多的 partNumber
String
mostPartNumber
=
""
;
//String mostPartNumber = "";
List
<
CodeBean
>
codeBeans
=
Lists
.
newArrayList
();
for
(
String
barcodeItemStr
:
barcodeItemStrs
){
for
(
String
barcodeItemStr
:
barcodeItemStrs
){
CodeBean
codeBean
=
resolveSingleCode
(
barcodeItemStr
);
CodeBean
codeBean
=
resolveSingleCode
(
barcodeItemStr
);
if
(
codeBean
==
null
){
if
(
codeBean
==
null
){
...
@@ -395,26 +409,59 @@ public class DataCache{
...
@@ -395,26 +409,59 @@ public class DataCache{
}
}
codeBeans
.
add
(
codeBean
);
codeBeans
.
add
(
codeBean
);
//统计非夹具的 partNubmer
//统计非夹具的 partNubmer
if
(
codeBean
.
isValid
()
&&
!
codeBean
.
isFixtureCode
()){
//
if(codeBean.isValid() && !codeBean.isFixtureCode()){
String
partNumber
=
codeBean
.
getBarcode
().
getPartNumber
();
//
String partNumber = codeBean.getBarcode().getPartNumber();
partNumberMultiset
.
add
(
partNumber
);
//
partNumberMultiset.add(partNumber);
if
(
partNumberMultiset
.
count
(
partNumber
)
>
partNumberMultiset
.
count
(
mostPartNumber
)
){
//
if(partNumberMultiset.count(partNumber) > partNumberMultiset.count(mostPartNumber) ){
mostPartNumber
=
partNumber
;
//
mostPartNumber = partNumber;
}
//
}
}
//
}
}
}
for
(
CodeBean
codeBean
:
codeBeans
)
{
if
(
codeBean
.
isValid
()
&&
!
codeBean
.
isFixtureCode
()){
// for (CodeBean codeBean : codeBeans) {
//非夹具的 partNumber 不一致
// if(codeBean.isValid() && !codeBean.isFixtureCode()){
if
(!
mostPartNumber
.
equals
(
codeBean
.
getBarcode
().
getPartNumber
())){
// //非夹具的 partNumber 不一致
codeBean
.
setError
(
"error.barcode.wrongPn"
,
"PartNumber不一致"
);
// if(!mostPartNumber.equals(codeBean.getBarcode().getPartNumber())){
}
// codeBean.setError("error.barcode.wrongPn", "PartNumber不一致");
// }
// }
// codeBeanMap.put(codeBean.getCodeStr(), codeBean);
// }
}
//return codeBeanMap.values();
return
codeBeans
;
}
/**
* 从条码信息中解析出一个有效条码
* @param codeStr
* @return
*/
public
Barcode
resolveOneValideBarcode
(
String
codeStr
)
throws
ValidateException
{
if
(
org
.
apache
.
logging
.
log4j
.
util
.
Strings
.
isBlank
(
codeStr
)){
throw
new
ValidateException
(
"error.barcode.empty"
,
"未扫到条码"
);
}
Collection
<
CodeBean
>
codeBeans
=
resolveCodeStr
(
codeStr
);
Barcode
barcode
=
null
;
String
errorMsg
=
""
;
for
(
CodeBean
codeBean
:
codeBeans
)
{
if
(
codeBean
.
isValid
()){
Barcode
barcodeFromRule
=
codeBean
.
getBarcode
();
if
(
barcode
==
null
){
barcode
=
barcodeFromRule
;
}
else
{
throw
new
ValidateException
(
"error.barcode.many"
,
new
String
[]{
codeStr
},
"找到多个有效的条码"
);
}
}
codeBeanMap
.
put
(
codeBean
.
getCodeStr
(),
codeBean
);
}
else
{
errorMsg
=
codeBean
.
getError
();
}
}
}
}
return
codeBeanMap
.
values
();
if
(
barcode
==
null
){
throw
new
ValidateException
(
"error.barcode.invalid"
,
new
String
[]{
codeStr
},
"无效的条码"
);
}
return
barcode
;
}
}
/**
/**
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/MesApiController.java
查看文件 @
76c0843
...
@@ -72,7 +72,7 @@ public class MesApiController extends BaseController {
...
@@ -72,7 +72,7 @@ public class MesApiController extends BaseController {
log
.
info
(
"收到 MES 的 数据同步信息"
+
Partnumber
+
"【"
+
w
+
"x"
+
h
+
"】"
);
log
.
info
(
"收到 MES 的 数据同步信息"
+
Partnumber
+
"【"
+
w
+
"x"
+
h
+
"】"
);
Component
c
=
componentManager
.
find
ByPartNumber
(
Partnumber
);
Component
c
=
componentManager
.
find
OneByPN
(
Partnumber
);
if
(
c
==
null
){
if
(
c
==
null
){
c
=
new
Component
();
c
=
new
Component
();
}
}
...
@@ -130,7 +130,7 @@ public class MesApiController extends BaseController {
...
@@ -130,7 +130,7 @@ public class MesApiController extends BaseController {
String
PARTNUMBER
=
checkParameter
(
request
,
"PN"
);
String
PARTNUMBER
=
checkParameter
(
request
,
"PN"
);
String
QTY
=
checkParameter
(
request
,
"QTY"
);
String
QTY
=
checkParameter
(
request
,
"QTY"
);
log
.
info
(
"收到条码同步信息:RI="
+
REEL_ID
+
" PN="
+
PARTNUMBER
+
" QTY="
+
QTY
);
log
.
info
(
"收到条码同步信息:RI="
+
REEL_ID
+
" PN="
+
PARTNUMBER
+
" QTY="
+
QTY
);
Component
c
=
componentManager
.
find
ByPartNumber
(
PARTNUMBER
);
Component
c
=
componentManager
.
find
OneByPN
(
PARTNUMBER
);
if
(
c
==
null
){
if
(
c
==
null
){
return
"Error: 物料编号["
+
PARTNUMBER
+
"]的档案不存在"
;
return
"Error: 物料编号["
+
PARTNUMBER
+
"]的档案不存在"
;
}
}
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/StorageDataController.java
查看文件 @
76c0843
...
@@ -622,6 +622,7 @@ public class StorageDataController extends BaseController {
...
@@ -622,6 +622,7 @@ public class StorageDataController extends BaseController {
String
code
=
request
.
getParameter
(
"code"
);
String
code
=
request
.
getParameter
(
"code"
);
String
cids
=
request
.
getParameter
(
"cids"
);
String
cids
=
request
.
getParameter
(
"cids"
);
lineMsgParams
=
null
;
lineMsgParams
=
null
;
log
.
info
(
"["
+
cids
+
"]获取["
+
code
+
"]的入库库位"
);
Map
<
String
,
Object
>
resultMap
=
Maps
.
newHashMap
();
Map
<
String
,
Object
>
resultMap
=
Maps
.
newHashMap
();
if
(
Strings
.
isNullOrEmpty
(
cids
)){
if
(
Strings
.
isNullOrEmpty
(
cids
)){
resultMap
.
put
(
"result"
,
"101"
);
resultMap
.
put
(
"result"
,
"101"
);
...
@@ -640,45 +641,30 @@ public class StorageDataController extends BaseController {
...
@@ -640,45 +641,30 @@ public class StorageDataController extends BaseController {
String
msg
=
getText
(
lineMsgParams
.
getMessage
(),
lineMsgParams
.
getParams
(),
request
.
getLocale
(),
lineMsgParams
.
getDefaultMsg
());
String
msg
=
getText
(
lineMsgParams
.
getMessage
(),
lineMsgParams
.
getParams
(),
request
.
getLocale
(),
lineMsgParams
.
getDefaultMsg
());
resultMap
.
put
(
"msg"
,
msg
);
resultMap
.
put
(
"msg"
,
msg
);
}
else
{
}
else
{
Collection
<
CodeBean
>
codeBeans
=
dataCache
.
resolveCodeStr
(
code
);
try
{
Barcode
barcode
=
null
;
Barcode
barcode
=
dataCache
.
resolveOneValideBarcode
(
code
);
for
(
CodeBean
codeBean:
codeBeans
)
{
StoragePos
pos
=
taskService
.
findEmptyPosForPutIn
(
storageList
,
barcode
);
if
(
codeBean
.
isValid
()){
if
(
pos
!=
null
){
barcode
=
codeBean
.
getBarcode
();
resultMap
.
put
(
"result"
,
"0"
);
break
;
resultMap
.
put
(
"msg"
,
""
);
}
resultMap
.
put
(
"pos"
,
pos
.
getPosName
());
}
resultMap
.
put
(
"barcode"
,
barcode
.
getBarcode
());
if
(
barcode
==
null
){
Storage
theStorage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
resultMap
.
put
(
"result"
,
"103"
);
resultMap
.
put
(
"cid"
,
theStorage
.
getCid
());
lineMsgParams
=
new
ValidateException
(
"error.barcode.invalid"
,
new
String
[]{
code
},
"无效的条码"
);
String
lineMsg
=
"["
+
barcode
.
getBarcode
()+
"]准备入库到["
+
pos
.
getPosName
()+
"]"
;
String
msg
=
getText
(
lineMsgParams
.
getMessage
(),
lineMsgParams
.
getParams
(),
request
.
getLocale
(),
lineMsgParams
.
getDefaultMsg
());
lineMsgParams
=
new
ValidateException
(
"msg.line.putIn"
,
new
String
[]{
code
,
pos
.
getPosName
()},
lineMsg
);
resultMap
.
put
(
"msg"
,
msg
);
}
else
{
}
else
{
resultMap
.
put
(
"result"
,
"104"
);
StoragePos
pos
=
null
;
lineMsgParams
=
new
ValidateException
(
"error.storage.noPosFind"
,
new
String
[]{
code
},
"未找到可用的仓位"
);
try
{
pos
=
taskService
.
findEmptyPosForPutIn
(
storageList
,
barcode
);
if
(
pos
!=
null
){
resultMap
.
put
(
"result"
,
"0"
);
resultMap
.
put
(
"msg"
,
""
);
resultMap
.
put
(
"pos"
,
pos
.
getPosName
());
resultMap
.
put
(
"barcode"
,
barcode
.
getBarcode
());
Storage
theStorage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
resultMap
.
put
(
"cid"
,
theStorage
.
getCid
());
String
lineMsg
=
"["
+
barcode
.
getBarcode
()+
"]准备入库到["
+
pos
.
getPosName
()+
"]"
;
lineMsgParams
=
new
ValidateException
(
"msg.line.putIn"
,
new
String
[]{
code
,
pos
.
getPosName
()},
lineMsg
);
}
else
{
resultMap
.
put
(
"result"
,
"104"
);
lineMsgParams
=
new
ValidateException
(
"error.storage.noPosFind"
,
new
String
[]{
code
},
"未找到可用的仓位"
);
String
msg
=
getText
(
lineMsgParams
.
getMessage
(),
lineMsgParams
.
getParams
(),
request
.
getLocale
(),
lineMsgParams
.
getDefaultMsg
());
resultMap
.
put
(
"msg"
,
msg
);
}
}
catch
(
ValidateException
e
)
{
lineMsgParams
=
e
;
resultMap
.
put
(
"result"
,
"105"
);
String
msg
=
getText
(
lineMsgParams
.
getMessage
(),
lineMsgParams
.
getParams
(),
request
.
getLocale
(),
lineMsgParams
.
getDefaultMsg
());
String
msg
=
getText
(
lineMsgParams
.
getMessage
(),
lineMsgParams
.
getParams
(),
request
.
getLocale
(),
lineMsgParams
.
getDefaultMsg
());
log
.
info
(
"查找空库位失败:"
+
msg
);
resultMap
.
put
(
"msg"
,
msg
);
resultMap
.
put
(
"msg"
,
msg
);
}
}
}
catch
(
ValidateException
e
)
{
lineMsgParams
=
e
;
resultMap
.
put
(
"result"
,
"105"
);
String
msg
=
getText
(
lineMsgParams
.
getMessage
(),
lineMsgParams
.
getParams
(),
request
.
getLocale
(),
lineMsgParams
.
getDefaultMsg
());
log
.
info
(
"查找空库位失败:"
+
msg
);
resultMap
.
put
(
"msg"
,
msg
);
}
}
}
}
}
}
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/TaskService.java
查看文件 @
76c0843
...
@@ -185,7 +185,7 @@ public class TaskService implements ITaskService {
...
@@ -185,7 +185,7 @@ public class TaskService implements ITaskService {
* @return
* @return
*/
*/
private
Barcode
updateToSolderBarcode
(
Barcode
barcode
,
int
weight
)
throws
ValidateException
{
private
Barcode
updateToSolderBarcode
(
Barcode
barcode
,
int
weight
)
throws
ValidateException
{
Component
component
=
componentManager
.
find
ByPartNumber
(
barcode
.
getPartNumber
());
Component
component
=
componentManager
.
find
OneByPN
(
barcode
.
getPartNumber
());
if
(!
component
.
isSolder
()){
if
(!
component
.
isSolder
()){
component
.
setType
(
StorageConstants
.
COMPONENT_TYPE
.
SOLDERPASTE
);
component
.
setType
(
StorageConstants
.
COMPONENT_TYPE
.
SOLDERPASTE
);
//搅拌时间默认为3分钟即180秒
//搅拌时间默认为3分钟即180秒
...
@@ -1702,6 +1702,8 @@ public class TaskService implements ITaskService {
...
@@ -1702,6 +1702,8 @@ public class TaskService implements ITaskService {
task
.
setOperator
(
opUser
);
task
.
setOperator
(
opUser
);
task
.
setBatchInfo
(
barcode
.
getBatch
());
task
.
setStatus
(
StorageConstants
.
OP_STATUS
.
FINISHED
.
name
());
task
.
setStatus
(
StorageConstants
.
OP_STATUS
.
FINISHED
.
name
());
task
=
dataLogDao
.
save
(
task
);
task
=
dataLogDao
.
save
(
task
);
...
@@ -1842,7 +1844,7 @@ public class TaskService implements ITaskService {
...
@@ -1842,7 +1844,7 @@ public class TaskService implements ITaskService {
if
(
Strings
.
isNullOrEmpty
(
url
)){
if
(
Strings
.
isNullOrEmpty
(
url
)){
return
false
;
return
false
;
}
}
log
.
info
(
"向 MES 通知【"
+
reelBarcode
+
"】的入库信息"
);
log
.
info
(
"向 MES
("
+
url
+
")
通知【"
+
reelBarcode
+
"】的入库信息"
);
Barcode
barcode
=
barcodeManager
.
findByBarcode
(
reelBarcode
);
Barcode
barcode
=
barcodeManager
.
findByBarcode
(
reelBarcode
);
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"RI"
,
reelBarcode
);
params
.
put
(
"RI"
,
reelBarcode
);
...
...
myproject/src/main/resources/StorageResources_zh_CN.properties
查看文件 @
76c0843
...
@@ -415,3 +415,4 @@ storage.chart.temperature=\u6E29\u5EA6
...
@@ -415,3 +415,4 @@ storage.chart.temperature=\u6E29\u5EA6
error.barcode.wrongProduceDate
=
\u
751F
\u
4EA7
\u
65E5
\u
671F
\u
89E3
\u6790\u5931\u
8D25
error.barcode.wrongProduceDate
=
\u
751F
\u
4EA7
\u
65E5
\u
671F
\u
89E3
\u6790\u5931\u
8D25
shelf.error.orderError
=
\u
4EFB
\u
52A1
\u
4E0E
\u6307\u
5B9A
\u
5DE5
\u5355
[{0}]
\u
4E0D
\u
4E00
\u
81F4
shelf.error.orderError
=
\u
4EFB
\u
52A1
\u
4E0E
\u6307\u
5B9A
\u
5DE5
\u5355
[{0}]
\u
4E0D
\u
4E00
\u
81F4
workOrder.supplementary
=
\u8865\u6599
workOrder.supplementary
=
\u8865\u6599
error.barcode.manyvalid
=
[{0}]
\u
627E
\u5230\u
591A
\u
4E2A
\u6709\u6548\u6761\u7801
myproject/src/main/resources/mongo.properties
查看文件 @
76c0843
mongo.replica-
set
=
10.60.17.19:20000,10.60.17.20:20000,10.60.17.21:20000
mongo.replica-
set
=
localhost:27017,192.168.1.107:27017,192.168.1.245:27017,192.168.1.116:27017
mongo.connectionsPerHost
=
8
mongo.connectionsPerHost
=
8
mongo.threadsAllowedToBlockForConnectionMultiplier
=
4
mongo.threadsAllowedToBlockForConnectionMultiplier
=
4
mongo.connectTimeout
=
10000
mongo.connectTimeout
=
10000
...
...
myproject/src/main/resources/mongo.xml
查看文件 @
76c0843
...
@@ -11,9 +11,9 @@
...
@@ -11,9 +11,9 @@
"
>
"
>
<context:property-placeholder
location=
"classpath*:/*.properties"
/>
<context:property-placeholder
location=
"classpath*:/*.properties"
/>
<!--
<
mongo:mongo id="mongo" replica-set="${mongo.replica-set}"
>
<
!--<mongo:mongo id="mongo" replica-set="${mongo.replica-set}">--
>
-->
<mongo:mongo
id=
"mongo"
host=
"${mongo.host}"
port=
"27017"
>
<mongo:mongo
id=
"mongo"
host=
"${mongo.host}"
port=
"27017"
>
<mongo:options
connections-per-host=
"${mongo.connectionsPerHost}"
<mongo:options
connections-per-host=
"${mongo.connectionsPerHost}"
threads-allowed-to-block-for-connection-multiplier=
"${mongo.threadsAllowedToBlockForConnectionMultiplier}"
threads-allowed-to-block-for-connection-multiplier=
"${mongo.threadsAllowedToBlockForConnectionMultiplier}"
...
...
myproject/src/main/webapp/WEB-INF/pages/storage/accShelf.jsp
查看文件 @
76c0843
...
@@ -24,6 +24,19 @@
...
@@ -24,6 +24,19 @@
overflow-y: auto;
overflow-y: auto;
}
}
@media only screen and (min-width:0px) and (max-width:800px){
.partnumber-box{
height: 50px;
text-align: center;
padding-top:15px;
margin-bottom:10px;
font-size: 14px;
vertical-align: middle;
word-wrap:break-word ;
cursor: pointer;
}
}
</style>
</style>
<link href="${ctx}/scripts/lobibox/css/lobibox.min.css?id=2" rel="stylesheet" type="text/css"/>
<link href="${ctx}/scripts/lobibox/css/lobibox.min.css?id=2" rel="stylesheet" type="text/css"/>
...
@@ -94,9 +107,20 @@
...
@@ -94,9 +107,20 @@
<div class="modal-dialog" style="margin-top: 10%;width:80%;margin-left:10%;">
<div class="modal-dialog" style="margin-top: 10%;width:80%;margin-left:10%;">
<div class="modal-content">
<div class="modal-content">
<div class="modal-header">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<div>
<h4 class="modal-title" id="modal-title" style="font-weight: 500;"><fmt:message key="button.checkout"/> </h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<input type="text" class="form-control" id="searchPn"/>
<h4 class="modal-title" id="modal-title" style="font-weight: 500;margin-right:30px;">
<fmt:message key="button.checkout"/>
<a href="" class="btn yellow right" id="findAndOut" style="top: -10px;position: relative;">
<i class="fa fa-sign-out"></i><fmt:message key="allBoxView.findAndOut"/>
</a>
</h4>
</div>
<div>
<input type="text" class="form-control" id="searchPn"/>
</div>
</div>
</div>
<div class="modal-body">
<div class="modal-body">
<div class="row" id="partNumberItems">
<div class="row" id="partNumberItems">
...
@@ -108,7 +132,7 @@
...
@@ -108,7 +132,7 @@
</div>
</div>
<div class="modal-footer">
<div class="modal-footer">
<div id="footerBtn">
<div id="footerBtn">
<a href="" class="btn yellow left" id="findAndOut"><i class="fa fa-sign-out"></i><fmt:message key="allBoxView.findAndOut"/></a>
<button type="button" class="btn green" onclick="lastPage()" id="lastPage">
<button type="button" class="btn green" onclick="lastPage()" id="lastPage">
<fmt:message key="allBoxView.lastPage"/></button>
<fmt:message key="allBoxView.lastPage"/></button>
...
@@ -287,7 +311,7 @@
...
@@ -287,7 +311,7 @@
}
}
for(var index = itemPerPage * pageIndex;index<endIndex;index++){
for(var index = itemPerPage * pageIndex;index<endIndex;index++){
var pn = partNumberItems[index].partNumber;
var pn = partNumberItems[index].partNumber;
itemStr = itemStr + "<div class='col-lg-3 col-md-3 col-sm-6 col-xs-
12
' onclick='checkoutByPartNumber(\""+pn+"\");'> " +
itemStr = itemStr + "<div class='col-lg-3 col-md-3 col-sm-6 col-xs-
6
' onclick='checkoutByPartNumber(\""+pn+"\");'> " +
"<div class='"+bgColors[index%itemPerPage]+" partnumber-box'>"+pn+"</div></div>";
"<div class='"+bgColors[index%itemPerPage]+" partnumber-box'>"+pn+"</div></div>";
}
}
if(itemStr == ""){
if(itemStr == ""){
...
...
myproject/src/main/webapp/WEB-INF/pages/storage/allBoxView.jsp
查看文件 @
76c0843
...
@@ -147,6 +147,12 @@
...
@@ -147,6 +147,12 @@
overflow-y: auto;
overflow-y: auto;
}
}
@media only screen and (min-width:0px) and (max-width:800px){
.lobibox-notify{
display:none;
}
}
</style>
</style>
<link href="${ctx}/scripts/lobibox/css/lobibox.min.css?id=2" rel="stylesheet" type="text/css"/>
<link href="${ctx}/scripts/lobibox/css/lobibox.min.css?id=2" rel="stylesheet" type="text/css"/>
...
...
myproject/src/main/webapp/resources/admin/linePositions.csv
查看文件 @
76c0843
此文件的差异被折叠,
点击展开。
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论