|
@@ -8,14 +8,19 @@ import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageReqVO;
|
|
import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageSaveReqVO;
|
|
import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageSaveReqVO;
|
|
import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
|
|
import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
|
|
import com.yc.ship.module.product.dal.dataobject.voyagestock.VoyageStockDO;
|
|
import com.yc.ship.module.product.dal.dataobject.voyagestock.VoyageStockDO;
|
|
|
|
+import com.yc.ship.module.product.dal.dataobject.voyagestockdetail.VoyageStockDetailDO;
|
|
import com.yc.ship.module.product.dal.mysql.voyage.VoyageMapper;
|
|
import com.yc.ship.module.product.dal.mysql.voyage.VoyageMapper;
|
|
import com.yc.ship.module.product.dal.mysql.voyagestock.VoyageStockMapper;
|
|
import com.yc.ship.module.product.dal.mysql.voyagestock.VoyageStockMapper;
|
|
|
|
+import com.yc.ship.module.product.dal.mysql.voyagestockdetail.VoyageStockDetailMapper;
|
|
|
|
+import com.yc.ship.module.resource.api.ship.ShipApi;
|
|
|
|
+import com.yc.ship.module.resource.api.ship.dto.RoomModelFloorNumDTO;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
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.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -38,6 +43,12 @@ public class VoyageServiceImpl implements VoyageService {
|
|
@Resource
|
|
@Resource
|
|
private VoyageStockMapper voyageStockMapper;
|
|
private VoyageStockMapper voyageStockMapper;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private ShipApi shipApi;
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private VoyageStockDetailMapper voyageStockDetailMapper;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public Long createVoyage(VoyageSaveReqVO createReqVO) {
|
|
public Long createVoyage(VoyageSaveReqVO createReqVO) {
|
|
@@ -46,7 +57,7 @@ public class VoyageServiceImpl implements VoyageService {
|
|
voyageMapper.insert(voyage);
|
|
voyageMapper.insert(voyage);
|
|
Long id = voyage.getId();
|
|
Long id = voyage.getId();
|
|
|
|
|
|
- saveOrUpdateVoyageStock(createReqVO);
|
|
|
|
|
|
+ saveOrUpdateVoyageStock(createReqVO, id);
|
|
// 返回
|
|
// 返回
|
|
return id;
|
|
return id;
|
|
}
|
|
}
|
|
@@ -59,22 +70,51 @@ public class VoyageServiceImpl implements VoyageService {
|
|
// 更新
|
|
// 更新
|
|
VoyageDO updateObj = BeanUtils.toBean(updateReqVO, VoyageDO.class);
|
|
VoyageDO updateObj = BeanUtils.toBean(updateReqVO, VoyageDO.class);
|
|
voyageMapper.updateById(updateObj);
|
|
voyageMapper.updateById(updateObj);
|
|
- saveOrUpdateVoyageStock(updateReqVO);
|
|
|
|
|
|
+ saveOrUpdateVoyageStock(updateReqVO, updateReqVO.getId());
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- private void saveOrUpdateVoyageStock(VoyageSaveReqVO reqVO) {
|
|
|
|
|
|
+ private void saveOrUpdateVoyageStock(VoyageSaveReqVO reqVO,Long voyageId) {
|
|
VoyageStockDO voyageStockDO = new VoyageStockDO();
|
|
VoyageStockDO voyageStockDO = new VoyageStockDO();
|
|
- voyageStockDO.setVoyageId(reqVO.getId());
|
|
|
|
|
|
+ voyageStockDO.setVoyageId(voyageId);
|
|
voyageStockDO.setVoyageName(reqVO.getName());
|
|
voyageStockDO.setVoyageName(reqVO.getName());
|
|
voyageStockDO.setShipId(reqVO.getShipId());
|
|
voyageStockDO.setShipId(reqVO.getShipId());
|
|
voyageStockDO.setType(reqVO.getType());
|
|
voyageStockDO.setType(reqVO.getType());
|
|
|
|
|
|
- VoyageStockDO stockDO = voyageStockMapper.selectById(reqVO.getId());
|
|
|
|
|
|
+ VoyageStockDO stockDO = voyageStockMapper.selectById(voyageId);
|
|
if(stockDO != null) {
|
|
if(stockDO != null) {
|
|
voyageStockMapper.updateById(voyageStockDO);
|
|
voyageStockMapper.updateById(voyageStockDO);
|
|
}else {
|
|
}else {
|
|
|
|
+ //新增时添加统计数据
|
|
|
|
+ List<RoomModelFloorNumDTO> list = shipApi.queryRoomModelFloorToNum(reqVO.getShipId());
|
|
|
|
+ int sum = list.stream().mapToInt(RoomModelFloorNumDTO::getNum).sum();
|
|
|
|
+ voyageStockDO.setTotalNum(sum);
|
|
|
|
+ voyageStockDO.setNotShelfNum(sum);
|
|
|
|
+ voyageStockDO.setShelfedNum(0);
|
|
|
|
+ voyageStockDO.setBookNum(0);
|
|
|
|
+ voyageStockDO.setCanSellNum(0);
|
|
|
|
+ voyageStockDO.setOversoldNum(0);
|
|
|
|
+ voyageStockDO.setSurplusNum(sum);
|
|
voyageStockMapper.insert(voyageStockDO);
|
|
voyageStockMapper.insert(voyageStockDO);
|
|
|
|
+ //添加库存详情
|
|
|
|
+ List<VoyageStockDetailDO> stockDetailDOS = new ArrayList<>();
|
|
|
|
+ list.stream().forEach(item -> {
|
|
|
|
+ VoyageStockDetailDO stockDetailDO = new VoyageStockDetailDO();
|
|
|
|
+ stockDetailDO.setVoyageId(voyageId);
|
|
|
|
+ stockDetailDO.setRoomModelId(item.getRoomModelId());
|
|
|
|
+ stockDetailDO.setRoomModelName(item.getRoomModelName());
|
|
|
|
+ stockDetailDO.setFloor(item.getFloor());
|
|
|
|
+ stockDetailDO.setTotalNum(item.getNum());
|
|
|
|
+ stockDetailDO.setShelfNum(0);
|
|
|
|
+ stockDetailDO.setNotShelfNum(item.getNum());
|
|
|
|
+ stockDetailDO.setShelfedNum(0);
|
|
|
|
+ stockDetailDO.setBookNum(0);
|
|
|
|
+ stockDetailDO.setCanSellNum(0);
|
|
|
|
+ stockDetailDO.setOversoldNum(0);
|
|
|
|
+ stockDetailDO.setSurplusNum(item.getNum());
|
|
|
|
+ stockDetailDOS.add(stockDetailDO);
|
|
|
|
+ });
|
|
|
|
+ voyageStockDetailMapper.insertBatch(stockDetailDOS);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|