From 22c67fd681856d2b6513d02329b63d76017e1120 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 03 十一月 2023 18:05:05 +0800
Subject: [PATCH] 库位导入数据

---
 mes-basic/src/main/java/com/chinaztt/mes/basic/controller/LocationController.java    |    4 -
 mes-basic/src/main/java/com/chinaztt/mes/basic/excel/LocationData.java               |   30 ++++----------
 mes-basic/src/main/java/com/chinaztt/mes/basic/excel/LocationUploadListener.java     |   14 ------
 mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/LocationServiceImpl.java |   26 ++++++++++++-
 4 files changed, 35 insertions(+), 39 deletions(-)

diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/LocationController.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/LocationController.java
index 3324cce..55f1623 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/LocationController.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/LocationController.java
@@ -126,9 +126,7 @@
 	@PostMapping("/upload")
 	public R upload(@RequestParam("file") MultipartFile file) {
 		try {
-			List<Warehouse> warehouseList = warehouseService.list();
-			Map<String, Warehouse> map = warehouseList.stream().collect(Collectors.toMap(Warehouse::getWarehouseName, warehouse -> warehouse, (k1, k2) -> k1));
-			EasyExcel.read(file.getInputStream(), LocationData.class, new LocationUploadListener(locationService, map)).sheet().doRead();
+			EasyExcel.read(file.getInputStream(), LocationData.class, new LocationUploadListener(locationService)).sheet().doRead();
 		} catch (IOException e) {
 			e.printStackTrace();
 		}
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/LocationData.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/LocationData.java
index 5677589..478892e 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/LocationData.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/LocationData.java
@@ -8,38 +8,26 @@
  */
 @Data
 public class LocationData {
-	/**
-	 * 搴撲綅缂栧彿
-	 */
+
+	@ExcelProperty("宸ュ巶")
+	private String factoryName;
+
 	@ExcelProperty("搴撲綅缂栧彿")
 	private String locNo;
-	/**
-	 * 搴撲綅鍚嶇О
-	 */
+
 	@ExcelProperty("搴撲綅鍚嶇О")
 	private String locName;
 
 	@ExcelProperty("搴撲綅绫诲瀷锛堢嚎杈逛粨锛涗骇鍑哄悎鏍煎簱浣嶏紱浜у嚭寰呮搴撲綅锛涗笉鍚堟牸搴撲綅锛涘緟澶勭悊搴撲綅锛涙満鍙板簱锛�")
 	private String locType;
-	/**
-	 * 浠撳簱鍚嶇О
-	 */
+
 	@ExcelProperty("鎵�灞炰粨搴�")
 	private String warehouseName;
-
-	@ExcelProperty("浠撳簱鐘舵��")
-	private String locState;
-
-	private Long factoryId;
-
-	/**
-	 * 浠撳簱鍚嶇О
-	 */
-	@ExcelProperty("宸ュ巶")
-	private String factoryName;
 
 	@ExcelProperty("IFS搴撲綅")
 	private String ifsLocation;
 
-	private Long warehouseId;
+	@ExcelProperty("浠撳簱鐘舵��")
+	private String locState;
+
 }
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/LocationUploadListener.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/LocationUploadListener.java
index aa2b66a..d7987ca 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/LocationUploadListener.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/LocationUploadListener.java
@@ -18,25 +18,13 @@
 	List<LocationData> list = new ArrayList<>();
 
 	private LocationService locationService;
-	private Map<String, Warehouse> warehouseMap;
 
-	public LocationUploadListener(LocationService locationService, Map<String, Warehouse> warehouseMap) {
+	public LocationUploadListener(LocationService locationService) {
 		this.locationService = locationService;
-		this.warehouseMap = warehouseMap;
 	}
 
 	@Override
 	public void invoke(LocationData data, AnalysisContext analysisContext) {
-
-		if (StringUtils.isBlank(data.getWarehouseName())) {
-			throw new RuntimeException("缂哄皯浠撳簱鍚嶇О=====銆嬪簱浣嶅悕涓猴細"+data.getLocName());
-		}
-		if (null == warehouseMap.get(data.getWarehouseName())) {
-			throw new RuntimeException("绯荤粺鏆傛棤姝や粨搴�====>浠撳簱鍚嶄负锛�"+data.getWarehouseName());
-		}
-		Warehouse warehouse = warehouseMap.get(data.getWarehouseName());
-		data.setFactoryId(warehouse.getFactoryId());
-		data.setWarehouseId(warehouse.getId());
 		list.add(data);
 		if (list.size() >= BATCH_COUNT) {
 			save();
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/LocationServiceImpl.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/LocationServiceImpl.java
index d459a35..11581a2 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/LocationServiceImpl.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/LocationServiceImpl.java
@@ -29,8 +29,11 @@
 import com.chinaztt.ifs.api.feign.IfsFeignClient;
 import com.chinaztt.mes.basic.dto.LocationDTO;
 import com.chinaztt.mes.basic.dto.LocationIfsMoveDTO;
+import com.chinaztt.mes.basic.entity.Factory;
 import com.chinaztt.mes.basic.entity.Location;
+import com.chinaztt.mes.basic.entity.Warehouse;
 import com.chinaztt.mes.basic.excel.LocationData;
+import com.chinaztt.mes.basic.mapper.FactoryMapper;
 import com.chinaztt.mes.basic.mapper.LocationMapper;
 import com.chinaztt.mes.basic.mapper.WarehouseMapper;
 import com.chinaztt.mes.basic.service.LocationService;
@@ -57,6 +60,7 @@
 @AllArgsConstructor
 public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> implements LocationService {
 	private WarehouseMapper warehouseMapper;
+	private FactoryMapper factoryMapper;
 	private static final String LOCATION_QC_SEND_BACK = "LOCATION_QC_SEND_BACK";
 	public static final String CONTRACT = "IFS_DOMAIN";
 	private RemoteParamService remoteParamService;
@@ -87,6 +91,8 @@
 		if (CollectionUtil.isEmpty(list)) {
 			return;
 		}
+		List<Factory> factories = factoryMapper.selectList(null);
+		List<Warehouse> warehouses = warehouseMapper.selectList(null);
 		List<SysDictItem> dict = dictUtils.getDict("warehouse_type");
 		for (LocationData data : list) {
 			Location newLocation = new Location();
@@ -100,8 +106,24 @@
 			}else{
 				newLocation.setLocStatus(0);
 			}
-			newLocation.setFactoryId(data.getFactoryId());
-			newLocation.setLocGroup(data.getWarehouseId());
+			for (int i = 0; i <factories.size() ; i++) {
+				if (factories.get(i).getFactoryName().equals(data.getFactoryName())){
+					newLocation.setFactoryId(factories.get(i).getId());
+				}
+			}
+			if (newLocation.getFactoryId()==null){
+				log.error("宸ュ巶:" + data.getFactoryName() + "涓嶅瓨鍦�");
+				continue ;
+			}
+			for (int i = 0; i <warehouses.size() ; i++) {
+				if (warehouses.get(i).getWarehouseName().equals(data.getWarehouseName())){
+					newLocation.setLocGroup(warehouses.get(i).getId());
+				}
+			}
+			if (newLocation.getLocGroup()==null){
+				log.error("浠撳簱:" + data.getWarehouseName() + "涓嶅瓨鍦�");
+				continue ;
+			}
 			newLocation.setLocName(data.getLocName());
 			newLocation.setLocNo(data.getLocNo());
 			newLocation.setIfsLocation(data.getIfsLocation());

--
Gitblit v1.9.3