From 515b8a61d191a3e6e51ac8c86ce025c60ade65ed Mon Sep 17 00:00:00 2001 From: wulin Date: Wed, 16 Dec 2020 16:39:04 +0800 Subject: [PATCH 01/21] =?UTF-8?q?=E7=BB=A9=E6=95=88=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=A2=9E=E5=8A=A0=E4=B8=80=E9=94=AE=E5=82=AC?= =?UTF-8?q?=E5=8A=9E=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../job/business/DingtalkBusiness.java | 48 ++++++++++++++++--- .../controller/AssessManagerController.java | 19 ++++++++ 2 files changed, 61 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index 93f5950d..8d2bcacc 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -17,12 +17,8 @@ import com.lz.modules.app.service.DepartmentsService; import com.lz.modules.app.service.DepartmentsStaffRelateService; import com.lz.modules.app.service.StaffOccupationService; import com.lz.modules.app.service.StaffService; -import com.lz.modules.flow.entity.FlowChange; -import com.lz.modules.flow.entity.FlowRecord; -import com.lz.modules.flow.entity.FlowStart; -import com.lz.modules.flow.service.FlowChangeService; -import com.lz.modules.flow.service.FlowRecordService; -import com.lz.modules.flow.service.FlowStartService; +import com.lz.modules.flow.entity.*; +import com.lz.modules.flow.service.*; import com.lz.modules.job.model.responseBo.DepartmentInfosBo; import com.lz.modules.job.model.responseBo.DepartmentStaffBo; import com.lz.modules.performance.entity.TaskProcessRecord; @@ -108,6 +104,15 @@ public class DingtalkBusiness { @Autowired private TaskProcessRecordService taskProcessRecordService; + @Autowired + private StaffRoleService staffRoleService; + + @Autowired + private StaffRoleDepartmentService staffRoleDepartmentService; + + @Autowired + private StaffRoleEvaluationGroupService staffRoleEvaluationGroupService; + @Resource StaffDao staffDao; @@ -654,6 +659,37 @@ public class DingtalkBusiness { return "error"; } + //一键催办 + public String urging(Long startId, Long flowProcess, Long userId) { + + StaffRole staffRole = staffRoleService.selectStaffRoleById(userId); + if(staffRole == null){ + //不存在,那么看是否为部门领导 + }else{ + //查询管理的部门信息 + if(staffRole.getDepartmentId().intValue() != 0){ + + } + } + + + /*ResultRecord lzResultRecord = resultRecordService.selectResultRecordById(recordId); + //获取当前节点,谁在处理 + List flowRecords = flowRecordService.selectFlowRecordsByRecordIdAndStatus(recordId, 2); + if(flowRecords.size() > 0){ + List ids = flowRecords.stream().map(new Function() { + @Override + public Long apply(FlowRecord flowRecord) { + return flowRecord.getApprovalStaffId(); + } + }).collect(Collectors.toList()); + List staffs = staffService.selectNamesByIds(ids); + sendNoticeMsg(lzResultRecord, staffs); + return "OK"; + }*/ + return "error"; + } + public String sendTaskInputMsg(List staffs){ int m = 0; String userIds = ""; diff --git a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java index 5f6b4173..9683c6f8 100644 --- a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java +++ b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java @@ -9,6 +9,7 @@ import com.lz.modules.flow.entity.FlowStart; import com.lz.modules.flow.entity.StaffRole; import com.lz.modules.flow.service.EvaluationStartStaffService; import com.lz.modules.flow.service.StaffRoleService; +import com.lz.modules.job.business.DingtalkBusiness; import com.lz.modules.performance.req.AssessChangeReq; import com.lz.modules.performance.req.AssessListReq; import com.lz.modules.performance.req.AssessDetailReq; @@ -51,6 +52,9 @@ public class AssessManagerController extends AbstractController{ @Autowired private StaffRoleService staffRoleService; + @Autowired + private DingtalkBusiness dingtalkBusiness; + @PostMapping("assess/manager/list") @@ -157,4 +161,19 @@ public class AssessManagerController extends AbstractController{ } return R.ok(); } + + @GetMapping("assess/manager/Urging") + @ApiOperation("一键催办") + @ApiResponses({@ApiResponse(code = 200,message = "成功")}) + public R assessToScore(@RequestParam @ApiParam Long startId, @RequestParam @ApiParam Long flowProcess){ + try { + Long userId = getUserId(); + log.info("一键催办" + userId); + dingtalkBusiness.urging(startId, flowProcess, userId); + } catch (Exception e) { + log.error("开始评分异常" ,e); + return R.error(e.getMessage()); + } + return R.ok(); + } } From 245649340f1079111f97fc51ec606c97047c54cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=BB=BA=E8=B6=85?= <3182967682@qq.com> Date: Wed, 16 Dec 2020 16:43:04 +0800 Subject: [PATCH 02/21] fix --- .../controller/ExportController.java | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/src/main/java/com/lz/modules/performance/controller/ExportController.java b/src/main/java/com/lz/modules/performance/controller/ExportController.java index f7b79a8c..0485e5f3 100644 --- a/src/main/java/com/lz/modules/performance/controller/ExportController.java +++ b/src/main/java/com/lz/modules/performance/controller/ExportController.java @@ -2,15 +2,11 @@ package com.lz.modules.performance.controller; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.IoUtil; -import cn.hutool.core.util.XmlUtil; -import cn.hutool.http.HtmlUtil; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; import cn.hutool.poi.excel.StyleSet; -import com.alibaba.druid.sql.visitor.functions.If; import com.alibaba.fastjson.JSON; import com.google.common.collect.Lists; -import com.lz.common.utils.HttpUtil; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.app.service.StaffService; import com.lz.modules.flow.model.ResultDetailDto; @@ -23,21 +19,12 @@ import com.lz.modules.performance.req.ChartResultReq; import com.lz.modules.performance.res.LevelDetailExportRes; import com.lz.modules.performance.service.ChartResultService; import com.lz.modules.sys.service.app.ResultRecordService; -import com.sun.deploy.net.HttpUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; -import org.apache.http.HeaderElement; -import org.apache.http.HttpEntity; -import org.apache.http.client.entity.GzipDecompressingEntity; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.utils.HttpClientUtils; -import org.apache.http.impl.client.DefaultHttpClient; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddressList; -import org.jsoup.Jsoup; import org.seimicrawler.xpath.JXDocument; import org.seimicrawler.xpath.JXNode; import org.slf4j.Logger; @@ -47,10 +34,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.util.HtmlUtils; -import org.w3c.dom.Document; -import sun.net.www.http.HttpClient; -import sun.plugin2.os.windows.Windows; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; @@ -62,7 +45,6 @@ import java.math.BigDecimal; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; -import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; From 6d717e067f63da3e26aafe7bb368e82bbcda8a42 Mon Sep 17 00:00:00 2001 From: wulin Date: Wed, 16 Dec 2020 17:54:38 +0800 Subject: [PATCH 03/21] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=80=E9=94=AE?= =?UTF-8?q?=E5=82=AC=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/dao/DepartmentsStaffRelateDao.java | 2 + .../DepartmentsStaffRelateService.java | 2 + .../DepartmentsStaffRelateServiceImpl.java | 8 ++ .../job/business/DingtalkBusiness.java | 75 ++++++------ .../controller/AssessManagerController.java | 110 +++++++++++++++++- .../sys/dao/app/ResultRecordMapper.java | 1 + .../mapper/app/ResultRecordMapper.xml | 5 + .../generator/DepartmentsStaffRelateDao.xml | 9 ++ 8 files changed, 177 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java b/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java index 858e7c18..518231a1 100644 --- a/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java +++ b/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java @@ -66,4 +66,6 @@ public interface DepartmentsStaffRelateDao extends BaseMapper selectStaffIdsByDepartments(@Param("deparmentIds")List deparmentIds); List selectLeadersByDepartmentId(@Param("depId") String depId); + + List selectLongStaffIdsByDepartments(@Param("departmentIds") List departmentIds); } diff --git a/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java b/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java index 8c8ef60c..caf46981 100644 --- a/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java +++ b/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java @@ -44,5 +44,7 @@ public interface DepartmentsStaffRelateService extends IService selectStaffIdsByDepartments(List deparmentIds); List selectLeadersByDepartmentId(String depId); + + List selectLongStaffIdsByDepartments(List departmentIds); } diff --git a/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java b/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java index fbc8c0c4..5024ae4f 100644 --- a/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java +++ b/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java @@ -106,4 +106,12 @@ public class DepartmentsStaffRelateServiceImpl extends ServiceImpl selectLeadersByDepartmentId(String depId){ return departmentsStaffRelateDao.selectLeadersByDepartmentId(depId); } + + @Override + public List selectLongStaffIdsByDepartments(List departmentIds){ + if(CollectionUtils.isEmpty(departmentIds)){ + return Collections.EMPTY_LIST; + } + return departmentsStaffRelateDao.selectLongStaffIdsByDepartments(departmentIds); + } } diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index 8d2bcacc..0dde6a9d 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -659,36 +659,7 @@ public class DingtalkBusiness { return "error"; } - //一键催办 - public String urging(Long startId, Long flowProcess, Long userId) { - StaffRole staffRole = staffRoleService.selectStaffRoleById(userId); - if(staffRole == null){ - //不存在,那么看是否为部门领导 - }else{ - //查询管理的部门信息 - if(staffRole.getDepartmentId().intValue() != 0){ - - } - } - - - /*ResultRecord lzResultRecord = resultRecordService.selectResultRecordById(recordId); - //获取当前节点,谁在处理 - List flowRecords = flowRecordService.selectFlowRecordsByRecordIdAndStatus(recordId, 2); - if(flowRecords.size() > 0){ - List ids = flowRecords.stream().map(new Function() { - @Override - public Long apply(FlowRecord flowRecord) { - return flowRecord.getApprovalStaffId(); - } - }).collect(Collectors.toList()); - List staffs = staffService.selectNamesByIds(ids); - sendNoticeMsg(lzResultRecord, staffs); - return "OK"; - }*/ - return "error"; - } public String sendTaskInputMsg(List staffs){ int m = 0; @@ -805,11 +776,6 @@ public class DingtalkBusiness { } m++; } - /*for (StaffEntity info:staffEntities - ) { - dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.TASK_REPLY_COMMENT.getTitle(), - content, WorkMsgTypeEnum.TASK_REPLY_COMMENT.getBtnText(), url, token); - }*/ } return "OK"; @@ -1018,6 +984,47 @@ public class DingtalkBusiness { return R.error("未授权登录"); } + public void urging(List staffEntities, Map mapReords) { + logger.info("批量催办"); + ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid); + String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig); + if(token != null && token.length() > 0){ + for (StaffEntity info:staffEntities + ) { + ResultRecord record = mapReords.get(info.getId()); + if(record != null){ + String url = homeUrl; + if(url.contains("?")){ + url += "&halokit=" + System.currentTimeMillis(); + }else{ + url += "?halokit=" + System.currentTimeMillis(); + } + url += ("&detail=1&id=" + record.getId()); + url = URLEncoder.encode(url); + + url = "dingtalk://dingtalkclient/action/openapp?corpid=" + thirdAppConfig.getCorpId() + + "&container_type=work_platform&app_id=0_" + + appid + "&redirect_type=jump&redirect_url=" + url; + + logger.info("发送消息给{},url:{}", info, url); + String content = null; + if(!record.getStaffName().equals(info.getName())){ + content = WorkMsgTypeEnum.URGING.getContent().replace("@", record.getStaffName()); + }else{ + content = WorkMsgTypeEnum.URGING.getContent().replace("@", "您"); + } + + dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.URGING.getTitle(), + content, WorkMsgTypeEnum.URGING.getBtnText(), url, token); + + }else{ + logger.info("无对应的record"); + } + } + }else{ + logger.info("token无效"); ; + } + } public class ThreadSendMessage implements Runnable{ diff --git a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java index 9683c6f8..5ca5bdc2 100644 --- a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java +++ b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java @@ -4,10 +4,18 @@ import com.lz.common.utils.PageUtils; import com.lz.common.utils.R; import com.lz.common.utils.StringUtil; import com.lz.modules.app.dto.StaffSimpleDto; +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.DepartmentsService; +import com.lz.modules.app.service.DepartmentsStaffRelateService; +import com.lz.modules.app.service.StaffService; import com.lz.modules.flow.dao.FlowStartMapper; import com.lz.modules.flow.entity.FlowStart; import com.lz.modules.flow.entity.StaffRole; +import com.lz.modules.flow.entity.StaffRoleDepartment; import com.lz.modules.flow.service.EvaluationStartStaffService; +import com.lz.modules.flow.service.StaffRoleDepartmentService; import com.lz.modules.flow.service.StaffRoleService; import com.lz.modules.job.business.DingtalkBusiness; import com.lz.modules.performance.req.AssessChangeReq; @@ -22,13 +30,18 @@ import com.lz.modules.performance.service.AssessManagerService; import com.lz.modules.performance.service.ChartResultService; import com.lz.modules.sys.controller.AbstractController; import com.lz.modules.sys.dao.app.ResultRecordMapper; +import com.lz.modules.sys.entity.app.ResultRecord; import com.lz.modules.sys.service.app.ResultRecordService; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @Author: djc @@ -55,6 +68,19 @@ public class AssessManagerController extends AbstractController{ @Autowired private DingtalkBusiness dingtalkBusiness; + @Autowired + private DepartmentsStaffRelateService departmentsStaffRelateService; + + @Autowired + private StaffRoleDepartmentService staffRoleDepartmentService; + + @Autowired + private DepartmentsService departmentsService; + + @Autowired + private StaffService staffService; + + @PostMapping("assess/manager/list") @@ -169,11 +195,93 @@ public class AssessManagerController extends AbstractController{ try { Long userId = getUserId(); log.info("一键催办" + userId); - dingtalkBusiness.urging(startId, flowProcess, userId); + StaffRole staffRole = staffRoleService.selectStaffRoleById(userId); + boolean isManagementDepartment = false; + List departmentIds = new ArrayList<>(); + if(staffRole != null){ + //查询管理的部门信息 + if(staffRole.getDepartmentId().intValue() == 2){//管理特定部门 + List staffRoleDepartments = + staffRoleDepartmentService.selectStaffRoleDepartmentByStaffRoleId(staffRole.getId()); + if(staffRoleDepartments.size() > 0){ + departmentIds.addAll(staffRoleDepartments.stream().map(new Function() { + @Override + public String apply(StaffRoleDepartment staffRoleDepartment) { + return staffRoleDepartment.getDepartmentId(); + } + }).collect(Collectors.toList())); + } + }else if(staffRole.getDepartmentId().intValue() == 1){ + //管理所在部门及子部门 + isManagementDepartment = true; + } + + } + //看下是否为部门领导 + DepartmentsStaffRelateEntity departmentsStaffRelateEntity + = departmentsStaffRelateService.selectByStaffId(userId); + if (departmentsStaffRelateEntity != null && (isManagementDepartment || + departmentsStaffRelateEntity.getIsLeader().intValue() == 1)) {//特定部门的 + //获取所在部门下面的所有人员id + departmentIds.add(departmentsStaffRelateEntity.getDepartmentId()); + } + if(departmentIds.size() > 0){ + //去重 + log.info("去重前数据{}", departmentIds.size()); + departmentIds = departmentIds.stream().distinct().collect(Collectors.toList()); + log.info("去重后数据{}", departmentIds.size()); + + List childIds = new ArrayList<>(); + //获取子部门信息 + for (String pareId:departmentIds + ) { + childIds.addAll(getChildsId(pareId)); + } + if(childIds.size() > 0){ + departmentIds.addAll(childIds); + } + } + + //根据部门获取所有员工的id + List staffIds = departmentsStaffRelateService.selectLongStaffIdsByDepartments(departmentIds); + log.info("查询到有权限可以推送的人员数量为{}", staffIds.size()); + //下面查询当前startId,当前flowProcess下面有多少人员id + List resultRecords = resultRecordMapper.selectStaffIdsByStartIdAndFlowProcess(startId, flowProcess); + Map mapReords = + resultRecords.stream().collect(Collectors.toMap(ResultRecord::getStaffId, Function.identity(), (e, r) -> e)); + + List staffIds1 = mapReords.keySet().stream().collect(Collectors.toList()); + log.info("查询到在当前节点下的人数为{}", staffIds1.size()); + if(staffIds1.size() > 0 && staffIds.size() > 0){ + staffIds.retainAll(staffIds1);//求交集 + log.info("最终能推送人员个数{}", staffIds.size()); + if(staffIds.size() > 0){ + List staffEntities = staffService.selectByIds(staffIds); + dingtalkBusiness.urging(staffEntities, mapReords); + } + } } catch (Exception e) { log.error("开始评分异常" ,e); return R.error(e.getMessage()); } return R.ok(); } + + //获取部门下面的所有子部门信息 + private List getChildsId(String pareId){ + log.info("查询{}的子部门", pareId); + List ids = new ArrayList<>(); + List entitys = departmentsService.selectEntityByParentDepartmentId(pareId); + if(entitys.size() > 0){ + for (DepartmentsEntity entity:entitys + ) { + List childsId = getChildsId(entity.getDepartmentId()); + if(childsId.size() > 0){ + ids.addAll(childsId); + } + } + } + log.info("子部门个数{}", ids.size()); + return ids; + } } 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 ea4c2003..7108c81a 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 @@ -114,4 +114,5 @@ public interface ResultRecordMapper extends BaseMapper { List selectStaffIdsByFlowProcess(@Param("flowProcess") List flowProcess); + List selectStaffIdsByStartIdAndFlowProcess(@Param("startId") Long startId, @Param("flowProcess") Long flowProcess); } \ No newline at end of file diff --git a/src/main/resources/mapper/app/ResultRecordMapper.xml b/src/main/resources/mapper/app/ResultRecordMapper.xml index 9b87b1ee..e2fc83c3 100644 --- a/src/main/resources/mapper/app/ResultRecordMapper.xml +++ b/src/main/resources/mapper/app/ResultRecordMapper.xml @@ -653,5 +653,10 @@ ) + + diff --git a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml index f686fa45..78845852 100644 --- a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml +++ b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml @@ -109,4 +109,13 @@ select staff.* from lz_staff as staff join lz_departments_staff_relate as relate on staff.id = relate.staff_id where relate.is_delete=0 and relate.department_id = #{depId} and relate.is_leader = 1 + + From 46e3a991475fcdb59e401e54018804eee323e1ac Mon Sep 17 00:00:00 2001 From: wulin Date: Wed, 16 Dec 2020 18:03:12 +0800 Subject: [PATCH 04/21] =?UTF-8?q?k-value=E5=8F=82=E6=95=B0=E6=8E=A5?= =?UTF-8?q?=E5=8F=97get=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../performance/controller/AssessManagerController.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java index 5ca5bdc2..8927eba3 100644 --- a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java +++ b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java @@ -191,7 +191,9 @@ public class AssessManagerController extends AbstractController{ @GetMapping("assess/manager/Urging") @ApiOperation("一键催办") @ApiResponses({@ApiResponse(code = 200,message = "成功")}) - public R assessToScore(@RequestParam @ApiParam Long startId, @RequestParam @ApiParam Long flowProcess){ + public R assessToScore(@RequestParam Map params){ + Long startId = params.get("startId"); + Long flowProcess = params.get("flowProcess"); try { Long userId = getUserId(); log.info("一键催办" + userId); From bdc3cfce1d2d40b3b3b3970890ae1c222303fee7 Mon Sep 17 00:00:00 2001 From: wulin Date: Wed, 16 Dec 2020 18:10:02 +0800 Subject: [PATCH 05/21] =?UTF-8?q?=E5=AF=B9=E7=A9=BA=E5=80=BC=E7=9A=84?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AssessManagerController.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java index 8927eba3..beaa9560 100644 --- a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java +++ b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java @@ -191,9 +191,14 @@ public class AssessManagerController extends AbstractController{ @GetMapping("assess/manager/Urging") @ApiOperation("一键催办") @ApiResponses({@ApiResponse(code = 200,message = "成功")}) - public R assessToScore(@RequestParam Map params){ - Long startId = params.get("startId"); - Long flowProcess = params.get("flowProcess"); + public R assessToScore(@RequestParam Map params){ + log.info("接受的至{}", params); + Long startId = Long.parseLong(params.get("startId")); + Long flowProcess = null; + if(params.containsKey("flowProcess")){ + flowProcess = Long.parseLong(params.get("flowProcess")); + } + try { Long userId = getUserId(); log.info("一键催办" + userId); From ef28a6dba134cde4745a0b05315258f954013b72 Mon Sep 17 00:00:00 2001 From: wulin Date: Wed, 16 Dec 2020 18:22:16 +0800 Subject: [PATCH 06/21] =?UTF-8?q?=E4=B8=80=E9=94=AE=E5=82=AC=E6=94=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=85=A8=E9=83=A8=E9=83=A8=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/dao/DepartmentsStaffRelateDao.java | 2 + .../DepartmentsStaffRelateService.java | 2 + .../DepartmentsStaffRelateServiceImpl.java | 5 ++ .../controller/AssessManagerController.java | 62 +++++++++++-------- .../generator/DepartmentsStaffRelateDao.xml | 4 ++ 5 files changed, 50 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java b/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java index 518231a1..b56ef436 100644 --- a/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java +++ b/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java @@ -68,4 +68,6 @@ public interface DepartmentsStaffRelateDao extends BaseMapper selectLeadersByDepartmentId(@Param("depId") String depId); List selectLongStaffIdsByDepartments(@Param("departmentIds") List departmentIds); + + List selectAllStaffIds(); } diff --git a/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java b/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java index caf46981..df1e3271 100644 --- a/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java +++ b/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java @@ -46,5 +46,7 @@ public interface DepartmentsStaffRelateService extends IService selectLeadersByDepartmentId(String depId); List selectLongStaffIdsByDepartments(List departmentIds); + + List selectAllStaffIds(); } diff --git a/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java b/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java index 5024ae4f..1791d621 100644 --- a/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java +++ b/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java @@ -114,4 +114,9 @@ public class DepartmentsStaffRelateServiceImpl extends ServiceImpl selectAllStaffIds(){ + return departmentsStaffRelateDao.selectAllStaffIds(); + } } diff --git a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java index beaa9560..57f077c3 100644 --- a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java +++ b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java @@ -203,7 +203,7 @@ public class AssessManagerController extends AbstractController{ Long userId = getUserId(); log.info("一键催办" + userId); StaffRole staffRole = staffRoleService.selectStaffRoleById(userId); - boolean isManagementDepartment = false; + int isManagementDepartment = 0; List departmentIds = new ArrayList<>(); if(staffRole != null){ //查询管理的部门信息 @@ -220,37 +220,49 @@ public class AssessManagerController extends AbstractController{ } }else if(staffRole.getDepartmentId().intValue() == 1){ //管理所在部门及子部门 - isManagementDepartment = true; + isManagementDepartment = 1;//所在部门及子部门 + }else if(staffRole.getDepartmentId().intValue() == 0){ + isManagementDepartment = 2;//所有部门 } } - //看下是否为部门领导 - DepartmentsStaffRelateEntity departmentsStaffRelateEntity - = departmentsStaffRelateService.selectByStaffId(userId); - if (departmentsStaffRelateEntity != null && (isManagementDepartment || - departmentsStaffRelateEntity.getIsLeader().intValue() == 1)) {//特定部门的 - //获取所在部门下面的所有人员id - departmentIds.add(departmentsStaffRelateEntity.getDepartmentId()); - } - if(departmentIds.size() > 0){ - //去重 - log.info("去重前数据{}", departmentIds.size()); - departmentIds = departmentIds.stream().distinct().collect(Collectors.toList()); - log.info("去重后数据{}", departmentIds.size()); + List staffIds = null; + if(isManagementDepartment == 2){ + //管理所有部门 + log.info("管理所有部门"); + staffIds = departmentsStaffRelateService.selectAllStaffIds(); + }else{ + //看下是否为部门领导 + log.info("管理所指定部门"); + DepartmentsStaffRelateEntity departmentsStaffRelateEntity + = departmentsStaffRelateService.selectByStaffId(userId); + if (departmentsStaffRelateEntity != null && (isManagementDepartment == 1 || + departmentsStaffRelateEntity.getIsLeader().intValue() == 1)) {//特定部门的 + //获取所在部门下面的所有人员id + departmentIds.add(departmentsStaffRelateEntity.getDepartmentId()); + } + if(departmentIds.size() > 0){ + //去重 + log.info("去重前数据{}", departmentIds.size()); + departmentIds = departmentIds.stream().distinct().collect(Collectors.toList()); + log.info("去重后数据{}", departmentIds.size()); - List childIds = new ArrayList<>(); - //获取子部门信息 - for (String pareId:departmentIds - ) { - childIds.addAll(getChildsId(pareId)); - } - if(childIds.size() > 0){ - departmentIds.addAll(childIds); + List childIds = new ArrayList<>(); + //获取子部门信息 + for (String pareId:departmentIds + ) { + childIds.addAll(getChildsId(pareId)); + } + if(childIds.size() > 0){ + departmentIds.addAll(childIds); + } } + //根据部门获取所有员工的id + staffIds = departmentsStaffRelateService.selectLongStaffIdsByDepartments(departmentIds); } - //根据部门获取所有员工的id - List staffIds = departmentsStaffRelateService.selectLongStaffIdsByDepartments(departmentIds); + + log.info("查询到有权限可以推送的人员数量为{}", staffIds.size()); //下面查询当前startId,当前flowProcess下面有多少人员id List resultRecords = resultRecordMapper.selectStaffIdsByStartIdAndFlowProcess(startId, flowProcess); diff --git a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml index 78845852..4155d041 100644 --- a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml +++ b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml @@ -118,4 +118,8 @@ #{department_id} + + From cd086b5529d8b17a37c53ca3430a101b0b22c6a7 Mon Sep 17 00:00:00 2001 From: wulin Date: Wed, 16 Dec 2020 18:34:54 +0800 Subject: [PATCH 07/21] =?UTF-8?q?=E4=BF=AE=E4=BF=AE=E5=A4=8D=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E4=B8=80=E9=94=AE=E5=82=AC=E5=8A=9Ebug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/performance/controller/AssessManagerController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java index 57f077c3..d2446cf1 100644 --- a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java +++ b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java @@ -202,7 +202,7 @@ public class AssessManagerController extends AbstractController{ try { Long userId = getUserId(); log.info("一键催办" + userId); - StaffRole staffRole = staffRoleService.selectStaffRoleById(userId); + StaffRole staffRole = staffRoleService.selectByStaffId(userId); int isManagementDepartment = 0; List departmentIds = new ArrayList<>(); if(staffRole != null){ From f19a65ba7423dcfb4f95920cd3bd99c479a5067a Mon Sep 17 00:00:00 2001 From: wulin Date: Wed, 16 Dec 2020 18:46:45 +0800 Subject: [PATCH 08/21] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../performance/controller/AssessManagerController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java index d2446cf1..bc64f5f1 100644 --- a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java +++ b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java @@ -263,14 +263,14 @@ public class AssessManagerController extends AbstractController{ - log.info("查询到有权限可以推送的人员数量为{}", staffIds.size()); + log.info("查询到有权限可以推送的人员数量为{}, 如下{}", staffIds.size(), staffIds); //下面查询当前startId,当前flowProcess下面有多少人员id List resultRecords = resultRecordMapper.selectStaffIdsByStartIdAndFlowProcess(startId, flowProcess); Map mapReords = resultRecords.stream().collect(Collectors.toMap(ResultRecord::getStaffId, Function.identity(), (e, r) -> e)); List staffIds1 = mapReords.keySet().stream().collect(Collectors.toList()); - log.info("查询到在当前节点下的人数为{}", staffIds1.size()); + log.info("查询到在当前节点下的人数为{},如下{}", staffIds1.size(), staffIds1); if(staffIds1.size() > 0 && staffIds.size() > 0){ staffIds.retainAll(staffIds1);//求交集 log.info("最终能推送人员个数{}", staffIds.size()); From a6cd4a34bd15781584a485f843b1772bd03bd016 Mon Sep 17 00:00:00 2001 From: wulin Date: Wed, 16 Dec 2020 18:51:12 +0800 Subject: [PATCH 09/21] =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mapper/generator/DepartmentsStaffRelateDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml index 4155d041..58cbddf5 100644 --- a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml +++ b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml @@ -119,7 +119,7 @@ - select staff_id from lz_departments_staff_relate where is_delete = 0 From dc8a5f406f30dc1030dd69652a8f57d958248186 Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 17 Dec 2020 10:24:32 +0800 Subject: [PATCH 10/21] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E9=94=AE?= =?UTF-8?q?=E5=82=AC=E5=8A=9E=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lz/modules/flow/dao/FlowRecordMapper.java | 4 ++ .../flow/service/FlowRecordService.java | 4 ++ .../service/impl/FlowRecordServiceImpl.java | 10 ++++ .../job/business/DingtalkBusiness.java | 10 ++-- .../controller/AssessManagerController.java | 47 +++++++++++++++++-- .../mapper/app/ResultRecordMapper.xml | 1 + .../mapper/flow/FlowRecordMapper.xml | 20 ++++++++ 7 files changed, 88 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java b/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java index 90994796..01c074e6 100644 --- a/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java @@ -105,4 +105,8 @@ public interface FlowRecordMapper extends BaseMapper { FlowRecord selectPreFlowRecordByRecordIdMinIdStatusList(@Param("recordId") Long recordId, @Param("flowIndex") Integer flowIndex, @Param("statusList") List statusList); List selectFlowRecordByRecordIdFlowIndexStatusList(@Param("recordId") Long recordId, @Param("flowIndex") Integer flowIndex, @Param("statusList") List statusList); + + List selectFlowRecordByRecordIdsFlowProcess(@Param("recordIds") List recordIds, @Param("flowProcess") Long flowProcess); + + List selectFlowRecordByRecordIdsStatus(@Param("recordIds") List recordIds, @Param("status") int status); } \ No newline at end of file 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 a08c24c6..f086d980 100644 --- a/src/main/java/com/lz/modules/flow/service/FlowRecordService.java +++ b/src/main/java/com/lz/modules/flow/service/FlowRecordService.java @@ -101,4 +101,8 @@ public interface FlowRecordService extends IService { List selectFlowRecordByRecordIdFlowIndexStatusList(Long recordId, Integer flowIndex, List statusList); List selectFlowRecordByRecordIdLeFlowIndex(Long resultRecordId, Integer flowIndex); + + List selectFlowRecordByRecordIdsFlowProcess(List recordIds, Long flowProcess); + + List selectFlowRecordByRecordIdsStatus(List recordIds, int status); } \ 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 d5fe6b3b..27b65695 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 @@ -266,4 +266,14 @@ public class FlowRecordServiceImpl extends ServiceImpl selectFlowRecordByRecordIdsFlowProcess(List recordIds, Long flowProcess){ + return flowRecordMapper.selectFlowRecordByRecordIdsFlowProcess(recordIds,flowProcess); + } + + @Override + public List selectFlowRecordByRecordIdsStatus(List recordIds, int status){ + return flowRecordMapper.selectFlowRecordByRecordIdsStatus(recordIds,status); + } + } diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index 0dde6a9d..54406390 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -984,15 +984,17 @@ public class DingtalkBusiness { return R.error("未授权登录"); } - public void urging(List staffEntities, Map mapReords) { + public void urging(List flowRecords, Map mapStaffs, Map mapReords) { logger.info("批量催办"); ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid); String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig); if(token != null && token.length() > 0){ - for (StaffEntity info:staffEntities + + for (FlowRecord flowRecord:flowRecords ) { - ResultRecord record = mapReords.get(info.getId()); - if(record != null){ + ResultRecord record = mapReords.get(flowRecord.getId()); + StaffEntity info = mapStaffs.get(flowRecord.getApprovalStaffId()); + if(record != null && info != null){ String url = homeUrl; if(url.contains("?")){ url += "&halokit=" + System.currentTimeMillis(); diff --git a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java index bc64f5f1..c4a1f024 100644 --- a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java +++ b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java @@ -11,10 +11,12 @@ 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.flow.dao.FlowStartMapper; +import com.lz.modules.flow.entity.FlowRecord; import com.lz.modules.flow.entity.FlowStart; import com.lz.modules.flow.entity.StaffRole; import com.lz.modules.flow.entity.StaffRoleDepartment; import com.lz.modules.flow.service.EvaluationStartStaffService; +import com.lz.modules.flow.service.FlowRecordService; import com.lz.modules.flow.service.StaffRoleDepartmentService; import com.lz.modules.flow.service.StaffRoleService; import com.lz.modules.job.business.DingtalkBusiness; @@ -80,6 +82,8 @@ public class AssessManagerController extends AbstractController{ @Autowired private StaffService staffService; + @Autowired + private FlowRecordService flowRecordService; @@ -261,8 +265,6 @@ public class AssessManagerController extends AbstractController{ staffIds = departmentsStaffRelateService.selectLongStaffIdsByDepartments(departmentIds); } - - log.info("查询到有权限可以推送的人员数量为{}, 如下{}", staffIds.size(), staffIds); //下面查询当前startId,当前flowProcess下面有多少人员id List resultRecords = resultRecordMapper.selectStaffIdsByStartIdAndFlowProcess(startId, flowProcess); @@ -273,10 +275,47 @@ public class AssessManagerController extends AbstractController{ log.info("查询到在当前节点下的人数为{},如下{}", staffIds1.size(), staffIds1); if(staffIds1.size() > 0 && staffIds.size() > 0){ staffIds.retainAll(staffIds1);//求交集 - log.info("最终能推送人员个数{}", staffIds.size()); + log.info("需要推送绩效个数{}", staffIds.size()); if(staffIds.size() > 0){ + + staffIds1 = mapReords.keySet().stream().collect(Collectors.toList()); + staffIds1.retainAll(staffIds); + log.info("去掉排除的数据后数量{}", staffIds1.size()); + for (Long id:staffIds1 + ) { + mapReords.remove(id); + } + //获取催办的节点的人员信息 + List recordIds = resultRecords.stream().map(new Function() { + @Override + public Long apply(ResultRecord resultRecord) { + return resultRecord.getId(); + } + }).collect(Collectors.toList()); + log.info("剩余需要处理record的数量{}", recordIds.size()); + List flowRecords; + if(flowProcess == null){//催全部,获取当前节点的人员信息 + + flowRecords = + flowRecordService.selectFlowRecordByRecordIdsStatus(recordIds, 2); + log.info("催当前节点的人员,数量{}", flowRecords.size()); + }else{ + flowRecords = + flowRecordService.selectFlowRecordByRecordIdsFlowProcess(recordIds, flowProcess); + log.info("催指定节点的人员,数量{}", flowRecords.size()); + } + + staffIds = flowRecords.stream().map(new Function() { + @Override + public Long apply(FlowRecord flowRecord) { + return flowRecord.getApprovalStaffId(); + } + }).collect(Collectors.toList()); + log.info("最终能推送人员个数{}", staffIds.size()); + mapReords = resultRecords.stream().collect(Collectors.toMap(ResultRecord::getId, Function.identity(), (e, r) -> e)); List staffEntities = staffService.selectByIds(staffIds); - dingtalkBusiness.urging(staffEntities, mapReords); + Map mapStaffs = staffEntities.stream().collect(Collectors.toMap(StaffEntity::getId, Function.identity(), (e, r) -> e)); + dingtalkBusiness.urging(flowRecords, mapStaffs, mapReords); } } } catch (Exception e) { diff --git a/src/main/resources/mapper/app/ResultRecordMapper.xml b/src/main/resources/mapper/app/ResultRecordMapper.xml index e2fc83c3..6fa99f89 100644 --- a/src/main/resources/mapper/app/ResultRecordMapper.xml +++ b/src/main/resources/mapper/app/ResultRecordMapper.xml @@ -656,6 +656,7 @@ diff --git a/src/main/resources/mapper/flow/FlowRecordMapper.xml b/src/main/resources/mapper/flow/FlowRecordMapper.xml index f3abe557..70244015 100644 --- a/src/main/resources/mapper/flow/FlowRecordMapper.xml +++ b/src/main/resources/mapper/flow/FlowRecordMapper.xml @@ -364,5 +364,25 @@ update lz_flow_record set id = #{newId} where id = #{id} + + + + From cc37255a5b89502afeb359f9f8fe673196551379 Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 17 Dec 2020 10:31:59 +0800 Subject: [PATCH 11/21] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/mapper/flow/FlowRecordMapper.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/mapper/flow/FlowRecordMapper.xml b/src/main/resources/mapper/flow/FlowRecordMapper.xml index 70244015..9e494f8a 100644 --- a/src/main/resources/mapper/flow/FlowRecordMapper.xml +++ b/src/main/resources/mapper/flow/FlowRecordMapper.xml @@ -367,7 +367,7 @@ select * from lz_flow_record where is_delete = 0 and record_id in - + #{recordId} and status = #{status} From 003642096d8c75d42847bd9eb9f04cff6f86f0f4 Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 17 Dec 2020 10:34:59 +0800 Subject: [PATCH 12/21] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=8E=B7=E5=8F=96recor?= =?UTF-8?q?d=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/lz/modules/job/business/DingtalkBusiness.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index 54406390..645de8d2 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -992,7 +992,7 @@ public class DingtalkBusiness { for (FlowRecord flowRecord:flowRecords ) { - ResultRecord record = mapReords.get(flowRecord.getId()); + ResultRecord record = mapReords.get(flowRecord.getRecordId()); StaffEntity info = mapStaffs.get(flowRecord.getApprovalStaffId()); if(record != null && info != null){ String url = homeUrl; From caa3c109d8fb0d49fede4c04d3f0ac27d7496f32 Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 17 Dec 2020 11:22:27 +0800 Subject: [PATCH 13/21] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E6=80=BB=E5=88=86=E7=9A=84=E5=85=AC=E5=8F=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/app/controller/ResultRecordController.java | 9 ++++++--- .../java/com/lz/modules/flow/model/ResultDetailDto.java | 4 +--- .../java/com/lz/modules/flow/model/ResultScoreDto.java | 5 ++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java index 0a57c291..11e98203 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -456,9 +456,9 @@ public class ResultRecordController extends AbstractController { ResultRecordDetailDto resultRecordDetailDto = new ResultRecordDetailDto(); BeanUtils.copyProperties(resultRecord, resultRecordDetailDto); List resultModels = resultModelService.selectResultModelByGroupId(resultRecord.getEvaluationId()); - //获取计算公式 + //获取单个人评分总分计算公式 List calculateModels1 = getCalculate(3l); - //获取计算公式 + //获取每行的计算公式 List calculateModels = getCalculate(resultModels.get(0).getCalculateId()); @@ -568,7 +568,7 @@ public class ResultRecordController extends AbstractController { for (ResultDetailDto dto:detailDtos ) { //下面设置计算公式 - dto.setCalculate(setCalculateValue(calculateModels1, dto)) ; + //dto.setCalculate(setCalculateValue(calculateModels1, dto)) ; List resultTaskDtos = resultTaskService.selectResultTaskDtosByDetailId(dto.getId()); dto.setTaskDtos(resultTaskDtos); weight = weight.add(dto.getCheckWeight()); @@ -598,6 +598,9 @@ public class ResultRecordController extends AbstractController { scoreDto1.setCalculate(scoreDto1.getCalculate() + setCalculateValue(calculateModels, dto)) ; scoreDto1.setCalculate(scoreDto1.getCalculate() + setCalculateValue(calculateModels, scoreDto1)) ; scoreDtos1.add(scoreDto1); + + //设置个人评分总分的计算方式, add + scoreDto1.setAllCalculate(setCalculateValue(calculateModels1, dto)) ; scores.remove(score); isAdd = true; break; diff --git a/src/main/java/com/lz/modules/flow/model/ResultDetailDto.java b/src/main/java/com/lz/modules/flow/model/ResultDetailDto.java index 0e71f3ed..be8b305d 100644 --- a/src/main/java/com/lz/modules/flow/model/ResultDetailDto.java +++ b/src/main/java/com/lz/modules/flow/model/ResultDetailDto.java @@ -32,9 +32,7 @@ public class ResultDetailDto { @ApiModelProperty(value = "关键结果", name = "keyResult") private String keyResult; - //评分说明 - @ApiModelProperty(value = "计算公式", name = "calculate") - private String calculate; + //考核权重 @ApiModelProperty(value = "考核权重", name = "checkWeight") diff --git a/src/main/java/com/lz/modules/flow/model/ResultScoreDto.java b/src/main/java/com/lz/modules/flow/model/ResultScoreDto.java index 157816c3..83e075b1 100644 --- a/src/main/java/com/lz/modules/flow/model/ResultScoreDto.java +++ b/src/main/java/com/lz/modules/flow/model/ResultScoreDto.java @@ -37,9 +37,12 @@ public class ResultScoreDto { private BigDecimal weight; //评分说明 - @ApiModelProperty(value = "计算公式", name = "calculate") + @ApiModelProperty(value = "单个计算公式", name = "calculate") private String calculate; + @ApiModelProperty(value = "个人总分计算公式,不剩于多人评分中个人所占的比重", name = "allCalculate") + private String allCalculate; + //评分说明 @ApiModelProperty(value = "评分说明", name = "scoreComment") private String scoreComment; From f8ff21cf140f60d1e1bd1c3be38efbdeba7a3553 Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 17 Dec 2020 14:42:57 +0800 Subject: [PATCH 14/21] =?UTF-8?q?=E4=B8=80=E9=94=AE=E5=82=AC=E5=8A=9E?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=BA=BF=E7=A8=8B=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../job/business/DingtalkBusiness.java | 98 +++++++++++-------- 1 file changed, 58 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index 645de8d2..9ab59e3e 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -985,49 +985,67 @@ public class DingtalkBusiness { } public void urging(List flowRecords, Map mapStaffs, Map mapReords) { - logger.info("批量催办"); - ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid); - String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig); - if(token != null && token.length() > 0){ + ThreadSendUrgingMessage threadSendUrgingMessage = new ThreadSendUrgingMessage(flowRecords, mapReords, mapStaffs); + Thread thread = new Thread(threadSendUrgingMessage); + thread.start(); - for (FlowRecord flowRecord:flowRecords - ) { - ResultRecord record = mapReords.get(flowRecord.getRecordId()); - StaffEntity info = mapStaffs.get(flowRecord.getApprovalStaffId()); - if(record != null && info != null){ - String url = homeUrl; - if(url.contains("?")){ - url += "&halokit=" + System.currentTimeMillis(); - }else{ - url += "?halokit=" + System.currentTimeMillis(); - } - url += ("&detail=1&id=" + record.getId()); - url = URLEncoder.encode(url); - - url = "dingtalk://dingtalkclient/action/openapp?corpid=" + thirdAppConfig.getCorpId() + - "&container_type=work_platform&app_id=0_" + - appid + "&redirect_type=jump&redirect_url=" + url; - - logger.info("发送消息给{},url:{}", info, url); - String content = null; - if(!record.getStaffName().equals(info.getName())){ - content = WorkMsgTypeEnum.URGING.getContent().replace("@", record.getStaffName()); - }else{ - content = WorkMsgTypeEnum.URGING.getContent().replace("@", "您"); - } - - dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.URGING.getTitle(), - content, WorkMsgTypeEnum.URGING.getBtnText(), url, token); - - }else{ - logger.info("无对应的record"); - } - } - }else{ - logger.info("token无效"); ; - } } + public class ThreadSendUrgingMessage implements Runnable{ + List flowRecords; + Map mapReords; + Map mapStaffs; + public ThreadSendUrgingMessage(List flowRecords, Map mapReords, Map mapStaffs){ + this.flowRecords = flowRecords; + this.mapReords = mapReords; + this.mapStaffs = mapStaffs; + } + + @Override + public void run() { + logger.info("批量催办"); + ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid); + String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig); + if(token != null && token.length() > 0){ + + for (FlowRecord flowRecord:flowRecords + ) { + ResultRecord record = mapReords.get(flowRecord.getRecordId()); + StaffEntity info = mapStaffs.get(flowRecord.getApprovalStaffId()); + if(record != null && info != null){ + String url = homeUrl; + if(url.contains("?")){ + url += "&halokit=" + System.currentTimeMillis(); + }else{ + url += "?halokit=" + System.currentTimeMillis(); + } + url += ("&detail=1&id=" + record.getId()); + url = URLEncoder.encode(url); + + url = "dingtalk://dingtalkclient/action/openapp?corpid=" + thirdAppConfig.getCorpId() + + "&container_type=work_platform&app_id=0_" + + appid + "&redirect_type=jump&redirect_url=" + url; + + logger.info("发送消息给{},url:{}", info, url); + String content = null; + if(!record.getStaffName().equals(info.getName())){ + content = WorkMsgTypeEnum.URGING.getContent().replace("@", record.getStaffName()); + }else{ + content = WorkMsgTypeEnum.URGING.getContent().replace("@", "您"); + } + + dingTalkUtil.sendSingleActionCardMSG(appid, info, WorkMsgTypeEnum.URGING.getTitle(), + content, WorkMsgTypeEnum.URGING.getBtnText(), url, token); + + }else{ + logger.info("无对应的record"); + } + } + }else{ + logger.info("token无效"); ; + } + } + } public class ThreadSendMessage implements Runnable{ List toStaffids; From 6af906a27907ca89918e5915a73e5192baa46446 Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 17 Dec 2020 15:36:18 +0800 Subject: [PATCH 15/21] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E7=BB=A9=E6=95=88?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lz/modules/app/controller/ResultRecordController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java index 11e98203..80861569 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -987,8 +987,9 @@ public class ResultRecordController extends AbstractController { if(dto.getCommentId() != null && dto.getCommentId().intValue() > 0){ //修改评论信息 + log.info("修改了多少个指标{}", editResultDetails.size()); editResultDetails.addAll(resultDetailService.selectNotNoticeResultDetailByRecordId(dto.getId())) ; - log.info("可能需要写入评论的内容条数{}", updateResultDetails.size()); + log.info("可能需要写入评论的内容条数{}", editResultDetails.size()); //去重 mapDetails = editResultDetails.stream().collect(Collectors.toMap(ResultDetail::getId, Function.identity(), (e, r) -> e)); editResultDetails = mapDetails.values().stream().collect(Collectors.toList()); From 941759ac35680332ef4f1522becdecc412efb1be Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 17 Dec 2020 15:41:47 +0800 Subject: [PATCH 16/21] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lz/modules/app/controller/ResultRecordController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java index 80861569..4caf68f2 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -994,7 +994,7 @@ public class ResultRecordController extends AbstractController { mapDetails = editResultDetails.stream().collect(Collectors.toMap(ResultDetail::getId, Function.identity(), (e, r) -> e)); editResultDetails = mapDetails.values().stream().collect(Collectors.toList()); if(!isSetKeyResult){ - log.info("实际需要写入评论的内容条数{}", updateResultDetails.size()); + log.info("实际需要写入评论的内容条数{}", editResultDetails.size()); if(editResultDetails.size() > 0){ updates.addAll(inserts); From a91eee765a3d109c728bf881c90a93fca9b5dcfb Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 17 Dec 2020 15:46:47 +0800 Subject: [PATCH 17/21] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E7=BB=A9=E6=95=88=E6=97=B6=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lz/modules/app/controller/ResultRecordController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java index 4caf68f2..f585291c 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -1005,7 +1005,7 @@ public class ResultRecordController extends AbstractController { for (ResultDetail resultDetail1:editResultDetails ) { log.info("修改的对象为{}", resultDetail1); - if(resultDetail1.getIsDelete().intValue() == 1){ + if(resultDetail1.getIsDelete() != null && resultDetail1.getIsDelete().intValue() == 1){ commandValue += (commandIndex + ":(删除) 指标" + resultDetail1.getTarget() + "\n"); commandIndex++; resultDetail1.setIsBack(1); From 3f11ba6c20c7ccc782b6cc35b8ded3dafa45922b Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 17 Dec 2020 17:42:03 +0800 Subject: [PATCH 18/21] =?UTF-8?q?=E8=AF=84=E5=88=86=E8=A1=A8=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0isEdit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ResultRecordController.java | 4 +++- .../modules/flow/dao/ResultScoreMapper.java | 2 ++ .../lz/modules/flow/entity/ResultScore.java | 21 ++++++++++++++++++- .../lz/modules/flow/model/ResultScoreDto.java | 3 +++ .../flow/service/ResultScoreService.java | 2 ++ .../service/impl/ResultScoreServiceImpl.java | 5 +++++ .../sys/service/app/ResultRecordService.java | 5 ++++- .../app/impl/ResultRecordServiceImpl.java | 20 ++++++++++++++---- .../mapper/flow/FlowRecordMapper.xml | 2 +- .../mapper/flow/ResultScoreMapper.xml | 15 ++++++++++--- src/test/java/com/lz/mysql/MysqlMain.java | 2 +- 11 files changed, 69 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java index f585291c..ae71c6b8 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -467,6 +467,8 @@ public class ResultRecordController extends AbstractController { //查询所有参与评分人以及所占比重 List flowChartDetailRecords = flowChartDetailRecordService.selectFlowChartDetailRecordsByFlowProcess(resultRecord.getEvaluationId(), ChartFlowType.SCORE.getCode());//获取参与评分的人 + + //List flowRecords = flowRecordService.selectFlowRecordByRecordIdFlowProcess(resultRecord.getId(), ChartFlowType.SCORE.getCode()); List staffs = new ArrayList<>(); Boolean isAllScore = true;//false表示返回所有的评分,true表示值返回评分了的人 Boolean isOrScore = false;//是否为或签 @@ -476,7 +478,7 @@ public class ResultRecordController extends AbstractController { if(record.getOptType().intValue() == -1){ //自己 StaffEntity staffEntity = new StaffEntity(); - staffEntity.setId(resultRecord.getId()); + staffEntity.setId(resultRecord.getStaffId()); staffEntity.setName(resultRecord.getStaffName()); staffs1.add(staffEntity); }else if(record.getOptType().intValue() == 0){ diff --git a/src/main/java/com/lz/modules/flow/dao/ResultScoreMapper.java b/src/main/java/com/lz/modules/flow/dao/ResultScoreMapper.java index bcd3f384..728d618c 100644 --- a/src/main/java/com/lz/modules/flow/dao/ResultScoreMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/ResultScoreMapper.java @@ -39,4 +39,6 @@ public interface ResultScoreMapper extends BaseMapper { List selectResultScoresByDetailIdAndOrderByStaffIds(@Param("id") Long id, @Param("list") List scoreDtos); int deleteResultScoreByDetailId(Long id); + + int setNoEditScoreByDetailId(Long detailId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/entity/ResultScore.java b/src/main/java/com/lz/modules/flow/entity/ResultScore.java index c948f40a..2bb7e75f 100644 --- a/src/main/java/com/lz/modules/flow/entity/ResultScore.java +++ b/src/main/java/com/lz/modules/flow/entity/ResultScore.java @@ -12,7 +12,7 @@ import java.util.Date; *

*

*业绩详情评分表 * @author quyixiao -* @since 2020-12-03 +* @since 2020-12-17 */ @Data @@ -49,6 +49,9 @@ public class ResultScore implements java.io.Serializable { //根据权重计算除的实际得分 @ApiModelProperty(value = "根据权重计算除的实际得分", name = "score") private BigDecimal score; + //0未评分,1已评分 + @ApiModelProperty(value = "0未评分,1已评分", name = "isEdit") + private Integer isEdit; /** * * @return @@ -199,6 +202,21 @@ public class ResultScore implements java.io.Serializable { this.score = score; } + /** + * 0未评分,1已评分 + * @return + */ + public Integer getIsEdit() { + return isEdit; + } + /** + * 0未评分,1已评分 + * @param isEdit + */ + public void setIsEdit(Integer isEdit) { + this.isEdit = isEdit; + } + @Override public String toString() { return "ResultScore{" + @@ -212,6 +230,7 @@ public class ResultScore implements java.io.Serializable { ",scoreComment=" + scoreComment + ",weight=" + weight + ",score=" + score + + ",isEdit=" + isEdit + "}"; } } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/model/ResultScoreDto.java b/src/main/java/com/lz/modules/flow/model/ResultScoreDto.java index 83e075b1..6e6966ea 100644 --- a/src/main/java/com/lz/modules/flow/model/ResultScoreDto.java +++ b/src/main/java/com/lz/modules/flow/model/ResultScoreDto.java @@ -50,6 +50,9 @@ public class ResultScoreDto { //根据权重计算除的实际得分 @ApiModelProperty(value = "根据权重计算除的实际得分", name = "score") private BigDecimal score; + + @ApiModelProperty(value = "0未评分,1已评分", name = "isEdit") + private Integer isEdit; /** * * @return diff --git a/src/main/java/com/lz/modules/flow/service/ResultScoreService.java b/src/main/java/com/lz/modules/flow/service/ResultScoreService.java index f7dd4358..36bd39bd 100644 --- a/src/main/java/com/lz/modules/flow/service/ResultScoreService.java +++ b/src/main/java/com/lz/modules/flow/service/ResultScoreService.java @@ -38,4 +38,6 @@ public interface ResultScoreService extends IService { List selectResultScoresByDetailIdAndOrderByStaffIds(Long id, List scoreDtos); int deleteResultScoreByDetailId(Long id); + + int setNoEditScoreByDetailId(Long detailId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/impl/ResultScoreServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/ResultScoreServiceImpl.java index 45818187..7b7d9938 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/ResultScoreServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/ResultScoreServiceImpl.java @@ -76,6 +76,11 @@ public class ResultScoreServiceImpl extends ServiceImpl { R getResetData(RecordDetailDto recordDetailDto); - + /** + * clearFlag == 0 全清 1 部分清 2只清楚评分标志 + * + * */ R resetData(Long recordId, int clearFlag); List selectStaffIdsByFlowProcess(List flowProcess); 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 ede99e92..207fb231 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 @@ -978,6 +978,7 @@ public class ResultRecordServiceImpl extends ServiceImpl resultDetails = resultDetailService.selectByRecordId(recordId); @@ -1505,12 +1511,18 @@ public class ResultRecordServiceImpl extends ServiceImpl diff --git a/src/main/resources/mapper/flow/ResultScoreMapper.xml b/src/main/resources/mapper/flow/ResultScoreMapper.xml index 6689788a..6824e3f9 100644 --- a/src/main/resources/mapper/flow/ResultScoreMapper.xml +++ b/src/main/resources/mapper/flow/ResultScoreMapper.xml @@ -14,12 +14,13 @@ + - id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, acquire_score AS acquireScore, detail_id AS detailId, approval_id AS approvalId, score_comment AS scoreComment, weight AS weight, score AS score + id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, acquire_score AS acquireScore, detail_id AS detailId, approval_id AS approvalId, score_comment AS scoreComment, weight AS weight, score AS score, is_edit AS isEdit @@ -38,6 +39,7 @@ score_comment, weight, score, + is_edit, is_delete, gmt_create, gmt_modified @@ -48,6 +50,7 @@ #{ scoreComment}, #{ weight}, #{ score}, + #{ isEdit}, 0, now(), now() @@ -66,7 +69,8 @@ approval_id = #{approvalId}, score_comment = #{scoreComment}, weight = #{weight}, - score = #{score} + score = #{score}, + is_edit = #{isEdit} ,gmt_modified = now() where id = #{id} @@ -84,7 +88,8 @@ approval_id = #{approvalId}, score_comment = #{scoreComment}, weight = #{weight}, - score = #{score} + score = #{score}, + is_edit = #{isEdit} ,gmt_modified = now() where id = #{id} @@ -110,5 +115,9 @@ update lz_result_score set is_delete = 1, gmt_modified = now() where detail_id=#{id} and is_delete = 0 + + update lz_result_score set is_edit = 0, gmt_modified = now() where detail_id=#{id} and is_delete = 0 + + diff --git a/src/test/java/com/lz/mysql/MysqlMain.java b/src/test/java/com/lz/mysql/MysqlMain.java index 5d7c5b5a..cb20fd61 100644 --- a/src/test/java/com/lz/mysql/MysqlMain.java +++ b/src/test/java/com/lz/mysql/MysqlMain.java @@ -85,7 +85,7 @@ public class MysqlMain { List list = new ArrayList(); - list.add(new TablesBean("lz_task_process_record")); + list.add(new TablesBean("lz_result_score")); List list2 = new ArrayList(); From a7419791b79616aa69e938d37d20b213c1019ebb Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 17 Dec 2020 17:43:28 +0800 Subject: [PATCH 19/21] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lz/modules/app/controller/ResultRecordController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java index ae71c6b8..8d0350c9 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -516,6 +516,7 @@ public class ResultRecordController extends AbstractController { for (StaffEntity staff:staffs1 ) { ResultScoreDto resultScore = new ResultScoreDto(); + resultScore.setIsEdit(0); resultScore.setApprovalId(staff.getId()); resultScore.setApprovalName(staff.getName()); if(isOrScore){ From 0e4f141d49699c20ed033f43b7dfed07a5e351fc Mon Sep 17 00:00:00 2001 From: wulin Date: Thu, 17 Dec 2020 18:54:49 +0800 Subject: [PATCH 20/21] =?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 --- src/main/resources/mapper/sys/SysUserTokenDao.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/mapper/sys/SysUserTokenDao.xml b/src/main/resources/mapper/sys/SysUserTokenDao.xml index 47abba9f..22c0d6f4 100644 --- a/src/main/resources/mapper/sys/SysUserTokenDao.xml +++ b/src/main/resources/mapper/sys/SysUserTokenDao.xml @@ -18,8 +18,8 @@ #{token}, #{expireTime}, #{type}, - tokenCode, - codeTime, + #{tokenCode}, + #{codeTime}, now() ) From 0b4acc40b76a5fc68a8adf9822ad86d9c5b06221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=BB=BA=E8=B6=85?= <3182967682@qq.com> Date: Thu, 17 Dec 2020 18:59:43 +0800 Subject: [PATCH 21/21] fix --- pom.xml | 5 + .../controller/ExportController.java | 79 ------ .../performance/controller/GitController.java | 235 ++++++++++++++++++ .../resources/mapper/sys/SysUserTokenDao.xml | 4 +- 4 files changed, 242 insertions(+), 81 deletions(-) create mode 100644 src/main/java/com/lz/modules/performance/controller/GitController.java diff --git a/pom.xml b/pom.xml index 54874c8a..d5043898 100644 --- a/pom.xml +++ b/pom.xml @@ -261,6 +261,11 @@ JsoupXpath ${jsoupXpath.version} + + org.eclipse.jgit + org.eclipse.jgit + 5.1.3.201810200350-r + diff --git a/src/main/java/com/lz/modules/performance/controller/ExportController.java b/src/main/java/com/lz/modules/performance/controller/ExportController.java index 0485e5f3..77e614c0 100644 --- a/src/main/java/com/lz/modules/performance/controller/ExportController.java +++ b/src/main/java/com/lz/modules/performance/controller/ExportController.java @@ -416,86 +416,7 @@ public class ExportController { " }*/ - public static void main(String[] args) { - //域名 - String domain = ""; - //项目名 - String projectName = ""; - //分支名 - String branchName = ""; - //session - String session = ""; - //分页 ?limit=40&offset=120 - try { - URLConnection urlConnection = new URL("http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/commits/version_performance_2.0").openConnection(); - //URLConnection urlConnection = new URL("http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/graphs/master").openConnection(); - HttpURLConnection connection = (HttpURLConnection) urlConnection; - connection.setRequestMethod("GET"); - connection.addRequestProperty("Host", "gitlab.ldxinyong.com"); - - connection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0"); - - connection.addRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); - connection.addRequestProperty("Accept-Encoding", "gzip, deflate"); - connection.addRequestProperty("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2"); - connection.addRequestProperty("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22"); - - //connection.addRequestProperty("Referer", "http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/commits/master"); - - //connection.addRequestProperty("Connection", "keep-alive"); - - //connection.addRequestProperty("Upgrade-Insecure-Requests", "1"); - - //connection.addRequestProperty("If-None-Match", "W/\"352c90856827b53f3735109727c9f3a1\""); - - connection.addRequestProperty("Cookie", "_gitlab_session=4e14c53a8cb378a65fda996b0bc15021; sidebar_collapsed=false"); - connection.connect();// 连接会话 - // 获取输入流 - BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); - String line; - StringBuilder sb = new StringBuilder(); - while ((line = br.readLine()) != null) {// 循环读取流 - sb.append(line); - } - br.close();// 关闭流 - connection.disconnect();// 断开连接 - System.out.println(sb.toString()); - JXDocument document = JXDocument.create(sb.toString()); - JXNode jxNode = document.selNOne("//*[@id='commits-list']"); - List sel = jxNode.sel("//*[@class='commits-row']"); - for(JXNode jx:sel){ - List sel2 = jx.sel("//*[@class='commit flex-row js-toggle-container']"); - for(JXNode j:sel2){ - String avatar = j.sel("//img[@class='avatar s36 hidden-xs has-tooltip']/@src").get(0).toString(); - System.out.println("头像 " + avatar); - - String commit = j.sel("//a[@class='commit-row-message item-title']/text()").get(0).toString(); - System.out.println("摘要 " + commit); - - String name = j.sel("//a[@class='commit-author-link has-tooltip']/text()").get(0).toString(); - System.out.println("姓名 " + name); - - String time = j.sel("//time[@class='js-timeago']/@datetime").get(0).toString(); - System.out.println("时间 " + time); - - - String version = j.sel("//div[@class='label label-monospace']/text()").get(0).toString(); - System.out.println("版本 " + version); - - } - - - - } - System.out.println(); - - } catch (IOException e) { - e.printStackTrace(); - } - - } - } diff --git a/src/main/java/com/lz/modules/performance/controller/GitController.java b/src/main/java/com/lz/modules/performance/controller/GitController.java new file mode 100644 index 00000000..a209f7f3 --- /dev/null +++ b/src/main/java/com/lz/modules/performance/controller/GitController.java @@ -0,0 +1,235 @@ +package com.lz.modules.performance.controller; + +import org.eclipse.jgit.api.CloneCommand; +import org.eclipse.jgit.api.Git; +import org.eclipse.jgit.api.LogCommand; +import org.eclipse.jgit.api.PullResult; +import org.eclipse.jgit.diff.DiffEntry; +import org.eclipse.jgit.internal.storage.file.FileRepository; +import org.eclipse.jgit.lib.ObjectReader; +import org.eclipse.jgit.lib.PersonIdent; +import org.eclipse.jgit.revwalk.RevCommit; +import org.eclipse.jgit.revwalk.RevTree; +import org.eclipse.jgit.revwalk.RevWalk; +import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider; +import org.eclipse.jgit.treewalk.AbstractTreeIterator; +import org.eclipse.jgit.treewalk.CanonicalTreeParser; +import org.eclipse.jgit.treewalk.filter.PathFilterGroup; +import org.seimicrawler.xpath.JXDocument; +import org.seimicrawler.xpath.JXNode; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLConnection; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: djc + * @Desc: + * @Date: 2020/12/17 17:06 + */ +public class GitController { + + + /*public static void main(String[] args) throws Exception{ + + + //设置远程服务器上的用户名和密码 + UsernamePasswordCredentialsProvider usernamePasswordCredentialsProvider =new + UsernamePasswordCredentialsProvider("dujianchao31","Du1262707462"); + //克隆代码库命令 + CloneCommand cloneCommand = Git.cloneRepository(); + + Git git= cloneCommand.setURI("http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/") //设置远程URI + .setBranch("version_performance_2.0") //设置clone下来的分支 + .setDirectory(new File("D:\\test\\")) //设置下载存放路径 + .setCredentialsProvider(usernamePasswordCredentialsProvider) //设置权限验证 + .call(); + }*/ + + public static void main(String[] args) throws Exception{ + UsernamePasswordCredentialsProvider usernamePasswordCredentialsProvider =new + UsernamePasswordCredentialsProvider("dujianchao31","Du1262707462"); + /* //git仓库地址 + Git git = new Git(new FileRepository("D:\\test\\"+"/.git")); + PullResult call = git.pull().setRemoteBranchName("version_performance_2.0"). + setCredentialsProvider(usernamePasswordCredentialsProvider).call();*/ + + //git仓库地址 + Git git = new Git(new FileRepository("D:\\test\\"+"/.git")); + + + } + + public static AbstractTreeIterator prepareTreeParser(RevCommit commit){ + System.out.println(commit.getId()); + try (RevWalk walk = new RevWalk(new FileRepository("D:\\test\\"+"/.git"))) { + System.out.println(commit.getTree().getId()); + RevTree tree = walk.parseTree(commit.getTree().getId()); + + CanonicalTreeParser oldTreeParser = new CanonicalTreeParser(); + try (ObjectReader oldReader = new FileRepository("D:\\test\\"+"/.git").newObjectReader()) { + oldTreeParser.reset(oldReader, tree.getId()); + } + + walk.dispose(); + + return oldTreeParser; + }catch (Exception e) { + // TODO: handle exception + } + return null; + } + + + //日志信息 + + public static void commit(Git git) throws Exception{ + List versions = new ArrayList<>(); + Iterable commits = git.log().all().call(); + int count = 0; + for (RevCommit commit : commits) { + System.out.println("LogCommit: " + commit); + System.out.println("提交信息:" + commit.getFullMessage()); + String version = commit.getName(); //版本号,用来查询详细信息 + versions.add(version); + System.out.println("版本号:" + commit.getName()); + PersonIdent authorIdent = commit.getAuthorIdent(); + System.out.println("作者:" + authorIdent.getName()); + System.out.println("邮箱:" + authorIdent.getEmailAddress()); + System.out.println("时间:" + authorIdent.getWhen()); + count++; + } + System.out.println("========="); + System.out.println("总计" + count); + } + + + //文件变动 + public void diff(Git git) throws Exception{ + List commitsList = new ArrayList<>(); + Iterable commits = git.log().all().call(); + for(RevCommit commit:commits){ + commitsList.add(commit); + } + + AbstractTreeIterator newTree = prepareTreeParser(commitsList.get(0)); + AbstractTreeIterator oldTree = prepareTreeParser(commitsList.get(1)); + + List diffEntries = git.diff().setNewTree(newTree).setOldTree(oldTree).call(); + DiffEntry.ChangeType changeType; + int add =0; + int copy =0; + int delete =0; + int modify =0; + int rename =0; + for(DiffEntry entry : diffEntries){ + changeType = entry.getChangeType(); + System.out.println("=====" + changeType); + switch (changeType) { + case ADD: + System.out.println(++add); + break; + case COPY: + System.out.println(++copy); + break; + case DELETE: + System.out.println(++delete); + break; + case MODIFY: + System.out.println(++modify); + break; + case RENAME: + System.out.println(rename++); + break; + } + } + + System.out.println("========="); + } + + public void webTest(){ + //域名 + String domain = ""; + //项目名 + String projectName = ""; + //分支名 + String branchName = ""; + //session + String session = ""; + //分页 ?limit=40&offset=120 + + try { + URLConnection urlConnection = new URL("http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/commits/version_performance_2.0").openConnection(); + //URLConnection urlConnection = new URL("http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/graphs/master").openConnection(); + HttpURLConnection connection = (HttpURLConnection) urlConnection; + connection.setRequestMethod("GET"); + connection.addRequestProperty("Host", "gitlab.ldxinyong.com"); + + connection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0"); + + connection.addRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); + connection.addRequestProperty("Accept-Encoding", "gzip, deflate"); + connection.addRequestProperty("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2"); + connection.addRequestProperty("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22"); + + //connection.addRequestProperty("Referer", "http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/commits/master"); + + //connection.addRequestProperty("Connection", "keep-alive"); + + //connection.addRequestProperty("Upgrade-Insecure-Requests", "1"); + + //connection.addRequestProperty("If-None-Match", "W/\"352c90856827b53f3735109727c9f3a1\""); + + connection.addRequestProperty("Cookie", "_gitlab_session=4e14c53a8cb378a65fda996b0bc15021; sidebar_collapsed=false"); + connection.connect();// 连接会话 + // 获取输入流 + BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); + String line; + StringBuilder sb = new StringBuilder(); + while ((line = br.readLine()) != null) {// 循环读取流 + sb.append(line); + } + br.close();// 关闭流 + connection.disconnect();// 断开连接 + System.out.println(sb.toString()); + JXDocument document = JXDocument.create(sb.toString()); + JXNode jxNode = document.selNOne("//*[@id='commits-list']"); + List sel = jxNode.sel("//*[@class='commits-row']"); + for(JXNode jx:sel){ + List sel2 = jx.sel("//*[@class='commit flex-row js-toggle-container']"); + for(JXNode j:sel2){ + String avatar = j.sel("//img[@class='avatar s36 hidden-xs has-tooltip']/@src").get(0).toString(); + System.out.println("头像 " + avatar); + + String commit = j.sel("//a[@class='commit-row-message item-title']/text()").get(0).toString(); + System.out.println("摘要 " + commit); + + String name = j.sel("//a[@class='commit-author-link has-tooltip']/text()").get(0).toString(); + System.out.println("姓名 " + name); + + String time = j.sel("//time[@class='js-timeago']/@datetime").get(0).toString(); + System.out.println("时间 " + time); + + + String version = j.sel("//div[@class='label label-monospace']/text()").get(0).toString(); + System.out.println("版本 " + version); + + } + + + + } + System.out.println(); + + } catch (IOException e) { + e.printStackTrace(); + } + + } +} diff --git a/src/main/resources/mapper/sys/SysUserTokenDao.xml b/src/main/resources/mapper/sys/SysUserTokenDao.xml index 47abba9f..22c0d6f4 100644 --- a/src/main/resources/mapper/sys/SysUserTokenDao.xml +++ b/src/main/resources/mapper/sys/SysUserTokenDao.xml @@ -18,8 +18,8 @@ #{token}, #{expireTime}, #{type}, - tokenCode, - codeTime, + #{tokenCode}, + #{codeTime}, now() )