|
@@ -1,17 +1,19 @@
|
|
|
package com.ruoyi.wms.service.impl;
|
|
package com.ruoyi.wms.service.impl;
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.ruoyi.common.core.domain.R;
|
|
|
|
|
import com.ruoyi.common.mybatis.core.page.PageQuery;
|
|
import com.ruoyi.common.mybatis.core.page.PageQuery;
|
|
|
import com.ruoyi.common.mybatis.core.page.TableDataInfo;
|
|
import com.ruoyi.common.mybatis.core.page.TableDataInfo;
|
|
|
import com.ruoyi.wms.domain.bo.WmsFinishedSkuCost;
|
|
import com.ruoyi.wms.domain.bo.WmsFinishedSkuCost;
|
|
|
import com.ruoyi.wms.domain.constant.ItemType;
|
|
import com.ruoyi.wms.domain.constant.ItemType;
|
|
|
import com.ruoyi.wms.domain.dto.WmsFinishedProductCostDto;
|
|
import com.ruoyi.wms.domain.dto.WmsFinishedProductCostDto;
|
|
|
-import com.ruoyi.wms.domain.entity.*;
|
|
|
|
|
|
|
+import com.ruoyi.wms.domain.entity.ItemSku;
|
|
|
|
|
+import com.ruoyi.wms.domain.entity.WmsBomItem;
|
|
|
|
|
+import com.ruoyi.wms.domain.entity.WmsFinishedProductCost;
|
|
|
|
|
+import com.ruoyi.wms.domain.entity.WmsTaskDetails;
|
|
|
import com.ruoyi.wms.domain.vo.WmsFinishedProductCostVo;
|
|
import com.ruoyi.wms.domain.vo.WmsFinishedProductCostVo;
|
|
|
|
|
+import com.ruoyi.wms.mapper.WmsFinishedProductCostMapper;
|
|
|
import com.ruoyi.wms.service.ItemSkuService;
|
|
import com.ruoyi.wms.service.ItemSkuService;
|
|
|
import com.ruoyi.wms.service.WmsFinishedProductCostService;
|
|
import com.ruoyi.wms.service.WmsFinishedProductCostService;
|
|
|
-import com.ruoyi.wms.mapper.WmsFinishedProductCostMapper;
|
|
|
|
|
import com.ruoyi.wms.service.WmsFinishedSkuCostService;
|
|
import com.ruoyi.wms.service.WmsFinishedSkuCostService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -23,14 +25,14 @@ import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
-* @author Administrator
|
|
|
|
|
-* @description 针对表【wms_finished_product_cost(成品成本明细列表)】的数据库操作Service实现
|
|
|
|
|
-* @createDate 2026-04-15 17:22:14
|
|
|
|
|
-*/
|
|
|
|
|
|
|
+ * @author Administrator
|
|
|
|
|
+ * @description 针对表【wms_finished_product_cost(成品成本明细列表)】的数据库操作Service实现
|
|
|
|
|
+ * @createDate 2026-04-15 17:22:14
|
|
|
|
|
+ */
|
|
|
@Service
|
|
@Service
|
|
|
@RequiredArgsConstructor
|
|
@RequiredArgsConstructor
|
|
|
public class WmsFinishedProductCostServiceImpl extends ServiceImpl<WmsFinishedProductCostMapper, WmsFinishedProductCost>
|
|
public class WmsFinishedProductCostServiceImpl extends ServiceImpl<WmsFinishedProductCostMapper, WmsFinishedProductCost>
|
|
|
- implements WmsFinishedProductCostService{
|
|
|
|
|
|
|
+ implements WmsFinishedProductCostService {
|
|
|
|
|
|
|
|
private final ItemSkuService itemSkuService;
|
|
private final ItemSkuService itemSkuService;
|
|
|
|
|
|
|
@@ -48,7 +50,7 @@ public class WmsFinishedProductCostServiceImpl extends ServiceImpl<WmsFinishedPr
|
|
|
BigDecimal cose = sku.getBaseUnitCost().multiply(itemSku.getBaseQuantity());
|
|
BigDecimal cose = sku.getBaseUnitCost().multiply(itemSku.getBaseQuantity());
|
|
|
return WmsFinishedSkuCost.builder()
|
|
return WmsFinishedSkuCost.builder()
|
|
|
.productId(wmsTaskDetails.getId())
|
|
.productId(wmsTaskDetails.getId())
|
|
|
- .itemType(sku.getSkuType())
|
|
|
|
|
|
|
+ .skuType(sku.getSkuType())
|
|
|
.itemSkuId(itemSku.getItemSkuId())
|
|
.itemSkuId(itemSku.getItemSkuId())
|
|
|
.cost(cose)
|
|
.cost(cose)
|
|
|
.build();
|
|
.build();
|
|
@@ -56,7 +58,7 @@ public class WmsFinishedProductCostServiceImpl extends ServiceImpl<WmsFinishedPr
|
|
|
|
|
|
|
|
Map<String, BigDecimal> groupedCost = wmsFinishedSkuCostList.stream()
|
|
Map<String, BigDecimal> groupedCost = wmsFinishedSkuCostList.stream()
|
|
|
.collect(Collectors.groupingBy(
|
|
.collect(Collectors.groupingBy(
|
|
|
- cost -> cost.getProductId() + "-" + cost.getItemType(),
|
|
|
|
|
|
|
+ cost -> cost.getProductId() + "-" + cost.getSkuType(),
|
|
|
Collectors.reducing(
|
|
Collectors.reducing(
|
|
|
BigDecimal.ZERO,
|
|
BigDecimal.ZERO,
|
|
|
WmsFinishedSkuCost::getCost,
|
|
WmsFinishedSkuCost::getCost,
|
|
@@ -68,7 +70,13 @@ public class WmsFinishedProductCostServiceImpl extends ServiceImpl<WmsFinishedPr
|
|
|
WmsTaskDetails wmsTaskDetails = versionMap.get(versionId);
|
|
WmsTaskDetails wmsTaskDetails = versionMap.get(versionId);
|
|
|
|
|
|
|
|
BigDecimal rawMaterialsCost = groupedCost.get(wmsTaskDetails.getId() + "-" + ItemType.ITEM_TYPE_1.getCode());
|
|
BigDecimal rawMaterialsCost = groupedCost.get(wmsTaskDetails.getId() + "-" + ItemType.ITEM_TYPE_1.getCode());
|
|
|
|
|
+ if (rawMaterialsCost == null) {
|
|
|
|
|
+ rawMaterialsCost = BigDecimal.ZERO;
|
|
|
|
|
+ }
|
|
|
BigDecimal packagingMaterialsCost = groupedCost.get(wmsTaskDetails.getId() + "-" + ItemType.ITEM_TYPE_3.getCode());
|
|
BigDecimal packagingMaterialsCost = groupedCost.get(wmsTaskDetails.getId() + "-" + ItemType.ITEM_TYPE_3.getCode());
|
|
|
|
|
+ if (packagingMaterialsCost == null) {
|
|
|
|
|
+ packagingMaterialsCost = BigDecimal.ZERO;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
return WmsFinishedProductCost.builder().id(wmsTaskDetails.getId())
|
|
return WmsFinishedProductCost.builder().id(wmsTaskDetails.getId())
|
|
|
.taskId(wmsTaskDetails.getTaskId())
|
|
.taskId(wmsTaskDetails.getTaskId())
|
|
@@ -80,7 +88,6 @@ public class WmsFinishedProductCostServiceImpl extends ServiceImpl<WmsFinishedPr
|
|
|
.quantity(new BigDecimal(wmsTaskDetails.getQuantity()))
|
|
.quantity(new BigDecimal(wmsTaskDetails.getQuantity()))
|
|
|
.build();
|
|
.build();
|
|
|
}).toList();
|
|
}).toList();
|
|
|
-
|
|
|
|
|
wmsFinishedSkuCostService.saveBatch(wmsFinishedSkuCostList);
|
|
wmsFinishedSkuCostService.saveBatch(wmsFinishedSkuCostList);
|
|
|
this.saveBatch(list);
|
|
this.saveBatch(list);
|
|
|
}
|
|
}
|