From bad78734354305e4f4b7ee207185204bb8892d89 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Tue, 04 Jan 2022 21:08:11 +0800
Subject: [PATCH] 派遣记录新增逻辑修改,派遣到学校,医院,银行的保安员不能超过50岁

---
 src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java |   98 +++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 75 insertions(+), 23 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 3eb9aae..4f10ae0 100644
--- a/src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java
+++ b/src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java
@@ -23,14 +23,18 @@
 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;
 import org.springblade.modules.system.service.IUserService;
+import org.springblade.modules.system.vo.UserVO;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.modules.dispatcher.entity.Dispatcher;
@@ -39,6 +43,7 @@
 import org.springblade.core.boot.ctrl.BladeController;
 
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -276,39 +281,86 @@
 		List<String> list = Arrays.asList(dispatcher.getIds().split(","));
 		//修改状态
 		AtomicBoolean status = new AtomicBoolean(false);
+		AtomicBoolean errorStatus = new AtomicBoolean(true);
+		//将不能导入的保安员账号存起来
+		List<String> errorList = new ArrayList<>();
 		if (list.size()>0) {
 			//遍历
 			list.forEach(id -> {
 				dispatcher.setCreateTime(new Date());
 				dispatcher.setStatus(0);
 				dispatcher.setUserIds(id);
+				//判断派遣单位类型,如果是医院,学校,银行等单位,则派遣人员年龄不应大于50岁
+				DispatcherUnit dispatcherUnit = dispatcherUnitService.getById(dispatcher.getDispatcherUnitId());
+				if (null!=dispatcherUnit.getDistrict() && !dispatcherUnit.getDistrict().equals("") && !dispatcherUnit.getDistrict().equals(-1)){
+					//判断
+					if (dispatcherUnit.getDistrict().equals(1) ||
+						dispatcherUnit.getDistrict().equals(2) ||
+						dispatcherUnit.getDistrict().equals(3)){
+						//查询保安员年龄
+						UserVO user1 = userService.getUserAgeById(Long.parseLong(dispatcher.getUserIds()));
+						if (user1.getAge()>50) {
+							errorStatus.set(false);
+							errorList.add(user1.getCardid());
+							//跳出本次循环
+							return;
+						}else {
+							User user = new User();
+							user.setId(Long.parseLong(id));
+							user.setDispatch("0");
+							userService.updateById(user);
 
-				User user = new User();
-				user.setId(Long.parseLong(id));
-				user.setDispatch("0");
-				userService.updateById(user);
+							//新增派遣记录
+							status.set(dispatcherService.save(dispatcher));
+							//数据同步
+							String s1 =
+								"insert into sys_dispatcher(id,dispatcherTime,dispatcherAddress,dispatcher_unit_id,user_ids,end_time,dept_id,jurisdiction,create_time,status) " +
+									"values(" + "'" + dispatcher.getId() + "'" + "," +
+									"'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getDispatchertime()) + "'" + "," +
+									"'" + dispatcher.getDispatcheraddress() + "'" + "," +
+									"'" + dispatcher.getDispatcherUnitId() + "'" + "," +
+									"'" + dispatcher.getUserIds() + "'" + "," +
+									"'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getEndTime()) + "'" + "," +
+									"'" + dispatcher.getDeptId() + "'" + "," +
+									"'" + dispatcher.getJurisdiction() + "'" + "," +
+									"'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dispatcher.getCreateTime()) + "'" + "," +
+									"'" + dispatcher.getStatus() + "'" + ");" +
+									"update blade_user set dispatch = " + "'" + user.getDispatch() + "'" +
+									" " + "where id = " + "'" + user.getId() + "'";
+							FtpUtil.sqlFileUpload(s1);
+						}
+					}
+				}else {
+					User user = new User();
+					user.setId(Long.parseLong(id));
+					user.setDispatch("0");
+					userService.updateById(user);
 
-				//新增派遣记录
-				status.set(dispatcherService.save(dispatcher));
-
-				//数据同步
-				String s1 =
-					"insert into sys_dispatcher(id,dispatcherTime,dispatcherAddress,dispatcher_unit_id,user_ids,end_time,dept_id,jurisdiction,create_time,status) " +
-						"values(" + "'" + dispatcher.getId() + "'" + "," +
-						"'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getDispatchertime()) + "'" + "," +
-						"'" + dispatcher.getDispatcheraddress() + "'" + "," +
-						"'" + dispatcher.getDispatcherUnitId() + "'" + "," +
-						"'" + dispatcher.getUserIds() + "'" + "," +
-						"'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getEndTime()) + "'" + "," +
-						"'" + dispatcher.getDeptId() + "'" + "," +
-						"'" + dispatcher.getJurisdiction() + "'" + "," +
-						"'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dispatcher.getCreateTime()) + "'" + "," +
-						"'" + dispatcher.getStatus() + "'" + ");" +
-					"update blade_user set dispatch = " + "'" + user.getDispatch() + "'" +
-						" " + "where id = " + "'" + user.getId() + "'";
-				FtpUtil.sqlFileUpload(s1);
+					//新增派遣记录
+					status.set(dispatcherService.save(dispatcher));
+					//数据同步
+					String s1 =
+						"insert into sys_dispatcher(id,dispatcherTime,dispatcherAddress,dispatcher_unit_id,user_ids,end_time,dept_id,jurisdiction,create_time,status) " +
+							"values(" + "'" + dispatcher.getId() + "'" + "," +
+							"'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getDispatchertime()) + "'" + "," +
+							"'" + dispatcher.getDispatcheraddress() + "'" + "," +
+							"'" + dispatcher.getDispatcherUnitId() + "'" + "," +
+							"'" + dispatcher.getUserIds() + "'" + "," +
+							"'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getEndTime()) + "'" + "," +
+							"'" + dispatcher.getDeptId() + "'" + "," +
+							"'" + dispatcher.getJurisdiction() + "'" + "," +
+							"'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dispatcher.getCreateTime()) + "'" + "," +
+							"'" + dispatcher.getStatus() + "'" + ");" +
+						"update blade_user set dispatch = " + "'" + user.getDispatch() + "'" +
+							" " + "where id = " + "'" + user.getId() + "'";
+					FtpUtil.sqlFileUpload(s1);
+				}
 
 			});
+			if (!errorStatus.get()){
+				String errorAccount = StringUtils.join(errorList, "\\\n");
+				throw new ServiceException("保安员["+ errorAccount +"]派遣失败!派遣到学校,医院,银行的保安员年龄应不超过50周岁!");
+			}
 		}
 		return R.status(status.get());
 	}

--
Gitblit v1.9.3