From 29166bc750623bea12a367ba7c527facdb582235 Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期二, 13 七月 2021 17:12:28 +0800
Subject: [PATCH] 修改转移试剂,生成领用单
---
src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java | 364 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 345 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
index f20a9dd..a37acb1 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
@@ -7,13 +7,16 @@
import javax.annotation.Resource;
import com.nanometer.smartlab.dao.OpeApplyDao;
+import com.nanometer.smartlab.dao.OpeReagentStatusDao;
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.IDUtils;
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;
@@ -44,16 +47,19 @@
@Resource
private OpeReagentStatusService opeReagentStatusService;
+ @Lazy
@Resource
private OpeUseFlowService opeUseFlowService;
- @Resource
- private OpeWarehouseReserveService opeWarehouseReserveService;
@Resource(name="baseMetaDao")
private BaseMetaDao baseMetaDao;
@Resource(name="opeApplyDao")
private OpeApplyDao opeApplyDao;
+ @Resource
+ private OpeReagentStatusDao opeReagentStatusDao;
+ @Resource
+ private OpeLaboratoryReserveService opeLaboratoryReserveService;
@Transactional(propagation = Propagation.REQUIRED)
public List<OpeWarehouseReserve> getOpeWarehouseReserveList(String reagentId, String supplierId, Integer first,
@@ -88,7 +94,7 @@
@Transactional(propagation = Propagation.REQUIRED)
public List<OpeWarehouseReserve> getOpeWarehouseReserveListByName(String reagentId, String supplierId, Integer first,
- Integer pageSize,String productSn) {
+ Integer pageSize,String productSn,String warehouseName) {
try {
Map<String, Object> params = new HashMap<String, Object>();
params.put("reagentName", reagentId);
@@ -96,6 +102,7 @@
params.put("first", first);
params.put("pageSize", pageSize);
params.put("productSn", productSn);
+ params.put("warehouseName", warehouseName);
return this.opeWarehouseReserveDao.getOpeWarehouseReserveList(params);
} catch (DataAccessException e) {
logger.error(e.getMessage(), e);
@@ -105,12 +112,13 @@
}
@Transactional(propagation = Propagation.REQUIRED)
- public int getOpeWarehouseReserveTotalCountByName(String reagentId, String supplierId,String productSn) {
+ public int getOpeWarehouseReserveTotalCountByName(String reagentId, String supplierId,String productSn,String warehouseName) {
try {
Map<String, Object> params = new HashMap<String, Object>();
params.put("reagentName", reagentId);
params.put("supplierId", supplierId);
params.put("productSn", productSn);
+ params.put("warehouseName", warehouseName);
return this.opeWarehouseReserveDao.getOpeWarehouseReserveTotalCount(params);
} catch (DataAccessException e) {
logger.error(e.getMessage(), e);
@@ -164,6 +172,17 @@
MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e);
}
}
+
+ @Override
+ public List<OpeWarehouseReserve> getOpeWarehouseReserveList(String reagentId, String articleNumber,String warehouseId) {
+ Map<String, String> params = new HashMap<>();
+ params.put("reagentId", reagentId);
+ params.put("warehouseId", warehouseId);
+ params.put("articleNumber", articleNumber);
+
+ return this.opeWarehouseReserveDao.getOpeWarehouseReserveList2(params);
+ }
+
@Transactional(propagation = Propagation.REQUIRED)
public OpeWarehouseReserve insertOpeWarehouseReserve(OpeWarehouseReserve opeWarehouseReserve) {
try {
@@ -186,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);
@@ -206,21 +225,23 @@
}
}
- @Transactional(propagation = Propagation.REQUIRED)
- public void claimForPerson(List<OpeApplyReserve> selectedListForPerson,String userId,String projectNum){
+ @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.updateReagentStatus(opeReagentStatus);
- ss.add(opeReagentStatus);
- }
+ this.opeReagentStatusService.updateReagentStatus3(reagentCodes,userId,projectNum,laboratoryId,laboratoryContainerId);
+
+ //更新是现实库存
+ OpeLaboratoryReserve lr=new OpeLaboratoryReserve();
+ lr.setReagentId(app.getReagent().getId());
+ lr.setHouseId(laboratoryId);
+ lr.setContainerId(laboratoryContainerId);
+ lr.setReserve(app.getSelectNum());
+ lr.setUserId(userId);
+ lr.setValidFlag(ValidFlag.VALID);
+ this.opeLaboratoryReserveService.insert(lr);
/*HashSet<String> set=new HashSet<>();//存放批号
for(int i=0;i<ss.size();i++){
set.add(ss.get(i).getArticleNumber());
@@ -262,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);
}
}
@@ -419,6 +443,135 @@
}
}
+ public void reagentDStore4(List<OpeApply> reagentDStoreList, String loginUserId){
+ if (reagentDStoreList == null) {
+ return;
+ }
+ OpeReagentStatus opeReagentStatus = null;
+ for (OpeApply opeApply : reagentDStoreList) {
+ List<String> codeList = opeApply.getReagentCodeList();
+ for (String reagentCode:codeList) {
+ if (this.opeReagentStatusService.isOpeReagentStatusExist(reagentCode)) {//条码存在
+ //throw new BusinessException(ExceptionEnumCode.REAGENT_CODE_EXIST, "入库试剂:" + opeApply.getReagent().getName() + "的试剂条形码[" + reagentCode + "]已存在。");
+ // 试剂最新状态update
+ opeReagentStatus=this.opeReagentStatusService.getOpeReagentStatusByReagentCode(reagentCode);
+ //opeReagentStatus = new OpeReagentStatus();
+ //opeReagentStatus.setId(id);
+ //opeReagentStatus.setReagentId(opeApply.getReagent().getId());
+ opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
+ opeReagentStatus.setReagentCode(reagentCode);
+ opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
+ 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);
+ this.opeReagentStatusService.updateReagentStatus2(opeReagentStatus);
+
+ // 试剂使用情况领用insert
+ /*OpeUseFlow ouf=new OpeUseFlow();
+ ouf.setReagentCode(opeReagentStatus.getReagentCode());
+ ouf.setStatus(opeReagentStatus.getStatus());
+ ouf.setHouseId(opeReagentStatus.getHouseId());
+ ouf.setContainerId(opeReagentStatus.getContainerId());
+ ouf.setUserId(opeReagentStatus.getUserId());
+ ouf.setPlace(opeReagentStatus.getPlace());
+ ouf.setRemainder(opeApply.getReagent().getMainMetering()!=null?(new BigDecimal(opeApply.getReagent().getMainMetering())):new BigDecimal(0));
+ ouf.setStoreType(StoreType.DIRECTSTORE);
+
+ 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());
+ this.opeUseFlowService.insertOpeUseFlow(ouf);*/
+ }else{//条码不存在
+ // 试剂最新状态insert
+ opeReagentStatus = new OpeReagentStatus();
+ opeReagentStatus.setReagentId(opeApply.getReagent().getId());
+ opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
+ opeReagentStatus.setReagentCode(reagentCode);
+ opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
+ 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);
+ this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus);
+
+
+ // 试剂使用情况领用insert
+ OpeUseFlow ouf=new OpeUseFlow();
+ ouf.setReagentCode(opeReagentStatus.getReagentCode());
+ ouf.setStatus(opeReagentStatus.getStatus());
+ ouf.setHouseId(opeReagentStatus.getHouseId());
+ ouf.setContainerId(opeReagentStatus.getContainerId());
+ ouf.setUserId(opeReagentStatus.getUserId());
+ ouf.setPlace(opeReagentStatus.getPlace());
+ ouf.setRemainder(opeApply.getReagent().getMainMetering()!=null?opeApply.getReagent().getMainMetering():new BigDecimal(0));
+ ouf.setStoreType(StoreType.DIRECTSTORE);
+
+ 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());
+ this.opeUseFlowService.insertOpeUseFlow(ouf);
+ }
+ }
+
+ }
+ }
+ public void reagentDStore3(List<OpeApply> reagentDStoreList, String loginUserId){
+ if (reagentDStoreList == null) {
+ return;
+ }
+ for (OpeApply opeApply : reagentDStoreList) {
+
+ for (String reagentCode:opeApply.getReagentCodeList()) {
+ if (this.opeReagentStatusService.isOpeReagentStatusExist(reagentCode)) {
+ //条码存在
+ throw new BusinessException(ExceptionEnumCode.REAGENT_CODE_EXIST, "入库试剂:" + opeApply.getReagent().getName() + "的试剂条形码[" + reagentCode + "]已存在。");
+
+ }else{
+ //条码不存在
+ // 试剂状态insert
+ OpeReagentStatus opeReagentStatus = new OpeReagentStatus();
+ opeReagentStatus.setReagentId(opeApply.getReagent().getId());
+ opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
+ opeReagentStatus.setReagentCode(reagentCode);
+ opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
+ opeReagentStatus.setHouseId(opeApply.getHouseId());
+ opeReagentStatus.setContainerId(opeApply.getContainerId());
+ opeReagentStatus.setUserId(loginUserId);
+ opeReagentStatus.setStoreType(StoreType.DIRECTSTORE);
+ this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus);
+
+
+ // 试剂使用情况领用insert
+ OpeUseFlow ouf=new OpeUseFlow();
+ ouf.setReagentCode(opeReagentStatus.getReagentCode());
+ ouf.setStatus(opeReagentStatus.getStatus());
+ ouf.setHouseId(opeReagentStatus.getHouseId());
+ ouf.setContainerId(opeReagentStatus.getContainerId());
+ ouf.setUserId(opeReagentStatus.getUserId());
+ ouf.setPlace(opeReagentStatus.getPlace());
+ ouf.setRemainder(opeApply.getReagent().getMainMetering()!=null?opeApply.getReagent().getMainMetering():new BigDecimal(0));
+ ouf.setStoreType(StoreType.DIRECTSTORE);
+
+ 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());
+ this.opeUseFlowService.insertOpeUseFlow(ouf);
+ }
+ }
+
+ }
+ }
@Override
public List<OpeWarehouseReserve> selectByReId(String id) {
return this.opeWarehouseReserveDao.selectByReId(id);
@@ -430,6 +583,177 @@
params.put("newReId",newReId);
params.put("oldReId",oldReId);
this.opeWarehouseReserveDao.updateByReId(params);
+ }
+
+ @Override
+ @Transactional
+ public void insertOpeWarehouseReserve2(OpeApplyReserve opeApplyReserve, OpeOrder oo,String consigneeId) {
+
+ OpeWarehouseReserve ope = this.getOpeWarehouseReserve2(opeApplyReserve.getReagent().getId(), opeApplyReserve.getArticleNumber(),opeApplyReserve.getHouseId());
+ if (ope == null) {
+
+ ope = new OpeWarehouseReserve();
+ //库存为到货数量
+ ope.setReserve(opeApplyReserve.getArrivalNum());
+ //仓库
+ ope.setWarehouseId(opeApplyReserve.getHouseId());
+ //仓库的货柜号
+ ope.setContainerId(opeApplyReserve.getContainerId());
+ //试剂
+ ope.setReagentId(opeApplyReserve.getReagent().getId());
+ //订单编号
+ ope.setOrderCode(oo.getOrderCode());
+ // 申购编号
+ ope.setApplyCode(opeApplyReserve.getApplyCode());
+ //批号
+ ope.setArticleNumber(opeApplyReserve.getArticleNumber());
+ ope.setId(IDUtils.uuid());
+ //新增收货人 保存在仓库库存表
+ ope.setUserId(consigneeId);
+ opeWarehouseReserveDao.insertOpeWarehouseReserve2(ope);
+ }else {
+ ope.setReserve(ope.getReserve() + opeApplyReserve.getArrivalNum());
+ this.updateOpeWarehouseReserve(ope);
+ }
+
+
+
+
+ }
+
+ @Override
+ public List<OpeWarehouseReserve> selectWarehouseByReagentIdAndArticleNumber(String id,String articleNumber,boolean flag) {
+ Map<String, String> params = new HashMap<>();
+ params.put("reagentId", id);
+ params.put("articleNumber", articleNumber);
+ List<OpeWarehouseReserve> reserveList = opeWarehouseReserveDao.selectWarehouseByReagentIdAndArticleNumber(params);
+ //减去 每个仓库中的试剂有条码的个数
+ //count(reagent_id,warehouseId,1)
+ if (reserveList.size() > 0) {
+ for (OpeWarehouseReserve owr : reserveList) {
+ //根据批次号 仓库名和试剂 得到在仓库有条码的试剂总数
+ if (flag) {
+ int numOfReagentHasCode = opeReagentStatusService.getReagentNumInWarehouse(id, articleNumber, owr.getWarehouseId());
+ //仓库显示 可以补贴条码的试剂总数
+ owr.setReserve(owr.getReserve()-numOfReagentHasCode);
+ }
+ }
+ }
+ return reserveList;
+ }
+ /**
+ * 补贴扣库存去除有条码的数据
+ */
+ public List<OpeWarehouseReserve> selectWarehouseByRidAndArticleNumberAndWarehouse(String id,String articleNumber,String warehouseId) {
+ Map<String, String> params = new HashMap<>();
+ params.put("reagentId", id);
+ params.put("articleNumber", articleNumber);
+ params.put("warehouseId", warehouseId);
+ List<OpeWarehouseReserve> reserveList = opeWarehouseReserveDao.selectWarehouseByRidAndArtiNumberAndWid(params);
+ //减去 每个仓库中的试剂有条码的个数
+ //count(reagent_id,warehouseId,1)
+ if (reserveList.size() > 0) {
+ for (OpeWarehouseReserve owr : reserveList) {
+ //根据批次号 仓库名和试剂 得到在仓库有条码的试剂总数
+ int numOfReagentHasCode = opeReagentStatusService.getReagentNumInWarehouse(id, owr.getArticleNumber(), owr.getWarehouseId());
+ //仓库显示 可以补贴条码的试剂总数
+ owr.setReserve(owr.getReserve()-numOfReagentHasCode);
+ }
+ }
+ return reserveList;
+ }
+
+ @Override
+ public void updateBtReserve(String id, Integer useNum) {
+ opeWarehouseReserveDao.updateBtReserve(id, useNum);
+ }
+
+ @Override
+ public int countByReagentId(String id) {
+ int num = 0;
+ if (opeWarehouseReserveDao.countByReagentId(id) != null) {
+ num = opeWarehouseReserveDao.countByReagentId(id);
+ }
+ return num;
+ }
+
+ @Override
+ public OpeWarehouseReserve getRowData(String rowKey) {
+ return opeWarehouseReserveDao.getRowData(rowKey);
+ }
+
+ @Override
+ public void btWarehouseReserveReduce(List<OpeApplyReserve> opeList) {
+ if (opeList.size() < 1) {
+ return;
+ }
+ for (OpeApplyReserve oar : opeList) {
+ String reagentId = oar.getReagent().getId();
+ List<String> reagentCodes = new ArrayList<>(oar.getReagentCode());
+ //开始库存扣除
+ List<OpeWarehouseReserve> cacheUpdateList = oar.getCacheUpdateList();
+ for (OpeWarehouseReserve owr : cacheUpdateList) {
+ //1.根据仓库id和试剂id搜索不同批号的试剂库存
+ List<OpeWarehouseReserve> reserveList = this
+ .selectWarehouseByRidAndArticleNumberAndWarehouse(reagentId, owr.getArticleNumber(), owr.getWarehouseId());
+ Integer numLeave = owr.getUseNum();
+
+ for (OpeWarehouseReserve warehouseReserve:reserveList){
+ //库存大于剩余领用-》直接扣完
+ int usedNum = 0;
+ if (warehouseReserve.getReserve() > numLeave) {
+ // warehouseReserve.setReserve(warehouseReserve.getReserve() - numLeave);
+ usedNum = numLeave;
+ numLeave = 0;
+ } else {
+ numLeave = numLeave - warehouseReserve.getReserve();
+ // warehouseReserve.setReserve(0);
+ usedNum = warehouseReserve.getReserve();
+ }
+
+ //更新流向,加入一条
+ if (usedNum > 0) {
+ for (int i = 0; i < usedNum; i++) {
+ // 试剂使用情况入库insert TODO 流向需要当时的时间和地点
+ OpeUseFlow opeUseFlow = new OpeUseFlow();
+ opeUseFlow.setReagentCode(reagentCodes.get(0));
+ opeUseFlow.setStatus(ArrivalStatus.WAREHOUSE);
+ opeUseFlow.setUserId(warehouseReserve.getUserId());
+ //仓库地点
+ opeUseFlow.setHouseId(warehouseReserve.getWarehouseId());
+ opeUseFlow.setContainerId(warehouseReserve.getContainerId());
+ opeUseFlow.setRemainder(oar.getReagent().getMainMetering()!=null?oar.getReagent().getMainMetering():new BigDecimal(0));
+ //入库时间
+ opeUseFlow.setCreateTime(warehouseReserve.getUpdateTime());
+ opeUseFlow.setStoreType(StoreType.DIRECTSTORE);
+
+ 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());
+ this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
+ //更新试剂状态表 :批号
+ opeReagentStatusDao.updateArticleNumberByRCode(reagentCodes.get(0),warehouseReserve.getArticleNumber());
+
+ reagentCodes.remove(0);
+
+ }
+
+ }
+
+
+ //更新库存
+ this.updateBtReserve(warehouseReserve.getId(),usedNum);
+ if (numLeave < 1) {
+ break;
+ }
+ }
+
+
+
+ }
+ }
}
@Transactional(propagation = Propagation.REQUIRED)
@@ -507,19 +831,21 @@
// 仓库库存update
- opeWarehouseReserve = this.opeWarehouseReserveService.getOpeWarehouseReserve2(opeApply.getReagent().getId(), opeApply.getArticleNumber(),opeApply.getHouseId());
+ opeWarehouseReserve = this.getOpeWarehouseReserve2(opeApply.getReagent().getId(), opeApply.getArticleNumber(),opeApply.getHouseId());
if (opeWarehouseReserve == null) {
opeWarehouseReserve = new OpeWarehouseReserve();
opeWarehouseReserve.setReagentId(opeApply.getReagent().getId());
opeWarehouseReserve.setArticleNumber(opeApply.getArticleNumber());
opeWarehouseReserve.setReserve(0);
opeWarehouseReserve.setWarehouseId(opeApply.getHouseId());
+ opeWarehouseReserve.setContainerId(opeApply.getContainerId());
+ opeWarehouseReserve.setUserId(loginUserId);
}
opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() + opeApply.getArrivalNum());
if (StringUtils.isBlank(opeWarehouseReserve.getId())) {
- this.opeWarehouseReserveService.insertOpeWarehouseReserve(opeWarehouseReserve);
+ this.insertOpeWarehouseReserve(opeWarehouseReserve);
} else {
- this.opeWarehouseReserveService.updateOpeWarehouseReserve(opeWarehouseReserve);
+ this.updateOpeWarehouseReserve(opeWarehouseReserve);
}
}
}
--
Gitblit v1.9.2