24282 před 1 rokem
rodič
revize
59831ed4ec

+ 5 - 0
sd-business/src/main/java/com/sd/business/entity/order/dto/OrderSkuSelectDto.java

@@ -49,4 +49,9 @@ public class OrderSkuSelectDto extends BaseSelectDto {
      */
     private Integer orderStatus;
 
+    /**
+     * 事业部名称
+     */
+    private String departmentName;
+
 }

+ 10 - 4
sd-business/src/main/java/com/sd/business/entity/order/po/OrderSku.java

@@ -15,7 +15,7 @@ import java.util.Date;
  * </p>
  *
  * @author
- * @since 2023-07-19
+ * @since 2023-07-25
  */
 @Getter
 @Setter
@@ -61,6 +61,12 @@ public class OrderSku extends BasePo {
     private BigDecimal quantity;
 
     /**
+     * 单价
+     */
+    @NotNull(message = "单价不能为空")
+    private BigDecimal unitPrice;
+
+    /**
      * 定制加工费
      */
     @NotNull(message = "定制加工费不能为空")
@@ -85,10 +91,10 @@ public class OrderSku extends BasePo {
     private BigDecimal packingLabor;
 
     /**
-     * 单价
+     * 包材费
      */
-    @NotNull(message = "单价不能为空")
-    private BigDecimal unitPrice;
+    @NotNull(message = "包材费不能为空")
+    private BigDecimal packagingMaterialCost;
 
     /**
      * 打印 1单面 2 双面

+ 15 - 0
sd-business/src/main/java/com/sd/business/entity/order/vo/OrderSkuVo.java

@@ -4,6 +4,7 @@ import com.sd.business.entity.order.po.OrderSku;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -53,6 +54,16 @@ public class OrderSkuVo extends OrderSku {
     private Integer orderStatus;
 
     /**
+     * 订单结算状态 1未结算 2已对账 3已结算
+     */
+    private String orderSettlementStatus;
+
+    /**
+     * 订单总金额
+     */
+    private BigDecimal orderTotalAmount;
+
+    /**
      * 下单时间
      */
     private Date wlnCreateTime;
@@ -77,5 +88,9 @@ public class OrderSkuVo extends OrderSku {
      */
     private String bomSpecCode;
 
+    /**
+     * 事业部名称
+     */
+    private String departmentName;
 
 }

+ 6 - 4
sd-business/src/main/java/com/sd/business/service/order/impl/OrderSkuServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.sd.business.entity.bom.po.BomSpec;
+import com.sd.business.entity.department.po.Department;
 import com.sd.business.entity.order.dto.OrderSkuDto;
 import com.sd.business.entity.order.dto.OrderSkuSelectDto;
 import com.sd.business.entity.order.po.OrderInfo;
@@ -38,14 +39,15 @@ public class OrderSkuServiceImpl extends ServiceImpl<OrderSkuMapper, OrderSku> i
     public Page<OrderSkuVo> getPage(OrderSkuSelectDto dto) {
         IWrapper<OrderSku> wrapper = getWrapper();
         wrapper.orderByDesc("os", OrderSku::getId);
+
+        wrapper.like("oi", OrderInfo::getCode, dto.getOrderCode());
+        wrapper.like("oi", OrderInfo::getWlnCode, dto.getOrderWlnCode());
+        wrapper.like("d", Department::getName, dto.getDepartmentName());
         wrapper.like("ss", SkuSpec::getCode, dto.getSkuSpecCode());
         wrapper.like("ss", SkuSpec::getName, dto.getSkuSpecName());
         wrapper.like("bs", BomSpec::getCode, dto.getBomSpecCode());
         wrapper.like("bs", BomSpec::getName, dto.getBomSpecName());
-
-        wrapper.like("oi", OrderInfo::getCode, dto.getOrderCode());
-        wrapper.like("oi", OrderInfo::getWlnCode, dto.getOrderWlnCode());
-        wrapper.like("oi", OrderInfo::getStatus, dto.getOrderStatus());
+        wrapper.eq("oi", OrderInfo::getStatus, dto.getOrderStatus());
 
         wrapper.ge("oi", OrderInfo::getWlnCreateTime, dto.getBeginTime());
         wrapper.le("oi", OrderInfo::getWlnCreateTime, dto.getEndTime());

+ 1 - 1
sd-business/src/main/java/com/sd/business/service/sku/SkuSpecService.java

@@ -50,6 +50,6 @@ public interface SkuSpecService extends BaseService<SkuSpec> {
     /**
      * 根据sku规格id获取bomId和bom规格id
      */
-    Map<Long, BomBo> getBomBoByIdList(List<Long> skuSpecIdList);
+    Map<Long, BomBo> getBomBySkuSpecIdList(List<Long> skuSpecIdList);
 
 }

+ 1 - 1
sd-business/src/main/java/com/sd/business/service/sku/impl/SkuSpecServiceImpl.java

@@ -64,7 +64,7 @@ public class SkuSpecServiceImpl extends ServiceImpl<SkuSpecMapper, SkuSpec> impl
     }
 
     @Override
-    public Map<Long, BomBo> getBomBoByIdList(List<Long> skuSpecIdList) {
+    public Map<Long, BomBo> getBomBySkuSpecIdList(List<Long> skuSpecIdList) {
 
         if (ObjectUtil.isEmpty(skuSpecIdList)) {
             return Collections.emptyMap();

+ 14 - 7
sd-business/src/main/resources/mapper/order/OrderSkuMapper.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sd.business.mapper.order.OrderSkuMapper">
+
     <select id="getPage" resultType="com.sd.business.entity.order.vo.OrderSkuVo">
         select os.id,
                os.order_id,
@@ -11,6 +12,7 @@
                os.lssue_fee,
                os.delivery_materials_fee,
                os.packing_labor,
+               os.packaging_material_cost,
                os.unit_price,
                os.print_type,
                os.package_remark,
@@ -19,21 +21,26 @@
                os.update_user,
                os.update_time,
 
-               oi.code     orderCode,
-               oi.wln_code orderWlnCode,
-               oi.status   orderStatus,
+               oi.code              orderCode,
+               oi.wln_code          orderWlnCode,
+               oi.status            orderStatus,
+               oi.settlement_status orderSettlementStatus,
+               oi.total_amount      orderTotalAmount,
                oi.wln_create_time,
 
-               ss.code     skuSpecCode,
-               ss.name     skuSpecName,
+               ss.code              skuSpecCode,
+               ss.name              skuSpecName,
+
+               bs.name              bomSpecName,
+               bs.code              bomSpecCode,
 
-               bs.name     bomSpecName,
-               bs.code     bomSpecCode
+               d.name               departmentName
 
         from order_sku os
                  left join order_info oi on oi.id = os.order_id
                  left join sku_spec ss on os.sku_spec_id = ss.id
                  left join bom_spec bs on ss.bom_spec_id = bs.id
+                 left join department d on oi.department_id = d.id
             ${ew.customSqlSegment}
     </select>
 

+ 48 - 24
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -333,27 +333,36 @@ public class WlnOrderServiceImpl implements WlnOrderService {
      * 创建订单包材
      */
     private List<OrderSkuBom> createOrderSkuBoom(OrderInfo orderInfo, OrderSku orderSku) {
+
         List<SkuSpecLink> list = skuSpecLinkService.list(q -> q
                 .eq(SkuSpecLink::getSkuSpecId, orderSku.getSkuSpecId())
                 .eq(SkuSpecLink::getType, 1)
                 .eq(SkuSpecLink::getDepartmentId, orderInfo.getDepartmentId())
         );
 
+        if (list.size() == 0) {
+            return Collections.emptyList();
+        }
+
         // 根据sku规格id获取bomId和bom规格id
-        Map<Long, BomBo> bomBoMap = skuSpecService.getBomBoByIdList(
-                list.stream().map(SkuSpecLink::getSkuSpecId).collect(Collectors.toList()));
+        List<Long> skuSpecIdList = list.stream().map(SkuSpecLink::getSkuSpecId).collect(Collectors.toList());
+        Map<Long, BomBo> bomBoMap = skuSpecService.getBomBySkuSpecIdList(skuSpecIdList);
 
         return list.stream().map(item -> {
-            BomBo bomBo = bomBoMap.get(item.getBomSpecId());
-
             OrderSkuBom orderSkuBom = new OrderSkuBom();
             orderSkuBom.setId(IdWorker.getId());
             orderSkuBom.setOrderId(orderInfo.getId());
             orderSkuBom.setOrderSkuId(orderSku.getId());
             orderSkuBom.setBomSpecId(item.getBomSpecId());
             orderSkuBom.setQuantity(item.getQuantity());
-            orderSkuBom.setUnitPrice(bomBo == null ? BigDecimal.ZERO :
-                    ObjectUtil.defaultIfNull(bomBo.getInternalSellingPrice(), BigDecimal.ZERO));
+
+            BomBo bomBo = bomBoMap.get(item.getBomSpecId());
+            if (bomBo == null) {
+                orderSkuBom.setUnitPrice(BigDecimal.ZERO);
+            } else {
+                orderSkuBom.setUnitPrice(ObjectUtil.defaultIfNull(bomBo.getInternalSellingPrice(), BigDecimal.ZERO));
+            }
+
             return orderSkuBom;
         }).collect(Collectors.toList());
     }
@@ -385,7 +394,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
                         .collect(Collectors.groupingBy(PriceBillingStandardDetail::getPriceBillingStandardId));
 
         // 根据sku规格id获取bomId和bom规格id
-        Map<Long, BomBo> bomBoMap = skuSpecService.getBomBoByIdList(
+        Map<Long, BomBo> bomBoMap = skuSpecService.getBomBySkuSpecIdList(
                 orderSkuList.stream().map(OrderSku::getSkuSpecId).collect(Collectors.toList()));
 
         // 订单明细
@@ -409,7 +418,10 @@ public class WlnOrderServiceImpl implements WlnOrderService {
             for (OrderSku orderSku : itemOrderSkuList) {
 
                 // 赋值单价
-                assignedUnitPrice(bomBoMap, orderSku);
+                assignedUnitPrice(orderSku, bomBoMap);
+
+                // 赋值包材费
+                assignedPackagingMaterialCost(orderSku, saveOrderSkuBomList);
 
                 // 赋值其他价格
                 assignedOtherPrice(orderSku, orderInfo.getDepartmentId(),
@@ -425,7 +437,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
     /**
      * 赋值单价
      */
-    private void assignedUnitPrice(Map<Long, BomBo> bomBoMap, OrderSku orderSku) {
+    private void assignedUnitPrice(OrderSku orderSku, Map<Long, BomBo> bomBoMap) {
         BomBo bomBo = bomBoMap.get(orderSku.getSkuSpecId());
         if (bomBo != null) {
             orderSku.setUnitPrice(ObjectUtil.defaultIfNull(bomBo.getInternalSellingPrice(), BigDecimal.ZERO));
@@ -435,6 +447,18 @@ public class WlnOrderServiceImpl implements WlnOrderService {
     }
 
     /**
+     * 赋值包材费
+     */
+    private void assignedPackagingMaterialCost(OrderSku orderSku, List<OrderSkuBom> saveOrderSkuBomList) {
+        BigDecimal packagingMaterialCost = saveOrderSkuBomList.stream()
+                .filter(item -> Objects.equals(item.getOrderSkuId(), orderSku.getId()))
+                .map(item -> item.getUnitPrice().multiply(item.getQuantity()))
+                .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+        orderSku.setPackagingMaterialCost(packagingMaterialCost);
+    }
+
+    /**
      * 赋值其他价格
      */
     private void assignedOtherPrice(OrderSku orderSku,
@@ -491,28 +515,28 @@ public class WlnOrderServiceImpl implements WlnOrderService {
      * 添加订单价格
      */
     private void addOrderInfoPrice(OrderInfo orderInfo, OrderSku orderSku, List<OrderSkuBom> saveOrderSkuBomList) {
-        BigDecimal productTotalAmount = orderSku.getQuantity().multiply(orderSku.getUnitPrice());
-        BigDecimal customProcessingFee = orderSku.getQuantity().multiply(orderSku.getCustomProcessingFee());
-        BigDecimal lssueFee = orderSku.getQuantity().multiply(orderSku.getLssueFee());
-        BigDecimal deliveryMaterialsFee = orderSku.getQuantity().multiply(orderSku.getDeliveryMaterialsFee());
-        BigDecimal packingLabor = orderSku.getQuantity().multiply(orderSku.getPackingLabor());
-        BigDecimal totalAmount = productTotalAmount.add(customProcessingFee).add(lssueFee).add(deliveryMaterialsFee).add(packingLabor);
-
-        BigDecimal packagingMaterialCost = saveOrderSkuBomList.stream()
-                .filter(item -> Objects.equals(item.getOrderId(), orderInfo.getId()))
-                .filter(item -> Objects.equals(item.getOrderSkuId(), orderSku.getId()))
-                .map(item -> item.getUnitPrice().multiply(item.getQuantity()))
-                .reduce(BigDecimal.ZERO, BigDecimal::add)
-                .multiply(orderSku.getQuantity());
+        BigDecimal quantity = orderSku.getQuantity();
+
+        BigDecimal productTotalAmount = quantity.multiply(orderSku.getUnitPrice());
+        BigDecimal customProcessingFee = quantity.multiply(orderSku.getCustomProcessingFee());
+        BigDecimal lssueFee = quantity.multiply(orderSku.getLssueFee());
+        BigDecimal deliveryMaterialsFee = quantity.multiply(orderSku.getDeliveryMaterialsFee());
+        BigDecimal packingLabor = quantity.multiply(orderSku.getPackingLabor());
+        BigDecimal packagingMaterialCost = quantity.multiply(orderSku.getPackagingMaterialCost());
+        BigDecimal totalAmount = productTotalAmount
+                .add(customProcessingFee)
+                .add(lssueFee)
+                .add(deliveryMaterialsFee)
+                .add(packingLabor)
+                .add(packagingMaterialCost);
 
         orderInfo.setProductTotalAmount(orderInfo.getProductTotalAmount().add(productTotalAmount));
         orderInfo.setCustomProcessingFee(orderInfo.getCustomProcessingFee().add(customProcessingFee));
         orderInfo.setLssueFee(orderInfo.getLssueFee().add(lssueFee));
         orderInfo.setDeliveryMaterialsFee(orderInfo.getDeliveryMaterialsFee().add(deliveryMaterialsFee));
         orderInfo.setPackingLabor(orderInfo.getPackingLabor().add(packingLabor));
-        orderInfo.setPackagingMaterialCost(packagingMaterialCost);
+        orderInfo.setPackagingMaterialCost(orderInfo.getPackagingMaterialCost().add(packagingMaterialCost));
         orderInfo.setTotalAmount(orderInfo.getTotalAmount().add(totalAmount));
-
     }
 
 }