From 6f201b8d3743e246a71f00a9ba98d10b128fae38 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 16 Jan 2024 08:59:52 +0800
Subject: [PATCH] 派遣记录导入

---
 src/main/java/org/springblade/modules/dispatcher/excel/DispatcherUnitExcel.java              |   52 +++-
 src/main/java/org/springblade/modules/jurisdiction/mapper/JurisdictionMapper.java            |    2 
 src/main/java/org/springblade/modules/system/mapper/UserMapper.xml                           |    2 
 src/main/java/org/springblade/modules/dispatcher/service/IDispatcherUnitService.java         |    4 
 src/main/java/org/springblade/modules/dispatcher/service/IDispatcherService.java             |    3 
 src/main/java/org/springblade/modules/jurisdiction/mapper/JurisdictionMapper.xml             |    3 
 src/main/java/org/springblade/modules/dispatcher/excel/DispatcherImporter.java               |   42 ++++
 src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherUnitMapper.xml             |   76 +++++++
 src/main/java/org/springblade/modules/dispatcher/service/impl/DispatcherServiceImpl.java     |   64 ++++++
 src/main/java/org/springblade/modules/jurisdiction/service/impl/JurisdictionServiceImpl.java |    5 
 src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java        |  110 +++++++---
 src/main/java/org/springblade/modules/dispatcher/entity/DispatcherUnit.java                  |    9 
 src/main/java/org/springblade/modules/dispatcher/excel/DispatcherExcel.java                  |   50 +++++
 src/main/java/org/springblade/modules/dispatcher/service/impl/DispatcherUnitServiceImpl.java |   49 ++--
 src/main/java/org/springblade/modules/jurisdiction/service/JurisdictionService.java          |    2 
 src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.java                |    8 
 src/main/java/org/springblade/modules/dispatcher/controller/DispatcherUnitController.java    |   59 +----
 src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherUnitMapper.java            |    4 
 src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.xml                 |    6 
 19 files changed, 438 insertions(+), 112 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 02c434d..5521f38 100644
--- a/src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java
+++ b/src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java
@@ -16,22 +16,35 @@
  */
 package org.springblade.modules.dispatcher.controller;
 
+import com.alibaba.excel.EasyExcel;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
+
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+
+import org.apache.commons.codec.Charsets;
 import org.apache.commons.lang3.StringUtils;
+import org.springblade.common.excel.RowWriteHandler;
+import org.springblade.core.excel.util.ExcelUtil;
 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.DateUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.dispatcher.entity.DispatcherUnit;
+import org.springblade.modules.dispatcher.excel.DispatcherExcel;
+import org.springblade.modules.dispatcher.excel.DispatcherImporter;
+import org.springblade.modules.dispatcher.excel.DispatcherUnitExcel;
+import org.springblade.modules.dispatcher.excel.DispatcherUnitImporter;
 import org.springblade.modules.dispatcher.service.IDispatcherUnitService;
 import org.springblade.modules.dispatcher.vo.DispatcherStatistics;
 import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.excel.UserCertificateExcel;
 import org.springblade.modules.system.service.IUserService;
 import org.springblade.modules.system.service.MyAsyncService;
 import org.springblade.modules.system.vo.UserVO;
@@ -41,7 +54,11 @@
 import org.springblade.modules.dispatcher.vo.DispatcherVO;
 import org.springblade.modules.dispatcher.service.IDispatcherService;
 import org.springblade.core.boot.ctrl.BladeController;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -235,44 +252,10 @@
 
 				//修改
 				status = dispatcherService.updateById(dispatcher);
-				if (status) {
-					//内网同步
-					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);
-					myAsyncService.dataSync(s1);
-				}
 			} else {
 				//没有修改保安员,只修改了派遣时间等信息
 				//修改
 				status = dispatcherService.updateById(dispatcher);
-				if (status) {
-					//内网同步
-					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);
-					myAsyncService.dataSync(s1);
-				}
 			}
 		}
 		return R.status(status);
@@ -653,5 +636,64 @@
 		return R.data(list);
 	}
 
+	/**
+	 * 导入派遣数据
+	 *
+	 * @param isCovered 1 覆盖  0不覆盖
+	 * @return
+	 */
+	@PostMapping("import-dispatcher")
+	public R importDispatcherUnit(MultipartFile file, Integer isCovered) {
+		DispatcherImporter dispatcherImporter = new DispatcherImporter(dispatcherService, false);
+		ExcelUtil.save(file, dispatcherImporter, DispatcherExcel.class);
+		return R.success("操作成功");
+	}
+
+	/**
+	 * 导出模板
+	 */
+	@GetMapping("export-template")
+	@ApiOperation(value = "导出模板")
+	public void exportUser(HttpServletResponse response) throws ParseException, IOException {
+		List<DispatcherExcel> list = new ArrayList<>();
+
+		DispatcherExcel dispatcher = new DispatcherExcel();
+		dispatcher.setDispatcherUnitId("****公司");
+		dispatcher.setDeptId("****保安服务公司");
+		dispatcher.setUserIds("张三");
+		dispatcher.setCardid("360XXX19XXXXXX****");
+		dispatcher.setDispatcherTime(new SimpleDateFormat("yyyy/MM/dd").parse("2024/10/10"));
+		dispatcher.setEndTime(new SimpleDateFormat("yyyy/MM/dd").parse("2025/10/10"));
+		dispatcher.setDispatcherAddress("*****");
+		list.add(dispatcher);
+
+		DispatcherExcel dispatcher2 = new DispatcherExcel();
+		dispatcher2.setDispatcherUnitId("****公司");
+		dispatcher2.setDeptId("****保安服务公司");
+		dispatcher2.setUserIds("张三");
+		dispatcher2.setCardid("360XXX19XXXXXX****");
+		dispatcher2.setDispatcherTime(new SimpleDateFormat("yyyy/MM/dd").parse("2024/10/10"));
+		dispatcher2.setEndTime(new SimpleDateFormat("yyyy/MM/dd").parse("2025/10/10"));
+		dispatcher2.setDispatcherAddress("*****");
+		list.add(dispatcher2);
+
+
+
+//		ExcelUtil.export(response, "派遣数据导入模板" + DateUtil.time(), "派遣单位数据表", list, DispatcherExcel.class);
+
+		String fileName = null;
+		try {
+			response.setContentType("application/vnd.ms-excel");
+			response.setCharacterEncoding(org.apache.commons.codec.Charsets.UTF_8.name());
+			fileName = URLEncoder.encode("派遣数据导入模板" + DateUtil.time(), Charsets.UTF_8.name());
+			response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+			//修改单元格格式为文本格式
+			EasyExcel.write(response.getOutputStream(), DispatcherExcel.class).sheet("派遣数据表").registerWriteHandler(new RowWriteHandler()).doWrite(list);
+		} catch (Throwable var6) {
+			throw var6;
+		}
+
+	}
+
 
 }
diff --git a/src/main/java/org/springblade/modules/dispatcher/controller/DispatcherUnitController.java b/src/main/java/org/springblade/modules/dispatcher/controller/DispatcherUnitController.java
index ef84069..1a23c6c 100644
--- a/src/main/java/org/springblade/modules/dispatcher/controller/DispatcherUnitController.java
+++ b/src/main/java/org/springblade/modules/dispatcher/controller/DispatcherUnitController.java
@@ -136,27 +136,6 @@
 			dispatcherUnit.setCreateTime(new Date());
 			//新增
 			status = dispatcherUnitService.save(dispatcherUnit);
-			if (status) {
-				//数据同步
-				String s1 =
-					"insert into sys_dispatcher_unit(id,name,dept_id,linkman,phone,jurisdiction,create_time,start_time,end_time," +
-						"serve_type,security_linkman,cell,num,district) " +
-						"values(" + "'" + dispatcherUnit.getId() + "'" + "," +
-						"'" + dispatcherUnit.getName() + "'" + "," +
-						"'" + dispatcherUnit.getDeptId() + "'" + "," +
-						"'" + dispatcherUnit.getLinkman() + "'" + "," +
-						"'" + dispatcherUnit.getPhone() + "'" + "," +
-						"'" + dispatcherUnit.getJurisdiction() + "'" + "," +
-						"'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dispatcherUnit.getCreateTime()) + "'" + "," +
-						"'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcherUnit.getStartTime()) + "'" + "," +
-						"'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcherUnit.getEndTime()) + "'" + "," +
-						"'" + dispatcherUnit.getServeType() + "'" + "," +
-						"'" + dispatcherUnit.getSecurityLinkman() + "'" + "," +
-						"'" + dispatcherUnit.getCell() + "'" + "," +
-						"'" + dispatcherUnit.getNum() + "'" + "," +
-						"'" + dispatcherUnit.getDistrict() + "'" + ")";
-				myAsyncService.dataSync(s1);
-			}
 		} else {
 			//修改
 			status = dispatcherUnitService.updateById(dispatcherUnit);
@@ -167,28 +146,6 @@
 			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 			String endTime = sdf.format(date);
 			dispatcherService.updateEndtime(endTime, ids);
-			if (status) {
-				//内网同步
-				String s1 =
-					"update sys_dispatcher_unit set name = " + "'" + dispatcherUnit.getName() + "'" +
-						",dept_id = " + "'" + dispatcherUnit.getDeptId() + "'" +
-						",linkman = " + "'" + dispatcherUnit.getLinkman() + "'" +
-						",phone = " + "'" + dispatcherUnit.getPhone() + "'" +
-						",jurisdiction = " + "'" + dispatcherUnit.getJurisdiction() + "'" +
-						",start_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcherUnit.getStartTime()) + "'" +
-						",end_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcherUnit.getEndTime()) + "'" +
-						",serve_type = " + "'" + dispatcherUnit.getServeType() + "'" +
-						",security_linkman = " + "'" + dispatcherUnit.getSecurityLinkman() + "'" +
-						",cell = " + "'" + dispatcherUnit.getCell() + "'" +
-						",num = " + "'" + dispatcherUnit.getNum() + "'" +
-						",district = " + "'" + dispatcherUnit.getDistrict() + "'" +
-						" " + "where id = " + "'" + dispatcherUnit.getId() + "'";
-				myAsyncService.dataSync(s1);
-				//内网同步派遣记录修改合同时间
-				String s2 =
-					"update sys_dispatcher set end_time = " + "'" + endTime + "'" + " " + "where dispatcher_unit_id = " + "'" + ids + "'";
-				myAsyncService.dataSync(s2);
-			}
 		}
 		return R.status(status);
 	}
@@ -234,6 +191,9 @@
 		DispatcherUnitExcel unitExcel = new DispatcherUnitExcel();
 		unitExcel.setDeptName("****保安服务公司");
 		unitExcel.setName("****公司");
+		unitExcel.setAddress("*********");
+		unitExcel.setLongitude("112.85857823133");
+		unitExcel.setLatitude("35.496284586473");
 		unitExcel.setLinkman("张三");
 		unitExcel.setPhone("13112341234");
 		unitExcel.setStartTime(new SimpleDateFormat("yyyy/MM/dd").parse("2020/5/1"));
@@ -247,6 +207,9 @@
 		DispatcherUnitExcel unitExcel1 = new DispatcherUnitExcel();
 		unitExcel1.setDeptName("****保安服务公司");
 		unitExcel1.setName("****公司");
+		unitExcel1.setAddress("*********");
+		unitExcel1.setLongitude("112.85857823133");
+		unitExcel1.setLatitude("35.496284586473");
 		unitExcel1.setLinkman("李四");
 		unitExcel1.setPhone("13112341234");
 		unitExcel1.setStartTime(new SimpleDateFormat("yyyy/MM/dd").parse("2020/10/10"));
@@ -260,5 +223,15 @@
 		ExcelUtil.export(response, "派遣单位数据导入模板" + DateUtil.time(), "派遣单位数据表", list, DispatcherUnitExcel.class);
 	}
 
+	/**
+	 * 获取所有派遣单位
+	 * @param dispatcherUnit
+	 * @return
+	 */
+	@GetMapping("getAll")
+	public R getAll(DispatcherUnit dispatcherUnit){
+		List<DispatcherUnitVO> list = dispatcherUnitService.getAll(dispatcherUnit);
+		return R.data(list);
+	}
 
 }
diff --git a/src/main/java/org/springblade/modules/dispatcher/entity/DispatcherUnit.java b/src/main/java/org/springblade/modules/dispatcher/entity/DispatcherUnit.java
index 2b62422..3177f41 100644
--- a/src/main/java/org/springblade/modules/dispatcher/entity/DispatcherUnit.java
+++ b/src/main/java/org/springblade/modules/dispatcher/entity/DispatcherUnit.java
@@ -62,7 +62,7 @@
 	/**
 	 * 区 (暂时用作派遣单位类型使用,学校,医院等)
 	 */
-	private Integer district;
+	private String district;
 
 	/**
 	 * 详细地址
@@ -122,5 +122,12 @@
 	 */
 	private Integer num;
 
+	//经度
+	private String longitude;
 
+	//纬度
+	private String latitude;
+
+	//行业
+	private String profession;
 }
diff --git a/src/main/java/org/springblade/modules/dispatcher/excel/DispatcherExcel.java b/src/main/java/org/springblade/modules/dispatcher/excel/DispatcherExcel.java
new file mode 100644
index 0000000..6197d8d
--- /dev/null
+++ b/src/main/java/org/springblade/modules/dispatcher/excel/DispatcherExcel.java
@@ -0,0 +1,50 @@
+package org.springblade.modules.dispatcher.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.format.DateTimeFormat;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class DispatcherExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	//派遣单位名称
+	@ExcelProperty("派遣单位名称*")
+	private String dispatcherUnitId;
+
+	//派遣单位名称
+	@ExcelProperty("企业名称*")
+	private String deptId;
+
+	//派遣单位名称
+	@ExcelProperty("保安员*")
+	private String userIds;
+
+	//派遣单位名称
+	@ExcelProperty("身份证号*")
+	private String cardid;
+
+	//派遣单位名称
+	@ExcelProperty("开始时间*")
+	@DateTimeFormat("yyyy/MM/dd")
+	private Date dispatcherTime;
+
+	//派遣单位名称
+	@ExcelProperty("结束时间*")
+	@DateTimeFormat("yyyy/MM/dd")
+	private Date endTime;
+
+	//派遣单位名称
+	@ExcelProperty("派遣地址*")
+	private String dispatcherAddress;
+
+}
diff --git a/src/main/java/org/springblade/modules/dispatcher/excel/DispatcherImporter.java b/src/main/java/org/springblade/modules/dispatcher/excel/DispatcherImporter.java
new file mode 100644
index 0000000..7e0a239
--- /dev/null
+++ b/src/main/java/org/springblade/modules/dispatcher/excel/DispatcherImporter.java
@@ -0,0 +1,42 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.dispatcher.excel;
+
+import lombok.RequiredArgsConstructor;
+import org.springblade.core.excel.support.ExcelImporter;
+import org.springblade.modules.dispatcher.service.IDispatcherService;
+import org.springblade.modules.dispatcher.service.IDispatcherUnitService;
+
+import java.util.List;
+
+/**
+ * 派遣单位导入类
+ *
+ * @author zhongrj
+ * @since 2021-08-23
+ */
+@RequiredArgsConstructor
+public class DispatcherImporter implements ExcelImporter<DispatcherExcel> {
+
+	private final IDispatcherService service;
+	private final Boolean isCovered;
+
+	@Override
+	public void save(List<DispatcherExcel> data) {
+		service.importDispatcherUnit(data, isCovered);
+	}
+}
diff --git a/src/main/java/org/springblade/modules/dispatcher/excel/DispatcherUnitExcel.java b/src/main/java/org/springblade/modules/dispatcher/excel/DispatcherUnitExcel.java
index 9798b8a..5f22979 100644
--- a/src/main/java/org/springblade/modules/dispatcher/excel/DispatcherUnitExcel.java
+++ b/src/main/java/org/springblade/modules/dispatcher/excel/DispatcherUnitExcel.java
@@ -22,6 +22,9 @@
 import com.alibaba.excel.annotation.write.style.ContentRowHeight;
 import com.alibaba.excel.annotation.write.style.HeadRowHeight;
 import lombok.Data;
+import org.springblade.common.excel.ExcelDictConverter;
+import org.springblade.common.excel.ExcelDictItem;
+import org.springblade.common.excel.ExcelDictItemLabel;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -38,50 +41,73 @@
 	private static final long serialVersionUID = 1L;
 
 
-	@ColumnWidth(25)
+//	@ColumnWidth(25)
 	@ExcelProperty("企业名称*")
 	private String deptName;
 
 
-	@ColumnWidth(25)
-	@ExcelProperty("服务对象名称*")
+//	@ColumnWidth(25)
+	@ExcelProperty("派遣单位名称*")
 	private String name;
 
+	@ExcelProperty("派遣单位地址*")
+	private String address;
 
-	@ColumnWidth(20)
-	@ExcelProperty("服务对象联系人*")
+
+
+	@ExcelProperty("经度")
+	private String longitude;
+
+	@ExcelProperty("纬度")
+	private String latitude;
+
+	@ExcelProperty("派遣单位所属辖区")
+	private String jurisdiction;
+
+	@ExcelProperty(value = "派遣单位类型*",converter = ExcelDictConverter.class)
+	@ExcelDictItemLabel(type = "dispatcherUnitType")
+	@ExcelDictItem(type = "dispatcherUnitType")
+	private String district;
+
+	@ExcelProperty(value = "派遣单位行业*",converter = ExcelDictConverter.class)
+	@ExcelDictItemLabel(type = "dispatchProfession")
+	@ExcelDictItem(type = "dispatchProfession")
+	private String profession;
+
+//	@ColumnWidth(20)
+	@ExcelProperty("派遣单位联系人*")
 	private String linkman;
 
 
-	@ColumnWidth(20)
-	@ExcelProperty("服务对象联系电话*")
+//	@ColumnWidth(20)
+	@ExcelProperty("派遣单位联系电话*")
 	private String phone;
 
 
-	@ColumnWidth(20)
+//	@ColumnWidth(20)
 	@ExcelProperty("合同开始时间*")
 	@DateTimeFormat("yyyy/MM/dd")
 	private Date startTime;
 
 
-	@ColumnWidth(20)
+//	@ColumnWidth(20)
 	@ExcelProperty("合同结束时间*")
 	@DateTimeFormat("yyyy/MM/dd")
 	private Date endTime;
 
-	@ColumnWidth(20)
+//	@ColumnWidth(20)
 	@ExcelProperty("保安服务类型")
 	private String serveType;
 
-	@ColumnWidth(20)
+//	@ColumnWidth(20)
 	@ExcelProperty("负责人*")
 	private String securityLinkman;
 
-	@ColumnWidth(20)
+//	@ColumnWidth(20)
 	@ExcelProperty("负责人联系电话*")
 	private String cell;
 
-	@ColumnWidth(20)
+//	@ColumnWidth(20)
 	@ExcelProperty("派遣保安员数*")
 	private Integer num;
 
diff --git a/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.java b/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.java
index 00d11c5..37d291c 100644
--- a/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.java
+++ b/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.java
@@ -19,6 +19,7 @@
 import com.baomidou.mybatisplus.annotation.SqlParser;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.modules.dispatcher.entity.Dispatcher;
+import org.springblade.modules.dispatcher.entity.DispatcherUnit;
 import org.springblade.modules.dispatcher.vo.DispatcherStatistics;
 import org.springblade.modules.dispatcher.vo.DispatcherUnitVO;
 import org.springblade.modules.dispatcher.vo.DispatcherVO;
@@ -68,4 +69,11 @@
     void updateEndtime(String endTime,String disId);
 
     List<DispatcherStatistics> getDispatcherStatisticsList(@Param("statistics") DispatcherStatistics dispatcherStatistics);
+
+	/**
+	 * 派遣单位名称
+	 * @param dispatchUnitName
+	 * @return
+	 */
+    DispatcherUnit selectDispatcherUnitExist(@Param("dispatchUnitName") String dispatchUnitName);
 }
diff --git a/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.xml b/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.xml
index 8cd886f..f61546f 100644
--- a/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.xml
+++ b/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.xml
@@ -179,5 +179,11 @@
         sdu.name
 
     </select>
+    <select id="selectDispatcherUnitExist"
+            resultType="org.springblade.modules.dispatcher.entity.DispatcherUnit">
+
+    SELECT * FROM sys_dispatcher_unit WHERE  name = #{dispatchUnitName} limit 1
+
+    </select>
 
 </mapper>
diff --git a/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherUnitMapper.java b/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherUnitMapper.java
index 350b9aa..732f584 100644
--- a/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherUnitMapper.java
+++ b/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherUnitMapper.java
@@ -44,6 +44,9 @@
 	 */
 	List<DispatcherUnitVO> selectDispatcherUnitPage(IPage page, @Param("dispatcherUnit") DispatcherUnitVO dispatcherUnit);
 
+
+	List<DispatcherUnitVO> getAll( @Param("dispatcherUnit")DispatcherUnit dispatcherUnit);
+
 	/**
 	 * 派遣公司信息详情
 	 * @param dispatcherUnit 派遣信息对象
@@ -57,4 +60,5 @@
 	 * @return
 	 */
     List<DispatcherUnitVO> selectDispatcherUnitPageTree(@Param("dispatcherUnit")DispatcherUnitVO dispatcher);
+
 }
diff --git a/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherUnitMapper.xml b/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherUnitMapper.xml
index d39ef92..dc7a03e 100644
--- a/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherUnitMapper.xml
+++ b/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherUnitMapper.xml
@@ -78,6 +78,82 @@
         </if>
     </select>
 
+    <select id="getAll" resultType="org.springblade.modules.dispatcher.vo.DispatcherUnitVO">
+        select
+        sdu.*,bt.dept_name deptName,sj.dept_name jurisdictionName
+        from
+        sys_dispatcher_unit sdu
+        LEFT JOIN
+        blade_dept bt
+        ON
+        sdu.dept_id = bt.id
+        left join
+        sys_jurisdiction sj
+        on
+        sj.id = sdu.jurisdiction
+        WHERE
+        1=1
+        <if test="dispatcherUnit.deptName!=null and  dispatcherUnit.deptName!=''">
+            and bt.dept_name like concat('%', #{dispatcherUnit.deptName},'%')
+        </if>
+        <if test="dispatcherUnit.name!=null and  dispatcherUnit.name!=''">
+            and sdu.name like concat('%', #{dispatcherUnit.name},'%')
+        </if>
+        <if test="dispatcherUnit.linkman!=null and  dispatcherUnit.linkman!=''">
+            and sdu.linkman like concat('%', #{dispatcherUnit.linkman},'%')
+        </if>
+        <if test="dispatcherUnit.phone!=null and  dispatcherUnit.phone!=''">
+            and sdu.phone like concat('%', #{dispatcherUnit.phone},'%')
+        </if>
+        <if test="dispatcherUnit.province!=null">
+            and sdu.province = #{dispatcherUnit.province}
+        </if>
+        <if test="dispatcherUnit.city!=null">
+            and sdu.city = #{dispatcherUnit.city}
+        </if>
+        <if test="dispatcherUnit.jurisdiction!=null and dispatcherUnit.jurisdiction!='' and dispatcherUnit.jurisdiction!='1372091709474910209'">
+            and (sj.id = #{dispatcherUnit.jurisdiction} or sj.parent_id = #{dispatcherUnit.jurisdiction})
+        </if>
+        <if test="dispatcherUnit.deptId!=null and dispatcherUnit.deptId!=''">
+            and sdu.dept_id in
+            (
+            select id from blade_dept where id = #{dispatcherUnit.deptId}
+            union
+            SELECT
+            id
+            FROM
+            (
+            SELECT
+            t1.id,t1.parent_id,t1.dept_name,
+            IF
+            ( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild
+            FROM
+            ( SELECT id, parent_id,dept_name FROM blade_dept t ORDER BY parent_id, id ) t1,
+            ( SELECT @pids := #{dispatcherUnit.deptId} ) t2
+            ) t3
+            WHERE
+            ischild != 0
+            )
+        </if>
+        <if test="dispatcherUnit.district!=null">
+            and sdu.district = #{dispatcherUnit.district}
+        </if>
+        <if test="dispatcherUnit.beginTime!=null or dispatcherUnit.overTime!=null">
+            <if test="dispatcherUnit.beginTime!='' or dispatcherUnit.overTime!=''">
+                and sdu.end_time &lt;= #{dispatcherUnit.overTime} and sdu.end_time &gt;= #{dispatcherUnit.beginTime}
+                or ( sdu.start_time &lt;= #{dispatcherUnit.overTime} and sdu.start_time &gt;= #{dispatcherUnit.beginTime})
+            </if>
+        </if>
+        <if test="dispatcherUnit.isExpire==1">
+            and sdu.start_time &lt;= now()
+            and sdu.end_time &gt; now()
+        </if>
+        <if test="dispatcherUnit.isExpire==2">
+            and sdu.end_time &lt;= now()
+        </if>
+    </select>
+
+
     <!--自定义树-->
     <select id="selectDispatcherUnitPageTree" resultType="org.springblade.modules.dispatcher.vo.DispatcherUnitVO">
         select
diff --git a/src/main/java/org/springblade/modules/dispatcher/service/IDispatcherService.java b/src/main/java/org/springblade/modules/dispatcher/service/IDispatcherService.java
index 7a7f5c1..1ceaa5f 100644
--- a/src/main/java/org/springblade/modules/dispatcher/service/IDispatcherService.java
+++ b/src/main/java/org/springblade/modules/dispatcher/service/IDispatcherService.java
@@ -17,6 +17,7 @@
 package org.springblade.modules.dispatcher.service;
 
 import org.springblade.modules.dispatcher.entity.Dispatcher;
+import org.springblade.modules.dispatcher.excel.DispatcherExcel;
 import org.springblade.modules.dispatcher.vo.DispatcherStatistics;
 import org.springblade.modules.dispatcher.vo.DispatcherUnitVO;
 import org.springblade.modules.dispatcher.vo.DispatcherVO;
@@ -65,4 +66,6 @@
 	void updateEndtime(String endTime,String disId);
 
     List<DispatcherStatistics> getDispatcherStatisticsList(DispatcherStatistics dispatcherStatistics);
+
+	void importDispatcherUnit(List<DispatcherExcel> data, Boolean isCovered);
 }
diff --git a/src/main/java/org/springblade/modules/dispatcher/service/IDispatcherUnitService.java b/src/main/java/org/springblade/modules/dispatcher/service/IDispatcherUnitService.java
index 71e86cd..080bfcc 100644
--- a/src/main/java/org/springblade/modules/dispatcher/service/IDispatcherUnitService.java
+++ b/src/main/java/org/springblade/modules/dispatcher/service/IDispatcherUnitService.java
@@ -43,6 +43,9 @@
 	 */
 	IPage<DispatcherUnitVO> selectDispatcherUnitPage(IPage<DispatcherUnitVO> page, DispatcherUnitVO dispatcher);
 
+
+	List<DispatcherUnitVO> getAll(DispatcherUnit dispatcherUnit);
+
 	/**
 	 * 派遣公司信息详情
 	 * @param dispatcherUnit 派遣信息对象
@@ -63,4 +66,5 @@
 	 * @param isCovered
 	 */
 	void importDispatcherUnit(List<DispatcherUnitExcel> data, Boolean isCovered);
+
 }
diff --git a/src/main/java/org/springblade/modules/dispatcher/service/impl/DispatcherServiceImpl.java b/src/main/java/org/springblade/modules/dispatcher/service/impl/DispatcherServiceImpl.java
index 1d27bef..e3c7cd2 100644
--- a/src/main/java/org/springblade/modules/dispatcher/service/impl/DispatcherServiceImpl.java
+++ b/src/main/java/org/springblade/modules/dispatcher/service/impl/DispatcherServiceImpl.java
@@ -18,6 +18,8 @@
 
 import lombok.AllArgsConstructor;
 import org.springblade.modules.dispatcher.entity.Dispatcher;
+import org.springblade.modules.dispatcher.entity.DispatcherUnit;
+import org.springblade.modules.dispatcher.excel.DispatcherExcel;
 import org.springblade.modules.dispatcher.vo.DispatcherStatistics;
 import org.springblade.modules.dispatcher.vo.DispatcherUnitVO;
 import org.springblade.modules.dispatcher.vo.DispatcherVO;
@@ -25,10 +27,13 @@
 import org.springblade.modules.dispatcher.service.IDispatcherService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.service.IUserDeptService;
 import org.springblade.modules.system.service.IUserService;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -42,6 +47,7 @@
 public class DispatcherServiceImpl extends ServiceImpl<DispatcherMapper, Dispatcher> implements IDispatcherService {
 
 	private final IUserService userService;
+	private final IUserDeptService userDeptService;
 
 	@Override
 	public IPage<DispatcherVO> selectDispatcherPage(IPage<DispatcherVO> page, DispatcherVO dispatcher) {
@@ -108,4 +114,62 @@
 	public List<DispatcherStatistics> getDispatcherStatisticsList(DispatcherStatistics dispatcherStatistics) {
 		return baseMapper.getDispatcherStatisticsList(dispatcherStatistics);
 	}
+
+	@Override
+	@Transactional
+	public void importDispatcherUnit(List<DispatcherExcel> data, Boolean isCovered) {
+		//派遣数据导入
+		data.forEach(dispatcherExcel -> {
+			Dispatcher dispatcher = new Dispatcher();
+
+			//派遣单位
+			if (dispatcherExcel.getDispatcherUnitId() != null && dispatcherExcel.getDispatcherUnitId() != ""){
+
+				//在派遣表中查是否有这个派遣单位
+				DispatcherUnit dispatcherUnit =  baseMapper.selectDispatcherUnitExist(dispatcherExcel.getDispatcherUnitId());
+				if (dispatcherUnit != null){
+					dispatcher.setDispatcherUnitId(dispatcherUnit.getId().toString());
+				}else{
+					return;
+				}
+			}
+
+			//企业名称
+			if (dispatcherExcel.getDeptId() != null && dispatcherExcel.getDeptId() != "") {
+				String deptId = userDeptService.selectIn(dispatcherExcel.getDeptId());
+				dispatcher.setDeptId(Long.parseLong(deptId));
+			}
+
+			//保安员(根据身份证号获取userId,存入表中)
+			if (dispatcherExcel.getCardid() != null && dispatcherExcel.getCardid() != "" && dispatcherExcel.getUserIds() != null && dispatcherExcel.getUserIds() != ""){
+
+				User userInfoByIdCardNo = userService.getUserInfoByIdCardNo(dispatcherExcel.getCardid());
+				if (userInfoByIdCardNo!=null){
+
+					//0派遣,1未派遣
+					if (userInfoByIdCardNo.getDispatch().equals("1")){
+						dispatcher.setUserIds(userInfoByIdCardNo.getId().toString());
+					}else{
+						return;
+					}
+				}else{
+					return;
+				}
+			}
+
+			dispatcher.setDispatchertime(dispatcherExcel.getDispatcherTime());
+			dispatcher.setEndTime(dispatcherExcel.getEndTime());
+			dispatcher.setDispatcheraddress(dispatcherExcel.getDispatcherAddress());
+
+			dispatcher.setCreateTime(new Date());
+			dispatcher.setStatus(0);
+			save(dispatcher);
+
+			//更新用户表
+			User user = new User();
+			user.setId(Long.parseLong(dispatcher.getUserIds()));
+			user.setDispatch("0");
+			userService.updateById(user);
+		});
+	}
 }
diff --git a/src/main/java/org/springblade/modules/dispatcher/service/impl/DispatcherUnitServiceImpl.java b/src/main/java/org/springblade/modules/dispatcher/service/impl/DispatcherUnitServiceImpl.java
index a858a58..a52e4e0 100644
--- a/src/main/java/org/springblade/modules/dispatcher/service/impl/DispatcherUnitServiceImpl.java
+++ b/src/main/java/org/springblade/modules/dispatcher/service/impl/DispatcherUnitServiceImpl.java
@@ -29,6 +29,7 @@
 import org.springblade.modules.dispatcher.service.IDispatcherUnitService;
 import org.springblade.modules.dispatcher.vo.DispatcherUnitVO;
 import org.springblade.modules.dispatcher.vo.DispatcherVO;
+import org.springblade.modules.jurisdiction.service.JurisdictionService;
 import org.springblade.modules.system.service.IUserDeptService;
 import org.springblade.modules.system.service.MyAsyncService;
 import org.springframework.stereotype.Service;
@@ -54,7 +55,7 @@
 	private final IDispatcherService dispatcherService;
 
 	private final IUserDeptService userDeptService;
-	private final MyAsyncService myAsyncService;
+	private final JurisdictionService jurisdictionService;
 
 	@Override
 	public IPage<DispatcherUnitVO> selectDispatcherUnitPage(IPage<DispatcherUnitVO> page, DispatcherUnitVO dispatcherUnitVO) {
@@ -64,6 +65,16 @@
 			dispatcherUnitVO1.setSnum(dispatcherService.getDispatcherCount(dispatcherUnitVO1));
 		});
 		return page.setRecords(dispatcherUnitVOS);
+	}
+
+	@Override
+	public List<DispatcherUnitVO> getAll(DispatcherUnit dispatcherUnit) {
+		List<DispatcherUnitVO> dispatcherUnitVOS = baseMapper.getAll(dispatcherUnit);
+		dispatcherUnitVOS.forEach(dispatcherUnitVO1 -> {
+			//查询派遣记录条数
+			dispatcherUnitVO1.setSnum(dispatcherService.getDispatcherCount(dispatcherUnitVO1));
+		});
+		return dispatcherUnitVOS;
 	}
 
 	/**
@@ -106,6 +117,11 @@
 				dispatcherUnit.setDeptId(Long.parseLong(deptId));
 			}
 
+			if (dispatcherUnitExcel.getJurisdiction() != null && dispatcherUnitExcel.getJurisdiction() != ""){
+				String jurisdiction = jurisdictionService.selectIn(dispatcherUnitExcel.getJurisdiction());
+				dispatcherUnit.setJurisdiction(jurisdiction);
+			}
+
 			if (dispatcherUnitExcel.getName() != null && dispatcherUnitExcel.getName() != "") {
 				//仅中文
 //				String chinese = "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$";
@@ -137,6 +153,18 @@
 			if (dispatcherUnitExcel.getNum() != null) {
 				dispatcherUnit.setNum(dispatcherUnitExcel.getNum());
 			}
+
+			if (dispatcherUnitExcel.getProfession() != null && dispatcherUnitExcel.getProfession() != ""){
+				dispatcherUnit.setProfession(dispatcherUnitExcel.getProfession());
+			}
+
+			if (dispatcherUnitExcel.getDistrict() != null && dispatcherUnitExcel.getDistrict() != ""){
+				dispatcherUnit.setDistrict(dispatcherUnitExcel.getDistrict());
+			}
+
+			dispatcherUnit.setLongitude(dispatcherUnitExcel.getLongitude());
+			dispatcherUnit.setLatitude(dispatcherUnitExcel.getLatitude());
+			dispatcherUnit.setAddress(dispatcherUnitExcel.getAddress());
 
 			dispatcherUnit.setStartTime(dispatcherUnitExcel.getStartTime());
 			dispatcherUnit.setEndTime(dispatcherUnitExcel.getEndTime());
@@ -171,25 +199,6 @@
 
 			//新增
 			this.save(dispatcherUnit);
-
-			//数据同步
-			String s1 =
-				"insert into sys_dispatcher_unit(id,name,dept_id,linkman,phone,create_time,start_time,end_time," +
-					"serve_type,security_linkman,cell,num,district) " +
-					"values(" + "'" + dispatcherUnit.getId() + "'" + "," +
-					"'" + dispatcherUnit.getName() + "'" + "," +
-					"'" + dispatcherUnit.getDeptId() + "'" + "," +
-					"'" + dispatcherUnit.getLinkman() + "'" + "," +
-					"'" + dispatcherUnit.getPhone() + "'" + "," +
-					"'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dispatcherUnit.getCreateTime()) + "'" + "," +
-					"'" + new SimpleDateFormat("yyyy/MM/dd").format(dispatcherUnit.getStartTime()) + "'" + "," +
-					"'" + new SimpleDateFormat("yyyy/MM/dd").format(dispatcherUnit.getEndTime()) + "'" + "," +
-					"'" + dispatcherUnit.getServeType() + "'" + "," +
-					"'" + dispatcherUnit.getSecurityLinkman() + "'" + "," +
-					"'" + dispatcherUnit.getCell() + "'" + "," +
-					"'" + dispatcherUnit.getNum() + "'" + "," +
-					"'" + dispatcherUnit.getDistrict() + "'" + ")";
-			myAsyncService.dataSync(s1);
 		});
 	}
 }
diff --git a/src/main/java/org/springblade/modules/jurisdiction/mapper/JurisdictionMapper.java b/src/main/java/org/springblade/modules/jurisdiction/mapper/JurisdictionMapper.java
index fd26e7a..a302a72 100644
--- a/src/main/java/org/springblade/modules/jurisdiction/mapper/JurisdictionMapper.java
+++ b/src/main/java/org/springblade/modules/jurisdiction/mapper/JurisdictionMapper.java
@@ -84,4 +84,6 @@
 	@MapKey(value = "id")
 	@SqlParser(filter=true)
 	Map<Long, TreeNode> jurisdictionLazyTree();
+
+    String selectIn(String jurisdiction);
 }
diff --git a/src/main/java/org/springblade/modules/jurisdiction/mapper/JurisdictionMapper.xml b/src/main/java/org/springblade/modules/jurisdiction/mapper/JurisdictionMapper.xml
index b7eb9d0..3606524 100644
--- a/src/main/java/org/springblade/modules/jurisdiction/mapper/JurisdictionMapper.xml
+++ b/src/main/java/org/springblade/modules/jurisdiction/mapper/JurisdictionMapper.xml
@@ -136,4 +136,7 @@
     <select id="selJur" resultType="java.lang.String">
         SELECT id FROM sys_jurisdiction WHERE dept_name=#{deptname}
     </select>
+    <select id="selectIn" resultType="java.lang.String">
+        SELECT id FROM sys_jurisdiction WHERE dept_name=#{deptname} and is_deleted =0
+    </select>
 </mapper>
diff --git a/src/main/java/org/springblade/modules/jurisdiction/service/JurisdictionService.java b/src/main/java/org/springblade/modules/jurisdiction/service/JurisdictionService.java
index 7d90e03..554d0bf 100644
--- a/src/main/java/org/springblade/modules/jurisdiction/service/JurisdictionService.java
+++ b/src/main/java/org/springblade/modules/jurisdiction/service/JurisdictionService.java
@@ -87,4 +87,6 @@
 	 * @return
 	 */
 	List<TreeNode> jurisdictionLazyTree();
+
+    String selectIn(String jurisdiction);
 }
diff --git a/src/main/java/org/springblade/modules/jurisdiction/service/impl/JurisdictionServiceImpl.java b/src/main/java/org/springblade/modules/jurisdiction/service/impl/JurisdictionServiceImpl.java
index 5f721a2..2b3fa58 100644
--- a/src/main/java/org/springblade/modules/jurisdiction/service/impl/JurisdictionServiceImpl.java
+++ b/src/main/java/org/springblade/modules/jurisdiction/service/impl/JurisdictionServiceImpl.java
@@ -131,4 +131,9 @@
 		});
 		return tree;
 	}
+
+	@Override
+	public String selectIn(String jurisdiction) {
+		return baseMapper.selectIn(jurisdiction);
+	}
 }
diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
index 3297ad7..9fc16c7 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -438,7 +438,7 @@
 
     <!--通过 身份证号查询用户信息-->
     <select id="getUserInfoByIdCardNo" resultType="org.springblade.modules.system.entity.User">
-        SELECT id, name, real_name RealName,securitynumber,dept_id
+        SELECT id, name, real_name RealName,securitynumber,dept_id,dispatch
         FROM blade_user
         where 1=1
         and is_deleted = 0

--
Gitblit v1.9.3