From 8853292babb2ad94de4a3207966f1e83b767cd2d Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sun, 17 Sep 2023 16:38:34 +0800
Subject: [PATCH] 新增流程节点进程查询接口

---
 src/main/java/org/springblade/modules/social/service/impl/SocialServiceImpl.java |  104 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 100 insertions(+), 4 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 3a0a965..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,14 +19,24 @@
 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;
 
@@ -38,18 +48,104 @@
  */
 @Service
 public class SocialServiceImpl extends ServiceImpl<SocialMapper, Social> implements ISocialService {
+
+	@Autowired
+	private MyAsyncService myAsyncService;
+
+	@Autowired
+	private IUserService userService;
+
+
 	@Override
 	public IPage<SocialVO> selectSocialPage(IPage<SocialVO> page, SocialVO social) {
 		return page.setRecords(baseMapper.selectSocialPage(page, social));
 	}
 
 	@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().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.save(social);
-		});
+			//设置状态
+			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

--
Gitblit v1.9.3