Browse Source

Merge branch 'dev' of http://git.echepei.com/lazhaoqian/bladex into dev

ioioio 3 years ago
parent
commit
46b8a2933c

+ 1 - 0
blade-service/blade-school/src/main/java/org/springblade/school/controller/SalaryController.java

@@ -30,6 +30,7 @@ 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.service.ISalaryItemService;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;

+ 78 - 0
blade-service/blade-school/src/main/java/org/springblade/school/controller/SalaryItemController.java

@@ -619,5 +619,83 @@ public class SalaryItemController extends BladeController {
 		}
 		return salaryItemService.importPerformanceExcel(excelList,false,id);
 	}
+	/**
+	 * 导入工作量模板
+	 */
+	@GetMapping("/export/workloadExcel")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-工作量模板")
+	public void exportWorkloadExcel(HttpServletResponse response) {
+		List<WorkloadExcel> list = new ArrayList<WorkloadExcel>();
+		ExcelUtil.export(response, "工作量", "工作量", list, WorkloadExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-工作量导入
+	 *
+	 * */
+	@PostMapping("/import/workloadExcel")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-工作量导入", notes = "传入excel")
+	public R importWorkloadExcel(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<WorkloadExcel> excelList = ExcelUtil.read(file, WorkloadExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importWorkloadExcel(excelList,false,id);
+	}
+	/**
+	 * 导入查评模板
+	 */
+	@GetMapping("/export/zhaPingExcel")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-查评模板")
+	public void exportZhaPingExcel(HttpServletResponse response) {
+		List<ZhaPingExcel> list = new ArrayList<ZhaPingExcel>();
+		ExcelUtil.export(response, "查评", "查评", list, ZhaPingExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-查评导入
+	 *
+	 * */
+	@PostMapping("/import/zhaPingExcel")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-查评导入", notes = "传入excel")
+	public R importZhaPingExcel(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<ZhaPingExcel> excelList = ExcelUtil.read(file, ZhaPingExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importZhaPingExcel(excelList,false,id);
+	}
+	/**
+	 * 导入查保险模板
+	 */
+	@GetMapping("/export/insuranceExcel")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入模板-工资管理-小学部-保险模板")
+	public void exportInsuranceExcel(HttpServletResponse response) {
+		List<InsuranceExcel> list = new ArrayList<InsuranceExcel>();
+		ExcelUtil.export(response, "保险", "保险", list, InsuranceExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-保险导入
+	 *
+	 * */
+	@PostMapping("/import/insuranceExcel")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入-工资管理-小学部-保险导入", notes = "传入excel")
+	public R importInsuranceExcel(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		List<InsuranceExcel> excelList = ExcelUtil.read(file, InsuranceExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importInsuranceExcel(excelList,false,id);
+	}
 
 }

+ 41 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/InsuranceExcel.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 InsuranceExcel 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;
+}

+ 3 - 8
blade-service/blade-school/src/main/java/org/springblade/school/excel/PersonalInsurance.java

@@ -29,13 +29,8 @@ public class PersonalInsurance implements Serializable {
 	@ExcelProperty(value = "身份证号(必填)")
 	private String idNumber;
 	/**
-	 * 保险个人
+	 * 五险一金个人
 	 */
-	@ExcelProperty(value = "个人合计(默认 0)")
-	private BigDecimal insurancePersonage;
-	/**
-	 * 保险单位
-	 */
-	@ExcelProperty(value = "单位合计(默认 0)")
-	private BigDecimal insuranceUnit;
+	@ExcelProperty(value = "五险一金个人")
+	private BigDecimal androidIt;
 }

+ 41 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/WorkloadExcel.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 WorkloadExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 月份课时
+	 */
+	@ExcelProperty(value = "课时(默认 0)")
+	private BigDecimal monthHour;
+	/**
+	 * 月份课时工资
+	 */
+	@ExcelProperty(value = "课时费(默认 0)")
+	private BigDecimal momthWorkloadSalary;
+}

+ 36 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/ZhaPingExcel.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 ZhaPingExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	private String idNumber;
+	/**
+	 * 日常考核工资
+	 */
+	@ExcelProperty(value = "金额(默认 0)")
+	private BigDecimal dailyAssessmentSalary;
+}

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

@@ -169,26 +169,26 @@ public interface ISalaryItemService extends IService<SalaryItem> {
 	 */
 	R importPerformanceExcel(List<PerformanceExcel> data, Boolean isCovered, Long id);
 	/**
-	 * 导入周末加班
+	 * 导入工作量
 	 * @param data
 	 * @param isCovered
 	 * @return
 	 */
-	R importOvertime6(List<OvertimeExcel> data, Boolean isCovered, Long id);
+	R importWorkloadExcel(List<WorkloadExcel> data, Boolean isCovered, Long id);
 	/**
-	 * 导入周末加班
+	 * 导入查评
 	 * @param data
 	 * @param isCovered
 	 * @return
 	 */
-	R importOvertime7(List<OvertimeExcel> data, Boolean isCovered, Long id);
+	R importZhaPingExcel(List<ZhaPingExcel> data, Boolean isCovered, Long id);
 	/**
-	 * 导入周末加班
+	 * 导入保险
 	 * @param data
 	 * @param isCovered
 	 * @return
 	 */
-	R importOvertime8(List<OvertimeExcel> data, Boolean isCovered, Long id);
+	R importInsuranceExcel(List<InsuranceExcel> data, Boolean isCovered, Long id);
 	/**
 	 * 导入周末加班
 	 * @param data

+ 7 - 0
blade-service/blade-school/src/main/java/org/springblade/school/service/ISalaryService.java

@@ -52,4 +52,11 @@ public interface ISalaryService extends IService<Salary> {
 	 */
 	Salary selectSalaryMessage(Salary salary);
 
+	/**
+	 * 删除数据
+	 * @param ids
+	 * @return
+	 */
+	boolean deleteMessage(String ids);
+
 }

+ 232 - 23
blade-service/blade-school/src/main/java/org/springblade/school/service/impl/SalaryItemServiceImpl.java

@@ -29,6 +29,7 @@ import org.springblade.school.service.ISalaryItemService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 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;
@@ -48,6 +49,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 	}
 
 	@Override
+	@Transactional
 	public R importSupplierDesc(List<SalaryItemExcel> data, Boolean isCovered,Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -90,6 +92,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				success = ++ success;
 			}
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (success == 0){
 			return R.success("导入失败");
@@ -101,6 +105,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 	}
 
 	@Override
+	@Transactional
 	public R importEmploy(List<EmployExcel> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -132,7 +137,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -144,6 +150,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 	}
 
 	@Override
+	@Transactional
 	public R importPosition(List<PositionExcel> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -175,7 +182,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -187,6 +195,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 	}
 
 	@Override
+	@Transactional
 	public R importPower(List<LearningPower> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -218,7 +227,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -230,6 +240,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 	}
 
 	@Override
+	@Transactional
 	public R importWeChat(List<WeChatExcel> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -261,7 +272,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -273,6 +285,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 	}
 
 	@Override
+	@Transactional
 	public R importTeacherSubsidy(List<TeacherSubsidy> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -304,7 +317,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -316,6 +330,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 	}
 
 	@Override
+	@Transactional
 	public R importOvertime(List<OvertimeExcel> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -347,7 +362,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -358,6 +374,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		}
 	}
 	@Override
+	@Transactional
 	public R importPhoneFine(List<PhoneFineExcel> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -389,7 +406,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -400,6 +418,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		}
 	}
 	@Override
+	@Transactional
 	public R importSanitationFee(List<SanitationFee> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -431,7 +450,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -442,6 +462,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		}
 	}
 	@Override
+	@Transactional
 	public R importAttendanceExcel(List<AttendanceExcel> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -473,7 +494,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -484,6 +506,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		}
 	}
 	@Override
+	@Transactional
 	public R importPersonalInsurance(List<PersonalInsurance> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -515,7 +538,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -526,6 +550,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		}
 	}
 	@Override
+	@Transactional
 	public R importReservedFunds(List<ReservedFunds> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -557,7 +582,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -568,6 +594,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		}
 	}
 	@Override
+	@Transactional
 	public R importPayTaxes(List<PayTaxes> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -599,7 +626,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -610,6 +638,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		}
 	}
 	@Override
+	@Transactional
 	public R importPostTrainExcel(List<PostTrainExcel> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -641,7 +670,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -652,6 +682,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		}
 	}
 	@Override
+	@Transactional
 	public R importAwardExcel(List<AwardExcel> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -683,7 +714,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -694,6 +726,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		}
 	}
 	@Override
+	@Transactional
 	public R importVacationExcel(List<VacationExcel> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -725,7 +758,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -736,6 +770,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		}
 	}
 	@Override
+	@Transactional
 	public R importPostAllowance(List<PostAllowance> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -767,7 +802,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -778,6 +814,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		}
 	}
 	@Override
+	@Transactional
 	public R importPerformanceExcel(List<PerformanceExcel> data, Boolean isCovered, Long id) {
 		if(org.springframework.util.CollectionUtils.isEmpty(data))
 		{
@@ -809,7 +846,8 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 				baseMapper.updateById(salaryItem);
 				message = ++ message;
 			}
-
+			//更新计算工资
+			this.countSalary(salaryItem);
 		}
 		if (message >0 && message == data.size()){
 			return R.success("全部导入成功");
@@ -820,24 +858,195 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		}
 	}
 	@Override
-	public R importOvertime6(List<OvertimeExcel> data, Boolean isCovered, Long id) {
-		return null;
+	@Transactional
+	public R importWorkloadExcel(List<WorkloadExcel> 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++)
+		{
+			WorkloadExcel workloadExcel = data.get(i);
+			if (StringUtils.isBlank(workloadExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(workloadExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(workloadExcel,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;
+			}
+			//更新计算工资
+			this.countSalary(salaryItem);
+		}
+		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 importOvertime7(List<OvertimeExcel> data, Boolean isCovered, Long id) {
-		return null;
+	@Transactional
+	public R importZhaPingExcel(List<ZhaPingExcel> 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++)
+		{
+			ZhaPingExcel zhaPingExcel = data.get(i);
+			if (StringUtils.isBlank(zhaPingExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(zhaPingExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(zhaPingExcel,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;
+			}
+			//更新计算工资
+			this.countSalary(salaryItem);
+		}
+		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 importOvertime8(List<OvertimeExcel> data, Boolean isCovered, Long id) {
-		return null;
+	@Transactional
+	public R importInsuranceExcel(List<InsuranceExcel> 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++)
+		{
+			InsuranceExcel insuranceExcel = data.get(i);
+			if (StringUtils.isBlank(insuranceExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(insuranceExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(insuranceExcel,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;
+			}
+			//更新计算工资
+			this.countSalary(salaryItem);
+		}
+		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("导入失败");
+		}
 	}
+
+	/**
+	 * 学历导入暂存
+	 * @param data
+	 * @param isCovered
+	 * @param id
+	 * @return
+	 */
 	@Override
 	public R importOvertime9(List<OvertimeExcel> data, Boolean isCovered, Long id) {
 		return null;
 	}
+
+	/**
+	 * 月底人数导入暂存
+	 * @param data
+	 * @param isCovered
+	 * @param id
+	 * @return
+	 */
 	@Override
 	public R importOvertime10(List<OvertimeExcel> data, Boolean isCovered, Long id) {
 		return null;
 	}
 
+	/**
+	 *工资计算
+	 *
+	 * @param salaryItem
+	 */
+	public void countSalary(SalaryItem salaryItem){
+		// 1. 基础工资 = +M153(校龄工资)+N153(增资)+O153(学历工资)+Q153(职级工资)+L153(履约奖)+R153(工资基数)
+		// 2. 工作量工资 = V51(工作量工资)+W51(工作量工资)+Y51(暑假pad课课时费)
+		// 3. 奖励工资 = AD46(突出贡献奖) 无 +AE46(教学成绩优胜奖)+AF46(教学成绩进步奖) 无 +AG46(荣誉奖) 无 +AH46(领导干部奖励奖)+AI46(下学期教学成绩奖) 下学期绩效 +AJ46(中考奖励) 无
+		// 4. 职务津贴 = AM46(备课组长)+AL46(领导干部补贴)+AN46(教研组长)
+		// 5. 班主任津贴 = AQ47(班额)+AP47(班主任费)
+		// 6. 补贴项 = =BE49(预留补发)+BD49(餐车、周五测温、周五安全岗(预留补发))+BC49(9月副班费(预留补发))+BB49(级部长(预留发放))+BA49(期中期末考试学科优胜奖(预留发放))+AZ49(新岗岗前培训)+AY49(假期加班费)+AX49(干部补贴预留)
+		// +AW49(2020年下学期绩效)+AV49(2020年上学期绩效)+AU49(周末加班(提取))+AT49(产假工资)+AS49(微信)
+		// 7. 扣除项 = =BL47(宿舍管理费)+BK47(学习强国)+BJ47(电话费)+BI47(督查罚款)+BH47(出勤)+BM47(生育津贴)+BN47(五险一金个人)
+		// 8. 应发工资 = S153(基础工资)+Z153(工作量工资)+AB153(日常考核工资)+AK153(奖励工资)+AO153(职务津贴)+AR153(班主任津贴)+BG153(补贴项)-BO153(扣除项)+BQ153(保险个人)+BS153(公积金个人)
+		// 9. 实发工资 = BT153(应发工资) - BU153(个税)-BQ153(保险个人)-BS153(公积金个人)
+		SalaryItem item = baseMapper.selectById(salaryItem.getId());
+		item.setBasicsSalary(item.getSchoolAgeSalary().add(item.getCapitalIncrease()).add(item.getEducationSalary()).add(item.getRankSalary()).add(item.getSalaryBase()));//基础工资
+		item.setWorkloadSalary(item.getMomthWorkloadSalary().add(item.getVacationOvertimePay()));//工作量工资
+		item.setAwardSalary(item.getWinningPrize().add(item.getLeadingCadreSubsidy()).add(item.getYearDownPerformance()));//奖励工资
+		item.setDutyAllowances(item.getPrepareLessons().add(item.getLeadingCadreSubsidy()).add(item.getTeachingResearch()));//职务津贴
+		item.setClassTeacherSubsidy(item.getClassTeacherFee().add(item.getClasses()));//班主任津贴
+		//补贴项
+		item.setSubsidy(item.getSafetyFees().add(item.getMonthViceClassFee()).add(item.getClassMinister()).add(item.getWinningPrize()).add(item.getNewPostTrain()).add(item.getVacationOvertimePay())
+		.add(item.getCadreAllowanceReservation()).add(item.getYearDownPerformance()).add(item.getYearUpPerformance()).add(item.getOvertimeAtWeekend()).add(item.getMaternityLeaveSalary()).add(item.getWx()));
+		//扣除项
+		item.setDeductions(item.getDormitoryManagementFee().add(item.getLearningPower()).add(item.getTelephoneBill()).add(item.getInspectorFines()).add(item.getAttendance()).add(item.getChildbirthAllowance()).add(item.getAndroidIt()));
+		//应发工资
+		item.setSalary(item.getBasicsSalary().add(item.getWorkloadSalary()).add(item.getDailyAssessmentSalary()).add(item.getAwardSalary()).add(item.getDutyAllowances()).add(item.getClassTeacherSubsidy())
+		.add(item.getSubsidy()).subtract(item.getDeductions()).add(item.getInsurancePersonage()).add(item.getReservedFundsPersonage()));
+		//实发工资
+		item.setFSalary(item.getSalary().subtract(item.getPersonageTaxes()).subtract(item.getInsurancePersonage()).subtract(item.getReservedFundsPersonage()));
+		baseMapper.updateById(item);
+	}
+
 }

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

@@ -16,11 +16,13 @@
  */
 package org.springblade.school.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.SecureUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.school.entity.Salary;
 import org.springblade.school.entity.SalaryItem;
 import org.springblade.school.mapper.SalaryItemMapper;
@@ -33,6 +35,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 通济学校-工资管理主表信息 服务实现类
@@ -45,6 +49,7 @@ import java.util.Date;
 public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> implements ISalaryService {
 
 	private final SalaryItemMapper salaryItemMapper;
+	private final SalaryItemServiceImpl salaryItemService;
 	@Override
 	public IPage<SalaryVO> selectSalaryPage(IPage<SalaryVO> page, SalaryVO salary) {
 		return page.setRecords(baseMapper.selectSalaryPage(page, salary));
@@ -92,6 +97,8 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
 					salaryItem.setTenantId(SecureUtil.getTenantId());
 					salaryItemMapper.updateById(salaryItem);
 				}
+				//更新计算工资
+				salaryItemService.countSalary(salaryItem);
 			}
 		}
 		return salary;
@@ -107,4 +114,23 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
 		return salaryMessage;
 	}
 
+	@Override
+	@Transactional
+	public boolean deleteMessage(String ids) {
+		LambdaQueryWrapper<SalaryItem> lambdaQueryWrapper = new LambdaQueryWrapper();
+		lambdaQueryWrapper.in(SalaryItem::getPid,Func.toLong(ids));
+		lambdaQueryWrapper.eq(SalaryItem::getIsDeleted,0);
+		lambdaQueryWrapper.eq(SalaryItem::getTenantId,SecureUtil.getTenantId());
+		List<SalaryItem> salaryItemList = salaryItemMapper.selectList(lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(salaryItemList)){
+			salaryItemMapper.deleteBatchIds(salaryItemList.stream().map(SalaryItem::getId).collect(Collectors.toList()));
+		}
+		int i = baseMapper.deleteBatchIds(Func.toLongList(ids));
+		if (i > 0){
+			return true;
+		}else {
+			return false;
+		}
+	}
+
 }