a = JSONObject.parseObject(JSON.toJSONBytes(map),Map.class);
+ System.out.println(a.get("type1"));
+
+
+
+ }
+
+
+
+}
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 5611fc00..988598e3 100644
--- a/src/main/java/com/lz/modules/flow/service/FlowRecordService.java
+++ b/src/main/java/com/lz/modules/flow/service/FlowRecordService.java
@@ -2,6 +2,9 @@ package com.lz.modules.flow.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lz.modules.flow.entity.FlowRecord;
+import com.lz.modules.sys.entity.app.ResultRecord;
+
+import java.util.List;
/**
*
@@ -33,4 +36,10 @@ public interface FlowRecordService extends IService {
FlowRecord selectLastFlowRecordByRecordId(Long recordResultId);
FlowRecord selectNotApprovalStaffIdFlowRecords(Long recordId);
+
+ List selectFlowRecordByRecordId(Long recordId);
+
+ void initFlowRecord(ResultRecord resultRecord , Long roleId , Integer type , String name);
+
+ List selectFlowRecordByResultRecordIdFlowId(Long recordResultId, Long rollbackFlowId);
}
\ 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 af24e959..b28eec96 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
@@ -1,12 +1,23 @@
package com.lz.modules.flow.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.lz.common.utils.Constant;
+import com.lz.modules.app.entity.StaffEntity;
+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.model.StaffRoleDto;
import com.lz.modules.flow.service.FlowRecordService;
+import com.lz.modules.sys.entity.app.ResultRecord;
+import com.lz.modules.sys.service.app.ResultRecordService;
+import org.apache.tomcat.util.bcel.Const;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.awt.*;
+import java.util.List;
+
/**
*
* 流转记录表 服务类
@@ -23,6 +34,12 @@ public class FlowRecordServiceImpl extends ServiceImpl selectFlowRecordByRecordId(Long recordId) {
+ return flowRecordMapper.selectFlowRecordByRecordId(recordId);
+ }
+
+
+ @Override
+ public void initFlowRecord(ResultRecord resultRecord, Long roleId , Integer type , String name) {
+ StaffEntity staffEntity = staffService.selectStaffById(resultRecord.getStaffId());
+ FlowRecord flowRecord = new FlowRecord();
+ flowRecord.setFlowStaffIdRole(StaffRoleDto.getStaffRole(resultRecord.getStaffId(), roleId));
+ OneTuple flowInfo = resultRecordService.getFlowInfo(resultRecord.getStaffId(), type);
+ flowRecord.setFlowId(flowInfo.getFirst());
+ flowRecord.setApprovalStaffId(resultRecord.getStaffId());
+ flowRecord.setApprovalStaffName(staffEntity.getName());
+ flowRecord.setFlowIndex(0);
+ flowRecord.setFlowName(staffEntity.getName() + "-"+name);
+ flowRecord.setRecordStaffId(resultRecord.getStaffId());
+ flowRecord.setRecordId(resultRecord.getId());
+ flowRecord.setStatus(0);
+ flowRecord.setDepartmentLevel(Constant.ME);
+ }
+
+ @Override
+ public List selectFlowRecordByResultRecordIdFlowId(Long recordResultId, Long rollbackFlowId) {
+ return flowRecordMapper.selectFlowRecordByResultRecordIdFlowId(recordResultId, rollbackFlowId);
+ }
+
}
diff --git a/src/main/java/com/lz/modules/sys/entity/app/ResultRecord.java b/src/main/java/com/lz/modules/sys/entity/app/ResultRecord.java
index e940b963..abdf882f 100644
--- a/src/main/java/com/lz/modules/sys/entity/app/ResultRecord.java
+++ b/src/main/java/com/lz/modules/sys/entity/app/ResultRecord.java
@@ -297,4 +297,7 @@ public class ResultRecord implements java.io.Serializable {
",staffName=" + staffName +
"}";
}
+
+
+
}
\ No newline at end of file
diff --git a/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java b/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java
index ee0788fe..1f52e5a1 100644
--- a/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java
+++ b/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.lz.common.utils.PageUtils;
import com.lz.common.utils.R;
import com.lz.modules.app.req.ResultRecordReq;
+import com.lz.modules.app.utils.t.TwoTuple;
import com.lz.modules.sys.entity.SysUserEntity;
import com.lz.modules.sys.entity.app.ResultRecord;
@@ -48,4 +49,10 @@ public interface ResultRecordService extends IService {
R approval(Long resultRecordId, Long userId);
List selectResultRecordByIds(List recordIds);
+
+ TwoTuple getFlowInfo(Long staffId,Integer type);
+
+ ResultRecord createResultRecord(Long userId, int type,Long roleId);
+
+ ResultRecord initResult(Long staffId ,Integer recordType,Long roleId) ;
}
\ No newline at end of file
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 f16b163e..0e6c3e3f 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
@@ -14,12 +14,17 @@ import com.lz.modules.app.resp.ResultRecordResp;
import com.lz.modules.app.service.DepartmentsService;
import com.lz.modules.app.service.DepartmentsStaffRelateService;
import com.lz.modules.app.service.StaffService;
+import com.lz.modules.app.utils.t.TwoTuple;
import com.lz.modules.flow.entity.*;
import com.lz.modules.flow.model.StaffRoleDto;
+import com.lz.modules.flow.model.TypeFlowDto;
+import com.lz.modules.flow.model.TypeRoleDto;
import com.lz.modules.flow.service.*;
import com.lz.modules.sys.dao.app.ResultRecordMapper;
import com.lz.modules.sys.entity.SysUserEntity;
+import com.lz.modules.sys.entity.app.ResultDetail;
import com.lz.modules.sys.entity.app.ResultRecord;
+import com.lz.modules.sys.service.app.ResultDetailService;
import com.lz.modules.sys.service.app.ResultRecordService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
@@ -89,6 +94,9 @@ public class ResultRecordServiceImpl extends ServiceImpl resultRecordMapper.selectByCondition(page, params)
- );
- }else{ // 部门审批
- String departmentLevel = "";
- FlowDepartment flowDepartment = flowDepartmentService.selectByStaffId(user.getUserId());
- if(flowDepartment !=null){
- departmentLevel = flowDepartment.getDepartmentLevel();
- }else{
- StaffRole staffRole = staffRoleService.selectByStaffId(user.getUserId());
- departmentLevel= staffRole.getDepartmentLevel();
+ String departmentLevel = Constant.ME;
+ FlowDepartment flowDepartment = flowDepartmentService.selectByStaffId(user.getUserId());
+ if (flowDepartment != null) {
+ departmentLevel = flowDepartment.getDepartmentLevel();
+ } else {
+ StaffRole staffRole = staffRoleService.selectByStaffId(user.getUserId());
+ if (staffRole != null) {
+ departmentLevel = staffRole.getDepartmentLevel();
}
- params.setDepartmentLevel(departmentLevel);
- pageUtils = PageUtils.startPage(params.getPage(), params.getLimit() ).doSelect(
- page -> resultRecordMapper.selectByConditionByLeader(page, params)
- );
}
-
+ params.setDepartmentLevel(departmentLevel);
+ PageUtils pageUtils = PageUtils.startPage(params.getPage(), params.getLimit()).doSelect(
+ page -> resultRecordMapper.selectByConditionByLeader(page, params)
+ );
List resultRecords = pageUtils.getList();
if(CollectionUtils.isNotEmpty(resultRecords)){
List list = new ArrayList<>();
@@ -223,17 +223,14 @@ public class ResultRecordServiceImpl extends ServiceImpl list = new ArrayList<>();
list.add(flowDepartment);
@@ -245,6 +242,61 @@ public class ResultRecordServiceImpl extends ServiceImpl resultDetails = resultDetailService.selectByRecordId(recordId);
+ if (CollectionUtils.isNotEmpty(resultDetails)) {
+ // 保存业绩相关
+ for (ResultDetail resultDetail : resultDetails) {
+ resultDetail.setRecordId(resultRecordNew.getId());
+ resultDetail.setId(null);
+ resultDetail.setType(Constant.TWO);
+ resultDetailService.insertResultDetail(resultDetail);
+ }
+ }
+ } else {
+ resultRecordNew = resultRecordService.createResultRecord(staffId,recordType,roleId);
+ }
+ //保存文件价值观
+ resultDetailService.insertWenHuaJiaZhiGua("做人:相信、包容、担当", resultRecordNew.getId(), staffId);
+ resultDetailService.insertWenHuaJiaZhiGua("做事:用户第一、求真、极致", resultRecordNew.getId(), staffId);
+ return resultRecordNew;
+ }
+
+
+ @Override
+ public R approval(Long resultRecordId, Long userId) {
+ ResultRecord resultRecord = resultRecordService.selectResultRecordById(resultRecordId);
+ StaffEntity mySelf = staffService.selectStaffById(userId);
+ TwoTuple> flowInfo = getFlowInfo(resultRecord.getStaffId(),resultRecord.getType());
+ Long flowId = flowInfo.getFirst();
+ List list = flowInfo.getSecond();
List flowRelations = flowRelationService.selectFlowRelationAll();
Map staffEntityMap = list.stream().collect(Collectors.toMap(FlowDepartment::getDepartmentLevel, p -> p));
// approvalList = [ME,ONE_D,TWO_D,HR,BOSS]
@@ -282,24 +334,24 @@ public class ResultRecordServiceImpl extends ServiceImpl staffRoleDtos = new ArrayList<>();
if (Constant.ME.equals(departmentLevel)) { //如果是自己
approvalStaff = staff; // 是自己进行审批
- StaffRoleDto staffRoleDto = new StaffRoleDto(staff.getId(),flows.get(flowIndex-1).getRoleId());
+ StaffRoleDto staffRoleDto = new StaffRoleDto(staff.getId(), flows.get(flowIndex - 1).getRoleId());
staffRoleDtos.add(staffRoleDto);
} else {
FlowDepartment flowD = staffEntityMap.get(departmentLevel);
if (flowD == null) {
List staffRoles = staffRoleService.selectByRole(departmentLevel);
- for(StaffRole staffRole: staffRoles ){
+ for (StaffRole staffRole : staffRoles) {
List staffRoleDepartments = staffRoleDepartmentService.selectStaffRoleDepartmentByStaffRoleId(staffRole.getId());
Map departmentIdMap = departmentsService.selectUserAllDepartmentIds(resultRecord.getDepartmentId());
for (StaffRoleDepartment staffRoleDepartment : staffRoleDepartments) {
String value = departmentIdMap.get(staffRoleDepartment.getDepartmentId());
- if(StringUtil.isNotBlank(value) ){
- StaffRoleDto staffRoleDto = new StaffRoleDto(staffRole.getStaffId(),staffRole.getRoleId());
+ if (StringUtil.isNotBlank(value)) {
+ StaffRoleDto staffRoleDto = new StaffRoleDto(staffRole.getStaffId(), TypeRoleDto.getRoleId(staffRole.getTypeRoleIds(),resultRecord.getType()));
staffRoleDtos.add(staffRoleDto);
}
}
}
- if(staffRoleDtos.size() == 1 ){ //表示只有一个审批的用户
+ if (staffRoleDtos.size() == 1) { //表示只有一个审批的用户
approvalStaff = staffService.selectStaffById(staffRoleDtos.get(0).getStaffId());
}
} else {
diff --git a/src/main/resources/mapper/flow/FlowDepartmentMapper.xml b/src/main/resources/mapper/flow/FlowDepartmentMapper.xml
index 951e6779..9e6398b3 100644
--- a/src/main/resources/mapper/flow/FlowDepartmentMapper.xml
+++ b/src/main/resources/mapper/flow/FlowDepartmentMapper.xml
@@ -9,8 +9,7 @@
-
-
+
@@ -18,7 +17,7 @@
- id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, staff_id AS staffId, child_flow_id AS childFlowId, self_flow_id AS selfFlowId, department_level AS departmentLevel, parent_id AS parentId
+ id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, staff_id AS staffId, flow_ids AS flowIds, department_level AS departmentLevel, parent_id AS parentId
@@ -32,8 +31,7 @@
insert into lz_flow_department(
staff_id,
- child_flow_id,
- self_flow_id,
+ flow_ids,
department_level,
parent_id,
is_delete,
@@ -41,8 +39,7 @@
gmt_modified
)values(
#{ staffId},
- #{ childFlowId},
- #{ selfFlowId},
+ #{ flowIds},
#{ departmentLevel},
#{ parentId},
0,
@@ -59,8 +56,7 @@
is_delete = #{isDelete},
gmt_create = #{gmtCreate},
staff_id = #{staffId},
- child_flow_id = #{childFlowId},
- self_flow_id = #{selfFlowId},
+ flow_ids = #{flowIds},
department_level = #{departmentLevel},
parent_id = #{parentId}
@@ -76,8 +72,7 @@
is_delete = #{isDelete},
gmt_create = #{gmtCreate},
staff_id = #{staffId},
- child_flow_id = #{childFlowId},
- self_flow_id = #{selfFlowId},
+ flow_ids = #{flowIds},
department_level = #{departmentLevel},
parent_id = #{parentId}
,gmt_modified = now()
@@ -90,6 +85,8 @@
+
+
diff --git a/src/main/resources/mapper/flow/FlowRecordMapper.xml b/src/main/resources/mapper/flow/FlowRecordMapper.xml
index 0a99e9bb..5d92a089 100644
--- a/src/main/resources/mapper/flow/FlowRecordMapper.xml
+++ b/src/main/resources/mapper/flow/FlowRecordMapper.xml
@@ -124,6 +124,13 @@
select * from lz_flow_record where is_delete = 0 and record_id = #{recordId} and status = 0 and (approval_staff_id is null or approval_staff_id = '') order by id desc limit 1
+
+
+
diff --git a/src/main/resources/mapper/flow/StaffRoleMapper.xml b/src/main/resources/mapper/flow/StaffRoleMapper.xml
index 57908862..7c3ffade 100644
--- a/src/main/resources/mapper/flow/StaffRoleMapper.xml
+++ b/src/main/resources/mapper/flow/StaffRoleMapper.xml
@@ -10,13 +10,13 @@
-
+
- id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, staff_id AS staffId, department_level AS departmentLevel, role_id AS roleId
+ id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, staff_id AS staffId, department_level AS departmentLevel, type_role_ids AS typeRoleIds
@@ -31,14 +31,14 @@
insert into lz_staff_role(
staff_id,
department_level,
- role_id,
+ type_role_ids,
is_delete,
gmt_create,
gmt_modified
)values(
#{ staffId},
#{ departmentLevel},
- #{ roleId},
+ #{ typeRoleIds},
0,
now(),
now()
@@ -54,7 +54,7 @@
gmt_create = #{gmtCreate},
staff_id = #{staffId},
department_level = #{departmentLevel},
- role_id = #{roleId}
+ type_role_ids = #{typeRoleIds}
,gmt_modified = now()
where id = #{id}
@@ -69,7 +69,7 @@
gmt_create = #{gmtCreate},
staff_id = #{staffId},
department_level = #{departmentLevel},
- role_id = #{roleId}
+ type_role_ids = #{typeRoleIds}
,gmt_modified = now()
where id = #{id}
@@ -79,8 +79,6 @@
update lz_staff_role set is_delete = 1 where id=#{id} limit 1
-
-
diff --git a/src/test/java/com/lz/mysql/MysqlMain.java b/src/test/java/com/lz/mysql/MysqlMain.java
index 8e2d97ad..fb0774b6 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.add(new TablesBean("luck"));
+ list.add(new TablesBean("lz_staff_role"));
List list2 = new ArrayList();