|
|
@@ -1257,7 +1257,7 @@ public class TssGoodsService {
|
|
|
goods.setUpdNo(TssSession.getInfo().getUserNo());
|
|
|
|
|
|
// 품번정보 확인 (길이 10, FRJ '-' 삭제)
|
|
|
- if (StringUtils.isBlank(goodsMass.getGoodsNum().trim()) || goodsMass.getGoodsNum().trim().replace("-", "") .length() != 10) {
|
|
|
+ if (StringUtils.isBlank(goodsMass.getGoodsNum().trim()) || goodsMass.getGoodsNum().trim().replace("-", "").length() != 10) {
|
|
|
goods.setGoodsRegMsg("품번코드 오류");
|
|
|
goods.setGoodsStat("10");
|
|
|
return goods;
|
|
|
@@ -1574,15 +1574,15 @@ public class TssGoodsService {
|
|
|
|
|
|
if ("createSelfGoods".equals(procJob)) {
|
|
|
for (GoodsNotiInfo goodsNotiInfo : goodsNotiList) {
|
|
|
- if ("Y".equals(goodsNotiInfo.getReqYn()) && StringUtils.isBlank(goodsNotiInfo.getNiContent())) {
|
|
|
- goods.setGoodsRegMsg("고시항목 필수 항목 오류");
|
|
|
+ if (StringUtils.isBlank(goodsNotiInfo.getNiContent())) {
|
|
|
+ goods.setGoodsRegMsg("고시항목 정보 오류");
|
|
|
goods.setGoodsStat("G008_20");
|
|
|
return goods;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
for (GoodsNotiInfo goodsNotiInfo : goodsNotiList) {
|
|
|
- if ("Y".equals(goodsNotiInfo.getReqYn()) && StringUtils.isBlank(excelMap.getString("niContent" + (index + 1)).trim())) {
|
|
|
+ if (StringUtils.isBlank(excelMap.getString("niContent" + (index + 1)).trim())) {
|
|
|
goods.setGoodsRegMsg("고시정보 없음 (" + (index + 1) + "번째 항목) - " + goodsNotiInfo.getNiItemCd() + "(" + goodsNotiInfo.getNiItemNm() + ")");
|
|
|
goods.setGoodsStat("10");
|
|
|
return goods;
|
|
|
@@ -1696,55 +1696,55 @@ public class TssGoodsService {
|
|
|
String[] arrSizeCd = GagaStringUtil.cutTokenToArray(goodsMass.getOptStr().trim(), "|");
|
|
|
for (int i = 0; i < arrSizeCd.length; i++) {
|
|
|
String[] arrOptCd = GagaStringUtil.cutTokenToArray(arrSizeCd[i], "^");
|
|
|
- if (arrOptCd.length != 5 ) {
|
|
|
- goods.setGoodsRegMsg("옵션(SKU) " + (i+1)+ "번째 옵션구분자[^] 갯수 상이");
|
|
|
+ if (arrOptCd.length != 5) {
|
|
|
+ goods.setGoodsRegMsg("옵션(SKU) " + (i + 1) + "번째 옵션구분자[^] 갯수 상이");
|
|
|
goods.setGoodsStat("10");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
// 옵션1 - 필수
|
|
|
if (StringUtils.isBlank(arrOptCd[0])) {
|
|
|
- goods.setGoodsRegMsg("옵션(SKU) " + (i+1)+ "번째 옵션1 정보없음");
|
|
|
+ goods.setGoodsRegMsg("옵션(SKU) " + (i + 1) + "번째 옵션1 정보없음");
|
|
|
goods.setGoodsStat("10");
|
|
|
break;
|
|
|
}
|
|
|
// 추가금액 - 필수
|
|
|
if (StringUtils.isBlank(arrOptCd[2])) {
|
|
|
- goods.setGoodsRegMsg("옵션(SKU) " + (i+1)+ "번째 추가금액 정보없음");
|
|
|
+ goods.setGoodsRegMsg("옵션(SKU) " + (i + 1) + "번째 추가금액 정보없음");
|
|
|
goods.setGoodsStat("10");
|
|
|
break;
|
|
|
}
|
|
|
if (!arrOptCd[2].trim().matches(NUMBER_PATTERN)) {
|
|
|
- goods.setGoodsRegMsg("옵션(SKU) " + (i+1)+ "번째 추가금액 숫자 오류");
|
|
|
+ goods.setGoodsRegMsg("옵션(SKU) " + (i + 1) + "번째 추가금액 숫자 오류");
|
|
|
goods.setGoodsStat("10");
|
|
|
break;
|
|
|
}
|
|
|
// 안전재고 - 필수
|
|
|
if (StringUtils.isBlank(arrOptCd[3])) {
|
|
|
- goods.setGoodsRegMsg("옵션(SKU) " + (i+1)+ "번째 안전재고 정보없음");
|
|
|
+ goods.setGoodsRegMsg("옵션(SKU) " + (i + 1) + "번째 안전재고 정보없음");
|
|
|
goods.setGoodsStat("10");
|
|
|
break;
|
|
|
}
|
|
|
if (!arrOptCd[3].trim().matches(NUMBER_PATTERN)) {
|
|
|
- goods.setGoodsRegMsg("옵션(SKU) " + (i+1)+ "번째 안전재고 숫자 오류");
|
|
|
+ goods.setGoodsRegMsg("옵션(SKU) " + (i + 1) + "번째 안전재고 숫자 오류");
|
|
|
goods.setGoodsStat("10");
|
|
|
break;
|
|
|
}
|
|
|
// 판매재고 - 필수
|
|
|
if (StringUtils.isBlank(arrOptCd[4])) {
|
|
|
- goods.setGoodsRegMsg("옵션(SKU) " + (i+1)+ "번째 판매재고 정보없음");
|
|
|
+ goods.setGoodsRegMsg("옵션(SKU) " + (i + 1) + "번째 판매재고 정보없음");
|
|
|
goods.setGoodsStat("10");
|
|
|
break;
|
|
|
}
|
|
|
if (!arrOptCd[4].trim().matches(NUMBER_PATTERN)) {
|
|
|
- goods.setGoodsRegMsg("옵션(SKU) " + (i+1)+ "번째 판매재고 숫자 오류");
|
|
|
+ goods.setGoodsRegMsg("옵션(SKU) " + (i + 1) + "번째 판매재고 숫자 오류");
|
|
|
goods.setGoodsStat("10");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
Option goodsStock = new Option();
|
|
|
goodsStock.setGoodsCd(goods.getGoodsCd());
|
|
|
- goodsStock.setOptCd(goods.getGoodsCd() + "-" + (i+1));
|
|
|
+ goodsStock.setOptCd(goods.getGoodsCd() + "-" + (i + 1));
|
|
|
goodsStock.setOptCd1(arrOptCd[0].trim());
|
|
|
goodsStock.setOptCd2(arrOptCd[1].trim());
|
|
|
goodsStock.setAddPrice(Integer.parseInt(arrOptCd[2]));
|
|
|
@@ -1766,7 +1766,7 @@ public class TssGoodsService {
|
|
|
|
|
|
// 상품상세 확인
|
|
|
if (!StringUtils.isBlank(goodsMass.getGoodsContent())) {
|
|
|
- if (goodsMass.getGoodsContent().toLowerCase().indexOf("script") >= 0 ) {
|
|
|
+ if (goodsMass.getGoodsContent().toLowerCase().indexOf("script") >= 0) {
|
|
|
goods.setGoodsRegMsg("상품상세 html script 선언 오류");
|
|
|
goods.setGoodsStat("10");
|
|
|
this.setGoodsRegResult(goods, goodsMass, procJob);
|
|
|
@@ -1905,7 +1905,6 @@ public class TssGoodsService {
|
|
|
}
|
|
|
goods.setBrandCd(goodsMass.getBrandCd().trim()); // 브랜드 코드
|
|
|
|
|
|
-
|
|
|
// 상품명
|
|
|
if (StringUtils.isBlank(goodsMass.getGoodsNm().trim())) {
|
|
|
goods.setGoodsRegMsg("상품명 오류");
|
|
|
@@ -2175,7 +2174,6 @@ public class TssGoodsService {
|
|
|
return goods;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 상품 코드 생성
|
|
|
*
|
|
|
@@ -2255,7 +2253,8 @@ public class TssGoodsService {
|
|
|
}
|
|
|
|
|
|
// 상품 고시
|
|
|
- goods = this.getUpdateMassGoodsNotiCheck(goods, gagaMap, goodsOrigin);
|
|
|
+ Collection<GoodsNotiInfo> newGoodsNotiList = new ArrayList<>(); //적용할 고시 정보
|
|
|
+ goods = this.getUpdateMassGoodsNotiCheck(goods, gagaMap, goodsOrigin, newGoodsNotiList);
|
|
|
if ("10".equals(goods.getGoodsStat())) { // 정보 오류
|
|
|
this.setGoodsRegResult(goods, goodsMass, procJob);
|
|
|
return goods.getGoodsStat();
|
|
|
@@ -2263,7 +2262,7 @@ public class TssGoodsService {
|
|
|
|
|
|
// 상품상세 (html, as-is/입점)
|
|
|
if (!UPDATE_NO_PATTERN.equals(goodsMass.getGoodsContent().trim())) {
|
|
|
- if (goodsMass.getGoodsContent().toLowerCase().indexOf("script") >= 0 ) {
|
|
|
+ if (goodsMass.getGoodsContent().toLowerCase().indexOf("script") >= 0) {
|
|
|
goods.setGoodsRegMsg("상품상세 html script 선언 오류");
|
|
|
goods.setGoodsStat("10");
|
|
|
this.setGoodsRegResult(goods, goodsMass, procJob);
|
|
|
@@ -2314,10 +2313,10 @@ public class TssGoodsService {
|
|
|
}
|
|
|
|
|
|
if ("Y".equals(goods.getChNotiYn())) {
|
|
|
- this.updateGoodsNoti(goods, gagaMap, goodsOrigin); // 상품고시정보 저장
|
|
|
+ this.updateGoodsNoti(goods, newGoodsNotiList); // 상품고시정보 저장
|
|
|
}
|
|
|
|
|
|
- // 품목변경시 카테고리 자동 전시 eskim
|
|
|
+ // 품목변경시 카테고리 자동 전시
|
|
|
if (!UPDATE_NO_PATTERN.equals(goods.getItemkindCd().trim())) {
|
|
|
GoodsCategory goodsCategory = new GoodsCategory();
|
|
|
goodsCategory.setRegNo(TssSession.getInfo().getUserNo());
|
|
|
@@ -2543,8 +2542,8 @@ public class TssGoodsService {
|
|
|
goods.setSellFeeRate(sellFeeRate); // 판매수수료율
|
|
|
goods.setChDataYn("Y");
|
|
|
}
|
|
|
- }else {
|
|
|
- //입점
|
|
|
+ } else {
|
|
|
+ //입점
|
|
|
GoodsPriceRes goodsPriceRes = new GoodsPriceRes();
|
|
|
goodsPriceRes.setGoodsCd(goods.getGoodsCd());
|
|
|
if (goods.getCurrPrice() != goodsOrigin.getCurrPrice()) {
|
|
|
@@ -2666,13 +2665,13 @@ public class TssGoodsService {
|
|
|
goods.setChDataYn("Y");
|
|
|
}
|
|
|
|
|
|
- if(goods.getMinOrdQty() > goods.getMaxOrdQty()){
|
|
|
+ if (goods.getMinOrdQty() > goods.getMaxOrdQty()) {
|
|
|
goods.setGoodsRegMsg("최소주문수량 오류(최대주문수량보다 클 수 없음)");
|
|
|
goods.setGoodsStat("10");
|
|
|
return goods;
|
|
|
}
|
|
|
|
|
|
- if(goods.getMaxOrdQty() > goods.getDayMaxOrdQty()){
|
|
|
+ if (goods.getMaxOrdQty() > goods.getDayMaxOrdQty()) {
|
|
|
goods.setGoodsRegMsg("최대주문수량 오류(ID당1일최대구매수량보다 클 수 없음)");
|
|
|
goods.setGoodsStat("10");
|
|
|
return goods;
|
|
|
@@ -2694,7 +2693,7 @@ public class TssGoodsService {
|
|
|
}
|
|
|
goods.setChDataYn("Y");
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
goods.setGiftPackYn(goodsOrigin.getGiftPackYn());
|
|
|
}
|
|
|
|
|
|
@@ -2714,7 +2713,7 @@ public class TssGoodsService {
|
|
|
}
|
|
|
goods.setChDataYn("Y");
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
goods.setNewCustOrdYn(goodsOrigin.getNewCustOrdYn());
|
|
|
}
|
|
|
|
|
|
@@ -2881,75 +2880,167 @@ public class TssGoodsService {
|
|
|
* @author eskim
|
|
|
* @since 2021. 01. 20
|
|
|
*/
|
|
|
- private Goods getUpdateMassGoodsNotiCheck(Goods goods, GagaMap excelMap, Goods goodsOrigin) {
|
|
|
+// private Goods getUpdateMassGoodsNotiCheck_org(Goods goods, GagaMap excelMap, Goods goodsOrigin) {
|
|
|
+//
|
|
|
+// // 고시분류 확인
|
|
|
+// // 고시분류의 항목과 엑셀데이터 매핑
|
|
|
+// // 필수
|
|
|
+// String oldItemKindCd = goodsOrigin.getItemkindCd();
|
|
|
+// String itemkindCd = goods.getItemkindCd();
|
|
|
+// if (UPDATE_NO_PATTERN.equals(goods.getItemkindCd())) {
|
|
|
+// itemkindCd = oldItemKindCd;
|
|
|
+// }
|
|
|
+// // old 품목고시분류 조회
|
|
|
+// String oldNiClsfCd = "";
|
|
|
+// Goods goodsNoti = new Goods();
|
|
|
+// goodsNoti.setGoodsCd(goods.getGoodsCd());
|
|
|
+// goodsNoti.setSupplyVendorCd(goodsOrigin.getSupplyVendorCd());
|
|
|
+// goodsNoti.setItemkindCd(oldItemKindCd);
|
|
|
+// Collection<GoodsNotiInfo> oldGoodsNotiList = goodsDao.getItemkindNotiInfoList(goodsNoti);
|
|
|
+// if (oldGoodsNotiList != null && oldGoodsNotiList.isEmpty()) {
|
|
|
+// for (GoodsNotiInfo oldGoodsNotiInfo : oldGoodsNotiList) {
|
|
|
+// oldNiClsfCd = oldGoodsNotiInfo.getNiClsfCd();
|
|
|
+// break;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// // 품목코드가 변경되었을 경우
|
|
|
+// if (!oldItemKindCd.equals(itemkindCd)) {
|
|
|
+// goods.setChNotiYn("Y");
|
|
|
+//
|
|
|
+// // new 품목고시분류 조회
|
|
|
+// String newNiClsfCd = "";
|
|
|
+// goodsNoti.setItemkindCd(itemkindCd);
|
|
|
+// Collection<GoodsNotiInfo> newGoodsNotiList = goodsDao.getItemkindNotiInfoList(goodsNoti);
|
|
|
+// if (newGoodsNotiList == null || newGoodsNotiList.isEmpty()) {
|
|
|
+// goods.setGoodsRegMsg("품목의 고시정보 없음");
|
|
|
+// goods.setGoodsStat("10");
|
|
|
+// return goods;
|
|
|
+// } else {
|
|
|
+// for (GoodsNotiInfo newGoodsNotiInfo : newGoodsNotiList) {
|
|
|
+// newNiClsfCd = newGoodsNotiInfo.getNiClsfCd();
|
|
|
+// break;
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// if (!oldNiClsfCd.equals(newNiClsfCd) && !UPDATE_NO_PATTERN.equals(excelMap.getString("niClsfCd"))) {
|
|
|
+// goods.setGoodsRegMsg("고시분류 오류");
|
|
|
+// goods.setGoodsStat("10");
|
|
|
+// return goods;
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 상품고시정보
|
|
|
+// Collection<GoodsNotiInfo> goodsNotiList = goodsDao.getItemkindNotiInfoList(goodsNoti);
|
|
|
+// if (goodsNotiList == null || goodsNotiList.isEmpty()) {
|
|
|
+// goods.setGoodsRegMsg("품목의 고시정보 없음");
|
|
|
+// goods.setGoodsStat("10");
|
|
|
+// return goods;
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// if (!UPDATE_NO_PATTERN.equals(excelMap.getString("niClsfCd"))
|
|
|
+// && !oldNiClsfCd.equals(excelMap.getString("niClsfCd"))) {
|
|
|
+// goods.setGoodsRegMsg("고시분류 오류..");
|
|
|
+// goods.setGoodsStat("10");
|
|
|
+// return goods;
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// for (int i = 0; i < 28; i++) {
|
|
|
+// String niContentVal = excelMap.getString("niContent" + (i + 1));
|
|
|
+// if (!UPDATE_NO_PATTERN.equals(niContentVal)) {
|
|
|
+// goods.setChNotiYn("Y");
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// return goods;
|
|
|
+// }
|
|
|
|
|
|
- // 고시분류 확인
|
|
|
- // 고시분류의 항목과 엑셀데이터 매핑
|
|
|
- // 필수
|
|
|
- String oldItemKindCd = goodsOrigin.getItemkindCd();
|
|
|
- String itemkindCd = goods.getItemkindCd();
|
|
|
- if (UPDATE_NO_PATTERN.equals(goods.getItemkindCd())) {
|
|
|
- itemkindCd = oldItemKindCd;
|
|
|
- }
|
|
|
- // old 품목고시분류 조회
|
|
|
+ /**
|
|
|
+ * 상품대량수정 - 상품고시정보 check
|
|
|
+ *
|
|
|
+ * @param goods
|
|
|
+ * @param excelMap
|
|
|
+ * @param goodsOrigin
|
|
|
+ * @param newGoodsNotiList
|
|
|
+ * @return Goods
|
|
|
+ * @author eskim
|
|
|
+ * @since 2021. 01. 20
|
|
|
+ */
|
|
|
+ private Goods getUpdateMassGoodsNotiCheck(Goods goods, GagaMap excelMap, Goods goodsOrigin, Collection<GoodsNotiInfo> newGoodsNotiList) {
|
|
|
+
|
|
|
+ goods.setChNotiYn("N");
|
|
|
String oldNiClsfCd = "";
|
|
|
- Goods goodsNoti = new Goods();
|
|
|
- goodsNoti.setGoodsCd(goods.getGoodsCd());
|
|
|
- goodsNoti.setSupplyVendorCd(goodsOrigin.getSupplyVendorCd());
|
|
|
- goodsNoti.setItemkindCd(oldItemKindCd);
|
|
|
- Collection<GoodsNotiInfo> oldGoodsNotiList = goodsDao.getItemkindNotiInfoList(goodsNoti);
|
|
|
- if (oldGoodsNotiList != null && oldGoodsNotiList.isEmpty()) {
|
|
|
- for (GoodsNotiInfo oldGoodsNotiInfo : oldGoodsNotiList) {
|
|
|
- oldNiClsfCd = oldGoodsNotiInfo.getNiClsfCd();
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- // 품목코드가 변경되었을 경우
|
|
|
- if (!oldItemKindCd.equals(itemkindCd)) {
|
|
|
- goods.setChNotiYn("Y");
|
|
|
+ String newNiClsfCd = "";
|
|
|
|
|
|
- // new 품목고시분류 조회
|
|
|
- String newNiClsfCd = "";
|
|
|
- goodsNoti.setItemkindCd(itemkindCd);
|
|
|
- Collection<GoodsNotiInfo> newGoodsNotiList = goodsDao.getItemkindNotiInfoList(goodsNoti);
|
|
|
- if (newGoodsNotiList == null || newGoodsNotiList.isEmpty()) {
|
|
|
- goods.setGoodsRegMsg("품목의 고시정보 없음");
|
|
|
+ newNiClsfCd = excelMap.getString("niClsfCd").trim();
|
|
|
+ for (int i = 0; i < 28; i++) {
|
|
|
+ if (StringUtils.isBlank(excelMap.getString("niContent" + (i + 1)).trim())) {
|
|
|
+ goods.setGoodsRegMsg("고시항목정보 없음 (" + (i + 1) + "번째 항목)");
|
|
|
goods.setGoodsStat("10");
|
|
|
return goods;
|
|
|
- } else {
|
|
|
- for (GoodsNotiInfo newGoodsNotiInfo : newGoodsNotiList) {
|
|
|
- newNiClsfCd = newGoodsNotiInfo.getNiClsfCd();
|
|
|
- break;
|
|
|
- }
|
|
|
}
|
|
|
-
|
|
|
- if (!oldNiClsfCd.equals(newNiClsfCd) && !UPDATE_NO_PATTERN.equals(excelMap.getString("niClsfCd"))) {
|
|
|
- goods.setGoodsRegMsg("고시분류 오류");
|
|
|
- goods.setGoodsStat("10");
|
|
|
- return goods;
|
|
|
+ if (!UPDATE_NO_PATTERN.equals(excelMap.getString("niContent" + (i + 1)).trim())) {
|
|
|
+ goods.setChNotiYn("Y");
|
|
|
}
|
|
|
+ }
|
|
|
+ // 변경사항이 있는지 확인
|
|
|
+ if (UPDATE_NO_PATTERN.equals(newNiClsfCd) && "N".equals(goods.getChNotiYn())) {
|
|
|
+ return goods;
|
|
|
+ }
|
|
|
|
|
|
- // 상품고시정보
|
|
|
- Collection<GoodsNotiInfo> goodsNotiList = goodsDao.getItemkindNotiInfoList(goodsNoti);
|
|
|
- if (goodsNotiList == null || goodsNotiList.isEmpty()) {
|
|
|
- goods.setGoodsRegMsg("품목의 고시정보 없음");
|
|
|
- goods.setGoodsStat("10");
|
|
|
- return goods;
|
|
|
- }
|
|
|
+ Collection<GoodsNotiInfo> goodsNotiList = new ArrayList<>();
|
|
|
+ //고시분류 코드의 고시항목 조회
|
|
|
+ NotiInfo notiInfo = new NotiInfo();
|
|
|
+ notiInfo.setSupplyVendorCd(goodsOrigin.getSupplyVendorCd());
|
|
|
+ if (!UPDATE_NO_PATTERN.equals(newNiClsfCd)) {
|
|
|
+ notiInfo.setNiClsfCd(newNiClsfCd);
|
|
|
} else {
|
|
|
- if (!UPDATE_NO_PATTERN.equals(excelMap.getString("niClsfCd"))
|
|
|
- && !oldNiClsfCd.equals(excelMap.getString("niClsfCd"))) {
|
|
|
- goods.setGoodsRegMsg("고시분류 오류..");
|
|
|
- goods.setGoodsStat("10");
|
|
|
- return goods;
|
|
|
+ GoodsNotiInfo goodsNotiInfo = new GoodsNotiInfo();
|
|
|
+ goodsNotiInfo.setGoodsCd(goods.getGoodsCd());
|
|
|
+ goodsNotiList = goodsDao.getGoodsNotiInfoList(goodsNotiInfo);
|
|
|
+ if (goodsNotiList != null && !goodsNotiList.isEmpty()) {
|
|
|
+ oldNiClsfCd = goodsNotiList.iterator().next().getNiClsfCd();
|
|
|
}
|
|
|
+ notiInfo.setNiClsfCd(oldNiClsfCd);
|
|
|
+ }
|
|
|
+ Collection<NotiInfo> notiInfolist = goodsDao.getNotiInfoItemList(notiInfo);
|
|
|
+ // 상품의 고시 분류코드 조회
|
|
|
+ if (notiInfolist == null || notiInfolist.isEmpty()) {
|
|
|
+ goods.setGoodsRegMsg("고시분류정보 없음");
|
|
|
+ goods.setGoodsStat("10");
|
|
|
+ return goods;
|
|
|
}
|
|
|
|
|
|
- for (int i = 0; i < 28; i++) {
|
|
|
- String niContentVal = excelMap.getString("niContent" + (i + 1));
|
|
|
- if (!UPDATE_NO_PATTERN.equals(niContentVal)) {
|
|
|
- goods.setChNotiYn("Y");
|
|
|
+ int index = 0;
|
|
|
+ // 같은 고시분류 일경우 기존 고시항목 정보 적용
|
|
|
+ if (oldNiClsfCd.equals(newNiClsfCd)) {
|
|
|
+ for (NotiInfo notiInfoData : notiInfolist) {
|
|
|
+ for (GoodsNotiInfo goodsNotiInfoTemp : goodsNotiList) {
|
|
|
+ if (notiInfoData.getNiItemCd().equals(goodsNotiInfoTemp.getNiItemCd())) {
|
|
|
+ notiInfoData.setNiContent(goodsNotiInfoTemp.getNiContent());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ index++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ index = 0;
|
|
|
+ for (NotiInfo notiInfoTmp : notiInfolist) {
|
|
|
+ GoodsNotiInfo goodsNotiInfoTmp = new GoodsNotiInfo();
|
|
|
+ goodsNotiInfoTmp.setGoodsCd(goods.getGoodsCd());
|
|
|
+ goodsNotiInfoTmp.setNiClsfCd(notiInfoTmp.getNiClsfCd());
|
|
|
+ goodsNotiInfoTmp.setNiItemCd(notiInfoTmp.getNiItemCd());
|
|
|
+ goodsNotiInfoTmp.setDispOrd(index + 1);
|
|
|
+ goodsNotiInfoTmp.setRegNo(TssSession.getInfo().getUserNo());
|
|
|
+ goodsNotiInfoTmp.setUpdNo(TssSession.getInfo().getUserNo());
|
|
|
+ if (UPDATE_NO_PATTERN.equals(excelMap.getString("niContent" + (index + 1)))) {
|
|
|
+ goodsNotiInfoTmp.setNiContent(notiInfoTmp.getNiContent());
|
|
|
+ } else {
|
|
|
+ goodsNotiInfoTmp.setNiContent(excelMap.getString("niContent" + (index + 1)));
|
|
|
}
|
|
|
+
|
|
|
+ newGoodsNotiList.add(goodsNotiInfoTmp);
|
|
|
+ index++;
|
|
|
}
|
|
|
|
|
|
return goods;
|
|
|
@@ -2964,55 +3055,88 @@ public class TssGoodsService {
|
|
|
* @author eskim
|
|
|
* @since 2021. 01. 20
|
|
|
*/
|
|
|
- private void updateGoodsNoti(Goods goods, GagaMap excelMap, Goods goodsOrigin) {
|
|
|
+ private void updateGoodsNoti(Goods goods, Collection<GoodsNotiInfo> newGoodsNotiList) {
|
|
|
|
|
|
- String oldItemKindCd = goodsOrigin.getItemkindCd();
|
|
|
- String itemkindCd = goods.getItemkindCd();
|
|
|
- int index = 0;
|
|
|
-
|
|
|
- if (UPDATE_NO_PATTERN.equals(goods.getItemkindCd())) {
|
|
|
- itemkindCd = oldItemKindCd;
|
|
|
- }
|
|
|
-
|
|
|
- Collection<GoodsNotiInfo> newGoodsNotiList = new ArrayList<>();
|
|
|
- // new 품목고시분류 조회
|
|
|
- Goods goodsNoti = new Goods();
|
|
|
- goodsNoti.setGoodsCd(goods.getGoodsCd());
|
|
|
- goodsNoti.setSupplyCompCd(goodsOrigin.getSupplyCompCd());
|
|
|
- // 품목코드가 변경되었을 경우
|
|
|
- if (!oldItemKindCd.equals(itemkindCd)) {
|
|
|
- goodsNoti.setItemkindCd(itemkindCd);
|
|
|
- newGoodsNotiList = goodsDao.getItemkindNotiInfoList(goodsNoti);
|
|
|
- } else {
|
|
|
- // 원래 상품의 고시정보
|
|
|
-
|
|
|
- GoodsNotiInfo goodsNotiInfo = new GoodsNotiInfo();
|
|
|
- goodsNotiInfo.setGoodsCd(goods.getGoodsCd());
|
|
|
- goodsNotiInfo.setSupplyVendorCd(goodsOrigin.getSupplyCompCd()); //수정해야함
|
|
|
- goodsNotiInfo.setNiClsfCd(goodsOrigin.getNiClsfCd());
|
|
|
- newGoodsNotiList = goodsDao.getGoodsNotiInfoList(goodsNotiInfo);
|
|
|
- }
|
|
|
if (newGoodsNotiList != null && !newGoodsNotiList.isEmpty()) {
|
|
|
|
|
|
- index = 0;
|
|
|
+ int index = 0;
|
|
|
for (GoodsNotiInfo goodsNotiInfo : newGoodsNotiList) {
|
|
|
|
|
|
if (index == 0) {
|
|
|
goodsDao.deleteGoodsNotiInfo(goods);
|
|
|
}
|
|
|
-
|
|
|
- if (StringUtils.isEmpty(excelMap.getString("niContent" + (index + 1)))
|
|
|
- || UPDATE_NO_PATTERN.equals(excelMap.getString("niContent" + (index + 1)))) {
|
|
|
- goodsNotiInfo.setNiContent(goodsNotiInfo.getNiContent());
|
|
|
- } else {
|
|
|
- goodsNotiInfo.setNiContent(excelMap.getString("niContent" + (index + 1)));
|
|
|
- }
|
|
|
- goodsNotiInfo.setRegNo(TssSession.getInfo().getUserNo());
|
|
|
- goodsNotiInfo.setUpdNo(TssSession.getInfo().getUserNo());
|
|
|
goodsDao.saveGoodsNotiInfo(goodsNotiInfo);
|
|
|
index++;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 상품 품목 변경 저장
|
|
|
+ *
|
|
|
+ * @param goodsList
|
|
|
+ * @return
|
|
|
+ * @author eskim
|
|
|
+ * @since 2021. 01. 24
|
|
|
+ */
|
|
|
+ @Transactional("shopTxnManager")
|
|
|
+ //@CacheEvict(value = "cate", allEntries = true)
|
|
|
+ public void saveItemKindChange(Collection<Goods> goodsList) {
|
|
|
+ for (Goods goods : goodsList) {
|
|
|
+ goods.setRegNo(TssSession.getInfo().getUserNo());
|
|
|
+ goods.setUpdNo(TssSession.getInfo().getUserNo());
|
|
|
+ goods.setItemkindCd(goods.getItemkindCd().toUpperCase());
|
|
|
+ // 품목확인
|
|
|
+ Itemkind itemkind = new Itemkind();
|
|
|
+ itemkind.setItemkindCd(goods.getItemkindCd());
|
|
|
+ itemkind.setUseYn("Y");
|
|
|
+ Collection<Itemkind> itemkindList = goodsDao.getItemkindList(itemkind);
|
|
|
+ if (itemkindList == null || itemkindList.isEmpty()) {
|
|
|
+ throw new IllegalStateException(goods.getGoodsCd() + " 상품의 품목코드를 확인해주세요.");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 상품이력
|
|
|
+ goodsDao.createGoodsHst(goods);
|
|
|
+ // 품목변경
|
|
|
+ goodsDao.updateGoodItemKindCd(goods);
|
|
|
+
|
|
|
+ // 검색어 변경
|
|
|
+ String goodsSnm = goodsDao.getGoodsSnm(goods.getGoodsCd());
|
|
|
+ Goods tmpGoods = goodsDao.getGoods(goods);
|
|
|
+ if (tmpGoods != null && !StringUtils.isBlank(tmpGoods.getGoodsSnm1())) {
|
|
|
+ String[] arrGoodsSnm = tmpGoods.getGoodsSnm1().split(";");
|
|
|
+ StringBuilder tempGoodsSnm = new StringBuilder();
|
|
|
+ for (String loopGoodsSnm : arrGoodsSnm) {
|
|
|
+ if (goodsSnm.toUpperCase().indexOf(loopGoodsSnm.toUpperCase()) <= -1) {
|
|
|
+ tempGoodsSnm.append(loopGoodsSnm).append(";");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ goods.setGoodsSnm(tempGoodsSnm.toString() + goodsSnm);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ goods.setGoodsSnm(goodsSnm);
|
|
|
+ }
|
|
|
+ goodsDao.updateGoodsSnm(goods);
|
|
|
+
|
|
|
+ //상품 등록후에는 고시정보는 품목과 상관없이 변경처리 가능하게
|
|
|
+// Collection<GoodsNotiInfo> goodsNotiInfoList = goodsDao.getNewNotiInfo(goods);
|
|
|
+// goodsDao.deleteGoodsNotiInfo(goods);
|
|
|
+//
|
|
|
+// for (GoodsNotiInfo goodsNotiInfo : goodsNotiInfoList) {
|
|
|
+// goodsNotiInfo.setRegNo(TssSession.getInfo().getUserNo());
|
|
|
+// goodsNotiInfo.setUpdNo(TssSession.getInfo().getUserNo());
|
|
|
+// goodsNotiInfo.setGoodsCd(goods.getGoodsCd());
|
|
|
+// goodsDao.saveGoodsNotiInfo(goodsNotiInfo);
|
|
|
+// }
|
|
|
+
|
|
|
+ // 품목변경시 카테고리 전시카테고리 변경
|
|
|
+ GoodsCategory goodsCategory = new GoodsCategory();
|
|
|
+ goodsCategory.setRegNo(TssSession.getInfo().getUserNo());
|
|
|
+ goodsCategory.setUpdNo(TssSession.getInfo().getUserNo());
|
|
|
+ goodsCategory.setGoodsCd(goods.getGoodsCd());
|
|
|
+ goodsCategory.setCateType("G031_10"); //상품분류카테고리
|
|
|
+ displayService.deleteGoodsCategory(goodsCategory);
|
|
|
+ goodsDao.createCategoryGoods(goods);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|