|
@@ -32,6 +32,7 @@ import org.springframework.validation.annotation.Validated;
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
@@ -75,6 +76,7 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
|
|
|
private VoyageStockRoomUsedMapper voyageStockRoomUsedMapper;
|
|
private VoyageStockRoomUsedMapper voyageStockRoomUsedMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public void createVoyageStockDistributeNew(Long voyageId, Integer type, List<VoyageStockDistributeNewSaveReqVO> createReqVO) {
|
|
public void createVoyageStockDistributeNew(Long voyageId, Integer type, List<VoyageStockDistributeNewSaveReqVO> createReqVO) {
|
|
|
BigDecimal zero = BigDecimal.ZERO;
|
|
BigDecimal zero = BigDecimal.ZERO;
|
|
@@ -221,20 +223,40 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
|
|
|
Map<Long, BigDecimal> idNumMap = CollectionUtils.convertMap(distributeNewList, VoyageStockDistributeNewPageRespVO::getVoyageId, VoyageStockDistributeNewPageRespVO::getNum);
|
|
Map<Long, BigDecimal> idNumMap = CollectionUtils.convertMap(distributeNewList, VoyageStockDistributeNewPageRespVO::getVoyageId, VoyageStockDistributeNewPageRespVO::getNum);
|
|
|
Map<Long, BigDecimal> idRoomModelNumMap = CollectionUtils.convertMap(distributeNewList, VoyageStockDistributeNewPageRespVO::getVoyageId, VoyageStockDistributeNewPageRespVO::getRoomModelNum);
|
|
Map<Long, BigDecimal> idRoomModelNumMap = CollectionUtils.convertMap(distributeNewList, VoyageStockDistributeNewPageRespVO::getVoyageId, VoyageStockDistributeNewPageRespVO::getRoomModelNum);
|
|
|
List<VoyageStockDistributeNewPageRespVO> resultList = new ArrayList<>();
|
|
List<VoyageStockDistributeNewPageRespVO> resultList = new ArrayList<>();
|
|
|
|
|
+
|
|
|
list.forEach(item -> {
|
|
list.forEach(item -> {
|
|
|
BigDecimal num = idNumMap.get(item.getVoyageId());
|
|
BigDecimal num = idNumMap.get(item.getVoyageId());
|
|
|
BigDecimal roomModelNum = idRoomModelNumMap.get(item.getVoyageId());
|
|
BigDecimal roomModelNum = idRoomModelNumMap.get(item.getVoyageId());
|
|
|
|
|
+ // 根据航次查询是否有营销政策(暂时包含当天)
|
|
|
|
|
+ Long policyNum = voyageStockDistributeNewMapper.selectIsPolicy(item.getVoyageId());
|
|
|
VoyageStockDistributeNewPageRespVO respVO = new VoyageStockDistributeNewPageRespVO();
|
|
VoyageStockDistributeNewPageRespVO respVO = new VoyageStockDistributeNewPageRespVO();
|
|
|
respVO.setVoyageId(item.getVoyageId());
|
|
respVO.setVoyageId(item.getVoyageId());
|
|
|
respVO.setVoyageName(item.getVoyageName());
|
|
respVO.setVoyageName(item.getVoyageName());
|
|
|
respVO.setShipId(item.getShipId());
|
|
respVO.setShipId(item.getShipId());
|
|
|
respVO.setShipName(item.getShipName());
|
|
respVO.setShipName(item.getShipName());
|
|
|
|
|
+ if(policyNum==0){
|
|
|
|
|
+ respVO.setIsPolicy(YesOrNoEnum.NO.getType());
|
|
|
|
|
+ }else{
|
|
|
|
|
+ respVO.setIsPolicy(YesOrNoEnum.YES.getType());
|
|
|
|
|
+ }
|
|
|
|
|
+ VoyageStockDistributeNewDetailReqVO detailReqVO = new VoyageStockDistributeNewDetailReqVO();
|
|
|
|
|
+ detailReqVO.setVoyageId(item.getVoyageId());
|
|
|
|
|
+ detailReqVO.setType(item.getType());
|
|
|
|
|
+ detailReqVO.setObjectId(reqVO.getObjectId());
|
|
|
|
|
+ detailReqVO.setShipId(item.getShipId());
|
|
|
|
|
+
|
|
|
if(num != null) {
|
|
if(num != null) {
|
|
|
respVO.setNum(num);
|
|
respVO.setNum(num);
|
|
|
respVO.setEnableShare(YesOrNoEnum.NO.getType());
|
|
respVO.setEnableShare(YesOrNoEnum.NO.getType());
|
|
|
|
|
+ detailReqVO.setEnableShare(YesOrNoEnum.NO.getType());
|
|
|
|
|
+ List<VoyageStockDistributeNewRespVO> distributorStockDetail = getDistributorStockDetail(detailReqVO);
|
|
|
|
|
+ respVO.setDistributeNewRespVOList(convertDistributeList(distributorStockDetail));
|
|
|
}else {
|
|
}else {
|
|
|
respVO.setNum(item.getShareNum());
|
|
respVO.setNum(item.getShareNum());
|
|
|
respVO.setEnableShare(YesOrNoEnum.YES.getType());
|
|
respVO.setEnableShare(YesOrNoEnum.YES.getType());
|
|
|
|
|
+ detailReqVO.setEnableShare(YesOrNoEnum.YES.getType());
|
|
|
|
|
+ List<VoyageStockDistributeNewRespVO> shareStockDetail = getShareStockDetail(detailReqVO);
|
|
|
|
|
+ respVO.setDistributeNewRespVOList(convertDistributeList(shareStockDetail));
|
|
|
}
|
|
}
|
|
|
if(roomModelNum != null) {
|
|
if(roomModelNum != null) {
|
|
|
respVO.setRoomModelNum(roomModelNum);
|
|
respVO.setRoomModelNum(roomModelNum);
|
|
@@ -246,6 +268,39 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
|
|
|
return new PageResult<>(resultList, voyageStockPage.getTotal());
|
|
return new PageResult<>(resultList, voyageStockPage.getTotal());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private List<Map<String, Object>> convertDistributeList(List<VoyageStockDistributeNewRespVO> voList) {
|
|
|
|
|
+ List<Map<String, Object>> result = new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+ for (VoyageStockDistributeNewRespVO vo : voList) {
|
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
|
+
|
|
|
|
|
+ // 1. 数值
|
|
|
|
|
+ map.put("num", vo.getNum());
|
|
|
|
|
+
|
|
|
|
|
+ // 2. 拼接 key
|
|
|
|
|
+ String roomModelId = String.valueOf(vo.getRoomModelId());
|
|
|
|
|
+ String floor = String.valueOf(vo.getFloor());
|
|
|
|
|
+ String key;
|
|
|
|
|
+
|
|
|
|
|
+ // ==================== 家庭套房特殊处理 ====================
|
|
|
|
|
+ if ("家庭套房".equals(vo.getRoomModelName())) {
|
|
|
|
|
+ key = "family_" + floor + "f";
|
|
|
|
|
+ }
|
|
|
|
|
+ // 家庭套房PRO
|
|
|
|
|
+ else if ("家庭套房PRO".equals(vo.getRoomModelName())) {
|
|
|
|
|
+ key = "family_pro_" + floor + "f";
|
|
|
|
|
+ }
|
|
|
|
|
+ // ==================== 普通房型规则 ====================
|
|
|
|
|
+ else {
|
|
|
|
|
+ key = "room_" + roomModelId + "_" + floor + "f";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ map.put("key", key);
|
|
|
|
|
+ result.add(map);
|
|
|
|
|
+ }
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public List<VoyageStockDistributeNewRespVO> getDetail(VoyageStockDistributeNewDetailReqVO reqVO) {
|
|
public List<VoyageStockDistributeNewRespVO> getDetail(VoyageStockDistributeNewDetailReqVO reqVO) {
|
|
|
Integer enableShare = reqVO.getEnableShare();
|
|
Integer enableShare = reqVO.getEnableShare();
|