Browse Source

学校修改

lazhaoqian 3 years ago
parent
commit
da2de1b3ae

+ 35 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/SchoolConfigItem.java

@@ -111,6 +111,41 @@ public class SchoolConfigItem implements Serializable {
 	 */
 	@ApiModelProperty(value = "租户id")
 	private String tenantId;
+	/**
+	 * 工作量工资标准
+	 */
+	@ApiModelProperty(value = "工作量工资标准")
+	private BigDecimal workloadSalaryName;
+	/**
+	 * 虚拟工作量工资标准
+	 */
+	@ApiModelProperty(value = "虚拟工作量工资标准")
+	private BigDecimal virtualWorkloadSalary;
+	/**
+	 * 双休日工作量工资标准
+	 */
+	@ApiModelProperty(value = "双休日工作量工资标准")
+	private BigDecimal doubleCease;
+	/**
+	 * 日常考核工资标准
+	 */
+	@ApiModelProperty(value = "日常考核工资标准")
+	private BigDecimal dailyAssessmentCriteriaName;
+	/**
+	 * 虚拟双休日工作量工资标准
+	 */
+	@ApiModelProperty(value = "虚拟双休日工作量工资标准")
+	private BigDecimal virtualDoubleCease;
+	/**
+	 * 虚拟日常考核标准
+	 */
+	@ApiModelProperty(value = "虚拟日常考核工资标准")
+	private BigDecimal virtualDailyAssessmentCriteria;
+	/**
+	 * 学期绩效工资标准
+	 */
+	@ApiModelProperty(value = "学期绩效工资标准")
+	private BigDecimal termPerformanceSalaryName;
 
 
 }

+ 13 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/ISchoolTeacherClient.java

@@ -5,8 +5,12 @@ import org.springblade.common.constant.LauncherConstant;
 import org.springblade.core.tool.api.R;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.List;
+
 @FeignClient(
 	value = LauncherConstant.APPLICATION_CLIENT_NAME
 )
@@ -17,6 +21,7 @@ public interface ISchoolTeacherClient {
 	String API_PREFIX = "/client";
 	String UPDATE_TEACHER_MESSAGE = API_PREFIX + "/updateTeacherMessage";
 	String GET_TEACHER_MESSAGE = API_PREFIX + "/getTeacherMessage";
+	String GET_TEACHER = API_PREFIX + "/getTeacher";
 
 
 	/**
@@ -33,4 +38,12 @@ public interface ISchoolTeacherClient {
 	 */
 	@GetMapping(GET_TEACHER_MESSAGE)
 	R<SchoolTeacher> getTeacherMessage(@RequestParam("idNumber") String idNumber);
+
+	/**
+	 * 获取基础资料信息
+	 * @param inSection
+	 * @return
+	 */
+	@GetMapping(GET_TEACHER)
+	R<List<SchoolTeacher>> getTeacher(@RequestParam("inSection") String inSection);
 }

+ 21 - 0
blade-service-api/blade-school-api/src/main/java/org/springblade/school/entity/SalaryItem.java

@@ -779,4 +779,25 @@ public class SalaryItem implements Serializable {
 	 */
 		@ApiModelProperty(value = "教研组长考核补贴标准")
 		private BigDecimal assessTeachingResearchName;
+
+	/**
+	 * 单价
+	 */
+	@ApiModelProperty(value = "课时费")
+	private BigDecimal monthPrice;
+	/**
+	 * 双休日工作量
+	 */
+	@ApiModelProperty(value = "双休日工作量")
+	private BigDecimal doubleHour;
+	/**
+	 * 双休日课时费单价
+	 */
+	@ApiModelProperty(value = "双休日课时费")
+	private BigDecimal doublePrice;
+	/**
+	 * 双休日课时费
+	 */
+	@ApiModelProperty(value = "双休日工作量工资")
+	private BigDecimal doubleMoney;
 }

+ 4 - 1
blade-service-api/blade-school-api/src/main/java/org/springblade/school/vo/SalaryItemVO.java

@@ -32,5 +32,8 @@ import io.swagger.annotations.ApiModel;
 @ApiModel(value = "SalaryItemVO对象", description = "通济学校-工资管理明细表")
 public class SalaryItemVO extends SalaryItem {
 	private static final long serialVersionUID = 1L;
-
+	/**
+	 * 学校部门
+	 */
+	private String inSection;
 }

+ 12 - 0
blade-service/blade-client/src/main/java/org/springblade/client/school/feign/SchoolTeacherClient.java

@@ -1,5 +1,6 @@
 package org.springblade.client.school.feign;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -12,6 +13,8 @@ import org.springblade.core.tool.api.R;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
+import java.util.List;
+
 @Slf4j
 @NonDS
 @ApiIgnore()
@@ -29,4 +32,13 @@ public class SchoolTeacherClient implements ISchoolTeacherClient {
 	public R<SchoolTeacher> getTeacherMessage(String idNumber) {
 		return R.data(schoolTeacherService.getOne(new QueryWrapper<SchoolTeacher>().eq("id_number",idNumber).eq("is_deleted",0).eq("tenant_id", SecureUtil.getTenantId())));
 	}
+
+	@Override
+	public R<List<SchoolTeacher>> getTeacher(String inSection) {
+		LambdaQueryWrapper<SchoolTeacher> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(SchoolTeacher::getInSection,inSection);
+		lambdaQueryWrapper.eq(SchoolTeacher::getIsDeleted,0);
+		lambdaQueryWrapper.eq(SchoolTeacher::getTenantId,SecureUtil.getTenantId());
+		return R.data(schoolTeacherService.list(lambdaQueryWrapper));
+	}
 }

+ 44 - 28
blade-service/blade-client/src/main/java/org/springblade/client/school/service/impl/SchoolTeacherServiceImpl.java

@@ -105,9 +105,10 @@ public class SchoolTeacherServiceImpl extends ServiceImpl<SchoolTeacherMapper, S
 			configMessage.setUpdateUser(SecureUtil.getUserId());
 			baseMapper.updateById(configMessage);
 		}
-		//计算工资基数标准 工资基数标准=工资拨付标准-工作量工资标准+虚拟工作量工资标准-日常考核标准-双休日工作量工资标准+虚拟双休日工作量工资标准-绩效工资标准
-		configMessage.setSalaryBase(configMessage.getSalaryWithdrawalStandard().subtract(configMessage.getWorkloadSalaryName()).add(configMessage.getVirtualWorkloadSalary())
-			.subtract(configMessage.getDailyAssessmentCriteriaName()).subtract(configMessage.getDoubleCease()).add(configMessage.getVirtualDoubleCease()).subtract(configMessage.getTermPerformanceSalaryName()));
+		//计算工资基数标准 工资基数标准=工资拨付标准-职级拨付标准-工作量工资标准+虚拟工作量工资标准-双休日工作量工资标准-日常考核标准+虚拟双休日工作量工资标准+虚拟日常考核工资标准-绩效工资标准
+		configMessage.setSalaryBase(configMessage.getSalaryWithdrawalStandard().subtract(configMessage.getRankWithdrawalStandardName()).subtract(configMessage.getWorkloadSalaryName())
+			.add(configMessage.getVirtualWorkloadSalary()).subtract(configMessage.getDoubleCease()).subtract(configMessage.getDailyAssessmentCriteriaName())
+			.add(configMessage.getVirtualDoubleCease()).add(configMessage.getVirtualDailyAssessmentCriteria()).subtract(configMessage.getTermPerformanceSalaryName()));
 		configMessage.setSalaryBaseName(configMessage.getSalaryBase());
 		baseMapper.updateById(configMessage);
 		if (CollectionUtils.isNotEmpty(configMessage.getCauseList())){
@@ -186,9 +187,10 @@ public class SchoolTeacherServiceImpl extends ServiceImpl<SchoolTeacherMapper, S
 				configMessage.setUpdateTime(new Date());
 				baseMapper.updateById(configMessage);
 			}
-			//计算工资基数标准 工资基数标准=工资拨付标准-工作量工资标准+虚拟工作量工资标准-日常考核标准-双休日工作量工资标准+虚拟双休日工作量工资标准-绩效工资标准
-			configMessage.setSalaryBase(configMessage.getSalaryWithdrawalStandard().subtract(configMessage.getWorkloadSalaryName()).add(configMessage.getVirtualWorkloadSalary())
-			.subtract(configMessage.getDailyAssessmentCriteriaName()).subtract(configMessage.getDoubleCease()).add(configMessage.getVirtualDoubleCease()).subtract(configMessage.getTermPerformanceSalaryName()));
+			//计算工资基数标准 工资基数标准=工资拨付标准-职级拨付标准-工作量工资标准+虚拟工作量工资标准-双休日工作量工资标准-日常考核标准+虚拟双休日工作量工资标准+虚拟日常考核工资标准-绩效工资标准
+			configMessage.setSalaryBase(configMessage.getSalaryWithdrawalStandard().subtract(configMessage.getRankWithdrawalStandardName()).subtract(configMessage.getWorkloadSalaryName())
+				.add(configMessage.getVirtualWorkloadSalary()).subtract(configMessage.getDoubleCease()).subtract(configMessage.getDailyAssessmentCriteriaName())
+				.add(configMessage.getVirtualDoubleCease()).add(configMessage.getVirtualDailyAssessmentCriteria()).subtract(configMessage.getTermPerformanceSalaryName()));
 			configMessage.setSalaryBaseName(configMessage.getSalaryBase());
 			baseMapper.updateById(configMessage);
 		}
@@ -214,9 +216,10 @@ public class SchoolTeacherServiceImpl extends ServiceImpl<SchoolTeacherMapper, S
 				item.setSchoolAge(new BigDecimal(Math.floorDiv(result, 12)));
 				//更新完校龄重新计算标准
 				SchoolTeacher configMessage = this.getConfigMessage(item);
-				//计算工资基数标准 工资基数标准=工资拨付标准-工作量工资标准+虚拟工作量工资标准-日常考核标准-双休日工作量工资标准+虚拟双休日工作量工资标准-绩效工资标准
-				configMessage.setSalaryBase(configMessage.getSalaryWithdrawalStandard().subtract(configMessage.getWorkloadSalaryName()).add(configMessage.getVirtualWorkloadSalary())
-					.subtract(configMessage.getDailyAssessmentCriteriaName()).subtract(configMessage.getDoubleCease()).add(configMessage.getVirtualDoubleCease()).subtract(configMessage.getTermPerformanceSalaryName()));
+				//计算工资基数标准 工资基数标准=工资拨付标准-职级拨付标准-工作量工资标准+虚拟工作量工资标准-双休日工作量工资标准-日常考核标准+虚拟双休日工作量工资标准+虚拟日常考核工资标准-绩效工资标准
+				configMessage.setSalaryBase(configMessage.getSalaryWithdrawalStandard().subtract(configMessage.getRankWithdrawalStandardName()).subtract(configMessage.getWorkloadSalaryName())
+					.add(configMessage.getVirtualWorkloadSalary()).subtract(configMessage.getDoubleCease()).subtract(configMessage.getDailyAssessmentCriteriaName())
+					.add(configMessage.getVirtualDoubleCease()).add(configMessage.getVirtualDailyAssessmentCriteria()).subtract(configMessage.getTermPerformanceSalaryName()));
 				configMessage.setSalaryBaseName(configMessage.getSalaryBase());
 				baseMapper.updateById(configMessage);
 			});
@@ -232,9 +235,10 @@ public class SchoolTeacherServiceImpl extends ServiceImpl<SchoolTeacherMapper, S
 			throw new RuntimeException("未找到职工信息");
 		}
 		SchoolTeacher configMessage = this.getConfigMessage(teacher);
-		//计算工资基数标准 工资基数标准=工资拨付标准-工作量工资标准+虚拟工作量工资标准-日常考核标准-双休日工作量工资标准+虚拟双休日工作量工资标准-绩效工资标准
-		configMessage.setSalaryBase(configMessage.getSalaryWithdrawalStandard().subtract(configMessage.getWorkloadSalaryName()).add(configMessage.getVirtualWorkloadSalary())
-			.subtract(configMessage.getDailyAssessmentCriteriaName()).subtract(configMessage.getDoubleCease()).add(configMessage.getVirtualDoubleCease()).subtract(configMessage.getTermPerformanceSalaryName()));
+		//计算工资基数标准 工资基数标准=工资拨付标准-职级拨付标准-工作量工资标准+虚拟工作量工资标准-双休日工作量工资标准-日常考核标准+虚拟双休日工作量工资标准+虚拟日常考核工资标准-绩效工资标准
+		configMessage.setSalaryBase(configMessage.getSalaryWithdrawalStandard().subtract(configMessage.getRankWithdrawalStandardName()).subtract(configMessage.getWorkloadSalaryName())
+		.add(configMessage.getVirtualWorkloadSalary()).subtract(configMessage.getDoubleCease()).subtract(configMessage.getDailyAssessmentCriteriaName())
+		.add(configMessage.getVirtualDoubleCease()).add(configMessage.getVirtualDailyAssessmentCriteria()).subtract(configMessage.getTermPerformanceSalaryName()));
 		configMessage.setSalaryBaseName(configMessage.getSalaryBase());
 		baseMapper.updateById(configMessage);
 		return R.data(configMessage);
@@ -248,9 +252,10 @@ public class SchoolTeacherServiceImpl extends ServiceImpl<SchoolTeacherMapper, S
 				throw new RuntimeException("未找到职工信息");
 			}
 			SchoolTeacher configMessage = this.getConfigMessage(teacher);
-			//计算工资基数标准 工资基数标准=工资拨付标准-工作量工资标准+虚拟工作量工资标准-日常考核标准-双休日工作量工资标准+虚拟双休日工作量工资标准-绩效工资标准
-			configMessage.setSalaryBase(configMessage.getSalaryWithdrawalStandard().subtract(configMessage.getWorkloadSalaryName()).add(configMessage.getVirtualWorkloadSalary())
-				.subtract(configMessage.getDailyAssessmentCriteriaName()).subtract(configMessage.getDoubleCease()).add(configMessage.getVirtualDoubleCease()).subtract(configMessage.getTermPerformanceSalaryName()));
+			//计算工资基数标准 工资基数标准=工资拨付标准-职级拨付标准-工作量工资标准+虚拟工作量工资标准-双休日工作量工资标准-日常考核标准+虚拟双休日工作量工资标准+虚拟日常考核工资标准-绩效工资标准
+			configMessage.setSalaryBase(configMessage.getSalaryWithdrawalStandard().subtract(configMessage.getRankWithdrawalStandardName()).subtract(configMessage.getWorkloadSalaryName())
+				.add(configMessage.getVirtualWorkloadSalary()).subtract(configMessage.getDoubleCease()).subtract(configMessage.getDailyAssessmentCriteriaName())
+				.add(configMessage.getVirtualDoubleCease()).add(configMessage.getVirtualDailyAssessmentCriteria()).subtract(configMessage.getTermPerformanceSalaryName()));
 			configMessage.setSalaryBaseName(configMessage.getSalaryBase());
 			baseMapper.updateById(configMessage);
 		});
@@ -271,27 +276,45 @@ public class SchoolTeacherServiceImpl extends ServiceImpl<SchoolTeacherMapper, S
 					schoolTeacher.getSalaryWithdrawalStandardName(), "工资拨付标准", null,null);
 				if (configItem != null){
 					schoolTeacher.setSalaryWithdrawalStandard(configItem.getSalary());
-					schoolTeacher.setSalaryWithdrawalStandardName(configItem.getSalary().toString());
+					schoolTeacher.setWorkloadSalaryName(configItem.getWorkloadSalaryName());//工作量工资标准
+					schoolTeacher.setVirtualWorkloadSalary(configItem.getVirtualWorkloadSalary());//虚拟工作量工资标准
+					schoolTeacher.setDoubleCease(configItem.getDoubleCease());//双休日工作量工资标准
+					schoolTeacher.setDailyAssessmentCriteriaName(configItem.getDailyAssessmentCriteriaName());//日常考核工资标准
+					schoolTeacher.setVirtualDoubleCease(configItem.getVirtualDoubleCease());//虚拟双休日工作量工资标准
+					schoolTeacher.setVirtualDailyAssessmentCriteria(configItem.getVirtualDailyAssessmentCriteria());//虚拟日常考核工资标准
+					schoolTeacher.setTermPerformanceSalaryName(configItem.getTermPerformanceSalaryName());//学期绩效工资标准
 				}
 			}else {
 				schoolTeacher.setSalaryWithdrawalStandard(configMessage.getSalary());
-				schoolTeacher.setSalaryWithdrawalStandardName(configMessage.getSalary().toString());
+				schoolTeacher.setWorkloadSalaryName(configMessage.getWorkloadSalaryName());//工作量工资标准
+				schoolTeacher.setVirtualWorkloadSalary(configMessage.getVirtualWorkloadSalary());//虚拟工作量工资标准
+				schoolTeacher.setDoubleCease(configMessage.getDoubleCease());//双休日工作量工资标准
+				schoolTeacher.setDailyAssessmentCriteriaName(configMessage.getDailyAssessmentCriteriaName());//日常考核工资标准
+				schoolTeacher.setVirtualDoubleCease(configMessage.getVirtualDoubleCease());//虚拟双休日工作量工资标准
+				schoolTeacher.setVirtualDailyAssessmentCriteria(configMessage.getVirtualDailyAssessmentCriteria());//虚拟日常考核工资标准
+				schoolTeacher.setTermPerformanceSalaryName(configMessage.getTermPerformanceSalaryName());//学期绩效工资标准
 			}
 		}else {
-			SchoolConfigItem configMessage = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), schoolTeacher.getSalaryWithdrawalStandardName(), "工资拨付标准", schoolTeacher.getRankType(),null);
+			SchoolConfigItem configMessage = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(),
+				schoolTeacher.getInSection(), schoolTeacher.getSalaryWithdrawalStandardName(),
+				"工资拨付标准", schoolTeacher.getRankType(),null);
 			if (configMessage != null){
 				if (schoolTeacher.getClassType().equals("非文化课")){
 					schoolTeacher.setSalaryWithdrawalStandard(configMessage.getSalary());
-					schoolTeacher.setSalaryWithdrawalStandardName(configMessage.getSalary().toString());
 				}else if (schoolTeacher.getClassType().equals("文化课")){
 					schoolTeacher.setSalaryWithdrawalStandard(configMessage.getSalary().add(new BigDecimal(700)));
-					schoolTeacher.setSalaryWithdrawalStandardName(configMessage.getSalary().add(new BigDecimal(700)).toString());
 				}
+				schoolTeacher.setWorkloadSalaryName(configMessage.getWorkloadSalaryName());//工作量工资标准
+				schoolTeacher.setVirtualWorkloadSalary(configMessage.getVirtualWorkloadSalary());//虚拟工作量工资标准
+				schoolTeacher.setDoubleCease(configMessage.getDoubleCease());//双休日工作量工资标准
+				schoolTeacher.setDailyAssessmentCriteriaName(configMessage.getDailyAssessmentCriteriaName());//日常考核工资标准
+				schoolTeacher.setVirtualDoubleCease(configMessage.getVirtualDoubleCease());//虚拟双休日工作量工资标准
+				schoolTeacher.setVirtualDailyAssessmentCriteria(configMessage.getVirtualDailyAssessmentCriteria());//虚拟日常考核工资标准
+				schoolTeacher.setTermPerformanceSalaryName(configMessage.getTermPerformanceSalaryName());//学期绩效工资标准
 			}
 		}
 		if (schoolTeacher.getSalaryWithdrawalStandard() != null && schoolTeacher.getStaffType().equals("非教师")){
 			schoolTeacher.setSalaryWithdrawalStandard(schoolTeacher.getSalaryWithdrawalStandard().multiply(new BigDecimal(0.8)));
-			schoolTeacher.setSalaryWithdrawalStandardName(schoolTeacher.getSalaryWithdrawalStandard().multiply(new BigDecimal(0.8)).toString());
 		}
 		//获取职级拨付标准 按校龄取值 查询不到不赋值
 		SchoolConfigItem teacherSubsidy = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(),
@@ -325,37 +348,31 @@ public class SchoolTeacherServiceImpl extends ServiceImpl<SchoolTeacherMapper, S
 		SchoolConfigItem assessTeachingResearch = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), null, "教研组长补贴标准", null,schoolTeacher.getCompileCategory());
 		if (assessTeachingResearch != null){
 			schoolTeacher.setAssessTeachingResearch(assessTeachingResearch.getSalary());
-			schoolTeacher.setAssessTeachingResearchName(assessTeachingResearch.getSalary());
 		}
 		//教研组长考核补贴标准
 		SchoolConfigItem assessTeachingResearchName = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), null, "教研组长考核补贴标准", null,schoolTeacher.getCompileCategory());
 		if (assessTeachingResearchName != null){
 			schoolTeacher.setAssessTeachingResearchName(assessTeachingResearchName.getSalary());
-			schoolTeacher.setAssessTeachingResearch(assessTeachingResearchName.getSalary());
 		}
 		//备课组长补贴标准
 		SchoolConfigItem assessPrepareLessonsName = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), null, "备课组长补贴标准", null,schoolTeacher.getCompileCategory());
 		if (assessPrepareLessonsName != null){
 			schoolTeacher.setAssessPrepareLessonsName(assessPrepareLessonsName.getSalary());
-			schoolTeacher.setAssessPrepareLessons(assessPrepareLessonsName.getSalary());
 		}
 		//备课组长考核补贴标准
 		SchoolConfigItem assessPrepareLessons = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), null, "备课组长考核补贴标准", null,schoolTeacher.getCompileCategory());
 		if (assessPrepareLessons != null){
 			schoolTeacher.setAssessPrepareLessons(assessPrepareLessons.getSalary());
-			schoolTeacher.setAssessPrepareLessonsName(assessPrepareLessons.getSalary());
 		}
 		//领导干部补贴标准
 		SchoolConfigItem assessLeadingCadreSubsidyName = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), null, "领导干部补贴标准", null,schoolTeacher.getCompileCategory());
 		if (assessLeadingCadreSubsidyName != null){
 			schoolTeacher.setAssessLeadingCadreSubsidyName(assessLeadingCadreSubsidyName.getSalary());
-			schoolTeacher.setAssessLeadingCadreSubsidy(assessLeadingCadreSubsidyName.getSalary());
 		}
 		//领导干部考核补贴标准
 		SchoolConfigItem assessLeadingCadreSubsidy = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), null, "领导干部考核补贴标准", null,schoolTeacher.getCompileCategory());
 		if (assessLeadingCadreSubsidy != null){
 			schoolTeacher.setAssessLeadingCadreSubsidy(assessLeadingCadreSubsidy.getSalary());
-			schoolTeacher.setAssessLeadingCadreSubsidyName(assessLeadingCadreSubsidy.getSalary());
 		}
 		//学历工资
 		SchoolConfigItem code = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), null, "学历标准", schoolTeacher.getCode(), null);
@@ -366,7 +383,6 @@ public class SchoolTeacherServiceImpl extends ServiceImpl<SchoolTeacherMapper, S
 		SchoolConfigItem rankSalaryName = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), null, "职级等级标准", schoolTeacher.getRankSalaryName(), null);
 		if (rankSalaryName != null){
 			schoolTeacher.setRankSalary(rankSalaryName.getSalary());
-			schoolTeacher.setRankSalaryName(rankSalaryName.getSalary().toString());
 		}
 		//增资标准
 		SchoolConfigItem capitalIncreaseName = schoolConfigItemMapper.getConfigMessage(schoolTeacher.getTenantId(), schoolTeacher.getInSection(), null, "增资标准", schoolTeacher.getSchoolAge().toString(), null);

+ 38 - 1
blade-service/blade-school/src/main/java/org/springblade/school/controller/SalaryItemController.java

@@ -1149,11 +1149,48 @@ public class SalaryItemController extends BladeController {
 	@GetMapping("/criterion")
 	@ApiOperationSupport(order = 63)
 	@ApiOperation(value = "重新导入工资标准", notes = "传入salaryItem 的 pid")
-	public R<SalaryItem> criterion(SalaryItem salaryItem) {
+	public R<SalaryItem> criterion(SalaryItemVO salaryItem) {
 		if (salaryItem.getPid() == null){
 			throw new SecurityException("请选择要重新导入的数据");
 		}
 		return salaryItemService.criterion(salaryItem);
 	}
+	/**
+	 * 导入双休日工作量模板
+	 */
+	@GetMapping("/export/doubleWorkloadExcel")
+	@ApiOperationSupport(order = 64)
+	@ApiOperation(value = "导入模板-工资管理-小学部-双休日模板")
+	public void exportDoubleWorkloadExcel(HttpServletResponse response) {
+		List<DoubleWorkloadExcel> list = new ArrayList<DoubleWorkloadExcel>();
+		ExcelUtil.export(response, "双休日工作量", "双休日工作量", list, DoubleWorkloadExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-双休日工作量导入
+	 *
+	 * */
+	@PostMapping("/import/doubleWorkloadExcel")
+	@ApiOperationSupport(order = 65)
+	@ApiOperation(value = "导入-工资管理-小学部-双休日工作量导入", notes = "传入excel")
+	public R importDoubleWorkloadExcel(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		//校验模板
+		String excelPattern = null;
+		try {
+			excelPattern = ExcelCheck.checkExcelPattern(file, new DoubleWorkloadExcel());
+		} catch (Exception e) {
+			throw new SecurityException("校验Excel失败");
+		}
+		if (StringUtils.isNotBlank(excelPattern)){
+			throw new SecurityException(excelPattern);
+		}
+		//导入数据
+		List<DoubleWorkloadExcel> excelList = ExcelUtil.read(file, DoubleWorkloadExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importDoubleWorkloadExcel(excelList,false,id,file);
+	}
 
 }

+ 42 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/DoubleWorkloadExcel.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(15)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class DoubleWorkloadExcel implements Serializable {
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	@ColumnWidth(35)
+	private String idNumber;
+	/**
+	 * 月份课时
+	 */
+	@ExcelProperty(value = "工作量")
+	private BigDecimal doubleHour;
+	/**
+	 * 单价
+	 */
+	@ExcelProperty(value = "课时费")
+	private BigDecimal doublePrice;
+
+}

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

@@ -31,16 +31,11 @@ public class WorkloadExcel implements Serializable {
 	/**
 	 * 月份课时
 	 */
-	@ExcelProperty(value = "课时(默认 0)")
+	@ExcelProperty(value = "工作量")
 	private BigDecimal monthHour;
 	/**
 	 * 单价
 	 */
-	@ExcelProperty(value = "单价(默认 0)")
-	private BigDecimal price;
-	/**
-	 * 月份课时工资
-	 */
-	@ExcelProperty(value = "课时费(默认 0)")
-	private BigDecimal momthWorkloadSalary;
+	@ExcelProperty(value = "课时费")
+	private BigDecimal monthPrice;
 }

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

@@ -259,8 +259,14 @@ public interface ISalaryItemService extends IService<SalaryItem> {
 	 * @param salaryItem
 	 * @return
 	 */
-	R criterion(SalaryItem salaryItem);
-
+	R criterion(SalaryItemVO salaryItem);
 
+	/**
+	 * 导入双休日工作量
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R importDoubleWorkloadExcel(List<DoubleWorkloadExcel> data, Boolean isCovered, Long id,MultipartFile file);
 
 }

+ 96 - 15
blade-service/blade-school/src/main/java/org/springblade/school/service/impl/SalaryItemServiceImpl.java

@@ -1447,22 +1447,101 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 	 */
 	@Override
 	@Transactional
-	public R criterion(SalaryItem salaryItem) {
-		LambdaQueryWrapper<SalaryItem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(SalaryItem::getPid, salaryItem.getPid());
-		lambdaQueryWrapper.eq(SalaryItem::getTenantId, SecureUtil.getTenantId());
-		lambdaQueryWrapper.eq(SalaryItem::getIsDeleted, 0);
-		List<SalaryItem> list = baseMapper.selectList(lambdaQueryWrapper);
-		if (CollectionUtils.isNotEmpty(list)){
-			list.stream().forEach(item ->{
-				SalaryItem clientMessage = this.getClientMessage(item);
-				if (clientMessage!= null){
-					baseMapper.updateById(clientMessage);
-					this.countSalary(clientMessage);
-				}
+	public R criterion(SalaryItemVO salaryItem) {
+		List<SalaryItem> list = new ArrayList<>();
+		R<List<SchoolTeacher>> teacher = schoolTeacherClient.getTeacher(salaryItem.getInSection());
+		if (teacher.isSuccess() && CollectionUtils.isNotEmpty(teacher.getData())){
+			teacher.getData().stream().forEach(item ->{
+				SalaryItem salary = new SalaryItem();
+				salary.setCname(item.getCname());//姓名
+				salary.setIdNumber(item.getIdNumber());//身份证
+				salary.setPositiveTime(item.getBirthdate());//转正日期
+				salary.setPosition(item.getCompileCategory());//职务
+				salary.setDiscipline(item.getClassType());//学科
+				salary.setItemType(item.getSalaryWithdrawalStandardName());//教师类别
+				salary.setTermPerformanceSalaryName(item.getTermPerformanceSalaryName());//学期绩效标准
+				salary.setSalaryWithdrawalStandard(item.getSalaryWithdrawalStandard());//工资拨付标准
+				salary.setRankWithdrawalStandard(item.getRankWithdrawalStandardName());//职级拨付标准
+				salary.setRankSalary(item.getRankSalary());//职级工资
+				salary.setPerformanceAward(item.getPerformanceAward());//履约奖
+				salary.setSchoolAgeSalary(item.getSchoolAgeSalary());//校龄工资
+				salary.setCapitalIncrease(item.getCapitalIncrease());//增资
+				salary.setEducationSalary(item.getEducationSalary());//学历工资
+				salary.setSalaryBase(item.getSalaryBase());//工资基数
+				salary.setSalaryBaseName(item.getSalaryBaseName());//工资基数标准
+				salary.setWorkloadSalaryCritertion(item.getWorkloadSalaryName());//工作量工资标准
+				salary.setVirtualWorkloadSalary(item.getVirtualWorkloadSalary());//虚拟工作量工资标准
+				salary.setDoubleCease(item.getDoubleCease());//双休日工作量工资标准
+				salary.setVirtualDoubleCease(item.getVirtualDoubleCease());//虚拟双休日工作量工资标准
+				salary.setVirtualDailyAssessmentCriteria(item.getVirtualDailyAssessmentCriteria());//虚拟日常考核标准
+				salary.setDailyAssessmentCriteria(item.getDailyAssessmentCriteriaName());//日常考核标准
+				salary.setDailyAssessmentSalary(item.getDailyAssessmentSalary());//日常考核工资
+				salary.setTermPerformanceSalary(item.getTermPerformanceSalary());//学期绩效工资
+				salary.setLeadingCadreSubsidy(item.getLeadingCadreSubsidy());//领导干部补贴
+				salary.setPrepareLessons(item.getPrepareLessons());//备课组长
+				salary.setTeachingResearch(item.getTeachingResearch());//教研组长
+				salary.setClassTeacherFee(item.getTeacherSubsidy());//班主任费
+				salary.setTeacherSubsidy(item.getTeacherSubsidy());//班主任补贴标准
+				salary.setTeacherAssessSubsidy(item.getTeacherAssessSubsidy());//班主任考核补贴标准
+				salary.setPerformanceAwardName(item.getPerformanceAwardName());//履约奖标准
+				salary.setCapitalIncreaseName(item.getCapitalIncreaseName());//增资标准
+				salary.setLeadingCadreSubsidyName(item.getLeadingCadreSubsidyName());//领导干部补贴标准
+				salary.setAssessLeadingCadreSubsidyName(item.getAssessLeadingCadreSubsidyName());//领导干部考核补贴标准
+				salary.setPrepareLessonsName(item.getPrepareLessonsName());//备课组长补贴标准
+				salary.setAssessPrepareLessonsName(item.getAssessPrepareLessonsName());//备课组长考核补贴标准
+				salary.setTeachingResearchName(item.getTeachingResearchName());//教研组长补贴标准
+				salary.setAssessTeachingResearchName(item.getAssessTeachingResearchName());//教研组长考核补贴标准
+				salary.setWorkloadSalaryCritertion(item.getWorkloadSalaryName());
+				list.add(salary);
 			});
 		}
-		return R.success("导入完成");
+		return R.data(list);
+	}
+
+	@Override
+	public R importDoubleWorkloadExcel(List<DoubleWorkloadExcel> data, Boolean isCovered, Long id, MultipartFile file) {
+		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++)
+		{
+			DoubleWorkloadExcel doubleWorkloadExcel = data.get(i);
+			if (StringUtils.isBlank(doubleWorkloadExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(doubleWorkloadExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(doubleWorkloadExcel,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);
+			}
+		}
+		//保存上传记录
+		this.saveAccessory(file,id);
+		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("导入失败");
+		}
 	}
 
 	/**
@@ -1483,8 +1562,10 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		// 9. 实发工资 = BT153(应发工资) - BU153(个税)-BQ153(保险个人)-BS153(公积金个人)
 		SalaryItem item = baseMapper.selectById(salaryItem.getId());
 		if (item != null){
+			item.setMomthWorkloadSalary(item.getMonthHour().multiply(item.getMonthPrice()));//工作量工资计算
+			item.setDoubleMoney(item.getDoubleHour().multiply(item.getDoublePrice()));//双休日工作量工资
 			item.setBasicsSalary(item.getSchoolAgeSalary().add(item.getCapitalIncrease()).add(item.getEducationSalary()).add(item.getRankSalary()).add(item.getSalaryBase()));//基础工资
-			item.setWorkloadSalary(item.getMomthWorkloadSalary().add(item.getVacationOvertimePay()).add(item.getCustomWorkloadSalary()));//工作量工资
+			item.setWorkloadSalary(item.getMomthWorkloadSalary().add(item.getVacationOvertimePay()).add(item.getCustomWorkloadSalary()).add(item.getDoubleMoney()));//工作量工资
 			item.setAwardSalary(item.getCustomAward().add(item.getCustomAwardOne()).add(item.getCustomAwardTwo()).add(item.getCustomAwardThree()).add(item.getCustomAwardFour()).add(item.getCustomAwardFive()).add(item.getCustomAwardSix()).add(item.getCustomAwardSeven()).add(item.getCustomAwardEight()).add(item.getCustomAwardNine()));//奖励工资
 			item.setDutyAllowances(item.getPrepareLessons().add(item.getLeadingCadreSubsidy()).add(item.getTeachingResearch()));//职务津贴
 			item.setClassTeacherSubsidy(item.getClassTeacherFee().add(item.getClasses()));//班主任津贴