| | |
| | | import com.panzhihua.sangeshenbian.model.query.ComplaintQuery; |
| | | import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; |
| | | import com.panzhihua.sangeshenbian.service.IComplaintService; |
| | | import com.panzhihua.sangeshenbian.warpper.MgtComplaintQuery; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | |
| | | |
| | | @ApiOperation("诉求列表") |
| | | @PostMapping("/page") |
| | | public R<Page<ComplaintVO>> pageList(@RequestBody ComplaintQuery query) { |
| | | public R<Page<ComplaintVO>> pageList(@RequestBody MgtComplaintQuery query) { |
| | | SystemUserVo loginUserInfo = getLoginUserInfoSanGeShenBian(); |
| | | return R.ok(complaintService.pageList(query,loginUserInfo)); |
| | | } |
| | |
| | | public R<ComplaintVO> detail(@ApiParam(name = "id", value = "诉求id", required = true) @PathVariable("id") Long id) { |
| | | return R.ok(complaintService.getDetailMgt(id)); |
| | | } |
| | | @ApiOperation("诉求列表") |
| | | @ApiOperation("导出") |
| | | @PostMapping("/export") |
| | | public void export(@RequestBody ComplaintQuery query) { |
| | | public void export(@RequestBody MgtComplaintQuery query) { |
| | | SystemUserVo loginUserInfo = getLoginUserInfoSanGeShenBian(); |
| | | try { |
| | | complaintService.export(query,loginUserInfo); |
| | |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | @ApiOperation("社区问题单") |
| | | @GetMapping("/community-problem/{id}") |
| | | public void communityProblem(@ApiParam(name = "id", value = "诉求id", required = true) @PathVariable("id") Long id) { |
| | | |
| | | @ApiOperation("社区问题单、问题处理单、协调通知单 下载") |
| | | @GetMapping("/download-file/{id}/{type}") |
| | | public void communityProblem(@ApiParam(name = "id", value = "诉求id", required = true) @PathVariable("id") Long id, |
| | | @ApiParam(name = "type", value = "类型:1:社区问题单 2:问题处理单 3:协调通知单", required = true) @PathVariable("type") Integer type) { |
| | | try { |
| | | complaintService.communityProblem(id); |
| | | complaintService.downloadFile(id, type); |
| | | } catch (IOException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | @ApiOperation("问题处理单") |
| | | @GetMapping("/problem-handle/{id}") |
| | | public void problemHandle(@ApiParam(name = "id", value = "诉求id", required = true) @PathVariable("id") Long id) { |
| | | complaintService.problemHandle(id); |
| | | } |
| | | @ApiOperation("协调通知单") |
| | | @GetMapping("/coordination-notice/{id}") |
| | | public void coordinationNotice(@ApiParam(name = "id", value = "诉求id", required = true) @PathVariable("id") Long id) { |
| | | complaintService.coordinationNotice(id); |
| | | } |
| | | } |
| | |
| | | import com.panzhihua.sangeshenbian.model.query.ComplaintQuery; |
| | | import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO; |
| | | import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; |
| | | import com.panzhihua.sangeshenbian.warpper.MgtComplaintQuery; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | |
| | | * @param loginUserInfo |
| | | * @return |
| | | */ |
| | | Page<ComplaintVO> pageList(Page<ComplaintVO> page, @Param("query") ComplaintQuery query, @Param("loginUserInfo") SystemUserVo loginUserInfo); |
| | | Page<ComplaintVO> pageList(Page<ComplaintVO> page, @Param("query") MgtComplaintQuery query, @Param("loginUserInfo") SystemUserVo loginUserInfo); |
| | | |
| | | /** |
| | | * 诉求列表 |
| | | * @param query |
| | | * @param loginUserInfo |
| | | */ |
| | | List<ComplaintVO> getList(ComplaintQuery query, SystemUserVo loginUserInfo); |
| | | List<ComplaintVO> getList(MgtComplaintQuery query, SystemUserVo loginUserInfo); |
| | | } |
New file |
| | |
| | | package com.panzhihua.sangeshenbian.enums; |
| | | |
| | | import lombok.Getter; |
| | | import lombok.AllArgsConstructor; |
| | | @Getter |
| | | @AllArgsConstructor |
| | | public enum RateEnum { |
| | | DISSATISFIED(0, "不满意"), |
| | | NEUTRAL(1, "一般"), |
| | | SATISFIED(2, "满意"), |
| | | VERY_SATISFIED(3, "非常满意"); |
| | | |
| | | private final Integer code; |
| | | private final String desc; |
| | | |
| | | public static RateEnum getEnumByCode(Integer code) { |
| | | for (RateEnum e : RateEnum.values()) { |
| | | if (e.code.equals(code)) { |
| | | return e; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | |
| | | @ApiModelProperty(value = "诉求id") |
| | | private Long complaintId; |
| | | |
| | | @ApiModelProperty(value = "评价打分 0:不满意 1:一般 2:满意 3:非常满意") |
| | | @ApiModelProperty(value = "评价打分 0:不满意; 1:一般; 2:满意; 3:非常满意;") |
| | | private Integer rate; |
| | | |
| | | @ApiModelProperty(value = "评价内容") |
| | |
| | | import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO; |
| | | import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; |
| | | import com.panzhihua.sangeshenbian.model.vo.DispatchVO; |
| | | import com.panzhihua.sangeshenbian.warpper.MgtComplaintQuery; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.List; |
| | |
| | | * @param loginUserInfo |
| | | * @return |
| | | */ |
| | | Page<ComplaintVO> pageList(ComplaintQuery query, SystemUserVo loginUserInfo); |
| | | Page<ComplaintVO> pageList(MgtComplaintQuery query, SystemUserVo loginUserInfo); |
| | | |
| | | /** |
| | | * 管理后台-诉求详情 |
| | |
| | | * @param query |
| | | * @param loginUserInfo |
| | | */ |
| | | void export(ComplaintQuery query, SystemUserVo loginUserInfo) throws IOException; |
| | | void export(MgtComplaintQuery query, SystemUserVo loginUserInfo) throws IOException; |
| | | |
| | | /** |
| | | * 社区问题单 |
| | | * 社区问题单、问题处理单、协调通知单 下载 |
| | | * @param id |
| | | */ |
| | | void communityProblem(Long id) throws IOException; |
| | | |
| | | /** |
| | | * 问题处理单 |
| | | * @param id |
| | | */ |
| | | void problemHandle(Long id); |
| | | |
| | | /** |
| | | * 协调通知 |
| | | * @param id |
| | | */ |
| | | void coordinationNotice(Long id); |
| | | |
| | | void downloadFile(Long id, Integer type) throws IOException; |
| | | |
| | | /** |
| | | * 获取超时未评价的数据 |
| | | * @return |
| | | */ |
| | | List<Complaint> getTimeoutAndNotComment(); |
| | | |
| | | |
| | | } |
| | |
| | | package com.panzhihua.sangeshenbian.service.impl; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.idev.excel.EasyExcel; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.deepoove.poi.XWPFTemplate; |
| | | import com.panzhihua.common.model.vos.LoginUserInfoVO; |
| | | import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo; |
| | | import com.panzhihua.sangeshenbian.enums.RateEnum; |
| | | import com.panzhihua.sangeshenbian.model.dto.ComplaintCompletionDTO; |
| | | import com.panzhihua.sangeshenbian.model.dto.ComplaintProcessDTO; |
| | | import com.panzhihua.sangeshenbian.model.entity.Complaint; |
| | |
| | | import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; |
| | | import com.panzhihua.sangeshenbian.service.ISystemUserService; |
| | | import com.panzhihua.sangeshenbian.utils.FileUtil; |
| | | import com.panzhihua.sangeshenbian.warpper.MgtComplaintQuery; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.core.io.ClassPathResource; |
| | | import org.springframework.core.io.Resource; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.net.URLEncoder; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | |
| | | } |
| | | } else{ |
| | | PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); |
| | | //社区 |
| | | complaint.setCityCode(510400); |
| | | complaint.setDistrictsCode(Integer.valueOf(partyMember.getDistrictsCode())); |
| | | complaint.setStreetId(Long.valueOf(partyMember.getStreetId())); |
| | | complaint.setCommunityId(partyMember.getCommunityId()); |
| | | complaint.setPartyMemberId(partyMember.getId()); |
| | | } |
| | | complaint.setReportType(accountLevel); |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Page<ComplaintVO> pageList(ComplaintQuery query, SystemUserVo loginUserInfo) { |
| | | public Page<ComplaintVO> pageList(MgtComplaintQuery query, SystemUserVo loginUserInfo) { |
| | | return baseMapper.pageList(new Page<>(query.getPageNum(), query.getPageSize()), query,loginUserInfo); |
| | | } |
| | | |
| | |
| | | * @param loginUserInfo |
| | | */ |
| | | @Override |
| | | public void export(ComplaintQuery query, SystemUserVo loginUserInfo) throws IOException { |
| | | public void export(MgtComplaintQuery query, SystemUserVo loginUserInfo) throws IOException { |
| | | List<ComplaintVO> list = baseMapper.getList(query, loginUserInfo); |
| | | List<ComplaintExcel> complaintExcels = BeanUtil.copyToList(list, ComplaintExcel.class); |
| | | response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void communityProblem(Long id) throws IOException { |
| | | //Complaint complaint = getById(id); |
| | | //TODO 查询真实数据 |
| | | public void downloadFile(Long id,Integer type) throws IOException { |
| | | Complaint complaint = getById(id); |
| | | if (Objects.isNull(complaint)) { |
| | | throw new ServiceException("该诉求不存在"); |
| | | } |
| | | //查询社区信息 |
| | | BcRegion region = bcRegionService.lambdaQuery().eq(BcRegion::getRegionCode, complaint.getDistrictsCode()).last("LIMIT 1").one(); |
| | | ComStreet street = comStreetService.lambdaQuery().eq(ComStreet::getStreetId, complaint.getStreetId()).one(); |
| | | ComAct act = comActService.lambdaQuery().eq(ComAct::getCommunityId, complaint.getCommunityId()).one(); |
| | | String community = region.getRegionName() +"-"+ street.getName() + act.getName(); |
| | | PartyMember partyMember = null; |
| | | if (Objects.nonNull(complaint.getPartyMemberId())){ |
| | | partyMember = partyMemberService.getById(complaint.getPartyMemberId()); |
| | | } |
| | | String fileName = ""; |
| | | switch (type){ |
| | | case 1: |
| | | fileName = "社区问题单"; |
| | | break; |
| | | case 2: |
| | | fileName = "问题处理单"; |
| | | if (Objects.nonNull(partyMember)) { |
| | | community = community + "-" + partyMember.getServiceTarget(); |
| | | } |
| | | break; |
| | | case 3: |
| | | fileName = "协调通知单"; |
| | | break; |
| | | } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("community", "社区社区"); |
| | | map.put("problemType", "就业"); |
| | | map.put("descriptionContent", "描述内容"); |
| | | map.put("reportType", "党员"); |
| | | map.put("partyOrganization", "石羊党群"); |
| | | map.put("name", "张三"); |
| | | map.put("contactNumber", "1888888888"); |
| | | map.put("nickname", "李四"); |
| | | map.put("phone", "17777777777"); |
| | | map.put("community", community); |
| | | map.put("problemType", complaint.getProblemType()); |
| | | map.put("descriptionContent", complaint.getDescriptionContent()); |
| | | map.put("reportType", Objects.nonNull(complaint.getPartyMemberId())?"党员": "上级"); //TODO待修改 |
| | | map.put("partyOrganization",Objects.nonNull(partyMember)? partyMember.getPartyOrganization() : ""); |
| | | map.put("name", complaint.getName()); |
| | | map.put("contactNumber", complaint.getContactNumber()); |
| | | map.put("nickname", Objects.nonNull(partyMember)? partyMember.getName() : ""); |
| | | map.put("phone", Objects.nonNull(partyMember)? partyMember.getPhone() : ""); |
| | | List<ComplaintProgress> list = complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, id).orderByAsc(ComplaintProgress::getCreateTime).list(); |
| | | StringBuilder sb = new StringBuilder(); |
| | | if (CollUtil.isNotEmpty(list)) { |
| | | int rowNum = 1; |
| | | list.forEach(item->{ |
| | | sb.append(rowNum).append("、 "); |
| | | sb.append(item.getDescribe()).append("\n"); |
| | | }); |
| | | } |
| | | // 在文本中直接使用换行符 |
| | | String content = "第一行内容\n第二行内容\n第三行内容"; |
| | | map.put("complaintProgress", content); |
| | | map.put("status", "处理中"); |
| | | map.put("complaintProgress", sb.toString()); |
| | | map.put("status", ProcessStatusEnum.getDescriptionByCode(complaint.getStatus())); |
| | | if (2 == type) { |
| | | //查询诉求评价 |
| | | ComplaintComment complaintComment = complaintCommentService.lambdaQuery().eq(ComplaintComment::getComplaintId, id).last("LIMIT 1").one(); |
| | | if (Objects.nonNull(complaintComment)) { |
| | | map.put("rateStr", RateEnum.getEnumByCode(complaintComment.getRate())); |
| | | } |
| | | } |
| | | response.setContentType("application/octet-stream"); |
| | | String fileName = URLEncoder.encode("社区问题单", "UTF-8").replaceAll("\\+", "%20"); |
| | | response.setHeader("Content-disposition","attachment;filename=\""+fileName+".docx"+"\""); |
| | | String fileTemplateName = FileUtil.getPath() + "template/社区问题单.docx"; |
| | | String fileNameEncode = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); |
| | | response.setHeader("Content-disposition","attachment;filename=\""+fileNameEncode+".docx"+"\""); |
| | | String fileTemplateName = FileUtil.getPath() + "template/"+fileName+".docx"; |
| | | XWPFTemplate.compile(fileTemplateName).render(map).writeAndClose(response.getOutputStream()); |
| | | } |
| | | /** |
| | | * 问题处理单 |
| | | * @param id |
| | | */ |
| | | @Override |
| | | public void problemHandle(Long id) { |
| | | |
| | | } |
| | | /** |
| | | * 协调通知 |
| | | * @param id |
| | | */ |
| | | @Override |
| | | public void coordinationNotice(Long id) { |
| | | |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | try { |
| | |
| | | ORDER BY sc.create_time DESC |
| | | </select> |
| | | <select id="pageList" resultType="com.panzhihua.sangeshenbian.model.vo.ComplaintVO"> |
| | | SELECT * FROM( |
| | | SELECT sc.id, |
| | | sc.serial_number, |
| | | sc.time, |
| | | sc.problem_type, |
| | | sc.name, |
| | | sc.contact_number, |
| | | sc.location, |
| | | sc.detailed_address, |
| | | sc.description_title, |
| | | sc.description_content, |
| | | sc.images, |
| | | sc.videos, |
| | | CASE |
| | | WHEN sc.status = 0 and scar.audit_type = 1 AND scar.audit_status = 0 THEN 7 |
| | | WHEN sc.status = 0 and scar.audit_type = 2 AND scar.audit_status = 0 THEN 5 |
| | | WHEN sc.status = 0 and scar.audit_status = 2 THEN 6 |
| | | ELSE sc.status |
| | | END AS status, |
| | | sc.report_type, |
| | | sc.superior_id, |
| | | sc.city_code, |
| | | sc.districts_code, |
| | | sc.street_id, |
| | | sc.community_id, |
| | | sc.party_member_id, |
| | | sc.create_by, |
| | | sc.create_time, |
| | | sc.update_by, |
| | | sc.update_time, |
| | | sc.completion_description, |
| | | sc.completion_images, |
| | | sc.completion_videos, |
| | | sc.completion_other_description, |
| | | sc.completion_time, |
| | | sc.completion_user_id, |
| | | sc.completion_username, |
| | | sc.completion_user_phone, |
| | | sc.closing_time, |
| | | sc.over_time_days, |
| | | sc.latitude, |
| | | sc.longitude, |
| | | scar.audit_type, |
| | | scar.audit_status, |
| | | scar.comment, |
| | | scar.create_time AS reportTime, |
| | | scar.system_user_id, |
| | | scar.reporter, |
| | | scar.department_name, |
| | | scar.department_id |
| | | FROM sgsb_complaint sc |
| | | INNER JOIN sgsb_complaint_audit_record scar ON scar.complaint_id = sc.id and scar.latest_flag = 1 |
| | | ) AS t |
| | | <where> |
| | | scar.latest_flag = 1 |
| | | <if test="1 == loginUserInfo.accountLevel"> |
| | | and t.city_code = 510400 |
| | | </if> |
| | | <if test="2 == loginUserInfo.accountLevel"> |
| | | and (t.districts_code = #{loginUserInfo.districtsCode} || t.id in (select complaint_id from |
| | | sgsb_complaint_audit_record where audit_type = 3 and audit_status = 1 and report_type = |
| | | #{loginUserInfo.accountLevel} and superior_id = #{loginUserInfo.districtsCode})) |
| | | </if> |
| | | <if test="3 == loginUserInfo.accountLevel"> |
| | | and (t.street_id = #{loginUserInfo.streetId} || t.id in (select complaint_id from |
| | | sgsb_complaint_audit_record where audit_type = 3 and audit_status = 1 and report_type = |
| | | #{loginUserInfo.accountLevel} and superior_id = #{loginUserInfo.streetId})) |
| | | </if> |
| | | <if test="4 == loginUserInfo.accountLevel"> |
| | | and (t.community_id = #{loginUserInfo.communityId} || t.id in (select complaint_id from |
| | | sgsb_complaint_audit_record where audit_type = 3 and audit_status = 1 and report_type = |
| | | #{loginUserInfo.accountLevel} and superior_id = #{loginUserInfo.communityId})) |
| | | </if> |
| | | <if test="query.status!=null and query.status == 0"> |
| | | AND t.status = #{query.status} |
| | | </if> |
| | | <if test="query.nickname != null and query.nickname!=''"> |
| | | |
| | | </if> |
| | | <if test="query.phone != null and query.phone!=''"> |
| | | |
| | | </if> |
| | | <if test="query.startTime != null and query.endTime!=null"> |
| | | AND t.create_time BETWEEN #{query.startTime} AND #{query.endTime} |
| | | </if> |
| | | <if test="query.problemType != null and query.problemType!=''"> |
| | | AND t.problem_type =#{query.problemType} |
| | | </if> |
| | | </where> |
| | | ORDER BY t.create_time DESC |
| | | </select> |
| | | <select id="getList" resultType="com.panzhihua.sangeshenbian.model.vo.ComplaintVO"> |
| | | SELECT * FROM( |
| | | SELECT sc.id, |
| | | sc.serial_number, |
| | | sc.time, |
| | | sc.problem_type, |
| | | sc.name, |
| | | sc.contact_number, |
| | | sc.location, |
| | | sc.detailed_address, |
| | | sc.description_title, |
| | | sc.description_content, |
| | | sc.images, |
| | | sc.videos, |
| | | CASE |
| | | WHEN sc.status = 0 and scar.audit_type = 1 AND scar.audit_status = 0 THEN 7 |
| | | WHEN sc.status = 0 and scar.audit_type = 2 AND scar.audit_status = 0 THEN 5 |
| | | WHEN sc.status = 0 and scar.audit_status = 2 THEN 6 |
| | | ELSE sc.status |
| | | END AS status, |
| | | sc.report_type, |
| | | sc.superior_id, |
| | | sc.city_code, |
| | | sc.districts_code, |
| | | sc.street_id, |
| | | sc.community_id, |
| | | sc.party_member_id, |
| | | sc.create_by, |
| | | sc.create_time, |
| | | sc.update_by, |
| | | sc.update_time, |
| | | sc.completion_description, |
| | | sc.completion_images, |
| | | sc.completion_videos, |
| | | sc.completion_other_description, |
| | | sc.completion_time, |
| | | sc.completion_user_id, |
| | | sc.completion_username, |
| | | sc.completion_user_phone, |
| | | sc.closing_time, |
| | | sc.over_time_days, |
| | | sc.latitude, |
| | | sc.longitude, |
| | | scar.audit_type, |
| | | scar.audit_status, |
| | | scar.comment, |
| | | scar.create_time AS reportTime, |
| | | scar.system_user_id, |
| | | scar.reporter, |
| | | scar.department_name, |
| | | scar.department_id |
| | | FROM sgsb_complaint sc |
| | | INNER JOIN sgsb_complaint_audit_record scar ON scar.complaint_id = sc.id and scar.latest_flag = 1 |
| | | ) AS t |
| | | <where> |
| | | scar.latest_flag = 1 |
| | | <if test="1 == loginUserInfo.accountLevel"> |
| | | and t.city_code = 510400 |
| | | </if> |
| | | <if test="2 == loginUserInfo.accountLevel"> |
| | | and (t.districts_code = #{loginUserInfo.districtsCode} || t.id in (select complaint_id from |
| | | sgsb_complaint_audit_record where audit_type = 3 and audit_status = 1 and report_type = |
| | | #{loginUserInfo.accountLevel} and superior_id = #{loginUserInfo.districtsCode})) |
| | | </if> |
| | | <if test="3 == loginUserInfo.accountLevel"> |
| | | and (t.street_id = #{loginUserInfo.streetId} || t.id in (select complaint_id from |
| | | sgsb_complaint_audit_record where audit_type = 3 and audit_status = 1 and report_type = |
| | | #{loginUserInfo.accountLevel} and superior_id = #{loginUserInfo.streetId})) |
| | | </if> |
| | | <if test="4 == loginUserInfo.accountLevel"> |
| | | and (t.community_id = #{loginUserInfo.communityId} || t.id in (select complaint_id from |
| | | sgsb_complaint_audit_record where audit_type = 3 and audit_status = 1 and report_type = |
| | | #{loginUserInfo.accountLevel} and superior_id = #{loginUserInfo.communityId})) |
| | | </if> |
| | | <if test="query.status!=null and query.status == 0"> |
| | | AND t.status = #{query.status} |
| | | </if> |
| | | <if test="query.nickname != null and query.nickname!=''"> |
| | | |
| | | </if> |
| | | <if test="query.phone != null and query.phone!=''"> |
| | | |
| | | </if> |
| | | <if test="query.startTime != null and query.endTime!=null"> |
| | | AND t.create_time BETWEEN #{query.startTime} AND #{query.endTime} |
| | | </if> |
| | | <if test="query.problemType != null and query.problemType!=''"> |
| | | AND t.problem_type =#{query.problemType} |
| | | </if> |
| | | </where> |
| | | ORDER BY t.create_time DESC |
| | | </select> |
| | | |
| | | |