|
@@ -270,25 +270,30 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
|
|
|
Page<WorkOrderVo> page = getPage(dto);
|
|
|
List<WorkOrderVo> records = page.getRecords();
|
|
|
for (WorkOrderVo workOrderVo : records) {
|
|
|
- //赋值已计划数量
|
|
|
- workOrderVo.setArrangedQuantity(workOrderVo.getProductionQuantity().subtract(workOrderVo.getRemainingQuantity()));
|
|
|
- //赋值完成率
|
|
|
- long count = 0;
|
|
|
- //获取工单下的所有计划
|
|
|
- List<Long> productionPlanIds = productionPlanService.listObject(ProductionPlan::getId,
|
|
|
- q -> q.eq(ProductionPlan::getWorkOrderId, workOrderVo.getId()));
|
|
|
- if (ObjectUtil.isNotEmpty(productionPlanIds)) {
|
|
|
- //获取计划下的所有任务
|
|
|
- List<Long> productionTaskIds = productionTaskService.listObject(ProductionTask::getId,
|
|
|
- q -> q.in(ProductionTask::getProductionPlanId, productionPlanIds));
|
|
|
- if (ObjectUtil.isNotEmpty(productionTaskIds)) {
|
|
|
- count = productionTaskDetailService.count(q ->
|
|
|
- q.in(ProductionTaskDetail::getProductionTaskId, productionTaskIds)
|
|
|
- .eq(ProductionTaskDetail::getFinishStatus, 1));
|
|
|
+ workOrderVo.setArrangedQuantity(BigDecimal.ZERO);
|
|
|
+ workOrderVo.setCompletionRate(BigDecimal.ZERO);
|
|
|
+
|
|
|
+ if(ObjectUtil.isNotEmpty(workOrderVo.getProductionQuantity())) {
|
|
|
+ //赋值已计划数量
|
|
|
+ workOrderVo.setArrangedQuantity(workOrderVo.getProductionQuantity().subtract(workOrderVo.getRemainingQuantity()));
|
|
|
+ //赋值完成率
|
|
|
+ long count = 0;
|
|
|
+ //获取工单下的所有计划
|
|
|
+ List<Long> productionPlanIds = productionPlanService.listObject(ProductionPlan::getId,
|
|
|
+ q -> q.eq(ProductionPlan::getWorkOrderId, workOrderVo.getId()));
|
|
|
+ if (ObjectUtil.isNotEmpty(productionPlanIds)) {
|
|
|
+ //获取计划下的所有任务
|
|
|
+ List<Long> productionTaskIds = productionTaskService.listObject(ProductionTask::getId,
|
|
|
+ q -> q.in(ProductionTask::getProductionPlanId, productionPlanIds));
|
|
|
+ if (ObjectUtil.isNotEmpty(productionTaskIds)) {
|
|
|
+ count = productionTaskDetailService.count(q ->
|
|
|
+ q.in(ProductionTaskDetail::getProductionTaskId, productionTaskIds)
|
|
|
+ .eq(ProductionTaskDetail::getFinishStatus, 1));
|
|
|
+ }
|
|
|
}
|
|
|
+ BigDecimal divide = BigDecimal.valueOf(count).divide(workOrderVo.getProductionQuantity(), 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
|
|
|
+ workOrderVo.setCompletionRate(divide);
|
|
|
}
|
|
|
- BigDecimal divide = BigDecimal.valueOf(count).divide(workOrderVo.getProductionQuantity(), 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
|
|
|
- workOrderVo.setCompletionRate(divide);
|
|
|
}
|
|
|
return page;
|
|
|
}
|