From 53d014edd19f57125c355abe71ec5b478500e610 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 05 八月 2025 09:57:40 +0800 Subject: [PATCH] 保洁巡检所有代码 --- ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java | 294 +++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 237 insertions(+), 57 deletions(-) diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java index 2548608..a78e71c 100644 --- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java +++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java @@ -5,11 +5,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.BaseModel; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.redis.service.RedisService; +import com.ruoyi.common.utils.CodeGenerateUtils; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.framework.web.service.TokenService; @@ -25,14 +28,25 @@ import com.ruoyi.system.query.KnowledgeListQuery; import com.ruoyi.system.query.TaskListQuery; import com.ruoyi.system.service.*; +import com.ruoyi.system.utils.TemplateMessageSendUtil; +import com.ruoyi.system.utils.wx.body.resp.Code2SessionRespBody; +import com.ruoyi.system.utils.wx.body.resq.Code2SessionResqBody; +import com.ruoyi.system.utils.wx.model.WeixinProperties; +import com.ruoyi.system.utils.wx.pojo.AppletUserDecodeData; +import com.ruoyi.system.utils.wx.pojo.AppletUserEncrypteData; +import com.ruoyi.system.utils.wx.tools.WxAppletTools; +import com.ruoyi.system.utils.wx.tools.WxUtils; import com.ruoyi.system.vo.system.*; import com.ruoyi.web.controller.tool.EmailUtils; import com.ruoyi.web.controller.tool.MsgUtils; import com.sun.jna.platform.win32.LMAccess; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; +import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; import javax.validation.Valid; @@ -54,6 +68,7 @@ * @author xiaochen * @since 2025-05-28 */ +@Slf4j @Api(tags = "个人中心") @RestController @RequestMapping("/t-user") @@ -100,8 +115,37 @@ private TProblemEscalationService problemEscalationService; @Resource private TNoticeService noticeService; + @Autowired + private RestTemplate wxRestTemplate; + @Autowired + private WeixinProperties weixinProperties; + @Resource + private RedisService redisService; @Resource private MsgUtils msgUtils; + @Resource + private TemplateMessageSendUtil templateMessageSendUtil; + @Resource + private TInspectorDetailService inspectorDetailService; + @ApiOperation(value = "通过code获得openid,获取用户信息",tags = {"微信小程序登录"}) + @GetMapping("/openIdByJsCode") + public R<String> openIdByJsCode(@RequestParam String code) { + Long userId = tokenService.getLoginUserApplet().getUserId(); + SysUser sysUser = sysUserService.selectUserById(userId); + if(Objects.isNull(sysUser)){ + return R.fail("未查询到当前登录用户信息"); + } + if(StringUtils.hasLength(sysUser.getOpenId())){ + return R.ok(); + } + log.info("<<<<<<<<换取openid开始<<<<<<<<:{}", code); + WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, weixinProperties, redisService); + Code2SessionRespBody body = appletTools.getOpenIdByJscode2session(new Code2SessionResqBody().build(code)); + String openid = body.getOpenid(); + sysUser.setOpenId(openid); + sysUserService.updateUser(sysUser); + return R.ok(); + } @ApiOperation(value = "消息通知列表") @PostMapping(value = "/noticeList") @@ -336,70 +380,151 @@ @ApiOperation(value = "详情任务") @GetMapping(value = "/detail") public R<TaskDetailVO> detail(@RequestParam String id) { - List<TTaskDetail> list = taskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, id) - .orderByDesc(BaseModel::getCreateTime).list(); - TaskDetailVO taskDetailVO = new TaskDetailVO(); TTask byId = taskCleanerService.getById(id); - BeanUtils.copyProperties(byId, taskDetailVO); - TLocation byId1 = locationService.getById(byId.getLocationId()); - TLocationType byId2 = locationTypeService.getById(byId1.getLocationType()); - taskDetailVO.setLocationName(byId1.getLocationName()); - taskDetailVO.setLocationAddress(byId1.getLocationAddress()); - taskDetailVO.setLocationAddressEnd(byId1.getLocationAddressEnd()); - taskDetailVO.setLocationIcon(byId2.getLocationIcon()); - taskDetailVO.setLocationTypeName(byId2.getLocationName()); - taskDetailVO.setLocationLon(byId1.getLocationLon()); - taskDetailVO.setLocationLat(byId1.getLocationLat()); - taskDetailVO.setLocationLatEnd(byId1.getLocationLatEnd()); - taskDetailVO.setLocationLonEnd(byId1.getLocationLonEnd()); - TTaskDetail tTaskDetail = list.stream().filter(e -> e.getHandleType() == 1).findFirst().orElse(null); - if (tTaskDetail != null && tTaskDetail.getUnqualified() != null) { - TDictData byId3 = dictDataService.getById(tTaskDetail.getUnqualified()); - if (byId3 != null) { - tTaskDetail.setUnqualifiedName(byId3.getDataContent()); + TInspector inspector = inspectorService.getById(id); + + if (byId!=null){ + List<TTaskDetail> list = taskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, id) + .orderByDesc(BaseModel::getCreateTime).list(); + TaskDetailVO taskDetailVO = new TaskDetailVO(); + BeanUtils.copyProperties(byId, taskDetailVO); + TLocation byId1 = locationService.getById(byId.getLocationId()); + TLocationType byId2 = locationTypeService.getById(byId1.getLocationType()); + taskDetailVO.setLocationName(byId1.getLocationName()); + taskDetailVO.setLocationAddress(byId1.getLocationAddress()); + taskDetailVO.setLocationAddressEnd(byId1.getLocationAddressEnd()); + taskDetailVO.setLocationIcon(byId2.getLocationIcon()); + taskDetailVO.setLocationTypeName(byId2.getLocationName()); + taskDetailVO.setLocationLon(byId1.getLocationLon()); + taskDetailVO.setLocationLat(byId1.getLocationLat()); + taskDetailVO.setLocationLatEnd(byId1.getLocationLatEnd()); + taskDetailVO.setLocationLonEnd(byId1.getLocationLonEnd()); + TTaskDetail tTaskDetail = list.stream().filter(e -> e.getHandleType() == 1).findFirst().orElse(null); + if (tTaskDetail != null && tTaskDetail.getUnqualified() != null) { + TDictData byId3 = dictDataService.getById(tTaskDetail.getUnqualified()); + if (byId3 != null) { + tTaskDetail.setUnqualifiedName(byId3.getDataContent()); + } } - } - if (tTaskDetail != null) { - tTaskDetail.setFinishTime(tTaskDetail.getCreateTime()); - } - taskDetailVO.setTaskDetail(tTaskDetail); - taskDetailVO.setRecords(list); - if (byId.getStatus()==4){ - TTaskDetail reject = taskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, id) - .eq(TTaskDetail::getHandleType,3) - .orderByDesc(BaseModel::getCreateTime).last("limit 1").one(); - if (reject!=null){ - taskDetailVO.setRejectRemark(reject.getAuditRemark()); + if (tTaskDetail != null) { + tTaskDetail.setFinishTime(tTaskDetail.getCreateTime()); } + taskDetailVO.setTaskDetail(tTaskDetail); + taskDetailVO.setRecords(list); + if (byId.getStatus()==4){ + TTaskDetail reject = taskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, id) + .eq(TTaskDetail::getHandleType,3) + .orderByDesc(BaseModel::getCreateTime).last("limit 1").one(); + if (reject!=null){ + taskDetailVO.setRejectRemark(reject.getAuditRemark()); + } + } + return R.ok(taskDetailVO); + + }else{ + List<TInspectorDetail> list = inspectorDetailService.lambdaQuery().eq(TInspectorDetail::getInspectorId, id) + .orderByDesc(BaseModel::getCreateTime).list(); + TaskDetailVO taskDetailVO = new TaskDetailVO(); + BeanUtils.copyProperties(inspector, taskDetailVO); + TLocation byId1 = locationService.getById(inspector.getLocationId()); + TLocationType byId2 = locationTypeService.getById(byId1.getLocationType()); + taskDetailVO.setLocationName(byId1.getLocationName()); + taskDetailVO.setLocationAddress(byId1.getLocationAddress()); + taskDetailVO.setLocationAddressEnd(byId1.getLocationAddressEnd()); + taskDetailVO.setLocationIcon(byId2.getLocationIcon()); + taskDetailVO.setLocationTypeName(byId2.getLocationName()); + taskDetailVO.setLocationLon(byId1.getLocationLon()); + taskDetailVO.setLocationLat(byId1.getLocationLat()); + taskDetailVO.setLocationLatEnd(byId1.getLocationLatEnd()); + taskDetailVO.setLocationLonEnd(byId1.getLocationLonEnd()); + TInspectorDetail inspectorDetail = list.stream().filter(e -> e.getHandleType() == 1).findFirst().orElse(null); + if (inspectorDetail != null && inspectorDetail.getUnqualified() != null) { + TTaskDetail temp = new TTaskDetail(); + BeanUtils.copyProperties(inspectorDetail, temp); + taskDetailVO.setTaskDetail(temp); + + TDictData byId3 = dictDataService.getById(inspectorDetail.getUnqualified()); + if (byId3 != null) { + inspectorDetail.setUnqualifiedName(byId3.getDataContent()); + } + } + if (inspectorDetail != null) { + inspectorDetail.setFinishTime(inspectorDetail.getCreateTime()); + } + List<TTaskDetail> tTaskDetails = new ArrayList<>(); + for (TInspectorDetail tInspectorDetail : list) { + TTaskDetail tTaskDetail = new TTaskDetail(); + BeanUtils.copyProperties(tInspectorDetail, tTaskDetail); + tTaskDetails.add(tTaskDetail); + } + taskDetailVO.setRecords(tTaskDetails); + if (inspector.getStatus()==2){ + TInspectorDetail reject = inspectorDetailService.lambdaQuery().eq(TInspectorDetail::getInspectorId, id) + .eq(TInspectorDetail::getHandleType,3) + .orderByDesc(BaseModel::getCreateTime).last("limit 1").one(); + if (reject!=null){ + taskDetailVO.setRejectRemark(reject.getAuditRemark()); + } + } + return R.ok(taskDetailVO); } - return R.ok(taskDetailVO); + } + @ApiOperation(value = "详情任务-操作记录-详情") @GetMapping(value = "/detailRecord") public R<TaskRecordDetailVO> detailRecord(@RequestParam String id) { TaskRecordDetailVO taskDetailVO = new TaskRecordDetailVO(); - TTaskDetail byId4 = taskDetailService.getById(id); - TTask byId = taskCleanerService.getById(byId4.getTaskId()); - BeanUtils.copyProperties(byId, taskDetailVO); - TLocation byId1 = locationService.getById(byId.getLocationId()); - TLocationType byId2 = locationTypeService.getById(byId1.getLocationType()); - taskDetailVO.setLocationAddress(byId1.getLocationAddress()); - taskDetailVO.setLocationIcon(byId2.getLocationIcon()); - taskDetailVO.setLocationName(byId2.getLocationName()); - if (byId4.getUnqualified() != null) { - TDictData byId3 = dictDataService.getById(byId4.getUnqualified()); - if (byId3 != null) { - byId4.setUnqualifiedName(byId3.getDataContent()); + TTaskDetail taskDetail = taskDetailService.getById(id); + TInspectorDetail inspectorDetail = inspectorDetailService.getById(id); + + if (taskDetail!=null){ + TTask byId = taskCleanerService.getById(taskDetail.getTaskId()); + BeanUtils.copyProperties(byId, taskDetailVO); + TLocation byId1 = locationService.getById(byId.getLocationId()); + TLocationType byId2 = locationTypeService.getById(byId1.getLocationType()); + taskDetailVO.setLocationAddress(byId1.getLocationAddress()); + taskDetailVO.setLocationIcon(byId2.getLocationIcon()); + taskDetailVO.setLocationName(byId2.getLocationName()); + if (taskDetail.getUnqualified() != null) { + TDictData byId3 = dictDataService.getById(taskDetail.getUnqualified()); + if (byId3 != null) { + taskDetail.setUnqualifiedName(byId3.getDataContent()); + } } + taskDetail.setFinishTime(taskDetail.getCreateTime()); + SysUser sysUser = sysUserService.selectUserById(Long.valueOf(taskDetail.getAuditPerson())); + if (sysUser != null) { + taskDetail.setAuditPersonName(sysUser.getUserName()); + } + taskDetailVO.setTaskDetail(taskDetail); + return R.ok(taskDetailVO); + }else{ + TInspector byId = inspectorService.getById(inspectorDetail.getInspectorId()); + BeanUtils.copyProperties(byId, taskDetailVO); + TLocation byId1 = locationService.getById(byId.getLocationId()); + TLocationType byId2 = locationTypeService.getById(byId1.getLocationType()); + taskDetailVO.setLocationAddress(byId1.getLocationAddress()); + taskDetailVO.setLocationIcon(byId2.getLocationIcon()); + taskDetailVO.setLocationName(byId2.getLocationName()); + if (inspectorDetail.getUnqualified() != null) { + TDictData byId3 = dictDataService.getById(inspectorDetail.getUnqualified()); + if (byId3 != null) { + inspectorDetail.setUnqualifiedName(byId3.getDataContent()); + } + } + inspectorDetail.setFinishTime(inspectorDetail.getCreateTime()); + SysUser sysUser = sysUserService.selectUserById(Long.valueOf(inspectorDetail.getAuditPerson())); + if (sysUser != null) { + inspectorDetail.setAuditPersonName(sysUser.getUserName()); + } + TTaskDetail tTaskDetail = new TTaskDetail(); + BeanUtils.copyProperties(inspectorDetail, tTaskDetail); + taskDetailVO.setTaskDetail(tTaskDetail); + return R.ok(taskDetailVO); } - byId4.setFinishTime(byId4.getCreateTime()); - SysUser sysUser = sysUserService.selectUserById(Long.valueOf(byId4.getAuditPerson())); - if (sysUser != null) { - byId4.setAuditPersonName(sysUser.getUserName()); - } - taskDetailVO.setTaskDetail(byId4); - return R.ok(taskDetailVO); + } @ApiOperation(value = "申诉记录分页列表") @@ -456,7 +581,12 @@ List<TaskListAllVO> res = appealService.listAllTask(appealListDTO); return R.ok(res); } - + @ApiOperation(value = "点位列表") + @PostMapping(value = "/locationList") + public R<List<TaskListAllVO>> locationList(@RequestBody AppealListDTO appealListDTO) { + List<TaskListAllVO> locations = appealService.locationList(appealListDTO); + return R.ok(locations); + } @ApiOperation(value = "不合格原因列表") @PostMapping(value = "/unqualifiedList") public R<List<TDictData>> unqualifiedList() { @@ -467,21 +597,48 @@ return R.ok(list); } + @ApiOperation(value = "上传督察任务") @PostMapping(value = "/addInspector") public R<Boolean> addInspector(@RequestBody InspectorAddDTO dto) throws Exception { - TTask task = taskCleanerService.getById(dto.getTaskId()); - TLocation location = locationService.getById(task.getLocationId()); - SysUser sysUser = sysUserService.selectUserById(Long.valueOf(task.getPatrolInspector())); +// TTask task = taskCleanerService.getById(dto.getTaskId()); +// TLocation location = locationService.getById(task.getLocationId()); +// SysUser sysUser = sysUserService.selectUserById(Long.valueOf(task.getPatrolInspector())); +// dto.setCommitPerson(tokenService.getLoginUserApplet().getUserId() + ""); +// +// if (dto.getClearStatus() == 1) { +// dto.setStatus(4); +// } else { +// dto.setStatus(1); +// +// } +// inspectorService.save(dto); +// return R.ok(); + + TLocation location = locationService.getById(dto.getLocationId()); + SysUser sysUser = sysUserService.selectUserById(Long.valueOf(location.getLocationLeader())); dto.setCommitPerson(tokenService.getLoginUserApplet().getUserId() + ""); if (dto.getClearStatus() == 1) { dto.setStatus(4); } else { - dto.setStatus(1); + dto.setStatus(2); } + String nameAndCode = CodeGenerateUtils.generateVolumeSn(); + dto.setTaskCode(nameAndCode); + dto.setTaskName(nameAndCode); inspectorService.save(dto); + TInspectorDetail tInspectorDetail = new TInspectorDetail(); + tInspectorDetail.setInspectorId(dto.getId()); + tInspectorDetail.setClearStatus(dto.getClearStatus()); + tInspectorDetail.setUnqualified(dto.getUnqualified()); + tInspectorDetail.setRemark(dto.getRemark()); + tInspectorDetail.setPicture(dto.getPicture()); + tInspectorDetail.setAudioUrl(dto.getAudioUrl()); + tInspectorDetail.setHandleType(1); + + inspectorDetailService.save(tInspectorDetail); return R.ok(); } @@ -658,6 +815,11 @@ leaveDTO.setCode(format + RandomUtil.randomNumbers(6)); leaveDTO.setTemplateId(user.getTemplateId()); leaveDTO.setLeavePerson(userId + ""); + LocalDateTime endTime1 = leaveDTO.getEndTime(); + endTime1.withHour(23); + endTime1.withMinute(59); + endTime1.withSecond(59); + leaveDTO.setEndTime(endTime1); leaveService.save(leaveDTO); TNoticeSet noticeSet = noticeSetService.lambdaQuery().eq(TNoticeSet::getType, 2).last("limit 1") .one(); @@ -721,6 +883,17 @@ } break; case 3: + if (StringUtils.hasLength(sysUser.getOpenId())){ + Date date1 = new Date(); + SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String format1 = simpleDateFormat1.format(date1); + String startTime = simpleDateFormat2.format(leaveDTO.getStartTime()); + String endTime = simpleDateFormat2.format(leaveDTO.getStartTime()); + templateMessageSendUtil.wxTemplatePendApprovalRequest(sysUser.getOpenId(), + user.getNickName(),format1,"员工请假", + startTime,endTime); + } break; } @@ -878,6 +1051,13 @@ } break; case 3: + if (StringUtils.hasLength(sysUser.getOpenId())){ + Date date = new Date(); + SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String startTime1 = simpleDateFormat2.format(date); + templateMessageSendUtil.wxTemplateMakeCopyRequest(sysUser1.getOpenId(), + sysUser1.getNickName(),startTime1,"请假审批"); + } break; } } -- Gitblit v1.7.1