Browse Source

添加学生在读状态统计, 修改导出报告

master
ccsens_zhengzhichuan 2 months ago
parent
commit
1650350a4a
  1. 5
      research-admin/src/main/java/com/research/web/controller/client/project/GroupController.java
  2. 3
      research-system/src/main/java/com/research/system/domain/dto/GroupDto.java
  3. 11
      research-system/src/main/java/com/research/system/domain/po/KtsKtGroupMember.java
  4. 60
      research-system/src/main/java/com/research/system/domain/po/KtsKtGroupMemberExample.java
  5. 14
      research-system/src/main/java/com/research/system/domain/vo/GroupVO.java
  6. 1
      research-system/src/main/java/com/research/system/persist/dao/KtsGroupDao.java
  7. 2
      research-system/src/main/java/com/research/system/service/KtsGroupService.java
  8. 61
      research-system/src/main/java/com/research/system/service/impl/ExportServiceImpl.java
  9. 14
      research-system/src/main/java/com/research/system/service/impl/KtsGroupServiceImpl.java
  10. 21
      research-system/src/main/resources/mapper/dao/KtsGroupDao.xml
  11. 4
      research-system/src/main/resources/mapper/dao/OutcomeDao.xml
  12. 25
      research-system/src/main/resources/mapper/system/KtsKtGroupMemberMapper.xml

5
research-admin/src/main/java/com/research/web/controller/client/project/GroupController.java

@ -181,6 +181,11 @@ public class GroupController {
return JsonResponse.ok(ktsGroupService.workerStatistics());
}
@PostMapping("/studentStatistics")
public JsonResponse<List<GroupVO.StudentResult>> queryStudentList(){
return JsonResponse.ok(ktsGroupService.queryStudentList(new GroupDto.Query()));
}
private void aduit(Long memberId) throws Exception {
//1.流程初始化表单

3
research-system/src/main/java/com/research/system/domain/dto/GroupDto.java

@ -156,6 +156,9 @@ public class GroupDto {
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("毕业时间")
private Date graduationTime;
@ApiModelProperty("在读状态(0在读硕士、1在读博士、2在读博士后)")
private Byte readingStatus;
}
@Data

11
research-system/src/main/java/com/research/system/domain/po/KtsKtGroupMember.java

@ -54,6 +54,8 @@ public class KtsKtGroupMember implements Serializable {
private Date graduationTime;
private Byte readingStatus;
private static final long serialVersionUID = 1L;
public Long getId() {
@ -256,6 +258,14 @@ public class KtsKtGroupMember implements Serializable {
this.graduationTime = graduationTime;
}
public Byte getReadingStatus() {
return readingStatus;
}
public void setReadingStatus(Byte readingStatus) {
this.readingStatus = readingStatus;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@ -287,6 +297,7 @@ public class KtsKtGroupMember implements Serializable {
sb.append(", remark=").append(remark);
sb.append(", enrollTime=").append(enrollTime);
sb.append(", graduationTime=").append(graduationTime);
sb.append(", readingStatus=").append(readingStatus);
sb.append("]");
return sb.toString();
}

60
research-system/src/main/java/com/research/system/domain/po/KtsKtGroupMemberExample.java

@ -1721,6 +1721,66 @@ public class KtsKtGroupMemberExample {
addCriterion("graduation_time not between", value1, value2, "graduationTime");
return (Criteria) this;
}
public Criteria andReadingStatusIsNull() {
addCriterion("reading_status is null");
return (Criteria) this;
}
public Criteria andReadingStatusIsNotNull() {
addCriterion("reading_status is not null");
return (Criteria) this;
}
public Criteria andReadingStatusEqualTo(Byte value) {
addCriterion("reading_status =", value, "readingStatus");
return (Criteria) this;
}
public Criteria andReadingStatusNotEqualTo(Byte value) {
addCriterion("reading_status <>", value, "readingStatus");
return (Criteria) this;
}
public Criteria andReadingStatusGreaterThan(Byte value) {
addCriterion("reading_status >", value, "readingStatus");
return (Criteria) this;
}
public Criteria andReadingStatusGreaterThanOrEqualTo(Byte value) {
addCriterion("reading_status >=", value, "readingStatus");
return (Criteria) this;
}
public Criteria andReadingStatusLessThan(Byte value) {
addCriterion("reading_status <", value, "readingStatus");
return (Criteria) this;
}
public Criteria andReadingStatusLessThanOrEqualTo(Byte value) {
addCriterion("reading_status <=", value, "readingStatus");
return (Criteria) this;
}
public Criteria andReadingStatusIn(List<Byte> values) {
addCriterion("reading_status in", values, "readingStatus");
return (Criteria) this;
}
public Criteria andReadingStatusNotIn(List<Byte> values) {
addCriterion("reading_status not in", values, "readingStatus");
return (Criteria) this;
}
public Criteria andReadingStatusBetween(Byte value1, Byte value2) {
addCriterion("reading_status between", value1, value2, "readingStatus");
return (Criteria) this;
}
public Criteria andReadingStatusNotBetween(Byte value1, Byte value2) {
addCriterion("reading_status not between", value1, value2, "readingStatus");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

14
research-system/src/main/java/com/research/system/domain/vo/GroupVO.java

@ -326,6 +326,16 @@ public class GroupVO {
}
}
@Data
public static class StudentResult {
private Long orgId;
private String orgName;
@ApiModelProperty("在读人数")
private int zd;
@ApiModelProperty("毕业人数")
private int by;
}
@Data
public static class WorkerStatistics {
private List<Title> titleList;
@ -336,13 +346,13 @@ public class GroupVO {
private Long orgId;
private String orgName;
private int gj;//高级
private int fg;//副高
// private int fg;//副高
private int zj;//中级
private int cj;//初级
private GjDto gjList;
private FgjDto fgjList;
// private FgjDto fgjList;
private ZjDto zjList;

1
research-system/src/main/java/com/research/system/persist/dao/KtsGroupDao.java

@ -44,4 +44,5 @@ public interface KtsGroupDao {
GroupVO.WorkerStatistics.Title.ZjDto queryZjTitleStatistics(@Param("orgId") Long orgId);
List<GroupVO.StudentResult> queryStudentStatistics(GroupDto.Query query);
}

2
research-system/src/main/java/com/research/system/service/KtsGroupService.java

@ -61,4 +61,6 @@ public interface KtsGroupService {
GroupVO.Statistics statistics();
GroupVO.WorkerStatistics workerStatistics();
List<GroupVO.StudentResult> queryStudentList(GroupDto.Query query);
}

61
research-system/src/main/java/com/research/system/service/impl/ExportServiceImpl.java

@ -155,6 +155,7 @@ public class ExportServiceImpl implements ExportService {
map.put("table3", tableData);
}
//学术交流
List<OutcomeVo.Result> results2 = outcomeMap.get(71L);
if (CollUtil.isNotEmpty(results2)) {
TextRenderData text1 = Texts.of("标题").bold().fontSize(12).create();
@ -180,6 +181,66 @@ public class ExportServiceImpl implements ExportService {
.create();
map.put("table4", tableData);
}
//高层次科技人才
List<OutcomeVo.Result> results3 = outcomeMap.get(5L);
if (CollUtil.isNotEmpty(results3)) {
Map<Long, List<OutcomeVo.Result>> collect = results3.stream().collect(Collectors.groupingBy(OutcomeVo.Result::getCategoryId2));
if (CollUtil.isNotEmpty(collect.get(6L))) {
TextRenderData text1 = Texts.of("序号").bold().fontSize(12).create();
TextRenderData text2 = Texts.of("姓名").bold().fontSize(12).create();
TextRenderData text3 = Texts.of("性别").bold().fontSize(12).create();
TextRenderData text4 = Texts.of("年龄").bold().fontSize(12).create();
TextRenderData text5 = Texts.of("职称").bold().fontSize(12).create();
TextRenderData text6 = Texts.of("入选人才计划或项目").bold().fontSize(12).create();
RowRenderData headerRow = Rows.of(text1, text2, text3, text4, text5, text6).center().create();
Tables.TableBuilder of = Tables.of(headerRow);
int i = 0;
for (OutcomeVo.Result result : collect.get(6L)) {
i++;
RowRenderData rowRenderData = Rows.of(
i + "",
result.getName(),
StrUtil.isNotEmpty(result.getSex()) ? "未知" : "0".equals(result.getSex()) ? "女" : "男",
result.getAge() + "",
result.getTitle(),
result.getProjects()
).center().create();
of.addRow(rowRenderData).center();
}
TableRenderData tableData = of
.create();
map.put("table5", tableData);
}
if (CollUtil.isNotEmpty(collect.get(7L))) {
TextRenderData text1 = Texts.of("序号").bold().fontSize(12).create();
TextRenderData text2 = Texts.of("姓名").bold().fontSize(12).create();
TextRenderData text3 = Texts.of("性别").bold().fontSize(12).create();
TextRenderData text4 = Texts.of("年龄").bold().fontSize(12).create();
TextRenderData text5 = Texts.of("职称晋升").bold().fontSize(12).create();
TextRenderData text6 = Texts.of("入选人才计划或项目").bold().fontSize(12).create();
RowRenderData headerRow = Rows.of(text1, text2, text3, text4, text5, text6).center().create();
Tables.TableBuilder of = Tables.of(headerRow);
int i = 0;
for (OutcomeVo.Result result : collect.get(6L)) {
i++;
RowRenderData rowRenderData = Rows.of(
i + "",
result.getName(),
StrUtil.isNotEmpty(result.getSex()) ? "未知" : "0".equals(result.getSex()) ? "女" : "男",
result.getAge() + "",
result.getTitle(),
result.getProjects()
).center().create();
of.addRow(rowRenderData).center();
}
TableRenderData tableData = of
.create();
map.put("table6", tableData);
}
}
}

14
research-system/src/main/java/com/research/system/service/impl/KtsGroupServiceImpl.java

@ -526,14 +526,11 @@ public class KtsGroupServiceImpl implements KtsGroupService {
if (StrUtil.isEmpty(memberResult.getTitle())) {
continue;
}
if (memberResult.getTitle().contains("1") || memberResult.getTitle().contains("5") || memberResult.getTitle().contains("8") || memberResult.getTitle().contains("12")) {
if (memberResult.getTitle().contains("1") || memberResult.getTitle().contains("5") || memberResult.getTitle().contains("8") || memberResult.getTitle().contains("12")
|| memberResult.getTitle().contains("2") || memberResult.getTitle().contains("6") || memberResult.getTitle().contains("9") || memberResult.getTitle().contains("13")) {
title.setGj(title.getGj() + 1);
continue;
}
if (memberResult.getTitle().contains("2") || memberResult.getTitle().contains("6") || memberResult.getTitle().contains("9") || memberResult.getTitle().contains("13")) {
title.setFg(title.getFg() + 1);
continue;
}
if (memberResult.getTitle().contains("3") || memberResult.getTitle().contains("10") || memberResult.getTitle().contains("14")) {
title.setZj(title.getZj() + 1);
continue;
@ -546,7 +543,7 @@ public class KtsGroupServiceImpl implements KtsGroupService {
title.setGjList(ktsGroupDao.queryGjTitleStatistics(entry.getKey()));
title.setCjList(ktsGroupDao.queryCjTitleStatistics(entry.getKey()));
title.setZjList(ktsGroupDao.queryZjTitleStatistics(entry.getKey()));
title.setFgjList(ktsGroupDao.queryFgjTitleStatistics(entry.getKey()));
// title.setFgjList(ktsGroupDao.queryFgjTitleStatistics(entry.getKey()));
titleList.add(title);
workerStatistics.setTitleList(titleList);
}
@ -555,5 +552,10 @@ public class KtsGroupServiceImpl implements KtsGroupService {
return workerStatistics;
}
@Override
public List<GroupVO.StudentResult> queryStudentList(GroupDto.Query query) {
return ktsGroupDao.queryStudentStatistics(query);
}
}

21
research-system/src/main/resources/mapper/dao/KtsGroupDao.xml

@ -228,10 +228,10 @@
<select id="queryGjTitleStatistics" resultType="com.research.system.domain.vo.GroupVO$WorkerStatistics$Title$GjDto">
select o.id as orgId,
o.org_name as orgName,
SUM(CASE WHEN FIND_IN_SET('1', m.title) > 0 THEN 1 ELSE 0 END) AS js,
SUM(CASE WHEN FIND_IN_SET('5', m.title) > 0 THEN 1 ELSE 0 END) AS yjy,
SUM(CASE WHEN FIND_IN_SET('8', m.title) > 0 THEN 1 ELSE 0 END) AS zrys,
SUM(CASE WHEN FIND_IN_SET('12', m.title) > 0 THEN 1 ELSE 0 END) AS gjgcs
SUM(CASE WHEN FIND_IN_SET('1', m.title) > 0 or FIND_IN_SET('2', m.title) > 0 THEN 1 ELSE 0 END) AS js,
SUM(CASE WHEN FIND_IN_SET('5', m.title) > 0 or FIND_IN_SET('6', m.title) > 0 THEN 1 ELSE 0 END) AS yjy,
SUM(CASE WHEN FIND_IN_SET('8', m.title) > 0 or FIND_IN_SET('8', m.title) > 0 THEN 1 ELSE 0 END) AS zrys,
SUM(CASE WHEN FIND_IN_SET('12', m.title) > 0 or FIND_IN_SET('13', m.title) > 0 THEN 1 ELSE 0 END) AS gjgcs
from prj_proj_org o
left join
kts_kt_group g on g.proj_org_id = o.id and g.del_flag = 0
@ -288,4 +288,17 @@
and o.id = #{orgId}
group by o.id
</select>
<select id="queryStudentStatistics" resultType="com.research.system.domain.vo.GroupVO$StudentResult">
select o.id as orgId,
o.org_name as orgName,
SUM(CASE WHEN m.graduation_time is not null and m.graduation_time &lt;= now() and m.category = 1 THEN 1 ELSE 0 END) AS `by`,
SUM(CASE WHEN m.graduation_time is not null and m.graduation_time > now() and m.category = 1 THEN 1 ELSE 0 END) AS zd
from prj_proj_org o
left join
kts_kt_group g on g.proj_org_id = o.id and g.del_flag = 0
LEFT JOIN kts_kt_group_member m on m.kt_group_id = g.id
where o.del_flag = 0
group by o.id
</select>
</mapper>

4
research-system/src/main/resources/mapper/dao/OutcomeDao.xml

@ -60,8 +60,8 @@
a.status
FROM ach_achievement a
left join prj_proj_org p on a.proj_org_id = p.id
left join kts_kt_group g on a.kt_group_id = g.id
left join prj_proj_org p on a.proj_org_id = p.id and p.del_flag = 0
left join kts_kt_group g on a.kt_group_id = g.id and g.del_flag = 0
WHERE a.del_flag = 0
<if test="dto.title != null and dto.title != ''">

25
research-system/src/main/resources/mapper/system/KtsKtGroupMemberMapper.xml

@ -27,6 +27,7 @@
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="enroll_time" jdbcType="TIMESTAMP" property="enrollTime" />
<result column="graduation_time" jdbcType="TIMESTAMP" property="graduationTime" />
<result column="reading_status" jdbcType="TINYINT" property="readingStatus" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -90,7 +91,7 @@
id, user_id, kt_group_id, parent_member_id, member_name, member_phone, member_email,
member_gender, member_birth, type, category, qualification, title, sort, intro, audit_status,
member_status, del_flag, create_by, create_time, update_by, update_time, remark,
enroll_time, graduation_time
enroll_time, graduation_time, reading_status
</sql>
<select id="selectByExample" parameterType="com.research.system.domain.po.KtsKtGroupMemberExample" resultMap="BaseResultMap">
select
@ -125,7 +126,7 @@
audit_status, member_status, del_flag,
create_by, create_time, update_by,
update_time, remark, enroll_time,
graduation_time)
graduation_time, reading_status)
values (#{id,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{ktGroupId,jdbcType=BIGINT},
#{parentMemberId,jdbcType=VARCHAR}, #{memberName,jdbcType=VARCHAR}, #{memberPhone,jdbcType=VARCHAR},
#{memberEmail,jdbcType=VARCHAR}, #{memberGender,jdbcType=TINYINT}, #{memberBirth,jdbcType=DATE},
@ -134,7 +135,7 @@
#{auditStatus,jdbcType=TINYINT}, #{memberStatus,jdbcType=TINYINT}, #{delFlag,jdbcType=TINYINT},
#{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR},
#{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR}, #{enrollTime,jdbcType=TIMESTAMP},
#{graduationTime,jdbcType=TIMESTAMP})
#{graduationTime,jdbcType=TIMESTAMP}, #{readingStatus,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.research.system.domain.po.KtsKtGroupMember">
insert into kts_kt_group_member
@ -214,6 +215,9 @@
<if test="graduationTime != null">
graduation_time,
</if>
<if test="readingStatus != null">
reading_status,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -291,6 +295,9 @@
<if test="graduationTime != null">
#{graduationTime,jdbcType=TIMESTAMP},
</if>
<if test="readingStatus != null">
#{readingStatus,jdbcType=TINYINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.research.system.domain.po.KtsKtGroupMemberExample" resultType="java.lang.Long">
@ -377,6 +384,9 @@
<if test="record.graduationTime != null">
graduation_time = #{record.graduationTime,jdbcType=TIMESTAMP},
</if>
<if test="record.readingStatus != null">
reading_status = #{record.readingStatus,jdbcType=TINYINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -408,7 +418,8 @@
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
remark = #{record.remark,jdbcType=VARCHAR},
enroll_time = #{record.enrollTime,jdbcType=TIMESTAMP},
graduation_time = #{record.graduationTime,jdbcType=TIMESTAMP}
graduation_time = #{record.graduationTime,jdbcType=TIMESTAMP},
reading_status = #{record.readingStatus,jdbcType=TINYINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -488,6 +499,9 @@
<if test="graduationTime != null">
graduation_time = #{graduationTime,jdbcType=TIMESTAMP},
</if>
<if test="readingStatus != null">
reading_status = #{readingStatus,jdbcType=TINYINT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
@ -516,7 +530,8 @@
update_time = #{updateTime,jdbcType=TIMESTAMP},
remark = #{remark,jdbcType=VARCHAR},
enroll_time = #{enrollTime,jdbcType=TIMESTAMP},
graduation_time = #{graduationTime,jdbcType=TIMESTAMP}
graduation_time = #{graduationTime,jdbcType=TIMESTAMP},
reading_status = #{readingStatus,jdbcType=TINYINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>
Loading…
Cancel
Save