From c2d49ede268b5ab8df639e494caae02cde8b2599 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 24 十月 2025 10:25:57 +0800
Subject: [PATCH] 计费规则指标完成,人员管理职业技能处理
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TMissionController.java | 42 ++++++++++++++++++++++++++++++++----------
1 files changed, 32 insertions(+), 10 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TMissionController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TMissionController.java
index 30b117a..21d422e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TMissionController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TMissionController.java
@@ -47,8 +47,9 @@
private final TAppUserService appUserService;
private final TAppUserEquipmentService appUserEquipmentService;
private final TUserMajorService userMajorService;
+ private final TAppUserSkillService appUserSkillService;
@Autowired
- public TMissionController(TMissionService missionService, TMissionReassignService missionReassignService, TokenService tokenService, TMissionAssignRuleService missionAssignRuleService, TMissionAssignRuleIndicatorService missionAssignRuleIndicatorService, TAppUserService appUserService, TAppUserEquipmentService appUserEquipmentService, TUserMajorService userMajorService) {
+ public TMissionController(TMissionService missionService, TMissionReassignService missionReassignService, TokenService tokenService, TMissionAssignRuleService missionAssignRuleService, TMissionAssignRuleIndicatorService missionAssignRuleIndicatorService, TAppUserService appUserService, TAppUserEquipmentService appUserEquipmentService, TUserMajorService userMajorService, TAppUserSkillService appUserSkillService) {
this.missionService = missionService;
this.missionReassignService = missionReassignService;
this.tokenService = tokenService;
@@ -57,6 +58,7 @@
this.appUserService = appUserService;
this.appUserEquipmentService = appUserEquipmentService;
this.userMajorService = userMajorService;
+ this.appUserSkillService = appUserSkillService;
}
/**
@@ -155,6 +157,9 @@
// 查询专业信息
List<TUserMajor> userMajorList = userMajorService.list(Wrappers.lambdaQuery(TUserMajor.class)
.in(TUserMajor::getAppUserId,appUserIds));
+ // 查询技能信息
+ List<TAppUserSkill> appUserSkillList = appUserSkillService.list(Wrappers.lambdaQuery(TAppUserSkill.class)
+ .in(TAppUserSkill::getAppUserId,appUserIds));
for (TAppUser appUser : appUsers) {
double scoreTotal = 0;
@@ -162,6 +167,8 @@
List<TAppUserEquipment> userEquipments = appUserEquipmentList.stream().filter(appEquipment -> appUser.getId().equals(appEquipment.getAppUserId())).collect(Collectors.toList());
// 匹配专业信息
List<TUserMajor> userMajors = userMajorList.stream().filter(userMajor -> appUser.getId().equals(userMajor.getAppUserId())).collect(Collectors.toList());
+ // 匹配技能信息
+ List<TAppUserSkill> userSkills = appUserSkillList.stream().filter(appUserSkill -> appUser.getId().equals(appUserSkill.getAppUserId())).collect(Collectors.toList());
// 计算用户到任务的距离
double distance = GDMapGeocodingUtil.getDistance(Double.parseDouble(mission.getMissionLon()), Double.parseDouble(mission.getMissionLat()), Double.parseDouble(appUser.getLon()), Double.parseDouble(appUser.getLat()));
@@ -234,8 +241,16 @@
}
}
// 技能等级
- if(2 == i){
- // TODO 技能等级
+ if(2 == i && !CollectionUtils.isEmpty(userSkills)){
+ TAppUserSkill appUserSkill = userSkills.get(0);
+ int count = appUserSkill.getAdvancedCount() + appUserSkill.getIntermediateCount() + appUserSkill.getPrimaryCount();
+ if(count >= value){
+ // 得基准分值
+ scoreTotal += score;
+ }else{
+ // 训练次数 / 基准值 * 基准分值
+ scoreTotal += (double)count / value * score;
+ }
}
}
}
@@ -269,23 +284,30 @@
JSONArray trainingIndicators = JSONObject.parseArray(missionAssignRuleIndicator.getContent());
// 训练指标分数计算
// 实训次数
- Integer practicalTrainCount = appUser.getPracticalTrainCount();
+ Integer reconnaissanceMajor = appUser.getReconnaissanceMajor();
+ Integer otherCount = appUser.getOtherCount();
for (int i = 0; i < 3; i++) {
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(trainingIndicators.get(i)));
Integer value = jsonObject.getInteger("value");
Integer score = jsonObject.getInteger("score");
// 侦察专业成绩
if(0 == i){
- // TODO
- }
- // 训练次数
- if(1 == i){
- if(practicalTrainCount >= value){
+ if(reconnaissanceMajor >= value){
// 得基准分值
scoreTotal += score;
}else{
// 训练次数 / 基准值 * 基准分值
- scoreTotal += (double)practicalTrainCount / value * score;
+ scoreTotal += (double)reconnaissanceMajor / value * score;
+ }
+ }
+ // 训练次数
+ if(1 == i){
+ if(otherCount >= value){
+ // 得基准分值
+ scoreTotal += score;
+ }else{
+ // 训练次数 / 基准值 * 基准分值
+ scoreTotal += (double)otherCount / value * score;
}
}
}
--
Gitblit v1.7.1