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/dispatcher/controller/DispatcherController.java |    3 -
 src/main/java/org/springblade/modules/licence/controller/LicencePaperController.java  |   50 ++++++++++++++++
 src/main/java/org/springblade/modules/social/controller/SocialController.java         |   38 ++++++++++++
 src/main/java/org/springblade/modules/social/service/impl/SocialServiceImpl.java      |   75 +++++++++++++++++++++++--
 src/main/java/org/springblade/modules/licence/entity/LicencePaper.java                |    3 +
 5 files changed, 156 insertions(+), 13 deletions(-)

diff --git a/src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java b/src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java
index 931514e..f6b7be6 100644
--- a/src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java
+++ b/src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java
@@ -21,16 +21,13 @@
 import io.swagger.annotations.ApiParam;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
-
 import javax.validation.Valid;
-
 import org.apache.commons.lang3.StringUtils;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.modules.FTP.FtpUtil;
 import org.springblade.modules.dispatcher.entity.DispatcherUnit;
 import org.springblade.modules.dispatcher.service.IDispatcherUnitService;
 import org.springblade.modules.system.entity.User;
diff --git a/src/main/java/org/springblade/modules/licence/controller/LicencePaperController.java b/src/main/java/org/springblade/modules/licence/controller/LicencePaperController.java
index 28b2dac..a22a235 100644
--- a/src/main/java/org/springblade/modules/licence/controller/LicencePaperController.java
+++ b/src/main/java/org/springblade/modules/licence/controller/LicencePaperController.java
@@ -9,8 +9,10 @@
 import org.springblade.modules.licence.entity.LicencePaper;
 import org.springblade.modules.licence.service.LicencePaperService;
 import org.springblade.modules.licence.vo.LicencePaperVo;
+import org.springblade.modules.system.service.MyAsyncService;
 import org.springframework.web.bind.annotation.*;
 
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 
@@ -26,6 +28,8 @@
 
 	private final LicencePaperService licencePaperService;
 
+
+	private final MyAsyncService myAsyncService;
 
 //	/**
 //	 * 自定义分页
@@ -67,10 +71,52 @@
 		if (null==licencePaper.getId()){
 			licencePaper.setCreateTime(new Date());
 			licencePaper.setUpdateTime(new Date());
-			licencePaperService.save(licencePaper);
+			boolean save = licencePaperService.save(licencePaper);
+			//数据同步
+			if (save){
+				String s = "insert into sys_licence_paper" +
+					"(id,type,unit_name,address,legal_people,content,approval_number,licence_issuing_unit,register_capital," +
+					"code,licence_issuing_time,create_user,create_time,update_user,update_time,dept_id,url) " +
+					"values(" + "'" + licencePaper.getId() + "'" +
+					"," + "'" + licencePaper.getType() + "'" +
+					"," + "'" + licencePaper.getUnitName() + "'" +
+					"," + "'" + licencePaper.getAddress() + "'" +
+					"," + "'" + licencePaper.getLegalPeople() + "'" +
+					"," + "'" + licencePaper.getContent() + "'" +
+					"," + "'" + licencePaper.getApprovalNumber() + "'" +
+					"," + "'" + licencePaper.getLicenceIssuingUnit() + "'" +
+					"," + "'" + licencePaper.getRegisterCapital() + "'" +
+					"," + "'" + licencePaper.getCode() + "'" +
+					"," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(licencePaper.getLicenceIssuingTime()) + "'" +
+					"," + "'" + licencePaper.getCreateUser() + "'" +
+					"," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(licencePaper.getCreateTime()) + "'" +
+					"," + "'" + licencePaper.getUpdateUser() + "'" +
+					"," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(licencePaper.getUpdateTime()) + "'" +
+					"," + "'" + licencePaper.getDeptId() + "'" +
+					"," + "'" + licencePaper.getUrl() + "'" + ")";
+				myAsyncService.dataSync(s);
+			}
 		}else {
 			licencePaper.setUpdateTime(new Date());
-			licencePaperService.updateById(licencePaper);
+			boolean update = licencePaperService.updateById(licencePaper);
+			//数据同步
+			if (update) {
+				String s1 = "update sys_licence_paper set type = " + "'" + licencePaper.getType() + "'" +
+					",unit_name = " + "'" + licencePaper.getUnitName() + "'" +
+					",address = " + "'" + licencePaper.getAddress() + "'" +
+					",legal_people = " + "'" + licencePaper.getLegalPeople() + "'" +
+					",content = " + "'" + licencePaper.getContent() + "'" +
+					",approval_number = " + "'" + licencePaper.getApprovalNumber() + "'" +
+					",licence_issuing_unit = " + "'" + licencePaper.getLicenceIssuingUnit() + "'" +
+					",register_capital = " + "'" + licencePaper.getRegisterCapital() + "'" +
+					",code = " + "'" + licencePaper.getCode() + "'" +
+					",licence_issuing_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(licencePaper.getLicenceIssuingTime()) + "'" +
+					",update_user = " + "'" + licencePaper.getUpdateUser() + "'" +
+					",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(licencePaper.getUpdateTime()) + "'" +
+					",url = " + "'" + licencePaper.getUrl() + "'" +
+					" " + "where id = " + "'" + licencePaper.getId() + "'";
+				myAsyncService.dataSync(s1);
+			}
 		}
 		return R.data(licencePaper);
 	}
diff --git a/src/main/java/org/springblade/modules/licence/entity/LicencePaper.java b/src/main/java/org/springblade/modules/licence/entity/LicencePaper.java
index be029f2..fdd18d6 100644
--- a/src/main/java/org/springblade/modules/licence/entity/LicencePaper.java
+++ b/src/main/java/org/springblade/modules/licence/entity/LicencePaper.java
@@ -5,6 +5,8 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.io.Serializable;
@@ -24,6 +26,7 @@
 	 * 许可证信息主键id,非自增
 	 */
 	@TableId(value = "id",type = IdType.ASSIGN_ID)
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long id;
 
 	/**
diff --git a/src/main/java/org/springblade/modules/social/controller/SocialController.java b/src/main/java/org/springblade/modules/social/controller/SocialController.java
index 806b5ba..77c8eba 100644
--- a/src/main/java/org/springblade/modules/social/controller/SocialController.java
+++ b/src/main/java/org/springblade/modules/social/controller/SocialController.java
@@ -38,6 +38,8 @@
 import org.springblade.modules.social.service.ISocialService;
 import org.springblade.modules.social.vo.SocialVO;
 import org.springblade.modules.system.excel.UserExcel;
+import org.springblade.modules.system.service.MyAsyncService;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -48,6 +50,7 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -63,6 +66,8 @@
 public class SocialController extends BladeController {
 
 	private final ISocialService socialService;
+
+	private final MyAsyncService myAsyncService;
 
 	/**
 	 * 详情
@@ -104,8 +109,27 @@
 	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "新增", notes = "传入social")
 	public R save(@Valid @RequestBody Social social) {
+		//更新用户是否缴纳社保状态
 		socialService.upSoil(social.getCardid());
-		return R.status(socialService.save(social));
+		//新增社保缴纳记录
+		boolean save = socialService.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);
+		}
+		//返回
+		return R.status(save);
 	}
 
 	/**
@@ -135,8 +159,18 @@
 	@PostMapping("/remove")
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "删除", notes = "传入ids")
+	@Transactional(rollbackFor = Exception.class)
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(socialService.removeByIds(Func.toLongList(ids)));
+		boolean remove = socialService.removeByIds(Func.toLongList(ids));
+		if (remove) {
+			List<String> list = Arrays.asList(ids.split(","));
+			list.forEach(s -> {
+				//内网同步删除
+				String s1 = "delete from sys_socil where id = " + "'" + s + "'";
+				myAsyncService.dataSync(s1);
+			});
+		}
+		return R.status(remove);
 	}
 
 
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