Browse Source

通济学校-修改

lazhaoqian 4 years ago
parent
commit
cada3fd0a1
22 changed files with 2115 additions and 24 deletions
  1. 454 10
      blade-service/blade-school/src/main/java/org/springblade/school/controller/SalaryItemController.java
  2. 36 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/AttendanceExcel.java
  3. 36 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/AwardExcel.java
  4. 110 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/EmployExcel.java
  5. 37 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/LearningPower.java
  6. 36 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/OvertimeExcel.java
  7. 36 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/PayTaxes.java
  8. 46 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/PerformanceExcel.java
  9. 41 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/PersonalInsurance.java
  10. 41 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/PhoneFineExcel.java
  11. 52 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/PositionExcel.java
  12. 51 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/PostAllowance.java
  13. 36 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/PostTrainExcel.java
  14. 42 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/ReservedFunds.java
  15. 5 2
      blade-service/blade-school/src/main/java/org/springblade/school/excel/SalaryItemExcel.java
  16. 36 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/SanitationFee.java
  17. 36 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/TeacherSubsidy.java
  18. 36 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/VacationExcel.java
  19. 36 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/WeChatExcel.java
  20. 158 2
      blade-service/blade-school/src/main/java/org/springblade/school/service/ISalaryItemService.java
  21. 752 8
      blade-service/blade-school/src/main/java/org/springblade/school/service/impl/SalaryItemServiceImpl.java
  22. 2 2
      blade-service/blade-school/src/main/java/org/springblade/school/service/impl/SalaryServiceImpl.java

+ 454 - 10
blade-service/blade-school/src/main/java/org/springblade/school/controller/SalaryItemController.java

@@ -31,10 +31,11 @@ import javax.validation.Valid;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.school.entity.Salary;
-import org.springblade.school.excel.SalaryItemExcel;
+import org.springblade.school.excel.*;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.school.entity.SalaryItem;
@@ -78,6 +79,7 @@ public class SalaryItemController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入salaryItem")
 	public R<IPage<SalaryItem>> list(SalaryItem salaryItem, Query query) {
+		salaryItem.setTenantId(SecureUtil.getTenantId());
 		IPage<SalaryItem> pages = salaryItemService.page(Condition.getPage(query), Condition.getQueryWrapper(salaryItem));
 		return R.data(pages);
 	}
@@ -89,6 +91,7 @@ public class SalaryItemController extends BladeController {
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入salaryItem")
 	public R<IPage<SalaryItemVO>> page(SalaryItemVO salaryItem, Query query) {
+		salaryItem.setTenantId(SecureUtil.getTenantId());
 		IPage<SalaryItemVO> pages = salaryItemService.selectSalaryItemPage(Condition.getPage(query), salaryItem);
 		return R.data(pages);
 	}
@@ -134,22 +137,22 @@ public class SalaryItemController extends BladeController {
 		return R.status(salaryItemService.removeByIds(Func.toLongList(ids)));
 	}
 	/**
-	 * 导入模板
+	 * 导入模板-工资管理-小学部-工资表导入模板
 	 */
 	@GetMapping("/export/template")
 	@ApiOperationSupport(order = 9)
-	@ApiOperation(value = "导入模板-教职工工资明细")
+	@ApiOperation(value = "导入模板-工资管理-小学部-工资表导入模板")
 	public void exportPrice(HttpServletResponse response) {
 		List<SalaryItemExcel> list = new ArrayList<SalaryItemExcel>();
-		ExcelUtil.export(response, "导入模板-教职工工资明细", "导入数据表", list, SalaryItemExcel.class);
+		ExcelUtil.export(response, "工资表", "工资表", list, SalaryItemExcel.class);
 	}
 	/**
-	 * 导入教职工信息
+	 * 导入-工资管理-小学部-工资表导入
 	 *
 	 * */
 	@PostMapping("/import")
 	@ApiOperationSupport(order = 12)
-	@ApiOperation(value = "导入教职工信息", notes = "传入excel")
+	@ApiOperation(value = "导入-工资管理-小学部-工资表导入", notes = "传入excel")
 	public R importSupplierDesc(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
 	{
 		List<SalaryItemExcel> excelList = ExcelUtil.read(file, SalaryItemExcel.class);
@@ -160,20 +163,461 @@ public class SalaryItemController extends BladeController {
 		return salaryItemService.importSupplierDesc(excelList,false,id);
 	}
 	/**
-	 * 导出教职工信息
+	 * 导出-工资管理-小学部-工资表导出
 	 *
 	 * */
 	@GetMapping("/export/teacher")
 	@ApiOperationSupport(order = 9)
-	@ApiOperation(value = "导出信息-教职工工资明细")
+	@ApiOperation(value = "导出-工资管理-小学部-工资表导出")
 	public void exportSupplierTemplate(SalaryItem salaryItem,HttpServletResponse response) {
 		List<SalaryItemExcel> list = new ArrayList<>();
 		List<SalaryItem> schoolTeacherList = salaryItemService.list(new QueryWrapper<SalaryItem>().setEntity(salaryItem));
 		if (CollectionUtils.isNotEmpty(schoolTeacherList)){
 			list = JSON.parseArray(JSON.toJSONString(schoolTeacherList), SalaryItemExcel.class);
 		}
-		ExcelUtil.export(response, "导出信息-教职工工资明细", "导入数据表", list, SalaryItemExcel.class);
+		ExcelUtil.export(response, "工资表", "工资表", list, SalaryItemExcel.class);
+	}
+	/**
+	 * 导入聘用模板
+	 */
+	@GetMapping("/export/employ")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-聘用模板")
+	public void exportEmploy(HttpServletResponse response) {
+		List<EmployExcel> list = new ArrayList<EmployExcel>();
+		ExcelUtil.export(response, "聘用", "聘用", list, EmployExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-聘用导入
+	 *
+	 * */
+	@PostMapping("/import/employ")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-聘用导入", notes = "传入excel")
+	public R importEmploy(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<EmployExcel> excelList = ExcelUtil.read(file, EmployExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importEmploy(excelList,false,id);
+	}
+	/**
+	 * 导入职级模板
+	 */
+	@GetMapping("/export/position")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-职级模板")
+	public void exportPosition(HttpServletResponse response) {
+		List<PositionExcel> list = new ArrayList<PositionExcel>();
+		ExcelUtil.export(response, "职级", "职级", list, PositionExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-职级导入
+	 *
+	 * */
+	@PostMapping("/import/position")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-职级导入", notes = "传入excel")
+	public R importPosition(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<PositionExcel> excelList = ExcelUtil.read(file, PositionExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importPosition(excelList,false,id);
+	}
+	/**
+	 * 导入学习强国扣费模板
+	 */
+	@GetMapping("/export/power")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-学习强国扣费模板")
+	public void exportPower(HttpServletResponse response) {
+		List<LearningPower> list = new ArrayList<LearningPower>();
+		ExcelUtil.export(response, "学习强国扣费", "学习强国扣费", list, LearningPower.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-学习强国扣费导入
+	 *
+	 * */
+	@PostMapping("/import/power")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-学习强国扣费导入", notes = "传入excel")
+	public R importPower(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<LearningPower> excelList = ExcelUtil.read(file, LearningPower.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importPower(excelList,false,id);
+	}
+	/**
+	 * 导入微信金额模板
+	 */
+	@GetMapping("/export/weChat")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-微信金额模板")
+	public void exportWeChat(HttpServletResponse response) {
+		List<WeChatExcel> list = new ArrayList<WeChatExcel>();
+		ExcelUtil.export(response, "微信", "微信", list, WeChatExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-微信金额导入
+	 *
+	 * */
+	@PostMapping("/import/weChat")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-微信金额导入", notes = "传入excel")
+	public R importWeChat(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<WeChatExcel> excelList = ExcelUtil.read(file, WeChatExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importWeChat(excelList,false,id);
+	}
+	/**
+	 * 导入班主任补贴模板
+	 */
+	@GetMapping("/export/teacherSubsidy")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-班主任补贴模板")
+	public void exportTeacherSubsidy(HttpServletResponse response) {
+		List<TeacherSubsidy> list = new ArrayList<TeacherSubsidy>();
+		ExcelUtil.export(response, "班主任补贴", "班主任补贴", list, TeacherSubsidy.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-班主任补贴导入
+	 *
+	 * */
+	@PostMapping("/import/teacherSubsidy")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-班主任补贴导入", notes = "传入excel")
+	public R importTeacherSubsidy(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<TeacherSubsidy> excelList = ExcelUtil.read(file, TeacherSubsidy.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importTeacherSubsidy(excelList,false,id);
+	}
+	/**
+	 * 导入周末加班模板
+	 */
+	@GetMapping("/export/overtime")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-周末加班模板")
+	public void exportOvertime(HttpServletResponse response) {
+		List<OvertimeExcel> list = new ArrayList<OvertimeExcel>();
+		ExcelUtil.export(response, "周末加班", "周末加班", list, OvertimeExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-周末加班导入
+	 *
+	 * */
+	@PostMapping("/import/overtime")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-周末加班导入", notes = "传入excel")
+	public R importOvertime(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<OvertimeExcel> excelList = ExcelUtil.read(file, OvertimeExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importOvertime(excelList,false,id);
+	}
+	/**
+	 * 导入电话费、罚款模板
+	 */
+	@GetMapping("/export/phoneFine")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-电话费、罚款模板")
+	public void exportPhoneFine(HttpServletResponse response) {
+		List<PhoneFineExcel> list = new ArrayList<PhoneFineExcel>();
+		ExcelUtil.export(response, "电话费、罚款", "电话费、罚款", list, PhoneFineExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-电话费、罚款导入
+	 *
+	 * */
+	@PostMapping("/import/phoneFine")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-电话费、罚款导入", notes = "传入excel")
+	public R importPhoneFine(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<PhoneFineExcel> excelList = ExcelUtil.read(file, PhoneFineExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importPhoneFine(excelList,false,id);
+	}
+	/**
+	 * 导入卫生费模板
+	 */
+	@GetMapping("/export/sanitationFee")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-卫生费模板")
+	public void exportSanitationFee(HttpServletResponse response) {
+		List<SanitationFee> list = new ArrayList<SanitationFee>();
+		ExcelUtil.export(response, "卫生费", "卫生费", list, SanitationFee.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-卫生费导入
+	 *
+	 * */
+	@PostMapping("/import/sanitationFee")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-卫生费导入", notes = "传入excel")
+	public R importSanitationFee(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<SanitationFee> excelList = ExcelUtil.read(file, SanitationFee.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importSanitationFee(excelList,false,id);
+	}
+	/**
+	 * 导入出勤模板
+	 */
+	@GetMapping("/export/attendanceExcel")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-出勤模板")
+	public void exportAttendanceExcel(HttpServletResponse response) {
+		List<AttendanceExcel> list = new ArrayList<AttendanceExcel>();
+		ExcelUtil.export(response, "出勤", "出勤", list, AttendanceExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-出勤导入
+	 *
+	 * */
+	@PostMapping("/import/attendanceExcel")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-出勤导入", notes = "传入excel")
+	public R importAttendanceExcel(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<AttendanceExcel> excelList = ExcelUtil.read(file, AttendanceExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importAttendanceExcel(excelList,false,id);
+	}
+	/**
+	 * 导入保险个人模板
+	 */
+	@GetMapping("/export/personalInsurance")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-保险个人模板")
+	public void exportPersonalInsurance(HttpServletResponse response) {
+		List<PersonalInsurance> list = new ArrayList<PersonalInsurance>();
+		ExcelUtil.export(response, "保险个人", "保险个人", list, PersonalInsurance.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-保险个人导入
+	 *
+	 * */
+	@PostMapping("/import/personalInsurance")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-保险个人导入", notes = "传入excel")
+	public R importPersonalInsurance(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<PersonalInsurance> excelList = ExcelUtil.read(file, PersonalInsurance.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importPersonalInsurance(excelList,false,id);
+	}
+	/**
+	 * 导入公积金模板
+	 */
+	@GetMapping("/export/reservedFunds")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-公积金模板")
+	public void exportReservedFunds(HttpServletResponse response) {
+		List<ReservedFunds> list = new ArrayList<ReservedFunds>();
+		ExcelUtil.export(response, "公积金", "公积金", list, ReservedFunds.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-公积金导入
+	 *
+	 * */
+	@PostMapping("/import/reservedFunds")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-公积金导入", notes = "传入excel")
+	public R importReservedFunds(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<ReservedFunds> excelList = ExcelUtil.read(file, ReservedFunds.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importReservedFunds(excelList,false,id);
+	}
+	/**
+	 * 导入个税模板
+	 */
+	@GetMapping("/export/payTaxes")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-个税模板")
+	public void exportPayTaxes(HttpServletResponse response) {
+		List<PayTaxes> list = new ArrayList<PayTaxes>();
+		ExcelUtil.export(response, "个税", "个税", list, PayTaxes.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-个税导入
+	 *
+	 * */
+	@PostMapping("/import/payTaxes")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-个税导入", notes = "传入excel")
+	public R importPayTaxes(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<PayTaxes> excelList = ExcelUtil.read(file, PayTaxes.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importPayTaxes(excelList,false,id);
+	}
+	/**
+	 * 导入新岗岗前培训模板
+	 */
+	@GetMapping("/export/postTrainExcel")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-新岗岗前培训模板")
+	public void exportPostTrainExcel(HttpServletResponse response) {
+		List<PostTrainExcel> list = new ArrayList<PostTrainExcel>();
+		ExcelUtil.export(response, "新岗岗前培训", "新岗岗前培训", list, PostTrainExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-新岗岗前培训导入
+	 *
+	 * */
+	@PostMapping("/import/postTrainExcel")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-新岗岗前培训导入", notes = "传入excel")
+	public R importPostTrainExcel(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<PostTrainExcel> excelList = ExcelUtil.read(file, PostTrainExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importPostTrainExcel(excelList,false,id);
+	}
+	/**
+	 * 导入奖励模板
+	 */
+	@GetMapping("/export/awardExcel")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-奖励模板")
+	public void exportAwardExcel(HttpServletResponse response) {
+		List<AwardExcel> list = new ArrayList<AwardExcel>();
+		ExcelUtil.export(response, "奖励", "奖励", list, AwardExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-奖励导入
+	 *
+	 * */
+	@PostMapping("/import/awardExcel")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-奖励导入", notes = "传入excel")
+	public R importAwardExcel(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<AwardExcel> excelList = ExcelUtil.read(file, AwardExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importAwardExcel(excelList,false,id);
+	}
+	/**
+	 * 导入假期加班模板
+	 */
+	@GetMapping("/export/vacationExcel")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-假期加班模板")
+	public void exportVacationExcel(HttpServletResponse response) {
+		List<VacationExcel> list = new ArrayList<VacationExcel>();
+		ExcelUtil.export(response, "假期加班", "假期加班", list, VacationExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-假期加班导入
+	 *
+	 * */
+	@PostMapping("/import/vacationExcel")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-假期加班导入", notes = "传入excel")
+	public R importVacationExcel(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<VacationExcel> excelList = ExcelUtil.read(file, VacationExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importVacationExcel(excelList,false,id);
+	}
+	/**
+	 * 导入岗位补贴模板
+	 */
+	@GetMapping("/export/vacationExcel")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-岗位补贴模板")
+	public void exportPostAllowance(HttpServletResponse response) {
+		List<PostAllowance> list = new ArrayList<PostAllowance>();
+		ExcelUtil.export(response, "岗位补贴", "岗位补贴", list, PostAllowance.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-岗位补贴导入
+	 *
+	 * */
+	@PostMapping("/import/vacationExcel")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-岗位补贴导入", notes = "传入excel")
+	public R importPostAllowance(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<PostAllowance> excelList = ExcelUtil.read(file, PostAllowance.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importPostAllowance(excelList,false,id);
+	}
+	/**
+	 * 导入绩效、教学成绩奖模板
+	 */
+	@GetMapping("/export/performanceExcel")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-绩效、教学成绩奖模板")
+	public void exportPerformanceExcel(HttpServletResponse response) {
+		List<PerformanceExcel> list = new ArrayList<PerformanceExcel>();
+		ExcelUtil.export(response, "绩效、教学成绩奖", "绩效、教学成绩奖", list, PerformanceExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-绩效、教学成绩奖导入
+	 *
+	 * */
+	@PostMapping("/import/performanceExcel")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-绩效、教学成绩奖导入", notes = "传入excel")
+	public R importPerformanceExcel(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<PerformanceExcel> excelList = ExcelUtil.read(file, PerformanceExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importPerformanceExcel(excelList,false,id);
 	}
-
 
 }

+ 36 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/AttendanceExcel.java

@@ -0,0 +1,36 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-出勤导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class AttendanceExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 出勤
+	 */
+	@ExcelProperty(value = "出勤(默认 0)")
+	private BigDecimal attendance;
+}

+ 36 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/AwardExcel.java

@@ -0,0 +1,36 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-奖励导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class AwardExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 期中期末考试学科优胜奖(预留发放)
+	 */
+	@ExcelProperty(value = "优胜学科(预留发放 默认 0)")
+	private BigDecimal winningPrize;
+}

+ 110 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/EmployExcel.java

@@ -0,0 +1,110 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+/**
+ * 通济学校-工资管理-小学部-聘用导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class EmployExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 类别
+	 */
+	@ExcelProperty(value = "类别")
+	private String itemType;
+	/**
+	 * 基础工资
+	 */
+	@ExcelProperty(value = "基础工资(默认 0)")
+	private BigDecimal basicsSalary;
+	/**
+	 * 工作量工资
+	 */
+	@ExcelProperty(value = "工作量工资(默认 0)")
+	private BigDecimal workloadSalary;
+	/**
+	 * 日常考核工资
+	 */
+	@ExcelProperty(value = "日常考核工资(默认 0)")
+	private BigDecimal dailyAssessmentSalary;
+	/**
+	 * 学期绩效工资
+	 */
+	@ExcelProperty(value = "学期绩效工资(默认 0)")
+	private BigDecimal termPerformanceSalary;
+	/**
+	 * 奖励工资
+	 */
+	@ExcelProperty(value = "奖励工资(默认 0)")
+	private BigDecimal awardSalary;
+	/**
+	 * 职务津贴
+	 */
+	@ExcelProperty(value = "职务津贴(默认 0)")
+	private BigDecimal dutyAllowances;
+	/**
+	 * 班主任津贴
+	 */
+	@ExcelProperty(value = "班主任津贴(默认 0)")
+	private BigDecimal classTeacherSubsidy;
+	/**
+	 * 补贴项
+	 */
+	@ExcelProperty(value = "补贴项(默认 0)")
+	private BigDecimal subsidy;
+	/**
+	 * 扣除项
+	 */
+	@ExcelProperty(value = "扣除项(默认 0)")
+	private BigDecimal deductions;
+	/**
+	 * 保险单位
+	 */
+	@ExcelProperty(value = "保险(单位部分)提取(默认 0)")
+	private BigDecimal insuranceUnit;
+	/**
+	 * 公积金单位
+	 */
+	@ExcelProperty(value = "公积金(单位部分)提取(默认 0)")
+	private BigDecimal reservedFundsUnit;
+	/**
+	 * 公积金个人
+	 */
+	@ExcelProperty(value = "公积金(个人部分)提取(默认 0)")
+	private BigDecimal reservedFundsPersonage;
+	/**
+	 * 应发工资
+	 */
+	@ExcelProperty(value = "应发工资(默认 0)")
+	private BigDecimal salary;
+	/**
+	 * 个税
+	 */
+	@ExcelProperty(value = "个税(默认 0)")
+	private BigDecimal personageTaxes;
+	/**
+	 * 实发工资(减去个人)
+	 */
+	@ExcelProperty(value = "实发工资(减去个人)(默认 0)")
+	private BigDecimal fSalary;
+}

+ 37 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/LearningPower.java

@@ -0,0 +1,37 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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 io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-学习强国导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class LearningPower implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 学习强国
+	 */
+	@ApiModelProperty(value = "学习强国扣费(默认 0)")
+	private BigDecimal learningPower;
+}

+ 36 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/OvertimeExcel.java

@@ -0,0 +1,36 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-周末加班导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class OvertimeExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 周末加班
+	 */
+	@ExcelProperty(value = "周末加班费(默认 0)")
+	private BigDecimal overtimeAtWeekend;
+}

+ 36 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/PayTaxes.java

@@ -0,0 +1,36 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-个税导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class PayTaxes implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 个税
+	 */
+	@ExcelProperty(value = "个税(默认 0)")
+	private BigDecimal personageTaxes;
+}

+ 46 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/PerformanceExcel.java

@@ -0,0 +1,46 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-绩效、教学成绩奖导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class PerformanceExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 学期绩效工资
+	 */
+	@ExcelProperty(value = "学期绩效工资(默认 0)")
+	private BigDecimal termPerformanceSalary;
+	/**
+	 * 年上学期绩效
+	 */
+	@ExcelProperty(value = "年上学期绩效(默认 0)")
+	private BigDecimal yearUpPerformance;
+	/**
+	 * 年下学期绩效
+	 */
+	@ExcelProperty(value = "年下学期绩效(默认 0)")
+	private BigDecimal yearDownPerformance;
+}

+ 41 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/PersonalInsurance.java

@@ -0,0 +1,41 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-保险个人导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class PersonalInsurance implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 保险个人
+	 */
+	@ExcelProperty(value = "个人合计(默认 0)")
+	private BigDecimal insurancePersonage;
+	/**
+	 * 保险单位
+	 */
+	@ExcelProperty(value = "单位合计(默认 0)")
+	private BigDecimal insuranceUnit;
+}

+ 41 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/PhoneFineExcel.java

@@ -0,0 +1,41 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-电话费、罚款导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class PhoneFineExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 电话费
+	 */
+	@ExcelProperty(value = "电话费(默认 0)")
+	private BigDecimal telephoneBill;
+	/**
+	 * 督查罚款
+	 */
+	@ExcelProperty(value = "罚款(默认 0)")
+	private BigDecimal inspectorFines;
+}

+ 52 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/PositionExcel.java

@@ -0,0 +1,52 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-职级导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class PositionExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号码(必填)")
+	private String idNumber;
+	/**
+	 * 学科
+	 */
+	@ExcelProperty(value = "任教学科")
+	private String discipline;
+	/**
+	 * 职级级别
+	 */
+	@ExcelProperty(value = "职级级别")
+	private String rankStandard;
+	/**
+	 * 工资额
+	 */
+	@ExcelProperty(value = "工资额(默认 0)")
+	private BigDecimal rankSalary;
+	/**
+	 * 备注
+	 */
+	@ExcelProperty(value = "备注")
+	private String remarks;
+
+}

+ 51 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/PostAllowance.java

@@ -0,0 +1,51 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-岗位补贴导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class PostAllowance implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 领导干部补贴
+	 */
+	@ExcelProperty(value = "领导(默认 0)")
+	private BigDecimal leadingCadreSubsidy;
+	/**
+	 * 级部长(预留发放)
+	 */
+	@ExcelProperty(value = "级部长(预留发放 默认 0)")
+	private BigDecimal classMinister;
+	/**
+	 * 备课组长
+	 */
+	@ExcelProperty(value = "备课组长(默认 0)")
+	private BigDecimal prepareLessons;
+	/**
+	 * 教研组长
+	 */
+	@ExcelProperty(value = "教研组长(默认 0)")
+	private BigDecimal teachingResearch;
+}

+ 36 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/PostTrainExcel.java

@@ -0,0 +1,36 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-新岗岗前培训模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class PostTrainExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 新岗岗前培训
+	 */
+	@ExcelProperty(value = "新岗岗前培训(默认 0)")
+	private BigDecimal newPostTrain;
+}

+ 42 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/ReservedFunds.java

@@ -0,0 +1,42 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-公积金导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class ReservedFunds implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 公积金单位
+	 */
+	@ExcelProperty(value = "公积金单位金额(默认 0)")
+	private BigDecimal reservedFundsUnit;
+	/**
+	 * 公积金个人
+	 */
+	@ExcelProperty(value = "公积金个人金额(默认 0)")
+	private BigDecimal reservedFundsPersonage;
+
+}

+ 5 - 2
blade-service/blade-school/src/main/java/org/springblade/school/excel/SalaryItemExcel.java

@@ -10,6 +10,9 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 
+/**
+ * 通济学校-工资管理-小学部-工资表导入模板
+ */
 @Data
 @ColumnWidth(35)
 @HeadRowHeight(20)
@@ -19,12 +22,12 @@ public class SalaryItemExcel implements Serializable {
 	/**
 	 * 姓名
 	 */
-	@ExcelProperty(value = "姓名")
+	@ExcelProperty(value = "姓名(必填)")
 	private String cname;
 	/**
 	 * 身份证号
 	 */
-	@ExcelProperty(value = "身份证号")
+	@ExcelProperty(value = "身份证号(必填)")
 	private String idNumber;
 	/**
 	 * 学科

+ 36 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/SanitationFee.java

@@ -0,0 +1,36 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-卫生费导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class SanitationFee implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 宿舍管理费
+	 */
+	@ExcelProperty(value = "宿舍管理费(默认0)")
+	private BigDecimal dormitoryManagementFee;
+}

+ 36 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/TeacherSubsidy.java

@@ -0,0 +1,36 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-班主任补贴导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class TeacherSubsidy implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 班主任津贴
+	 */
+	@ExcelProperty(value = "班主任补贴(默认 0)")
+	private BigDecimal classTeacherSubsidy;
+}

+ 36 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/VacationExcel.java

@@ -0,0 +1,36 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-假期加班导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class VacationExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 假期加班费
+	 */
+	@ExcelProperty(value = "假期加班费(默认0)")
+	private BigDecimal vacationOvertimePay;
+}

+ 36 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/WeChatExcel.java

@@ -0,0 +1,36 @@
+package org.springblade.school.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.math.BigDecimal;
+
+/**
+ * 通济学校-工资管理-小学部-微信导入模板
+ */
+@Data
+@ColumnWidth(35)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class WeChatExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 微信
+	 */
+	@ExcelProperty(value = "微信金额合计(默认 0)")
+	private BigDecimal wx;
+}

+ 158 - 2
blade-service/blade-school/src/main/java/org/springblade/school/service/ISalaryItemService.java

@@ -19,7 +19,7 @@ package org.springblade.school.service;
 import org.springblade.core.tool.api.R;
 import org.springblade.school.entity.Salary;
 import org.springblade.school.entity.SalaryItem;
-import org.springblade.school.excel.SalaryItemExcel;
+import org.springblade.school.excel.*;
 import org.springblade.school.vo.SalaryItemVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -43,11 +43,167 @@ public interface ISalaryItemService extends IService<SalaryItem> {
 	 */
 	IPage<SalaryItemVO> selectSalaryItemPage(IPage<SalaryItemVO> page, SalaryItemVO salaryItem);
 	/**
-	 * 导入教职工工资信息
+	 * 导入工资表
 	 * @param data
 	 * @param isCovered
 	 * @return
 	 */
 	R importSupplierDesc(List<SalaryItemExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入聘用
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importEmploy(List<EmployExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入聘用
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importPosition(List<PositionExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入学习强国扣费
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importPower(List<LearningPower> data, Boolean isCovered, Long id);
+	/**
+	 * 导入微信
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importWeChat(List<WeChatExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入班主任补贴
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importTeacherSubsidy(List<TeacherSubsidy> data, Boolean isCovered, Long id);
+	/**
+	 * 导入周末加班
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importOvertime(List<OvertimeExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入电话费、罚款
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importPhoneFine(List<PhoneFineExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入卫生费
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importSanitationFee(List<SanitationFee> data, Boolean isCovered, Long id);
+	/**
+	 * 导入周末加班
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importAttendanceExcel(List<AttendanceExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入出勤
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importPersonalInsurance(List<PersonalInsurance> data, Boolean isCovered, Long id);
+	/**
+	 * 导入保险个人
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importReservedFunds(List<ReservedFunds> data, Boolean isCovered, Long id);
+	/**
+	 * 导入个税
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importPayTaxes(List<PayTaxes> data, Boolean isCovered, Long id);
+	/**
+	 * 导入新岗岗前培训
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importPostTrainExcel(List<PostTrainExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入奖励
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importAwardExcel(List<AwardExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入假期加班
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importVacationExcel(List<VacationExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入岗位补贴
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importPostAllowance(List<PostAllowance> data, Boolean isCovered, Long id);
+	/**
+	 * 导入绩效、教学成绩奖
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importPerformanceExcel(List<PerformanceExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入周末加班
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importOvertime6(List<OvertimeExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入周末加班
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importOvertime7(List<OvertimeExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入周末加班
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importOvertime8(List<OvertimeExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入周末加班
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importOvertime9(List<OvertimeExcel> data, Boolean isCovered, Long id);
+	/**
+	 * 导入周末加班
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importOvertime10(List<OvertimeExcel> data, Boolean isCovered, Long id);
+
+
 
 }

+ 752 - 8
blade-service/blade-school/src/main/java/org/springblade/school/service/impl/SalaryItemServiceImpl.java

@@ -22,7 +22,7 @@ import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.school.entity.SalaryItem;
-import org.springblade.school.excel.SalaryItemExcel;
+import org.springblade.school.excel.*;
 import org.springblade.school.vo.SalaryItemVO;
 import org.springblade.school.mapper.SalaryItemMapper;
 import org.springblade.school.service.ISalaryItemService;
@@ -54,11 +54,11 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 			throw new SecurityException("导入数据不能为空");
 		}
 		StringBuffer errMsg= new StringBuffer();
-
+		int success = 0; //导入成功条数
 		for(int i=0;i<data.size();i++)
 		{
 			SalaryItemExcel salaryItemExcel = data.get(i);
-			/*if (StringUtils.isBlank(salaryItemExcel.getIdNumber())){
+			if (StringUtils.isBlank(salaryItemExcel.getIdNumber())){
 				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
 				continue;
 			}
@@ -66,14 +66,14 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				errMsg.append("第"+(i+2)+"行,姓名为空,");
 				continue;
 			}
-			if (StringUtils.isBlank(salaryItemExcel.getRankStandard())){
+			/*if (StringUtils.isBlank(salaryItemExcel.getRankStandard())){
 				errMsg.append("第"+(i+2)+"行,职级标准为空,");
 				continue;
 			}*/
 			SalaryItem salaryItem = new SalaryItem();
 			BeanUtil.copy(salaryItemExcel,salaryItem);
 			//根据身份证号查询教职工信息是否存在存在更新不存在新增
-			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("tenant_id", SecureUtil.getTenantId())
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
 				.eq("is_deleted", 0).eq("pid",id));
 			if (item == null){
 				salaryItem.setPid(id);
@@ -81,19 +81,763 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				salaryItem.setCreateUser(SecureUtil.getUserId());
 				salaryItem.setCreateTime(new Date());
 				baseMapper.insert(salaryItem);
+				success = ++ success;
 			}else {
 				salaryItem.setPid(id);
 				salaryItem.setId(item.getId());
 				salaryItem.setUpdateUser(SecureUtil.getUserId());
 				salaryItem.setUpdateTime(new Date());
 				baseMapper.updateById(salaryItem);
+				success = ++ success;
+			}
+		}
+		if (success == 0){
+			return R.success("导入失败");
+		}else if (success >0 && success == data.size()){
+			return R.success("全部导入成功");
+		}else {
+			return R.success("导入部分成功,成功"+ success +"条,导入失败"+(data.size()-success)+"条");
+		}
+	}
+
+	@Override
+	public R importEmploy(List<EmployExcel> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			EmployExcel employExcel = data.get(i);
+			if (StringUtils.isBlank(employExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(employExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(employExcel,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+
+	@Override
+	public R importPosition(List<PositionExcel> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			PositionExcel positionExcel = data.get(i);
+			if (StringUtils.isBlank(positionExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(positionExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(positionExcel,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+
+	@Override
+	public R importPower(List<LearningPower> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			LearningPower learningPower = data.get(i);
+			if (StringUtils.isBlank(learningPower.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(learningPower.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(learningPower,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+
+	@Override
+	public R importWeChat(List<WeChatExcel> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			WeChatExcel weChatExcel = data.get(i);
+			if (StringUtils.isBlank(weChatExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(weChatExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(weChatExcel,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+
+	@Override
+	public R importTeacherSubsidy(List<TeacherSubsidy> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			TeacherSubsidy teacherSubsidy = data.get(i);
+			if (StringUtils.isBlank(teacherSubsidy.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(teacherSubsidy.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(teacherSubsidy,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+
+	@Override
+	public R importOvertime(List<OvertimeExcel> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			OvertimeExcel overtimeExcel = data.get(i);
+			if (StringUtils.isBlank(overtimeExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(overtimeExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(overtimeExcel,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
 			}
 
 		}
-		if (StringUtils.isNotBlank(errMsg)){
-			return R.success("导入部分成功,未导入成功的有"+errMsg.toString());
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
 		}
-		return R.success("导入成功");
+	}
+	@Override
+	public R importPhoneFine(List<PhoneFineExcel> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			PhoneFineExcel phoneFineExcel = data.get(i);
+			if (StringUtils.isBlank(phoneFineExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(phoneFineExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(phoneFineExcel,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+	@Override
+	public R importSanitationFee(List<SanitationFee> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			SanitationFee sanitationFee = data.get(i);
+			if (StringUtils.isBlank(sanitationFee.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(sanitationFee.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(sanitationFee,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+	@Override
+	public R importAttendanceExcel(List<AttendanceExcel> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			AttendanceExcel attendanceExcel = data.get(i);
+			if (StringUtils.isBlank(attendanceExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(attendanceExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(attendanceExcel,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+	@Override
+	public R importPersonalInsurance(List<PersonalInsurance> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			PersonalInsurance personalInsurance = data.get(i);
+			if (StringUtils.isBlank(personalInsurance.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(personalInsurance.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(personalInsurance,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+	@Override
+	public R importReservedFunds(List<ReservedFunds> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			ReservedFunds reservedFunds = data.get(i);
+			if (StringUtils.isBlank(reservedFunds.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(reservedFunds.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(reservedFunds,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+	@Override
+	public R importPayTaxes(List<PayTaxes> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			PayTaxes payTaxes = data.get(i);
+			if (StringUtils.isBlank(payTaxes.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(payTaxes.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(payTaxes,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+	@Override
+	public R importPostTrainExcel(List<PostTrainExcel> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			PostTrainExcel postTrainExcel = data.get(i);
+			if (StringUtils.isBlank(postTrainExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(postTrainExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(postTrainExcel,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+	@Override
+	public R importAwardExcel(List<AwardExcel> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			AwardExcel awardExcel = data.get(i);
+			if (StringUtils.isBlank(awardExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(awardExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(awardExcel,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+	@Override
+	public R importVacationExcel(List<VacationExcel> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			VacationExcel vacationExcel = data.get(i);
+			if (StringUtils.isBlank(vacationExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(vacationExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(vacationExcel,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+	@Override
+	public R importPostAllowance(List<PostAllowance> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			PostAllowance postAllowance = data.get(i);
+			if (StringUtils.isBlank(postAllowance.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(postAllowance.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(postAllowance,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+	@Override
+	public R importPerformanceExcel(List<PerformanceExcel> data, Boolean isCovered, Long id) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			PerformanceExcel performanceExcel = data.get(i);
+			if (StringUtils.isBlank(performanceExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(performanceExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(performanceExcel,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("cname",salaryItem.getCname()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+			}
+
+		}
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+	@Override
+	public R importOvertime6(List<OvertimeExcel> data, Boolean isCovered, Long id) {
+		return null;
+	}
+	@Override
+	public R importOvertime7(List<OvertimeExcel> data, Boolean isCovered, Long id) {
+		return null;
+	}
+	@Override
+	public R importOvertime8(List<OvertimeExcel> data, Boolean isCovered, Long id) {
+		return null;
+	}
+	@Override
+	public R importOvertime9(List<OvertimeExcel> data, Boolean isCovered, Long id) {
+		return null;
+	}
+	@Override
+	public R importOvertime10(List<OvertimeExcel> data, Boolean isCovered, Long id) {
+		return null;
 	}
 
 }

+ 2 - 2
blade-service/blade-school/src/main/java/org/springblade/school/service/impl/SalaryServiceImpl.java

@@ -100,10 +100,10 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
 	@Override
 	public Salary selectSalaryMessage(Salary salary) {
 		Salary salaryMessage = baseMapper.selectOne(new QueryWrapper<Salary>().setEntity(salary));
-		if (salaryMessage != null){
+		/*if (salaryMessage != null){
 			salaryMessage.setSalaryItemList(salaryItemMapper.selectList(new QueryWrapper<SalaryItem>().eq("pid", salaryMessage.getId()).eq("tenant_id", SecureUtil.getTenantId())
 				.eq("is_deleted", 0)));
-		}
+		}*/
 		return salaryMessage;
 	}