Commit 4ac70fd1 LN

海拉修改:1.标签出库增加设备分组,设备,入库时间过滤。2.orderMaterialExt根据设备分组和标签名称过滤。3.getInventory料架名改为设备组名。

1 个父辈 cc9c50f7
...@@ -566,6 +566,26 @@ public class DataCache { ...@@ -566,6 +566,26 @@ public class DataCache {
} }
return cidList; return cidList;
} }
public List<String> getStorageIdsByGroupId(String groupId,boolean nullReturnAll){
if(groupId!=null&&groupId.equals("-1")){
groupId="";
}
List<String> storageIds = Lists.newArrayList();
for (Storage storage : getAllStorage().values()) {
if (groupId!=null) {
if(storage.IsRightGroup(groupId)){
storageIds.add(storage.getId());
}
} else if(nullReturnAll){
storageIds.add(storage.getId());
}
}
return storageIds;
}
public List<String> getAvailableStorageIds(){ public List<String> getAvailableStorageIds(){
List<String> availableStorageIds = new ArrayList<>(); List<String> availableStorageIds = new ArrayList<>();
for (Storage storage : getAllStorage().values()) { for (Storage storage : getAllStorage().values()) {
......
...@@ -25,6 +25,8 @@ import com.neotel.smfcore.core.storage.service.po.Storage; ...@@ -25,6 +25,8 @@ import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos; import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog; import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.TaskService; import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.security.service.manager.IGroupManager;
import com.neotel.smfcore.security.service.po.Group;
import com.neotel.smfcore.security.service.po.User; import com.neotel.smfcore.security.service.po.User;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -69,6 +71,9 @@ public class MaterialController { ...@@ -69,6 +71,9 @@ public class MaterialController {
@Autowired @Autowired
private final IBarcodeManager barcodeManager; private final IBarcodeManager barcodeManager;
@Autowired
private final IGroupManager groupManager;
@ApiOperation("导出库存列表") @ApiOperation("导出库存列表")
@GetMapping(value = "/inventory/download") @GetMapping(value = "/inventory/download")
@PreAuthorize("@el.check('tacticsOuput')") @PreAuthorize("@el.check('tacticsOuput')")
...@@ -135,14 +140,25 @@ public class MaterialController { ...@@ -135,14 +140,25 @@ public class MaterialController {
@GetMapping("/labelOuput") @GetMapping("/labelOuput")
@PreAuthorize("@el.check('labelOuput')") @PreAuthorize("@el.check('labelOuput')")
public PageData<StoragePosDto> storagePosFind(StoragePosFindCriteria criteria, Pageable pageable, HttpServletRequest request) { public PageData<StoragePosDto> storagePosFind(StoragePosFindCriteria criteria, Pageable pageable, HttpServletRequest request) {
if (criteria.getStorageId() != null && criteria.getStorageId().equals("0")) { if (ObjectUtil.isEmpty(criteria.getStorageId()) ||criteria.getStorageId().equals("0") ){
criteria.setStorageId(null); criteria.setStorageId(null);
} }
boolean noLabelSearch=false; boolean noLabelSearch=false;
if(ObjectUtil.isNull(criteria.getLabelId())){
criteria.setLabelId(null);
}
if(criteria.getLabelId()!=null&&criteria.getLabelId().equals("0")){ if(criteria.getLabelId()!=null&&criteria.getLabelId().equals("0")){
criteria.setLabelId(""); criteria.setLabelId("");
noLabelSearch=true; noLabelSearch=true;
} }
if(criteria.getStorageId()==null&&criteria.getGroupId()!=null){
if(criteria.getGroupId().equals("0")||criteria.getGroupId().equals("")){
criteria.setGroupId(null);
}else{
criteria.setStorageIdList(dataCache.getStorageIdsByGroupId(criteria.getGroupId(),false));
}
}
Query query = QueryHelp.getQuery(criteria); Query query = QueryHelp.getQuery(criteria);
Criteria baseCriteria = Criteria.where("used").is(true); Criteria baseCriteria = Criteria.where("used").is(true);
...@@ -181,13 +197,24 @@ public class MaterialController { ...@@ -181,13 +197,24 @@ public class MaterialController {
List<StoragePosDto> StoragePosDtos = storagePosMapper.toDto(pages.getContent()); List<StoragePosDto> StoragePosDtos = storagePosMapper.toDto(pages.getContent());
for (StoragePosDto dto : StoragePosDtos for (StoragePosDto dto : StoragePosDtos
) { ) {
if (dto.getLabelId() != null) { if (ObjectUtil.isNotEmpty( dto.getLabelId()) ) {
Label label = labelManager.get(dto.getLabelId()); Label label = labelManager.get(dto.getLabelId());
if (label != null) { if (label != null) {
dto.setLabelName(label.getLabelName()); dto.setLabelName(label.getLabelName());
} }
} }
Storage storage=dataCache.getStorageById(dto.getStorageId());
if(storage!=null){
dto.setStorageName(storage.getName());
if(ObjectUtil.isNotEmpty(storage.getGroupId())){
Group group=groupManager.get(storage.getGroupId());
if(group!=null){
dto.setGroupId(group.getId());
dto.setGroupName(group.getGroupName());
}
}
}
} }
return new PageData(StoragePosDtos, pages.getTotalElements()); return new PageData(StoragePosDtos, pages.getTotalElements());
......
package com.neotel.smfcore.core.storage.rest; package com.neotel.smfcore.core.storage.rest;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.neotel.smfcore.common.bean.PageData; import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.bean.ResultBean; import com.neotel.smfcore.common.bean.ResultBean;
...@@ -116,17 +117,25 @@ public class StorageController { ...@@ -116,17 +117,25 @@ public class StorageController {
@ApiOperation("根据组权限返回所有料仓") @ApiOperation("根据组权限返回所有料仓")
@GetMapping(value = "/all") @GetMapping(value = "/all")
// @PreAuthorize("@el.check('storage:list')") // @PreAuthorize("@el.check('storage:list')")
public List<StorageSearchDto> query() { public List<StorageSearchDto> query(String groupId) {
String userId = SecurityUtils.getCurrentUserId(); // String userId = SecurityUtils.getCurrentUserId();
User user = userManager.get(userId); // User user = userManager.get(userId);
Set<String> mygroups = user.getGroups(); Set<String> mygroups = new HashSet<>();
if (ObjectUtil.isNotEmpty(groupId)) {
mygroups = new HashSet<>();
mygroups.add(groupId);
} else {
String userId = SecurityUtils.getCurrentUserId();
User user = userManager.get(userId);
mygroups = user.getGroups();
}
mygroups.add(""); mygroups.add("");
List<Storage> allStorages = storageManager.findAll(); List<Storage> allStorages = storageManager.findAll();
List<Storage> myStorages=new ArrayList<>(); List<Storage> myStorages = new ArrayList<>();
for (Storage s:allStorages for (Storage s : allStorages
) { ) {
if(mygroups.contains(s.getGroupId())){ if (mygroups.contains(s.getGroupId())) {
myStorages.add(s); myStorages.add(s);
} }
} }
......
...@@ -49,7 +49,7 @@ public class StorageDto implements Serializable { ...@@ -49,7 +49,7 @@ public class StorageDto implements Serializable {
@ApiModelProperty("是否可用") @ApiModelProperty("是否可用")
private boolean available = true; private boolean available = true;
@ApiModelProperty("分组") @ApiModelProperty("分组ID")
private String groupId = ""; private String groupId = "";
@ApiModelProperty("组名称") @ApiModelProperty("组名称")
......
...@@ -72,4 +72,9 @@ public class StoragePosDto implements Serializable { ...@@ -72,4 +72,9 @@ public class StoragePosDto implements Serializable {
@ApiModelProperty("设备名称") @ApiModelProperty("设备名称")
private String storageName; private String storageName;
@ApiModelProperty("分组")
private String groupId = "";
@ApiModelProperty("组名称")
private String groupName = "";
} }
...@@ -15,4 +15,7 @@ public class StorageSearchDto implements Serializable { ...@@ -15,4 +15,7 @@ public class StorageSearchDto implements Serializable {
@ApiModelProperty("料仓CID") @ApiModelProperty("料仓CID")
private String cid; private String cid;
@ApiModelProperty("分组ID")
private String groupId = "";
} }
...@@ -19,6 +19,10 @@ public class StoragePosFindCriteria { ...@@ -19,6 +19,10 @@ public class StoragePosFindCriteria {
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private BetweenData<Date> updateDate; private BetweenData<Date> updateDate;
@QueryCondition(type = QueryCondition.Type.BETWEEN, propName = "barcode.putInDate")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private BetweenData<Date> putInDate;
@QueryCondition @QueryCondition
@ApiModelProperty("料仓ID") @ApiModelProperty("料仓ID")
private String storageId; private String storageId;
...@@ -39,6 +43,9 @@ public class StoragePosFindCriteria { ...@@ -39,6 +43,9 @@ public class StoragePosFindCriteria {
@ApiModelProperty("标签ID") @ApiModelProperty("标签ID")
private String labelId; private String labelId;
@ApiModelProperty("分组")
private String groupId = "";
@ApiModelProperty("类型") @ApiModelProperty("类型")
private int type =-1 ; private int type =-1 ;
......
...@@ -10,4 +10,6 @@ public interface ILabelManager extends IBaseManager<Label> { ...@@ -10,4 +10,6 @@ public interface ILabelManager extends IBaseManager<Label> {
List<Label> findAll(); List<Label> findAll();
Label saveLabel(Label resources); Label saveLabel(Label resources);
Label getBylabelName(String labelName);
} }
...@@ -29,6 +29,8 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> { ...@@ -29,6 +29,8 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
StoragePos findPartNumberInStorages(List<String> storageIdList, String pn, Collection<String> excludePosIds, CHECKOUT_TYPE checkOutType); StoragePos findPartNumberInStorages(List<String> storageIdList, String pn, Collection<String> excludePosIds, CHECKOUT_TYPE checkOutType);
StoragePos findPartNumberInStorages(List<String> storageIdList,String labelId, String pn, Collection<String> excludePosIds, CHECKOUT_TYPE checkOutType);
void removePosByStorageId(String storageId); void removePosByStorageId(String storageId);
void deletePoss(Set<String> ids); void deletePoss(Set<String> ids);
......
...@@ -46,6 +46,12 @@ public class LabelManagerImpl implements ILabelManager { ...@@ -46,6 +46,12 @@ public class LabelManagerImpl implements ILabelManager {
} }
@Override @Override
public Label getBylabelName(String labelName) {
Query query=new Query(Criteria.where("labelName").is(labelName));
return labelDao.findOne(query);
}
@Override
public Label get(String id) { public Label get(String id) {
return labelDao.findOneById(id); return labelDao.findOneById(id);
} }
......
...@@ -213,26 +213,32 @@ public class StoragePosManagerImpl implements IStoragePosManager { ...@@ -213,26 +213,32 @@ public class StoragePosManagerImpl implements IStoragePosManager {
@Override @Override
public StoragePos findPartNumberInStorages(List<String> storageIdList, String pn, Collection<String> excludePosIds, CHECKOUT_TYPE checkOutType) { public StoragePos findPartNumberInStorages(List<String> storageIdList, String pn, Collection<String> excludePosIds, CHECKOUT_TYPE checkOutType) {
return findPartNumberInStorages(storageIdList,"",pn,excludePosIds,checkOutType);
}
@Override
public StoragePos findPartNumberInStorages(List<String> storageIdList,String labelId, String pn, Collection<String> excludePosIds, CHECKOUT_TYPE checkOutType) {
Criteria c = Criteria.where("barcode.partNumber").is(pn) Criteria c = Criteria.where("barcode.partNumber").is(pn)
.and("id").nin(excludePosIds) .and("id").nin(excludePosIds)
.and("enabled").is(true)//可用 .and("enabled").is(true)//可用
.and("barcode.lockId").is(null);//没有被锁定的仓位; .and("barcode.lockId").is(null);//没有被锁定的仓位;
if(storageIdList != null){ if (storageIdList != null) {
c = c.and("storageId").in(storageIdList); c = c.and("storageId").in(storageIdList);
} }
if (ObjectUtil.isNotEmpty(labelId)) {
c.and("labelId").is(labelId);
}
Query q = new Query(c); Query q = new Query(c);
Sort sort = getSortByCheckOutType(checkOutType); Sort sort = getSortByCheckOutType(checkOutType);
q.with(sort); q.with(sort);
StoragePos pos=storagePosDao.findOne(q); StoragePos pos = storagePosDao.findOne(q);
if(pos==null){ if (pos == null) {
log.info("使用"+checkOutType+" 策略出库 partNumber="+pn+",未找到可以出库的物料 "); log.info("使用" + checkOutType + " 策略出库 partNumber=" + pn + ",未找到可以出库的物料 ");
}else{ } else {
log.info("使用"+checkOutType+" 策略出库 partNumber="+pn+",找到出仓位置【"+ pos.getPosName()+"】,RI【"+pos.getBarcode().getBarcode()+"】 "); log.info("使用" + checkOutType + " 策略出库 partNumber=" + pn + ",找到出仓位置【" + pos.getPosName() + "】,RI【" + pos.getBarcode().getBarcode() + "】 ");
} }
return pos; return pos;
} }
/** /**
* 根据出库方式获取不同的 Sort * 根据出库方式获取不同的 Sort
*/ */
......
...@@ -19,7 +19,9 @@ import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager; ...@@ -19,7 +19,9 @@ 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.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem; import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import com.neotel.smfcore.core.storage.enums.CHECKOUT_TYPE; import com.neotel.smfcore.core.storage.enums.CHECKOUT_TYPE;
import com.neotel.smfcore.core.storage.service.manager.ILabelManager;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager; import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Label;
import com.neotel.smfcore.core.storage.service.po.Storage; import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos; import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.listener.ITaskListener; import com.neotel.smfcore.core.system.listener.ITaskListener;
...@@ -81,6 +83,9 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen ...@@ -81,6 +83,9 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
private IGroupManager groupManager; private IGroupManager groupManager;
@Autowired @Autowired
private ILabelManager labelManager;
@Autowired
private CodeResolve codeResolve; private CodeResolve codeResolve;
protected final static Logger log = LogManager.getLogger(); protected final static Logger log = LogManager.getLogger();
...@@ -232,46 +237,64 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen ...@@ -232,46 +237,64 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
handleOrderMaterialExtCmd(session,resposArr); handleOrderMaterialExtCmd(session,resposArr);
}else if(respCommand.isGetInventoryCmd()){ }else if(respCommand.isGetInventoryCmd()){
//<STX>getInventory;eventId;shelfNumber<CR><LF> //<STX>getInventory;eventId;shelfNumber<CR><LF>
String shelfNumber = resposArr[2]; //20220217修改: <STX>getInventory;eventId;lineNumber<CR><LF>
Storage shelf = null; // String shelfNumber = resposArr[2];
if(ObjectUtil.isNotEmpty(shelfNumber)) { // Storage shelf = null;
Collection<Storage> allStorages = dataCache.getAllStorage().values(); // if(ObjectUtil.isNotEmpty(shelfNumber)) {
for (Storage storage : allStorages) { // Collection<Storage> allStorages = dataCache.getAllStorage().values();
if (storage.getName().equals(shelfNumber)) { // for (Storage storage : allStorages) {
shelf = storage; // if (storage.getName().equals(shelfNumber)) {
} // shelf = storage;
// }
// }
// }
String lineNumber=resposArr[2];
List<String> shelfIds=new ArrayList<>();
if(ObjectUtil.isNotEmpty(lineNumber)){
Group group= groupManager.getByGroupName(lineNumber);
if(group!=null){
shelfIds =dataCache. getStorageIdsByGroupId(group.getId(), false);
} }
} }
String resultCode = "0"; String resultCode = "0";
String resultMsg = "OK"; String resultMsg = "OK";
String dataStr = ""; String dataStr = "";
if(ObjectUtil.isNotEmpty(shelfNumber)&&shelf == null){ // if(ObjectUtil.isNotEmpty(shelfNumber)&&shelf == null){
if(ObjectUtil.isNotEmpty(lineNumber)&&shelfIds.size()<=0){
//<STX>getInventoryResp;eventId;returnCode;messageText;numberofResults;partNumber1;containerNumber;remainQuantity;MSL;lightClass;SelfPosition;reserved;…;partNumberN;containerNumberN;remainQuantityN;MSLN;lightClassN;SelfPositionN;reservedN;<CR><LF> //<STX>getInventoryResp;eventId;returnCode;messageText;numberofResults;partNumber1;containerNumber;remainQuantity;MSL;lightClass;SelfPosition;reserved;…;partNumberN;containerNumberN;remainQuantityN;MSLN;lightClassN;SelfPositionN;reservedN;<CR><LF>
resultCode = "-1"; resultCode = "-1";
resultMsg = "Shelf is not found"; resultMsg = "Shelf is not found";
dataStr = "0"; dataStr = "0";
}else{ }else {
String shelfId=""; // String shelfId="";
if(!(shelf==null)){ // if(!(shelf==null)){
shelfId=shelf.getId(); // shelfId=shelf.getId();
// }
if(shelfIds.size()<=0){
shelfIds.add("");
} }
List<StoragePos> posList = storagePosManager.findNotEmptyByStorageId(shelfId); for (String shelfId :
int numberOfResult = posList.size(); shelfIds) {
dataStr = "" + numberOfResult; List<StoragePos> posList = storagePosManager.findNotEmptyByStorageId(shelfId);
for (StoragePos storagePos : posList) { int numberOfResult = posList.size();
Barcode barcode = storagePos.getBarcode(); dataStr = "" + numberOfResult;
String pn = barcode.getPartNumber(); for (StoragePos storagePos : posList) {
String reelId = barcode.getBarcode(); Barcode barcode = storagePos.getBarcode();
int qty = barcode.getAmount(); String pn = barcode.getPartNumber();
String msl = barcode.getMsl(); String reelId = barcode.getBarcode();
String lightClass = barcode.getBatch(); int qty = barcode.getAmount();
String posName = storagePos.getPosName(); String msl = barcode.getMsl();
String reserved = "0"; String lightClass = barcode.getBatch();
if(Strings.isNotBlank(barcode.getLockId())){ String posName = storagePos.getPosName();
reserved = "1"; String reserved = "0";
if (Strings.isNotBlank(barcode.getLockId())) {
reserved = "1";
}
dataStr = dataStr + ";" + pn + ";" + reelId + ";" + qty + ";" + msl + ";" + lightClass + ";" + posName + ";" + reserved;
} }
dataStr = dataStr + ";" + pn + ";" + reelId + ";" + qty + ";" + msl + ";" + lightClass + ";" + posName + ";" + reserved;
} }
} }
...@@ -409,21 +432,23 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen ...@@ -409,21 +432,23 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
private void handleOrderMaterialExtCmd(IoSession session, String[] resposArr) throws ValidateException { private void handleOrderMaterialExtCmd(IoSession session, String[] resposArr) throws ValidateException {
//工单出库 //工单出库
//<STX>orderMaterialExt;eventId;lineNumber;workorderNumber;currentWorkorderflag;reflowgroupNumber;numberofPartnumbers;partNumber1;numberofReels;…;partNumberN;numberofReels<CR><LF> //<STX>orderMaterialExt;eventId;lineNumber;workorderNumber;currentWorkorderflag;reflowgroupNumber;numberofPartnumbers;partNumber1;numberofReels;…;partNumberN;numberofReels<CR><LF>
//20220217 修改工单出库参数
//<STX>orderMaterialExt;eventId;lineNumber;CRPNumber;currentWorkorderflag;productGroup;numberofPartnumbers;partNumber1;numberofReels;…;partNumberN;numberofReels<CR><LF>
String responseEventId = resposArr[1]; String responseEventId = resposArr[1];
String groupName = resposArr[2]; String groupName = resposArr[2];//设备组名称
String workorderNumber = resposArr[3]; String workorderNumber = resposArr[3];
// workorderNumber=responseEventId; // workorderNumber=responseEventId;
//currentWorkorderflag 0 for current workorder; 1 for next workorder //currentWorkorderflag 0 for current workorder; 1 for next workorder
String currentWorkorderflag = resposArr[4]; String currentWorkorderflag = resposArr[4];
String reflowgroupNumber = resposArr[5]; // String reflowgroupNumber = resposArr[5];
String labelName=resposArr[5];//标签名称
String numberofPartnumbers = resposArr[6]; String numberofPartnumbers = resposArr[6];
LiteOrder liteOrder = liteOrderManager.findByOrderNo(workorderNumber); LiteOrder liteOrder = liteOrderManager.findByOrderNo(workorderNumber);
if(liteOrder != null){ if(liteOrder != null){
log.info("数据库中已存在工单号为["+workorderNumber+"]的工单,忽略"); log.info("数据库中已存在工单号为["+workorderNumber+"]的工单,忽略");
int resultCode=-1; int resultCode=-1;
String resultMsg="workorderNumber ["+workorderNumber+"] already exists"; String resultMsg="workorderNumber ["+workorderNumber+"] already exists";
String respMsg = "orderMaterialExtResp;"+ responseEventId+";" + resultCode+";"+resultMsg+";"+workorderNumber+";"+currentWorkorderflag+";"+reflowgroupNumber+";"+numberofPartnumbers ; String respMsg = "orderMaterialExtResp;"+ responseEventId+";" + resultCode+";"+resultMsg+";"+workorderNumber+";"+currentWorkorderflag+";"+labelName+";"+numberofPartnumbers ;
HellaTcpClient.sendMsg(respMsg,session); HellaTcpClient.sendMsg(respMsg,session);
}else{ }else{
...@@ -440,7 +465,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen ...@@ -440,7 +465,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
} }
liteOrder = new LiteOrder(workorderNumber,items); liteOrder = new LiteOrder(workorderNumber,items);
liteOrder.setSource(groupName); liteOrder.setSource(groupName);
log.info("新增加订单:" + liteOrder.getOrderNo()); log.info("新增加订单:" + liteOrder.getOrderNo()+",设备组名称["+groupName+"],标签名称["+labelName+"]");
liteOrder = liteOrderManager.createWithItems(liteOrder); liteOrder = liteOrderManager.createWithItems(liteOrder);
liteOrderCache.addOrderToMap(liteOrder); liteOrderCache.addOrderToMap(liteOrder);
//对工单进行锁定 //对工单进行锁定
...@@ -457,6 +482,16 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen ...@@ -457,6 +482,16 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
} }
} }
//增加标签过滤
String labelId="";
if(ObjectUtil.isNotEmpty(labelName)){
Label label=labelManager.getBylabelName(labelName );
if(label!=null){
labelId=label.getId() ;
}
}
CHECKOUT_TYPE checkOutType = dataCache.getCheckOutType(); CHECKOUT_TYPE checkOutType = dataCache.getCheckOutType();
Collection<String> excludePosIds = new ArrayList<>(); Collection<String> excludePosIds = new ArrayList<>();
...@@ -468,7 +503,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen ...@@ -468,7 +503,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
String pn = liteOrderItem.getPn(); String pn = liteOrderItem.getPn();
int lockCount = 0; int lockCount = 0;
while(lockCount < reelCount){ while(lockCount < reelCount){
StoragePos pos = storagePosManager.findPartNumberInStorages(storageIdList, pn, excludePosIds, checkOutType); StoragePos pos = storagePosManager.findPartNumberInStorages(storageIdList,labelId, pn, excludePosIds, checkOutType);
if(pos == null){ if(pos == null){
break; break;
}else{ }else{
...@@ -506,7 +541,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen ...@@ -506,7 +541,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
//<STX>orderMaterialExtResp;1;0;OK;61598;1;325.618-01;3;790.130-13;abcde;3000; 790.131-01;abcdf;5000;790.131-01;abcdg;2580<CR><LF> //<STX>orderMaterialExtResp;1;0;OK;61598;1;325.618-01;3;790.130-13;abcde;3000; 790.131-01;abcdf;5000;790.131-01;abcdg;2580<CR><LF>
//orderMaterialExtResp;0;-1;Some material not on the shelf;1408;1;325.618-01;1;;791.704-06NOT_FOUND;0 //orderMaterialExtResp;0;-1;Some material not on the shelf;1408;1;325.618-01;1;;791.704-06NOT_FOUND;0
//<STX>orderMaterialExtResp;eventId;returnCode;messageText;workorderNumber;currentWorkorderflag;reflowgroupNumber;numberofPartnumbers;partNumber1;containerNumber;quantity;…;partNumberN;containerNumberN;quantityN<CR><LF> //<STX>orderMaterialExtResp;eventId;returnCode;messageText;workorderNumber;currentWorkorderflag;reflowgroupNumber;numberofPartnumbers;partNumber1;containerNumber;quantity;…;partNumberN;containerNumberN;quantityN<CR><LF>
String respMsg = "orderMaterialExtResp;"+ responseEventId+";" + resultCode+";"+resultMsg+";"+workorderNumber+";"+currentWorkorderflag+";"+reflowgroupNumber+";"+numberofPartnumbers +resultDataStr; String respMsg = "orderMaterialExtResp;"+ responseEventId+";" + resultCode+";"+resultMsg+";"+workorderNumber+";"+currentWorkorderflag+";"+labelName+";"+numberofPartnumbers +resultDataStr;
// log.info("工单结果:" + respMsg); // log.info("工单结果:" + respMsg);
// session.write("\02"+respMsg); // session.write("\02"+respMsg);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!