Commit 9e7940a2 zshaohui

1.uid出库增加线体选择

2.物料日志,增加线体显示
1 个父辈 115b0ffa
......@@ -537,6 +537,9 @@ public class LiteOrderCache {
Collection<String> excludePosIds = excludeOutPosIds();
String partNumber = orderItem.getPn();
String[] partNumberSpl = partNumber.split(",");
StoragePos pos = null;
if (cacheOrder.getType() == 2) {
//RI
......@@ -551,12 +554,16 @@ public class LiteOrderCache {
//PN
do {
//首先按空闲料仓进行出库
List<StoragePos> storagePosList = storagePosManager.findPartNumberListInStorages(freeStorageIds, partNumber, excludePosIds, checkoutType,orderItem.getBrand());
//如果为空的话,则出全部的
if (storagePosList == null || storagePosList.isEmpty()) {
storagePosList = storagePosManager.findPartNumberListInStorages(availableStorageIds, partNumber, excludePosIds, checkoutType,orderItem.getBrand());
List<StoragePos> storagePosList = new ArrayList<>();
for (String pn : partNumberSpl) {
storagePosList = storagePosManager.findPartNumberListInStorages(freeStorageIds, pn, 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()) {
List<Barcode> barcodeList = new ArrayList<>();
......
......@@ -679,6 +679,12 @@ public class StoragePosController {
if (checkOutDto.getSingleOut() == null) {
checkOutDto.setSingleOut(true + "");
}
String line = checkOutDto.getLine();
if (StringUtils.isEmpty(line)){
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"线体"});
}
String isSingleOutStr = checkOutDto.getSingleOut();
boolean isSingleOut = Boolean.valueOf(isSingleOutStr);
......@@ -701,7 +707,7 @@ public class StoragePosController {
// }
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)) {
throw new ValidateException("smfcore.error", outResult);
}
......
......@@ -9,4 +9,6 @@ public class CheckOutDto {
private String[] pids;
@ApiModelProperty("是否是单盘出库")
private String singleOut;
@ApiModelProperty("线体")
private String line;
}
......@@ -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("来源"));
......@@ -130,6 +131,7 @@ public class TaskController {
result.add(dataLog.getPartNumber());
result.add(dataLog.getBarcode());
result.add(dataLog.getPosName()+" "+dataLog.getStorageName());
result.add(dataLog.getLine());
result.add(dataLog.getNum());
result.add(dataLog.getType() == 1 ? "入库" : "出库");
result.add(dataLog.getSourceName());
......
......@@ -143,6 +143,9 @@ public class TaskDto implements Serializable {
@ApiModelProperty("如果是出库任务,需要记录入库时间")
private Date putInDate;
@ApiModelProperty("线体")
private String line;
public String getTaskColor() {
if (ObjectUtil.isNotEmpty(lightColor)) {
return "#" + lightColor;
......
......@@ -119,6 +119,10 @@ public class TaskService {
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 {
* @return
* @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) {
String msg = "库位[" + pos.getPosName() + "]中已无物料,忽略";
log.info(msg);
......@@ -164,6 +168,7 @@ public class TaskService {
task.setLoc(stationName);
}
task.setBoxPosName(pos.getPosName());
task.setLine(line);
/*if (barcode.getBarcode().startsWith("CS") || barcode.getBarcode().startsWith("CM") || barcode.getBarcode().startsWith("CB")){
task.setStatus(OP_STATUS.FINISHED.name());
addTaskToFinished(pos,barcode,SecurityUtils.getCurrentUsername());
......
......@@ -179,7 +179,7 @@ public class VirtualRestController {
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);
}
......@@ -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) {
//开始入库任务
DataLog task = new DataLog(storage, barcode, pos);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!