From 69b9913e60f62eb26475da56f27870927c3c3294 Mon Sep 17 00:00:00 2001
From: quyixiao <2621048238@qq.com>
Date: Thu, 13 Aug 2020 17:31:16 +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
---
pom.xml | 6 +
.../controller/ResultRecordController.java | 154 +++++++++++++++---
.../lz/modules/app/dao/DepartmentsDao.java | 3 +
.../modules/app/dto/StaffDepartmentDto.java | 11 ++
.../lz/modules/app/req/ResultRecordReq.java | 3 +
.../lz/modules/app/resp/ResultDetailResp.java | 44 +++++
.../app/service/DepartmentsService.java | 3 +
.../DepartmentsStaffRelateService.java | 2 +
.../service/impl/DepartmentsServiceImpl.java | 13 ++
.../DepartmentsStaffRelateServiceImpl.java | 5 +
.../job/business/DingtalkBusiness.java | 123 ++++++++++++++
.../modules/job/task/DingtalkSynDataJob.java | 42 +++++
.../sys/dao/app/ResultDetailMapper.java | 4 +
.../modules/sys/entity/app/ResultDetail.java | 67 +++++---
.../sys/service/app/ResultDetailService.java | 3 +
.../app/impl/ResultDetailServiceImpl.java | 7 +
.../mapper/app/ResultDetailMapper.xml | 83 ++++++----
.../mapper/generator/DepartmentsDao.xml | 9 +
src/test/java/com/lz/mysql/MysqlMain.java | 3 +-
19 files changed, 508 insertions(+), 77 deletions(-)
create mode 100644 src/main/java/com/lz/modules/app/dto/StaffDepartmentDto.java
create mode 100644 src/main/java/com/lz/modules/app/resp/ResultDetailResp.java
create mode 100644 src/main/java/com/lz/modules/job/business/DingtalkBusiness.java
create mode 100644 src/main/java/com/lz/modules/job/task/DingtalkSynDataJob.java
diff --git a/pom.xml b/pom.xml
index de396bfa..c89bcee8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -241,6 +241,12 @@
1.7
+
+ taobao-sdk-java-auto_1479188381469
+ dingtalk
+ 20200811
+
+
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 ced2088d..e0819530 100644
--- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java
+++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java
@@ -1,27 +1,37 @@
package com.lz.modules.app.controller;
-import java.math.BigDecimal;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
+import com.lz.common.utils.NumberUtil;
import com.lz.common.utils.PageUtils;
import com.lz.common.utils.R;
import com.lz.modules.app.dto.DepartmentsDto;
+import com.lz.modules.app.dto.StaffDepartmentDto;
+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.ResultDetailResp;
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.sys.entity.app.ResultDetail;
import com.lz.modules.sys.entity.app.ResultRecord;
+import com.lz.modules.sys.service.app.ResultDetailService;
import com.lz.modules.sys.service.app.ResultRecordService;
+import io.jsonwebtoken.lang.Collections;
import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
-
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
@@ -39,23 +49,127 @@ public class ResultRecordController {
@Autowired
private DepartmentsService departmentsService;
+ @Autowired
+ private ResultDetailService resultDetailService;
+ @Autowired
+ private ResultRecordService resultRecordService;
+
+ @Autowired
+ private StaffService staffService;
+
+ @Autowired
+ private DepartmentsStaffRelateService departmentsStaffRelateService;
+
/**
* 列表
*/
@RequestMapping("/list")
@RequiresPermissions("user:lzresultrecord:list")
- public R list(ResultRecordReq req){
+ public R list(ResultRecordReq req) {
PageUtils page = lzResultRecordService.queryPage(req);
List departmentList1 = departmentsService.selectByParentDepartmentId("0");
return R.ok().put("page", page)
- .put("departmentList1",departmentList1);
+ .put("departmentList1", departmentList1);
}
@RequestMapping("/departmentQuery")
- public R departmentQuery(ResultRecordReq req){
+ public R departmentQuery(ResultRecordReq req) {
List departmentList1 = departmentsService.selectByParentDepartmentId(req.getDepartmentId());
return R.ok()
- .put("departmentList",departmentList1);
+ .put("departmentList", departmentList1);
+ }
+
+ @RequestMapping("/getStaffResultDetail")
+ public R getStaffResultDetail(ResultRecordReq req) {
+ ResultRecord resultRecord = resultRecordService.selectResultRecordById(req.getRecordResultId());
+ StaffEntity staffEntity = staffService.getById(resultRecord.getStaffId());
+ List departmentsStaffRelateEntities = departmentsStaffRelateService.selectByStaffIds(Arrays.asList(staffEntity.getId()));
+ DepartmentsStaffRelateEntity departmentsStaffRelateEntity = departmentsStaffRelateEntities.get(0);
+ StaffDepartmentDto departmentDto = departmentsService.selectStaffAllDepartments(departmentsStaffRelateEntity.getDepartmentId());
+ List resultDetails = resultDetailService.selectByRecordId(req.getRecordResultId());
+ SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy年MM月dd");
+ List list = new ArrayList<>();
+ int firstRowspan = 0;
+ int secondRowspan = 0;
+ int threeRowspan = 0;
+ int fourRowspan = 0;
+ int fiveRowspan = 0;
+
+ if (!Collections.isEmpty(resultDetails)) {
+ Map details = resultDetails.stream().collect(Collectors.groupingBy(ResultDetail::getType, Collectors.counting()));
+ int type1 = NumberUtil.objToIntDefault(details.get(new Integer(1)), 0);
+ int type2 = NumberUtil.objToIntDefault(details.get(new Integer(2)), 0);
+ firstRowspan = type1;
+ secondRowspan = type1 + 1;
+ threeRowspan = type1 + 1 + type2;
+ fourRowspan = type1 + 1 + type2 + 1;
+ fiveRowspan = type1 + 1 + type2 + 2;
+
+ int count = 0;
+ for (ResultDetail resultDetail : resultDetails) {
+ count++;
+ ResultDetailResp resp = new ResultDetailResp();
+ BeanUtils.copyProperties(resultDetail, resp);
+ if (resultDetail.getType() == 1) {
+ resp.setCheckRange("业绩");
+ } else if (resultDetail.getType() == 2) {
+ resp.setCheckRange("文化价值观");
+ }
+ if(count == type1 || count == type1 + type2){
+ resp.setIsAdd(1);
+ }
+
+ if (count == type1 + 1) {
+ ResultDetailResp respHeader = new ResultDetailResp();
+ respHeader.setKeyResult("业务考核结果");
+ respHeader.setCheckWeight(new BigDecimal(0.7));
+ respHeader.setSuperScore("/");
+ respHeader.setAcquireScore(new BigDecimal(0));
+ respHeader.setScoreComment("/");
+ respHeader.setIsAdd(-1);
+ list.add(respHeader);
+ }
+ list.add(resp);
+ }
+ }
+
+ ResultDetailResp tail1 = new ResultDetailResp();
+ tail1.setKeyResult("文化价值观考核结果");
+ tail1.setCheckWeight(new BigDecimal(0.3));
+ tail1.setSuperScore("/");
+ tail1.setAcquireScore(new BigDecimal(0));
+ tail1.setScoreComment("/");
+ tail1.setIsAdd(-1);
+
+ ResultDetailResp tail2 = new ResultDetailResp();
+ tail2.setCheckRange("文化价值观考核结果");
+ tail2.setAcquireScore(new BigDecimal(0));
+ tail2.setScoreComment("/");
+ tail2.setIsAdd(-1);
+
+ ResultDetailResp tail3 = new ResultDetailResp();
+ tail3.setCheckRange("最终绩效考核结果等级");
+ tail3.setAcquireScore(new BigDecimal(3.25));
+ tail3.setScoreComment("/");
+ tail3.setIsAdd(-1);
+
+ list.add(tail1);
+ list.add(tail2);
+ list.add(tail3);
+
+ return R.ok()
+ .put("staffName", staffEntity.getName())
+ .put("department1", departmentDto.getDepartment1())
+ .put("department2", departmentDto.getDepartment2())
+ .put("department3", departmentDto.getDepartment3())
+ .put("checkMonth", sdf3.format(resultRecord.getGmtCreate()))
+ .put("firstRowspan", firstRowspan)
+ .put("secondRowspan", secondRowspan)
+ .put("threeRowspan", threeRowspan)
+ .put("fourRowspan", fourRowspan)
+ .put("fiveRowspan", fiveRowspan)
+ .put("list", list);
+
}
/**
@@ -63,8 +177,8 @@ public class ResultRecordController {
*/
@RequestMapping("/info/{id}")
@RequiresPermissions("user:lzresultrecord:info")
- public R info(@PathVariable("id") Long id){
- ResultRecord lzResultRecord = lzResultRecordService.selectResultRecordById(id);
+ public R info(@PathVariable("id") Long id) {
+ ResultRecord lzResultRecord = lzResultRecordService.selectResultRecordById(id);
return R.ok().put("lzResultRecord", lzResultRecord);
}
@@ -74,8 +188,8 @@ public class ResultRecordController {
*/
@RequestMapping("/save")
@RequiresPermissions("user:lzresultrecord:save")
- public R save(@RequestBody ResultRecord lzResultRecord){
- lzResultRecordService.insertResultRecord(lzResultRecord);
+ public R save(@RequestBody ResultRecord lzResultRecord) {
+ lzResultRecordService.insertResultRecord(lzResultRecord);
return R.ok();
}
@@ -85,8 +199,8 @@ public class ResultRecordController {
*/
@RequestMapping("/update")
@RequiresPermissions("user:lzresultrecord:update")
- public R update(@RequestBody ResultRecord lzResultRecord){
- lzResultRecordService.updateResultRecordById(lzResultRecord);
+ public R update(@RequestBody ResultRecord lzResultRecord) {
+ lzResultRecordService.updateResultRecordById(lzResultRecord);
return R.ok();
}
@@ -96,8 +210,8 @@ public class ResultRecordController {
*/
@RequestMapping("/delete")
@RequiresPermissions("user:lzresultrecord:delete")
- public R delete(@RequestBody Long[] ids){
- lzResultRecordService.deleteBatchIds(Arrays.asList(ids));
+ public R delete(@RequestBody Long[] ids) {
+ lzResultRecordService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
diff --git a/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java b/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java
index 3df03af0..de896c0d 100644
--- a/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java
+++ b/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java
@@ -1,6 +1,7 @@
package com.lz.modules.app.dao;
import com.lz.modules.app.dto.DepartmentsDto;
+import com.lz.modules.app.dto.StaffDepartmentDto;
import com.lz.modules.app.entity.DepartmentsEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@@ -34,4 +35,6 @@ public interface DepartmentsDao extends BaseMapper {
List selectEntityByParentDepartmentId(@Param("parentId") String parentId);
DepartmentsEntity selectByDepartmentId(@Param("departmentId") String departmentId);
+
+ StaffDepartmentDto selectStaffAllDepartments(@Param("departmentId") String departmentId);
}
diff --git a/src/main/java/com/lz/modules/app/dto/StaffDepartmentDto.java b/src/main/java/com/lz/modules/app/dto/StaffDepartmentDto.java
new file mode 100644
index 00000000..bf8307e2
--- /dev/null
+++ b/src/main/java/com/lz/modules/app/dto/StaffDepartmentDto.java
@@ -0,0 +1,11 @@
+package com.lz.modules.app.dto;
+
+import lombok.Data;
+
+@Data
+public class StaffDepartmentDto {
+ private String department1;
+ private String department2;
+ private String department3;
+ private String department4;
+}
diff --git a/src/main/java/com/lz/modules/app/req/ResultRecordReq.java b/src/main/java/com/lz/modules/app/req/ResultRecordReq.java
index 4962769e..792b543b 100644
--- a/src/main/java/com/lz/modules/app/req/ResultRecordReq.java
+++ b/src/main/java/com/lz/modules/app/req/ResultRecordReq.java
@@ -24,5 +24,8 @@ public class ResultRecordReq {
private List departmentStaffIds;
private List staffIds;
+ private Long recordResultId;
+
+
}
diff --git a/src/main/java/com/lz/modules/app/resp/ResultDetailResp.java b/src/main/java/com/lz/modules/app/resp/ResultDetailResp.java
new file mode 100644
index 00000000..3902c412
--- /dev/null
+++ b/src/main/java/com/lz/modules/app/resp/ResultDetailResp.java
@@ -0,0 +1,44 @@
+package com.lz.modules.app.resp;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class ResultDetailResp {
+
+ private Long id;
+ //是否删除状态,1:删除,0:有效
+ private Integer isDelete;
+ //创建时间
+ private Date gmtCreate;
+ //最后修改时间
+ private Date gmtModified;
+ //1,业绩,2文化价值观
+ private Integer type;
+ //考核维度
+ private String checkRange;
+ //目标
+ private String target;
+ //关键结果
+ private String keyResult;
+ //考核权重
+ private BigDecimal checkWeight;
+ //考核结果
+ private String checkResult;
+ //直属上级评分
+ private String superScore;
+ //得分
+ private BigDecimal acquireScore;
+ //评分说明
+ private String scoreComment;
+ //记录id
+ private Long recordId;
+ //用户id
+ private Long staffId;
+ //优先级,从大到小
+ private Integer priority;
+
+ private int isAdd;
+}
diff --git a/src/main/java/com/lz/modules/app/service/DepartmentsService.java b/src/main/java/com/lz/modules/app/service/DepartmentsService.java
index 8ea55217..dadf1055 100644
--- a/src/main/java/com/lz/modules/app/service/DepartmentsService.java
+++ b/src/main/java/com/lz/modules/app/service/DepartmentsService.java
@@ -3,6 +3,7 @@ package com.lz.modules.app.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lz.common.utils.PageUtils;
import com.lz.modules.app.dto.DepartmentsDto;
+import com.lz.modules.app.dto.StaffDepartmentDto;
import com.lz.modules.app.entity.DepartmentsEntity;
import com.lz.modules.job.model.responseBo.DepartmentInfosBo;
@@ -31,5 +32,7 @@ public interface DepartmentsService extends IService {
List selectEntityByParentDepartmentId(String parentId);
DepartmentsEntity selectByDepartmentId(String departmentId);
+
+ StaffDepartmentDto selectStaffAllDepartments(String departmentId);
}
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 c12aabf0..5ebaab75 100644
--- a/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java
+++ b/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java
@@ -28,5 +28,7 @@ public interface DepartmentsStaffRelateService extends IService selectAll();
+
+ List selectByStaffIds(List staffIds);
}
diff --git a/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java b/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java
index 10334696..c3a1e016 100644
--- a/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java
+++ b/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java
@@ -6,8 +6,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.lz.common.utils.PageUtils;
import com.lz.common.utils.Query;
+import com.lz.common.utils.StringUtil;
import com.lz.modules.app.dto.DepartmentsDto;
import com.lz.modules.app.dao.DepartmentsDao;
+import com.lz.modules.app.dto.StaffDepartmentDto;
import com.lz.modules.app.entity.DepartmentsEntity;
import com.lz.modules.app.service.DepartmentsService;
import com.lz.modules.job.model.responseBo.DepartmentInfosBo;
@@ -73,6 +75,17 @@ public class DepartmentsServiceImpl extends ServiceImpl getDepartmentTreeList(List departmentList) {
List DepartmentsList = Lists.newArrayList();
for (DepartmentsDto departmentsDto : departmentList) {
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 d7d0c3a3..7e133c05 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
@@ -63,5 +63,10 @@ public class DepartmentsStaffRelateServiceImpl extends ServiceImpl selectByStaffIds(List staffIds) {
+ return departmentsStaffRelateDao.selectByStaffIds(staffIds);
+ }
+
}
diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java
new file mode 100644
index 00000000..3ac68039
--- /dev/null
+++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java
@@ -0,0 +1,123 @@
+package com.lz.modules.job.business;
+
+import com.google.common.collect.Lists;
+import com.lz.common.utils.DateUtils;
+import com.lz.common.utils.FeishuUtil;
+import com.lz.modules.app.entity.StaffEntity;
+import com.lz.modules.app.entity.StaffOccupationEntity;
+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.job.model.responseBo.DepartmentInfosBo;
+import com.lz.modules.job.model.responseBo.DepartmentStaffBo;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author fumeiai
+ * @date 2019-05-29 17:06
+ * @Description 钉钉业务
+ * @注意 本内容仅限于杭州霖梓网络科技有限公司内部传阅,禁止外泄以及用于其他的商业目的
+ */
+@Component(value = "dingtalkBusiness")
+public class DingtalkBusiness {
+ protected final static org.slf4j.Logger logger = LoggerFactory.getLogger(DingtalkBusiness.class);
+
+ @Autowired
+ FeishuUtil feishuUtil;
+
+ @Resource
+ DepartmentsService departmentsService;
+
+ @Resource
+ DepartmentsStaffRelateService departmentsStaffRelateService;
+
+ @Resource
+ StaffService staffService;
+
+ @Resource
+ StaffOccupationService staffOccupationService;
+
+ /**
+ * 获取组织架构信息并录入到数据库
+ */
+// @DataSource(name = DataSourceNames.FOUR)
+ public void getFeishuDepartmentsIntoData() {
+ //获取Token
+ String token = feishuUtil.getAccessToken();
+
+ //获取通讯录授权范围:获取最高级架构的department_id
+ List departmentIds = feishuUtil.getDepartmentIds(token);
+
+ if (departmentIds == null || departmentIds.size() == 0) {
+ return;
+ }
+
+ //批量获取部门详情,根据详情填充部门信息
+ StringBuffer departmentIdSbs = new StringBuffer();
+ for (String departmentId : departmentIds) {
+ //获取子孙部门id列表
+ departmentIdSbs.append("department_ids=" + departmentId + "&");
+ List childDepartmentIds = feishuUtil.getChildDepartmentIds(token, departmentId);
+ for (String childDepartmentId : childDepartmentIds) {
+ departmentIdSbs.append("department_ids=" + childDepartmentId + "&");
+ }
+ }
+
+ String topDepartmentIds = departmentIdSbs.toString().substring(0, departmentIdSbs.toString().length() - 1);
+ //获取所有的部门详情
+ List departmentInfosBos = feishuUtil.getDepartmentDetails(token, topDepartmentIds);
+ //更新数据库中的部门相关信息
+ departmentsService.updateDepartmentInfos(departmentInfosBos);
+ departmentsStaffRelateService.deleteAllRelates();
+ //未在飞书组织架构里的成员,置为离职(全部置为离职,再把在职的恢复)
+ staffOccupationService.updateAllOccupation();
+ //获取飞书部门对应的用户详情
+ for (DepartmentInfosBo departmentInfo : departmentInfosBos) {
+ //获取部门用户详情
+ List staffs = feishuUtil.getDepartmentStaffDetails(token, departmentInfo.getId());
+ logger.info("=============================" + departmentInfo.getName() + "================================");
+// for (DepartmentStaffBo staff : staffs)
+// logger.info(staff.getName());
+ //循环录入到员工信息表中
+ List staffIds = staffService.updateStaffsInfo(staffs);
+
+ //加入到部门和员工关系表
+ departmentsStaffRelateService.addRelateInfos(departmentInfo.getId(), staffIds);
+ //录入员工职业信息表
+ enterStaffOccupationInfos(staffs);
+
+ }
+
+ }
+
+ public void enterStaffOccupationInfos(List staffs) {
+ List StaffOccupations = Lists.newArrayList();
+ for (DepartmentStaffBo departmentStaffBo : staffs) {
+ StaffEntity staffEntity = staffService.getStaffInfoByOpenId(departmentStaffBo.getOpenId());
+ Long staffId = staffEntity.getId();
+ StaffOccupationEntity staffOccupationEntity = staffOccupationService.getStaffOccupationByStaffId(staffId);
+ if (staffOccupationEntity == null) {
+ StaffOccupationEntity staffOccupation = new StaffOccupationEntity();
+ staffOccupation.setStaffId(staffId);
+ staffOccupation.setEmployeeNo(departmentStaffBo.getEmployeeNo());
+ staffOccupation.setStaffType(departmentStaffBo.getEmployeeType());
+ staffOccupation.setStaffStatus(departmentStaffBo.getStatus());
+ staffOccupation.setEntryTime(DateUtils.getCurrentDate());
+ StaffOccupations.add(staffOccupation);
+ } else {
+ staffOccupationService.updateStatusByStaffId(staffId, departmentStaffBo.getStatus());
+ }
+ }
+ if (StaffOccupations.size() > 0) {
+ staffOccupationService.saveBatch(StaffOccupations);
+ }
+ }
+
+
+}
diff --git a/src/main/java/com/lz/modules/job/task/DingtalkSynDataJob.java b/src/main/java/com/lz/modules/job/task/DingtalkSynDataJob.java
new file mode 100644
index 00000000..c92bd1c3
--- /dev/null
+++ b/src/main/java/com/lz/modules/job/task/DingtalkSynDataJob.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) 2020 fumeiai All rights reserved.
+ *
+ *
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.lz.modules.job.task;
+
+import com.lz.common.utils.DateUtils;
+import com.lz.modules.job.business.DingtalkBusiness;
+import com.lz.modules.job.business.FeishuBusiness;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 获取飞钉钉组织架构信息定时任务
+ *
+ * getFeishuDepartmentsJob为spring bean的名称
+ *
+ * @author fumeiai 20200429
+ */
+@Component("dingtalkSynDataJob")
+public class DingtalkSynDataJob implements ITask {
+ private Logger logger = LoggerFactory.getLogger(getClass());
+
+ @Autowired
+ DingtalkBusiness dingtalkBusiness;
+
+ @Override
+ public void run(String params) {
+
+ logger.info("dingtalkSynDataJob start date == {}", DateUtils.getCurrentDate());
+ dingtalkBusiness.getFeishuDepartmentsIntoData();
+ logger.info("dingtalkSynDataJob end date == {}", DateUtils.getCurrentDate());
+
+ }
+
+}
diff --git a/src/main/java/com/lz/modules/sys/dao/app/ResultDetailMapper.java b/src/main/java/com/lz/modules/sys/dao/app/ResultDetailMapper.java
index 6d42ff8a..188f9c05 100644
--- a/src/main/java/com/lz/modules/sys/dao/app/ResultDetailMapper.java
+++ b/src/main/java/com/lz/modules/sys/dao/app/ResultDetailMapper.java
@@ -11,6 +11,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lz.modules.sys.entity.app.ResultDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
@Mapper
public interface ResultDetailMapper extends BaseMapper {
@@ -30,4 +33,5 @@ public interface ResultDetailMapper extends BaseMapper {
int deleteResultDetailById(@Param("id") Long id);
+ List selectByRecordId(@Param("recordResultId") Long recordResultId);
}
\ No newline at end of file
diff --git a/src/main/java/com/lz/modules/sys/entity/app/ResultDetail.java b/src/main/java/com/lz/modules/sys/entity/app/ResultDetail.java
index ea3d84ea..d65b14a7 100644
--- a/src/main/java/com/lz/modules/sys/entity/app/ResultDetail.java
+++ b/src/main/java/com/lz/modules/sys/entity/app/ResultDetail.java
@@ -11,7 +11,7 @@ import java.util.Date;
* 菜单权限表
*
*业绩详情表
* @author quyixiao
-* @since 2020-08-10
+* @since 2020-08-13
*/
@Data
@@ -28,24 +28,35 @@ public class ResultDetail implements java.io.Serializable {
private Date gmtModified;
//1,业绩,2文化价值观
private Integer type;
- //
+ //目标
private String target;
- //
+ //关键结果
private String keyResult;
//考核权重
private BigDecimal checkWeight;
//考核结果
private String checkResult;
//直属上级评分
- private BigDecimal superScore;
- //
+ private String superScore;
+ //得分
private BigDecimal acquireScore;
//评分说明
private String scoreComment;
//记录id
private Long recordId;
//用户id
- private Long userId;
+ private Long staffId;
+ //优先级,从大到小
+ private Integer priority;
+
+ public ResultDetail() {
+
+ }
+
+ public ResultDetail(Integer type) {
+ this.type = type;
+ }
+
/**
*
* @return
@@ -122,14 +133,14 @@ public class ResultDetail implements java.io.Serializable {
}
/**
- *
+ * 目标
* @return
*/
public String getTarget() {
return target;
}
/**
- *
+ * 目标
* @param target
*/
public void setTarget(String target) {
@@ -137,14 +148,14 @@ public class ResultDetail implements java.io.Serializable {
}
/**
- *
+ * 关键结果
* @return
*/
public String getKeyResult() {
return keyResult;
}
/**
- *
+ * 关键结果
* @param keyResult
*/
public void setKeyResult(String keyResult) {
@@ -185,26 +196,26 @@ public class ResultDetail implements java.io.Serializable {
* 直属上级评分
* @return
*/
- public BigDecimal getSuperScore() {
+ public String getSuperScore() {
return superScore;
}
/**
* 直属上级评分
* @param superScore
*/
- public void setSuperScore(BigDecimal superScore) {
+ public void setSuperScore(String superScore) {
this.superScore = superScore;
}
/**
- *
+ * 得分
* @return
*/
public BigDecimal getAcquireScore() {
return acquireScore;
}
/**
- *
+ * 得分
* @param acquireScore
*/
public void setAcquireScore(BigDecimal acquireScore) {
@@ -245,15 +256,30 @@ public class ResultDetail implements java.io.Serializable {
* 用户id
* @return
*/
- public Long getUserId() {
- return userId;
+ public Long getStaffId() {
+ return staffId;
}
/**
* 用户id
- * @param userId
+ * @param staffId
*/
- public void setUserId(Long userId) {
- this.userId = userId;
+ public void setStaffId(Long staffId) {
+ this.staffId = staffId;
+ }
+
+ /**
+ * 优先级,从大到小
+ * @return
+ */
+ public Integer getPriority() {
+ return priority;
+ }
+ /**
+ * 优先级,从大到小
+ * @param priority
+ */
+ public void setPriority(Integer priority) {
+ this.priority = priority;
}
@Override
@@ -272,7 +298,8 @@ public class ResultDetail implements java.io.Serializable {
",acquireScore=" + acquireScore +
",scoreComment=" + scoreComment +
",recordId=" + recordId +
- ",userId=" + userId +
+ ",staffId=" + staffId +
+ ",priority=" + priority +
"}";
}
}
\ No newline at end of file
diff --git a/src/main/java/com/lz/modules/sys/service/app/ResultDetailService.java b/src/main/java/com/lz/modules/sys/service/app/ResultDetailService.java
index e55e2a49..34ee164d 100644
--- a/src/main/java/com/lz/modules/sys/service/app/ResultDetailService.java
+++ b/src/main/java/com/lz/modules/sys/service/app/ResultDetailService.java
@@ -3,6 +3,8 @@ package com.lz.modules.sys.service.app;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lz.modules.sys.entity.app.ResultDetail;
+import java.util.List;
+
/**
*
* 业绩详情表 服务类
@@ -30,4 +32,5 @@ public interface ResultDetailService extends IService {
int deleteResultDetailById(Long id);
+ List selectByRecordId(Long recordResultId);
}
\ No newline at end of file
diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java
index bbac77e7..63210792 100644
--- a/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java
+++ b/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java
@@ -7,6 +7,8 @@ import com.lz.modules.sys.service.app.ResultDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
*
* 业绩详情表 服务类
@@ -59,5 +61,10 @@ public class ResultDetailServiceImpl extends ServiceImpl selectByRecordId(Long recordResultId) {
+ return resultDetailMapper.selectByRecordId(recordResultId);
+ }
+
}
diff --git a/src/main/resources/mapper/app/ResultDetailMapper.xml b/src/main/resources/mapper/app/ResultDetailMapper.xml
index e1f175c7..e17e3365 100644
--- a/src/main/resources/mapper/app/ResultDetailMapper.xml
+++ b/src/main/resources/mapper/app/ResultDetailMapper.xml
@@ -17,59 +17,62 @@
-
+
+
- id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, type AS type, target AS target, key_result AS keyResult, check_weight AS checkWeight, check_result AS checkResult, super_score AS superScore, acquire_score AS acquireScore, score_comment AS scoreComment, record_id AS recordId, user_id AS userId
+ id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, type AS type, target AS target, key_result AS keyResult, check_weight AS checkWeight, check_result AS checkResult, super_score AS superScore, acquire_score AS acquireScore, score_comment AS scoreComment, record_id AS recordId, staff_id AS staffId, priority AS priority
insert into lz_result_detail(
- type,
- target,
- key_result,
- check_weight,
- check_result,
- super_score,
- acquire_score,
- score_comment,
- record_id,
- user_id,
- is_delete,
- gmt_create,
- gmt_modified
+ type,
+ target,
+ key_result,
+ check_weight,
+ check_result,
+ super_score,
+ acquire_score,
+ score_comment,
+ record_id,
+ staff_id,
+ priority,
+ is_delete,
+ gmt_create,
+ gmt_modified
)values(
- #{ type},
- #{ target},
- #{ keyResult},
- #{ checkWeight},
- #{ checkResult},
- #{ superScore},
- #{ acquireScore},
- #{ scoreComment},
- #{ recordId},
- #{ userId},
- 0,
- now(),
- now()
+ #{ type},
+ #{ target},
+ #{ keyResult},
+ #{ checkWeight},
+ #{ checkResult},
+ #{ superScore},
+ #{ acquireScore},
+ #{ scoreComment},
+ #{ recordId},
+ #{ staffId},
+ #{ priority},
+ 0,
+ now(),
+ now()
)
update
- lz_result_detail
+ lz_result_detail
is_delete = #{isDelete},
gmt_create = #{gmtCreate},
@@ -82,7 +85,8 @@
acquire_score = #{acquireScore},
score_comment = #{scoreComment},
record_id = #{recordId},
- user_id = #{userId}
+ staff_id = #{staffId},
+ priority = #{priority}
,gmt_modified = now()
where id = #{id}
@@ -91,8 +95,8 @@
update
- lz_result_detail
- set
+ lz_result_detail
+ set
is_delete = #{isDelete},
gmt_create = #{gmtCreate},
type = #{type},
@@ -104,15 +108,24 @@
acquire_score = #{acquireScore},
score_comment = #{scoreComment},
record_id = #{recordId},
- user_id = #{userId}
+ staff_id = #{staffId},
+ priority = #{priority}
,gmt_modified = now()
where id = #{id}
- update lz_result_detail set is_delete = 1 where id=#{id} limit 1
+ update lz_result_detail set is_delete = 1 where id=#{id} limit 1
+
+
+
+
+
+
diff --git a/src/main/resources/mapper/generator/DepartmentsDao.xml b/src/main/resources/mapper/generator/DepartmentsDao.xml
index 41a53af0..8f2ea29d 100644
--- a/src/main/resources/mapper/generator/DepartmentsDao.xml
+++ b/src/main/resources/mapper/generator/DepartmentsDao.xml
@@ -81,6 +81,15 @@
+
diff --git a/src/test/java/com/lz/mysql/MysqlMain.java b/src/test/java/com/lz/mysql/MysqlMain.java
index 7c438b59..a45a5aa3 100644
--- a/src/test/java/com/lz/mysql/MysqlMain.java
+++ b/src/test/java/com/lz/mysql/MysqlMain.java
@@ -60,8 +60,7 @@ public class MysqlMain {
file.mkdirs();
}
List list = new ArrayList();
- list.add(new TablesBean("lz_departments_staff_relate"));
- list.add(new TablesBean("lz_departments"));
+ list.add(new TablesBean("lz_result_detail"));
List list2 = new ArrayList();
Map map = MysqlUtil2ShowCreateTable.getComments();