|
|
@@ -16,8 +16,6 @@ import com.yc.ship.module.product.enums.ProductStockStaticsName;
|
|
|
import com.yc.ship.module.product.framework.lock.ProductRedisKeyConstants;
|
|
|
import com.yc.ship.module.resource.api.ship.ShipApi;
|
|
|
import com.yc.ship.module.resource.api.ship.dto.RoomModelFloorNumDTO;
|
|
|
-import com.yc.ship.module.resource.dal.dataobject.roommodel.ResourceRoomModelDO;
|
|
|
-import com.yc.ship.module.resource.service.roommodel.ResourceRoomModelService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.redisson.api.RLock;
|
|
|
import org.redisson.api.RedissonClient;
|
|
|
@@ -32,10 +30,7 @@ import com.yc.ship.framework.common.util.object.BeanUtils;
|
|
|
import com.yc.ship.module.product.dal.mysql.voyagestockdetail.VoyageStockDetailMapper;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -248,4 +243,24 @@ public class VoyageStockDetailServiceImpl implements VoyageStockDetailService {
|
|
|
return voyageStockDetailMapper.selectListByVoyageId(voyageId);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public VoyageStockDetailDO getVoyageStockTotalRow(Long voyageId) {
|
|
|
+ // 查询航次实际总库存数
|
|
|
+ BigDecimal realTotalNum = Optional.ofNullable(voyageStockDetailMapper.selectRealTotalNumFromDistData(voyageId)).orElse(BigDecimal.ZERO);
|
|
|
+ // 查询已分配房间数(领队数 + 陪同数)/ 2
|
|
|
+ Double allocatedRoomCount = voyageStockDetailMapper.selectAllocatedRoomCountByVoyageId(voyageId);
|
|
|
+ BigDecimal allocatedRoomNum = BigDecimal.valueOf(allocatedRoomCount != null ? allocatedRoomCount : 0);
|
|
|
+ // 计算剩余库存 = 实际总库存 - 已分配房间数
|
|
|
+ BigDecimal surplusNum = realTotalNum.subtract(allocatedRoomNum);
|
|
|
+ // 构建汇总行数据
|
|
|
+ VoyageStockDetailDO voyageStockDetailDO = new VoyageStockDetailDO();
|
|
|
+ voyageStockDetailDO.setRoomModelName("内舱房");
|
|
|
+ voyageStockDetailDO.setFloor(0);
|
|
|
+ voyageStockDetailDO.setShelfNum(BigDecimal.ZERO);
|
|
|
+ voyageStockDetailDO.setRealTotalNum(realTotalNum);
|
|
|
+ voyageStockDetailDO.setBookNum(allocatedRoomNum);
|
|
|
+ voyageStockDetailDO.setSurplusNum(surplusNum);
|
|
|
+ return voyageStockDetailDO;
|
|
|
+ }
|
|
|
+
|
|
|
}
|