View Javadoc

1   package org.kuali.ole.batch.impl;
2   
3   import org.apache.log4j.Logger;
4   import org.kuali.ole.OLEConstants;
5   import org.kuali.ole.batch.service.BatchProcessDeleteService;
6   import org.kuali.ole.deliver.bo.OleDeliverRequestBo;
7   import org.kuali.ole.deliver.bo.OleLoanDocument;
8   import org.kuali.ole.describe.service.DocstoreHelperService;
9   import org.kuali.ole.docstore.model.xmlpojo.ingest.Response;
10  import org.kuali.ole.select.businessobject.OleCopy;
11  import org.kuali.rice.krad.service.BusinessObjectService;
12  import org.kuali.rice.krad.service.KRADServiceLocator;
13  import java.util.*;
14  
15  
16  /**
17   * Created with IntelliJ IDEA.
18   * User: mjagan
19   * Date: 6/15/13
20   * Time: 4:40 PM
21   * To change this template use File | Settings | File Templates.
22   */
23  public class BatchProcessDeleteServiceImpl implements BatchProcessDeleteService {
24  
25      private static final Logger LOG = Logger.getLogger(BatchProcessDeleteServiceImpl.class);
26      private DocstoreHelperService docstoreHelperService;
27  
28  
29      private DocstoreHelperService getDocstoreHelperService() {
30          if (docstoreHelperService == null)
31              docstoreHelperService = new DocstoreHelperService();
32          return docstoreHelperService;
33      }
34  
35      @Override
36      public int performBatchDelete(List docBibIds, String profileField) throws Exception {
37          int count = 0;
38          List<Response> responseList = null;
39          if (docBibIds != null && docBibIds.size() > 0) {
40              responseList = getDocstoreHelperService().batchDeleteRecords(docBibIds);
41          }
42          if (responseList != null && responseList.size() > 0) {
43              count = responseList.get(0).getDocuments().size();
44          }
45  
46  
47          return count;
48      }
49  
50      public List getItemIdList(String bibId) throws Exception {
51          List itemIdList = new ArrayList(0);
52          itemIdList = getDocstoreHelperService().getItemIdList(bibId);
53          return itemIdList;
54      }
55  
56      public List getBibIdsForBatchDelete(String searchMrcFieldData, String profileFiled) throws Exception {
57          BusinessObjectService boService = KRADServiceLocator.getBusinessObjectService();
58          searchMrcFieldData = searchMrcFieldData.replace("\"", "'");
59          List bibIdList = getDocstoreHelperService().getBibIdsForBatchDelete(searchMrcFieldData, profileFiled);
60          if (bibIdList.size() == 1) {
61              Map<String, String> map = new HashMap<>();
62              map.put(OLEConstants.BIB_ID, (String) bibIdList.get(0));
63              List<OleCopy> listOfValues = (List<OleCopy>) boService.findMatching(OleCopy.class, map);
64              if (listOfValues.size() != 0) {
65                  return new ArrayList(0);
66              }
67              else {
68  
69                  List<String> itemIdList = getItemIdList((String) bibIdList.get(0));
70                  for(String itemId:itemIdList)   {
71                      Map<String, String> itemMap = new HashMap<>();
72                      itemMap.put("itemUuid", itemId);
73                      List<OleLoanDocument> oleLoanDocuments = (List<OleLoanDocument>) boService.findMatching(OleLoanDocument.class, itemMap);
74                      if(oleLoanDocuments.size() !=0){
75                          return new ArrayList(0);
76                      }
77                      else {
78                          Map<String, String> reqMap = new HashMap<>();
79                          reqMap.put("itemUuid", itemId);
80                          List<OleDeliverRequestBo> oleDeliverRequestBos = (List<OleDeliverRequestBo>) boService.findMatching(OleDeliverRequestBo.class, reqMap);
81                          if(oleDeliverRequestBos.size() != 0){
82                             return new ArrayList(0);
83                          }
84                      }
85  
86                  }
87              }
88          }
89  
90  
91          return bibIdList;
92      }
93  
94  }