fgd 1 год назад
Родитель
Сommit
20f207daa4

+ 3 - 4
sd-business/src/main/java/com/sd/business/controller/production/StockPreparationController.java

@@ -12,7 +12,6 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
 import javax.validation.constraints.NotEmpty;
-import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -84,8 +83,8 @@ public class StockPreparationController {
     /**
      * 待备料列表主材总数
      */
-    @PostMapping("/uncompletedListTotal")
-    public BigDecimal uncompletedListTotal(@RequestBody StockPreparationDto dto) {
-        return stockPreparationService.uncompletedListTotal(dto);
+    @PostMapping("/uncompletedListStatistics")
+    public UncompletedStatisticsVo uncompletedListStatistics() {
+        return stockPreparationService.uncompletedListStatistics();
     }
 }

+ 24 - 0
sd-business/src/main/java/com/sd/business/entity/production/vo/UncompletedStatisticsVo.java

@@ -0,0 +1,24 @@
+package com.sd.business.entity.production.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 待备料数量统计返回实体
+ */
+@Getter
+@Setter
+public class UncompletedStatisticsVo {
+
+    /**
+     * 半成品总数
+     */
+    private BigDecimal semiFinishedCount;
+
+    /**
+     * 成品总数
+     */
+    private BigDecimal finishedCount;
+}

+ 7 - 0
sd-business/src/main/java/com/sd/business/mapper/production/StockPreparationMapper.java

@@ -3,6 +3,7 @@ package com.sd.business.mapper.production;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.sd.business.entity.production.vo.StockPreparationVo;
+import com.sd.business.entity.production.vo.UncompletedStatisticsVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -13,4 +14,10 @@ public interface StockPreparationMapper {
 
     Page<StockPreparationVo> completedPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<StockPreparationVo> wrapper);
 
+    /**
+     * 待备料统计
+     * @param wrapper
+     * @return
+     */
+    UncompletedStatisticsVo uncompletedListStatistics(@Param("ew") IWrapper<StockPreparationVo> wrapper);
 }

+ 1 - 3
sd-business/src/main/java/com/sd/business/service/production/StockPreparationService.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sd.business.entity.production.dto.StockPreparationDto;
 import com.sd.business.entity.production.vo.*;
 
-import java.math.BigDecimal;
 import java.util.List;
 
 public interface StockPreparationService {
@@ -49,8 +48,7 @@ public interface StockPreparationService {
     /**
      * 待备料列表主材总数
      *
-     * @param dto
      * @return
      */
-    BigDecimal uncompletedListTotal(StockPreparationDto dto);
+    UncompletedStatisticsVo uncompletedListStatistics();
 }

+ 3 - 9
sd-business/src/main/java/com/sd/business/service/production/impl/StockPreparationServiceImpl.java

@@ -638,7 +638,7 @@ public class StockPreparationServiceImpl implements StockPreparationService {
     }
 
     @Override
-    public BigDecimal uncompletedListTotal(StockPreparationDto dto) {
+    public UncompletedStatisticsVo uncompletedListStatistics() {
         IWrapper<StockPreparationVo> wrapper = IWrapper.getWrapper();
         wrapper.eq("oi", OrderInfo::getStatus, OrderStatusEnum.STOCK_PREPARATION.getKey());
         wrapper.eq("oi", OrderInfo::getExceptionType, OrderExceptionTypeEnum.NORMAL.getKey().toString());
@@ -649,16 +649,10 @@ public class StockPreparationServiceImpl implements StockPreparationService {
         wrapper.and(q -> q
                 .and(r -> r.isNull("oi.flow_id").isNull("oi.flow_status"))
                 .or(r -> r.eq("oi", OrderInfo::getFlowStatus, FlowStatusEnum.PASS.getKey())));
-        wrapper.eq("oi", OrderInfo::getStockType, dto.getOrderStockType());
         // 不计算委外订单主材数量
-        wrapper.ne("oi", OrderInfo::getType, 2);
-        List<StockPreparationVo> stockPreparationVoList = stockPreparationMapper.uncompletedList(wrapper);
-
-        if (ObjectUtil.isEmpty(stockPreparationVoList)) {
-            return BigDecimal.ZERO;
-        }
+        wrapper.and(q -> q.isNull("oi.type").or().ne("oi", OrderInfo::getType, 2));
 
-        return stockPreparationVoList.stream().map(StockPreparationVo::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
+        return stockPreparationMapper.uncompletedListStatistics(wrapper);
     }
 
     /**

+ 12 - 0
sd-business/src/main/resources/mapper/production/StockPreparationMapper.xml

@@ -55,4 +55,16 @@
             ${ew.customSqlSegment}
     </select>
 
+    <select id="uncompletedListStatistics" resultType="com.sd.business.entity.production.vo.UncompletedStatisticsVo">
+        select
+            ifnull(sum(if(stock_type = 0, os.quantity, 0)), 0) semiFinishedCount,
+            ifnull(sum(if(stock_type = 1, os.quantity, 0)), 0) finishedCount
+        from order_info oi
+                 inner join order_sku os on oi.id = os.order_id
+                 inner join sku_spec ss on os.sku_spec_id = ss.id
+                 inner join bom_spec bs on os.bom_spec_id = bs.id
+                 left join artwork_library al on ss.artwork_library_id = al.id
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>