kongzy
2024-07-01 47a751cb301d05276ae5d75145d57b2d090fe4e1
src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
@@ -6,12 +6,12 @@
import javax.annotation.Resource;
import com.nanometer.smartlab.dao.OpeApplyDao;
import com.nanometer.smartlab.dao.OpeReagentStatusDao;
import com.nanometer.smartlab.dao.*;
import com.nanometer.smartlab.entity.*;
import com.nanometer.smartlab.entity.enumtype.ValidFlag;
import com.nanometer.smartlab.exception.AlarmCode;
import com.nanometer.smartlab.exception.AlarmException;
import com.nanometer.smartlab.util.FacesUtils;
import com.nanometer.smartlab.util.IDUtils;
import org.apache.commons.lang.StringUtils;
@@ -24,8 +24,6 @@
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.nanometer.smartlab.dao.BaseMetaDao;
import com.nanometer.smartlab.dao.OpeWarehouseReserveDao;
import com.nanometer.smartlab.entity.enumtype.ArrivalStatus;
import com.nanometer.smartlab.entity.enumtype.OperateStatus;
import com.nanometer.smartlab.entity.enumtype.StoreType;
@@ -61,8 +59,11 @@
   @Resource
   private OpeLaboratoryReserveService opeLaboratoryReserveService;
   @Resource
   private OpeLaboratoryReserveDao opeLaboratoryReserveDao;
   @Transactional(propagation = Propagation.REQUIRED)
   public List<OpeWarehouseReserve> getOpeWarehouseReserveList(String reagentId, String supplierId, Integer first,
   public List<OpeWarehouseReserve> getOpeWarehouseReserveList(Long reagentId, Long supplierId, Integer first,
         Integer pageSize) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
@@ -79,7 +80,7 @@
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public int getOpeWarehouseReserveTotalCount(String reagentId, String supplierId) {
   public int getOpeWarehouseReserveTotalCount(Long reagentId, Long supplierId) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
         params.put("reagentId", reagentId);
@@ -93,11 +94,11 @@
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public List<OpeWarehouseReserve> getOpeWarehouseReserveListByName(String reagentId, String supplierId, Integer first,
   public List<OpeWarehouseReserve> getOpeWarehouseReserveListByName(String reagentName, Long supplierId, Integer first,
         Integer pageSize,String productSn,String warehouseName) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
         params.put("reagentName", reagentId);
         params.put("reagentName", reagentName);
         params.put("supplierId", supplierId);
         params.put("first", first);
         params.put("pageSize", pageSize);
@@ -112,10 +113,10 @@
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public int getOpeWarehouseReserveTotalCountByName(String reagentId, String supplierId,String productSn,String warehouseName) {
   public int getOpeWarehouseReserveTotalCountByName(String reagentName, Long supplierId,String productSn,String warehouseName) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
         params.put("reagentName", reagentId);
         params.put("reagentName", reagentName);
         params.put("supplierId", supplierId);
         params.put("productSn", productSn);
         params.put("warehouseName", warehouseName);
@@ -128,7 +129,7 @@
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public OpeWarehouseReserve getOpeWarehouseReserveBy(String reagentId, String articleNumber){
   public OpeWarehouseReserve getOpeWarehouseReserveBy(Long reagentId, String articleNumber){
      OpeWarehouseReserve ope=new OpeWarehouseReserve();
      ope.setReagentId(reagentId);
      ope.setArticleNumber(articleNumber);
@@ -136,7 +137,7 @@
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public OpeWarehouseReserve getOpeWarehouseReserve(String reagentId, String articleNumber) {
   public OpeWarehouseReserve getOpeWarehouseReserve(Long reagentId, String articleNumber) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
         params.put("reagentId", reagentId);
@@ -154,7 +155,7 @@
      }
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public OpeWarehouseReserve getOpeWarehouseReserve2(String reagentId, String articleNumber,String warehouseId) {
   public OpeWarehouseReserve getOpeWarehouseReserve2(Long reagentId, String articleNumber,Long warehouseId) {
      try {
         Map<String, Object> params = new HashMap<String, Object>();
         params.put("reagentId", reagentId);
@@ -174,8 +175,8 @@
   }
   @Override
   public List<OpeWarehouseReserve> getOpeWarehouseReserveList(String reagentId, String articleNumber,String warehouseId) {
      Map<String, String> params = new HashMap<>();
   public List<OpeWarehouseReserve> getOpeWarehouseReserveList(Long reagentId, String articleNumber,Long warehouseId) {
      Map<String, Object> params = new HashMap<>();
      params.put("reagentId", reagentId);
      params.put("warehouseId", warehouseId);
      params.put("articleNumber", articleNumber);
@@ -186,9 +187,9 @@
   @Transactional(propagation = Propagation.REQUIRED)
   public OpeWarehouseReserve insertOpeWarehouseReserve(OpeWarehouseReserve opeWarehouseReserve) {
      try {
         if (opeWarehouseReserve.getId() == null) {
            opeWarehouseReserve.setId(IDUtils.uuid());
         }
//         if (opeWarehouseReserve.getId() == null) {
//            opeWarehouseReserve.setId(IDUtils.uuid());
//         }
         this.opeWarehouseReserveDao.insertOpeWarehouseReserve(opeWarehouseReserve);
         return opeWarehouseReserve;
      } catch (DuplicateKeyException ex) {
@@ -226,12 +227,12 @@
   }
   @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
   public void claimForPerson(List<OpeApplyReserve> selectedListForPerson,String userId,String projectNum,String laboratoryId,String laboratoryContainerId,String receiptNumber){
   public void claimForPerson(List<OpeApplyReserve> selectedListForPerson,Long userId,Long projectId,Long laboratoryId,Long laboratoryContainerId,String receiptNumber){
      try{
         for(OpeApplyReserve app:selectedListForPerson){
            List<String> reagentCodes = app.getReagentCode();
            List<String> reagentCodes = app.getReagentCodes();
            if (reagentCodes != null && reagentCodes.size() > 0) {
               this.opeReagentStatusService.updateReagentStatus3(reagentCodes,userId,projectNum,laboratoryId,laboratoryContainerId,receiptNumber);
               this.opeReagentStatusService.updateReagentStatus3(reagentCodes,userId,projectId,laboratoryId,laboratoryContainerId,receiptNumber);
               //更新是现实库存
               OpeLaboratoryReserve lr=new OpeLaboratoryReserve();
@@ -290,43 +291,63 @@
   }
   // 仓库领用
   @Transactional(propagation = Propagation.REQUIRED)
   public void claim(List<OpeWarehouseReserve> selectedList, String userId,String projectNum,String receiptNumber) {
      try {
         for (OpeWarehouseReserve opeWarehouseReserve : selectedList) {
            List<String> reagentCodes = opeWarehouseReserve.getReagentCodes();
            if (reagentCodes != null && reagentCodes.size() > 0) {
               for (String opeReagentStatusId : reagentCodes) {
                  OpeReagentStatus opeReagentStatus = this.opeReagentStatusService
                        .getOpeReagentStatus(opeReagentStatusId);
                  opeReagentStatus.setUserId(userId);
                  opeReagentStatus.setProjectNum(projectNum);
                  //boolean flag = this.opeReagentStatusService.updateReagentStatus(opeReagentStatus);
                  this.opeReagentStatusService.updateReagentStatus(opeReagentStatus,receiptNumber);
                  //if (flag) {
                     //opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() - 1);
                     //opeWarehouseReserve.setSelectNum(0);
                  //}
   @Transactional(propagation = Propagation.REQUIRED,rollbackFor = RuntimeException.class)
   public void claim(List<OpeWarehouseReserve> selectedList, Long userId,Long projectId,Long laboratoryId,Long laboratoryContainerId,String receiptNumber) {
      for (OpeWarehouseReserve opeWarehouseReserve : selectedList) {
         List<OpeLaboratoryReserve>lrList=new ArrayList<>();
         List<Long> reagentStatusIds=new ArrayList<>();
         List<String> reagentCodes = opeWarehouseReserve.getReagentCodes();
         List<OpeUseFlow> opeUseFlowList=new ArrayList<>();
         if (reagentCodes != null && !reagentCodes.isEmpty()) {
            for (String reagentCode : reagentCodes) {
               OpeReagentStatus opeReagentStatus = this.opeReagentStatusService
                     .getOpeReagentStatusByCode(reagentCode);
               if (!this.opeReagentStatusService.isAllowWarehouseUse(opeReagentStatus)) {
                  throw new BusinessException(ExceptionEnumCode.SYS_ERR,"只能申领在仓库的试剂");
               }
               opeReagentStatus.setUserId(userId);
               opeReagentStatus.setProjectId(projectId);
            //   this.opeReagentStatusService.updateReagentStatus(opeReagentStatus,receiptNumber);
               reagentStatusIds.add(opeReagentStatus.getId());
               OpeLaboratoryReserve lr = new OpeLaboratoryReserve();
               lr.setReagentId(opeWarehouseReserve.getReagentId());
               lr.setHouseId(laboratoryId);
               lr.setContainerId(laboratoryContainerId);
               lr.setReserve(opeWarehouseReserve.getSelectNum());
               lr.setUserId(userId);
               lr.setValidFlag(ValidFlag.VALID);
               lrList.add(lr);
               OpeUseFlow opeUseFlow = new OpeUseFlow();
               opeUseFlow.setReagentCode(opeReagentStatus.getReagentCode());
               opeUseFlow.setStatus(opeReagentStatus.getStatus());
               opeUseFlow.setHouseId(opeReagentStatus.getHouseId());
               opeUseFlow.setContainerId(opeReagentStatus.getContainerId());
               opeUseFlow.setUserId(opeReagentStatus.getUserId());
               opeUseFlow.setPlace(opeReagentStatus.getPlace());
               opeUseFlow.setRemainder(opeReagentStatus.getRemainder());
               opeUseFlow.setReceiptNumber(receiptNumber);
               opeUseFlow.setOperateState(OperateStatus.WAREHOUSEOUT.getKey());
               opeUseFlowList.add(opeUseFlow);
            }
            opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve()-opeWarehouseReserve.getSelectNum());
            opeWarehouseReserveDao.updateOpeWarehouseReserve(opeWarehouseReserve);
         }
      } 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);
         if(reagentStatusIds.size()>0){
            this.opeReagentStatusDao.batchUpdateReagentStatusByIds(reagentStatusIds,laboratoryId,laboratoryContainerId,ArrivalStatus.NOREGISTER.getKey());
         }
         if(lrList.size()>0){
            this.opeLaboratoryReserveDao.batchInsert(lrList);
         }
         if(opeUseFlowList.size()>0){
            this.opeUseFlowService.batchInsertOpeUseFlow(opeUseFlowList);
         }
         opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve()-opeWarehouseReserve.getSelectNum());
         opeWarehouseReserveDao.updateOpeWarehouseReserve(opeWarehouseReserve);
      }
   }
   public void reagentDStore2(List<OpeApply> reagentDStoreList, String loginUserId){
   public void reagentDStore2(List<OpeApply> reagentDStoreList, Long loginUserId){
      if (reagentDStoreList == null) {
         return;
      }
@@ -362,7 +383,7 @@
               //opeReagentStatus.setReagentId(opeApply.getReagent().getId());
               opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
               opeReagentStatus.setReagentCode(reagentCode);
               opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
               opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER.getKey());
               opeReagentStatus.setHouseId(opeApply.getHouseId());
               opeReagentStatus.setContainerId(opeApply.getContainerId());
               opeReagentStatus.setUserId(loginUserId);
@@ -394,13 +415,13 @@
               opeReagentStatus.setReagentId(opeApply.getReagent().getId());
               opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
               opeReagentStatus.setReagentCode(reagentCode);
               opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
               opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER.getKey());
               opeReagentStatus.setHouseId(opeApply.getHouseId());
               opeReagentStatus.setContainerId(opeApply.getContainerId());
               opeReagentStatus.setUserId(loginUserId);
               //opeReagentStatus.setPlace(opeApply.getPlaceId());
               //opeReagentStatus.setRemainder(opeApply.getReagent().getMainMetering()!=null?(new BigDecimal(opeApply.getReagent().getMainMetering())):new BigDecimal(0));
               opeReagentStatus.setStoreType(StoreType.DIRECTSTORE);
               opeReagentStatus.setStoreType(StoreType.DIRECTSTORE.getKey());
               this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus);
               // 试剂使用情况入库insert
@@ -412,13 +433,9 @@
               opeUseFlow.setUserId(opeReagentStatus.getUserId());
               opeUseFlow.setPlace(opeReagentStatus.getPlace());
               opeUseFlow.setRemainder(opeApply.getReagent().getMainMetering()!=null?opeApply.getReagent().getMainMetering():new BigDecimal(0));
               opeUseFlow.setStoreType(StoreType.DIRECTSTORE);
               opeUseFlow.setStoreType(StoreType.DIRECTSTORE.getKey());
               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);
               opeUseFlow.setOperateState(baseMetaList.get(0).getId());
               opeUseFlow.setOperateState(OperateStatus.WAREHOUSEIN.getKey());
               this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
               // 试剂使用情况领用insert
               OpeUseFlow ouf=new OpeUseFlow();
@@ -429,13 +446,9 @@
               ouf.setUserId(opeReagentStatus.getUserId());
               ouf.setPlace(opeReagentStatus.getPlace());
               ouf.setRemainder(opeApply.getReagent().getMainMetering()!=null?opeApply.getReagent().getMainMetering():new BigDecimal(0));
               ouf.setStoreType(StoreType.DIRECTSTORE);
               ouf.setStoreType(StoreType.DIRECTSTORE.getKey());
               Map<String, String> metaMap2 = new HashMap<>();
               metaMap2.put("groupId", "operate_status");
               metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey()));
               List<BaseMeta> baseMetaList2 = baseMetaDao.getBaseMetaList(metaMap2);
               ouf.setOperateState(baseMetaList2.get(0).getId());
               ouf.setOperateState(OperateStatus.WAREHOUSEOUT.getKey());
               this.opeUseFlowService.insertOpeUseFlow(ouf);
            }
         }
@@ -443,7 +456,7 @@
      }
   }
   public void reagentDStore4(List<OpeApply> reagentDStoreList, String loginUserId,String receiptNumber){
   public void reagentDStore4(List<OpeApply> reagentDStoreList, Long loginUserId,String receiptNumber){
      if (reagentDStoreList == null) {
         return;
      }
@@ -460,7 +473,7 @@
               //opeReagentStatus.setReagentId(opeApply.getReagent().getId());
               opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
               opeReagentStatus.setReagentCode(reagentCode);
               opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
               opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER.getKey());
               opeReagentStatus.setHouseId(opeApply.getHouseId());
               opeReagentStatus.setContainerId(opeApply.getContainerId());
               opeReagentStatus.setUserId(loginUserId);
@@ -492,13 +505,13 @@
               opeReagentStatus.setReagentId(opeApply.getReagent().getId());
               opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
               opeReagentStatus.setReagentCode(reagentCode);
               opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
               opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER.getKey());
               opeReagentStatus.setHouseId(opeApply.getHouseId());
               opeReagentStatus.setContainerId(opeApply.getContainerId());
               opeReagentStatus.setUserId(loginUserId);
               //opeReagentStatus.setPlace(opeApply.getPlaceId());
               //opeReagentStatus.setRemainder(opeApply.getReagent().getMainMetering()!=null?(new BigDecimal(opeApply.getReagent().getMainMetering())):new BigDecimal(0));
               opeReagentStatus.setStoreType(StoreType.DIRECTSTORE);
               opeReagentStatus.setStoreType(StoreType.DIRECTSTORE.getKey());
               this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus);
@@ -511,13 +524,9 @@
               ouf.setUserId(opeReagentStatus.getUserId());
               ouf.setPlace(opeReagentStatus.getPlace());
               ouf.setRemainder(opeApply.getReagent().getMainMetering()!=null?opeApply.getReagent().getMainMetering():new BigDecimal(0));
               ouf.setStoreType(StoreType.DIRECTSTORE);
               ouf.setStoreType(StoreType.DIRECTSTORE.getKey());
               Map<String, String> metaMap2 = new HashMap<>();
               metaMap2.put("groupId", "operate_status");
               metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey()));
               List<BaseMeta> baseMetaList2 = baseMetaDao.getBaseMetaList(metaMap2);
               ouf.setOperateState(baseMetaList2.get(0).getId());
               ouf.setOperateState(OperateStatus.WAREHOUSEOUT.getKey());
               ouf.setReceiptNumber(receiptNumber);
               this.opeUseFlowService.insertOpeUseFlow(ouf);
            }
@@ -525,7 +534,7 @@
      }
   }
   public void reagentDStore3(List<OpeApply> reagentDStoreList, String loginUserId){
   public void reagentDStore3(List<OpeApply> reagentDStoreList, Long loginUserId){
      if (reagentDStoreList == null) {
         return;
      }
@@ -543,11 +552,11 @@
               opeReagentStatus.setReagentId(opeApply.getReagent().getId());
               opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
               opeReagentStatus.setReagentCode(reagentCode);
               opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
               opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER.getKey());
               opeReagentStatus.setHouseId(opeApply.getHouseId());
               opeReagentStatus.setContainerId(opeApply.getContainerId());
               opeReagentStatus.setUserId(loginUserId);
               opeReagentStatus.setStoreType(StoreType.DIRECTSTORE);
               opeReagentStatus.setStoreType(StoreType.DIRECTSTORE.getKey());
               this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus);
@@ -560,13 +569,9 @@
               ouf.setUserId(opeReagentStatus.getUserId());
               ouf.setPlace(opeReagentStatus.getPlace());
               ouf.setRemainder(opeApply.getReagent().getMainMetering()!=null?opeApply.getReagent().getMainMetering():new BigDecimal(0));
               ouf.setStoreType(StoreType.DIRECTSTORE);
               ouf.setStoreType(StoreType.DIRECTSTORE.getKey());
               Map<String, String> metaMap2 = new HashMap<>();
               metaMap2.put("groupId", "operate_status");
               metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey()));
               List<BaseMeta> baseMetaList2 = baseMetaDao.getBaseMetaList(metaMap2);
               ouf.setOperateState(baseMetaList2.get(0).getId());
               ouf.setOperateState(OperateStatus.WAREHOUSEOUT.getKey());
               this.opeUseFlowService.insertOpeUseFlow(ouf);
            }
         }
@@ -574,12 +579,12 @@
      }
   }
   @Override
   public List<OpeWarehouseReserve> selectByReId(String id) {
   public List<OpeWarehouseReserve> selectByReId(Long id) {
      return this.opeWarehouseReserveDao.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);
@@ -588,7 +593,7 @@
    @Override
   @Transactional
    public void insertOpeWarehouseReserve2(OpeApplyReserve opeApplyReserve, OpeOrder oo,String consigneeId) {
    public void insertOpeWarehouseReserve2(OpeApplyReserve opeApplyReserve, OpeOrder oo,Long consigneeId) {
      OpeWarehouseReserve ope = this.getOpeWarehouseReserve2(opeApplyReserve.getReagent().getId(), opeApplyReserve.getArticleNumber(),opeApplyReserve.getHouseId());
      if (ope == null) {
@@ -608,7 +613,7 @@
         ope.setApplyCode(opeApplyReserve.getApplyCode());
         //批号
         ope.setArticleNumber(opeApplyReserve.getArticleNumber());
         ope.setId(IDUtils.uuid());
         //ope.setId(IDUtils.uuid());
         //新增收货人 保存在仓库库存表
         ope.setUserId(consigneeId);
         opeWarehouseReserveDao.insertOpeWarehouseReserve2(ope);
@@ -623,8 +628,8 @@
    }
   @Override
   public List<OpeWarehouseReserve> selectWarehouseByReagentIdAndArticleNumber(String id,String articleNumber,boolean flag) {
      Map<String, String> params = new HashMap<>();
   public List<OpeWarehouseReserve> selectWarehouseByReagentIdAndArticleNumber(Long id,String articleNumber,boolean flag) {
      Map<String, Object> params = new HashMap<>();
      params.put("reagentId", id);
      params.put("articleNumber", articleNumber);
      List<OpeWarehouseReserve> reserveList = opeWarehouseReserveDao.selectWarehouseByReagentIdAndArticleNumber(params);
@@ -645,8 +650,8 @@
   /**
   * 补贴扣库存去除有条码的数据
   */
   public List<OpeWarehouseReserve> selectWarehouseByRidAndArticleNumberAndWarehouse(String id,String articleNumber,String warehouseId) {
      Map<String, String> params = new HashMap<>();
   public List<OpeWarehouseReserve> selectWarehouseByRidAndArticleNumberAndWarehouse(Long id,String articleNumber,Long warehouseId) {
      Map<String, Object> params = new HashMap<>();
      params.put("reagentId", id);
      params.put("articleNumber", articleNumber);
      params.put("warehouseId", warehouseId);
@@ -665,12 +670,12 @@
   }
   @Override
   public void updateBtReserve(String id, Integer useNum) {
   public void updateBtReserve(Long id, Integer useNum) {
      opeWarehouseReserveDao.updateBtReserve(id, useNum);
   }
    @Override
    public int countByReagentId(String id) {
    public int countByReagentId(Long id) {
      int num = 0;
      if (opeWarehouseReserveDao.countByReagentId(id) != null) {
         num = opeWarehouseReserveDao.countByReagentId(id);
@@ -679,7 +684,7 @@
    }
    @Override
    public OpeWarehouseReserve getRowData(String rowKey) {
    public OpeWarehouseReserve getRowData(Long rowKey) {
        return opeWarehouseReserveDao.getRowData(rowKey);
    }
@@ -689,8 +694,8 @@
         return;
      }
      for (OpeApplyReserve oar : opeList) {
         String reagentId = oar.getReagent().getId();
         List<String> reagentCodes = new ArrayList<>(oar.getReagentCode());
         Long reagentId = oar.getReagent().getId();
         List<String> reagentCodes = new ArrayList<>(oar.getReagentCodes());
         //开始库存扣除
         List<OpeWarehouseReserve> cacheUpdateList = oar.getCacheUpdateList();
         for (OpeWarehouseReserve owr : cacheUpdateList) {
@@ -718,7 +723,7 @@
                     // 试剂使用情况入库insert TODO 流向需要当时的时间和地点
                     OpeUseFlow opeUseFlow = new OpeUseFlow();
                     opeUseFlow.setReagentCode(reagentCodes.get(0));
                     opeUseFlow.setStatus(ArrivalStatus.WAREHOUSE);
                     opeUseFlow.setStatus(ArrivalStatus.WAREHOUSE.getKey());
                     opeUseFlow.setUserId(warehouseReserve.getUserId());
                     //仓库地点
                     opeUseFlow.setHouseId(warehouseReserve.getWarehouseId());
@@ -726,13 +731,9 @@
                     opeUseFlow.setRemainder(oar.getReagent().getMainMetering()!=null?oar.getReagent().getMainMetering():new BigDecimal(0));
                     //入库时间
                     opeUseFlow.setCreateTime(warehouseReserve.getUpdateTime());
                     opeUseFlow.setStoreType(StoreType.DIRECTSTORE);
                     opeUseFlow.setStoreType(StoreType.DIRECTSTORE.getKey());
                     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);
                     opeUseFlow.setOperateState(baseMetaList.get(0).getId());
                     opeUseFlow.setOperateState(OperateStatus.WAREHOUSEIN.getKey());
                     this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
                     //更新试剂状态表 :批号
                     opeReagentStatusDao.updateArticleNumberByRCode(reagentCodes.get(0),warehouseReserve.getArticleNumber());
@@ -758,7 +759,7 @@
   }
   @Transactional(propagation = Propagation.REQUIRED)
   public void reagentDStore(List<OpeApply> reagentDStoreList, String loginUserId) {
   public void reagentDStore(List<OpeApply> reagentDStoreList, Long loginUserId) {
      if (reagentDStoreList == null) {
            return;
@@ -799,13 +800,13 @@
               opeReagentStatus.setReagentId(opeApply.getReagent().getId());
               opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
               opeReagentStatus.setReagentCode(reagentCode);
               opeReagentStatus.setStatus(ArrivalStatus.WAREHOUSE);
               opeReagentStatus.setStatus(ArrivalStatus.WAREHOUSE.getKey());
               opeReagentStatus.setHouseId(opeApply.getHouseId());
               opeReagentStatus.setContainerId(opeApply.getContainerId());
               opeReagentStatus.setUserId(loginUserId);
               opeReagentStatus.setPlace(opeApply.getPlaceId());
               opeReagentStatus.setPlace(opeApply.getPlace());
               opeReagentStatus.setRemainder(opeApply.getReagent().getMainMetering()!=null?(opeApply.getReagent().getMainMetering()):new BigDecimal(0));
               opeReagentStatus.setStoreType(StoreType.DIRECTSTORE);
               opeReagentStatus.setStoreType(StoreType.DIRECTSTORE.getKey());
               this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus);
               // 试剂使用情况insert
@@ -817,13 +818,9 @@
               opeUseFlow.setUserId(opeReagentStatus.getUserId());
               opeUseFlow.setPlace(opeReagentStatus.getPlace());
               opeUseFlow.setRemainder(opeApply.getReagent().getMainMetering()!=null?(opeApply.getReagent().getMainMetering()):new BigDecimal(0));
               opeUseFlow.setStoreType(StoreType.DIRECTSTORE);
               opeUseFlow.setStoreType(StoreType.DIRECTSTORE.getKey());
               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);
               opeUseFlow.setOperateState(baseMetaList.get(0).getId());
               opeUseFlow.setOperateState(OperateStatus.WAREHOUSEIN.getKey());
               this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
@@ -843,7 +840,7 @@
                opeWarehouseReserve.setUserId(loginUserId);
            }
            opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() + opeApply.getArrivalNum());
            if (StringUtils.isBlank(opeWarehouseReserve.getId())) {
            if (opeWarehouseReserve.getId()!=null) {
                this.insertOpeWarehouseReserve(opeWarehouseReserve);
            } else {
                this.updateOpeWarehouseReserve(opeWarehouseReserve);