@@ -13,6 +13,7 @@ import com.klp.flow.domain.bo.SchProdScheduleItemBo;
import com.klp.flow.domain.bo.SchProdScheduleItemMergeBo ;
import com.klp.flow.domain.bo.SchProdScheduleItemReceiveBo ;
import com.klp.flow.domain.bo.SchProdScheduleItemMergeValidateBo ;
import com.klp.flow.domain.bo.SchProdScheduleItemSortBo ;
import com.klp.flow.domain.vo.SchProdScheduleItemVo ;
import com.klp.flow.domain.vo.SchProdScheduleItemMergeValidateVo ;
import com.klp.flow.domain.SchProdScheduleItem ;
@@ -56,7 +57,12 @@ public class SchProdScheduleItemServiceImpl implements ISchProdScheduleItemServi
*/
@Override
public SchProdScheduleItemVo queryById ( Long scheduleId ) {
return baseMapper . selectVoById ( scheduleId ) ;
SchProdScheduleItemVo vo = baseMapper . selectVoById ( scheduleId ) ;
if ( vo ! = null ) {
fillStepName ( java . util . Collections . singletonList ( vo ) ) ;
fillMissingHeaderFields ( java . util . Collections . singletonList ( vo ) ) ;
}
return vo ;
}
/**
@@ -68,6 +74,7 @@ public class SchProdScheduleItemServiceImpl implements ISchProdScheduleItemServi
Page < SchProdScheduleItemVo > result = baseMapper . selectVoPage ( pageQuery . build ( ) , lqw ) ;
if ( result . getRecords ( ) ! = null & & ! result . getRecords ( ) . isEmpty ( ) ) {
fillStepName ( result . getRecords ( ) ) ;
fillMissingHeaderFields ( result . getRecords ( ) ) ;
}
return TableDataInfo . build ( result ) ;
}
@@ -81,6 +88,7 @@ public class SchProdScheduleItemServiceImpl implements ISchProdScheduleItemServi
List < SchProdScheduleItemVo > list = baseMapper . selectVoList ( lqw ) ;
if ( list ! = null & & ! list . isEmpty ( ) ) {
fillStepName ( list ) ;
fillMissingHeaderFields ( list ) ;
}
return list ;
}
@@ -121,6 +129,8 @@ public class SchProdScheduleItemServiceImpl implements ISchProdScheduleItemServi
lqw . eq ( StringUtils . isNotBlank ( bo . getRowRemark ( ) ) , SchProdScheduleItem : : getRowRemark , bo . getRowRemark ( ) ) ;
// actionId
lqw . eq ( bo . getActionId ( ) ! = null , SchProdScheduleItem : : getActionId , bo . getActionId ( ) ) ;
lqw . orderByAsc ( SchProdScheduleItem : : getSortNo ) ;
lqw . orderByAsc ( SchProdScheduleItem : : getScheduleId ) ;
return lqw ;
}
@@ -148,6 +158,149 @@ public class SchProdScheduleItemServiceImpl implements ISchProdScheduleItemServi
}
}
private void fillMissingHeaderFields ( List < SchProdScheduleItemVo > voList ) {
List < SchProdScheduleItemVo > missingList = voList . stream ( )
. filter ( vo - > StringUtils . isBlank ( vo . getCustomerName ( ) )
| | StringUtils . isBlank ( vo . getBusinessUser ( ) )
| | StringUtils . isBlank ( vo . getBusinessPhone ( ) )
| | vo . getDeliveryCycle ( ) = = null
| | StringUtils . isBlank ( vo . getProductType ( ) )
| | StringUtils . isBlank ( vo . getUsePurpose ( ) ) )
. collect ( Collectors . toList ( ) ) ;
if ( missingList . isEmpty ( ) ) {
return ;
}
List < String > scheduleNos = missingList . stream ( )
. map ( SchProdScheduleItemVo : : getScheduleNo )
. filter ( StringUtils : : isNotBlank )
. distinct ( )
. collect ( Collectors . toList ( ) ) ;
if ( scheduleNos . isEmpty ( ) ) {
return ;
}
List < SchProdSchedule > headers = schProdScheduleMapper . selectList (
Wrappers . < SchProdSchedule > lambdaQuery ( )
. in ( SchProdSchedule : : getScheduleNo , scheduleNos )
) ;
Map < String , SchProdSchedule > headerMap = headers . stream ( )
. collect ( Collectors . toMap ( SchProdSchedule : : getScheduleNo , h - > h , ( v1 , v2 ) - > v1 ) ) ;
for ( SchProdScheduleItemVo vo : missingList ) {
SchProdSchedule header = headerMap . get ( vo . getScheduleNo ( ) ) ;
if ( header = = null ) {
continue ;
}
boolean changed = false ;
SchProdScheduleItem update = new SchProdScheduleItem ( ) ;
update . setScheduleId ( vo . getScheduleId ( ) ) ;
if ( StringUtils . isBlank ( vo . getCustomerName ( ) ) & & StringUtils . isNotBlank ( header . getCustomerName ( ) ) ) {
vo . setCustomerName ( header . getCustomerName ( ) ) ;
update . setCustomerName ( header . getCustomerName ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getBusinessUser ( ) ) & & StringUtils . isNotBlank ( header . getBusinessUser ( ) ) ) {
vo . setBusinessUser ( header . getBusinessUser ( ) ) ;
update . setBusinessUser ( header . getBusinessUser ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getBusinessPhone ( ) ) & & StringUtils . isNotBlank ( header . getBusinessPhone ( ) ) ) {
vo . setBusinessPhone ( header . getBusinessPhone ( ) ) ;
update . setBusinessPhone ( header . getBusinessPhone ( ) ) ;
changed = true ;
}
if ( vo . getDeliveryCycle ( ) = = null & & header . getDeliveryCycle ( ) ! = null ) {
vo . setDeliveryCycle ( header . getDeliveryCycle ( ) ) ;
update . setDeliveryCycle ( header . getDeliveryCycle ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getProductType ( ) ) & & StringUtils . isNotBlank ( header . getProductType ( ) ) ) {
vo . setProductType ( header . getProductType ( ) ) ;
update . setProductType ( header . getProductType ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getUsePurpose ( ) ) & & StringUtils . isNotBlank ( header . getUsePurpose ( ) ) ) {
vo . setUsePurpose ( header . getUsePurpose ( ) ) ;
update . setUsePurpose ( header . getUsePurpose ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getThicknessTolerance ( ) ) & & StringUtils . isNotBlank ( header . getThicknessTolerance ( ) ) ) {
vo . setThicknessTolerance ( header . getThicknessTolerance ( ) ) ;
update . setThicknessTolerance ( header . getThicknessTolerance ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getWidthTolerance ( ) ) & & StringUtils . isNotBlank ( header . getWidthTolerance ( ) ) ) {
vo . setWidthTolerance ( header . getWidthTolerance ( ) ) ;
update . setWidthTolerance ( header . getWidthTolerance ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getSurfaceQuality ( ) ) & & StringUtils . isNotBlank ( header . getSurfaceQuality ( ) ) ) {
vo . setSurfaceQuality ( header . getSurfaceQuality ( ) ) ;
update . setSurfaceQuality ( header . getSurfaceQuality ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getSurfaceTreatment ( ) ) & & StringUtils . isNotBlank ( header . getSurfaceTreatment ( ) ) ) {
vo . setSurfaceTreatment ( header . getSurfaceTreatment ( ) ) ;
update . setSurfaceTreatment ( header . getSurfaceTreatment ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getInnerDiameter ( ) ) & & StringUtils . isNotBlank ( header . getInnerDiameter ( ) ) ) {
vo . setInnerDiameter ( header . getInnerDiameter ( ) ) ;
update . setInnerDiameter ( header . getInnerDiameter ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getOuterDiameter ( ) ) & & StringUtils . isNotBlank ( header . getOuterDiameter ( ) ) ) {
vo . setOuterDiameter ( header . getOuterDiameter ( ) ) ;
update . setOuterDiameter ( header . getOuterDiameter ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getPackReq ( ) ) & & StringUtils . isNotBlank ( header . getPackReq ( ) ) ) {
vo . setPackReq ( header . getPackReq ( ) ) ;
update . setPackReq ( header . getPackReq ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getCutEdgeReq ( ) ) & & StringUtils . isNotBlank ( header . getCutEdgeReq ( ) ) ) {
vo . setCutEdgeReq ( header . getCutEdgeReq ( ) ) ;
update . setCutEdgeReq ( header . getCutEdgeReq ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getSingleCoilWeight ( ) ) & & StringUtils . isNotBlank ( header . getSingleCoilWeight ( ) ) ) {
vo . setSingleCoilWeight ( header . getSingleCoilWeight ( ) ) ;
update . setSingleCoilWeight ( header . getSingleCoilWeight ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getWeightDeviation ( ) ) & & StringUtils . isNotBlank ( header . getWeightDeviation ( ) ) ) {
vo . setWeightDeviation ( header . getWeightDeviation ( ) ) ;
update . setWeightDeviation ( header . getWeightDeviation ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getOtherTechReq ( ) ) & & StringUtils . isNotBlank ( header . getOtherTechReq ( ) ) ) {
vo . setOtherTechReq ( header . getOtherTechReq ( ) ) ;
update . setOtherTechReq ( header . getOtherTechReq ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getPaymentDesc ( ) ) & & StringUtils . isNotBlank ( header . getPaymentDesc ( ) ) ) {
vo . setPaymentDesc ( header . getPaymentDesc ( ) ) ;
update . setPaymentDesc ( header . getPaymentDesc ( ) ) ;
changed = true ;
}
if ( StringUtils . isBlank ( vo . getRemark ( ) ) & & StringUtils . isNotBlank ( header . getRemark ( ) ) ) {
vo . setRemark ( header . getRemark ( ) ) ;
update . setRemark ( header . getRemark ( ) ) ;
changed = true ;
}
if ( changed ) {
baseMapper . updateById ( update ) ;
}
}
}
/**
* 新增排产单主加明细可合并
*/
@@ -504,6 +657,22 @@ public class SchProdScheduleItemServiceImpl implements ISchProdScheduleItemServi
return vo ;
}
@Override
@Transactional ( rollbackFor = Exception . class )
public Boolean saveSort ( SchProdScheduleItemSortBo sortBo ) {
List < Long > scheduleIds = sortBo . getScheduleIds ( ) ;
for ( int i = 0 ; i < scheduleIds . size ( ) ; i + + ) {
Long id = scheduleIds . get ( i ) ;
baseMapper . update (
null ,
Wrappers . < SchProdScheduleItem > lambdaUpdate ( )
. set ( SchProdScheduleItem : : getSortNo , i + 1 )
. eq ( SchProdScheduleItem : : getScheduleId , id )
) ;
}
return true ;
}
/**
* 反射获取字段值(用于动态字段比较 — SchProdSchedule header)
*/