From 438aa129b55b4864349e247272c5be547a4bac8f Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Thu, 3 Sep 2020 10:43:47 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interceptor/TxAdviceInterceptor.java | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/main/java/com/lz/datasource/interceptor/TxAdviceInterceptor.java diff --git a/src/main/java/com/lz/datasource/interceptor/TxAdviceInterceptor.java b/src/main/java/com/lz/datasource/interceptor/TxAdviceInterceptor.java new file mode 100644 index 00000000..a1cbeba8 --- /dev/null +++ b/src/main/java/com/lz/datasource/interceptor/TxAdviceInterceptor.java @@ -0,0 +1,69 @@ +package com.lz.datasource.interceptor; + +import org.aspectj.lang.annotation.Aspect; +import org.springframework.aop.Advisor; +import org.springframework.aop.aspectj.AspectJExpressionPointcut; +import org.springframework.aop.support.DefaultPointcutAdvisor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.TransactionDefinition; +import org.springframework.transaction.interceptor.*; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Created by guozp on 2017/8/28. + */ + +@Aspect +@Configuration +public class TxAdviceInterceptor { + + private static final int TX_METHOD_TIMEOUT = 30; + + private static final String AOP_POINTCUT_EXPRESSION = "execution (* com.lz..*.*Impl.*(..))"; + + @Autowired + private PlatformTransactionManager transactionManager; + + @Bean + public TransactionInterceptor txAdvice() { + NameMatchTransactionAttributeSource source = new NameMatchTransactionAttributeSource(); + /*当前存在事务就使用当前事务,当前不存在事务就创建一个新的事务*/ + RuleBasedTransactionAttribute requiredTx = new RuleBasedTransactionAttribute(); + List list = new ArrayList<>(); + list.add(new RollbackRuleAttribute(RuntimeException.class)); + list.add(new RollbackRuleAttribute(Exception.class)); + + requiredTx.setRollbackRules(list); + requiredTx.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); + requiredTx.setTimeout(TX_METHOD_TIMEOUT); + + + Map txMap = new HashMap<>(); + txMap.put("add*", requiredTx); + txMap.put("save*", requiredTx); + txMap.put("insert*", requiredTx); + txMap.put("update*", requiredTx); + txMap.put("delete*", requiredTx); + txMap.put("get*", requiredTx); + txMap.put("query*", requiredTx); + txMap.put("*", requiredTx); + source.setNameMap(txMap); + + TransactionInterceptor txAdvice = new TransactionInterceptor(transactionManager, source); + return txAdvice; + } + + @Bean + public Advisor txAdviceAdvisor() { + AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut(); + pointcut.setExpression(AOP_POINTCUT_EXPRESSION); + return new DefaultPointcutAdvisor(pointcut, txAdvice()); + } +} From 17bbdde7297e25065c3b23006fcf25911e063026 Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 3 Sep 2020 14:42:10 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E9=A9=B3=E5=9B=9E=E6=97=B6=E6=8C=89?= =?UTF-8?q?=E7=BA=A7=E9=A9=B3=E5=9B=9E=EF=BC=8C=E6=8C=89=E7=BA=A7=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java | 2 +- .../sys/service/app/impl/ResultRecordServiceImpl.java | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java b/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java index 6581a5c2..98f574f1 100644 --- a/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java +++ b/src/main/java/com/lz/common/emun/WorkMsgTypeEnum.java @@ -9,7 +9,7 @@ public enum WorkMsgTypeEnum { //绩效提交审核的通知(自己提交给领导,自己提交给人事,人事提交给老板) SUBMIT(0, "绩效提交", "去审核", "# 绩效提交\n ## @的绩效已经提交"), //绩效打回审核的通知 - REJECT(1, "绩效驳回", "去修改", "# 绩效驳回\n ## 你的绩效已经驳回"), + REJECT(1, "绩效驳回", "去修改", "# 绩效驳回\n ## @的绩效已经驳回"), //绩效通过领导审核的通知,这一步提交到HR,提交的type LEADER_PASS(2, "绩效已打分", "去提交给人事", "# 绩效已打分\n ## 你的绩效已经打分"), //绩效通过人事,老板审核的最终审核通知 diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java index 48675d0b..407fc227 100644 --- a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java +++ b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java @@ -507,6 +507,8 @@ public class ResultRecordServiceImpl extends ServiceImpl flowRecords = flowRecordService.selectFlowRecordByResultRecordIdFlowId(req.getRecordResultId()); + StaffEntity mySelf = staffService.selectStaffById(resultRecord.getStaffId()); + StaffEntity approvalStaff = mySelf; if (flowRecords.size() >= 2) { FlowRecord secondFlowRecord = flowRecords.get(flowRecords.size() - 2); resultRecord.setFlowStaffIdRole(secondFlowRecord.getFlowStaffIdRole()); @@ -514,7 +516,7 @@ public class ResultRecordServiceImpl extends ServiceImpl list = JSONObject.parseArray(resultRecord.getFlowStaffIdRole(), StaffRoleDto.class); if (CollectionUtils.isNotEmpty(list)) { StaffRoleDto staffRoleDto = list.get(0); - StaffEntity approvalStaff = staffService.selectStaffById(staffRoleDto.getStaffId()); + approvalStaff = staffService.selectStaffById(staffRoleDto.getStaffId()); resultRecord.setCurrentApprovalStaffId(approvalStaff != null ? approvalStaff.getId() : null); resultRecord.setCurrentApprovalStaffName(approvalStaff != null ? approvalStaff.getName() : null); } @@ -531,10 +533,13 @@ public class ResultRecordServiceImpl extends ServiceImpl Date: Thu, 3 Sep 2020 15:18:15 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java index 48675d0b..74fe4bee 100644 --- a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java +++ b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java @@ -529,6 +529,7 @@ public class ResultRecordServiceImpl extends ServiceImpl Date: Thu, 3 Sep 2020 15:31:59 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/sys/service/app/impl/ResultDetailServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java index 0fabed64..70497c82 100644 --- a/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java +++ b/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java @@ -277,6 +277,7 @@ public class ResultDetailServiceImpl extends ServiceImpl selectFlowRecordByFlowId(@Param("recordId") Long recordId); + + FlowRecord selectLastFlowNoStatusRecordByRecordId(@Param("recordId") Long recordId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/entity/FlowRecord.java b/src/main/java/com/lz/modules/flow/entity/FlowRecord.java index d4af8ac9..0b635bb7 100644 --- a/src/main/java/com/lz/modules/flow/entity/FlowRecord.java +++ b/src/main/java/com/lz/modules/flow/entity/FlowRecord.java @@ -9,7 +9,7 @@ import java.util.Date; * 菜单权限表 *

*流转记录表 * @author quyixiao -* @since 2020-08-21 +* @since 2020-09-03 */ @Data @@ -44,6 +44,8 @@ public class FlowRecord implements java.io.Serializable { private Integer status; // 员工&权限id private String flowStaffIdRole; + //状态名称 + private String statusName; /** * * @return @@ -254,6 +256,21 @@ public class FlowRecord implements java.io.Serializable { this.flowStaffIdRole = flowStaffIdRole; } + /** + * 状态名称 + * @return + */ + public String getStatusName() { + return statusName; + } + /** + * 状态名称 + * @param statusName + */ + public void setStatusName(String statusName) { + this.statusName = statusName; + } + @Override public String toString() { return "FlowRecord{" + @@ -271,6 +288,7 @@ public class FlowRecord implements java.io.Serializable { ",flowIndex=" + flowIndex + ",status=" + status + ",flowStaffIdRole=" + flowStaffIdRole + + ",statusName=" + statusName + "}"; } } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/enums/FlowRecordEnum.java b/src/main/java/com/lz/modules/flow/enums/FlowRecordEnum.java new file mode 100644 index 00000000..f71af01e --- /dev/null +++ b/src/main/java/com/lz/modules/flow/enums/FlowRecordEnum.java @@ -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()); + } +} diff --git a/src/main/java/com/lz/modules/flow/service/FlowRecordService.java b/src/main/java/com/lz/modules/flow/service/FlowRecordService.java index b1fd5ef3..f81778e3 100644 --- a/src/main/java/com/lz/modules/flow/service/FlowRecordService.java +++ b/src/main/java/com/lz/modules/flow/service/FlowRecordService.java @@ -44,4 +44,6 @@ public interface FlowRecordService extends IService { List selectFlowRecordByResultRecordIdFlowId(Long recordResultId); List selectFlowRecordByFlowId(Long recordId); + + FlowRecord selectLastFlowNoStatusRecordByRecordId(Long resultRecordId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowRecordServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowRecordServiceImpl.java index 66bed480..e018ea91 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/FlowRecordServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/FlowRecordServiceImpl.java @@ -7,6 +7,7 @@ import com.lz.modules.app.service.StaffService; import com.lz.modules.app.utils.t.OneTuple; import com.lz.modules.flow.dao.FlowRecordMapper; 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.service.FlowRecordService; import com.lz.modules.sys.entity.app.ResultRecord; @@ -102,6 +103,7 @@ public class FlowRecordServiceImpl extends ServiceImpl flows = flowService.selectByFlowId(flowId); FlowRecord lastFlowRecord = flowRecordService.selectLastFlowRecordByRecordId(resultRecordId); FlowRecord notFlowRecord = flowRecordService.selectNotApprovalStaffIdFlowRecords(resultRecord.getId()); @@ -385,6 +385,7 @@ public class ResultRecordServiceImpl extends ServiceImpl= approvalList.size()) { //表示流程己经结束 lastFlowRecord.setFlowName(mySelf.getName() + "-审批通过"); + lastFlowRecord.setStatusName(FlowRecordEnum.END.getName()); flowRecordService.updateCoverFlowRecordById(lastFlowRecord); resultRecordService.updateFlowStaffIdRoleToNull(resultRecord.getId());// 更新用户权限 return R.ok("流程审批结束") @@ -428,6 +429,18 @@ public class ResultRecordServiceImpl extends ServiceImpl + - 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 @@ -46,6 +47,7 @@ flow_index, status, flow_staff_id_role, + status_name, is_delete, gmt_create, gmt_modified @@ -60,6 +62,7 @@ #{ flowIndex}, #{ status}, #{ flowStaffIdRole}, + #{ statusName}, 0, now(), now() @@ -82,7 +85,8 @@ flow_id = #{flowId}, flow_index = #{flowIndex}, status = #{status}, - flow_staff_id_role = #{flowStaffIdRole} + flow_staff_id_role = #{flowStaffIdRole}, + status_name = #{statusName} ,gmt_modified = now() where id = #{id} @@ -104,7 +108,8 @@ flow_id = #{flowId}, flow_index = #{flowIndex}, status = #{status}, - flow_staff_id_role = #{flowStaffIdRole} + flow_staff_id_role = #{flowStaffIdRole}, + status_name = #{statusName} ,gmt_modified = now() where id = #{id} @@ -116,6 +121,9 @@ + + + @@ -138,6 +146,10 @@ select * from lz_flow_record where is_delete = 0 and record_id = #{recordId} + + diff --git a/src/test/java/com/lz/mysql/MysqlMain.java b/src/test/java/com/lz/mysql/MysqlMain.java index 52c8fa88..479cac29 100644 --- a/src/test/java/com/lz/mysql/MysqlMain.java +++ b/src/test/java/com/lz/mysql/MysqlMain.java @@ -63,7 +63,7 @@ public class MysqlMain { } List list = new ArrayList(); - list.add(new TablesBean("lz_result_detail")); + list.add(new TablesBean("lz_flow_record")); List list2 = new ArrayList(); Map map = MysqlUtil2ShowCreateTable.getComments(); From fb45fbebdc3ca30562ee3d8f56819542e307106d Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Thu, 3 Sep 2020 16:28:48 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/sys/service/app/impl/ResultRecordServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java index 32183ea7..0d8336e4 100644 --- a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java +++ b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java @@ -435,10 +435,10 @@ public class ResultRecordServiceImpl extends ServiceImpl