Commit 9e7940a2 zshaohui

1.uid出库增加线体选择

2.物料日志,增加线体显示
1 个父辈 115b0ffa
...@@ -537,6 +537,9 @@ public class LiteOrderCache { ...@@ -537,6 +537,9 @@ public class LiteOrderCache {
Collection<String> excludePosIds = excludeOutPosIds(); Collection<String> excludePosIds = excludeOutPosIds();
String partNumber = orderItem.getPn(); String partNumber = orderItem.getPn();
String[] partNumberSpl = partNumber.split(",");
StoragePos pos = null; StoragePos pos = null;
if (cacheOrder.getType() == 2) { if (cacheOrder.getType() == 2) {
//RI //RI
...@@ -551,12 +554,16 @@ public class LiteOrderCache { ...@@ -551,12 +554,16 @@ public class LiteOrderCache {
//PN //PN
do { do {
//首先按空闲料仓进行出库 //首先按空闲料仓进行出库
List<StoragePos> storagePosList = storagePosManager.findPartNumberListInStorages(freeStorageIds, partNumber, excludePosIds, checkoutType,orderItem.getBrand()); List<StoragePos> storagePosList = new ArrayList<>();
//如果为空的话,则出全部的 for (String pn : partNumberSpl) {
if (storagePosList == null || storagePosList.isEmpty()) { storagePosList = storagePosManager.findPartNumberListInStorages(freeStorageIds, pn, excludePosIds, checkoutType,orderItem.getBrand());
storagePosList = storagePosManager.findPartNumberListInStorages(availableStorageIds, partNumber, excludePosIds, checkoutType,orderItem.getBrand()); if (storagePosList == null || storagePosList.isEmpty()){
storagePosList = storagePosManager.findPartNumberListInStorages(availableStorageIds, pn, excludePosIds, checkoutType,orderItem.getBrand());
}
if (storagePosList != null && !storagePosList.isEmpty()){
break;
}
} }
//排序找到最早的 //排序找到最早的
if (storagePosList != null && !storagePosList.isEmpty()) { if (storagePosList != null && !storagePosList.isEmpty()) {
List<Barcode> barcodeList = new ArrayList<>(); List<Barcode> barcodeList = new ArrayList<>();
......
...@@ -679,6 +679,12 @@ public class StoragePosController { ...@@ -679,6 +679,12 @@ public class StoragePosController {
if (checkOutDto.getSingleOut() == null) { if (checkOutDto.getSingleOut() == null) {
checkOutDto.setSingleOut(true + ""); checkOutDto.setSingleOut(true + "");
} }
String line = checkOutDto.getLine();
if (StringUtils.isEmpty(line)){
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"线体"});
}
String isSingleOutStr = checkOutDto.getSingleOut(); String isSingleOutStr = checkOutDto.getSingleOut();
boolean isSingleOut = Boolean.valueOf(isSingleOutStr); boolean isSingleOut = Boolean.valueOf(isSingleOutStr);
...@@ -701,7 +707,7 @@ public class StoragePosController { ...@@ -701,7 +707,7 @@ public class StoragePosController {
// } // }
log.info("出库料仓【" + storage.getName() + "_" + storage.getCid() + "】位置仓位【" + pos.getPosName() + "】"); log.info("出库料仓【" + storage.getName() + "_" + storage.getCid() + "】位置仓位【" + pos.getPosName() + "】");
String outResult = taskService.checkout(storage, pos, isSingleOut,SecurityUtils.getCurrentUsername(),null); String outResult = taskService.checkout(storage, pos, isSingleOut,SecurityUtils.getCurrentUsername(),null,line);
if (!Strings.isNullOrEmpty(outResult)) { if (!Strings.isNullOrEmpty(outResult)) {
throw new ValidateException("smfcore.error", outResult); throw new ValidateException("smfcore.error", outResult);
} }
......
...@@ -9,4 +9,6 @@ public class CheckOutDto { ...@@ -9,4 +9,6 @@ public class CheckOutDto {
private String[] pids; private String[] pids;
@ApiModelProperty("是否是单盘出库") @ApiModelProperty("是否是单盘出库")
private String singleOut; private String singleOut;
@ApiModelProperty("线体")
private String line;
} }
...@@ -111,6 +111,7 @@ public class TaskController { ...@@ -111,6 +111,7 @@ public class TaskController {
headerList.add(Lists.newArrayList("料件编号")); headerList.add(Lists.newArrayList("料件编号"));
headerList.add(Lists.newArrayList("条码编号")); headerList.add(Lists.newArrayList("条码编号"));
headerList.add(Lists.newArrayList("料仓名称")); headerList.add(Lists.newArrayList("料仓名称"));
headerList.add(Lists.newArrayList("线体"));
headerList.add(Lists.newArrayList("数量")); headerList.add(Lists.newArrayList("数量"));
headerList.add(Lists.newArrayList("类型")); headerList.add(Lists.newArrayList("类型"));
headerList.add(Lists.newArrayList("来源")); headerList.add(Lists.newArrayList("来源"));
...@@ -130,6 +131,7 @@ public class TaskController { ...@@ -130,6 +131,7 @@ public class TaskController {
result.add(dataLog.getPartNumber()); result.add(dataLog.getPartNumber());
result.add(dataLog.getBarcode()); result.add(dataLog.getBarcode());
result.add(dataLog.getPosName()+" "+dataLog.getStorageName()); result.add(dataLog.getPosName()+" "+dataLog.getStorageName());
result.add(dataLog.getLine());
result.add(dataLog.getNum()); result.add(dataLog.getNum());
result.add(dataLog.getType() == 1 ? "入库" : "出库"); result.add(dataLog.getType() == 1 ? "入库" : "出库");
result.add(dataLog.getSourceName()); result.add(dataLog.getSourceName());
......
...@@ -143,6 +143,9 @@ public class TaskDto implements Serializable { ...@@ -143,6 +143,9 @@ public class TaskDto implements Serializable {
@ApiModelProperty("如果是出库任务,需要记录入库时间") @ApiModelProperty("如果是出库任务,需要记录入库时间")
private Date putInDate; private Date putInDate;
@ApiModelProperty("线体")
private String line;
public String getTaskColor() { public String getTaskColor() {
if (ObjectUtil.isNotEmpty(lightColor)) { if (ObjectUtil.isNotEmpty(lightColor)) {
return "#" + lightColor; return "#" + lightColor;
......
...@@ -119,6 +119,10 @@ public class TaskService { ...@@ -119,6 +119,10 @@ public class TaskService {
return task; return task;
} }
public synchronized String checkout(Storage storage, StoragePos pos, boolean isSingleOut, String opUserName,String stationName) throws ValidateException {
return checkout(storage,pos,isSingleOut,opUserName,stationName,"");
}
/** /**
* 库位出库 * 库位出库
* *
...@@ -128,7 +132,7 @@ public class TaskService { ...@@ -128,7 +132,7 @@ public class TaskService {
* @return * @return
* @throws ValidateException * @throws ValidateException
*/ */
public synchronized String checkout(Storage storage, StoragePos pos, boolean isSingleOut, String opUserName,String stationName) throws ValidateException { public synchronized String checkout(Storage storage, StoragePos pos, boolean isSingleOut, String opUserName,String stationName,String line) throws ValidateException {
if (pos.getBarcode() == null) { if (pos.getBarcode() == null) {
String msg = "库位[" + pos.getPosName() + "]中已无物料,忽略"; String msg = "库位[" + pos.getPosName() + "]中已无物料,忽略";
log.info(msg); log.info(msg);
...@@ -164,6 +168,7 @@ public class TaskService { ...@@ -164,6 +168,7 @@ public class TaskService {
task.setLoc(stationName); task.setLoc(stationName);
} }
task.setBoxPosName(pos.getPosName()); task.setBoxPosName(pos.getPosName());
task.setLine(line);
/*if (barcode.getBarcode().startsWith("CS") || barcode.getBarcode().startsWith("CM") || barcode.getBarcode().startsWith("CB")){ /*if (barcode.getBarcode().startsWith("CS") || barcode.getBarcode().startsWith("CM") || barcode.getBarcode().startsWith("CB")){
task.setStatus(OP_STATUS.FINISHED.name()); task.setStatus(OP_STATUS.FINISHED.name());
addTaskToFinished(pos,barcode,SecurityUtils.getCurrentUsername()); addTaskToFinished(pos,barcode,SecurityUtils.getCurrentUsername());
......
...@@ -179,7 +179,7 @@ public class VirtualRestController { ...@@ -179,7 +179,7 @@ public class VirtualRestController {
return ResultBean.newErrorResult(-1, "smfcore.storagePos.existBarcode", "{}已存在库位{}中", new String[]{barcode.getBarcode(), pos.getPosName()}); return ResultBean.newErrorResult(-1, "smfcore.storagePos.existBarcode", "{}已存在库位{}中", new String[]{barcode.getBarcode(), pos.getPosName()});
} }
//放入虚拟仓 //放入虚拟仓
intoVirtualPos(posName,barcode,""); intoVirtualPosNew(posName,barcode,"");
return ResultBean.newOkResult(barcode.getBarcode()+"已经放入库位中:"+posName); return ResultBean.newOkResult(barcode.getBarcode()+"已经放入库位中:"+posName);
} }
...@@ -432,6 +432,50 @@ public class VirtualRestController { ...@@ -432,6 +432,50 @@ public class VirtualRestController {
} }
private void intoVirtualPosNew(String posName, Barcode barcode,String orderNo) {
//判断有没有空库位
Storage storage = null;
Collection<Storage> storages = dataCache.getAllStorage().values();
for (Storage stor : storages) {
if (stor.isVirtual()) {
storage = stor;
break;
}
}
StoragePos pos = storagePosManager.findOneEmptyPosNameByStorageId(storage.getId(),posName);
if (pos != null) {
posName = posName + "-" + pos.getId();
} else {
pos = new StoragePos();
pos = storagePosManager.save(pos);
posName = posName + "-" + pos.getId();
}
barcode.setPosName(posName);
barcode.setPutInTime(new Date().getTime());
barcode = barcodeManager.save(barcode);
pos.setPosName(posName);
pos.setBarcode(barcode);
pos.setEnabled(true);
pos.setUsed(true);
pos.setUpdateDate(new Date());
pos.setStorageId(storage.getId());
pos = storagePosManager.save(pos);
DataLog dataLog = generateTask(storage, barcode, pos, OP.PUT_IN, OP_STATUS.FINISHED.name(), null);
dataLog.setExtendType(ExtendType.VIRTUAL_PUTIN); //虚拟入库
if (StringUtils.isNotBlank(orderNo)){
dataLog.setSourceName(orderNo);
}
//taskService.addTaskToExecute(dataLog);
//taskService.moveTaskToFinished(dataLog);
taskService.updateFinishedTask(dataLog);
taskService.removeFinishedTask(dataLog);
//更改缓存信息
dataCache.updateInventory(pos, barcode);
}
private DataLog generateTask(Storage storage, Barcode barcode, StoragePos pos, int type, String status, String loc) { private DataLog generateTask(Storage storage, Barcode barcode, StoragePos pos, int type, String status, String loc) {
//开始入库任务 //开始入库任务
DataLog task = new DataLog(storage, barcode, pos); DataLog task = new DataLog(storage, barcode, pos);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!