Commit 64c322e3 zshaohui

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

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