|
@@ -19,6 +19,7 @@ import com.sd.business.entity.order.po.OrderInfo;
|
|
|
import com.sd.business.entity.order.po.OrderSku;
|
|
|
import com.sd.business.entity.outbound.po.OutboundOrder;
|
|
|
import com.sd.business.entity.production.po.ProductionTask;
|
|
|
+import com.sd.business.entity.production.po.ProductionWorkOrder;
|
|
|
import com.sd.business.entity.sku.po.SkuSpec;
|
|
|
import com.sd.business.entity.statement.po.StatementOfAccount;
|
|
|
import com.sd.business.service.board.DailyBoardService;
|
|
@@ -29,7 +30,7 @@ import com.sd.business.service.in.InOutStorageService;
|
|
|
import com.sd.business.service.order.OrderService;
|
|
|
import com.sd.business.service.order.OrderSkuService;
|
|
|
import com.sd.business.service.outbound.OutboundOrderService;
|
|
|
-import com.sd.business.service.production.ProductionTaskService;
|
|
|
+import com.sd.business.service.production.ProductionWorkOrderService;
|
|
|
import com.sd.business.service.sku.SkuSpecService;
|
|
|
import com.sd.business.service.statement.StatementOfAccountService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -58,7 +59,7 @@ public class DailyBoardServiceImpl implements DailyBoardService {
|
|
|
private OrderService orderService;
|
|
|
|
|
|
@Autowired
|
|
|
- private ProductionTaskService productionTaskService;
|
|
|
+ private ProductionWorkOrderService productionWorkOrderService;
|
|
|
|
|
|
@Autowired
|
|
|
private OutboundOrderService outboundOrderService;
|
|
@@ -127,7 +128,7 @@ public class DailyBoardServiceImpl implements DailyBoardService {
|
|
|
List<Department> departmentList = departmentService.list(q -> q.like(Department::getName, "实业").or().eq(Department::getName, "佰卓").select(BaseIdPo::getId));
|
|
|
List<Long> departmentIds = departmentList.stream().map(BaseIdPo::getId).collect(Collectors.toList());
|
|
|
// 查询今日生成完成任务
|
|
|
- Map<Long, List<ProductionTask>> taskMap = productionTaskService.mapKGroup(ProductionTask::getOrderId, q -> q.between(ProductionTask::getCompleteTime, beginDate, endDate));
|
|
|
+ Map<Long, List<ProductionWorkOrder>> taskMap = productionWorkOrderService.mapKGroup(ProductionWorkOrder::getOrderId, q -> q.between(ProductionWorkOrder::getCompleteTime, beginDate, endDate));
|
|
|
// 查询今日出库单出库数据
|
|
|
Map<String, List<OutboundOrder>> outboundOrderMap = outboundOrderService.mapKGroup(OutboundOrder::getOrderWlnCode,
|
|
|
q -> q.between(OutboundOrder::getOutboundTime, beginDate, endDate));
|
|
@@ -166,9 +167,9 @@ public class DailyBoardServiceImpl implements DailyBoardService {
|
|
|
for (OrderInfo orderInfo : orderInfoList) {
|
|
|
// 获取当前订单sku
|
|
|
List<OrderSku> orderSkus = map.get(orderInfo.getId());
|
|
|
- List<ProductionTask> productionTaskList = taskMap.getOrDefault(orderInfo.getId(), Collections.emptyList());
|
|
|
+ List<ProductionWorkOrder> productionWorkOrderList = taskMap.getOrDefault(orderInfo.getId(), Collections.emptyList());
|
|
|
List<OutboundOrder> outboundOrderList = outboundOrderMap.getOrDefault(orderInfo.getWlnCode(), Collections.emptyList());
|
|
|
- if (productionTaskList.isEmpty() && outboundOrderList.isEmpty()) {
|
|
|
+ if (productionWorkOrderList.isEmpty() && outboundOrderList.isEmpty()) {
|
|
|
continue;
|
|
|
}
|
|
|
List<String> skuKeyList = new ArrayList<>();
|
|
@@ -196,10 +197,12 @@ public class DailyBoardServiceImpl implements DailyBoardService {
|
|
|
return tempOrderBomDifferenceVo;
|
|
|
});
|
|
|
// mes数量
|
|
|
- BigDecimal mesCount = productionTaskList.stream()
|
|
|
+ List<ProductionWorkOrder> workOrderList = productionWorkOrderList.stream()
|
|
|
.filter(item -> Objects.equals(item.getSkuSpecId(), orderSkuId))
|
|
|
- .map(ProductionTask::getCompleteQuantity)
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ .filter(item -> Objects.equals(item.getStatus(), 3))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ BigDecimal mesCount = new BigDecimal(workOrderList.size());
|
|
|
+
|
|
|
// 万里牛数量
|
|
|
BigDecimal wlnCount = outboundOrderList.stream()
|
|
|
.filter(item -> {
|
|
@@ -369,7 +372,7 @@ public class DailyBoardServiceImpl implements DailyBoardService {
|
|
|
departmentIds.add(department.getId());
|
|
|
|
|
|
// 查询今日出库单出库数据
|
|
|
- Map<Long, List<ProductionTask>> taskMap = productionTaskService.mapKGroup(ProductionTask::getOrderId, q -> q.between(ProductionTask::getCompleteTime, beginDate, endDate));
|
|
|
+ Map<Long, List<ProductionWorkOrder>> taskMap = productionWorkOrderService.mapKGroup(ProductionWorkOrder::getOrderId, q -> q.between(ProductionWorkOrder::getCompleteTime, beginDate, endDate));
|
|
|
if (ObjectUtil.isEmpty(taskMap)) {
|
|
|
return vo;
|
|
|
}
|
|
@@ -385,6 +388,7 @@ public class DailyBoardServiceImpl implements DailyBoardService {
|
|
|
// 获取订单sku列表
|
|
|
List<Long> orderIds = orderList.stream().map(BaseIdPo::getId).collect(Collectors.toList());
|
|
|
List<OrderSku> orderSkuList = orderSkuService.list(q -> q.in(OrderSku::getOrderId, orderIds));
|
|
|
+ Map<Long, OrderSku> orderSkuMap = orderSkuList.stream().collect(Collectors.toMap(BaseIdPo::getId, Function.identity()));
|
|
|
// 获取今日订单bom列表
|
|
|
List<Long> bomSpecIds = orderSkuList.stream().map(OrderSku::getBomSpecId).collect(Collectors.toList());
|
|
|
Map<Long, BomSpecBo> bomSpecBoMap = skuSpecService.getBomSpecBoByIdList(bomSpecIds);
|
|
@@ -397,13 +401,17 @@ public class DailyBoardServiceImpl implements DailyBoardService {
|
|
|
for (OrderInfo orderInfo : orderList) {
|
|
|
BigDecimal quantity = BigDecimal.ZERO;
|
|
|
// 当前订单出库数据
|
|
|
- List<ProductionTask> productionTaskList = taskMap.get(orderInfo.getId());
|
|
|
+ List<ProductionWorkOrder> productionWorkOrderList = taskMap.get(orderInfo.getId());
|
|
|
// 出库单中主材bom
|
|
|
List<DailyBoardOutStorageBomVo> outStorageBomVoList = new ArrayList<>();
|
|
|
- for (ProductionTask productionTask : productionTaskList) {
|
|
|
- BomSpecBo bomSpecBo = bomSpecBoMap.get(productionTask.getBomSpecId());
|
|
|
+ for (ProductionWorkOrder productionWorkOrder : productionWorkOrderList) {
|
|
|
+ OrderSku orderSku = orderSkuMap.get(productionWorkOrder.getOrderSkuId());
|
|
|
+ if (orderSku == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ BomSpecBo bomSpecBo = bomSpecBoMap.get(orderSku.getBomSpecId());
|
|
|
if (bomSpecBo == null) {
|
|
|
- quantity = quantity.add(productionTask.getCompleteQuantity());
|
|
|
+ quantity = quantity.add(new BigDecimal(1));
|
|
|
continue;
|
|
|
}
|
|
|
if (Objects.equals(bomSpecBo.getClassifyParentId(), 1L)) {
|
|
@@ -411,9 +419,9 @@ public class DailyBoardServiceImpl implements DailyBoardService {
|
|
|
bomVo.setBomSpecId(bomSpecBo.getBomSpecId());
|
|
|
bomVo.setBomSpecCode(bomSpecBo.getBomSpecCode());
|
|
|
bomVo.setBomSpecName(bomSpecBo.getBomSpecName());
|
|
|
- bomVo.setQuantity(productionTask.getCompleteQuantity());
|
|
|
+ bomVo.setQuantity(new BigDecimal(1));
|
|
|
outStorageBomVoList.add(bomVo);
|
|
|
- quantity = quantity.add(productionTask.getCompleteQuantity());
|
|
|
+ quantity = quantity.add(new BigDecimal(1));
|
|
|
}
|
|
|
}
|
|
|
// 保存bom数量
|
|
@@ -477,7 +485,7 @@ public class DailyBoardServiceImpl implements DailyBoardService {
|
|
|
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));
|
|
|
+ Map<Long, List<ProductionWorkOrder>> taskMap = productionWorkOrderService.mapKGroup(ProductionWorkOrder::getOrderId, q -> q.between(ProductionWorkOrder::getCompleteTime, beginDate, endDate));
|
|
|
if (ObjectUtil.isEmpty(taskMap)) {
|
|
|
return vo;
|
|
|
}
|
|
@@ -493,6 +501,7 @@ public class DailyBoardServiceImpl implements DailyBoardService {
|
|
|
// 获取订单sku列表
|
|
|
List<Long> orderIds = orderList.stream().map(BaseIdPo::getId).collect(Collectors.toList());
|
|
|
List<OrderSku> orderSkuList = orderSkuService.list(q -> q.in(OrderSku::getOrderId, orderIds));
|
|
|
+ Map<Long, OrderSku> orderSkuMap = orderSkuList.stream().collect(Collectors.toMap(BaseIdPo::getId, Function.identity()));
|
|
|
// 获取今日订单bom列表
|
|
|
List<Long> bomSpecIds = orderSkuList.stream().map(OrderSku::getBomSpecId).collect(Collectors.toList());
|
|
|
Map<Long, BomSpecBo> bomSpecBoMap = skuSpecService.getBomSpecBoByIdList(bomSpecIds);
|
|
@@ -501,19 +510,24 @@ public class DailyBoardServiceImpl implements DailyBoardService {
|
|
|
for (OrderInfo orderInfo : orderList) {
|
|
|
BigDecimal quantity = BigDecimal.ZERO;
|
|
|
// 当前订单出库数据
|
|
|
- List<ProductionTask> productionTaskList = taskMap.get(orderInfo.getId());
|
|
|
+ List<ProductionWorkOrder> productionWorkOrderList = taskMap.get(orderInfo.getId());
|
|
|
// 出库单中主材bom
|
|
|
List<DailyBoardOutStorageBomVo> outStorageBomVoList = new ArrayList<>();
|
|
|
- for (ProductionTask productionTask : productionTaskList) {
|
|
|
- BomSpecBo bomSpecBo = bomSpecBoMap.get(productionTask.getBomSpecId());
|
|
|
- if (Objects.equals(bomSpecBo.getClassifyParentId(), 1L)) {
|
|
|
+ for (ProductionWorkOrder productionWorkOrder : productionWorkOrderList) {
|
|
|
+ OrderSku orderSku = orderSkuMap.get(productionWorkOrder.getOrderSkuId());
|
|
|
+ if (orderSku == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Long bomSpecId = orderSku.getBomSpecId();
|
|
|
+ BomSpecBo bomSpecBo = bomSpecBoMap.get(bomSpecId);
|
|
|
+ if (Objects.equals(bomSpecBo.getClassifyParentId(), 1L) && Objects.equals(productionWorkOrder.getStatus(), 3)) {
|
|
|
DailyBoardOutStorageBomVo bomVo = new DailyBoardOutStorageBomVo();
|
|
|
bomVo.setBomSpecId(bomSpecBo.getBomSpecId());
|
|
|
bomVo.setBomSpecCode(bomSpecBo.getBomSpecCode());
|
|
|
bomVo.setBomSpecName(bomSpecBo.getBomSpecName());
|
|
|
- bomVo.setQuantity(productionTask.getCompleteQuantity());
|
|
|
+ bomVo.setQuantity(new BigDecimal(1));
|
|
|
outStorageBomVoList.add(bomVo);
|
|
|
- quantity = quantity.add(productionTask.getCompleteQuantity());
|
|
|
+ quantity = quantity.add(new BigDecimal(1));
|
|
|
}
|
|
|
}
|
|
|
// 保存bom数量
|
|
@@ -542,12 +556,12 @@ public class DailyBoardServiceImpl implements DailyBoardService {
|
|
|
List<Department> departmentList = departmentService.list(q -> q.like(Department::getName, "实业").or().eq(Department::getName, "佰卓").select(BaseIdPo::getId));
|
|
|
List<Long> departmentIds = departmentList.stream().map(BaseIdPo::getId).collect(Collectors.toList());
|
|
|
// 查询今日生成完成任务
|
|
|
- List<ProductionTask> productionTaskList = productionTaskService.list(q -> q.between(ProductionTask::getCompleteTime, beginDate, endDate));
|
|
|
+ List<ProductionWorkOrder> productionWorkOrderList = productionWorkOrderService.list(q -> q.between(ProductionWorkOrder::getCompleteTime, beginDate, endDate));
|
|
|
long productionOrderCount;
|
|
|
- if (productionTaskList.isEmpty()) {
|
|
|
+ if (productionWorkOrderList.isEmpty()) {
|
|
|
productionOrderCount = 0L;
|
|
|
} else {
|
|
|
- List<Long> orderIds = productionTaskList.stream().map(ProductionTask::getOrderId).collect(Collectors.toList());
|
|
|
+ List<Long> orderIds = productionWorkOrderList.stream().map(ProductionWorkOrder::getOrderId).collect(Collectors.toList());
|
|
|
productionOrderCount = orderService.count(q -> q.in(OrderInfo::getDepartmentId, departmentIds).in(BaseIdPo::getId, orderIds));
|
|
|
}
|
|
|
|
|
@@ -565,7 +579,8 @@ public class DailyBoardServiceImpl implements DailyBoardService {
|
|
|
}
|
|
|
|
|
|
// 查询bom总数
|
|
|
- BigDecimal productionBomQuantity = productionTaskList.stream().map(ProductionTask::getCompleteQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ List<ProductionWorkOrder> workOrderList = productionWorkOrderList.stream().filter(item -> Objects.equals(item.getStatus(), 3)).collect(Collectors.toList());
|
|
|
+ BigDecimal productionBomQuantity = new BigDecimal(workOrderList.size());
|
|
|
BigDecimal outboundBomQuantity = outboundOrderList.stream().map(OutboundOrder::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
|
if (ObjectUtil.notEqual(productionBomQuantity, outboundBomQuantity)) {
|