From fe1e2174433c93c61f3e7f9ff8b41b0add338e6c Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Wed, 16 Apr 2025 17:09:59 +0800 Subject: [PATCH] =?UTF-8?q?jx=E8=AE=BF=E5=AE=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/constant/TaskCheckStatusEnum.java | 3 +- .../integrated/constant/DictTypeEnum.java | 21 ++++ .../dto/visitor/app/VisitorsYYAppDTO.java | 110 ++++++++++++++++++ .../vo/visitor/app/VisitorsAppPageVo.java | 50 ++------ .../controller/VisitorsController.java | 23 +++- .../integrated/service/VisitorsService.java | 31 ++++- .../service/impl/VisitorsServiceImpl.java | 77 ++++++++---- 7 files changed, 247 insertions(+), 68 deletions(-) create mode 100644 pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/constant/DictTypeEnum.java create mode 100644 pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/visitor/app/VisitorsYYAppDTO.java diff --git a/pjcloud-flow/pjcloud-flow-task/pjcloud-flow-task-api/src/main/java/com/bsd/pjcloud/flow/task/constant/TaskCheckStatusEnum.java b/pjcloud-flow/pjcloud-flow-task/pjcloud-flow-task-api/src/main/java/com/bsd/pjcloud/flow/task/constant/TaskCheckStatusEnum.java index 0a7636349..90914e694 100644 --- a/pjcloud-flow/pjcloud-flow-task/pjcloud-flow-task-api/src/main/java/com/bsd/pjcloud/flow/task/constant/TaskCheckStatusEnum.java +++ b/pjcloud-flow/pjcloud-flow-task/pjcloud-flow-task-api/src/main/java/com/bsd/pjcloud/flow/task/constant/TaskCheckStatusEnum.java @@ -13,7 +13,8 @@ public enum TaskCheckStatusEnum { PADDING("1", "审核中"), RESULT("2", "审核通过"), REJECT("3", "审核拒绝"), - CANCEL("4", "取消"), + CANCEL("5", "取消"), + HAVE_VISIT("0", "已到访"), ; private final String code; diff --git a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/constant/DictTypeEnum.java b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/constant/DictTypeEnum.java new file mode 100644 index 000000000..db43293fa --- /dev/null +++ b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/constant/DictTypeEnum.java @@ -0,0 +1,21 @@ +package com.bsd.pjcloud.integrated.constant; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 出库入口 + */ +@AllArgsConstructor +@Getter +public enum DictTypeEnum { + + VISITOR_REASON("visitor_reason", "拜访原因"), + + ; + private final String type; + private final String description; + + + +} diff --git a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/visitor/app/VisitorsYYAppDTO.java b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/visitor/app/VisitorsYYAppDTO.java new file mode 100644 index 000000000..fc800178c --- /dev/null +++ b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/visitor/app/VisitorsYYAppDTO.java @@ -0,0 +1,110 @@ +package com.bsd.pjcloud.integrated.dto.visitor.app; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * 访客表 + * + * @author zjf + * @date 2025-04-09 15:22:47 + */ +@Data +@Schema(description = "app访客dto") +public class VisitorsYYAppDTO { + + + /** + * 姓名 + */ + @Schema(description="姓名") + @NotNull + private String name; + + /** + * 手机号 + */ + @NotNull + @Schema(description="手机号") + private String mobile; + + /** + * 身份证号 + */ + @Schema(description="身份证号") + private String idCard; + + /** + * 描述 + */ + @Schema(description="描述") + private String description; + + + /** + * 到访单位 + */ + @Schema(description="到访单位id") + private Long deptId; + + /** + * 到访单位 + */ + @Schema(description="到访单位") + private String deptName; + + + /** + * 接待人 + */ + @Schema(description="接待人") + private String userName; + + + /** + * 公司名称 + */ + @Schema(description="公司名称") + private String companyName; + + + /** + * 到访时间 + */ + @Schema(description="到访时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime vStartDate; + /** + * 到访时间 + */ + @Schema(description="到访时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime vEndDate; + + /** + * 是否驾驶车辆0 否 1是 + */ + @Schema(description="是否驾驶车辆0 否 1是") + private String isDrive; + + + + @Schema(description="是否有随行人员 0 否 1是") + private String isOtherPeople; + + +// @Schema(description="用户id") +// private Long userId; + +// @Schema(description="车牌号集合") +// private List carList; +// +// @Schema(description="随行人员集合") +// private List otherPeople; + +} \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/vo/visitor/app/VisitorsAppPageVo.java b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/vo/visitor/app/VisitorsAppPageVo.java index bde62cf97..b34733b79 100644 --- a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/vo/visitor/app/VisitorsAppPageVo.java +++ b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/vo/visitor/app/VisitorsAppPageVo.java @@ -19,17 +19,17 @@ import java.util.List; public class VisitorsAppPageVo { - /** + /** * id */ @Schema(description="id") private Long id; + /** * 姓名 */ - @Schema(description="姓名") - private String name; + private String name; /** * 手机号 @@ -37,16 +37,10 @@ public class VisitorsAppPageVo { @Schema(description="手机号") private String mobile; - /** - * 身份证号 - */ - @Schema(description="身份证号") - private String idCard; - /** * 描述 */ - @Schema(description="描述") + @Schema(description="拜访原因") private String description; /** @@ -55,35 +49,12 @@ public class VisitorsAppPageVo { @Schema(description="审核状态") private String checkStatus; - /** - * 到访单位 - */ - @Schema(description="到访单位") - private Long deptId; /** * 接待人 */ - @Schema(description="接待人") - private Long userName; - - /** - * 车牌号id - */ - @Schema(description="车牌号id") - private Long carId; - - /** - * 公司名称 - */ - @Schema(description="公司名称") - private String companyName; - - /** - * 随行人员数量 - */ - @Schema(description="随行人员数量") - private Integer peopleNumber; + @Schema(description="拜访人") + private String userName; /** * 到访时间 @@ -96,11 +67,7 @@ public class VisitorsAppPageVo { @Schema(description="到访时间") private LocalDateTime vEndDate; - /** - * 是否驾驶车辆0 否 1是 - */ - @Schema(description="是否驾驶车辆0 否 1是") - private String isDrive; + /** @@ -118,10 +85,7 @@ public class VisitorsAppPageVo { private LocalDateTime createTime; - @Schema(description="token") private String token; - @Schema(description="车牌号") - private List visitorsCarAppVos; } \ 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 b82d2d2d6..88cdfef2b 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 @@ -13,6 +13,7 @@ import com.bsd.pjcloud.common.log.annotation.SysLog; import com.bsd.pjcloud.common.security.annotation.Inner; import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum; import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsAppDTO; +import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsYYAppDTO; import com.bsd.pjcloud.integrated.entity.VisitorsEntity; import com.bsd.pjcloud.integrated.service.VisitorsService; import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsAppVo; @@ -190,8 +191,8 @@ public class VisitorsController { @Operation(summary = "app新增邀约" , description = "app新增拜访" ) @SysLog("新增邀约" ) @PostMapping("/app/saveYY") - @Idempotent(key = "#mobile", expireTime = 10, info = "请勿重复提交") - public R saveYY(@RequestBody VisitorsAppDTO visitors) { + @Idempotent(expireTime = 10, info = "请勿重复提交") + public R saveYY(@RequestBody VisitorsYYAppDTO visitors) { return R.ok(visitorsService.vistorsYYSave(visitors)); } @@ -208,6 +209,16 @@ public class VisitorsController { return R.ok( visitorsService.getPageYY(page, visitors)); } + @GetMapping("/app/cancelVisitor") + @SysLog("取消访客预约" ) + public R cancelVisitor(@RequestParam("id")Long id) { + return R.ok( visitorsService.cancelVisitor(id)); + } + @GetMapping("/app/haveVisitor") + @SysLog("已到访" ) + public R haveVisitor(@RequestParam("id")Long id) { + return R.ok( visitorsService.haveVisitor(id)); + } @GetMapping("/app/updateCheckStatus") @SysLog("更新状态" ) public R updateCheckStatus(@RequestParam("id")Long id,@RequestParam("checkStatus")String checkStatus) { @@ -216,4 +227,12 @@ public class VisitorsController { + @GetMapping("/app/getDictListByType") + @SysLog("根据字典类型查询数据" ) + public R getDictListByType(@RequestParam("type")Long type) { + return visitorsService.getDictListByType(type); + } + + + } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsService.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsService.java index a57db89a8..c54c0667e 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsService.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/VisitorsService.java @@ -2,10 +2,15 @@ package com.bsd.pjcloud.integrated.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.admin.api.entity.SysDictItem; +import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsAppDTO; +import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsYYAppDTO; import com.bsd.pjcloud.integrated.entity.VisitorsEntity; import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsAppVo; +import java.util.List; + public interface VisitorsService extends IService { @@ -30,7 +35,7 @@ public interface VisitorsService extends IService { * @param visitors * @return */ - Object vistorsYYSave(VisitorsAppDTO visitors); + Object vistorsYYSave(VisitorsYYAppDTO visitors); @@ -53,4 +58,28 @@ public interface VisitorsService extends IService { * @return */ Object getPageSQ(Page page, VisitorsEntity visitors); + + + /** + * 取消访客预约 + * @param id + * @return + */ + Object cancelVisitor(Long id); + + + /** + * 已到访 + * @param id + * @return + */ + Object haveVisitor(Long id); + + + /** + * 查询字典列表 + * @param type + * @return + */ + R> getDictListByType(Long type); } \ 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 fad4a4715..a70dd7dc1 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 @@ -3,6 +3,8 @@ package com.bsd.pjcloud.integrated.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.admin.api.entity.SysDictItem; +import com.bsd.pjcloud.admin.api.feign.RemoteDictService; import com.bsd.pjcloud.admin.api.feign.RemoteUserService; import com.bsd.pjcloud.common.core.exception.ServiceException; import com.bsd.pjcloud.common.core.util.BeanUtils; @@ -13,11 +15,13 @@ import com.bsd.pjcloud.flow.task.api.feign.RemoteFlowApiFlowService; import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum; import com.bsd.pjcloud.flow.task.dto.ProcessInstanceParamDto; import com.bsd.pjcloud.flow.task.entity.Process; +import com.bsd.pjcloud.integrated.constant.DictTypeEnum; 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.dto.visitor.app.VisitorsYYAppDTO; import com.bsd.pjcloud.integrated.entity.VisitorsCarEntity; import com.bsd.pjcloud.integrated.entity.VisitorsEntity; import com.bsd.pjcloud.integrated.entity.VisitorsPeopleEntity; @@ -29,7 +33,9 @@ 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 com.github.yulichang.toolkit.StrUtils; import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.springframework.security.oauth2.jwt.Jwt; import org.springframework.security.oauth2.jwt.JwtClaimsSet; import org.springframework.stereotype.Service; @@ -57,6 +63,9 @@ public class VisitorsServiceImpl extends ServiceImpl processR = remoteFlowApiFlowService.getProcessByBusinessKey(IntegratedFlowConstant.INTEGRATED_VISITOR); // if (!processR.isOk() || processR.getData() == null) { @@ -151,22 +160,22 @@ public class VisitorsServiceImpl extends ServiceImpl visitorsCarAppDTOList = visitors.getCarList(); - if (!CollectionUtils.isEmpty(visitorsCarAppDTOList)){ - List visitorsCarEntities = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarEntity.class); - visitorsCarEntities.forEach(i->{ - i.setVisitorsId(bean.getId()); - }); - visitorsCarMapper.insert(visitorsCarEntities); - } - List visitorsPeopleAppDTOList = visitors.getOtherPeople(); - if (!CollectionUtils.isEmpty(visitorsPeopleAppDTOList)){ - List visitorsPeopleEntities = BeanUtils.toBean(visitorsPeopleAppDTOList, VisitorsPeopleEntity.class); - visitorsPeopleEntities.forEach(i->{ - i.setVisitorsId(bean.getId()); - }); - visitorsPeopleMapper.insert(visitorsPeopleEntities); - } +// List visitorsCarAppDTOList = visitors.getCarList(); +// if (!CollectionUtils.isEmpty(visitorsCarAppDTOList)){ +// List visitorsCarEntities = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarEntity.class); +// visitorsCarEntities.forEach(i->{ +// i.setVisitorsId(bean.getId()); +// }); +// visitorsCarMapper.insert(visitorsCarEntities); +// } +// List visitorsPeopleAppDTOList = visitors.getOtherPeople(); +// if (!CollectionUtils.isEmpty(visitorsPeopleAppDTOList)){ +// List visitorsPeopleEntities = BeanUtils.toBean(visitorsPeopleAppDTOList, VisitorsPeopleEntity.class); +// visitorsPeopleEntities.forEach(i->{ +// i.setVisitorsId(bean.getId()); +// }); +// visitorsPeopleMapper.insert(visitorsPeopleEntities); +// } return insert; } @@ -175,8 +184,9 @@ public class VisitorsServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(VisitorsEntity::getUserId, userId); - wrapper.eq(VisitorsEntity::getType, VisitorTypeEnum.ZDYQ.getType()); - Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of()); + wrapper.eq(StringUtils.isNotBlank(visitors.getCheckStatus()),VisitorsEntity::getCheckStatus, visitors.getCheckStatus()); +// wrapper.eq(VisitorsEntity::getType, VisitorTypeEnum.ZDYQ.getType()); + Page pageData = baseMapper.selectPage(page, wrapper); List records = pageData.getRecords(); Page resultPage = new Page<>(); @@ -201,8 +211,9 @@ public class VisitorsServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(VisitorsEntity::getUserId, userId); wrapper.eq(VisitorsEntity::getType, VisitorTypeEnum.FKSQ.getType()); - Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of()); - List records = pageData.getRecords(); + wrapper.eq(StrUtils.isNotBlank(visitors.getCheckStatus()),VisitorsEntity::getCheckStatus, visitors.getCheckStatus()); + Page pageData = baseMapper.selectPage(page, wrapper); + List records = pageData.getRecords(); Page resultPage = new Page<>(); org.springframework.beans.BeanUtils.copyProperties(pageData, resultPage, "records"); // 复制分页参数 @@ -212,5 +223,29 @@ public class VisitorsServiceImpl extends ServiceImpl> getDictListByType(Long type) { + if (type==1){ + return remoteDictService.getDictByType(DictTypeEnum.VISITOR_REASON.getType()); + } + return null; + } + } \ No newline at end of file