提交修改

This commit is contained in:
quyixiao 2020-09-03 16:21:19 +08:00
parent b400c7e5b6
commit 1353e44ca9
9 changed files with 93 additions and 32 deletions

View File

@ -42,4 +42,6 @@ public interface FlowRecordMapper extends BaseMapper<FlowRecord> {
List<FlowRecord> selectFlowRecordByResultRecordIdFlowId(@Param("recordId") Long recordId); List<FlowRecord> selectFlowRecordByResultRecordIdFlowId(@Param("recordId") Long recordId);
List<FlowRecord> selectFlowRecordByFlowId(@Param("recordId") Long recordId); List<FlowRecord> selectFlowRecordByFlowId(@Param("recordId") Long recordId);
FlowRecord selectLastFlowNoStatusRecordByRecordId(@Param("recordId") Long recordId);
} }

View File

@ -9,7 +9,7 @@ import java.util.Date;
* 菜单权限表 * 菜单权限表
* </p>*流转记录表 * </p>*流转记录表
* @author quyixiao * @author quyixiao
* @since 2020-08-21 * @since 2020-09-03
*/ */
@Data @Data
@ -44,6 +44,8 @@ public class FlowRecord implements java.io.Serializable {
private Integer status; private Integer status;
// 员工&权限id // 员工&权限id
private String flowStaffIdRole; private String flowStaffIdRole;
//状态名称
private String statusName;
/** /**
* *
* @return * @return
@ -254,6 +256,21 @@ public class FlowRecord implements java.io.Serializable {
this.flowStaffIdRole = flowStaffIdRole; this.flowStaffIdRole = flowStaffIdRole;
} }
/**
* 状态名称
* @return
*/
public String getStatusName() {
return statusName;
}
/**
* 状态名称
* @param statusName
*/
public void setStatusName(String statusName) {
this.statusName = statusName;
}
@Override @Override
public String toString() { public String toString() {
return "FlowRecord{" + return "FlowRecord{" +
@ -271,6 +288,7 @@ public class FlowRecord implements java.io.Serializable {
",flowIndex=" + flowIndex + ",flowIndex=" + flowIndex +
",status=" + status + ",status=" + status +
",flowStaffIdRole=" + flowStaffIdRole + ",flowStaffIdRole=" + flowStaffIdRole +
",statusName=" + statusName +
"}"; "}";
} }
} }

View File

@ -0,0 +1,26 @@
package com.lz.modules.flow.enums;
public enum FlowRecordEnum {
APPROVAL("通过"), REJECT("驳回"),COMMIT("提交"), CONFIRM("确认中"), START("开始"), END("结束"),APPROVALING("审批中");
private String name;
FlowRecordEnum(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) {
System.out.println(APPROVAL.getName());
}
}

View File

@ -44,4 +44,6 @@ public interface FlowRecordService extends IService<FlowRecord> {
List<FlowRecord> selectFlowRecordByResultRecordIdFlowId(Long recordResultId); List<FlowRecord> selectFlowRecordByResultRecordIdFlowId(Long recordResultId);
List<FlowRecord> selectFlowRecordByFlowId(Long recordId); List<FlowRecord> selectFlowRecordByFlowId(Long recordId);
FlowRecord selectLastFlowNoStatusRecordByRecordId(Long resultRecordId);
} }

View File

@ -7,6 +7,7 @@ import com.lz.modules.app.service.StaffService;
import com.lz.modules.app.utils.t.OneTuple; import com.lz.modules.app.utils.t.OneTuple;
import com.lz.modules.flow.dao.FlowRecordMapper; import com.lz.modules.flow.dao.FlowRecordMapper;
import com.lz.modules.flow.entity.FlowRecord; import com.lz.modules.flow.entity.FlowRecord;
import com.lz.modules.flow.enums.FlowRecordEnum;
import com.lz.modules.flow.model.StaffRoleDto; import com.lz.modules.flow.model.StaffRoleDto;
import com.lz.modules.flow.service.FlowRecordService; import com.lz.modules.flow.service.FlowRecordService;
import com.lz.modules.sys.entity.app.ResultRecord; import com.lz.modules.sys.entity.app.ResultRecord;
@ -102,6 +103,7 @@ public class FlowRecordServiceImpl extends ServiceImpl<FlowRecordMapper, FlowRec
flowRecord.setRecordId(resultRecord.getId()); flowRecord.setRecordId(resultRecord.getId());
flowRecord.setStatus(0); flowRecord.setStatus(0);
flowRecord.setDepartmentLevel(Constant.ME); flowRecord.setDepartmentLevel(Constant.ME);
flowRecord.setStatusName(FlowRecordEnum.START.getName());
flowRecordMapper.insertFlowRecord(flowRecord); flowRecordMapper.insertFlowRecord(flowRecord);
} }
@ -115,5 +117,10 @@ public class FlowRecordServiceImpl extends ServiceImpl<FlowRecordMapper, FlowRec
return flowRecordMapper.selectFlowRecordByFlowId(recordId); return flowRecordMapper.selectFlowRecordByFlowId(recordId);
} }
@Override
public FlowRecord selectLastFlowNoStatusRecordByRecordId(Long resultRecordId) {
return flowRecordMapper.selectLastFlowNoStatusRecordByRecordId(resultRecordId);
}
} }

View File

@ -261,39 +261,15 @@ public class ResultDetailServiceImpl extends ServiceImpl<ResultDetailMapper, Res
SimpleDateFormat myFmt2 = new SimpleDateFormat("MM-dd HH:mm"); SimpleDateFormat myFmt2 = new SimpleDateFormat("MM-dd HH:mm");
FlowRecord lastFlowRecord = null; FlowRecord lastFlowRecord = null;
if (CollectionUtils.isNotEmpty(flowRecordList)) { if (CollectionUtils.isNotEmpty(flowRecordList)) {
int index = 0;
String lastStatusStr = "";
for (FlowRecord flowRecord : flowRecordList) { for (FlowRecord flowRecord : flowRecordList) {
String name = flowRecord.getApprovalStaffName(); String name = flowRecord.getApprovalStaffName();
String time = myFmt2.format(flowRecord.getGmtCreate()); String time = myFmt2.format(flowRecord.getGmtCreate());
String statusStr = "通过";
if (flowRecord.getStatus().equals(0)) { if (flowRecord.getStatus().equals(0)) {
lastFlowRecord = flowRecord; lastFlowRecord = flowRecord;
} else if (flowRecord.getStatus().equals(1)) {
if (index + 1 <= flowRecordList.size() - 1) {
FlowRecord flowRecord1 = flowRecordList.get(index + 1);
if (flowRecord1.getStatus().equals(0)) {
statusStr = "驳回";
}
}
} }
stepList.add(new Step(name, time, 1, flowRecord.getStatusName()));
if(index ==0){
stepList.add(new Step(name, time, 1, "提交"));
}else if (index == flowRecordList.size() - 1) {
if(resultRecord.getStatus() == 4 ){
stepList.add(new Step(name, time, 1, "结束"));
}else{
stepList.add(new Step(name, time, 1, "驳回".equals(lastStatusStr) ? "确认" : "审批中"));
}
} else {
stepList.add(new Step(name, time, 1, "驳回".equals(lastStatusStr) ? "确认" : statusStr));
}
lastStatusStr = statusStr;
index++;
} }
} }
int flowIndex = lastFlowRecord != null ? lastFlowRecord.getFlowIndex() + 1 : 1; int flowIndex = lastFlowRecord != null ? lastFlowRecord.getFlowIndex() + 1 : 1;
log.info("flowIndex = " + flowIndex); log.info("flowIndex = " + flowIndex);
for (int i = flowIndex; i < flowIndex + 10; i++) { for (int i = flowIndex; i < flowIndex + 10; i++) {

View File

@ -18,6 +18,7 @@ import com.lz.modules.app.service.DepartmentsStaffRelateService;
import com.lz.modules.app.service.StaffService; import com.lz.modules.app.service.StaffService;
import com.lz.modules.app.utils.t.TwoTuple; import com.lz.modules.app.utils.t.TwoTuple;
import com.lz.modules.flow.entity.*; import com.lz.modules.flow.entity.*;
import com.lz.modules.flow.enums.FlowRecordEnum;
import com.lz.modules.flow.model.StaffRoleDto; import com.lz.modules.flow.model.StaffRoleDto;
import com.lz.modules.flow.model.TypeFlowDto; import com.lz.modules.flow.model.TypeFlowDto;
import com.lz.modules.flow.model.TypeRoleDto; import com.lz.modules.flow.model.TypeRoleDto;
@ -373,7 +374,6 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
} }
} }
log.info("approvalList approval : " + Arrays.toString(approvalList.toArray()) ); log.info("approvalList approval : " + Arrays.toString(approvalList.toArray()) );
List<Flow> flows = flowService.selectByFlowId(flowId); List<Flow> flows = flowService.selectByFlowId(flowId);
FlowRecord lastFlowRecord = flowRecordService.selectLastFlowRecordByRecordId(resultRecordId); FlowRecord lastFlowRecord = flowRecordService.selectLastFlowRecordByRecordId(resultRecordId);
FlowRecord notFlowRecord = flowRecordService.selectNotApprovalStaffIdFlowRecords(resultRecord.getId()); FlowRecord notFlowRecord = flowRecordService.selectNotApprovalStaffIdFlowRecords(resultRecord.getId());
@ -385,6 +385,7 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
int index = getDepartmentLevelIndex(flows, flowIndex); int index = getDepartmentLevelIndex(flows, flowIndex);
if (index < 0 || index >= approvalList.size()) { //表示流程己经结束 if (index < 0 || index >= approvalList.size()) { //表示流程己经结束
lastFlowRecord.setFlowName(mySelf.getName() + "-审批通过"); lastFlowRecord.setFlowName(mySelf.getName() + "-审批通过");
lastFlowRecord.setStatusName(FlowRecordEnum.END.getName());
flowRecordService.updateCoverFlowRecordById(lastFlowRecord); flowRecordService.updateCoverFlowRecordById(lastFlowRecord);
resultRecordService.updateFlowStaffIdRoleToNull(resultRecord.getId());// 更新用户权限 resultRecordService.updateFlowStaffIdRoleToNull(resultRecord.getId());// 更新用户权限
return R.ok("流程审批结束") return R.ok("流程审批结束")
@ -428,6 +429,18 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
flowRecord.setDepartmentLevel(departmentLevel); flowRecord.setDepartmentLevel(departmentLevel);
String staffRoles = JSON.toJSONString(staffRoleDtos); String staffRoles = JSON.toJSONString(staffRoleDtos);
flowRecord.setFlowStaffIdRole(staffRoles); flowRecord.setFlowStaffIdRole(staffRoles);
flowRecord.setStatusName(FlowRecordEnum.APPROVALING.getName());
FlowRecord lastFlowRecordNoStatus = flowRecordService.selectLastFlowNoStatusRecordByRecordId(resultRecordId);
// 如果上一步是开始则不进行修改如果上一步是确认中改成提交如果上一点是审批中将上一步改成通过
if (lastFlowRecordNoStatus != null
&& !lastFlowRecordNoStatus.getStatusName().equals(FlowRecordEnum.START.getName())) {
flowRecord.setStatusName(FlowRecordEnum.APPROVAL.getName());
} else if (lastFlowRecordNoStatus != null
&& lastFlowRecordNoStatus.getStatusName().equals(FlowRecordEnum.CONFIRM.getName())) {
flowRecord.setStatusName(FlowRecordEnum.COMMIT.getName());
}
flowRecordService.insertFlowRecord(flowRecord); flowRecordService.insertFlowRecord(flowRecord);
resultRecord.setFlowStaffIdRole(staffRoles); resultRecord.setFlowStaffIdRole(staffRoles);
resultRecord.setStatus(1); //审批中 resultRecord.setStatus(1); //审批中
@ -520,18 +533,23 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
resultRecord.setCurrentApprovalStaffId(approvalStaff != null ? approvalStaff.getId() : null); resultRecord.setCurrentApprovalStaffId(approvalStaff != null ? approvalStaff.getId() : null);
resultRecord.setCurrentApprovalStaffName(approvalStaff != null ? approvalStaff.getName() : null); resultRecord.setCurrentApprovalStaffName(approvalStaff != null ? approvalStaff.getName() : null);
} }
resultRecordService.updateResultRecordById(resultRecord);
resultRecordService.updateResultRecordById(resultRecord);
FlowRecord lastFlowRecord = flowRecords.get(flowRecords.size() - 1); FlowRecord lastFlowRecord = flowRecords.get(flowRecords.size() - 1);
lastFlowRecord.setStatus(1); lastFlowRecord.setStatus(1);
flowRecordService.updateFlowRecordById(lastFlowRecord); flowRecordService.updateFlowRecordById(lastFlowRecord);
FlowRecord lastFlowRecordNoStatus = flowRecordService.selectLastFlowNoStatusRecordByRecordId(req.getRecordResultId());
lastFlowRecordNoStatus.setStatusName(FlowRecordEnum.REJECT.getName());
flowRecordService.updateFlowRecordById(lastFlowRecordNoStatus);
// 可能会被删除 // 可能会被删除
FlowRecord lastUsedFlowRecord = flowRecordService.selectLastFlowRecordByRecordId(req.getRecordResultId()); FlowRecord lastUsedFlowRecord = flowRecordService.selectLastFlowRecordByRecordId(req.getRecordResultId());
lastUsedFlowRecord.setId(null); lastUsedFlowRecord.setId(null);
lastUsedFlowRecord.setGmtCreate(new Date()); lastUsedFlowRecord.setGmtCreate(new Date());
lastUsedFlowRecord.setGmtModified(new Date()); lastUsedFlowRecord.setGmtModified(new Date());
lastUsedFlowRecord.setStatus(1); lastUsedFlowRecord.setStatus(1);
lastUsedFlowRecord.setStatusName(FlowRecordEnum.CONFIRM.getName());
flowRecordService.insertFlowRecord(lastUsedFlowRecord);// 新插入一条提交记录 flowRecordService.insertFlowRecord(lastUsedFlowRecord);// 新插入一条提交记录
if(mySelf.getId().longValue() == approvalStaff.getId().longValue()){//同一个人 if(mySelf.getId().longValue() == approvalStaff.getId().longValue()){//同一个人

View File

@ -18,12 +18,13 @@
<result column="flow_index" property="flowIndex"/> <result column="flow_index" property="flowIndex"/>
<result column="status" property="status"/> <result column="status" property="status"/>
<result column="flow_staff_id_role" property="flowStaffIdRole"/> <result column="flow_staff_id_role" property="flowStaffIdRole"/>
<result column="status_name" property="statusName"/>
</resultMap> </resultMap>
<!-- 通用查询结果列 --> <!-- 通用查询结果列 -->
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, department_level AS departmentLevel, record_id AS recordId, approval_staff_id AS approvalStaffId, approval_staff_name AS approvalStaffName, flow_name AS flowName, record_staff_id AS recordStaffId, flow_id AS flowId, flow_index AS flowIndex, status AS status, flow_staff_id_role AS flowStaffIdRole id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, department_level AS departmentLevel, record_id AS recordId, approval_staff_id AS approvalStaffId, approval_staff_name AS approvalStaffName, flow_name AS flowName, record_staff_id AS recordStaffId, flow_id AS flowId, flow_index AS flowIndex, status AS status, flow_staff_id_role AS flowStaffIdRole, status_name AS statusName
</sql> </sql>
@ -46,6 +47,7 @@
<if test="flowIndex != null">flow_index, </if> <if test="flowIndex != null">flow_index, </if>
<if test="status != null">status, </if> <if test="status != null">status, </if>
<if test="flowStaffIdRole != null">flow_staff_id_role, </if> <if test="flowStaffIdRole != null">flow_staff_id_role, </if>
<if test="statusName != null">status_name, </if>
is_delete, is_delete,
gmt_create, gmt_create,
gmt_modified gmt_modified
@ -60,6 +62,7 @@
<if test="flowIndex != null">#{ flowIndex}, </if> <if test="flowIndex != null">#{ flowIndex}, </if>
<if test="status != null">#{ status}, </if> <if test="status != null">#{ status}, </if>
<if test="flowStaffIdRole != null">#{ flowStaffIdRole}, </if> <if test="flowStaffIdRole != null">#{ flowStaffIdRole}, </if>
<if test="statusName != null">#{ statusName}, </if>
0, 0,
now(), now(),
now() now()
@ -82,7 +85,8 @@
<if test="flowId != null">flow_id = #{flowId},</if> <if test="flowId != null">flow_id = #{flowId},</if>
<if test="flowIndex != null">flow_index = #{flowIndex},</if> <if test="flowIndex != null">flow_index = #{flowIndex},</if>
<if test="status != null">status = #{status},</if> <if test="status != null">status = #{status},</if>
<if test="flowStaffIdRole != null">flow_staff_id_role = #{flowStaffIdRole}</if> <if test="flowStaffIdRole != null">flow_staff_id_role = #{flowStaffIdRole},</if>
<if test="statusName != null">status_name = #{statusName}</if>
</trim> </trim>
,gmt_modified = now() ,gmt_modified = now()
where id = #{id} where id = #{id}
@ -104,7 +108,8 @@
flow_id = #{flowId}, flow_id = #{flowId},
flow_index = #{flowIndex}, flow_index = #{flowIndex},
status = #{status}, status = #{status},
flow_staff_id_role = #{flowStaffIdRole} flow_staff_id_role = #{flowStaffIdRole},
status_name = #{statusName}
,gmt_modified = now() ,gmt_modified = now()
where id = #{id} where id = #{id}
</update> </update>
@ -116,6 +121,9 @@
<select id="selectLastFlowRecordByRecordId" resultType="com.lz.modules.flow.entity.FlowRecord"> <select id="selectLastFlowRecordByRecordId" resultType="com.lz.modules.flow.entity.FlowRecord">
select * from lz_flow_record where is_delete = 0 and record_id = #{recordId} and status = 0 order by id desc limit 1 select * from lz_flow_record where is_delete = 0 and record_id = #{recordId} and status = 0 order by id desc limit 1
</select> </select>
@ -138,6 +146,10 @@
select * from lz_flow_record where is_delete = 0 and record_id = #{recordId} select * from lz_flow_record where is_delete = 0 and record_id = #{recordId}
</select> </select>
<select id="selectLastFlowNoStatusRecordByRecordId" resultType="com.lz.modules.flow.entity.FlowRecord">
select * from lz_flow_record where is_delete = 0 and record_id = #{recordId} order by id desc limit 1
</select>
</mapper> </mapper>

View File

@ -63,7 +63,7 @@ public class MysqlMain {
} }
List<TablesBean> list = new ArrayList<TablesBean>(); List<TablesBean> list = new ArrayList<TablesBean>();
list.add(new TablesBean("lz_result_detail")); list.add(new TablesBean("lz_flow_record"));
List<TablesBean> list2 = new ArrayList<TablesBean>(); List<TablesBean> list2 = new ArrayList<TablesBean>();
Map<String, String> map = MysqlUtil2ShowCreateTable.getComments(); Map<String, String> map = MysqlUtil2ShowCreateTable.getComments();