Merge branch 'version_performance_2.0' of http://gitlab.ldxinyong.com/enterpriseManagement/lz_management into version_performance_2.0

This commit is contained in:
wulin 2020-10-26 11:56:08 +08:00
commit dd845a1ac7
19 changed files with 840 additions and 557 deletions

File diff suppressed because it is too large Load Diff

View File

@ -642,4 +642,12 @@ public class ResultRecordController extends AbstractController {
}
}

View File

@ -257,4 +257,13 @@ public class TestController {
}
}
// http://localhost:8080/lz_management/test/resultrecord?resultRecordId=157
@RequestMapping("/test/resultrecord")
public void resultRecorcd(Long resultRecordId) throws Exception{
R r = resultRecordService.initFlowRecord(resultRecordId);
}
}

View File

@ -0,0 +1,36 @@
package com.lz.modules.app.enums;
public enum FlowApprovalRoleTypeEnums {
ME(-1,"自己"),
STAFF(0,"指定员工"),
ONE_SUPPER(1,"一级主管"),
TWO_SUPPER(2,"二级主管"),
THREE_SUPPER(3,"三级主管"),
FOUR_SUPPER(4,"四级主管"),
FIVE_SUPPER(5,"五级主管");
private Integer type;
private String desc ;
FlowApprovalRoleTypeEnums(Integer type, String desc) {
this.type = type;
this.desc = desc;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}

View File

@ -0,0 +1,33 @@
package com.lz.modules.app.enums;
public enum FlowRecordStatusEnums {
UN_TO_STATUS(0, "流程未到"),
FINISHED_STATUS(1, "流程已走"),
CURRENT_FLOW_STATUS(2, "当前流程"),
SKIP_STATUS(3, "跳过");
private Integer status;
private String desc ;
FlowRecordStatusEnums(Integer name, String desc) {
this.status = name;
this.desc = desc;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}

View File

@ -34,4 +34,6 @@ public interface FlowApprovalRoleMapper extends BaseMapper<FlowApprovalRole> {
Long insertFlowApprovalRoles(@Param("list") List<FlowApprovalRole> flowApprovalRoles);
List<FlowApprovalRole> selectFlowApprovalRoleList(@Param("flowIds") List<Long> flowIds);
}

View File

@ -58,4 +58,5 @@ public interface FlowRecordMapper extends BaseMapper<FlowRecord> {
List<TaskListDto> selectFinishTasksByApprovalStaffId(@Param("approvalStaffId") Long approvalStaffId, @Param("page") IPage page);
void insertFlowRecords(@Param("flowRecords") List<FlowRecord> flowRecords);
}

View File

@ -28,6 +28,9 @@ public class StaffRoleDto {
return JSON.toJSONString(staffRoleDtoList);
}
public static void main(String[] args) {
List<StaffRoleDto> staffRoleDtoList = new ArrayList<>();
StaffRoleDto staffRoleDto = new StaffRoleDto(314l,6l);

View File

@ -0,0 +1,30 @@
package com.lz.modules.flow.model;
import com.alibaba.fastjson.JSON;
import java.util.*;
public class StaffRoles {
private Long staffId;
private List<Long> roleIds;
public StaffRoles(Long staffId, List<Long> roleIds) {
this.staffId = staffId;
this.roleIds = roleIds;
}
public static String getStaffRole(Long staffId, List<Long> roloIds) {
Set<Long> set = new HashSet<>();
for (Long roleId : roloIds) {
set.add(roleId);
}
List<Long> list = new ArrayList<>();
list.addAll(set);
Map<String, List<Long>> map = new HashMap<>();
map.put(staffId + "", list );
return JSON.toJSONString(map);
}
}

View File

@ -33,4 +33,6 @@ public interface FlowApprovalRoleService extends IService<FlowApprovalRole> {
Long insertFlowApprovalRoles(List<FlowApprovalRole> flowApprovalRoles);
List<FlowApprovalRole> selectFlowApprovalRoleList(List<Long> flowIds);
}

View File

@ -57,4 +57,6 @@ public interface FlowRecordService extends IService<FlowRecord> {
Long copyFlowRecord(FlowRecord flowRecord);
PageUtils selectTaskListByApprovalStaffId(AssessTaskReq req, Long approvalStaffId);
void insertFlowRecords(List<FlowRecord> flowRecords);
}

View File

@ -89,5 +89,12 @@ public class FlowApprovalRoleServiceImpl extends ServiceImpl<FlowApprovalRoleMap
}
@Override
public List<FlowApprovalRole> selectFlowApprovalRoleList(List<Long> flowIds) {
return flowApprovalRoleMapper.selectFlowApprovalRoleList(flowIds);
}
}

View File

@ -158,4 +158,9 @@ public class FlowRecordServiceImpl extends ServiceImpl<FlowRecordMapper, FlowRec
return pageUtils;
}
@Override
public void insertFlowRecords(List<FlowRecord> flowRecords) {
flowRecordMapper.insertFlowRecords(flowRecords);
}
}

View File

@ -265,7 +265,7 @@ public class FlowStartController {
flowApprovalRole.setFlowId(flow.getId());
flowApprovalRole.setApprovalId(Long.parseLong(id));
flowApprovalRole.setStepType(flowChartDetailRecord.getStepType());
flowApprovalRole.setRoleId(Long.parseLong(roleId));
flowApprovalRole.setRoleId(roleId);
flowApprovalRole.setType(flowChartDetailRecord.getOptType());
flowApprovalRoles.add(flowApprovalRole);
flowApprovalRole.setStepIndex(stepIndex);
@ -295,7 +295,7 @@ public class FlowStartController {
FlowApprovalRole flowApprovalRole = new FlowApprovalRole();
flowApprovalRole.setFlowId(flow.getId());
flowApprovalRole.setStepType(flowChartDetailRecord.getStepType());
flowApprovalRole.setRoleId(Long.parseLong(roleId));
flowApprovalRole.setRoleId(roleId);
flowApprovalRole.setType(flowChartDetailRecord.getOptType());
flowApprovalRoles.add(flowApprovalRole);
flowApprovalRole.setStepIndex(stepIndex);

View File

@ -107,4 +107,5 @@ public interface ResultRecordService extends IService<ResultRecord> {
void batchDeleteByStaffIds(List<String> staffIds);
R initFlowRecord(Long resultRecordId);
}

View File

@ -12,6 +12,8 @@ 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.enums.FlowApprovalRoleTypeEnums;
import com.lz.modules.app.enums.FlowRecordStatusEnums;
import com.lz.modules.app.req.ResultRecordReq;
import com.lz.modules.app.resp.OwnResultResp;
import com.lz.modules.app.resp.ResultRecordResp;
@ -21,10 +23,7 @@ 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.enums.FlowRecordEnum;
import com.lz.modules.flow.model.Auth;
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.model.*;
import com.lz.modules.flow.service.*;
import com.lz.modules.job.business.DingtalkBusiness;
import com.lz.modules.performance.req.AssessDetailReq;
@ -118,6 +117,9 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
@Autowired
private DingtalkBusiness dingtalkBusiness;
@Autowired
private FlowApprovalRoleService flowApprovalRoleService;
@Value("${dingtalk.appid}")
private String appid;
@ -684,6 +686,7 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
lastFlowRecordNoStatus.setGmtCreate(new Date()); //更新驳回时间
flowRecordService.updateFlowRecordById(lastFlowRecordNoStatus);
// 可能会被删除
FlowRecord lastUsedFlowRecord = flowRecordService.selectLastFlowRecordByRecordId(resultRecord.getId());
lastUsedFlowRecord.setId(null);
@ -746,4 +749,86 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
public void batchDeleteByStaffIds(List<String> staffIds) {
}
@Override
public R initFlowRecord(Long resultRecordId) {
ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(resultRecordId);
List<Flow> flows = flowService.selectByFlowId(resultRecord.getEvaluationId());
List<Long> flowIds = new ArrayList<>();
for(Flow flow:flows){
flowIds.add(flow.getId());
}
List<FlowApprovalRole> flowApprovalRoles =flowApprovalRoleService.selectFlowApprovalRoleList(flowIds);
List<FlowRecord> flowRecords = new ArrayList<>();
int i = 0 ;
DepartmentsStaffRelateEntity relateEntity = departmentsStaffRelateService.selectLastDepartmentByStaffId(resultRecord.getStaffId());
Map<String, String> map = departmentsService.selectUserAllDepartmentInFo(relateEntity.getDepartmentId());
for(FlowApprovalRole flowApprovalRole:flowApprovalRoles){
FlowRecord flowRecord = new FlowRecord();
flowRecord.setRecordId(resultRecord.getId());
StaffEntity staffEntity = new StaffEntity();
if(FlowApprovalRoleTypeEnums.ME.getType().equals(flowApprovalRole.getType())){
staffEntity = staffService.selectStaffById(resultRecord.getStaffId());
}else if(FlowApprovalRoleTypeEnums.STAFF.getType().equals(flowApprovalRole.getType())){
staffEntity = staffService.selectStaffById(flowApprovalRole.getApprovalId());
}else if(FlowApprovalRoleTypeEnums.ONE_SUPPER.getType().equals(flowApprovalRole.getType())){
staffEntity = getDepartmentStaff(map,1);
}else if(FlowApprovalRoleTypeEnums.TWO_SUPPER.getType().equals(flowApprovalRole.getType())){
staffEntity = getDepartmentStaff(map,2);
}else if(FlowApprovalRoleTypeEnums.THREE_SUPPER.getType().equals(flowApprovalRole.getType())){
staffEntity = getDepartmentStaff(map,3);
}else if(FlowApprovalRoleTypeEnums.FOUR_SUPPER.getType().equals(flowApprovalRole.getType())){
staffEntity = getDepartmentStaff(map,4);
}else if(FlowApprovalRoleTypeEnums.FOUR_SUPPER.getType().equals(flowApprovalRole.getType())){
staffEntity = getDepartmentStaff(map,5);
}
flowRecord.setApprovalStaffName(staffEntity.getName());
flowRecord.setApprovalStaffId(staffEntity.getId());
flowRecord.setFlowName(getFlow(flows,flowApprovalRole.getFlowId()).getOptDesc());
flowRecord.setRecordStaffId(resultRecord.getStaffId());
flowRecord.setFlowId(flowApprovalRole.getFlowId());
String staffRole = StaffRoles.getStaffRole(resultRecord.getStaffId(), StringUtil.strToLongs(flowApprovalRole.getRoleId()));
if(i == 0 ){
flowRecord.setStatus(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus());
resultRecord.setFlowStaffIdRole(staffRole);
}else{
flowRecord.setStatus(FlowRecordStatusEnums.UN_TO_STATUS.getStatus());
}
flowRecord.setFlowStaffIdRole(staffRole);
flowRecord.setFlowIndex(flowApprovalRole.getStepIndex());
flowRecord.setType(flowApprovalRole.getStepType()); //步骤类型0依次1或签同时通知一人通过或拒绝即可2会签同时通知所有人同意才可
i ++;
flowRecords.add(flowRecord);
}
flowRecordService.insertFlowRecords(flowRecords);
resultRecordService.updateResultRecordById(resultRecord);
return R.ok();
}
public StaffEntity getDepartmentStaff(Map<String, String> map, int level) {
for (int i = 1; i < 6; i++) {
String deparment = map.get("dd" + i );
if (StringUtil.isNotBlank(deparment)) {
DepartmentsStaffRelateEntity departmentsStaffRelateEntity = departmentsStaffRelateService.selectDepartmentByDepartmentId(deparment);
if (departmentsStaffRelateEntity != null) {
StaffEntity staffEntity = staffService.selectStaffById(departmentsStaffRelateEntity.getStaffId());
if (level == i) {
return staffEntity;
}
}
}
}
return new StaffEntity();
}
public Flow getFlow(List<Flow> flows,Long flowId){
for(Flow flow : flows){
if(flow.getId().equals(flowId)){
return flow;
}
}
return new Flow();
}
}

View File

@ -118,5 +118,15 @@
;
</insert>
<select id="selectFlowApprovalRoleList" resultType="com.lz.modules.flow.entity.FlowApprovalRole">
select * from lz_flow_approval_role where flow_id in
<foreach collection="flowIds" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
order by step_index asc
</select>
</mapper>

View File

@ -108,6 +108,7 @@
)
</insert>
<update id="updateFlowRecordById" parameterType="FlowRecord" >
update
lz_flow_record
@ -221,5 +222,44 @@
order by r.gmt_modified desc
</select>
<insert id="insertFlowRecords">
insert into lz_flow_record(
department_level,
record_id,
approval_staff_id,
approval_staff_name,
flow_name,
record_staff_id,
flow_id,
flow_index,
status,
flow_staff_id_role,
status_name,
type,
is_delete,
gmt_create,
gmt_modified
)values
<foreach collection="flowRecords" item="item" separator=",">
( #{ item.departmentLevel},
#{ item.recordId},
#{ item.approvalStaffId},
#{ item.approvalStaffName},
#{ item.flowName},
#{ item.recordStaffId},
#{ item.flowId},
#{ item.flowIndex},
#{ item.status},
#{ item.flowStaffIdRole},
#{ item.statusName},
#{ item.type},
0,
now(),
now()
)
</foreach>
</insert>
</mapper>

View File

@ -96,7 +96,7 @@ public class MysqlMain {
//list.add(new TablesBean("lz_flow_chart_detail_record"));
//list.add(new TablesBean("lz_flow_approval_role"));
list.add(new TablesBean("lz_evaluation_group"));
list.add(new TablesBean("lz_flow_record"));
List<TablesBean> list2 = new ArrayList<TablesBean>();
Map<String, String> map = MysqlUtil2ShowCreateTable.getComments();