Kaynağa Gözat

每日看板修改

fgd 1 yıl önce
ebeveyn
işleme
38247b6da4

+ 7 - 5
sd-business/src/main/java/com/sd/business/controller/board/DailyBoardController.java

@@ -2,9 +2,11 @@ package com.sd.business.controller.board;
 
 
 import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.sd.business.entity.board.dto.DailyBoardSelectDto;
 import com.sd.business.entity.board.vo.*;
 import com.sd.business.service.board.DailyBoardService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -31,7 +33,7 @@ public class DailyBoardController {
      * @return
      */
     @PostMapping("/getProductionOutStorageList")
-    public List<DailyBoardOutStorageBomVo> getProductionOutStorageList(@RequestBody BaseSelectDto dto) {
+    public List<DailyBoardOutStorageBomVo> getProductionOutStorageList(@Validated @RequestBody DailyBoardSelectDto dto) {
        return dailyBoardService.getProductionOutStorageList(dto);
     }
 
@@ -40,7 +42,7 @@ public class DailyBoardController {
      * @return
      */
     @PostMapping("/getOrderBomDifferenceList")
-    public List<OrderBomDifferenceVo> getOrderBomDifferenceList(@RequestBody BaseSelectDto dto) {
+    public List<OrderBomDifferenceVo> getOrderBomDifferenceList(@Validated @RequestBody DailyBoardSelectDto dto) {
         return dailyBoardService.getOrderBomDifferenceList(dto);
     }
 
@@ -49,7 +51,7 @@ public class DailyBoardController {
      * @return
      */
     @PostMapping("/getWlnSalesOutStorageInfo")
-    public WlnSalesOutStorageVo getWlnSalesOutStorageInfo(@RequestBody BaseSelectDto dto) {
+    public WlnSalesOutStorageVo getWlnSalesOutStorageInfo(@Validated @RequestBody DailyBoardSelectDto dto) {
         return dailyBoardService.getWlnSalesOutStorageInfo(dto);
     }
 
@@ -58,7 +60,7 @@ public class DailyBoardController {
      * @return
      */
     @PostMapping("/getMesProductionOutStorageInfo")
-    public MesProductionOutStorageVo getMesProductionOutStorageInfo(@RequestBody BaseSelectDto dto) {
+    public MesProductionOutStorageVo getMesProductionOutStorageInfo(@Validated @RequestBody DailyBoardSelectDto dto) {
         return dailyBoardService.getMesProductionOutStorageInfo(dto);
     }
 
@@ -68,7 +70,7 @@ public class DailyBoardController {
      * @return
      */
     @PostMapping("/getSelfOrderOutStorageInfo")
-    public SelfOrderOutStorageVo getSelfOrderOutStorageInfo(@RequestBody BaseSelectDto dto) {
+    public SelfOrderOutStorageVo getSelfOrderOutStorageInfo(@Validated @RequestBody DailyBoardSelectDto dto) {
         return dailyBoardService.getSelfOrderOutStorageInfo(dto);
     }
 

+ 30 - 0
sd-business/src/main/java/com/sd/business/entity/board/dto/DailyBoardSelectDto.java

@@ -0,0 +1,30 @@
+package com.sd.business.entity.board.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * 每日看板查询入参实体
+ *
+ * @author
+ * @since 2023-09-23
+ */
+@Getter
+@Setter
+public class DailyBoardSelectDto {
+
+    /**
+     * 开始时间
+     */
+    @NotNull(message = "开始时间不能为空")
+    private Date beginDate;
+
+    /**
+     * 结束时间
+     */
+    @NotNull(message = "结束时间不能为空")
+    private Date endDate;
+}

+ 6 - 6
sd-business/src/main/java/com/sd/business/service/board/DailyBoardService.java

@@ -1,6 +1,6 @@
 package com.sd.business.service.board;
 
-import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.sd.business.entity.board.dto.DailyBoardSelectDto;
 import com.sd.business.entity.board.vo.*;
 
 import java.util.List;
@@ -19,30 +19,30 @@ public interface DailyBoardService {
      *
      * @return
      */
-    List<DailyBoardOutStorageBomVo> getProductionOutStorageList(BaseSelectDto dto);
+    List<DailyBoardOutStorageBomVo> getProductionOutStorageList(DailyBoardSelectDto dto);
 
     /**
      * MES&万里牛今日订单和BOM差异 (不含自建订单)
      *
      * @return
      */
-    List<OrderBomDifferenceVo> getOrderBomDifferenceList(BaseSelectDto dto);
+    List<OrderBomDifferenceVo> getOrderBomDifferenceList(DailyBoardSelectDto dto);
 
     /**
      * 获取万里牛今日销售出库数据
      * @return
      */
-    WlnSalesOutStorageVo getWlnSalesOutStorageInfo(BaseSelectDto dto);
+    WlnSalesOutStorageVo getWlnSalesOutStorageInfo(DailyBoardSelectDto dto);
 
     /**
      * MES今日生产订单数据(不含自建订单)
      * @return
      */
-    MesProductionOutStorageVo getMesProductionOutStorageInfo(BaseSelectDto dto);
+    MesProductionOutStorageVo getMesProductionOutStorageInfo(DailyBoardSelectDto dto);
 
     /**
      * 自建订单数据
      * @return
      */
-    SelfOrderOutStorageVo getSelfOrderOutStorageInfo(BaseSelectDto dto);
+    SelfOrderOutStorageVo getSelfOrderOutStorageInfo(DailyBoardSelectDto dto);
 }

+ 34 - 43
sd-business/src/main/java/com/sd/business/service/board/impl/DailyBoardServiceImpl.java

@@ -4,10 +4,9 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.core.domain.BasePo;
-import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.sd.business.entity.board.dto.DailyBoardSelectDto;
 import com.sd.business.entity.board.vo.*;
 import com.sd.business.entity.bom.bo.BomSpecBo;
-import com.sd.business.entity.bom.po.BomSpec;
 import com.sd.business.entity.department.po.Department;
 import com.sd.business.entity.in.emums.InOutTypeEnum;
 import com.sd.business.entity.in.emums.OutDetailTypeEnum;
@@ -70,13 +69,9 @@ public class DailyBoardServiceImpl implements DailyBoardService {
 
 
     @Override
-    public List<DailyBoardOutStorageBomVo> getProductionOutStorageList(BaseSelectDto dto) {
-        Date date = dto.getBeginTime();
-        if (date == null) {
-            date = new Date();
-        }
-        Date beginDate = DateUtil.beginOfDay(date);
-        Date endDate = DateUtil.endOfDay(date);
+    public List<DailyBoardOutStorageBomVo> getProductionOutStorageList(DailyBoardSelectDto dto) {
+        Date beginDate = DateUtil.beginOfDay(dto.getBeginDate());
+        Date endDate = DateUtil.endOfDay(dto.getEndDate());
         List<InOutStorage> inOutStorageList = inOutStorageService.list(q -> q
                 .eq(InOutStorage::getType, InOutTypeEnum.OUT.getKey())
                 .eq(InOutStorage::getDetailType, OutDetailTypeEnum.PRODUCTION.getKey())
@@ -117,20 +112,18 @@ public class DailyBoardServiceImpl implements DailyBoardService {
     }
 
     @Override
-    public List<OrderBomDifferenceVo> getOrderBomDifferenceList(BaseSelectDto dto) {
-        Date date = dto.getBeginTime();
-        if (date == null) {
-            date = new Date();
-        }
-        Date beginDate = DateUtil.beginOfDay(date);
-        Date endDate = DateUtil.endOfDay(date);
+    public List<OrderBomDifferenceVo> getOrderBomDifferenceList(DailyBoardSelectDto dto) {
+        Date beginDate = DateUtil.beginOfDay(dto.getBeginDate());
+        Date endDate = DateUtil.endOfDay(dto.getEndDate());
         // 查询今日订单
         List<OrderInfo> orderInfoList = orderService.list(q -> q.eq(OrderInfo::getSource, 2)
                 .between(OrderInfo::getWlnCreateTime, beginDate, endDate));
         // 查询今日生成完成任务
         Map<Long, List<ProductionTask>> taskMap = productionTaskService.mapKGroup(ProductionTask::getOrderId, q -> q.between(ProductionTask::getCompleteTime, beginDate, endDate));
         // 查询今日出库单出库数据
-        Map<String, List<OutboundOrder>> outboundOrderMap = outboundOrderService.mapKGroup(OutboundOrder::getOrderWlnCode, q -> q.between(OutboundOrder::getOutboundTime, beginDate, endDate));
+        Map<String, List<OutboundOrder>> outboundOrderMap = outboundOrderService.mapKGroup(OutboundOrder::getOrderWlnCode,
+                q -> q.between(OutboundOrder::getOutboundTime, beginDate, endDate)
+                        .groupBy(Arrays.asList(OutboundOrder::getCode, OutboundOrder::getOrderWlnCode, OutboundOrder::getSkuSpecCode, OutboundOrder::getStorageCode)));
 
         // 获取今日订单sku列表
         List<Long> orderIds = orderInfoList.stream().map(BaseIdPo::getId).collect(Collectors.toList());
@@ -140,8 +133,7 @@ public class DailyBoardServiceImpl implements DailyBoardService {
         Map<String, SkuSpec> skuSpecMap = skuSpecService.mapKEntity(SkuSpec::getCode, q -> q.in(SkuSpec::getId, skuSpecIds));
         // 获取今日订单bom列表
         List<Long> bomSpecIds = orderSkuList.stream().map(OrderSku::getBomSpecId).collect(Collectors.toList());
-        Map<Long, BomSpec> bomSpecMap = bomSpecService.mapKEntity(BaseIdPo::getId, q -> q.in(BaseIdPo::getId, bomSpecIds));
-
+        Map<Long, BomSpecBo> bomSpecBoMap = skuSpecService.getBomSpecBoByIdList(bomSpecIds);
         Map<Long, OrderBomDifferenceVo> differenceMap = new HashMap<>();
 
         for (OrderInfo orderInfo : orderInfoList) {
@@ -154,10 +146,13 @@ public class DailyBoardServiceImpl implements DailyBoardService {
             }
             for (OrderSku orderSku : orderSkus) {
                 Long orderSkuId = orderSku.getSkuSpecId();
-                BomSpec bomSpec = bomSpecMap.get(orderSku.getBomSpecId());
+                BomSpecBo bomSpecBo = bomSpecBoMap.get(orderSku.getBomSpecId());
+                if (bomSpecBo == null || Objects.equals(bomSpecBo.getClassifyParentId(), 1L)) {
+                    continue;
+                }
                 OrderBomDifferenceVo bomDifferenceVo = differenceMap.computeIfAbsent(orderSku.getBomSpecId(), item -> {
                     OrderBomDifferenceVo tempOrderBomDifferenceVo = new OrderBomDifferenceVo();
-                    tempOrderBomDifferenceVo.setBomSpecCode(bomSpec.getCode());
+                    tempOrderBomDifferenceVo.setBomSpecCode(bomSpecBo.getBomSpecCode());
                     tempOrderBomDifferenceVo.setMesQuantity(BigDecimal.ZERO);
                     tempOrderBomDifferenceVo.setWlnQuantity(BigDecimal.ZERO);
                     tempOrderBomDifferenceVo.setOrderWlnCodes(new ArrayList<>());
@@ -188,7 +183,7 @@ public class DailyBoardServiceImpl implements DailyBoardService {
     }
 
     @Override
-    public WlnSalesOutStorageVo getWlnSalesOutStorageInfo(BaseSelectDto dto) {
+    public WlnSalesOutStorageVo getWlnSalesOutStorageInfo(DailyBoardSelectDto dto) {
         WlnSalesOutStorageVo vo = new WlnSalesOutStorageVo();
         vo.setSumBomCount(BigDecimal.ZERO);
         vo.setSumOrderCount(0);
@@ -196,15 +191,13 @@ public class DailyBoardServiceImpl implements DailyBoardService {
         vo.setBzSumOrderCount(0);
         vo.setSySumBomCount(BigDecimal.ZERO);
         vo.setSySumOrderCount(0);
-        Date date = dto.getBeginTime();
-        if (date == null) {
-            date = new Date();
-        }
-        Date beginDate = DateUtil.beginOfDay(date);
-        Date endDate = DateUtil.endOfDay(date);
+        Date beginDate = DateUtil.beginOfDay(dto.getBeginDate());
+        Date endDate = DateUtil.endOfDay(dto.getEndDate());
         Department department = departmentService.getOne(q -> q.eq(Department::getName, "佰卓"));
         // 查询今日出库单出库数据
-        Map<String, List<OutboundOrder>> outboundOrderMap = outboundOrderService.mapKGroup(OutboundOrder::getOrderWlnCode, q -> q.between(OutboundOrder::getOutboundTime, beginDate, endDate));
+        Map<String, List<OutboundOrder>> outboundOrderMap = outboundOrderService.mapKGroup(OutboundOrder::getOrderWlnCode,
+                q -> q.between(OutboundOrder::getOutboundTime, beginDate, endDate)
+                        .groupBy(Arrays.asList(OutboundOrder::getCode, OutboundOrder::getOrderWlnCode, OutboundOrder::getSkuSpecCode, OutboundOrder::getStorageCode)));
         if (ObjectUtil.isEmpty(outboundOrderMap)) {
             return vo;
         }
@@ -238,6 +231,9 @@ public class DailyBoardServiceImpl implements DailyBoardService {
             for (OutboundOrder outboundOrder : outboundOrderList) {
                 SkuSpec skuSpec = skuSpecMap.get(outboundOrder.getSkuSpecCode());
                 BomSpecBo bomSpecBo = bomSpecBoMap.get(skuSpec.getBomSpecId());
+                if (bomSpecBo == null) {
+                    continue;
+                }
                 if (Objects.equals(bomSpecBo.getClassifyParentId(), 1L)) {
                     DailyBoardOutStorageBomVo bomVo = new DailyBoardOutStorageBomVo();
                     bomVo.setBomSpecId(bomSpecBo.getBomSpecId());
@@ -296,7 +292,7 @@ public class DailyBoardServiceImpl implements DailyBoardService {
     }
 
     @Override
-    public MesProductionOutStorageVo getMesProductionOutStorageInfo(BaseSelectDto dto) {
+    public MesProductionOutStorageVo getMesProductionOutStorageInfo(DailyBoardSelectDto dto) {
         MesProductionOutStorageVo vo = new MesProductionOutStorageVo();
         vo.setSumBomCount(BigDecimal.ZERO);
         vo.setSumOrderCount(0);
@@ -304,12 +300,8 @@ public class DailyBoardServiceImpl implements DailyBoardService {
         vo.setBzSumOrderCount(0);
         vo.setSySumBomCount(BigDecimal.ZERO);
         vo.setSySumOrderCount(0);
-        Date date = dto.getBeginTime();
-        if (date == null) {
-            date = new Date();
-        }
-        Date beginDate = DateUtil.beginOfDay(date);
-        Date endDate = DateUtil.endOfDay(date);
+        Date beginDate = DateUtil.beginOfDay(dto.getBeginDate());
+        Date endDate = DateUtil.endOfDay(dto.getEndDate());
         Department department = departmentService.getOne(q -> q.eq(Department::getName, "佰卓"));
         // 查询今日出库单出库数据
         Map<Long, List<ProductionTask>> taskMap = productionTaskService.mapKGroup(ProductionTask::getOrderId, q -> q.between(ProductionTask::getCompleteTime, beginDate, endDate));
@@ -344,6 +336,9 @@ public class DailyBoardServiceImpl implements DailyBoardService {
             List<DailyBoardOutStorageBomVo> outStorageBomVoList = new ArrayList<>();
             for (ProductionTask productionTask : productionTaskList) {
                 BomSpecBo bomSpecBo = bomSpecBoMap.get(productionTask.getBomSpecId());
+                if (bomSpecBo == null) {
+                    continue;
+                }
                 if (Objects.equals(bomSpecBo.getClassifyParentId(), 1L)) {
                     DailyBoardOutStorageBomVo bomVo = new DailyBoardOutStorageBomVo();
                     bomVo.setBomSpecId(bomSpecBo.getBomSpecId());
@@ -402,16 +397,12 @@ public class DailyBoardServiceImpl implements DailyBoardService {
     }
 
     @Override
-    public SelfOrderOutStorageVo getSelfOrderOutStorageInfo(BaseSelectDto dto) {
+    public SelfOrderOutStorageVo getSelfOrderOutStorageInfo(DailyBoardSelectDto dto) {
         SelfOrderOutStorageVo vo = new SelfOrderOutStorageVo();
         vo.setSumBomCount(BigDecimal.ZERO);
         vo.setSumOrderCount(0);
-        Date date = dto.getBeginTime();
-        if (date == null) {
-            date = new Date();
-        }
-        Date beginDate = DateUtil.beginOfDay(date);
-        Date endDate = DateUtil.endOfDay(date);
+        Date beginDate = DateUtil.beginOfDay(dto.getBeginDate());
+        Date endDate = DateUtil.endOfDay(dto.getEndDate());
         // 查询今日出库单出库数据
         Map<Long, List<ProductionTask>> taskMap = productionTaskService.mapKGroup(ProductionTask::getOrderId, q -> q.between(ProductionTask::getCompleteTime, beginDate, endDate));
         if (ObjectUtil.isEmpty(taskMap)) {