Browse Source

修改考勤相关接口和生成链接

tall3
ma 4 years ago
parent
commit
a24727d947
  1. 13
      common/src/main/java/com/ccsens/common/api/TaskController.java
  2. 2
      common/src/main/java/com/ccsens/common/bean/dto/CClockingInDto.java
  3. 17
      common/src/main/java/com/ccsens/common/persist/dao/ProMemberDao.java
  4. 27
      common/src/main/java/com/ccsens/common/service/ClockingInService.java
  5. 2
      common/src/main/java/com/ccsens/common/service/ShareService.java
  6. 43
      common/src/main/resources/mapper_dao/ProMemberDao.xml

13
common/src/main/java/com/ccsens/common/api/TaskController.java

@ -2,12 +2,15 @@
//
//import com.ccsens.cloudutil.annotation.MustLogin;
//import com.ccsens.common.bean.dto.CClockingInDto;
//import com.ccsens.common.bean.dto.CShareDto;
//import com.ccsens.common.bean.dto.CTaskDto;
//
//import com.ccsens.common.bean.vo.CClockingInVo;
//import com.ccsens.common.bean.vo.CShareVo;
//import com.ccsens.common.bean.vo.CTaskVo;
//
//import com.ccsens.common.service.IClockingInService;
//import com.ccsens.common.service.IShareService;
//import com.ccsens.common.service.ITaskService;
//import com.ccsens.util.JsonResponse;
//import com.ccsens.util.bean.dto.QueryDto;
@ -37,6 +40,8 @@
// private ITaskService taskService;
// @Resource
// private IClockingInService clockingInService;
// @Resource
// private IShareService shareService;
//
// @MustLogin
// @ApiOperation(value = "查找永久日常任务", notes = "")
@ -101,4 +106,12 @@
// log.info("添加任务结束{}",taskList);
// return JsonResponse.newInstance().ok(taskList);
// }
//
// @MustLogin
// @ApiOperation(value = "创建分享连接", notes = "")
// @RequestMapping(value = "/create", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
// public JsonResponse<CShareVo.CreateShareUrl> createShareUrl(@ApiParam @Validated @RequestBody QueryDto<CShareDto.CreateShareUrl> params) {
// CShareVo.CreateShareUrl shareUrl = shareService.createShareUrl(params.getParam(), params.getUserId());
// return JsonResponse.newInstance().ok(shareUrl);
// }
//}

2
common/src/main/java/com/ccsens/common/bean/dto/CClockingInDto.java

@ -25,6 +25,8 @@ public class CClockingInDto {
private Long startTime;
@ApiModelProperty("结束时间")
private Long endTime;
@ApiModelProperty("打卡角色")
private Long roleId;
@ApiModelProperty("成员id数组")
private List<Long> memberIdList;
}

17
common/src/main/java/com/ccsens/common/persist/dao/ProMemberDao.java

@ -1,5 +1,6 @@
package com.ccsens.common.persist.dao;
import com.ccsens.common.bean.po.ProMember;
import com.ccsens.common.bean.vo.CClockingInVo;
import com.ccsens.common.bean.vo.CDeliverVo;
import com.ccsens.common.bean.vo.CMemberVo;
@ -41,9 +42,10 @@ public interface ProMemberDao extends ProMemberMapper {
* 查询需要打卡的成员,排除当前登录用户
* @param projectId 项目id
* @param userOfMemberId 当前登录人的成员id
* @param roleId 角色id
* @return 打卡记录
*/
List<CClockingInVo.ClockRecord> queryMembersOfClock(@Param("projectId") Long projectId,@Param("userId") Long userOfMemberId);
List<CClockingInVo.ClockRecord> queryMembersOfClock(@Param("projectId") Long projectId,@Param("userId") Long userOfMemberId,@Param("roleId") Long roleId);
/**
* 通过项目id和userId查找成员id和成员名
@ -63,9 +65,10 @@ public interface ProMemberDao extends ProMemberMapper {
/**
* 通过成员idList查询成员信息
* @param memberIdList 成员idList
* @return
* @param roleId 角色id
* @return 成员信息
*/
List<CClockingInVo.ClockRecord> queryMemberByIdList(@Param("memberIdList") List<Long> memberIdList);
List<CClockingInVo.ClockRecord> queryMemberByIdList(@Param("memberIdList") List<Long> memberIdList,@Param("roleId") Long roleId);
/**
* 修改手机号相同的成员的userId
@ -79,4 +82,12 @@ public interface ProMemberDao extends ProMemberMapper {
* @return 返回项目id
*/
List<Long> queryProjectIdByPhone(@Param("phone")String phone);
/**
* 根据根据成员id和角色id查询成员信息
* @param userOfMemberId 成员id
* @param roleId 角色id
* @return 成员信息
*/
ProMember queryMemberOfRole(@Param("memberId") Long userOfMemberId,@Param("roleId") Long roleId);
}

27
common/src/main/java/com/ccsens/common/service/ClockingInService.java

@ -77,11 +77,12 @@ public class ClockingInService implements IClockingInService {
List<Long> memberIdList = new ArrayList<>();
Long userOfMemberId = memberDao.findUserOfMemberId(params.getProjectId(), userId);
memberIdList.add(userOfMemberId);
ProMember member = memberDao.selectByPrimaryKey(userOfMemberId);
ProMember member = memberDao.queryMemberOfRole(userOfMemberId,params.getRoleId());
if (CollectionUtil.isEmpty(params.getMemberIdList())){
List<CClockingInVo.ClockRecord> clockRecordList = memberDao.queryMembersOfClock(params.getProjectId(),userOfMemberId);
List<CClockingInVo.ClockRecord> clockRecordList = memberDao.queryMembersOfClock(params.getProjectId(),userOfMemberId,params.getRoleId());
memberIdList.addAll(clockRecordList.stream().map(CClockingInVo.ClockRecord::getMemberId).collect(Collectors.toList()));
for (CClockingInVo.ClockingInInfo clockingInInfo : list) {
if (ObjectUtil.isNotNull(member)) {
CClockingInVo.ClockRecord clockRecord = new CClockingInVo.ClockRecord();
clockRecord.setMemberId(member.getId());
clockRecord.setMemberName(member.getName());
@ -90,6 +91,7 @@ public class ClockingInService implements IClockingInService {
if (member.getUserId().equals(clockRecord.getMemberUserId())) {
clockRecord.setIsMine((byte)1);
}
}
for (CClockingInVo.ClockRecord record : clockRecordList) {
CClockingInVo.ClockRecord otherClockRecord = new CClockingInVo.ClockRecord();
otherClockRecord.setMemberId(record.getMemberId());
@ -97,13 +99,14 @@ public class ClockingInService implements IClockingInService {
otherClockRecord.setMemberUserId(record.getMemberUserId());
clockingInInfo.getRecordList().add(otherClockRecord);
if (member.getUserId().equals(otherClockRecord.getMemberUserId())) {
clockRecord.setIsMine((byte)1);
record.setIsMine((byte)1);
}
}
}
}else {
//2.筛选成员
List<CClockingInVo.ClockRecord> clockRecordList = memberDao.queryMemberByIdList(params.getMemberIdList());
List<CClockingInVo.ClockRecord> clockRecordList = memberDao.queryMemberByIdList(params.getMemberIdList(),params.getRoleId());
if (CollectionUtil.isNotEmpty(clockRecordList)) {
memberIdList.addAll(clockRecordList.stream().map(CClockingInVo.ClockRecord::getMemberId).collect(Collectors.toList()));
for (CClockingInVo.ClockingInInfo clockingInInfo : list) {
for (CClockingInVo.ClockRecord clockRecord : clockRecordList) {
@ -119,7 +122,10 @@ public class ClockingInService implements IClockingInService {
}
}
}
//查询所有成员打卡记录
if (CollectionUtil.isNotEmpty(memberIdList)) {
List<CClockingInVo.ClockRecord> clockRecords = clockingInDao.queryByMemberId(memberIdList);
for (CClockingInVo.ClockingInInfo clockingInInfo2 : list) {
for (CClockingInVo.ClockRecord record : clockRecords) {
@ -144,6 +150,8 @@ public class ClockingInService implements IClockingInService {
}
}
}
}
List<CClockingInVo.ClockingInInfo> collect = list.stream().distinct().collect(Collectors.toList());
//查询上次检查人
for (CClockingInVo.ClockingInInfo clockingInInfo : collect) {
@ -290,7 +298,7 @@ public class ClockingInService implements IClockingInService {
list.add(firstCells);
list.add(secondCells);
for (CClockingInVo.ClockingInInfo clockingInInfo : clockingInInfos) {
//添加考勤信息
//添加考勤人员信息
for (CClockingInVo.ClockRecord clockRecord : clockingInInfo.getRecordList()) {
List<PoiUtil.PoiUtilCell> memberCells = new ArrayList<>();
PoiUtil.PoiUtilCell cell = new PoiUtil.PoiUtilCell();
@ -308,17 +316,22 @@ public class ClockingInService implements IClockingInService {
PoiUtil.PoiUtilCell morning = new PoiUtil.PoiUtilCell();
if (ObjectUtil.isNull(clockingInInfo.getRecordList().get(i).getMorning()) || 0 == clockingInInfo.getRecordList().get(i).getMorning()){
morning.setValue("未打卡");
}else{
}else if (2 == clockingInInfo.getRecordList().get(i).getMorningStatus()){
morning.setValue("已驳回");
}else {
morning.setValue(format.format(new Date(clockingInInfo.getRecordList().get(i).getMorning())));
}
poiUtilCells.add(morning);
PoiUtil.PoiUtilCell night = new PoiUtil.PoiUtilCell();
if (ObjectUtil.isNull(clockingInInfo.getRecordList().get(i).getNight()) || 0 == clockingInInfo.getRecordList().get(i).getNight()){
night.setValue("未打卡");
}else{
}else if (2 == clockingInInfo.getRecordList().get(i).getNightStatus()){
night.setValue("已驳回");
}else {
night.setValue(format.format(new Date(clockingInInfo.getRecordList().get(i).getNight())));
}
poiUtilCells.add(night);
}
}

2
common/src/main/java/com/ccsens/common/service/ShareService.java

@ -61,7 +61,7 @@ public class ShareService implements IShareService{
ProProjectShare proProjectShare = new ProProjectShare();
proProjectShare.setId(snowflake.nextId());
proProjectShare.setUserId(userId);
proProjectShare.setUrl(param.getPath()+"&shareId="+md5Code);
proProjectShare.setUrl(param.getPath()+"?share=1&shareId="+md5Code);
proProjectShare.setCode(md5Code);
proProjectShare.setProjectId(param.getProjectId());
proProjectShare.setRoleId(param.getRoleId());

43
common/src/main/resources/mapper_dao/ProMemberDao.xml

@ -45,15 +45,17 @@
<select id="queryMembersOfClock" resultType="com.ccsens.common.bean.vo.CClockingInVo$ClockRecord">
SELECT
id AS memberId,
`name` AS memberName,
user_id AS memberUserId
m.id AS memberId,
m.`name` AS memberName,
m.user_id AS memberUserId
FROM
t_pro_member
t_pro_member AS m
LEFT JOIN t_pro_role_member AS rm ON m.id = rm.member_id
WHERE
rec_status = 0
AND project_id = #{projectId}
AND id != #{userId}
m.rec_status = 0 AND rm.rec_status = 0
AND m.project_id = #{projectId}
AND rm.role_id = #{roleId}
AND m.id != #{userId}
</select>
<select id="getByUserIdAndProjectId" resultType="com.ccsens.common.bean.vo.CMemberVo$MemberIdAndName">
@ -84,14 +86,16 @@
<select id="queryMemberByIdList" resultType="com.ccsens.common.bean.vo.CClockingInVo$ClockRecord">
SELECT
id AS memberId,
`name` AS memberName,
user_id AS memberUserId
m.id AS memberId,
m.`name` AS memberName,
m.user_id AS memberUserId
FROM
t_pro_member
t_pro_member AS m
LEFT JOIN t_pro_role_member AS rm ON m.id = rm.member_id
WHERE
rec_status = 0
AND id IN
m.rec_status = 0 AND rm.rec_status = 0
AND rm.role_id = #{roleId}
AND m.id IN
<foreach collection="memberIdList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
@ -107,4 +111,17 @@
and rec_status = 0
GROUP BY project_id
</select>
<select id="queryMemberOfRole" resultType="com.ccsens.common.bean.po.ProMember">
SELECT
m.*
FROM
t_pro_member AS m
LEFT JOIN t_pro_role_member AS rm ON m.id = rm.member_id
WHERE
m.rec_status = 0
AND rm.rec_status = 0
AND m.id = #{memberId}
AND rm.role_id = #{roleId}
</select>
</mapper>

Loading…
Cancel
Save