package cn.com.goldenwater.dcproj.service.impl.tac; import cn.com.goldenwater.dcproj.dao.*; import cn.com.goldenwater.dcproj.dto.TacCountDto; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.*; import cn.com.goldenwater.dcproj.service.GwComFileService; import cn.com.goldenwater.dcproj.service.TacExprRcmmService; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.utils.BeanUtil; import cn.com.goldenwater.dcproj.utils.InspUtils; import cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil; import cn.com.goldenwater.dcproj.utils.impexcel.FileUtil; import cn.com.goldenwater.id.util.UuidUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.collections.map.HashedMap; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Row; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import static cn.com.goldenwater.dcproj.utils.FormatFieldUtil.*; /** * @author lune * @date 2019-11-13 */ @Service @Transactional public class TacExprRcmmServiceImpl extends AbstractCrudService implements TacExprRcmmService { @Autowired private TacExprRcmmDao tacExprRcmmDao; @Autowired private GwComFileService gwComFileService; @Autowired private TacWorkerBDao tacWorkerBDao; @Autowired private TacExprRcmmIndbDao indbDao; @Autowired private BisInspAllRlationPersDao bisInspAllRlationPersDao; @Autowired private TacExprRcmmRcrdDao rcrdDao; @Value("${getFile.prefix}") public String prefix; @Value("${web.upload-path}") public String fileDir; public TacExprRcmmServiceImpl(TacExprRcmmDao tacExprRcmmDao) { super(tacExprRcmmDao); this.tacExprRcmmDao = tacExprRcmmDao; } @Override public Map insertList(MultipartFile file, TacExprRcmmParam tacWorkerBParam) { Map map = new HashedMap(); int success = 0; int fail = 0; List rowList = ExportUtil.getRowListByFile(file); List list = new ArrayList<>(); if (rowList.size() > 2) { List> mapList = ExportUtil.rowToMap(rowList, 1); if (mapList.size() > 0) { list = ExportUtil.mapToObj(mapList, TacExprRcmm.class); } } for (Object b : list) { if (b instanceof TacExprRcmm) { TacExprRcmm rcmm = (TacExprRcmm)b; if (StringUtils.isBlank(rcmm.getName()) && StringUtils.isBlank(rcmm.getMobilenumb())) { continue; } if (StringUtils.isBlank(rcmm.getMobilenumb())) { fail++; } fieldFormat(rcmm); TacExprRcmmParam rcmmParam = new TacExprRcmmParam(); rcmmParam.setMobilenumb(rcmm.getMobilenumb()); List rcmmList = tacExprRcmmDao.findList(rcmmParam); if (rcmmList == null || rcmmList.size() == 0) { rcmm.setDataStat("0"); rcmm.setIntm(new Date()); rcmm.setUptm(new Date()); rcmm.setId(UuidUtil.uuid()); rcmm.setProvince(tacWorkerBParam.getProvince()); tacExprRcmmDao.insert(rcmm); } else { TacExprRcmm toRcmm = rcmmList.get(0); List cols = new ArrayList<>(); cols.add("id"); cols.add("depCode"); cols.add("intm"); cols.add("persId"); cols.add("dataStat"); cols.add("state"); BeanUtil.copyObject(rcmm,toRcmm,cols); toRcmm.setUptm(new Date()); tacExprRcmmDao.update(toRcmm); } success++; } } map.put("success",success); map.put("fail",fail); return map; } private void fieldFormat(TacExprRcmm workerB ){ workerB.setGroupType(groupFormat(workerB.getGroupType())); workerB.setRoleType(roleFormat(workerB.getRoleType())); workerB.setEducation(educationFormat(workerB.getEducation())); workerB.setUnitRanks(unitRanksFormat(workerB.getUnitRanks())); workerB.setTitles(titlesFormat(workerB.getTitles())); workerB.setIsOffice(commonFormat(workerB.getIsOffice())); workerB.setIsTraining(commonFormat(workerB.getIsTraining())); } @Override public int uploadBio(MultipartFile file, TacExprRcmmParam tacExprRcmmParam) throws Exception{ List list = FileUtil.getFileList(file, prefix, fileDir); if (list != null && list.size() > 0) { list.forEach(gwComFile -> { String persNameAndIdNum = gwComFile.getFileName(); String persName = persNameAndIdNum.split("-")[0]; String idNum = persNameAndIdNum.split("-")[1].substring(0,persNameAndIdNum.split("-")[1].indexOf(".")); TacExprRcmmParam param = new TacExprRcmmParam(); param.setIdNo(idNum); param.setName(persName); TacExprRcmm rcmm = tacExprRcmmDao.getBy(param); if (rcmm != null) { List gwComFiles = gwComFileService.findFileByBiz(rcmm.getId()); if (gwComFiles.size() > 0) { //删除关联简历 GwComFileParam gwComFileParam = new GwComFileParam(); gwComFileParam.setBizId(rcmm.getId()); gwComFileService.deleteBy(gwComFileParam); } gwComFile.setBizId(rcmm.getId()); gwComFileService.insert(gwComFile); } }); } return 0; } @Override public List getRcmmList(TacExprRcmmParam tacExprRcmmParam) { List list = tacExprRcmmDao.getRcmmList(tacExprRcmmParam); return list; } @Override public int insertRcmmToWorkerList(TacExprRcmmParam tacExprRcmmParam) { String persId = tacExprRcmmParam.getPersId(); if (StringUtils.isNotBlank(tacExprRcmmParam.getPersId())) { tacExprRcmmParam.setPersId(""); } tacExprRcmmParam.setOrgCode(InspUtils.setOrgIds(tacExprRcmmParam.getOrgCode())); tacExprRcmmParam.setWorkAd(InspUtils.setOrgIds(tacExprRcmmParam.getWorkAd())); tacExprRcmmParam.setRoleType(InspUtils.setOrgIds(tacExprRcmmParam.getRoleType())); List list = null; if (tacExprRcmmParam.getRcmms() != null && tacExprRcmmParam.getRcmms().size() > 0) { list = tacExprRcmmParam.getRcmms(); } else { list = tacExprRcmmDao.getRcmmList(tacExprRcmmParam); } Date date = new Date(); if (list.size() > 0) { list.forEach(rcmm -> { TacWorkerBParam bParam = new TacWorkerBParam(); bParam.setMobilenumb(rcmm.getMobilenumb()); List bList = tacWorkerBDao.findList(bParam); if (bList == null || bList.size() == 0) { TacWorkerB workerB = new TacWorkerB(); BeanUtil.copyObject1(rcmm, workerB); workerB.setId(UuidUtil.uuid()); workerB.setProvince(tacExprRcmmParam.getProvince()); workerB.setLoginId(getPersLoginId(rcmm, rcmm.getMobilenumb(), rcmm.getName())); workerB.setDataStat("0"); workerB.setInTm(new Date()); workerB.setUpTm(new Date()); tacWorkerBDao.insert(workerB); } else { TacWorkerB workerB = bList.get(0); List columns = new ArrayList<>(); columns.add("id"); columns.add("loginId"); columns.add("inTm"); columns.add("upTm"); BeanUtil.copyObject(rcmm, workerB, columns); tacWorkerBDao.update(workerB); } TacExprRcmmIndb indb = new TacExprRcmmIndb(); indb.setId(UuidUtil.uuid()); indb.setExprRcmmId(rcmm.getId()); indb.setGroupType(rcmm.getGroupType()); indb.setRoleType(rcmm.getRoleType()); indb.setIntm(date); indb.setUptm(date); indb.setDataStat("0"); indb.setPersId(persId); indbDao.insert(indb); TacExprRcmmRcrdParam tacExprRcmmRcrdParam = new TacExprRcmmRcrdParam(); tacExprRcmmRcrdParam.setExprRcmmId(rcmm.getId()); tacExprRcmmRcrdParam.setState("3"); rcrdDao.updateRcrdByRcmmId(tacExprRcmmRcrdParam); rcmm.setState("3"); tacExprRcmmDao.update(rcmm); }); } return list.size(); } private String getPersLoginId(Object rcmm, String mobilenumb, String name) { BisInspAllRlationPersParam param = new BisInspAllRlationPersParam(); param.setMobilenumb(mobilenumb); List persList = bisInspAllRlationPersDao.findList(param); if (persList.size() == 0 ){ BisInspAllRlationPers pers = new BisInspAllRlationPers(); BeanUtil.copyObject1(rcmm,pers); pers.setGuid(UuidUtil.uuid()); pers.setPwd("JinShui@433"); if (StringUtils.isNotBlank(pers.getSex())) { pers.setSex("男".equals(pers.getSex())?"1":"2"); } pers.setPersName(name); bisInspAllRlationPersDao.insert(pers); return pers.getGuid(); } return persList.get(0).getGuid(); } @Override public PageInfo getRcmmPage(TacExprRcmmParam tacExprRcmmParam) { PageHelper.startPage(tacExprRcmmParam); List list = tacExprRcmmDao.getRcmmList(tacExprRcmmParam); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } @Override public int removeRvmmList(TacExprRcmmParam tacExprRcmmParam) { tacExprRcmmParam.setOrgCode(InspUtils.setOrgIds(tacExprRcmmParam.getOrgCode())); tacExprRcmmParam.setWorkAd(InspUtils.setOrgIds(tacExprRcmmParam.getWorkAd())); tacExprRcmmParam.setRoleType(InspUtils.setOrgIds(tacExprRcmmParam.getRoleType())); List list = null; if (tacExprRcmmParam.getRcmms() != null && tacExprRcmmParam.getRcmms().size() > 0) { list = tacExprRcmmParam.getRcmms(); } else { list = tacExprRcmmDao.getRcmmList(tacExprRcmmParam); } if (list.size() > 0) { list.forEach(rcmm -> { rcmm.setState("4"); tacExprRcmmDao.update(rcmm); TacExprRcmmRcrdParam tacExprRcmmRcrdParam = new TacExprRcmmRcrdParam(); tacExprRcmmRcrdParam.setExprRcmmId(rcmm.getId()); tacExprRcmmRcrdParam.setState("4"); tacExprRcmmRcrdParam.setNote(tacExprRcmmParam.getDescribe()); rcrdDao.updateRcrdByRcmmId(tacExprRcmmRcrdParam); }); } return 0; } @Override public List getRcmmListByTime(TacExprRcmmParam tacExprRcmmParam) { List list = tacExprRcmmDao.getRcmmListByTime(tacExprRcmmParam); return list; } @Override public List countRcmmByTitles(TacExprRcmmParam tacExprRcmmParam) { tacExprRcmmParam.setRoleType(InspUtils.setOrgIds(tacExprRcmmParam.getRoleType())); tacExprRcmmParam.setEducation(InspUtils.setOrgIds(tacExprRcmmParam.getEducation())); tacExprRcmmParam.setTitles(InspUtils.setOrgIds(tacExprRcmmParam.getTitles())); List result = tacExprRcmmDao.countRcmmByTitles(tacExprRcmmParam); return result; } @Override public List countRcmmByRoleType(TacExprRcmmParam tacExprRcmmParam) { tacExprRcmmParam.setRoleType(InspUtils.setOrgIds(tacExprRcmmParam.getRoleType())); tacExprRcmmParam.setEducation(InspUtils.setOrgIds(tacExprRcmmParam.getEducation())); tacExprRcmmParam.setTitles(InspUtils.setOrgIds(tacExprRcmmParam.getTitles())); List result = tacExprRcmmDao.countRcmmByRoleType(tacExprRcmmParam); return result; } @Override public List countRcmmByEducation(TacExprRcmmParam tacExprRcmmParam) { tacExprRcmmParam.setRoleType(InspUtils.setOrgIds(tacExprRcmmParam.getRoleType())); tacExprRcmmParam.setEducation(InspUtils.setOrgIds(tacExprRcmmParam.getEducation())); tacExprRcmmParam.setTitles(InspUtils.setOrgIds(tacExprRcmmParam.getTitles())); List result = tacExprRcmmDao.countRcmmByEducation(tacExprRcmmParam); return result; } @Override public List countRcmmByIsOffice(TacExprRcmmParam tacExprRcmmParam) { tacExprRcmmParam.setRoleType(InspUtils.setOrgIds(tacExprRcmmParam.getRoleType())); tacExprRcmmParam.setEducation(InspUtils.setOrgIds(tacExprRcmmParam.getEducation())); tacExprRcmmParam.setTitles(InspUtils.setOrgIds(tacExprRcmmParam.getTitles())); List result = tacExprRcmmDao.countRcmmByIsOffice(tacExprRcmmParam); return result; } }