解决给商品批量修正库存的bug
This commit is contained in:
@@ -1049,9 +1049,10 @@ public class DepotItemService {
|
||||
*/
|
||||
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||
public void updateCurrentStock(DepotItem depotItem) throws Exception {
|
||||
updateCurrentStockFun(depotItem.getMaterialId(), depotItem.getDepotId());
|
||||
BigDecimal currentUnitPrice = materialCurrentStockMapperEx.getCurrentUnitPriceByMId(depotItem.getMaterialId());
|
||||
updateCurrentStockFun(depotItem.getMaterialId(), depotItem.getDepotId(), currentUnitPrice);
|
||||
if(depotItem.getAnotherDepotId()!=null){
|
||||
updateCurrentStockFun(depotItem.getMaterialId(), depotItem.getAnotherDepotId());
|
||||
updateCurrentStockFun(depotItem.getMaterialId(), depotItem.getAnotherDepotId(), currentUnitPrice);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1136,7 +1137,7 @@ public class DepotItemService {
|
||||
* @param mId
|
||||
* @param dId
|
||||
*/
|
||||
public void updateCurrentStockFun(Long mId, Long dId) throws Exception {
|
||||
public void updateCurrentStockFun(Long mId, Long dId, BigDecimal currentUnitPrice) throws Exception {
|
||||
if(mId!=null && dId!=null) {
|
||||
MaterialCurrentStockExample example = new MaterialCurrentStockExample();
|
||||
example.createCriteria().andMaterialIdEqualTo(mId).andDepotIdEqualTo(dId)
|
||||
@@ -1146,6 +1147,7 @@ public class DepotItemService {
|
||||
materialCurrentStock.setMaterialId(mId);
|
||||
materialCurrentStock.setDepotId(dId);
|
||||
materialCurrentStock.setCurrentNumber(getStockByParam(dId,mId,null,null));
|
||||
materialCurrentStock.setCurrentUnitPrice(currentUnitPrice);
|
||||
if(list!=null && list.size()>0) {
|
||||
Long mcsId = list.get(0).getId();
|
||||
materialCurrentStock.setId(mcsId);
|
||||
|
||||
@@ -209,6 +209,7 @@ public class MaterialService {
|
||||
materialMapperEx.setExpiryNumToNull(material.getId());
|
||||
}
|
||||
materialExtendService.saveDetials(obj, obj.getString("sortList"),material.getId(), "update");
|
||||
BigDecimal currentUnitPrice = materialCurrentStockMapperEx.getCurrentUnitPriceByMId(material.getId());
|
||||
if(obj.get("stock")!=null) {
|
||||
JSONArray stockArr = obj.getJSONArray("stock");
|
||||
for (int i = 0; i < stockArr.size(); i++) {
|
||||
@@ -232,7 +233,7 @@ public class MaterialService {
|
||||
insertInitialStockByMaterialAndDepot(depotId, material.getId(), parseBigDecimalEx(number), lowSafeStock, highSafeStock);
|
||||
}
|
||||
//更新当前库存
|
||||
depotItemService.updateCurrentStockFun(material.getId(), depotId);
|
||||
depotItemService.updateCurrentStockFun(material.getId(), depotId, currentUnitPrice);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1432,8 +1433,9 @@ public class MaterialService {
|
||||
List<Long> idList = StringUtil.strToLongList(ids);
|
||||
List<Depot> depotList = depotService.getAllList();
|
||||
for(Long mId: idList) {
|
||||
BigDecimal currentUnitPrice = materialCurrentStockMapperEx.getCurrentUnitPriceByMId(mId);
|
||||
for(Depot depot: depotList) {
|
||||
depotItemService.updateCurrentStockFun(mId, depot.getId());
|
||||
depotItemService.updateCurrentStockFun(mId, depot.getId(), currentUnitPrice);
|
||||
res = 1;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user