Commit 5823db58 by 王志超

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

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