Parcourir la source

学生家长导入代码

guq il y a 7 ans
Parent
commit
216903241a

+ 6 - 3
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/controller/StudentController.java

@@ -34,7 +34,6 @@ public class StudentController {
         return Result.success(student);
     }
 
-
     @RequestMapping("/read/{id}")
     public Result getFormData(@PathVariable("id") Long id) {
          StudentForm formData = studentService.getFormData(id);
@@ -47,6 +46,10 @@ public class StudentController {
         return Result.success(formData);
     }
 
-
-
+    //导入保存至列表
+    @RequestMapping("/saveToFormal")
+    public Result saveToFormal(Integer id, boolean update) {
+        studentService.saveToFormal(id, update);
+        return Result.success();
+    }
 }

+ 2 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/StudentService.java

@@ -13,4 +13,6 @@ public interface StudentService {
     StudentForm getFormData(Long id);
 
     DocBaseDTO saveFormData(StudentForm form);
+
+    void saveToFormal(Integer id, boolean update);
 }

+ 90 - 3
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/StudentServiceImpl.java

@@ -1,5 +1,6 @@
 package com.usoftchina.smartschool.school.basic.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.smartschool.context.BaseContextHolder;
@@ -9,17 +10,19 @@ import com.usoftchina.smartschool.school.basic.service.StudentService;
 import com.usoftchina.smartschool.school.dto.DocBaseDTO;
 import com.usoftchina.smartschool.school.dto.ListReqDTO;
 import com.usoftchina.smartschool.school.exception.BizExceptionCode;
+import com.usoftchina.smartschool.school.mapper.DataImportMapper;
 import com.usoftchina.smartschool.school.mapper.SysStudentMapper;
-import com.usoftchina.smartschool.school.po.StudentForm;
-import com.usoftchina.smartschool.school.po.SysParents;
-import com.usoftchina.smartschool.school.po.SysStudent;
+import com.usoftchina.smartschool.school.po.*;
+import com.usoftchina.smartschool.utils.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author: guq
@@ -31,6 +34,9 @@ public class StudentServiceImpl implements StudentService{
     @Autowired
     private SysStudentMapper sysStudentMapper;
 
+    @Autowired
+    private DataImportMapper dataImportMapper;
+
     @Override
     public PageInfo<SysStudent> getListData(PageRequest page, ListReqDTO listReqDTO) {
         PageHelper.startPage(page.getNumber(), page.getSize());
@@ -120,4 +126,85 @@ public class StudentServiceImpl implements StudentService{
 
         return null;
     }
+
+    @Override
+    @Transactional
+    public void saveToFormal(Integer id, boolean update) {
+        if (null == id || "0".equals(id)) {
+            return;
+        }
+        Long schoolId = BaseContextHolder.getSchoolId();
+        StringBuilder err = new StringBuilder();
+        List<DataImportDetail> details = dataImportMapper.selectDataById(id);
+        JSONObject json = null;
+        if (!CollectionUtils.isEmpty(details)) {
+            Map<String, List<DataImportDetail>> datas = CollectionUtils.groupBy(details, DataImportDetail::getDd_codevalue);
+            for (String code : datas.keySet()) {
+                Long stu_id = null;
+                SysStudent student = sysStudentMapper.selectByCode(code, schoolId);
+                List<DataImportDetail> data = datas.get(code);
+                DataImportDetail main = dataImportMapper.selectMainBycode(code, id, schoolId);
+                //数据验证
+                if (StringUtils.isEmpty(main)) {
+                    throw new BizException(BizExceptionCode.USELESS_DATA);
+                }
+                //转换字段
+                json = JSONObject.parseObject(main.getDd_maindata());
+                if (null != json) {
+                    if ("男".equals(json.get("stu_sex"))) {
+                        json.put("stu_sex", 1);
+                    }else if ("女".equals(json.get("stu_sex"))) {
+                        json.put("stu_sex", 2);
+                    };
+                }
+
+                SysStudent stu = JSONObject.parseObject(json.toJSONString(), SysStudent.class);
+
+                //学生不存在
+                if (null == student) {
+                    stu.setSchool_id(schoolId);
+                    stu.setStu_status(1);
+                    sysStudentMapper.insertSelective(stu);
+                    stu_id = stu.getStu_id();
+                    //学生存在、需要更新
+                } else if (update){
+                    student.setSchool_id(schoolId);
+                    student.setStu_status(1);
+                    sysStudentMapper.updateByPrimaryKeySelective(student);
+                    stu_id = student.getStu_id();
+                    //年纪存在、不需要处理
+                } else {
+                    continue;
+                }
+                //添加从表
+                if (data.size() > 0) {
+                    for (DataImportDetail dataDetail : data) {
+                        StudentRelation detail = JSONObject.parseObject(dataDetail.getDd_detaildata(), StudentRelation.class);
+                        if (null != detail) {
+                            //保证家长已经插入
+                            SysParents parent = sysStudentMapper.selectParentByPhone(detail.getPa_phone(), schoolId);
+                            if (null == parent) {
+                                parent = new SysParents();
+                                parent.setSchool_id(schoolId);
+                                parent.setParents_name(detail.getParents_name());
+                                parent.setPa_phone(detail.getPa_phone());
+                                parent.setParents_status(1);
+                                sysStudentMapper.insertparent(parent);
+                            }
+                            //插入学生与父母的关系
+                            sysStudentMapper.insertrelationDetail(stu_id, parent.getParent_id(), detail.getPs_relation());
+                        }
+                    }
+                }
+            }
+           /* if (err.length() > 0) {
+                dataImportMapper.updateDataImportError(err.toString(), id);
+                throw new BizException(12345, err.toString());
+            }
+            for (SysClazz  cla : clazzes) {
+                sysClazzMapper.insertSelective(cla);
+            }*/
+            dataImportMapper.updateDataImport(id);
+        }
+    }
 }

+ 1 - 1
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/TeacherServiceImpl.java

@@ -105,7 +105,7 @@ public class TeacherServiceImpl implements TeacherService{
                         if ("男".equals(json.get("teacher_sex"))) {
                             json.put("teacher_sex", 1);
                         }else if ("女".equals(json.get("teacher_sex"))) {
-                            json.put("teacher_sex", 0);
+                            json.put("teacher_sex", 2);
                         };
                     }
                     teacher = JSONObject.parseObject(json.toJSONString(), SysTeacher.class);

+ 6 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysStudentMapper.java

@@ -32,4 +32,10 @@ public interface SysStudentMapper {
     void updateParents(List<SysParents> updateDetails);
 
     void updateRelation(@Param("parent_id") Long parent_id, @Param("id") Long id, @Param("relation") String relation);
+
+    SysStudent selectByCode(@Param("code") String code, @Param("schoolId") Long schoolId);
+
+    SysParents selectParentByPhone(@Param("phone") String phone, @Param("schoolId") Long schoolId );
+
+    void insertrelationDetail(@Param("id") Long id, @Param("pr_id") Long pr_id, @Param("relation") String relation);
 }

+ 37 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/StudentRelation.java

@@ -0,0 +1,37 @@
+package com.usoftchina.smartschool.school.po;
+
+import java.io.Serializable;
+
+/**
+ * @author: guq
+ * @create: 2019-01-29 15:26
+ **/
+public class StudentRelation implements Serializable{
+    private String parents_name;
+    private String pa_phone;
+    private String ps_relation;
+
+    public String getParents_name() {
+        return parents_name;
+    }
+
+    public void setParents_name(String parents_name) {
+        this.parents_name = parents_name;
+    }
+
+    public String getPa_phone() {
+        return pa_phone;
+    }
+
+    public void setPa_phone(String pa_phone) {
+        this.pa_phone = pa_phone;
+    }
+
+    public String getPs_relation() {
+        return ps_relation;
+    }
+
+    public void setPs_relation(String ps_relation) {
+        this.ps_relation = ps_relation;
+    }
+}

+ 10 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/SysParents.java

@@ -38,6 +38,16 @@ public class SysParents {
 
     private String pr_relation;
 
+    private String pa_phone;
+
+    public String getPa_phone() {
+        return pa_phone;
+    }
+
+    public void setPa_phone(String pa_phone) {
+        this.pa_phone = pa_phone;
+    }
+
     public String getPr_relation() {
         return pr_relation;
     }

+ 12 - 1
applications/school/school-server/src/main/resources/mapper/SysStudentMapper.xml

@@ -334,8 +334,19 @@
     </foreach>
   </update>
 
-
   <update id="updateRelation">
     update sys_parents_stu set ps_relation=#{relation} where parent_id=#{parent_id} and stu_id =#{id}
   </update>
+
+  <select id="selectByCode" resultMap="BaseResultMap">
+    select * from sys_student where stu_number=#{code} and school_id=#{schoolId}
+  </select>
+
+  <select id="selectParentByPhone"  resultMap="parentMap">
+    select * from sys_parents where pa_phone=#{phone} and school_id=#{schoolId}
+  </select>
+
+  <insert id="insertrelationDetail">
+     insert into sys_parents_stu (stu_id,parent_id,ps_relation) VALUES (#{id},#{pr_id},#{relation})
+  </insert>
 </mapper>