@ -1,7 +1,11 @@
package com.glxp.api.service.thrsys.impl ;
import cn.hutool.core.bean.BeanUtil ;
import cn.hutool.core.collection.CollUtil ;
import cn.hutool.core.util.IdUtil ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper ;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl ;
import com.github.pagehelper.PageHelper ;
import com.glxp.api.common.res.BaseResponse ;
@ -20,10 +24,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional ;
import javax.annotation.Resource ;
import java.util.ArrayList ;
import java.util.Collections ;
import java.util.Date ;
import java.util.List ;
import java.util.concurrent.atomic.AtomicInteger ;
@Service
@Transactional ( rollbackFor = Exception . class )
@ -126,7 +130,7 @@ public class ThrDeptServiceImpl extends ServiceImpl<ThrDeptDao, ThrDeptEntity> i
@Override
public BaseResponse downloadThirdWarehouse ( String thirdSysFk ) {
int page = 1 ;
int limit = 100 ;
int limit = 100 0 ;
while ( true ) {
UdiwmsWarehouseRequest udiwmsWarehouseRequest = new UdiwmsWarehouseRequest ( ) ;
udiwmsWarehouseRequest . setThirdSys ( thirdSysFk ) ;
@ -135,42 +139,89 @@ public class ThrDeptServiceImpl extends ServiceImpl<ThrDeptDao, ThrDeptEntity> i
BaseResponse < PageSimpleResponse < UdiwmsWarehouseDetail > > baseResponse = erpBasicClient . getWarehouse ( udiwmsWarehouseRequest ) ;
if ( baseResponse . getCode ( ) = = 20000 ) {
List < UdiwmsWarehouseDetail > responseList = baseResponse . getData ( ) . getList ( ) ;
List < ThrDeptEntity > list = new ArrayList < > ( ) ;
List < ThrInvWarehouseEntity > warehouseList = new ArrayList < > ( ) ;
for ( UdiwmsWarehouseDetail response : responseList ) {
if ( CollUtil . isNotEmpty ( responseList ) ) {
AtomicInteger count = new AtomicInteger ( ) ; // 计数器
responseList . forEach ( item - > {
ThrDeptEntity thrDeptEntity = new ThrDeptEntity ( ) ;
ThrInvWarehouseEntity thrInvWarehouseEntity = new ThrInvWarehouseEntity ( ) ;
BeanUtil . copyProperties ( item , thrDeptEntity ) ;
BeanUtil . copyProperties ( item , thrInvWarehouseEntity ) ;
thrDeptEntity . setPid ( 0 ) ;
thrDeptEntity . setName ( response . getName ( ) ) ;
thrDeptEntity . setCode ( response . getCode ( ) ) ;
thrDeptEntity . setName ( item . getName ( ) ) ;
thrDeptEntity . setCode ( item . getCode ( ) ) ;
thrDeptEntity . setThirdSysFk ( thirdSysFk ) ;
thrDeptEntity . setAdvanceType ( false ) ; //默认是仓库
thrDeptEntity . setStatus ( 1 ) ; //默认启用
thrDeptEntity . setUpdateTime ( new Date ( ) ) ;
thrDeptEntity . setId ( IdUtil . getSnowflake ( 6 , 1 ) . nextId ( ) ) ;
list . add ( thrDeptEntity ) ;
ThrInvWarehouseEntity thrInvWarehouseEntity = new ThrInvWarehouseEntity ( ) ;
thrInvWarehouseEntity . setCode ( response . getCode ( ) ) ;
thrInvWarehouseEntity . setName ( response . getName ( ) ) ;
thrInvWarehouseEntity . setRemark ( response . getRemark ( ) ) ;
thrInvWarehouseEntity . setCode ( item . getCode ( ) ) ;
thrInvWarehouseEntity . setName ( item . getName ( ) ) ;
thrInvWarehouseEntity . setRemark ( item . getRemark ( ) ) ;
thrInvWarehouseEntity . setThirdSysFk ( thirdSysFk ) ;
thrInvWarehouseEntity . setParentId ( response . getCode ( ) ) ;
thrInvWarehouseEntity . setParentId ( item . getCode ( ) ) ;
thrInvWarehouseEntity . setId ( IdUtil . getSnowflake ( 6 , 1 ) . nextId ( ) + "" ) ;
thrInvWarehouseEntity . setUpdateTime ( new Date ( ) ) ;
warehouseList . add ( thrInvWarehouseEntity ) ;
boolean b = thrDeptDao . exists ( new LambdaQueryWrapper < ThrDeptEntity > ( ) . eq ( ThrDeptEntity : : getCode , thrDeptEntity . getCode ( ) ) ) ;
if ( b ) {
thrDeptDao . update ( thrDeptEntity , new LambdaUpdateWrapper < ThrDeptEntity > ( ) . eq ( ThrDeptEntity : : getCode , thrDeptEntity . getCode ( ) ) ) ;
} else {
thrDeptDao . insert ( thrDeptEntity ) ;
}
boolean b1 = thrInvWarehouseDao . exists ( new LambdaQueryWrapper < ThrInvWarehouseEntity > ( ) . eq ( ThrInvWarehouseEntity : : getCode , thrInvWarehouseEntity . getCode ( ) ) ) ;
if ( b1 ) {
thrInvWarehouseDao . update ( thrInvWarehouseEntity , new LambdaUpdateWrapper < ThrInvWarehouseEntity > ( ) . eq ( ThrInvWarehouseEntity : : getCode , thrInvWarehouseEntity . getCode ( ) ) ) ;
} else {
thrInvWarehouseDao . insert ( thrInvWarehouseEntity ) ;
}
} ) ;
}
//插入数据
thrDeptDao . insertThrDeptList ( list ) ;
thrInvWarehouseDao . insertThrInvWarehouses ( warehouseList ) ;
if ( list . size ( ) > = limit ) {
if ( responseList . size ( ) > = limit ) {
page + + ;
} else {
break ;
}
// List<ThrDeptEntity> list = new ArrayList<>();
// List<ThrInvWarehouseEntity> warehouseList = new ArrayList<>();
// for (UdiwmsWarehouseDetail response : responseList) {
// ThrDeptEntity thrDeptEntity = new ThrDeptEntity();
// thrDeptEntity.setPid(0);
// thrDeptEntity.setName(response.getName());
// thrDeptEntity.setCode(response.getCode());
// thrDeptEntity.setThirdSysFk(thirdSysFk);
// thrDeptEntity.setAdvanceType(false); //默认是仓库
// thrDeptEntity.setStatus(1);//默认启用
// thrDeptEntity.setUpdateTime(new Date());
// thrDeptEntity.setId(IdUtil.getSnowflake(6, 1).nextId());
// list.add(thrDeptEntity);
//
// ThrInvWarehouseEntity thrInvWarehouseEntity = new ThrInvWarehouseEntity();
// thrInvWarehouseEntity.setCode(response.getCode());
// thrInvWarehouseEntity.setName(response.getName());
// thrInvWarehouseEntity.setRemark(response.getRemark());
// thrInvWarehouseEntity.setThirdSysFk(thirdSysFk);
// thrInvWarehouseEntity.setParentId(response.getCode());
// thrInvWarehouseEntity.setId(IdUtil.getSnowflake(6, 1).nextId() + "");
// thrInvWarehouseEntity.setUpdateTime(new Date());
// warehouseList.add(thrInvWarehouseEntity);
//
//
// }
// //插入数据
// thrDeptDao.insertThrDeptList(list);
// thrInvWarehouseDao.insertThrInvWarehouses(warehouseList);
// if (list.size() >= limit) {
// page++;
// } else {
// break;
// }
} else {
return baseResponse ;
return ResultVOUtils. error ( 500 , "下载异常中断" ) ;
}
}