Browse Source

班级组织导入

guq 6 years ago
parent
commit
0a9a457549

+ 9 - 1
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/SchoolApplication.java

@@ -19,9 +19,17 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
 @ServletComponentScan
 @EnableEurekaClient
 @EnableFeignClients("com.usoftchina.smartschool")
-public class SchoolApplication {
+public class SchoolApplication extends WebMvcConfigurerAdapter{
     public static void main(String[] args) {
         SpringApplication.run(SchoolApplication.class, args);
     }
+    @Override
+    public void addCorsMappings(CorsRegistry registry) {
 
+        registry.addMapping("/**")
+                .allowCredentials(true)
+                .allowedHeaders("*")
+                .allowedOrigins("*")
+                .allowedMethods("*");
+    }
 }

+ 7 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/controller/GradeController.java

@@ -33,6 +33,13 @@ public class GradeController {
         return Result.success(school);
     }
 
+    //导入保存至列表
+    @RequestMapping("/saveToFormal")
+    public Result saveToFormal(Integer id, boolean update) {
+        gradeService.saveToFormal(id, update);
+        return Result.success();
+    }
+
 
 
 }

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

@@ -5,4 +5,6 @@ import com.usoftchina.smartschool.school.po.TreeNode;
 
 public interface GradeService {
     TreeNode getSchoolTree(Long id);
+
+    void saveToFormal(Integer id, boolean update);
 }

+ 71 - 2
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/GradeServiceImpl.java

@@ -1,17 +1,24 @@
 package com.usoftchina.smartschool.school.basic.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.usoftchina.smartschool.context.BaseContextHolder;
 import com.usoftchina.smartschool.exception.BizException;
 import com.usoftchina.smartschool.school.basic.service.GradeService;
 import com.usoftchina.smartschool.school.exception.BizExceptionCode;
+import com.usoftchina.smartschool.school.mapper.DataImportMapper;
 import com.usoftchina.smartschool.school.mapper.SysClazzMapper;
 import com.usoftchina.smartschool.school.mapper.SysGradeMapper;
 import com.usoftchina.smartschool.school.mapper.SysSchoolMapper;
 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.List;
+import java.util.Map;
 
 /**
  * @author: guq
@@ -29,6 +36,9 @@ public class GradeServiceImpl implements GradeService{
     @Autowired
     private SysClazzMapper sysClazzMapper;
 
+    @Autowired
+    private DataImportMapper dataImportMapper;
+
     @Override
     public TreeNode getSchoolTree(Long id) {
         if (null == id || "0".equals(id)) {
@@ -70,11 +80,70 @@ public class GradeServiceImpl implements GradeService{
                 }
                 gradeNode.setChildren(classesTree);
                 gradesTree.add(gradeNode);
-                //grade.setChildren(classes);
             }
         }
         schoolTree.setChildren(gradesTree);
-        //school.setChildren(grades);
         return schoolTree;
     }
+
+    @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);
+        List<SysClazz> clazzes = new ArrayList<>();
+        if (!CollectionUtils.isEmpty(details)) {
+            Map<String, List<DataImportDetail>> datas = CollectionUtils.groupBy(details, DataImportDetail::getDd_codevalue);
+            for (String code : datas.keySet()) {
+                Long grade_id = null;
+                SysGrade grade = sysGradeMapper.selectByName(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);
+                }
+                SysGrade sysGrade = JSONObject.parseObject(main.getDd_maindata(), SysGrade.class);
+
+                //年纪不存在
+                if (null == grade) {
+                    sysGrade.setSchool_id(schoolId);
+                    sysGrade.setGrade_status(1);
+                    sysGradeMapper.insertSelective(sysGrade);
+                    grade_id = sysGrade.getGrade_id();
+                    //年纪存在、需要更新
+                } else if (update){
+                    grade.setSchool_id(schoolId);
+                    grade.setGrade_status(1);
+                    sysGradeMapper.updateByPrimaryKeySelective(grade);
+                    grade_id = grade.getGrade_id();
+                    //年纪存在、不需要处理
+                } else {
+                    continue;
+                }
+                //添加从表
+                if (data.size() > 0) {
+                    for (DataImportDetail dataDetail : data) {
+                        SysClazz detail = JSONObject.parseObject(dataDetail.getDd_detaildata(), SysClazz.class);
+                        if (null != detail) {
+                           detail.setGrade_id(grade_id);
+                           clazzes.add(detail);
+                        }
+                    }
+                }
+            }
+            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);
+        }
+    }
 }

+ 10 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/DataImportMapper.java

@@ -5,6 +5,8 @@ import com.usoftchina.smartschool.school.po.DataImportDetail;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 @Mapper
 public interface DataImportMapper {
     void deleteByCaller(@Param("caller") String caller, @Param("companyid") Long companyid);
@@ -19,4 +21,12 @@ public interface DataImportMapper {
     void deleteDetailByIds(String ids);
 
     void insertDetailSelective(DataImportDetail dd);
+
+    List<DataImportDetail> selectDataById(Integer id);
+
+    DataImportDetail selectMainBycode(@Param("code") String code, @Param("id") int id, @Param("school_id") Long school_id);
+
+    void updateDataImportError(@Param("err") String err,@Param("id") int id);
+
+    void updateDataImport(Integer id);
 }

+ 3 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysGradeMapper.java

@@ -2,6 +2,7 @@ package com.usoftchina.smartschool.school.mapper;
 
 import com.usoftchina.smartschool.school.po.SysGrade;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -20,4 +21,6 @@ public interface SysGradeMapper {
     int updateByPrimaryKey(SysGrade record);
 
     List<SysGrade> selectBySchool(Long id);
+
+    SysGrade selectByName(@Param("grade") String grade, @Param("school_id") Long school_id);
 }

+ 134 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/Status.java

@@ -0,0 +1,134 @@
+package com.usoftchina.smartschool.school.po;
+
+public enum Status {
+    /**
+     * 在录入
+     */
+    UNAUDITED("未审核"),
+
+    /**
+     * 已关闭
+     */
+    CLOSE("已关闭"),
+
+    /**
+     * 已开启
+     */
+    OPEN("已开启"),
+
+
+    /**
+     * 已禁用
+     */
+    BANNED("已禁用"),
+
+    /**
+     * 已启用
+     */
+    ENABLE("已启用"),
+
+    /**
+     * 已审核
+     */
+    AUDITED("已审核"),
+
+    /**
+     * 未入库
+     */
+    UNTURNIN("未入库"),
+
+    /**
+     * 部分入库
+     */
+    PART2IN("部分入库"),
+
+    /**
+     * 已入库
+     */
+    TURNIN("已入库"),
+
+    /**
+     * 部分出库
+     */
+    PARTOUT("部分出库"),
+
+    /**
+     * 已出库
+     */
+    TURNOUT("已出库"),
+
+    /**
+     * 未出库
+     */
+    UNTURNOUT("未出库"),
+
+    /**
+     *未收款
+     */
+    RECNONE("未收款"),
+
+    /**
+     * 部分收款
+     */
+    RECPART("部分收款"),
+
+
+    /**
+     * 已收款
+     */
+    RECALL("已收款"),
+
+
+    /**
+     * 未付款
+     */
+    PAYNONE("未付款"),
+
+
+    /**
+     * 部分付款
+     */
+    PAYPART("部分付款"),
+
+    /**
+     * 未确认
+     */
+    UNCONFIRM("未确认"),
+
+    /**
+     * 确认
+     */
+    CONFIRMED("已确认"),
+
+    /**
+     * 确认
+     */
+    REJECT("不同意"),
+
+    /**
+     * 未上传
+     */
+    UNSEND("未上传"),
+
+    /**
+     * 已上传
+     */
+    SENDED("已上传"),
+
+
+    /**
+     * 已付款
+     */
+    PAYALL("已付款")
+    ;
+
+
+    private String display;
+    private Status(String display){
+        this.display = display;
+    }
+
+    public String getDisplay(){
+        return display;
+    }
+}

+ 32 - 0
applications/school/school-server/src/main/resources/mapper/DataImportMapper.xml

@@ -148,4 +148,36 @@
       </if>
     </trim>
   </insert>
+
+  <select id="selectDataById" resultMap="DetailMap">
+    select * from  data_importdetail
+    where dd_diid = #{id}
+  </select>
+
+  <resultMap id="DetailMap" type="com.usoftchina.smartschool.school.po.DataImportDetail" >
+    <id column="dd_id" property="dd_id" jdbcType="INTEGER" />
+    <result column="dd_maindata" property="dd_maindata" jdbcType="VARCHAR" />
+    <result column="dd_detno" property="dd_detno" jdbcType="INTEGER" />
+    <result column="dd_diid" property="dd_diid" jdbcType="INTEGER" />
+    <result column="dd_checked" property="dd_checked" jdbcType="INTEGER" />
+    <result column="dd_success" property="dd_success" jdbcType="INTEGER" />
+    <result column="dd_toformal" property="dd_toformal" jdbcType="INTEGER" />
+    <result column="school_id" property="school_id" jdbcType="INTEGER" />
+    <result column="dd_detaildata" property="dd_detaildata" jdbcType="VARCHAR" />
+    <result column="dd_codevalue" property="dd_codevalue" jdbcType="VARCHAR" />
+  </resultMap>
+
+
+  <select id="selectMainBycode" resultMap="DetailMap">
+    select * from  data_importdetail
+    where dd_codevalue = #{code} and dd_diid=#{id} and ifnull(dd_success,0)=0 and ifnull(dd_maindata,'')!='' and school_id=#{school_id}
+  </select>
+
+  <update id="updateDataImportError">
+    update data_import set di_toformal=1,di_result=#{err} where di_id=#{id}
+  </update>
+
+  <update id="updateDataImport" parameterType="integer">
+    update data_import set di_toformal=1,di_success=1  where di_id=#{id}
+  </update>
 </mapper>

+ 0 - 6
applications/school/school-server/src/main/resources/mapper/SysClazzMapper.xml

@@ -34,9 +34,6 @@
   <insert id="insertSelective" parameterType="com.usoftchina.smartschool.school.po.SysClazz" >
     insert into sys_clazz
     <trim prefix="(" suffix=")" suffixOverrides="," >
-      <if test="clazz_id != null" >
-        clazz_id,
-      </if>
       <if test="clazz_name != null" >
         clazz_name,
       </if>
@@ -54,9 +51,6 @@
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides="," >
-      <if test="clazz_id != null" >
-        #{clazz_id,jdbcType=BIGINT},
-      </if>
       <if test="clazz_name != null" >
         #{clazz_name,jdbcType=VARCHAR},
       </if>

+ 6 - 6
applications/school/school-server/src/main/resources/mapper/SysGradeMapper.xml

@@ -31,11 +31,11 @@
       )
   </insert>
   <insert id="insertSelective" parameterType="com.usoftchina.smartschool.school.po.SysGrade" >
+    <selectKey  resultType="java.lang.Long" keyProperty="grade_id">
+      SELECT LAST_INSERT_ID() AS ID
+    </selectKey>
     insert into sys_grade
     <trim prefix="(" suffix=")" suffixOverrides="," >
-      <if test="grade_id != null" >
-        grade_id,
-      </if>
       <if test="grade_name != null" >
         grade_name,
       </if>
@@ -53,9 +53,6 @@
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides="," >
-      <if test="grade_id != null" >
-        #{grade_id,jdbcType=BIGINT},
-      </if>
       <if test="grade_name != null" >
         #{grade_name,jdbcType=VARCHAR},
       </if>
@@ -106,4 +103,7 @@
   <select id="selectBySchool" parameterType="java.lang.Long" resultMap="BaseResultMap">
     select * from sys_grade where school_id = #{id}
   </select>
+  <select id="selectByName" resultMap="BaseResultMap">
+    select * from sys_grade where grade_name=#{grade} and school_id=#{school_id}
+  </select>
 </mapper>