//package com.engine.organization.thread;
//
//import com.engine.organization.entity.hrmresource.po.HrmResourcePO;
//import com.engine.organization.entity.job.po.JobPO;
//import com.engine.organization.entity.map.JclOrgMap;
//import com.engine.organization.entity.personnelcard.UserCard;
//import com.engine.organization.mapper.jclorgmap.JclOrgMapper;
//import com.engine.organization.mapper.job.JobMapper;
//import com.engine.organization.mapper.resource.ResourceMapper;
//import com.engine.organization.mapper.trigger.CompTriggerMapper;
//import com.engine.organization.mapper.trigger.HrmResourceTriggerMapper;
//import com.engine.organization.util.OrganizationDateUtil;
//import com.engine.organization.util.db.MapperProxyFactory;
//import weaver.common.DateUtil;
//import weaver.hrm.passwordprotection.domain.HrmResource;
//
//import java.sql.Date;
//import java.util.Calendar;
//
///**
// * @author:dxfeng
// * @createTime: 2022/09/01
// * @version: 1.0
// */
//public class HrmResourceTriggerRunnable implements Runnable {
//    Long userId;
//
//    private CompTriggerMapper getCompTriggerMapper() {
//        return MapperProxyFactory.getProxy(CompTriggerMapper.class);
//    }
//
//    private HrmResourceTriggerMapper getHrmResourceTriggerMapper() {
//        return MapperProxyFactory.getProxy(HrmResourceTriggerMapper.class);
//    }
//    private ResourceMapper getResourceMapper() {
//        return MapperProxyFactory.getProxy(ResourceMapper.class);
//    }
//    private JclOrgMapper getJclOrgMapper() {
//        return MapperProxyFactory.getProxy(JclOrgMapper.class);
//    }
//
//    public HrmResourceTriggerRunnable(Long id) {
//        this.userId = id;
//    }
//
//    @Override
//    public void run() {
//        int st = 100000000;
//        int sj = 200000000;
//        int sk = 300000000;
//        Integer delete = null;
//        JclOrgMap jclMap = new JclOrgMap();
//        jclMap.setFType(4);
//        // 查询当前人员信息数据
//        String ecResourceId = getResourceMapper().getEcResourceId(userId.toString());
//        // EC人员
//        HrmResource ecHrmResource = getHrmResourceTriggerMapper().getHrmResource(Long.parseLong(ecResourceId));
//        // 聚才林人员
//        HrmResourcePO hrmResource = getCompTriggerMapper().getResourceByEcId(Integer.parseInt(ecResourceId));
//        if (null != hrmResource && null!=ecHrmResource) {
//            jclMap.setFObjId(hrmResource.getId().intValue());
//            jclMap.setId(hrmResource.getId().intValue() + sk);
//            jclMap.setFEcId(ecHrmResource.getId());
//            jclMap.setFNumber(hrmResource.getWorkCode());
//            jclMap.setFName(hrmResource.getLastName());
//            jclMap.setUuid(hrmResource.getUuid());
//            delete = hrmResource.getStatus() < 4 ? 0 : 1;
//            // 展示为花名册上传的照片
//            String image = UserCard.builder().image(hrmResource.getResourceImageId()).build().getImage();
//            jclMap.setFLeaderImg(image);
//            jclMap.setFLeaderName(hrmResource.getLastName());
//            jclMap.setFLeaderJobId(hrmResource.getJobTitle().intValue());
//            if (null != hrmResource.getJobTitle()) {
//                JobPO jobById = MapperProxyFactory.getProxy(JobMapper.class).getJobById(hrmResource.getJobTitle());
//                if (null != jobById) {
//                    jclMap.setFLeaderJob(jobById.getJobName());
//                }
//                jclMap.setFObjParentId(hrmResource.getJobTitle().intValue());
//                jclMap.setFParentId(jclMap.getFObjParentId() + sj);
//            }
//            jclMap.setFLeaderSt(hrmResource.getJobGrade());
//            jclMap.setFLeaderLv(hrmResource.getJobLevel());
//            jclMap.setFClass(0);
//            jclMap.setFClassName("行政维度");
//            String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
//            jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
//            jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime()));
//            jclMap.setFIsVitual(0);
//
//            Calendar cal = Calendar.getInstance();
//            cal.setTime(jclMap.getFDateBegin());
//            Calendar calendar = DateUtil.addDay(cal, -1);
//            Date time = new Date(calendar.getTime().getTime());
//            // 更新前的数据
//            JclOrgMap jclOrgMapByObjID = getJclOrgMapper().getJclOrgMapByObjID(jclMap.getFDateBegin(), "4", hrmResource.getId().toString());
//
//            getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin());
//            getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time);
//            if (0 == delete) {
//                MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap);
//                // 更新当前架构图负责人的卡片信息
//                getHrmResourceTriggerMapper().updateLeaders(jclMap.getFDateBegin(), hrmResource.getId().toString(), jclMap.getFLeaderImg(), jclMap.getFLeaderName(), jclMap.getFLeaderJobId(), jclMap.getFLeaderJob(), jclMap.getFLeaderLv(), jclMap.getFLeaderSt());
//                // 更新组织架构图在岗数
//                if (null != jclOrgMapByObjID) {
//                    new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run();
//                }
//                new StaffTriggerRunnable(jclMap.getFObjParentId()).run();
//
//            } else if (null != jclOrgMapByObjID) {
//                new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run();
//            }
//        }
//    }
//}
