Commit a1d9ad19 zshaohui

功能优化 修改

1 个父辈 1789a1ea
...@@ -192,11 +192,11 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -192,11 +192,11 @@ public class BaseDeviceHandler implements IDeviceHandler {
} }
if (!storage.canPutInPos(barcodeSave.getPlateSize(), barcodeSave.getHeight(), storagePos.getW(), storagePos.getH())) { if (!storage.canPutInPos(barcodeSave.getPlateSize(), barcodeSave.getHeight(), storagePos.getW(), storagePos.getH())) {
//String reelSize = barcodeSave.getPlateSize() + "x" + barcodeSave.getHeight(); String reelSize = barcodeSave.getPlateSize() + "x" + barcodeSave.getHeight();
//String posSize = storagePos.getW() + "x" + storagePos.getH(); String posSize = storagePos.getW() + "x" + storagePos.getH();
//throw new ValidateException("smfcore.error.pos.sizeNotMatch", "料盘尺寸[{0}}]与库位{1}尺寸[{2}]不符,无法入库", new String[]{reelSize,posName,posSize}); throw new ValidateException("smfcore.error.pos.sizeNotMatch", "料盘尺寸[{0}}]与库位{1}尺寸[{2}]不符,无法入库", new String[]{reelSize,posName,posSize});
//如果尺寸不符合,则重新查找空库位 //如果尺寸不符合,则重新查找空库位
storagePos = findLineEmptyPosForPutIn(storage, barcodeSave); //storagePos = findLineEmptyPosForPutIn(storage, barcodeSave);
} }
} else { } else {
...@@ -240,7 +240,7 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -240,7 +240,7 @@ public class BaseDeviceHandler implements IDeviceHandler {
Barcode barcodeSave = smfApi.canPutInBeforeResolve(params); Barcode barcodeSave = smfApi.canPutInBeforeResolve(params);
if(barcodeSave == null){ if(barcodeSave == null){
barcodeSave = codeResolve.resolveOneValideBarcode(codeStr,type); barcodeSave = codeResolve.resolveOneValideBarcode(codeStr,type);
} }
//本地难条码是否可以入库 //本地难条码是否可以入库
verifyBarcodePutIn(Lists.<Storage>newArrayList(storage), barcodeSave); verifyBarcodePutIn(Lists.<Storage>newArrayList(storage), barcodeSave);
//从API验证 //从API验证
......
...@@ -8,6 +8,7 @@ import com.neotel.smfcore.common.exception.ValidateException; ...@@ -8,6 +8,7 @@ import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants; import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.SecurityUtils; import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.api.SmfApi; import com.neotel.smfcore.core.api.SmfApi;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode; import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.enums.OP; import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS; import com.neotel.smfcore.core.device.enums.OP_STATUS;
...@@ -27,6 +28,8 @@ import com.neotel.smfcore.core.system.service.po.DataLog; ...@@ -27,6 +28,8 @@ import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.TaskService; import com.neotel.smfcore.core.system.util.TaskService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
...@@ -53,9 +56,13 @@ public class LiteOrderCache { ...@@ -53,9 +56,13 @@ public class LiteOrderCache {
@Autowired @Autowired
private IStoragePosManager storagePosManager; private IStoragePosManager storagePosManager;
@Autowired @Autowired
private SmfApi smfApi; private SmfApi smfApi;
@Autowired
private IBarcodeManager barcodeManager;
/** /**
* 正在执行的liteOrderMap, key 为orderNo,value 为order * 正在执行的liteOrderMap, key 为orderNo,value 为order
*/ */
...@@ -396,23 +403,29 @@ public class LiteOrderCache { ...@@ -396,23 +403,29 @@ public class LiteOrderCache {
if(cacheOrder.getType()==2){ if(cacheOrder.getType()==2){
//RI //RI
pos=storagePosManager.getByBarcode(orderItem.getRi()); pos=storagePosManager.getByBarcode(orderItem.getRi());
if(excludePosIds.contains(pos.getId())) { if (excludePosIds != null && !excludePosIds.isEmpty()) {
log.info("工单[" + orderNo + "]RI出库,任务数[" + taskReelCount + "]出库位置仓位【" + pos.getPosName() + "】RI=[" + pos.getBarcode().getBarcode() + "]已在操作队列中,跳过不处理"); if (excludePosIds.contains(pos.getId())) {
break; log.info("工单[" + orderNo + "]RI出库,任务数[" + taskReelCount + "]出库位置仓位【" + pos.getPosName() + "】RI=[" + pos.getBarcode().getBarcode() + "]已在操作队列中,跳过不处理");
break;
}
} }
}else{ }else{
//PN //PN
pos=storagePosManager.findPartNumberInStorages(availableStorageIds, partNumber, excludePosIds, checkoutType); pos=storagePosManager.findPartNumberInStorages(availableStorageIds, partNumber, excludePosIds, checkoutType);
} }
//如果找不到的话,则查询料箱
if (pos == null) {
List<Criteria> orCriterialList = Lists.newArrayList();
orCriterialList.add(Criteria.where("barcode.barcode").is(orderItem.getRi()));
orCriterialList.add(Criteria.where("barcode.subCodeList.barcode").is(orderItem.getRi()));
Criteria c = new Criteria().orOperator(orCriterialList);
pos = storagePosManager.findByQueryOne(new Query(c));
}
if (pos == null) { if (pos == null) {
// log.error("未找到可以出库的物料[" + partNumber + "]"); // log.error("未找到可以出库的物料[" + partNumber + "]");
DataLog task = new DataLog();
task.setBarcode(orderItem.getRi());
task.setPosName(null);
task.setPosId(null);
task.setStatus(OP_STATUS.FINISHED.name());
task.setType(OP.CHECKOUT);
taskService.addTaskToExecute(task);
break; break;
} else { } else {
assignNum = assignNum + pos.getBarcode().getAmount(); assignNum = assignNum + pos.getBarcode().getAmount();
......
...@@ -70,4 +70,6 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> { ...@@ -70,4 +70,6 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
List<StoragePos> getNotEmptyByStorageIdList(List<String> storageId); List<StoragePos> getNotEmptyByStorageIdList(List<String> storageId);
List<StoragePos> findByBarcodesAndPartNums(List<String> partNums, List<String> reelIds); List<StoragePos> findByBarcodesAndPartNums(List<String> partNums, List<String> reelIds);
StoragePos findByQueryOne(Query query);
} }
...@@ -584,6 +584,11 @@ public class StoragePosManagerImpl implements IStoragePosManager { ...@@ -584,6 +584,11 @@ public class StoragePosManagerImpl implements IStoragePosManager {
return storagePosDao.findByQuery(query); return storagePosDao.findByQuery(query);
} }
@Override
public StoragePos findByQueryOne(Query query) {
return storagePosDao.findOne(query);
}
/** /**
* 获取下一库位的库位名(后缀数字+1) * 获取下一库位的库位名(后缀数字+1)
*/ */
......
...@@ -6,6 +6,7 @@ import com.google.common.collect.Lists; ...@@ -6,6 +6,7 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.neotel.smfcore.common.exception.ValidateException; import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants; import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.JsonUtil;
import com.neotel.smfcore.common.utils.ReelLockPosUtil; import com.neotel.smfcore.common.utils.ReelLockPosUtil;
import com.neotel.smfcore.common.utils.SecurityUtils; import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.api.SmfApi; import com.neotel.smfcore.core.api.SmfApi;
...@@ -155,6 +156,7 @@ public class TaskService { ...@@ -155,6 +156,7 @@ public class TaskService {
*/ */
public DataLog updateQueueTask(DataLog task) { public DataLog updateQueueTask(DataLog task) {
tiggerTaskChangeListener(task); tiggerTaskChangeListener(task);
log.info("开始保存----"+ JsonUtil.toJsonStr(task));
task = dataLogDao.save(task); task = dataLogDao.save(task);
taskMap.put(task.getId(), task); taskMap.put(task.getId(), task);
//tiggerTaskChangeListener(task); //tiggerTaskChangeListener(task);
...@@ -608,9 +610,9 @@ public class TaskService { ...@@ -608,9 +610,9 @@ public class TaskService {
log.info("条码[" + barcode.getBarcode() + "]已有锁定库位[" + pos.getPosName() + "],料仓ID["+pos.getStorageId()+"]不在请求列表["+String.join(",",storageIds)+"]中,重新查找库位"); log.info("条码[" + barcode.getBarcode() + "]已有锁定库位[" + pos.getPosName() + "],料仓ID["+pos.getStorageId()+"]不在请求列表["+String.join(",",storageIds)+"]中,重新查找库位");
pos = null; pos = null;
} }
else if (pos.getW() < barcode.getPlateSize() || pos.getH() < barcode.getHeight()) { else if (pos.getW() != barcode.getPlateSize() || pos.getH() != barcode.getHeight()) {
log.info("条码[" + barcode.getBarcode() + "]尺寸已改变,无法放入已锁定库位[" + pos.getPosName() + "],重新查找库位");
pos = null; pos = null;
log.info("条码[" + barcode.getBarcode() + "]尺寸已改变,无法放入已锁定库位[" + pos.getPosName() + "],重新查找库位");
} else { } else {
Barcode posBarcode = pos.getBarcode(); Barcode posBarcode = pos.getBarcode();
if (posBarcode == null) { if (posBarcode == null) {
......
...@@ -6,6 +6,7 @@ import com.neotel.smfcore.common.bean.ResultBean; ...@@ -6,6 +6,7 @@ import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.utils.DateUtil; import com.neotel.smfcore.common.utils.DateUtil;
import com.neotel.smfcore.common.utils.JsonUtil; import com.neotel.smfcore.common.utils.JsonUtil;
import com.neotel.smfcore.common.utils.StorageConstants; import com.neotel.smfcore.common.utils.StorageConstants;
import com.neotel.smfcore.core.barcode.rest.bean.mapstruct.BarcodeMapper;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager; import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode; import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.bean.BoxStatusBean; import com.neotel.smfcore.core.device.bean.BoxStatusBean;
...@@ -90,6 +91,7 @@ public class NeotelController { ...@@ -90,6 +91,7 @@ public class NeotelController {
} }
if (outItem.get("reelId") != null) { if (outItem.get("reelId") != null) {
orderItem.setRi(outItem.get("reelId").toString()); //料盘唯一码 orderItem.setRi(outItem.get("reelId").toString()); //料盘唯一码
orderItem.setNeedNum(1);
} }
orderItemList.add(orderItem); orderItemList.add(orderItem);
} }
...@@ -99,6 +101,7 @@ public class NeotelController { ...@@ -99,6 +101,7 @@ public class NeotelController {
liteOrder.setOrderNo(orderNo); liteOrder.setOrderNo(orderNo);
liteOrder.setLine(line); liteOrder.setLine(line);
liteOrder.setSo(so); liteOrder.setSo(so);
liteOrder.setType(2);
liteOrder.setOrderItems(orderItemList); liteOrder.setOrderItems(orderItemList);
liteOrder = liteOrderManager.createWithItems(liteOrder); liteOrder = liteOrderManager.createWithItems(liteOrder);
liteOrderCache.addOrderToMap(liteOrder); liteOrderCache.addOrderToMap(liteOrder);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!