From a445f592f22bc3f1bb7fe18ef80352c9f49f408c Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 08 Nov 2021 13:50:12 +0800
Subject: [PATCH] 派遣人员查询接口新增修改

---
 src/main/java/org/springblade/modules/system/controller/UserController.java |  192 +++++++++++++++++++++++++++++++++--------------
 1 files changed, 134 insertions(+), 58 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java
index a23e03b..0ed7ffc 100644
--- a/src/main/java/org/springblade/modules/system/controller/UserController.java
+++ b/src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -17,6 +17,7 @@
 package org.springblade.modules.system.controller;
 
 
+import com.alibaba.excel.EasyExcel;
 import com.aliyun.oss.ServiceException;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -28,9 +29,13 @@
 import io.swagger.annotations.ApiParam;
 import com.alibaba.fastjson.JSON;
 import lombok.AllArgsConstructor;
+import org.apache.commons.codec.Charsets;
 import org.springblade.common.cache.DictCache;
 import org.springblade.common.config.FtpConfig;
 import org.springblade.common.enums.DictEnum;
+import org.springblade.common.excel.CustomCellWriteHeightConfig;
+import org.springblade.common.excel.CustomCellWriteWeightConfig;
+import org.springblade.common.excel.RowWriteHandler;
 import org.springblade.common.utils.arg;
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.excel.util.ExcelUtil;
@@ -47,6 +52,7 @@
 import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.*;
 import org.springblade.modules.FTP.FtpUtil;
+import org.springblade.modules.exam.excel.ExportExamScoreExcel;
 import org.springblade.modules.experience.entity.Experience;
 import org.springblade.modules.experience.service.IExperienceService;
 import org.springblade.modules.jurisdiction.entity.Jurisdiction;
@@ -54,9 +60,7 @@
 import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.entity.Role;
 import org.springblade.modules.system.entity.User;
-import org.springblade.modules.system.excel.SecurityImporter;
-import org.springblade.modules.system.excel.UserExcel;
-import org.springblade.modules.system.excel.UserImporter;
+import org.springblade.modules.system.excel.*;
 import org.springblade.modules.system.node.TreeNode;
 import org.springblade.modules.system.service.IDeptService;
 import org.springblade.modules.system.service.IRoleService;
@@ -64,17 +68,17 @@
 import org.springblade.modules.system.vo.DeptVO;
 import org.springblade.modules.system.vo.UserVO;
 import org.springblade.modules.system.wrapper.UserWrapper;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import springfox.documentation.annotations.ApiIgnore;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.io.IOException;
+import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
 import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE;
@@ -231,20 +235,22 @@
 	@ApiOperation(value = "修改", notes = "传入User")
 	public R update(@Valid @RequestBody User user) {
 		CacheUtil.clear(USER_CACHE);
+		User user1 = userService.getById(user.getId());
+		user.setPassword(user1.getPassword());
 		userService.updateById(user);
-		Date birthday1 = user.getBirthday();
-		String birthday;
 		String rtime;
-		if (user.getBirthday() == null) {
-			birthday = null;
-		} else {
-			birthday = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getBirthday());
-		}
-
 		if (user.getRtime() == null) {
 			rtime = null;
 		} else {
 			rtime = new SimpleDateFormat("yyyy-MM-dd").format(user.getRtime());
+		}
+
+		String paperTime;
+		//发证日期处理
+		if (user.getPaperTime() == null) {
+			paperTime = null;
+		} else {
+			paperTime = new SimpleDateFormat("yyyy-MM-dd").format(user.getPaperTime());
 		}
 
 		String s1 =
@@ -276,6 +282,29 @@
 		return R.success("修改成功");
 	}
 
+
+	/**
+	 * 修改发证时间
+	 */
+	@PostMapping("/updatePaperTime")
+	public R updatePaperTime(@RequestBody User user) {
+		user.setPaperTime(new Date());
+		userService.updateById(user);
+		String paperTime = null;
+		//发证日期处理
+		if (user.getPaperTime() == null) {
+			paperTime = null;
+		} else {
+			paperTime = new SimpleDateFormat("yyyy-MM-dd").format(user.getPaperTime());
+		}
+		String s1 =
+			"update blade_user set paper_time = " + "'" + paperTime + "'"
+				+ ",user_type = " + "'" + user.getUserType() + "'"
+				+ " " + "where id = " + "'" + user.getId() + "'";
+		FtpUtil.sqlFileUpload(s1);
+		return R.success("修改成功");
+	}
+
 	/**
 	 * 删除
 	 */
@@ -285,6 +314,12 @@
 	//@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
 	public R remove(@RequestParam String ids) {
 		CacheUtil.clear(USER_CACHE);
+		List<String> list = Arrays.asList(ids.split(","));
+		list.forEach(id -> {
+			//内网同步
+			String s1 = "update blade_user set is_deleted = 1 where id = " + "'" + id + "'";
+			FtpUtil.sqlFileUpload(s1);
+		});
 		return R.status(userService.removeUser(ids));
 	}
 
@@ -355,9 +390,22 @@
 	@PostMapping("import-user")
 	@ApiOperationSupport(order = 12)
 	@ApiOperation(value = "导入用户", notes = "传入excel")
-	public R importUser(MultipartFile file, Integer isCovered) {
-		UserImporter userImporter = new UserImporter(userService, false);
+	public R importUser(MultipartFile file, Integer isCovered,String deptId) {
+		UserImporter userImporter = new UserImporter(userService, false,deptId);
 		ExcelUtil.save(file, userImporter, UserExcel.class);
+		return R.success("操作成功");
+	}
+
+
+	/**
+	 * 保安员证二维码批量生成
+	 */
+	@PostMapping("import-qrCode")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入用户", notes = "传入excel")
+	public R importQrCode(@RequestParam("file") MultipartFile file, Integer isCovered,String deptId) {
+		QrCodeImporter qrCodeImporter = new QrCodeImporter(userService, false,deptId);
+		ExcelUtil.save(file, qrCodeImporter, QrCodeExcel.class);
 		return R.success("操作成功");
 	}
 
@@ -390,6 +438,7 @@
 //		ExcelUtil.export(response, "用户数据" + DateUtil.time(), "用户数据表", list, UserExcel.class);
 //	}
 
+
 	/**
 	 * 导出模板
 	 */
@@ -407,7 +456,7 @@
 	@GetMapping("export-template-security")
 	@ApiOperationSupport(order = 14)
 	@ApiOperation(value = "导出模板")
-	public void exportSecurity(HttpServletResponse response) {
+	public void exportSecurity(HttpServletResponse response) throws IOException {
 		List<UserExcel> list = new ArrayList<>();
 		UserExcel userExcel = new UserExcel();
 		userExcel.setDeptId("xxx保安公司");
@@ -443,7 +492,18 @@
 		userExcel1.setHold("否");
 		userExcel1.setSecuritynumber("");
 		list.add(userExcel1);
-		ExcelUtil.export(response, "保安员导入数据模板", "保安员数据表", list, UserExcel.class);
+		String fileName = null;
+		try {
+			response.setContentType("application/vnd.ms-excel");
+			response.setCharacterEncoding(org.apache.commons.codec.Charsets.UTF_8.name());
+			fileName = URLEncoder.encode("保安员导入数据模板", Charsets.UTF_8.name());
+			response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+			//修改单元格格式为文本格式
+			EasyExcel.write(response.getOutputStream(), UserExcel.class).sheet("保安员数据表").registerWriteHandler(new RowWriteHandler()).doWrite(list);
+		} catch (Throwable var6) {
+			throw var6;
+		}
+//		ExcelUtil.export(response, "保安员导入数据模板", "保安员数据表", list, UserExcel.class);
 	}
 
 
@@ -542,6 +602,15 @@
 	}
 
 	/**
+	 * 保安员列表树,帅选无保安证,下拉tree
+	 */
+	@GetMapping("/security-dispatcher-tree")
+	public R<List<TreeNode>> getSecurityDispatcherTree(UserVO user) {
+		List<TreeNode> tree = userService.getSecurityDispatcherTree(user);
+		return R.data(tree);
+	}
+
+	/**
 	 * 自定义用户列表(只有保安员)
 	 */
 	@GetMapping("/selectInr")
@@ -551,12 +620,14 @@
 	}
 
 	@GetMapping("/zc")
-	public R zc(String username, String password) {
+	public R zc(String username, String password,String phone) {
 		User user = new User();
 		user.setTenantId("000000");
 		user.setAccount(username);
 		user.setPassword(DigestUtil.encrypt(password));
+		user.setDeptId("1426355050199945218");
 		user.setRoleId("1428177141018771458");
+		user.setPhone(phone);
 		userService.saveOrUpdate(user);
 		return R.success("注册成功");
 	}
@@ -565,19 +636,18 @@
 	 * 保安员新增
 	 */
 	@PostMapping("/securitySave")
+	@Transactional(rollbackFor = Exception.class)
 	public R securitySave(@Valid @RequestBody Map<String, Object> userMap) {
 		//获取user
 		User user = JSON.parseObject(JSON.toJSONString(userMap.get("user")), User.class);
-		//判断是否为空
-//		if (null!=user.getHold()){
-		//持证
-//			if (user.getHold().equals("1")){
 		//分配保安角色
 		Role role = new Role();
 		role.setRoleAlias("保安");
 		Role oneRole = roleService.getOne(Condition.getQueryWrapper(role));
 		user.setRoleId(oneRole.getId().toString());
 		user.setDispatch("1");
+		user.setExaminationType("0");
+		user.setAccount(user.getCardid());
 
 		Integer userCount = userService.selectCount(user.getAccount());
 		if (userCount > 0 && Func.isEmpty(user.getId())) {
@@ -594,49 +664,53 @@
 //			}
 //		}
 		//密码加密
-		if (Func.isNotEmpty(user.getPassword())) {
-			user.setPassword(DigestUtil.encrypt(user.getPassword()));
+		if (Func.isNotEmpty(user.getCardid())) {
+//			user.setPassword(DigestUtil.encrypt(user.getPassword()));
+			//取身份证号码后6位作为密码
+			user.setPassword(DigestUtil.encrypt(user.getCardid().substring(user.getCardid().length() - 6)));
 		}
 		user.setTenantId("000000");
 		//用户新增
 		boolean status = userService.save(user);
-
-		String birthday;
 		String rtime;
-		if (user.getBirthday() == null) {
-			birthday = null;
-		} else {
-			birthday = new SimpleDateFormat("yyyy-MM-dd").format(user.getBirthday());
-		}
-
+		String paperTime;
 		if (user.getRtime() == null) {
 			rtime = null;
 		} else {
 			rtime = new SimpleDateFormat("yyyy-MM-dd").format(user.getRtime());
 		}
-		String urla = "";
-		String[] split = user.getAvatar().split(",");
-		for (int i = 0; i < split.length; i++) {
-			String s = split[i].substring(26, split[i].length());
-			urla += FtpConfig.ip + s + ",";
+		//发证日期处理
+		if (user.getPaperTime() == null) {
+			paperTime = "";
+		} else {
+			paperTime = new SimpleDateFormat("yyyy-MM-dd").format(user.getPaperTime());
 		}
-		String substring = urla.substring(0, urla.length() - 1);
-		user.setAvatar(substring);
-
-		String urlf = "";
-		String[] splits = user.getFingerprint().split(",");
-		for (int i = 0; i < splits.length; i++) {
-			String s = splits[i].substring(26, splits[i].length());
-			urlf += FtpConfig.ip + s + ",";
+		//头像
+		if (null!=user.getAvatar() && !user.getAvatar().equals("")) {
+			user.setAvatar(FtpConfig.ip + user.getAvatar().substring(26));
 		}
-		String substrings = urla.substring(0, urlf.length() - 1);
-		user.setFingerprint(substrings);
 
-		String s = "insert into blade_user(id,tenant_id,account,password,name,real_name,avatar,email,phone,sex,role_id,dept_id,cardid,nativePlace,nation,fingerprint,education," +
-			"politicaloutlook,healstats,height,address,registered,rtime,securitynumber,hold,jurisdiction,status,is_deleted,dispatch) " +
-			"values(" + "'" + user.getId() + "'" + "," + "'" + user.getTenantId() + "'" + "," + "'" + user.getAccount() + "'" + "," +
-			"'" + user.getPassword() + "'" + "," + "'" + user.getName() + "'" + "," + "'" + user.getRealName() + "'" + "," + "'" + user.getAvatar() + "'" + "," +
-			"'" + user.getEmail() + "'" + "," + "'" + user.getPhone() + "'" + "," + "'" + user.getSex() + "'" + "," + "'" + user.getRoleId() + "'" +
+		//指纹
+		if (null!=user.getFingerprint() && !user.getFingerprint().equals("")) {
+			user.setFingerprint(FtpConfig.ip + user.getFingerprint().substring(26));
+		}
+
+		String s = "insert into blade_user(" +
+			"id,tenant_id,account,password,name,real_name,avatar,email,phone,sex," +
+			"role_id,dept_id,cardid,nativePlace,nation,fingerprint,education," +
+			"politicaloutlook,healstats,height,address,registered,rtime," +
+			"securitynumber,hold,jurisdiction,examination_type,status,is_deleted,dispatch) " +
+			"values(" + "'" + user.getId() + "'" +
+			"," + "'" + user.getTenantId() + "'" +
+			"," + "'" + user.getAccount() + "'" +
+			"," + "'" + user.getPassword() + "'" +
+			"," + "'" + user.getName() + "'" +
+			"," + "'" + user.getRealName() + "'" +
+			"," + "'" + user.getAvatar() + "'" +
+			"," + "'" + user.getEmail() + "'" +
+			"," + "'" + user.getPhone() + "'" +
+			"," + "'" + user.getSex() + "'" +
+			"," + "'" + user.getRoleId() + "'" +
 			"," + "'" + user.getDeptId() + "'" +
 			"," + "'" + user.getCardid() + "'" +
 			"," + "'" + user.getNativeplace() + "'" +
@@ -644,13 +718,15 @@
 			"," + "'" + user.getFingerprint() + "'" +
 			"," + "'" + user.getEducation() + "'" +
 			"," + "'" + user.getPoliticaloutlook() + "'" +
-			"," + "'" + user.getHealstats() + "'"
-			+ "," + "'" + user.getHeight() + "'" +
+			"," + "'" + user.getHealstats() + "'"+
+			"," + "'" + user.getHeight() + "'" +
 			"," + "'" + user.getAddress() + "'" +
-			"," + "'" + user.getRegistered() + "'" + "," +
-			"'" + rtime + "'" + "," + "'" + user.getSecuritynumber() + "'" +
+			"," + "'" + user.getRegistered() + "'" +
+			"," +"'" + rtime + "'" +
+			"," + "'" + user.getSecuritynumber() + "'" +
 			"," + "'" + user.getHold() + "'" +
 			"," + "'" + user.getJurisdiction() + "'" +
+			"," + "'" + user.getExaminationType() + "'" +
 			"," + "'" + user.getStatus() + "'" +
 			"," + "'" + user.getIsDeleted() + "'" +
 			"," + "'" + user.getDispatch() + "'" + ")";

--
Gitblit v1.9.3