diff --git a/common/src/main/java/com/ccsens/common/api/TaskController.java b/common/src/main/java/com/ccsens/common/api/TaskController.java index 2d8328a5..597539cc 100644 --- a/common/src/main/java/com/ccsens/common/api/TaskController.java +++ b/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 createShareUrl(@ApiParam @Validated @RequestBody QueryDto params) { +// CShareVo.CreateShareUrl shareUrl = shareService.createShareUrl(params.getParam(), params.getUserId()); +// return JsonResponse.newInstance().ok(shareUrl); +// } //} diff --git a/common/src/main/java/com/ccsens/common/bean/dto/CClockingInDto.java b/common/src/main/java/com/ccsens/common/bean/dto/CClockingInDto.java index 21d4fc60..a9cf0353 100644 --- a/common/src/main/java/com/ccsens/common/bean/dto/CClockingInDto.java +++ b/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 memberIdList; } diff --git a/common/src/main/java/com/ccsens/common/persist/dao/ProMemberDao.java b/common/src/main/java/com/ccsens/common/persist/dao/ProMemberDao.java index 5abf7c05..eab63ad9 100644 --- a/common/src/main/java/com/ccsens/common/persist/dao/ProMemberDao.java +++ b/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 queryMembersOfClock(@Param("projectId") Long projectId,@Param("userId") Long userOfMemberId); + List 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 queryMemberByIdList(@Param("memberIdList") List memberIdList); + List queryMemberByIdList(@Param("memberIdList") List memberIdList,@Param("roleId") Long roleId); /** * 修改手机号相同的成员的userId @@ -79,4 +82,12 @@ public interface ProMemberDao extends ProMemberMapper { * @return 返回项目id */ List queryProjectIdByPhone(@Param("phone")String phone); + + /** + * 根据根据成员id和角色id查询成员信息 + * @param userOfMemberId 成员id + * @param roleId 角色id + * @return 成员信息 + */ + ProMember queryMemberOfRole(@Param("memberId") Long userOfMemberId,@Param("roleId") Long roleId); } diff --git a/common/src/main/java/com/ccsens/common/service/ClockingInService.java b/common/src/main/java/com/ccsens/common/service/ClockingInService.java index d2fc62db..dc6d5637 100644 --- a/common/src/main/java/com/ccsens/common/service/ClockingInService.java +++ b/common/src/main/java/com/ccsens/common/service/ClockingInService.java @@ -77,18 +77,20 @@ public class ClockingInService implements IClockingInService { List 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 clockRecordList = memberDao.queryMembersOfClock(params.getProjectId(),userOfMemberId); + List clockRecordList = memberDao.queryMembersOfClock(params.getProjectId(),userOfMemberId,params.getRoleId()); memberIdList.addAll(clockRecordList.stream().map(CClockingInVo.ClockRecord::getMemberId).collect(Collectors.toList())); for (CClockingInVo.ClockingInInfo clockingInInfo : list) { - CClockingInVo.ClockRecord clockRecord = new CClockingInVo.ClockRecord(); - clockRecord.setMemberId(member.getId()); - clockRecord.setMemberName(member.getName()); - clockRecord.setMemberUserId(member.getUserId()); - clockingInInfo.getRecordList().add(clockRecord); - if (member.getUserId().equals(clockRecord.getMemberUserId())) { - clockRecord.setIsMine((byte)1); + if (ObjectUtil.isNotNull(member)) { + CClockingInVo.ClockRecord clockRecord = new CClockingInVo.ClockRecord(); + clockRecord.setMemberId(member.getId()); + clockRecord.setMemberName(member.getName()); + clockRecord.setMemberUserId(member.getUserId()); + clockingInInfo.getRecordList().add(clockRecord); + if (member.getUserId().equals(clockRecord.getMemberUserId())) { + clockRecord.setIsMine((byte)1); + } } for (CClockingInVo.ClockRecord record : clockRecordList) { CClockingInVo.ClockRecord otherClockRecord = new CClockingInVo.ClockRecord(); @@ -97,53 +99,59 @@ 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 clockRecordList = memberDao.queryMemberByIdList(params.getMemberIdList()); - memberIdList.addAll(clockRecordList.stream().map(CClockingInVo.ClockRecord::getMemberId).collect(Collectors.toList())); - for (CClockingInVo.ClockingInInfo clockingInInfo : list) { - for (CClockingInVo.ClockRecord clockRecord : clockRecordList) { - CClockingInVo.ClockRecord filterRecord = new CClockingInVo.ClockRecord(); - filterRecord.setMemberId(clockRecord.getMemberId()); - filterRecord.setMemberName(clockRecord.getMemberName()); - filterRecord.setMemberUserId(clockRecord.getMemberUserId()); - if (filterRecord.getMemberUserId().equals(userId)) { - filterRecord.setIsMine((byte)1); + List 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) { + CClockingInVo.ClockRecord filterRecord = new CClockingInVo.ClockRecord(); + filterRecord.setMemberId(clockRecord.getMemberId()); + filterRecord.setMemberName(clockRecord.getMemberName()); + filterRecord.setMemberUserId(clockRecord.getMemberUserId()); + if (filterRecord.getMemberUserId().equals(userId)) { + filterRecord.setIsMine((byte)1); + } + clockingInInfo.getRecordList().add(filterRecord); } - clockingInInfo.getRecordList().add(filterRecord); } } + } //查询所有成员打卡记录 - List clockRecords = clockingInDao.queryByMemberId(memberIdList); - for (CClockingInVo.ClockingInInfo clockingInInfo2 : list) { - for (CClockingInVo.ClockRecord record : clockRecords) { - if (format.format(new Date(record.getMorning())).equals(clockingInInfo2.getDateTime()) || format.format(new Date(record.getNight())).equals(clockingInInfo2.getDateTime())) { - for (CClockingInVo.ClockRecord clockRecord : clockingInInfo2.getRecordList()) { - if (clockRecord.getMemberId().equals(record.getMemberId())) { + if (CollectionUtil.isNotEmpty(memberIdList)) { + List clockRecords = clockingInDao.queryByMemberId(memberIdList); + for (CClockingInVo.ClockingInInfo clockingInInfo2 : list) { + for (CClockingInVo.ClockRecord record : clockRecords) { + if (format.format(new Date(record.getMorning())).equals(clockingInInfo2.getDateTime()) || format.format(new Date(record.getNight())).equals(clockingInInfo2.getDateTime())) { + for (CClockingInVo.ClockRecord clockRecord : clockingInInfo2.getRecordList()) { + if (clockRecord.getMemberId().equals(record.getMemberId())) { - clockRecord.setId(record.getId()); - clockRecord.setMemberName(record.getMemberName()); - clockRecord.setMemberId(record.getMemberId()); - clockRecord.setCheckerName(record.getCheckerName()); - clockRecord.setCheckerId(record.getCheckerId()); - clockRecord.setMorning(record.getMorning()); - clockRecord.setMorningStatus(record.getMorningStatus()); - clockRecord.setNight(record.getNight()); - clockRecord.setNightStatus(record.getNightStatus()); - if (record.getCheckerId().equals(member.getId())) { - clockRecord.setIsChecker((byte)1); + clockRecord.setId(record.getId()); + clockRecord.setMemberName(record.getMemberName()); + clockRecord.setMemberId(record.getMemberId()); + clockRecord.setCheckerName(record.getCheckerName()); + clockRecord.setCheckerId(record.getCheckerId()); + clockRecord.setMorning(record.getMorning()); + clockRecord.setMorningStatus(record.getMorningStatus()); + clockRecord.setNight(record.getNight()); + clockRecord.setNightStatus(record.getNightStatus()); + if (record.getCheckerId().equals(member.getId())) { + clockRecord.setIsChecker((byte)1); + } } } } } } } + List 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 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); + } } diff --git a/common/src/main/java/com/ccsens/common/service/ShareService.java b/common/src/main/java/com/ccsens/common/service/ShareService.java index 9838ca0b..6511b89b 100644 --- a/common/src/main/java/com/ccsens/common/service/ShareService.java +++ b/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()); diff --git a/common/src/main/resources/mapper_dao/ProMemberDao.xml b/common/src/main/resources/mapper_dao/ProMemberDao.xml index 1fe9dcc5..80d075bb 100644 --- a/common/src/main/resources/mapper_dao/ProMemberDao.xml +++ b/common/src/main/resources/mapper_dao/ProMemberDao.xml @@ -45,15 +45,17 @@ 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 #{id} @@ -107,4 +111,17 @@ and rec_status = 0 GROUP BY project_id + +