李宇
2021-11-12 af607e09de61badbaef57bc0d38002e48a44ac4c
src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
@@ -173,6 +173,8 @@
   @Value("${institute.name}")
   String instituteName;
   private boolean isExpired;
   private Hashtable printTable;
   public Hashtable getPrintTable() {
@@ -218,6 +220,8 @@
   //private boolean flag = false;
   //领用单号
   private String receiptNumber;
   //备注
   private String note;
   // 试剂库
    private LazyDataModel<SysReagent> reagentDataModel;
   // 直接入库试剂List
@@ -424,7 +428,8 @@
      System.out.println(getUser().getSeeFlag().getKey());
      //SysUser u=sysUserService.getSysUser(getUserId());
      //System.out.println(u);
      if (getUser().getSeeFlag().getKey() != SeeFlag.MANAGE.getKey()) {
      if (getUser().getSeeFlag().getKey() != SeeFlag.MANAGE.getKey()
            && getUser().getSeeFlag().getKey() != SeeFlag.LEADING.getKey()) {
         editFlag=0;
      }else{
         editFlag=1;
@@ -668,7 +673,11 @@
      checkTable = null;
      //
      this.userId = selectedTmpOrderList.get(0).getApplyUser();
      SysUser sysUser = sysUserService.getSysUser(this.userId);
      if (sysUser == null){
         FacesUtils.info("申领人不存在");
         return;
      }
      this.menuController.goToPage(Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW_PERSON, Constants.PAGE_WAREHOUSE_STOCK_MNG);
   }
@@ -799,7 +808,7 @@
      //变换条码
      btCodeChange();
   }
   /**
   * 取消一个仓库领取
   */
@@ -1074,6 +1083,7 @@
      this.selectedInputStorageTmpOrderList = null;
      this.endReagentCodeForPerson = null;
      this.startReagentCodeForPerson = null;
      this.laboratoryId = null;
      this.useNum = null;
      this.menuController.backToPage();
   }
@@ -1210,16 +1220,24 @@
         printTable = new Hashtable();
         int sum = 0;
         List<ApplyListDto> applyList = new ArrayList<>();
         Map applyPersonInfo = sysUserService.getUser(userId);
         SysUser applyPersonInfo = sysUserService.getUser(userId);
         if (applyPersonInfo == null) {
            FacesUtils.warn("申领人不存在或者申领人部门被删除。");
            return;
         }
         printTable.put("head", instituteName);
         printTable.put("title", "领用单");
         printTable.put("applyPerson", applyPersonInfo.get("name"));
         printTable.put("department", applyPersonInfo.get("meta_value"));
         printTable.put("applyPerson", applyPersonInfo.getName());
         printTable.put("department", applyPersonInfo.getDepartment());
         printTable.put("date", Utils.now("yyyy-MM-dd"));
         printTable.put("phone", applyPersonInfo.get("phone"));
         String receiptNum = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
         printTable.put("receiptNumber", receiptNum);
         printTable.put("project", applyPersonInfo.get("project"));
         if (StringUtils.isNotBlank(applyPersonInfo.getPhone())){
            printTable.put("phone", applyPersonInfo.getPhone());
         }
         if (StringUtils.isNotBlank(applyPersonInfo.getProject())){
            printTable.put("project", applyPersonInfo.getProject());
         }
         SysLaboratory lab = sysLaboratoryService.getSysLaboratory(laboratoryId);
         printTable.put("lab", lab.getName());
         this.receiptNumber = receiptNum;
@@ -1259,7 +1277,7 @@
    */
   public void associatedFlowReceiptNumber() {
      try {
         opeUseFlowService.updateReceiptNumberByCode(selectedTmpOrderList, receiptNumber);
         opeUseFlowService.updateReceiptNumberByCode(selectedTmpOrderList, receiptNumber, note);
         //弹出打印窗口
         RequestContext.getCurrentInstance().execute("document.getElementById('indirectPrint').click()");
      } catch (Exception e) {
@@ -1275,7 +1293,7 @@
   public void associatedFlowReceiptNumber2() {
      try {
         opeUseFlowService.updateReceiptNumberByCode2(selectedTmpList, receiptNumber);
         opeUseFlowService.updateReceiptNumberByCode2(selectedTmpList, receiptNumber,note);
         //弹出打印窗口
         RequestContext.getCurrentInstance().execute("document.getElementById('indirectPrint').click()");
      } catch (Exception e) {
@@ -1287,7 +1305,7 @@
   public void closeDialog() {
      try {
         opeUseFlowService.updateReceiptNumberByCode(selectedTmpOrderList, receiptNumber);
         opeUseFlowService.updateReceiptNumberByCode(selectedTmpOrderList, receiptNumber,note);
         onCancelBtnClick();
      } catch (Exception e) {
         logger.info(e.getMessage());
@@ -1297,7 +1315,7 @@
   public void closeDialog2() {
      try {
         opeUseFlowService.updateReceiptNumberByCode2(selectedTmpList, receiptNumber);
         opeUseFlowService.updateReceiptNumberByCode2(selectedTmpList, receiptNumber,note);
         onCancelBtnClick();
      } catch (Exception e) {
         logger.info(e.getMessage());
@@ -1487,14 +1505,22 @@
         printTable = null;
         printTable = new Hashtable();
         List<ApplyListDto> applyList = new ArrayList<>();
         Map applyPersonInfo = sysUserService.getUser(userId);
         SysUser applyPersonInfo = sysUserService.getUser(userId);
         if (applyPersonInfo == null) {
            FacesUtils.warn("申领人不存在或者申领人部门被删除。");
            return;
         }
         printTable.put("head", instituteName);
         printTable.put("title", "领用单");
         printTable.put("applyPerson", applyPersonInfo.get("name"));
         printTable.put("department", applyPersonInfo.get("meta_value"));
         printTable.put("applyPerson", applyPersonInfo.getName());
         printTable.put("department", applyPersonInfo.getDepartment());
         printTable.put("date", Utils.now("yyyy-MM-dd"));
         printTable.put("phone", applyPersonInfo.get("phone"));
         printTable.put("project", applyPersonInfo.get("project"));
         if (StringUtils.isNotBlank(applyPersonInfo.getPhone())){
            printTable.put("phone", applyPersonInfo.getPhone());
         }
         if (StringUtils.isNotBlank(applyPersonInfo.getProject())){
            printTable.put("project", applyPersonInfo.getProject());
         }
         SysLaboratory lab = sysLaboratoryService.getSysLaboratory(laboratoryId);
         String receiptNum = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
         printTable.put("receiptNumber", receiptNum);
@@ -1509,11 +1535,42 @@
            if(selectWarehouseReserve.getFlag()==1){
               list.add(selectWarehouseReserve);
            }else{
               if (selectWarehouseReserve.getWarehouseId() == null) {
                  FacesUtils.warn("仓库不存在。");
                  return;
               }
               list2.add(selectWarehouseReserve);
            }
         }
         //list2为补贴条码,检查条码重复
         ArrayList<String> checkList = new ArrayList<>();
         if (list2.size() > 0) {
            for (OpeWarehouseReserve owr : list2) {
               checkList.addAll(owr.getReagentCodes());
            }
         }
         Set<String> checkTable = new HashSet<>();
         if (checkList.size() > 0) {
            for (String reagentCode : checkList) {
               if (checkTable.contains(reagentCode)) {
                  throw new BusinessException(ExceptionEnumCode.PARAM_EXIST, "当前订单条码重复," + reagentCode);
               } else {
                  checkTable.add(reagentCode);
               }
            }
         }
         checkTable = null;
         checkList = null;
         if(list.size()>0&&list!=null){
            for (OpeWarehouseReserve selectWarehouseReserve : list) {
               Map reagentDetail = sysReagentService.getReagentDetail(selectWarehouseReserve.getReagentId());
               if (reagentDetail == null) {
                  throw new Exception("试剂有误,请联系管理员");
               }
               List<String> reagentCodes = selectWarehouseReserve.getReagentCodes();
               if (reagentCodes != null && reagentCodes.size() > 0)
                  for (String opeReagentStatusId : reagentCodes) {
@@ -1540,7 +1597,6 @@
                     //}
                  }
               ApplyListDto lis = new ApplyListDto();
               Map reagentDetail = sysReagentService.getReagentDetail(selectWarehouseReserve.getReagentId());
               lis.setNum(String.valueOf(selectWarehouseReserve.getSelectNum())); //数量
               lis.setMainMetering(String.format("%s%s", reagentDetail.get("main_metering"), reagentDetail.get("unit")));
               lis.setControlProducts((String) reagentDetail.get("controlProducts"));
@@ -1563,6 +1619,10 @@
            List<OpeApply> opeList=new ArrayList<>();
            //this.opeApplyService.getOpeApplyList(null,null,null,null,null)
            for(int i=0;i<list2.size();i++){
               Map reagentDetail = sysReagentService.getReagentDetail(list2.get(i).getReagentId());
               if (reagentDetail == null) {
                  throw new Exception("试剂有误,请联系管理员");
               }
               OpeApply opeApply=new OpeApply();
               opeApply.setArticleNumber(list2.get(i).getArticleNumber());
               opeApply.setHouseId(laboratoryId);
@@ -1582,7 +1642,6 @@
               this.opeLaboratoryReserveService.insert(lr);
               //opeList.add(this.opeApplyService.getOpeApply(list2.get(i).getId()));
               ApplyListDto lis = new ApplyListDto();
               Map reagentDetail = sysReagentService.getReagentDetail(list2.get(i).getReagentId());
               lis.setNum(String.valueOf(list2.get(i).getSelectNum())); //数量
               lis.setMainMetering(String.format("%s%s", reagentDetail.get("main_metering"), reagentDetail.get("unit")));
@@ -1595,7 +1654,7 @@
               sum += list2.get(i).getSelectNum();
            }
            this.opeWarehouseReserveService.reagentDStore4(opeList,userId);
            this.opeWarehouseReserveService.reagentDStore4(opeList,userId,receiptNum);
            for(int i=0;i<list2.size();i++){
               List<String> reagentCodes = opeReagentStatusService
@@ -1644,6 +1703,10 @@
         FacesUtils.info("申领成功。");
         RequestContext.getCurrentInstance().execute("PF('printDialog').show()");
//            this.menuController.goToPage(Constants.PAGE_WAREHOUSE_STOCK_MNG, Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW);
      } catch (BusinessException e) {
         logger.error(e.getMessage(), e);
         FacesUtils.warn(e.getMessage());
      } catch (Exception e) {
         logger.error(e.getMessage(), e);
         FacesUtils.warn("操作失败。");
@@ -1659,6 +1722,10 @@
                if (StringUtils.isBlank(opeApplyReserve.getArticleNumber())) {
                    throw new BusinessException(ExceptionEnumCode.PARAM_EXIST, opeApplyReserve.getReagent().getName() + ":批号不能为空");
                }
                SysReagent sysReagent = sysReagentService.getSysReagent(opeApplyReserve.getReagent().getId());
            if (sysReagent == null){
               throw new BusinessException(ExceptionEnumCode.PARAM_EXIST, opeApplyReserve.getReagent().getName() + ":被删除");
            }
            }
         //用来检验提交表单得试剂条码是否重复
@@ -1722,22 +1789,23 @@
               } catch (Exception e) {
                  logger.error(e);
               }
               selectedList = null;
               return list;
            }
            @Override
            public OpeWarehouseReserve getRowData(String rowKey) {
               Iterator<OpeWarehouseReserve> iterator = this.iterator();
               if (iterator != null) {
                  OpeWarehouseReserve su = null;
                  while (iterator.hasNext()) {
                     su = iterator.next();
                     if (rowKey.equals(su.getId())) {
                        return su;
                     }
                  }
               }
               return null;
//               Iterator<OpeWarehouseReserve> iterator = this.iterator();
//               if (iterator != null) {
//                  OpeWarehouseReserve su = null;
//                  while (iterator.hasNext()) {
//                     su = iterator.next();
//                     if (rowKey.equals(su.getId())) {
//                        return su;
//                     }
//                  }
//               }
               return opeWarehouseReserveService.getRowData(rowKey);
            }
         };
      }
@@ -1755,7 +1823,7 @@
               List<OpeApplyReserve> list = null;
               SysUser loginUser = getUser();
               String id="";
               if(loginUser.getSeeFlag()==SeeFlag.MANAGE){
               if(loginUser.getSeeFlag()==SeeFlag.MANAGE||loginUser.getSeeFlag() ==SeeFlag.LEADING){
               }else {
                  //userName=loginUser.getName();
@@ -1763,31 +1831,32 @@
               }
               try {
                  int count = opeApplyService.getOpeApplyReserveTotalCountByNameFor(id, reagentId, userName, productSn, applyCode, status, isAllApply);
                  int count = opeApplyService.getOpeApplyReserveTotalCountByNameFor(id, reagentId, userName, productSn, applyCode, status, isAllApply,isExpired);
                  this.setRowCount(count);
                  if (count > 0) {
                     list = opeApplyService.getOpeApplyReserveListByNameFor(id, reagentId, userName, first,
                           pageSize, productSn, applyCode, status, isAllApply);
                           pageSize, productSn, applyCode, status, isAllApply,isExpired);
                  }
               } catch (Exception e) {
                  logger.error(e);
               }
               selectedListForPerson = null;
               return list;
            }
            @Override
            public OpeApplyReserve getRowData(String rowKey) {
               Iterator<OpeApplyReserve> iterator = this.iterator();
               if (iterator != null) {
                  OpeApplyReserve su = null;
                  while (iterator.hasNext()) {
                     su = iterator.next();
                     if (rowKey.equals(su.getId())) {
                        return su;
                     }
                  }
               }
               return null;
//               Iterator<OpeApplyReserve> iterator = this.iterator();
//               if (iterator != null) {
//                  OpeApplyReserve su = null;
//                  while (iterator.hasNext()) {
//                     su = iterator.next();
//                     if (rowKey.equals(su.getId())) {
//                        return su;
//                     }
//                  }
//               }
               return opeApplyService.getOpeApplyReserveListByNameForRowData(rowKey);
            }
         };
      }
@@ -1862,7 +1931,7 @@
         //map=null;
         SysUser loginUser = getUser();
         String id="";
         if(loginUser.getSeeFlag()==SeeFlag.MANAGE){
         if(loginUser.getSeeFlag()==SeeFlag.MANAGE||loginUser.getSeeFlag() == SeeFlag.LEADING){
         }else {
            //userName=loginUser.getName();
@@ -1872,7 +1941,7 @@
            realDataList=selectedListForPerson;
         }else {
            realDataList = opeApplyService.getOpeApplyReserveListByNameFor(id,reagentId, userName, null,
                  null,productSn,applyCode,status,isAllApply);
                  null,productSn,applyCode,status,isAllApply,isExpired);
         }
         List<String> headerList = new ArrayList<>();
         headerList.add("申购编号");
@@ -2278,6 +2347,7 @@
        this.reagentDStore.setReagent((SysReagent)event.getObject());
       this.reagentDStoreEditFlag = Constants.ACTION_ADD;
      onWarehouseSelectChange(null);
       RequestContext.getCurrentInstance().execute("PF('reagentDStoreDialog').show()");
    }
@@ -2287,6 +2357,11 @@
        this.changeWarehouseContainerList(warehouseId);
        this.changeWarehouseContainerPlaceList(null);
    }
   public void onWarehouseContainerSelectChange(String warehouseContainerId) {
      this.warehouseContainerPlaceList = null;
      this.changeWarehouseContainerPlaceList(warehouseContainerId);
   }
    private void changeWarehouseContainerList(String warehouseId) {
        if (StringUtils.isBlank(warehouseId)) {
@@ -2536,6 +2611,10 @@
         }
   }
   public void clearStartAndEndCode(){
      endReagentCode = "";
   }
   public void handleEventForPerson(){
      if(useNum!=null && useNum>0){
         if(startReagentCodeForPerson!=null && !startReagentCodeForPerson.equals("")){
@@ -2628,17 +2707,17 @@
                @Override
                public SysReagent getRowData(String rowKey) {
                    Iterator<SysReagent> iterator = this.iterator();
                    if (iterator != null) {
                        SysReagent sr = null;
                        while (iterator.hasNext()) {
                            sr = iterator.next();
                            if (rowKey.equals(sr.getId())) {
                                return sr;
                            }
                        }
                    }
                    return null;
//                    Iterator<SysReagent> iterator = this.iterator();
//                    if (iterator != null) {
//                        SysReagent sr = null;
//                        while (iterator.hasNext()) {
//                            sr = iterator.next();
//                            if (rowKey.equals(sr.getId())) {
//                                return sr;
//                            }
//                        }
//                    }
                    return sysReagentService.getSysReagentListNewRowData(rowKey);
                }
            };
        }
@@ -2725,17 +2804,20 @@
   public void resetLaboratory(){
      laboratory = null;
      laboratoryId = null;
      laboratoryContainers = null;
      //getLaboratory();
      //getLaboratoryContainers();
   }
//   public void setContainerId(){
//   }
   public void resetLaboratoryContainers() {
      laboratoryContainers = null;
      //getLaboratoryContainers();
   }
   public List<SysLaboratory> getLaboratory() {
      if(userId != null && userId.trim().length() > 0)
       if(userId != null && userId.trim().length() > 0)
      {
         //Todo 修改申领人的实验室显示信息
@@ -2743,15 +2825,15 @@
         if(this.laboratory != null && this.laboratory.size() > 0)
         {
            //flag =true;
            //if(laboratoryId != null && laboratoryId.trim().length() > 0)
            //{
            //   this.oriLaboratoryId = this.laboratoryId;
            //}else
            //{
            //   this.oriLaboratoryId = this.laboratory.get(0).getId();
            //}
            if(laboratoryId != null && laboratoryId.trim().length() > 0)
            {
               this.oriLaboratoryId = this.laboratoryId;
            }else
            {
               this.laboratoryId = this.laboratory.get(0).getId();
            }
            this.laboratoryId = this.laboratory.get(0).getId();
//            this.laboratoryId = this.laboratory.get(0).getId();
            this.laboratoryContainers = this.sysLaboratoryContainerService.getSysLaboratoryContainerList(laboratoryId);
         }else {
            this.oriLaboratoryId = null;
@@ -2771,7 +2853,7 @@
   }
   public List<SysLaboratoryContainer> getLaboratoryContainers() {
      if(laboratoryId != null && laboratoryId.trim().length() > 0)
       if(laboratoryId != null && laboratoryId.trim().length() > 0)
      {
         this.laboratoryContainers = this.sysLaboratoryContainerService.getSysLaboratoryContainerList(laboratoryId);
      }
@@ -3073,4 +3155,59 @@
   public void setIsAllApply(Integer isAllApply) {
      this.isAllApply = isAllApply;
   }
   public boolean getIsExpired() {
      return isExpired;
   }
   public void setIsExpired(boolean isExpired) {
      this.isExpired = isExpired;
   }
   //过期处理
   public void expireOrder() {
      //1.判断当前订单是否是已入库的状态
      if (this.selectedListForPerson.size() < 1) {
         FacesUtils.warn("请选择数据。");
         return;
      }
      ArrayList<String> ids = new ArrayList<>();
      for (OpeApplyReserve oa : this.selectedListForPerson) {
         ids.add(oa.getId());
         if (oa.getStatus() != ApplyStatus.SUPPLIER_CONFIRM) {
            FacesUtils.warn("只能让已确认状态的单子过期。");
            return;
         }
      }
      opeApplyService.updateOpeApplyStatus(ApplyStatus.EXPIRED, null, ids);
      FacesUtils.warn("操作成功。");
   }
   public void recoverOrder(){
      if (this.selectedListForPerson.size() < 1) {
         FacesUtils.warn("请选择数据。");
         return;
      }
      ArrayList<String> ids = new ArrayList<>();
      for (OpeApplyReserve oa : this.selectedListForPerson) {
         ids.add(oa.getId());
         if (oa.getStatus() != ApplyStatus.EXPIRED) {
            FacesUtils.warn("只能让过期单子恢复确认。");
            return;
         }
      }
      opeApplyService.updateOpeApplyStatus(ApplyStatus.SUPPLIER_CONFIRM, null, ids);
      FacesUtils.warn("操作成功。");
   }
    public String getNote() {
        return note;
    }
    public void setNote(String note) {
        this.note = note;
    }
}