@ -11,6 +11,7 @@ import com.sztzjy.marketing.entity.tchdto.TchGeneralViewWeightDTO;
import com.sztzjy.marketing.entity.tchdto.tchScoreViewShowDTO ;
import com.sztzjy.marketing.entity.tchdto.tchScoreViewShowDTO ;
import com.sztzjy.marketing.mapper.StuPracticalTrainingReportMapper ;
import com.sztzjy.marketing.mapper.StuPracticalTrainingReportMapper ;
import com.sztzjy.marketing.mapper.StuScoreDetailsMapper ;
import com.sztzjy.marketing.mapper.StuScoreDetailsMapper ;
import com.sztzjy.marketing.mapper.StuUserMapper ;
import com.sztzjy.marketing.mapper.TchModuleWeithMapper ;
import com.sztzjy.marketing.mapper.TchModuleWeithMapper ;
import com.sztzjy.marketing.service.TchUserService ;
import com.sztzjy.marketing.service.TchUserService ;
import com.sztzjy.marketing.util.ResultEntity ;
import com.sztzjy.marketing.util.ResultEntity ;
@ -20,11 +21,15 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam ;
import io.swagger.annotations.ApiParam ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.http.HttpStatus ;
import org.springframework.http.HttpStatus ;
import org.springframework.transaction.annotation.Transactional ;
import org.springframework.web.bind.annotation.* ;
import org.springframework.web.bind.annotation.* ;
import javax.servlet.http.HttpServletResponse ;
import javax.servlet.http.HttpServletResponse ;
import java.math.BigDecimal ;
import java.util.ArrayList ;
import java.util.Arrays ;
import java.util.Arrays ;
import java.util.List ;
import java.util.List ;
import java.util.stream.Collectors ;
/ * *
/ * *
* @author 17803
* @author 17803
@ -46,6 +51,11 @@ public class SummaryOfGradesController {
@Autowired
@Autowired
private StuScoreDetailsMapper stuScoreDetailsMapper ;
private StuScoreDetailsMapper stuScoreDetailsMapper ;
@Autowired
private StuUserMapper userMapper ;
@PostMapping ( "/getGeneralViewList" )
@PostMapping ( "/getGeneralViewList" )
@ApiOperation ( "成绩总览展示 (条件查询)" )
@ApiOperation ( "成绩总览展示 (条件查询)" )
//@AnonymousAccess
//@AnonymousAccess
@ -61,7 +71,7 @@ public class SummaryOfGradesController {
@ApiOperation ( "成绩总览导出" )
@ApiOperation ( "成绩总览导出" )
@GetMapping ( "/generalViewExport" )
@GetMapping ( "/generalViewExport" )
//@AnonymousAccess
@AnonymousAccess
public void generalViewExport ( HttpServletResponse response , @RequestParam String schoolId ) {
public void generalViewExport ( HttpServletResponse response , @RequestParam String schoolId ) {
//导出的表名
//导出的表名
String title = IdUtil . simpleUUID ( ) ;
String title = IdUtil . simpleUUID ( ) ;
@ -181,19 +191,101 @@ public class SummaryOfGradesController {
* /
* /
@PostMapping ( "/ratingAndComment" )
@PostMapping ( "/ratingAndComment" )
@ApiOperation ( "老师输入评语和打分" )
@ApiOperation ( "老师输入评语和打分" )
@Transactional ( rollbackFor = Exception . class )
@AnonymousAccess
public void ratingAndComment ( @RequestBody StuPracticalTrainingReport practicalTrainingReport ) {
public void ratingAndComment ( @RequestBody StuPracticalTrainingReport practicalTrainingReport ) {
stuPracticalTrainingReportMapper . updateByPrimaryKeySelective ( practicalTrainingReport ) ;
if ( practicalTrainingReport . getRating ( ) ! = null ) {
StuPracticalTrainingReport stuPracticalTrainingReport = stuPracticalTrainingReportMapper . selectByPrimaryKey ( practicalTrainingReport . getId ( ) ) ;
stuPracticalTrainingReport . setRating ( practicalTrainingReport . getRating ( ) ) ;
stuPracticalTrainingReport . setTeacherComments ( practicalTrainingReport . getTeacherComments ( ) ) ;
stuPracticalTrainingReportMapper . updateByPrimaryKeySelective ( stuPracticalTrainingReport ) ;
if ( stuPracticalTrainingReport . getRating ( ) ! = null ) {
String userid = stuPracticalTrainingReport . getUserid ( ) ;
StuPracticalTrainingReportExample example = new StuPracticalTrainingReportExample ( ) ;
example . createCriteria ( ) . andUseridEqualTo ( userid ) ;
List < StuPracticalTrainingReport > stuPracticalTrainingReportList = stuPracticalTrainingReportMapper . selectByExample ( example ) ;
List < String > arrayList = new ArrayList < > ( 7 ) ;
arrayList . add ( "AI文生图" ) ;
arrayList . add ( "AI修图" ) ;
arrayList . add ( "AI视频" ) ;
arrayList . add ( "AI写作" ) ;
arrayList . add ( "AI数据分析" ) ;
arrayList . add ( "BI可视化分析" ) ;
double avg = 0.0 ;
int times = 0 ;
for ( String module : arrayList ) {
//获取当前用户 已评分 对应model的报告数量
List < StuPracticalTrainingReport > collect = stuPracticalTrainingReportList . stream ( )
. filter ( item - > item . getModule ( ) . equals ( module ) ) . filter ( item - > item . getRating ( ) ! = null )
. collect ( Collectors . toList ( ) ) ;
if ( collect . isEmpty ( ) )
{
continue ;
}
//当前模块总分
double sum = collect . stream ( ) . mapToDouble ( item - > item . getRating ( ) ) . sum ( ) ;
//四舍五入
double count = sum / collect . size ( ) ;
double roundedCount = Math . round ( count * 100.0 ) / 100.0 ;
avg = avg + roundedCount ;
times + + ;
}
//所有模块平均分
//四舍五入
double avgAllModule = avg / 6 ;
double avgScore = Math . round ( avgAllModule * 100.0 ) / 100.0 ;
//获取当前模块的所有实验报告
StuScoreDetailsExample stuScoreDetailsExample = new StuScoreDetailsExample ( ) ;
StuScoreDetailsExample stuScoreDetailsExample = new StuScoreDetailsExample ( ) ;
stuScoreDetailsExample . createCriteria ( ) . andUserIdEqualTo ( practicalTrainingReport . getUserid ( ) ) . andSerialNumberEqualTo ( 5 ) ;
stuScoreDetailsExample . createCriteria ( ) . andUserIdEqualTo ( practicalTrainingReport . getUserid ( ) ) . andSerialNumberEqualTo ( 5 ) ;
List < StuScoreDetails > stuScoreDetails = stuScoreDetailsMapper . selectByExample ( stuScoreDetailsExample ) ;
List < StuScoreDetails > stuScoreDetails = stuScoreDetailsMapper . selectByExample ( stuScoreDetailsExample ) ;
if ( ! stuScoreDetails . isEmpty ( ) ) {
if ( ! stuScoreDetails . isEmpty ( ) ) {
StuScoreDetails stuScoreDetails1 = stuScoreDetails . get ( 0 ) ;
StuScoreDetails stuScoreDetails1 = stuScoreDetails . get ( 0 ) ;
stuScoreDetails1 . setScoreProject ( practicalTrainingReport . getRating ( ) ) ;
stuScoreDetails1 . setScoreProject ( avgS core) ;
stuScoreDetailsMapper . updateByPrimaryKey ( stuScoreDetails1 ) ;
stuScoreDetailsMapper . updateByPrimaryKey ( stuScoreDetails1 ) ;
}
}
StuUser stuUserList = userMapper . selectByPrimaryKey ( userid ) ;
if ( stuUserList ! = null ) {
stuUserList . setTestReportSocre ( BigDecimal . valueOf ( avgScore ) ) ;
userMapper . updateByPrimaryKeySelective ( stuUserList ) ;
}
}
}
}
@GetMapping ( "/getReportFileURLByUserIdAndModule" )
@ApiOperation ( "单条学生报告" )
@AnonymousAccess
public ResultEntity getReportFileURLByUserIdAndModule ( @RequestParam Integer reportId ) {
StuPracticalTrainingReport stuPracticalTrainingReport = stuPracticalTrainingReportMapper . selectByPrimaryKey ( reportId ) ;
if ( stuPracticalTrainingReport = = null ) {
return new ResultEntity < > ( HttpStatus . OK , "实验报告不存在!" ) ;
}
return new ResultEntity < > ( HttpStatus . OK , "获取成功" , stuPracticalTrainingReport . getUrl ( ) ) ;
}
}