Commit 533db9b4 LN

新建datalog默认为等待状态

1 个父辈 6adc0672
......@@ -99,5 +99,8 @@ public class Constants {
*/
public static final String CACHE_StopJob="stopJob";
/**
* 出库方式类型 出库策略配置
*/
public static final String CACHE_CheckOutType="checkoutType";
}
......@@ -4,6 +4,7 @@ import com.google.common.base.Strings;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP;
......@@ -52,6 +53,8 @@ public class LiteOrderCache implements ITaskListener {
@Autowired
private IStoragePosManager storagePosManager;
@Autowired
private IBarcodeManager barcodeManager;
/**
* 正在执行的liteOrderMap, key 为orderNo,value 为order
......@@ -160,21 +163,21 @@ public class LiteOrderCache implements ITaskListener {
liteOrderItem.setTotalOutNum(liteOrderItem.getTotalOutNum()+task.getNum());
liteOrderItem.setTotalOutReelCount(liteOrderItem.getTotalOutReelCount()+1);
liteOrderItem = liteOrderItemManager.save(liteOrderItem);
// Barcode barcode = barcodeManager.findByBarcode(task.getBarcode());
// if (barcode != null) {
// Float totalNeedNum = liteOrderItem.getNeedNum() * order.getOrderTimes();
// int barcodeRemainNum = liteOrderItem.getOutNum() - totalNeedNum.intValue();
// if (barcodeRemainNum < 0) {
// barcodeRemainNum = 0;
// }
// barcode.setAmount(barcodeRemainNum);
// log.info("条码[" + task.getBarcode() + "]从工单出库,更改数量为:" + barcodeRemainNum);
// try {
// barcodeManager.save(barcode);
// } catch (ValidateException e) {
// e.printStackTrace();
// }
// }
Barcode barcode = barcodeManager.findByBarcode(task.getBarcode());
if (barcode != null) {
Float totalNeedNum = liteOrderItem.getNeedNum() * order.getOrderTimes();
int barcodeRemainNum = liteOrderItem.getOutNum() - totalNeedNum.intValue();
if (barcodeRemainNum < 0) {
barcodeRemainNum = 0;
}
barcode.setAmount(barcodeRemainNum);
log.info("条码[" + task.getBarcode() + "]从工单出库,更改数量为:" + barcodeRemainNum);
try {
barcodeManager.save(barcode);
} catch (ValidateException e) {
e.printStackTrace();
}
}
}
items.add(liteOrderItem);
}
......@@ -188,8 +191,10 @@ public class LiteOrderCache implements ITaskListener {
break;
}
}
if(closed){
order.setClosed(closed);
}
}
} else {
log.error("工单[" + orderNo + "]的任务[" + task.getBarcode() + "]完成时,状态为:" + task.getStatus());
}
......
......@@ -177,7 +177,7 @@ public class MaterialController {
}
log.info("出库料仓【" + storage.getName() + "_" + storage.getCid() + "】位置仓位【" + pos.getPosName() + "】");
String outResult = taskService.checkout(storage, pos, true);
String outResult = taskService.checkout(storage, pos, true,SecurityUtils.getCurrentUsername());
if (!Strings.isNullOrEmpty(outResult)) {
throw new ValidateException("smfcode.error", outResult);
}
......
......@@ -310,7 +310,6 @@ public class StoragePosController {
}
String isSingleOutStr = checkOutDto.getSingleOut();
boolean isSingleOut = Boolean.valueOf(isSingleOutStr);
// String pids = checkOutDto.getPids();
for (String pid : checkOutDto.getPids()) {
StoragePos pos = storagePosManager.get(pid);
......@@ -325,7 +324,7 @@ public class StoragePosController {
}
log.info("出库料仓【" + storage.getName() + "_" + storage.getCid() + "】位置仓位【" + pos.getPosName() + "】");
String outResult = taskService.checkout(storage, pos, isSingleOut);
String outResult = taskService.checkout(storage, pos, isSingleOut,SecurityUtils.getCurrentUsername());
if (!Strings.isNullOrEmpty(outResult)) {
throw new ValidateException("smfcode.error", outResult);
}
......
......@@ -36,6 +36,7 @@ public class DataLog extends BasePo implements Serializable {
setPosId(pos.getId());
setPosName(pos.getPosName());
setStatus(OP_STATUS.WAIT.name());
}
/**
......
......@@ -101,7 +101,7 @@ public class TaskService {
* @return
* @throws ValidateException
*/
public synchronized String checkout(Storage storage, StoragePos pos, boolean isSingleOut) throws ValidateException {
public synchronized String checkout(Storage storage, StoragePos pos, boolean isSingleOut,String opUserName) throws ValidateException {
if (pos.getBarcode() == null) {
String msg = "库位[" + pos.getPosName() + "]中已无物料,忽略";
log.info(msg);
......@@ -112,7 +112,7 @@ public class TaskService {
task.setType(OP.CHECKOUT);
task.setStatus(OP_STATUS.WAIT.name());
task.setSingleOut(isSingleOut);
task.setOperator(opUserName);
addTaskToExecute(task);
return "";
}
......@@ -521,6 +521,7 @@ public class TaskService {
task.setPosId(pos.getId());
task.setPosName(pos.getPosName());
task.setStatus(OP_STATUS.WAIT.name());
return task;
}
......@@ -669,7 +670,7 @@ public class TaskService {
//如果已在库位中,那么自动将该库位的物料出库
log.info("出库已在库位中的物料["+barcodeSave.getBarcode()+"]");
Storage storage = dataCache.getStorageById(pos.getStorageId());
checkout(storage, pos, true);
checkout(storage, pos, true,"");
throw new ValidateException("smfcode.error.barcode.exist", "[{0}}]已在{1}}[{2}}]中",new String[]{ barcodeSave.getBarcode(),storage.getName(),pos.getPosName()});
}
......@@ -904,10 +905,11 @@ public class TaskService {
} else {
log.info("策略出库,PN[" + item.getPartNumber() + "]第[" + i + "]盘, 出库位置仓位【" + pos.getPosName() + "】RI=[" + pos.getBarcode().getBarcode() + "] PN=[" + partNumber + "] num:" + pos.getBarcode().getAmount());
DataLog task = newTask(pos);
task.setType(OP.CHECKOUT);
task.setOperator(SecurityUtils.getCurrentUsername());
task.setSingleOut(true);
task.setSourceId(null);
task.setSourceName("策略出库");
task.setType(OP.CHECKOUT);
addTaskToExecute(task);
}
}
......
......@@ -186,7 +186,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
}else{
Storage storage = dataCache.getStorageById(storagePos.getStorageId());
try{
taskService.checkout(storage,storagePos,false);
taskService.checkout(storage,storagePos,false,"");
}catch(ValidateException ve){
resultCode = "-3";
resultMsg = ve.getMessage();
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!