Browse Source

Merge branches 'dev' and 'master' of ssh://10.10.100.21/source/smartschool-platform into dev

RaoMeng 6 years ago
parent
commit
3c93d1e0fc
29 changed files with 600 additions and 114 deletions
  1. 9 1
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/business/controller/ScoreController.java
  2. 4 4
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/business/service/ScoreService.java
  3. 32 7
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/business/service/impl/ScoreServiceImpl.java
  4. 78 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/common/controller/MirrorController.java
  5. 24 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/common/service/MirrorService.java
  6. 92 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/common/service/impl/MirrorServiceImpl.java
  7. 5 4
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/ScoreMapper.java
  8. 2 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SubjectMapper.java
  9. 2 1
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysClazzMapper.java
  10. 2 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysGradeMapper.java
  11. 2 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysTeacherMapper.java
  12. 16 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/ScoreForm.java
  13. 56 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/ScoreImportList.java
  14. 53 2
      applications/school/school-server/src/main/resources/mapper/ScoreMapper.xml
  15. 12 0
      applications/school/school-server/src/main/resources/mapper/SubjectMapper.xml
  16. 12 0
      applications/school/school-server/src/main/resources/mapper/SysClazzMapper.xml
  17. 12 0
      applications/school/school-server/src/main/resources/mapper/SysGradeMapper.xml
  18. 12 0
      applications/school/school-server/src/main/resources/mapper/SysTeacherMapper.xml
  19. 3 0
      frontend/pc-web/app/store/Ethnicity.js
  20. 34 22
      frontend/pc-web/app/view/Interaction/score/Detail.js
  21. 17 0
      frontend/pc-web/app/view/Interaction/score/DetailController.js
  22. 13 0
      frontend/pc-web/app/view/Interaction/score/DetailModel.js
  23. 96 70
      frontend/pc-web/app/view/Interaction/score/List.js
  24. 1 1
      frontend/pc-web/app/view/basic/staff/StaffList.js
  25. 8 0
      frontend/pc-web/app/view/core/base/GridPanel.js
  26. 1 1
      frontend/pc-web/app/view/core/button/import/Window.js
  27. 2 1
      frontend/pc-web/app/view/viewport/ViewportController.js
  28. BIN
      frontend/pc-web/resources/images/auth-background.jpg
  29. BIN
      frontend/pc-web/resources/images/标题.png

+ 9 - 1
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/business/controller/ScoreController.java

@@ -7,7 +7,10 @@ import com.usoftchina.smartschool.page.PageRequest;
 import com.usoftchina.smartschool.school.business.service.ScoreService;
 import com.usoftchina.smartschool.school.dto.BatchDealBaseDTO;
 import com.usoftchina.smartschool.school.dto.ListReqDTO;
+import com.usoftchina.smartschool.school.po.Notify;
+import com.usoftchina.smartschool.school.po.ScoreForm;
 import com.usoftchina.smartschool.school.po.ScoreImport;
+import com.usoftchina.smartschool.school.po.ScoreImportList;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -24,10 +27,15 @@ public class ScoreController {
 
     @GetMapping("/list")
     public Result getList(@PageDefault PageRequest page, ListReqDTO listReqDTO) {
-        PageInfo<ScoreImport> record = scoreService.getListData(page, listReqDTO);
+        PageInfo<ScoreImportList> record = scoreService.getListData(page, listReqDTO);
         return Result.success(record);
     }
 
+    @GetMapping("/read/{id}")
+    public Result getFormdata(@PathVariable("id") Long id) {
+        ScoreForm formdata = scoreService.getFormdata(id);
+        return Result.success(formdata);
+    }
 
     @PostMapping("/delete/{id}")
     public Result delete(@PathVariable("id") Long id) {

+ 4 - 4
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/business/service/ScoreService.java

@@ -4,16 +4,14 @@ import com.github.pagehelper.PageInfo;
 import com.usoftchina.smartschool.page.PageRequest;
 import com.usoftchina.smartschool.school.dto.BatchDealBaseDTO;
 import com.usoftchina.smartschool.school.dto.ListReqDTO;
-import com.usoftchina.smartschool.school.po.ScoreImport;
-import com.usoftchina.smartschool.school.po.StuScore;
-import com.usoftchina.smartschool.school.po.StuScoreDO;
+import com.usoftchina.smartschool.school.po.*;
 
 /**
  * @author: guq
  * @create: 2019-02-25 08:55
  **/
 public interface ScoreService {
-    PageInfo<ScoreImport> getListData(PageRequest page, ListReqDTO listReqDTO);
+    PageInfo<ScoreImportList> getListData(PageRequest page, ListReqDTO listReqDTO);
 
     void delete(Long id);
 
@@ -22,4 +20,6 @@ public interface ScoreService {
     void saveToFormal(Integer id, boolean update);
 
     void publish(Long id);
+
+    ScoreForm getFormdata(Long id);
 }

+ 32 - 7
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/business/service/impl/ScoreServiceImpl.java

@@ -48,16 +48,28 @@ public class ScoreServiceImpl implements ScoreService{
     private SysStudentMapper sysStudentMapper;
 
     @Override
-    public PageInfo<ScoreImport> getListData(PageRequest page, ListReqDTO listReqDTO) {
+    public PageInfo<ScoreImportList> getListData(PageRequest page, ListReqDTO listReqDTO) {
         PageHelper.startPage(page.getNumber(), page.getSize());
+        //取数据
+        List<ScoreImportList> data = getListByMode(listReqDTO);
+        PageInfo<ScoreImportList> list = new PageInfo<ScoreImportList>(data);
+        return list;
+    }
+
+    private List<ScoreImportList> getListByMode(ListReqDTO req) {
+        List<ScoreImportList> list = null;
         Long schoolId = BaseContextHolder.getSchoolId();
-        //condition语句
-        String condition = listReqDTO.getFinalCondition();
-        if(condition == null){
-            condition = "1=1";
+        String con = req.getFinalCondition();
+        if (null == con) {
+            con = "1=1";
+        }
+
+        if (null == req || StringUtils.isEmpty(req.getMode()) || "MAIN".equals(req.getMode())) {
+            list = scoreMapper.selectMainByConditon(con, schoolId);
+            //list = saleListMapper.selectSaleByCondition(con, companyId);
+        } else {
+            list = scoreMapper.selectDetailByCondition(con, schoolId);
         }
-        List<ScoreImport> data = scoreMapper.selectByConditon(condition, schoolId);
-        PageInfo<ScoreImport> list = new PageInfo<ScoreImport>(data);
         return list;
     }
 
@@ -196,4 +208,17 @@ public class ScoreServiceImpl implements ScoreService{
         //更新已转标志
         scoreMapper.updateTurnPublish(id);
     }
+
+    @Override
+    public ScoreForm getFormdata(Long id) {
+        if (null == id || "0".equals(id)) {
+            throw new BizException(BizExceptionCode.USELESS_DATA);
+        }
+        ScoreImport main = scoreMapper.selectByPrimaryKey(id);
+        List<ScoreImportdetail> detail = scoreMapper.selectDetail(id);
+        ScoreForm form = new ScoreForm();
+        form.setMain(main);
+        form.setItems(detail);
+        return form;
+    }
 }

+ 78 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/common/controller/MirrorController.java

@@ -0,0 +1,78 @@
+package com.usoftchina.smartschool.school.common.controller;
+
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.smartschool.base.Result;
+import com.usoftchina.smartschool.page.PageDefault;
+import com.usoftchina.smartschool.page.PageRequest;
+import com.usoftchina.smartschool.school.common.service.MirrorService;
+import com.usoftchina.smartschool.school.dto.ListReqDTO;
+import com.usoftchina.smartschool.school.po.Subject;
+import com.usoftchina.smartschool.school.po.SysClazz;
+import com.usoftchina.smartschool.school.po.SysGrade;
+import com.usoftchina.smartschool.school.po.SysTeacher;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 通用放大镜查询
+ * @author zhaoy
+ * @create 2019-03-04 15:31
+ */
+@RestController
+@RequestMapping("/mirror")
+public class MirrorController {
+
+    @Autowired
+    private MirrorService mirrorService;
+
+    /**
+     * 年级查询
+     * @param page
+     * @param listReqDTO
+     * @return
+     */
+    @GetMapping("/findGrade")
+    public Result findGrade(@PageDefault PageRequest page, ListReqDTO listReqDTO){
+        PageInfo<SysGrade> pageInfo = mirrorService.getGradeData(page, listReqDTO);
+        return Result.success(pageInfo);
+    }
+
+    /**
+     * 班级查询
+     * @param page
+     * @param listReqDTO
+     * @return
+     */
+    @GetMapping("/findClazz")
+    public Result findClazz(@PageDefault PageRequest page, ListReqDTO listReqDTO){
+        PageInfo<SysClazz> pageInfo = mirrorService.getClazzData(page, listReqDTO);
+        return Result.success(pageInfo);
+    }
+
+    /**
+     * 教师查询
+     * @param page
+     * @param listReqDTO
+     * @return
+     */
+    @GetMapping("/findTeacher")
+    public Result findTeacher(@PageDefault PageRequest page, ListReqDTO listReqDTO){
+        PageInfo<SysTeacher> pageInfo = mirrorService.getTeacherData(page, listReqDTO);
+        return Result.success(pageInfo);
+    }
+
+    /**
+     * 科目查询
+     * @param page
+     * @param listReqDTO
+     * @return
+     */
+    @GetMapping("/findSubject")
+    public Result findSubject(@PageDefault PageRequest page, ListReqDTO listReqDTO){
+        PageInfo<Subject> pageInfo = mirrorService.getSubjectData(page, listReqDTO);
+        return Result.success(pageInfo);
+    }
+
+}

+ 24 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/common/service/MirrorService.java

@@ -0,0 +1,24 @@
+package com.usoftchina.smartschool.school.common.service;
+
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.smartschool.page.PageRequest;
+import com.usoftchina.smartschool.school.dto.ListReqDTO;
+import com.usoftchina.smartschool.school.po.Subject;
+import com.usoftchina.smartschool.school.po.SysClazz;
+import com.usoftchina.smartschool.school.po.SysGrade;
+import com.usoftchina.smartschool.school.po.SysTeacher;
+
+/**
+ * @author zhaoy
+ * @create 2019-03-04 15:29
+ */
+public interface MirrorService {
+
+    PageInfo<SysGrade> getGradeData(PageRequest page, ListReqDTO listReqDTO);
+
+    PageInfo<SysClazz> getClazzData(PageRequest page, ListReqDTO listReqDTO);
+
+    PageInfo<SysTeacher> getTeacherData(PageRequest page, ListReqDTO listReqDTO);
+
+    PageInfo<Subject> getSubjectData(PageRequest page, ListReqDTO listReqDTO);
+}

+ 92 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/common/service/impl/MirrorServiceImpl.java

@@ -0,0 +1,92 @@
+package com.usoftchina.smartschool.school.common.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.smartschool.context.BaseContextHolder;
+import com.usoftchina.smartschool.page.PageRequest;
+import com.usoftchina.smartschool.school.common.service.MirrorService;
+import com.usoftchina.smartschool.school.dto.ListReqDTO;
+import com.usoftchina.smartschool.school.mapper.SubjectMapper;
+import com.usoftchina.smartschool.school.mapper.SysClazzMapper;
+import com.usoftchina.smartschool.school.mapper.SysGradeMapper;
+import com.usoftchina.smartschool.school.mapper.SysTeacherMapper;
+import com.usoftchina.smartschool.school.po.Subject;
+import com.usoftchina.smartschool.school.po.SysClazz;
+import com.usoftchina.smartschool.school.po.SysGrade;
+import com.usoftchina.smartschool.school.po.SysTeacher;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import java.util.List;
+
+/**
+ * @author zhaoy
+ * @create 2019-03-04 15:30
+ */
+@Service
+public class MirrorServiceImpl implements MirrorService {
+
+    @Autowired
+    private SysGradeMapper sysGradeMapper;
+    @Autowired
+    private SysClazzMapper sysClazzMapper;
+    @Autowired
+    private SysTeacherMapper sysTeacherMapper;
+    @Autowired
+    private SubjectMapper subjectMapper;
+
+    @Override
+    public PageInfo<SysGrade> getGradeData(PageRequest page, ListReqDTO listReqDTO) {
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        //condition语句
+        String condition = listReqDTO.getFinalCondition();
+        if(condition == null){
+            condition = "1=1";
+        }
+        Long schoolId = BaseContextHolder.getSchoolId();
+        List<SysGrade> sysGrade = sysGradeMapper.selectByGrade(condition,schoolId);
+        PageInfo<SysGrade> pageInfo = new PageInfo<SysGrade>(sysGrade);
+        return pageInfo;
+    }
+
+    @Override
+    public PageInfo<SysClazz> getClazzData(PageRequest page, ListReqDTO listReqDTO) {
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        //condition语句
+        String condition = listReqDTO.getFinalCondition();
+        if(condition == null){
+            condition = "1=1";
+        }
+        Long schoolId = BaseContextHolder.getSchoolId();
+        List<SysClazz> sysClazz = sysClazzMapper.selectByClazz(condition,schoolId);
+        PageInfo<SysClazz> pageInfo = new PageInfo<SysClazz>(sysClazz);
+        return pageInfo;
+    }
+
+    @Override
+    public PageInfo<SysTeacher> getTeacherData(PageRequest page, ListReqDTO listReqDTO) {
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        //condition语句
+        String condition = listReqDTO.getFinalCondition();
+        if(condition == null){
+            condition = "1=1";
+        }
+        Long schoolId = BaseContextHolder.getSchoolId();
+        List<SysTeacher> sysTeacher = sysTeacherMapper.selectByTeacher(condition,schoolId);
+        PageInfo<SysTeacher> pageInfo = new PageInfo<SysTeacher>(sysTeacher);
+        return pageInfo;
+    }
+
+    @Override
+    public PageInfo<Subject> getSubjectData(PageRequest page, ListReqDTO listReqDTO) {
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        //condition语句
+        String condition = listReqDTO.getFinalCondition();
+        if(condition == null){
+            condition = "1=1";
+        }
+        Long schoolId = BaseContextHolder.getSchoolId();
+        List<Subject> subject = subjectMapper.selectBySubject(condition,schoolId);
+        PageInfo<Subject> pageInfo = new PageInfo<Subject>(subject);
+        return pageInfo;
+    }
+}

+ 5 - 4
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/ScoreMapper.java

@@ -1,9 +1,6 @@
 package com.usoftchina.smartschool.school.mapper;
 
-import com.usoftchina.smartschool.school.po.ScoreImport;
-import com.usoftchina.smartschool.school.po.ScoreImportdetail;
-import com.usoftchina.smartschool.school.po.StuScore;
-import com.usoftchina.smartschool.school.po.StuScoreDO;
+import com.usoftchina.smartschool.school.po.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -36,4 +33,8 @@ public interface ScoreMapper {
     void batchInsert(List<StuScore> appScores);
 
     void updateTurnPublish(Long id);
+
+    List<ScoreImportList> selectMainByConditon(@Param("con") String con, @Param("school_id") Long schoolId);
+
+    List<ScoreImportList> selectDetailByCondition(@Param("con") String con, @Param("school_id") Long schoolId);
 }

+ 2 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SubjectMapper.java

@@ -20,4 +20,6 @@ public interface SubjectMapper {
     int updateByPrimaryKey(Subject record);
 
     List<Subject> selectByConditon(@Param("con") String con, @Param("school_id") Long school_id);
+
+    List<Subject> selectBySubject(@Param("condition") String condition, @Param("school_id") Long schoolId);
 }

+ 2 - 1
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysClazzMapper.java

@@ -2,7 +2,6 @@ package com.usoftchina.smartschool.school.mapper;
 
 import com.usoftchina.smartschool.school.po.SysClazz;
 import com.usoftchina.smartschool.school.po.SysTeacherClazz;
-import com.usoftchina.smartschool.school.po.TeacherDetail;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -31,4 +30,6 @@ public interface SysClazzMapper {
     void insertTeacher(SysTeacherClazz teacher);
 
     void updateTeacher(SysTeacherClazz item);
+
+    List<SysClazz> selectByClazz(@Param("condition") String condition, @Param("school_id") Long schoolId);
 }

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

@@ -25,4 +25,6 @@ public interface SysGradeMapper {
     SysGrade selectByName(@Param("grade") String grade, @Param("school_id") Long school_id);
 
     int insertGrade(SysGrade grade);
+
+    List<SysGrade> selectByGrade(@Param("condition") String condition, @Param("school_id") Long schoolId);
 }

+ 2 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysTeacherMapper.java

@@ -30,4 +30,6 @@ public interface SysTeacherMapper {
     SysTeacher selectByPhone(@Param("phone") String phone, @Param("school_id") Long school_id);
 
     void deleteRelation(Long id);
+
+    List<SysTeacher> selectByTeacher(@Param("condition") String condition, @Param("school_id") Long schoolId);
 }

+ 16 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/ScoreForm.java

@@ -0,0 +1,16 @@
+package com.usoftchina.smartschool.school.po;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author: guq
+ * @create: 2019-03-05 11:15
+ **/
+@Data
+public class ScoreForm implements Serializable{
+    private ScoreImport main;
+    private List<ScoreImportdetail> items;
+}

+ 56 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/ScoreImportList.java

@@ -0,0 +1,56 @@
+package com.usoftchina.smartschool.school.po;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author: guq
+ * @create: 2019-03-05 10:58
+ **/
+@Data
+public class ScoreImportList implements Serializable{
+
+    private Long si_id;
+
+    private Date si_date;
+
+    private String si_creator;
+
+    private Long si_creatorid;
+
+    private String si_examtitle;
+
+    private String si_examscope;
+
+    private String si_term;
+
+    private String si_class;
+
+    private Long si_classid;
+
+    private String si_grade;
+
+    private Long si_gradeid;
+
+    private Long school_id;
+
+    private Date si_examdate;
+
+    private Integer si_publish;
+
+    private Long sd_id;
+
+    private Long sd_siid;
+
+    private Long sd_stuid;
+
+    private String sd_stu;
+
+    private Double sd_score;
+
+    private String sd_subject;
+
+    private String sd_remark;
+}

+ 53 - 2
applications/school/school-server/src/main/resources/mapper/ScoreMapper.xml

@@ -166,7 +166,7 @@
   </update>
 
   <select id="selectByConditon" resultMap="BaseResultMap">
-    select * from stu_score <where>
+    select * from score_import <where>
       <if test="con != null">
         ${con}
       </if>
@@ -174,7 +174,7 @@
         and  school_id = #{school_id}
       </if>
     </where>
-    order by score_id DESC
+    order by si_id DESC
   </select>
 
   <select id="selectByCode" resultType="com.usoftchina.smartschool.school.po.ScoreImport">
@@ -358,4 +358,55 @@
   <update id="updateTurnPublish" parameterType="long">
     update score_import set si_publish=1 where si_id=#{id}
   </update>
+
+
+
+  <resultMap id="listMap" type="com.usoftchina.smartschool.school.po.ScoreImportList" >
+    <id column="si_id" property="si_id" jdbcType="BIGINT" />
+    <result column="si_date" property="si_date" jdbcType="TIMESTAMP" />
+    <result column="si_creator" property="si_creator" jdbcType="VARCHAR" />
+    <result column="si_creatorid" property="si_creatorid" jdbcType="BIGINT" />
+    <result column="si_examtitle" property="si_examtitle" jdbcType="VARCHAR" />
+    <result column="si_examscope" property="si_examscope" jdbcType="VARCHAR" />
+    <result column="si_term" property="si_term" jdbcType="VARCHAR" />
+    <result column="si_class" property="si_class" jdbcType="VARCHAR" />
+    <result column="si_classid" property="si_classid" jdbcType="BIGINT" />
+    <result column="si_grade" property="si_grade" jdbcType="VARCHAR" />
+    <result column="si_gradeid" property="si_gradeid" jdbcType="BIGINT" />
+    <result column="school_id" property="school_id" jdbcType="BIGINT" />
+    <result column="si_examdate" property="si_examdate" jdbcType="TIMESTAMP" />
+    <result column="si_publish" property="si_publish" jdbcType="INTEGER" />
+    <result column="sd_id" property="sd_id" jdbcType="BIGINT" />
+    <result column="sd_siid" property="sd_siid" jdbcType="BIGINT" />
+    <result column="sd_stuid" property="sd_stuid" jdbcType="BIGINT" />
+    <result column="sd_stu" property="sd_stu" jdbcType="VARCHAR" />
+    <result column="sd_score" property="sd_score" jdbcType="INTEGER" />
+    <result column="sd_subject" property="sd_subject" jdbcType="VARCHAR" />
+    <result column="sd_remark" property="sd_remark" jdbcType="VARCHAR" />
+  </resultMap>
+
+  <select id="selectMainByConditon" resultMap="listMap">
+    select * from score_import <where>
+    <if test="con != null">
+      ${con}
+    </if>
+    <if test="school_id != null">
+      and  school_id = #{school_id}
+    </if>
+  </where>
+    order by si_id DESC
+  </select>
+
+  <select id="selectDetailByCondition" resultMap="listMap">
+    select * from score_import left join score_importdetail on si_id=sd_siid <where>
+    <if test="con != null">
+      ${con}
+    </if>
+    <if test="school_id != null">
+      and  score_import.school_id = #{school_id}
+    </if>
+  </where>
+    order by si_id DESC
+  </select>
+
 </mapper>

+ 12 - 0
applications/school/school-server/src/main/resources/mapper/SubjectMapper.xml

@@ -88,4 +88,16 @@
   </where>
     order by subject_id DESC
   </select>
+
+  <select id="selectBySubject" resultMap="BaseResultMap">
+    select * from subject
+    <where>
+      <if test="condition != null">
+        ${condition}
+      </if>
+      <if test="school_id != null">
+        and school_id=#{school_id}
+      </if>
+    </where>
+  </select>
 </mapper>

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

@@ -220,4 +220,16 @@
     </set>
     where teacher_clazz_id = #{teacher_clazz_id,jdbcType=BIGINT}
   </update>
+
+  <select id="selectByClazz" resultMap="BaseResultMap">
+    select * from sys_clazz
+    <where>
+      <if test="condition != null">
+        ${condition}
+      </if>
+      <if test="school_id != null">
+        and school_id=#{school_id}
+      </if>
+    </where>
+  </select>
 </mapper>

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

@@ -113,4 +113,16 @@
     not  exists (select 1 from sys_grade where grade_name = #{grade_name} and school_id = #{school_id})
   </insert>
 
+  <select id="selectByGrade" resultMap="BaseResultMap">
+    select * from sys_grade
+    <where>
+      <if test="condition != null">
+        ${condition}
+      </if>
+      <if test="school_id != null">
+        and school_id=#{school_id}
+      </if>
+    </where>
+  </select>
+
 </mapper>

+ 12 - 0
applications/school/school-server/src/main/resources/mapper/SysTeacherMapper.xml

@@ -360,4 +360,16 @@ where sys_teacher_clazz.teacher_id=#{id}
   <delete id="deleteRelation">
     delete from sys_teacher_clazz where teacher_id=#{teacher_id}
   </delete>
+
+  <select id="selectByTeacher" resultMap="BaseResultMap">
+    select * from sys_teacher
+    <where>
+      <if test="condition != null">
+        ${condition}
+      </if>
+      <if test="school_id != null">
+        and school_id=#{school_id}
+      </if>
+    </where>
+  </select>
 </mapper>

+ 3 - 0
frontend/pc-web/app/store/Ethnicity.js

@@ -1,3 +1,6 @@
+/**
+ * 民族
+ */
 Ext.define('school.store.Ethnicity', {
     extend: 'Ext.data.ArrayStore',
     alias: 'store.store_ethnicity',

+ 34 - 22
frontend/pc-web/app/view/Interaction/score/Detail.js

@@ -2,43 +2,48 @@ Ext.define('school.view.interaction.score.Detail', {
     extend: 'school.view.core.form.FormPanel',
     xtype: 'interaction-score-detail',
 
-    _title: '成绩录入',
-    _idField: 'student_id',
-    _codeField: 'student_number',
+    controller: 'interaction-score-detail',
+    viewModel: 'interaction-score-detail',
 
-    // _readUrl: 'http://10.1.80.47:9560/score/read',
-    _readUrl: '/api/school/score/read',
-    // _saveUrl: 'http://10.1.80.35:8560/api/sale/saledown/update',
-    _saveUrl: '/api/sale/sss/update',
-    // _toSaleUrl: 'http://10.1.80.35:8560/api/sale/saledown/toSale',
-    _toSaleUrl: '/api/sale/sss/toSale',
-    initId: 0,
+    _title: '学生成绩',
+    _idField: 'si_id',
+    _codeField: null,
 
+    // _readUrl: 'http://10.1.80.47:9520/api/school/score/read',
+    _readUrl: '/api/school/score/read',
+    // _saveUrl: 'http://10.1.80.47:9520/api/school/score/save',
+    // _saveUrl: '/api/sale/sss/update',
+    // _deleteUrl: 'http://10.1.80.47:9520/api/school/score/delete',
+    _deleteUrl: '/api/school/score/delete',
+    
     codeInHeader: true,
 
     initComponent: function () {
         let me = this;
         Ext.apply(this, {
             defaultItems: [{
+                xtype: 'hidden',
+                name: 'si_id',
+            }, {
                 xtype: 'textfield',
-                name: 'number',
+                name: 'si_examtitle',
                 fieldLabel: '考试标题'
             }, {
                 xtype: 'textfield',
-                name: 'name',
+                name: 'si_examdate',
                 fieldLabel: '考试时间'
             }, {
                 xtype: 'textfield',
-                name: 'grade',
+                name: 'si_examscope',
                 fieldLabel: '考试范围'
             }, {
-                xtype: 'textfield',
-                name: 'class',
-                fieldLabel: '总分'
+                xtype: 'gradecombo',
+                name: 'si_grade',
+                fieldLabel: '年级'
             }, {
-                xtype: "textfield",
-                name: "jg",
-                fieldLabel: "及格分"
+                xtype: 'classcombo',
+                name: 'si_class',
+                fieldLabel: '班级'
             }, {
                 name: "score",
                 xtype: "detailGridField",
@@ -51,16 +56,23 @@ Ext.define('school.view.interaction.score.Detail', {
                 rowViewModel: {},
                 columns: [{
                     text: '学生编号',
-                    dataIndex: 'number'
+                    dataIndex: 'sd_id'
                 }, {
                     text: '姓名',
-                    dataIndex: 'name'
+                    dataIndex: 'sd_stu'
+                }, {
+                    text: '科目',
+                    dataIndex: 'sd_subject'
                 }, {
                     text: '成绩',
-                    dataIndex: 'score'
+                    dataIndex: 'sd_score'
+                }, {
+                    text: '备注',
+                    dataIndex: 'sd_remark'
                 }]
             }],
         });
         this.callParent();
+        this.setEditable(false);
     }
 });

+ 17 - 0
frontend/pc-web/app/view/Interaction/score/DetailController.js

@@ -0,0 +1,17 @@
+Ext.define('school.view.interaction.score.DetailController', {
+    extend: 'school.view.core.form.FormPanelController',
+    alias: 'controller.interaction-score-detail',
+
+    onAfterSave: function(localJson) {
+        var form = this.getView();
+        var id = localJson.data.id;
+        var code = localJson.data.code;
+        form.initId = id;
+        school.util.FormUtil.loadData(form).then(function(data) {
+            var newId = form.xtype + '-' + id;
+            var newTitle = form._title + '(' + data.main.si_id + ')';
+    
+            school.util.BaseUtil.refreshTabTitle(newId, newTitle);
+        });
+    },
+});

+ 13 - 0
frontend/pc-web/app/view/Interaction/score/DetailModel.js

@@ -0,0 +1,13 @@
+Ext.define('school.view.interaction.score.DetailModel', {
+    extend: 'school.view.core.form.FormPanelModel',
+    alias: 'viewmodel.interaction-score-detail',
+
+    data: {
+        showAddBtn: false,
+        showRefreshBtn: true,
+        showCopyBtn: false,
+        showSaveBtn: false,
+        showDeleteBtn: true,
+        showLogBtn: false
+    },
+});

+ 96 - 70
frontend/pc-web/app/view/Interaction/score/List.js

@@ -7,18 +7,17 @@ Ext.define('school.view.interaction.score.List', {
 
     controller: 'interaction-score-list',
 
-    // dataUrl: 'http://10.1.80.47:9560/score/list',
+    // dataUrl: 'http://10.1.80.47:9520/api/school/score/list',
     dataUrl: '/api/school/score/list',
+    caller: 'ScorePublish',
+    pathKey: 'score',
+
     initComponent: function () {
         var me = this;
         Ext.apply(this, {
             searchField: [{
-                xtype: 'textfield',
-                name: 'term',
-                fieldLabel: '学期'
-            }, {
                 xtype: 'gradecombo',
-                name: 'grade',
+                name: 'si_grade',
                 fieldLabel: '年级',
                 listeners: {
                     select: function (combo, record, eOpts) {
@@ -27,7 +26,7 @@ Ext.define('school.view.interaction.score.List', {
                 }
             }, {
                 xtype: 'classcombo',
-                name: 'class',
+                name: 'si_class',
                 fieldLabel: '班级',
                 listeners: {
                     expand: function (combo, eOpts) {
@@ -49,24 +48,22 @@ Ext.define('school.view.interaction.score.List', {
                         combo.up('form').getForm().findField('grade').setValue(record.get('gradeName'));
                     }
                 }
+            }, {
+                xtype: 'textfield',
+                name: 'keyword',
+                fieldLabel: '学生',
+                getCondition: function (value) {
+                    return ' (sd_stu like\'%' + value + '%\') ';
+                }
             }],
 
-            caller: null,
-            _formXtype: null,
-            _title: null,
-            _deleteUrl: null,
-            _batchOpenUrl: null,
-            _batchCloseUrl: null,
-            _batchDeleteUrl: null,
-
             gridConfig: {
                 addTitle: '成绩录入',
                 addXtype: 'interaction-score-detail',
-                idField: 'score_id',
-                codeField: 'score_num',
-                detailField: null,
+                idField: 'si_id',
+                codeField: 'si_id',
+                detailField: '',
                 dataUrl: me.dataUrl,
-                caller: null,
                 rootProperty: 'data.list',
                 totalProperty: 'data.total',
                 actionColumn: [],
@@ -82,88 +79,117 @@ Ext.define('school.view.interaction.score.List', {
                     text: '新增',
                     handler: 'onAddClick'
                 }, {
-                    xtype: 'button',
-                    text: '导入'
+                    xtype: 'importbutton',
+                    text: '导入',
+                    belong: me,
+                    caller: me.caller,
+                    pathKey: me.pathKey,
+                    onSuccess: function () {
+                        //刷新界面
+                        var g = me.down('grid');
+                        g.store.loadPage(g.store.currentPage);
+                    }
                 }, {
                     xtype: 'button',
-                    text: '删除'
+                    text: '删除',
+                    handler: function() {
+                        let grid = this.up('grid'),
+                        selectedRecords = grid.getSelection();
+                        let data;
+
+                        data = selectedRecords.map(function(r) {
+                            return {
+                                id: r.get('si_id')
+                            };
+                        });
+
+                        if(data.length == 0) {
+                            school.util.BaseUtil.showErrorToast('请先勾选需要删除的记录');
+                            return;
+                        }
+
+                        grid.setLoading(true);
+                        school.util.BaseUtil.request({
+                            // url: 'http://10.1.80.47:9520/api/school/score/batchDelete',
+                            url: '/api/school/score/batchDelete',
+                            method: 'POST',
+                            params: JSON.stringify({
+                                baseDTOs: data
+                            })
+                        }).then(function(res) {
+                            grid.setLoading(false);
+                            school.util.BaseUtil.showSuccessToast('成功删除' + data.length + '条记录');
+                            grid.store.loadPage(grid.store.currentPage);
+                        }).catch(function(e) {
+                            grid.setLoading(false);
+                            school.util.BaseUtil.showErrorToast('删除失败: ' + e.message);
+                        });
+                    }
                 }],
                 columns: [{
                     text: 'ID',
-                    dataIndex: 'score_id',
+                    dataIndex: 'si_id',
                     hidden: true
                 }, {
                     text: '考试标题',
-                    dataIndex: 'score_name'
+                    dataIndex: 'si_examtitle'
                 }, {
                     text: '考试时间',
-                    dataIndex: 'score_date',
+                    dataIndex: 'si_examdate',
                     width: 150
                 }, {
                     text: '考试范围',
-                    dataIndex: 'score_scope'
+                    dataIndex: 'si_examscope'
                 }, {
                     text: '年级',
-                    dataIndex: ''
+                    dataIndex: 'si_grade'
                 }, {
                     text: '班级',
-                    dataIndex: ''
+                    dataIndex: 'si_class'
+                }],
+                supColumns: [{
+                //     text: '学生编号',
+                //     dataIndex: ''
+                // }, {
+                    text: '学生姓名',
+                    dataIndex: 'sd_stu'
+                }, {
+                    text: '科目',
+                    dataIndex: 'sd_subject'
+                }, {
+                    text: '成绩',
+                    dataIndex: 'sd_score'
                 }]
             },
         });
         this.callParent(arguments);
     },
 
-    /**
-     * 处理部分字段值
-     */
-    getConditionValue: function (field, value) {
-        var me = this,
-            xtypes = field.getXTypes().split('/'),
-            conditionValue;
-        if (me.isContainsAny(xtypes, ['datefield'])) {
-            conditionValue = Ext.Date.format(new Date(from), 'Y-m-d H:i:s');
-        } else if (me.isContainsAny(xtypes, ['conmonthfield'])) {
-            var from = value.from,
-                to = value.to;
-
-            conditionValue = from + ',' + to;
-        } else if (me.isContainsAny(xtypes, ['condatefield'])) {
-            var from = value.from,
-                to = value.to;
+    listeners: {
+        load: function(store, grid, panel, condition) {
+            let flag = false,
+            columns = panel.gridConfig.columns;
+            Ext.Array.each(condition, function(c) {
+                if(c.type == 'condition') {
+                    flag = true;
+                }
+            });
+            if(flag) {
+                columns = columns.concat(panel.gridConfig.supColumns);
+            }
 
-            conditionValue = Ext.Date.format(new Date(from), 'Y-m-d 00:00:00') + ',' + Ext.Date.format(new Date(to), 'Y-m-d 23:59:59');
-        } else if (me.isContainsAny(xtypes, ['dbfindtrigger'])) {
-            conditionValue = value;
-        } else if (me.isContainsAny(xtypes, ['combobox', 'combo'])) {
-            conditionValue = value;
-        } else if (me.isContainsAny(xtypes, ['multicombo'])) {
-            conditionValue = value.map ? value.map(function (v) {
-                return v.value;
-            }).join(',') : '';
-        } else {
-            conditionValue = value;
+            grid.reconfigure(store, columns);
+            grid.applyScrollable(true)
         }
-
-        return conditionValue;
     },
-
+    
     getExtraParams: function (store, op, condition) {
         var temp = {};
 
         for (let x = 0; x < condition.length; x++) {
             let c = condition[x];
-            if (c.field == 'keyword') {
-                temp.keyword = c.value;
-            } else if (c.field == 'date') {
-                temp.fromDate = new Date(c.value.split(',')[0]).getTime();
-                temp.endDate = new Date(c.value.split(',')[1]).getTime();
-            } else if (c.field == 'quoted') {
-                temp.quoted = c.value == 'all' ? null : c.value;
-            } else if (c.field == 'closed') {
-                // temp.endDate = c.value == 'all' ? null : (
-                //     c.value == '0' ? 
-                // );
+            if (c.type == 'condition') {
+                temp.mode = 'DETAIL';
             }
         }
         let obj = {

+ 1 - 1
frontend/pc-web/app/view/basic/staff/StaffList.js

@@ -51,7 +51,7 @@ Ext.define('school.view.basic.staff.StaffList', {
                     xtype: 'importbutton',
                     text: '导入',
                     belong: me,
-                    caller: 'ScorePublish',
+                    caller: me.caller,
                     pathKey: me.pathKey,
                     onSuccess: function () {
                         //刷新界面

+ 8 - 0
frontend/pc-web/app/view/core/base/GridPanel.js

@@ -81,6 +81,14 @@ Ext.define('school.view.core.base.GridPanel', {
                         var obj = basePanel.getExtraParams(store, op, condition);
                         var defaultObj = basePanel.getDefaultExtraParams(store, op, condition);
                         Ext.apply(store.proxy.extraParams, obj, defaultObj);
+                    },
+                    load: function(store, records, successful, operation, eOpts) {
+                        var basePanel = me.up('core-base-basepanel');
+                        var condition = basePanel.getConditions();
+                        if (Ext.isEmpty(condition)) {
+                            condition = "";
+                        }
+                        basePanel.fireEvent('load', store, me, basePanel, condition);
                     }
                 }
             });

+ 1 - 1
frontend/pc-web/app/view/core/button/import/Window.js

@@ -84,7 +84,7 @@ Ext.define('school.view.core.button.import.Window', {
             if (id) {
                 form.setLoading(true);
                 Ext.Ajax.request({
-                    // url: 'http://10.1.80.47:9560/' + win.pathKey + '/saveToFormal', //这里是填写需要跨域访问的URL
+                    // url: 'http://10.1.80.47:9520/api/school/' + win.pathKey + '/saveToFormal', //这里是填写需要跨域访问的URL
                     url: '/api/school/' + win.pathKey + '/saveToFormal', //这里是填写需要跨域访问的URL
                     method: 'post',
                     headers: {

+ 2 - 1
frontend/pc-web/app/view/viewport/ViewportController.js

@@ -45,10 +45,11 @@ Ext.define('school.view.viewport.ViewportController', {
 
     showMain: function() {
         var me = this;
+        var schoolId = school.util.BaseUtil.getCurrentUser().school_id;
         //读取学校
         school.util.BaseUtil.request({
             // url:'http://10.1.80.35:9560/school/read/1'
-            url:'/api/school/school/read/1'
+            url:'/api/school/school/read/' + schoolId
         })
         .then(function(res) {
             if(res.success) {

BIN
frontend/pc-web/resources/images/auth-background.jpg


BIN
frontend/pc-web/resources/images/标题.png