去向地详细

This commit is contained in:
2025-10-08 15:45:46 +08:00
parent 3b3c7d1c83
commit 0c828d079e
3 changed files with 120 additions and 96 deletions

View File

@@ -448,7 +448,6 @@ public class SurItineraryController extends BaseController {
util.exportExcel(response, listExport, "学生假期离校填写数据"); util.exportExcel(response, listExport, "学生假期离校填写数据");
} }
/** /**
* 获取学生假期返校详细信息 * 获取学生假期返校详细信息
*/ */

View File

@@ -111,14 +111,18 @@ public class FlowableUtils {
} }
// 类型为子流程,则添加子流程开始节点出口处相连的节点 // 类型为子流程,则添加子流程开始节点出口处相连的节点
if (sequenceFlow.getSourceFlowElement() instanceof SubProcess) { if (sequenceFlow.getSourceFlowElement() instanceof SubProcess) {
// 获取子流程元素集合
Collection<FlowElement> subProcessElements = ((SubProcess) sequenceFlow.getSourceFlowElement()).getFlowElements();
if (subProcessElements != null && !subProcessElements.isEmpty()) {
// 获取子流程用户任务节点 // 获取子流程用户任务节点
List<UserTask> childUserTaskList = findChildProcessUserTasks((StartEvent) ((SubProcess) sequenceFlow.getSourceFlowElement()).getFlowElements().toArray()[0], null, null); List<UserTask> childUserTaskList = findChildProcessUserTasks((StartEvent) subProcessElements.toArray()[0], null, null);
// 如果找到节点,则说明该线路找到节点,不继续向下找,反之继续 // 如果找到节点,则说明该线路找到节点,不继续向下找,反之继续
if (childUserTaskList != null && childUserTaskList.size() > 0) { if (childUserTaskList != null && childUserTaskList.size() > 0) {
userTaskList.addAll(childUserTaskList); userTaskList.addAll(childUserTaskList);
continue; continue;
} }
} }
}
// 继续迭代 // 继续迭代
userTaskList = iteratorFindParentUserTasks(sequenceFlow.getSourceFlowElement(), hasSequenceFlow, userTaskList); userTaskList = iteratorFindParentUserTasks(sequenceFlow.getSourceFlowElement(), hasSequenceFlow, userTaskList);
} }
@@ -162,13 +166,16 @@ public class FlowableUtils {
} }
// 如果节点为子流程节点情况,则从节点中的第一个节点开始获取 // 如果节点为子流程节点情况,则从节点中的第一个节点开始获取
if (sequenceFlow.getTargetFlowElement() instanceof SubProcess) { if (sequenceFlow.getTargetFlowElement() instanceof SubProcess) {
List<UserTask> childUserTaskList = iteratorFindChildUserTasks((FlowElement) (((SubProcess) sequenceFlow.getTargetFlowElement()).getFlowElements().toArray()[0]), runTaskKeyList, hasSequenceFlow, null); Collection<FlowElement> subProcessElements = ((SubProcess) sequenceFlow.getTargetFlowElement()).getFlowElements();
if (subProcessElements != null && !subProcessElements.isEmpty()) {
List<UserTask> childUserTaskList = iteratorFindChildUserTasks((FlowElement) subProcessElements.toArray()[0], runTaskKeyList, hasSequenceFlow, null);
// 如果找到节点,则说明该线路找到节点,不继续向下找,反之继续 // 如果找到节点,则说明该线路找到节点,不继续向下找,反之继续
if (childUserTaskList != null && childUserTaskList.size() > 0) { if (childUserTaskList != null && childUserTaskList.size() > 0) {
userTaskList.addAll(childUserTaskList); userTaskList.addAll(childUserTaskList);
continue; continue;
} }
} }
}
// 继续迭代 // 继续迭代
userTaskList = iteratorFindChildUserTasks(sequenceFlow.getTargetFlowElement(), runTaskKeyList, hasSequenceFlow, userTaskList); userTaskList = iteratorFindChildUserTasks(sequenceFlow.getTargetFlowElement(), runTaskKeyList, hasSequenceFlow, userTaskList);
} }
@@ -206,13 +213,16 @@ public class FlowableUtils {
} }
// 如果节点为子流程节点情况,则从节点中的第一个节点开始获取 // 如果节点为子流程节点情况,则从节点中的第一个节点开始获取
if (sequenceFlow.getTargetFlowElement() instanceof SubProcess) { if (sequenceFlow.getTargetFlowElement() instanceof SubProcess) {
List<UserTask> childUserTaskList = findChildProcessUserTasks((FlowElement) (((SubProcess) sequenceFlow.getTargetFlowElement()).getFlowElements().toArray()[0]), hasSequenceFlow, null); Collection<FlowElement> subProcessElements = ((SubProcess) sequenceFlow.getTargetFlowElement()).getFlowElements();
if (subProcessElements != null && !subProcessElements.isEmpty()) {
List<UserTask> childUserTaskList = findChildProcessUserTasks((FlowElement) subProcessElements.toArray()[0], hasSequenceFlow, null);
// 如果找到节点,则说明该线路找到节点,不继续向下找,反之继续 // 如果找到节点,则说明该线路找到节点,不继续向下找,反之继续
if (childUserTaskList != null && childUserTaskList.size() > 0) { if (childUserTaskList != null && childUserTaskList.size() > 0) {
userTaskList.addAll(childUserTaskList); userTaskList.addAll(childUserTaskList);
continue; continue;
} }
} }
}
// 继续迭代 // 继续迭代
userTaskList = findChildProcessUserTasks(sequenceFlow.getTargetFlowElement(), hasSequenceFlow, userTaskList); userTaskList = findChildProcessUserTasks(sequenceFlow.getTargetFlowElement(), hasSequenceFlow, userTaskList);
} }
@@ -260,14 +270,17 @@ public class FlowableUtils {
} }
// 如果该节点为开始节点,且存在上级子节点,则顺着上级子节点继续迭代 // 如果该节点为开始节点,且存在上级子节点,则顺着上级子节点继续迭代
if (sequenceFlow.getSourceFlowElement() instanceof SubProcess) { if (sequenceFlow.getSourceFlowElement() instanceof SubProcess) {
dirtyRoads = findChildProcessAllDirtyRoad((StartEvent) ((SubProcess) sequenceFlow.getSourceFlowElement()).getFlowElements().toArray()[0], null, dirtyRoads); Collection<FlowElement> subProcessElements = ((SubProcess) sequenceFlow.getSourceFlowElement()).getFlowElements();
if (subProcessElements != null && !subProcessElements.isEmpty()) {
dirtyRoads = findChildProcessAllDirtyRoad((StartEvent) subProcessElements.toArray()[0], null, dirtyRoads);
// 是否存在子流程上true 是false 否 // 是否存在子流程上true 是false 否
Boolean isInChildProcess = dirtyTargetInChildProcess((StartEvent) ((SubProcess) sequenceFlow.getSourceFlowElement()).getFlowElements().toArray()[0], null, targets, null); Boolean isInChildProcess = dirtyTargetInChildProcess((StartEvent) subProcessElements.toArray()[0], null, targets, null);
if (isInChildProcess) { if (isInChildProcess) {
// 已在子流程上找到,该路线结束 // 已在子流程上找到,该路线结束
continue; continue;
} }
} }
}
// 继续迭代 // 继续迭代
dirtyRoads = iteratorFindDirtyRoads(sequenceFlow.getSourceFlowElement(), passRoads, hasSequenceFlow, targets, dirtyRoads); dirtyRoads = iteratorFindDirtyRoads(sequenceFlow.getSourceFlowElement(), passRoads, hasSequenceFlow, targets, dirtyRoads);
} }
@@ -303,7 +316,10 @@ public class FlowableUtils {
dirtyRoads.add(sequenceFlow.getTargetFlowElement().getId()); dirtyRoads.add(sequenceFlow.getTargetFlowElement().getId());
// 如果节点为子流程节点情况,则从节点中的第一个节点开始获取 // 如果节点为子流程节点情况,则从节点中的第一个节点开始获取
if (sequenceFlow.getTargetFlowElement() instanceof SubProcess) { if (sequenceFlow.getTargetFlowElement() instanceof SubProcess) {
dirtyRoads = findChildProcessAllDirtyRoad((FlowElement) (((SubProcess) sequenceFlow.getTargetFlowElement()).getFlowElements().toArray()[0]), hasSequenceFlow, dirtyRoads); Collection<FlowElement> subProcessElements = ((SubProcess) sequenceFlow.getTargetFlowElement()).getFlowElements();
if (subProcessElements != null && !subProcessElements.isEmpty()) {
dirtyRoads = findChildProcessAllDirtyRoad((FlowElement) subProcessElements.toArray()[0], hasSequenceFlow, dirtyRoads);
}
} }
// 继续迭代 // 继续迭代
dirtyRoads = findChildProcessAllDirtyRoad(sequenceFlow.getTargetFlowElement(), hasSequenceFlow, dirtyRoads); dirtyRoads = findChildProcessAllDirtyRoad(sequenceFlow.getTargetFlowElement(), hasSequenceFlow, dirtyRoads);
@@ -343,7 +359,10 @@ public class FlowableUtils {
} }
// 如果节点为子流程节点情况,则从节点中的第一个节点开始获取 // 如果节点为子流程节点情况,则从节点中的第一个节点开始获取
if (sequenceFlow.getTargetFlowElement() instanceof SubProcess) { if (sequenceFlow.getTargetFlowElement() instanceof SubProcess) {
inChildProcess = dirtyTargetInChildProcess((FlowElement) (((SubProcess) sequenceFlow.getTargetFlowElement()).getFlowElements().toArray()[0]), hasSequenceFlow, targets, inChildProcess); Collection<FlowElement> subProcessElements = ((SubProcess) sequenceFlow.getTargetFlowElement()).getFlowElements();
if (subProcessElements != null && !subProcessElements.isEmpty()) {
inChildProcess = dirtyTargetInChildProcess((FlowElement) subProcessElements.toArray()[0], hasSequenceFlow, targets, inChildProcess);
}
} }
// 继续迭代 // 继续迭代
inChildProcess = dirtyTargetInChildProcess(sequenceFlow.getTargetFlowElement(), hasSequenceFlow, targets, inChildProcess); inChildProcess = dirtyTargetInChildProcess(sequenceFlow.getTargetFlowElement(), hasSequenceFlow, targets, inChildProcess);

View File

@@ -1,15 +1,22 @@
package com.srs.survey.domain; package com.srs.survey.domain;
import java.util.Date; import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.srs.common.annotation.Excel; import com.srs.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.*; import com.srs.common.core.domain.BaseEntity;
import com.srs.common.enums.DesensitizedType;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.*; import lombok.AllArgsConstructor;
import com.srs.common.core.domain.BaseEntity; import lombok.Builder;
import com.srs.common.annotation.Sensitive; import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@@ -173,6 +180,61 @@ private static final long serialVersionUID=1L;
@Excel(name = "宿舍号") @Excel(name = "宿舍号")
@TableField(exist = false) @TableField(exist = false)
public String roomNo; public String roomNo;
/**
* 家长是否知晓
*/
@ApiModelProperty("家长是否知晓")
@TableField("know")
@Excel(name = "家长是否知晓")
public String know;
/**
* 未返校原因分类
*/
@ApiModelProperty("未返校原因分类")
@TableField("absent_school_type")
@Excel(name = "未返校原因分类")
public String absentSchoolType;
/**
* 未返校详细原因
*/
@ApiModelProperty("未返校详细原因")
@TableField("absent_school_remark")
@Excel(name = "未返校详细原因")
public String absentSchoolRemark;
/**
* 到校定位
*/
@ApiModelProperty("到校定位")
@TableField("attend_school_gps")
@Excel(name = "到校定位")
public String attendSchoolGps;
/**
* 到校时间
*/
@ApiModelProperty("到校时间")
@TableField("attend_school_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "到校时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
public Date attendSchoolTime;
/**
* 状态0.保存1.保存,2.已审核
*/
@ApiModelProperty("状态0.保存1.待审核,2.已审核")
@TableField("status")
@Excel(name = "状态0.保存1.待审核,2.已审核")
public String status;
@ApiModelProperty("预计离校时间")
@TableField("will_leave_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "预计离校时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
public Date willLeaveTime;
@ApiModelProperty("是否离校") @ApiModelProperty("是否离校")
@TableField("is_leave") @TableField("is_leave")
@@ -194,19 +256,6 @@ private static final long serialVersionUID=1L;
@Excel(name = "家长是否知晓(离校、留校)") @Excel(name = "家长是否知晓(离校、留校)")
public String famKnow; public String famKnow;
@ApiModelProperty("预计离校时间")
@TableField("will_leave_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "预计离校时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
public Date willLeaveTime;
@ApiModelProperty("去向地")
@TableField("will_addr")
@Excel(name = "去向地")
public String willAddr;
@ApiModelProperty("计划返校时间") @ApiModelProperty("计划返校时间")
@TableField("scheduled_return_time") @TableField("scheduled_return_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -239,6 +288,15 @@ private static final long serialVersionUID=1L;
// @Excel(name = "到家定位") // @Excel(name = "到家定位")
public String homeGps; public String homeGps;
@ApiModelProperty("去向地")
@TableField("will_addr")
@Excel(name = "去向地")
public String willAddr;
@ApiModelProperty("去向地详细地址")
@TableField("will_detail_addr")
@Excel(name = "去向地详细地址")
public String willDetailAddr;
@TableField("home_gps_addr") @TableField("home_gps_addr")
public String homeGpsAddr; public String homeGpsAddr;
@@ -259,40 +317,6 @@ private static final long serialVersionUID=1L;
@Excel(name = "是否到校") @Excel(name = "是否到校")
public String reachSchoolStatus; public String reachSchoolStatus;
@ApiModelProperty("到校定位")
@TableField("attend_school_gps")
// @Excel(name = "到校定位")
public String attendSchoolGps;
/**
* 到校时间
*/
@ApiModelProperty("到校时间")
@TableField("attend_school_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "到校时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
public Date attendSchoolTime;
/**
* 未返校原因分类
*/
@ApiModelProperty("未返校原因分类")
@TableField("absent_school_type")
@Excel(name = "未返校原因分类")
public String absentSchoolType;
/**
* 未返校详细原因
*/
@ApiModelProperty("未返校详细原因")
@TableField("absent_school_remark")
@Excel(name = "未返校详细原因")
public String absentSchoolRemark;
/** /**
* 家长姓名 * 家长姓名
*/ */
@@ -309,24 +333,6 @@ private static final long serialVersionUID=1L;
@Excel(name = "家长电话(返校)") @Excel(name = "家长电话(返校)")
public String parentPhone; public String parentPhone;
/**
* 家长是否知晓
*/
@ApiModelProperty("家长是否知晓(返校)")
@TableField("know")
@Excel(name = "家长是否知晓(返校)")
public String know;
/**
* 状态0.保存1.保存,2.已审核
*/
@ApiModelProperty("返校审核状态")
@TableField("status")
@Excel(name = "返校审核状态",dictType = "sur_status")
public String status;
@TableField("stu_fdy_name") @TableField("stu_fdy_name")
@Excel(name = "学生辅导员姓名") @Excel(name = "学生辅导员姓名")