Commit 94388583 zshaohui

虚拟仓:一个库位可以放入多个物料

1 个父辈 1c6c8e84
......@@ -106,15 +106,15 @@ public class VirtualBoxHandler extends BaseDeviceHandler{
}
}
//扫描的为库位条码记录库位
if (pos.getBarcode() != null) {
return ResultBean.newErrorResult(1, "smfcore.shelf.msg.hasReel", "库位中[{0}]已有物料", new String[]{pos.getPosName()});
} else {
// if (pos.getBarcode() != null) {
// return ResultBean.newErrorResult(1, "smfcore.shelf.msg.hasReel", "库位中[{0}]已有物料", new String[]{pos.getPosName()});
//} else {
VirtualOperateBean operateBean = getOperateBean(token);
operateBean.setOpPos(pos);
devidePutInBeanMap.put(token, operateBean);
log.info(ptoken + ":库位[" + pos.getPosName() + "]操作成功,请扫描要放入的物料");
return ResultBean.newOkResult("smfcore.shelf.msg.tipScanReel", "库位[" + pos.getPosName() + "]操作成功,请扫描要放入的物料", new String[]{pos.getPosName()}, pos.getPosName());
}
// }
} else {
//扫的是物料条码
Barcode barcode = codeResolve.resolveOneValideBarcode("=1x1=" + code);
......@@ -162,16 +162,17 @@ public class VirtualBoxHandler extends BaseDeviceHandler{
return ResultBean.newErrorResult(1, "smfcore.shelf.msg.scanPos", "请先扫描库位码");
} else {
log.info(barcode.getPartNumber() + " [ " + barcode.getBarcode() + " ] " + "入库到:" + opPos.getPosName());
opPos.setCanCheckOutTime(System.currentTimeMillis() + delayCloseTime);
taskService.addTaskToFinished(opPos, barcode, loginUser);
StoragePos storagePos = storagePosManager.getAndCreatePos(storageId,opPos.getPosName());
log.info(barcode.getPartNumber() + " [ " + barcode.getBarcode() + " ] " + "入库到:" + storagePos.getPosName());
storagePos.setCanCheckOutTime(System.currentTimeMillis() + delayCloseTime);
taskService.addTaskToFinished(storagePos, barcode, loginUser);
//入库结束后清理信息,不自动到下一个库位
operateBean.setOpPos(null);
//operateBean.setOpPos(null);
devidePutInBeanMap.put(token, operateBean);
log.info(ptoken + ":条码[" + code + "]入库操作成功,请放入库位 [" + opPos.getPosName() + "]");
return ResultBean.newOkResult("smfcore.shelf.msg.inOk", "操作成功,请放入库位[" + opPos.getPosName() + "]", new String[]{opPos.getPosName()}, "");
return ResultBean.newOkResult("smfcore.shelf.msg.inOk", "操作成功,请放入库位[" + storagePos.getPosName() + "]", new String[]{storagePos.getPosName()}, "");
}
} catch (ValidateException e) {
......
......@@ -87,4 +87,6 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
List<StoragePos> findExpiredOrSluggishBarcode(Date date,int type);
List<StoragePos> findExistPosList(String id, List<String> list);
StoragePos getAndCreatePos(String storageId,String posName);
}
......@@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.neotel.smfcore.common.base.BasePo;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.DateUtil;
......@@ -813,4 +814,18 @@ public class StoragePosManagerImpl implements IStoragePosManager {
Query q = new Query(c);
return storagePosDao.findByQuery(q);
}
@Override
public StoragePos getAndCreatePos(String storageId, String posName) {
Pattern pattern = Pattern.compile(posName, Pattern.CASE_INSENSITIVE);
Criteria c = Criteria.where("posName").regex(pattern).and("enabled").is(true).and("used").is(false).and("barcode").exists(false).and("storageId").is(storageId);
StoragePos storagePos = storagePosDao.findOne(new Query(c));
if (storagePos == null) {
storagePos = new StoragePos(storageId, posName, 1, 1, 1);
storagePos = storagePosDao.save(storagePos);
storagePos.setPosName(storagePos.getPosName() + "-" + storagePos.getId());
storagePosDao.save(storagePos);
}
return storagePos;
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!