Prechádzať zdrojové kódy

브랜드별로 판매전표번호를 생성되게 수정

gagamel 4 rokov pred
rodič
commit
90516242d0

+ 3 - 3
src/main/java/com/style24/batch/biz/dao/TsbStatisticsDao.java

@@ -52,13 +52,13 @@ public interface TsbStatisticsDao {
 	int createYesterdaySalesUploadList(String erpGb);
 
 	/**
-	 * 매출반영 총건수
+	 * 매출반영 브랜드 목록
 	 * @param erpGb - ERP구분(hsmk:한세MK, hsdr:한세드림)
 	 * @return
 	 * @author gagamel
-	 * @since 2021. 8. 27
+	 * @since 2021. 9. 3
 	 */
-	int getSalesUploadTotalCount(String erpGb);
+	Collection<String> getSalesUploadBrandList(String erpGb);
 
 	/**
 	 * 매출반영 목록

+ 9 - 18
src/main/java/com/style24/batch/biz/job/statistics/TsbSalesUploadJob.java

@@ -70,33 +70,24 @@ public class TsbSalesUploadJob extends TsbAbstractJob<String, String, String> {
 	 * @throws Exception
 	 */
 	private void uploadSales(String erpGb) throws Exception {
-		// 매출반영 총건수
-		int totCnt = statisticsService.getSalesUploadTotalCount(erpGb);
-		log.info("{}'s totCnt: {}", erpGb, totCnt);
+		// 매출반영 브랜드 목록
+		Collection<String> brandList = statisticsService.getSalesUploadBrandList(erpGb);
 
-		if (totCnt < 1) {
+		if (brandList == null || brandList.isEmpty()) {
+			log.info("매출반영할 브랜드 목록이 없습니다.");
 			return;
 		}
 
-		int totPage = totCnt / PAGE_SIZE;
-		log.info("{}'s totalPage: {}", erpGb, totPage);
-
-		if (totCnt % PAGE_SIZE > 0) {
-			totPage++;
-		}
-
-		for (int page = 0; page < totPage; page++) {
-			int limitStartRow = (page * PAGE_SIZE + 1) - 1;
+		for (String brandCd : brandList) {
 			Erp erp = new Erp();
 			erp.setErpGb(erpGb);
-			erp.setLimitStartRow(limitStartRow);
-			erp.setPageSize(PAGE_SIZE);
+			erp.setBrandCd(brandCd);
 
 			// 매출업로드 목록
 			Collection<GagaMap> uploadList = statisticsService.getSalesUploadList(erp);
 
 			if (uploadList == null || uploadList.isEmpty()) {
-				log.error("{}'s {} Page 매출반영할 데이터가 없습니다.", erpGb, (page + 1));
+				log.error("{}-{} 브랜드의 매출반영할 데이터가 없습니다.", erpGb, brandCd);
 				continue;
 			}
 
@@ -114,14 +105,14 @@ public class TsbSalesUploadJob extends TsbAbstractJob<String, String, String> {
 			GagaMap salesMap = hansaeErp.uploadErpSales(erpGb, uploadList);
 
 			if (salesMap == null || salesMap.isEmpty()) {
-				log.error("{}'s {} Page 매출반영결과 데이터가 없습니다. 한세 ERP 시스템담당자에게 문의해 주세요.", erpGb, (page + 1));
+				log.error("{}-{} 브랜드의 매출반영결과 데이터가 없습니다. 한세 ERP 시스템담당자에게 문의해 주세요.", erpGb, brandCd);
 				continue;
 			}
 
 			// 매출반영결과 처리
 			statisticsService.updateSalesUploadResult(erpGb, salesMap);
 
-			log.info("{}'s {} Page sales uploaded successfully!", erpGb, (page + 1));
+			log.info("{}-{} 브랜드의 매출반영 업로드 성공", erpGb, brandCd);
 		}
 	}
 

+ 4 - 4
src/main/java/com/style24/batch/biz/service/TsbStatisticsService.java

@@ -85,14 +85,14 @@ public class TsbStatisticsService {
 	}
 
 	/**
-	 * 매출반영 총건수
+	 * 매출반영 브랜드 목록
 	 * @param erpGb - ERP구분(hsmk:한세MK, hsdr:한세드림)
 	 * @return
 	 * @author gagamel
-	 * @since 2021. 8. 27
+	 * @since 2021. 9. 3
 	 */
-	public int getSalesUploadTotalCount(String erpGb) {
-		return statisticsDao.getSalesUploadTotalCount(erpGb);
+	public Collection<String> getSalesUploadBrandList(String erpGb) {
+		return statisticsDao.getSalesUploadBrandList(erpGb);
 	}
 
 	/**

+ 10 - 6
src/main/java/com/style24/persistence/mybatis/shop/TsbStatistics.xml

@@ -971,6 +971,7 @@
 		     , CD_STYLE
 		     , CD_COLOR
 		     , CD_SIZE
+		     , BRAND_CD
 		     , QT_SALE
 		     , AM_ACSALE
 		     , DS_REMARK
@@ -982,6 +983,7 @@
 		     , CD_STYLE
 		     , CD_COLOR
 		     , CD_SIZE
+		     , BRAND_CD
 		     , QT_SALE
 		     , AM_ACSALE
 		     , ''         AS DS_REMARK
@@ -994,6 +996,7 @@
 		             , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)       AS CD_STYLE /*ERP스타일코드*/
 		             , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)       AS CD_COLOR /*ERP색상코드*/
 		             , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3)) AS CD_SIZE  /*ERP사이즈코드*/
+		             , G.BRAND_CD                                          /*브랜드코드*/
 		             , SUM(CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY /*판매-배송중*/
 		                             ELSE ODIH.CNCL_RTN_QTY /*환입-반품완료,환입-교환완료*/
 		                        END AS SIGNED INT))            AS QT_SALE  /*판매수량*/
@@ -1014,6 +1017,7 @@
 		        INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
 		        INNER JOIN TB_ORDER O ON ODIH.ORD_NO = O.ORD_NO
 		        INNER JOIN TB_SUPPLY_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
+		        INNER JOIN TB_GOODS G ON ODIH.ITEM_CD = G.GOODS_CD
 		        LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
 		        WHERE  1 = 1
 		        AND    ODIH.REG_DT <![CDATA[>=]]> DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
@@ -1033,6 +1037,7 @@
 		                , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)
 		                , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)
 		                , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3))
+		                , G.BRAND_CD
 		       ) ODIH
 		WHERE  QT_SALE <![CDATA[<>]]> 0
 		AND    NOT EXISTS (SELECT 1
@@ -1046,10 +1051,10 @@
 		                  )
 	</insert>
 	
-	<!-- 매출반영 총건수 조회 -->
-	<select id="getSalesUploadTotalCount" parameterType="String" resultType="int">
-		/* TsbStatistics.getSalesUploadTotalCount */
-		SELECT COUNT(*) AS CNT
+	<!-- 매출반영 브랜드 목록 -->
+	<select id="getSalesUploadBrandList" parameterType="String" resultType="String">
+		/* TsbStatistics.getSalesUploadBrandList */
+		SELECT DISTINCT BRAND_CD
 		FROM   TB_HANSAE_SALES
 		WHERE  ERP_GB = #{erpGb}
 		AND    REG_DT <![CDATA[>=]]> CURRENT_DATE() /*당일에 등록된 넘*/
@@ -1059,7 +1064,6 @@
 	<!-- 매출반영 목록 -->
 	<select id="getSalesUploadList" parameterType="Erp" resultType="paramMap">
 		/* TsbStatistics.getSalesUploadList */
-		<include refid="selectForPagingHeader"/>
 		SELECT DT_SALE
 		     , TP_SALE
 		     , CD_STYLE
@@ -1072,8 +1076,8 @@
 		WHERE  ERP_GB = #{erpGb}
 		AND    REG_DT <![CDATA[>=]]> CURRENT_DATE() /*당일에 등록된 넘*/
 		AND    REG_DT <![CDATA[<]]> DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY) /*당일에 등록된 넘*/
+		AND    BRAND_CD = #{brandCd}
 		ORDER  BY DT_SALE, TP_SALE, CD_STYLE, CD_COLOR, CD_SIZE
-		<include refid="selectForPagingFooter"/>
 	</select>
 	
 	<!-- 매출반영I/F번호 조회 -->