Commit 1f2aea60 LN

Merge remote-tracking branch 'origin/master'

2 个父辈 5c9e3320 d3b2fbaa
...@@ -172,6 +172,11 @@ public class MenuInit { ...@@ -172,6 +172,11 @@ public class MenuInit {
addDefaultFunctionMenu(22, msd, "MSD追溯性", "msdData", "neolight/msdData/index", "MSDData"); addDefaultFunctionMenu(22, msd, "MSD追溯性", "msdData", "neolight/msdData/index", "MSDData");
addDefaultFunctionMenu(23, msd, "MSD设置", "msdSetting", "neolight/msdSetting/index", "MSDSet"); addDefaultFunctionMenu(23, msd, "MSD设置", "msdSetting", "neolight/msdSetting/index", "MSDSet");
Menu virtual = Menu.CreatePMenu("虚拟仓", 5, "virtual", "virtual",null);
addDefaultFunctionMenu(24, virtual, "虚拟仓管理", "virtualManager", "virtualStorage/virtualManager/index", "virtualManager");
addDefaultFunctionMenu(25, virtual, "虚拟库位管理", "virtualLocationManager", "virtualStorage/virtualLocationManager/index", "virtualLocation");
addDefaultFunctionMenu(26, virtual, "虚拟仓操作", "virtualOperations", "virtualStorage/virtualOperations/index", "virtualOperations");
//锡膏管理:设备概览.库存.追溯性.设置 //锡膏管理:设备概览.库存.追溯性.设置
Menu solderPaste = Menu.CreatePMenu("锡膏管理", 5, "solderPaste", "sMana",null); Menu solderPaste = Menu.CreatePMenu("锡膏管理", 5, "solderPaste", "sMana",null);
......
package com.neotel.smfcore.core.barcode.enums;
//物料信息来源
public class BARCODE_SOURCE {
//虚拟仓
public static final String VIRTUAL = "virtual";
}
...@@ -434,9 +434,9 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -434,9 +434,9 @@ public class BaseDeviceHandler implements IDeviceHandler {
Storage storage = dataCache.getStorageById(pos.getStorageId()); Storage storage = dataCache.getStorageById(pos.getStorageId());
log.info("出库已在库位中的物料[" + barcodeSave.getBarcode() + "]"); log.info("出库已在库位中的物料[" + barcodeSave.getBarcode() + "]");
String msg=MessageUtils.getText("smfcore.error.barcode.inStorage",new String[]{barcodeSave.getBarcode(), storage.getName(), pos.getPosName()},MessageUtils.getDefaultLocal(), String msg=MessageUtils.getText("smfcore.error.barcode.inStorage",new String[]{barcodeSave.getBarcode(), storage.getName(), pos.getPosName()},MessageUtils.getDefaultLocal(),
"[ " + barcodeSave.getBarcode() + "]已在" + storage.getName() + "[" + pos.getPosName() + "]中"); "[{0}]已在{1}[{2}]中");
taskService.checkout(storage, pos, true, true, "", "", msg); taskService.checkout(storage, pos, true, true, "", "", msg);
throw new ValidateException("smfcore.error.barcode.inStorage", "[ " + barcodeSave.getBarcode() + "]已在" + storage.getName() + "[" + pos.getPosName() + "]中", new String[]{barcodeSave.getBarcode(), storage.getName(), pos.getPosName()}); throw new ValidateException("smfcore.error.barcode.inStorage", "[{0}]已在{1}[{2}]中", new String[]{barcodeSave.getBarcode(), storage.getName(), pos.getPosName()});
} }
for (DataLog task : taskService.getQueueTasks()) { for (DataLog task : taskService.getQueueTasks()) {
......
...@@ -350,7 +350,7 @@ public class DeviceController { ...@@ -350,7 +350,7 @@ public class DeviceController {
} }
} catch (ValidateException ve) { } catch (ValidateException ve) {
errorMsg = ve.getMessage(); errorMsg = ve.getMessage();
errorMsg= MessageUtils.getText(ve.getMsgKey(),ve.getMsgParam(),new Locale("en","US"),ve.getDefaultMsg()); errorMsg= MessageUtils.getText(ve.getMsgKey(),ve.getMsgParam(),MessageUtils.getDefaultLocal(),ve.getDefaultMsg());
log.info("查找空库位失败:" + errorMsg); log.info("查找空库位失败:" + errorMsg);
resultMap.put("result", "105"); resultMap.put("result", "105");
resultMap.put("msg",errorMsg); resultMap.put("msg",errorMsg);
......
...@@ -124,7 +124,12 @@ public class MessageUtils { ...@@ -124,7 +124,12 @@ public class MessageUtils {
//-----------------以下为从缓存读取资源------------------------------------- //-----------------以下为从缓存读取资源-------------------------------------
public static Locale getDefaultLocal(){ public static Locale getDefaultLocal(){
if(ObjectUtil.isNotEmpty(defLanguage)){ if(ObjectUtil.isNotEmpty(defLanguage)){
return new Locale(defLanguage); if ("en".equals(defLanguage)){
return new Locale("en","US");
} else if ("zh".equals(defLanguage)){
return new Locale("zh-CH");
}
//return new Locale(defLanguage);
} }
return new Locale("zh-CH"); return new Locale("zh-CH");
} }
......
...@@ -10,6 +10,7 @@ import com.neotel.smfcore.common.utils.FileUtil; ...@@ -10,6 +10,7 @@ import com.neotel.smfcore.common.utils.FileUtil;
import com.neotel.smfcore.common.utils.PointUtil; import com.neotel.smfcore.common.utils.PointUtil;
import com.neotel.smfcore.common.utils.QueryHelp; import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.common.utils.SecurityUtils; import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.barcode.enums.BARCODE_SOURCE;
import com.neotel.smfcore.core.device.bean.StatusBean; import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.util.DataCache; import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.order.enums.ORDER_COLOR; import com.neotel.smfcore.core.order.enums.ORDER_COLOR;
...@@ -87,6 +88,22 @@ public class StorageController { ...@@ -87,6 +88,22 @@ public class StorageController {
@GetMapping @GetMapping
@PreAuthorize("@el.check('storage:list')") @PreAuthorize("@el.check('storage:list')")
public PageData<StorageDto> query(StorageQueryCriteria criteria, Pageable pageable){ public PageData<StorageDto> query(StorageQueryCriteria criteria, Pageable pageable){
List<String> storageIdList = new ArrayList<>();
Collection<Storage> storages = dataCache.getAllStorage().values();
String pageType = criteria.getPageType();
for (Storage storage : storages) {
if (BARCODE_SOURCE.VIRTUAL.equals(pageType)){
if (!storage.isVirtual()){
continue;
}
}else {
if (storage.isVirtual()){
continue;
}
}
storageIdList.add(storage.getId());
}
criteria.setStorageIdList(storageIdList);
Query query= QueryHelp.getQuery(criteria); Query query= QueryHelp.getQuery(criteria);
PageData<Storage> pages=storageManager.findByPage(query,pageable); PageData<Storage> pages=storageManager.findByPage(query,pageable);
List<StorageDto> StorageDtos=storageMapper.toDto(pages.getContent()); List<StorageDto> StorageDtos=storageMapper.toDto(pages.getContent());
...@@ -146,7 +163,7 @@ public class StorageController { ...@@ -146,7 +163,7 @@ 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(String groupId) { public List<StorageSearchDto> query(String groupId,String type) {
// String userId = SecurityUtils.getCurrentUserId(); // String userId = SecurityUtils.getCurrentUserId();
// User user = userManager.get(userId); // User user = userManager.get(userId);
Set<String> mygroups = new HashSet<>(); Set<String> mygroups = new HashSet<>();
...@@ -164,6 +181,15 @@ public class StorageController { ...@@ -164,6 +181,15 @@ public class StorageController {
List<Storage> myStorages = new ArrayList<>(); List<Storage> myStorages = new ArrayList<>();
for (Storage s : allStorages for (Storage s : allStorages
) { ) {
if (BARCODE_SOURCE.VIRTUAL.equals(type)){
if (!s.isVirtual()){
continue;
}
} else {
if (s.isVirtual()){
continue;
}
}
if (mygroups != null && !mygroups.isEmpty()) { if (mygroups != null && !mygroups.isEmpty()) {
if (mygroups.contains(s.getGroupId())) { if (mygroups.contains(s.getGroupId())) {
myStorages.add(s); myStorages.add(s);
...@@ -285,12 +311,20 @@ public class StorageController { ...@@ -285,12 +311,20 @@ public class StorageController {
} }
@ApiOperation("返回所有料仓类型") @ApiOperation("返回所有料仓类型")
@GetMapping(value = "/typeList") @GetMapping(value = "/typeList")
public List<String> typeList() { public List<String> typeList(String type) {
List<DeviceType> availableTypeList= DeviceType.availableTypeList(); List<DeviceType> availableTypeList= DeviceType.availableTypeList();
List<String> allList=new ArrayList<>(); List<String> allList=new ArrayList<>();
for (DeviceType type : for (DeviceType deviceType :
availableTypeList) { availableTypeList) {
allList.add(type.getName()); if (BARCODE_SOURCE.VIRTUAL.equals(type)){
if (DeviceType.VIRTUAL.getName().equals(deviceType.getName())) {
allList.add(deviceType.getName());
}
}else {
if (!DeviceType.VIRTUAL.getName().equals(deviceType.getName())) {
allList.add(deviceType.getName());
}
}
} }
return allList; return allList;
} }
......
...@@ -11,6 +11,7 @@ import com.neotel.smfcore.common.utils.FileUtil; ...@@ -11,6 +11,7 @@ import com.neotel.smfcore.common.utils.FileUtil;
import com.neotel.smfcore.common.utils.QueryHelp; import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.common.utils.SecurityUtils; import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.barcode.bean.CodeBean; import com.neotel.smfcore.core.barcode.bean.CodeBean;
import com.neotel.smfcore.core.barcode.enums.BARCODE_SOURCE;
import com.neotel.smfcore.core.barcode.rest.bean.dto.BarcodeDto; import com.neotel.smfcore.core.barcode.rest.bean.dto.BarcodeDto;
import com.neotel.smfcore.core.barcode.rest.bean.dto.CodeDto; import com.neotel.smfcore.core.barcode.rest.bean.dto.CodeDto;
import com.neotel.smfcore.core.barcode.rest.bean.mapstruct.CodeMapper; import com.neotel.smfcore.core.barcode.rest.bean.mapstruct.CodeMapper;
...@@ -94,7 +95,25 @@ public class StoragePosController { ...@@ -94,7 +95,25 @@ public class StoragePosController {
if (criteria.getStorageIdList() != null && criteria.getStorageIdList().contains("0")) { if (criteria.getStorageIdList() != null && criteria.getStorageIdList().contains("0")) {
criteria.setStorageIdList(null); criteria.setStorageIdList(null);
} }
criteria.setStorageIdList(QueryHelp.getGroupStorageIdList(criteria.getStorageIdList())); List<String> storageIdList = new ArrayList<>();
List<String> groupStorageIdList = QueryHelp.getGroupStorageIdList(criteria.getStorageIdList());
if (groupStorageIdList != null && !groupStorageIdList.isEmpty()){
for (String groupId : groupStorageIdList) {
Storage storage = dataCache.getStorageById(groupId);
if (BARCODE_SOURCE.VIRTUAL.equals(criteria.getType())){
if (storage.isVirtual()){
storageIdList.add(groupId);
}
} else {
if (!storage.isVirtual()){
storageIdList.add(groupId);
}
}
}
}
criteria.setStorageIdList(storageIdList);
String blurry = criteria.getBlurry(); String blurry = criteria.getBlurry();
if(!Strings.isNullOrEmpty(blurry)){ if(!Strings.isNullOrEmpty(blurry)){
//去除库位中的SOxxxx //去除库位中的SOxxxx
......
...@@ -36,4 +36,6 @@ public class StoragePosQueryCriteria { ...@@ -36,4 +36,6 @@ public class StoragePosQueryCriteria {
@ApiModelProperty("是否使用") @ApiModelProperty("是否使用")
@QueryCondition @QueryCondition
private Boolean used; private Boolean used;
private String type;
} }
...@@ -6,6 +6,8 @@ import lombok.Data; ...@@ -6,6 +6,8 @@ import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date; import java.util.Date;
import java.util.List;
@Data @Data
public class StorageQueryCriteria { public class StorageQueryCriteria {
@QueryCondition(blurry = "name,cid") @QueryCondition(blurry = "name,cid")
...@@ -22,4 +24,9 @@ public class StorageQueryCriteria { ...@@ -22,4 +24,9 @@ public class StorageQueryCriteria {
private String cid; private String cid;
@QueryCondition @QueryCondition
private String type; private String type;
@QueryCondition(type = QueryCondition.Type.IN, propName = "id")
private List<String> storageIdList;
private String pageType;
} }
...@@ -34,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -34,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* Created by sunke on 2021/7/13. * Created by sunke on 2021/7/13.
...@@ -786,7 +787,8 @@ public class TaskService { ...@@ -786,7 +787,8 @@ public class TaskService {
} }
if (availbleStorageList.isEmpty()) { if (availbleStorageList.isEmpty()) {
throw new ValidateException("smfcore.noValidStorage", "料仓列表中未找到可用的料仓"); String storageNames = storageList.stream().map(Storage::getName).collect(Collectors.joining(","));
throw new ValidateException("smfcore.noValidStorage", "料仓{0}中未找到可用的[{1}x{2}]库位",new String[]{storageNames,barcode.getPlateSize()+"",barcode.getHeight()+""});
} }
availbleStorageList.sort(new Comparator<Storage>() { availbleStorageList.sort(new Comparator<Storage>() {
...@@ -903,7 +905,9 @@ public class TaskService { ...@@ -903,7 +905,9 @@ public class TaskService {
} }
if (availbleStorageList.isEmpty()) { if (availbleStorageList.isEmpty()) {
throw new ValidateException("smfcore.noValidStorage", "料仓列表中未找到可用的料仓"); String storageNames = storageList.stream().map(Storage::getName).collect(Collectors.joining(","));
throw new ValidateException("smfcore.noValidStorage", "料仓{0}中未找到可用的[{1}x{2}]库位",new String[]{storageNames,barcode.getPlateSize()+"",barcode.getHeight()+""});
} }
availbleStorageList.sort(new Comparator<Storage>() { availbleStorageList.sort(new Comparator<Storage>() {
......
...@@ -44,6 +44,7 @@ rsa: ...@@ -44,6 +44,7 @@ rsa:
app: app:
version: '@app.version@' version: '@app.version@'
defLanguage: zh #en是英语,zh是中文
type: "" type: ""
menu: menu:
......
...@@ -79,7 +79,7 @@ smfcore.user=\u7528\u6237\u7BA1\u7406 ...@@ -79,7 +79,7 @@ smfcore.user=\u7528\u6237\u7BA1\u7406
smfcore.peoples=\u8D26\u53F7\u7BA1\u7406 smfcore.peoples=\u8D26\u53F7\u7BA1\u7406
smfcore.role=\u89D2\u8272\u7BA1\u7406 smfcore.role=\u89D2\u8272\u7BA1\u7406
smfcore.menuNotExist=\u83DC\u5355{0}\u4E0D\u5B58\u5728 smfcore.menuNotExist=\u83DC\u5355{0}\u4E0D\u5B58\u5728
smfcore.noValidStorage=\u6599\u4ED3\u5217\u8868\u4E2D\u672A\u627E\u5230\u53EF\u7528\u7684\u6599\u4ED3 smfcore.noValidStorage=\u6599\u4ED3{0}\u4E2D\u672A\u627E\u5230\u53EF\u7528\u7684[{1}x{2}]\u5E93\u4F4D
smfcore.error.barcode.exist=[{0}}]\u5DF2\u5728{1}}[{2}}]\u4E2D smfcore.error.barcode.exist=[{0}}]\u5DF2\u5728{1}}[{2}}]\u4E2D
smfcore.barcodeSetting=\u6761\u7801\u8BBE\u7F6E smfcore.barcodeSetting=\u6761\u7801\u8BBE\u7F6E
smfcore.posNotExist=\u4ED3\u4F4D\u4E0D\u5B58\u5728 smfcore.posNotExist=\u4ED3\u4F4D\u4E0D\u5B58\u5728
...@@ -424,3 +424,10 @@ smfcore.language.displayLanName.de-DE=Deutsch ...@@ -424,3 +424,10 @@ smfcore.language.displayLanName.de-DE=Deutsch
smfcore.logMonitor=\u65E5\u5FD7\u76D1\u63A7 smfcore.logMonitor=\u65E5\u5FD7\u76D1\u63A7
smfcore.materialTrace=\u7269\u6599\u8FFD\u6EAF smfcore.materialTrace=\u7269\u6599\u8FFD\u6EAF
smfcore.message.critical=\u4E25\u91CD\u9519\u8BEF smfcore.message.critical=\u4E25\u91CD\u9519\u8BEF
smfcore.pos.noVirtual=[{0}]\u4E0D\u662F\u865A\u62DF\u4ED3\u7684\u5E93\u4F4D
smfcore.virtual.posNoBarcode=[{0}]\u4E0D\u5728\u5E93\u4F4D\u4E2D
smfcore.virtual.barcodeNotExistVirtualPos=[{0}]\u5E93\u4F4D\u4E3A[{1}],\u4E0D\u5C5E\u4E8E\u865A\u62DF\u4ED3\u5E93\u4F4D
smfcore.virtual=\u865A\u62DF\u4ED3
smfcore.virtualManager=\u865A\u62DF\u4ED3\u7BA1\u7406
smfcore.virtualLocationManager=\u865A\u62DF\u5E93\u4F4D\u7BA1\u7406
smfcore.virtualOperations=\u865A\u62DF\u4ED3\u64CD\u4F5C
\ No newline at end of file \ No newline at end of file
...@@ -79,7 +79,7 @@ smfcore.user=Benutzerverwaltung ...@@ -79,7 +79,7 @@ smfcore.user=Benutzerverwaltung
smfcore.peoples=Kontoverwaltung smfcore.peoples=Kontoverwaltung
smfcore.role=Rollenverwaltung smfcore.role=Rollenverwaltung
smfcore.menuNotExist=Men\u00FC{0} existiert nicht smfcore.menuNotExist=Men\u00FC{0} existiert nicht
smfcore.noValidStorage=Kein verf\u00FCgbares Lagerhaus in der Lagerhausliste gefunden smfcore.noValidStorage=Kein verf\u00FCgbarer [{1}x{2}] Lagerplatz im Silo {0} gefunden
smfcore.error.barcode.exist=[{0}}] ist bereits in {1}}[{2}}] vorhanden smfcore.error.barcode.exist=[{0}}] ist bereits in {1}}[{2}}] vorhanden
smfcore.barcodeSetting=Barcodeeinstellungen smfcore.barcodeSetting=Barcodeeinstellungen
smfcore.posNotExist=Lagerplatz existiert nicht smfcore.posNotExist=Lagerplatz existiert nicht
...@@ -414,3 +414,10 @@ smfcore.language.displayLanName.de-DE=Deutsch ...@@ -414,3 +414,10 @@ smfcore.language.displayLanName.de-DE=Deutsch
smfcore.logMonitor=Log-\u00DCberwachung smfcore.logMonitor=Log-\u00DCberwachung
smfcore.materialTrace=Materialverfolgung smfcore.materialTrace=Materialverfolgung
smfcore.message.critical=Kritischer Fehler smfcore.message.critical=Kritischer Fehler
smfcore.pos.noVirtual=[{0}] ist kein virtueller Lagerplatz
smfcore.virtual.posNoBarcode=[{0}] ist nicht im Lagerplatz
smfcore.virtual.barcodeNotExistVirtualPos=[{0}] Lagerplatz [{1}] geh\u00F6rt nicht zum virtuellen Lagerplatz
smfcore.virtual=Virtuelles Lager
smfcore.virtualManager=Verwaltung des virtuellen Lagers
smfcore.virtualLocationManager=Verwaltung virtueller Lagerpl\u00E4tze
smfcore.virtualOperations=Vorg\u00E4nge im virtuellen Lager
\ No newline at end of file \ No newline at end of file
...@@ -80,7 +80,7 @@ smfcore.user=Users ...@@ -80,7 +80,7 @@ smfcore.user=Users
smfcore.peoples=Account Management smfcore.peoples=Account Management
smfcore.role=Authority smfcore.role=Authority
smfcore.menuNotExist=Menu{0} does not exist smfcore.menuNotExist=Menu{0} does not exist
smfcore.noValidStorage=No available bin found in bin list smfcore.noValidStorage=No available [{1}x{2}] storage location found in silo {0}
smfcore.error.barcode.exist=[{0}}] is already in {1}}[{2}}] smfcore.error.barcode.exist=[{0}}] is already in {1}}[{2}}]
smfcore.barcodeSetting=MA.ID Setting smfcore.barcodeSetting=MA.ID Setting
smfcore.posNotExist=Positions do not exist smfcore.posNotExist=Positions do not exist
...@@ -415,3 +415,10 @@ smfcore.language.displayLanName.de-DE=Deutsch ...@@ -415,3 +415,10 @@ smfcore.language.displayLanName.de-DE=Deutsch
smfcore.logMonitor=Log Monitoring smfcore.logMonitor=Log Monitoring
smfcore.materialTrace=Material Trace smfcore.materialTrace=Material Trace
smfcore.message.critical=Critical smfcore.message.critical=Critical
smfcore.pos.noVirtual=[{0}] is not a virtual warehouse location
smfcore.virtual.posNoBarcode=[{0}] is not in the storage location
smfcore.virtual.barcodeNotExistVirtualPos=[{0}] Storage location [{1}] does not belong to the virtual warehouse location
smfcore.virtual=Virtual Warehouse
smfcore.virtualManager=Virtual Warehouse Management
smfcore.virtualLocationManager=Virtual Location Management
smfcore.virtualOperations=Virtual Warehouse Operations
\ No newline at end of file \ No newline at end of file
...@@ -79,7 +79,7 @@ smfcore.user=Gestion des utilisateurs ...@@ -79,7 +79,7 @@ smfcore.user=Gestion des utilisateurs
smfcore.peoples=Gestion de compte smfcore.peoples=Gestion de compte
smfcore.role=Gestion des r\u00F4les smfcore.role=Gestion des r\u00F4les
smfcore.menuNotExist=Le menu {0} n'existe pas smfcore.menuNotExist=Le menu {0} n'existe pas
smfcore.noValidStorage=Aucun silo disponible trouv\u00E9 dans la liste des silos smfcore.noValidStorage=Aucun emplacement de stockage [{1}x{2}] disponible trouv\u00E9 dans le silo {0}
smfcore.error.barcode.exist=[{0}}] est d\u00E9j\u00E0 dans {1}}[{2}}] smfcore.error.barcode.exist=[{0}}] est d\u00E9j\u00E0 dans {1}}[{2}}]
smfcore.barcodeSetting=Param\u00E8tres des codes-barres smfcore.barcodeSetting=Param\u00E8tres des codes-barres
smfcore.posNotExist=L'emplacement n'existe pas smfcore.posNotExist=L'emplacement n'existe pas
...@@ -414,3 +414,10 @@ smfcore.language.displayLanName.de-DE=Deutsch ...@@ -414,3 +414,10 @@ smfcore.language.displayLanName.de-DE=Deutsch
smfcore.logMonitor=Surveillance des Journaux smfcore.logMonitor=Surveillance des Journaux
smfcore.materialTrace=Tra\u00E7abilit\u00E9 des mati\u00E8res smfcore.materialTrace=Tra\u00E7abilit\u00E9 des mati\u00E8res
smfcore.message.critical=Erreur Critique smfcore.message.critical=Erreur Critique
smfcore.pos.noVirtual=[{0}] n'est pas un emplacement d'entrep\u00F4t virtuel
smfcore.virtual.posNoBarcode=[{0}] n'est pas dans l'emplacement de stockage
smfcore.virtual.barcodeNotExistVirtualPos=[{0}] L'emplacement [{1}] n'appartient pas \u00E0 l'emplacement de stockage virtuel
smfcore.virtual=Entrep\u00F4t virtuel
smfcore.virtualManager=Gestion de l'entrep\u00F4t virtuel
smfcore.virtualLocationManager=Gestion des emplacements virtuels
smfcore.virtualOperations=Op\u00E9rations de l'entrep\u00F4t virtuel
\ No newline at end of file \ No newline at end of file
...@@ -77,7 +77,7 @@ smfcore.user=\u30E6\u30FC\u30B6\u30FC\u7BA1\u7406 ...@@ -77,7 +77,7 @@ smfcore.user=\u30E6\u30FC\u30B6\u30FC\u7BA1\u7406
smfcore.peoples=\u30A2\u30AB\u30A6\u30F3\u30C8\u7BA1\u7406 smfcore.peoples=\u30A2\u30AB\u30A6\u30F3\u30C8\u7BA1\u7406
smfcore.role=\u5F79\u5272\u7BA1\u7406 smfcore.role=\u5F79\u5272\u7BA1\u7406
smfcore.menuNotExist=\u30E1\u30CB\u30E5\u30FC{0}\u304C\u5B58\u5728\u3057\u306A\u3044 smfcore.menuNotExist=\u30E1\u30CB\u30E5\u30FC{0}\u304C\u5B58\u5728\u3057\u306A\u3044
smfcore.noValidStorage=\u30D3\u30F3\u30EA\u30B9\u30C8\u306B\u5229\u7528\u53EF\u80FD\u306A\u30D3\u30F3\u304C\u898B\u3064\u304B\u3089\u306A\u3044 smfcore.noValidStorage=\u30B5\u30A4\u30ED{0}\u5185\u306B\u6709\u52B9\u306A[{1}x{2}]\u30B9\u30C8\u30EC\u30FC\u30B8\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
smfcore.error.barcode.exist=[0}}]\u306F\u3059\u3067\u306B{1}[{2}}\u306B\u5165\u3063\u3066\u3044\u307E\u3059\u3002 smfcore.error.barcode.exist=[0}}]\u306F\u3059\u3067\u306B{1}[{2}}\u306B\u5165\u3063\u3066\u3044\u307E\u3059\u3002
smfcore.barcodeSetting=\u30D0\u30FC\u30B3\u30FC\u30C9\u8A2D\u5B9A smfcore.barcodeSetting=\u30D0\u30FC\u30B3\u30FC\u30C9\u8A2D\u5B9A
smfcore.posNotExist=\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u30B9\u30DA\u30FC\u30B9\u304C\u5B58\u5728\u3057\u306A\u3044 smfcore.posNotExist=\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u30B9\u30DA\u30FC\u30B9\u304C\u5B58\u5728\u3057\u306A\u3044
...@@ -411,3 +411,10 @@ smfcore.language.displayLanName.de-DE=Deutsch ...@@ -411,3 +411,10 @@ smfcore.language.displayLanName.de-DE=Deutsch
smfcore.logMonitor=\u30ED\u30B0\u76E3\u8996 smfcore.logMonitor=\u30ED\u30B0\u76E3\u8996
smfcore.materialTrace=\u30DE\u30C6\u30EA\u30A2\u30EB\u30C8\u30EC\u30FC\u30B9 smfcore.materialTrace=\u30DE\u30C6\u30EA\u30A2\u30EB\u30C8\u30EC\u30FC\u30B9
smfcore.message.critical=\u91CD\u5927\u30A8\u30E9\u30FC smfcore.message.critical=\u91CD\u5927\u30A8\u30E9\u30FC
smfcore.pos.noVirtual=[{0}]\u306F\u4EEE\u60F3\u5009\u5EAB\u306E\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u3067\u306F\u3042\u308A\u307E\u305B\u3093
smfcore.virtual.posNoBarcode=[{0}]\u306F\u5728\u5EAB\u5834\u6240\u306B\u3042\u308A\u307E\u305B\u3093
smfcore.virtual.barcodeNotExistVirtualPos=[{0}] \u30ED\u30B1\u30FC\u30B7\u30E7\u30F3[{1}]\u306F\u4EEE\u60F3\u5009\u5EAB\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093
smfcore.virtual=\u4EEE\u60F3\u5009\u5EAB
smfcore.virtualManager=\u4EEE\u60F3\u5009\u5EAB\u7BA1\u7406
smfcore.virtualLocationManager=\u4EEE\u60F3\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u7BA1\u7406
smfcore.virtualOperations=\u4EEE\u60F3\u5009\u5EAB\u64CD\u4F5C
\ No newline at end of file \ No newline at end of file
...@@ -79,7 +79,7 @@ smfcore.user=\u7528\u6237\u7BA1\u7406 ...@@ -79,7 +79,7 @@ smfcore.user=\u7528\u6237\u7BA1\u7406
smfcore.peoples=\u8D26\u53F7\u7BA1\u7406 smfcore.peoples=\u8D26\u53F7\u7BA1\u7406
smfcore.role=\u89D2\u8272\u7BA1\u7406 smfcore.role=\u89D2\u8272\u7BA1\u7406
smfcore.menuNotExist=\u83DC\u5355{0}\u4E0D\u5B58\u5728 smfcore.menuNotExist=\u83DC\u5355{0}\u4E0D\u5B58\u5728
smfcore.noValidStorage=\u6599\u4ED3\u5217\u8868\u4E2D\u672A\u627E\u5230\u53EF\u7528\u7684\u6599\u4ED3 smfcore.noValidStorage=\u6599\u4ED3{0}\u4E2D\u672A\u627E\u5230\u53EF\u7528\u7684[{1}x{2}]\u5E93\u4F4D
smfcore.error.barcode.exist=[{0}}]\u5DF2\u5728{1}}[{2}}]\u4E2D smfcore.error.barcode.exist=[{0}}]\u5DF2\u5728{1}}[{2}}]\u4E2D
smfcore.barcodeSetting=\u6761\u7801\u8BBE\u7F6E smfcore.barcodeSetting=\u6761\u7801\u8BBE\u7F6E
smfcore.posNotExist=\u4ED3\u4F4D\u4E0D\u5B58\u5728 smfcore.posNotExist=\u4ED3\u4F4D\u4E0D\u5B58\u5728
...@@ -411,3 +411,10 @@ smfcore.language.displayLanName.de-DE=Deutsch ...@@ -411,3 +411,10 @@ smfcore.language.displayLanName.de-DE=Deutsch
smfcore.logMonitor=\u65E5\u5FD7\u76D1\u63A7 smfcore.logMonitor=\u65E5\u5FD7\u76D1\u63A7
smfcore.materialTrace=\u7269\u6599\u8FFD\u6EAF smfcore.materialTrace=\u7269\u6599\u8FFD\u6EAF
smfcore.message.critical=\u4E25\u91CD\u9519\u8BEF smfcore.message.critical=\u4E25\u91CD\u9519\u8BEF
smfcore.pos.noVirtual=[{0}]\u4E0D\u662F\u865A\u62DF\u4ED3\u7684\u5E93\u4F4D
smfcore.virtual.posNoBarcode=[{0}]\u4E0D\u5728\u5E93\u4F4D\u4E2D
smfcore.virtual.barcodeNotExistVirtualPos=[{0}]\u5E93\u4F4D\u4E3A[{1}],\u4E0D\u5C5E\u4E8E\u865A\u62DF\u4ED3\u5E93\u4F4D
smfcore.virtual=\u865A\u62DF\u4ED3
smfcore.virtualManager=\u865A\u62DF\u4ED3\u7BA1\u7406
smfcore.virtualLocationManager=\u865A\u62DF\u5E93\u4F4D\u7BA1\u7406
smfcore.virtualOperations=\u865A\u62DF\u4ED3\u64CD\u4F5C
\ No newline at end of file \ No newline at end of file
...@@ -78,7 +78,7 @@ smfcore.user=\u7528\u6236\u7BA1\u7406 ...@@ -78,7 +78,7 @@ smfcore.user=\u7528\u6236\u7BA1\u7406
smfcore.peoples=\u8CEC\u865F\u7BA1\u7406 smfcore.peoples=\u8CEC\u865F\u7BA1\u7406
smfcore.role=\u89D2\u8272\u7BA1\u7406 smfcore.role=\u89D2\u8272\u7BA1\u7406
smfcore.menuNotExist=\u83DC\u55AE{0}\u4E0D\u5B58\u5728 smfcore.menuNotExist=\u83DC\u55AE{0}\u4E0D\u5B58\u5728
smfcore.noValidStorage=\u6599\u5009\u5217\u8868\u4E2D\u672A\u627E\u5230\u53EF\u7528\u7684\u6599\u5009 smfcore.noValidStorage=\u6599\u5009{0}\u4E2D\u672A\u627E\u5230\u53EF\u7528\u7684[{1}x{2}]\u5132\u4F4D
smfcore.error.barcode.exist=[{0}}]\u5DF2\u5728{1}}[{2}}]\u4E2D smfcore.error.barcode.exist=[{0}}]\u5DF2\u5728{1}}[{2}}]\u4E2D
smfcore.barcodeSetting=\u689D\u78BC\u8A2D\u7F6E smfcore.barcodeSetting=\u689D\u78BC\u8A2D\u7F6E
smfcore.posNotExist=\u5EAB\u4F4D\u4E0D\u5B58\u5728 smfcore.posNotExist=\u5EAB\u4F4D\u4E0D\u5B58\u5728
...@@ -411,3 +411,10 @@ smfcore.language.displayLanName.de-DE=Deutsch ...@@ -411,3 +411,10 @@ smfcore.language.displayLanName.de-DE=Deutsch
smfcore.logMonitor=\u65E5\u8A8C\u76E3\u63A7 smfcore.logMonitor=\u65E5\u8A8C\u76E3\u63A7
smfcore.materialTrace=\u7269\u6599\u8FFD\u6EAF smfcore.materialTrace=\u7269\u6599\u8FFD\u6EAF
smfcore.message.critical=\u56B4\u91CD\u932F\u8AA4 smfcore.message.critical=\u56B4\u91CD\u932F\u8AA4
smfcore.pos.noVirtual=[{0}]\u4E0D\u662F\u865B\u64EC\u5009\u7684\u5EAB\u4F4D
smfcore.virtual.posNoBarcode=[{0}]\u4E0D\u5728\u5EAB\u4F4D\u4E2D
smfcore.virtual.barcodeNotExistVirtualPos=[{0}]\u5EAB\u4F4D\u70BA[{1}]\uFF0C\u4E0D\u5C6C\u65BC\u865B\u64EC\u5009\u5EAB\u4F4D
smfcore.virtual=\u865B\u64EC\u5009
smfcore.virtualManager=\u865B\u64EC\u5009\u7BA1\u7406
smfcore.virtualLocationManager=\u865B\u64EC\u5EAB\u4F4D\u7BA1\u7406
smfcore.virtualOperations=\u865B\u64EC\u5009\u64CD\u4F5C
\ No newline at end of file \ No newline at end of file
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!