123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390 |
- package com.oqpo.api.service.stinfo;
- import com.oqpo.api.entity.CodeEntity;
- import com.oqpo.api.entity.oper.FileEntity;
- import com.oqpo.api.entity.oper.UserMngEntity;
- import com.oqpo.api.entity.stinfo.*;
- import com.oqpo.api.enums.SystemMessageCode;
- import com.oqpo.api.exception.GlobalException;
- import com.oqpo.api.mapper.FileMapper;
- import com.oqpo.api.mapper.oper.UserMngMapper;
- import com.oqpo.api.mapper.stinfo.BrandMapper;
- import com.oqpo.api.mapper.stinfo.ItemMapper;
- import com.oqpo.api.mapper.stinfo.ItemUnitMapper;
- import com.oqpo.api.service.CommonService;
- import com.oqpo.api.web.dto.request.GridRequest;
- import com.oqpo.api.web.dto.request.stinfo.brand.SaveBrandInfolRequest;
- import com.oqpo.api.web.dto.request.stinfo.item.DelItemInfolRequest;
- import com.oqpo.api.web.dto.request.stinfo.item.SaveItemClassMngInfolRequest;
- import com.oqpo.api.web.dto.request.stinfo.item.SaveItemInfolRequest;
- import com.oqpo.api.web.dto.response.GridResponse;
- import com.oqpo.api.web.dto.response.code.CodeDtlResponse;
- import com.oqpo.api.web.dto.response.code.CodeSearchListResponse;
- import com.oqpo.api.web.dto.response.stinfo.brand.AfflBrandSearchResponse;
- import com.oqpo.api.web.dto.response.stinfo.brand.BrandInfoResponse;
- import com.oqpo.api.web.dto.response.stinfo.brand.BrandSearchListResponse;
- import com.oqpo.api.web.dto.response.stinfo.brand.BrandSearchResponse;
- import com.oqpo.api.web.dto.response.stinfo.item.*;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.security.crypto.password.PasswordEncoder;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.stream.Collectors;
- @Service
- @Slf4j
- public class ItemService extends CommonService {
- @Autowired
- private ItemMapper itemMapper;
- @Autowired
- private ItemUnitMapper itemUnitMapper;
- @Autowired
- private FileMapper fileMapper;
- /*
- 팝업 품목 리스트 조회
- */
- public GridResponse selectPopItemGridList(String sBrandId,String sStoreId, String sPodrPssblDvsn, String sItemNm, String sSpplyId, String sWhsId, String sLocation, GridRequest gridRequest) throws Exception {
- int gridPage = gridRequest.getGridPage();
- int gridSize = gridRequest.getGridSize();
- int gridRecords = 0 ;
- int gridTotal = 0;
- List<ItemUnitEntity> entities = new ArrayList<ItemUnitEntity>() ;
- if ("".equals(sStoreId)) {
- gridRecords = itemUnitMapper.selectPopItemBrandUnitGridCnt( sBrandId,sItemNm, sPodrPssblDvsn, sSpplyId, sWhsId, sLocation );
- gridTotal = fnCalculateGridTotal(gridSize, gridRecords);
- entities = itemUnitMapper.selectPopItemBrandUnitGridList(sBrandId, sItemNm, sPodrPssblDvsn, sSpplyId, sWhsId, sLocation, gridRequest);
- } else {
- gridRecords = itemUnitMapper.selectPopItemStoreUnitGridCnt( sBrandId,sStoreId,sItemNm, sPodrPssblDvsn );
- gridTotal = fnCalculateGridTotal(gridSize, gridRecords);
- entities = itemUnitMapper.selectPopItemStoreUnitGridList(sBrandId,sStoreId, sItemNm, sPodrPssblDvsn, gridRequest);
- }
- List<Object> gridRows = entities.stream()
- .map(m -> ItemPopSearchResponse.builder()
- .viewCd("R")
- .itemId(m.getItemId())
- .itemNm(m.getItemNm())
- .podrPssblDvsn(m.getPodrPssblDvsn())
- .podrPssblDvsnNm(m.getPodrPssblDvsnNm())
- .unit(m.getUnit())
- .unitNm(m.getUnitNm())
- .unitAmt(m.getUnitAmt())
- .stddQty(m.getStddQty())
- .unitGubun(m.getUnitGubun())
- .spplyId(m.getSpplyId())
- .brandUnitUnqNo(m.getBrandUnitUnqNo())
- .storeUnitUnqNo(m.getStoreUnitUnqNo() == null ? "" : m.getStoreUnitUnqNo())
- .whsPassQty(m.getWhsPassQty() == null ? 0 : m.getWhsPassQty())
- .build())
- .collect(Collectors.toList());
- return GridResponse.toDTO(gridPage, gridTotal, gridRecords, gridRows);
- }
- /*
- 품목 그리드 리스트 조회
- */
- public GridResponse selectItemGridList( String sBrandId, String sItemStCd, String sPodrPssblDvsn, String sItemType, String sItemGubun, String sClass1, String sClass2, String sClass3, String sClass4, String sItemNm, GridRequest gridRequest) throws Exception {
- int gridPage = gridRequest.getGridPage();
- int gridSize = gridRequest.getGridSize();
- int gridRecords = itemMapper.selectItemGridCnt( sBrandId, "", sItemStCd, sPodrPssblDvsn, sItemType, sItemGubun, sClass1, sClass2, sClass3, sClass4, sItemNm);
- int gridTotal = fnCalculateGridTotal(gridSize, gridRecords);
- List<ItemEntity> entities = itemMapper.selectItemGridList( sBrandId, "", sItemStCd, sPodrPssblDvsn, sItemType, sItemGubun, sClass1, sClass2, sClass3, sClass4, sItemNm, gridRequest);
- List<Object> gridRows = entities.stream()
- .map(m -> ItemSearchListResponse.builder()
- .viewCd("R")
- .itemId(m.getItemId())
- .itemNm(m.getItemNm() == null ? "" :m.getItemNm() )
- .itemType(m.getItemType() == null ? "" :m.getItemType() )
- .itemTypeNm(m.getItemTypeNm() == null ? "" :m.getItemTypeNm() )
- .itemClassMgntNo(m.getItemClassInfo() == null ? "" : m.getItemClassInfo().getItemClassMgntNo() == null ? "" : m.getItemClassInfo().getItemClassMgntNo())
- .itemClassNm(m.getItemClassMngInfo() == null ? "" : m.getItemClassMngInfo().getItemClassNm() == null ? "" : m.getItemClassMngInfo().getItemClassNm())
- .itemStCd(m.getItemStCd() == null ? "" :m.getItemStCd())
- .itemStNm(m.getItemStNm() == null ? "" :m.getItemStNm() )
- .podrPssblDvsn(m.getPodrPssblDvsn() == null ? "" : m.getPodrPssblDvsn())
- .podrPssblDvsnNm(m.getPodrPssblDvsnNm() == null ? "" :m.getPodrPssblDvsnNm())
- .unit(m.getUnit() == null ? "" : m.getUnit())
- .unitNm(m.getUnitNm() == null ? "" :m.getUnitNm() )
- .pchItemYn(m.getPchItemYn() == null ? "" : m.getPchItemYn())
- .saleItemYn(m.getSaleItemYn() == null ? "" :m.getSaleItemYn() )
- .build())
- .collect(Collectors.toList());
- return GridResponse.toDTO(gridPage, gridTotal, gridRecords, gridRows);
- }
- /*
- 품목 그리드 리스트 조회
- */
- public GridResponse selectSpplyItemGridList( String sBrandId, String sSpplyId, String sItemStCd, String sPodrPssblDvsn, String sItemNm, GridRequest gridRequest) throws Exception {
- int gridPage = gridRequest.getGridPage();
- int gridSize = gridRequest.getGridSize();
- int gridRecords = itemMapper.selectItemGridCnt( sBrandId,sSpplyId , sItemStCd, sPodrPssblDvsn, "", "", "", "", "", "", sItemNm);
- int gridTotal = fnCalculateGridTotal(gridSize, gridRecords);
- List<ItemEntity> entities = itemMapper.selectItemGridList( sBrandId, sSpplyId, sItemStCd, sPodrPssblDvsn, "", "", "", "", "", "", sItemNm, gridRequest);
- List<Object> gridRows = entities.stream()
- .map(m -> ItemSearchListResponse.builder()
- .viewCd("R")
- .itemId(m.getItemId())
- .itemNm(m.getItemNm() == null ? "" :m.getItemNm() )
- .itemType(m.getItemType() == null ? "" :m.getItemType() )
- .itemTypeNm(m.getItemTypeNm() == null ? "" :m.getItemTypeNm() )
- .itemClassMgntNo(m.getItemClassInfo() == null ? "" : m.getItemClassInfo().getItemClassMgntNo() == null ? "" : m.getItemClassInfo().getItemClassMgntNo())
- .itemClassNm(m.getItemClassMngInfo() == null ? "" : m.getItemClassMngInfo().getItemClassNm() == null ? "" : m.getItemClassMngInfo().getItemClassNm())
- .itemStCd(m.getItemStCd() == null ? "" :m.getItemStCd())
- .itemStNm(m.getItemStNm() == null ? "" :m.getItemStNm() )
- .podrPssblDvsn(m.getPodrPssblDvsn() == null ? "" : m.getPodrPssblDvsn())
- .podrPssblDvsnNm(m.getPodrPssblDvsnNm() == null ? "" :m.getPodrPssblDvsnNm())
- .unit(m.getUnit() == null ? "" : m.getUnit())
- .unitNm(m.getUnitNm() == null ? "" :m.getUnitNm() )
- .pchItemYn(m.getPchItemYn() == null ? "" : m.getPchItemYn())
- .saleItemYn(m.getSaleItemYn() == null ? "" :m.getSaleItemYn() )
- .build())
- .collect(Collectors.toList());
- return GridResponse.toDTO(gridPage, gridTotal, gridRecords, gridRows);
- }
- /* 품목 정보 */
- public ItemInfoResponse selectItemInfo(String brandId, String itemId) throws Exception {
- ItemEntity entity = itemMapper.selectItemInfo( brandId, itemId);
- List<FileEntity> fileImageInfoList = null;
- if (!"".equals(entity.getItemImageFileNo())) {
- fileImageInfoList = fileMapper.selectFileList(entity.getItemImageFileNo()) ;
- } else {
- fileImageInfoList = new ArrayList<FileEntity>();
- }
- return ItemInfoResponse.toDTO(entity,fileImageInfoList );
- }
- /* 품목 저장 */
- @Transactional
- public void saveItemInfo(String userId, SaveItemInfolRequest saveItemInfolRequest) throws Exception {
- try {
- ItemEntity entity = new ItemEntity();
- entity.setBrandId(saveItemInfolRequest.getBrandId());
- entity.setItemId(saveItemInfolRequest.getItemId());
- entity.setItemNm(saveItemInfolRequest.getItemNm());
- entity.setPchUnit(saveItemInfolRequest.getPchUnit());
- entity.setWeight(saveItemInfolRequest.getWeight());
- entity.setVolume(saveItemInfolRequest.getVolume());
- entity.setWidth(saveItemInfolRequest.getWidth());
- entity.setHeight(saveItemInfolRequest.getHeight());
- entity.setHigh(saveItemInfolRequest.getHigh());
- entity.setExpryYn(saveItemInfolRequest.getExpryYn());
- entity.setExpryPeriod(saveItemInfolRequest.getExpryPeriod());
- entity.setRtnDvsn(saveItemInfolRequest.getRtnDvsn());
- entity.setImpDvsn(saveItemInfolRequest.getImpDvsn());
- entity.setAssetInfo(saveItemInfolRequest.getAssetInfo());
- entity.setStckUnit(saveItemInfolRequest.getStckUnit());
- entity.setPodrPssblDvsn(saveItemInfolRequest.getPodrPssblDvsn());
- entity.setPchItemYn(saveItemInfolRequest.getPchItemYn());
- entity.setSaleItemYn(saveItemInfolRequest.getSaleItemYn());
- entity.setItemStCd(saveItemInfolRequest.getItemStCd());
- entity.setItemType(saveItemInfolRequest.getItemType());
- entity.setSaleUnit(saveItemInfolRequest.getSaleUnit());
- entity.setUnit(saveItemInfolRequest.getUnit());
- entity.setRtnPssblYn(saveItemInfolRequest.getRtnPssblYn());
- entity.setItemImageFileNo(saveItemInfolRequest.getItemImageFileNo());
- entity.setOneBoxQty(saveItemInfolRequest.getOneBoxQty());
- entity.setWeightUnit(saveItemInfolRequest.getWeightUnit());
- entity.setVolumeUnit(saveItemInfolRequest.getVolumeUnit());
- entity.setWidthUnit(saveItemInfolRequest.getWidthUnit());
- entity.setHeightUnit(saveItemInfolRequest.getHeightUnit());
- entity.setHighUnit(saveItemInfolRequest.getHighUnit());
- if ("C".equals(saveItemInfolRequest.getViewCd())) {
- // 품목 아이디 부여 22 entity.setContentsNo(fnGetKeyNo(17));
- entity.setItemId(fnGetDealNo(26,"")); // 품목아이디 생성
- itemMapper.insertItemInfo(userId, entity);
- } else if ("U".equals(saveItemInfolRequest.getViewCd())) {
- itemMapper.updateItemInfo(userId, entity);
- itemMapper.deleteItemClassInfo(entity.getItemId());
- }
- // 품목 class 정보 등록
- ItemClassEntity iClassEntity = new ItemClassEntity();
- iClassEntity.setItemId(entity.getItemId());
- iClassEntity.setItemNm(entity.getItemNm());
- // System.out.println("saveItemInfolRequestgetItemClass1==>" + saveItemInfolRequest.getItemClass1() );
- //System.out.println("saveItemInfolRequestgetItemClass2==>" + saveItemInfolRequest.getItemClass2() );
- //System.out.println("saveItemInfolRequestgetItemClass3==>" + saveItemInfolRequest.getItemClass3() );
- //System.out.println("saveItemInfolRequestgetItemClass4==>" + saveItemInfolRequest.getItemClass4() );
- iClassEntity.setItemClass1(saveItemInfolRequest.getItemClass1());
- iClassEntity.setItemClass2(saveItemInfolRequest.getItemClass2());
- iClassEntity.setItemClass3(saveItemInfolRequest.getItemClass3());
- iClassEntity.setItemClass4(saveItemInfolRequest.getItemClass4());
- //System.out.println("getItemClass1==>" + iClassEntity.getItemClass1() );
- //System.out.println("getItemClass2==>" + iClassEntity.getItemClass2() );
- //System.out.println("getItemClass3==>" + iClassEntity.getItemClass3() );
- // System.out.println("getItemClass4==>" + iClassEntity.getItemClass4() );
- ItemClassMngEntity itemClassInfo = itemMapper.selectItemClassMngNo(entity.getBrandId(), iClassEntity.getItemClass1(),iClassEntity.getItemClass2(),iClassEntity.getItemClass3(),iClassEntity.getItemClass4());
- iClassEntity.setItemClassMgntNo(itemClassInfo.getItemClassMgntNo());
- itemMapper.insertItemClassInfo(userId, iClassEntity);
- } catch (GlobalException e) {
- e.getStackTrace();
- throw new GlobalException(e.getSystemMessageCode());
- } catch (Exception e) {
- e.getStackTrace();
- throw new RuntimeException();
- }
- }
- //
- /*
- 품목분류 리스트 조회
- */
- public GridResponse selectItemClassMngGridList(String sBrandId, String sItemClass1, String sItemClass2, String sItemClass3, String sItemClass4, String sItemClassNm,GridRequest gridRequest) throws Exception {
- int gridPage = gridRequest.getGridPage();
- int gridSize = gridRequest.getGridSize();
- int gridRecords = itemMapper.selectItemClassMngGridCnt( sBrandId, sItemClass1, sItemClass2, sItemClass3, sItemClass4,sItemClassNm );
- int gridTotal = fnCalculateGridTotal(gridSize, gridRecords);
- List<ItemClassMngEntity> entities = itemMapper.selectItemClassMngGridList(sBrandId, sItemClass1, sItemClass2, sItemClass3, sItemClass4,sItemClassNm, gridRequest);
- List<Object> gridRows = entities.stream()
- .map(m -> ItemClassMngSearchResponse.builder()
- .viewCd("R")
- .brandId(m.getBrandId())
- .itemClassMgntNo(m.getItemClassMgntNo())
- .itemClassNm(m.getItemClassNm() == null ? "" : m.getItemClassNm() )
- .itemClass1(m.getItemClass1() == null ? "" : m.getItemClass1())
- .itemClass2(m.getItemClass2() == null ? "" : m.getItemClass2())
- .itemClass3(m.getItemClass3() == null ? "" : m.getItemClass3())
- .itemClass4(m.getItemClass4() == null ? "" : m.getItemClass4())
- .itemClass1Nm(m.getItemClass1Nm() == null ? "" : m.getItemLevel() >= 1 ? m.getItemClass1Nm() : "")
- .itemClass2Nm(m.getItemClass2Nm() == null ? "" : m.getItemLevel() >= 2 ? m.getItemClass2Nm() : "")
- .itemClass3Nm(m.getItemClass3Nm() == null ? "" : m.getItemLevel() >= 3 ? m.getItemClass3Nm() : "")
- .itemClass4Nm(m.getItemClass4Nm() == null ? "" : m.getItemLevel() >= 4 ? m.getItemClass4Nm() : "")
- .prnSeq(m.getPrnSeq() == null ? 99 : m.getPrnSeq())
- .build())
- .collect(Collectors.toList());
- return GridResponse.toDTO(gridPage, gridTotal, gridRecords, gridRows);
- }
- /* 품목 분류 정보 */
- public ItemClassMngInfoResponse selectItemClassMngInfo(String brandId, String itemClassMgnNo) throws Exception {
- return ItemClassMngInfoResponse.toDTO(itemMapper.selectItemClassMngInfo(brandId, itemClassMgnNo) );
- }
- /* 품목분류 저장 */
- @Transactional
- public void saveItemClassMngInfo(String userId, SaveItemClassMngInfolRequest saveItemClassMngInfolRequest) throws Exception {
- try {
- ItemClassMngEntity entity = new ItemClassMngEntity();
- entity.setBrandId(saveItemClassMngInfolRequest.getBrandId());
- entity.setItemClassNm(saveItemClassMngInfolRequest.getItemClassNm());
- entity.setItemClassMgntNo(saveItemClassMngInfolRequest.getItemClassMgntNo());
- entity.setItemClass1(saveItemClassMngInfolRequest.getItemClass1());
- entity.setItemClass2(saveItemClassMngInfolRequest.getItemClass2());
- entity.setItemClass3(saveItemClassMngInfolRequest.getItemClass3());
- entity.setItemClass4(saveItemClassMngInfolRequest.getItemClass4());
- entity.setPrnSeq(saveItemClassMngInfolRequest.getPrnSeq());
- if ("C".equals(saveItemClassMngInfolRequest.getViewCd())) {
- Integer itemLevel = 1;
- if ("".equals(entity.getItemClass1()))
- {
- // level 1 추가
- itemLevel = 1;
- } else {
- if ("".equals(entity.getItemClass2()))
- {
- // level 2 추가
- itemLevel = 2;
- } else {
- if ("".equals(entity.getItemClass3()))
- {
- // level 3 추가
- itemLevel = 3;
- } else {
- if ("".equals(entity.getItemClass4()))
- {
- // level 4 추가
- itemLevel = 4;
- } else {
- // 오류
- throw new GlobalException(SystemMessageCode.ERR_ITEMCLASS);
- }
- }
- }
- }
- System.out.println("=classLevel============================>" + itemLevel );
- entity.setItemLevel(itemLevel);
- int classNum = itemMapper.selectItemClassMaxClass(entity.getBrandId(), entity.getItemLevel(), entity.getItemClass1(), entity.getItemClass2(), entity.getItemClass3(), entity.getItemClass4() ) ;
- if (itemLevel == 1) {
- entity.setItemClass1(Integer.toString(classNum));
- } else if (itemLevel == 2) {
- entity.setItemClass2(Integer.toString(classNum));
- } else if (itemLevel == 3) {
- entity.setItemClass3(Integer.toString(classNum));
- } else if (itemLevel == 4) {
- entity.setItemClass4(Integer.toString(classNum));
- }
- entity.setItemClassMgntNo(fnGetKeyNo(31)); // 품목분류 아이디 부여
- itemMapper.insertItemClassMngInfo(userId, entity);
- } else if ("U".equals(saveItemClassMngInfolRequest.getViewCd())) {
- itemMapper.updateItemClassMngInfo(userId, entity);
- }
- } catch (GlobalException e) {
- e.getStackTrace();
- throw new GlobalException(e.getSystemMessageCode());
- } catch (Exception e) {
- e.getStackTrace();
- throw new RuntimeException();
- }
- }
- /* 품목분류 삭제 */
- @Transactional
- public void delItemClassMngInfo(String userId, String itemClassMgntNo) throws Exception {
- try {
- List<ItemClassMngEntity> icmngList = new ArrayList<ItemClassMngEntity>() ;
- String[] icmNoList = itemClassMgntNo.split(",");
- for (int i = 0 ; i < icmNoList.length ; i++) {
- ItemClassMngEntity delEntity = new ItemClassMngEntity();
- delEntity.setItemClassMgntNo(icmNoList[i]);
- icmngList.add(delEntity);
- }
- itemMapper.deleteItemClassMngInfo(userId, icmngList);
- } catch (GlobalException e) {
- e.getStackTrace();
- throw new GlobalException(e.getSystemMessageCode());
- } catch (Exception e) {
- e.getStackTrace();
- throw new RuntimeException();
- }
- }
- /* 품목 분류 level 리스트 */
- public ItemClassLevelResponse searchItemClassList(String sBrandId, int sItemLevel, String sItemClass1, String sItemClass2, String sItemClass3) throws Exception {
- List<ItemClassMngEntity> entities = itemMapper.selectItemLevelList(sBrandId, sItemLevel, sItemClass1, sItemClass2, sItemClass3 );
- return ItemClassLevelResponse.toDTO(entities);
- }
- }
|