ruleGroupList;
+}
diff --git a/src/main/java/com/lz/modules/flow/model/RuleGroupModel.java b/src/main/java/com/lz/modules/flow/model/RuleGroupModel.java
new file mode 100644
index 00000000..603bb0ca
--- /dev/null
+++ b/src/main/java/com/lz/modules/flow/model/RuleGroupModel.java
@@ -0,0 +1,10 @@
+package com.lz.modules.flow.model;
+
+import lombok.Data;
+
+@Data
+public class RuleGroupModel {
+ private String name;
+ private String nextStep;
+
+}
diff --git a/src/main/java/com/lz/modules/flow/service/FlowDepartmentService.java b/src/main/java/com/lz/modules/flow/service/FlowDepartmentService.java
index 723d0c73..6b4bad3e 100644
--- a/src/main/java/com/lz/modules/flow/service/FlowDepartmentService.java
+++ b/src/main/java/com/lz/modules/flow/service/FlowDepartmentService.java
@@ -1,7 +1,11 @@
package com.lz.modules.flow.service;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.lz.common.utils.R;
import com.lz.modules.flow.entity.FlowDepartment;
+import com.lz.modules.flow.entity.FlowManager;
+
+import java.util.List;
/**
*
@@ -33,4 +37,6 @@ public interface FlowDepartmentService extends IService {
FlowDepartment selectByStaffId(Long staffId);
FlowDepartment selectByParentId(Long parentId);
+
+ R selectFlowManager(Long staffId);
}
\ No newline at end of file
diff --git a/src/main/java/com/lz/modules/flow/service/FlowManagerService.java b/src/main/java/com/lz/modules/flow/service/FlowManagerService.java
new file mode 100644
index 00000000..56f3cbef
--- /dev/null
+++ b/src/main/java/com/lz/modules/flow/service/FlowManagerService.java
@@ -0,0 +1,43 @@
+package com.lz.modules.flow.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.lz.common.utils.PageUtils;
+import com.lz.modules.flow.entity.FlowManager;
+import com.lz.modules.flow.model.FlowDto;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+*
+* 流程管理表 服务类
+*
+*
+* @author quyixiao
+* @since 2020-09-22
+*/
+public interface FlowManagerService extends IService {
+
+
+
+ FlowManager selectFlowManagerById(Long id);
+
+
+ Long insertFlowManager(FlowManager flowManager);
+
+
+ int updateFlowManagerById(FlowManager flowManager);
+
+
+ int updateCoverFlowManagerById(FlowManager flowManager);
+
+
+ int deleteFlowManagerById(Long id);
+
+
+ PageUtils queryPage(Map params);
+
+ void deleteBatchIds(List asList);
+
+ List getFowList();
+}
\ No newline at end of file
diff --git a/src/main/java/com/lz/modules/flow/service/RecordAuthService.java b/src/main/java/com/lz/modules/flow/service/RecordAuthService.java
index d25b64f4..7898bced 100644
--- a/src/main/java/com/lz/modules/flow/service/RecordAuthService.java
+++ b/src/main/java/com/lz/modules/flow/service/RecordAuthService.java
@@ -43,4 +43,6 @@ public interface RecordAuthService extends IService {
String selectByStaffId(Long staffId);
List selectAll();
+
+ Long getRoleIdByStaffRoleInfo(String flowStaffIdRole,Long approvalStaffId);
}
\ No newline at end of file
diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowDepartmentServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowDepartmentServiceImpl.java
index 21fd4cfb..eb7d5c38 100644
--- a/src/main/java/com/lz/modules/flow/service/impl/FlowDepartmentServiceImpl.java
+++ b/src/main/java/com/lz/modules/flow/service/impl/FlowDepartmentServiceImpl.java
@@ -1,72 +1,123 @@
package com.lz.modules.flow.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.lz.common.utils.Constant;
+import com.lz.common.utils.PageUtils;
+import com.lz.common.utils.R;
+import com.lz.modules.app.entity.DepartmentsStaffRelateEntity;
import com.lz.modules.flow.dao.FlowDepartmentMapper;
+import com.lz.modules.flow.dao.FlowManagerMapper;
import com.lz.modules.flow.entity.FlowDepartment;
+import com.lz.modules.flow.entity.FlowManager;
+import com.lz.modules.flow.model.TypeFlowDto;
import com.lz.modules.flow.service.FlowDepartmentService;
+import com.lz.modules.sys.service.app.ResultRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.List;
+
/**
-*
-* 流转关系表 服务类
-*
-*
-* @author quyixiao
-* @since 2020-08-18
-*/
+ *
+ * 流转关系表 服务类
+ *
+ *
+ * @author quyixiao
+ * @since 2020-08-18
+ */
@Service
public class FlowDepartmentServiceImpl extends ServiceImpl implements FlowDepartmentService {
@Autowired
- private FlowDepartmentMapper flowDepartmentMapper;
+ private FlowDepartmentMapper flowDepartmentMapper;
+
+ @Autowired
+ private FlowDepartmentService flowDepartmentService;
+
+ @Autowired
+ private ResultRecordService resultRecordService;
+
+ @Autowired
+ private FlowManagerMapper flowManagerMapper;
-
- @Override
- public FlowDepartment selectFlowDepartmentById(Long id){
- return flowDepartmentMapper.selectFlowDepartmentById(id);
- }
+ @Override
+ public FlowDepartment selectFlowDepartmentById(Long id) {
+ return flowDepartmentMapper.selectFlowDepartmentById(id);
+ }
-
- @Override
- public Long insertFlowDepartment(FlowDepartment flowDepartment){
- return flowDepartmentMapper.insertFlowDepartment(flowDepartment);
- }
+ @Override
+ public Long insertFlowDepartment(FlowDepartment flowDepartment) {
+ return flowDepartmentMapper.insertFlowDepartment(flowDepartment);
+ }
-
- @Override
- public int updateFlowDepartmentById(FlowDepartment flowDepartment){
- return flowDepartmentMapper.updateFlowDepartmentById(flowDepartment);
- }
+ @Override
+ public int updateFlowDepartmentById(FlowDepartment flowDepartment) {
+ return flowDepartmentMapper.updateFlowDepartmentById(flowDepartment);
+ }
-
- @Override
- public int updateCoverFlowDepartmentById(FlowDepartment flowDepartment){
- return flowDepartmentMapper.updateCoverFlowDepartmentById(flowDepartment);
- }
+ @Override
+ public int updateCoverFlowDepartmentById(FlowDepartment flowDepartment) {
+ return flowDepartmentMapper.updateCoverFlowDepartmentById(flowDepartment);
+ }
-
- @Override
- public int deleteFlowDepartmentById(Long id){
- return flowDepartmentMapper.deleteFlowDepartmentById(id);
- }
+ @Override
+ public int deleteFlowDepartmentById(Long id) {
+ return flowDepartmentMapper.deleteFlowDepartmentById(id);
+ }
@Override
public FlowDepartment selectByStaffId(Long staffId) {
return flowDepartmentMapper.selectByStaffId(staffId);
}
- @Override
- public FlowDepartment selectByParentId(Long parentId) {
- return flowDepartmentMapper.selectByParentId(parentId);
- }
+ @Override
+ public FlowDepartment selectByParentId(Long parentId) {
+ return flowDepartmentMapper.selectByParentId(parentId);
+ }
+
+ @Override
+ public R selectFlowManager(Long staffId) {
+ Long flowId1 = 0l;
+ Long flowId2 = 0l;
+ FlowDepartment flowDepartment = flowDepartmentService.selectByStaffId(staffId);
+ if (flowDepartment == null) {
+ DepartmentsStaffRelateEntity leader = resultRecordService.getLeaderDepartmentsStaffRelateEntity(staffId);
+ if(leader != null){
+ flowDepartment = flowDepartmentService.selectByStaffId(leader.getStaffId());
+ flowId1 = TypeFlowDto.getFlowId(flowDepartment.getFlowIds(), Constant.CHILD, 1); // 表示是子
+ flowId2 = TypeFlowDto.getFlowId(flowDepartment.getFlowIds(), Constant.CHILD, 2); // 表示是子
+ }
+ } else {
+ flowId1 = TypeFlowDto.getFlowId(flowDepartment.getFlowIds(), Constant.SELF, 1); // 表示是部门主管自己
+ flowId2 = TypeFlowDto.getFlowId(flowDepartment.getFlowIds(), Constant.SELF, 2); // 表示是部门主管自己
+ }
+ List flowManagers = new ArrayList<>();
+ flowManagers.add(getFlowMnagers(flowId1,"type1"));
+ flowManagers.add(getFlowMnagers(flowId2,"type2"));
+
+ PageUtils pageUtils = new PageUtils();
+ pageUtils.setList(flowManagers);
+ return R.ok().put("page", pageUtils);
+ }
+
+ public FlowManager getFlowMnagers(Long flowId, String type) {
+ FlowManager flowManager = flowManagerMapper.selectFlowManagerById(flowId);
+ if (flowManager == null) {
+ flowManager = new FlowManager();
+ flowManager.setId(flowId);
+ flowManager.setName(flowId == 0 ? "无" : flowId + "");
+ }
+ flowManager.setType(type);
+ return flowManager;
+ }
}
diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowManagerServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowManagerServiceImpl.java
new file mode 100644
index 00000000..78a1baaa
--- /dev/null
+++ b/src/main/java/com/lz/modules/flow/service/impl/FlowManagerServiceImpl.java
@@ -0,0 +1,217 @@
+package com.lz.modules.flow.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.lz.common.utils.NumberUtil;
+import com.lz.common.utils.PageUtils;
+import com.lz.modules.app.dao.DepartmentsDao;
+import com.lz.modules.app.dao.StaffDao;
+import com.lz.modules.app.entity.DepartmentsEntity;
+import com.lz.modules.app.entity.DepartmentsStaffRelateEntity;
+import com.lz.modules.app.entity.StaffEntity;
+import com.lz.modules.app.service.DepartmentsStaffRelateService;
+import com.lz.modules.flow.dao.FlowManagerMapper;
+import com.lz.modules.flow.entity.FlowManager;
+import com.lz.modules.flow.model.FlowDto;
+import com.lz.modules.flow.model.FlowInfo;
+import com.lz.modules.flow.service.FlowManagerService;
+import com.lz.modules.flow.service.RecordRoleService;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+*
+* 流程管理表 服务类
+*
+*
+* @author quyixiao
+* @since 2020-09-22
+*/
+
+@Service
+public class FlowManagerServiceImpl extends ServiceImpl implements FlowManagerService {
+
+
+ @Autowired
+ private FlowManagerMapper flowManagerMapper;
+
+ @Autowired
+ private DepartmentsDao departmentsDao;
+
+ @Autowired
+ private DepartmentsStaffRelateService departmentsStaffRelateService;
+
+ @Autowired
+ private StaffDao staffDao;
+
+ @Autowired
+ private RecordRoleService recordRoleService;
+
+
+
+ @Override
+ public FlowManager selectFlowManagerById(Long id){
+ return flowManagerMapper.selectFlowManagerById(id);
+ }
+
+
+
+ @Override
+ public Long insertFlowManager(FlowManager flowManager){
+ return flowManagerMapper.insertFlowManager(flowManager);
+ }
+
+
+
+ @Override
+ public int updateFlowManagerById(FlowManager flowManager){
+ return flowManagerMapper.updateFlowManagerById(flowManager);
+ }
+
+
+
+ @Override
+ public int updateCoverFlowManagerById(FlowManager flowManager){
+ return flowManagerMapper.updateCoverFlowManagerById(flowManager);
+ }
+
+
+
+ @Override
+ public int deleteFlowManagerById(Long id){
+ return flowManagerMapper.deleteFlowManagerById(id);
+ }
+
+ @Override
+ public PageUtils queryPage(Map params) {
+
+ PageUtils pageUtils = PageUtils.startPage(
+ NumberUtil.objToIntDefault(params.get("page"), 1),
+ NumberUtil.objToIntDefault(params.get("limit"), 10)).doSelect(
+ page -> flowManagerMapper.selectByCondition(page, params)
+ );
+
+ return pageUtils;
+ }
+
+ @Override
+ public void deleteBatchIds(List asList) {
+
+ }
+
+ @Override
+ public List getFowList() {
+ List tDepartments = departmentsDao.selectAll();
+ List parentDepartments = tDepartments.stream()
+ //根据两个属性进行过滤
+ .filter(s -> s.getDepartmentParentId().equals("1"))
+ .collect(Collectors.toList());
+ List departmentsStaffRelateEntities = departmentsStaffRelateService.selectAll();
+ Map departmentsStaffRelateEntityMap = new HashMap<>();
+ Map singleRelateMap = new HashMap<>();
+
+ for(DepartmentsStaffRelateEntity d : departmentsStaffRelateEntities){
+ singleRelateMap.put(d.getDepartmentId(),d);
+ if(new Integer(1).equals(d.getIsLeader())){
+ FlowInfo flowInfo = new FlowInfo();
+ flowInfo.setParentDepartmentRelate(d);
+ List list = new ArrayList<>();
+ for(DepartmentsStaffRelateEntity d2 : departmentsStaffRelateEntities){
+ if(d2.getDepartmentId().equals(d.getDepartmentId()) && new Integer(0).equals(d2.getIsLeader())){
+ list.add(d2);
+ }
+ }
+ flowInfo.setList(list);
+ departmentsStaffRelateEntityMap.put(d.getDepartmentId(),flowInfo);
+ }
+ }
+
+ List staffEntities = staffDao.selectAll();
+ Map staffMap = new HashMap<>();
+ for(StaffEntity staffEntity : staffEntities){
+ staffMap.put(staffEntity.getId(),staffEntity);
+ }
+
+ List list = new ArrayList<>();
+ for (DepartmentsEntity d : parentDepartments) {
+ StaffEntity staff = getStaff(departmentsStaffRelateEntityMap,staffMap,d.getDepartmentId(),singleRelateMap);
+ FlowDto entity = buildMenuEntity(d.getDepartmentId(),d.getDepartmentName() , "1", staff.getName(),staff.getId());
+ List childList = getMenuList(tDepartments, entity,departmentsStaffRelateEntityMap,staffMap,singleRelateMap);
+ entity.setList(childList);
+ list.add(entity);
+ }
+ return list;
+ }
+
+
+ public FlowDto buildMenuEntity(String departmentId, String departmentName, String parentId, String realName,Long staffId) {
+ FlowDto flowDto = new FlowDto();
+ flowDto.setDepartmentId(departmentId);
+ flowDto.setDepartmentName(departmentName);
+ flowDto.setDepartmentParentId(parentId);
+ flowDto.setRealName(realName);
+ flowDto.setStaffId(staffId);
+ return flowDto;
+ }
+
+
+ public StaffEntity getStaff(Map departmentsStaffRelateEntityMap, Map staffMap, String departmentId
+ , Map singleRelateMap) {
+ FlowInfo flowInfo = departmentsStaffRelateEntityMap.get(departmentId);
+ if (flowInfo != null) {
+ return doGetStaff(flowInfo.getParentDepartmentRelate(), staffMap);
+ } else {
+ return doGetStaff(singleRelateMap.get(departmentId), staffMap);
+ }
+ }
+
+ public StaffEntity doGetStaff(DepartmentsStaffRelateEntity departmentsStaffRelateEntity, Map staffMap) {
+ if (departmentsStaffRelateEntity != null) {
+ StaffEntity staffEntity = staffMap.get(departmentsStaffRelateEntity.getStaffId());
+ if (staffEntity != null) {
+ return staffEntity;
+ }
+ }
+ return new StaffEntity(0l,"");
+ }
+
+ public List getMenuList(List tDepartments,FlowDto flowDto,
+ Map departmentsStaffRelateEntityMap, Map staffMap
+ , Map singleRelateMap) {
+ List flowDtos = new ArrayList<>();
+ for (DepartmentsEntity child : tDepartments) {
+ if (child.getDepartmentParentId().equals(flowDto.getDepartmentId())) {
+ StaffEntity staff = getStaff(departmentsStaffRelateEntityMap, staffMap, child.getDepartmentId(), singleRelateMap);
+ FlowDto entity = buildMenuEntity(child.getDepartmentId(),
+ child.getDepartmentName(), flowDto.getDepartmentId(), staff.getName(),staff.getId());
+
+ List list = getMenuList(tDepartments, entity, departmentsStaffRelateEntityMap, staffMap, singleRelateMap);
+ if (CollectionUtils.isEmpty(list) || list.size() == 0) {
+ FlowInfo flowInfo = departmentsStaffRelateEntityMap.get(child.getDepartmentId());
+ if (flowInfo != null && CollectionUtils.isNotEmpty(flowInfo.getList()) && flowInfo.getList().size() > 0) {
+ list = new ArrayList<>();
+ for (DepartmentsStaffRelateEntity dr : flowInfo.getList()) {
+ StaffEntity staffEntity = staffMap.get(dr.getStaffId());
+ FlowDto childEntiry = buildMenuEntity(dr.getDepartmentId() + "_" + dr.getStaffId(),
+ " ",
+ entity.getDepartmentId(),
+ staffEntity.getName(),staff.getId());
+ list.add(childEntiry);
+ }
+ }
+ }
+ entity.setList(list);
+ flowDtos.add(entity);
+ }
+ }
+ return flowDtos;
+ }
+
+
+}
diff --git a/src/main/java/com/lz/modules/flow/service/impl/RecordAuthServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/RecordAuthServiceImpl.java
index e9c6b390..6e9e7d11 100644
--- a/src/main/java/com/lz/modules/flow/service/impl/RecordAuthServiceImpl.java
+++ b/src/main/java/com/lz/modules/flow/service/impl/RecordAuthServiceImpl.java
@@ -103,6 +103,21 @@ public class RecordAuthServiceImpl extends ServiceImpl list = JSONObject.parseArray(flowStaffIdRole, StaffRoleDto.class);
+ if (CollectionUtils.isNotEmpty(list)) {
+ for(StaffRoleDto staffRoleDto:list){
+ if(staffRoleDto.getStaffId().equals(approvalStaffId)){
+ return staffRoleDto.getRoleId();
+ }
+ }
+ }
+ }
+ return 0l;
+ }
+
public Auth getAuth(List auths) {
Map map = new HashMap<>();
diff --git a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java
index 140e1d6b..609bd8f9 100644
--- a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java
+++ b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java
@@ -5,12 +5,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Maps;
import com.lz.common.utils.NumberUtil;
import com.lz.common.utils.PageUtils;
-import com.lz.common.utils.StringUtil;
import com.lz.modules.app.dao.DepartmentsDao;
import com.lz.modules.app.dao.StaffDao;
import com.lz.modules.app.dto.StaffRoleResp;
import com.lz.modules.app.entity.DepartmentsEntity;
+import com.lz.modules.app.entity.DepartmentsStaffRelateEntity;
import com.lz.modules.app.entity.StaffEntity;
+import com.lz.modules.app.service.DepartmentsStaffRelateService;
import com.lz.modules.flow.dao.RecordRoleMapper;
import com.lz.modules.flow.dao.StaffRoleDepartmentMapper;
import com.lz.modules.flow.dao.StaffRoleMapper;
@@ -18,13 +19,11 @@ import com.lz.modules.flow.entity.RecordRole;
import com.lz.modules.flow.entity.StaffRole;
import com.lz.modules.flow.entity.StaffRoleDepartment;
import com.lz.modules.flow.service.RecordRoleService;
-import com.lz.modules.flow.service.StaffRoleDepartmentService;
import com.lz.modules.flow.service.StaffRoleService;
import com.lz.modules.sys.entity.SysMenuEntity;
import com.lz.modules.sys.entity.SysRoleEntity;
import com.lz.modules.sys.service.app.ResultRecordService;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -70,6 +69,9 @@ public class StaffRoleServiceImpl extends ServiceImpl s.getDepartmentParentId().equals("1"))
.collect(Collectors.toList());
-
+ List departmentsStaffRelateEntities = departmentsStaffRelateService.selectAll();
+ Map departmentsStaffRelateEntityMap = new HashMap<>();
+ for(DepartmentsStaffRelateEntity d : departmentsStaffRelateEntities){
+ if(new Integer(1).equals(d.getIsLeader())){
+ departmentsStaffRelateEntityMap.put(d.getDepartmentId(),d);
+ }
+ }
+ List staffEntities = staffDao.selectAll();
+ Map staffMap = new HashMap<>();
+ for(StaffEntity staffEntity : staffEntities){
+ staffMap.put(staffEntity.getId(),staffEntity);
+ }
List list = new ArrayList<>();
- for(DepartmentsEntity d:parentDepartments){
- SysMenuEntity entity = recordRoleService.buildMenuEntity(NumberUtil.objToLongDefault(d.getDepartmentId(),0l),d.getDepartmentName(),0l,"");
- getMenuList(tDepartments,entity,list);
+ for (DepartmentsEntity d : parentDepartments) {
+ String departmentName = d.getDepartmentName() + getSuffix(departmentsStaffRelateEntityMap,staffMap,d.getDepartmentId());
+ SysMenuEntity entity = recordRoleService.buildMenuEntity(NumberUtil.objToLongDefault(d.getDepartmentId(), 0l),departmentName , 0l, "");
+ getMenuList(tDepartments, entity, list,departmentsStaffRelateEntityMap,staffMap);
list.add(entity);
}
return list;
}
- public void getMenuList(List tDepartments,SysMenuEntity sysMenuEntity,List list) {
+ public String getSuffix(Map departmentsStaffRelateEntityMap, Map staffMap,String departmentId){
+ String suffix = "";
+ DepartmentsStaffRelateEntity departmentsStaffRelateEntity = departmentsStaffRelateEntityMap.get(departmentId);
+ if(departmentsStaffRelateEntity !=null){
+ StaffEntity staffEntity = staffMap.get(departmentsStaffRelateEntity.getStaffId());
+ if(staffEntity !=null ){
+ suffix = " , "+staffEntity.getName();
+ }
+ }
+ return suffix;
+ }
+
+ public void getMenuList(List tDepartments,SysMenuEntity sysMenuEntity,List list,
+ Map departmentsStaffRelateEntityMap, Map staffMap) {
for(DepartmentsEntity child : tDepartments) {
if(NumberUtil.objToLongDefault(child.getDepartmentParentId(),0l).equals(sysMenuEntity.getMenuId())){
+ String departmentName = child.getDepartmentName() + getSuffix(departmentsStaffRelateEntityMap,staffMap,child.getDepartmentId());
SysMenuEntity entity = recordRoleService.buildMenuEntity(NumberUtil.objToLongDefault(child.getDepartmentId(),0l),
- child.getDepartmentName(),sysMenuEntity.getMenuId(),sysMenuEntity.getName());
- getMenuList(tDepartments,entity,list);
+ departmentName,sysMenuEntity.getMenuId(),sysMenuEntity.getName());
+ getMenuList(tDepartments,entity,list,departmentsStaffRelateEntityMap,staffMap);
list.add(entity);
}
}
diff --git a/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java b/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java
index f4912ea3..823ff78b 100644
--- a/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java
+++ b/src/main/java/com/lz/modules/sys/dao/app/ResultRecordMapper.java
@@ -49,7 +49,7 @@ public interface ResultRecordMapper extends BaseMapper {
List selectByConditionByLeader(@Param("page") IPage page, @Param("req") ResultRecordReq params);
- void updateFlowStaffIdRoleToNull(@Param("id") Long id);
+ void updateFlowStaffIdRoleToNull(@Param("id") Long id, @Param("status") Integer status);
List selectResultRecordByIds(@Param("recordIds") List recordIds);
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 acc4c94c..d1e966dd 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
@@ -28,7 +28,7 @@ public class ResultRecord implements java.io.Serializable {
private Date gmtModified;
//月份
private Date monthTime;
- //0.新建,1 提交审批中,2 拒绝, 3 侍提交 ,4 审批通过,5 驳回
+ //0.新建,1 提交审批中,2 拒绝, 3 侍提交 ,4 审批通过,5 驳回,6申述,7 流程终止
private Integer status;
//最后得分
private BigDecimal lastScore;
diff --git a/src/main/java/com/lz/modules/sys/service/app/ResultDetailService.java b/src/main/java/com/lz/modules/sys/service/app/ResultDetailService.java
index 2bc7186a..af396fe7 100644
--- a/src/main/java/com/lz/modules/sys/service/app/ResultDetailService.java
+++ b/src/main/java/com/lz/modules/sys/service/app/ResultDetailService.java
@@ -56,7 +56,7 @@ public interface ResultDetailService extends IService {
ResultDetailResp getLastResult(BigDecimal bigDecimal);
- void insertWenHuaJiaZhiGua(String s, Long id, Long userId);
+ void insertWenHuaJiaZhiGua(String s, Long id, Long userId,BigDecimal checkWeight);
String initRole(Long staffId, Long l);
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 94b26fbf..ef5f1553 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
@@ -7,11 +7,13 @@ import com.lz.common.utils.R;
import com.lz.modules.app.dto.GraphicsStatisticalDto;
import com.lz.modules.app.dto.ReportProgressListDto;
import com.lz.modules.app.entity.DepartmentsEntity;
+import com.lz.modules.app.entity.DepartmentsStaffRelateEntity;
import com.lz.modules.app.entity.StaffEntity;
import com.lz.modules.app.req.ResultRecordReq;
import com.lz.modules.app.resp.OwnResultResp;
import com.lz.modules.app.utils.t.TwoTuple;
import com.lz.modules.flow.entity.Flow;
+import com.lz.modules.flow.model.StaffRoleDto;
import com.lz.modules.sys.entity.SysUserEntity;
import com.lz.modules.sys.entity.app.ResultRecord;
@@ -51,9 +53,9 @@ public interface ResultRecordService extends IService {
ResultRecord selectResultRecordByStaffId(Long userId);
- void updateFlowStaffIdRoleToNull(Long id);
+ void updateFlowStaffIdRoleToNull(Long id,Integer status);
- R approval(Long resultRecordId, Long userId,Integer status);
+ R approval(Long resultRecordId, Long userId,Integer status,boolean flagEnd);
List selectResultRecordByIds(List recordIds);
@@ -86,8 +88,8 @@ public interface ResultRecordService extends IService {
ResultRecord selectResultRecordByStaffIdStatus(Long staffId, int status);
- R reject( ResultRecord resultRecord,ResultRecordReq req, Long userId);
-
- // ReportProgressListDto targetReportList(String monthTime);
+ R reject( ResultRecord resultRecord,Integer status);
+ StaffEntity getApprovalStaff(ResultRecord resultRecord, String departmentLevel, List staffRoleDtos, Long roleId);
+ DepartmentsStaffRelateEntity getLeaderDepartmentsStaffRelateEntity(Long staffId);
}
\ No newline at end of file
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 1ef12c76..d5d8afed 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
@@ -3,6 +3,7 @@ package com.lz.modules.sys.service.app.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lz.common.utils.BigDecimalUtil;
+import com.lz.common.utils.Constant;
import com.lz.common.utils.StringUtil;
import com.lz.modules.app.entity.StaffEntity;
import com.lz.modules.app.resp.ResultDetailResp;
@@ -139,17 +140,17 @@ public class ResultDetailServiceImpl extends ServiceImpl getStepList(ResultRecord resultRecord) {
Long staffId = resultRecord.getStaffId();
int type = resultRecord.getType();
- String departmentId = resultRecord.getDepartmentId();
List stepList = new ArrayList<>();
-
StaffEntity mySelf = staffService.selectStaffById(staffId);
- TwoTuple> flowInfo = resultRecordService.getFlowInfo(staffId, type);
- 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]
- List approvalList = new ArrayList<>();
- Map roleNameMap = new HashMap<>();
- approvalList.add("ME");
- roleNameMap.put("ME",mySelf.getName());
- for (FlowRelation flowRelation : flowRelations) {
- FlowDepartment flowDepartment = staffEntityMap.get(flowRelation.getChild());
- if (flowDepartment != null || flowRelation.getCanReplace() == 0) {
- approvalList.add(flowRelation.getChild());
- String departmentLevel = flowRelation.getChild();
- if(flowDepartment != null ){
- StaffEntity flowStaff = staffService.selectStaffById(flowDepartment.getStaffId());
- roleNameMap.put(departmentLevel,flowStaff.getName());
- }else{
- List staffRoles = staffRoleService.selectByRole(departmentLevel);
- Long approvalStaffId = 0l;
- for (StaffRole staffRole : staffRoles) {
- List staffRoleDepartments = staffRoleDepartmentService.selectStaffRoleDepartmentByStaffRoleId(staffRole.getId());
- Map departmentIdMap = departmentsService.selectUserAllDepartmentIds(departmentId);
- for (StaffRoleDepartment staffRoleDepartment : staffRoleDepartments) {
- String value = departmentIdMap.get(staffRoleDepartment.getDepartmentId());
- if (StringUtil.isNotBlank(value)) {
- approvalStaffId =staffRole.getStaffId();
- break;
- }
- }
- }
- StaffEntity flowStaff = staffService.selectStaffById(approvalStaffId);
- roleNameMap.put(departmentLevel,flowStaff.getName());
- }
- }
- }
- log.info("approvalList approval : " + Arrays.toString(approvalList.toArray()) + " roleNameMap : " + JSON.toJSONString(roleNameMap));
- List flows = flowService.selectByFlowId(flowId);
List flowRecordList = flowRecordService.selectFlowRecordByResultRecordIdFlowId(resultRecord.getId());
SimpleDateFormat myFmt2 = new SimpleDateFormat("MM-dd HH:mm");
FlowRecord lastFlowRecord = null;
@@ -270,8 +231,41 @@ public class ResultDetailServiceImpl extends ServiceImpl approvalList = new ArrayList<>();
+ Map roleNameMap = new HashMap<>();
+ approvalList.add("ME");
+ roleNameMap.put("ME",mySelf.getName());
+
+ TwoTuple> flowInfo = resultRecordService.getFlowInfo(staffId, type);
+ List list = flowInfo.getSecond();
+
+ List flowRelations = flowRelationService.selectFlowRelationAll();
+ Map staffEntityMap = list.stream().collect(Collectors.toMap(FlowDepartment::getDepartmentLevel, p -> p));
+
+ Long flowId = flowInfo.getFirst();
+ List flows = flowService.selectByFlowId(flowId);
+
int flowIndex = lastFlowRecord != null ? lastFlowRecord.getFlowIndex() + 1 : 1;
log.info("flowIndex = " + flowIndex);
+ for (FlowRelation flowRelation : flowRelations) {
+ FlowDepartment flowDepartment = staffEntityMap.get(flowRelation.getChild());
+ if (flowDepartment != null || flowRelation.getCanReplace() == 0) {
+ approvalList.add(flowRelation.getChild());
+ String departmentLevel = flowRelation.getChild();
+ if(flowDepartment != null ){
+ StaffEntity flowStaff = staffService.selectStaffById(flowDepartment.getStaffId());
+ roleNameMap.put(departmentLevel,flowStaff.getName());
+ }else{
+ Long roleId = flows.get(flowIndex - 1).getRoleId();
+ List staffRoleDtos = new ArrayList<>();
+ StaffEntity approvalStaff = resultRecordService.getApprovalStaff(resultRecord, departmentLevel, staffRoleDtos, roleId);
+ roleNameMap.put(departmentLevel,approvalStaff.getName());
+ }
+ }
+ }
+
+ log.info("approvalList approval : " + Arrays.toString(approvalList.toArray()) + " roleNameMap : " + JSON.toJSONString(roleNameMap));
for (int i = flowIndex; i < flowIndex + 10; i++) {
int index = resultRecordService.getDepartmentLevelIndex(flows, i);
if (index < 0 || index >= approvalList.size()) {
@@ -280,6 +274,7 @@ public class ResultDetailServiceImpl extends ServiceImpl resultRecordMapper.selectByConditionByLeader(page, params)
);
@@ -271,8 +275,8 @@ public class ResultRecordServiceImpl extends ServiceImpl list = new ArrayList<>();
Long flowId = flowDepartment != null ? TypeFlowDto.getFlowId(flowDepartment.getFlowIds(), Constant.SELF, type) : 0l; // 表示是部门主管自己
if (flowDepartment == null) {
- DepartmentsStaffRelateEntity departmentsStaffRelateEntity = departmentsStaffRelateService.selectLastDepartmentByStaffId(staffId);
- DepartmentsStaffRelateEntity leader = departmentsStaffRelateService.selectLeaderByDepartmentId(departmentsStaffRelateEntity.getDepartmentId());
- if(leader == null){
- Map map = departmentsService.selectUserAllDepartmentInFo(departmentsStaffRelateEntity.getDepartmentId());
- if (StringUtil.isNotBlank(map.get("dd2"))) {
- leader = departmentsStaffRelateService.selectLeaderByDepartmentId(map.get("dd2"));
- if(leader ==null && StringUtil.isNotBlank(map.get("dd3"))){
- leader = departmentsStaffRelateService.selectLeaderByDepartmentId(map.get("dd3"));
- }
- }
- }
+ DepartmentsStaffRelateEntity leader = getLeaderDepartmentsStaffRelateEntity(staffId);
flowDepartment = flowDepartmentService.selectByStaffId(leader.getStaffId());
flowId = TypeFlowDto.getFlowId(flowDepartment.getFlowIds(), Constant.CHILD, type);//表示是部门下的普通员工
list.add(flowDepartment);
@@ -307,6 +301,24 @@ public class ResultRecordServiceImpl extends ServiceImpl map = departmentsService.selectUserAllDepartmentInFo(departmentsStaffRelateEntity.getDepartmentId());
+ if (StringUtil.isNotBlank(map.get("dd2"))) {
+ leader = departmentsStaffRelateService.selectLeaderByDepartmentId(map.get("dd2"));
+ if(leader ==null && StringUtil.isNotBlank(map.get("dd3"))){
+ leader = departmentsStaffRelateService.selectLeaderByDepartmentId(map.get("dd3"));
+ return leader;
+
+ }
+ }
+ }
+ return leader;
+ }
+
@Override
public ResultRecord createResultRecord(Long staffId, int type, Long roleId) {
@@ -366,8 +378,7 @@ public class ResultRecordServiceImpl extends ServiceImpl staffRoleMap = recordAuthService.selectRoleIdByStaffRoleInfo(resultRecord.getFlowStaffIdRole());
List listAuth = recordAuthService.selectAuthInfo(staffRoleMap.get(userId));
Auth auth = recordAuthService.getAuth(listAuth);
@@ -397,13 +409,12 @@ public class ResultRecordServiceImpl extends ServiceImpl> flowInfo = getFlowInfo(resultRecord.getStaffId(), resultRecord.getType());
Long flowId = flowInfo.getFirst();
@@ -428,17 +439,23 @@ public class ResultRecordServiceImpl extends ServiceImpl= approvalList.size()) { //表示流程己经结束
+ if (index < 0 || index >= approvalList.size() || flagEnd) { //表示流程己经结束
lastFlowRecord.setFlowName(mySelf.getName() + "-审批通过");
lastFlowRecord.setStatusName(FlowRecordEnum.END.getName());
flowRecordService.updateCoverFlowRecordById(lastFlowRecord);
- resultRecordService.updateFlowStaffIdRoleToNull(resultRecord.getId());// 更新用户权限
- return R.ok("流程审批结束")
- .put("from", staff)
- .put("to", staff)
- .put("type", WorkMsgTypeEnum.PASS);
+ resultRecordService.updateFlowStaffIdRoleToNull(resultRecord.getId(), status != null ? status : 4);// 更新状态
+ if (flagEnd) {
+ return R.ok("流程终止")
+ .put("from", staff)
+ .put("to", staff)
+ .put("type", WorkMsgTypeEnum.END);
+ } else {
+ return R.ok("流程审批结束")
+ .put("from", staff)
+ .put("to", staff)
+ .put("type", WorkMsgTypeEnum.PASS);
+ }
}
-
FlowRecord flowRecord = new FlowRecord();
flowRecord.setRecordId(resultRecordId);
flowRecord.setRecordStaffId(resultRecord.getStaffId());
@@ -455,7 +472,7 @@ public class ResultRecordServiceImpl extends ServiceImpl staffRoleDtos, Long roleId) {
+ @Override
+ public StaffEntity getApprovalStaff(ResultRecord resultRecord, String departmentLevel,List staffRoleDtos, Long roleId) {
+ StaffEntity approvalStaff = null;
List staffRoles = staffRoleService.selectByRole(departmentLevel);
for (StaffRole staffRole : staffRoles) {
List staffRoleDepartments = staffRoleDepartmentService.selectStaffRoleDepartmentByStaffRoleId(staffRole.getId());
@@ -568,17 +587,17 @@ public class ResultRecordServiceImpl extends ServiceImpl flowRecords = flowRecordService.selectFlowRecordByResultRecordIdType(req.getRecordResultId(),resultRecord.getType());
- if(flowRecords!=null && flowRecords.size() == 2){ // 表示可以撤回
- r = reject(resultRecord, req, userId);
+ r = reject(resultRecord,status);
+ } else if (req.getStatus() == 7) {
+ List flowRecords = flowRecordService.selectFlowRecordByResultRecordIdType(req.getRecordResultId(), resultRecord.getType());
+ if (flowRecords != null && flowRecords.size() == 2) { // 表示可以撤回
+ r = reject(resultRecord,5);
} else if (flowRecords != null && flowRecords.size() > 2) {
return R.error("你的领导己经审批,不能撤回了");
}
@@ -593,7 +612,7 @@ public class ResultRecordServiceImpl extends ServiceImpl flowRecords = flowRecordService.selectFlowRecordByResultRecordIdFlowId(req.getRecordResultId());
+ public R reject( ResultRecord resultRecord,Integer status){
+ List flowRecords = flowRecordService.selectFlowRecordByResultRecordIdFlowId(resultRecord.getId());
StaffEntity mySelf = staffService.selectStaffById(resultRecord.getStaffId());
StaffEntity approvalStaff = mySelf;
if (flowRecords.size() >= 2) {
FlowRecord secondFlowRecord = flowRecords.get(flowRecords.size() - 2);
resultRecord.setFlowStaffIdRole(secondFlowRecord.getFlowStaffIdRole());
- resultRecord.setStatus(req.getStatus());
+ resultRecord.setStatus(status); //更新驳回状态为5
List list = JSONObject.parseArray(resultRecord.getFlowStaffIdRole(), StaffRoleDto.class);
if (CollectionUtils.isNotEmpty(list)) {
StaffRoleDto staffRoleDto = list.get(0);
@@ -626,17 +645,18 @@ public class ResultRecordServiceImpl extends ServiceImpl
+ and department_level = #{req.departmentLevel}
+
+
AND DATE_FORMAT(rd.month_time, '%Y-%m-%d %H:%i:%S') = ]]> DATE_FORMAT(#{req.monthBeginDate},
'%Y-%m-%d %H:%i:%S')
@@ -199,9 +203,11 @@
AND DATE_FORMAT(rd.month_time, '%Y-%m-%d %H:%i:%S') DATE_FORMAT(#{req.monthEndDate},
'%Y-%m-%d %H:%i:%S')
+
and rd.status = #{req.status}
+
AND rd.remark LIKE CONCAT('%',#{req.remark},'%')
@@ -225,7 +231,7 @@
and rd.staff_id = #{req.staffId}
-
+
and rd.current_approval_staff_id = #{req.approvalStaffId}
order by fr.id desc )
@@ -243,7 +249,7 @@
- update lz_result_record set flow_staff_id_role = '[]',status = 4,current_approval_staff_id = null ,current_approval_staff_name = null where id = #{id}
+ update lz_result_record set flow_staff_id_role = '[]',status = #{status},current_approval_staff_id = null ,current_approval_staff_name = null where id = #{id}
+
+
diff --git a/src/main/resources/mapper/equipment/TCountMapper.xml b/src/main/resources/mapper/equipment/TCountMapper.xml
index de55da27..adcba9e1 100644
--- a/src/main/resources/mapper/equipment/TCountMapper.xml
+++ b/src/main/resources/mapper/equipment/TCountMapper.xml
@@ -66,14 +66,18 @@
- update equipment_t_count set is_delete = 1 where id=#{id} limit 1
+ update equipment_t_count set is_delete = 1 where id=#{id} and is_delete = 0 limit 1
+
+
diff --git a/src/main/resources/mapper/flow/FlowManagerMapper.xml b/src/main/resources/mapper/flow/FlowManagerMapper.xml
new file mode 100644
index 00000000..fc800581
--- /dev/null
+++ b/src/main/resources/mapper/flow/FlowManagerMapper.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, name AS name
+
+
+
+
+
+
+
+
+
+ insert into lz_flow_manager(
+ name,
+ is_delete,
+ gmt_create,
+ gmt_modified
+ )values(
+ #{ name},
+ 0,
+ now(),
+ now()
+ )
+
+
+
+
+ update
+ lz_flow_manager
+
+ is_delete = #{isDelete},
+ gmt_create = #{gmtCreate},
+ name = #{name}
+
+ ,gmt_modified = now()
+ where id = #{id}
+
+
+
+
+ update
+ lz_flow_manager
+ set
+ is_delete = #{isDelete},
+ gmt_create = #{gmtCreate},
+ name = #{name}
+ ,gmt_modified = now()
+ where id = #{id}
+
+
+
+
+ update lz_flow_manager set is_delete = 1 where id=#{id} limit 1
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml
index f52f9b19..74573101 100644
--- a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml
+++ b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml
@@ -58,7 +58,7 @@
group by staff_id