diff --git a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/visitor/app/VisitorsAppDTO.java b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/visitor/app/VisitorsAppDTO.java index 852f465bd..35c34abc6 100644 --- a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/visitor/app/VisitorsAppDTO.java +++ b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/visitor/app/VisitorsAppDTO.java @@ -88,7 +88,16 @@ public class VisitorsAppDTO { @Schema(description="是否驾驶车辆0 否 1是") private String isDrive; + /** + * 是否驾驶车辆0 否 1是 + */ + @Schema(description="是否有随行人员 0 否 1是") + private String isOtherPeople; + @Schema(description="车牌号集合") private List visitorsCarAppDTOList; + @Schema(description="随行人员集合") + private List visitorsPeopleAppDTOList; + } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/visitor/app/VisitorsPeopleAppDTO.java b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/visitor/app/VisitorsPeopleAppDTO.java new file mode 100644 index 000000000..c34c3a9da --- /dev/null +++ b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/visitor/app/VisitorsPeopleAppDTO.java @@ -0,0 +1,25 @@ +package com.bsd.pjcloud.integrated.dto.visitor.app; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * 随行人员 + * + * @author zjf + * @date 2025-04-09 15:10:54 + */ +@Data +@Schema(description = "随行人员信息DTO") +public class VisitorsPeopleAppDTO { + + + @Schema(description="姓名") + private String name; + + + @Schema(description="手机号") + private String mobile; + + +} \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/vo/visitor/app/VisitorsAppVo.java b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/vo/visitor/app/VisitorsAppVo.java index 838d3dd44..197e8b360 100644 --- a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/vo/visitor/app/VisitorsAppVo.java +++ b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/vo/visitor/app/VisitorsAppVo.java @@ -126,4 +126,8 @@ public class VisitorsAppVo{ @Schema(description="车牌号") private List visitorsCarAppVos; + + + @Schema(description="随行人员信息") + private List visitorsPeopleAppVos; } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/vo/visitor/app/VisitorsPeopleAppVo.java b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/vo/visitor/app/VisitorsPeopleAppVo.java new file mode 100644 index 000000000..570ea2752 --- /dev/null +++ b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/vo/visitor/app/VisitorsPeopleAppVo.java @@ -0,0 +1,25 @@ +package com.bsd.pjcloud.integrated.vo.visitor.app; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * 随行人员 + * + * @author zjf + * @date 2025-04-09 15:10:54 + */ +@Data +@Schema(description = "随行人员信息vo") +public class VisitorsPeopleAppVo { + + + @Schema(description="姓名") + private String name; + + + @Schema(description="手机号") + private String mobile; + + +} \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsController.java index 285ffe856..bd69132c5 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsController.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsController.java @@ -188,8 +188,8 @@ public class VisitorsController { * @param visitors 访客表 * @return R */ - @Operation(summary = "app新增拜访" , description = "app新增拜访" ) - @SysLog("新增拜访" ) + @Operation(summary = "app新增邀约" , description = "app新增拜访" ) + @SysLog("新增邀约" ) @PostMapping("/app/saveBF") @Idempotent(key = "#mobile", expireTime = 10, info = "请勿重复提交") public R saveBF(@RequestBody VisitorsAppDTO visitors) { diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsPeopleController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsPeopleController.java new file mode 100644 index 000000000..7af84001c --- /dev/null +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/VisitorsPeopleController.java @@ -0,0 +1,119 @@ +package com.bsd.pjcloud.integrated.controller; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.integrated.entity.VisitorsPeopleEntity; +import com.bsd.pjcloud.integrated.service.VisitorsPeopleService; +import org.springframework.security.access.prepost.PreAuthorize; +import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.http.HttpHeaders; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Objects; + +/** + * 随行人员表 + * + * @author zjf + * @date 2025-04-14 12:13:21 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/visitorsPeople" ) +@Tag(description = "visitorsPeople" , name = "随行人员表管理" ) +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class VisitorsPeopleController { + + private final VisitorsPeopleService visitorsPeopleService; + + /** + * 分页查询 + * @param page 分页对象 + * @param visitorsPeople 随行人员表 + * @return + */ + @Operation(summary = "分页查询" , description = "分页查询" ) + @GetMapping("/page" ) + @PreAuthorize("@pms.hasPermission('integrated_visitorsPeople_view')" ) + public R getVisitorsPeoplePage(@ParameterObject Page page, @ParameterObject VisitorsPeopleEntity visitorsPeople) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(visitorsPeopleService.page(page, wrapper)); + } + + + /** + * 通过id查询随行人员表 + * @param id id + * @return R + */ + @Operation(summary = "通过id查询" , description = "通过id查询" ) + @GetMapping("/{id}" ) + @PreAuthorize("@pms.hasPermission('integrated_visitorsPeople_view')" ) + public R getById(@PathVariable("id" ) Long id) { + return R.ok(visitorsPeopleService.getById(id)); + } + + /** + * 新增随行人员表 + * @param visitorsPeople 随行人员表 + * @return R + */ + @Operation(summary = "新增随行人员表" , description = "新增随行人员表" ) + @SysLog("新增随行人员表" ) + @PostMapping + @PreAuthorize("@pms.hasPermission('integrated_visitorsPeople_add')" ) + public R save(@RequestBody VisitorsPeopleEntity visitorsPeople) { + return R.ok(visitorsPeopleService.save(visitorsPeople)); + } + + /** + * 修改随行人员表 + * @param visitorsPeople 随行人员表 + * @return R + */ + @Operation(summary = "修改随行人员表" , description = "修改随行人员表" ) + @SysLog("修改随行人员表" ) + @PutMapping + @PreAuthorize("@pms.hasPermission('integrated_visitorsPeople_edit')" ) + public R updateById(@RequestBody VisitorsPeopleEntity visitorsPeople) { + return R.ok(visitorsPeopleService.updateById(visitorsPeople)); + } + + /** + * 通过id删除随行人员表 + * @param ids id列表 + * @return R + */ + @Operation(summary = "通过id删除随行人员表" , description = "通过id删除随行人员表" ) + @SysLog("通过id删除随行人员表" ) + @DeleteMapping + @PreAuthorize("@pms.hasPermission('integrated_visitorsPeople_del')" ) + public R removeById(@RequestBody Long[] ids) { + return R.ok(visitorsPeopleService.removeBatchByIds(CollUtil.toList(ids))); + } + + + /** + * 导出excel 表格 + * @param visitorsPeople 查询条件 + * @param ids 导出指定ID + * @return excel 文件流 + */ + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('integrated_visitorsPeople_export')" ) + public List export(VisitorsPeopleEntity visitorsPeople,Long[] ids) { + return visitorsPeopleService.list(Wrappers.lambdaQuery(visitorsPeople).in(ArrayUtil.isNotEmpty(ids), VisitorsPeopleEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/VisitorsPeopleEntity.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/VisitorsPeopleEntity.java new file mode 100644 index 000000000..82d7aedd9 --- /dev/null +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/VisitorsPeopleEntity.java @@ -0,0 +1,62 @@ +package com.bsd.pjcloud.integrated.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.time.LocalDateTime; + +/** + * 随行人员表 + * + * @author zjf + * @date 2025-04-14 12:13:21 + */ +@Data +@TableName("visitors_people") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "随行人员表") +public class VisitorsPeopleEntity extends Model { + + + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="id") + private Long id; + + /** + * 随行人员姓名 + */ + @Schema(description="随行人员姓名") + private String name; + + /** + * 访客id + */ + @Schema(description="访客id") + private Long visitorsId; + + /** + * 随行人员手机号 + */ + @Schema(description="随行人员手机号") + private String mobile; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description="创建时间") + private LocalDateTime createTime; + + /** + * 是否删除 + */ + @TableLogic + @TableField(fill = FieldFill.INSERT) + @Schema(description="是否删除") + private String delFlag; +} \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/mapper/VisitorsPeopleMapper.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/mapper/VisitorsPeopleMapper.java new file mode 100644 index 000000000..fd2941079 --- /dev/null +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/mapper/VisitorsPeopleMapper.java @@ -0,0 +1,11 @@ +package com.bsd.pjcloud.integrated.mapper; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.integrated.entity.VisitorsPeopleEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface VisitorsPeopleMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsPeopleService.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsPeopleService.java new file mode 100644 index 000000000..2a7e3c188 --- /dev/null +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsPeopleService.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.integrated.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.integrated.entity.VisitorsPeopleEntity; + +public interface VisitorsPeopleService extends IService { + +} \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsPeopleServiceImpl.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsPeopleServiceImpl.java new file mode 100644 index 000000000..36671c7e6 --- /dev/null +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsPeopleServiceImpl.java @@ -0,0 +1,16 @@ +package com.bsd.pjcloud.integrated.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.integrated.entity.VisitorsPeopleEntity; +import com.bsd.pjcloud.integrated.mapper.VisitorsPeopleMapper; +import com.bsd.pjcloud.integrated.service.VisitorsPeopleService; +import org.springframework.stereotype.Service; +/** + * 随行人员表 + * + * @author zjf + * @date 2025-04-14 12:13:21 + */ +@Service +public class VisitorsPeopleServiceImpl extends ServiceImpl implements VisitorsPeopleService { +} \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java index ae614e508..19618eed3 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java @@ -17,14 +17,18 @@ import com.bsd.pjcloud.integrated.constant.IntegratedFlowConstant; import com.bsd.pjcloud.integrated.constant.VisitorTypeEnum; import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsAppDTO; import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsCarAppDTO; +import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsPeopleAppDTO; import com.bsd.pjcloud.integrated.entity.VisitorsCarEntity; import com.bsd.pjcloud.integrated.entity.VisitorsEntity; +import com.bsd.pjcloud.integrated.entity.VisitorsPeopleEntity; import com.bsd.pjcloud.integrated.mapper.VisitorsCarMapper; import com.bsd.pjcloud.integrated.mapper.VisitorsMapper; +import com.bsd.pjcloud.integrated.mapper.VisitorsPeopleMapper; import com.bsd.pjcloud.integrated.service.VisitorsService; import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsAppPageVo; import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsAppVo; import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsCarAppVo; +import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsPeopleAppVo; import lombok.AllArgsConstructor; import org.springframework.security.oauth2.jwt.Jwt; import org.springframework.security.oauth2.jwt.JwtClaimsSet; @@ -51,6 +55,8 @@ public class VisitorsServiceImpl extends ServiceImpl visitorsCarAppVos = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarAppVo.class); -// visitorAppVo.setVisitorsCarAppVos(visitorsCarAppVos); return insert; } @@ -99,12 +102,22 @@ public class VisitorsServiceImpl extends ServiceImpl visitorsCarEntities = visitorsCarMapper.selectList(new LambdaQueryWrapper().eq(VisitorsCarEntity::getVisitorsId, visitors.getId())); - List visitorsCarAppVos = BeanUtils.toBean(visitorsCarEntities, VisitorsCarAppVo.class); - bean.setVisitorsCarAppVos(visitorsCarAppVos); + if (!CollectionUtils.isEmpty(visitorsCarEntities)){ + List visitorsCarAppVos = BeanUtils.toBean(visitorsCarEntities, VisitorsCarAppVo.class); + bean.setVisitorsCarAppVos(visitorsCarAppVos); + } + List visitorsPeopleEntities = + visitorsPeopleMapper.selectList(new LambdaQueryWrapper().eq(VisitorsPeopleEntity::getVisitorsId, visitors.getId())); + if (!CollectionUtils.isEmpty(visitorsPeopleEntities)){ + List visitorsPeopleAppVos = BeanUtils.toBean(visitorsPeopleEntities, VisitorsPeopleAppVo.class); + bean.setVisitorsPeopleAppVos(visitorsPeopleAppVos); + } + return bean; } @Override + @Transactional public Object vistorsBFSave(VisitorsAppDTO visitors) { //发起流程 R processR = remoteFlowApiFlowService.getProcessByBusinessKey(IntegratedFlowConstant.INTEGRATED_VISITOR); @@ -138,6 +151,14 @@ public class VisitorsServiceImpl extends ServiceImpl visitorsPeopleAppDTOList = visitors.getVisitorsPeopleAppDTOList(); + if (!CollectionUtils.isEmpty(visitorsPeopleAppDTOList)){ + List visitorsPeopleEntities = BeanUtils.toBean(visitorsPeopleAppDTOList, VisitorsPeopleEntity.class); + visitorsPeopleEntities.forEach(i->{ + i.setVisitorsId(bean.getId()); + }); + visitorsPeopleMapper.insert(visitorsPeopleEntities); + } return insert; } diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsMapper.xml b/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsMapper.xml index 60215c249..ac2ef3eca 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsMapper.xml +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsMapper.xml @@ -29,5 +29,6 @@ + \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsPeopleMapper.xml b/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsPeopleMapper.xml new file mode 100644 index 000000000..7f28c15e9 --- /dev/null +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/VisitorsPeopleMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file