Browse Source

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

fanxp 1 week ago
parent
commit
048501cbd7

+ 3 - 1
src/main/java/com/xjrsoft/module/courseTable/service/impl/CourseTableServiceImpl.java

@@ -391,7 +391,9 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
                     }
 
                     CourseTable swapCourseTable = courseMap.get(bakKeyInfoMap.get(Long.parseLong(exchangeCourseId)));
-
+                    if (swapCourseTable == null) {
+                        continue;
+                    }
                     CourseTableBak courseTableBak = bakCourseMap.get(Long.parseLong(courseId));
                     CourseTableBak swapCourseTableBak = bakCourseMap.get(Long.parseLong(exchangeCourseId));
 

+ 6 - 4
src/main/java/com/xjrsoft/module/databoard/controller/DatadetailController.java

@@ -295,8 +295,10 @@ public class DatadetailController {
     @XjrLog(value = "教职工详情数据统计", saveResponseData = true)
     public RT<TeacherStatisticsDetailVo> teahcerStatistics(@Valid StatisticsDetailDto dto) throws ParseException {
         String sql = "SELECT IFNULL(t2.name,'未填写') AS item ,ifnull(COUNT(*), 0) AS a_count FROM base_teacher_education t1" +
+                " left join base_teacher t3 on t1.user_id = t2.user_id" +
                 " LEFT JOIN xjr_dictionary_detail t2 ON t1.education  = t2.code" +
-                " WHERE t1.delete_mark = 0 GROUP BY t2.name";
+                " WHERE t1.delete_mark = 0 and t3.job_state in ('ZZZT10004','ZZZT10009','JOB_WCPX','JOB_DDSX')" +
+                " GROUP BY t2.name";
         List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
         TeacherStatisticsDetailVo result = new TeacherStatisticsDetailVo();
         List<ItemCountVo> educationList = new ArrayList<>();
@@ -313,7 +315,7 @@ public class DatadetailController {
         sql = "SELECT IFNULL(t3.name,'未填写') AS item ,ifnull(COUNT(*), 0) AS a_count FROM xjr_user t1" +
                 " INNER JOIN base_teacher t2 ON t1.id = t2.user_id" +
                 " LEFT JOIN xjr_dictionary_detail t3 ON t1.gender  = t3.code AND t3.item_id = 2023000000000000004" +
-                " WHERE t1.delete_mark = 0 GROUP BY t3.name";
+                " WHERE t1.delete_mark = 0 and t2.job_state in ('ZZZT10004','ZZZT10009','JOB_WCPX','JOB_DDSX') GROUP BY t3.name";
         list = SqlRunnerAdapter.db().selectList(sql);
         List<ItemCountVo> genderList = new ArrayList<>();
         for (Map<String, Object> objectMap : list) {
@@ -329,7 +331,7 @@ public class DatadetailController {
         sql = "SELECT IFNULL(t3.name,'未填写') AS item ,ifnull(COUNT(*), 0) AS a_count FROM xjr_user t1" +
                 " INNER JOIN base_teacher t2 ON t1.id = t2.user_id" +
                 " LEFT JOIN xjr_dictionary_detail t3 ON t2.employ_type  = t3.code AND t3.item_id = 2023000000000000016" +
-                " WHERE t1.delete_mark = 0 GROUP BY t3.name";
+                " WHERE t1.delete_mark = 0 and t2.job_state in ('ZZZT10004','ZZZT10009','JOB_WCPX','JOB_DDSX') GROUP BY t3.name";
         list = SqlRunnerAdapter.db().selectList(sql);
         List<ItemCountVo> employList = new ArrayList<>();
         for (Map<String, Object> objectMap : list) {
@@ -346,7 +348,7 @@ public class DatadetailController {
                 " INNER JOIN base_teacher t2 ON t1.id = t2.user_id" +
                 " LEFT JOIN xjr_user_dept_relation t3 ON t1.id  = t3.user_id" +
                 " LEFT JOIN xjr_department t4 ON t3.dept_id = t4.id" +
-                " WHERE t1.delete_mark = 0 AND t4.is_major = 1 GROUP BY t4.name";
+                " WHERE t1.delete_mark = 0 AND t4.is_major = 1 and t2.job_state in ('ZZZT10004','ZZZT10009','JOB_WCPX','JOB_DDSX') GROUP BY t4.name";
 
         list = SqlRunnerAdapter.db().selectList(sql);
         List<ItemCountVo> deptList = new ArrayList<>();

+ 1 - 0
src/main/java/com/xjrsoft/module/job/WfCourseAdjustTask.java

@@ -57,6 +57,7 @@ public class WfCourseAdjustTask {
             if(SqlRunnerAdapter.db().selectList(sql).isEmpty()){
                 continue;
             }
+
             courseTableService.adjustCourse(wfCourseAdjust);
         }
     }

+ 1 - 3
src/main/java/com/xjrsoft/module/liteflow/node/WfRoomApplicantNode.java

@@ -120,9 +120,7 @@ public class WfRoomApplicantNode extends NodeComponent {
                         } catch (InterruptedException e) {
                             throw new RuntimeException(e);
                         }
-                        //wfRoomApplicantService.noticeParents(formId);
-
-
+                        wfRoomApplicantService.noticeParents(formId);
                     });
                 }
             });

+ 1 - 1
src/main/java/com/xjrsoft/module/oa/controller/WfMeetingApplyController.java

@@ -133,7 +133,7 @@ public class WfMeetingApplyController {
         return RT.ok(meetingConfereeOpinionListVos);
     }
 
-    @PutMapping(value = "/update_meetingSummary")
+    @PostMapping(value = "/update_meetingSummary")
     @ApiOperation(value = "编辑会议纪要")
     @SaCheckPermission("wfmeetingapply:edit")
     @XjrLog(value = "编辑会议纪要")

+ 8 - 1
src/main/java/com/xjrsoft/module/oa/dto/UpdateMeetingSummaryDto.java

@@ -3,6 +3,8 @@ package com.xjrsoft.module.oa.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.io.Serializable;
+
 
 /**
 * @title: 编辑会议纪要
@@ -11,7 +13,7 @@ import lombok.Data;
 * @Version 1.0
 */
 @Data
-public class UpdateMeetingSummaryDto {
+public class UpdateMeetingSummaryDto implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
@@ -31,4 +33,9 @@ public class UpdateMeetingSummaryDto {
      */
     @ApiModelProperty("会议纪要附件")
     private Long meetingSummaryFileId;
+    /**
+     * 会议纪要附件
+     */
+    @ApiModelProperty("无用参数")
+    private Long fileId;
 }

+ 31 - 2
src/main/java/com/xjrsoft/module/oa/service/impl/WfMeetingApplyServiceImpl.java

@@ -4,6 +4,7 @@ import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.IdUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -442,6 +443,32 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
         if (ObjectUtils.isNotEmpty(info)) {
             List<File> fileList = fileMapper.selectList(Wrappers.<File>query().lambda().eq(File::getFolderId, info.getPreMeetingInfoFileId()));
             info.setFileInfos(fileList);
+
+            // 处理签到状态
+            LambdaQueryWrapper<MeetingConferee> meetingConfereeLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            meetingConfereeLambdaQueryWrapper
+                    .eq(MeetingConferee::getUserId, StpUtil.getLoginIdAsLong())
+                    .eq(MeetingConferee::getWfMeetingApplyId, id)
+                    ;
+            MeetingConferee meetingConferee = meetingConfereeMapper.selectOne(meetingConfereeLambdaQueryWrapper);
+            info.setCheckInStatus(meetingConferee.getCheckInStatus());
+
+            // 处理状态
+            LocalTime nowLocalTime = LocalTime.now();
+            if (info.getMeetingStatus() != 1) {
+                if (info.getMeetingApplyE().isBefore(nowLocalTime)) {
+                    if(info.getCheckInStatus() == 0){
+                        info.setMeetingStatus(4);
+                    }
+                    if(info.getCheckInStatus() == 1){
+                        info.setMeetingStatus(2);
+                    }
+                } else if (info.getMeetingApplyS().isAfter(nowLocalTime)) {
+                    info.setMeetingStatus(0);
+                } else {
+                    info.setMeetingStatus(3);
+                }
+            }
         }
 
         return info;
@@ -718,16 +745,18 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean updateMeetingCheckIn(UpdateMeetingCheckInDto dto) {
+        Long loginId = StpUtil.getLoginIdAsLong();
+
         LambdaUpdateWrapper<MeetingConferee> meetingConfereeLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
         meetingConfereeLambdaUpdateWrapper
                 .eq(MeetingConferee::getWfMeetingApplyId, dto.getId())
-                .eq(MeetingConferee::getUserId, StpUtil.getLoginIdAsLong())
+                .eq(MeetingConferee::getUserId, loginId)
                 ;
         MeetingConferee meetingConferee = new MeetingConferee();
         meetingConferee.setCheckInStatus(1);
         meetingConferee.setCheckInDate(new Date());
         meetingConferee.setModifyDate(new Date());
-        meetingConferee.setModifyUserId(StpUtil.getLoginIdAsLong());
+        meetingConferee.setModifyUserId(loginId);
         meetingConfereeMapper.update(meetingConferee, meetingConfereeLambdaUpdateWrapper);
         return true;
     }

+ 12 - 0
src/main/java/com/xjrsoft/module/oa/vo/MeetingMobileInfoVo.java

@@ -115,4 +115,16 @@ public class MeetingMobileInfoVo {
 
     @ApiModelProperty("附件列表")
     private List<File> fileInfos;
+
+    /**
+     * 会议状态(0:未开始 1:已经撤销,2:已结束)
+     */
+    @ApiModelProperty("会议状态(0:未开始 1:已经撤销,2:已结束,3:进行中,4:未参与)")
+    private Integer meetingStatus;
+
+    /**
+     * 签到状态(0:未签到,1:已签到)
+     */
+    @ApiModelProperty("签到状态(0:未签到,1:已签到,2:请假)")
+    private Integer checkInStatus;
 }

+ 6 - 1
src/main/java/com/xjrsoft/module/personnel/service/impl/CarMessageApplyServiceImpl.java

@@ -7,6 +7,7 @@ import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
+import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.module.hikvision.entity.HikvisionData;
 import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
@@ -78,7 +79,11 @@ public class CarMessageApplyServiceImpl extends MPJBaseServiceImpl<CarMessageApp
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean add(AddCarMessageApplyDto dto) {
-        Integer countByCarNumber = this.baseMapper.getCountByCarNumber(dto.getCarNumber());
+        long countByCarNumber = this.count(
+                new QueryWrapper<CarMessageApply>().lambda()
+                        .eq(CarMessageApply::getCarNumber, dto.getCarNumber())
+                        .eq(CarMessageApply::getDeleteMark, DeleteMark.NODELETE.getCode())
+        );
         if(countByCarNumber > 0){
             throw new MyException("已存在该车牌号");
         }

+ 1 - 0
src/main/resources/application-dev.yml

@@ -121,6 +121,7 @@ xjrsoft:
       - /workflow/execute/start-process-info
       - /baseGrade/list
       - /baseSystemConfig/list
+      - /baseMajorSet/list
     approval-time: 300 # 审核超时时间 目前设为5分钟
   email:
     host:  #邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>

+ 1 - 1
src/main/resources/mapper/personnel/CarMessageApplyMapper.xml

@@ -3,7 +3,7 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.personnel.mapper.CarMessageApplyMapper">
-    <select id="getCountByCarNumber" >
+    <select id="getCountByCarNumber" parameterType="java.lang.String" resultType="java.lang.Integer">
         SELECT count(*) FROM car_message_apply WHERE delete_mark = 0 and now() between start_time and end_time and car_number = #{carNumber}
     </select>
 </mapper>