package com.ese.model.dao; import com.ese.model.db.AXCustomerConfirmTransModel; import com.ese.model.view.CustomerConfirmTransView; import com.ese.utils.Utils; import org.hibernate.SQLQuery; import org.hibernate.type.BigDecimalType; import org.hibernate.type.DateType; import org.hibernate.type.IntegerType; import org.hibernate.type.StringType; import org.springframework.stereotype.Repository; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @Repository public class AXCustomerConfirmTransDAO extends GenericDAO<AXCustomerConfirmTransModel, String> { public void updateStatusRunning(String saleId, String confirmId, Date confirmDate){ StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(" UPDATE ").append(getPrefix()).append(".ax_CustConfirmTrans SET ").append(getPrefix()).append(".ax_CustConfirmTrans.status = 2 "); stringBuilder.append(" WHERE ").append(getPrefix()).append(".ax_CustConfirmTrans.salesId = ").append("'").append(saleId).append("'"); stringBuilder.append(" AND ").append(getPrefix()).append(".ax_CustConfirmTrans.confirmId = ").append("'").append(confirmId).append("'"); stringBuilder.append(" AND ").append(getPrefix()).append(".ax_CustConfirmTrans.confirmDate = ").append("'").append(confirmDate).append("'"); log.debug("SQL ax_CustConfirmTrans : {}", stringBuilder.toString()); try { SQLQuery q = getSession().createSQLQuery(stringBuilder.toString()); q.executeUpdate(); } catch (Exception e) { log.debug("Exception : ", e); } } public void rollbackStatus(){ StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(" UPDATE ").append(getPrefix()).append(".ax_CustConfirmTrans SET ").append(getPrefix()).append(".ax_CustConfirmTrans.status = 1 "); stringBuilder.append(" WHERE ").append(getPrefix()).append(".ax_CustConfirmTrans.status = 2"); log.debug("SQL Roll Back ax_CustConfirmTrans : {}", stringBuilder.toString()); try { SQLQuery q = getSession().createSQLQuery(stringBuilder.toString()); q.executeUpdate(); } catch (Exception e) { log.debug("Exception : ", e); } } public void updateStatusFinish(String saleId, String confirmId, Date confirmDate){ StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(" UPDATE ").append(getPrefix()).append(".ax_CustConfirmTrans SET ").append(getPrefix()).append(".ax_CustConfirmTrans.status = 3 "); stringBuilder.append(" WHERE ").append(getPrefix()).append(".ax_CustConfirmTrans.salesId = ").append("'").append(saleId).append("'"); stringBuilder.append(" AND ").append(getPrefix()).append(".ax_CustConfirmTrans.confirmId = ").append("'").append(confirmId).append("'"); stringBuilder.append(" AND ").append(getPrefix()).append(".ax_CustConfirmTrans.confirmDate = ").append("'").append(confirmDate).append("'"); log.debug("SQL ax_CustConfirmTrans : {}", stringBuilder.toString()); try { SQLQuery q = getSession().createSQLQuery(stringBuilder.toString()); q.executeUpdate(); } catch (Exception e) { log.debug("Exception : ", e); } } // public List<AXCustomerConfirmTransModel> findByPrimaryKey(String saleId, String confirmId, Date confirmDate){ // List<AXCustomerConfirmTransModel> confirmTransModelList = Utils.getEmptyList(); // // log.debug("------------- {}", saleId); // log.debug("++++++++++++++ {}", confirmId); // log.debug("############ {}", confirmDate); // try { // Criteria criteria = getCriteria(); // criteria.add(Restrictions.eq("salesId", saleId)); // criteria.add(Restrictions.eq("confirmId", confirmId)); // criteria.add(Restrictions.eq("confirmDate", confirmDate)); // // confirmTransModelList = criteria.list(); // log.debug("axCustomerConfirmTransModel : {}", confirmTransModelList.toString()); // // } catch (Exception e) { // log.debug("Exception error findByPrimaryKey : ", e); // } // // return confirmTransModelList; // } public List<CustomerConfirmTransView> findByPrimaryKey(String saleId, String confirmId, Date confirmDate){ List<CustomerConfirmTransView> confirmTransModelList =new ArrayList<CustomerConfirmTransView>(); StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.append(" SELECT DISTINCT "); sqlBuilder.append(" ").append(getPrefix()).append(".ax_CustConfirmTrans.LineNum AS LINE_NUM,"); sqlBuilder.append(" ").append(getPrefix()).append(".ax_CustConfirmTrans.ItemId AS ITEM_ID,"); sqlBuilder.append(" ").append(getPrefix()).append(".ax_CustConfirmTrans.OrigSalesId AS ORIG_SALE_ID,"); sqlBuilder.append(" ").append(getPrefix()).append(".ax_CustConfirmTrans.Qty AS QTY,"); sqlBuilder.append(" ").append(getPrefix()).append(".ax_CustConfirmTrans.ConfirmDate AS CONFIRM_DATE,"); sqlBuilder.append(" ").append(getPrefix()).append(".ax_CustConfirmTrans.SalesUnit AS SALE_UNIT,"); sqlBuilder.append(" ").append(getPrefix()).append(".ax_CustConfirmTrans.DSG_SubGroupDescription AS GROUP_DESC,"); sqlBuilder.append(" ").append(getPrefix()).append(".ax_CustConfirmTrans.PIDescription AS PI_DESC,"); sqlBuilder.append(" ").append(getPrefix()).append(".ax_CustConfirmTrans.DSG_Ext_Item_NO AS EXT_ITEM_NO,"); sqlBuilder.append(" ").append(getPrefix()).append(".ax_CustConfirmTrans.Name AS NAME,"); sqlBuilder.append(" ").append(getPrefix()).append(".ax_CustConfirmTrans.DSG_PackingQty AS PACKING_QTY,"); sqlBuilder.append(" ").append(getPrefix()).append(".ax_CustConfirmTrans.salesUnitTxt AS SALE_UNIT_TXT,"); sqlBuilder.append(" ").append(getPrefix()).append(".ax_CustConfirmTrans.Cum AS CUM,"); sqlBuilder.append(" ").append(getPrefix()).append(".ax_CustConfirmTrans.inventtransid AS INVENTRANS_ID"); sqlBuilder.append(" FROM ").append(getPrefix()).append(".ax_CustConfirmTrans"); sqlBuilder.append(" WHERE ").append(getPrefix()).append(".ax_CustConfirmTrans.SalesId = '").append(saleId).append("' "); sqlBuilder.append(" AND ").append(getPrefix()).append(".ax_CustConfirmTrans.ConfirmId = '").append(confirmId).append("' "); sqlBuilder.append(" AND ").append(getPrefix()).append(".ax_CustConfirmTrans.ConfirmDate = '").append(confirmDate).append("'"); log.debug(sqlBuilder.toString()); try { SQLQuery query = getSession().createSQLQuery(sqlBuilder.toString()) .addScalar("LINE_NUM", BigDecimalType.INSTANCE) .addScalar("ITEM_ID", StringType.INSTANCE) .addScalar("ORIG_SALE_ID", StringType.INSTANCE) .addScalar("QTY", IntegerType.INSTANCE) .addScalar("CONFIRM_DATE", DateType.INSTANCE) .addScalar("SALE_UNIT", StringType.INSTANCE) .addScalar("GROUP_DESC", StringType.INSTANCE) .addScalar("PI_DESC", StringType.INSTANCE) .addScalar("EXT_ITEM_NO", StringType.INSTANCE) .addScalar("NAME", StringType.INSTANCE) .addScalar("PACKING_QTY", BigDecimalType.INSTANCE) .addScalar("SALE_UNIT_TXT", StringType.INSTANCE) .addScalar("CUM", BigDecimalType.INSTANCE) .addScalar("INVENTRANS_ID", StringType.INSTANCE); List<Object[]> objects = query.list(); for (Object[] entity : objects) { CustomerConfirmTransView confirmTransView = new CustomerConfirmTransView(); confirmTransView.setLineNum(Utils.parseBigDecimal(entity[0], BigDecimal.ZERO)); confirmTransView.setItemId(Utils.parseString(entity[1], "")); confirmTransView.setOrigSaleId(Utils.parseString(entity[2], "")); confirmTransView.setQty(Utils.parseInt(entity[3], 0)); confirmTransView.setShipDate(Utils.parseDate(entity[4], null)); confirmTransView.setSalesUnit(Utils.parseString(entity[5], "")); confirmTransView.setDSGSubGroupDescription(Utils.parseString(entity[6], "")); confirmTransView.setPIDescription(Utils.parseString(entity[7], "")); confirmTransView.setDSGExtItemNO(Utils.parseString(entity[8], "")); confirmTransView.setName(Utils.parseString(entity[9], "")); confirmTransView.setDSGPackingQty(Utils.parseBigDecimal(entity[10], BigDecimal.ZERO)); confirmTransView.setSalesUnitTxt(Utils.parseString(entity[11], "")); confirmTransView.setCum(Utils.parseBigDecimal(entity[12], BigDecimal.ZERO)); confirmTransView.setInventransId(Utils.parseString(entity[13])); confirmTransModelList.add(confirmTransView); } } catch (Exception e) { log.debug("Exception SQL findByPrimaryKey : {}", e); } return confirmTransModelList; } }