From e3e95bf970e66c8855280301bd0431750ccd7d3b Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Tue, 2 Sep 2025 18:23:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E8=AE=AE=EF=BC=8C=E5=85=B1=E5=AF=8C?= =?UTF-8?q?=E5=95=86=E5=9F=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CleanUserController.java | 6 +- .../controller/MeetingBookingController.java | 18 ++ .../controller/MeetingRoomController.java | 1 + .../integrated/entity/CleanUserEntity.java | 3 + .../entity/MeetingBookingEntity.java | 5 + .../integrated/entity/MeetingRoomEntity.java | 3 + .../service/MeetingBookingService.java | 16 ++ .../impl/MeetingBookingServiceImpl.java | 85 ++++++++- .../service/impl/VisitorsServiceImpl.java | 46 +---- .../resources/mapper/MeetingBookingMapper.xml | 1 + .../entity/MallCategoryEntity.java | 116 ++++++++++++ .../vo/mall/MallCategoryTreeVo.java | 17 ++ .../controller/MallCategoryController.java | 158 ++++++++++++++++ .../controller/MallMerchantController.java | 123 ++++++++++++ .../controller/MallProductController.java | 122 ++++++++++++ .../controller/MallProductSkuController.java | 119 ++++++++++++ .../controller/ShopCategoryController.java | 8 +- .../entity/MallMerchantEntity.java | 139 ++++++++++++++ .../supermarket/entity/MallProductEntity.java | 176 ++++++++++++++++++ .../entity/MallProductSkuEntity.java | 140 ++++++++++++++ .../mapper/MallCategoryMapper.java | 11 ++ .../mapper/MallMerchantMapper.java | 11 ++ .../supermarket/mapper/MallProductMapper.java | 11 ++ .../mapper/MallProductSkuMapper.java | 11 ++ .../service/MallCategoryService.java | 27 +++ .../service/MallMerchantService.java | 8 + .../service/MallProductService.java | 8 + .../service/MallProductSkuService.java | 8 + .../service/impl/MallCategoryServiceImpl.java | 32 ++++ .../service/impl/MallMerchantServiceImpl.java | 16 ++ .../service/impl/MallProductServiceImpl.java | 16 ++ .../impl/MallProductSkuServiceImpl.java | 16 ++ .../resources/mapper/MallCategoryMapper.xml | 22 +++ .../resources/mapper/MallMerchantMapper.xml | 26 +++ .../resources/mapper/MallProductMapper.xml | 32 ++++ .../resources/mapper/MallProductSkuMapper.xml | 26 +++ .../src/main/resources/application.yml | 25 ++- 37 files changed, 1557 insertions(+), 51 deletions(-) create mode 100644 pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/MallCategoryEntity.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/mall/MallCategoryTreeVo.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/MallCategoryController.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/MallMerchantController.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/MallProductController.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/MallProductSkuController.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/entity/MallMerchantEntity.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/entity/MallProductEntity.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/entity/MallProductSkuEntity.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/MallCategoryMapper.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/MallMerchantMapper.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/MallProductMapper.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/MallProductSkuMapper.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/MallCategoryService.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/MallMerchantService.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/MallProductService.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/MallProductSkuService.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/MallCategoryServiceImpl.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/MallMerchantServiceImpl.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/MallProductServiceImpl.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/MallProductSkuServiceImpl.java create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/MallCategoryMapper.xml create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/MallMerchantMapper.xml create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/MallProductMapper.xml create mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/MallProductSkuMapper.xml diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/CleanUserController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/CleanUserController.java index 55a264282..14747104b 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/CleanUserController.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/CleanUserController.java @@ -122,15 +122,17 @@ public class CleanUserController { return cleanUserService.list(Wrappers.lambdaQuery(cleanUser).in(ArrayUtil.isNotEmpty(ids), CleanUserEntity::getId, ids)); } + /** * 获取保洁用户下拉列表 * @return R */ - @Operation(summary = "获取保洁用户下拉列表", description = "获取保洁用户下拉列表") + @Operation(summary = "获取保洁/会务人员用户下拉列表", description = "获取保洁/会务人员用户下拉列表") @GetMapping("/dropdown") // @PreAuthorize("@pms.hasPermission('integrated_cleanUser_view')") - public R getCleanUserDropdown() { + public R getCleanUserDropdown(@RequestParam("type")String type) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(CleanUserEntity::getType, type); wrapper.select(CleanUserEntity::getId, CleanUserEntity::getName, CleanUserEntity::getPhone); wrapper.orderByAsc(CleanUserEntity::getName); List list = cleanUserService.list(wrapper); diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MeetingBookingController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MeetingBookingController.java index 003d62e82..b7bc3adb7 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MeetingBookingController.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MeetingBookingController.java @@ -241,4 +241,22 @@ public class MeetingBookingController { public List export(MeetingBookingEntity meetingBooking,Long[] ids) { return meetingBookingService.list(Wrappers.lambdaQuery(meetingBooking).in(ArrayUtil.isNotEmpty(ids), MeetingBookingEntity::getId, ids)); } + + //----------------------app--------------------------------- + /** + * 会议结束,经办人点击确认发送短信通知阿姨 + */ + @PostMapping("/app/confirm-end-meeting/{bookingId}") + public R confirmEndMeeting(@PathVariable("bookingId") Long bookingId) { + return R.ok(meetingBookingService.confirmEndMeeting(bookingId)); + } + + /** + * 会议开始之前,通知阿姨需要对会议室桌面和桌椅拜访进行整理 + */ + @PostMapping("/app/notice-visit-desk/{bookingId}") + public R noticeVisitDesk(@PathVariable("bookingId") Long bookingId) { + meetingBookingService.noticeVisitDesk(bookingId); + return R.ok(); + } } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MeetingRoomController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MeetingRoomController.java index dfb149869..c2ec1551c 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MeetingRoomController.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MeetingRoomController.java @@ -436,4 +436,5 @@ public class MeetingRoomController { return R.ok(result); } + } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/CleanUserEntity.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/CleanUserEntity.java index 6cc5b95db..2917f793a 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/CleanUserEntity.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/CleanUserEntity.java @@ -94,4 +94,7 @@ public class CleanUserEntity extends Model { */ @Schema(description="租户编号") private Long tenantId; + + @Schema(description = "1保洁阿姨,2会务人员") + private String type; } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/MeetingBookingEntity.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/MeetingBookingEntity.java index 0781a6dbf..2f54aec98 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/MeetingBookingEntity.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/MeetingBookingEntity.java @@ -128,6 +128,11 @@ public class MeetingBookingEntity extends Model { @Schema(description="租户编号") private Long tenantId; + /** + * 是否确认结束 + */ + @Schema(description = "是否确认结束") + private Integer isConfirmEnd; @Schema(description = "预约日期") private LocalDate bookingDate; diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/MeetingRoomEntity.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/MeetingRoomEntity.java index fdd180641..3277868c4 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/MeetingRoomEntity.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/MeetingRoomEntity.java @@ -132,6 +132,9 @@ public class MeetingRoomEntity extends Model { @Schema(description="租户编号") private Long tenantId; + @Schema(description="保洁阿姨id") + private Long cleanUserId; + @TableField(exist = false) @Schema(description="设备会议室关联") diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/MeetingBookingService.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/MeetingBookingService.java index eb07c9698..395f39c5e 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/MeetingBookingService.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/MeetingBookingService.java @@ -15,4 +15,20 @@ public interface MeetingBookingService extends IService { * @return */ Page pageScope(Page page, LambdaQueryWrapper wrapper); + + + /** + * 确认结束会议 + * @param bookingId + * @return + */ + Boolean confirmEndMeeting(Long bookingId); + + + /** + * 通知阿姨会议前整理会议室 + * @param bookingId + * @return + */ + void noticeVisitDesk(Long bookingId); } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/MeetingBookingServiceImpl.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/MeetingBookingServiceImpl.java index f6343cd2d..b0316e51c 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/MeetingBookingServiceImpl.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/MeetingBookingServiceImpl.java @@ -3,11 +3,22 @@ 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.common.core.util.WebUtils; import com.bsd.pjcloud.common.data.datascope.DataScope; -import com.bsd.pjcloud.integrated.entity.MeetingBookingEntity; +import com.bsd.pjcloud.common.security.util.SecurityUtils; +import com.bsd.pjcloud.integrated.entity.*; +import com.bsd.pjcloud.integrated.mapper.CleanUserMapper; import com.bsd.pjcloud.integrated.mapper.MeetingBookingMapper; +import com.bsd.pjcloud.integrated.mapper.MeetingRoomMapper; import com.bsd.pjcloud.integrated.service.MeetingBookingService; +import com.bsd.pjcloud.thirdparty.api.feign.RemoterThirdPartySmsService; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; + +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.Map; + /** * 会议室预约 * @@ -15,9 +26,81 @@ import org.springframework.stereotype.Service; * @date 2025-05-20 10:51:29 */ @Service +@AllArgsConstructor public class MeetingBookingServiceImpl extends ServiceImpl implements MeetingBookingService { + + private final RemoterThirdPartySmsService reminderThirdPartySmsService; + + private final MeetingRoomMapper meetingRoomMapper; + + private final CleanUserMapper cleanUserMapper; @Override public Page pageScope(Page page, LambdaQueryWrapper wrapper) { return baseMapper.selectPageByScope(page, wrapper, DataScope.of()); } + + @Override + public Boolean confirmEndMeeting(Long bookingId) { + Long currentUserId = SecurityUtils.getUser().getId(); + //更新会议预约结束状态 + MeetingBookingEntity booking = new MeetingBookingEntity(); + if (!booking.getApplicantId().equals(currentUserId)){ + throw new RuntimeException("无权限操作"); + } + booking.setId(bookingId); + booking.setIsConfirmEnd(1); + boolean updated = updateById(booking); + //查询会议室阿姨信息 + MeetingRoomEntity meetingRoomEntity = meetingRoomMapper.selectById(booking.getRoomId()); + Long cleanUserId = meetingRoomEntity.getCleanUserId(); + if (cleanUserId != null){ + CleanUserEntity cleanUserEntity = cleanUserMapper.selectById(cleanUserId); + //发送短信通知阿姨 + Map stringStringHashMap = new HashMap<>(); + stringStringHashMap.put("meetingName", meetingRoomEntity.getRoomName()+",地址:"+meetingRoomEntity.getLocation()); + reminderThirdPartySmsService.sendParamsMsg(cleanUserEntity.getPhone(), "30757", stringStringHashMap, WebUtils.getIP()); + }else { + //没有设置阿姨,无法发送短信 + } + + return updated; + } + + @Override + public void noticeVisitDesk(Long bookingId) { + Long currentUserId = SecurityUtils.getUser().getId(); + //更新会议预约结束状态 + MeetingBookingEntity booking = new MeetingBookingEntity(); + if (!booking.getApplicantId().equals(currentUserId)){ + throw new RuntimeException("无权限操作"); + } + //查询会议室阿姨信息 + MeetingRoomEntity meetingRoomEntity = meetingRoomMapper.selectById(booking.getRoomId()); + Long cleanUserId = meetingRoomEntity.getCleanUserId(); + if (cleanUserId != null){ + CleanUserEntity cleanUserEntity = cleanUserMapper.selectById(cleanUserId); + //发送短信通知阿姨 + Map stringStringHashMap = new HashMap<>(); + stringStringHashMap.put("meetingName", meetingRoomEntity.getRoomName()+",地址:"+meetingRoomEntity.getLocation()); + stringStringHashMap.put("meetingDate", booking.getBookingDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + stringStringHashMap.put("deskType", "1"); + reminderThirdPartySmsService.sendParamsMsg(cleanUserEntity.getPhone(), "30758", stringStringHashMap, WebUtils.getIP()); + }else { + //没有设置阿姨,无法发送短信 + } + } + + + private void sendConfirmEndMeetingSms(VisitorUserEntity visitorUserEntity, VisitorsEntity dataVisitors) { + Map stringStringHashMap = new HashMap<>(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + stringStringHashMap.put("createTime", visitorUserEntity.getCreateTime().format(formatter)); + stringStringHashMap.put("visitorName", visitorUserEntity.getRealName()==null?visitorUserEntity.getPhone():visitorUserEntity.getRealName()); + stringStringHashMap.put("visitorPhone", visitorUserEntity.getPhone()); + stringStringHashMap.put("visitorTime", dataVisitors.getVStartDate() + "至" + dataVisitors.getVEndDate()); + stringStringHashMap.put("visitorLocal", dataVisitors.getDeptName()); + + + reminderThirdPartySmsService.sendParamsMsg(visitorUserEntity.getPhone(), "20658", stringStringHashMap, WebUtils.getIP()); + } } \ 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 acf4a836e..12d3382e8 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 @@ -190,45 +190,19 @@ public class VisitorsServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(VisitorsEntity::getYyId, visitors.getYyId()); - VisitorsEntity visitorsEntitie = baseMapper.selectOne(queryWrapper); - - //设置邀约人的id - bean.setReceiveId(visitorsEntitie.getUserId()); - - if (null != visitorsEntitie){ - //如果被接受过,则不能再接受 - if (TaskCheckStatusEnum.RESULT.getCode().equals(visitorsEntitie.getCheckStatus())){ - throw new ServiceException("该邀约已被接受,请勿重复接受"); - } - } - VisitorsEntity visitorsUpdateYY = new VisitorsEntity(); - visitorsUpdateYY.setId(visitors.getYyId()); - visitorsUpdateYY.setCheckStatus(TaskCheckStatusEnum.RESULT.getCode()); - baseMapper.updateById(visitorsUpdateYY); - }else { //主动申请,需要审核 - bean.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode()); - } - + bean.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode()); List visitorsPeopleAppDTOList = visitors.getOtherPeople(); - if (!CollectionUtils.isEmpty(visitorsPeopleAppDTOList)){ -// List visitorsPeopleEntities = BeanUtils.toBean(visitorsPeopleAppDTOList, VisitorsPeopleEntity.class); - visitorsPeopleAppDTOList.forEach(i->{ - VisitorInfo itemVisitorInfo = new VisitorInfo(); - itemVisitorInfo.setVisitorName(i.getName()); - itemVisitorInfo.setPhoneNo(i.getMobile()); - visitorInfoList.add(itemVisitorInfo); - }); - } +// if (!CollectionUtils.isEmpty(visitorsPeopleAppDTOList)){ +//// List visitorsPeopleEntities = BeanUtils.toBean(visitorsPeopleAppDTOList, VisitorsPeopleEntity.class); +// visitorsPeopleAppDTOList.forEach(i->{ +// VisitorInfo itemVisitorInfo = new VisitorInfo(); +// itemVisitorInfo.setVisitorName(i.getName()); +// itemVisitorInfo.setPhoneNo(i.getMobile()); +// visitorInfoList.add(itemVisitorInfo); +// }); +// } int insert = baseMapper.insert(bean); if (!CollectionUtils.isEmpty(visitorsPeopleAppDTOList)){ diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/MeetingBookingMapper.xml b/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/MeetingBookingMapper.xml index 06ece6460..b82fabfc3 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/MeetingBookingMapper.xml +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/MeetingBookingMapper.xml @@ -23,6 +23,7 @@ +