李宇
2021-04-07 fcdb56cf78b63f5b1455bbfab0c2bd7934b0aca5
src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
@@ -16,6 +16,7 @@
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.context.annotation.Lazy;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.dao.DuplicateKeyException;
@@ -46,6 +47,7 @@
   @Resource
   private OpeReagentStatusService opeReagentStatusService;
   @Lazy
    @Resource
    private OpeUseFlowService opeUseFlowService;
@@ -203,7 +205,7 @@
      }
   }
   @Transactional(propagation = Propagation.REQUIRED)
   @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
   public boolean updateOpeWarehouseReserve(OpeWarehouseReserve opeWarehouseReserve) {
      try {
         int row = this.opeWarehouseReserveDao.updateOpeWarehouseReserve(opeWarehouseReserve);
@@ -223,26 +225,14 @@
      }
   }
   @Transactional(propagation = Propagation.REQUIRED)
   @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
   public void claimForPerson(List<OpeApplyReserve> selectedListForPerson,String userId,String projectNum,String laboratoryId,String laboratoryContainerId){
      try{
         for(OpeApplyReserve app:selectedListForPerson){
            List<String> reagentCodes = app.getReagentCode();
            if (reagentCodes != null && reagentCodes.size() > 0) {
               List<OpeReagentStatus> ss=new ArrayList<>();
               for (String opeReagentStatusId : reagentCodes) {
                  OpeReagentStatus opeReagentStatus = this.opeReagentStatusService.getOpeReagentStatus(opeReagentStatusId);
                  opeReagentStatus.setUserId(userId);
                  opeReagentStatus.setProjectNum(projectNum);
                  //boolean flag = this.opeReagentStatusService.updateReagentStatus(opeReagentStatus);
                  this.opeReagentStatusService.updateReagentStatus3(opeReagentStatus);
                  ss.add(opeReagentStatus);
                  //更新试剂状态和
                  opeReagentStatus.setHouseId(laboratoryId);
                  opeReagentStatus.setContainerId(laboratoryContainerId);
                  this.opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus);
               this.opeReagentStatusService.updateReagentStatus3(reagentCodes,userId,projectNum,laboratoryId,laboratoryContainerId);
               }
               //更新是现实库存
               OpeLaboratoryReserve lr=new OpeLaboratoryReserve();
               lr.setReagentId(app.getReagent().getId());
@@ -293,6 +283,9 @@
         logger.error(ex.getMessage(), ex);
         throw new BusinessException(ExceptionEnumCode.DB_ERR,
               MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), ex);
      }catch(Exception e){
         e.printStackTrace();
         throw new RuntimeException(e);
      }
   }
@@ -726,7 +719,11 @@
                     List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
                     opeUseFlow.setOperateState(baseMetaList.get(0).getId());
                     this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
                     //更新试剂状态表 :批号
                     opeReagentStatusDao.updateArticleNumberByRCode(reagentCodes.get(0),warehouseReserve.getArticleNumber());
                     reagentCodes.remove(0);
                  }
               }