From 2d696f34d7629dcef6dd563a5b40c8239511f0b3 Mon Sep 17 00:00:00 2001
From: zhongrj <123456>
Date: Tue, 23 Aug 2022 16:16:59 +0800
Subject: [PATCH] 许可证信息,社保信息同步

---
 src/main/java/org/springblade/modules/social/service/impl/SocialServiceImpl.java |   75 ++++++++++++++++++++++++++++++++++---
 1 files changed, 69 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/springblade/modules/social/service/impl/SocialServiceImpl.java b/src/main/java/org/springblade/modules/social/service/impl/SocialServiceImpl.java
index ba702d5..e363e47 100644
--- a/src/main/java/org/springblade/modules/social/service/impl/SocialServiceImpl.java
+++ b/src/main/java/org/springblade/modules/social/service/impl/SocialServiceImpl.java
@@ -19,15 +19,23 @@
 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;
@@ -41,6 +49,11 @@
 @Service
 public class SocialServiceImpl extends ServiceImpl<SocialMapper, Social> implements ISocialService {
 
+	@Autowired
+	private MyAsyncService myAsyncService;
+
+	@Autowired
+	private IUserService userService;
 
 
 	@Override
@@ -49,15 +62,34 @@
 	}
 
 	@Override
+//	@Transactional(rollbackFor = Exception.class)
 	public void importUser(List<SocialExcel> data, Boolean isCovered,String deptid) {
-		data.forEach(SocialExcel -> {
-			Social social = Objects.requireNonNull(BeanUtil.copy(SocialExcel, Social.class));
+		//没有录入的人员
+		List<String> 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().equals("男")){
+//				if (social.getSex().contains("男")){
 //					social.setSex("1");
 //				}
-//				if (social.getSex().equals("女")){
+//				if (social.getSex().contains("女")){
 //					social.setSex("2");
 //				}
 //			}
@@ -80,9 +112,40 @@
 				social.setNation(social.getNation());
 			}
 			social.setDeptid(deptid);
+			//设置状态
 			this.upSoil(social.getCardid());
-			this.save(social);
-		});
+			//新增
+			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

--
Gitblit v1.9.3