Commit 64c322e3 zshaohui

1.打印标签根据cid去打印

1 个父辈 5a8586c2
......@@ -379,7 +379,7 @@ public class NLShelfHandler extends BaseDeviceHandler {
//设置nlLable
if (StringUtils.isNotBlank(task.getSubSourceId())) {
log.info(task.getBarcode() + "设置的标签orderItemId:" + task.getSubSourceId());
innerBoxRestController.setLabelOrderItemId(task.getSubSourceId());
innerBoxRestController.setLabelOrderItemId(task.getCid(),task.getSubSourceId());
}
taskService.addTaskToFinished(inPos, null, loginUser);
opPosLight("close", inPos, "");
......
......@@ -29,6 +29,7 @@ import com.neotel.smfcore.custom.lizhen.innerBox.bean.OutLotInfo;
import com.neotel.smfcore.custom.lizhen.innerBox.enums.ExtendType;
import com.neotel.smfcore.custom.lizhen.innerBox.util.OutLotInfoCache;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import io.jsonwebtoken.lang.Maps;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -42,6 +43,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
......@@ -83,7 +85,7 @@ public class InnerBoxRestController {
private IDataLogManager dataLogManager;
//料架缓存id
private static String labelOrderItemId;
private static Map<String,String> labelOrderItemMap = new ConcurrentHashMap<>();
//人工发料id
private static List<String> manualOrderItemIdList = new CopyOnWriteArrayList<>();
......@@ -248,9 +250,24 @@ public class InnerBoxRestController {
@RequestMapping("/rack/getPrintInfo")
@AnonymousAccess
public ResultBean rackPrintLabel(HttpServletRequest request) {
String cid = request.getParameter("cid");
String labelOrderItemId = "";
if (StringUtils.isBlank(cid)) {
String cidKey = "";
for (Map.Entry<String, String> entry : labelOrderItemMap.entrySet()) {
cidKey = entry.getKey();
labelOrderItemId = entry.getValue();
break;
}
if (StringUtils.isNotBlank(cidKey)) {
labelOrderItemMap.remove(cidKey);
}
} else {
labelOrderItemId = labelOrderItemMap.get(cid);
}
Map<String, String> resultMap = getPrintLabel(labelOrderItemId);
if (resultMap.isEmpty()) {
return ResultBean.newErrorResult(-1, "", "未找到需要打印的标签信息",null,false);
if (resultMap == null || resultMap.isEmpty()) {
return ResultBean.newErrorResult(-1, "", "未找到需要打印的标签信息", null, false);
}
return ResultBean.newOkResult(resultMap);
}
......@@ -259,8 +276,9 @@ public class InnerBoxRestController {
@RequestMapping("/rack/finishPrint")
@AnonymousAccess
public ResultBean finishPrintLabel(HttpServletRequest request) {
String cid = request.getParameter("cid");
log.info("移除打印标签");
setLabelOrderItemId(null);
labelOrderItemMap.remove(cid);
return ResultBean.newOkResult("");
}
......@@ -445,7 +463,7 @@ public class InnerBoxRestController {
return ResultBean.newErrorResult(-1, "smfcore.valueNotFind", "未找到{0}{1}", new String[]{reelId,"补打印信息,请核实是否已经有出库任务"});
}
for (DataLog dataLog : dataLogs) {
setLabelOrderItemId(dataLog.getSubSourceId());
setLabelOrderItemId(dataLog.getCid(),dataLog.getSubSourceId());
break;
}
return ResultBean.newOkResult("");
......@@ -504,6 +522,14 @@ public class InnerBoxRestController {
return ResultBean.newErrorResult(-1, "", "请核实手动补料的料号:" + partNumber + "与工单需求料号:" + orderItem.getPn() + "是否一致");
}
//判断供应商是否相同
String provider = codeBean.getBarcode().getProvider();
if (StringUtils.isNotBlank(orderItem.getBrand())) {
if (!orderItem.getBrand().equals(provider)) {
return ResultBean.newErrorResult(-1, "", "请核实手动补料的供应商:" + provider + "与工单需求供应商:" + orderItem.getBrand() + "是否一致");
}
}
LiteOrder liteOrder = liteOrderManager.get(orderItem.getOrderId());
if (liteOrder == null) {
return ResultBean.newErrorResult(-1, "smfcore.valueNotExist", "{0}[{1}]不存在", new String[]{"工单信息", orderItemId});
......@@ -528,17 +554,17 @@ public class InnerBoxRestController {
dataLog.setPosName(storagePos.getPosName());
Storage storage = dataCache.getStorageById(storagePos.getStorageId());
dataLog.setCid(storage.getCid());
if (storage.isVirtual()) {
dataLog.setCid(storage.getCid());
storagePos.setBarcode(null);
//dataCache.updateInventory(storagePos, barcode);
//进行库位更改
storagePos.setBarcode(null);
storagePos.setUsed(false);
storagePosManager.save(storagePos);
barcodeManager.delete(barcode);
dataCache.updateInventory(storagePos,barcode);
}
//if (storage.isVirtual()) {
dataLog.setCid(storage.getCid());
storagePos.setBarcode(null);
//dataCache.updateInventory(storagePos, barcode);
//进行库位更改
storagePos.setBarcode(null);
storagePos.setUsed(false);
storagePosManager.save(storagePos);
barcodeManager.delete(barcode);
dataCache.updateInventory(storagePos, barcode);
//}
}
taskService.updateFinishedTask(dataLog);
taskService.removeFinishedTask(dataLog);
......@@ -591,16 +617,27 @@ public class InnerBoxRestController {
if (storagePos == null){
return ResultBean.newErrorResult(-1, "", barcode.getBarcode()+"不在储位中,不允许进行出库");
}
LiteOrder order = liteOrderManager.findByOrderNo(orderNo);
LiteOrder order = liteOrderCache.getOrderSortItems(orderNo);
if (order == null) {
return ResultBean.newErrorResult(-1, "smfcore.order.out.notFound", "工单未找到");
}
boolean hasItem = false;
for (LiteOrderItem orderItem : order.getOrderItems()) {
if (orderItem.getOutNum() > 0){
continue;
}
if (barcode.getPartNumber().equals(orderItem.getPn())) {
//判断供应商是否相同
if (StringUtils.isNotBlank(orderItem.getBrand())) {
if (!barcode.getProvider().equals(orderItem.getBrand())) {
continue;
}
}
if (orderItem.getOutNum() > 0){
continue;
}
//判断有没有已经生成任务
int count = dataLogManager.countByQuery(new Query(Criteria.where("subSourceId").is(orderItem.getId())));
if (count > 0){
continue;
}
hasItem = true;
DataLog dataLog = new DataLog();
dataLog.setStatus(OP_STATUS.FINISHED.name());
......@@ -621,16 +658,16 @@ public class InnerBoxRestController {
dataLog.setPosName(storagePos.getPosName());
Storage storage = dataCache.getStorageById(storagePos.getStorageId());
dataLog.setCid(storage.getCid());
if (storage.isVirtual()) {
dataLog.setCid(storage.getCid());
storagePos.setBarcode(null);
//dataCache.updateInventory(storagePos, barcode);
//进行库位更改
storagePos.setUsed(false);
storagePosManager.save(storagePos);
barcodeManager.delete(barcode);
dataCache.updateInventory(storagePos,barcode);
}
//if (storage.isVirtual()) {
dataLog.setCid(storage.getCid());
storagePos.setBarcode(null);
//dataCache.updateInventory(storagePos, barcode);
//进行库位更改
storagePos.setUsed(false);
storagePosManager.save(storagePos);
barcodeManager.delete(barcode);
dataCache.updateInventory(storagePos, barcode);
//}
}
taskService.updateFinishedTask(dataLog);
taskService.removeFinishedTask(dataLog);
......@@ -645,12 +682,8 @@ public class InnerBoxRestController {
}
public String getLabelOrderItemId() {
return labelOrderItemId;
}
public void setLabelOrderItemId(String orderItemId) {
labelOrderItemId = orderItemId;
public void setLabelOrderItemId(String cid,String orderItemId) {
labelOrderItemMap.put(cid,orderItemId);
}
/**
......@@ -793,6 +826,9 @@ public class InnerBoxRestController {
}
public Map<String,String> getPrintLabel(String orderItemId){
if (StringUtils.isBlank(orderItemId)){
return null;
}
Map<String, String> resultMap = new HashMap<>();
LiteOrderItem liteOrderItem = liteOrderItemManager.get(orderItemId);
if (liteOrderItem != null) {
......@@ -811,4 +847,11 @@ public class InnerBoxRestController {
}
return resultMap;
}
public String getLabelOrderItemId() {
if (!labelOrderItemMap.values().isEmpty()) {
return "false";
}
return "";
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!