@ -41,6 +41,7 @@ import com.logpm.distribution.mapper.DistributionReservationMapper;
import com.logpm.distribution.mapper.DistributionReservationStocklistMapper ;
import com.logpm.distribution.service.* ;
import com.logpm.distribution.vo.* ;
import com.logpm.warehouse.entity.WarehouseGoodsAllocationEntity ;
import com.logpm.warehouse.entity.WarehouseUpdownGoodsEntity ;
import com.logpm.warehouse.feign.* ;
import io.swagger.annotations.Api ;
@ -675,44 +676,105 @@ public class DistributionStockupAppController extends BladeController {
if ( ! distributionParcelListEntity . getMaterialCode ( ) . equals ( cargoNumber ) ) {
//不属于该物料库存品包件
return Resp . scanFail ( 60006 , "无效的库存品包件!!!" , "无效的库存品包件!!!" , "" ) ;
}
//该包件不在此库位
WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = new WarehouseUpdownGoodsEntity ( ) ;
warehouseUpdownGoodsEntity . setAssociationValue ( stockupDTO . getPacketBarCode ( ) ) ;
warehouseUpdownGoodsEntity . setAssociationType ( "3" ) ;
warehouseUpdownGoodsEntity . setAllocationId ( stockupDTO . getAllocationId ( ) ) ;
warehouseUpdownGoodsEntity . setWarehouseId ( myCurrentWarehouse . getId ( ) ) ;
WarehouseUpdownGoodsEntity locationInformation = warehouseUpdownGoodsClient . getLocationInformation ( warehouseUpdownGoodsEntity ) ;
if ( Func . isEmpty ( locationInformation ) ) {
return Resp . scanFail ( 60007 , "库位无此包件!!!" , "库位无此包件!!!" , "" ) ;
}
//判断是否可以继续备货
//判断扫描的包件是否可以继续进行该预约的库存品备货
int isStockUp = judgmentIsStockUp ( stockupDTO . getReservationId ( ) , stockupDTO . getStockListId ( ) , distributionParcelListEntity , myCurrentWarehouse . getId ( ) , stockupDTO . getCargoNumber ( ) ) ;
DistributionStockListEntity distributionStockListEntities = distributionStockupService . selectStockListInfoByCargoNumberList ( stockupDTO . getReservationId ( ) , stockupDTO . getCargoNumber ( ) , stockupDTO . getAllocationId ( ) , stockupDTO . getPacketBarCode ( ) ) ;
if ( ObjectUtils . isNull ( distributionStockListEntities ) ) {
return R . data ( 60003 , "" , "该包件还未上架!" ) ;
switch ( isStockUp ) {
case 1 :
return Resp . scanFail ( 60008 , "包件不属于此计划!!!" , "包件不属于此计划!!!" , "" ) ;
case 2 :
return R . data ( 60002 , distributionStockListEntities . getId ( ) , "当前包件批次号与入库批次号不符,是否确认修改计划批次" ) ;
case 3 :
//查询其他所用的页面信息
DistributionStockupStockListVO distributionStockupStockListVO = distributionReservationService . selectStockupStockListByStockListId ( reservationId , distributionStockListEntities . getId ( ) ) ;
return R . data ( 200 , distributionStockupStockListVO , "扫描成功!" ) ;
case 4 :
return R . data ( 200 , distributionStockListEntities . getId ( ) , "扫描成功!" ) ;
}
//判断是否可以继续备货
// if (ObjectUtils.isNull(distributionStockListEntities)) {
// return R.data(60003, "", "该包件还未上架!");
// }
// 通过当前预约单和货物定位当前计划的库存品批次
List < DistributionStockListEntity > planDistributionStockListEntities = getPlanDistributionStockListEntities ( stockupDTO ) ;
// List<DistributionStockListEntity> planDistributionStockListEntities = getPlanDistributionStockListEntities(stockupDTO);
//是否更新计划
boolean isUpdate = false ;
Long updateStockListId = null ;
// //是否更新计划
// boolean isUpdate = false;
// Long updateStockListId = null;
// 验证当前货位的货位和计划批次是否相同
// 验证当前扫描的库存品包件是否属于该计划的库存品批次
// List<DistributionReservationStocklistEntity> distributionReservationStocklistEntities = distributionReservationMapper.selectStockListByReservationId(stockupDTO.getReservationId());
// distributionReservationStocklistEntities.stream().map(DistributionReservationStocklistEntity::getStocklistId).filter(drs->)
// for (DistributionStockListEntity planDistributionStockListEntity : planDistributionStockListEntities) {
// if (planDistributionStockListEntity.getSourceType().equals("2")) {
// if (planDistributionStockListEntity.getOrderCode().equals(distributionStockListEntities.getIncomingBatch())) {
// isUpdate = true;
// updateStockListId = distributionStockListEntities.getId();
// break;
// }
// }
// }
// if (isUpdate) {
// return R.data(60002, updateStockListId, "当前包件批次号与入库批次号不符,是否确认修改计划批次");
// }
for ( DistributionStockListEntity planDistributionStockListEntity : planDistributionStockListEntities ) {
if ( planDistributionStockListEntity . getSourceType ( ) . equals ( "2" ) ) {
if ( planDistributionStockListEntity . getOrderCode ( ) . equals ( distributionStockListEntities . getIncomingBatch ( ) ) ) {
isUpdate = true ;
updateStockListId = distributionStockListEntities . getId ( ) ;
break ;
}
}
}
return R . data ( 200 , "" , "扫描成功!" ) ;
}
private int judgmentIsStockUp ( Long reservationId , Long stockListId , DistributionParcelListEntity distributionParcelListEntity , Long warehouseId , String cargoNumber ) {
List < DistributionReservationStocklistEntity > distributionReservationStocklistEntities = distributionReservationMapper . selectStockListByReservationId ( reservationId ) ;
if ( Func . isNotEmpty ( distributionReservationStocklistEntities ) ) {
List < Long > stockListIds = distributionReservationStocklistEntities . stream ( ) . map ( DistributionReservationStocklistEntity : : getStocklistId ) . collect ( Collectors . toList ( ) ) ;
//查询库存品信息
List < DistributionStockListEntity > stockListEntityList = distributionStockListService . list ( Wrappers . < DistributionStockListEntity > query ( ) . lambda ( )
. in ( DistributionStockListEntity : : getId , stockListId )
. eq ( DistributionStockListEntity : : getWarehouseId , warehouseId )
. eq ( DistributionStockListEntity : : getCargoNumber , cargoNumber )
) ;
//判断该库存品包件是否属于计划库存品的物料
boolean isHave = stockListEntityList . stream ( ) . map ( DistributionStockListEntity : : getCargoNumber ) . anyMatch ( s - > s . contains ( distributionParcelListEntity . getMaterialCode ( ) ) ) ;
if ( ! isHave ) {
return 1 ;
}
if ( isUpdate ) {
return R . data ( 60002 , updateStockListId , "当前包件批次号与入库批次号不符,是否确认修改计划批次" ) ;
//判断该库存品包件是否属于计划的批次
boolean isHaveIncomingBatch = stockListEntityList . stream ( ) . map ( DistributionStockListEntity : : getIncomingBatch ) . anyMatch ( s - > s . contains ( distributionParcelListEntity . getOrderCode ( ) ) ) ;
if ( ! isHaveIncomingBatch ) {
//判断计划下是否还存在哟该物料的库存品
List < DistributionStockListEntity > distributionStockListEntities = distributionStockListService . list ( Wrappers . < DistributionStockListEntity > query ( ) . lambda ( )
. in ( DistributionStockListEntity : : getId , stockListId )
. eq ( DistributionStockListEntity : : getWarehouseId , warehouseId )
. eq ( DistributionStockListEntity : : getCargoNumber , cargoNumber )
) ;
boolean isOther = distributionStockListEntities . stream ( ) . map ( DistributionStockListEntity : : getCargoNumber ) . anyMatch ( s - > s . contains ( distributionParcelListEntity . getMaterialCode ( ) ) ) ;
if ( isOther ) {
//是否是计划下同物料的库存品
return 3 ;
} else {
//不属于计划中同物料的库存品
return 2 ;
}
}
}
return R . data ( 200 , "" , "扫描成功!" ) ;
return 4 ;
}
/ * *
@ -737,104 +799,148 @@ public class DistributionStockupAppController extends BladeController {
//todo 这里代码没有写完 等TJJ 和CYZ 空了来写
@ResponseBody
@PostMapping ( "/updateStockup" )
@ApiOperationSupport ( order = 1 )
@ApiOperation ( value = "修改批次" , notes = "传入stockupDTO" )
// 修改预约备货信息 需要传入修改的包条
public R updateStockup ( @RequestBody StockupDTO stockupDTO ) {
List < DistributionReservationStocklistEntity > distributionReservationStocklistEntities = distributionReservationMapper . selectStockListByReservationId ( stockupDTO . getReservationId ( ) ) ;
//当前预约是否存在该批次库存品计划
if ( Func . isNotEmpty ( distributionReservationStocklistEntities ) ) {
boolean isAdd = distributionReservationStocklistEntities . stream ( ) . map ( DistributionReservationStocklistEntity : : getStocklistId ) . anyMatch ( s - > s . equals ( stockupDTO . getStockListId ( ) ) ) ;
//扣减对应的库存品信息
// DistributionStockListEntity newStockListEntity = distributionStockListService.getById(stockupDTO.getStockListId());
if ( ! isAdd ) {
///先进行对应的扣减
//查询该预约该物料的库存品信息
List < DistributionReservationStocklistEntity > reservationStocklistEntities = distributionReservationMapper . selectInventoryListByIdAndMateriel ( stockupDTO . getReservationId ( ) , stockupDTO . getCargoNumber ( ) ) ;
//可能会出现同一物料不同批次的库存品
List < DistributionReservationStocklistEntity > reservationStockList = reservationStocklistEntities . stream ( ) . filter ( drs - > drs . getReservationNum ( ) > 0 & & drs . getRealityNum ( ) < drs . getReservationNum ( ) ) . collect ( Collectors . toList ( ) ) ;
if ( Func . isNotEmpty ( reservationStockList ) ) {
DistributionReservationStocklistEntity oldReservationStocklistEntity = reservationStockList . get ( 0 ) ;
//扣减计划数量
oldReservationStocklistEntity . setReservationNum ( oldReservationStocklistEntity . getReservationNum ( ) - 1 ) ;
distributionReservationStocklistService . updateById ( oldReservationStocklistEntity ) ;
//维护对应的库存品包件
List < DisStockListDetailEntity > stockListDetailEntities = disStockListDetailService . list ( Wrappers . < DisStockListDetailEntity > query ( ) . lambda ( )
. eq ( DisStockListDetailEntity : : getReservationId , oldReservationStocklistEntity . getReservationId ( ) )
. eq ( DisStockListDetailEntity : : getStockListId , oldReservationStocklistEntity . getStocklistId ( ) )
. ne ( DisStockListDetailEntity : : getStockPackageStatus , ReservationPackageStatusConstant . quxiao . getValue ( ) )
) ;
// 增加实际扫描的包件对应的库存品信息 增加在预约库存品中间表上
DistributionReservationStocklistEntity reservationStocklistEntity = new DistributionReservationStocklistEntity ( ) ;
reservationStocklistEntity . setReservationId ( stockupDTO . getReservationId ( ) ) ;
reservationStocklistEntity . setReservationNum ( 1 ) ;
reservationStocklistEntity . setLoadingStatus ( "10" ) ;
reservationStocklistEntity . setSigningStatus ( "10" ) ;
reservationStocklistEntity . setStockListStatus ( "3" ) ;
DistributionStockListEntity stockListEntity = distributionStockListService . getById ( stockupDTO . getStockListId ( ) ) ;
if ( ObjectUtils . isNotNull ( stockListEntity ) ) {
reservationStocklistEntity . setStocklistId ( stockListEntity . getId ( ) ) ;
reservationStocklistEntity . setUnit ( stockListEntity . getCargoUnit ( ) ) ;
reservationStocklistEntity . setRealityNum ( 0 ) ;
}
distributionReservationStocklistService . save ( reservationStocklistEntity ) ;
//扣减对应的库存品信息
DistributionStockListEntity newStockListEntity = distributionStockListService . getById ( stockListEntity . getId ( ) ) ;
newStockListEntity . setQuantityStock ( newStockListEntity . getQuantityStock ( ) - reservationStocklistEntity . getReservationNum ( ) ) ;
distributionStockListService . updateById ( newStockListEntity ) ;
//查询该预约该物料的库存品信息
List < DistributionReservationStocklistEntity > reservationStocklistEntities = distributionReservationMapper . selectInventoryListByIdAndMateriel ( reservationStocklistEntity . getId ( ) , stockListEntity . getMarketCode ( ) ) ;
//可能会出现同一物料不同批次的库存品
//根据情况进行计划的数量扣减
Map < Long , List < DistributionReservationStocklistEntity > > stockListMap ;
if ( Func . isNotEmpty ( reservationStocklistEntities ) ) {
//查询是否进行备货
stockListMap = reservationStocklistEntities . stream ( ) . collect ( Collectors . groupingBy ( DistributionReservationStocklistEntity : : getStocklistId ) ) ;
//过滤已经完成备货的预约库存品批次
stockListMap . forEach ( ( k , v ) - > {
//查询该预约的库存品包件是否完成备货
v . forEach ( o - > {
//查询包件是否完成备货
DistributionStockListEntity oldStockListEntity = distributionStockListService . getById ( oldReservationStocklistEntity . getStocklistId ( ) ) ;
oldStockListEntity . setQuantityOccupied ( oldStockListEntity . getQuantityOccupied ( ) - 1 ) ;
distributionStockListService . updateById ( oldStockListEntity ) ;
//对指定库存品包件进行库存品ID修改
DisStockListDetailEntity disStockListDetailEntity = stockListDetailEntities . stream ( ) . filter ( sd - > Func . isEmpty ( sd . getStockPackageCode ( ) ) ) . collect ( Collectors . toList ( ) ) . get ( 0 ) ;
if ( Func . isNotEmpty ( disStockListDetailEntity ) ) {
disStockListDetailEntity . setStockListId ( stockupDTO . getStockListId ( ) ) ;
disStockListDetailService . updateById ( disStockListDetailEntity ) ;
}
//维护对应库存品的冻结数量
DistributionStockListEntity newStockListEntity = distributionStockListService . getById ( stockupDTO . getStockListId ( ) ) ;
newStockListEntity . setQuantityOccupied ( oldStockListEntity . getQuantityOccupied ( ) + 1 ) ;
distributionStockListService . updateById ( newStockListEntity ) ;
}
// 增加实际扫描的包件对应的库存品信息 增加在预约库存品中间表上
DistributionReservationStocklistEntity reservationStocklistEntity = new DistributionReservationStocklistEntity ( ) ;
reservationStocklistEntity . setReservationId ( stockupDTO . getReservationId ( ) ) ;
reservationStocklistEntity . setReservationNum ( 1 ) ;
reservationStocklistEntity . setLoadingStatus ( "10" ) ;
reservationStocklistEntity . setSigningStatus ( "10" ) ;
reservationStocklistEntity . setStockListStatus ( "3" ) ;
DistributionStockListEntity stockListEntity = distributionStockListService . getById ( stockupDTO . getStockListId ( ) ) ;
if ( ObjectUtils . isNotNull ( stockListEntity ) ) {
reservationStocklistEntity . setStocklistId ( stockListEntity . getId ( ) ) ;
reservationStocklistEntity . setUnit ( stockListEntity . getCargoUnit ( ) ) ;
reservationStocklistEntity . setRealityNum ( 0 ) ;
}
distributionReservationStocklistService . save ( reservationStocklistEntity ) ;
} else {
//扣减该物料的计划库存品
List < DistributionReservationStocklistEntity > reservationStocklistEntityList = distributionReservationMapper . selectStockListByReservationIdAndCargoNumber ( stockupDTO . getReservationId ( ) , stockupDTO . getCargoNumber ( ) , stockupDTO . getStockListId ( ) ) ;
List < DistributionReservationStocklistEntity > oldReservationStockList = reservationStocklistEntityList . stream ( ) . filter ( rs - > rs . getReservationNum ( ) > 0 & & rs . getRealityNum ( ) < rs . getReservationNum ( ) ) . collect ( Collectors . toList ( ) ) ;
if ( Func . isNotEmpty ( oldReservationStockList ) ) {
//对老的计划数量进行减少
DistributionReservationStocklistEntity reservationStocklistEntity = oldReservationStockList . get ( 0 ) ;
reservationStocklistEntity . setReservationNum ( reservationStocklistEntity . getReservationNum ( ) - 1 ) ;
distributionReservationStocklistService . updateById ( reservationStocklistEntity ) ;
//维护对应库存品的冻结数量
DistributionStockListEntity oldStockListEntity = distributionStockListService . getById ( reservationStocklistEntity . getStocklistId ( ) ) ;
oldStockListEntity . setQuantityOccupied ( oldStockListEntity . getQuantityOccupied ( ) - 1 ) ;
distributionStockListService . updateById ( oldStockListEntity ) ;
//维护对应的库存品包件
List < DisStockListDetailEntity > stockListDetailEntities = disStockListDetailService . list ( Wrappers . < DisStockListDetailEntity > query ( ) . lambda ( )
. eq ( DisStockListDetailEntity : : getReservationId , o . getReservationId ( ) )
. eq ( DisStockListDetailEntity : : getStockListId , o . getStocklistId ( ) )
. eq ( DisStockListDetailEntity : : getReservationId , reservati onStocklistEntity . getReservationId ( ) )
. eq ( DisStockListDetailEntity : : getStockListId , reservati onStocklistEntity . getStocklistId ( ) )
. ne ( DisStockListDetailEntity : : getStockPackageStatus , ReservationPackageStatusConstant . quxiao . getValue ( ) )
) ;
boolean stockFlag = stockListDetailEntities . stream ( ) . allMatch ( s - > Func . isNotEmpty ( s . getStockPackageCode ( ) ) ) ;
if ( stockFlag ) {
stockListMap . remove ( k ) ;
//对指定库存品包件进行库存品ID修改
DisStockListDetailEntity disStockListDetailEntity = stockListDetailEntities . stream ( ) . filter ( sd - > Func . isEmpty ( sd . getStockPackageCode ( ) ) ) . collect ( Collectors . toList ( ) ) . get ( 0 ) ;
if ( Func . isNotEmpty ( disStockListDetailEntity ) ) {
disStockListDetailEntity . setStockListId ( stockupDTO . getStockListId ( ) ) ;
disStockListDetailService . updateById ( disStockListDetailEntity ) ;
distributionReservationStocklistService . updateById ( reservationStocklistEntity ) ;
}
} ) ;
} ) ;
} else {
stockListMap = null ;
}
//stockListMap此时剩下的都是满足进行修改的库存品,这里就需要去进行指定删除哪一个库存品,这里默认添加数量为一需要指定一个进行扣减,
if ( Func . isNotEmpty ( stockListMap ) ) {
List < DistributionReservationStocklistEntity > distributionReservationStocklistEntities = stockListMap . get ( 0 ) ;
DistributionReservationStocklistEntity reservationStocklist = distributionReservationStocklistEntities . get ( 0 ) ;
reservationStocklist . setReservationNum ( reservationStocklist . getReservationNum ( ) - reservationStocklistEntity . getReservationNum ( ) ) ;
if ( reservationStocklist . getReservationNum ( ) = = 0 ) {
reservationStocklist . setStockListStatus ( ReservationOrderStatusConstant . quxiao . getValue ( ) ) ;
}
//查询包件是否完成备货
List < DisStockListDetailEntity > stockListDetailEntities = disStockListDetailService . list ( Wrappers . < DisStockListDetailEntity > query ( ) . lambda ( )
. eq ( DisStockListDetailEntity : : getReservationId , reservationStocklist . getReservationId ( ) )
. eq ( DisStockListDetailEntity : : getStockListId , reservationStocklist . getStocklistId ( ) )
. ne ( DisStockListDetailEntity : : getStockPackageStatus , ReservationPackageStatusConstant . quxiao . getValue ( ) )
) ;
//对指定库存品包件进行库存品ID修改
DisStockListDetailEntity disStockListDetailEntity = stockListDetailEntities . stream ( ) . filter ( sd - > Func . isEmpty ( sd . getStockPackageCode ( ) ) ) . collect ( Collectors . toList ( ) ) . get ( 0 ) ;
if ( Func . isNotEmpty ( disStockListDetailEntity ) ) {
disStockListDetailEntity . setStockListId ( stockListEntity . getId ( ) ) ;
disStockListDetailService . updateById ( disStockListDetailEntity ) ;
distributionReservationStocklistService . updateById ( reservationStocklist ) ;
//维护对应库存品的冻结数量
DistributionStockListEntity oldStockListEntity = distributionStockListService . getById ( reservationStocklist . getStocklistId ( ) ) ;
oldStockListEntity . setQuantityStock ( oldStockListEntity . getQuantityStock ( ) + reservationStocklistEntity . getReservationNum ( ) ) ;
distributionStockListService . updateById ( oldStockListEntity ) ;
}
}
// 默认 计划数量和实际数量为0
//新的数量进行增加
DistributionReservationStocklistEntity stocklistEntity = distributionReservationStocklistService . getOne ( Wrappers . < DistributionReservationStocklistEntity > query ( ) . lambda ( )
. eq ( DistributionReservationStocklistEntity : : getReservationId , stockupDTO . getReservationId ( ) )
. eq ( DistributionReservationStocklistEntity : : getStocklistId , stockupDTO . getStockListId ( ) )
. ne ( DistributionReservationStocklistEntity : : getStockListStatus , ReservationOrderStatusConstant . quxiao . getValue ( ) )
) ;
stocklistEntity
. setReservationNum ( stocklistEntity . getReservationNum ( ) + 1 ) ;
distributionReservationStocklistService . updateById ( stocklistEntity ) ;
return R . fail ( "操作成功" ) ;
//维护对应库存品的冻结数量
DistributionStockListEntity newStockListEntity = distributionStockListService . getById ( stockupDTO . getStockListId ( ) ) ;
newStockListEntity . setQuantityOccupied ( oldStockListEntity . getQuantityOccupied ( ) + 1 ) ;
distributionStockListService . updateById ( newStockListEntity ) ;
//查询出原来的库存品信息
// DistributionReservationStocklistEntity reservationStocklist = distributionReservationStocklistService.getOne(Wrappers.<DistributionReservationStocklistEntity>query().lambda()
// .eq(DistributionReservationStocklistEntity::getReservationId, stockupDTO.getReservationId())
// .eq(DistributionReservationStocklistEntity::getStocklistId, stockupDTO.getStockListId())
// .ne(DistributionReservationStocklistEntity::getStockListStatus, ReservationOrderStatusConstant.quxiao.getValue())
// );
// 再次执行扫描 读取这预约计划下面正常的库存品信息 扣减数量 对新增的预约库存品信息进行增加预约数量和实际数量
}
// 修改logpm_dis_stock_list_detail 这张表上的库存品ID和包件ID
// List<DistributionReservationStocklistEntity> reservationStocklistEntities = stockListMap.get(stockupDTO.getStockListId());
// DistributionReservationStocklistEntity reservationStocklistEntity = reservationStocklistEntities.get(0);
// reservationStocklistEntity.setReservationNum(reservationStocklistEntity.getReservationNum() + 1);
// distributionReservationStocklistService.updateById(reservationStocklistEntity);
// if (newStockListEntity.getQuantityOccupied() +1 +newStockListEntity.getQuantityOccupied() <= newStockListEntity.getQuantityStock()){
// newStockListEntity.setQuantityOccupied(newStockListEntity.getQuantityStock() + 1);
// }
// //修改对应库存品的冻结数量
// //查询出原来计划的库存品进行扣减
// List<DistributionReservationStocklistEntity> distributionReservationStocklistEntityList = distributionReservationMapper.selectStockListByReservationIdAndCargoNumber(stockupDTO.getReservationId(),stockupDTO.getCargoNumber(),stockupDTO.getStockListId());
// //过滤备货未完成的计划进行数量扣减
// DistributionReservationStocklistEntity reservationStocklist = distributionReservationStocklistEntityList.stream().filter(drs -> drs.getReservationNum() > 0 && drs.getRealityNum() < drs.getReservationNum()).collect(Collectors.toList()).get(0);
// reservationStocklist.setReservationNum(reservationStocklist.getReservationNum() - 1);
// distributionReservationStocklistService.updateById(reservationStocklist);
//
// //维护库存品对应数量
// DistributionStockListEntity stockListEntity = distributionStockListService.getById(reservationStocklist.getStocklistId());
// stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied() + 1);
// distributionStockListService.updateById(stockListEntity);
// //存在 进行新增计划
}
//这里扣减原来的需要排除备货完成的
}
// 默认 计划数量和实际数量为0
return R . success ( "操作成功" ) ;
}