UserSyncService.java 2.9 KB
package com.huaheng.pc.system.user.service;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.annotation.Resource;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.huaheng.pc.system.user.domain.User;
import com.huaheng.pc.system.user.domain.UserErp;
import com.huaheng.pc.system.user.mapper.UserSyncMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.pc.config.address.service.AddressService;

/**
 * 定时任务同步erp的供应商、客户
 */

@Service
public class UserSyncService extends ServiceImpl<UserSyncMapper, User>{

    @Resource
    private IUserService userService;
    @Resource
    private UserErpService userErpService;

    @Resource
    private AddressService addressService;



    /**
     * 获取erp物料数据,同步到wms数据库
     */
    public void syncUserData(){
        List<UserErp> list=userErpService.findUserErpData();
        System.out.println("=======用户======="+new Date()+"==========="+list.size());
        saveAndUpdateData(list);

    }




    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void saveAndUpdateData(List<UserErp> list){
        if(list==null||list.size()==0){
            return ;
        }
        List<User> lists=new ArrayList<>();
        for (int a=0;a<list.size();a++){
            UserErp userErp=list.get(a);

            String code=userErp.getUsercode();
            if(StringUtils.isEmpty(code)){
                continue;
            }
            //查找数据库有无该供应商,有则跳过,无则新增
            LambdaQueryWrapper<User> wrapper=new LambdaQueryWrapper<>();
            wrapper.eq(User::getLoginName,code);
            wrapper.last("limit 1");
            User user1=this.getOne(wrapper);
            if(user1!=null){
                continue;
            }
            User user=new User();
            user.setLoginName(code);
            user.setUserName(userErp.getUsername());
            if(StringUtils.isEmpty(userErp.getSitecode())){
                continue;
            }
            if(userErp.getSitecode().equals("CS")){
                user.setWarehouseCode("CS0001");
            }else if(userErp.getSitecode().equals("XZ")){
                user.setWarehouseCode("XZ0001");
            }else{
                user.setWarehouseCode("KS0001");
            }
            user.setCreateBy("erp");
            user.setCreateTime(new Date());
            user.setUpdateTime(new Date());
            lists.add(user);
        }
        if(lists!=null&&lists.size()>0){
            this.saveBatch(lists);
        }
    }


}