/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.springblade.modules.social.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.modules.social.entity.Social; import org.springblade.modules.social.excel.SocialExcel; import org.springblade.modules.social.mapper.SocialMapper; import org.springblade.modules.social.service.ISocialService; import org.springblade.modules.social.vo.SocialVO; import org.springblade.modules.system.entity.User; import org.springblade.modules.system.service.IUserService; import org.springblade.modules.system.service.MyAsyncService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; /** * 服务实现类 * * @author BladeX * @since 2021-07-16 */ @Service public class SocialServiceImpl extends ServiceImpl implements ISocialService { @Autowired private MyAsyncService myAsyncService; @Autowired private IUserService userService; @Override public IPage selectSocialPage(IPage page, SocialVO social) { return page.setRecords(baseMapper.selectSocialPage(page, social)); } @Override // @Transactional(rollbackFor = Exception.class) public void importUser(List data, Boolean isCovered,String deptid) { //没有录入的人员 List notFoundList = new ArrayList<>(); int num = 0; //遍历 for (SocialExcel socialExcel : data) { Social social = Objects.requireNonNull(BeanUtil.copy(socialExcel, Social.class)); if (StringUtils.isBlank(social.getCardid())){ throw new ServiceException("身份证号不能为空!"); } //判断人员是否已录入 User user = userService.getUserInfoByIdCardNo(social.getCardid()); if (null == user){ notFoundList.add(social.getCardid()); num ++; //终止本个循环,继续下一个循环 continue; } //设置用户id social.setNamb(user.getId().toString()); // if (null!=social.getSex() && !"".equals(social.getSex())) { // if (social.getSex().contains("男")){ // social.setSex("1"); // } // if (social.getSex().contains("女")){ // social.setSex("2"); // } // } if (null!=social.getBirthday()) { social.setBirthday(social.getBirthday()); } if (null!=social.getTelephone() && !"".equals(social.getTelephone())) { social.setTelephone(social.getTelephone()); } if (null!=social.getResidence() && !"".equals(social.getResidence())) { social.setResidence(social.getResidence()); } if (null!=social.getAddress() && !"".equals(social.getAddress())) { social.setAddress(social.getAddress()); } if (null!=social.getNature() && !"".equals(social.getNature())) { social.setNature(social.getNature()); } if (null!=social.getNation() && !"".equals(social.getNation())) { social.setNation(social.getNation()); } social.setDeptid(deptid); //设置状态 this.upSoil(social.getCardid()); //新增 boolean save = this.save(social); if (save) { //内网同步 String sql = "insert into sys_socil(id,namb,sex,nation,telephone,cardid,residence,amount,insuredtime,deptid) " + "values(" + "'" + social.getId() + "'" + "," + "'" + social.getNamb() + "'" + "," + "'" + social.getSex() + "'" + "," + "'" + social.getNation() + "'" + "," + "'" + social.getTelephone() + "'" + "," + "'" + social.getCardid() + "'" + "," + "'" + social.getResidence() + "'" + "," + "'" + social.getAmount() + "'" + "," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(social.getInsuredtime()) + "'" + "," + "'" + social.getDeptid() + "'" + ")"; myAsyncService.dataSync(sql); } } //如果所有数据导入有一个异常 StringBuilder errorBuilder = new StringBuilder(); if (num>0){ String errorAccount = StringUtils.join(notFoundList, "\\\n"); errorBuilder.append("用户:[" + errorAccount + "]社保记录导入失败!该人员尚未录入!"); } //抛出异常 if (errorBuilder.length()>0){ throw new ServiceException(errorBuilder.toString()); } } @Override public void upSoil(String cardid) { baseMapper.upSoil(cardid); } }