DataSyncController.java 3.63 KB
package com.chinagas.modules.system.controller;

import com.alibaba.fastjson.JSON;
import com.chinagas.api.otherSystem.Mdm;
import com.chinagas.api.system.domain.DepInfo;
import com.chinagas.api.system.domain.EmpDepRelationship;
import com.chinagas.api.system.domain.EmpInfo;
import com.chinagas.common.core.constants.DataSyncConstants;
import com.chinagas.common.core.domain.R;
import com.chinagas.common.core.utils.sync.DataRecive;
import com.chinagas.common.core.web.controller.BaseController;
import com.chinagas.common.security.annotation.InnerAuth;
import com.chinagas.modules.system.service.IDepInfoService;
import com.chinagas.modules.system.service.IEmpDepRelationshipService;
import com.chinagas.modules.system.service.IEmpInfoService;
import com.fasterxml.jackson.core.type.TypeReference;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @ClassName DataSyncController
 * @Author lidengwei
 * @Description TODO
 * @CreateTime 2022/12/5 11:38
 */
@RestController
@Slf4j
@RequestMapping("dataSync")
public class DataSyncController extends BaseController {

    @Autowired
    private IEmpInfoService empInfoService;

    @Autowired
    private IDepInfoService depInfoService;

    @Autowired
    private IEmpDepRelationshipService empDepRelationshipService;

    @Autowired
    private Mdm mdm;

    @InnerAuth
    @PostMapping("orgDataSync/{iFaceCode}")
    public R<Integer> orgDataSync(@PathVariable("iFaceCode") String iFaceCode) throws Exception {
        Calendar calendar = Calendar.getInstance();
        calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE),23,00,00);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        calendar.add(Calendar.DATE,-1);
        String startTime = simpleDateFormat.format(calendar.getTime());
        startTime = "1900-01-01 00:00:00";
        String endTime = "2099-01-01 00:00:00";
        int res = 0;
        if(DataSyncConstants.RYXX.equals(iFaceCode)){
            List<EmpInfo> empList = mdm.requestOrgData(DataSyncConstants.RYXX, startTime,endTime,new TypeReference<DataRecive<EmpInfo>>() {});
            System.out.println("empList size: "+empList.size());
            res = empInfoService.insertEmpInfoBatch(empList);
        }
        if(DataSyncConstants.ZZJG.equals(iFaceCode)){
            List<Map> depList = mdm.requestOrgData(DataSyncConstants.ZZJG,startTime,endTime, new TypeReference<DataRecive<Map>>() {});
            System.out.println("depList size: "+depList.size());
            List<DepInfo> depInfoArrayList = depList.stream()
                    .map(map -> JSON.parseObject(JSON.toJSONString(map),DepInfo.class))
                    .collect(Collectors.toList());

            res = depInfoService.insertDepInfoBach(depInfoArrayList);
        }
        if(DataSyncConstants.RYZZGX.equals(iFaceCode)){
            List<EmpDepRelationship> empDepRelationshipList = mdm.requestOrgData(DataSyncConstants.RYZZGX,startTime,endTime, new TypeReference<DataRecive<EmpDepRelationship>>() {});
            System.out.println("empDepList size: "+empDepRelationshipList.size());
            res = empDepRelationshipService.insertEmpDepBatch(empDepRelationshipList);
        }
        return R.ok(res);
    }
}