fix:修改结构

This commit is contained in:
zhangqinlin
2022-07-14 18:17:13 +08:00
parent 9497e40b1e
commit 411334d789
21 changed files with 516 additions and 68 deletions
+4 -1
View File
@@ -25,4 +25,7 @@ ALTER TABLE `pay_case_committee` add COLUMN `principal_id_a` varchar (50) CHARAC
ALTER TABLE `pay_case_committee` add COLUMN `principal_name_a` varchar (50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人名称A' ;
ALTER TABLE `pay_case_committee` add COLUMN `principal_id_b` varchar (50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人Bid' ;
ALTER TABLE `pay_case_committee` add COLUMN `principal_name_b` varchar (50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人名称B' ;
--20220714 问题征集字典
INSERT INTO sys_dict ( id, dict_name, dict_code, description, del_flag, create_by, create_time ) VALUES ( '1547479075568955393', '问题征集状态', 'questionStatue', '问题征集状态', 0, 'LKGLZ', '2022-07-14 15:12:17' );
INSERT INTO sys_dict_item ( id, dict_id, item_text, item_value, description, sort_order, status, create_by, create_time ) VALUES ( '1547479215562240001', '1547479075568955393', '已结束', '0', '已结束', 1, 1, 'LKGLZ', '2022-07-14 15:12:50' );
INSERT INTO sys_dict_item ( id, dict_id, item_text, item_value, description, sort_order, status, create_by, create_time ) VALUES ( '1547479261783470082', '1547479075568955393', '征集中', '1', '', 1, 1, 'LKGLZ', '2022-07-14 15:13:01' );
@@ -28,13 +28,10 @@ import com.jero.data.service.IPayCaseCouncilSubitemService;
import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.common.MeetingSubitemCommon;
import com.jero.meeting.entity.*;
import com.jero.meeting.service.IPayMeetingContactsService;
import com.jero.meeting.service.IPayMeetingHotelContactsService;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.meeting.service.*;
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.meeting.service.IPayMeetingSituationService;
import com.jero.meeting.vo.PayMeetingVO;
import com.jero.meeting.vo.UploadFileVO;
import com.jero.meeting.vo.excel.*;
@@ -54,6 +51,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@@ -104,6 +102,8 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
private IOSSFileService ossFileService;
@Resource
private IPayMeetingContactsService meetingContactsService;
@Resource
private IPayMeetingStandardService payMeetingStandardService;
/**
* 分页列表查询
@@ -211,6 +211,18 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
payMeetingContacts.setMeetingContactsPhone(PasswordUtil.decrypt(phone));
}
meeting.setMeetingContactsList(meetingContactsList);
List<PayMeetingStandard> list = payMeetingStandardService.list(new LambdaQueryWrapper<PayMeetingStandard>().eq(PayMeetingStandard::getMeetingId, meeting.getId()));
meeting.setQuestionList(list);
Optional.ofNullable(meeting.getAddQuestionStatue()).ifPresent(statue->{
if (meeting.getEndTimeAddQuestion().before(new Date())) {
if(1==statue){
PayMeeting payMeeting1 = new PayMeeting();
payMeeting1.setAddQuestionStatue(0);
payMeeting1.setId(meeting.getId());
payMeetingService.updateById(payMeeting1);
}
}
});
}
return Result.OK(pageList);
@@ -271,7 +283,19 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
meeting.setDirectorPhone(PasswordUtil.decrypt(user.getPhone()));
PayMeetingVO payMeetingVO = new PayMeetingVO();
BeanUtils.copyProperties(meeting, payMeetingVO);
Optional.ofNullable(meeting.getQuestions()).ifPresent(s -> {payMeetingVO.setQuestionList(JSONObject.parseArray(s, Question.class));});
List<PayMeetingStandard> list = payMeetingStandardService.list(new LambdaQueryWrapper<PayMeetingStandard>().eq(PayMeetingStandard::getMeetingId, meeting.getId()));
payMeetingVO.setQuestionList(list);
Optional.ofNullable(payMeetingVO.getAddQuestionStatue()).ifPresent(statue->{
if (payMeetingVO.getEndTimeAddQuestion().before(new Date())) {
if(1==statue){
PayMeeting payMeeting1 = new PayMeeting();
payMeeting1.setAddQuestionStatue(0);
payMeeting1.setId(meeting.getId());
payMeetingService.updateById(payMeeting1);
}
}
});
String meetingType = meeting.getMeetingType().toString();
payMeetingVO.setMeetingType(meetingType);
if (meeting.getTbMeetingType() != null) {
@@ -3,11 +3,13 @@ package com.jero.meeting.controller;
import java.net.URLEncoder;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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;
import com.jero.common.api.vo.Result;
@@ -17,10 +19,13 @@ import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
import com.jero.mail.commont.constant;
import com.jero.meeting.entity.AllStandardQuestion;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingQuestion;
import com.jero.meeting.entity.PayMeetingStandard;
import com.jero.meeting.service.IPayMeetingQuestionService;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.meeting.service.IPayMeetingStandardService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
@@ -50,6 +55,8 @@ public class PayMeetingQuestionController extends JeroController<PayMeetingQuest
private IPayMeetingQuestionService payMeetingQuestionService;
@Resource
private IPayMeetingService payMeetingService;
@Autowired
private IPayMeetingStandardService payMeetingStandardService;
/**
* 分页列表查询
@@ -60,33 +67,63 @@ public class PayMeetingQuestionController extends JeroController<PayMeetingQuest
* @param req
* @return
*/
@AutoLog(value = "征集问题-分页列表查询")
@ApiOperation(value = "征集问题-分页列表查询", notes = "征集问题-分页列表查询")
@AutoLog(value = "征集问题-分页列表查询 -单个标准号")
@ApiOperation(value = "征集问题-分页列表查询 -单个标准号", notes = "征集问题-分页列表查询 -单个标准号")
@GetMapping(value = "/list")
public Result<?> queryPageList(PayMeetingQuestion payMeetingQuestion,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
LambdaQueryWrapper<PayMeetingQuestion> lambdaQueryWrapper = new LambdaQueryWrapper<>();
if (StringUtils.isBlank(payMeetingQuestion.getMeetingId())) {
throw new JeroBootException("会议id不能为空!");
if (StringUtils.isBlank(payMeetingQuestion.getStandardId())) {
throw new JeroBootException("标准号id不能为空!");
}
PayMeeting payMeeting = payMeetingService.getById(payMeetingQuestion.getMeetingId());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(StringUtils.isNotBlank(sysUser.getRoleCode())){
List<String> roleCodes = new ArrayList<>(Arrays.asList(sysUser.getRoleCode().split(",")));
if (!(roleCodes.contains(constant.ADMIN) || sysUser.getId().equals(payMeeting.getDirectorId()))) {
lambdaQueryWrapper.eq(PayMeetingQuestion::getCreaterId, payMeetingQuestion.getMeetingId());
}
}
lambdaQueryWrapper.eq(StringUtils.isNotBlank(payMeetingQuestion.getMeetingId()), PayMeetingQuestion::getMeetingId, payMeetingQuestion.getMeetingId());
lambdaQueryWrapper.eq(StringUtils.isNotBlank(payMeetingQuestion.getStandardNumber()), PayMeetingQuestion::getStandardNumber, payMeetingQuestion.getStandardNumber());
lambdaQueryWrapper.like(StringUtils.isNotBlank(payMeetingQuestion.getCreater()), PayMeetingQuestion::getCreater, payMeetingQuestion.getCreater());
// PayMeeting payMeeting = payMeetingService.getById(payMeetingQuestion.getMeetingId());
// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// if(StringUtils.isNotBlank(sysUser.getRoleCode())){
// List<String> roleCodes = new ArrayList<>(Arrays.asList(sysUser.getRoleCode().split(",")));
// if (!(roleCodes.contains(constant.ADMIN) || sysUser.getId().equals(payMeeting.getDirectorId()))) {
// lambdaQueryWrapper.eq(PayMeetingQuestion::getCreaterId, payMeetingQuestion.getMeetingId());
// }
// }
lambdaQueryWrapper.like(StringUtils.isNotBlank(payMeetingQuestion.getQuestionName()), PayMeetingQuestion::getQuestionName, payMeetingQuestion.getQuestionName());
lambdaQueryWrapper.eq(StringUtils.isNotBlank(payMeetingQuestion.getStandardId()), PayMeetingQuestion::getStandardId, payMeetingQuestion.getStandardId());
lambdaQueryWrapper.like(StringUtils.isNotBlank(payMeetingQuestion.getNumber()), PayMeetingQuestion::getNumber, payMeetingQuestion.getNumber());
lambdaQueryWrapper.orderByDesc(PayMeetingQuestion::getCreateTime);
Page<PayMeetingQuestion> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingQuestion> pageList = payMeetingQuestionService.page(page, lambdaQueryWrapper);
return Result.ok(pageList);
}
@AutoLog(value = "征集问题-分页列表查询 -一个会议所有标准号")
@ApiOperation(value = "征集问题-分页列表查询 -一个会议所有标准号", notes = "征集问题-分页列表查询-一个会议所有标准号")
@GetMapping(value = "/listALL")
public Result<?> listALL(@RequestParam(name = "meetingId") String meetingId,
@RequestParam(name = "standardNumber",required = false) String standardNumber,
@RequestParam(name = "creater",required = false) String creater,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<AllStandardQuestion> queryWrapper = new QueryWrapper<>();
if (StringUtils.isBlank(meetingId)) {
throw new JeroBootException("会议id不能为空!");
}
// PayMeeting payMeeting = payMeetingService.getById(payMeetingQuestion.getMeetingId());
// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// if(StringUtils.isNotBlank(sysUser.getRoleCode())){
// List<String> roleCodes = new ArrayList<>(Arrays.asList(sysUser.getRoleCode().split(",")));
// if (!(roleCodes.contains(constant.ADMIN) || sysUser.getId().equals(payMeeting.getDirectorId()))) {
// lambdaQueryWrapper.eq(PayMeetingQuestion::getCreaterId, payMeetingQuestion.getMeetingId());
// }
// }
queryWrapper.eq(StringUtils.isNotBlank(standardNumber),"pms.standard_number", standardNumber);
queryWrapper.eq("pm.id", meetingId);
queryWrapper.like(StringUtils.isNotBlank(creater),"pmq.creater", creater);
queryWrapper.isNotNull("pmq.question_name");
queryWrapper.orderByDesc("pmq.create_time");
Page<AllStandardQuestion> page = new Page<>(pageNo, pageSize);
IPage<AllStandardQuestion> pageList = payMeetingQuestionService.pageList(page, queryWrapper);
return Result.ok(pageList);
}
/**
* 添加
@@ -98,8 +135,9 @@ public class PayMeetingQuestionController extends JeroController<PayMeetingQuest
@ApiOperation(value = "征集问题-添加", notes = "征集问题-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingQuestion payMeetingQuestion) {
Optional.ofNullable(payMeetingQuestion.getMeetingId()).ifPresent(id -> {
PayMeeting payMeeting = payMeetingService.getById(id);
Optional.ofNullable(payMeetingQuestion.getStandardId()).ifPresent(id -> {
PayMeetingStandard payMeetingStandard = payMeetingStandardService.getById(id);
PayMeeting payMeeting = payMeetingService.getById(payMeetingStandard.getMeetingId());
if (ObjectUtils.isEmpty(payMeeting.getEndTimeAddQuestion()) || payMeeting.getEndTimeAddQuestion().before(new Date())) {
throw new JeroBootException("征集问题截至时间以过,无法新增!");
}
@@ -132,11 +170,14 @@ public class PayMeetingQuestionController extends JeroController<PayMeetingQuest
* 导出excel
*
* @param response
* @param payMeetingQuestion
* @param
*/
@ApiOperation(value = "征集问题-导出", notes = "征集问题-导出")
@PostMapping(value = "/exportXls")
public void exportXls(HttpServletResponse response, PayMeetingQuestion payMeetingQuestion) {
@GetMapping(value = "/exportXls")
public void exportXls(HttpServletResponse response,
@RequestParam(name = "meetingId") String meetingId,
@RequestParam(name = "standardNumber",required = false) String standardNumber,
@RequestParam(name = "creater",required = false) String creater) {
try {
response.setContentType("application/ms-excel;charset=UTF-8");
response.setContentType("application/x-download");
@@ -145,17 +186,29 @@ public class PayMeetingQuestionController extends JeroController<PayMeetingQuest
"attachment;filename=".concat(String.valueOf(URLEncoder.encode("征集问题.xls", "UTF-8"))));
ServletOutputStream outputStream = response.getOutputStream();
LambdaQueryWrapper<PayMeetingQuestion> lambdaQueryWrapper = new LambdaQueryWrapper<>();
if (StringUtils.isBlank(payMeetingQuestion.getMeetingId())) {
if (StringUtils.isBlank(meetingId)) {
throw new JeroBootException("会议id不能为空!");
}
lambdaQueryWrapper.eq(StringUtils.isNotBlank(payMeetingQuestion.getMeetingId()), PayMeetingQuestion::getMeetingId, payMeetingQuestion.getMeetingId());
lambdaQueryWrapper.eq(StringUtils.isNotBlank(payMeetingQuestion.getStandardNumber()), PayMeetingQuestion::getStandardNumber, payMeetingQuestion.getStandardNumber());
lambdaQueryWrapper.like(StringUtils.isNotBlank(payMeetingQuestion.getCreater()), PayMeetingQuestion::getCreater, payMeetingQuestion.getCreater());
lambdaQueryWrapper.orderByDesc(PayMeetingQuestion::getCreateTime);
List<PayMeetingQuestion> pageList = payMeetingQuestionService.list(lambdaQueryWrapper);
Map<String, List<PayMeetingQuestion>> map = pageList.stream().collect(Collectors.groupingBy(PayMeetingQuestion::getStandardNumber));
QueryWrapper<AllStandardQuestion> queryWrapper = new QueryWrapper<>();
if (StringUtils.isBlank(meetingId)) {
throw new JeroBootException("会议id不能为空!");
}
// PayMeeting payMeeting = payMeetingService.getById(payMeetingQuestion.getMeetingId());
// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// if(StringUtils.isNotBlank(sysUser.getRoleCode())){
// List<String> roleCodes = new ArrayList<>(Arrays.asList(sysUser.getRoleCode().split(",")));
// if (!(roleCodes.contains(constant.ADMIN) || sysUser.getId().equals(payMeeting.getDirectorId()))) {
// lambdaQueryWrapper.eq(PayMeetingQuestion::getCreaterId, payMeetingQuestion.getMeetingId());
// }
// }
queryWrapper.eq(StringUtils.isNotBlank(standardNumber),"pms.standard_number", standardNumber);
queryWrapper.eq("pm.id", meetingId);
queryWrapper.like(StringUtils.isNotBlank(creater),"pmq.creater", creater);
queryWrapper.isNotNull("pmq.question_name");
queryWrapper.orderByDesc("pmq.create_time");
List<AllStandardQuestion> pageList = payMeetingQuestionService.pageList2(queryWrapper);
Map<String, List<AllStandardQuestion>> map = pageList.stream().collect(Collectors.groupingBy(AllStandardQuestion::getStandardNumber));
// 1.创建工作簿
// InputStream is = getClass().getClassLoader().getResourceAsStream("excelTemplates/standard.xls");
@@ -188,7 +241,7 @@ public class PayMeetingQuestionController extends JeroController<PayMeetingQuest
cell34.setCellValue("提问人邮箱");
int j = 3;
int k = 1;
for (PayMeetingQuestion payMeetingQuestion1 : val) {
for (AllStandardQuestion payMeetingQuestion1 : val) {
HSSFRow row4 = sheet.createRow(j);
HSSFCell cell41 = row4.createCell(0);
cell41.setCellValue(k);
@@ -0,0 +1,142 @@
package com.jero.meeting.controller;
import java.util.Arrays;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.meeting.entity.PayMeetingStandard;
import com.jero.meeting.service.IPayMeetingStandardService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.jmreport.common.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* @Description: 标准问题
* @Author: jeecg-boot
* @Date: 2022-07-14
* @Version: V1.0
*/
@Slf4j
@Api(tags="标准问题")
@RestController
@RequestMapping("/payMeetingStanderd/payMeetingStanderd")
public class PayMeetingStandardController extends JeroController<PayMeetingStandard, IPayMeetingStandardService> {
@Autowired
private IPayMeetingStandardService payMeetingStandardService;
/**
* 分页列表查询
*
* @param payMeetingStandard
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "标准问题-分页列表查询")
@ApiOperation(value="标准问题-分页列表查询", notes="标准问题-分页列表查询")
@GetMapping(value = "/list")
public Result<?> queryPageList(PayMeetingStandard payMeetingStandard,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<PayMeetingStandard> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingStandard, req.getParameterMap());
Page<PayMeetingStandard> page = new Page<PayMeetingStandard>(pageNo, pageSize);
IPage<PayMeetingStandard> pageList = payMeetingStandardService.page(page, queryWrapper);
return Result.ok(pageList);
}
/**
* 添加
*
* @param payMeetingStandard
* @return
*/
@AutoLog(value = "标准问题-添加")
@ApiOperation(value="标准问题-添加", notes="标准问题-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingStandard payMeetingStandard) {
payMeetingStandardService.save(payMeetingStandard);
return Result.ok("添加成功!");
}
/**
* 编辑
*
* @param payMeetingStandard
* @return
*/
@AutoLog(value = "标准问题-编辑")
@ApiOperation(value="标准问题-编辑", notes="标准问题-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMeetingStandard payMeetingStandard) {
payMeetingStandardService.updateById(payMeetingStandard);
return Result.ok("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "标准问题-通过id删除")
@ApiOperation(value="标准问题-通过id删除", notes="标准问题-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
payMeetingStandardService.removeById(id);
return Result.ok("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "标准问题-批量删除")
@ApiOperation(value="标准问题-批量删除", notes="标准问题-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.payMeetingStandardService.removeByIds(Arrays.asList(ids.split(",")));
return Result.ok("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "标准问题-通过id查询")
@ApiOperation(value="标准问题-通过id查询", notes="标准问题-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
PayMeetingStandard payMeetingStandard = payMeetingStandardService.getById(id);
return Result.ok(payMeetingStandard);
}
/**
* 导出excel
*
* @param request
* @param payMeetingStandard
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeetingStandard payMeetingStandard) {
return super.exportXls(request, payMeetingStandard, PayMeetingStandard.class, "标准问题");
}
}
@@ -18,9 +18,11 @@ 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.entity.PayMeetingStandard;
import com.jero.meeting.entity.Question;
import com.jero.meeting.service.IPayMeetingHotelContactsService;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.meeting.service.IPayMeetingStandardService;
import com.jero.meeting.vo.PayMeetingVO;
import com.jero.meeting.vo.PublishReminderVO;
import com.jero.meeting.vo.UploadFileVO;
@@ -71,6 +73,8 @@ public class StandardsMeetingController extends JeroController<PayMeeting, IPayM
private IPayCaseCommitteeService payCaseCommitteeService;
@Resource
private IPayContactsManagementService payContactsManagementService;
@Resource
private IPayMeetingStandardService payMeetingStandardService;
/**
* 分页列表查询
@@ -223,7 +227,8 @@ public class StandardsMeetingController extends JeroController<PayMeeting, IPayM
meeting.setDirectorPhone(PasswordUtil.decrypt(user.getPhone()));
PayMeetingVO payMeetingVO = new PayMeetingVO();
BeanUtils.copyProperties(meeting, payMeetingVO);
Optional.ofNullable(meeting.getQuestions()).ifPresent(s -> {payMeetingVO.setQuestionList(JSONObject.parseArray(s, Question.class));});
List<PayMeetingStandard> list = payMeetingStandardService.list(new LambdaQueryWrapper<PayMeetingStandard>().eq(PayMeetingStandard::getMeetingId, meeting.getId()));
payMeetingVO.setQuestionList(list);
String meetingType = meeting.getMeetingType().toString();
//String meetingType1 = sysBaseAPI.translateDict("meeting_type", meetingType);
payMeetingVO.setMeetingType(meetingType);
@@ -319,12 +324,8 @@ public class StandardsMeetingController extends JeroController<PayMeeting, IPayM
@ApiOperation(value="征集问题-标准号下拉框", notes="征集问题-标准号下拉框")
@GetMapping(value = "/getStandardNumberList")
public Result<?> getStandardNumberList(@RequestParam(name="meetingId",required=true) String meetingId) {
PayMeeting payMeeting = payMeetingService.getById(meetingId);
List<String> list=null;
if(StringUtils.isNotBlank(payMeeting.getQuestions())){
List<Question> questions = JSONObject.parseArray(payMeeting.getQuestions(), Question.class);
list=questions.stream().map(Question::getStandardNumber).collect(Collectors.toList());
};
return Result.OK(list);
List<PayMeetingStandard> list = payMeetingStandardService.list(new LambdaQueryWrapper<PayMeetingStandard>().eq(PayMeetingStandard::getMeetingId, meetingId));
List<String> collect = list.stream().map(PayMeetingStandard::getStandardNumber).collect(Collectors.toList());
return Result.OK(collect);
}
}
@@ -0,0 +1,34 @@
package com.jero.meeting.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
* @author zhangqinlin
* @className: AllStandardQuestion
* @description:
* @date 2022/7/14 17:22
* @version1.0
*/
@Data
public class AllStandardQuestion {
@ApiModelProperty(value = "标准号")
private java.lang.String standardNumber;
@ApiModelProperty(value = "标准名称")
private java.lang.String standardName;
@ApiModelProperty(value = "章条编号")
private java.lang.String number;
@ApiModelProperty(value = "问题名称")
private java.lang.String questionName;
@ApiModelProperty(value = "创建人名称")
private java.lang.String creater;
@ApiModelProperty(value = "邮箱")
private java.lang.String email;
}
@@ -349,14 +349,14 @@ public class PayMeeting implements Serializable {
@ApiModelProperty(value = "是否需要问题征集(0:否,1:是)")
private String isAddQuestion;
/**征集问题text*/
@ApiModelProperty(value = "征集问题text")
private String questions;
/**征集问题text*/
@TableField(exist = false)
@ApiModelProperty(value = "征集问题状态")
private String addQuestionStatue;
@ApiModelProperty(value = "征集问题text")
private List<PayMeetingStandard> questionList;
@Dict(dicCode = "questionStatue")
@ApiModelProperty(value = "征集问题状态(0:已结束,1:征集中)")
private Integer addQuestionStatue;
/**征集截止日期*/
@Excel(name = "征集截止日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@@ -52,18 +52,13 @@ public class PayMeetingQuestion {
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**会议id*/
@ApiModelProperty(value = "会议id")
private java.lang.String meetingId;
/**标准号*/
@ApiModelProperty(value = "标准号")
private java.lang.String standardNumber;
@ApiModelProperty(value = "标准号Id")
private java.lang.String standardId;
/**标准名称*/
@ApiModelProperty(value = "标准名称")
private java.lang.String standardName;
/**章条编号*/
@Excel(name = "章条编号", width = 15)
@ApiModelProperty(value = "章条编号")
@@ -0,0 +1,67 @@
package com.jero.meeting.entity;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
* @Description: 标准问题
* @Author: jeecg-boot
* @Date: 2022-07-14
* @Version: V1.0
*/
@Data
@TableName("pay_meeting_standerd")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="pay_meeting_standerd对象", description="标准问题")
public class PayMeetingStandard {
/**id*/
@TableId(type = IdType.ID_WORKER_STR)
@ApiModelProperty(value = "id")
private java.lang.String id;
/**创建人*/
@Excel(name = "创建人", width = 15)
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@Excel(name = "创建日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@Excel(name = "更新人", width = 15)
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@Excel(name = "更新日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**会议id*/
@Excel(name = "会议id", width = 15)
@ApiModelProperty(value = "会议id")
private java.lang.String meetingId;
/**标准号*/
@Excel(name = "标准号", width = 15)
@ApiModelProperty(value = "标准号")
private java.lang.String standardNumber;
/**标准名称*/
@Excel(name = "标准名称", width = 15)
@ApiModelProperty(value = "标准名称")
private java.lang.String standardName;
}
@@ -1,8 +1,17 @@
package com.jero.meeting.mapper;
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.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.meeting.entity.AllStandardQuestion;
import com.jero.meeting.entity.PayMeetingQuestion;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Description: 征集问题
@@ -12,4 +21,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface PayMeetingQuestionMapper extends BaseMapper<PayMeetingQuestion> {
IPage<AllStandardQuestion> pageList(@Param("page")Page<AllStandardQuestion> page, @Param(Constants.WRAPPER) QueryWrapper<AllStandardQuestion> lambdaQueryWrapper);
List<AllStandardQuestion> pageList2(@Param(Constants.WRAPPER)QueryWrapper<AllStandardQuestion> queryWrapper);
}
@@ -0,0 +1,14 @@
package com.jero.meeting.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.meeting.entity.PayMeetingStandard;
/**
* @Description: 标准问题
* @Author: jeecg-boot
* @Date: 2022-07-14
* @Version: V1.0
*/
public interface PayMeetingStandardMapper extends BaseMapper<PayMeetingStandard> {
}
@@ -2,4 +2,16 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.meeting.mapper.PayMeetingQuestionMapper">
<select id="pageList" resultType="com.jero.meeting.entity.AllStandardQuestion">
select pms.standard_number as standardNumber,pms.standard_name as standardName,pmq.number,pmq.creater,pmq.question_name as questionName,pmq.email,pmq.creater from pay_meeting pm
left join pay_meeting_standerd pms on(pm.id=pms.meeting_id)
left join pay_meeting_question pmq on(pms.id=pmq.standard_id)
${ew.customSqlSegment}
</select>
<select id="pageList2" resultType="com.jero.meeting.entity.AllStandardQuestion">
select pms.standard_number as standardNumber,pms.standard_name as standardName,pmq.number,pmq.creater,pmq.question_name as questionName,pmq.email,pmq.creater from pay_meeting pm
left join pay_meeting_standerd pms on(pm.id=pms.meeting_id)
left join pay_meeting_question pmq on(pms.id=pmq.standard_id)
${ew.customSqlSegment}
</select>
</mapper>
@@ -0,0 +1,5 @@
<?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.PayMeetingStandardMapper">
</mapper>
@@ -1,9 +1,16 @@
package com.jero.meeting.service;
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;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.meeting.entity.AllStandardQuestion;
import com.jero.meeting.entity.PayMeetingQuestion;
import java.util.List;
/**
* @Description: 征集问题
* @Author: jeecg-boot
@@ -12,4 +19,8 @@ import com.jero.meeting.entity.PayMeetingQuestion;
*/
public interface IPayMeetingQuestionService extends IService<PayMeetingQuestion> {
IPage<AllStandardQuestion> pageList(Page<AllStandardQuestion> page, QueryWrapper<AllStandardQuestion> lambdaQueryWrapper);
List<AllStandardQuestion> pageList2(QueryWrapper<AllStandardQuestion> queryWrapper);
}
@@ -0,0 +1,14 @@
package com.jero.meeting.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.meeting.entity.PayMeetingStandard;
/**
* @Description: 标准问题
* @Author: jeecg-boot
* @Date: 2022-07-14
* @Version: V1.0
*/
public interface IPayMeetingStandardService extends IService<PayMeetingStandard> {
}
@@ -1,12 +1,19 @@
package com.jero.meeting.service.impl;
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;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.meeting.entity.AllStandardQuestion;
import com.jero.meeting.entity.PayMeetingQuestion;
import com.jero.meeting.mapper.PayMeetingQuestionMapper;
import com.jero.meeting.service.IPayMeetingQuestionService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Description: 征集问题
* @Author: jeecg-boot
@@ -16,4 +23,13 @@ import org.springframework.stereotype.Service;
@Service
public class PayMeetingQuestionServiceImpl extends ServiceImpl<PayMeetingQuestionMapper, PayMeetingQuestion> implements IPayMeetingQuestionService {
@Override
public IPage<AllStandardQuestion> pageList(Page<AllStandardQuestion> page, QueryWrapper<AllStandardQuestion> lambdaQueryWrapper) {
return this.baseMapper.pageList( page, lambdaQueryWrapper);
}
@Override
public List<AllStandardQuestion> pageList2(QueryWrapper<AllStandardQuestion> queryWrapper) {
return this.baseMapper.pageList2( queryWrapper);
}
}
@@ -77,6 +77,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
/**
* @Description: 会议管理
@@ -129,6 +130,8 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
private PayMeetingContactsMapper meetingContactsMapper;
@Resource
private IPayWorkingGroupSubItemContactsService workingGroupSubItemContactsService;
@Resource
private IPayMeetingStandardService payMeetingStandardService;
/**
* 新增会议
@@ -140,6 +143,8 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
//进行校验,赋值操作
PayMeeting payMeeting = getPayMeeting(payMeetingVO, hotelContactsList);
save(payMeeting);
List<PayMeetingStandard> collect = payMeetingVO.getQuestionList().stream().map(s -> s.setMeetingId(payMeeting.getId())).collect(Collectors.toList());
payMeetingStandardService.saveBatch(collect);
//如果酒店联系人列表不为空,就新增
if (!CollectionUtils.isEmpty(hotelContactsList)) {
String meetingId = payMeeting.getId();
@@ -263,6 +268,9 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
//进行校验,赋值操作
PayMeeting payMeeting = getPayMeeting(payMeetingVO, hotelContactsList);
saveOrUpdate(payMeeting);
List<PayMeetingStandard> collect = payMeetingVO.getQuestionList().stream().map(s -> s.setMeetingId(payMeeting.getId())).collect(Collectors.toList());
payMeetingStandardService.remove(new LambdaQueryWrapper<PayMeetingStandard>().eq(PayMeetingStandard::getMeetingId,payMeeting.getId()));
payMeetingStandardService.saveBatch(collect);
//如果酒店联系人列表不为空,就更新
if (!CollectionUtils.isEmpty(hotelContactsList)) {
String meetingId = payMeeting.getId();
@@ -486,14 +494,21 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
if("0".equals(payMeetingVO.getIsAddQuestion())){
throw new JeroBootException("征集问题状态冲突");
}
List<String> list= payMeetingVO.getQuestionList().stream().collect(Collectors.groupingBy(Question::getStandardNumber,Collectors.counting())).entrySet().stream()
List<String> list= payMeetingVO.getQuestionList().stream().collect(Collectors.groupingBy(PayMeetingStandard::getStandardNumber,Collectors.counting())).entrySet().stream()
.filter(entry->entry.getValue()>1)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
if(list.size()>0){
throw new JeroBootException("征集问题标准号重复!");
}
payMeeting.setQuestions(JSONObject.toJSONString(payMeetingVO.getQuestionList()));
}
if(!ObjectUtils.isEmpty(payMeeting.getEndTimeAddQuestion())){
if(payMeeting.getEndTimeAddQuestion().after(new Date())){
payMeeting.setAddQuestionStatue(1);
}else {
payMeeting.setAddQuestionStatue(0);
}
}
return payMeeting;
}
@@ -918,11 +933,14 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
payMeetingContacts.setMeetingContactsPhone(PasswordUtil.decrypt(phone));
}
meeting.setMeetingContactsList(meetingContactsList);
Optional.ofNullable(meeting.getEndTimeAddQuestion()).ifPresent(time->{
if (time.before(new Date())) {
meeting.setAddQuestionStatue("已结束");
} else {
meeting.setAddQuestionStatue("征集中");
Optional.ofNullable(meeting.getAddQuestionStatue()).ifPresent(statue->{
if (meeting.getEndTimeAddQuestion().before(new Date())) {
if(1==statue){
PayMeeting payMeeting1 = new PayMeeting();
payMeeting1.setAddQuestionStatue(0);
payMeeting1.setId(meeting.getId());
updateById(payMeeting1);
}
}
});
}
@@ -0,0 +1,19 @@
package com.jero.meeting.service.impl;
import com.jero.meeting.entity.PayMeetingStandard;
import com.jero.meeting.mapper.PayMeetingStandardMapper;
import com.jero.meeting.service.IPayMeetingStandardService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 标准问题
* @Author: jeecg-boot
* @Date: 2022-07-14
* @Version: V1.0
*/
@Service
public class PayMeetingStandardServiceImpl extends ServiceImpl<PayMeetingStandardMapper, PayMeetingStandard> implements IPayMeetingStandardService {
}
@@ -8,6 +8,7 @@ import com.jero.common.aspect.annotation.Dict;
import com.jero.common.util.PasswordUtil;
import com.jero.meeting.entity.PayMeetingContacts;
import com.jero.meeting.entity.PayMeetingHotelContacts;
import com.jero.meeting.entity.PayMeetingStandard;
import com.jero.meeting.entity.Question;
import com.jero.meeting.valid.group.*;
import com.jero.modules.system.volid.group.UpdateGroup;
@@ -306,9 +307,14 @@ public class PayMeetingVO implements Serializable {
@ApiModelProperty(value = "是否需要问题征集")
private String isAddQuestion;
@Dict(dicCode = "questionStatue")
@ApiModelProperty(value = "征集问题状态(0:已结束,1:征集中)")
private Integer addQuestionStatue;
/**征集问题text*/
@ApiModelProperty(value = "征集问题text")
private List<Question> questionList;
private List<PayMeetingStandard> questionList;
/**征集截止日期*/
@Excel(name = "征集截止日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.common.aspect.annotation.Dict;
import com.jero.common.system.base.entity.JeroEntity;
import com.jero.meeting.entity.PayMeetingStandard;
import com.jero.standards.jiudian.hotelcontact.entity.HotelContact;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -300,9 +301,9 @@ public class StableCrossTraining extends JeroEntity {
@ApiModelProperty(value = "是否需要问题征集")
private String isAddQuestion;
/**征集问题text*/
@TableField(exist = false)
@ApiModelProperty(value = "征集问题text")
private String questions;
private List<PayMeetingStandard> questionList;
/**征集截止日期*/
@Excel(name = "征集截止日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@@ -121,7 +121,7 @@ public class StableCrossTrainingServiceImpl extends ServiceImpl<StableCrossTrain
stableCrossTraining.setHotelList(hotelList);
//问题征集
stableCrossTraining.setIsAddQuestion(payMeeting.getIsAddQuestion());
stableCrossTraining.setQuestions(payMeeting.getQuestions());
stableCrossTraining.setQuestionList(payMeeting.getQuestionList());
stableCrossTraining.setEndTimeAddQuestion(payMeeting.getEndTimeAddQuestion());
return stableCrossTraining;
}