Commit 65fae3cf zshaohui

1.工单出库时,绑定物料与orderitemId

2.料箱中物料出库时,任务增加so与slotnum字段
1 个父辈 a1d9ad19
......@@ -2,6 +2,7 @@ package com.neotel.smfcore.core.barcode.service.manager;
import com.neotel.smfcore.common.base.IBaseManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import org.springframework.data.mongodb.core.query.Query;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
......@@ -19,4 +20,6 @@ public interface IBarcodeManager extends IBaseManager<Barcode> {
void deleteBarcodes(Set<String> ids);
Barcode findByPartNumber(String partNumber);
Barcode findByQueryOne(Query query);
}
......@@ -104,6 +104,11 @@ public class BarcodeManagerImpl implements IBarcodeManager {
}
@Override
public Barcode findByQueryOne(Query query) {
return barcodeDao.findOne(query);
}
@Override
public Barcode saveBarcode(Barcode resources) {
validateSave(resources);
......
......@@ -161,6 +161,11 @@ public class Barcode extends BasePo implements Serializable {
private List<Barcode> subCodeList;
/**
*
*/
private String orderItemId;
/**
* 是否是锡膏
*/
public boolean isSolder() {
......
......@@ -7,6 +7,7 @@ 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.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StringUtils;
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;
......@@ -180,6 +181,7 @@ public class LiteOrderCache {
task.setSourceId(liteOrder.getId());
task.setSourceName(liteOrder.getOrderNo());
task.setSo(liteOrder.getSo());
task.setSubSourceId(barcode.getLockName());
task.setSubSourceInfo(barcode.getLockName());
task.setType(OP.CHECKOUT);
......@@ -440,6 +442,7 @@ public class LiteOrderCache {
task.setType(OP.CHECKOUT);
task.setLightColor(nextColor.getRgb());
task.setStatus(OP_STATUS.WAIT.name());
task.setSlotnum(orderItem.getSlotNum());
// task = dataLogDao.save(task);
taskService.addTaskToExecute(task);
}
......@@ -447,9 +450,27 @@ public class LiteOrderCache {
if(cacheOrder.getType()==2){
break;
}
//开始工单与料盘绑定
String orderItemId = orderItem.getId();
//物料与需求单绑定
Barcode barcode = barcodeManager.findByBarcode(orderItem.getRi());
if (barcode != null) {
barcode.setOrderItemId(orderItemId);
barcodeManager.save(barcode);
//同时更新
Criteria c = Criteria.where("subCodeList.barcode").is(orderItem.getRi());
Barcode parBarcode = barcodeManager.findByQueryOne(new Query(c));
if (parBarcode != null) {
List<Barcode> subCodeList = parBarcode.getSubCodeList();
subCodeList.removeIf(subCode -> subCode.getBarcode().equals(barcode.getBarcode()));
subCodeList.add(barcode);
parBarcode.setSubCodeList(subCodeList);
barcodeManager.saveBarcode(parBarcode);
}
}
}
}
}
cacheOrder.setTaskReelCount(taskReelCount);
......@@ -617,4 +638,16 @@ public class LiteOrderCache {
}
return null;
}
public LiteOrder getLiteOrderByOrderItemId(String orderItemId) {
if (StringUtils.isBlank(orderItemId)) {
return null;
}
LiteOrderItem liteOrderItem = liteOrderItemManager.get(orderItemId);
if (liteOrderItem != null) {
String orderId = liteOrderItem.getOrderId();
return liteOrderManager.get(orderId);
}
return null;
}
}
......@@ -16,6 +16,10 @@ import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.manager.IDataLogManager;
......@@ -62,6 +66,9 @@ public class MaterialBoxController {
@Autowired
protected SmfApi smfApi;
@Autowired
private LiteOrderCache liteOrderCache;
@ApiOperation("查询料盒信息")
@PostMapping
@PreAuthorize("@el.check('materialBox')")
......@@ -583,6 +590,21 @@ public class MaterialBoxController {
task.setBarcode(subBarcode.getBarcode());
task.setNum(opQty);
task.setType(opType);
//开始查询工单
LiteOrder liteOrder = liteOrderCache.getLiteOrderByOrderItemId(subBarcode.getOrderItemId());
task.setSo(liteOrder.getSo());
task.setSourceName(liteOrder.getOrderNo());
if (liteOrder != null){
List<LiteOrderItem> orderItems = liteOrder.getOrderItems();
for (LiteOrderItem orderItem : orderItems) {
if (orderItem.getRi().equals(subBarcode.getBarcode())){
task.setSlotnum(orderItem.getSlotNum());
break;
}
}
}
if (task.isCheckOutTask()) {
opQty = -opQty;
}
......
......@@ -206,6 +206,15 @@ public class DataLog extends BasePo implements Serializable {
private Date putInDate;
/**
* 需求单号
*/
private String so;
/**
* 站位号
*/
private int slotnum = 0;
/**
* MSD附加信息
*/
private MSDAppendInfo msdAppendInfo;
......
......@@ -156,7 +156,6 @@ public class TaskService {
*/
public DataLog updateQueueTask(DataLog task) {
tiggerTaskChangeListener(task);
log.info("开始保存----"+ JsonUtil.toJsonStr(task));
task = dataLogDao.save(task);
taskMap.put(task.getId(), task);
//tiggerTaskChangeListener(task);
......
......@@ -91,7 +91,8 @@ public class NeotelApi extends BaseSmfApiListener {
paramMap.put("boxNo", task.getCid());
paramMap.put("location", task.getPosName());
paramMap.put("hSerial", task.getSourceName());
paramMap.put("slotNum", task.getSubSourceId());
paramMap.put("slotNum", task.getSlotnum());
paramMap.put("so",task.getSo());
int type = getType(task), w = 0, h = 0;
if (type != 2) {
......
......@@ -90,7 +90,8 @@ public class NeotelController {
orderItem.setSlotNum(Integer.valueOf(outItem.get("slotNum").toString())); //站位编号
}
if (outItem.get("reelId") != null) {
orderItem.setRi(outItem.get("reelId").toString()); //料盘唯一码
String reelId = outItem.get("reelId").toString();
orderItem.setRi(reelId); //料盘唯一码
orderItem.setNeedNum(1);
}
orderItemList.add(orderItem);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!