ruoyi-applet/src/main/java/com/ruoyi/RuoYiAppletApplication.java
@@ -29,8 +29,6 @@ public class RuoYiAppletApplication { public static void main(String[] args) { ConfigurableApplicationContext application = SpringApplication.run(RuoYiAppletApplication.class, args); try { Environment env = application.getEnvironment(); ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/SysApiProtocolConfigController.java
New file @@ -0,0 +1,51 @@ package com.ruoyi.web.controller.api; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.dto.SysProtocolConfigDetailRequest; import com.ruoyi.system.dto.SysProtocolConfigSaveRequest; import com.ruoyi.system.service.ISysProtocolConfigService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 入园承诺 * * @author ruoyi */ @RestController @RequestMapping("/api/admission") @Api(tags = "入园承诺" , value = "入园承诺") public class SysApiProtocolConfigController extends BaseController { @Autowired private ISysProtocolConfigService protocolConfigService; /** * 入园承诺 */ @Log(title = "入园承诺", businessType = BusinessType.SELECT) @PostMapping("/detail") @ApiOperation(value = "入园承诺") @ApiResponses({ @ApiResponse(code = 200, message = "操作成功", response = SysProtocolConfigDetailRequest.class), @ApiResponse(code = 500, message = "操作失败") }) public AjaxResult<SysProtocolConfigDetailRequest> detail() { SysProtocolConfigDetailRequest request = new SysProtocolConfigDetailRequest(); request.setProtocolType("ENTRY_COMMITMENT");//入园承诺 return success(protocolConfigService.selectConfig(request)); } } ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/SysApiVisitorConfigController.java
New file @@ -0,0 +1,53 @@ package com.ruoyi.web.controller.api; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.dto.SysVisitorConfigSaveRequest; import com.ruoyi.system.service.ISysVisitorConfigService; import com.ruoyi.system.vo.SysVisitorConfigVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 访客系统配置接口 * * @author ruoyi */ @RestController @RequestMapping("/api/visitorconfig") @Api(tags = "访客系统配置接口") public class SysApiVisitorConfigController extends BaseController { @Autowired private ISysVisitorConfigService visitorConfigService; /** * 查询当前配置 */ @Log(title = "访客系统配置", businessType = BusinessType.SELECT) @PostMapping("/detail") @ApiOperation( value = "查询访客系统配置", notes = "获取当前访客系统的配置信息,包括访客登记、审批流程等设置", response = SysVisitorConfigVO.class ) @ApiResponses({ @ApiResponse(code = 200, message = "查询成功", response = SysVisitorConfigVO.class), @ApiResponse(code = 500, message = "查询失败") }) public AjaxResult<SysVisitorConfigVO> detail() { SysVisitorConfigVO data = visitorConfigService.selectConfig(); return new AjaxResult<>(200, "操作成功", data); } } ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/SysApiVisitorRecordController.java
@@ -15,6 +15,7 @@ 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; @@ -22,12 +23,14 @@ 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; @@ -55,6 +58,7 @@ @PostMapping("/add") @ApiOperation(value = "访客登记", notes = "现场访客登记") @Transactional(rollbackFor = Exception.class) public AjaxResult add( @RequestBody @ApiParam(value = "访客登记信息", required = true) @@ -106,6 +110,9 @@ BeanUtils.copyProperties(request, record); //查询地区 List<AreasList> areasList = null; //查询地区 if (StringUtils.isNotEmpty(record.getVisitAreaIds())) { String[] visitAreaIds = record.getVisitAreaIds().split(","); String visitArea = Arrays.stream(visitAreaIds) @@ -117,7 +124,7 @@ .collect(Collectors.joining(",")); // ====== 新增:构建 areas 数组 ====== List<AreasList> areasList = Arrays.stream(visitAreaIds) areasList = Arrays.stream(visitAreaIds) .map(String::trim) .filter(StringUtils::isNotEmpty) .map(id -> { @@ -141,6 +148,52 @@ 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()); } } @@ -200,6 +253,7 @@ @PostMapping("/idCardSingOut") @ApiOperation(value = "访客身份证签离", notes = "访客身份证签离") @Transactional(rollbackFor = Exception.class) public AjaxResult idCardSingOut( @RequestBody @ApiParam(value = "访客身份证签离", required = true) ruoyi-system/src/main/java/com/ruoyi/system/domain/SysVisitorSignoutTemp.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.domain; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -47,6 +48,7 @@ * 签离时间 */ @TableField("sign_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date signTime; /** @@ -95,12 +97,14 @@ * 创建时间 */ @TableField(value = "create_time", fill = FieldFill.INSERT) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; /** * 更新时间 */ @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; /** ruoyi-system/src/main/java/com/ruoyi/system/dto/ApiVisitorRecodeSingoutRequest.java
@@ -1,5 +1,6 @@ package com.ruoyi.system.dto; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -42,6 +43,7 @@ /** 签离时间 */ @ApiModelProperty(value = "签离时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date signTime; // @NotBlank(message = "登记类型不能为空") ruoyi-system/src/main/java/com/ruoyi/system/dto/ApiVisitorRecordSinginRequest.java
@@ -74,21 +74,21 @@ * 有效期开始时间 */ @ApiModelProperty(value = "有效期开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyyMMddHHmmss") private Date validStartTime; /** * 有效期结束时间 */ @ApiModelProperty(value = "有效期结束时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyyMMddHHmmss") private Date validEndTime; /** * 登记时间 */ @ApiModelProperty(value = "登记时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyyMMddHHmmss") private Date registerTime; /**