jingyuanchao 2 роки тому
батько
коміт
54501bf972

+ 3 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/drill/dto/CoreDrillTaskEvaluateDto.java

@@ -12,4 +12,7 @@ public class CoreDrillTaskEvaluateDto {
 
     @ApiModelProperty(value = "评分")
     private String score;
+
+    @ApiModelProperty(value = "评语")
+    private String comment;
 }

+ 1 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/drill/dto/CoreDrillTaskReportDto.java

@@ -26,6 +26,7 @@ public class CoreDrillTaskReportDto {
 
     @ApiModelProperty(value = "统计月份结束日期")
     private Date endDate;
+
     private String orgPath;
 
 }

+ 5 - 5
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/drill/vo/CoreDrillTaskReportVo.java

@@ -9,7 +9,7 @@ import lombok.Data;
 public class CoreDrillTaskReportVo {
 
     @JsonSerialize(using = ToStringSerializer.class)
-    @ApiModelProperty(value = "教育培训计划Id")
+    @ApiModelProperty(value = "演练计划Id")
     private Long planId;
 
     @ApiModelProperty(value = "机构")
@@ -20,14 +20,14 @@ public class CoreDrillTaskReportVo {
     private String orgPath;
 
 
-    @ApiModelProperty(value = "应培训数量")
+    @ApiModelProperty(value = "应演练数量")
     private Integer shouldFinish;
 
-    @ApiModelProperty(value = "已培数量")
+    @ApiModelProperty(value = "已培演练数量")
     private Integer finish;
 
-    @ApiModelProperty(value = "培训完成率")
-    private String finishRate;
+    @ApiModelProperty(value = "评分")
+    private String score;
 
 
 }

+ 3 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/controller/CoreDrillTaskController.java

@@ -79,8 +79,8 @@ public class CoreDrillTaskController extends BaseController {
         return toAjax(coreDrillTaskService.deleteCoreDrillTaskByIds(ids));
     }
 
-    @ApiOperation(value = "导出预案任务")
-    @RequiresPermissions("core:drillTask:report")
+    @ApiOperation(value = "预案演练排行")
+    @RequiresPermissions("core:drillTask:list")
     @PostMapping("report")
     public AjaxResult report(@RequestBody @Validated CoreDrillTaskReportDto request) {
         return success(coreDrillTaskService.selectCoreDrillTaskReport(request));
@@ -108,7 +108,7 @@ public class CoreDrillTaskController extends BaseController {
 
     @ApiOperation(value = "预案演练任务评价")
     @RequiresPermissions("core:drillTask:edit")
-    @PostMapping("evaluate")
+    @PostMapping("/evaluate")
     public AjaxResult evaluate(@RequestBody @Validated CoreDrillTaskEvaluateDto request) {
         return success(coreDrillTaskService.evaluate(request));
     }

+ 15 - 8
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java

@@ -382,8 +382,9 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
             planId = null;
         }
 
-        request.setStartDate(DateUtil.beginOfMonth(request.getDate()));
-        request.setEndDate(DateUtil.endOfMonth(request.getDate()));
+        request.setStartDate(DateUtils.getStartAndEnd(request.getDate(), 4).getStartTime());
+
+        request.setEndDate(DateUtils.getStartAndEnd(request.getDate(), 4).getEndTime());
 
         Long orgId = request.getOrgId();
         SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(orgId, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
@@ -395,17 +396,15 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         }
         List<CoreDrillTaskReportVo> result = new ArrayList<>();
         List<CoreDrillTaskReportVo> list = coreDrillTaskMapper.selectReport(request, planId, planIdList);
-
         if (list.size() == 1 && list.get(0).getOrgId() == null) {
             //走到这 说明mapper没有查到数据 构建空数据返回
             for (SysOrg org : sysOrgList) {
-
                 CoreDrillTaskReportVo reportVo = new CoreDrillTaskReportVo();
                 reportVo.setOrgId(org.getId());
                 reportVo.setOrgName(org.getName());
                 reportVo.setShouldFinish(0);
                 reportVo.setFinish(0);
-                reportVo.setFinishRate("0%");
+                reportVo.setScore("0%");
                 result.add(reportVo);
             }
         } else {
@@ -415,20 +414,27 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
                 reportVo.setOrgId(org.getId());
                 reportVo.setOrgName(org.getName());
                 if (ObjectUtil.isEmpty(childrenOrgData)) {
-                    ;
                     reportVo.setShouldFinish(0);
                     reportVo.setFinish(0);
-                    reportVo.setFinishRate("0%");
+                    reportVo.setScore("0%");
                 } else {
                     childrenOrgData.stream().map(CoreDrillTaskReportVo::getShouldFinish).reduce(Integer::sum).ifPresent(reportVo::setShouldFinish);
                     childrenOrgData.stream().map(CoreDrillTaskReportVo::getFinish).reduce(Integer::sum).ifPresent(reportVo::setFinish);
-                    reportVo.setFinishRate(calculatePercent(reportVo.getFinish(), reportVo.getShouldFinish()));
+                    reportVo.setScore(calculateScore(childrenOrgData));
                 }
             }
         }
         return result;
     }
 
+    private String calculateScore(List<CoreDrillTaskReportVo> childrenOrgData) {
+            //将数组childrenOrgData中的score字段取出来转换成BigDecimal类型的数组,并计算出平均数,保留两位小数
+            BigDecimal avg = childrenOrgData.stream().map(CoreDrillTaskReportVo::getScore).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(childrenOrgData.size()), 2, RoundingMode.HALF_UP);
+            return  avg.toString();
+       // childrenOrgData.stream().map(CoreDrillTaskReportVo::getScore).map(BigDecimal::valueOf).
+
+    }
+
 
     @Override
     public Integer sign(CoreDrillTaskSignDto request) {
@@ -603,6 +609,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         CoreDrillTask drillTask = getById(request.getTaskId());
         drillTask.setCommentScore(request.getScore());
         drillTask.setStatus(DrillDoStatus.DONE.getCode());
+        drillTask.setComment(request.getComment());
         return baseMapper.updateById(drillTask);
     }
 }

+ 8 - 7
soc-modules/soc-modules-core/src/main/resources/mapper/drill/CoreDrillTaskMapper.xml

@@ -87,17 +87,17 @@
             <if test="request.startTime != null and request.endTime != null">
                 and (
                 (
-                #{request.startTime}   <![CDATA[<=]]> t.start_date
-                and #{request.endTime} >= t.start_date
+                    #{request.startTime}   <![CDATA[<=]]> t.start_date
+                and #{request.endTime}     <![CDATA[>=]]> t.start_date
                 )
                 or
                 (
-                #{request.startTime}    <![CDATA[<=]]> t.end_date
-                and #{request.endTime} >= t.end_date
+                    #{request.startTime}   <![CDATA[<=]]> t.end_date
+                and #{request.endTime}     <![CDATA[>=]]> t.end_date
                 )
                 or (
-                #{request.startTime} >= t.start_date
-                and #{request.endTime}  <![CDATA[<=]]>  t.end_date
+                    #{request.startTime}   <![CDATA[>=]]> t.start_date
+                and #{request.endTime}     <![CDATA[<=]]> t.end_date
                 )
                 )
             </if>
@@ -135,7 +135,8 @@
         t.org_name AS orgName,
         t.org_path AS orgPath,
         ifnull(count(0),0) AS shouldFinish,
-        ifnull(SUM(t.status = 3),0) AS finish
+        ifnull(SUM(t.status = 3),0) AS finish,
+        round(ifnull(avg(t.comment_score),0),2) AS score
         from core_drill_task t inner join sys_org o on t.org_id = o.id
         <where>
             <if test="request.orgPath != null">