1. 增加是否允许重新提交变更字段; 2. 会议评审结果上传去除会议未结束限制; 3. 确认名单记录短信通知标识; 4. 专家邀请情况增加确认名单短信回复内容; 5. 增加评审详细地址字段;tags/24101601
@@ -52,6 +52,9 @@ public class Meeting implements Serializable { | |||||
@ApiModelProperty("会议地址") | @ApiModelProperty("会议地址") | ||||
private String meetingAddress; | private String meetingAddress; | ||||
@ApiModelProperty("会议详细地址") | |||||
private String meetingAddressDetail; | |||||
@ApiModelProperty("评审地点经度") | @ApiModelProperty("评审地点经度") | ||||
private Double addressLongitude; | private Double addressLongitude; | ||||
@@ -53,6 +53,10 @@ public class MeetingBasicDTO { | |||||
@ApiModelProperty("评审地点") | @ApiModelProperty("评审地点") | ||||
private String meetingAddress; | private String meetingAddress; | ||||
@Length(max = 200, message = "评审详细地址超出限制") | |||||
@ApiModelProperty("评审详细地址") | |||||
private String meetingAddressDetail; | |||||
@ApiModelProperty("评审地点经度") | @ApiModelProperty("评审地点经度") | ||||
private Double addressLongitude; | private Double addressLongitude; | ||||
@@ -42,6 +42,9 @@ public class MeetingByManagerVO { | |||||
@ApiModelProperty("评审地点") | @ApiModelProperty("评审地点") | ||||
private String meetingAddress; | private String meetingAddress; | ||||
@ApiModelProperty("评审详细地址") | |||||
private String meetingAddressDetail; | |||||
@ApiModelProperty("会议状态") | @ApiModelProperty("会议状态") | ||||
private Integer status; | private Integer status; | ||||
@@ -59,6 +59,9 @@ public class MeetingDetailBasicVO { | |||||
@ApiModelProperty("评审地点") | @ApiModelProperty("评审地点") | ||||
private String meetingAddress; | private String meetingAddress; | ||||
@ApiModelProperty("评审详细地址") | |||||
private String meetingAddressDetail; | |||||
@ApiModelProperty("联系方式") | @ApiModelProperty("联系方式") | ||||
private String contact; | private String contact; | ||||
@@ -112,6 +112,7 @@ public class MeetingManageHelper { | |||||
result.setConnecter(meeting.getConnecter()); | result.setConnecter(meeting.getConnecter()); | ||||
result.setContact(meeting.getContact()); | result.setContact(meeting.getContact()); | ||||
result.setMeetingAddress(meeting.getMeetingAddress()); | result.setMeetingAddress(meeting.getMeetingAddress()); | ||||
result.setMeetingAddressDetail(meeting.getMeetingAddressDetail()); | |||||
result.setIsInnerProject(meeting.getIsInnerProject()); | result.setIsInnerProject(meeting.getIsInnerProject()); | ||||
result.setHasMeetingResult(StrUtil.isNotBlank(meeting.getResultDescription())); | result.setHasMeetingResult(StrUtil.isNotBlank(meeting.getResultDescription())); | ||||
result.setSignQrCodeUrl(meeting.getSignQrCodeUrl()); | result.setSignQrCodeUrl(meeting.getSignQrCodeUrl()); | ||||
@@ -132,9 +132,10 @@ public class MeetingNotifyHelper { | |||||
String meetingTime = sTime + "至" + eTime; | String meetingTime = sTime + "至" + eTime; | ||||
List<Notify> notifies = new ArrayList<>(); | List<Notify> notifies = new ArrayList<>(); | ||||
List<WorkNoticeInfo> workingNotices = new ArrayList<>(); | List<WorkNoticeInfo> workingNotices = new ArrayList<>(); | ||||
String meetingAddress = meeting.getMeetingAddress() + " " + meeting.getMeetingAddressDetail(); | |||||
experts.forEach(w -> { | experts.forEach(w -> { | ||||
String msgContent = String.format(MeetingMsgTemplateConst.CONFIRMED_ROSTER, | String msgContent = String.format(MeetingMsgTemplateConst.CONFIRMED_ROSTER, | ||||
w.getExpertName(), officialTime(w.getCreateOn()), meetingTime, meeting.getMeetingAddress(), | |||||
w.getExpertName(), officialTime(w.getCreateOn()), meetingTime, meetingAddress, | |||||
meeting.getConnecter(), meeting.getContact()); | meeting.getConnecter(), meeting.getContact()); | ||||
// 音信通消息 | // 音信通消息 | ||||
try { | try { | ||||
@@ -498,6 +498,7 @@ public class MeetingManage { | |||||
.meetingName(meeting.getName()) | .meetingName(meeting.getName()) | ||||
.meetingType(meeting.getType()) | .meetingType(meeting.getType()) | ||||
.meetingAddress(meeting.getMeetingAddress()) | .meetingAddress(meeting.getMeetingAddress()) | ||||
.meetingAddressDetail(meeting.getMeetingAddressDetail()) | |||||
.typeName(getDictName(meeting.getType())) | .typeName(getDictName(meeting.getType())) | ||||
.startTime(meeting.getStartTime()) | .startTime(meeting.getStartTime()) | ||||
.endTime(meeting.getEndTime()) | .endTime(meeting.getEndTime()) | ||||
@@ -961,6 +962,7 @@ public class MeetingManage { | |||||
data.setEndTime(meeting.getEndTime()); | data.setEndTime(meeting.getEndTime()); | ||||
data.setMeetingName(meeting.getName()); | data.setMeetingName(meeting.getName()); | ||||
data.setMeetingAddress(meeting.getMeetingAddress()); | data.setMeetingAddress(meeting.getMeetingAddress()); | ||||
data.setMeetingAddressDetail(meeting.getMeetingAddressDetail()); | |||||
data.setConnecter(meeting.getConnecter()); | data.setConnecter(meeting.getConnecter()); | ||||
data.setContact(meeting.getContact()); | data.setContact(meeting.getContact()); | ||||
data.setLongitude(meeting.getAddressLongitude()); | data.setLongitude(meeting.getAddressLongitude()); | ||||
@@ -34,6 +34,9 @@ public class MeetingExpertToMhDTO { | |||||
@ApiModelProperty("会议地址") | @ApiModelProperty("会议地址") | ||||
private String meetingAddress; | private String meetingAddress; | ||||
@ApiModelProperty("会议地址详情") | |||||
private String meetingAddressDetail; | |||||
@ApiModelProperty("会议地址经度") | @ApiModelProperty("会议地址经度") | ||||
private Double longitude; | private Double longitude; | ||||
@@ -15,7 +15,6 @@ import com.hz.pm.api.sys.model.entity.UserRole; | |||||
import com.hz.pm.api.sys.service.IRoleService; | import com.hz.pm.api.sys.service.IRoleService; | ||||
import com.hz.pm.api.sys.service.IUserRoleService; | import com.hz.pm.api.sys.service.IUserRoleService; | ||||
import com.hz.pm.api.user.helper.MhUnitCache; | import com.hz.pm.api.user.helper.MhUnitCache; | ||||
import com.hz.pm.api.user.model.dto.UnitDTO; | |||||
import com.hz.pm.api.user.model.entity.UserInfo; | import com.hz.pm.api.user.model.entity.UserInfo; | ||||
import com.hz.pm.api.user.model.enumeration.UserAvailableEnum; | import com.hz.pm.api.user.model.enumeration.UserAvailableEnum; | ||||
import com.hz.pm.api.user.model.po.ReqUserDetailEditPO; | import com.hz.pm.api.user.model.po.ReqUserDetailEditPO; | ||||
@@ -75,6 +74,8 @@ public class UserInfoManage { | |||||
if (page.getTotal() == 0) { | if (page.getTotal() == 0) { | ||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
List<Long> userIds = CollUtils.fieldList(page.getRecords(), UserInfo::getId); | |||||
Map<Long, List<UserRoleVO>> userRoleMap = getUserRoleMap(userIds); | |||||
List<UserInfoListVO> result = new ArrayList<>(); | List<UserInfoListVO> result = new ArrayList<>(); | ||||
page.getRecords().forEach(r -> { | page.getRecords().forEach(r -> { | ||||
UserInfoListVO item = new UserInfoListVO(); | UserInfoListVO item = new UserInfoListVO(); | ||||
@@ -82,7 +83,7 @@ public class UserInfoManage { | |||||
userStatusBuilder(item, r); | userStatusBuilder(item, r); | ||||
item.setUpdateTime(r.getUpdateOn()); | item.setUpdateTime(r.getUpdateOn()); | ||||
item.setEmployeeCode(r.getEmployeeCode()); | item.setEmployeeCode(r.getEmployeeCode()); | ||||
item.setUserRoleList(getUserRole(item.getUserId())); | |||||
item.setUserRoleList(userRoleMap.get(r.getId())); | |||||
item.setUserId(r.getId()); | item.setUserId(r.getId()); | ||||
item.setPhoneNo(r.getMobile()); | item.setPhoneNo(r.getMobile()); | ||||
item.setMhUnitId(r.getMhUnitId()); | item.setMhUnitId(r.getMhUnitId()); | ||||
@@ -154,6 +155,36 @@ public class UserInfoManage { | |||||
return userRoleInfoList; | return userRoleInfoList; | ||||
} | } | ||||
private Map<Long, List<UserRoleVO>> getUserRoleMap(Collection<Long> userIds) { | |||||
if (CollUtil.isEmpty(userIds)) { | |||||
return Collections.emptyMap(); | |||||
} | |||||
List<UserRole> userRoleList = userRoleService.list(Wrappers.lambdaQuery(UserRole.class) | |||||
.in(UserRole::getUserId, userIds) | |||||
.orderByAsc(UserRole::getCreateOn)); | |||||
if (CollUtil.isNotEmpty(userRoleList)) { | |||||
List<Long> roleIds = CollUtils.fieldList(userRoleList, UserRole::getRoleId); | |||||
List<Role> roleList = roleService.listByIds(roleIds); | |||||
Map<Long, Role> roleMap = CollUtils.listToMap(roleList, Role::getId); | |||||
Map<Long, List<UserRoleVO>> userRoleMap = userRoleList.stream() | |||||
.filter(r -> roleMap.containsKey(r.getRoleId())) | |||||
.collect(Collectors.groupingBy(UserRole::getUserId, | |||||
Collectors.mapping(w -> { | |||||
Role role = roleMap.get(w.getRoleId()); | |||||
UserRoleVO userRoleVO = new UserRoleVO(); | |||||
userRoleVO.setId(role.getId()); | |||||
userRoleVO.setName(role.getName()); | |||||
userRoleVO.setCreateOn(role.getCreateOn()); | |||||
return userRoleVO; | |||||
}, Collectors.toList()))); | |||||
for (List<UserRoleVO> value : userRoleMap.values()) { | |||||
value.sort(Comparator.comparing(UserRoleVO::getCreateOn)); | |||||
} | |||||
return userRoleMap; | |||||
} | |||||
return Collections.emptyMap(); | |||||
} | |||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public void disableOrEnable(ReqUserDisableOrEnablePO req) { | public void disableOrEnable(ReqUserDisableOrEnablePO req) { | ||||
Long userId; | Long userId; | ||||