|
@@ -28,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import java.math.BigDecimal;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -78,24 +79,25 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
|
|
List<VoyageStockDistributeLogDO> logList = BeanUtils.toBean(createReqVO, VoyageStockDistributeLogDO.class);
|
|
List<VoyageStockDistributeLogDO> logList = BeanUtils.toBean(createReqVO, VoyageStockDistributeLogDO.class);
|
|
voyageStockDistributeLogMapper.insertBatch(logList);
|
|
voyageStockDistributeLogMapper.insertBatch(logList);
|
|
|
|
|
|
|
|
+ BigDecimal zero = BigDecimal.ZERO;
|
|
//修改或插入库存表
|
|
//修改或插入库存表
|
|
List<VoyageStockDistributeDO> list = voyageStockDistributeMapper.selectListByVoyageId(voyageId);
|
|
List<VoyageStockDistributeDO> list = voyageStockDistributeMapper.selectListByVoyageId(voyageId);
|
|
if(CollectionUtils.isAnyEmpty(list)) {//为空则新增
|
|
if(CollectionUtils.isAnyEmpty(list)) {//为空则新增
|
|
list = BeanUtils.toBean(createReqVO, VoyageStockDistributeDO.class);
|
|
list = BeanUtils.toBean(createReqVO, VoyageStockDistributeDO.class);
|
|
list.stream().forEach(item -> {
|
|
list.stream().forEach(item -> {
|
|
- item.setBookNum(0);
|
|
|
|
|
|
+ item.setBookNum(zero);
|
|
item.setSurplusNum(item.getNum());
|
|
item.setSurplusNum(item.getNum());
|
|
item.setRoomModelNum(item.getRoomModelNum());
|
|
item.setRoomModelNum(item.getRoomModelNum());
|
|
});
|
|
});
|
|
voyageStockDistributeMapper.insertBatch(list);
|
|
voyageStockDistributeMapper.insertBatch(list);
|
|
}else { //不为空则修改库存
|
|
}else { //不为空则修改库存
|
|
- Map<String, Integer> roomNumMap = CollectionUtils.convertMap(createReqVO, item -> {
|
|
|
|
|
|
+ Map<String, BigDecimal> roomNumMap = CollectionUtils.convertMap(createReqVO, item -> {
|
|
//key为航次ID_分销商类型_分销商ID_门店ID_房型ID_楼层号作为唯一
|
|
//key为航次ID_分销商类型_分销商ID_门店ID_房型ID_楼层号作为唯一
|
|
return item.getVoyageId() + "_" + item.getDistributorType()
|
|
return item.getVoyageId() + "_" + item.getDistributorType()
|
|
+ "_" + item.getDistributorId() + "_" + item.getStoreId()
|
|
+ "_" + item.getDistributorId() + "_" + item.getStoreId()
|
|
+ "_" + item.getRoomModelId() + "_" + item.getFloor();
|
|
+ "_" + item.getRoomModelId() + "_" + item.getFloor();
|
|
}, item -> item.getNum());
|
|
}, item -> item.getNum());
|
|
- Map<String, Integer> roomModelNumMap = CollectionUtils.convertMap(createReqVO, item -> {
|
|
|
|
|
|
+ Map<String, BigDecimal> roomModelNumMap = CollectionUtils.convertMap(createReqVO, item -> {
|
|
//key为航次ID_分销商类型_分销商ID_门店ID_房型ID_楼层号作为唯一
|
|
//key为航次ID_分销商类型_分销商ID_门店ID_房型ID_楼层号作为唯一
|
|
return item.getVoyageId() + "_" + item.getDistributorType()
|
|
return item.getVoyageId() + "_" + item.getDistributorType()
|
|
+ "_" + item.getDistributorId() + "_" + item.getStoreId()
|
|
+ "_" + item.getDistributorId() + "_" + item.getStoreId()
|
|
@@ -114,8 +116,8 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
|
|
String key = item.getVoyageId() + "_" + item.getDistributorType()
|
|
String key = item.getVoyageId() + "_" + item.getDistributorType()
|
|
+ "_" + item.getDistributorId() + "_" + item.getStoreId()
|
|
+ "_" + item.getDistributorId() + "_" + item.getStoreId()
|
|
+ "_" + item.getRoomModelId() + "_" + item.getFloor();
|
|
+ "_" + item.getRoomModelId() + "_" + item.getFloor();
|
|
- item.setNum(item.getNum()+roomNumMap.get(key));
|
|
|
|
- item.setSurplusNum(item.getSurplusNum()+roomNumMap.get(key));
|
|
|
|
|
|
+ item.setNum(item.getNum().add(roomNumMap.get(key)));
|
|
|
|
+ item.setSurplusNum(item.getSurplusNum().add(roomNumMap.get(key)));
|
|
item.setRoomModelNum(roomModelNumMap.get(key));
|
|
item.setRoomModelNum(roomModelNumMap.get(key));
|
|
item.setRoomNums(roomNumsMap.get(key));
|
|
item.setRoomNums(roomNumsMap.get(key));
|
|
});
|
|
});
|
|
@@ -136,7 +138,7 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
|
|
if(!CollectionUtils.isAnyEmpty(newList)) {
|
|
if(!CollectionUtils.isAnyEmpty(newList)) {
|
|
List<VoyageStockDistributeDO> addList = BeanUtils.toBean(newList, VoyageStockDistributeDO.class);
|
|
List<VoyageStockDistributeDO> addList = BeanUtils.toBean(newList, VoyageStockDistributeDO.class);
|
|
addList.stream().forEach(item -> {
|
|
addList.stream().forEach(item -> {
|
|
- item.setBookNum(0);
|
|
|
|
|
|
+ item.setBookNum(zero);
|
|
item.setSurplusNum(item.getNum());
|
|
item.setSurplusNum(item.getNum());
|
|
item.setRoomModelNum(item.getRoomModelNum());
|
|
item.setRoomModelNum(item.getRoomModelNum());
|
|
});
|
|
});
|
|
@@ -183,7 +185,7 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
|
|
stockDistributeDO.setRoomModelId(item.getRoomModelId());
|
|
stockDistributeDO.setRoomModelId(item.getRoomModelId());
|
|
stockDistributeDO.setRoomModelName(item.getRoomModelName());
|
|
stockDistributeDO.setRoomModelName(item.getRoomModelName());
|
|
stockDistributeDO.setFloor(item.getFloor());
|
|
stockDistributeDO.setFloor(item.getFloor());
|
|
- stockDistributeDO.setNum(0);
|
|
|
|
|
|
+ stockDistributeDO.setNum(BigDecimal.ZERO);
|
|
stockDistributeDO.setDistributorType(DistributorTypeEnum.OTA.getType());
|
|
stockDistributeDO.setDistributorType(DistributorTypeEnum.OTA.getType());
|
|
stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTA.getName());
|
|
stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTA.getName());
|
|
stockDistributeDO.setDistributorId(null);
|
|
stockDistributeDO.setDistributorId(null);
|
|
@@ -198,7 +200,7 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
|
|
stockDistributeDO.setRoomModelId(item.getRoomModelId());
|
|
stockDistributeDO.setRoomModelId(item.getRoomModelId());
|
|
stockDistributeDO.setRoomModelName(item.getRoomModelName());
|
|
stockDistributeDO.setRoomModelName(item.getRoomModelName());
|
|
stockDistributeDO.setFloor(item.getFloor());
|
|
stockDistributeDO.setFloor(item.getFloor());
|
|
- stockDistributeDO.setNum(0);
|
|
|
|
|
|
+ stockDistributeDO.setNum(BigDecimal.ZERO);
|
|
stockDistributeDO.setDistributorType(DistributorTypeEnum.OTC.getType());
|
|
stockDistributeDO.setDistributorType(DistributorTypeEnum.OTC.getType());
|
|
stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTC.getName());
|
|
stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTC.getName());
|
|
stockDistributeDO.setDistributorId(null);
|
|
stockDistributeDO.setDistributorId(null);
|
|
@@ -216,7 +218,7 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
|
|
stockDistributeDO.setRoomModelId(item.getRoomModelId());
|
|
stockDistributeDO.setRoomModelId(item.getRoomModelId());
|
|
stockDistributeDO.setRoomModelName(item.getRoomModelName());
|
|
stockDistributeDO.setRoomModelName(item.getRoomModelName());
|
|
stockDistributeDO.setFloor(item.getFloor());
|
|
stockDistributeDO.setFloor(item.getFloor());
|
|
- stockDistributeDO.setNum(0);
|
|
|
|
|
|
+ stockDistributeDO.setNum(BigDecimal.ZERO);
|
|
stockDistributeDO.setDistributorType(DistributorTypeEnum.OTA.getType());
|
|
stockDistributeDO.setDistributorType(DistributorTypeEnum.OTA.getType());
|
|
stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTA.getName());
|
|
stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTA.getName());
|
|
stockDistributeDO.setDistributorId(distributor.getId());
|
|
stockDistributeDO.setDistributorId(distributor.getId());
|
|
@@ -236,7 +238,7 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
|
|
stockDistributeDO.setRoomModelId(item.getRoomModelId());
|
|
stockDistributeDO.setRoomModelId(item.getRoomModelId());
|
|
stockDistributeDO.setRoomModelName(item.getRoomModelName());
|
|
stockDistributeDO.setRoomModelName(item.getRoomModelName());
|
|
stockDistributeDO.setFloor(item.getFloor());
|
|
stockDistributeDO.setFloor(item.getFloor());
|
|
- stockDistributeDO.setNum(0);
|
|
|
|
|
|
+ stockDistributeDO.setNum(BigDecimal.ZERO);
|
|
stockDistributeDO.setDistributorType(DistributorTypeEnum.OTC.getType());
|
|
stockDistributeDO.setDistributorType(DistributorTypeEnum.OTC.getType());
|
|
stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTC.getName());
|
|
stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTC.getName());
|
|
stockDistributeDO.setDistributorId(distributor.getId());
|
|
stockDistributeDO.setDistributorId(distributor.getId());
|
|
@@ -255,7 +257,7 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
|
|
stockDistributeDO.setRoomModelId(item.getRoomModelId());
|
|
stockDistributeDO.setRoomModelId(item.getRoomModelId());
|
|
stockDistributeDO.setRoomModelName(item.getRoomModelName());
|
|
stockDistributeDO.setRoomModelName(item.getRoomModelName());
|
|
stockDistributeDO.setFloor(item.getFloor());
|
|
stockDistributeDO.setFloor(item.getFloor());
|
|
- stockDistributeDO.setNum(0);
|
|
|
|
|
|
+ stockDistributeDO.setNum(BigDecimal.ZERO);
|
|
stockDistributeDO.setDistributorType(DistributorTypeEnum.OTC.getType());
|
|
stockDistributeDO.setDistributorType(DistributorTypeEnum.OTC.getType());
|
|
stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTC.getName());
|
|
stockDistributeDO.setDistributorTypeName(DistributorTypeEnum.OTC.getName());
|
|
stockDistributeDO.setDistributorId(store.getAgencyId());
|
|
stockDistributeDO.setDistributorId(store.getAgencyId());
|