package com.ese.model.dao; import com.ese.model.db.MSLocationModel; import com.ese.utils.Utils; import org.hibernate.Criteria; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Repository; import java.util.ArrayList; import java.util.List; @Repository public class LocationDAO extends GenericDAO<MSLocationModel, Integer>{ public List<MSLocationModel> getLocationOrderByUpdateDate() { log.debug("getLocationOrderByUpdateDate()."); List<MSLocationModel> locationModelList = Utils.getEmptyList(); try{ Criteria criteria = getCriteria(); criteria.add(Restrictions.eq("isValid", 1)); criteria.addOrder(Order.desc("updateDate")); locationModelList = Utils.safetyList(criteria.list()); log.debug("locationModels Size : {}", locationModelList.size()); return locationModelList; } catch (Exception e){ log.debug("Exception : {}", e); return locationModelList; } } public void deleteByUpdate(final MSLocationModel model) throws Exception { model.setIsValid(0); //0 is flag for delete model.setUpdateDate(Utils.currentDate()); update(model); } public List<MSLocationModel> findOrderByLocationCodeOrLocationName(String key){ log.debug("findOrderByLocationCodeOrLocationName(). {}", key); List<MSLocationModel> msLocationModels = Utils.getEmptyList(); try{ Criteria criteria = getCriteria(); Criterion locationCode = Restrictions.like("locationBarcode", "%" + key.trim() + "%"); Criterion locationName = Restrictions.like("locationName", "%"+key.trim()+"%"); criteria.add(Restrictions.or(locationCode,locationName)); criteria.addOrder(Order.desc("updateDate")); msLocationModels = Utils.safetyList(criteria.list()); } catch (Exception e){ log.debug("Exception error findOrderByLocationCodeOrLocationName : ", e); } log.debug("msLocationModels Size : {}", msLocationModels.size()); return msLocationModels; } public List<MSLocationModel> findByWarehouseIdAndLocationCode(int warehouseId, String locationCode){ List<MSLocationModel> msLocationModels = new ArrayList<MSLocationModel>(); try{ Criteria criteria = getCriteria(); criteria.add(Restrictions.eq("msWarehouseModel.id",warehouseId)); criteria.add(Restrictions.eq("locationBarcode",locationCode)); criteria.add(Restrictions.eq("isValid", 1)); msLocationModels = Utils.safetyList(criteria.list()); } catch (Exception e){ log.debug("Exception error findOrderByLocationCodeOrLocationName : ", e); } log.debug("msLocationModels Size : {}", msLocationModels.size()); return msLocationModels; } public List<MSLocationModel> findByWarehouseId(int warehouseId){ List<MSLocationModel> msLocationModels = new ArrayList<MSLocationModel>(); try{ Criteria criteria = getCriteria(); criteria.add(Restrictions.eq("msWarehouseModel.id",warehouseId)); criteria.add(Restrictions.eq("isValid", 1)); msLocationModels = Utils.safetyList(criteria.list()); } catch (Exception e){ log.debug("Exception error findByWarehouseId : ", e); } log.debug("msLocationModels Size : {}", msLocationModels.size()); return msLocationModels; } }