|
@@ -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)) {
|