From 735e53effb799db997272b9b08c99f7cdbf23978 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Wed, 23 Sep 2020 15:15:18 +0800 Subject: [PATCH] =?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 --- .../java/com/lz/common/utils/PageUtils.java | 3 + .../app/controller/FlowManagerController.java | 14 ++ .../lz/modules/flow/entity/FlowManager.java | 13 ++ .../flow/service/FlowDepartmentService.java | 6 + .../impl/FlowDepartmentServiceImpl.java | 125 ++++++++++++------ .../sys/service/app/ResultRecordService.java | 4 + .../app/impl/ResultRecordServiceImpl.java | 30 +++-- 7 files changed, 147 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/lz/common/utils/PageUtils.java b/src/main/java/com/lz/common/utils/PageUtils.java index 559de80a..3d286efb 100644 --- a/src/main/java/com/lz/common/utils/PageUtils.java +++ b/src/main/java/com/lz/common/utils/PageUtils.java @@ -57,6 +57,9 @@ public class PageUtils implements Serializable { this.totalPage = (int) Math.ceil((double) totalCount / pageSize); } + public PageUtils() { + + } public PageUtils doSelect(ISelect select) { IPage page = new Page(this.currPage, this.pageSize); diff --git a/src/main/java/com/lz/modules/app/controller/FlowManagerController.java b/src/main/java/com/lz/modules/app/controller/FlowManagerController.java index 24abe7bd..0d398377 100644 --- a/src/main/java/com/lz/modules/app/controller/FlowManagerController.java +++ b/src/main/java/com/lz/modules/app/controller/FlowManagerController.java @@ -6,8 +6,10 @@ import java.util.Map; import com.lz.common.utils.PageUtils; import com.lz.common.utils.R; +import com.lz.modules.flow.entity.Flow; import com.lz.modules.flow.entity.FlowManager; import com.lz.modules.flow.model.FlowDto; +import com.lz.modules.flow.service.FlowDepartmentService; import com.lz.modules.flow.service.FlowManagerService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; @@ -31,6 +33,9 @@ public class FlowManagerController { @Autowired private FlowManagerService flowManagerService; + @Autowired + private FlowDepartmentService flowDepartmentService; + /** * 列表 */ @@ -59,6 +64,15 @@ public class FlowManagerController { return R.ok().put("lzFlowManager", lzFlowManager); } + /** + * 信息 + */ + @RequestMapping("/get/flowInfo/{staffId}") + public R flowInfo(@PathVariable("staffId") Long staffId){ + return flowDepartmentService.selectFlowManager(staffId); + + } + /** * 保存 */ diff --git a/src/main/java/com/lz/modules/flow/entity/FlowManager.java b/src/main/java/com/lz/modules/flow/entity/FlowManager.java index cda573df..71576999 100644 --- a/src/main/java/com/lz/modules/flow/entity/FlowManager.java +++ b/src/main/java/com/lz/modules/flow/entity/FlowManager.java @@ -1,5 +1,6 @@ package com.lz.modules.flow.entity; 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 lombok.Data; @@ -26,6 +27,10 @@ public class FlowManager implements java.io.Serializable { private Date gmtModified; //流程名称 private String name; + + @TableField(exist=false) + private String type; + /** * * @return @@ -101,6 +106,14 @@ public class FlowManager implements java.io.Serializable { this.name = name; } + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + @Override public String toString() { return "FlowManager{" + 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/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/sys/service/app/ResultRecordService.java b/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java index 273fe658..39be3c0f 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 @@ -6,6 +6,7 @@ import com.lz.common.utils.PageUtils; import com.lz.common.utils.R; import com.lz.modules.app.dto.GraphicsStatisticalDto; 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; @@ -88,4 +89,7 @@ public interface ResultRecordService extends IService { 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/ResultRecordServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java index d8599996..ee835ce7 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 @@ -285,17 +285,7 @@ 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); @@ -311,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 null; + } + @Override public ResultRecord createResultRecord(Long staffId, int type, Long roleId) {