SupplierSyncService.java 4.15 KB
package com.huaheng.pc.config.supplier.service;

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

import javax.annotation.Resource;

import com.huaheng.common.utils.bean.BeanUtils;
import com.huaheng.pc.config.container.domain.Container;
import com.huaheng.pc.config.customer.domain.Customer;
import com.huaheng.pc.config.customer.service.CustomerServiceImpl;
import com.huaheng.pc.config.supplier.domain.Supplier;
import com.huaheng.pc.config.supplier.mapper.SupplierMapper;
import com.huaheng.pc.config.syncTime.domain.SyncTime;
import com.huaheng.pc.config.syncTime.service.SyncTimeService;
import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.framework.aspectj.lang.annotation.Ds;
import com.huaheng.framework.aspectj.lang.constant.DataSourceName;
import com.huaheng.pc.config.supplier.domain.SupplierErp;
import com.huaheng.pc.config.supplier.mapper.SupplierErpMapper;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

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

@Service
public class SupplierSyncService extends ServiceImpl<SupplierMapper, Supplier>{




    @Resource
    private SupplierService supplierService;
    @Resource
    private CustomerServiceImpl customerService;
    @Resource
    private SupplierErpService supplierErpService;
    @Resource
    private SyncTimeService syncTimeService;



    public void syncSupplierData(Integer supplierTime){
        Date date=new Date();
        Boolean tag=syncTimeService.isSync("supplier",supplierTime);
        if(!tag){
            return;
        }
        List<SupplierErp> list=supplierErpService.findSupplierData(supplierTime);
        System.out.println("=======供应商======="+date+"==========="+list.size());
        saveAndUpdateData(list);
        syncTimeService.updateStatus("supplier",1,date);
    }

    public void syncCustomerData(Integer customerTime){
        Date date=new Date();
        Boolean tag=syncTimeService.isSync("customer",customerTime);
        if(!tag){
            return;
        }
        List<SupplierErp> list=supplierErpService.findCustomerData(customerTime);
        System.out.println("======客户数据========"+list.size());
        saveAndUpdateDataCustomer(list);
        syncTimeService.updateStatus("customer",1,date);
    }

    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void saveAndUpdateData(List<SupplierErp> list){
        List<Supplier> lists=new ArrayList<>();
        for (int a=0;a<list.size();a++){
            SupplierErp supplierErp=list.get(a);
            Supplier supplier=new Supplier();
            String code=supplierErp.getPmaa001();
            //查找数据库有无该供应商,有则跳过,无则新增
            Supplier supplier1 = supplierService.getSuppierByCode(code);
            if(supplier1!=null){
//                continue;
//                supplier1.setName(supplierErp.getPmaal());
//                lists.add(supplier1);
                continue;
            }
            supplier.setCode(code);
            supplier.setName(supplierErp.getPmaal());
            lists.add(supplier);
        }
        if(lists!=null&&lists.size()>0){
            supplierService.saveBatch(lists);
//            containerSyncService.updateSyncById(ids);
        }
    }

    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void saveAndUpdateDataCustomer(List<SupplierErp> list){
        List<Customer> lists=new ArrayList<>();
        for (int a=0;a<list.size();a++){
            SupplierErp supplierErp=list.get(a);
            Customer customer=new Customer();
            String code=supplierErp.getPmaa001();
            Customer customer1 = customerService.getCustomerByCode(code);
            if(customer1!=null){
                continue;
            }
            customer.setCode(code);
            customer.setName(supplierErp.getPmaal());
            lists.add(customer);
        }
        if(lists!=null&&lists.size()>0){
            customerService.saveBatch(lists);
        }
    }
}