@ -56,7 +56,6 @@ import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl ;
import org.springblade.core.secure.BladeUser ;
import org.springblade.core.secure.utils.AuthUtil ;
import org.springblade.core.tool.api.R ;
import org.springblade.core.tool.utils.Func ;
import org.springblade.core.tool.utils.StringUtil ;
import org.springblade.system.cache.DictBizCache ;
@ -70,7 +69,7 @@ import java.text.SimpleDateFormat;
import java.util.* ;
import java.util.concurrent.TimeUnit ;
import java.util.concurrent.atomic.AtomicBoolean ;
import java.util.concurrent.atomic.AtomicReference ;
import java.util.concurrent.atomic.AtomicInteger ;
import java.util.stream.Collectors ;
/ * *
@ -136,6 +135,11 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
las = true ;
//修改
this . updateById ( distrilbutionBillLading ) ;
//修改零担数据
//修改图片
List < DistributionPrintEntity > printEntityList = distributionPrintService . list ( Wrappers . < DistributionPrintEntity > query ( ) . lambda ( ) . eq ( DistributionPrintEntity : : getBillLadingId , distrilbutionBillLading . getId ( ) ) ) ;
if ( ! printEntityList . isEmpty ( ) ) {
@ -370,6 +374,88 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
return true ;
}
/ * *
* 修改零担
* @param distrilbutionBillLadingDTO
* @return
* /
public int updetaParcelNum ( DistrilbutionBillLadingDTO distrilbutionBillLadingDTO ) {
List < DistributionReservationZeroPackageEntity > list = distributionZeroPackageService . list ( Wrappers . < DistributionReservationZeroPackageEntity > query ( ) . lambda ( )
. eq ( DistributionReservationZeroPackageEntity : : getReservationId , distrilbutionBillLadingDTO . getId ( ) )
) ; //数据库的品分类数据
List < DistributionParcelListDTO > parcelLisList = distrilbutionBillLadingDTO . getParcelLisList ( ) ; //品类信息
if ( ! list . isEmpty ( ) ) {
List < Long > longs = new ArrayList < > ( ) ;
//存在的
list . forEach ( i - > {
boolean b = parcelLisList . stream ( ) . anyMatch ( ii - > ii . getId ( ) . equals ( i . getParcelListId ( ) ) ) ;
if ( b ) {
//有数据
Iterator < DistributionParcelListDTO > iterator = parcelLisList . iterator ( ) ;
while ( iterator . hasNext ( ) ) {
DistributionParcelListDTO next = iterator . next ( ) ;
if ( next . getId ( ) . equals ( i . getParcelListId ( ) ) ) {
if ( i . getRealityQuantity ( ) > 0 ) {
throw new ServiceException ( "已备货无法修改备货数量!" ) ;
}
//获取修改的数量
Integer quantity = i . getQuantity ( ) ; //原预约数量
Integer quantity1 = next . getQuantity ( ) ; //改变的数量
int i1 = quantity - quantity1 ;
if ( i1 > 0 ) {
//减少了
distributionParcelNumberService . updateBillNum ( i . getParcelListId ( ) , i1 , 1 ) ;
} else if ( i1 < 0 ) {
//增加了
distributionParcelNumberService . updateBillNum ( i . getParcelListId ( ) , i1 , 2 ) ;
} else if ( i1 = = 0 ) {
//不做操作!
continue ;
}
//修改预约数量
DistributionReservationZeroPackageEntity zeroPackage = new DistributionReservationZeroPackageEntity ( ) ;
zeroPackage . setId ( i . getId ( ) ) ;
zeroPackage . setQuantity ( next . getQuantity ( ) ) ;
distributionZeroPackageService . updateById ( zeroPackage ) ;
iterator . remove ( ) ;
}
}
} else {
//不存在
longs . add ( i . getId ( ) ) ;
}
} ) ;
if ( ! longs . isEmpty ( ) ) {
distributionZeroPackageService . deleteLogic ( longs ) ;
}
// TODo 添加新的品类
List < DistributionReservationZeroPackageEntity > packageEntityList = new ArrayList < > ( ) ;
parcelLisList . forEach ( w - > {
DistributionReservationZeroPackageEntity zeroPackageEntity = new DistributionReservationZeroPackageEntity ( ) ;
zeroPackageEntity . setParcelListId ( w . getId ( ) ) ;
zeroPackageEntity . setStockArticleId ( w . getStockArticleId ( ) ) ;
zeroPackageEntity . setReservationId ( distrilbutionBillLadingDTO . getId ( ) ) ;
zeroPackageEntity . setQuantity ( w . getQuantity ( ) ) ;
zeroPackageEntity . setZeroPackageStatus ( "3" ) ;
zeroPackageEntity . setCategoryName ( w . getFirsts ( ) ) ;
zeroPackageEntity . setType ( "3" ) ;
zeroPackageEntity . setRealityQuantity ( 0 ) ;
packageEntityList . add ( zeroPackageEntity ) ;
} ) ;
if ( ! packageEntityList . isEmpty ( ) ) { distributionZeroPackageService . saveBatch ( packageEntityList ) ; }
} else {
log . warn ( "没有品类数据" ) ;
return 0 ;
}
return 1 ;
}
/ * *
* 修改操作订单数据
*
@ -469,9 +555,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
List < DistributionDeliveryChargeEntity > list = distributionDeliveryChargeService . list ( Wrappers . < DistributionDeliveryChargeEntity > query ( ) . lambda ( )
. eq ( DistributionDeliveryChargeEntity : : getBillLading , i . getId ( ) )
) ;
list . forEach ( ii - > {
ii . setCostName ( DictBizCache . getValue ( DictBizConstant . DELIVERY_COST , ii . getCost ( ) ) ) ;
} ) ;
list . forEach ( ii - > ii . setCostName ( DictBizCache . getValue ( DictBizConstant . DELIVERY_COST , ii . getCost ( ) ) ) ) ;
i . setList ( list ) ;
} ) ;
distrilbutionBillLadingVOIPage . setRecords ( records ) ;
@ -1203,27 +1287,47 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
throw new ServiceException ( "类型数据未填写!!!" ) ;
}
List < DistributionReservationZeroPackageEntity > zeroPackageEntityList = new ArrayList < > ( ) ;
List < DistributionParcelNumberEntity > parcelNumberEntityList = new ArrayList < > ( ) ;
AtomicInteger nu = new AtomicInteger ( ) ;
//是 添加物料信息
list . forEach ( i - > {
DistributionReservationZeroPackageEntity zeroPackageEntity = new DistributionReservationZeroPackageEntity ( ) ;
zeroPackageEntity . setQuantity ( i . getQuantity ( ) ) ;
zeroPackageEntity . setReservationId ( distrilbutionBillLading . getId ( ) ) ;
zeroPackageEntity . setType ( "3" ) ;
zeroPackageEntity . setCategoryName ( i . getFirsts ( ) ) ;
zeroPackageEntity . setZeroPackageStatus ( "1" ) ;
zeroPackageEntity . setStockArticleId ( i . getStockArticleId ( ) ) ;
zeroPackageEntity . setRealityQuantity ( 0 ) ;
//修改包件配送数量
//查询
DistributionParcelNumberEntity one = distributionParcelNumberService . getOne ( Wrappers . < DistributionParcelNumberEntity > query ( ) . lambda ( ) . eq ( DistributionParcelNumberEntity : : getParcelListId , i . getId ( ) ) ) ;
if ( ObjectUtils . isNotNull ( one ) ) {
DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity ( ) ;
parcelNumberEntity . setId ( one . getId ( ) ) ;
parcelNumberEntity . setDeliveryQuantity ( one . getDeliveryQuantity ( ) + i . getQuantity ( ) ) ;
distributionParcelNumberService . updateById ( parcelNumberEntity ) ;
if ( i . getQuantity ( ) ! = 0 ) {
DistributionReservationZeroPackageEntity zeroPackageEntity = new DistributionReservationZeroPackageEntity ( ) ;
zeroPackageEntity . setQuantity ( i . getQuantity ( ) ) ;
zeroPackageEntity . setReservationId ( distrilbutionBillLading . getId ( ) ) ;
zeroPackageEntity . setType ( "3" ) ;
zeroPackageEntity . setCategoryName ( i . getFirsts ( ) ) ;
zeroPackageEntity . setZeroPackageStatus ( "1" ) ;
zeroPackageEntity . setStockArticleId ( i . getStockArticleId ( ) ) ;
zeroPackageEntity . setRealityQuantity ( 0 ) ;
//修改包件配送数量
//查询
DistributionStockArticleEntity byId = distributionStockArticleService . getById ( i . getStockArticleId ( ) ) ;
DistributionParcelNumberEntity one = distributionParcelNumberService . getOne ( Wrappers . < DistributionParcelNumberEntity > query ( ) . lambda ( ) . eq ( DistributionParcelNumberEntity : : getParcelListId , i . getId ( ) ) ) ;
if ( ObjectUtils . isNotNull ( one ) ) {
nu . addAndGet ( i . getQuantity ( ) ) ;
DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity ( ) ;
parcelNumberEntity . setId ( one . getId ( ) ) ;
parcelNumberEntity . setDeliveryQuantity ( one . getDeliveryQuantity ( ) + i . getQuantity ( ) ) ;
parcelNumberEntity . setHandQuantity ( byId . getHandQuantity ( ) ) ;
parcelNumberEntityList . add ( parcelNumberEntity ) ;
zeroPackageEntity . setParcelListId ( one . getParcelListId ( ) ) ;
}
zeroPackageEntityList . add ( zeroPackageEntity ) ;
}
zeroPackageEntityList . add ( zeroPackageEntity ) ;
} ) ;
if ( ! parcelNumberEntityList . isEmpty ( ) ) {
parcelNumberEntityList . forEach ( p - > {
if ( nu . get ( ) < = p . getHandQuantity ( ) ) {
p . setHandQuantity ( null ) ;
distributionParcelNumberService . updateById ( p ) ;
} else {
throw new ServiceException ( "预约数量大于在库数量!!" ) ;
}
} ) ;
} else {
throw new ServiceException ( "数据异常,请联系管理员!!" ) ;
}
distributionZeroPackageService . saveBatch ( zeroPackageEntityList ) ;
}
// 创建备货任务