李宇
2021-01-12 fce41585f6c4e09c12c7e2a3150d4dfbf1f46bb0
src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
@@ -18,6 +18,7 @@
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.primefaces.context.RequestContext;
import org.primefaces.event.SelectEvent;
import org.primefaces.event.TabChangeEvent;
import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;
import org.primefaces.model.StreamedContent;
@@ -126,6 +127,7 @@
   private String reagentLogId;
   private String userName;
   private Integer tabValue = 0;
   private List<SysReagent> reagentSelectList;
   private List<String> showCodes;
@@ -229,6 +231,8 @@
    * 选中的list
    */
   private List<OpeApplyReserve> selectedListForPerson;
   private List<OpeApplyReserve> selectedTmpOrderList;
   private List<OpeApplyReserve> trulySelectedOrderList;
   /**
    * 条形码对话框中选择的条形码集合
@@ -387,9 +391,40 @@
      }
   }
   public void addOrder() {
      logger.info("WarehouseStockMngController onUseBtnClick start");
      if (this.selectedListForPerson == null || this.selectedListForPerson.size() == 0) {
         FacesUtils.warn("请选择数据。");
         return;
      }
      if (selectedTmpOrderList !=null && selectedTmpOrderList.size()>0){
         ArrayList<OpeApplyReserve> tmp = new ArrayList<>();
         selectedListForPerson.forEach(opeApplyReserve -> {
            AtomicBoolean flag = new AtomicBoolean(false);
            selectedTmpOrderList.forEach(opeApplyReserve1 -> {
               if (opeApplyReserve.getId().equals(opeApplyReserve1.getId())){
                  flag.set(true);
               }
            });
            if(!flag.get()) {
               tmp.add(opeApplyReserve);
            }
         });
         selectedTmpOrderList.addAll(tmp);
      }else{
         selectedTmpOrderList = new ArrayList<>();
         selectedTmpOrderList.addAll(selectedListForPerson);
      }
   }
   public void  clear(){
      selectedTmpList = null;
   }
   public void  clearOrderTmp(){
      selectedTmpOrderList = null;
   }
   public void cancel(){
@@ -403,19 +438,46 @@
         return;
      }
         ArrayList<Integer> indexs = new ArrayList<>();
      for (int i =0;i<trulySelectedList.size();i++){
         for (int j = 0; j < selectedTmpList.size(); j++) {
            if(trulySelectedList.get(i).getId().equals(selectedTmpList.get(j).getId()))
            {
               indexs.add(i);
            }
         }
      }
         ArrayList<Object> indexs = new ArrayList<>();
        for (OpeWarehouseReserve warehouseReserve : trulySelectedList) {
            for (OpeWarehouseReserve opeWarehouseReserve : selectedTmpList) {
                if (warehouseReserve.getId().equals(opeWarehouseReserve.getId())) {
                    indexs.add(warehouseReserve);
                }
            }
        }
      if (indexs.size()>0){
         indexs.forEach(index -> {
            selectedTmpList.remove(selectedTmpList.get(index));
         indexs.forEach(obj -> {
            selectedTmpList.remove(obj);
         });
      }
   }
   public void cancelOrderTmp(){
      if (trulySelectedOrderList == null || trulySelectedOrderList.size()<=0){
         FacesUtils.info("至少选择一个");
         return;
      }
      if (selectedTmpOrderList == null || selectedTmpOrderList.size()<=0){
         FacesUtils.info("至少选择一个");
         return;
      }
      ArrayList<Object> indexs = new ArrayList<>();
        for (OpeApplyReserve opeApplyReserve : trulySelectedOrderList) {
            for (OpeApplyReserve applyReserve : selectedTmpOrderList) {
                if (opeApplyReserve.getId().equals(applyReserve.getId())) {
                    indexs.add(opeApplyReserve);
                }
            }
        }
      if (indexs.size()>0){
         indexs.forEach(obj -> {
            selectedTmpOrderList.remove(obj);
         });
      }
@@ -430,6 +492,14 @@
      this.menuController.goToPage(Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW, Constants.PAGE_WAREHOUSE_STOCK_MNG);
   }
//
   public void onUseBtnClickOrderTmp(){
      if (selectedTmpOrderList == null || selectedTmpOrderList.size()<=0){
         FacesUtils.info("至少选择一个");
         return;
      }
      this.menuController.goToPage(Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW_PERSON, Constants.PAGE_WAREHOUSE_STOCK_MNG);
   }
   public void onUseBtnClickForPerson() {
      logger.info("WarehouseStockMngController onUseBtnClickForPerson start");
@@ -496,7 +566,7 @@
            }
         }
         // 将当前选择条形码保存到库存中
         for (OpeApplyReserve opeApplyReserve : this.selectedListForPerson) {
         for (OpeApplyReserve opeApplyReserve : this.selectedTmpOrderList) {
            if (opeApplyReserve.getId().equals(this.selectedOpeApplyReserve.getId())) {
               OpeWarehouseReserve wa=opeWarehouseReserveService.getOpeWarehouseReserve(opeApplyReserve.getReagent().getId(),opeApplyReserve.getArticleNumber());
               if(this.useNum > wa.getReserve())
@@ -578,16 +648,20 @@
         // 将当前选择条形码保存到库存中
         List<String> codeList=new ArrayList<>();
         for (OpeApplyReserve opeApplyReserve : this.selectedListForPerson) {
         for (OpeApplyReserve opeApplyReserve : this.selectedTmpOrderList) {
            if (opeApplyReserve.getId().equals(this.selectedOpeApplyReserve.getId())) {
               OpeWarehouseReserve wa=opeWarehouseReserveService.getOpeWarehouseReserve(opeApplyReserve.getReagent().getId(),opeApplyReserve.getArticleNumber());
               if(wa==null){
                  wa=new OpeWarehouseReserve();
                  wa.setReserve(0);
               }
               if(this.useNum > wa.getReserve())
               {
                  FacesUtils.warn("库存不够,请确认或申购!");
//               OpeWarehouseReserve wa=opeWarehouseReserveService.getOpeWarehouseReserve(opeApplyReserve.getReagent().getId(),opeApplyReserve.getArticleNumber());
//               if(wa==null){
//                  wa=new OpeWarehouseReserve();
//                  wa.setReserve(0);
//               }
//               if(this.useNum > wa.getReserve())
//               {
//                  FacesUtils.warn("库存不够,请确认或申购!");
//                  return;
//               }
               if (this.useNum+opeApplyReserve.getUsed() > opeApplyReserve.getNum()){
                  FacesUtils.warn("领用数量超出申请数量!");
                  return;
               }
               opeApplyReserve.setSelectNum(useNum);
@@ -665,7 +739,7 @@
         }
         List<String> codeList=new ArrayList<>();
         for (OpeWarehouseReserve opeWarehouseReserve : this.selectedList) {
         for (OpeWarehouseReserve opeWarehouseReserve : this.selectedTmpList) {
            if (opeWarehouseReserve.getId().equals(this.selectedOpeWarehouseReserve.getId())) {
               if(this.useNum > opeWarehouseReserve.getReserve())
               {
@@ -713,7 +787,7 @@
         System.out.println("====onYesBtnClick======");
         // 将当前选择条形码保存到库存中
         for (OpeWarehouseReserve opeWarehouseReserve : this.selectedList) {
         for (OpeWarehouseReserve opeWarehouseReserve : this.selectedTmpList) {
            if (opeWarehouseReserve.getId().equals(this.selectedOpeWarehouseReserve.getId())) {
               if(this.useNum > opeWarehouseReserve.getReserve())
               {
@@ -737,11 +811,23 @@
      }
   }
   public void onTabChange(TabChangeEvent event) {
      if ("firstTab".equals(event.getTab().getId())) {
         tabValue = 0;
      }else{
         tabValue = 1;
      }
   }
   public void onCancelBtnClick() {
      this.selectedTmpOrderList = null;
      this.selectedTmpList = null;
      this.menuController.backToPage();
   }
   public void onClose(){
      this.selectedTmpOrderList = null;
      this.selectedTmpList = null;
      this.menuController.backToPage();
   }
@@ -754,7 +840,7 @@
   public void onSaveBtnClickForPerson(){
      try {
         if (this.selectedListForPerson == null || this.selectedListForPerson.size() == 0) {
         if (this.selectedTmpOrderList == null || this.selectedTmpOrderList.size() == 0) {
            FacesUtils.warn("请选择申领试剂。");
            return;
         }
@@ -766,7 +852,7 @@
         List<OpeApplyReserve> list=new ArrayList<>();
         List<OpeApplyReserve> list2=new ArrayList<>();
         //int size = 0;
         for(OpeApplyReserve app:this.selectedListForPerson){
         for(OpeApplyReserve app:this.selectedTmpOrderList){
            if(app.getFlag()==1){
               list.add(app);
            }else {
@@ -970,7 +1056,7 @@
   }
   public  void  onSaveBtnClick() {
      try {
         if (this.selectedList == null || this.selectedList.size() == 0) {
         if (this.selectedTmpList == null || this.selectedTmpList.size() == 0) {
            FacesUtils.warn("请选择申领试剂。");
            return;
         }
@@ -995,7 +1081,7 @@
         int sum = 0;
         List<OpeWarehouseReserve> list=new ArrayList<>();
         List<OpeWarehouseReserve> list2=new ArrayList<>();
         for (OpeWarehouseReserve selectWarehouseReserve : this.selectedList) {
         for (OpeWarehouseReserve selectWarehouseReserve : this.selectedTmpList) {
            if(selectWarehouseReserve.getFlag()==1){
               list.add(selectWarehouseReserve);
            }else{
@@ -2120,4 +2206,29 @@
   public void setShowCodes(List<String> showCodes) {
      this.showCodes = showCodes;
   }
   public List<OpeApplyReserve> getSelectedTmpOrderList() {
      return selectedTmpOrderList;
   }
   public void setSelectedTmpOrderList(List<OpeApplyReserve> selectedTmpOrderList) {
      this.selectedTmpOrderList = selectedTmpOrderList;
   }
   public List<OpeApplyReserve> getTrulySelectedOrderList() {
      return trulySelectedOrderList;
   }
   public void setTrulySelectedOrderList(List<OpeApplyReserve> trulySelectedOrderList) {
      this.trulySelectedOrderList = trulySelectedOrderList;
   }
   public Integer getTabValue() {
      return tabValue;
   }
   public void setTabValue(Integer tabValue) {
      this.tabValue = tabValue;
   }
}