浏览代码

食堂评价内容导出

dzx 11 月之前
父节点
当前提交
be5b92f054

+ 8 - 0
src/main/java/com/xjrsoft/module/assessment/controller/AssessmentPlanAnswerController.java

@@ -113,6 +113,14 @@ public class AssessmentPlanAnswerController {
         return RT.ok(pageOutput);
     }
 
+    @GetMapping(value = "/answer-student-list")
+    @ApiOperation(value="考核计划答题列表-学生答题情况")
+    @SaCheckPermission("assessmenttemplateplan:detail")
+    public RT<List<AssessmentPlanAnswerStudentVo>> answerStudentList(@Valid AssessmentPlanAnswerStudentDto dto){
+        List<AssessmentPlanAnswerStudentVo> page = planService.getAnswerStudentList(dto);
+        return RT.ok(page);
+    }
+
     @GetMapping(value = "/info")
     @ApiOperation(value="根据id查询考核计划信息")
     @SaCheckPermission("assessmenttemplateplan:detail")

+ 2 - 0
src/main/java/com/xjrsoft/module/assessment/service/IAssessmentTemplatePlanService.java

@@ -84,6 +84,8 @@ public interface IAssessmentTemplatePlanService extends MPJBaseService<Assessmen
 
     Page<AssessmentPlanAnswerStudentVo> getAnswerStudent(Page<AssessmentPlanAnswerStudentDto> page, AssessmentPlanAnswerStudentDto dto);
 
+    List<AssessmentPlanAnswerStudentVo> getAnswerStudentList(AssessmentPlanAnswerStudentDto dto);
+
     List<Long> getSemesterClass(Long id);
 
     List<AssessmentPlanAnswerClassResultVo> getClassResult(Long id);

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

@@ -421,6 +421,15 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
         return templatePlanMapper.getAnswerStudent(page, dto);
     }
 
+    @Override
+    public List<AssessmentPlanAnswerStudentVo> getAnswerStudentList(AssessmentPlanAnswerStudentDto dto) {
+        List<String> roleList = StpUtil.getRoleList();
+        if(roleList.size() == 2 && roleList.contains("CLASSTE") && roleList.contains("TEACHER")){
+            dto.setTeacherId(StpUtil.getLoginIdAsLong());
+        }
+        return this.baseMapper.getAnswerStudentList(dto);
+    }
+
     @Override
     public List<Long> getSemesterClass(Long id) {
         return templatePlanMapper.getSemesterClass(id);
@@ -759,7 +768,7 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
             cell = row.createCell(cellNumber);
             cell.setCellValue(question.getName());
             cell.setCellStyle(cellStyle);
-            sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, cellNumber, cellNumber + size));
+            sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, cellNumber, cellNumber + size - 1));
             cellNumber = cellNumber + size;
         }
     }

+ 108 - 11
src/test/java/com/xjrsoft/module/liteflow/node/ImportStudentFaceNodeTest.java

@@ -1,8 +1,12 @@
 package com.xjrsoft.module.liteflow.node;
 
-import cn.hutool.core.convert.Convert;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
 import com.xjrsoft.XjrSoftApplication;
+import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
 import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
+import com.xjrsoft.module.hikvision.util.ApiUtil;
 import com.xjrsoft.module.hikvision.util.FaceImportUtil;
 import com.xjrsoft.module.personnel.entity.StundentFaceProcess;
 import com.xjrsoft.module.personnel.service.IStundentFaceProcessService;
@@ -13,7 +17,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
-import static org.junit.jupiter.api.Assertions.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
 
 /**
  * @author dzx
@@ -32,18 +40,107 @@ class ImportStudentFaceNodeTest {
     private FaceImportMapper faceImportMapper;
     @Test
     void test(){
-        Long formId = 1799211798557667328L;
-        if (formId != null) {
-            String fileUrl = faceImportMapper.GetStudentHikvisionImgById(formId);
+        String sql = "SELECT t1.* FROM xjr_user t1" +
+                " INNER JOIN base_student_school_roll t2 ON t1.id = t2.user_id" +
+                " WHERE t2.archives_status = 'FB2901' and t1.id = 654321987655958";
+        List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
+
+        ApiUtil apiUtil = new ApiUtil();
+        JsonParser parser = new JsonParser();
+        for (Map<String, Object> user : list) {
+            long userId = Long.parseLong(user.get("id").toString());
+            sql = "SELECT * FROM stundent_face_process WHERE user_id = " + userId + " AND exam_status = 1 AND STATUS = 1 ORDER BY create_date DESC,modify_date DESC LIMIT 1";
+            Map<String, Object> process = SqlRunnerAdapter.db().selectOne(sql);
+
+            if(process == null || process.isEmpty()){
+                continue;
+            }
+
+            long id = Long.parseLong(process.get("id").toString());
+            String fileUrl = faceImportMapper.GetStudentHikvisionImgById(id);
+            // 数据处理
+            StundentFaceProcess dataObj = stundentFaceProcessService.getById(process.get("id").toString());
+            if(dataObj == null){
+                continue;
+            }
+            String apiUrl = "/api/resource/v1/person/condition/personInfo";
+            JsonObject paramsJson = new JsonObject();
+            paramsJson.addProperty("paramName", "personId");
+            JsonArray array = new JsonArray();
+            String hikvisionId = hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId());
+            if(hikvisionId == null){
+                continue;
+            }
+            array.add(hikvisionId);
+            paramsJson.add("paramValue", array);
+            String personInfoRes = apiUtil.doPost(apiUrl, paramsJson.toString(), null);
+            if(personInfoRes == null){
+                continue;
+            }
+            JsonObject personInfoData = parser.parse(personInfoRes).getAsJsonObject();
+            String faceId = null;
+            if("0".equals(personInfoData.get("code").getAsString()) && "success".equals(personInfoData.get("msg").getAsString())){
+                JsonObject dataJson = personInfoData.get("data").getAsJsonObject();
+                if(dataJson.get("total").getAsInt() > 0){
+                    JsonArray personPhoto = dataJson.get("list").getAsJsonArray().get(0)
+                            .getAsJsonObject().get("personPhoto").getAsJsonArray();
+                    if(personPhoto.size() == 0){
+                        dataObj.setStatus(1);
+                        dataObj.setExamStatus(1);
+                        String result = FaceImportUtil.ImportStudentFace(hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId()), fileUrl);
+                        dataObj.setHikvisionResult(result);
+                        dataObj.setModifyDate(new Date());
+                        dataObj.setEnabledMark(1);
+                        stundentFaceProcessService.updateById(dataObj);
+                    }
+                }
+            }
+        }
+    }
+
+    @Test
+    void test2(){
+
+        String sql = "SELECT * FROM stundent_face_process WHERE id in (1802917291234996224, 1798295439057399810,1798295434271698945)";
+        List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
+
+        ApiUtil apiUtil = new ApiUtil();
+        JsonParser parser = new JsonParser();
+        List<Long> ids = new ArrayList<>();
+        for (Map<String, Object> process : list) {
+            long id = Long.parseLong(process.get("id").toString());
             // 数据处理
-            StundentFaceProcess dataObj = stundentFaceProcessService.getById(formId);
-            dataObj.setStatus(1);
-            dataObj.setExamStatus(1);
-            String result = FaceImportUtil.ImportStudentFace(hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId()), fileUrl);
-            dataObj.setHikvisionResult(result);
-            stundentFaceProcessService.updateById(dataObj);
+            StundentFaceProcess dataObj = stundentFaceProcessService.getById(process.get("id").toString());
 
+            if(dataObj == null){
+                continue;
+            }
 
+            String apiUrl = "/api/resource/v1/person/condition/personInfo";
+            JsonObject paramsJson = new JsonObject();
+            paramsJson.addProperty("paramName", "personId");
+            JsonArray array = new JsonArray();
+            String hikvisionId = hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId());
+            if(hikvisionId == null){
+                continue;
+            }
+            array.add(hikvisionId);
+            paramsJson.add("paramValue", array);
+            String personInfoRes = apiUtil.doPost(apiUrl, paramsJson.toString(), null);
+            JsonObject personInfoData = parser.parse(personInfoRes).getAsJsonObject();
+            String faceId = null;
+            if("0".equals(personInfoData.get("code").getAsString()) && "success".equals(personInfoData.get("msg").getAsString())){
+                JsonObject dataJson = personInfoData.get("data").getAsJsonObject();
+                if(dataJson.get("total").getAsInt() > 0){
+                    JsonArray personPhoto = dataJson.get("list").getAsJsonArray().get(0)
+                            .getAsJsonObject().get("personPhoto").getAsJsonArray();
+                    if(personPhoto.size() == 0){
+                        ids.add(id);
+                    }
+                }
+            }
         }
+
+        System.out.println("ids.size() ----------> " + ids.size());
     }
 }