@ -49,6 +49,7 @@ import org.springblade.scheduling.scheduling.mapper.WorkOrderMapper;
import org.springblade.scheduling.scheduling.service.* ;
import org.springblade.scheduling.scheduling.vo.SameTroughVO ;
import org.springblade.scheduling.pojo.vo.WorkOrderVO ;
import org.springblade.scheduling.scheduling.vo.WorkPlanVO ;
import org.springframework.beans.factory.annotation.Value ;
import org.springframework.stereotype.Service ;
import org.springframework.transaction.annotation.Transactional ;
@ -246,9 +247,33 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
item . setPriorityAps ( YieldOrderEnum . getName ( Integer . parseInt ( item . getPriorityAps ( ) ) ) ) ;
} ) ;
Map < String , List < WorkOrderDto > > woCodeGroup = list . stream ( ) . collect ( Collectors . groupingBy ( WorkOrderDto : : getWoCode ) ) ;
//默认不展示所有工序都完成的订单
if ( StringUtils . isEmpty ( workOrder . getBatchNo ( ) ) ) {
woCodeGroup = woCodeGroup . entrySet ( ) . stream ( )
. filter ( entry - > {
// 检查当前分组是否存在至少一个status≠5的元素
return entry . getValue ( ) . stream ( ) . anyMatch ( dto - > ! "5" . equals ( dto . getPlanStatus ( ) ) ) ;
} )
. collect ( Collectors . toMap ( Map . Entry : : getKey , Map . Entry : : getValue ) ) ;
}
//根据工序名称过滤订单
if ( StringUtils . isNotEmpty ( workOrder . getProcessName ( ) ) ) {
woCodeGroup = woCodeGroup . entrySet ( ) . stream ( )
. filter ( entry - > {
return entry . getValue ( ) . stream ( )
. anyMatch ( dto - > workOrder . getProcessName ( ) . equals ( dto . getProcessName ( ) ) ) ;
} )
. collect ( Collectors . toMap (
Map . Entry : : getKey ,
Map . Entry : : getValue ,
( oldValue , newValue ) - > oldValue ,
LinkedHashMap : : new
) ) ;
}
List < WorkOrderDto > resultList = new ArrayList < > ( ) ;
for ( Map . Entry < String , List < WorkOrderDto > > entry : woCodeGroup . entrySet ( ) ) {
if ( StringUtils . isNotEmpty ( workOrder . getProcessName ( ) ) ) {
//根据工序名称过滤订单
/ * if ( StringUtils . isNotEmpty ( workOrder . getProcessName ( ) ) ) {
List < WorkOrderDto > list1 = entry . getValue ( ) ;
List < String > processNameList = list1 . stream ( ) . map ( WorkOrderDto : : getProcessName ) . collect ( Collectors . toList ( ) ) ;
if ( processNameList . contains ( workOrder . getProcessName ( ) ) ) {
@ -261,7 +286,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
} else {
continue ;
}
}
} * /
WorkOrderDto workOrderDto = new WorkOrderDto ( ) ;
String woCode = entry . getKey ( ) ;
workOrderDto . setWoCode ( woCode ) ;
@ -403,7 +428,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
//判断是否有公共工序已经处理了,如果有则重新定义workPlanList,获取公共工序的最后结束时间和当前时间做比较,取大的作为上一道工序结束时间
if ( planMap . containsKey ( order . getYoCode ( ) ) ) {
workPlanList = planMap . get ( order . getYoCode ( ) ) ;
prevProcessEnd = prevProcessEnd . compareTo ( workPlanList . get ( workPlanList . size ( ) - 1 ) . getEndTime ( ) ) > 0 ? prevProcessEnd : workPlanList . get ( workPlanList . size ( ) - 1 ) . getEndTime ( ) ;
prevProcessEnd = prevProcessEnd . compareTo ( workPlanList . get ( workPlanList . size ( ) - 1 ) . getPlan EndTime ( ) ) > 0 ? prevProcessEnd : workPlanList . get ( workPlanList . size ( ) - 1 ) . getPlan EndTime ( ) ;
}
//处理外协工序,外协可能多个工序连续的,共享开始结束时间
Map < Long , List < YieldOrderCraftEntity > > outSourceMap = craftList . stream ( ) . filter ( item - > item . getIsOutsource ( ) = = true ) . collect ( Collectors . groupingBy ( YieldOrderCraftEntity : : getOcId ) ) ;
@ -526,11 +551,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
} else {
//生成车间订单
WorkPlanEntity workPlan = new WorkPlanEntity ( ) ;
workPlan . setStartTime ( equipResource . getStartTime ( ) ) ;
workPlan . setPlan StartTime ( equipResource . getStartTime ( ) ) ;
if ( "0" . equals ( equipResource . getEquipType ( ) ) ) {
workPlan . setEndTime ( equipResource . getStartTime ( ) . plusMinutes ( equipResource . getStandardTime ( ) . longValue ( ) ) ) ;
workPlan . setPlan EndTime ( equipResource . getStartTime ( ) . plusMinutes ( equipResource . getStandardTime ( ) . longValue ( ) ) ) ;
} else {
workPlan . setEndTime ( equipResource . getEndTime ( ) ) ;
workPlan . setPlan EndTime ( equipResource . getEndTime ( ) ) ;
}
workPlan . setWorkQty ( order . getYpQty ( ) ) ;
workPlan . setCaId ( craft . getCaId ( ) ) ;
@ -544,7 +569,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workPlan . setQualifiedQty ( 0 ) ;
workPlan . setUnqualifiedQty ( 0 ) ;
workPlan . setScrapQty ( 0 ) ;
workPlan . setHourQuota ( BigDecimal . valueOf ( ChronoUnit . MINUTES . between ( workPlan . getStartTime ( ) , workPlan . getEndTime ( ) ) ) ) ;
workPlan . setHourQuota ( BigDecimal . valueOf ( ChronoUnit . MINUTES . between ( workPlan . getPlan StartTime ( ) , workPlan . getPlan EndTime ( ) ) ) ) ;
workPlan . setEquipCode ( equipResource . getEquipCode ( ) ) ;
workPlan . setEquipName ( equipResource . getEquipName ( ) ) ;
workPlan . setEquipResourceId ( equipResource . getId ( ) ) ;
@ -574,8 +599,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
equipResourceService . update ( equipResource1 , updateWrapper ) ;
//当前工序的结束时间作为下一工序的开始时间
prevProcessEnd = workPlan . getEndTime ( ) ;
dateTime = workPlan . getEndTime ( ) ;
prevProcessEnd = workPlan . getPlan EndTime ( ) ;
dateTime = workPlan . getPlan EndTime ( ) ;
isOccupied = true ;
break ;
}
@ -601,15 +626,15 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
if ( ability ! = null ) {
if ( "镀后检验" . equals ( ability . getProcessName ( ) ) | | "镀后接收" . equals ( ability . getProcessName ( ) ) ) {
totalTime = BigDecimal . valueOf ( 30 ) ;
workPlan . setStartTime ( prevProcessEnd . plusMinutes ( 30 ) ) ;
workPlan . setEndTime ( prevProcessEnd . plusMinutes ( 60 ) ) ;
workPlan . setPlan StartTime ( prevProcessEnd . plusMinutes ( 30 ) ) ;
workPlan . setPlan EndTime ( prevProcessEnd . plusMinutes ( 60 ) ) ;
if ( "镀后接收" . equals ( ability . getProcessName ( ) ) ) {
workPlan . setMakeTeam ( Long . valueOf ( 64 ) ) ;
}
if ( "镀后检验" . equals ( ability . getProcessName ( ) ) ) {
workPlan . setMakeTeam ( Long . valueOf ( 65 ) ) ;
}
prevProcessEnd = workPlan . getEndTime ( ) ;
prevProcessEnd = workPlan . getPlan EndTime ( ) ;
} else {
if ( "0" . equals ( ability . getType ( ) ) ) {
totalTime = totalTime . add ( BigDecimal . valueOf ( order . getYpQty ( ) ) . multiply ( ability . getStandardTime ( ) ) . add ( ability . getPrepareTime ( ) ) ) ;
@ -682,8 +707,10 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workOrder . setBatchNo ( order . getBatchNo ( ) ) ;
workOrder . setYoId ( order . getId ( ) ) ;
workOrder . setMakeQty ( order . getYpQty ( ) ) ;
workOrder . setPlanStartDate ( workPlanList . get ( 0 ) . getStartTime ( ) = = null ? null : workPlanList . get ( 0 ) . getStartTime ( ) . truncatedTo ( ChronoUnit . DAYS ) . toString ( ) . substring ( 0 , 10 ) ) ;
workOrder . setPlanEndDate ( workPlanList . get ( workPlanList . size ( ) - 1 ) . getEndTime ( ) = = null ? null : workPlanList . get ( workPlanList . size ( ) - 1 ) . getEndTime ( ) . truncatedTo ( ChronoUnit . DAYS ) . toString ( ) . substring ( 0 , 10 ) ) ;
workOrder . setPlanStartDate ( workPlanList . get ( 0 ) . getPlanStartTime ( ) = = null ? null : workPlanList . get ( 0 ) . getPlanStartTime ( ) . truncatedTo ( ChronoUnit . DAYS ) . toString ( ) . substring ( 0 , 10 ) ) ;
workOrder . setPlanEndDate ( workPlanList . get ( workPlanList . size ( ) - 1 ) . getPlanEndTime ( ) = = null ? null : workPlanList . get ( workPlanList . size ( ) - 1 ) . getPlanEndTime ( ) . truncatedTo ( ChronoUnit . DAYS ) . toString ( ) . substring ( 0 , 10 ) ) ;
workOrder . setPlanStartTime ( workPlanList . get ( 0 ) . getPlanStartTime ( ) = = null ? null : workPlanList . get ( 0 ) . getPlanStartTime ( ) ) ;
workOrder . setPlanEndTime ( workPlanList . get ( workPlanList . size ( ) - 1 ) . getPlanEndTime ( ) = = null ? null : workPlanList . get ( workPlanList . size ( ) - 1 ) . getPlanEndTime ( ) ) ;
workOrder . setInventoryQty ( 0 ) ;
workOrder . setRunStatus ( 2 ) ;
workOrder . setPickingStatus ( 0 ) ;
@ -772,13 +799,13 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
int startIndex = - 1 ;
int endIndex = - 1 ;
for ( int i = 0 ; i < workPlanList . size ( ) ; i + + ) {
if ( workPlanList . get ( i ) . getStartTime ( ) ! = null ) {
if ( workPlanList . get ( i ) . getPlan StartTime ( ) ! = null ) {
startIndex = i ;
break ;
}
}
for ( int i = workPlanList . size ( ) - 1 ; i > 0 ; i - - ) {
if ( workPlanList . get ( i ) . getEndTime ( ) ! = null ) {
if ( workPlanList . get ( i ) . getPlan EndTime ( ) ! = null ) {
endIndex = i ;
break ;
}
@ -790,13 +817,13 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
WorkPlanEntity next = workPlanList . get ( i + 1 ) ; // 下一个计划(当前计划的后续计划)
// 当前计划的结束时间 = 下一个计划的开始时间
LocalDateTime currentEnd = next . getStartTime ( ) ;
LocalDateTime currentEnd = next . getPlan StartTime ( ) ;
// 当前计划的开始时间 = 结束时间 - 加工时间
LocalDateTime currentStart = currentEnd . minusMinutes ( current . getHourQuota ( ) . longValue ( ) ) ;
// 赋值给当前计划
current . setStartTime ( currentStart ) ;
current . setEndTime ( currentEnd ) ;
current . setPlan StartTime ( currentStart ) ;
current . setPlan EndTime ( currentEnd ) ;
current . setMakeTeam ( next . getMakeTeam ( ) ) ;
}
}
@ -807,40 +834,40 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
WorkPlanEntity prev = workPlanList . get ( i - 1 ) ; // 上一个计划(当前计划的前置计划)
// 当前计划的开始时间 = 上一个计划的结束时间
LocalDateTime currentStart = prev . getEndTime ( ) ;
LocalDateTime currentStart = prev . getPlan EndTime ( ) ;
// 当前计划的结束时间 = 开始时间 + 加工时间
LocalDateTime currentEnd = currentStart . plusMinutes ( current . getHourQuota ( ) . longValue ( ) ) ;
// 赋值给当前计划
current . setStartTime ( currentStart ) ;
current . setEndTime ( currentEnd ) ;
current . setPlan StartTime ( currentStart ) ;
current . setPlan EndTime ( currentEnd ) ;
current . setMakeTeam ( prev . getMakeTeam ( ) ) ;
}
}
//特殊处理,一个作业中心只有人力资源的情况
for ( int i = 0 ; i < list . size ( ) ; i + + ) {
if ( list . get ( i ) . getStartTime ( ) = = null & & list . get ( i ) . getEndTime ( ) = = null ) {
if ( i ! = 0 & & list . get ( i - 1 ) . getEndTime ( ) ! = null ) {
list . get ( i ) . setStartTime ( list . get ( i - 1 ) . getEndTime ( ) ) ;
list . get ( i ) . setEndTime ( list . get ( i ) . getStartTime ( ) . plusMinutes ( list . get ( i ) . getHourQuota ( ) . longValue ( ) ) ) ;
if ( list . get ( i ) . getPlan StartTime ( ) = = null & & list . get ( i ) . getPlan EndTime ( ) = = null ) {
if ( i ! = 0 & & list . get ( i - 1 ) . getPlan EndTime ( ) ! = null ) {
list . get ( i ) . setPlan StartTime ( list . get ( i - 1 ) . getPlan EndTime ( ) ) ;
list . get ( i ) . setPlan EndTime ( list . get ( i ) . getPlan StartTime ( ) . plusMinutes ( list . get ( i ) . getHourQuota ( ) . longValue ( ) ) ) ;
continue ;
}
if ( i ! = list . size ( ) - 1 & & list . get ( i + 1 ) . getStartTime ( ) ! = null ) {
list . get ( i ) . setEndTime ( list . get ( i + 1 ) . getStartTime ( ) ) ;
list . get ( i ) . setStartTime ( list . get ( i ) . getEndTime ( ) . minusMinutes ( list . get ( i ) . getHourQuota ( ) . longValue ( ) ) ) ;
if ( i ! = list . size ( ) - 1 & & list . get ( i + 1 ) . getPlan StartTime ( ) ! = null ) {
list . get ( i ) . setPlan EndTime ( list . get ( i + 1 ) . getPlan StartTime ( ) ) ;
list . get ( i ) . setPlan StartTime ( list . get ( i ) . getPlan EndTime ( ) . minusMinutes ( list . get ( i ) . getHourQuota ( ) . longValue ( ) ) ) ;
}
}
}
//判断是否所有数据都没有开始结束时间,说明订单只有人力资源匹配
boolean isEmpty = list . stream ( ) . allMatch ( item - > Objects . isNull ( item . getStartTime ( ) )
& & Objects . isNull ( item . getEndTime ( ) ) ) ;
boolean isEmpty = list . stream ( ) . allMatch ( item - > Objects . isNull ( item . getPlan StartTime ( ) )
& & Objects . isNull ( item . getPlan EndTime ( ) ) ) ;
if ( isEmpty ) {
//上一道工序结束时间
LocalDateTime prevProcessEnd = LocalDateTime . now ( ) ;
for ( int i = 0 ; i < list . size ( ) ; i + + ) {
list . get ( i ) . setStartTime ( prevProcessEnd ) ;
list . get ( i ) . setEndTime ( prevProcessEnd . plusMinutes ( list . get ( i ) . getHourQuota ( ) . longValue ( ) ) ) ;
prevProcessEnd = list . get ( i ) . getEndTime ( ) ;
list . get ( i ) . setPlan StartTime ( prevProcessEnd ) ;
list . get ( i ) . setPlan EndTime ( prevProcessEnd . plusMinutes ( list . get ( i ) . getHourQuota ( ) . longValue ( ) ) ) ;
prevProcessEnd = list . get ( i ) . getPlan EndTime ( ) ;
}
}
@ -1089,8 +1116,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
equipResource . setIsUsed ( "1" ) ;
equipResourceService . updateById ( equipResource ) ;
WorkPlanEntity workPlan = new WorkPlanEntity ( ) ;
workPlan . setStartTime ( equipResource . getStartTime ( ) ) ;
workPlan . setEndTime ( equipResource . getStartTime ( ) . plusMinutes ( equipResource . getStandardTime ( ) . longValue ( ) ) ) ;
workPlan . setPlan StartTime ( equipResource . getStartTime ( ) ) ;
workPlan . setPlan EndTime ( equipResource . getStartTime ( ) . plusMinutes ( equipResource . getStandardTime ( ) . longValue ( ) ) ) ;
workPlan . setWorkQty ( order . getYpQty ( ) ) ;
workPlan . setCaId ( craft . getCaId ( ) ) ;
workPlan . setPpsId ( craft . getPpsId ( ) ) ;
@ -1103,7 +1130,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workPlan . setQualifiedQty ( 0 ) ;
workPlan . setUnqualifiedQty ( 0 ) ;
workPlan . setScrapQty ( 0 ) ;
workPlan . setHourQuota ( BigDecimal . valueOf ( ChronoUnit . MINUTES . between ( workPlan . getStartTime ( ) , workPlan . getEndTime ( ) ) ) ) ;
workPlan . setHourQuota ( BigDecimal . valueOf ( ChronoUnit . MINUTES . between ( workPlan . getPlan StartTime ( ) , workPlan . getPlan EndTime ( ) ) ) ) ;
workPlan . setEquipCode ( equipResource . getEquipCode ( ) ) ;
workPlan . setEquipName ( equipResource . getEquipName ( ) ) ;
workPlan . setEquipResourceId ( equipResource . getId ( ) ) ;
@ -1192,7 +1219,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
. eq ( WorkPlanEntity : : getWorkCenterId , craft . getWorkCenterId ( ) )
. eq ( WorkPlanEntity : : getCaId , craft . getCaId ( ) )
. eq ( WorkPlanEntity : : getPpsId , craft . getPpsId ( ) )
. ge ( WorkPlanEntity : : getStartTime , dateTime ) . orderByAsc ( WorkPlanEntity : : getStartTime ) ) ;
. ge ( WorkPlanEntity : : getPlan StartTime , dateTime ) . orderByAsc ( WorkPlanEntity : : getPlan StartTime ) ) ;
if ( CollectionUtils . isNotEmpty ( workPlanOldList ) ) {
//总生产量
BigDecimal sumCapacity = order . getYpArea ( ) . multiply ( BigDecimal . valueOf ( order . getYpQty ( ) ) ) ;
@ -1282,11 +1309,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
EquipResourceEntity equipResource = equipResourceService . getById ( resourceId ) ;
//生成车间订单
WorkPlanEntity workPlan = new WorkPlanEntity ( ) ;
workPlan . setStartTime ( equipResource . getStartTime ( ) ) ;
workPlan . setPlan StartTime ( equipResource . getStartTime ( ) ) ;
if ( "0" . equals ( equipResource . getEquipType ( ) ) ) {
workPlan . setEndTime ( equipResource . getStartTime ( ) . plusMinutes ( equipResource . getStandardTime ( ) . longValue ( ) ) ) ;
workPlan . setPlan EndTime ( equipResource . getStartTime ( ) . plusMinutes ( equipResource . getStandardTime ( ) . longValue ( ) ) ) ;
} else {
workPlan . setEndTime ( equipResource . getEndTime ( ) ) ;
workPlan . setPlan EndTime ( equipResource . getEndTime ( ) ) ;
}
workPlan . setWorkQty ( order . getYpQty ( ) ) ;
workPlan . setCaId ( craft . getCaId ( ) ) ;
@ -1300,7 +1327,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workPlan . setQualifiedQty ( 0 ) ;
workPlan . setUnqualifiedQty ( 0 ) ;
workPlan . setScrapQty ( 0 ) ;
workPlan . setHourQuota ( BigDecimal . valueOf ( ChronoUnit . MINUTES . between ( workPlan . getStartTime ( ) , workPlan . getEndTime ( ) ) ) ) ;
workPlan . setHourQuota ( BigDecimal . valueOf ( ChronoUnit . MINUTES . between ( workPlan . getPlan StartTime ( ) , workPlan . getPlan EndTime ( ) ) ) ) ;
workPlan . setEquipCode ( equipResource . getEquipCode ( ) ) ;
workPlan . setEquipName ( equipResource . getEquipName ( ) ) ;
workPlan . setEquipResourceId ( equipResource . getId ( ) ) ;
@ -1319,6 +1346,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
return isSameTrough ;
}
public Map < String , Object > sameFurnace ( YieldOrderEntity order , YieldOrderCraftEntity craft , List < WorkPlanEntity > workPlanList , LocalDateTime prevProcessEnd , String glassCodeStr , Map < Long , List < SintTempCurveEntity > > sintMap ) {
Map < String , Object > map = new HashMap < > ( ) ;
Boolean isSameFurnace = false ;
@ -1365,11 +1393,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
if ( equipResource . getRestCapacity ( ) . compareTo ( sumCapacity ) > 0 ) {
//生成车间订单
WorkPlanEntity workPlan = new WorkPlanEntity ( ) ;
workPlan . setStartTime ( equipResource . getStartTime ( ) ) ;
workPlan . setPlan StartTime ( equipResource . getStartTime ( ) ) ;
if ( "0" . equals ( equipResource . getEquipType ( ) ) ) {
workPlan . setEndTime ( equipResource . getStartTime ( ) . plusMinutes ( equipResource . getStandardTime ( ) . longValue ( ) ) ) ;
workPlan . setPlan EndTime ( equipResource . getStartTime ( ) . plusMinutes ( equipResource . getStandardTime ( ) . longValue ( ) ) ) ;
} else {
workPlan . setEndTime ( equipResource . getEndTime ( ) ) ;
workPlan . setPlan EndTime ( equipResource . getEndTime ( ) ) ;
}
workPlan . setWorkQty ( order . getYpQty ( ) ) ;
workPlan . setCaId ( craft . getCaId ( ) ) ;
@ -1383,7 +1411,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workPlan . setQualifiedQty ( 0 ) ;
workPlan . setUnqualifiedQty ( 0 ) ;
workPlan . setScrapQty ( 0 ) ;
workPlan . setHourQuota ( BigDecimal . valueOf ( ChronoUnit . MINUTES . between ( workPlan . getStartTime ( ) , workPlan . getEndTime ( ) ) ) ) ;
workPlan . setHourQuota ( BigDecimal . valueOf ( ChronoUnit . MINUTES . between ( workPlan . getPlan StartTime ( ) , workPlan . getPlan EndTime ( ) ) ) ) ;
workPlan . setEquipCode ( equipResource . getEquipCode ( ) ) ;
workPlan . setEquipName ( equipResource . getEquipName ( ) ) ;
workPlan . setEquipResourceId ( equipResource . getId ( ) ) ;
@ -1430,4 +1458,45 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
} ) ;
}
@Override
public IPage < WorkPlanVO > selectQuaExecuteAnalysisPage ( IPage < WorkPlanVO > page , WorkPlanVO workPlan ) {
if ( StringUtils . isNotEmpty ( workPlan . getStartTime ( ) ) ) {
workPlan . setStartTime ( workPlan . getStartTime ( ) + " 00:00:00" ) ;
}
if ( StringUtils . isNotEmpty ( workPlan . getEndTime ( ) ) ) {
workPlan . setEndTime ( workPlan . getEndTime ( ) + " 23:59:59" ) ;
}
List < WorkPlanVO > list = baseMapper . selectQuaExecuteAnalysisPage ( page , workPlan ) ;
return page . setRecords ( list ) ;
}
@Override
public List < WorkPlanVO > selectCenterExecuteList ( WorkPlanVO workPlan ) {
List < WorkPlanVO > list = baseMapper . selectCenterExecuteList ( workPlan ) ;
if ( CollectionUtils . isNotEmpty ( list ) ) {
for ( WorkPlanVO vo : list ) {
vo . setEarlyStartCountRate ( vo . getEarlyStartCount ( ) = = 0 ? "0" : Double . parseDouble ( String . format ( "%.2f" , ( double ) vo . getEarlyStartCount ( ) / vo . getTotalOrderCount ( ) ) ) * 100 + "%" ) ;
vo . setOnTimeStartCountRate ( vo . getOnTimeStartCount ( ) = = 0 ? "0" : Double . parseDouble ( String . format ( "%.2f" , ( double ) vo . getOnTimeStartCount ( ) / vo . getTotalOrderCount ( ) ) ) * 100 + "%" ) ;
vo . setDelayStartCountRate ( vo . getDelayStartCount ( ) = = 0 ? "0" : Double . parseDouble ( String . format ( "%.2f" , ( double ) vo . getDelayStartCount ( ) / vo . getTotalOrderCount ( ) ) ) * 100 + "%" ) ;
vo . setEarlyFinishCountRate ( vo . getEarlyFinishCount ( ) = = 0 ? "0" : Double . parseDouble ( String . format ( "%.2f" , ( double ) vo . getEarlyFinishCount ( ) / vo . getTotalOrderCount ( ) ) ) * 100 + "%" ) ;
vo . setOnTimeFinishCountRate ( vo . getOnTimeFinishCount ( ) = = 0 ? "0" : Double . parseDouble ( String . format ( "%.2f" , ( double ) vo . getOnTimeFinishCount ( ) / vo . getTotalOrderCount ( ) ) ) * 100 + "%" ) ;
vo . setDelayFinishCountRate ( vo . getDelayFinishCount ( ) = = 0 ? "0" : Double . parseDouble ( String . format ( "%.2f" , ( double ) vo . getDelayFinishCount ( ) / vo . getTotalOrderCount ( ) ) ) * 100 + "%" ) ;
}
}
return list ;
}
@Override
public IPage < WorkPlanVO > selectOrderExecuteDetailPage ( IPage < WorkPlanVO > page , WorkPlanVO workPlan ) {
if ( StringUtils . isNotEmpty ( workPlan . getStartTime ( ) ) ) {
workPlan . setStartTime ( workPlan . getStartTime ( ) + " 00:00:00" ) ;
}
if ( StringUtils . isNotEmpty ( workPlan . getEndTime ( ) ) ) {
workPlan . setEndTime ( workPlan . getEndTime ( ) + " 23:59:59" ) ;
}
List < WorkPlanVO > list = baseMapper . selectOrderExecuteDetailPage ( page , workPlan ) ;
return page . setRecords ( list ) ;
}
}