package com.ruoyi.web.controller.api; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.SmsUtil; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.TFaultRepairMessageDTO; import com.ruoyi.system.model.*; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.TFaultAreaDicVO; import com.ruoyi.system.vo.TItemTypeVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import java.time.LocalDate; import java.util.List; import java.util.stream.Collectors; /** *

* 报修管理 前端控制器 *

* * @author xiaochen * @since 2025-01-17 */ @Api(tags = "报修管理") @RestController @RequestMapping("/t-fault-repair-message") public class TFaultRepairMessageController { private final TFaultRepairMessageService tFaultRepairMessageService; private final TItemService itemService; private final TItemTypeService itemTypeService; private final TFaultAreaDicService faultAreaDicService; private final TFaultDescribeDicService faultDescribeDicService; private final TokenService tokenService; private final TContractService contractService; private final THouseService houseService; private final SmsUtil smsUtil; private final ISysUserService sysUserService; @Autowired public TFaultRepairMessageController(TFaultRepairMessageService tFaultRepairMessageService, TItemService itemService, TItemTypeService itemTypeService, TFaultAreaDicService faultAreaDicService, TFaultDescribeDicService faultDescribeDicService, TokenService tokenService, TContractService contractService, THouseService houseService,SmsUtil smsUtil ,ISysUserService sysUserService) { this.tFaultRepairMessageService = tFaultRepairMessageService; this.itemService = itemService; this.itemTypeService = itemTypeService; this.faultAreaDicService = faultAreaDicService; this.faultDescribeDicService = faultDescribeDicService; this.tokenService = tokenService; this.contractService = contractService; this.houseService = houseService; this.smsUtil = smsUtil; this.sysUserService = sysUserService; } /** * 获取维修物品二级结构 */ @ApiOperation(value = "获取维修物品二级结构") @GetMapping(value = "/getItemList") public R> getItemList(@RequestParam(required = false) String itemName) { List itemTypes = itemTypeService.getItemList(itemName); List items = itemService.list(); itemTypes.forEach(itemType -> { itemType.setItemList(items.stream().filter(item -> itemType.getId().equals(item.getTypeId()) && item.getItemName().contains(itemName)).collect(Collectors.toList())); }); return R.ok(itemTypes); } /** * 获取故障区域列表 */ @ApiOperation(value = "获取故障区域二级结构") @PostMapping(value = "/getAreaDicList") public R> getAreaDicList() { List faultAreaDicVOS = faultAreaDicService.getAreaDicList(); List faultDescribeDicList = faultDescribeDicService.list(); faultAreaDicVOS.forEach(areaDicVO -> { areaDicVO.setFaultDescribeDicList(faultDescribeDicList.stream().filter(item -> areaDicVO.getId().equals(item.getFaultId())).collect(Collectors.toList())); }); return R.ok(faultAreaDicVOS); } /** * 通过当前租户查询合同房源信息 */ @ApiOperation(value = "通过当前租户查询合同房源信息") @PostMapping(value = "/getConcatByTenantId") public R> getConcatByTenantId() { String tenantId = tokenService.getLoginUserApplet().getUserId(); // 查询合同信息 List list = contractService.list(Wrappers.lambdaQuery(TContract.class) .eq(TContract::getTenantId, tenantId) .eq(TContract::getStatus, 4)); if(CollectionUtils.isEmpty(list)){ return R.ok(list); } List houseIds = list.stream().map(TContract::getHouseId).collect(Collectors.toList()); List houseList = houseService.list(Wrappers.lambdaQuery(THouse.class) .in(THouse::getId, houseIds)); list.forEach(item -> { item.setHouseName(houseList.stream().filter(house -> house.getId().equals(item.getHouseId())).findFirst().orElse(new THouse()).getHouseName()); item.setHouseAddress(houseList.stream().filter(house -> house.getId().equals(item.getHouseId())).findFirst().orElse(new THouse()).getHouseAddress()); }); return R.ok(list); } /** * 添加报修信息 */ @ApiOperation(value = "添加报修信息") @PostMapping(value = "/addFault") public R addFault(@RequestBody TFaultRepairMessageDTO dto) { dto.setTenantId(tokenService.getLoginUserApplet().getUserId()); LocalDate now = LocalDate.now(); String replace = (now + "").replace("-", ""); int size = tFaultRepairMessageService.list(new LambdaQueryWrapper() .likeRight(TFaultRepairMessage::getCreateTime, LocalDate.now())).size(); dto.setCode(replace.substring(2)+String.format("%03d", size+1)); tFaultRepairMessageService.save(dto); List sysUsers = sysUserService.selectList(); if (dto.getRepairType()==2){ for (SysUser sysUser : sysUsers) { if (StringUtils.hasLength(sysUser.getPhonenumber())){ System.err.println("发送短信"); smsUtil.sendSms(sysUser.getPhonenumber(),"2375194",new String[]{}); } } } return R.ok(); } }