U8DepartmentService.java 2.13 KB
package com.huaheng.pc.U8.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.framework.datasource.DynamicDataSource;
import com.huaheng.pc.U8.domain.U8Department;
import com.huaheng.pc.U8.mapper.U8DepartmentMapper;
import com.huaheng.pc.system.dept.domain.Dept;
import com.huaheng.pc.system.dept.service.IDeptService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Objects;

@Service
public class U8DepartmentService extends ServiceImpl<U8DepartmentMapper, U8Department> {
    @Resource
    private IDeptService service;

    public List getU8DepartmentList() {
        // 切换到从库
        DynamicDataSource.slave();
        List<U8Department> list = this.list();
        DynamicDataSource.master();
        return list;
    }

    public List sync() throws ParseException {
        List<U8Department> list = this.getU8DepartmentList();
        List<Dept> lst = service.selectDeptAll();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        for (U8Department dep : list) {
            for (Dept de : lst) {
                if (Objects.equals( dep.getCode() , de.getCode())) {
                    if (!sdf.format(dep.getMaintenanceDate()).equals(sdf.format(de.getMaintenanceDate()))) {
                        Dept dept = new Dept();
                        dept.setId(de.getId());
                        dept.setDeptName(dep.getName());
                        dept.setMaintenanceDate(sdf.parse(sdf.format(dep.getMaintenanceDate())));
                        service.updateDepts(dept);
                    }
                }
            }
            if (lst.stream().noneMatch(w -> String.valueOf(w.getCode()).equals(dep.getCode()))) {
                Dept dept = new Dept();
                dept.setCode(dep.getCode());
                dept.setDeptName(dep.getName());
                dept.setMaintenanceDate(sdf.parse(sdf.format(dep.getMaintenanceDate())));
               service.insertDepts(dept);
            }
        }
        return lst;
    }
}