From d4cb6034a5e05b7aa2fb4593f4c2b630be138ca1 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 08 Nov 2021 19:43:58 +0800
Subject: [PATCH] 1.派遣批量新增,导入示例新增 2.社保缴纳修改,导入示例新增

---
 src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java |  285 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 284 insertions(+), 1 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 9032235..3eb9aae 100644
--- a/src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java
+++ b/src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java
@@ -27,12 +27,22 @@
 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.service.IDispatcherUnitService;
+import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.service.IUserService;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.modules.dispatcher.entity.Dispatcher;
 import org.springblade.modules.dispatcher.vo.DispatcherVO;
 import org.springblade.modules.dispatcher.service.IDispatcherService;
 import org.springblade.core.boot.ctrl.BladeController;
+
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  *  控制器
@@ -47,6 +57,10 @@
 public class DispatcherController extends BladeController {
 
 	private final IDispatcherService dispatcherService;
+
+	private final IDispatcherUnitService dispatcherUnitService;
+
+	private final IUserService userService;
 
 	/**
 	 * 详情
@@ -88,6 +102,11 @@
 	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "新增", notes = "传入dispatcher")
 	public R save(@Valid @RequestBody Dispatcher dispatcher) {
+		if (null != dispatcher.getUserIds() && dispatcher.getUserIds() != "") {
+			//计算派遣人数
+//			dispatcher.setNum(Arrays.asList(dispatcher.getUserIds().split(",")).size());
+			//查询派遣单位的信息,设置行政区
+		}
 		return R.status(dispatcherService.save(dispatcher));
 	}
 
@@ -101,6 +120,46 @@
 		return R.status(dispatcherService.updateById(dispatcher));
 	}
 
+
+	/**
+	 * 结束派遣
+	 * @param dispatcher
+	 */
+	@PostMapping("/over-dispatcher")
+	public R overDispatcher(@Valid @RequestBody Dispatcher dispatcher) {
+		dispatcher.setStatus(1);
+		Boolean status = dispatcherService.updateById(dispatcher);
+
+		//查询当前用户的派遣记录,是否存在多条未结束派遣的
+		Dispatcher dispatcher1 = new Dispatcher();
+		dispatcher1.setUserIds(dispatcher.getUserIds());
+		dispatcher1.setStatus(0);
+		List<Dispatcher> dispatcherList = dispatcherService.list(Condition.getQueryWrapper(dispatcher1));
+
+		User user = new User();
+		if (dispatcherList.size()<1){
+			//用户状态改变
+			user.setDispatch("1");
+		}else {
+			//用户状态改变
+			user.setDispatch("0");
+		}
+		user.setId(Long.parseLong(dispatcher.getUserIds()));
+		userService.updateById(user);
+
+
+
+		//内网同步
+		String s1 =
+			"update sys_dispatcher set status = " + "'" + dispatcher.getStatus() + "'" +
+				",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "'" +
+				" " +"where id = " + "'" + dispatcher.getId() + "';"+
+				"update blade_user set dispatch = " + "'" + user.getDispatch() + "'" +
+				" " +"where id = " + "'" + user.getId() + "'";
+		FtpUtil.sqlFileUpload(s1);
+		return R.status(status);
+	}
+
 	/**
 	 * 新增或修改
 	 */
@@ -108,7 +167,224 @@
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入dispatcher")
 	public R submit(@Valid @RequestBody Dispatcher dispatcher) {
-		return R.status(dispatcherService.saveOrUpdate(dispatcher));
+		boolean status = false;
+		if (dispatcher.getId() == null) {
+			dispatcher.setCreateTime(new Date());
+			dispatcher.setStatus(0);
+			dispatcher.setUserIds(dispatcher.getUserIds());
+
+			User user = new User();
+			user.setId(Long.parseLong(dispatcher.getUserIds()));
+			user.setDispatch("0");
+			userService.updateById(user);
+
+			//新增派遣记录
+			status = 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 {
+			dispatcher.setUpdateTime(new Date());
+			//查询当前派遣记录
+			Dispatcher dispatcher1 = dispatcherService.getById(dispatcher.getId());
+			if (!dispatcher1.getUserIds().equals(dispatcher.getUserIds())) {
+				//修改原保安人员的派遣状态
+				//查询原保安人员的派遣记录,是否存在多条未结束派遣的
+				Dispatcher dispatcher2 = new Dispatcher();
+				dispatcher2.setUserIds(dispatcher1.getUserIds());
+				dispatcher2.setStatus(0);
+				List<Dispatcher> dispatcherList = dispatcherService.list(Condition.getQueryWrapper(dispatcher2));
+				User user = new User();
+				user.setId(Long.parseLong(dispatcher1.getUserIds()));
+				if (dispatcherList.size() == 1) {
+					//用户状态改变
+					user.setDispatch("1");
+				} else {
+					user.setDispatch("0");
+				}
+				//修改原保安人员用户信息
+				userService.updateById(user);
+
+				//修改当前保安人员的派遣状态
+				User user1 = new User();
+				user1.setId(Long.parseLong(dispatcher.getUserIds()));
+				user1.setDispatch("0");
+				userService.updateById(user1);
+
+				//修改
+				status = dispatcherService.updateById(dispatcher);
+
+				//内网同步
+				String s1 =
+					"update blade_user set dispatch = " + "'" + user.getDispatch() + "'" +
+						" " + "where id = " + "'" + user.getId() + "';" +
+					"update sys_dispatcher set dispatcherTime = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getDispatchertime()) + "'" +
+						",dispatcherAddress = " + "'" + dispatcher.getDispatcheraddress() + "'" +
+						",dispatcher_unit_id = " + "'" + dispatcher.getDispatcherUnitId() + "'" +
+						",user_ids = " + "'" + dispatcher.getUserIds() + "'" +
+						",end_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getEndTime()) + "'" +
+						",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dispatcher.getUpdateTime()) + "'" +
+						",dept_id = " + "'" + dispatcher.getDeptId() + "'" +
+						",jurisdiction = " + "'" + dispatcher.getJurisdiction() + "'" +
+						" " + "where id = " + "'" + dispatcher.getId() + "';" +
+					"update blade_user set dispatch = " + "'" + user1.getDispatch() + "'" +
+						" " + "where id = " + "'" + user1.getId() + "'";
+				FtpUtil.sqlFileUpload(s1);
+			}else {
+				//没有修改保安员,只修改了派遣时间等信息
+				//修改
+				status = dispatcherService.updateById(dispatcher);
+
+				//内网同步
+				String s1 =
+					"update sys_dispatcher set dispatcherTime = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getDispatchertime()) + "'" +
+						",dispatcherAddress = " + "'" + dispatcher.getDispatcheraddress() + "'" +
+						",dispatcher_unit_id = " + "'" + dispatcher.getDispatcherUnitId() + "'" +
+						",user_ids = " + "'" + dispatcher.getUserIds() + "'" +
+						",end_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getEndTime()) + "'" +
+						",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dispatcher.getUpdateTime()) + "'" +
+						",dept_id = " + "'" + dispatcher.getDeptId() + "'" +
+						",jurisdiction = " + "'" + dispatcher.getJurisdiction() + "'" +
+						" " + "where id = " + "'" + dispatcher.getId() + "'";
+				FtpUtil.sqlFileUpload(s1);
+			}
+		}
+		return R.status(status);
+	}
+
+
+
+	/**
+	 * 新增派遣(批量)
+	 */
+	@PostMapping("/saveDispatcher")
+	public R saveDispatcher(@RequestBody DispatcherVO dispatcher) {
+		List<String> list = Arrays.asList(dispatcher.getIds().split(","));
+		//修改状态
+		AtomicBoolean status = new AtomicBoolean(false);
+		if (list.size()>0) {
+			//遍历
+			list.forEach(id -> {
+				dispatcher.setCreateTime(new Date());
+				dispatcher.setStatus(0);
+				dispatcher.setUserIds(id);
+
+				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);
+
+			});
+		}
+		return R.status(status.get());
+	}
+
+
+	/**
+	 * 派遣记录修改
+	 */
+	@PostMapping("/updateDispatcher")
+	public R updateDispatcher(@RequestBody DispatcherVO dispatcher) {
+		boolean status = false;
+		dispatcher.setUpdateTime(new Date());
+		//查询当前派遣记录
+		Dispatcher dispatcher1 = dispatcherService.getById(dispatcher.getId());
+		if (!dispatcher1.getUserIds().equals(dispatcher.getUserIds())) {
+			//修改原保安人员的派遣状态
+			//查询原保安人员的派遣记录,是否存在多条未结束派遣的
+			Dispatcher dispatcher2 = new Dispatcher();
+			dispatcher2.setUserIds(dispatcher1.getUserIds());
+			dispatcher2.setStatus(0);
+			List<Dispatcher> dispatcherList = dispatcherService.list(Condition.getQueryWrapper(dispatcher2));
+			User user = new User();
+			user.setId(Long.parseLong(dispatcher1.getUserIds()));
+			if (dispatcherList.size() == 1) {
+				//用户状态改变
+				user.setDispatch("1");
+			} else {
+				user.setDispatch("0");
+			}
+			//修改原保安人员用户信息
+			userService.updateById(user);
+
+			//修改当前保安人员的派遣状态
+			User user1 = new User();
+			user1.setId(Long.parseLong(dispatcher.getUserIds()));
+			user1.setDispatch("0");
+			userService.updateById(user1);
+
+			//修改派遣记录信息
+			status = dispatcherService.updateById(dispatcher);
+
+			//内网同步
+			String s1 =
+				"update blade_user set dispatch = " + "'" + user.getDispatch() + "'" +
+					" " + "where id = " + "'" + user.getId() + "';" +
+					"update sys_dispatcher set dispatcherTime = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getDispatchertime()) + "'" +
+					",dispatcherAddress = " + "'" + dispatcher.getDispatcheraddress() + "'" +
+					",dispatcher_unit_id = " + "'" + dispatcher.getDispatcherUnitId() + "'" +
+					",user_ids = " + "'" + dispatcher.getUserIds() + "'" +
+					",end_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getEndTime()) + "'" +
+					",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dispatcher.getUpdateTime()) + "'" +
+					",dept_id = " + "'" + dispatcher.getDeptId() + "'" +
+					",jurisdiction = " + "'" + dispatcher.getJurisdiction() + "'" +
+					" " + "where id = " + "'" + dispatcher.getId() + "';" +
+					"update blade_user set dispatch = " + "'" + user1.getDispatch() + "'" +
+					" " + "where id = " + "'" + user1.getId() + "'";
+			FtpUtil.sqlFileUpload(s1);
+		}else {
+			//没有修改保安员,只修改了派遣时间等信息
+			//修改
+			status = dispatcherService.updateById(dispatcher);
+
+			//内网同步
+			String s1 =
+				"update sys_dispatcher set dispatcherTime = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getDispatchertime()) + "'" +
+					",dispatcherAddress = " + "'" + dispatcher.getDispatcheraddress() + "'" +
+					",dispatcher_unit_id = " + "'" + dispatcher.getDispatcherUnitId() + "'" +
+					",user_ids = " + "'" + dispatcher.getUserIds() + "'" +
+					",end_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getEndTime()) + "'" +
+					",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dispatcher.getUpdateTime()) + "'" +
+					",dept_id = " + "'" + dispatcher.getDeptId() + "'" +
+					",jurisdiction = " + "'" + dispatcher.getJurisdiction() + "'" +
+					" " + "where id = " + "'" + dispatcher.getId() + "'";
+			FtpUtil.sqlFileUpload(s1);
+		}
+		return R.status(status);
 	}
 
 
@@ -119,6 +395,13 @@
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "删除", notes = "传入ids")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		//内网删除
+		List<Long> list = Func.toLongList(ids);
+		list.forEach(id ->{
+			//内网同步
+			String s1 = "delete from sys_dispatcher where id = " + "'" + id + "'";
+			FtpUtil.sqlFileUpload(s1);
+		});
 		return R.status(dispatcherService.removeByIds(Func.toLongList(ids)));
 	}
 

--
Gitblit v1.9.3