diff --git a/db/征集问题sql.sql b/db/征集问题sql.sql new file mode 100644 index 00000000..d583c377 --- /dev/null +++ b/db/征集问题sql.sql @@ -0,0 +1,21 @@ +//7月变更 2022-7-4 +ALTER TABLE `pay_meeting` add COLUMN `is_add_question` tinyint(1) NULL DEFAULT NULL COMMENT '是否需要问题征集(0:否,1:是)' ; +ALTER TABLE `pay_meeting` add COLUMN `end_time_add_question` datetime NULL DEFAULT NULL COMMENT '征集截止日期' ; +ALTER TABLE `pay_meeting` add COLUMN `questions` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '征集问题text' ; + +CREATE TABLE `pay_meeting_question` ( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'id', + `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建日期', + `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新日期', + `meeting_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '会议id', + `standard_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标准号', + `standard_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标准名称', + `number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '章条编号', + `question_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '问题名称', + `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱', + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人名称', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `id`(`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会议征集问题' ROW_FORMAT = Dynamic; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java index 6f0958cd..82172b4b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java @@ -9,6 +9,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.common.api.vo.Result; import com.jero.common.constant.CommonConstant; @@ -26,10 +27,7 @@ import com.jero.data.service.IPayCaseCommitteeSubitemService; import com.jero.data.service.IPayCaseCouncilSubitemService; import com.jero.meeting.common.MeetingCommon; import com.jero.meeting.common.MeetingSubitemCommon; -import com.jero.meeting.entity.PayMeeting; -import com.jero.meeting.entity.PayMeetingContacts; -import com.jero.meeting.entity.PayMeetingHotelContacts; -import com.jero.meeting.entity.PayMeetingSituation; +import com.jero.meeting.entity.*; import com.jero.meeting.service.IPayMeetingContactsService; import com.jero.meeting.service.IPayMeetingHotelContactsService; import com.jero.meeting.service.IPayMeetingService; @@ -273,6 +271,7 @@ public class PayMeetingController extends JeroController {payMeetingVO.setQuestionList(JSONObject.parseArray(s, Question.class));}); String meetingType = meeting.getMeetingType().toString(); payMeetingVO.setMeetingType(meetingType); if (meeting.getTbMeetingType() != null) { diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingQuestionController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingQuestionController.java new file mode 100644 index 00000000..edb4b32d --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingQuestionController.java @@ -0,0 +1,112 @@ +package com.jero.meeting.controller; + +import java.util.Arrays; +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; +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.common.system.vo.LoginUser; +import com.jero.meeting.entity.PayMeetingQuestion; +import com.jero.meeting.service.IPayMeetingQuestionService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; +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-04 + * @Version: V1.0 + */ +@Slf4j +@Api(tags="征集问题") +@RestController +@RequestMapping("/payMeetingQuestion/payMeetingQuestion") +public class PayMeetingQuestionController extends JeroController { + @Autowired + private IPayMeetingQuestionService payMeetingQuestionService; + + /** + * 分页列表查询 + * + * @param payMeetingQuestion + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @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 lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(StringUtils.isNotBlank(payMeetingQuestion.getStandardNumber()),PayMeetingQuestion::getStandardNumber,payMeetingQuestion.getStandardNumber()); + lambdaQueryWrapper.like(StringUtils.isNotBlank(payMeetingQuestion.getName()),PayMeetingQuestion::getName,payMeetingQuestion.getName()); + Page page = new Page<>(pageNo, pageSize); + IPage pageList = payMeetingQuestionService.page(page, lambdaQueryWrapper); + return Result.ok(pageList); + } + + /** + * 添加 + * + * @param payMeetingQuestion + * @return + */ + @AutoLog(value = "征集问题-添加") + @ApiOperation(value="征集问题-添加", notes="征集问题-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody PayMeetingQuestion payMeetingQuestion) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + payMeetingQuestion.setName(sysUser.getRealname()); + payMeetingQuestion.setEmail(sysUser.getEmail()); + payMeetingQuestionService.save(payMeetingQuestion); + 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) { + payMeetingQuestionService.removeById(id); + return Result.ok("删除成功!"); + } + + + + /** + * 导出excel + * + * @param request + * @param payMeetingQuestion + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, PayMeetingQuestion payMeetingQuestion) { + return super.exportXls(request, payMeetingQuestion, PayMeetingQuestion.class, "征集问题"); + } + + + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/StandardsMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/StandardsMeetingController.java index a338ace2..4905ab36 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/StandardsMeetingController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/StandardsMeetingController.java @@ -1,5 +1,6 @@ package com.jero.meeting.controller; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; @@ -17,6 +18,7 @@ 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.Question; import com.jero.meeting.service.IPayMeetingHotelContactsService; import com.jero.meeting.service.IPayMeetingService; import com.jero.meeting.vo.PayMeetingVO; @@ -221,6 +223,7 @@ public class StandardsMeetingController extends JeroController {payMeetingVO.setQuestionList(JSONObject.parseArray(s, Question.class));}); String meetingType = meeting.getMeetingType().toString(); //String meetingType1 = sysBaseAPI.translateDict("meeting_type", meetingType); payMeetingVO.setMeetingType(meetingType); @@ -304,4 +307,24 @@ public class StandardsMeetingController extends JeroController getStandardNumberList(@RequestParam(name="meetingId",required=true) String meetingId) { + PayMeeting payMeeting = payMeetingService.getById(meetingId); + List list=null; + if(StringUtils.isNotBlank(payMeeting.getQuestions())){ + List questions = JSONObject.parseArray(payMeeting.getQuestions(), Question.class); + list=questions.stream().map(Question::getStandardNumber).collect(Collectors.toList()); + }; + return Result.OK(list); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java index eddf212a..9f0521da 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java @@ -342,4 +342,24 @@ public class PayMeeting implements Serializable { @ApiModelProperty(value = "缴费凭证") @TableField(exist = false) private String paymentRecord; + + /**是否需要问题征集*/ + @ApiModelProperty(value = "是否需要问题征集") + private String isAddQuestion; + + /**征集问题text*/ + @ApiModelProperty(value = "征集问题text") + private String questions; + + /**征集问题text*/ + @TableField(exist = false) + @ApiModelProperty(value = "征集问题状态") + private String addQuestionStatue; + + /**征集截止日期*/ + @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 endTimeAddQuestion; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingQuestion.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingQuestion.java new file mode 100644 index 00000000..9bed803b --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingQuestion.java @@ -0,0 +1,83 @@ +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-04 + * @Version: V1.0 + */ +@Data +@TableName("pay_meeting_question") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="pay_meeting_question对象", description="征集问题") +public class PayMeetingQuestion { + + /**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; + /**章条编号*/ + @Excel(name = "章条编号", width = 15) + @ApiModelProperty(value = "章条编号") + private java.lang.String number; + /**问题名称*/ + @Excel(name = "问题名称", width = 15) + @ApiModelProperty(value = "问题名称") + private java.lang.String questionName; + /**邮箱*/ + @Excel(name = "邮箱", width = 15) + @ApiModelProperty(value = "邮箱") + private java.lang.String email; + /**创建人名称*/ + @Excel(name = "创建人名称", width = 15) + @ApiModelProperty(value = "创建人名称") + private java.lang.String name; +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/Question.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/Question.java new file mode 100644 index 00000000..7fb3d586 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/Question.java @@ -0,0 +1,21 @@ +package com.jero.meeting.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangqinlin + * @className: Question + * @description:征集问题 + * @date 2022/7/4 14:07 + * @version:1.0 + */ +@Data +public class Question { + /**标准号*/ + @ApiModelProperty(value = "标准号") + private String standardNumber; + /**标准名称*/ + @ApiModelProperty(value = "标准名称") + private String standardName; +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingQuestionMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingQuestionMapper.java new file mode 100644 index 00000000..be340d11 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingQuestionMapper.java @@ -0,0 +1,15 @@ +package com.jero.meeting.mapper; + + +import com.jero.meeting.entity.PayMeetingQuestion; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 征集问题 + * @Author: jeecg-boot + * @Date: 2022-07-04 + * @Version: V1.0 + */ +public interface PayMeetingQuestionMapper extends BaseMapper { + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingQuestionMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingQuestionMapper.xml new file mode 100644 index 00000000..a7c66cf2 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingQuestionMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingQuestionService.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingQuestionService.java new file mode 100644 index 00000000..23661a7d --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingQuestionService.java @@ -0,0 +1,15 @@ +package com.jero.meeting.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.meeting.entity.PayMeetingQuestion; + +/** + * @Description: 征集问题 + * @Author: jeecg-boot + * @Date: 2022-07-04 + * @Version: V1.0 + */ +public interface IPayMeetingQuestionService extends IService { + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingQuestionServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingQuestionServiceImpl.java new file mode 100644 index 00000000..0b713797 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingQuestionServiceImpl.java @@ -0,0 +1,19 @@ +package com.jero.meeting.service.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.meeting.entity.PayMeetingQuestion; +import com.jero.meeting.mapper.PayMeetingQuestionMapper; +import com.jero.meeting.service.IPayMeetingQuestionService; +import org.springframework.stereotype.Service; + +/** + * @Description: 征集问题 + * @Author: jeecg-boot + * @Date: 2022-07-04 + * @Version: V1.0 + */ +@Service +public class PayMeetingQuestionServiceImpl extends ServiceImpl implements IPayMeetingQuestionService { + +} 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 c7faab36..f018583a 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 @@ -482,6 +482,9 @@ public class PayMeetingServiceImpl extends ServiceImpl{ + if (time.before(new Date())) { + meeting.setAddQuestionStatue("已结束"); + } else { + meeting.setAddQuestionStatue("征集中"); + } + }); } return pageList; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingVO.java index 94fd34be..69930d6d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingVO.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingVO.java @@ -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.Question; import com.jero.meeting.valid.group.*; import com.jero.modules.system.volid.group.UpdateGroup; import io.swagger.annotations.ApiModel; @@ -300,4 +301,19 @@ public class PayMeetingVO implements Serializable { @ApiModelProperty(value = "会议联系人") private List meetingContactsList; + + /**是否需要问题征集*/ + @ApiModelProperty(value = "是否需要问题征集") + private String isAddQuestion; + + /**征集问题text*/ + @ApiModelProperty(value = "征集问题text") + private List questionList; + + /**征集截止日期*/ + @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 endTimeAddQuestion; }