Merge branch 'master' into 24年6月功能安全中心

This commit is contained in:
lijiarao
2024-07-02 15:18:18 +08:00
15 changed files with 851 additions and 6 deletions
+58
View File
@@ -0,0 +1,58 @@
-- auto-generated definition
create table pay_meeting_overseas_situation
(
id varchar(36) not null comment 'id',
create_by varchar(50) null comment '创建人',
create_time datetime null comment '创建日期',
update_by varchar(50) null comment '更新人',
update_time datetime null comment '更新日期',
meeting_id varchar(50) null comment '会议id',
photo varchar(50) null comment '照片',
name varchar(200) null comment '姓名',
unit varchar(200) null comment '单位',
post varchar(200) null comment '职务',
nationality varchar(200) null comment '国籍',
address varchar(200) null comment '地址',
email varchar(200) null comment '邮箱',
phone varchar(200) null comment '联系电话',
need_visa tinyint(1) null comment '是否需要签证',
foreign_name varchar(200) null comment '外文姓名',
sex varchar(50) null comment '性别',
birthday date null comment '出生日期',
passport_no varchar(200) null comment '护照号码',
entry_date date null comment '出境日期',
exit_date date null comment '入境日期',
embassies_and_consulates varchar(200) null comment '办理签证使领馆',
constraint Index_1
unique (id)
)
comment '海外会议报名表';
create index pm_situation_idx_meeting_id
on pay_meeting_overseas_situation (meeting_id);
alter table pay_meeting_overseas_situation
add primary key (id);
insert into sys_permission (id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external, external_terminal_show)
values ('1805490588726943746', '1430376424950026242', '海外会议报名信息编辑页', '/incomePayments/meetManage/SignUpInfoEditOverseas', 'incomePayments/meetManage/SignUpInfoEditOverseas', null, null, 1, null, '1', 13, 0, null, 1, 1, 0, 1, null, 'LKGLZ', '2024-06-25 14:37:55', 'LKGLZ', '2024-06-25 14:43:42', 0, 0, '1', 0, 1),
('1803343905960304641', '1803335479314161665', '删除', null, null, null, null, 2, 'overseasMeetingSituation:delete', '1', 1, 0, null, 1, 1, 0, 0, null, 'LKGLZ', '2024-06-19 16:27:46', null, null, 0, 0, '1', 0, 1),
('1803343796841291778', '1803335479314161665', '编辑', '', null, null, null, 2, 'overseasMeetingSituation:edit', '1', 1, 0, null, 1, 1, 0, 0, null, 'LKGLZ', '2024-06-19 16:27:20', null, null, 0, 0, '1', 0, 1),
('1803343698526806018', '1803335479314161665', '批量删除', '', null, null, null, 2, 'overseasMeetingSituation:batchDel', '1', 1, 0, null, 1, 1, 0, 0, null, 'LKGLZ', '2024-06-19 16:26:57', null, null, 0, 0, '1', 0, 1),
('1803343493899296770', '1803335479314161665', '导出', '', null, null, null, 2, 'overseasMeetingSituation:export', '1', 1, 0, null, 1, 1, 0, 0, null, 'LKGLZ', '2024-06-19 16:26:08', null, null, 0, 0, '1', 0, 1),
('1803343388232196098', '1803335479314161665', '添加参会人', '', null, null, null, 2, 'overseasMeetingSituation:add', '1', 1, 0, null, 1, 1, 0, 0, null, 'LKGLZ', '2024-06-19 16:25:43', null, null, 0, 0, '1', 0, 1),
('1803343206362980353', '1803335479314161665', '查询', null, null, null, null, 2, 'overseasMeetingSituation:search', '1', 1, 0, null, 1, 1, 0, 0, null, 'LKGLZ', '2024-06-19 16:25:00', null, null, 0, 0, '1', 0, 1),
('1803339101372489730', '1803308298231947266', '删除', '', null, null, null, 2, 'overseasMeeting:delete', '1', 1, 0, null, 1, 1, 0, 0, null, 'LKGLZ', '2024-06-19 16:08:41', null, null, 0, 0, '1', 0, 1),
('1803338998020644865', '1803308298231947266', '编辑', null, null, null, null, 2, 'overseasMeeting:edit', '1', 1, 0, null, 1, 1, 0, 0, null, 'LKGLZ', '2024-06-19 16:08:16', null, null, 0, 0, '1', 0, 1),
('1803338903925628930', '1803308298231947266', '上传文件', null, null, null, null, 2, 'overseasMeeting:upload', '1', 1, 0, null, 1, 1, 0, 0, null, 'LKGLZ', '2024-06-19 16:07:54', null, null, 0, 0, '1', 0, 1),
('1803338833180303361', '1803308298231947266', '会议纪要', null, null, null, null, 2, 'overseasMeeting:uploadCouncil', '1', 1, 0, null, 1, 1, 0, 0, null, 'LKGLZ', '2024-06-19 16:07:37', null, null, 0, 0, '1', 0, 1),
('1803338519882571778', '1803308298231947266', '批量删除', '', null, null, null, 2, 'overseasMeeting:batchDel', '1', 1, 0, null, 1, 1, 0, 0, null, 'LKGLZ', '2024-06-19 16:06:22', null, null, 0, 0, '1', 0, 1),
('1803338277288222722', '1803308298231947266', '导出', '', null, null, null, 2, 'overseasMeeting:export', '1', 1, 0, null, 1, 1, 0, 0, null, 'LKGLZ', '2024-06-19 16:05:24', 'LKGLZ', '2024-06-19 16:05:41', 0, 0, '1', 0, 1),
('1803338186548649985', '1803308298231947266', '新增', null, null, null, null, 2, 'overseasMeeting:add', '1', 1, 0, null, 1, 1, 0, 0, null, 'LKGLZ', '2024-06-19 16:05:03', null, null, 0, 0, '1', 0, 1),
('1803338041375399938', '1803308298231947266', '查询', '', null, null, null, 2, 'overseasMeeting:search', '1', 1, 0, null, 1, 1, 0, 0, null, 'LKGLZ', '2024-06-19 16:04:28', null, null, 0, 0, '1', 0, 1),
('1803335479314161665', '1430376424950026242', '海外会议参会情况', '/incomePayments/meetManage/AttendanceOverseasMeeting', 'incomePayments/meetManage/Attendance', null, null, 1, null, '1', 9, 0, null, 1, 0, 0, 1, null, 'LKGLZ', '2024-06-19 15:54:17', null, null, 0, 0, '1', 0, 1),
('1803308298231947266', '', '海外会议', '/projectManagement/OverseasMeeting', 'projectManagement/OverseasMeeting', null, null, 0, null, '1', 5.1, 0, 'solution', 1, 0, 0, 0, null, 'LKGLZ', '2024-06-19 14:06:17', 'LKGLZ', '2024-06-19 14:11:52', 0, 0, '1', 0, 1);
INSERT INTO sys_dict_item (id, dict_id, item_text, item_value, description, sort_order, status, create_by, create_time, update_by, update_time) VALUES ('1803307382065930242', '1432280766382727169', '海外会议', '8', '', 8.00, 1, 'LKGLZ', '2024-06-19 14:02:38', 'LKGLZ', '2024-06-25 10:40:29');
@@ -129,6 +129,7 @@ public class ShiroConfig {
//不需要权限的接口
filterChainDefinitionMap.put("/meeting/payMeetingSituation/signUp","anon");//报名
filterChainDefinitionMap.put("/meeting/overseasSituation/signUp","anon");//海外会议报名
filterChainDefinitionMap.put("/meeting/payMeetingSituation/validInvitationCode","anon");//报名
filterChainDefinitionMap.put("/meeting/payMeeting/queryById","anon");//会议详情
filterChainDefinitionMap.put("/sys/common/upload","anon");//上传文件
@@ -64,6 +64,14 @@ public class MeetingCommon {
* 起草组会议
*/
public final static Integer DRAFTING_GROUP_MEETING_INT = 7;
/**
* 海外会议
*/
public final static String OVERSEAS_MEETING = "8";
/**
* 起草组会议
*/
public final static Integer OVERSEAS_MEETING_INT = 8;
/**
* 标准宣贯
*/
@@ -0,0 +1,224 @@
package com.jero.meeting.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.enums.CompanyMessageEnums;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.data.service.IPayCaseCommitteeService;
import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingHotelContacts;
import com.jero.meeting.service.IPayMeetingHotelContactsService;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.meeting.vo.PayMeetingVO;
import com.jero.meeting.vo.PublishReminderVO;
import com.jero.meeting.vo.UploadFileVO;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.system.volid.group.UpdateGroup;
import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.service.IPayWorkingGroupService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
/**
* @description: 会议管理
* @author: jero-boot
* @date: 2021-09-02
* @version: V1.0
*/
@Api(tags = "会议管理-海外会议")
@RestController
@RequestMapping("/meeting/overseas")
@Slf4j
public class OverseasMeetingController extends JeroController<PayMeeting, IPayMeetingService> {
@Resource
private IPayMeetingService payMeetingService;
@Resource
private ISysBaseAPI sysBaseAPI;
@Resource
private IPayMeetingHotelContactsService meetingHotelContactsService;
@Resource
private IPayWorkingGroupService payWorkingGroupService;
public static final String MEETING_TYPE = MeetingCommon.OVERSEAS_MEETING;
public static final Integer MEETING_TYPE_INT = MeetingCommon.OVERSEAS_MEETING_INT;
/**
* 分页列表查询
*/
@RequiresPermissions("overseasMeeting:search")
@ApiOperation(value = "会议管理-分页列表查询", notes = "会议管理-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(PayMeeting payMeeting,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
payMeeting.setMeetingType(MEETING_TYPE_INT);
IPage<PayMeeting> pageList = payMeetingService.queryPageList(payMeeting, pageNo, pageSize, req);
return Result.OK(pageList);
}
/**
* 添加
*/
@RequiresPermissions("overseasMeeting:add")
@AutoLog(value = "会议管理-添加")
@ApiOperation(value = "会议管理-添加", notes = "会议管理-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingVO payMeetingVO) {
String meetingType = payMeetingVO.getMeetingType();
if (!Objects.equals(meetingType, MEETING_TYPE)) {
throw new RuntimeException();
}
ValidUtil.validate(payMeetingVO);
payMeetingService.add(payMeetingVO);
return Result.OK("添加成功!");
}
private void extracted(String id) {
PayMeeting payMeeting = payMeetingService.getById(id);
Integer meetingType = payMeeting.getMeetingType();
if (!Objects.equals(meetingType, MEETING_TYPE_INT)) {
throw new RuntimeException();
}
}
/**
* 编辑
*/
@RequiresPermissions("overseasMeeting:edit")
@AutoLog(value = "会议管理-编辑")
@ApiOperation(value = "会议管理-编辑", notes = "会议管理-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMeetingVO payMeetingVO) {
String id = payMeetingVO.getId();
extracted(id);
ValidUtil.validate(payMeetingVO, UpdateGroup.class);
payMeetingService.editById(payMeetingVO);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*/
@RequiresPermissions("overseasMeeting:delete")
@AutoLog(value = "会议管理-通过id删除")
@ApiOperation(value = "会议管理-通过id删除", notes = "会议管理-通过id删除")
@GetMapping(value = "/delete")
public Result<?> delete(@RequestParam(name = "id") String id) {
extracted(id);
payMeetingService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*/
@RequiresPermissions("overseasMeeting:batchDel")
@AutoLog(value = "会议管理-批量删除")
@ApiOperation(value = "会议管理-批量删除", notes = "会议管理-批量删除")
@GetMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name = "ids") String ids) {
List<String> idList = Arrays.asList(ids.split(","));
for (String id : idList) {
extracted(id);
}
this.payMeetingService.deleteByIds(idList);
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*/
@ApiOperation(value = "会议管理-通过id查询", notes = "会议管理-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name = "id") String id) {
PayMeeting meeting = payMeetingService.queryById(id);
if (meeting == null || !Objects.equals(meeting.getMeetingType(), MEETING_TYPE_INT)) {
return Result.error("未找到对应数据");
}
//查询会议负责人
LoginUser user = sysBaseAPI.getUserById(meeting.getDirectorId());
meeting.setDirectorName(user.getRealname());
meeting.setDirectorPhone(PasswordUtil.decrypt(user.getPhone()));
PayMeetingVO payMeetingVO = new PayMeetingVO();
BeanUtils.copyProperties(meeting, payMeetingVO);
String meetingType = meeting.getMeetingType().toString();
//String meetingType1 = sysBaseAPI.translateDict("meeting_type", meetingType);
payMeetingVO.setMeetingType(meetingType);
return Result.OK(payMeetingVO);
}
/**
* 导出excel
*/
@RequiresPermissions("overseasMeeting:export")
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeeting payMeeting) {
payMeeting.setMeetingType(MEETING_TYPE_INT);
IPage<PayMeeting> queryPageList = payMeetingService.queryPageList(payMeeting, -1, -1, request);
List<Object> exportList = payMeetingService.getExportList(request, queryPageList);
Class<?> aClass = payMeetingService.getaClass(MEETING_TYPE_INT);
return super.exportListXls(exportList, aClass, "会议管理");
}
/**
* 上传资料
*/
@AutoLog(value = "上传资料")
@RequiresPermissions("overseasMeeting:upload")
@ApiOperation(value = "上传资料", notes = "上传资料")
@PostMapping(value = "/uploadFile")
public Result<?> uploadFile(@RequestBody UploadFileVO uploadFileVO) {
List<String> strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MEETING_TYPE_INT, false);
return Result.OK("上传资料成功!",strings);
}
/**
* 上传会议纪要
*/
@AutoLog(value = "上传会议纪要")
@RequiresPermissions("overseasMeeting:uploadCouncil")
@ApiOperation(value = "上传会议纪要", notes = "上传会议纪要")
@PostMapping(value = "/uploadCouncilFile")
public Result<?> uploadCouncilFile(@RequestBody UploadFileVO uploadFileVO) {
payMeetingService.uploadFile(uploadFileVO, MEETING_TYPE_INT);
return Result.OK("上传资料成功!");
}
/**
* 发布提醒
*/
@AutoLog("发布提醒")
@RequiresPermissions("overseasMeeting:publish")
@ApiOperation(value = "发布提醒", notes = "发布提醒")
@PostMapping(value = "/publishReminder")
public Result<?> publishReminder(@RequestBody PublishReminderVO publishReminderVO) {
List<String> strings = payMeetingService.publishReminder(publishReminderVO, CompanyMessageEnums.MSG1, "C_OPEN_TYPE1");
return Result.OK("发布成功",strings);
}
}
@@ -0,0 +1,168 @@
package com.jero.meeting.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.aspect.annotation.CompanyNameTranslate;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.aspect.annotation.DictPoint;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.util.oConvertUtils;
import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.entity.MeetingOverseasSituation;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.meeting.service.MeetingOverseasSituationService;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.project.common.PayProjectCommon;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @description: 参会人员信息
* @author: jero-boot
* @date: 2021-09-02
* @version: V1.0
*/
@Api(tags = "参会人员信息-海外会议")
@RestController
@RequestMapping("/meeting/overseasSituation")
@Slf4j
public class OverseasMeetingSituationController extends JeroController<MeetingOverseasSituation, MeetingOverseasSituationService> {
@Resource
private MeetingOverseasSituationService overseasSituationService;
@Resource
private IPayMeetingSituationService payMeetingSituationService;
private final Integer MEETING_TYPE = MeetingCommon.OVERSEAS_MEETING_INT;
/**
* 分页列表查询
*/
@RequiresPermissions("overseasMeetingSituation:search")
@ApiOperation(value = "参会人员信息-分页列表查询", notes = "参会人员信息-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(MeetingOverseasSituation payMeetingSituation,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
String meetingId = payMeetingSituation.getMeetingId();
if (StringUtils.isBlank(meetingId)) {
throw new JeroBootException("会议id不能为空");
}
QueryWrapper<MeetingOverseasSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, req.getParameterMap());
Page<MeetingOverseasSituation> page = new Page<>(pageNo, pageSize);
IPage<MeetingOverseasSituation> pageList = overseasSituationService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加参会人
*/
@RequiresPermissions("overseasMeetingSituation:add")
@AutoLog(value = "参会人员信息-添加参会人")
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody MeetingOverseasSituation payMeetingSituation) {
overseasSituationService.add(payMeetingSituation, MEETING_TYPE);
return Result.OK("添加成功!");
}
/**
* 报名
*/
@ApiOperation(value = "参会人员信息-报名", notes = "参会人员信息-报名")
@PostMapping(value = "/signUp")
public Result<?> signUp(@RequestBody MeetingOverseasSituation payMeetingSituation) {
overseasSituationService.add(payMeetingSituation, MEETING_TYPE);
return Result.OK("添加成功!");
}
/**
* 编辑
*/
@AutoLog(value = "参会人员信息-编辑")
@RequiresPermissions("overseasMeetingSituation:edit")
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody MeetingOverseasSituation payMeetingSituation) {
overseasSituationService.editById(payMeetingSituation, MEETING_TYPE);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*/
@RequiresPermissions("overseasMeetingSituation:delete")
@AutoLog(value = "参会人员信息-通过id删除")
@ApiOperation(value = "参会人员信息-通过id删除", notes = "参会人员信息-通过id删除")
@GetMapping(value = "/delete")
public Result<?> delete(@RequestParam(name = "id") String id) {
overseasSituationService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*/
@RequiresPermissions("overseasMeetingSituation:batchDel")
@AutoLog(value = "参会人员信息-批量删除")
@ApiOperation(value = "参会人员信息-批量删除", notes = "参会人员信息-批量删除")
@GetMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name = "ids") String ids) {
this.overseasSituationService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*/
@DictPoint
@ApiOperation(value = "参会人员信息-通过id查询", notes = "参会人员信息-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name = "id") String id) {
MeetingOverseasSituation payMeetingSituation = overseasSituationService.getById(id);
if (payMeetingSituation == null) {
return Result.error("未找到对应数据");
}
return Result.OK(payMeetingSituation);
}
/**
* 导出excel
*/
@RequiresPermissions("overseasMeetingSituation:export")
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, MeetingOverseasSituation payMeetingSituation) {
String meetingId = payMeetingSituation.getMeetingId();
if (StringUtils.isBlank(meetingId)) {
throw new JeroBootException("会议id不能为空");
}
QueryWrapper<MeetingOverseasSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, request.getParameterMap());
List<MeetingOverseasSituation> pageList = overseasSituationService.list(queryWrapper);
List<MeetingOverseasSituation> exportList;
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
} else {
exportList = pageList;
}
return super.exportListXls(exportList, MeetingOverseasSituation.class, "参会人员信息");
}
}
@@ -0,0 +1,201 @@
package com.jero.meeting.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 海外会议报名表
*
* @author liJiaRao
* @date 2024-06-24 11:20
*/
@ApiModel(description = "海外会议报名表")
@Data
@TableName(value = "pay_meeting_overseas_situation")
public class MeetingOverseasSituation {
/**
* id
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private String id;
/**
* 创建人
*/
@TableField(value = "create_by")
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 创建日期
*/
@TableField(value = "create_time")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**
* 更新人
*/
@TableField(value = "update_by")
@ApiModelProperty(value = "更新人")
private String updateBy;
/**
* 更新日期
*/
@TableField(value = "update_time")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
/**
* 会议id
*/
@TableField(value = "meeting_id")
@ApiModelProperty(value = "会议id")
private String meetingId;
/**
* 照片
*/
@TableField(value = "photo")
@ApiModelProperty(value = "照片")
private String photo;
/**
* 姓名
*/
@TableField(value = "`name`")
@ApiModelProperty(value = "姓名")
@Excel(name = "姓名", width = 15)
private String name;
/**
* 职务
*/
@TableField(value = "post")
@ApiModelProperty(value = "职务")
@Excel(name = "职务", width = 15)
private String post;
/**
* 单位
*/
@TableField(value = "unit")
@ApiModelProperty(value = "单位")
@Excel(name = "单位", width = 15)
private String unit;
/**
* 国籍
*/
@TableField(value = "nationality")
@ApiModelProperty(value = "国籍")
@Excel(name = "国籍", width = 15)
private String nationality;
/**
* 地址
*/
@TableField(value = "address")
@ApiModelProperty(value = "地址")
@Excel(name = "地址", width = 15)
private String address;
/**
* 邮箱
*/
@TableField(value = "email")
@ApiModelProperty(value = "邮箱")
@Excel(name = "邮箱", width = 15)
private String email;
/**
* 联系电话
*/
@TableField(value = "phone")
@ApiModelProperty(value = "联系电话")
@Excel(name = "联系电话", width = 15)
private String phone;
/**
* 是否需要签证
*/
@Dict(dicCode = "yn")
@TableField(value = "need_visa")
@ApiModelProperty(value = "是否需要签证")
@Excel(name = "是否需要签证", width = 15, dicCode = "yn")
private Integer needVisa;
/**
* 外文姓名
*/
@TableField(value = "foreign_name")
@ApiModelProperty(value = "外文姓名")
private String foreignName;
/**
* 性别
*/
@TableField(value = "sex")
@ApiModelProperty(value = "性别")
@Excel(name = "性别", width = 15)
private String sex;
/**
* 出生日期
*/
@TableField(value = "birthday")
@ApiModelProperty(value = "出生日期")
@Excel(name = "出生日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date birthday;
/**
* 护照号码
*/
@TableField(value = "passport_no")
@ApiModelProperty(value = "护照号码")
@Excel(name = "护照号码", width = 15)
private String passportNo;
/**
* 入境日期
*/
@TableField(value = "entry_date")
@ApiModelProperty(value = "入境日期")
@Excel(name = "入境日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date entryDate;
/**
* 出境日期
*/
@TableField(value = "exit_date")
@ApiModelProperty(value = "出境日期")
@Excel(name = "出境日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date exitDate;
/**
* 办理签证使领馆
*/
@TableField(value = "embassies_and_consulates")
@ApiModelProperty(value = "办理签证使领馆")
@Excel(name = "办理签证使领馆", width = 15)
private String embassiesAndConsulates;
}
@@ -0,0 +1,12 @@
package com.jero.meeting.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.meeting.entity.MeetingOverseasSituation;
/**
*
*@author liJiaRao
*@date 2024-06-24 11:20
*/
public interface MeetingOverseasSituationMapper extends BaseMapper<MeetingOverseasSituation> {
}
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.meeting.mapper.MeetingOverseasSituationMapper">
<resultMap id="BaseResultMap" type="com.jero.meeting.entity.MeetingOverseasSituation">
<!--@mbg.generated-->
<!--@Table pay_meeting_overseas_situation-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="meeting_id" jdbcType="VARCHAR" property="meetingId" />
<result column="photo" jdbcType="VARCHAR" property="photo" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="unit" jdbcType="VARCHAR" property="unit" />
<result column="nationality" jdbcType="VARCHAR" property="nationality" />
<result column="address" jdbcType="VARCHAR" property="address" />
<result column="email" jdbcType="VARCHAR" property="email" />
<result column="phone" jdbcType="VARCHAR" property="phone" />
<result column="need_visa" jdbcType="BOOLEAN" property="needVisa" />
<result column="foreign_name" jdbcType="VARCHAR" property="foreignName" />
<result column="sex" jdbcType="VARCHAR" property="sex" />
<result column="birthday" jdbcType="DATE" property="birthday" />
<result column="passport_no" jdbcType="VARCHAR" property="passportNo" />
<result column="entry_date" jdbcType="DATE" property="entryDate" />
<result column="exit_date" jdbcType="DATE" property="exitDate" />
<result column="embassies_and_consulates" jdbcType="TINYINT" property="embassiesAndConsulates" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, create_by, create_time, update_by, update_time, meeting_id, photo, `name`, unit,
nationality, address, email, phone, need_visa, foreign_name, sex, birthday, passport_no,
entry_date, exit_date, embassies_and_consulates
</sql>
</mapper>
@@ -0,0 +1,34 @@
package com.jero.meeting.service;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.meeting.entity.MeetingOverseasSituation;
import com.jero.meeting.mapper.MeetingOverseasSituationMapper;
/**
*
*@author liJiaRao
*@date 2024-06-24 11:20
*/
@Service
public class MeetingOverseasSituationService extends ServiceImpl<MeetingOverseasSituationMapper, MeetingOverseasSituation> {
public void add(MeetingOverseasSituation payMeetingSituation, Integer meeting_type) {
save(payMeetingSituation);
}
public void editById(MeetingOverseasSituation payMeetingSituation, Integer meeting_type) {
updateById(payMeetingSituation);
}
public void deleteById(String id) {
removeById(id);
}
public void deleteByIds(List<String> idList) {
for (String id : idList) {
deleteById(id);
}
}
}
@@ -1043,6 +1043,8 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
permission = "committeeMeeting:search";
}else if (meetingType.equals(MeetingCommon.DRAFTING_GROUP_MEETING_INT)) {
permission = "draftGroupMeeting:search";
}else if (meetingType.equals(MeetingCommon.OVERSEAS_MEETING_INT)) {
permission = "overseasMeeting:search";
}
}
if (StringUtils.isNotBlank(permission)) {
@@ -1417,6 +1419,8 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
classToExport = CouncilMeetingExcel.class;
}else if (meetingType.equals(MeetingCommon.DRAFTING_GROUP_MEETING_INT)){
classToExport = DraftingGroupMeetingExcel.class;
}else if (meetingType.equals(MeetingCommon.OVERSEAS_MEETING_INT)){
classToExport = OverseasMeetingExcel.class;
}
return classToExport;
}
@@ -1524,6 +1528,12 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
BeanUtils.copyProperties(payMeetingVO, draftingGroupMeetingExcel);
exportList.add(draftingGroupMeetingExcel);
break;
case MeetingCommon.OVERSEAS_MEETING:
//保存数据
OverseasMeetingExcel overseasMeetingExcel = new OverseasMeetingExcel();
BeanUtils.copyProperties(payMeetingVO, overseasMeetingExcel);
exportList.add(overseasMeetingExcel);
break;
}
}
return exportList;
@@ -1728,7 +1728,9 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
String companyContactId = meetingSituation.getCompanyContactId();
PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId);
meetingSituation.setCompanyContactName(contactsManagement.getName());
meetingSituation.setPost(contactsManagement.getPost());
if (!MeetingCommon.INTERNATIONAL_MEETING.equals(meetingType1)){
meetingSituation.setPost(contactsManagement.getPost());
}
meetingSituation.setPhone(PasswordUtil.decrypt(contactsManagement.getPhone()));
meetingSituation.setEmail(PasswordUtil.decrypt(contactsManagement.getEmail()));
PayCompanyManagement companyManagement = companyManagementService.getById(contactsManagement.getCompanyId());
@@ -0,0 +1,90 @@
package com.jero.meeting.vo.excel;
import com.jero.meeting.entity.PayMeetingContacts;
import com.jero.meeting.entity.PayMeetingHotelContacts;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import java.math.BigDecimal;
import java.util.List;
@Data
public class OverseasMeetingExcel {
/**会议名称*/
@Excel(name = "会议名称", width = 15)
private String meetingName;
/**会议类型*/
@Excel(name = "会议类型", width = 15)
private String meetingType;
/**开始时间*/
@Excel(name = "会议开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
private java.util.Date startTime;
/**结束时间*/
@Excel(name = "会议结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
private java.util.Date endTime;
/**年份*/
@Excel(name = "年份", width = 15)
private String particularYear;
/**召开地点*/
@Excel(name = "召开地点", width = 15)
private String venue;
/**详细地址*/
@Excel(name = "详细地址", width = 15)
private String address;
/**预计参加人数*/
@Excel(name = "预计参加人数", width = 15)
private String estimatedNumber;
/**会议内容*/
@Excel(name = "会议内容", width = 15)
private String meetingContent;
/**报名截止时间*/
@Excel(name = "报名截止时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
private java.util.Date registerDeadline;
/**会议费用*/
@Excel(name = "会议费用", width = 15)
private BigDecimal meetingCosts;
/**会议负责人*/
@Excel(name = "会议负责人", width = 15)
private String directorName;
/**会议负责人手机号*/
@Excel(name = "会议负责人手机号", width = 15)
private String directorPhone;
/**酒店名称*/
@Excel(name = "酒店名称", width = 15)
private String hotelName;
/**酒店地址*/
@Excel(name = "酒店地址", width = 15)
private String hotelAddress;
/**
* 会议关联酒店联系人列表
*/
private List<PayMeetingHotelContacts> hotelContactsList;
/**
* 会议联系人列表
*/
@ExcelCollection(name = "会议联系人列表")
private List<PayMeetingContacts> meetingContactsList;
/**备注*/
@Excel(name = "备注", width = 15)
private String remark;
}
@@ -1,5 +1,6 @@
package com.jero.statistics.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -131,7 +132,7 @@ public class AllProjectStatisticsController {
//获取本部门及其所有下部部门所有成员(不包含最开始的部门下级成员)
List<String> allDepartIds = sysBaseAPI.getAllUserIdsByDepart(sysUser.getDepartIds(), idList);
//获取本部门成员
idList.addAll((userMapper.selectList(new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0).eq("org_code", sysUser.getOrgCode()))).stream().map(SysUser::getId).collect(Collectors.toList()));
idList.addAll((userMapper.selectList(new LambdaQueryWrapper<SysUser>().eq(SysUser::getStatus, 1).eq(SysUser::getDelFlag, 0).eq(SysUser::getDepartIds, sysUser.getDepartIds()))).stream().map(SysUser::getId).collect(Collectors.toList()));
idList.addAll(allDepartIds);//项目负责人
} else {
@@ -231,7 +232,7 @@ public class AllProjectStatisticsController {
//获取本部门及其所有下部部门所有成员(不包含最开始的部门下级成员)
List<String> allDepartIds = sysBaseAPI.getAllUserIdsByDepart(sysUser.getDepartIds(), idList);
//获取本部门成员
idList.addAll((userMapper.selectList(new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0).eq("org_code", sysUser.getOrgCode()))).stream().map(SysUser::getId).collect(Collectors.toList()));
idList.addAll((userMapper.selectList(new LambdaQueryWrapper<SysUser>().eq(SysUser::getStatus, 1).eq(SysUser::getDelFlag, 0).eq(SysUser::getDepartIds, sysUser.getDepartIds()))).stream().map(SysUser::getId).collect(Collectors.toList()));
idList.addAll(allDepartIds);
} else {
@@ -1,5 +1,6 @@
package com.jero.statistics.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -80,7 +81,7 @@ public class PrincipalPeopleStatisticsController {
//获取本部门及其所有下部部门所有成员(不包含最开始的部门下级成员)
List<String> allDepartIds = sysBaseAPI.getAllUserIdsByDepart(sysUser.getDepartIds(), idList);
//获取本部门成员
idList.addAll((userMapper.selectList(new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0).eq("org_code", sysUser.getOrgCode()))).stream().map(SysUser::getId).collect(Collectors.toList()));
idList.addAll((userMapper.selectList(new LambdaQueryWrapper<SysUser>().eq(SysUser::getStatus, 1).eq(SysUser::getDelFlag, 0).eq(SysUser::getDepartIds, sysUser.getDepartIds()))).stream().map(SysUser::getId).collect(Collectors.toList()));
idList.addAll(allDepartIds);
//项目负责人
@@ -185,7 +186,7 @@ public class PrincipalPeopleStatisticsController {
//获取本部门及其所有下部部门所有成员(不包含最开始的部门下级成员)
List<String> allDepartIds = sysBaseAPI.getAllUserIdsByDepart(sysUser.getDepartIds(), idList);
//获取本部门成员
idList.addAll((userMapper.selectList(new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0).eq("org_code", sysUser.getOrgCode()))).stream().map(SysUser::getId).collect(Collectors.toList()));
idList.addAll((userMapper.selectList(new LambdaQueryWrapper<SysUser>().eq(SysUser::getStatus, 1).eq(SysUser::getDelFlag, 0).eq(SysUser::getDepartIds, sysUser.getDepartIds()))).stream().map(SysUser::getId).collect(Collectors.toList()));
idList.addAll(allDepartIds);
//项目负责人
@@ -1121,7 +1121,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
List<SysDepartTreeModel> sysDepartTreeModels =listSonDepartsByDepId(departId);
if(!(sysDepartTreeModels.size()==0)) {
for (SysDepartTreeModel s : sysDepartTreeModels) {
idList.addAll((userMapper.selectList(new QueryWrapper<SysUser>().eq("status", 1).eq("del_flag", 0).eq("org_code", s.getOrgCode()))).stream().map(SysUser::getId).collect(Collectors.toList()));
idList.addAll((userMapper.selectList(new LambdaQueryWrapper<SysUser>().eq(SysUser::getStatus, 1).eq(SysUser::getDelFlag, 0).eq(SysUser::getDepartIds, s.getId()))).stream().map(SysUser::getId).collect(Collectors.toList()));
getAllUserIdsByDepart(s.getId(),idList);
}
return idList;