Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
Gree
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 9b70a0d7
由
sunke
编写于
2020-03-26 14:02:48 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
首盘绑定时剔除与溢出数量最接近且日期一致的料盘
1 个父辈
992fe842
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
148 行增加
和
41 行删除
myproject/src/main/java/com/myproject/dao/mongo/IStoragePosDao.java
myproject/src/main/java/com/myproject/dao/mongo/impl/StoragePosDaoImpl.java
myproject/src/main/java/com/myproject/webapp/controller/qisda/QisdaController.java
myproject/src/main/java/com/myproject/webapp/controller/qisda/util/OutInfoCache.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/TaskService.java
myproject/src/main/webapp/WEB-INF/pages/qisda/outInfoSearch.jsp
myproject/src/main/java/com/myproject/dao/mongo/IStoragePosDao.java
查看文件 @
9b70a0d
...
@@ -62,7 +62,11 @@ public interface IStoragePosDao extends IMongoDao {
...
@@ -62,7 +62,11 @@ public interface IStoragePosDao extends IMongoDao {
*/
*/
List
<
StoragePos
>
findPreBindList
(
String
so
,
int
slotlocation
);
List
<
StoragePos
>
findPreBindList
(
String
so
,
int
slotlocation
);
// int getCutCount(String so, String slot);
StoragePos
findSurplusPreBindReel
(
String
soseq
,
int
slotlocation
,
int
surplusQty
,
String
produceDateStr
);
StoragePos
findSurplusBindReel
(
String
soseq
,
int
slotlocation
,
int
surplusQty
,
String
produceDateStr
);
StoragePos
findMaxQtyBindReel
(
String
soseq
,
int
slotlocation
);
List
<
StoragePos
>
findCutList
(
String
so
,
int
slotlocation
,
String
soseq
);
List
<
StoragePos
>
findCutList
(
String
so
,
int
slotlocation
,
String
soseq
);
...
@@ -76,4 +80,6 @@ public interface IStoragePosDao extends IMongoDao {
...
@@ -76,4 +80,6 @@ public interface IStoragePosDao extends IMongoDao {
List
<
StoragePos
>
allBindPos
();
List
<
StoragePos
>
allBindPos
();
StoragePos
findByBarcode
(
String
barcode
);
StoragePos
findByBarcode
(
String
barcode
);
StoragePos
unbindReel
(
StoragePos
storagePos
);
}
}
myproject/src/main/java/com/myproject/dao/mongo/impl/StoragePosDaoImpl.java
查看文件 @
9b70a0d
...
@@ -8,13 +8,18 @@ import com.myproject.bean.json.ChartData;
...
@@ -8,13 +8,18 @@ import com.myproject.bean.json.ChartData;
import
com.myproject.bean.json.ChartItem
;
import
com.myproject.bean.json.ChartItem
;
import
com.myproject.bean.json.InventoryItem
;
import
com.myproject.bean.json.InventoryItem
;
import
com.myproject.bean.json.PlateSizeBean
;
import
com.myproject.bean.json.PlateSizeBean
;
import
com.myproject.bean.qisda.AppendInfo
;
import
com.myproject.bean.qisda.AvailableInventoryBean
;
import
com.myproject.bean.qisda.AvailableInventoryBean
;
import
com.myproject.bean.update.Barcode
;
import
com.myproject.bean.update.StoragePos
;
import
com.myproject.bean.update.StoragePos
;
import
com.myproject.dao.mongo.AbstractMongoDao
;
import
com.myproject.dao.mongo.AbstractMongoDao
;
import
com.myproject.dao.mongo.IBarcodeDao
;
import
com.myproject.dao.mongo.IStoragePosDao
;
import
com.myproject.dao.mongo.IStoragePosDao
;
import
com.myproject.exception.ValidateException
;
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.util.StringHelper
;
import
com.myproject.util.StringHelper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.mongodb.core.aggregation.Aggregation
;
import
org.springframework.data.mongodb.core.aggregation.Aggregation
;
import
org.springframework.data.mongodb.core.aggregation.AggregationResults
;
import
org.springframework.data.mongodb.core.aggregation.AggregationResults
;
...
@@ -31,6 +36,9 @@ import java.util.*;
...
@@ -31,6 +36,9 @@ import java.util.*;
@Repository
@Repository
public
class
StoragePosDaoImpl
extends
AbstractMongoDao
implements
IStoragePosDao
{
public
class
StoragePosDaoImpl
extends
AbstractMongoDao
implements
IStoragePosDao
{
@Autowired
private
IBarcodeDao
barcodeDao
;
@Override
@Override
public
Class
getEntityClass
()
{
public
Class
getEntityClass
()
{
return
StoragePos
.
class
;
return
StoragePos
.
class
;
...
@@ -312,6 +320,52 @@ public class StoragePosDaoImpl extends AbstractMongoDao implements IStoragePosDa
...
@@ -312,6 +320,52 @@ public class StoragePosDaoImpl extends AbstractMongoDao implements IStoragePosDa
}
}
/**
/**
* 查找某个预绑定站位,用于剔除站位多余绑定的料盘
* @param soseq 工单序号
* @param slotlocation 站位序号
* @param surplusQty 多绑的数量
* @param produceDateStr 最大盘的日期
* @return 符合条件的料盘
*/
@Override
public
StoragePos
findSurplusPreBindReel
(
String
soseq
,
int
slotlocation
,
int
surplusQty
,
String
produceDateStr
){
String
preBindSlot
=
""
+
slotlocation
;
//同一个预绑定站位,且与生产日期一致,小于盈余数量的一盘料
Criteria
c
=
Criteria
.
where
(
"barcode.appendInfo.soseq"
).
is
(
soseq
).
and
(
"barcode.appendInfo.preBindSlot"
).
is
(
preBindSlot
)
.
and
(
"barcode.appendInfo.bindSlot"
).
is
(
null
).
and
(
"barcode.produceDateStr"
).
is
(
produceDateStr
).
and
(
"barcode.amount"
).
lte
(
surplusQty
);
Query
q
=
new
Query
(
c
);
q
.
with
(
new
Sort
(
Sort
.
Direction
.
DESC
,
"barcode.amount"
));
return
findOne
(
q
);
}
/**
* 查找某个绑定站位,用于剔除站位多余绑定的料盘
*/
@Override
public
StoragePos
findSurplusBindReel
(
String
soseq
,
int
slotlocation
,
int
surplusQty
,
String
produceDateStr
){
String
bindSlot
=
""
+
slotlocation
;
//同一个预绑定站位,且与生产日期一致,小于盈余数量的一盘料
Criteria
c
=
Criteria
.
where
(
"barcode.appendInfo.soseq"
).
is
(
soseq
).
and
(
"barcode.appendInfo.bindSlot"
).
is
(
bindSlot
)
.
and
(
"barcode.produceDateStr"
).
is
(
produceDateStr
).
and
(
"barcode.amount"
).
lte
(
surplusQty
);
Query
q
=
new
Query
(
c
);
q
.
with
(
new
Sort
(
Sort
.
Direction
.
DESC
,
"barcode.amount"
));
return
findOne
(
q
);
}
/**
* 查找某个绑定站位最大的一盘料
*/
@Override
public
StoragePos
findMaxQtyBindReel
(
String
soseq
,
int
slotlocation
){
String
bindSlot
=
""
+
slotlocation
;
//同一个预绑定站位,且与生产日期一致,小于盈余数量的一盘料
Criteria
c
=
Criteria
.
where
(
"barcode.appendInfo.soseq"
).
is
(
soseq
).
and
(
"barcode.appendInfo.bindSlot"
).
is
(
bindSlot
);
Query
q
=
new
Query
(
c
);
q
.
with
(
new
Sort
(
Sort
.
Direction
.
DESC
,
"barcode.amount"
));
return
findOne
(
q
);
}
/**
* 获取工单站位所有待分盘的料盘
* 获取工单站位所有待分盘的料盘
* @param so
* @param so
* @param slotlocation
* @param slotlocation
...
@@ -378,4 +432,29 @@ public class StoragePosDaoImpl extends AbstractMongoDao implements IStoragePosDa
...
@@ -378,4 +432,29 @@ public class StoragePosDaoImpl extends AbstractMongoDao implements IStoragePosDa
public
StoragePos
findByBarcode
(
String
barcode
){
public
StoragePos
findByBarcode
(
String
barcode
){
return
findOneByCondition
(
new
String
[]{
"barcode.barcode"
},
new
String
[]{
barcode
});
return
findOneByCondition
(
new
String
[]{
"barcode.barcode"
},
new
String
[]{
barcode
});
}
}
@Override
public
StoragePos
unbindReel
(
StoragePos
storagePos
){
Barcode
barcode
=
storagePos
.
getBarcode
();
AppendInfo
appendInfo
=
barcode
.
getAppendInfo
();
appendInfo
.
setCutMap
(
null
);
appendInfo
.
setPreBindSlot
(
null
);
appendInfo
.
setRfidLoc
(-
1
);
appendInfo
.
setAction
(
null
);
appendInfo
.
sethSerial
(
null
);
appendInfo
.
setRefno
(
null
);
appendInfo
.
setSo
(
null
);
appendInfo
.
setSoseq
(
null
);
appendInfo
.
setBindSlot
(
null
);
appendInfo
.
setPreBindSlot
(
null
);
appendInfo
.
setSlotStr
(
null
);
appendInfo
.
setSlotIndex
(-
1
);
barcode
.
setAppendInfo
(
appendInfo
);
barcode
.
setAmount
(
barcode
.
getInitialAmount
());
barcode
=
barcodeDao
.
save
(
barcode
);
storagePos
.
setBarcode
(
barcode
);
storagePos
=
save
(
storagePos
);
return
storagePos
;
}
}
}
myproject/src/main/java/com/myproject/webapp/controller/qisda/QisdaController.java
查看文件 @
9b70a0d
...
@@ -180,29 +180,7 @@ public class QisdaController extends BaseController {
...
@@ -180,29 +180,7 @@ public class QisdaController extends BaseController {
log
.
info
(
"开始解绑所有绑定工单的料盘"
);
log
.
info
(
"开始解绑所有绑定工单的料盘"
);
List
<
StoragePos
>
bindPosList
=
storagePosDao
.
allBindPos
();
List
<
StoragePos
>
bindPosList
=
storagePosDao
.
allBindPos
();
for
(
StoragePos
storagePos
:
bindPosList
)
{
for
(
StoragePos
storagePos
:
bindPosList
)
{
Barcode
barcode
=
storagePos
.
getBarcode
();
storagePosDao
.
unbindReel
(
storagePos
);
AppendInfo
appendInfo
=
barcode
.
getAppendInfo
();
appendInfo
.
setCutMap
(
null
);
appendInfo
.
setPreBindSlot
(
null
);
appendInfo
.
setRfidLoc
(-
1
);
appendInfo
.
setAction
(
null
);
appendInfo
.
sethSerial
(
null
);
appendInfo
.
setRefno
(
null
);
appendInfo
.
setSo
(
null
);
appendInfo
.
setSoseq
(
null
);
appendInfo
.
setBindSlot
(
null
);
appendInfo
.
setPreBindSlot
(
null
);
appendInfo
.
setSlotStr
(
null
);
appendInfo
.
setSlotIndex
(-
1
);
barcode
.
setAppendInfo
(
appendInfo
);
barcode
.
setAmount
(
barcode
.
getInitialAmount
());
try
{
barcode
=
barcodeManager
.
save
(
barcode
);
storagePos
.
setBarcode
(
barcode
);
storagePosDao
.
save
(
storagePos
);
}
catch
(
ValidateException
e
)
{
e
.
printStackTrace
();
}
}
}
log
.
info
(
"清理绑定完成"
);
log
.
info
(
"清理绑定完成"
);
return
"OK"
;
return
"OK"
;
...
...
myproject/src/main/java/com/myproject/webapp/controller/qisda/util/OutInfoCache.java
查看文件 @
9b70a0d
...
@@ -144,6 +144,8 @@ public class OutInfoCache {
...
@@ -144,6 +144,8 @@ public class OutInfoCache {
OutInfo
dbOutInfo
=
outInfoDao
.
findOneById
(
outInfo
.
getId
());
OutInfo
dbOutInfo
=
outInfoDao
.
findOneById
(
outInfo
.
getId
());
if
(
dbOutInfo
!=
null
){
if
(
dbOutInfo
!=
null
){
if
(
dbOutInfo
.
getSendStatus
()
!=
outInfo
.
getSendStatus
()
||
dbOutInfo
.
getBindStatus
()
!=
outInfo
.
getBindStatus
()){
if
(
dbOutInfo
.
getSendStatus
()
!=
outInfo
.
getSendStatus
()
||
dbOutInfo
.
getBindStatus
()
!=
outInfo
.
getBindStatus
()){
dbOutInfo
.
setSendStatus
(
outInfo
.
getSendStatus
());
dbOutInfo
.
setBindStatus
(
outInfo
.
getBindStatus
());
outInfoDao
.
save
(
dbOutInfo
);
outInfoDao
.
save
(
dbOutInfo
);
log
.
info
(
"需求单["
+
hSerial
+
"]状态与数据库不一致,更新到数据库"
);
log
.
info
(
"需求单["
+
hSerial
+
"]状态与数据库不一致,更新到数据库"
);
}
}
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/QisdaApiController.java
查看文件 @
9b70a0d
...
@@ -637,6 +637,25 @@ public class QisdaApiController extends BaseController {
...
@@ -637,6 +637,25 @@ public class QisdaApiController extends BaseController {
}
}
}
}
//多出数量
int
surplusQty
=
-
needNum
;
if
(
surplusQty
>=
0
){
//已经预绑定的所有料盘中与最大盘日期相同,且与超出数量最接近的料盘剔除掉
StoragePos
maxBindReelPos
=
storagePosDao
.
findMaxQtyBindReel
(
outItem
.
getSoseq
(),
outItem
.
getSlotlocation
());
if
(
maxBindReelPos
!=
null
){
Barcode
maxQtyBindReelBarcode
=
maxBindReelPos
.
getBarcode
();
StoragePos
needToUnBindPos
=
storagePosDao
.
findSurplusBindReel
(
outItem
.
getSoseq
(),
outItem
.
getSlotlocation
(),
surplusQty
,
maxQtyBindReelBarcode
.
getProduceDateStr
());
if
(
needToUnBindPos
!=
null
){
int
unbindAmount
=
needToUnBindPos
.
getBarcode
().
getAmount
();
log
.
info
(
"找到与最大料盘["
+
maxQtyBindReelBarcode
.
getBarcode
()+
"]相同日期["
+
maxQtyBindReelBarcode
.
getProduceDateStr
()+
"]与超绑数量["
+
surplusQty
+
"]接近的料盘["
+
needToUnBindPos
.
getBarcode
().
getBarcode
()+
"]数量为["
+
unbindAmount
+
"]解除绑定"
);
storagePosDao
.
unbindReel
(
needToUnBindPos
);
int
newLockQty
=
outItem
.
getRealLockQty
()
-
unbindAmount
;
outItem
.
setLockQty
(
newLockQty
);
outItem
=
outItemDao
.
save
(
outItem
);
}
}
}
//首盘,如果此站位一盘也没有,查找是否有同工单不同站位的PN,如果有,抢一盘过来
//首盘,如果此站位一盘也没有,查找是否有同工单不同站位的PN,如果有,抢一盘过来
log
.
info
(
"So=["
+
outItem
.
getSo
()+
"]hSerial=["
+
outItem
.
gethSerial
()+
"]+refno=["
+
outItem
.
getRefno
()+
"]的slot"
+
outItem
.
getSlotlocation
()+
"]pn=["
+
outItem
.
getPn
()+
"]真实绑定结束,当前数量:"
+
outItem
.
getSendQty
()+
"+"
+
outItem
.
getRealLockQty
()
+
"/"
+
outItem
.
getQty
());
log
.
info
(
"So=["
+
outItem
.
getSo
()+
"]hSerial=["
+
outItem
.
gethSerial
()+
"]+refno=["
+
outItem
.
getRefno
()+
"]的slot"
+
outItem
.
getSlotlocation
()+
"]pn=["
+
outItem
.
getPn
()+
"]真实绑定结束,当前数量:"
+
outItem
.
getSendQty
()+
"+"
+
outItem
.
getRealLockQty
()
+
"/"
+
outItem
.
getQty
());
}
}
...
@@ -670,8 +689,20 @@ public class QisdaApiController extends BaseController {
...
@@ -670,8 +689,20 @@ public class QisdaApiController extends BaseController {
storagePosDao
.
save
(
pos
);
storagePosDao
.
save
(
pos
);
outItem
.
setLockQty
(
newLockQty
);
outItem
.
setLockQty
(
newLockQty
);
outItem
=
outItemDao
.
save
(
outItem
);
outItem
=
outItemDao
.
save
(
outItem
);
if
(
newLockQty
>
outItem
.
getQty
()){
//多出数量
//已经满足需求了,直接跳出
int
surplusQty
=
newLockQty
-
outItem
.
getQty
();
if
(
surplusQty
>=
0
){
//已经满足需求了,剔除同日期的小料盘后直接跳出
//已经预绑定的所有料盘中与最大盘日期相同,且与超出数量最接近的料盘剔除掉
StoragePos
needToUnBindPos
=
storagePosDao
.
findSurplusPreBindReel
(
outItem
.
getSoseq
(),
outItem
.
getSlotlocation
(),
surplusQty
,
barcode
.
getProduceDateStr
());
if
(
needToUnBindPos
!=
null
){
int
unbindAmount
=
needToUnBindPos
.
getBarcode
().
getAmount
();
log
.
info
(
"找到与最大料盘["
+
barcode
.
getBarcode
()+
"]相同日期["
+
barcode
.
getProduceDateStr
()+
"]与超绑数量["
+
surplusQty
+
"]接近的料盘["
+
needToUnBindPos
.
getBarcode
().
getBarcode
()+
"]数量为["
+
unbindAmount
+
"]解除预绑定"
);
storagePosDao
.
unbindReel
(
needToUnBindPos
);
newLockQty
=
newLockQty
-
unbindAmount
;
outItem
.
setLockQty
(
newLockQty
);
outItem
=
outItemDao
.
save
(
outItem
);
}
break
;
break
;
}
}
}
}
...
@@ -1298,12 +1329,13 @@ public class QisdaApiController extends BaseController {
...
@@ -1298,12 +1329,13 @@ public class QisdaApiController extends BaseController {
allTasks
.
addAll
(
queueTasks
);
allTasks
.
addAll
(
queueTasks
);
}
}
//是滞有工单料任务
boolean
hasOrderTask
=
false
;
for
(
DataLog
dataLog
:
allTasks
)
{
for
(
DataLog
dataLog
:
allTasks
)
{
if
(
dataLog
.
isCheckOutTask
()){
if
(
dataLog
.
isCheckOutTask
()){
//首盘和补料
if
(!
dataLog
.
isUrgentReel
()
&&
!
dataLog
.
isCutReel
()){
if
(!
outInfo
.
isReelCutAction
()
&&
!
outInfo
.
isUrgentAction
()){
//工单料(不是指定料也不是分盘料即首盘或补料)
//InquiryShelfBean.hSerialShelfMap.clear();
hasOrderTask
=
true
;
return
"全部任务完成后才可执行"
;
}
else
{
}
else
{
//分盘和紧急料
//分盘和紧急料
String
taskHSerial
=
dataLog
.
getAppendInfo
().
gethSerial
();
String
taskHSerial
=
dataLog
.
getAppendInfo
().
gethSerial
();
...
@@ -1314,6 +1346,11 @@ public class QisdaApiController extends BaseController {
...
@@ -1314,6 +1346,11 @@ public class QisdaApiController extends BaseController {
}
}
}
}
//首盘和补料
if
(!
outInfo
.
isReelCutAction
()
&&
!
outInfo
.
isUrgentAction
()
&&
hasOrderTask
){
return
"全部任务完成后才可执行"
;
}
//如果是工单需求单,设置当前正在执行的工单需求单
//如果是工单需求单,设置当前正在执行的工单需求单
...
@@ -1381,6 +1418,8 @@ public class QisdaApiController extends BaseController {
...
@@ -1381,6 +1418,8 @@ public class QisdaApiController extends BaseController {
}
}
}
}
}
else
{
log
.
info
(
"需求单"
+
outInfo
.
gethSerial
()+
"本次出库料盘数量为0"
);
}
}
if
(
outInfo
.
isReelCutAction
()
||
outInfo
.
isFirstReelAction
()){
if
(
outInfo
.
isReelCutAction
()
||
outInfo
.
isFirstReelAction
()){
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/QisdaDeviceController.java
查看文件 @
9b70a0d
...
@@ -127,16 +127,17 @@ public class QisdaDeviceController extends BaseController {
...
@@ -127,16 +127,17 @@ public class QisdaDeviceController extends BaseController {
return
ResultBean
.
newErrorResult
(
102
,
msg
);
return
ResultBean
.
newErrorResult
(
102
,
msg
);
}
}
boolean
firstScanSame
=
isSameTask
(
barcode
,
firstScanTask
);
//防止条码重复发送,现在已经不需要了
boolean
firstRobtoSame
=
isSameTask
(
barcode
,
firstRobotTask
);
// boolean firstScanSame = isSameTask(barcode,firstScanTask);
boolean
secondScanSame
=
isSameTask
(
barcode
,
secondScanTask
);
// boolean firstRobtoSame = isSameTask(barcode,firstRobotTask);
boolean
secondRobtoSame
=
isSameTask
(
barcode
,
secondRobotTask
);
// boolean secondScanSame = isSameTask(barcode,secondScanTask);
if
(
firstScanSame
||
firstRobtoSame
||
secondScanSame
||
secondRobtoSame
){
// boolean secondRobtoSame = isSameTask(barcode,secondRobotTask);
String
msg
=
"条码["
+
barcode
.
getBarcode
()+
"]与已有任务重复,获取尺寸信息失败"
;
// if(firstScanSame || firstRobtoSame || secondScanSame || secondRobtoSame){
log
.
error
(
msg
);
// String msg = "条码["+barcode.getBarcode()+"]与已有任务重复,获取尺寸信息失败";
// log.error(msg);
return
ResultBean
.
newErrorResult
(
105
,
msg
);
//
}
// return ResultBean.newErrorResult(105, msg);
// }
DataLog
task
=
taskService
.
getFinishedTask
(
barcode
.
getBarcode
());
DataLog
task
=
taskService
.
getFinishedTask
(
barcode
.
getBarcode
());
...
...
myproject/src/main/java/com/myproject/webapp/controller/webService/TaskService.java
查看文件 @
9b70a0d
...
@@ -1353,7 +1353,7 @@ public class TaskService implements ITaskService {
...
@@ -1353,7 +1353,7 @@ public class TaskService implements ITaskService {
if
(!
Strings
.
isNullOrEmpty
(
posName
)){
//客户端发一次完成之后,会发空的 posName,不需要处理
if
(!
Strings
.
isNullOrEmpty
(
posName
)){
//客户端发一次完成之后,会发空的 posName,不需要处理
if
(
StorageConstants
.
BOX_STATUS
.
IN_FINISHED
==
status
)
{
//入仓完成
if
(
StorageConstants
.
BOX_STATUS
.
IN_FINISHED
==
status
)
{
//入仓完成
DataLog
task
=
findExecutingTask
(
statusBeanToSave
.
getCid
(),
boxStatus
.
getPosId
());
DataLog
task
=
findExecutingTask
(
statusBeanToSave
.
getCid
(),
boxStatus
.
getPosId
());
if
(
task
!=
null
)
{
if
(
task
!=
null
&&
task
.
isPutInTask
()
)
{
log
.
info
(
task
.
getBarcode
()
+
"入仓位["
+
task
.
getPosName
()
+
"]完成"
);
log
.
info
(
task
.
getBarcode
()
+
"入仓位["
+
task
.
getPosName
()
+
"]完成"
);
DataLog
cancelTask
=
findFinishedTask
(
statusBeanToSave
.
getCid
(),
boxStatus
.
getPosId
());
DataLog
cancelTask
=
findFinishedTask
(
statusBeanToSave
.
getCid
(),
boxStatus
.
getPosId
());
if
(
cancelTask
!=
null
&&
cancelTask
.
isCancel
()){
if
(
cancelTask
!=
null
&&
cancelTask
.
isCancel
()){
...
...
myproject/src/main/webapp/WEB-INF/pages/qisda/outInfoSearch.jsp
查看文件 @
9b70a0d
...
@@ -74,9 +74,11 @@
...
@@ -74,9 +74,11 @@
</display:column>
</display:column>
<display:column titleKey="checkOut.operate" media="html">
<display:column titleKey="checkOut.operate" media="html">
<c:if test="${outInfo.sendStatus != 2}">
<button class="btn yellow" id="btn${outInfo.hSerial}"
<button class="btn yellow" id="btn${outInfo.hSerial}"
onclick="executeOut('${outInfo.hSerial}')">
onclick="executeOut('${outInfo.hSerial}')">
<i class="fa fa-sign-out"></i><fmt:message key="button.checkout"/></button>
<i class="fa fa-sign-out"></i><fmt:message key="button.checkout"/></button>
</c:if>
</display:column>
</display:column>
</display:table>
</display:table>
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论