jimingminlovefly

          統計

          最新評論

          案例-excel導入,數據導入數據庫

          一、二、三點如下:
          一、JxlExcelImportFacade
          package com.icicle.goldenfly.web.order.report;

          import java.io.File;
          import java.io.FileInputStream;
          import java.io.IOException;
          import java.io.InputStream;
          import java.text.DecimalFormat;
          import java.text.ParseException;
          import java.text.SimpleDateFormat;
          import java.util.ArrayList;
          import java.util.Calendar;
          import java.util.Date;
          import java.util.List;

          import org.apache.commons.lang.StringUtils;
          import org.apache.commons.lang.time.DateUtils;

          import common.Logger;

          import jxl.Cell;
          import jxl.CellType;
          import jxl.DateCell;
          import jxl.Sheet;
          import jxl.Workbook;
          import jxl.read.biff.BiffException;

          public abstract class JxlExcelImportFacade<T> {
           
           private static final Logger logger = Logger.getLogger(JxlExcelImportFacade.class);
           
           protected InputStream in;
           protected Workbook workbook;
           
           public void init(File file) throws BiffException, IOException{
            this.in = new FileInputStream(file);
            workbook = Workbook.getWorkbook(in);
           }
           
           public void init(InputStream in) throws BiffException, IOException{
            this.in = in;
            workbook = Workbook.getWorkbook(in); 
           }
           
           public Sheet getSheet(int index){
            return workbook.getSheet(index);
           }

           public abstract T readContent(Cell[] cells);
           
           public List<T> readContents(List<Cell[]> rows){
            List<T> result = new ArrayList<T>();
            for(Cell[] cells : rows){
             T content = readContent(cells);
             result.add(content);
            }
            return result;
           }
           
           public void close() throws IOException{
            workbook.close();
            in.close();
           }
           
           public boolean isEmpty(Cell[] cells){
            for(Cell cell : cells){
             if( cell != null && StringUtils.isNotEmpty(cell.getContents())){
              return false;
             }
            }
            return true;
           }
           
           public Number readNumber(Cell cell, String defaultFormat){
            String formatStr = defaultFormat;
            if(cell.getType().equals(CellType.NUMBER)){
             formatStr = cell.getCellFormat().getFormat().getFormatString();
             if(StringUtils.isEmpty(formatStr)){
              formatStr = defaultFormat;
             }
            }
            String content = readString(cell);
            try {
             return new DecimalFormat(formatStr).parse(content);
            } catch (ParseException e) {
             logger.error("NumberFormat:" + formatStr + " NumberString:" + content , e);
             return null;
            }
           }
           
           public Number readNumber(Cell[] cells, int index, String defaultFormat){
            if(cells.length > index){
             return readNumber(cells[index], defaultFormat);
            }
            return null;
           }
           
           public Date readDate(Cell cell, String defaultFormat){
            Date date = null;
            String content = readString(cell);
            try{
             if(cell.getType().equals(CellType.DATE)){
              if(cell instanceof DateCell){
               date = DateUtils.truncate(((DateCell)cell).getDate(), Calendar.DATE);
              }else{
               String formatStr = cell.getCellFormat().getFormat().getFormatString();
               try {
                date = new SimpleDateFormat(formatStr).parse(content);
               } catch (Exception e) {
                date = new SimpleDateFormat(defaultFormat).parse(content);
               }     
              }
             }else{
              date = new SimpleDateFormat(defaultFormat).parse(content);
             }   
            }catch(ParseException e){
             logger.error("Date:" + content + " Format:" + defaultFormat, e);
            }

            return date;
           }
           
           public Date readDate(Cell[] cells, int index, String defaultFormat){
            if(cells.length > index){
             return readDate(cells[index], defaultFormat);
            }
            return null;
           }
           
           public String readString(Cell cell){
            return cell.getContents();
           }
           
           public String readString(Cell[] cells, int index){
            if(cells.length > index){
             return readString(cells[index]);
            }
            return "";
           }
           
          }

          二、ImportBusTicketPrice

          package com.icicle.goldenfly.web.order.report;

          import java.math.BigDecimal;
          import java.util.ArrayList;
          import java.util.Date;
          import java.util.List;

          import jxl.Cell;
          import jxl.Sheet;

          import org.apache.commons.lang.StringUtils;

          import com.icicle.framework.member.client.MemberClientUtils;
          import com.icicle.framework.order.client.enums.BusTicketSource;
          import com.icicle.framework.order.client.models.BusTicketPrice;
          import com.icicle.goldenfly.bus.server.BusTicketList;
          /**
           * 車票價格導入   處理Excel數據
           * @author James pu
           *
           */
          public class ImportBusTicketPrice extends JxlExcelImportFacade<BusTicketPrice>{

           public List<BusTicketPrice> readContents(){
            List<BusTicketPrice> busTicketPriceList = new ArrayList<BusTicketPrice>();
            Sheet sheet = getSheet(0);
            int rows = sheet.getRows();
            for(int i = 1; i < rows; i++){
             Cell[] cells = sheet.getRow(i);
             if( !isEmpty(cells)){
              BusTicketPrice busTicketPrice = readContent(cells);
              busTicketPriceList.add(busTicketPrice);
             }
            }
            return busTicketPriceList;
           } 
           
           @Override
           public BusTicketPrice readContent(Cell[] cells) {  
            //來源
            String source = StringUtils.defaultString(readString(cells, 0));
            //起始站點代碼
            String fromBusStop = StringUtils.defaultString(readString(cells, 1));  
            //目的站點代碼
            String toBusStop = StringUtils.defaultString(readString(cells, 2));  
               //單程  賣價
            double priceOfSingle =MemberClientUtils.getFirstNotNull(readNumber(cells, 3, "###0.00"), 0).doubleValue();
            //雙程 賣價
            double priceOfRound =MemberClientUtils.getFirstNotNull(readNumber(cells, 4, "###0.00"), 0).doubleValue();
            //單程 買價
            double dealPriceOfSingle =MemberClientUtils.getFirstNotNull(readNumber(cells, 5, "###0.00"), 0).doubleValue();
            //雙程 買價
            double dealPriceOfRound =MemberClientUtils.getFirstNotNull(readNumber(cells, 6, "###0.00"), 0).doubleValue();
            //單程 門市價
            double realPriceOfSingle =MemberClientUtils.getFirstNotNull(readNumber(cells, 7, "###0.00"), 0).doubleValue();
            //雙程 門市價
            double realPriceOfRound =MemberClientUtils.getFirstNotNull(readNumber(cells, 8, "###0.00"), 0).doubleValue();
            //票數量
            Integer restNumber =MemberClientUtils.getFirstNotNull(readNumber(cells, 9, "###0"), 0).intValue();
            
            //有效期
            Date expiredDate=null;
            if(StringUtils.isNotEmpty(readString(cells,10))){
             expiredDate = readDate(cells,10, "yyyy-MM-dd");
            }
            //備注
            String remark = StringUtils.defaultString(readString(cells, 11));
            
            BusTicketPrice busTicketPrice = new BusTicketPrice();
            busTicketPrice.setSource(BusTicketSource.valueOf(source));
            busTicketPrice.setFromBusStop(fromBusStop);
            busTicketPrice.setFromBusStopDesc(BusTicketList.getStationDescByKey(fromBusStop));
            busTicketPrice.setToBusStop(toBusStop);
            busTicketPrice.setToBusStopDesc(BusTicketList.getStationDescByKey(toBusStop));
            busTicketPrice.setPriceOfSingle(BigDecimal.valueOf(priceOfSingle));
            busTicketPrice.setPriceOfRound(BigDecimal.valueOf(priceOfRound));
            busTicketPrice.setDealPriceOfSingle(BigDecimal.valueOf(dealPriceOfSingle));
            busTicketPrice.setDealPriceOfRound(BigDecimal.valueOf(dealPriceOfRound));
            busTicketPrice.setRealPriceOfSingle(BigDecimal.valueOf(realPriceOfSingle));
            busTicketPrice.setRealPriceOfRound(BigDecimal.valueOf(realPriceOfRound));
            busTicketPrice.setRestNumber(restNumber);
            busTicketPrice.setRemark(remark);
            busTicketPrice.setExpiredDate(expiredDate);
            
            return busTicketPrice;
           } 

          }

          三、HotNewsManagerEngine

          package com.icicle.framework.member.server.driver;

          import java.util.List;

          import org.apache.commons.beanutils.PropertyUtils;

          import com.icicle.framework.member.client.Principal;
          import com.icicle.framework.member.client.ReturnResult;
          import com.icicle.framework.member.client.criteria.GroupByResult;
          import com.icicle.framework.member.client.criteria.HotNewsCriteria;
          import com.icicle.framework.member.client.criteria.QuestionAnswerCriteria;
          import com.icicle.framework.member.client.criteria.QuestionCriteria;
          import com.icicle.framework.member.client.criteria.SetRestriction;
          import com.icicle.framework.member.client.driver.HotNewsManagerDriver;
          import com.icicle.framework.member.client.enums.ReturnCode;
          import com.icicle.framework.member.client.exceptions.ClientGenericException;
          import com.icicle.framework.member.client.models.Feedback;
          import com.icicle.framework.member.client.models.FreeTravel;
          import com.icicle.framework.member.client.models.FreeTravelHotel;
          import com.icicle.framework.member.client.models.FreeTravelOther;
          import com.icicle.framework.member.client.models.FreeTravelTraffic;
          import com.icicle.framework.member.client.models.HotNews;
          import com.icicle.framework.member.client.models.Question;
          import com.icicle.framework.member.client.models.QuestionAnswer;
          import com.icicle.framework.member.client.models.UploadImages;
          import com.icicle.framework.member.client.models.WebSiteComment;
          import com.icicle.framework.member.server.ApplicationContextLoader;
          import com.icicle.framework.member.server.Constants;
          import com.icicle.framework.member.server.service.BusTicketPriceService;
          import com.icicle.framework.member.server.service.FeedbackService;
          import com.icicle.framework.member.server.service.FreeTravelHotelService;
          import com.icicle.framework.member.server.service.FreeTravelOtherService;
          import com.icicle.framework.member.server.service.FreeTravelService;
          import com.icicle.framework.member.server.service.FreeTravelTrafficService;
          import com.icicle.framework.member.server.service.HotNewsService;
          import com.icicle.framework.member.server.service.QuestionAnswerService;
          import com.icicle.framework.member.server.service.QuestionService;
          import com.icicle.framework.member.server.service.UploadImageService;
          import com.icicle.framework.member.server.service.WebSiteCommentService;
          import com.icicle.framework.order.client.criteria.FeedbackCriteria;
          import com.icicle.framework.order.client.criteria.FreeTravelCriteria;
          import com.icicle.framework.order.client.criteria.WebSiteCommentCriteria;
          import com.icicle.framework.order.client.enums.BusTicketSource;
          import com.icicle.framework.order.client.models.BusTicketPrice;
          import com.icicle.goldenfly.bus.client.criteria.BusTicketPriceCriteria;

          public class HotNewsManagerEngine implements HotNewsManagerDriver {

           private HotNewsService hotNewsService;
           private WebSiteCommentService webSiteCommentService;
           private QuestionService questionService;
           private QuestionAnswerService questionAnswerService;
           private FeedbackService feedbackService;
           private BusTicketPriceService busTicketPriceService;
           private FreeTravelService freeTravelService;
           private UploadImageService uploadImageService;
           private FreeTravelOtherService freeTravelOtherService;
           private FreeTravelHotelService freeTravelHotelService;
           private FreeTravelTrafficService freeTravelTrafficService;

           public HotNewsManagerEngine(HotNewsService hotNewsService,
             WebSiteCommentService webSiteCommentService,
             QuestionService questionService,
             QuestionAnswerService questionAnswerService,
             FeedbackService feedbackService,
             BusTicketPriceService busTicketPriceService,
             FreeTravelService freeTravelService,
             UploadImageService uploadImageService,
             FreeTravelOtherService freeTravelOtherService,FreeTravelHotelService freeTravelHotelService,FreeTravelTrafficService freeTravelTrafficService) {
            this.hotNewsService = hotNewsService;
            this.webSiteCommentService = webSiteCommentService;
            this.questionService = questionService;
            this.questionAnswerService = questionAnswerService;
            this.feedbackService = feedbackService;
            this.busTicketPriceService = busTicketPriceService;
            this.freeTravelService = freeTravelService;
            this.uploadImageService = uploadImageService;
            this.freeTravelOtherService = freeTravelOtherService;
            this.freeTravelHotelService = freeTravelHotelService;
            this.freeTravelTrafficService = freeTravelTrafficService;
           }

           public HotNewsManagerEngine() {
            hotNewsService = (HotNewsService) ApplicationContextLoader
              .getApplicationContext().getBean(Constants.HOTNEWS_SERVICE);
            webSiteCommentService = (WebSiteCommentService) ApplicationContextLoader
              .getApplicationContext().getBean(
                Constants.WEBSITE_COMMENT_SERVICE);
            questionService = (QuestionService) ApplicationContextLoader
              .getApplicationContext().getBean(Constants.QUESTION_SERVICE);
            questionAnswerService = (QuestionAnswerService) ApplicationContextLoader
              .getApplicationContext().getBean(
                Constants.QUESTION_ANSWER_SERVICE);
            feedbackService = (FeedbackService) ApplicationContextLoader
              .getApplicationContext().getBean(Constants.FEEDBACK_SERVICE);
            busTicketPriceService = (BusTicketPriceService) ApplicationContextLoader
              .getApplicationContext().getBean(
                Constants.BUSTICKETPRICE_SERVICE);
            freeTravelService = (FreeTravelService) ApplicationContextLoader
              .getApplicationContext().getBean(Constants.FREETRAVEL_SERVICE);
            uploadImageService = (UploadImageService) ApplicationContextLoader
              .getApplicationContext().getBean(Constants.UPLOADIMAGE_SERVICE);
            freeTravelOtherService = (FreeTravelOtherService) ApplicationContextLoader
              .getApplicationContext().getBean(
                Constants.FREETRAVELOTHER_SERVICE);
            freeTravelHotelService = (FreeTravelHotelService) ApplicationContextLoader
            .getApplicationContext().getBean(
              Constants.FREETRAVELHOTEL_SERVICE);
            freeTravelTrafficService = (FreeTravelTrafficService) ApplicationContextLoader
            .getApplicationContext().getBean(
              Constants.FREETRAVELTRAFFIC_SERVICE);
           }

           public ReturnResult<Long> addHotNews(HotNews hotNews, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            hotNewsService.save(hotNews);
            return ReturnCode.NORMAL_OKAY.toResult(hotNews.getId());
           }

           public Long countHotNews(HotNewsCriteria criteria, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            return hotNewsService.count(criteria, HotNews.class);
           }

           public ReturnResult<?> deleteHotNews(Long newsId, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            hotNewsService.deleteHotNews(newsId);
            return ReturnCode.NORMAL_OKAY.toResult();
           }

           public List<HotNews> findHotNews(HotNewsCriteria criteria,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            return hotNewsService.find(criteria, HotNews.class);
           }

           public GroupByResult statisticsHotNews(HotNewsCriteria criteria,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            return hotNewsService.group(criteria, HotNews.class);
           }

           public ReturnResult<?> updateHotNews(HotNews hotNews, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            hotNewsService.update(hotNews);
            return ReturnCode.NORMAL_OKAY.toResult();
           }

           @Override
           public ReturnResult<Long> addWebSiteComment(WebSiteComment comment,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            webSiteCommentService.save(comment);
            return ReturnCode.NORMAL_OKAY.toResult(comment.getId());
           }

           @Override
           public Long countWebSiteComment(WebSiteCommentCriteria criteria,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            return webSiteCommentService.count(criteria, WebSiteComment.class);
           }

           @Override
           public ReturnResult<?> deleteWebSiteComment(Long commentId,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            webSiteCommentService.deleteComment(commentId);
            return ReturnCode.NORMAL_OKAY.toResult();
           }

           @Override
           public List<WebSiteComment> findWebSiteComment(
             WebSiteCommentCriteria criteria, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            return webSiteCommentService.find(criteria, WebSiteComment.class);
           }

           @Override
           public GroupByResult statisticsWebSiteComment(
             WebSiteCommentCriteria criteria, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            return webSiteCommentService.group(criteria, WebSiteComment.class);

           }

           @Override
           public ReturnResult<?> updateWebSiteComment(WebSiteComment comment,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            webSiteCommentService.update(comment);
            return ReturnCode.NORMAL_OKAY.toResult();
           }

           public ReturnResult<Long> addQuestion(Question question, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            questionService.save(question);
            return ReturnCode.NORMAL_OKAY.toResult(question.getId());
           }

           public ReturnResult<?> updateQuestion(Question question, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            questionService.update(question);
            return ReturnCode.NORMAL_OKAY.toResult();
           }

           public Long countQuestion(QuestionCriteria criteria, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            return questionService.count(criteria, Question.class);
           }

           public ReturnResult<?> deleteQuestion(Long questionId, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            questionService.deleteQuestion(questionId);
            return ReturnCode.NORMAL_OKAY.toResult();
           }

           public List<Question> findQuestion(QuestionCriteria criteria,
             Boolean lazyLoad, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            return questionService.findQuestion(criteria, lazyLoad);
           }

           public List<Question> findRelatedQuestions(Long questionId, Integer number,
             Boolean lazyLoad, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            return questionService.findRelatedQuestions(questionId, number,
              lazyLoad);
           }

           public ReturnResult<Long> answerQuestion(Long quesetionId,
             QuestionAnswer answer, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            return questionService.answerQuestion(quesetionId, answer);
           }

           public Long countQuestionAnswer(QuestionAnswerCriteria criteria,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            return questionAnswerService.count(criteria, QuestionAnswer.class);
           }

           public ReturnResult<?> deleteQuestionAnswer(Long answerId,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            questionAnswerService.deleteQuestionAnswer(answerId);
            return ReturnCode.NORMAL_OKAY.toResult();
           }

           public List<QuestionAnswer> findQuestionAnswer(
             QuestionAnswerCriteria criteria, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            return questionAnswerService.find(criteria, QuestionAnswer.class);
           }

           @Override
           public ReturnResult<Long> addFeedback(Feedback feedback, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            feedbackService.save(feedback);
            return ReturnCode.NORMAL_OKAY.toResult(feedback.getId());
           }

           @Override
           public Long countFeedback(FeedbackCriteria criteria, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            return feedbackService.count(criteria, Feedback.class);
           }


           public ReturnResult<Long> addFreeTravel(FreeTravel freeTravel,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            freeTravelService.save(freeTravel);
            return ReturnCode.NORMAL_OKAY.toResult(freeTravel.getId());
           }

           public ReturnResult<Long> addUploadImage(UploadImages uploadImage,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            uploadImageService.save(uploadImage);
            return ReturnCode.NORMAL_OKAY.toResult(uploadImage.getId());
           }
           
           public ReturnResult<Long> addFreeTravelOther(FreeTravelOther other, Principal principal) throws ClientGenericException
           {
            Principal.setInstance(principal);
            freeTravelOtherService.save(other);
            return ReturnCode.NORMAL_OKAY.toResult(other.getId());
           }
           
           public ReturnResult<Long> addFreeTravelHotel(FreeTravelHotel hotel, Principal principal) throws ClientGenericException
           {
            Principal.setInstance(principal);
            freeTravelHotelService.save(hotel);
            return ReturnCode.NORMAL_OKAY.toResult(hotel.getId());
           }
           
           public ReturnResult<Long> addFreeTravelTraffic(FreeTravelTraffic traffic, Principal principal) throws ClientGenericException
           {
            Principal.setInstance(principal);
            freeTravelTrafficService.save(traffic);
            return ReturnCode.NORMAL_OKAY.toResult(traffic.getId());
           }


           public Long countFreeTravel(FreeTravelCriteria criteria, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            return freeTravelService.count(criteria, FreeTravel.class);
           }

           @Override
           public ReturnResult<?> deleteFeedback(Long feedbackId, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            feedbackService.deleteFeedback(feedbackId);
            return ReturnCode.NORMAL_OKAY.toResult();
           }


           @Override
           public ReturnResult<?> deleteFreeTravel(Long freeTravelId,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            freeTravelService.deleteFreeTravel(freeTravelId);
            return ReturnCode.NORMAL_OKAY.toResult();
           }
           
           public ReturnResult<?> deleteUploadImage(Long imageId, Principal principal) throws ClientGenericException
           {
            Principal.setInstance(principal);
            uploadImageService.deleteUploadImage(imageId);
            return ReturnCode.NORMAL_OKAY.toResult();
           }
           
           public ReturnResult<?> deleteFreeTravelOther(Long otherId, Principal principal) throws ClientGenericException
           {
            Principal.setInstance(principal);
            freeTravelOtherService.deleteFreeTravelOther(otherId);
            return ReturnCode.NORMAL_OKAY.toResult();
           }
           
           public ReturnResult<?> deleteFreeTravelHotel(Long hotelId, Principal principal) throws ClientGenericException
           {
            Principal.setInstance(principal);
            freeTravelHotelService.deleteFreeTravelHotel(hotelId);
            return ReturnCode.NORMAL_OKAY.toResult();
           }

           @Override
           public List<Feedback> findFeedbackByList(FeedbackCriteria criteria,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            return feedbackService.find(criteria, Feedback.class);
           }


           public List<FreeTravel> findFreeTravelByList(FreeTravelCriteria criteria,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            return freeTravelService.find(criteria, FreeTravel.class);
           }

           public FreeTravel findFreeTravelById(FreeTravel freeTravel, Long freeTravelId ,Principal principal) throws ClientGenericException
           {
            Principal.setInstance(principal);
            return freeTravelService.getById(FreeTravel.class, freeTravelId);
           }
           /**
            * 更新反饋信息
            *
            * @param feedback
            * @param principal
            * @return
            * @throws ClientGenericException
            */
           @Override
           public ReturnResult<?> updateFreeTravel(FreeTravel freeTravel,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            freeTravelService.update(freeTravel);
            return ReturnCode.NORMAL_OKAY.toResult();
           }

           @Override
           public ReturnResult<?> updateFeedback(Feedback feedback, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            feedbackService.update(feedback);
            return ReturnCode.NORMAL_OKAY.toResult();
           }

           @Override
           public List<BusTicketPrice> findBusTicketPrice(
             BusTicketPriceCriteria criteria, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            return busTicketPriceService.find(criteria, BusTicketPrice.class);
           }

           @Override
           public ReturnResult<Integer> addBusTicketPrice(
             BusTicketPrice busTicketPrice, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            busTicketPriceService.save(busTicketPrice);
            return ReturnCode.NORMAL_OKAY.toResult(busTicketPrice.getId());
           }

           @Override
           public Long countBusTicketPrice(BusTicketPriceCriteria criteria,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            return busTicketPriceService.count(criteria, BusTicketPrice.class);
           }

           @Override
           public ReturnResult<?> deleteBusTicketPrice(Integer id, Principal principal)
             throws ClientGenericException {
            Principal.setInstance(principal);
            BusTicketPrice bean = new BusTicketPrice();
            bean.setId(id);
            busTicketPriceService.delete(bean);
            return ReturnCode.NORMAL_OKAY.toResult();
           }

           @Override
           public ReturnResult<?> updateBusTicketPrice(BusTicketPrice busTicketPrice,
             Principal principal) throws ClientGenericException {
            Principal.setInstance(principal);
            busTicketPriceService.update(busTicketPrice);
            return ReturnCode.NORMAL_OKAY.toResult();
           }

           @Override
           public String batchUpdateBusTicketPrice(
             List<BusTicketPrice> busTicketPriceList, Principal principal) {
            try {
             Principal.setInstance(principal);
             int s = 0, f = 0, t = 0;
             String msg = "";
             for (BusTicketPrice busTicketPrice : busTicketPriceList) {
              BusTicketSource source = busTicketPrice.getSource();
              String fromBusStop = busTicketPrice.getFromBusStop();
              String toBusStop = busTicketPrice.getToBusStop();
              if (source == null || source.getKey() == null) {
               s++;
               continue;
              }
              if (fromBusStop == null || "".equals(fromBusStop)) {
               f++;
               continue;
              }
              if (toBusStop == null || "".equals(toBusStop)) {
               t++;
               continue;
              }
              // 查詢
              BusTicketPriceCriteria criteria = new BusTicketPriceCriteria();
              criteria.setSource(SetRestriction.in(source));
              criteria.setFromBusStop(fromBusStop);
              criteria.setToBusStop(toBusStop);
              List<BusTicketPrice> list = busTicketPriceService.find(
                criteria, BusTicketPrice.class);
              if (list != null && list.size() > 0) {
               BusTicketPrice tempBean = list.get(0);
               Integer id = tempBean.getId();
               PropertyUtils.copyProperties(tempBean, busTicketPrice);
               tempBean.setId(id);
               busTicketPriceService.update(tempBean);
              } else {
               busTicketPriceService.save(busTicketPrice);
              }
             }
             if (s > 0) {
              msg += "有 " + s + " 條數據因為沒找到 [來源]字段信息導入失敗;";
             }
             if (f > 0) {
              msg += "有 " + f + " 條數據因為沒找到 [起始站點代碼]字段信息導入失敗;";
             }
             if (t > 0) {
              msg += "有 " + t + " 條數據因為沒找到 [目的站點代碼]字段信息導入失敗;";
             }
             return msg;
            } catch (Exception e) {
             e.printStackTrace();
             return "程序異常";
            }

           }

          }

           

          posted on 2011-11-04 17:15 計明敏 閱讀(185) 評論(0)  編輯  收藏 所屬分類: java

          主站蜘蛛池模板: 南安市| 静安区| 南投县| 张北县| 法库县| 海淀区| 云阳县| 乌拉特后旗| 襄汾县| 灵川县| 遂宁市| 介休市| 新密市| 革吉县| 江口县| 常德市| 邵东县| 临朐县| 乌兰察布市| 榆树市| 金山区| 伊吾县| 盐边县| 吉首市| 婺源县| 阿拉善左旗| 万安县| 丹凤县| 龙岩市| 腾冲县| 锡林浩特市| 崇左市| 莱西市| 麻江县| 阿尔山市| 洪江市| 紫云| 运城市| 梨树县| 冀州市| 新蔡县|