Commit e5ce1009 zshaohui

1.虚拟仓功能提交

1 个父辈 86420a20
...@@ -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";
}
...@@ -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;
} }
...@@ -423,4 +423,11 @@ smfcore.language.displayLanName.fr-FR=Fran\u00E7ais ...@@ -423,4 +423,11 @@ smfcore.language.displayLanName.fr-FR=Fran\u00E7ais
smfcore.language.displayLanName.de-DE=Deutsch 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
\ No newline at end of file \ No newline at end of file
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
...@@ -413,4 +413,11 @@ smfcore.language.displayLanName.fr-FR=Fran\u00E7ais ...@@ -413,4 +413,11 @@ smfcore.language.displayLanName.fr-FR=Fran\u00E7ais
smfcore.language.displayLanName.de-DE=Deutsch 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
\ No newline at end of file \ No newline at end of file
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
...@@ -414,4 +414,11 @@ smfcore.language.displayLanName.fr-FR=Fran\u00E7ais ...@@ -414,4 +414,11 @@ smfcore.language.displayLanName.fr-FR=Fran\u00E7ais
smfcore.language.displayLanName.de-DE=Deutsch 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
\ No newline at end of file \ No newline at end of file
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
...@@ -413,4 +413,11 @@ smfcore.language.displayLanName.fr-FR=Fran\u00E7ais ...@@ -413,4 +413,11 @@ smfcore.language.displayLanName.fr-FR=Fran\u00E7ais
smfcore.language.displayLanName.de-DE=Deutsch 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
\ No newline at end of file \ No newline at end of file
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
...@@ -410,4 +410,11 @@ smfcore.language.displayLanName.fr-FR=Fran\u00E7ais ...@@ -410,4 +410,11 @@ smfcore.language.displayLanName.fr-FR=Fran\u00E7ais
smfcore.language.displayLanName.de-DE=Deutsch 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
\ No newline at end of file \ No newline at end of file
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
...@@ -410,4 +410,11 @@ smfcore.language.displayLanName.fr-FR=Fran\u00E7ais ...@@ -410,4 +410,11 @@ smfcore.language.displayLanName.fr-FR=Fran\u00E7ais
smfcore.language.displayLanName.de-DE=Deutsch 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
\ No newline at end of file \ No newline at end of file
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
...@@ -410,4 +410,11 @@ smfcore.language.displayLanName.fr-FR=Fran\u00E7ais ...@@ -410,4 +410,11 @@ smfcore.language.displayLanName.fr-FR=Fran\u00E7ais
smfcore.language.displayLanName.de-DE=Deutsch 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
\ No newline at end of file \ No newline at end of file
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!