Selaa lähdekoodia

1、家长绑定学生规则
2、教师获奖统计增加部门id查询条件
3、学生人脸上传调整

dzx 1 vuosi sitten
vanhempi
commit
407e4c589c

+ 26 - 20
src/main/java/com/xjrsoft/module/job/AttenDanceWarnNoticeTask.java

@@ -114,30 +114,36 @@ public class AttenDanceWarnNoticeTask {
         for (AttendanceRuleDetails ruleDetails : ruleDetailsList) {
             if(ruleDetails.getIsAllowInOutSchool() != null && ruleDetails.getIsAllowInOutSchool() != 1
                     && ruleDetails.getIsAttendance() != null && ruleDetails.getIsAttendance() == 1){
-
-                LocalDateTime amStartTime = judgeTime.with(ruleDetails.getAmStartTime());
-                long amBetween = ChronoUnit.MINUTES.between(judgeTime, amStartTime);
-                if(amBetween == ruleDetails.getAgoMinutes()){
-                    result.put(ruleDetails.getId(), - 1);
-                }else if(amBetween == ruleDetails.getOverMinutes()){
-                    result.put(ruleDetails.getId(), - 1);
+                if(ruleDetails.getAmStartTime() != null){
+                    LocalDateTime amStartTime = judgeTime.with(ruleDetails.getAmStartTime());
+                    long amBetween = ChronoUnit.MINUTES.between(judgeTime, amStartTime);
+                    if(amBetween == ruleDetails.getAgoMinutes()){
+                        result.put(ruleDetails.getId(), - 1);
+                    }else if(amBetween == ruleDetails.getOverMinutes()){
+                        result.put(ruleDetails.getId(), - 1);
+                    }
                 }
-
-                LocalDateTime pmStartTime = judgeTime.with(ruleDetails.getPmStartTime());
-                long pmBetween = ChronoUnit.MINUTES.between(judgeTime, pmStartTime);
-                if(pmBetween == ruleDetails.getAgoMinutes()){
-                    result.put(ruleDetails.getId(), - 1);
-                }else if(pmBetween == ruleDetails.getOverMinutes()){
-                    result.put(ruleDetails.getId(), - 1);
+                if(ruleDetails.getPmStartTime() != null){
+                    LocalDateTime pmStartTime = judgeTime.with(ruleDetails.getPmStartTime());
+                    long pmBetween = ChronoUnit.MINUTES.between(judgeTime, pmStartTime);
+                    if(pmBetween == ruleDetails.getAgoMinutes()){
+                        result.put(ruleDetails.getId(), - 1);
+                    }else if(pmBetween == ruleDetails.getOverMinutes()){
+                        result.put(ruleDetails.getId(), - 1);
+                    }
                 }
 
-                LocalDateTime eveningStartTime = judgeTime.with(ruleDetails.getEveningStartTime());
-                long eveningBetween = ChronoUnit.MINUTES.between(judgeTime, eveningStartTime);
-                if(eveningBetween == ruleDetails.getAgoMinutes()){
-                    result.put(ruleDetails.getId(), - 1);
-                }else if(eveningBetween == ruleDetails.getOverMinutes()){
-                    result.put(ruleDetails.getId(), - 1);
+                if(ruleDetails.getEveningStartTime() != null){
+                    LocalDateTime eveningStartTime = judgeTime.with(ruleDetails.getEveningStartTime());
+                    long eveningBetween = ChronoUnit.MINUTES.between(judgeTime, eveningStartTime);
+                    if(eveningBetween == ruleDetails.getAgoMinutes()){
+                        result.put(ruleDetails.getId(), - 1);
+                    }else if(eveningBetween == ruleDetails.getOverMinutes()){
+                        result.put(ruleDetails.getId(), - 1);
+                    }
                 }
+
+
                 if(!result.containsKey(ruleDetails.getId())){
                     result.put(ruleDetails.getId(), 0);
                 }

+ 35 - 0
src/main/java/com/xjrsoft/module/liteflow/node/BaseUserStudentNode.java

@@ -0,0 +1,35 @@
+package com.xjrsoft.module.liteflow.node;
+
+import cn.hutool.core.convert.Convert;
+import com.xjrsoft.module.organization.entity.UserStudent;
+import com.xjrsoft.module.organization.service.IUserStudentService;
+import com.xjrsoft.module.student.service.IStudentLeaveService;
+import com.yomahub.liteflow.core.NodeComponent;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * 家长绑定学生
+ */
+@Component("base_user_student_node")
+public class BaseUserStudentNode extends NodeComponent {
+
+    @Autowired
+    private IUserStudentService userStudentService;
+
+    @Override
+    public void process() throws Exception {
+        // 获取表单中数据编号
+        Map<String, Object> params = this.getFirstContextBean();
+        Object value = util.getFormDatKey(params,"id");
+        Long formId = Convert.toLong(value);
+        if (formId != null) {
+            // 数据处理
+            UserStudent userStudent = userStudentService.getById(formId);
+            userStudent.setStatus(1);
+            userStudentService.updateById(userStudent);
+        }
+    }
+}

+ 20 - 0
src/main/java/com/xjrsoft/module/personnel/controller/StundentFaceProcessController.java

@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.github.yulichang.toolkit.MPJWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 import com.xjrsoft.common.enums.DeleteMark;
@@ -314,6 +315,23 @@ public class StundentFaceProcessController {
                     JsonObject object = parser.parse(process.getHikvisionResult()).getAsJsonObject();
                     if("0".equals(object.get("code").getAsString()) && "success".equals(object.get("msg").getAsString())){
                         faceId = object.get("data").getAsJsonObject().get("faceId").getAsString();
+                    }else{//查询
+                        String apiUrl = "/api/resource/v1/person/condition/personInfo";
+                        JsonObject paramsJson = new JsonObject();
+                        paramsJson.addProperty("paramName", "personId");
+                        JsonArray array = new JsonArray();
+                        array.add(studentUser.getId());
+                        paramsJson.add("paramValue", array);
+                        String personInfoRes = apiUtil.doPost(apiUrl, paramsJson.toString(), null);
+
+                        JsonObject personInfoData = parser.parse(process.getHikvisionResult()).getAsJsonObject();
+                        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){
+                                faceId = dataJson.get("list").getAsJsonArray().get(0)
+                                        .getAsJsonObject().get("personPhoto").getAsJsonObject().get("personPhotoIndexCode").getAsString();
+                            }
+                        }
                     }
                 }
 
@@ -331,6 +349,8 @@ public class StundentFaceProcessController {
                     paramJson.addProperty("faceData", base64String);
                 }
                 String result = apiUtil.doPost(apiPath, paramJson.toString(), null);
+
+
                 process.setHikvisionResult(result);
                 stundentFaceProcessService.updateById(process);
 

+ 1 - 0
src/main/java/com/xjrsoft/module/teacher/controller/TeacherAwardController.java

@@ -42,4 +42,5 @@ public class TeacherAwardController {
         return RT.ok(pageOutput);
     }
 
+
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/teacher/dto/TeacherAwardStatisticsPageDto.java

@@ -21,4 +21,7 @@ public class TeacherAwardStatisticsPageDto extends PageInput {
 
     @ApiModelProperty(value = "姓名")
     private String name;
+
+    @ApiModelProperty(value = "部门id")
+    private Long deptId;
 }

+ 6 - 2
src/main/resources/mapper/teacher/TeacherAwardItemMapper.xml

@@ -11,13 +11,17 @@
         AND a1.applicant_user_id = t1.id
         ) AS score FROM xjr_user t1
         INNER JOIN base_teacher t2 ON t1.id = t2.user_id
+        left join xjr_user_dept_relation t4 on t4.user_id = t1.id
         LEFT JOIN xjr_dictionary_detail t3 ON t1.gender = t3.code
         WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
         <if test="dto.userName != null and dto.userName != '' ">
-            t1.userName like concat('%', #{dto.userName}, '%')
+            and t1.userName like concat('%', #{dto.userName}, '%')
         </if>
         <if test="dto.name != null and dto.name != '' ">
-            t1.name like concat('%', #{dto.name}, '%')
+            and t1.name like concat('%', #{dto.name}, '%')
+        </if>
+        <if test="dto.deptId != null">
+            and t4.dept_id = #{dto.deptId}
         </if>
     </select>
 </mapper>