Przeglądaj źródła

Merge remote-tracking branch 'origin/dev' into pre

dzx 11 miesięcy temu
rodzic
commit
5c5e5f2f39

+ 1 - 1
src/main/java/com/xjrsoft/module/assessment/service/impl/AssessmentTemplatePlanServiceImpl.java

@@ -820,7 +820,7 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
             weChatSendMessageDto.setUserId(user.getOpenId());
 
             weChatSendMessageDto.setTemplateId(templateId);
-            weChatSendMessageDto.setUrl(StrUtil.format("{}/pages/student/canteen/evaluate?id={}", commonPropertiesConfig.getDomainApp(), templatePlan.getId()));
+            weChatSendMessageDto.setUrl(StrUtil.format("{}/pages/student/canteen/index", commonPropertiesConfig.getDomainApp()));
             weChatSendMessageDto.setMsgId(IdUtil.getSnowflakeNextIdStr());
 
             JSONObject paramJson = new JSONObject();

+ 0 - 11
src/main/java/com/xjrsoft/module/schedule/util/DataUtil.java

@@ -678,18 +678,7 @@ public class DataUtil {
             if(!teacher_serial_nos.isEmpty()){
                 teacher_serial_no = teacher_serial_nos.toString().replace("[", "").replace("]", "");
             }
-            String onlyKey = scheduleDate + classId + timeNumber;
             String keyInfo = teacherId + "_" + classId + "_" + scheduleDate + "_" + courseClassId + "_" + siteId + "_" + timeNumber;
-            if(oldDataMap.get(onlyKey) != null){
-                String updSql = "update course_table set teacher_serial_no = '" + teacher_serial_no + "'" +
-                        ", teacher_id = '" + teacherId
-                        + "', teacher_name = '" + teacherName + "', modify_date = now()" +
-                        " ,course_id = " + courseClassId + ", course_name = '" + courseClassName
-                        + "',key_info = '" + keyInfo + "'" +
-                        " where schedule_date = '" + scheduleDate + "' and class_id = " + classId + " and time_number = " + timeNumber + ";";
-                updateSqlList.add(updSql);
-                continue;
-            }
 
             Entity entity = Entity.create(tableName);
             entity.set("id", IdUtil.getSnowflakeNextId());

+ 2 - 0
src/main/java/com/xjrsoft/module/student/dto/BaseStudentAssessmentInspectionMobilePageDto.java

@@ -29,4 +29,6 @@ public class BaseStudentAssessmentInspectionMobilePageDto extends PageInput {
 
     @ApiModelProperty("考核日期-结束")
     private String endDate;
+
+
 }

+ 4 - 1
src/main/java/com/xjrsoft/module/student/dto/CalssQuantitativeAssessmentPageDto.java

@@ -61,7 +61,7 @@ public class CalssQuantitativeAssessmentPageDto extends PageInput {
     /**
      * 学期ID(base_semester)每一种统计数据需要关联学期
      */
-    @ApiModelProperty(value = "学期ID(base_semester)")
+    @ApiModelProperty(value = "考核类别id")
     private Long baseStudentAssessmentCategoryId;
 
     @ApiModelProperty("年份")
@@ -69,4 +69,7 @@ public class CalssQuantitativeAssessmentPageDto extends PageInput {
 
     @ApiModelProperty("月份")
     private Integer month;
+
+    @ApiModelProperty(value = "考核类别code")
+    private String categoryCode;
 }

+ 4 - 1
src/main/java/com/xjrsoft/module/student/dto/QuantitativeAssessmentSingleScoreDto.java

@@ -17,7 +17,7 @@ public class QuantitativeAssessmentSingleScoreDto implements Serializable {
     /**
      * 学期ID(base_semester)每一种统计数据需要关联学期
      */
-    @ApiModelProperty("学期ID(base_semester)")
+    @ApiModelProperty("考核类别id")
     private Long baseStudentAssessmentCategoryId;
     /**
      * 学期ID(base_semester)每一种统计数据需要关联学期
@@ -34,4 +34,7 @@ public class QuantitativeAssessmentSingleScoreDto implements Serializable {
      */
     @ApiModelProperty("结束时间")
     private LocalDateTime endTime;
+
+    @ApiModelProperty(value = "考核类别code")
+    private String categoryCode;
 }

+ 119 - 44
src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentAssessmentInspectionServiceImpl.java

@@ -176,7 +176,7 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
 
     @Override
     public Page<BaseStudentAssessmentInspectionMobilePageVo> getMobilePage(Page<BaseStudentAssessmentInspectionMobilePageDto> page, BaseStudentAssessmentInspectionMobilePageDto dto) {
-        if (dto.getClassIds() == null || dto.getClassIds().size() == 0) {
+        if (dto.getClassIds() == null || dto.getClassIds().isEmpty()) {
             // 获取当前用户所管班级
             List<Long> classIds = baseClassMapper.selectList(
                     Wrappers.<BaseClass>query().lambda()
@@ -185,17 +185,10 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
             ).stream().map(BaseClass::getId).collect(Collectors.toList());
             dto.setClassIds(classIds);
         }
-        if (dto.getClassIds() == null || dto.getClassIds().size() == 0) {
+        if (dto.getClassIds() == null || dto.getClassIds().isEmpty()) {
             return null;
         }
-        Page<BaseStudentAssessmentInspectionMobilePageVo> result = assessmentInspectionMapper.getMobilePage(page, dto);
-        // 处理加减分
-        result.getRecords().forEach((node) -> {
-            if (node.getScoreType().equals(ScoreTypeEnum.ScoreMinus.getCode())) {
-                node.setScore(node.getScore() * -1);
-            }
-        });
-        return result;
+        return assessmentInspectionMapper.getMobilePage(page, dto);
     }
 
     @Override
@@ -206,12 +199,17 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
             result.setScore(result.getScore() * -1);
         }
 
+        MPJLambdaWrapper<BaseStudentAssessmentStudentRelation> baseStudentAssessmentStudentRelationWrapper = new MPJLambdaWrapper<>();
+        baseStudentAssessmentStudentRelationWrapper
+                .select(BaseStudentAssessmentStudentRelation::getId)
+                .selectAs(XjrUser::getName,BaseStudentAssessmentStudentRelation::getName)
+                .selectAs(XjrUser::getCredentialNumber,BaseStudentAssessmentStudentRelation::getStudentId)
+                .eq(BaseStudentAssessmentStudentRelation::getBaseStudentAssessmentInspectionId, result.getBaseStudentAssessmentInspectionId())
+                .eq(BaseStudentAssessmentStudentRelation::getClassId, result.getClassId())
+                .leftJoin(XjrUser.class, XjrUser::getId, BaseStudentAssessmentStudentRelation::getUserId)
+        ;
         // 获取学生信息
-        List<BaseStudentAssessmentStudentRelation> baseStudentAssessmentStudentRelations = assessmentStudentRelationMapper.selectList(
-                Wrappers.<BaseStudentAssessmentStudentRelation>query().lambda()
-                        .eq(BaseStudentAssessmentStudentRelation::getBaseStudentAssessmentInspectionId, result.getBaseStudentAssessmentInspectionId())
-                        .eq(BaseStudentAssessmentStudentRelation::getClassId, result.getClassId())
-        );
+        List<BaseStudentAssessmentStudentRelation> baseStudentAssessmentStudentRelations = assessmentStudentRelationMapper.selectList(baseStudentAssessmentStudentRelationWrapper);
         result.setStudentList(baseStudentAssessmentStudentRelations);
         result.setStudentCount(baseStudentAssessmentStudentRelations.size());
 
@@ -505,21 +503,25 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
 
         if(!classIdList.isEmpty()){
             //学生个人行为
-            dto.setBaseStudentAssessmentCategoryId(1782327704603373570L);
+            dto.setCategoryCode("student_behavior");
             Map<Long , QuantitativeAssessmentSingleScoreVo> individualBehaviorMap = getQuantitativeAssessmentSingleScoreMap(dto);
 
             //常规管理
-            dto.setBaseStudentAssessmentCategoryId(1782329720935329794L);
+            dto.setCategoryCode("convention_manage");
             Map<Long , QuantitativeAssessmentSingleScoreVo> conventionalManagementMap = getQuantitativeAssessmentSingleScoreMap(dto);
 
             //获奖及荣誉奖彰
-            dto.setBaseStudentAssessmentCategoryId(1787316203484131329L);
+            dto.setCategoryCode("awards_and_honors");
             Map<Long , QuantitativeAssessmentSingleScoreVo> awardsAndHonorableMap = getQuantitativeAssessmentSingleScoreMap(dto);
 
             //准军事化考核
-            dto.setBaseStudentAssessmentCategoryId(1868835208799236098L);
+            dto.setCategoryCode("militarize_manage");
             Map<Long , QuantitativeAssessmentSingleScoreVo> paramilitaryMap = getQuantitativeAssessmentSingleScoreMap(dto);
 
+            //班级文化建设
+            dto.setCategoryCode("classe_culture");
+            Map<Long , QuantitativeAssessmentSingleScoreVo> classCultureMap = getQuantitativeAssessmentSingleScoreMap(dto);
+
             //查询任课教师查询班级的数据
             TeaEvaluateClassDto evaluateClassDto = new TeaEvaluateClassDto();
             evaluateClassDto.setEvaluateType(EvaluateTypeEnum.TEACHER_EVALUATE_CLASS.getCode());
@@ -535,58 +537,82 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
             List<TeaEvaluateClassListVo> teaEvaluateClassList = evaluateResultMapper.getTeaEvaluateClassList(evaluateClassDto);
             Map<Long, List<TeaEvaluateClassListVo>> classEvaluateMap = teaEvaluateClassList.stream().collect(Collectors.groupingBy(TeaEvaluateClassListVo::getEvaluatedObjectId));
             String jskhFormula = quotaFormulaRuleService.getFormulaByQuota("teacher_assessment");
+            String gfjyFormula = quotaFormulaRuleService.getFormulaByQuota("militarize_manage");
+            String xsgrFormula = quotaFormulaRuleService.getFormulaByQuota("student_behavior");
+            String cgglFormula = quotaFormulaRuleService.getFormulaByQuota("convention_manage");
+            String huojiangFormula = quotaFormulaRuleService.getFormulaByQuota("awards_and_honors");
+            String classCultureFormula = quotaFormulaRuleService.getFormulaByQuota("classe_culture");
 
             //将结果写进对应的班级里
             for(CalssQuantitativeAssessmentPageVo c: resultPage.getRecords()){
                 Long classId = Long.parseLong(c.getClassId());
+                //学生个人行为
                 if(individualBehaviorMap.get(classId) != null){
-                    c.setStuPersonalBehaviorSubScore(individualBehaviorMap.get(classId).getSumScore()==null?"":individualBehaviorMap.get(classId).getSumScore().toString());
-                    double v = (100 + individualBehaviorMap.get(classId).getSumScore()) / 100 * 25;
-                    c.setStuPersonalBehaviorScore(v + "");
+                    Double sumScore = individualBehaviorMap.get(classId).getSumScore();
+                    c.setStuPersonalBehaviorSubScore(sumScore==null?"":sumScore.toString());
+                    String replacedExpression = xsgrFormula.replace("xsgrKouFen", Double.toString(sumScore));
+                    ScriptEngineManager manager = new ScriptEngineManager();
+                    ScriptEngine engine = manager.getEngineByName("JavaScript");
+                    try {
+                        double result = ((Number) engine.eval(replacedExpression)).doubleValue();
+                        c.setStuPersonalBehaviorScore(BigDecimal.valueOf(result).setScale(2, RoundingMode.HALF_UP).doubleValue() + "");
+                    } catch (ScriptException e) {
+                        Log.error(e.getMessage(), e);
+                    }
                 }
-
+                //常规管理
                 if(conventionalManagementMap.get(classId) != null){
                     Double sumScore = conventionalManagementMap.get(classId).getSumScore();
                     if(sumScore != null){
                         String scoreStr = sumScore.toString();
-//                    boolean isInteger = sumScore == Math.floor(sumScore);
-//                    if(isInteger){
-//                        scoreStr = sumScore.intValue() + "";
-//                    }
                         c.setClassConventionalManageSubScore(scoreStr);
 
-                        double v = (100 + sumScore) / 100 * 25;
-                        c.setClassConventionalManageScore(v + "");
+                        String replacedExpression = cgglFormula.replace("cgglKouFen", Double.toString(sumScore));
+                        ScriptEngineManager manager = new ScriptEngineManager();
+                        ScriptEngine engine = manager.getEngineByName("JavaScript");
+                        try {
+                            double result = ((Number) engine.eval(replacedExpression)).doubleValue();
+                            c.setClassConventionalManageScore(BigDecimal.valueOf(result).setScale(2, RoundingMode.HALF_UP).doubleValue() + "");
+                        } catch (ScriptException e) {
+                            Log.error(e.getMessage(), e);
+                        }
                     }
                 }
-
+                //获奖和荣誉
                 if(awardsAndHonorableMap.get(classId) != null){
                     Double sumScore = awardsAndHonorableMap.get(classId).getSumScore();
                     if(sumScore != null){
                         c.setHonorSumScore(sumScore.toString());
-                        if(sumScore < 10){
-                            c.setHonorScore(sumScore.toString());
-                        }else {
-                            c.setHonorScore("10");
+
+                        String replacedExpression = huojiangFormula.replace("HuoJiang", Double.toString(sumScore));
+                        ScriptEngineManager manager = new ScriptEngineManager();
+                        ScriptEngine engine = manager.getEngineByName("JavaScript");
+                        try {
+                            double result = ((Number) engine.eval(replacedExpression)).doubleValue();
+                            c.setHonorScore(BigDecimal.valueOf(result).setScale(2, RoundingMode.HALF_UP).doubleValue() + "");
+                        } catch (ScriptException e) {
+                            Log.error(e.getMessage(), e);
                         }
                     }
                 }
-
+                //军事化
                 if(paramilitaryMap.get(classId) != null){
                     Double sumScore = awardsAndHonorableMap.get(classId).getSumScore();
                     if(sumScore != null){
-                        c.setMilitaryManageScore(sumScore.toString());
-                        if(sumScore < 10){
-                            c.setHonorScore(sumScore.toString());
-                        }else {
-                            c.setHonorScore("10");
+                        c.setMilitaryManageComprehensiveIndex(sumScore.toString());
+                        //此项得分
+                        String replacedExpression = gfjyFormula.replace("gfjyKouFen", Double.toString(sumScore));
+                        ScriptEngineManager manager = new ScriptEngineManager();
+                        ScriptEngine engine = manager.getEngineByName("JavaScript");
+                        try {
+                            double result = ((Number) engine.eval(replacedExpression)).doubleValue();
+                            c.setMilitaryManageComprehensiveIndex(BigDecimal.valueOf(result).setScale(2, RoundingMode.HALF_UP).doubleValue() + "");
+                        } catch (ScriptException e) {
+                            Log.error(e.getMessage(), e);
                         }
-
-                        double v = (100 + sumScore) / 100 * 25;
-                        c.setMilitaryManageComprehensiveIndex(v + "");
                     }
                 }
-
+                //任课教师考核
                 if(classEvaluateMap.containsKey(classId)){
                     Map<Long, List<TeaEvaluateClassListVo>> evaluateCategoryMap = classEvaluateMap.get(classId).stream().collect(Collectors.groupingBy(TeaEvaluateClassListVo::getId));
                     int size = evaluateCategoryMap.size();
@@ -611,6 +637,24 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
                         Log.error(e.getMessage(), e);
                     }
                 }
+                //班级文化建设
+                if(classCultureMap.containsKey(classId)){
+                    Double sumScore = classCultureMap.get(classId).getSumScore();
+                    if(sumScore != null){
+                        c.setClassCultureScore(sumScore.toString());
+
+                        String replacedExpression = classCultureFormula.replace("bjwhKouFen", Double.toString(sumScore));
+
+                        ScriptEngineManager manager = new ScriptEngineManager();
+                        ScriptEngine engine = manager.getEngineByName("JavaScript");
+                        try {
+                            double result = ((Number) engine.eval(replacedExpression)).doubleValue();
+                            c.setClassCultureIndex(BigDecimal.valueOf(result).setScale(2, RoundingMode.HALF_UP).doubleValue() + "");
+                        } catch (ScriptException e) {
+                            Log.error(e.getMessage(), e);
+                        }
+                    }
+                }
             }
         }
 
@@ -621,6 +665,7 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
         List<QuantitativeAssessmentSingleScoreVo> individualBehaviorList = assessmentInspectionMapper.getAssessmentInspectionByClassIdList(new QuantitativeAssessmentSingleScoreDto(){{
             setClassIdList(dto.getClassIdList());
             setBaseStudentAssessmentCategoryId(dto.getBaseStudentAssessmentCategoryId());
+            setCategoryCode(dto.getCategoryCode());
             if(dto.getBaseSemesterId() != null){
                 setBaseSemesterId(dto.getBaseSemesterId());
             }
@@ -876,6 +921,18 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
             cell.setCellValue(pageVo.getTeacherAssessScore());
             cell.setCellStyle(cellStyle);
 
+
+            columnNumber ++;
+            cell = dataRow.createCell(columnNumber);
+            cell.setCellValue(pageVo.getClassCultureScore());
+            cell.setCellStyle(cellStyle);
+
+            columnNumber ++;
+            cell = dataRow.createCell(columnNumber);
+            cell.setCellValue(pageVo.getClassCultureIndex());
+            cell.setCellStyle(cellStyle);
+
+
             columnNumber ++;
             cell = dataRow.createCell(columnNumber);
             cell.setCellValue(pageVo.getAssessSumScore());
@@ -979,6 +1036,14 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
         sheet.addMergedRegion(new CellRangeAddress(0, 0, columnNumber, columnNumber + 1));
         columnNumber ++;
 
+        columnNumber ++;
+        cell = row.createCell(columnNumber);
+        cell.setCellValue("班级文化建设");
+        cell.setCellStyle(cellStyle);
+        sheet.addMergedRegion(new CellRangeAddress(0, 0, columnNumber, columnNumber + 1));
+        columnNumber ++;
+
+
         columnNumber ++;
         cell = row.createCell(columnNumber);
         cell.setCellValue("月份总得分");
@@ -1054,5 +1119,15 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
         cell = row.createCell(columnNumber);
         cell.setCellValue("此项得分");
         cell.setCellStyle(cellStyle);
+
+
+        cell = row.createCell(columnNumber);
+        cell.setCellValue("扣分");
+        cell.setCellStyle(cellStyle);
+        columnNumber ++;
+
+        cell = row.createCell(columnNumber);
+        cell.setCellValue("此项得分");
+        cell.setCellStyle(cellStyle);
     }
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/student/vo/BaseStudentAssessmentInspectionMobilePageVo.java

@@ -43,4 +43,7 @@ public class BaseStudentAssessmentInspectionMobilePageVo {
 
     @ApiModelProperty("分数类型名称")
     private String scoreTypeCn;
+
+    @ApiModelProperty("类型")
+    private  String assessmentType;
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/student/vo/BaseStudentAssessmentInspectionMobileVo.java

@@ -110,4 +110,7 @@ public class BaseStudentAssessmentInspectionMobileVo {
      */
     @ApiModelProperty("附件列表")
     private List<File> fileInfos;
+
+    @ApiModelProperty("类型")
+    private  String assessmentType;
 }

+ 13 - 12
src/main/java/com/xjrsoft/module/student/vo/CalssQuantitativeAssessmentPageVo.java

@@ -81,8 +81,8 @@ public class CalssQuantitativeAssessmentPageVo {
     @ColumnWidth(10)
     private String honorScore;
 
-    @ApiModelProperty("准军事化管理效果综合指数")
-    @ExcelProperty(value = "准军事化管理效果综合指数")
+    @ApiModelProperty("准军事化管理效果综合扣分")
+    @ExcelProperty(value = "准军事化管理效果综合扣分")
     @ColumnWidth(10)
     private String militaryManageComprehensiveIndex;
 
@@ -101,6 +101,17 @@ public class CalssQuantitativeAssessmentPageVo {
     @ColumnWidth(10)
     private String teacherAssessScore;
 
+    @ApiModelProperty("班风学风考核")
+    @ExcelProperty(value = "班风学风考核")
+    @ColumnWidth(10)
+    private String classCultureScore;
+
+    @ApiModelProperty("班风学风考核指数")
+    @ExcelProperty(value = "班风学风考核指数")
+    @ColumnWidth(10)
+    private String classCultureIndex;
+
+
     @ApiModelProperty("考核总得分")
     @ExcelProperty(value = "考核总得分")
     @ColumnWidth(10)
@@ -111,14 +122,4 @@ public class CalssQuantitativeAssessmentPageVo {
     @ColumnWidth(10)
     private String assessMoney;
 
-
-    @ApiModelProperty("班风学风考核")
-    @ExcelProperty(value = "班风学风考核")
-    @ColumnWidth(10)
-    private String classStyleScore;
-
-    @ApiModelProperty("班风学风考核指数")
-    @ExcelProperty(value = "班风学风考核指数")
-    @ColumnWidth(10)
-    private String classStyleIndex;
 }

+ 5 - 2
src/main/resources/mapper/student/BaseStudentAssessmentInspectionMapper.xml

@@ -68,7 +68,7 @@
         (
             SELECT count(*) FROM base_student_assessment_student_relation WHERE base_student_assessment_inspection_id =
             t1.id and class_id=t.class_id
-        ) as student_count
+        ) as student_count,t1.assessment_type
         from base_student_assessment_class_relation t
         left join base_student_assessment_inspection t1 on t1.id=t.base_student_assessment_inspection_id
         left join base_student_assessment_category t2 on (t2.id = t1.base_student_assessment_category_id)
@@ -95,7 +95,7 @@
 
     <select id="getMobileInfo" resultType="com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionMobileVo">
         select t.id,t.class_id,t.base_student_assessment_inspection_id,t1.score,t5.name as assessment_class_name,t2.name as assessment_category_name,t3.name as assessment_project_name,t1.assessment_date,t1.reason,
-        t6.name as assessment_user_name,t7.name as create_user_name,t1.create_date,t1.file_id,t1.score_type,t4.name as score_type_cn
+        t6.name as assessment_user_name,t7.name as create_user_name,t1.create_date,t1.file_id,t1.score_type,t4.name as score_type_cn,t1.assessment_type
         from base_student_assessment_class_relation t
         left join base_student_assessment_inspection t1 on t1.id=t.base_student_assessment_inspection_id
         left join base_student_assessment_category t2 on (t2.id = t1.base_student_assessment_category_id)
@@ -235,6 +235,9 @@
         <if test="dto.baseStudentAssessmentCategoryId != null and dto.baseStudentAssessmentCategoryId > 0">
             and t.base_student_assessment_category_id = #{dto.baseStudentAssessmentCategoryId}
         </if>
+        <if test="dto.categoryCode != null and dto.categoryCode != ''">
+            and t.code = #{dto.categoryCode}
+        </if>
         <if test="dto.baseSemesterId != null and dto.baseSemesterId > 0">
             and t.base_semester_id &gt; #{dto.baseSemesterId}
         </if>