| | |
| | | import com.ruoyi.system.domain.SysVisitArea; |
| | | import com.ruoyi.system.domain.SysVisitorRecord; |
| | | import com.ruoyi.system.domain.vo.AreasList; |
| | | import com.ruoyi.system.dto.SysVisitAreaTreeRequest; |
| | | import com.ruoyi.system.dto.SysVisitorIdCardOutRequest; |
| | | import com.ruoyi.system.dto.SysVisitorRecordAddRequest; |
| | | import com.ruoyi.system.mapper.EmployeeMapper; |
| | |
| | | import com.ruoyi.system.mapper.SysVisitAreaMapper; |
| | | import com.ruoyi.system.mapper.SysVisitorRecordMapper; |
| | | import com.ruoyi.system.service.ISysVisitAreaService; |
| | | import com.ruoyi.system.vo.SysVisitAreaVO; |
| | | import com.ruoyi.web.controller.service.SysVisitorRecordService; |
| | | import com.ruoyi.web.controller.service.VisitorRegisterSyncService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | |
| | | |
| | | @PostMapping("/add") |
| | | @ApiOperation(value = "访客登记", notes = "现场访客登记") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public AjaxResult add( |
| | | @RequestBody |
| | | @ApiParam(value = "访客登记信息", required = true) |
| | |
| | | BeanUtils.copyProperties(request, record); |
| | | |
| | | //查询地区 |
| | | List<AreasList> areasList = null; |
| | | |
| | | //查询地区 |
| | | if (StringUtils.isNotEmpty(record.getVisitAreaIds())) { |
| | | String[] visitAreaIds = record.getVisitAreaIds().split(","); |
| | | String visitArea = Arrays.stream(visitAreaIds) |
| | |
| | | .collect(Collectors.joining(",")); |
| | | |
| | | // ====== 新增:构建 areas 数组 ====== |
| | | List<AreasList> areasList = Arrays.stream(visitAreaIds) |
| | | areasList = Arrays.stream(visitAreaIds) |
| | | .map(String::trim) |
| | | .filter(StringUtils::isNotEmpty) |
| | | .map(id -> { |
| | |
| | | if (StringUtils.isNotEmpty(visitArea)) { |
| | | record.setVisitAreaNames(visitArea); |
| | | record.setRemark("来访中,允许访问区域:" + visitArea); |
| | | } |
| | | } |
| | | // 如果 visitAreaIds 为空,但 visitAreaNames 不为空,根据名称查询填充 visitAreaIds |
| | | else if (StringUtils.isNotEmpty(record.getVisitAreaNames())) { |
| | | String[] visitAreaNames = record.getVisitAreaNames().split(","); |
| | | |
| | | // 根据区域名称查询对应的ID,构建ID字符串 |
| | | String visitAreaIdsStr = Arrays.stream(visitAreaNames) |
| | | .map(String::trim) |
| | | .filter(StringUtils::isNotEmpty) |
| | | .map(name -> { |
| | | // 根据区域名称查询区域信息(这里假设您有根据名称查询的方法) |
| | | SysVisitAreaTreeRequest query = new SysVisitAreaTreeRequest(); |
| | | query.setAreaName(name); |
| | | List<SysVisitAreaVO> area = sysVisitAreaMapper.selectAreaTreeList(query); |
| | | return area != null ? String.valueOf(area.get(0).getAreaId()) : null; |
| | | }) |
| | | .filter(Objects::nonNull) |
| | | .collect(Collectors.joining(",")); |
| | | |
| | | if (StringUtils.isNotEmpty(visitAreaIdsStr)) { |
| | | record.setVisitAreaIds(visitAreaIdsStr); |
| | | } |
| | | |
| | | // 同时构建 areas 数组 |
| | | areasList = Arrays.stream(visitAreaNames) |
| | | .map(String::trim) |
| | | .filter(StringUtils::isNotEmpty) |
| | | .map(name -> { |
| | | SysVisitAreaTreeRequest query = new SysVisitAreaTreeRequest(); |
| | | query.setAreaName(name); |
| | | List<SysVisitAreaVO> area = sysVisitAreaMapper.selectAreaTreeList(query); |
| | | if (area == null || area.isEmpty()) { |
| | | return null; |
| | | } |
| | | AreasList areas = new AreasList(); |
| | | areas.setAreaCode(area.get(0).getAreaCode()); |
| | | areas.setAreaName(area.get(0).getAreaName()); |
| | | return areas; |
| | | }) |
| | | .filter(Objects::nonNull) |
| | | .collect(Collectors.toList()); |
| | | |
| | | if (!areasList.isEmpty()) { |
| | | record.setAreasList(areasList); |
| | | record.setRemark("来访中,允许访问区域:" + record.getVisitAreaNames()); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | @PostMapping("/idCardSingOut") |
| | | @ApiOperation(value = "访客身份证签离", notes = "访客身份证签离") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public AjaxResult idCardSingOut( |
| | | @RequestBody |
| | | @ApiParam(value = "访客身份证签离", required = true) |