From 00ef2e4c4c6a85af857be272cf74a7e43e6517f0 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期日, 16 三月 2025 03:42:16 +0800 Subject: [PATCH] 修改诉求流程和新增评价功能 --- springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java | 37 ++ springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/ComplaintTasks.java | 25 + springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/PartyMemberServiceImpl.java | 16 + springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/bootstrap.yml | 4 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml | 65 +--- springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java | 30 + springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java | 555 ++++++++++++++++++++++-------------------- springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java | 2 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IPartyMemberService.java | 8 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java | 7 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java | 16 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintVO.java | 6 12 files changed, 441 insertions(+), 330 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java index bf9590b..40f28e6 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java @@ -1,19 +1,18 @@ package com.panzhihua.sangeshenbian.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.sangeshenbian.annotation.DistributedLock; import com.panzhihua.sangeshenbian.model.dto.*; -import com.panzhihua.sangeshenbian.model.entity.Complaint; -import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord; -import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress; -import com.panzhihua.sangeshenbian.model.entity.ProblemType; +import com.panzhihua.sangeshenbian.model.entity.*; import com.panzhihua.sangeshenbian.model.query.ComplaintQuery; import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; import com.panzhihua.sangeshenbian.model.vo.DispatchVO; +import com.panzhihua.sangeshenbian.service.IComplaintCommentService; import com.panzhihua.sangeshenbian.service.IComplaintService; import com.panzhihua.sangeshenbian.service.IProblemTypeService; import io.swagger.annotations.Api; @@ -32,6 +31,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.Date; import java.util.List; /** @@ -51,6 +51,7 @@ private final IComplaintService complaintService; private final IProblemTypeService problemTypeService; + private final IComplaintCommentService complaintCommentService; @GetMapping("/problem-type/list") @ApiOperation("获取诉求问题类型列表") public R<List<ProblemType>> problemTypeList() { @@ -163,7 +164,29 @@ public R<List<DispatchVO>> getDispatchList() { return R.ok(complaintService.getDispatchList(getLoginUserInfo())); } - - - + + + /** + * 评价诉求 + * @param complaintComment + * @return + */ + @PostMapping("/commentComplaint") + @ApiOperation(value = "评价诉求") + public R<?> commentComplaint(@RequestBody ComplaintComment complaintComment){ + int count = complaintCommentService.count(new LambdaQueryWrapper<ComplaintComment>().eq(ComplaintComment::getComplaintId, complaintComment.getComplaintId()) + .eq(ComplaintComment::getDelFlag, 0)); + if(0 != count){ + return R.fail("不能重复评价"); + } + Long userId = getLoginUserInfo().getUserId(); + complaintComment.setUserId(userId); + complaintComment.setCreateTime(new Date()); + complaintComment.setCreateBy(userId); + complaintComment.setUpdateBy(userId); + complaintComment.setUpdateTime(new Date()); + complaintComment.setDelFlag(0); + complaintCommentService.save(complaintComment); + return R.ok(); + } } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java index d4a89e3..5b524f1 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java @@ -9,6 +9,8 @@ import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * <p> * 问题报告表 Mapper 接口 @@ -33,11 +35,10 @@ * 工单列表 * @param page * @param query - * @param targetId - * @param isSuperior * @return */ - Page<ComplaintVO> selectComplaintPage1(Page<ComplaintVO> page, @Param("query") ComplaintQuery query, @Param("accountLevel") Integer accountLevel, @Param("targetId") String targetId); + Page<ComplaintVO> selectComplaintPage1(Page<ComplaintVO> page, @Param("query") ComplaintQuery query, + @Param("accountLevel") Integer accountLevel, @Param("targetId") Long targetId); @@ -46,7 +47,7 @@ * @param id * @return */ - ComplaintVO getDetail(@Param("id") Long id,@Param("targetId") String targetId, @Param("isSuperior") Integer isSuperior); + ComplaintVO getDetail(@Param("id") Long id); /** * 获取待办诉求 @@ -56,4 +57,11 @@ * @return */ Page<ComplaintTodoVO> getTodoList(Page<ComplaintTodoVO> page, @Param("targetId") String targetId, @Param("isSuperior") int isSuperior); + + + /** + * 获取超时未评价的数据 + * @return + */ + List<Complaint> getTimeoutAndNotComment(); } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java index b40e67f..c098c32 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java @@ -98,10 +98,6 @@ @TableField("status") private Integer status; - @ApiModelProperty(value = "上报类型 1=市级账号,2=区县账号,3=街道账号,4=社区账号") - @TableField("report_type") - private Integer reportType; - @ApiModelProperty(value = "上级类型 1=市级账号,2=区县账号,3=街道账号,4=社区账号") @TableField("superior_type") private Integer superiorType; @@ -109,7 +105,31 @@ @ApiModelProperty(value = "上级id") @TableField("superior_id") private Long superiorId; - + + @ApiModelProperty(value = "上报类型 1=市级账号,2=区县账号,3=街道账号,4=社区账号,5=党员账号") + @TableField("report_type") + private Integer reportType; + + @ApiModelProperty(value = "上报人所属市") + @TableField("city_code") + private Integer cityCode; + + @ApiModelProperty(value = "上报人所属区县") + @TableField("districts_code") + private Integer districtsCode; + + @ApiModelProperty(value = "上报人所属街道id") + @TableField("street_id") + private Long streetId; + + @ApiModelProperty(value = "上报人所属社区id") + @TableField("community_id") + private Long communityId; + + @ApiModelProperty(value = "上报党员id") + @TableField("party_member_id") + private Long partyMemberId; + @ApiModelProperty(value = "创建人") @TableField("create_by") private Long createBy; diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java index e11daf6..7d65213 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java @@ -49,7 +49,7 @@ @TableField("auditor_id") private Long auditorId; - @ApiModelProperty(value = "审核类型(0:录入1:延期申请, 2:上报申请,3=下派)") + @ApiModelProperty(value = "审核类型(1:延期申请, 2:上报申请,3=下派)") @TableField("audit_type") private Integer auditType; diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintVO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintVO.java index fed2f8c..2ffc8ce 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintVO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintVO.java @@ -57,4 +57,10 @@ @ApiModelProperty(value = "审核按钮状态(0=显示,1=隐藏)") private Integer auditButtonStatus; + + @ApiModelProperty(value = "列表操作按钮状态(0=显示,1=隐藏)") + private Integer listControlsButtonStatus; + + @ApiModelProperty(value = "评价按钮状态(0=显示,1=隐藏)") + private Integer evaluateButtonStatus; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/ComplaintTasks.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/ComplaintTasks.java index 4f7db17..486c621 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/ComplaintTasks.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/ComplaintTasks.java @@ -9,10 +9,7 @@ import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.sangeshenbian.dao.ComplaintAuditRecordMapper; import com.panzhihua.sangeshenbian.model.dto.ComplaintTimeout; -import com.panzhihua.sangeshenbian.model.entity.Complaint; -import com.panzhihua.sangeshenbian.model.entity.MessageNotification; -import com.panzhihua.sangeshenbian.model.entity.SystemUser; -import com.panzhihua.sangeshenbian.model.entity.WorkOrderItemConfig; +import com.panzhihua.sangeshenbian.model.entity.*; import com.panzhihua.sangeshenbian.service.*; import com.panzhihua.sangeshenbian.utils.AliSmsUtil; import lombok.RequiredArgsConstructor; @@ -34,6 +31,7 @@ private final ISystemUserService systemUserService;; private final UserService userService; private final IMessageNotificationService messageNotificationService; + private final IComplaintCommentService complaintCommentService; /** * 诉求超时处理(每天凌晨两点执行) @@ -80,6 +78,25 @@ complaintService.updateBatchById(complaintList); messageNotificationService.saveBatch(messageNotificationList); } + + + /** + * 自动完成诉求评价 + */ + @Scheduled(cron = "0 1 0 * * ?") + public void automaticEvaluation() { + // 诉求超时提醒 + List<Complaint> complaintList = complaintService.getTimeoutAndNotComment(); + for (Complaint complaint : complaintList) { + ComplaintComment complaintComment = new ComplaintComment(); + complaintComment.setComplaintId(complaint.getId()); + complaintComment.setRate(2); + complaintComment.setContent("满意"); + complaintComment.setDelFlag(0); + complaintCommentService.save(complaintComment); + } + } + // 诉求超时处理 private void timeOutHandle(WorkOrderItemConfig config,Integer demandProcessingTime) { diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java index fe757d1..6039e4d 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java @@ -108,4 +108,11 @@ * @return */ ComplaintAuditRecord delayDetail(Long complaintId); + + + /** + * 获取超时未评价的数据 + * @return + */ + List<Complaint> getTimeoutAndNotComment(); } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IPartyMemberService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IPartyMemberService.java index 17b0eb9..e377301 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IPartyMemberService.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IPartyMemberService.java @@ -67,4 +67,12 @@ * @param loginUserInfo */ void audit(PartyMemberDTO dto, SystemUserVo loginUserInfo); + + + /** + * 根据电话号码查询有效的党员数据 + * @param phone + * @return + */ + PartyMember getPartyMemberByPhone(String phone); } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java index e2233df..1f23d44 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java @@ -65,6 +65,8 @@ private final IComStreetService comStreetService; private final IComActService comActService; private final IWorkOrderItemConfigService workOrderItemConfigService; + private final IPartyMemberService partyMemberService; + private final IComplaintCommentService complaintCommentService; @Override public void saveComplaint(Complaint complaint, LoginUserInfoVO loginUserInfoVO) { @@ -92,36 +94,45 @@ complaint.setSerialNumber(serialNumber); Optional<SystemUser> systemUserOpt = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()); Integer accountLevel = 5; - Long superiorId = null; if (systemUserOpt.isPresent()) { SystemUser systemUser = systemUserOpt.get(); accountLevel = systemUser.getAccountLevel(); switch (accountLevel) { case 1: //市级 - superiorId = 510400L; + complaint.setCityCode(510400); break; case 2: //区县级 - superiorId = Long.parseLong(systemUser.getDistrictsCode()); + complaint.setCityCode(510400); + complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode())); break; case 3: //街道 - superiorId = Long.parseLong(systemUser.getStreetId()); + complaint.setCityCode(510400); + complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode())); + complaint.setStreetId(Long.valueOf(systemUser.getStreetId())); break; case 4: //社区 - superiorId = systemUser.getCommunityId(); + complaint.setCityCode(510400); + complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode())); + complaint.setStreetId(Long.valueOf(systemUser.getStreetId())); + complaint.setCommunityId(systemUser.getCommunityId()); break; case 5: //社区 - superiorId = loginUserInfoVO.getUserId(); + complaint.setCityCode(510400); + complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode())); + complaint.setStreetId(Long.valueOf(systemUser.getStreetId())); + complaint.setCommunityId(systemUser.getCommunityId()); + PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); + complaint.setPartyMemberId(partyMember.getId()); break; } - complaint.setSuperiorType(accountLevel); - complaint.setSuperiorId(superiorId); - }else{ - superiorId = loginUserInfoVO.getUserId(); + } else{ + PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); + complaint.setPartyMemberId(partyMember.getId()); } complaint.setReportType(accountLevel); // 设置其他字段 @@ -138,21 +149,6 @@ complaint.setClosingTime(new Date(System.currentTimeMillis() + config.getDemandProcessingTime() * 24 * 60 * 60 * 1000)); // 保存诉求记录 save(complaint); - int count = complaintAuditRecordService.count(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, complaint.getId())); - //保存记录 - ComplaintAuditRecord complaintAuditRecord = new ComplaintAuditRecord(); - complaintAuditRecord.setComplaintId(complaint.getId()); - complaintAuditRecord.setLatestFlag(true); - complaintAuditRecord.setAuditType(0); - complaintAuditRecord.setAuditStatus(-1); - complaintAuditRecord.setCreateBy(loginUserInfoVO.getUserId()); - complaintAuditRecord.setCreateTime(new Date(System.currentTimeMillis())); - complaintAuditRecord.setUpdateBy(loginUserInfoVO.getUserId()); - complaintAuditRecord.setUpdateTime(new Date(System.currentTimeMillis())); - complaintAuditRecord.setReportType(accountLevel); - complaintAuditRecord.setSuperiorId(superiorId); - complaintAuditRecord.setSort(count + 1); - complaintAuditRecordService.save(complaintAuditRecord); } /** @@ -165,8 +161,209 @@ Page<ComplaintVO> page = new Page<>(query.getPageNum(), query.getPageSize()); //判断当前登录用户级别,查询对应工单 Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()); + Long targetId = null; + Integer accountLevel = 5; + //上级 + if (systemUserByPhone.isPresent()) { + SystemUser systemUser = systemUserByPhone.get(); + accountLevel = systemUser.getAccountLevel(); + switch (accountLevel) { + case 1: + //市级 + targetId = 510400L; + break; + case 2: + //区县级 + targetId = Long.valueOf(systemUser.getDistrictsCode()); + break; + case 3: + //街道 + targetId = Long.valueOf(systemUser.getStreetId()); + break; + case 4: + //社区 + targetId = systemUser.getCommunityId(); + break; + case 5: + //党员 + PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); + targetId = partyMember.getId(); + break; + } + } else { + //党员 + PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); + targetId = partyMember.getId(); + } + //查询对应诉求 + //page = baseMapper.selectComplaintPage(page, query, targetId, isSuperior); + page = baseMapper.selectComplaintPage1(page, query, accountLevel, targetId); + page.getRecords().forEach(s->{ + buttonPermission(s, systemUserByPhone); + }); + return page; + } + + + /** + * 列表按钮权限 + * @param vo + */ + public void buttonPermission(ComplaintVO vo, Optional<SystemUser> systemUserByPhone){ + vo.setListControlsButtonStatus(1); + vo.setEvaluateButtonStatus(1); + ComplaintAuditRecord one = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId()) + .ne(ComplaintAuditRecord::getAuditType, 1).orderByDesc(ComplaintAuditRecord::getSort).last(" limit 0, 1")); + //没有审核数据,且正在办理,则按钮权限是添加人员的 + if(null == one && (vo.getStatus() == 0 || vo.getStatus() == 1 || vo.getStatus() == 2)){ + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + //非党员用户,必须是管理员有权限 + if(accountLevel.compareTo(vo.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){ + vo.setListControlsButtonStatus(0); + } + }else{ + if(vo.getReportType() == 5){ + vo.setListControlsButtonStatus(0); + } + } + } + //有审核数据,且正在办理 + if(null != one && (vo.getStatus() == 0 || vo.getStatus() == 1 || vo.getStatus() == 2)){ + //区分是上报数据还是下派数据 + if(one.getAuditType() == 2){ + //判断当前审核状态 + if(one.getAuditStatus() == 1){ + //审核状态为通过,则权限给到上报审核的这一层 + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + //非党员用户,必须是管理员有权限 + if(accountLevel.compareTo(one.getReportType()) == 0 && accountLevel != 5 && 1 == isAdmin){ + vo.setListControlsButtonStatus(0); + } + } + }else{ + //没有审核通过,则需要查询上一条审核通过的数据,如果没有则给到添加诉求的人 + ComplaintAuditRecord one1 = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId()) + .eq(ComplaintAuditRecord::getAuditType, 2).eq(ComplaintAuditRecord::getAuditStatus, 1).orderByDesc(ComplaintAuditRecord::getSort).last(" limit 0, 1")); + if(null != one1){ + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + //非党员用户,必须是管理员有权限 + if(accountLevel.compareTo(one1.getReportType()) == 0 && accountLevel != 5 && 1 == isAdmin){ + vo.setListControlsButtonStatus(0); + } + } + }else{ + //没有上一层审核通过的数据,则权限给到添加人 + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + //非党员用户,必须是管理员有权限 + if(accountLevel.compareTo(vo.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){ + vo.setListControlsButtonStatus(0); + } + }else{ + if(vo.getReportType() == 5){ + vo.setListControlsButtonStatus(0); + } + } + } + } + } + + //下派数据 + if(one.getAuditType() == 3){ + //判断当前审核状态 + if(one.getAuditStatus() == 1){ + //审核状态为通过,则权限给到下报审核的这一层 + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + //非党员用户,必须是管理员有权限 + if(accountLevel.compareTo(one.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){ + vo.setListControlsButtonStatus(0); + } + }else{ + if(vo.getReportType() == 5 && one.getReportType() == 5){ + vo.setListControlsButtonStatus(0); + } + } + }else{ + //没有审核通过,则需要查询上一条审核通过的数据,如果没有则给到添加诉求的人 + ComplaintAuditRecord one1 = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId()) + .eq(ComplaintAuditRecord::getAuditType, 3).eq(ComplaintAuditRecord::getAuditStatus, 1).orderByDesc(ComplaintAuditRecord::getSort).last(" limit 0, 1")); + if(null != one1){ + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + //非党员用户,必须是管理员有权限 + if(accountLevel.compareTo(one1.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){ + vo.setListControlsButtonStatus(0); + } + }else{ + if(vo.getReportType() == 5 && one1.getReportType() == 5){ + vo.setListControlsButtonStatus(0); + } + } + }else{ + //没有上一层审核通过的数据,则权限给到添加人 + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + //非党员用户,必须是管理员有权限 + if(accountLevel.compareTo(vo.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){ + vo.setListControlsButtonStatus(0); + } + }else{ + if(vo.getReportType() == 5){ + vo.setListControlsButtonStatus(0); + } + } + } + } + } + } + + //状态为已办结,判断评价按钮 + int count = complaintCommentService.count(new LambdaQueryWrapper<ComplaintComment>().eq(ComplaintComment::getComplaintId, vo.getId()).eq(ComplaintComment::getDelFlag, 0)); + if(vo.getStatus() == 3 && 0 == count){ + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + if(accountLevel.compareTo(vo.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){ + vo.setEvaluateButtonStatus(0); + } + }else{ + if(vo.getReportType() == 5){ + vo.setEvaluateButtonStatus(0); + } + } + } + } + + + /** + * 工单详情 + * + * @param id + * @return + */ + @Override + public ComplaintVO detail(Long id, LoginUserInfoVO loginUserInfoVO) { + Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()); String targetId = ""; - int isSuperior = 0; Integer accountLevel = 5; //上级 if (systemUserByPhone.isPresent()) { @@ -191,66 +388,16 @@ break; case 5: //党员 - targetId = loginUserInfoVO.getUserId().toString(); + PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); + targetId = partyMember.getId().toString(); break; } - isSuperior = 1; } else { //党员 - targetId = loginUserInfoVO.getUserId().toString(); + PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); + targetId = partyMember.getId().toString(); } - //查询对应诉求 - //page = baseMapper.selectComplaintPage(page, query, targetId, isSuperior); - page = baseMapper.selectComplaintPage1(page, query, accountLevel, targetId); - return page; - } - - /** - * 工单详情 - * - * @param id - * @return - */ - @Override - public ComplaintVO detail(Long id, LoginUserInfoVO loginUserInfoVO) { - Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()); - String targetId = ""; - int isSuperior = 0; - Integer accountLevel = 5; - //上级 - if (systemUserByPhone.isPresent()) { - SystemUser systemUser = systemUserByPhone.get(); - accountLevel = systemUser.getAccountLevel(); - switch (accountLevel) { - case 1: - //市级 - targetId = "510400"; - break; - case 2: - //区县级 - targetId = systemUser.getDistrictsCode(); - break; - case 3: - //街道 - targetId = systemUser.getStreetId().toString(); - break; - case 4: - //社区 - targetId = systemUser.getCommunityId().toString(); - break; - case 5: - //社区 - targetId = loginUserInfoVO.getUserId().toString(); - break; - } - isSuperior = 1; - } else { - //党员 - targetId = loginUserInfoVO.getUserId().toString(); - } - - - ComplaintVO detail = baseMapper.getDetail(id,targetId, isSuperior); + ComplaintVO detail = baseMapper.getDetail(id); if (detail.getStatus().equals(0)) { List<ComplaintFlow> list = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByAsc(ComplaintFlow::getCreateTime).list(); detail.setComplaintFlows(list); @@ -260,14 +407,30 @@ .orderByAsc(ComplaintProgress::getCreateTime).list(); detail.setComplaintProgresses(list); detail.setAuditButtonStatus(1); - Long superiorId = detail.getSuperiorId(); - Integer superiorType = detail.getSuperiorType(); + detail.setEvaluateButtonStatus(1); if((detail.getStatus() == 5 || detail.getStatus() == 7) && systemUserByPhone.isPresent()){ - if(superiorType.equals(accountLevel) && superiorId.toString().equals(targetId)){ + ComplaintAuditRecord one = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, detail.getId()) + .eq(ComplaintAuditRecord::getLatestFlag, 1)); + Integer isAdmin = systemUserByPhone.get().getIsAdmin(); + if(one.getReportType().equals(accountLevel) && one.getSuperiorId().toString().equals(targetId) && 1 == isAdmin){ detail.setAuditButtonStatus(0); } } - + //已办结,显示评价按钮 + int count = complaintCommentService.count(new LambdaQueryWrapper<ComplaintComment>().eq(ComplaintComment::getComplaintId, detail.getId()).eq(ComplaintComment::getDelFlag, 0)); + if(detail.getStatus() == 3 && 0 == count){ + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer isAdmin = systemUser.getIsAdmin(); + if(accountLevel.compareTo(detail.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){ + detail.setEvaluateButtonStatus(0); + } + }else{ + if(detail.getReportType() == 5){ + detail.setEvaluateButtonStatus(0); + } + } + } return detail; } @@ -319,9 +482,7 @@ @Override @Transactional(rollbackFor = Exception.class) public void saveReport(ComplaintReportDTO dto, LoginUserInfoVO loginUserInfoVO) { - log.info("用户登录数据----------------》" + JSON.toJSONString(loginUserInfoVO)); String phone = loginUserInfoVO.getPhone(); - SystemUser adminUser = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>() .eq(SystemUser::getPhone, phone) .eq(SystemUser::getIsAdmin, 1) @@ -329,16 +490,13 @@ .last("LIMIT 1")); Long superiorId; - Long currentId; int reportType; if (adminUser == null) { superiorId = loginUserInfoVO.getCommunityId(); - currentId = 0L; if (Objects.isNull(superiorId)) { throw new ServiceException("上报失败,请绑定社区"); } reportType = ReportTypeEnum.COMMUNITY.getCode(); - currentId = loginUserInfoVO.getUserId(); } else { int accountLevel = adminUser.getAccountLevel(); // 改为基本类型 if (accountLevel == 1) { @@ -349,16 +507,12 @@ // 使用基本类型比较并补充默认分支 if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) { superiorId = Long.parseLong(adminUser.getStreetId()); - currentId = adminUser.getCommunityId(); } else if (accountLevel == ReportTypeEnum.STREET.getCode()) { superiorId = Long.parseLong(adminUser.getDistrictsCode()); - currentId = Long.valueOf(adminUser.getStreetId()); } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) { superiorId = 510400L; // 攀枝花市 - currentId = Long.valueOf(adminUser.getDistrictsCode()); } else if(accountLevel == ReportTypeEnum.PARTY.getCode()){ superiorId = adminUser.getCommunityId(); - currentId = loginUserInfoVO.getUserId(); } else { // 处理未预期的账号等级 throw new ServiceException("未知的账号等级"); @@ -366,9 +520,6 @@ } Complaint complaint = getById(dto.getComplaintId()); - //complaint.setReportType(+); - complaint.setSuperiorType(reportType); - complaint.setSuperiorId(superiorId); if (complaint.getStatus() != 0) { complaint.setStatus(0); } @@ -380,7 +531,6 @@ .set(ComplaintAuditRecord::getLatestFlag, false)); // 添加审核记录 - //complaintAuditRecordService.createComplaintAuditRecord(dto.getComplaintId(), 2, dto.getComment(), loginUserInfoVO,adminUser); int count = complaintAuditRecordService.count(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, complaint.getId())); ComplaintAuditRecord complaintAuditRecord = new ComplaintAuditRecord(); complaintAuditRecord.setComplaintId(complaint.getId()); @@ -392,28 +542,11 @@ complaintAuditRecord.setUpdateBy(loginUserInfoVO.getUserId()); complaintAuditRecord.setUpdateTime(new Date()); complaintAuditRecord.setReporter(loginUserInfoVO.getNickName()); - complaintAuditRecord.setReportType(Objects.isNull(adminUser) ? 5 : adminUser.getAccountLevel()); - complaintAuditRecord.setSuperiorId(currentId); + complaintAuditRecord.setReportType(reportType); + complaintAuditRecord.setSuperiorId(superiorId); complaintAuditRecord.setComment(dto.getComment()); complaintAuditRecord.setSort(count + 1); complaintAuditRecordService.save(complaintAuditRecord); - - - ComplaintAuditRecord complaintAuditRecord2 = new ComplaintAuditRecord(); - complaintAuditRecord2.setComplaintId(complaint.getId()); - complaintAuditRecord2.setLatestFlag(true); - complaintAuditRecord2.setAuditType(2); - complaintAuditRecord2.setAuditStatus(0); - complaintAuditRecord2.setCreateBy(loginUserInfoVO.getUserId()); - complaintAuditRecord2.setCreateTime(new Date()); - complaintAuditRecord2.setUpdateBy(loginUserInfoVO.getUserId()); - complaintAuditRecord2.setUpdateTime(new Date()); - complaintAuditRecord2.setReporter(loginUserInfoVO.getNickName()); - complaintAuditRecord2.setReportType(reportType); - complaintAuditRecord2.setSuperiorId(superiorId); - complaintAuditRecord2.setComment(dto.getComment()); - complaintAuditRecord2.setSort(count + 2); - complaintAuditRecordService.save(complaintAuditRecord2); } @Override @@ -437,11 +570,7 @@ accountLevel++; Complaint complaint = getById(dto.getComplaintId()); - complaint.setSuperiorType(accountLevel); - complaint.setSuperiorId(dto.getDispatchId()); updateById(complaint); - Long superiorOrgId = complaint.getSuperiorId(); - Integer superiorType = complaint.getSuperiorType(); //查询当前单位审核记录表数据 //查询上报审核记录 ComplaintAuditRecord complaintAuditRecord = complaintAuditRecordService.lambdaQuery() @@ -461,7 +590,7 @@ ComplaintAuditRecord record = new ComplaintAuditRecord(); record.setComplaintId(complaint.getId()); record.setLatestFlag(true); - record.setAuditType(0); + record.setAuditType(3); record.setAuditStatus(1); record.setCreateBy(loginUserInfoVO.getUserId()); record.setCreateTime(new Date(System.currentTimeMillis())); @@ -507,82 +636,20 @@ .eq(ComplaintAuditRecord::getReportType, systemUser.getAccountLevel()) .eq(ComplaintAuditRecord::getSuperiorId, superiorId) .last("LIMIT 1").one(); - ComplaintAuditRecord lowLevelRecord = complaintAuditRecordService.lambdaQuery() - .eq(ComplaintAuditRecord::getComplaintId, complaintReporAuditDTO.getId()) - .eq(ComplaintAuditRecord::getAuditType, 2) - .eq(ComplaintAuditRecord::getLatestFlag, true) - .eq(ComplaintAuditRecord::getReportType, systemUser.getAccountLevel()+1) - .last("LIMIT 1").one(); if (Objects.isNull(complaintAuditRecord)) { throw new ServiceException("上报申请记录不存在"); } - //查询待审核诉求 - //complaintAuditRecordService.audit(complaintAuditRecord, loginUserInfoVO.getUserId(), - // complaintReporAuditDTO.getAuditResult(), complaintReporAuditDTO.getRejectReason()); - - // 添加流转记录 - Complaint complaint = getById(complaintAuditRecord.getComplaintId()); - - // 标记最新 - complaintAuditRecordService.update(new LambdaUpdateWrapper<ComplaintAuditRecord>() - .eq(ComplaintAuditRecord::getComplaintId, complaintAuditRecord.getComplaintId()) - .set(ComplaintAuditRecord::getLatestFlag, false)); - if (complaintReporAuditDTO.getAuditResult().equals(1)) { - int count = complaintAuditRecordService.count(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, complaint.getId())); - ComplaintAuditRecord record = new ComplaintAuditRecord(); - record.setComplaintId(complaint.getId()); - record.setLatestFlag(true); - record.setAuditorId(loginUserInfoVO.getUserId()); - record.setAuditType(2); - record.setAuditStatus(1); - record.setCreateBy(loginUserInfoVO.getUserId()); - record.setCreateTime(new Date()); - record.setUpdateBy(loginUserInfoVO.getUserId()); - record.setUpdateTime(new Date()); - record.setReporter(complaintAuditRecord.getReporter()); - record.setReportType(complaintAuditRecord.getReportType()); - record.setSuperiorId(superiorId); - record.setSort(count + 1); - complaintAuditRecordService.save(record); + complaintAuditRecord.setAuditStatus(1); + complaintAuditRecord.setAuditorId(loginUserInfoVO.getUserId()); + complaintAuditRecordService.updateById(complaintAuditRecord); //创建流程 - complaintFlowService.createFlow(lowLevelRecord ,0, loginUserInfoVO.getUserId()); + complaintFlowService.createFlow(complaintAuditRecord ,0, loginUserInfoVO.getUserId()); } else { - - switch (systemUser.getAccountLevel() + 1) { - case 1: - superiorId = 510400L;//默认市级 - break; - case 2: - superiorId = Long.parseLong(systemUser.getDistrictsCode()); - break; - case 3: - superiorId = Long.parseLong(systemUser.getStreetId()); - break; - case 4: - superiorId = systemUser.getCommunityId(); - break; - case 5: - superiorId = complaint.getCreateBy(); - break; - } - int count = complaintAuditRecordService.count(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, complaint.getId())); - ComplaintAuditRecord record2 = new ComplaintAuditRecord(); - record2.setComplaintId(complaint.getId()); - record2.setLatestFlag(true); - record2.setAuditType(2); - record2.setAuditorId(loginUserInfoVO.getUserId()); - record2.setAuditStatus(2); - record2.setCreateBy(loginUserInfoVO.getUserId()); - record2.setCreateTime(new Date()); - record2.setUpdateBy(loginUserInfoVO.getUserId()); - record2.setUpdateTime(new Date()); - record2.setReporter(complaintAuditRecord.getReporter()); - record2.setReportType(systemUser.getAccountLevel() + 1); - record2.setSuperiorId(superiorId); - record2.setRejectReason(complaintReporAuditDTO.getRejectReason()); - record2.setSort(count + 1); - complaintAuditRecordService.save(record2); + complaintAuditRecord.setRejectReason(complaintReporAuditDTO.getRejectReason()); + complaintAuditRecord.setAuditStatus(2); + complaintAuditRecord.setAuditorId(loginUserInfoVO.getUserId()); + complaintAuditRecordService.updateById(complaintAuditRecord); } } @@ -592,55 +659,42 @@ public void saveDelay(ComplaintDelayDTO dto, LoginUserInfoVO loginUserInfoVO) { SystemUser systemUser = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()).orElse(null); Long superiorId; - Long currentId; int reportType; if (systemUser == null) { superiorId = loginUserInfoVO.getCommunityId(); - currentId = loginUserInfoVO.getUserId(); if (Objects.isNull(superiorId)) { - throw new ServiceException("上报失败,请绑定社区"); + throw new ServiceException("延期申请失败,请绑定社区"); } reportType = ReportTypeEnum.COMMUNITY.getCode(); } else { int accountLevel = systemUser.getAccountLevel(); // 改为基本类型 if (accountLevel == 1) { - throw new ServiceException("市级账号,无法上报!"); + throw new ServiceException("市级账号,无法延期申请!"); } reportType = accountLevel - 1; // 使用基本类型比较并补充默认分支 if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) { superiorId = Long.parseLong(systemUser.getStreetId()); - currentId = systemUser.getCommunityId(); } else if (accountLevel == ReportTypeEnum.STREET.getCode()) { superiorId = Long.parseLong(systemUser.getDistrictsCode()); - currentId = Long.parseLong(systemUser.getStreetId()); } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) { superiorId = 510400L; // 攀枝花市 - currentId = Long.parseLong(systemUser.getDistrictsCode()); } else if (accountLevel == ReportTypeEnum.PARTY.getCode()) { superiorId = systemUser.getCommunityId(); - currentId = loginUserInfoVO.getUserId(); } else { // 处理未预期的账号等级 throw new ServiceException("未知的账号等级"); } } - Complaint complaint = getById(dto.getComplaintId()); - complaint.setSuperiorType(reportType); - complaint.setSuperiorId(superiorId); - updateById(complaint); - // 添加审核记录 - //complaintAuditRecordService.createComplaintAuditRecord(dto.getComplaintId(), 1, dto.getComment(), loginUserInfoVO, systemUser); - // 清除最新记录 complaintAuditRecordService.update(new LambdaUpdateWrapper<ComplaintAuditRecord>() .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId()) .set(ComplaintAuditRecord::getLatestFlag, false)); - int count = complaintAuditRecordService.count(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, complaint.getId())); + int count = complaintAuditRecordService.count(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId())); ComplaintAuditRecord record1 = new ComplaintAuditRecord(); - record1.setComplaintId(complaint.getId()); + record1.setComplaintId(dto.getComplaintId()); record1.setLatestFlag(true); record1.setAuditType(1); record1.setAuditStatus(0); @@ -649,44 +703,28 @@ record1.setUpdateBy(loginUserInfoVO.getUserId()); record1.setUpdateTime(new Date(System.currentTimeMillis())); record1.setReporter(loginUserInfoVO.getNickName()); - record1.setReportType(Objects.isNull(systemUser) ? 5 : systemUser.getAccountLevel()); - record1.setSuperiorId(currentId); + record1.setReportType(reportType); + record1.setSuperiorId(superiorId); record1.setSort(count + 1); record1.setComment(dto.getComment()); complaintAuditRecordService.save(record1); - - ComplaintAuditRecord record2 = new ComplaintAuditRecord(); - record2.setComplaintId(complaint.getId()); - record2.setLatestFlag(true); - record2.setAuditType(1); - record2.setAuditStatus(0); - record2.setCreateBy(loginUserInfoVO.getUserId()); - record2.setCreateTime(new Date(System.currentTimeMillis())); - record2.setUpdateBy(loginUserInfoVO.getUserId()); - record2.setUpdateTime(new Date(System.currentTimeMillis())); - record2.setReporter(loginUserInfoVO.getNickName()); - record2.setReportType(reportType); - record2.setSuperiorId(superiorId); - record2.setSort(count + 2); - record1.setComment(dto.getComment()); - complaintAuditRecordService.save(record2); } @Override public void delayAudit(ComplaintDelayAuditDTO dto, LoginUserInfoVO loginUserInfoVO) { - SystemUser systemUser = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()).orElse(null); - int accountLevel = systemUser.getAccountLevel(); // 改为基本类型 - Long cunrrentId; + Long superiorId; // 使用基本类型比较并补充默认分支 if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) { - cunrrentId = systemUser.getCommunityId(); + superiorId = systemUser.getCommunityId(); } else if (accountLevel == ReportTypeEnum.STREET.getCode()) { - cunrrentId = Long.parseLong(systemUser.getStreetId()); + superiorId = Long.parseLong(systemUser.getStreetId()); } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) { - cunrrentId = Long.parseLong(systemUser.getDistrictsCode()); + superiorId = Long.parseLong(systemUser.getDistrictsCode()); + } else if (accountLevel == ReportTypeEnum.CITY.getCode()) { + superiorId = 510400L; } else { // 处理未预期的账号等级 throw new ServiceException("未知的账号等级"); @@ -697,8 +735,8 @@ .eq(ComplaintAuditRecord::getAuditType, 1) .eq(ComplaintAuditRecord::getLatestFlag, 1) .eq(ComplaintAuditRecord::getAuditStatus, 0) - .ne(ComplaintAuditRecord::getSuperiorId, cunrrentId) - .eq(ComplaintAuditRecord::getReportType, accountLevel+1) + .ne(ComplaintAuditRecord::getSuperiorId, superiorId) + .eq(ComplaintAuditRecord::getReportType, accountLevel) .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId()) .last("LIMIT 1")); @@ -706,37 +744,23 @@ if (Objects.isNull(complaintAuditRecord)) { throw new ServiceException("诉求延期申请不存在"); } - //complaintAuditRecordService.audit(complaintAuditRecord, loginUserInfoVO.getUserId(), - // dto.getAuditResult(), dto.getRejectReason()); //审核通过后,设置诉求延期 if (complaintAuditRecord.getAuditType().equals(1) && complaintAuditRecord.getAuditStatus().equals(0) && dto.getAuditResult().equals(1)) { Complaint complaint = getById(complaintAuditRecord.getComplaintId()); complaint.setStatus(1); updateById(complaint); + + complaintAuditRecord.setAuditStatus(1); + complaintAuditRecord.setAuditorId(loginUserInfoVO.getUserId()); + complaintAuditRecordService.updateById(complaintAuditRecord); } - - - complaintAuditRecordService.update(new LambdaUpdateWrapper<ComplaintAuditRecord>() - .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId()) - .set(ComplaintAuditRecord::getLatestFlag, false)); - int count = complaintAuditRecordService.count(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, dto.getId())); - ComplaintAuditRecord record1 = new ComplaintAuditRecord(); - record1.setComplaintId(dto.getComplaintId()); - record1.setLatestFlag(true); - record1.setAuditType(1); - record1.setAuditorId(loginUserInfoVO.getUserId()); - record1.setAuditStatus(dto.getAuditResult()); - record1.setCreateBy(loginUserInfoVO.getUserId()); - record1.setCreateTime(new Date(System.currentTimeMillis())); - record1.setUpdateBy(loginUserInfoVO.getUserId()); - record1.setUpdateTime(new Date(System.currentTimeMillis())); - record1.setReporter(complaintAuditRecord.getReporter()); - record1.setReportType(complaintAuditRecord.getReportType()); - record1.setSuperiorId(complaintAuditRecord.getSuperiorId()); - record1.setSort(count + 1); - record1.setRejectReason(dto.getRejectReason()); - complaintAuditRecordService.save(record1); - + //审核不通过 + if(complaintAuditRecord.getAuditType().equals(1) && complaintAuditRecord.getAuditStatus().equals(0) && dto.getAuditResult().equals(2)){ + complaintAuditRecord.setRejectReason(dto.getRejectReason()); + complaintAuditRecord.setAuditStatus(2); + complaintAuditRecord.setAuditorId(loginUserInfoVO.getUserId()); + complaintAuditRecordService.updateById(complaintAuditRecord); + } } @Override @@ -849,5 +873,16 @@ .eq(ComplaintAuditRecord::getLatestFlag, true) .last("LIMIT 1").one(); } + + + /** + * 获取超时未评价的数据 + * @return + */ + @Override + public List<Complaint> getTimeoutAndNotComment() { + return this.baseMapper.getTimeoutAndNotComment(); + } + } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/PartyMemberServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/PartyMemberServiceImpl.java index 760517c..2217369 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/PartyMemberServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/PartyMemberServiceImpl.java @@ -2,6 +2,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.idev.excel.FastExcel; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo; import com.panzhihua.sangeshenbian.model.entity.PartyMember; @@ -139,5 +140,16 @@ int genderDigit = Character.getNumericValue(genderChar); return (genderDigit % 2 == 0) ? 0 : 1; } - -} + + + /** + * 根据电话号码查询有效的党员数据 + * @param phone + * @return + */ + @Override + public PartyMember getPartyMemberByPhone(String phone) { + PartyMember one = this.getOne(new LambdaQueryWrapper<PartyMember>().eq(PartyMember::getPhone, phone) + .eq(PartyMember::getAuditStatus, 1).eq(PartyMember::getFreezeStatus, 0).eq(PartyMember::getDelFlag, 0)); + return one; + }} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/bootstrap.yml index 106261d..8cea1da 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/bootstrap.yml +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ enabled: true service-id: huacheng-config # 注册中心的服务名 profile: ${ENV:dev} # 指定配置文件的环境 - uri: http://${CONFIG_URL:localhost}:6193/ + uri: http://${CONFIG_URL:192.168.110.188}:6193/ profiles: active: ${ENV:dev} servlet: @@ -20,7 +20,7 @@ eureka: client: service-url: - defaultZone: http://${EUREKA_URL:localhost}:8192/eureka + defaultZone: http://${EUREKA_URL:192.168.110.188}:8192/eureka #实体加密、解密、字段脱敏拦截设置 domain: diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml index 43bfe59..01898f5 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml @@ -119,55 +119,26 @@ 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 and scar.superior_id = #{targetId} + INNER JOIN sgsb_complaint_audit_record scar ON scar.complaint_id = sc.id and scar.latest_flag = 1 <where> scar.latest_flag = 1 - <if test="null != accountLevel and accountLevel == 5"> - and scar.report_type = 5 and scar.superior_id = #{targetId} - <if test="query.type == 0"> - and scar.audit_type != 0 AND scar.audit_status = 0 - </if> + <if test="1 == accountLevel"> + and sc.city_code = #{targetId} </if> - <if test="null != accountLevel and accountLevel == 4"> - <if test="query.type==null"> - and ( - (scar.report_type = 4 and scar.superior_id = #{targetId}) or (scar.report_type = 4 and scar.superior_id = #{targetId}) - or ( scar.audit_type != 0 AND scar.audit_status != 1 and scar.report_type = 4 and scar.superior_id = #{targetId}) - ) - </if> - <if test="query.type == 0"> - and ( scar.audit_type != 0 AND scar.audit_status = 0 and scar.report_type = 4 and scar.superior_id = #{targetId}) - </if> + <if test="2 == accountLevel"> + and (sc.districts_code = #{targetId} || sc.id in (select complaint_id from sgsb_complaint_audit_record where audit_type = 3 and audit_status = 1 and report_type = #{accountLevel} and superior_id = #{targetId})) </if> - <if test="null != accountLevel and accountLevel == 3"> - <if test="query.type==null"> - and ( - (scar.report_type = 3 and scar.superior_id = #{targetId}) or (scar.report_type = 3 and scar.superior_id = #{targetId}) - or (scar.audit_type != 0 AND scar.audit_status != 1 and scar.report_type = 3 and scar.superior_id = #{targetId}) - ) - </if> - <if test="query.type == 0"> - and (scar.audit_type != 0 AND scar.audit_status = 0 and scar.report_type = 3 and scar.superior_id = #{targetId}) - </if> + <if test="null != streetId"> + and (sc.street_id = #{streetId} || sc.id in (select complaint_id from sgsb_complaint_audit_record where audit_type = 3 and audit_status = 1 and report_type = #{accountLevel} and superior_id = #{targetId})) </if> - <if test="null != accountLevel and accountLevel == 2"> - <if test="query.type==null"> - and ((scar.report_type = 2 and scar.superior_id = #{targetId}) or (scar.report_type = 2 and scar.superior_id = #{targetId}) - or (scar.audit_type != 0 AND scar.audit_status != 1 and scar.report_type = 2 and scar.superior_id = #{targetId}) - ) - </if> - <if test="query.type == 0"> - and (scar.audit_type != 0 AND scar.audit_status = 0 and scar.report_type = 2 and scar.superior_id = #{targetId}) - </if> + <if test="null != communityId"> + and (sc.community_id = #{communityId} || sc.id in (select complaint_id from sgsb_complaint_audit_record where audit_type = 3 and audit_status = 1 and report_type = #{accountLevel} and superior_id = #{targetId})) </if> - <if test="null != accountLevel and accountLevel == 1"> - <if test="query.type == null"> - and ((scar.report_type = 1 and scar.superior_id = #{targetId}) or (scar.report_type = 1 and scar.superior_id = #{targetId}) - or (scar.audit_type != 0 AND scar.audit_status != 1 and scar.report_type = 1 and scar.superior_id = #{targetId})) - </if> - <if test="query.type == 0"> - and (scar.audit_type != 0 AND scar.audit_status = 0 and scar.report_type = 1 and scar.superior_id = #{targetId}) - </if> + <if test="null != partyMemberId"> + and (sc.party_member_id = #{partyMemberId} || sc.id in (select complaint_id from sgsb_complaint_audit_record where audit_type = 3 and audit_status = 1 and report_type = #{accountLevel} and superior_id = #{targetId})) + </if> + <if test="query.type!=null and query.type == 0"> + AND sc.status IN(0,1,2) and scar.audit_status = 0 </if> <if test="query.type!=null and query.type == 1"> AND sc.status IN(0,1,2) and scar.audit_status != 0 @@ -239,8 +210,7 @@ ifnull((select b.phone from sgsb_complaint_audit_record a left join sys_user b on (a.create_by = b.user_id) where a.audit_status != 0 and a.complaint_id = #{id} order by a.sort desc limit 0, 1), "") AS auditorPhone FROM sgsb_complaint sc LEFT JOIN sys_user su ON su.user_id = sc.create_by - LEFT JOIN sgsb_complaint_audit_record scar ON scar.complaint_id = sc.id and scar.latest_flag = 1 and scar.superior_id = #{targetId} - LEFT JOIN sys_user su2 ON su2.user_id = scar.auditor_id AND scar.audit_status != 0 + LEFT JOIN sgsb_complaint_audit_record scar ON scar.complaint_id = sc.id and scar.latest_flag = 1 <where> sc.id = #{id} </where> @@ -263,4 +233,9 @@ </where> ORDER BY sc.create_time DESC </select> + + + <select id="getTimeoutAndNotComment" resultType="com.panzhihua.sangeshenbian.model.entity.Complaint"> + select * from sgsb_complaint where status = 3 and DATE_ADD(completion_time, INTERVAL 10 DAY) <= NOW() + </select> </mapper> -- Gitblit v1.7.1