Commit 07e55839 LN

工单状态重定义

1 个父辈 89fad21a
...@@ -207,8 +207,8 @@ public class DataInitManager { ...@@ -207,8 +207,8 @@ public class DataInitManager {
Menu inOrderMenu= new Menu(new ArrayList<Menu>(), 1, "inList", "入库单", 1, "inList", "system/inList/index", "", 0, "headIcon"); Menu inOrderMenu= new Menu(new ArrayList<Menu>(), 1, "inList", "入库单", 1, "inList", "system/inList/index", "", 0, "headIcon");
// Menu putinMenu= new Menu(new ArrayList<Menu>(), 1, "putIn", "物料入库", 1, "putIn", "system/putIn/index", "", 0, "headIcon"); // Menu putinMenu= new Menu(new ArrayList<Menu>(), 1, "putIn", "物料入库", 1, "putIn", "system/putIn/index", "", 0, "headIcon");
Menu zhuanruMenu= new Menu(new ArrayList<Menu>(), 1, "dumpWarehousing", "转储入库", 1, "dumpWarehousing", "system/dumpWarehousing/index", "", 0, "headIcon"); Menu zhuanruMenu= new Menu(new ArrayList<Menu>(), 1, "dumpWarehousing", "转储入库", 1, "dumpWarehousing", "system/dumpWarehousing/index", "", 0, "dumpWarehousing");
Menu singleMenu= new Menu(new ArrayList<Menu>(), 1, "singleDiskWarehousing", "单盘入库", 1, "singleDiskWarehousing", "system/singleDiskWarehousing/index", "", 0, "headIcon"); Menu singleMenu= new Menu(new ArrayList<Menu>(), 1, "singleDiskWarehousing", "单盘入库", 1, "singleDiskWarehousing", "system/singleDiskWarehousing/index", "", 0, "singleDiskWarehousing");
Menu sluggishMaterials= new Menu(new ArrayList<Menu>(), 1, "sluggishMaterials", "呆滞物料", 1, "sluggishMaterials", "system/sluggishMaterials/index", "", 0, "sMaterial"); Menu sluggishMaterials= new Menu(new ArrayList<Menu>(), 1, "sluggishMaterials", "呆滞物料", 1, "sluggishMaterials", "system/sluggishMaterials/index", "", 0, "sMaterial");
Menu safetyInventory= new Menu(new ArrayList<Menu>(), 1, "safetyInventory", "安全库存", 1, "safetyInventory", "system/safetyInventory/index", "", 0, "safeInventory"); Menu safetyInventory= new Menu(new ArrayList<Menu>(), 1, "safetyInventory", "安全库存", 1, "safetyInventory", "system/safetyInventory/index", "", 0, "safeInventory");
......
...@@ -166,24 +166,27 @@ public class SingleInController { ...@@ -166,24 +166,27 @@ public class SingleInController {
Barcode barcode = resolveBarcode(code); Barcode barcode = resolveBarcode(code);
//唯一码校验接口 //判断如果是退料入库,需要获取数量
ResponseParam param= HikApi.riCheckApi(SecurityUtils.getCurrentUsername(),barcode.getBarcode(),"",""); if (inType.equals(4)) {
if(ObjectUtil.isNotEmpty(param)) {
if (param.getCode().equals(HikApi.CODE_OK)) {
//唯一码验证成功
} else {
throw new ValidateException("smfcore.riCheckApi.error", "唯一码[" + barcode.getBarcode() + "]验证失败:" + param.getCode() + "=" + param.getMessage() + "", new String[]{param.getCode(), param.getMessage()});
}
}
//判断如果是退料入库,需要获取数量
if(inType.equals(4)) {
int num = HikApi.returnMaterialApi(SecurityUtils.getCurrentUsername(), barcode.getBarcode()); int num = HikApi.returnMaterialApi(SecurityUtils.getCurrentUsername(), barcode.getBarcode());
if (num > 0) { if (num > 0) {
barcode.setAmount(num); barcode.setAmount(num);
barcodeManager.saveBarcode(barcode); barcodeManager.saveBarcode(barcode);
log.info("退料入库,二维码 " + barcode.getBarcode() + " 从接口获得新数量:" + num + ",并更新"); log.info("退料入库,二维码 " + barcode.getBarcode() + " 从接口获得新数量:" + num + ",并更新");
} else {
throw new ValidateException("smfcore.returnMaterialApi.error", "退料入库:[" + barcode.getBarcode() + "]获取数量失败");
}
} else {
//唯一码校验接口
ResponseParam param = HikApi.riCheckApi(SecurityUtils.getCurrentUsername(), barcode.getBarcode(), "", "");
if (ObjectUtil.isNotEmpty(param)) {
if (param.getCode().equals(HikApi.CODE_OK)) {
//唯一码验证成功
} else {
throw new ValidateException("smfcore.riCheckApi.error", "唯一码[" + barcode.getBarcode() + "]验证失败:" + param.getCode() + "=" + param.getMessage() + ""
, new String[]{param.getCode(), param.getMessage()});
}
} }
} }
...@@ -194,8 +197,7 @@ public class SingleInController { ...@@ -194,8 +197,7 @@ public class SingleInController {
String msl = barcode.getMsl(); String msl = barcode.getMsl();
try { try {
//需要模拟一个库位 //创建入库任务,暂不指定库位
DataLog dataLog = new DataLog(); DataLog dataLog = new DataLog();
dataLog.setBarcode(reelId); dataLog.setBarcode(reelId);
dataLog.setPartNumber(pn); dataLog.setPartNumber(pn);
...@@ -218,7 +220,7 @@ public class SingleInController { ...@@ -218,7 +220,7 @@ public class SingleInController {
dataLog.setStorageName(storage.getName()); dataLog.setStorageName(storage.getName());
} }
} }
log.info("用户["+loginUser+"]创建料架["+storage.getName()+"]的入库任务:barcode["+barcode.getBarcode()+"],cid["+storage.getCid()+"],inType["+inType+"]"); log.info("用户[" + loginUser + "]创建料架[" + storage.getName() + "]的入库任务:barcode[" + barcode.getBarcode() + "],cid[" + storage.getCid() + "],inType[" + inType + "]");
try { try {
taskService.addTaskToExecute(dataLog); taskService.addTaskToExecute(dataLog);
} catch (Exception e) { } catch (Exception e) {
...@@ -233,9 +235,6 @@ public class SingleInController { ...@@ -233,9 +235,6 @@ public class SingleInController {
return ResultBean.newOkResult(""); return ResultBean.newOkResult("");
} }
private Barcode resolveBarcode(String code) { private Barcode resolveBarcode(String code) {
Barcode barcode = codeResolve.resolveOneValideBarcode(code); Barcode barcode = codeResolve.resolveOneValideBarcode(code);
if (barcode == null) { if (barcode == null) {
......
...@@ -56,8 +56,7 @@ public class LiteOrderCache implements ITaskListener { ...@@ -56,8 +56,7 @@ public class LiteOrderCache implements ITaskListener {
@Autowired @Autowired
private IStoragePosManager storagePosManager; private IStoragePosManager storagePosManager;
@Autowired
private IBarcodeManager barcodeManager;
/** /**
* 正在执行的liteOrderMap, key 为orderNo,value 为order * 正在执行的liteOrderMap, key 为orderNo,value 为order
...@@ -163,58 +162,58 @@ public class LiteOrderCache implements ITaskListener { ...@@ -163,58 +162,58 @@ public class LiteOrderCache implements ITaskListener {
} }
} }
//
public ResultBean checkOutOrder(LiteOrder liteOrder) throws ValidateException { // public ResultBean checkOutOrder(LiteOrder liteOrder) throws ValidateException {
//
ORDER_COLOR nextColor = getNextColor(); // ORDER_COLOR nextColor = getNextColor();
if (nextColor == null) { // if (nextColor == null) {
log.info("执行工单[" + liteOrder.getOrderNo() + "] 时,已达最大可执行工单数"); // log.info("执行工单[" + liteOrder.getOrderNo() + "] 时,已达最大可执行工单数");
throw new ValidateException("order.out.maxOrder","已达最大可执行工单数"); // throw new ValidateException("order.out.maxOrder","已达最大可执行工单数");
} // }
//其他出库模式一次性全部生成任务 // //其他出库模式一次性全部生成任务
List<StoragePos> lockPosList = storagePosManager.findLockPos(liteOrder.getOrderNo()); // List<StoragePos> lockPosList = storagePosManager.findLockPos(liteOrder.getOrderNo());
if(lockPosList==null){ // if(lockPosList==null){
throw new ValidateException("smfcore.notFindPos","未找到锁定库位"); // throw new ValidateException("smfcore.notFindPos","未找到锁定库位");
} // }
int taskReelCount = 0; // int taskReelCount = 0;
for (StoragePos lockPos : lockPosList) { // for (StoragePos lockPos : lockPosList) {
Storage storage = dataCache.getStorageById(lockPos.getStorageId()); // Storage storage = dataCache.getStorageById(lockPos.getStorageId());
Barcode barcode = lockPos.getBarcode(); // Barcode barcode = lockPos.getBarcode();
DataLog task = new DataLog(storage,barcode,lockPos); // DataLog task = new DataLog(storage,barcode,lockPos);
//
task.setSourceId(liteOrder.getId()); // task.setSourceId(liteOrder.getId());
task.setSourceName(liteOrder.getOrderNo()); // task.setSourceName(liteOrder.getOrderNo());
task.setSubSourceId(barcode.getLockName()); // task.setSubSourceId(barcode.getLockName());
task.setSubSourceInfo(barcode.getLockName()); // task.setSubSourceInfo(barcode.getLockName());
task.setType(OP.CHECKOUT); // task.setType(OP.CHECKOUT);
task.setPutInDate(barcode.getPutInDate()); // task.setPutInDate(barcode.getPutInDate());
task.setLightColor(nextColor.getRgb()); // task.setLightColor(nextColor.getRgb());
task.setStatus(OP_STATUS.WAIT.name()); // task.setStatus(OP_STATUS.WAIT.name());
taskService.addTaskToExecute(task); // taskService.addTaskToExecute(task);
//
taskReelCount = taskReelCount + 1; // taskReelCount = taskReelCount + 1;
log.info("工单[" + liteOrder.getOrderNo() + "]出库位置仓位【" + task.getPosName() + "】RI=[" + task.getBarcode() + "] PN=[" + task.getPartNumber() + "] "); // log.info("工单[" + liteOrder.getOrderNo() + "]出库位置仓位【" + task.getPosName() + "】RI=[" + task.getBarcode() + "] PN=[" + task.getPartNumber() + "] ");
} // }
//
liteOrder.setTaskReelCount(taskReelCount); // liteOrder.setTaskReelCount(taskReelCount);
liteOrder.setTotalTaskReelCount(liteOrder.getTotalTaskReelCount()+taskReelCount); // liteOrder.setTotalTaskReelCount(liteOrder.getTotalTaskReelCount()+taskReelCount);
liteOrder.setStatus(LITEORDER_STATUS.TAILS); // liteOrder.setStatus(LITEORDER_STATUS.EXECUTING);
log.info("工单[" + liteOrder.getOrderNo() + "]任务分配结束,任务数[" + taskReelCount + "]"); // log.info("工单[" + liteOrder.getOrderNo() + "]任务分配结束,任务数[" + taskReelCount + "]");
//
if (taskReelCount <= 0) { // if (taskReelCount <= 0) {
//没有任务,直接结束 // //没有任务,直接结束
liteOrder.finishedTasks(); // liteOrder.finishedTasks();
}else{ // }else{
//有需要出库的 ,更新状态 // //有需要出库的 ,更新状态
liteOrder.setStatus(LITEORDER_STATUS.TAILS); // liteOrder.setStatus(LITEORDER_STATUS.EXECUTING);
} // }
liteOrder = liteOrderManager.save(liteOrder); // liteOrder = liteOrderManager.save(liteOrder);
liteOrderMap.put(liteOrder.getOrderNo(),liteOrder); // liteOrderMap.put(liteOrder.getOrderNo(),liteOrder);
if (taskReelCount <= 0) { // if (taskReelCount <= 0) {
return ResultBean.newErrorResult(-1,"smfcore.notask","No task in this order"); // return ResultBean.newErrorResult(-1,"smfcore.notask","No task in this order");
} // }
return ResultBean.newOkResult("smfcore.taskCount", "total task is :{0}",new String[]{ taskReelCount+""},""); // return ResultBean.newOkResult("smfcore.taskCount", "total task is :{0}",new String[]{ taskReelCount+""},"");
} // }
/** /**
* 更新工单状态信息 * 更新工单状态信息
...@@ -398,17 +397,13 @@ public class LiteOrderCache implements ITaskListener { ...@@ -398,17 +397,13 @@ public class LiteOrderCache implements ITaskListener {
* 锁定物料 * 锁定物料
*/ */
public synchronized String checkOutLiteOrder(String userName, String orderNo) { public synchronized String checkOutLiteOrder(String userName, String orderNo) {
LiteOrder cacheOrder = liteOrderMap.get(orderNo); LiteOrder cacheOrder = findOrderByNo(orderNo);
if (cacheOrder == null) {
cacheOrder = liteOrderManager.findByOrderNo(orderNo);
}
if (cacheOrder == null) { if (cacheOrder == null) {
return "smfcore.order.out.notFound"; return "smfcore.order.out.notFound";
} }
if ( !cacheOrder.isTaskFinished() && !cacheOrder.isNew()) { if ( cacheOrder.isExecuting()) {
log.info("工单[" + orderNo + "]正在执行"); log.info("工单[" + orderNo + "]正在执行");
return "smfcore.order.out.executing"; return "smfcore.order.out.executing";
} }
...@@ -430,11 +425,11 @@ public class LiteOrderCache implements ITaskListener { ...@@ -430,11 +425,11 @@ public class LiteOrderCache implements ITaskListener {
return "smfcore.order.out.maxOrder"; return "smfcore.order.out.maxOrder";
} }
//先查找是否已经锁定过库位,如果已经锁定过,出锁定的库位 // //先查找是否已经锁定过库位,如果已经锁定过,出锁定的库位
List<StoragePos> lockPosList = storagePosManager.findLockPos(cacheOrder.getOrderNo()); // List<StoragePos> lockPosList = storagePosManager.findLockPos(cacheOrder.getOrderNo());
if(lockPosList!=null&& lockPosList.size()>0){ // if(lockPosList!=null&& lockPosList.size()>0){
return checkOutOrder(cacheOrder).getMsgKey(); // return checkOutOrder(cacheOrder).getMsgKey();
} // }
// 出库策略(系统判断逻辑由上到下依次满足): // 出库策略(系统判断逻辑由上到下依次满足):
//①湿敏超期物料所在仓位锁定,不允许备料; //①湿敏超期物料所在仓位锁定,不允许备料;
...@@ -640,7 +635,7 @@ public class LiteOrderCache implements ITaskListener { ...@@ -640,7 +635,7 @@ public class LiteOrderCache implements ITaskListener {
cacheOrder.setTaskReelCount(0); cacheOrder.setTaskReelCount(0);
cacheOrder.setTaskFinishedTime(-1); cacheOrder.setTaskFinishedTime(-1);
cacheOrder.setFinishedReelCount(0); cacheOrder.setFinishedReelCount(0);
cacheOrder.setStatus(LITEORDER_STATUS.TAILS); cacheOrder.setStatus(LITEORDER_STATUS.EXECUTING);
//设置出库操作人 //设置出库操作人
cacheOrder.setOperateUser(userName); cacheOrder.setOperateUser(userName);
cacheOrder.setStartDate(new Date()); cacheOrder.setStartDate(new Date());
...@@ -694,9 +689,9 @@ public class LiteOrderCache implements ITaskListener { ...@@ -694,9 +689,9 @@ public class LiteOrderCache implements ITaskListener {
liteOrderItemManager.save(orderItem); liteOrderItemManager.save(orderItem);
} }
cacheOrder.setTaskReelCount(taskReelCount);
cacheOrder.setTaskReelCount(taskReelCount); cacheOrder.setTaskReelCount(taskReelCount);
cacheOrder.setTotalFinishedReelCount(0);
cacheOrder.setTotalTaskReelCount(cacheOrder.getTotalTaskReelCount()+taskReelCount); cacheOrder.setTotalTaskReelCount(cacheOrder.getTotalTaskReelCount()+taskReelCount);
log.info("工单[" + orderNo + "]任务分配结束,任务数[" + taskReelCount + "]"); log.info("工单[" + orderNo + "]任务分配结束,任务数[" + taskReelCount + "]");
//有需要出库的 //有需要出库的
...@@ -718,10 +713,10 @@ public class LiteOrderCache implements ITaskListener { ...@@ -718,10 +713,10 @@ public class LiteOrderCache implements ITaskListener {
//挑料时缺料,直接 关闭工单 //挑料时缺料,直接 关闭工单
log.info("工单["+liteOrder.getOrderNo()+"]缺料,直接关闭工单"); log.info("工单["+liteOrder.getOrderNo()+"]缺料,更改工单为缺料状态");
liteOrder.setOperateUser(userName); liteOrder.setOperateUser(userName);
liteOrder.setStatus(LITEORDER_STATUS.CLOSED); liteOrder.setStatus(LITEORDER_STATUS.SHORTAGE);
liteOrder.setClosed(true); liteOrder.setClosed(false);
liteOrderManager.save(liteOrder); liteOrderManager.save(liteOrder);
liteOrderMap.put(liteOrder.getOrderNo(), liteOrder); liteOrderMap.put(liteOrder.getOrderNo(), liteOrder);
......
...@@ -6,23 +6,37 @@ package com.neotel.smfcore.core.order.enums; ...@@ -6,23 +6,37 @@ package com.neotel.smfcore.core.order.enums;
public class LITEORDER_STATUS { public class LITEORDER_STATUS {
/**新建的工单*/ /**新建的工单*/
public static int NEW=0; public static int NEW=0;
/**首套料正在执行*/
public static int BOM=1;
/**首盘料已结束,等待出尾料*/ /**工单缺料*/
public static int BOM_FINISHED=2; public static int SHORTAGE=1;
/**正在出尾料*/
public static int TAILS=3;
/**尾料已完成*/
public static int TAILS_FINISHED=4;
/**正在补料*/ /**工单正在出库执行中*/
public static int ONE=5; public static int EXECUTING=2;
/**补料已完成*/
public static int ONE_FINISHED=6; // /**首套料正在执行*/
// public static int BOM=1;
//
// /**首盘料已结束,等待出尾料*/
// public static int BOM_FINISHED=2;
// /**正在出尾料*/
// public static int TAILS=3;
// /**尾料已完成*/
// public static int TAILS_FINISHED=4;
//
// /**正在补料*/
// public static int ONE=5;
// /**补料已完成*/
// public static int ONE_FINISHED=6;
/**工单已关闭*/ /**工单已关闭*/
public static int CLOSED=7; public static int CLOSED=3;
/**
* 工单状态
* 0=新建的工单
* 1=工单缺料
* 2=工单正在出库中
* 3=工单已关闭
*/
/** /**
* 工单状态 * 工单状态
* 0=新建的工单 * 0=新建的工单
......
...@@ -295,7 +295,7 @@ public class OrderController { ...@@ -295,7 +295,7 @@ public class OrderController {
User user = userManager.findByUserName(SecurityUtils.getCurrentUsername()); User user = userManager.findByUserName(SecurityUtils.getCurrentUsername());
//查询正在执行的工单列表 //查询正在执行的工单列表
Query query = new Query(Criteria.where("status").ne(LITEORDER_STATUS.CLOSED).ne(LITEORDER_STATUS.NEW)); Query query = new Query(Criteria.where("status").is(LITEORDER_STATUS.EXECUTING));
//根据开始出库时间排序 //根据开始出库时间排序
Sort sort = Sort.by(Sort.Direction.ASC, "startOutTime"); Sort sort = Sort.by(Sort.Direction.ASC, "startOutTime");
query.with(sort); query.with(sort);
...@@ -375,7 +375,7 @@ public class OrderController { ...@@ -375,7 +375,7 @@ public class OrderController {
List<LiteOrder> orderList = getExecuteOrders(user); List<LiteOrder> orderList = getExecuteOrders(user);
if (orderList.size() <= 0) { if (orderList.size() <= 0) {
return ResultBean.newErrorResult(-1, "smfcore.order.noOrder", "暂无可操作的工单"); return ResultBean.newErrorResult(-1, "smfcore.order.noOrder", "暂无可操作的工单");
} }
LiteOrder liteOrder = orderList.get(0); LiteOrder liteOrder = orderList.get(0);
...@@ -396,7 +396,7 @@ public class OrderController { ...@@ -396,7 +396,7 @@ public class OrderController {
private List<LiteOrder> getExecuteOrders(User user) { private List<LiteOrder> getExecuteOrders(User user) {
//查询正在执行的工单列表 //查询正在执行的工单列表
Query query = new Query(Criteria.where("status").ne(LITEORDER_STATUS.CLOSED).ne(LITEORDER_STATUS.NEW)); Query query = new Query(Criteria.where("status").is(LITEORDER_STATUS.EXECUTING));
//根据开始出库时间排序 //根据开始出库时间排序
Sort sort = Sort.by(Sort.Direction.ASC, "startOutTime"); Sort sort = Sort.by(Sort.Direction.ASC, "startOutTime");
query.with(sort); query.with(sort);
......
...@@ -155,26 +155,30 @@ public class LiteOrder extends BasePo implements Serializable { ...@@ -155,26 +155,30 @@ public class LiteOrder extends BasePo implements Serializable {
* 结束当前的任务 * 结束当前的任务
*/ */
public void finishedTasks(){ public void finishedTasks(){
if(isOutOne()){ // if(isOutOne()){
// setStatus(LITEORDER_STATUS.ONE_FINISHED); //// setStatus(LITEORDER_STATUS.ONE_FINISHED);
setClosed(true); // setClosed(true);
}else if(isOutBom()){ // }else if(isOutBom()){
setStatus(LITEORDER_STATUS.BOM_FINISHED); // setStatus(LITEORDER_STATUS.BOM_FINISHED);
}else if(isOutTails()){ // }else if(isOutTails()){
// setStatus(LITEORDER_STATUS.TAILS_FINISHED); //// setStatus(LITEORDER_STATUS.TAILS_FINISHED);
// setClosed(true);
// }
if(isExecuting()){
setClosed(true); setClosed(true);
} }
setTaskFinishedTime(System.currentTimeMillis()); setTaskFinishedTime(System.currentTimeMillis());
} }
//
/** // /**
* 是否正在出首套料 // * 是否正在出首套料
* @return // * @return
*/ // */
public boolean isOutBom(){ // public boolean isOutBom(){
return status == LITEORDER_STATUS.BOM; // return status == LITEORDER_STATUS.BOM;
} // }
/** /**
* 是否是未执行过的工单 * 是否是未执行过的工单
...@@ -183,31 +187,45 @@ public class LiteOrder extends BasePo implements Serializable { ...@@ -183,31 +187,45 @@ public class LiteOrder extends BasePo implements Serializable {
return status == LITEORDER_STATUS.NEW; return status == LITEORDER_STATUS.NEW;
} }
public boolean isOutOne(){
return status == LITEORDER_STATUS.ONE;
}
/** /**
* 补料任务完成 * 是否是缺料工单
* @return
*/ */
public boolean isOutOneFinished(){ public boolean isShortage(){
return status == LITEORDER_STATUS.ONE_FINISHED; return status == LITEORDER_STATUS.SHORTAGE;
} }
/** /**
* 是否正在出尾料 * 是否是执行中的工单
*/ */
public boolean isOutTails(){ public boolean isExecuting(){
return status == LITEORDER_STATUS.TAILS; return status == LITEORDER_STATUS.EXECUTING;
} }
/** // public boolean isOutOne(){
* 任务料盘是否已出完 // return status == LITEORDER_STATUS.ONE;
*/ // }
public boolean isTaskFinished(){ //
return status == LITEORDER_STATUS.BOM_FINISHED || status == LITEORDER_STATUS.TAILS_FINISHED || status == LITEORDER_STATUS.ONE_FINISHED; // /**
} // * 补料任务完成
// * @return
// */
// public boolean isOutOneFinished(){
// return status == LITEORDER_STATUS.ONE_FINISHED;
// }
//
// /**
// * 是否正在出尾料
// */
// public boolean isOutTails(){
// return status == LITEORDER_STATUS.TAILS;
// }
//
// /**
// * 任务料盘是否已出完
// */
// public boolean isTaskFinished(){
// return status == LITEORDER_STATUS.BOM_FINISHED || status == LITEORDER_STATUS.TAILS_FINISHED || status == LITEORDER_STATUS.ONE_FINISHED;
// }
public void setTaskReelCount(int taskReelCount) { public void setTaskReelCount(int taskReelCount) {
...@@ -227,7 +245,7 @@ public class LiteOrder extends BasePo implements Serializable { ...@@ -227,7 +245,7 @@ public class LiteOrder extends BasePo implements Serializable {
* 是否需要展示(已完成的,过20 秒自动清除) * 是否需要展示(已完成的,过20 秒自动清除)
*/ */
public boolean needToShow(){ public boolean needToShow(){
if(isTaskFinished()){ if(isClosed()){
if(taskFinishedTime != -1){ if(taskFinishedTime != -1){
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
return now - taskFinishedTime <= 20 * 1000; return now - taskFinishedTime <= 20 * 1000;
......
...@@ -252,6 +252,7 @@ smfcore.safetyInventory.supplementReel=\u8865\u5145\u76D8\u6570 ...@@ -252,6 +252,7 @@ smfcore.safetyInventory.supplementReel=\u8865\u5145\u76D8\u6570
smfcore.safetyInventory.amount=\u6700\u5C0F\u5305\u88C5 smfcore.safetyInventory.amount=\u6700\u5C0F\u5305\u88C5
smfcore.component.storeError=\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u5E93\u5B58\uFF0C\u6700\u5C0F\u5E93\u5B58<=\u5B89\u5168\u5E93\u5B58<=\u6700\u5927\u5E93\u5B58 smfcore.component.storeError=\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u5E93\u5B58\uFF0C\u6700\u5C0F\u5E93\u5B58<=\u5B89\u5168\u5E93\u5B58<=\u6700\u5927\u5E93\u5B58
smfcore.user.group.error=\u7EC4[{0}]\u5DF2\u7ECF\u5206\u914D\u7ED9\u64CD\u4F5C\u5458[{1}] smfcore.user.group.error=\u7EC4[{0}]\u5DF2\u7ECF\u5206\u914D\u7ED9\u64CD\u4F5C\u5458[{1}]
#smfcore.order.out.short=\u5DE5\u5355\u51FA\u5E93\u5931\u8D25\uFF0C\u5DE5\u5355\u7F3A\u6599
#smfclient.nlp.onlyOneTray=\u4E0D\u53EF\u540C\u65F6\u653E\u5165\u591A\u76D8\u7269\u6599:{0} #smfclient.nlp.onlyOneTray=\u4E0D\u53EF\u540C\u65F6\u653E\u5165\u591A\u76D8\u7269\u6599:{0}
#smfclient.nlp.cannotFindPos={0}\u672A\u627E\u5230\u5E93\u4F4D:{1} #smfclient.nlp.cannotFindPos={0}\u672A\u627E\u5230\u5E93\u4F4D:{1}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!