EmployeeServiceImpl.java 3.43 KB
package com.bsth.service.schedule.impl;

import com.bsth.data.pinyin.PersionPinYin;
import com.bsth.entity.Personnel;
import com.bsth.service.schedule.EmployeeService;
import com.bsth.service.schedule.exception.ScheduleException;
import com.bsth.service.schedule.utils.DataToolsFile;
import com.bsth.service.schedule.utils.DataToolsService;
import com.github.stuxuhai.jpinyin.PinyinException;
import com.github.stuxuhai.jpinyin.PinyinFormat;
import com.github.stuxuhai.jpinyin.PinyinHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by xu on 16/12/15.
 */
@Service
public class EmployeeServiceImpl extends BServiceImpl<Personnel, Integer> implements EmployeeService {
    @Autowired
    @Qualifier(value = "employee_dataTool")
    private DataToolsService dataToolsService;

    @Override
    public DataToolsFile uploadFile(String filename, byte[] filedata) throws ScheduleException {
        return dataToolsService.uploadFile(filename, filedata);
    }

    @Override
    public void importData(File file, Map<String, Object> params) throws ScheduleException {
        dataToolsService.importData(file, params);
    }

    @Override
    public DataToolsFile exportData(Map<String, Object> params) throws ScheduleException {
        return dataToolsService.exportData(params);
    }

    @Override
    @Transactional
    public void validate_gh(Personnel personnel) throws ScheduleException {
        // 查询条件
        Map<String, Object> param = new HashMap<>();
        if (personnel.getId() != null) {
            param.put("id_ne", personnel.getId());
        }
        param.put("companyCode_eq", personnel.getCompanyCode());
        param.put("jobCode_eq", personnel.getJobCode());
        param.put("destroy_eq", 0);
        if (!CollectionUtils.isEmpty(list(param))) {
            throw new ScheduleException("相同公司工号重复");
        }
    }

    @Override
    public List<PersionPinYin> findAll_PY() {
        // 1、查找未作废的人员基础信息
        Map<String, Object> param = new HashMap<>();
        param.put("destroy_eq", 0);
        List<Personnel> personnelList = this.list(param);

        List<PersionPinYin> persionPinYinList = new ArrayList<>();
        for (Personnel p : personnelList) {
            PersionPinYin ppy = new PersionPinYin();
            ppy.setId(p.getId());
            ppy.setCompanyId(p.getCompanyCode());
            ppy.setFgsCompanyId(p.getBrancheCompanyCode());
            ppy.setName(p.getPersonnelName());
            ppy.setWorkId(p.getJobCode());
            try {
                ppy.setFullChars(PinyinHelper.convertToPinyinString(ppy.getName(), "" , PinyinFormat.WITHOUT_TONE));
                ppy.setCamelChars(PinyinHelper.getShortPinyin(ppy.getName()));
            }catch (PinyinException pye) {
                System.out.println("拼音转换出现异常," + ppy.getName());
                pye.printStackTrace();
                continue;
            }
            persionPinYinList.add(ppy);

        }

        return persionPinYinList;
    }
}