diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingCommon.java index 47f05919..22921b30 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingCommon.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingCommon.java @@ -69,9 +69,17 @@ public class MeetingCommon { */ public final static String OVERSEAS_MEETING = "8"; /** - * 起草组会议 + * 海外会议 */ public final static Integer OVERSEAS_MEETING_INT = 8; + /** + * 安全中心会议 + */ + public final static String SAFETY_CENTER_MEETING = "9"; + /** + * 安全中心会议 + */ + public final static Integer SAFETY_CENTER_MEETING_INT = 9; /** * 标准宣贯 */ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/SafetyCenterMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/SafetyCenterMeetingController.java new file mode 100644 index 00000000..e6e281c1 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/SafetyCenterMeetingController.java @@ -0,0 +1,234 @@ +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.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.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/safetyCenterMeeting") +@Slf4j +public class SafetyCenterMeetingController extends JeroController { + @Resource + private IPayMeetingService payMeetingService; + @Resource + private ISysBaseAPI sysBaseAPI; + @Resource + private IPayMeetingHotelContactsService meetingHotelContactsService; + @Resource + private IPayWorkingGroupService payWorkingGroupService; + @Resource + private AuthenticationUtils authenticationUtils; + @Resource + private IOSSFileService iossFileService; + @Resource + private IPayCaseCommitteeService payCaseCommitteeService; + @Resource + private IPayContactsManagementService payContactsManagementService; + + private final Integer MEETING_TYPE = MeetingCommon.SAFETY_CENTER_MEETING_INT; + /** + * 分页列表查询 + */ + @RequiresPermissions("otherMeeting: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); + IPage pageList = payMeetingService.queryPageList(payMeeting, pageNo, pageSize, req); + + return Result.OK(pageList); + } + + /** + * 添加 + */ + @RequiresPermissions("otherMeeting:add") + @AutoLog(value = "会议管理-添加") + @ApiOperation(value = "会议管理-添加", notes = "会议管理-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody PayMeetingVO payMeetingVO) { + String meetingType = payMeetingVO.getMeetingType(); + if (!Objects.equals(meetingType, MeetingCommon.OTHER_MEETING)) { + 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)) { + throw new RuntimeException(); + } + } + + /** + * 编辑 + */ + @RequiresPermissions("otherMeeting: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("otherMeeting: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("otherMeeting:batchDel") + @AutoLog(value = "会议管理-批量删除") + @ApiOperation(value = "会议管理-批量删除", notes = "会议管理-批量删除") + @GetMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name = "ids") String ids) { + List 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)) { + 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); + payMeetingVO.setTbMeetingType(meeting.getMeetingType().toString()); + //payMeetingVO.setHotelContactsList(new ArrayList<>()); + //会议查询酒店联系人列表 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayMeetingHotelContacts::getMeetingId, meeting.getId()); + List payMeetingHotelContactsList = meetingHotelContactsService.list(wrapper); + payMeetingVO.setHotelContactsList(payMeetingHotelContactsList); + return Result.OK(payMeetingVO); + } + + /** + * 导出excel + */ + @RequiresPermissions("otherMeeting:export") + @GetMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, PayMeeting payMeeting) { + payMeeting.setMeetingType(MEETING_TYPE); + IPage queryPageList = payMeetingService.queryPageList(payMeeting, -1, -1, request); + + List exportList = payMeetingService.getExportList(request, queryPageList); + Class aClass = payMeetingService.getaClass(MEETING_TYPE); + return super.exportListXls(exportList, aClass, "会议管理"); + } + + /** + * 上传资料 + */ + @AutoLog(value = "上传资料") + @RequiresPermissions("otherMeeting:upload") + @ApiOperation(value = "上传资料", notes = "上传资料") + @PostMapping(value = "/uploadFile") + public Result uploadFile(@RequestBody UploadFileVO uploadFileVO) { + List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MEETING_TYPE, false); + return Result.OK("上传资料成功!",strings); + } + + /** + * 上传会议纪要 + */ + @AutoLog(value = "上传会议纪要") + @RequiresPermissions("otherMeeting:uploadCouncil") + @ApiOperation(value = "上传会议纪要", notes = "上传会议纪要") + @PostMapping(value = "/uploadCouncilFile") + public Result uploadCouncilFile(@RequestBody UploadFileVO uploadFileVO) { + payMeetingService.uploadFile(uploadFileVO, MEETING_TYPE); + return Result.OK("上传会议纪要成功!"); + } + + /** + * 发布 + */ + @AutoLog("发布") + @RequiresPermissions("otherMeeting:release") + @ApiOperation(value = "发布") + @PostMapping(value = "/release") + public Result release(@RequestBody PublishReminderVO publishReminderVO) { + payMeetingService.release(publishReminderVO); + return Result.OK(); + } +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/SafetyCenterMeetingSituationController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/SafetyCenterMeetingSituationController.java new file mode 100644 index 00000000..789b3c83 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/SafetyCenterMeetingSituationController.java @@ -0,0 +1,233 @@ +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.AuthenticationUtils; +import com.jero.common.util.ValidUtil; +import com.jero.company.service.IPayCompanyManagementService; +import com.jero.company.service.IPayContactsManagementService; +import com.jero.meeting.common.MeetingCommon; +import com.jero.meeting.entity.PayMeetingSituation; +import com.jero.meeting.service.IPayMeetingSituationService; +import com.jero.meeting.vo.CheckVO; +import com.jero.meeting.vo.MergePayBillVO; +import com.jero.meeting.vo.PayMeetingSituationVO; +import com.jero.meeting.vo.SetGuestsUploadFileVO; +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; + + +/** + * @description: 参会人员信息 + * @author: jero-boot + * @date: 2021-09-02 + * @version: V1.0 + */ +@Api(tags = "参会人员信息-功能安全中心会议") +@RestController +@RequestMapping("/meeting/safetyCenterMeetingSituation") +@Slf4j +public class SafetyCenterMeetingSituationController extends JeroController { + @Resource + private IPayMeetingSituationService payMeetingSituationService; + @Resource + private AuthenticationUtils authenticationUtils; + @Resource + private IPayContactsManagementService contactsManagementService; + @Resource + private IPayCompanyManagementService companyManagementService; + + private final Integer MEETING_TYPE = MeetingCommon.SAFETY_CENTER_MEETING_INT; + /** + * 分页列表查询 + */ + @CompanyNameTranslate + @RequiresPermissions("otherMeetingSituation:search") + @ApiOperation(value = "参会人员信息-分页列表查询", notes = "参会人员信息-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(PayMeetingSituation 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 queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, req.getParameterMap()); + String particularYear = req.getParameter("particularYear"); + if (StringUtils.isNotBlank(particularYear)){ + queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear); + } + Page page = new Page<>(pageNo, pageSize); + IPage pageList = payMeetingSituationService.pageListContract(meetingId, page, queryWrapper,MEETING_TYPE); + List situationList = pageList.getRecords(); + for (PayMeetingSituation meetingSituation : situationList) { + Integer payMode = meetingSituation.getPayMode(); + //汇款并且缴费凭证为空 + if (Objects.equals(payMode,1) && StringUtils.isBlank(meetingSituation.getPaymentRecord())){ + meetingSituation.setIdentification(PayProjectCommon.YES); + }else { + meetingSituation.setIdentification(PayProjectCommon.NO); + } + } + return Result.OK(pageList); + } + + /** + * 添加参会人 + */ + @RequiresPermissions("otherMeetingSituation:add") + @AutoLog(value = "参会人员信息-添加参会人") + @ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人") + @PostMapping(value = "/add") + public Result add(@RequestBody PayMeetingSituation payMeetingSituation) { + payMeetingSituationService.add(payMeetingSituation, MEETING_TYPE); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + */ + @AutoLog(value = "参会人员信息-编辑") + @RequiresPermissions("otherMeetingSituation:edit") + @ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑") + @PostMapping(value = "/edit") + public Result edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) { + payMeetingSituationService.editById(payMeetingSituationVO, MEETING_TYPE); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + */ + @RequiresPermissions("otherMeetingSituation:delete") + @AutoLog(value = "参会人员信息-通过id删除") + @ApiOperation(value = "参会人员信息-通过id删除", notes = "参会人员信息-通过id删除") + @GetMapping(value = "/delete") + public Result delete(@RequestParam(name = "id") String id) { + payMeetingSituationService.deleteById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + */ + @RequiresPermissions("otherMeetingSituation:batchDel") + @AutoLog(value = "参会人员信息-批量删除") + @ApiOperation(value = "参会人员信息-批量删除", notes = "参会人员信息-批量删除") + @GetMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name = "ids") String ids) { + this.payMeetingSituationService.deleteByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + */ + @CompanyNameTranslate + @DictPoint + @ApiOperation(value = "参会人员信息-通过id查询", notes = "参会人员信息-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id") String id) { + PayMeetingSituation payMeetingSituation = payMeetingSituationService.queryById(id); + if (payMeetingSituation == null) { + return Result.error("未找到对应数据"); + } + return Result.OK(payMeetingSituation); + } + + /** + * 通过会议id查询自己的参会人信息 + */ + @CompanyNameTranslate + @DictPoint + @ApiOperation(value = "参会人员信息-通过会议id查询自己的参会人信息") + @GetMapping(value = "/queryByMeetingId") + public Result queryByMeetingId(@RequestParam(name = "meetingId") String meetingId) { + PayMeetingSituation payMeetingSituation = payMeetingSituationService.queryByMeetingIdAndContactId(meetingId); + if (payMeetingSituation == null) { + return Result.error("未找到对应数据"); + } + return Result.OK(payMeetingSituation); + } + + /** + * 导出excel + */ + @RequiresPermissions("otherMeetingSituation:export") + @GetMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, PayMeetingSituation payMeetingSituation) { + List objects = payMeetingSituationService.MeetingSituationGetModelAndView(request, payMeetingSituation,MEETING_TYPE); + Class aClass = payMeetingSituationService.getaClass(MEETING_TYPE); + return super.exportListXls(objects, aClass, "参会人员信息"); + } + + /** + * 审核缴费凭证 + */ + @RequiresPermissions("otherMeetingSituation:auditCredentials") + @AutoLog(value = "审核缴费凭证") + @ApiOperation(value = "审核缴费凭证") + @PostMapping(value = "/check") + public Result check(@RequestBody CheckVO checkVO) { + payMeetingSituationService.check(checkVO); + return Result.OK("审核成功!"); + } + + /** + * 审核报名信息 + */ + @AutoLog(value = "审核报名信息") + @RequiresPermissions("otherMeetingSituation:auditSignUp") + @ApiOperation(value = "审核报名信息") + @PostMapping(value = "/checkRegister") + public Result checkRegister(@RequestBody CheckVO checkVO) { + payMeetingSituationService.checkRegister(checkVO); + return Result.OK("审核成功!"); + } + + /** + * 合并开票 + */ + @AutoLog(value = "合并开票") + @ApiOperation(value = "合并开票", notes = "合并开票") + @PostMapping(value = "/batchPayBill") + public Result mergePayBill(@RequestBody MergePayBillVO mergePayBillVO) { + ValidUtil.validate(mergePayBillVO); + payMeetingSituationService.mergePayBill(mergePayBillVO); + return Result.OK("合并开票成功!"); + } + /** + * 设置嘉宾上传文件 + */ + @RequiresPermissions("otherMeetingSituation:guestsUploadFileFlag") + @AutoLog(value = "设置嘉宾上传文件") + @ApiOperation(value = "设置嘉宾上传文件", notes = "设置嘉宾上传文件") + @PostMapping(value = "/setGuestsUploadFile") + public Result setGuestsUploadFile(@RequestBody SetGuestsUploadFileVO setGuestsUploadFileVO) { + ValidUtil.validate(setGuestsUploadFileVO); + payMeetingSituationService.setGuestsUploadFile(setGuestsUploadFileVO,MEETING_TYPE); + return Result.OK("设置嘉宾上传文件成功!"); + } + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java index 10695eac..618b0681 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java @@ -1045,6 +1045,8 @@ public class PayMeetingServiceImpl extends ServiceImpl hotelContactsList; + /** + * 会议联系人列表 + */ + @ExcelCollection(name = "会议联系人列表") + private List meetingContactsList; + + /**备注*/ + @Excel(name = "备注", width = 15) + private String remark; +}