Ver código fonte

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

fanxp 1 semana atrás
pai
commit
0c37ad4691

+ 43 - 25
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskClassStudentServiceImpl.java

@@ -117,36 +117,36 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
                         .in(BandingTaskClassStudent::getNewStudentId, dto.getNewStudentIds())
         );
 
-        BaseClass aClass = classService.getById(dto.getBandingTaskClassId());
+        List<BaseNewStudent> list = newStudentService.list(
+                new QueryWrapper<BaseNewStudent>().lambda()
+                        .in(BaseNewStudent::getId, dto.getNewStudentIds())
+        );
 
         List<BandingTaskClassStudent> dataList = new ArrayList<>();
         long createUserId = StpUtil.getLoginIdAsLong();
 
-        for (Long newStudentId : dto.getNewStudentIds()) {
-            dataList.add(
-                    new BandingTaskClassStudent(){{
-                        setCreateDate(new Date());
-                        setNewStudentId(newStudentId);
-                        setBandingTaskClassId(dto.getBandingTaskClassId());
-                        setCreateUserId(createUserId);
-                        setStatus(0);
-                        if(dto.getIsHandle() != null && dto.getIsHandle() == 1){
-                            setStatus(1);
-                        }
-                    }}
-            );
-        }
-        if(!dataList.isEmpty()){
-            this.saveBatch(dataList);
-        }
+        if(dto.getIsHandle() != null && dto.getIsHandle() == 1){
+            BaseClass aClass = classService.getById(dto.getBandingTaskClassId());
 
-        List<Long> studentIds = dataList.stream().map(BandingTaskClassStudent::getNewStudentId).collect(Collectors.toList());
-        List<BaseNewStudent> list = newStudentService.list(
-                new QueryWrapper<BaseNewStudent>().lambda()
-                        .in(BaseNewStudent::getId, studentIds)
-        );
+            BandingTaskClass taskClass = taskClassMapper.selectOne(
+                    new QueryWrapper<BandingTaskClass>().lambda()
+                            .eq(BandingTaskClass::getBaseClassId, aClass.getId())
+            );
 
-        if(dto.getIsHandle() != null && dto.getIsHandle() == 1){
+            for (Long newStudentId : dto.getNewStudentIds()) {
+                dataList.add(
+                        new BandingTaskClassStudent(){{
+                            setCreateDate(new Date());
+                            setNewStudentId(newStudentId);
+                            setBandingTaskClassId(taskClass.getId());
+                            setCreateUserId(createUserId);
+                            setStatus(0);
+                            if(dto.getIsHandle() != null && dto.getIsHandle() == 1){
+                                setStatus(1);
+                            }
+                        }}
+                );
+            }
             //新增报到计划,如果有多个分班任务确认,需要保证试读报到计划只有一个
             BaseSemester semester = semesterService.getCurrentSemester();
             List<StudentReportPlan> planList = reportPlanService.list(
@@ -158,7 +158,7 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
             );
 
             for (StudentReportPlan plan : planList) {
-                for (Long newStudentId : studentIds) {
+                for (Long newStudentId : dto.getNewStudentIds()) {
                     StudentReportRecord record = new StudentReportRecord();
                     record.setCreateDate(new Date());
                     record.setCreateUserId(StpUtil.getLoginIdAsLong());
@@ -291,6 +291,24 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
             if(!updateList.isEmpty()){
                 newStudentService.updateBatchById(updateList);
             }
+            for (Long newStudentId : dto.getNewStudentIds()) {
+                dataList.add(
+                        new BandingTaskClassStudent(){{
+                            setCreateDate(new Date());
+                            setNewStudentId(newStudentId);
+                            setBandingTaskClassId(dto.getBandingTaskClassId());
+                            setCreateUserId(createUserId);
+                            setStatus(0);
+                            if(dto.getIsHandle() != null && dto.getIsHandle() == 1){
+                                setStatus(1);
+                            }
+                        }}
+                );
+            }
+        }
+
+        if(!dataList.isEmpty()){
+            this.saveBatch(dataList);
         }
         return true;
     }

+ 4 - 0
src/main/java/com/xjrsoft/module/oa/service/impl/WfMeetingApplyServiceImpl.java

@@ -537,6 +537,10 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
                 .leftJoin(XjrUser.class, XjrUser::getId, MeetingConfereeOpinion::getUserId,
                         wrapper -> wrapper
                                 .selectAs(XjrUser::getName, MeetingConfereeOpinionListVo::getUserIdCn)
+                                .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, XjrUser::getGender,
+                                        wrap -> wrap
+                                                .selectAs(DictionaryDetail::getName, MeetingConfereeOpinionListVo::getGenderCn)
+                                )
                 )
                 .eq(MeetingConfereeOpinion::getWfMeetingApplyId, dto.getWfMeetingApplyId())
         ;

+ 5 - 0
src/main/java/com/xjrsoft/module/oa/vo/MeetingConfereeOpinionListVo.java

@@ -37,6 +37,11 @@ public class MeetingConfereeOpinionListVo {
      */
     @ApiModelProperty("用户主键id(xjr_user)")
     private String userIdCn;
+    /**
+     * 性别
+     */
+    @ApiModelProperty("性别")
+    private String genderCn;
     /**
     * 意见
     */

+ 1 - 2
src/main/java/com/xjrsoft/module/personnel/controller/CarMessageApplyController.java

@@ -115,8 +115,7 @@ public class CarMessageApplyController {
     @SaCheckPermission("carmessageapply:add")
     @XjrLog(value = "新增车辆信息审核", saveResponseData = true)
     public RT<Boolean> add(@Valid @RequestBody AddCarMessageApplyDto dto) {
-        CarMessageApply carMessageApply = BeanUtil.toBean(dto, CarMessageApply.class);
-        boolean isSuccess = carMessageApplyService.save(carMessageApply);
+        boolean isSuccess = carMessageApplyService.add(dto);
         return RT.ok(isSuccess);
     }
 

+ 2 - 0
src/main/java/com/xjrsoft/module/personnel/mapper/CarMessageApplyMapper.java

@@ -3,6 +3,7 @@ package com.xjrsoft.module.personnel.mapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.personnel.entity.CarMessageApply;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * @title: 车辆信息审核
@@ -13,4 +14,5 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface CarMessageApplyMapper extends MPJBaseMapper<CarMessageApply> {
 
+    Integer getCountByCarNumber(@Param("carNumber") String carNumber);
 }

+ 6 - 0
src/main/java/com/xjrsoft/module/personnel/service/ICarMessageApplyService.java

@@ -1,6 +1,8 @@
 package com.xjrsoft.module.personnel.service;
 
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.personnel.dto.AddCarMessageApplyDto;
+import com.xjrsoft.module.personnel.dto.UpdateCarMessageApplyDto;
 import com.xjrsoft.module.personnel.entity.CarMessageApply;
 
 import java.util.List;
@@ -15,4 +17,8 @@ import java.util.List;
 public interface ICarMessageApplyService extends MPJBaseService<CarMessageApply> {
 
     Boolean deleteBatchByIds(List<Long> ids);
+
+    Boolean add(AddCarMessageApplyDto dto);
+
+
 }

+ 19 - 0
src/main/java/com/xjrsoft/module/personnel/service/impl/CarMessageApplyServiceImpl.java

@@ -1,14 +1,19 @@
 package com.xjrsoft.module.personnel.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 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;
 import com.xjrsoft.module.hikvision.util.ApiUtil;
+import com.xjrsoft.module.personnel.dto.AddCarMessageApplyDto;
+import com.xjrsoft.module.personnel.dto.UpdateCarMessageApplyDto;
 import com.xjrsoft.module.personnel.entity.CarMessageApply;
 import com.xjrsoft.module.personnel.mapper.CarMessageApplyMapper;
 import com.xjrsoft.module.personnel.service.ICarMessageApplyService;
@@ -16,6 +21,7 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDateTime;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
@@ -69,4 +75,17 @@ public class CarMessageApplyServiceImpl extends MPJBaseServiceImpl<CarMessageApp
 //        }
         return true;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean add(AddCarMessageApplyDto dto) {
+        Integer countByCarNumber = this.baseMapper.getCountByCarNumber(dto.getCarNumber());
+        if(countByCarNumber > 0){
+            throw new MyException("已存在该车牌号");
+        }
+        CarMessageApply carMessageApply = BeanUtil.toBean(dto, CarMessageApply.class);
+        this.save(carMessageApply);
+        return true;
+    }
+
 }

+ 10 - 4
src/main/java/com/xjrsoft/module/student/vo/BaseNewStudentPageVo.java

@@ -156,13 +156,13 @@ public class BaseNewStudentPageVo {
     @ApiModelProperty("家庭地址")
     private String familyAddress;
 
-    @ExcelProperty("班级名称")
-    @ApiModelProperty("班级名称")
+    @ExcelProperty("在读班级名称")
+    @ApiModelProperty("在读班级名称")
     private String className;
 
 
-    @ExcelProperty("班主任")
-    @ApiModelProperty("班主任")
+    @ExcelProperty("在读班级班主任")
+    @ApiModelProperty("在读班级班主任")
     private String teacherName;
 
     @ApiModelProperty("学生userId")
@@ -200,4 +200,10 @@ public class BaseNewStudentPageVo {
 
     @ApiModelProperty("分班类型(1:自动分班 2:手动分班)")
     private Integer operateMode;
+
+    @ApiModelProperty("分班班级")
+    private String bandingClassName;
+
+    @ApiModelProperty("分班班主任")
+    private String bandingTeacherName;
 }

+ 9 - 0
src/main/resources/mapper/personnel/CarMessageApplyMapper.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xjrsoft.module.personnel.mapper.LaborManagementMapper">
+    <select id="getCountByCarNumber" 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>

+ 7 - 3
src/main/resources/mapper/student/BaseNewStudentMapper.xml

@@ -5,9 +5,10 @@
 <mapper namespace="com.xjrsoft.module.student.mapper.BaseNewStudentMapper">
     <select id="getPage" parameterType="com.xjrsoft.module.student.dto.BaseNewStudentPageDto" resultType="com.xjrsoft.module.student.vo.BaseNewStudentPageVo">
         SELECT t1.id,t1.graduate_school,t1.name,t1.gender,t2.name AS gender_cn,t1.credential_number,t1.height,t1.weight,
-        t1.score,t1.graduate_class,t1.source,t5.name as source_cn,t1.stduy_status,t3.name AS stduy_status_cn,t1.mobile,t7.name as first_ambition,
-        t8.name as second_ambition,t1.is_adjust,t1.status,ifnull(t11.name,t1.delete_reason) AS class_name,t12.name AS teacher_name,
-        t1.paymnystate,t1.userdef6,t1.previous,t1.province,t1.city,t1.myarea,t1.remarks,t1.is_can_banding,t1.operate_mode FROM base_new_student t1
+        t1.score,t1.graduate_class,t1.source,t5.name AS source_cn,t1.stduy_status,t3.name AS stduy_status_cn,t1.mobile,t7.name AS first_ambition,
+        t8.name AS second_ambition,t1.is_adjust,t1.status,IFNULL(t11.name,t1.delete_reason) AS class_name,t12.name AS teacher_name,
+        t1.paymnystate,t1.userdef6,t1.previous,t1.province,t1.city,t1.myarea,t1.remarks,t1.is_can_banding,t1.operate_mode,
+        t14.name AS banding_class_name,t15.name AS banding_teacher_name FROM base_new_student t1
         LEFT JOIN xjr_dictionary_detail t2 ON t1.gender = t2.code AND t2.item_id = 2023000000000000004
         LEFT JOIN xjr_dictionary_detail t3 ON t1.stduy_status = t3.code AND t3.item_id = 2023000000000000030
         LEFT JOIN xjr_dictionary_detail t5 ON t1.source = t5.code AND t5.item_id = 2023000000000000028
@@ -18,6 +19,9 @@
         LEFT JOIN base_student_school_roll t10 ON t9.id = t10.user_id AND t10.delete_mark = 0
         LEFT JOIN base_class t11 ON t10.class_id = t11.id
         LEFT JOIN xjr_user t12 ON t11.teacher_id = t12.id
+        LEFT JOIN banding_task_class_student t13 ON t1.id = t13.new_student_id AND t13.delete_mark = 0 AND t13.status = 1
+        LEFT JOIN banding_task_class t14 ON t13.banding_task_class_id = t14.id AND t14.delete_mark = 0
+        LEFT JOIN xjr_user t15 ON t14.teacher_id = t15.id
         WHERE t1.delete_mark = 0
         <if test="dto.name != null and dto.name != ''">
             and t1.name like concat('%', #{dto.name}, '%')