kongzy
2024-07-01 47a751cb301d05276ae5d75145d57b2d090fe4e1
src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java
@@ -79,8 +79,8 @@
    * java.lang.Integer)
    */
   @Transactional(propagation = Propagation.REQUIRED)
   public List<OpeReagentStatus> getOpeReagentStatusList(String reagentId, String articleNumber, Integer status,
         String reagentCode, String userId, Integer first, Integer pageSize) {
   public List<OpeReagentStatus> getOpeReagentStatusList(Long reagentId, String articleNumber, Integer status,
                                            String reagentCode, Long userId, Integer first, Integer pageSize) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
@@ -102,8 +102,8 @@
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public List<OpeReagentStatus> getOpeReagentStatusList22(String reagentId, String articleNumber, Integer status,
                                            String reagentCode, String userId, Integer first, Integer pageSize) {
   public List<OpeReagentStatus> getOpeReagentStatusList22(Long reagentId, String articleNumber, Integer status,
                                             String reagentCode, Long userId,String applyCode, Integer first, Integer pageSize) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
@@ -116,6 +116,9 @@
         }
         params.put("first", first);
         params.put("pageSize", pageSize);
         if (StringUtils.isNotBlank(applyCode)) {
            params.put("applyCode", applyCode);
         }
         return this.opeReagentStatusDao.getOpeReagentStatusList22(params);
      } catch (DataAccessException e) {
         logger.error(e.getMessage(), e);
@@ -124,9 +127,14 @@
      }
   }
   @Override
   public Integer getReagentStatusCountByApplyCode(String applyCode) {
      return this.opeReagentStatusDao.getReagentStatusCountByApplyCode(applyCode);
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public List<OpeReagentStatus> getOpeReagentStatusListForLab(String name, String articleNumber, Integer status,
                                            String reagentCode, String userId,String labName, Integer first, Integer pageSize) {
   public List<OpeReagentStatus> getOpeReagentStatusListForLab(Long reagentId, String name, String articleNumber, Integer status,
                                                String reagentCode, Long userId, String labName, Integer first, Integer pageSize) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
@@ -135,15 +143,15 @@
         params.put("status", status);
         params.put("labName", labName);
//         addParamByUserId(userId, params);
         if (StringUtils.isNotBlank(userId)) {
         if (userId != null) {
            SysUser sysUser = sysUserService.getSysUser(userId);
            BaseRole baseRole = baseRoleService.getBaseRole(sysUser.getRoleId());
            //不是系统管理员 根据用户的课题组判断可视(用户所在课题组是否 在实验室的课题组下)
            if (!"系统管理员".equals(baseRole.getName())) {
               if (StringUtils.isBlank(sysUser.getProject())) {
               if (sysUser.getProjectId() != null) {
                  return null;
               }
               params.put("project", sysUser.getProject());
               params.put("project", sysUser.getProjectId());
            }
         }
         if (StringUtils.isNotBlank(reagentCode)) {
@@ -160,30 +168,35 @@
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public int getOpeReagentStatusTotalCountForLab(String name, String articleNumber, Integer status, String reagentCode,
                                  String userId,String labName) {
   public int getOpeReagentStatusTotalCountForLab(Long reagentId, String name, String articleNumber, Integer status, String reagentCode,
                                       Long userId, String labName) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
         if(StringUtils.isNotBlank(name)){
         params.put("name", "%" + name + "%");
         }
//         addParamByUserId(userId, params);
         params.put("articleNumber", articleNumber);
         if (StringUtils.isNotBlank(userId)) {
         if (userId != null) {
            SysUser sysUser = sysUserService.getSysUser(userId);
            BaseRole baseRole = baseRoleService.getBaseRole(sysUser.getRoleId());
            //不是系统管理员 根据用户的课题组判断可视(用户所在课题组是否 在实验室的课题组下)
            if (!"系统管理员".equals(baseRole.getName())) {
               if (StringUtils.isBlank(sysUser.getProject())) {
               if (sysUser.getProjectId() == null) {
                  return 0;
               }
               params.put("project", sysUser.getProject());
               params.put("project", sysUser.getProjectId());
            }
         }
         if (StringUtils.isNotBlank(reagentCode)) {
            params.put("reagentCode", "%" + reagentCode + "%");
         }
         params.put("status", status);
         if(StringUtils.isNotBlank(labName)){
         params.put("labName", labName);
         }
         return this.opeReagentStatusDao.getOpeReagentStatusTotalCountForLab(params);
      } catch (DataAccessException e) {
         logger.error(e.getMessage(), e);
@@ -193,8 +206,8 @@
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public int getOpeReagentStatusTotalCount(String reagentId, String articleNumber, Integer status, String reagentCode,
         String userId) {
   public int getOpeReagentStatusTotalCount(Long reagentId, String articleNumber, Integer status, String reagentCode,
                                  Long userId) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
         params.put("reagentId", reagentId);
@@ -213,9 +226,10 @@
      }
   }
   @Override
   @Transactional(propagation = Propagation.REQUIRED)
   public List<OpeReagentStatus> getOpeReagentStatusListByName(String reagentId, String articleNumber, Integer status,
         String reagentCode, String userId, Integer first, Integer pageSize) {
   public List<OpeReagentStatus> getOpeReagentStatusListByName(Long reagentId, String articleNumber, Integer status,
                                                String reagentCode, Long userId, Integer first, Integer pageSize) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
@@ -237,8 +251,8 @@
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public int getOpeReagentStatusTotalCountByName(String reagentId, String articleNumber, Integer status, String reagentCode,
         String userId) {
   public int getOpeReagentStatusTotalCountByName(Long reagentId, String articleNumber, Integer status, String reagentCode,
                                       Long userId) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
         params.put("reagentName", reagentId);
@@ -259,8 +273,8 @@
   @Override
   public int getPersonReagentStatusTotalCountByName(String reagentId, String articleNumber, String reagentCode,
         String userId,String applyPerson,Date startTime,Date endTime) {
   public int getPersonReagentStatusTotalCountByName(Long reagentId, String articleNumber, String reagentCode,
                                         Long userId, String applyPerson, Date startTime, Date endTime) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
         params.put("reagentName", reagentId);
@@ -282,8 +296,8 @@
   }
   @Override
   public List<OpeReagentStatus> getPersonReagentStatusListByName(String reagentId, String articleNumber,
         String reagentCode, String userId,String applyPerson,Date startTime,Date endTime, Integer first, Integer pageSize) {
   public List<OpeReagentStatus> getPersonReagentStatusListByName(Long reagentId, String articleNumber,
                                                   String reagentCode, Long userId, String applyPerson, Date startTime, Date endTime, Integer first, Integer pageSize) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
         params.put("reagentName", reagentId);
@@ -306,8 +320,8 @@
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public List<OpeReagentStatus> getLogOpeReagentStatusList(String reagentId, Integer status, String userId,
         String loginId, Integer first, Integer pageSize) {
   public List<OpeReagentStatus> getLogOpeReagentStatusList(Long reagentId, Integer status, Long userId,
                                              Long loginId, Integer first, Integer pageSize) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
@@ -325,7 +339,7 @@
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public int getLogOpeReagentStatusTotalCount(String reagentId, Integer status, String userId, String loginId) {
   public int getLogOpeReagentStatusTotalCount(Long reagentId, Integer status, Long userId, Long loginId) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
         params.put("reagentId", reagentId);
@@ -345,10 +359,10 @@
    * @param userId
    * @param params
    */
   private void addParamByUserId(String userId, Map<String, Object> params) {
   private void addParamByUserId(Long userId, Map<String, Object> params) {
      // 领用操作对话框的userid为空
      // 只有实验室管理时userid才不为空
      if (StringUtils.isNotBlank(userId)) {
      if (userId != null) {
         SysUser sysUser = sysUserService.getSysUser(userId);
//         // 不是管理员时,加入部门
@@ -374,13 +388,13 @@
    * @param loginId
    * @param params
    */
   private void addParamByLoginId(String userId, String loginId, Map<String, Object> params) {
      if (StringUtils.isNotBlank(loginId)) {
   private void addParamByLoginId(Long userId, Long loginId, Map<String, Object> params) {
      if (loginId != null) {
         SysUser sysUser = sysUserService.getSysUser(loginId);
         // 负责人,需要把部门的userid传递到SQL
         if (sysUser.getSeeFlag().getKey() == SeeFlag.LEADING.getKey()) {
            List<String> departmentUserIds = new ArrayList<String>();
            List<Long> departmentUserIds = new ArrayList<Long>();
            List<SysUser> departmentUsers = sysUserService.getSeeUserList(sysUser.getDepartment());
            for (SysUser departmentUser : departmentUsers) {
               departmentUserIds.add(departmentUser.getId());
@@ -390,14 +404,14 @@
               params.put("departmentUserIds", departmentUserIds);
            }
            if (StringUtils.isNotBlank(userId)) {
            if (userId != null) {
               params.put("userId", userId);
            }
         } else if (sysUser.getSeeFlag().getKey() == SeeFlag.NORMAL.getKey()) {// 管理员,部门的userid和个人id都不需要
            params.put("userId", userId);
         } else {
            if (StringUtils.isNotBlank(userId)) {
            if (userId != null) {
               params.put("userId", userId);
            }
         }
@@ -407,7 +421,7 @@
   @Transactional(propagation = Propagation.REQUIRED)
   public OpeReagentStatus insertOpeReagentStatus(OpeReagentStatus opeReagentStatus) {
      try {
         opeReagentStatus.setId(IDUtils.uuid());
         //opeReagentStatus.setId(IDUtils.uuid());
         this.opeReagentStatusDao.insertOpeReagentStatus(opeReagentStatus);
         return opeReagentStatus;
      } catch (DuplicateKeyException ex) {
@@ -425,6 +439,26 @@
   }
   @Override
   public int batchInsertOpeReagentStatus(List<OpeReagentStatus> OpeReagentStatusList) {
      try {
         return this.opeReagentStatusDao.batchInsertOpeReagentStatus(OpeReagentStatusList);
      } catch (DuplicateKeyException ex) {
         logger.warn(ex.getMessage(), ex);
         throw new AlarmException(AlarmCode.DATA_DUPLICATE,
               MessageUtil.getMessage(AlarmCode.DATA_DUPLICATE.getCode()));
      } catch (DataIntegrityViolationException ex) {
         logger.warn(ex.getMessage(), ex);
         throw new AlarmException(AlarmCode.DATA_CONFICT, MessageUtil.getMessage(AlarmCode.DATA_CONFICT.getCode()));
      } catch (DataAccessException ex) {
         logger.error(ex.getMessage(), ex);
         throw new BusinessException(ExceptionEnumCode.DB_ERR,
               MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), ex);
      }
   }
   @Override
   @Transactional(propagation = Propagation.REQUIRED)
   public boolean isOpeReagentStatusExist(String reagentCode) {
      try {
@@ -440,9 +474,9 @@
   @Override
   @Transactional(propagation = Propagation.REQUIRED)
   public OpeReagentStatus getOpeReagentStatusByCode(String reagentCode){
   public OpeReagentStatus getOpeReagentStatusById(Long id){
      try {
         return this.opeReagentStatusDao.getOpeReagentStatusByReagentCode(reagentCode);
         return this.opeReagentStatusDao.getOpeReagentStatusById(id);
      } catch (DataAccessException e) {
         logger.error(e.getMessage(), e);
         throw new BusinessException(ExceptionEnumCode.DB_ERR,
@@ -450,17 +484,18 @@
      }
   }
   @Override
   public boolean isAllowWarehouseUse(OpeReagentStatus opeReagentStatus) {
      return opeReagentStatus != null && opeReagentStatus.getStatus() != null
            && opeReagentStatus.getStatus().getKey() == ArrivalStatus.WAREHOUSE.getKey();
            && opeReagentStatus.getStatus() == ArrivalStatus.WAREHOUSE.getKey();
   }
   public boolean isAllowWarehouseUseByIds(List<String> list) {
   public boolean isAllowWarehouseUseByIds(List<Long> list) {
      boolean flag = true;
      if (list != null && list.size() > 0) {
         for (String opeReagentStatusId : list) {
            OpeReagentStatus opeReagentStatus = getOpeReagentStatus(opeReagentStatusId);
         for (Long opeReagentStatusId : list) {
            OpeReagentStatus opeReagentStatus = getOpeReagentStatusById(opeReagentStatusId);
            if (!isAllowWarehouseUse(opeReagentStatus)) {
               flag = false;
               break;
@@ -504,11 +539,7 @@
         opeUseFlow.setPlace(opeReagentStatus.getPlace());
         opeUseFlow.setRemainder(opeReagentStatus.getRemainder());
         Map<String, String> metaMap = new HashMap<>();
         metaMap.put("groupId", "operate_status");
         metaMap.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey()));
         List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
         opeUseFlow.setOperateState(baseMetaList.get(0).getId());
         opeUseFlow.setOperateState(OperateStatus.WAREHOUSEOUT.getKey());
         this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
@@ -528,12 +559,12 @@
   }
   @Override
   public boolean updateReagentStatus3(List<String> reagentCodes,String userId,String projectNum,String laboratoryId,String laboratoryContainerId,String receiptNumber) {
   public boolean updateReagentStatus3(List<String> reagentCodes,Long userId,Long projectId,Long laboratoryId,Long laboratoryContainerId,String receiptNumber) {
      try {
         for (String opeReagentStatusId : reagentCodes) {
            OpeReagentStatus opeReagentStatus = this.getOpeReagentStatus(opeReagentStatusId);
         for (String reagentCode : reagentCodes) {
            OpeReagentStatus opeReagentStatus = this.getOpeReagentStatusByCode(reagentCode);
            opeReagentStatus.setUserId(userId);
            opeReagentStatus.setProjectNum(projectNum);
            opeReagentStatus.setProjectId(projectId);
            //1.判断->试剂状态是否为在仓库
            if (isAllowWarehouseUse(opeReagentStatus)) {
               //1.1获得 试剂的库存选择批次
@@ -544,7 +575,7 @@
               this.opeWarehouseReserveService.updateOpeWarehouseReserve(owrList.get(0));
            }
            //设置 试剂状态->领用待入库
            opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
            opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER.getKey());
            opeReagentStatus.setHouseId(laboratoryId);
            opeReagentStatus.setContainerId(laboratoryContainerId);
            int row = this.updateOpeReagentStatus(opeReagentStatus);
@@ -563,11 +594,7 @@
            opeUseFlow.setRemainder(opeReagentStatus.getRemainder());
            opeUseFlow.setReceiptNumber(receiptNumber);
            Map<String, String> metaMap = new HashMap<>();
            metaMap.put("groupId", "operate_status");
            metaMap.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey()));
            List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
            opeUseFlow.setOperateState(baseMetaList.get(0).getId());
            opeUseFlow.setOperateState(OperateStatus.WAREHOUSEOUT.getKey());
            this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
         }
@@ -603,7 +630,7 @@
            opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() - 1);
            this.opeWarehouseReserveService.updateOpeWarehouseReserve(opeWarehouseReserve);
         }
         opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
         opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER.getKey());
         int row = this.opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus);
         if (row == 0) {
            return false;
@@ -618,11 +645,7 @@
         opeUseFlow.setRemainder(opeReagentStatus.getRemainder());
         opeUseFlow.setReceiptNumber(receiptNumber);
         Map<String, String> metaMap = new HashMap<>();
         metaMap.put("groupId", "operate_status");
         metaMap.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey()));
         List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
         opeUseFlow.setOperateState(baseMetaList.get(0).getId());
         opeUseFlow.setOperateState(OperateStatus.WAREHOUSEOUT.getKey());
         this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
         return true;
      } catch (DuplicateKeyException ex) {
@@ -639,9 +662,9 @@
      }
   }
   public OpeReagentStatus getOpeReagentStatus(String id) {
   public OpeReagentStatus getOpeReagentStatusByCode(String reagentCode) {
      try {
         return this.opeReagentStatusDao.getOpeReagentStatus(id);
         return this.opeReagentStatusDao.getOpeReagentStatusByCode(reagentCode);
      } catch (DataAccessException e) {
         logger.error(e.getMessage(), e);
         throw new BusinessException(ExceptionEnumCode.DB_ERR,
@@ -674,7 +697,7 @@
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public void putReagentInLaboratory(String reagentCode, String barCode, String containerCode, SysUser sysUser) {
   public void putReagentInLaboratory(String reagentCode, Long labId, Long labContainerId, Long userId) {
      try {
         // 检查试剂条码是否存在
         OpeReagentStatus opeReagentStatus = this.getOpeReagentStatusByReagentCode(reagentCode);
@@ -683,30 +706,30 @@
                  MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NO_EXIST.getCode(), "试剂条码", reagentCode));
         }
         // 检查地点条码是否存在
         SysLaboratory sysLaboratory = this.sysLaboratoryService.getSysLaboratoryByBarCode(barCode);
         if (sysLaboratory == null) {
            throw new BusinessException(ExceptionEnumCode.PARAM_NO_EXIST,
                  MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NO_EXIST.getCode(), "地点条码", barCode));
         }
//         // 检查地点条码是否存在
//         SysLaboratory sysLaboratory = this.sysLaboratoryService.getSysLaboratoryByBarCode(barCode);
//         if (sysLaboratory == null) {
//            throw new BusinessException(ExceptionEnumCode.PARAM_NO_EXIST,
//                  MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NO_EXIST.getCode(), "地点条码", barCode));
//         }
//
//         // 检查货柜条码是否存在
//         SysLaboratoryContainer sysLaboratoryContainer = this.sysLaboratoryContainerService
//               .getSysLaboratoryContainerByContainerCode(containerCode);
//         if (sysLaboratoryContainer == null) {
//            throw new BusinessException(ExceptionEnumCode.PARAM_NO_EXIST, MessageUtil
//                  .getMessageByCode(ExceptionEnumCode.PARAM_NO_EXIST.getCode(), "货柜条码", containerCode));
//         }
//
//         // 检查货柜是否属于该地点
//         if (!sysLaboratory.getId().equals(sysLaboratoryContainer.getLaboratoryId())) {
//            throw new BusinessException(ExceptionEnumCode.PARAM_ERR, "货柜不属于该地点");
//         }
         // 检查货柜条码是否存在
         SysLaboratoryContainer sysLaboratoryContainer = this.sysLaboratoryContainerService
               .getSysLaboratoryContainerByContainerCode(containerCode);
         if (sysLaboratoryContainer == null) {
            throw new BusinessException(ExceptionEnumCode.PARAM_NO_EXIST, MessageUtil
                  .getMessageByCode(ExceptionEnumCode.PARAM_NO_EXIST.getCode(), "货柜条码", containerCode));
         }
         // 检查货柜是否属于该地点
         if (!sysLaboratory.getId().equals(sysLaboratoryContainer.getLaboratoryId())) {
            throw new BusinessException(ExceptionEnumCode.PARAM_ERR, "货柜不属于该地点");
         }
         opeReagentStatus.setStatus(ArrivalStatus.LABORATORY);
         opeReagentStatus.setHouseId(sysLaboratory.getId());
         opeReagentStatus.setContainerId(sysLaboratoryContainer.getId());
         opeReagentStatus.setUserId(sysUser.getId());
         opeReagentStatus.setStatus(ArrivalStatus.LABORATORY.getKey());
         opeReagentStatus.setHouseId(labId);
         opeReagentStatus.setContainerId(labContainerId);
         opeReagentStatus.setUserId(userId);
         opeReagentStatus.setPlace(null);
         this.opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus);
@@ -718,6 +741,7 @@
         opeUseFlow.setUserId(opeReagentStatus.getUserId());
         opeUseFlow.setPlace(opeReagentStatus.getPlace());
         opeUseFlow.setRemainder(opeReagentStatus.getRemainder());
         opeUseFlow.setOperateState(OperateStatus.LABORATORYIN.getKey());
         // 接口应新追加操作状态和试剂状态两个参数。
         this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
@@ -737,10 +761,10 @@
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public boolean store(List<OpeReagentStatus> selectedStoreList, String laboratoryId, String laboratoryContainerId) {
   public boolean store(List<OpeReagentStatus> selectedStoreList, Long laboratoryId, Long laboratoryContainerId) {
      try {
         for (OpeReagentStatus opeReagentStatus : selectedStoreList) {
            opeReagentStatus.setStatus(ArrivalStatus.LABORATORY);
            opeReagentStatus.setStatus(ArrivalStatus.LABORATORY.getKey());
            opeReagentStatus.setHouseId(laboratoryId);
            opeReagentStatus.setContainerId(laboratoryContainerId);
            int row = this.opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus);
@@ -757,11 +781,7 @@
            opeUseFlow.setPlace(opeReagentStatus.getPlace());
            opeUseFlow.setRemainder(opeReagentStatus.getRemainder());
            Map<String, String> metaMap = new HashMap<>();
                metaMap.put("groupId", "operate_status");
                metaMap.put("metaKey", String.valueOf(OperateStatus.LABORATORYIN.getKey()));
                List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
                opeUseFlow.setOperateState(baseMetaList.get(0).getId());
                opeUseFlow.setOperateState(OperateStatus.LABORATORYIN.getKey());
            this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
         }
@@ -782,7 +802,7 @@
   @Override
   @Transactional(readOnly = true)
   public List<OpeReagentStatus> getOpeReagentStatusInfoList(String startTime,String endTime, String containerid, String status){
   public List<OpeReagentStatus> getOpeReagentStatusInfoList(String startTime,String endTime, Long containerid, String status){
      Map params = ImmutableMap.of("startTime",startTime,"endTime",endTime,"containerid",containerid,"status",status);
      return opeReagentStatusDao.getOpeReagentStatusInfoList(params);
   }
@@ -901,12 +921,12 @@
   }
   @Override
   public List<OpeReagentStatus> selectByReId(String id) {
   public List<OpeReagentStatus> selectByReId(Long id) {
      return  this.opeReagentStatusDao.selectByReId(id);
   }
   @Override
   public void updateByReId(String newReId, String oldReId) {
   public void updateByReId(Long newReId, Long oldReId) {
      Map<String, Object> params=new HashMap();
      params.put("newReId",newReId);
      params.put("oldReId",oldReId);
@@ -914,7 +934,7 @@
   }
   @Override
   public List<String> getReagentCodes(String reagentId) {
   public List<String> getReagentCodes(Long reagentId) {
      return opeReagentStatusDao.selectReagentCodesByReId(reagentId);
   }
@@ -924,16 +944,16 @@
   */
   @Transactional
   public void orderInputWarehouseReagentStatusAndUseFlow
         (OpeApplyReserve opeApplyReserve,String userId,List<String> reagentCodeList,OpeOrder opeOrder) {
         (OpeApplyReserve opeApplyReserve,Long userId,List<String> reagentCodeList,OpeOrder opeOrder) {
      for (String reagentCode : reagentCodeList) {
         //1.新增试剂状态:在仓库有
         OpeReagentStatus ors = new OpeReagentStatus();
         ors.setId(IDUtils.uuid());
   //      ors.setId(IDUtils.uuid());
         //状态和用户
         ors.setStatus(ArrivalStatus.WAREHOUSE);
         ors.setStatus(ArrivalStatus.WAREHOUSE.getKey());
         ors.setUserId(userId);
         //入库场所
         ors.setHouseId(opeApplyReserve.getHouseId());
@@ -949,17 +969,13 @@
         //2.更新试剂流向
         OpeUseFlow ouf = new OpeUseFlow();
         ouf.setId(IDUtils.uuid());
      //   ouf.setId(IDUtils.uuid());
         //持有者
         ouf.setUserId(userId);
         //在仓库状态
         ouf.setStatus(ArrivalStatus.WAREHOUSE);
         //操作状态->仓库入库
         Map<String, String> metaMap = new HashMap<>();
         metaMap.put("groupId", "operate_status");
         metaMap.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEIN.getKey()));
         List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
         ouf.setOperateState(baseMetaList.get(0).getId());
         ouf.setStatus(ArrivalStatus.WAREHOUSE.getKey());
         ouf.setOperateState(OperateStatus.WAREHOUSEIN.getKey());
         //地点
         ouf.setHouseId(opeApplyReserve.getHouseId());
         ouf.setContainerId(opeApplyReserve.getContainerId());
@@ -1107,7 +1123,7 @@
   }
   @Override
   public int getReagentNumInWarehouse(String id, String articleNumber, String warehouseId) {
   public int getReagentNumInWarehouse(Long id, String articleNumber, Long warehouseId) {
      Map<String, Object> params = new HashMap<>();
      params.put("reagentId", id);
      params.put("articleNumber", articleNumber);
@@ -1121,22 +1137,22 @@
    * @date 2021/4/22 10:33
    */
   @Override
   public List<Map> selectExportList(String name, String articleNumber, Integer status, String reagentCode, String userId,String labName) {
   public List<Map> selectExportList(String name, String articleNumber, Integer status, String reagentCode, Long userId,String labName) {
      Map<String, Object> params = new HashMap<>();
      params.put("name", name);
      params.put("articleNumber", articleNumber);
      params.put("status", status);
      params.put("labName", labName);
      if (StringUtils.isNotBlank(userId)) {
      if (userId!=null) {
         SysUser sysUser = sysUserService.getSysUser(userId);
         BaseRole baseRole = baseRoleService.getBaseRole(sysUser.getRoleId());
         //不是系统管理员 根据用户的课题组判断可视(用户所在课题组是否 在实验室的课题组下)
         if (!"系统管理员".equals(baseRole.getName())) {
            if (StringUtils.isBlank(sysUser.getProject())) {
            if (sysUser.getProjectId()==null) {
               return null;
            }
            params.put("project", sysUser.getProject());
            params.put("project", sysUser.getProjectId());
         }
      }
      params.put("reagentCode", reagentCode);
@@ -1159,7 +1175,7 @@
   }
    @Override
    public OpeReagentStatus getStatus(String reagentId, String reagentCode) {
    public OpeReagentStatus getStatus(Long reagentId, String reagentCode) {
      return opeReagentStatusDao.getStatus(reagentId,reagentCode);