Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jgjy
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
注册表
注册表
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
svn
jgjy
Commits
34793e40
提交
34793e40
authored
9月 03, 2019
作者:
malei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(school-sysUser): BookRecommend
1.初审页面更改 2.多本教材同时退回 References:N/A
上级
4b426627
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
223 行增加
和
23 行删除
+223
-23
UpdateLessonStatusForm.java
...e/form/school/sysuser/fg/book/UpdateLessonStatusForm.java
+18
-0
ApprovalStatus.java
.../java/com/zrqx/core/model/school/book/ApprovalStatus.java
+4
-3
MidListVO.java
...ava/com/zrqx/core/vo/schoolsysuser/fg/book/MidListVO.java
+46
-0
ApprovalStatusManage.java
...zrqx/school/sysuser/manage/book/ApprovalStatusManage.java
+11
-0
ApprovalStatusManageImpl.java
.../school/sysuser/manage/book/ApprovalStatusManageImpl.java
+6
-0
BookUserRelationManage.java
...qx/school/sysuser/manage/book/BookUserRelationManage.java
+11
-0
BookUserRelationManageImpl.java
...chool/sysuser/manage/book/BookUserRelationManageImpl.java
+5
-0
ApprovalStatusMapper.java
...zrqx/school/sysuser/mapper/book/ApprovalStatusMapper.java
+14
-0
BookRecommendMapper.java
.../zrqx/school/sysuser/mapper/book/BookRecommendMapper.java
+12
-11
BookRecommendUserRelationMapper.java
.../sysuser/mapper/book/BookRecommendUserRelationMapper.java
+19
-0
BookRecommendServiceImpl.java
...school/sysuser/service/book/BookRecommendServiceImpl.java
+77
-9
没有找到文件。
com.zrqx.core/src/main/java/com/zrqx/core/form/school/sysuser/fg/book/UpdateLessonStatusForm.java
0 → 100644
浏览文件 @
34793e40
package
com
.
zrqx
.
core
.
form
.
school
.
sysuser
.
fg
.
book
;
import
com.zrqx.core.form.school.sysuser.fg.common.QueryCondition
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
@ApiModel
(
value
=
"UpdateLessonStatusForm"
,
description
=
"更新课程状态Form"
)
public
class
UpdateLessonStatusForm
extends
QueryCondition
{
@ApiModelProperty
(
"课程ID"
)
private
Integer
lessonId
;
@ApiModelProperty
(
"流程编码"
)
private
String
code
;
}
com.zrqx.core/src/main/java/com/zrqx/core/model/school/book/ApprovalStatus.java
浏览文件 @
34793e40
...
...
@@ -46,10 +46,11 @@ public class ApprovalStatus extends BaseModel {
private
Integer
bookUserRelationId
;
/**
* 课程状态,列表以课程为单位展示
* 课程状态,初审列表以课程为单位展示;
* 如果该门课程下有一本教材为已提交/已退回则该门课程下的所有教材均为已提交/已退回
* {@link BookRecommendStatusEnum}
*/
//
@ApiModelProperty("状态;0:已提交, 1:未提交, 2:已退回")
//
private String lessonStatus;
@ApiModelProperty
(
"状态;0:已提交, 1:未提交, 2:已退回"
)
private
String
lessonStatus
;
}
com.zrqx.core/src/main/java/com/zrqx/core/vo/schoolsysuser/fg/book/MidListVO.java
浏览文件 @
34793e40
...
...
@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import
lombok.Data
;
import
java.util.List
;
import
java.util.Objects
;
@Data
@ApiModel
(
value
=
"MidListVO"
,
description
=
"中级审核列表VO"
)
...
...
@@ -47,6 +48,51 @@ public class MidListVO {
@ApiModelProperty
(
"书籍列表"
)
private
List
<
BookDetailsVo
>
books
;
@ApiModelProperty
(
"状态;0:已提交 ,1:未提交 ,2:已退回;数据过滤使用"
)
private
String
status
;
/**
* 分组字段
* Created by ml on 2019/9/3.
*/
@Data
public
static
class
GroupField
{
@ApiModelProperty
(
"学级"
)
private
Integer
academicLevel
;
@ApiModelProperty
(
"课程Id"
)
private
Integer
lessonId
;
@ApiModelProperty
(
"部门ID"
)
private
Integer
departmentId
;
public
GroupField
(
Integer
academicLevel
,
Integer
lessonId
,
Integer
departmentId
)
{
this
.
academicLevel
=
academicLevel
;
this
.
lessonId
=
lessonId
;
this
.
departmentId
=
departmentId
;
}
@Override
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
return
true
;
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
return
false
;
GroupField
that
=
(
GroupField
)
o
;
return
Objects
.
equals
(
academicLevel
,
that
.
academicLevel
)
&&
Objects
.
equals
(
lessonId
,
that
.
lessonId
)
&&
Objects
.
equals
(
departmentId
,
that
.
departmentId
);
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
academicLevel
,
lessonId
,
departmentId
);
}
}
public
GroupField
getGroupField
()
{
return
new
GroupField
(
academicLevel
,
lessonId
,
departmentId
);
}
}
@Data
...
...
com.zrqx.school.sysuser/src/main/java/com/zrqx/school/sysuser/manage/book/ApprovalStatusManage.java
浏览文件 @
34793e40
package
com
.
zrqx
.
school
.
sysuser
.
manage
.
book
;
import
com.zrqx.core.form.school.sysuser.fg.book.UpdateLessonStatusForm
;
import
com.zrqx.core.model.school.book.ApprovalStatus
;
import
java.util.List
;
...
...
@@ -78,4 +79,14 @@ public interface ApprovalStatusManage {
*/
ApprovalStatus
getByUserRelationIdAndCode
(
Integer
id
,
String
code
);
/**
* 查询当前课程当前阶段所有的状态
* 用于更新当前阶段档期那课程的状态
*@param form
*@return java.util.List<com.zrqx.core.model.school.book.ApprovalStatus>
*@author: ml
*@date: 2019/9/3 14:20
*/
List
<
ApprovalStatus
>
listApprovalStatusByLessonId
(
UpdateLessonStatusForm
form
);
}
com.zrqx.school.sysuser/src/main/java/com/zrqx/school/sysuser/manage/book/ApprovalStatusManageImpl.java
浏览文件 @
34793e40
package
com
.
zrqx
.
school
.
sysuser
.
manage
.
book
;
import
com.zrqx.core.exception.BaseException
;
import
com.zrqx.core.form.school.sysuser.fg.book.UpdateLessonStatusForm
;
import
com.zrqx.core.mapper.BaseMapper
;
import
com.zrqx.core.model.school.book.ApprovalStatus
;
import
com.zrqx.core.service.BaseManageImpl
;
...
...
@@ -88,4 +89,9 @@ public class ApprovalStatusManageImpl extends BaseManageImpl<ApprovalStatus, Int
public
ApprovalStatus
getByUserRelationIdAndCode
(
Integer
id
,
String
code
)
{
return
statusMapper
.
findByRelationIdAndCode
(
id
,
code
);
}
@Override
public
List
<
ApprovalStatus
>
listApprovalStatusByLessonId
(
UpdateLessonStatusForm
form
)
{
return
statusMapper
.
findByLessonId
(
form
);
}
}
com.zrqx.school.sysuser/src/main/java/com/zrqx/school/sysuser/manage/book/BookUserRelationManage.java
浏览文件 @
34793e40
...
...
@@ -63,4 +63,15 @@ public interface BookUserRelationManage {
*/
BookRecommendUserRelation
findOneByCreaterAndLessonId
(
BookRecommendUserRelation
queryCondition
);
/**
* 查询退回状态
*@param lessonId
*@param bookId
*@param code
*@return java.util.List<com.zrqx.core.model.school.book.BookRecommendUserRelation>
*@author: ml
*@date: 2019/9/3 19:10
*/
List
<
BookRecommendUserRelation
>
queryOverrule
(
Integer
lessonId
,
String
code
);
}
com.zrqx.school.sysuser/src/main/java/com/zrqx/school/sysuser/manage/book/BookUserRelationManageImpl.java
浏览文件 @
34793e40
...
...
@@ -33,6 +33,11 @@ public class BookUserRelationManageImpl extends BaseManageImpl<BookRecommendUser
}
@Override
public
List
<
BookRecommendUserRelation
>
queryOverrule
(
Integer
lessonId
,
String
code
)
{
return
relationMapper
.
findOverrule
(
lessonId
,
code
);
}
@Override
public
Boolean
update
(
BookRecommendUserRelation
relation
)
{
return
this
.
updateByPrimaryKeySelective
(
relation
);
}
...
...
com.zrqx.school.sysuser/src/main/java/com/zrqx/school/sysuser/mapper/book/ApprovalStatusMapper.java
浏览文件 @
34793e40
package
com
.
zrqx
.
school
.
sysuser
.
mapper
.
book
;
import
com.zrqx.core.form.school.sysuser.fg.book.UpdateLessonStatusForm
;
import
com.zrqx.core.mapper.BaseMapper
;
import
com.zrqx.core.model.school.book.ApprovalStatus
;
import
org.apache.ibatis.annotations.Mapper
;
...
...
@@ -36,4 +37,17 @@ public interface ApprovalStatusMapper extends BaseMapper<ApprovalStatus> {
+
" </script> "
)
ApprovalStatus
findByRelationIdAndCode
(
@Param
(
"id"
)
Integer
id
,
@Param
(
"code"
)
String
code
);
@Select
(
" <script> "
+
" select mas.* "
+
" from me_book_recommend mbr "
+
" left join me_book_user_relation mbur on mbr.id = mbur.recommendId "
+
" left join me_approval_status mas on mbur.id = mas.bookUserRelationId "
+
" WHERE 1=1 "
+
" eq(mbr.relationId, query.relationId) "
+
" eq(mbr.type, query.type) "
+
" eq(mbur.lessonId, query.lessonId) "
+
" eq(mas.code, query.code) "
+
" </script> "
)
List
<
ApprovalStatus
>
findByLessonId
(
@Param
(
"query"
)
UpdateLessonStatusForm
form
);
}
com.zrqx.school.sysuser/src/main/java/com/zrqx/school/sysuser/mapper/book/BookRecommendMapper.java
浏览文件 @
34793e40
...
...
@@ -127,9 +127,9 @@ public interface BookRecommendMapper extends BaseMapper<BookRecommend> {
+
" LEFT JOIN me_approval_status a ON a.bookUserRelationId = r.id "
+
" WHERE 1=1 "
+
DEFAULT_QUERY_CONDITION
+
" <if test = ' "
+
NOTBLANK
+
" (query.status) '> "
+
" and a.s
tatus = #{query.status} "
+
" </if> "
//
+ " <if test = ' " + NOTBLANK + " (query.status) '> "
// + " and a.lessonS
tatus = #{query.status} "
//
+ " </if> "
+
" <if test = ' "
+
NOTBLANK
+
" (query.code) '> "
+
" and a.code = #{query.code} "
+
" </if> "
...
...
@@ -153,6 +153,7 @@ public interface BookRecommendMapper extends BaseMapper<BookRecommend> {
+
" (@i:=@i+1) as serial, "
+
" b.academicLevel, "
+
" b.lessonId, "
+
" a.status, "
+
" b.departmentId "
+
" FROM (select @i:=0) as s, "
+
" me_book_recommend b "
...
...
@@ -162,17 +163,17 @@ public interface BookRecommendMapper extends BaseMapper<BookRecommend> {
+
" LEFT JOIN me_approval_status a ON a.bookUserRelationId = r.id "
+
" WHERE 1=1 "
+
DEFAULT_QUERY_CONDITION
+
" <if test = ' "
+
NOTBLANK
+
" (query.status) '> "
+
" and a.s
tatus = #{query.status} "
+
" </if> "
//
+ " <if test = ' " + NOTBLANK + " (query.status) '> "
// + " and a.lessonS
tatus = #{query.status} "
//
+ " </if> "
+
" <if test = ' "
+
NOTBLANK
+
" (query.code) '> "
+
" and a.code = #{query.code} "
+
" </if> "
+
" <if test = ' id != null '> "
+
" and b.basicPlanId = #{id} "
+
" </if> "
+
" GROUP BY "
+
" b.academicLevel, b.departmentId, b.lessonId "
//
+ " GROUP BY "
//
+ " b.academicLevel, b.departmentId, b.lessonId "
+
" ORDER BY "
+
DEFAULT_ORDER_BY_1
+
" </script> "
)
...
...
@@ -206,9 +207,9 @@ public interface BookRecommendMapper extends BaseMapper<BookRecommend> {
+
" LEFT JOIN me_approval_status a ON a.bookUserRelationId = r.id "
+
" WHERE 1=1 "
+
DEFAULT_QUERY_CONDITION
+
" <if test = ' "
+
NOTBLANK
+
" (query.status) '> "
+
" and a.s
tatus = #{query.status} "
+
" </if> "
//
+ " <if test = ' " + NOTBLANK + " (query.status) '> "
// + " and a.lessonS
tatus = #{query.status} "
//
+ " </if> "
+
" <if test = ' "
+
NOTBLANK
+
" (query.code) '> "
+
" and a.code = #{query.code} "
+
" </if> "
...
...
com.zrqx.school.sysuser/src/main/java/com/zrqx/school/sysuser/mapper/book/BookRecommendUserRelationMapper.java
浏览文件 @
34793e40
...
...
@@ -37,4 +37,23 @@ public interface BookRecommendUserRelationMapper extends BaseMapper<BookRecommen
@Param
(
"bookId"
)
String
bookId
);
@Select
(
" <script> "
+
" SELECT r.* "
+
" FROM me_book_recommend b "
+
" LEFT JOIN me_book_user_relation r ON b.id = r.recommendId "
+
" LEFT JOIN me_approval_status a ON a.bookUserRelationId = r.id "
+
" WHERE 1=1 "
+
" and b.isValid = 1 "
+
" <if test = ' lessonId != null '> "
+
" and r.lessonId = #{lessonId} "
+
" </if> "
+
" <if test = ' "
+
NOTBLANK
+
" (code) '> "
+
" and a.code = #{code} "
+
" </if> "
+
" </script> "
)
List
<
BookRecommendUserRelation
>
findOverrule
(
@Param
(
"lessonId"
)
Integer
lessonId
,
@Param
(
"code"
)
String
code
);
}
com.zrqx.school.sysuser/src/main/java/com/zrqx/school/sysuser/service/book/BookRecommendServiceImpl.java
浏览文件 @
34793e40
...
...
@@ -269,6 +269,7 @@ public class BookRecommendServiceImpl extends BaseModelServiceImpl<BookRecommend
ApprovalStatus
status
=
new
ApprovalStatus
();
status
.
setBookUserRelationId
(
relation
.
getId
());
status
.
setStatus
(
BookRecommendStatusEnum
.
SUBMITTED
.
getCode
());
status
.
setLessonStatus
(
BookRecommendStatusEnum
.
SUBMITTED
.
getCode
());
//获取流程编码
String
code
=
this
.
getFlowCodeByMemberId
(
redis
.
getMember
().
getId
());
...
...
@@ -284,6 +285,7 @@ public class BookRecommendServiceImpl extends BaseModelServiceImpl<BookRecommend
ApprovalStatus
next
=
new
ApprovalStatus
();
next
.
setBookUserRelationId
(
relation
.
getId
());
next
.
setStatus
(
BookRecommendStatusEnum
.
UNSUBMITTED
.
getCode
());
next
.
setLessonStatus
(
BookRecommendStatusEnum
.
UNSUBMITTED
.
getCode
());
next
.
setRemark
(
form
.
getRemark
());
next
.
setOldCode
(
code
);
next
.
setCode
(
nextCode
);
...
...
@@ -348,7 +350,8 @@ public class BookRecommendServiceImpl extends BaseModelServiceImpl<BookRecommend
public
Boolean
midOverrule
(
OverruleForm
form
)
{
//根据lessonID查询针对这么课程哪些用户推荐了书籍
List
<
BookRecommendUserRelation
>
relations
=
relationManage
.
queryByLessonIdOrBookId
(
form
.
getLessonId
(),
null
);
List
<
BookRecommendUserRelation
>
relations
=
relationManage
.
queryOverrule
(
form
.
getLessonId
(),
this
.
getFlowCodeByMemberId
(
redis
.
getMember
().
getId
()));
if
(
relations
==
null
||
relations
.
size
()
==
0
)
{
return
true
;
}
...
...
@@ -384,6 +387,7 @@ public class BookRecommendServiceImpl extends BaseModelServiceImpl<BookRecommend
}
@Override
@Transactional
public
Boolean
midSubmit
(
MidSubmitForm
form
)
{
//默认参数
...
...
@@ -415,6 +419,9 @@ public class BookRecommendServiceImpl extends BaseModelServiceImpl<BookRecommend
current
.
setStatus
(
BookRecommendStatusEnum
.
SUBMITTED
.
getCode
());
statusManage
.
update
(
current
);
//修改当前课程当前阶段下的所有推荐记录为已提交状态
// this.updateLessonStatusByLessonId(relation.getLessonId(), BookRecommendStatusEnum.SUBMITTED);
//创建下一环节的未提交状态
ApprovalStatus
next
=
new
ApprovalStatus
();
next
.
setBookUserRelationId
(
relation
.
getId
());
...
...
@@ -423,13 +430,45 @@ public class BookRecommendServiceImpl extends BaseModelServiceImpl<BookRecommend
next
.
setCode
(
nextCode
);
statusManage
.
save
(
next
);
});
return
true
;
}
/**
* 更新当前阶段当前课程下所有推荐记录为理想状态
*@param lessonId
*@param statusEnum
*@return void
*@author: ml
*@date: 2019/9/3 14:41
*/
private
void
updateLessonStatusByLessonId
(
Integer
lessonId
,
BookRecommendStatusEnum
statusEnum
)
{
//构建form
FgMemberVo
member
=
redis
.
getMember
();
UpdateLessonStatusForm
form
=
new
UpdateLessonStatusForm
();
form
.
setLessonId
(
lessonId
);
form
.
setCode
(
this
.
getFlowCodeByMemberId
(
member
.
getId
()));
form
.
setRelationId
(
member
.
getRelationId
());
form
.
setType
(
member
.
getType
());
//查询推荐状态
List
<
ApprovalStatus
>
item
=
statusManage
.
listApprovalStatusByLessonId
(
form
);
if
(
item
==
null
||
item
.
size
()
==
0
)
{
log
.
info
(
"updateLessonStatusByLessonId:未查询到当前阶段推荐记录"
);
throw
new
RuntimeException
(
"未查询到当前阶段推荐记录"
);
}
//更新课程状态未相应状态
item
.
forEach
(
status
->
{
status
.
setLessonStatus
(
statusEnum
.
getCode
());
statusManage
.
update
(
status
);
});
}
/**
* 除推荐环节,其他环节每门课程只能有一本书被推荐
*@param form
*@param nextCode 下一提交环节的code
...
...
@@ -475,8 +514,40 @@ public class BookRecommendServiceImpl extends BaseModelServiceImpl<BookRecommend
item
.
add
(
mid
);
List
<
MidListVO
.
LessonDetailsVo
>
lessons
=
bookMapper
.
findLessonByBasicPlanId
(
plan
.
getBasicPlanId
(),
form
);
mid
.
setDetails
(
lessons
);
lessons
.
forEach
(
lesson
->
{
List
<
MidListVO
.
LessonDetailsVo
>
lessons1
=
new
ArrayList
<>();
Map
<
MidListVO
.
LessonDetailsVo
.
GroupField
,
List
<
MidListVO
.
LessonDetailsVo
>>
map
=
lessons
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
MidListVO
.
LessonDetailsVo
::
getGroupField
));
//数据过滤
//已提交,只要课程下有一条推荐记录的状态为已提交则该门课程为已提交
if
(
BookRecommendStatusEnum
.
SUBMITTED
.
getCode
().
equals
(
form
.
getStatus
()))
{
lessons1
=
lessons
.
stream
()
.
filter
(
lesson
->
BookRecommendStatusEnum
.
SUBMITTED
.
getCode
().
equals
(
lesson
.
getStatus
()))
.
collect
(
Collectors
.
toList
());
}
//已退回
if
(
BookRecommendStatusEnum
.
RETURNED
.
getCode
().
equals
(
form
.
getStatus
()))
{
lessons1
=
lessons
.
stream
()
.
filter
(
lesson
->
BookRecommendStatusEnum
.
RETURNED
.
getCode
().
equals
(
lesson
.
getStatus
()))
.
collect
(
Collectors
.
toList
());
}
//未提交
if
(
BookRecommendStatusEnum
.
UNSUBMITTED
.
getCode
().
equals
(
form
.
getStatus
()))
{
Iterator
<
Map
.
Entry
<
MidListVO
.
LessonDetailsVo
.
GroupField
,
List
<
MidListVO
.
LessonDetailsVo
>>>
iterator
=
map
.
entrySet
().
iterator
();
while
(
iterator
.
hasNext
())
{
Map
.
Entry
<
MidListVO
.
LessonDetailsVo
.
GroupField
,
List
<
MidListVO
.
LessonDetailsVo
>>
entry
=
iterator
.
next
();
boolean
flag
=
entry
.
getValue
().
stream
().
allMatch
(
lesson
->
BookRecommendStatusEnum
.
UNSUBMITTED
.
getCode
().
equals
(
lesson
.
getStatus
()));
if
(
flag
)
{
lessons1
.
add
(
entry
.
getValue
().
get
(
0
));
}
}
}
mid
.
setDetails
(
lessons1
);
lessons1
.
forEach
(
lesson
->
{
//获取课程名称
lesson
.
setLessonName
(
lessonMapper
.
findNameById
(
lesson
.
getLessonId
()));
...
...
@@ -488,11 +559,8 @@ public class BookRecommendServiceImpl extends BaseModelServiceImpl<BookRecommend
}
List
<
MidListVO
.
BookDetailsVo
>
books
=
bookMapper
.
findBookDetails
(
lesson
.
getLessonId
(),
form
);
//FIXME: 如果影响性能,可以在教材推荐是将用户名放入推荐记录中,但用户信息不是最新的
//TODO
// MidListVO.BookDetailsVo bookDetailsVo = books.stream().max(Comparator.comparing(MidListVO.BookDetailsVo::getStatus)).get();
//FIXME: 如果影响性能,可以在教材推荐是将用户名放入推荐记录中,但用户信息不是最新的
books
.
forEach
(
book
->
{
//获取推荐人名称
CallBack
<
String
>
userName
=
fgMemberClient
.
getUserNameById
(
Integer
.
parseInt
(
book
.
getCreater
()));
...
...
@@ -578,7 +646,7 @@ public class BookRecommendServiceImpl extends BaseModelServiceImpl<BookRecommend
throw
new
BaseException
(
"未查询到相关推荐记录"
);
}
detailsVoList
.
forEach
(
details
->
this
.
splitOrder
(
details
)
);
detailsVoList
.
forEach
(
this
::
splitOrder
);
return
true
;
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论