Commit 5823db58 by 王志超

feat: 新增“数据可见范围”选项

仅查看我跟进的工单(默认勾选):下方仅展示 “变更申请人/变更负责人/变更审批人=当前用户” 的变更工单
parent 397ca4b3
......@@ -385,10 +385,13 @@ public class ChangeFlowBiz {
String subNodeId = subFlowDataDTO.getFlowMeta().getCurrNodeDataList().get(0).getNodeId();
// 创建变更行动工单记录
// 变更行动工单审批人:第一次新建时就是行动人
String approverJson = JSON.toJSONString(Collections.singletonList(execUserEmail));
ChangeSubFlowRecord subFlowRecord = ChangeSubFlowRecord.builder()
.changeRecordId(changeRecord.getId())
.subFlowId(subFlowId)
.subFlowNode(subNodeId)
.approver(approverJson)
.createTime(DateUtils.getCurrentTime())
.updateTime(DateUtils.getCurrentTime())
.build();
......@@ -1215,6 +1218,16 @@ public class ChangeFlowBiz {
public ChangeFlowListVO query(Integer page, Integer pageSize, ChangeFlowListQueryReq changeFlowListQueryReq) {
log.info("[query] page:{}, pageSize:{}, changeFlowListQueryReq:{}", page, pageSize,
JSON.toJSONString(changeFlowListQueryReq));
// 数据可见范围:仅查看我跟进的工单(默认true)
if (changeFlowListQueryReq.getOnlyMyFollowed()) {
String currentUser = RequestLocalBean.getUid();
if (StringUtils.isNotBlank(currentUser)) {
changeFlowListQueryReq.setCurrentUser(currentUser);
log.info("[query] 数据可见范围:仅查看我跟进的工单, currentUser:{}", currentUser);
}
}
if (StringUtils.isNotBlank(changeFlowListQueryReq.getChangeExecUser())) {
List<Long> recordIds = changeFlowExecService.queryByExecUser(changeFlowListQueryReq.getChangeExecUser());
changeFlowListQueryReq.setChangeRecordIds(recordIds);
......
......@@ -168,6 +168,12 @@ public class ChangeRecord {
private String creator;
/**
* 变更审批人(JSON格式,存储当前节点的审批人列表,用于查询过滤)
* 格式:["user1@example.com", "user2@example.com"]
*/
private String approver;
/**
* 待办id
*/
private Integer todoId;
......
......@@ -52,6 +52,12 @@ public class ChangeSubFlowRecord {
private String subFlowNode;
/**
* 变更行动工单审批人(JSON格式,存储审批人列表,第一次新建时就是行动人)
* 格式:["user1@example.com", "user2@example.com"]
*/
private String approver;
/**
* 创建时间
*/
private Long createTime;
......
......@@ -96,6 +96,18 @@ public class ChangeFlowListQueryReq {
*/
private Long flowId;
/**
* 数据可见范围:仅查看我跟进的工单(默认true)
* true: 仅展示 "变更申请人/变更负责人/变更审批人=当前用户" 的变更工单
* false: 展示所有工单
*/
private Boolean onlyMyFollowed;
/**
* 当前用户邮箱(用于数据可见范围过滤)
*/
private String currentUser;
private Long limit;
private Long offset;
......
......@@ -31,6 +31,7 @@
<result column="change_profit_amount" jdbcType="VARCHAR" property="changeProfitAmount" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="creator" jdbcType="VARCHAR" property="creator" />
<result column="approver" jdbcType="VARCHAR" property="approver" />
<result column="create_time" jdbcType="BIGINT" property="createTime" />
<result column="update_time" jdbcType="BIGINT" property="updateTime" />
</resultMap>
......@@ -39,7 +40,7 @@
change_level, change_commander, change_department, participate_change_exec_department,
change_item, change_sku, change_supplier, change_reason, change_content, change_risk_desc, change_checking,
change_profit, change_profit_desc, change_confirm_result_time, `state`, cancel_reason,
change_result, create_source, create_supplier, change_result_desc, remark, creator, change_profit_amount,
change_result, create_source, create_supplier, change_result_desc, remark, creator, approver, change_profit_amount,
create_time, update_time
</sql>
......@@ -95,6 +96,13 @@
${item}
</foreach>
</if>
<if test="currentUser != null">
and (
creator = #{currentUser}
or change_commander = #{currentUser}
or approver like concat('%',#{currentUser},'%')
)
</if>
</where>
order by create_time desc
</select>
......
......@@ -98,7 +98,8 @@ public class ChangeFlowController {
@RequestParam(name = "changeExecUser", required = false) String changeExecUser,
@RequestParam(name = "startTime", required = false) Long startTime,
@RequestParam(name = "endTime", required = false) Long endTime,
@RequestParam(name = "flowId", required = false) Long flowId) {
@RequestParam(name = "flowId", required = false) Long flowId,
@RequestParam(name = "onlyMyFollowed", defaultValue = "true") Boolean onlyMyFollowed) {
ChangeFlowListQueryReq changeFlowListQueryReq = new ChangeFlowListQueryReq();
changeFlowListQueryReq.setChangeExecUser(changeExecUser);
changeFlowListQueryReq.setItemId(itemId);
......@@ -113,6 +114,7 @@ public class ChangeFlowController {
changeFlowListQueryReq.setStartTime(startTime);
changeFlowListQueryReq.setEndTime(endTime);
changeFlowListQueryReq.setFlowId(flowId);
changeFlowListQueryReq.setOnlyMyFollowed(onlyMyFollowed);
// QC端/协同中心可以查看所有,不加入过滤条件
if (CreateSourceEnum.QC.getType().equals(createSource)
|| CreateSourceEnum.COLLABORATION_CENTER.getType().equals(createSource)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment