본문 바로가기
ERP Project

물류팀 기능구현(2)

by kwh_coding 2023. 10. 12.

앞선 포스팅에서 로트가 여러 개인 행의 Name값은 뒤에 숫자를 붙여 컨트롤러로 보냈었다.

 

https://comebackworld.tistory.com/63

 

물류팀 기능구현(1)

물류팀의 카테고리는 총 두가지로 1. 재고관리 2. 입출고관리 가 있다. 물류팀인만큼 물류팀의 주요 기능은 상품 / 제품의 관리를 하는 것이 주요한 기능이다. 우리는 우선 상품테이블인 erp_goods

comebackworld.tistory.com

Controller에서 그 값들을 처리하는 방식에 대해 포스팅을 하겠다.

 

뒤에 숫자가 붙어 넘어온 파라미터 값들을 배열로 처리하는 방식을 택했다. 

 

배열을 사용하여 데이터를 처리하는 것에는 장단점이 있다. 

장점
1. 데이터 그룹화: 배열은 여러 개의 항목을 하나의 변수에 저장할 수 있는 효과적인 방법이다. 특히 연관된 데이터를 그룹화하고 유지하기에 좋다. 이 경우, 로트 정보와 같이 여러 개의 관련된 데이터를 하나의 배열로 처리할 수 있다.

2. 반복 처리: 배열을 사용하면 반복문을 사용하여 배열의 각 요소를 순회하면서 작업을 수행할 수 있다. 예를 들어, 여러 개의 로트 정보를 한꺼번에 처리하거나 출력하는 데 유용하다.

3. 인덱스로 접근: 배열은 인덱스를 사용하여 특정 위치의 데이터에 빠르게 접근할 수 있다. 이는 배열 내의 특정 요소를 찾고 수정하는 데 유용하다.

단점
1. 고정 크기: 배열은 일반적으로 고정된 크기를 가지며, 크기를 동적으로 변경하기 어렵다. 따라서 미리 배열의 크기를 지정해야 할 때 제한이 있을 수 있다.

2. 인덱스 오류: 잘못된 인덱스로 배열에 접근하면 런타임 오류가 발생할 수 있다. 이를 방지하기 위해서는 인덱스를 신중하게 처리해야 한다.

3. 메모리 사용: 배열은 일정한 메모리 공간을 필요로 하며, 큰 배열을 사용하면 메모리 부족 문제가 발생할 수 있다.

4. 데이터 타입 제한: 배열은 동일한 데이터 타입의 요소만 포함할 수 있으므로 다양한 데이터 타입을 함께 저장하기 어렵다.

따라서 배열을 사용할 때에는 데이터 구조와 작업의 성격에 따라 장단점을 고려하여 적절하게 활용해야 한다.


처음 고정된 첫 번째 로트의 정보는 배열 0번 index에 저장이 될 것이다. 세 번째까지만 등록이 가능하게 설정했기에 두 번째 로트는 1번 index, 세 번째 로트는 2번 index일 것이다.

	public String stockInsert(@RequestParam("goodslot_lot") String[] goodslot_lot,
			@RequestParam("goodslot_qty") Integer[] goodslot_qty,
			@RequestParam("goodslot_production") String[] goodslot_production,
			@RequestParam("goodslot_expiry") String[] goodslot_expiry,
			@RequestParam("goodslot_price") Integer[] goodslot_price,
			@RequestParam("goodslot_tax") Integer[] goodslot_tax,
			String goods_code, String goods_barcode, String goods_name,
			int goodskind_no, int goods_customerprice,
			String goods_description, int client_no1,
			int client_no2, int goods_stockqty, int goodslev_no,
			String comcode_code, String goodsst_unit, String goodsst_spec,
			String goodsst_size, String goodsst_package,
			int goodsst_ea) {
		
		int comcode_no = ls.comNo(comcode_code);
		
		Map<String, Object> map11 = new HashMap<>();
		map11.put("goodsst_unit", goodsst_unit);
		map11.put("goodsst_spec", goodsst_spec);
		map11.put("goodsst_size", goodsst_size);
		map11.put("goodsst_package", goodsst_package);
		map11.put("goodsst_ea", goodsst_ea);
		
		d6.insertGoodsst(map11);
		
		Map<String, Object> map12 = new HashMap<>();
		map12.put("goodsst_unit", goodsst_unit);
		map12.put("goodsst_spec", goodsst_spec);
		map12.put("goodsst_size", goodsst_size);
		map12.put("goodsst_package", goodsst_package);
		map12.put("goodsst_ea", goodsst_ea);
		
		int goodsst_no = d6.selectGoodsstno(map12);
		
		
	    for (String lot : goodslot_lot) {
	        System.out.println(lot);
	    }
	    
	    if (goodslot_lot.length > 0) {
	        String firstLot = goodslot_lot[0]; // 첫 번째 배열 요소 가져오기
	        System.out.println("첫 번째 로트번호: " + firstLot);

따라서 출력을 해보면 

테스트 결과

잘 출력이 되는 것을 확인할 수 있다. 

'ERP Project' 카테고리의 다른 글

물류팀 기능구현(1)  (2) 2023.10.10
재무팀 기능구현(2)  (0) 2023.10.10
재무팀 기능구현(1)  (0) 2023.09.20
인사팀 기능구현(2)  (0) 2023.09.20
인사팀 기능구현(1)  (0) 2023.09.20