Compare commits

...

65 Commits

Author SHA1 Message Date
lxj
c2f0b64e6f 修复比对失败没写入事件表的问题
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 12m7s
2025-08-27 19:42:33 +08:00
lxj
0330b023a3 修复打包失败
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 12m38s
2025-08-27 19:18:46 +08:00
lxj
1eb95bf6f6 修复打包失败
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 12m8s
2025-08-27 18:37:12 +08:00
lxj
df9adf700c Merge branch 'prod' of http://47.109.37.87:3000/by2025/SmartParks
Some checks failed
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Failing after 9m11s
2025-08-27 18:22:20 +08:00
lxj
19e259a15e 修复配置文件 2025-08-27 18:10:11 +08:00
6133d7761d 修改了水电抄表bug 2025-08-27 18:03:49 +08:00
lxj
318da3f0ee Merge branch 'master' of http://47.109.37.87:3000/by2025/SmartParks
# Conflicts:
#	ruoyi-modules/Sis/src/main/java/org/dromara/sis/rocketmq/RocketMqConstants.java
#	ruoyi-modules/Sis/src/main/java/org/dromara/sis/rocketmq/consumer/FaceCaptureConsumer.java
#	ruoyi-modules/Sis/src/main/java/org/dromara/sis/rocketmq/consumer/FaceCompareConsumer.java
2025-08-27 18:01:31 +08:00
lxj
3c8eb59165 rocketmq消费者组修改 2025-08-27 17:59:56 +08:00
3c480d92f0 修改了水电抄表bug 2025-08-27 17:58:28 +08:00
78d97e14ee refactor(rocketmq): 1 2025-08-27 15:46:17 +08:00
c2c1818ba6 refactor(rocketmq): 1 2025-08-27 15:43:27 +08:00
3ebc58f5e3 refactor(rocketmq): 手动装配rocketMQ 2025-08-26 21:02:38 +08:00
07b9e8b722 Merge remote-tracking branch 'origin/master' 2025-08-26 20:33:13 +08:00
b20828a800 feat(rocketmq): 添加仪表记录消费者和生产者服务 2025-08-26 20:32:51 +08:00
9c0b0bad03 修改工单bug 2025-08-26 17:28:16 +08:00
c4495d2cf2 Merge pull request '修改了车辆收费bug' (#1) from master into prod
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 11m47s
Reviewed-on: #1
2025-08-26 13:57:40 +08:00
a16c333759 修改了车辆收费bug 2025-08-26 13:12:50 +08:00
6e84a1c646 发布
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 16m48s
2025-08-26 10:52:59 +08:00
a6b0277ff6 fix:绿植租赁方案删除 2025-08-26 10:26:47 +08:00
ef0976c621 Merge remote-tracking branch 'origin/master' 2025-08-26 09:50:12 +08:00
e949122b37 修改了车辆收费bug 2025-08-26 09:47:32 +08:00
638a98a4c6 Merge remote-tracking branch 'origin/master' 2025-08-25 18:35:32 +08:00
360f87ea0d 更新 .gitea/workflows/master.yml 2025-08-25 18:35:30 +08:00
555de9f5aa refactor(property): 1 2025-08-25 18:34:30 +08:00
da131cda5c 修改了物业一些bug
Some checks failed
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Failing after 12m36s
2025-08-25 17:31:33 +08:00
c86f887d3e 更新 .gitea/workflows/master.yml
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 17m20s
2025-08-25 16:31:56 +08:00
2c127576a0 删除 .gitea/workflows/dev.yml
Some checks failed
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Has been cancelled
2025-08-25 16:31:11 +08:00
15a0f3f884 更新 ruoyi-modules/Property/Dockerfile
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m25s
2025-08-24 17:51:22 +08:00
0d4754eef9 Merge remote-tracking branch 'origin/master'
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m51s
2025-08-24 16:58:14 +08:00
dad6666107 feat(ImageUtil): 添加图片压缩方向处理功能 2025-08-24 16:58:03 +08:00
dy
87b77b26d1 Merge branch 'master' of http://47.109.37.87:3000/by2025/SmartParks
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m22s
2025-08-23 22:55:22 +08:00
dy
0584a44601 H5新增访客 2025-08-23 22:55:11 +08:00
15683799673
18bd1724c4 Merge branch 'master' of http://47.109.37.87:3000/by2025/SmartParks
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m17s
2025-08-23 19:53:54 +08:00
15683799673
c8475f818d 修复告警详情图片获取不对的问题 2025-08-23 19:53:46 +08:00
d3a1d16b8f 修改了物业一些bug
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m25s
2025-08-23 19:17:29 +08:00
5ec2a67049 新增了单位接口
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m20s
2025-08-23 16:36:45 +08:00
9eeca6f32e 新增了单位接口
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m55s
2025-08-23 15:27:13 +08:00
8966b52cc5 修改了移动端新增工单
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 8m6s
2025-08-23 13:52:58 +08:00
b022d3a68c 修改了会议室等bug
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m15s
2025-08-22 20:52:39 +08:00
63e5abc003 修改了会议室等bug
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m17s
2025-08-22 20:41:13 +08:00
1d8b948a13 更新 .gitea/workflows/master.yml
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m21s
2025-08-22 20:27:29 +08:00
953a545ba6 更新 .gitea/workflows/master.yml 2025-08-22 20:26:28 +08:00
a8dc8d99df 更新 .gitea/workflows/dev.yml
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m22s
2025-08-22 20:13:25 +08:00
fb7e5c7e19 更新 .gitea/workflows/dev.yml
Some checks failed
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Has been cancelled
2025-08-22 20:12:29 +08:00
1b5204e6ed 更新 .gitea/workflows/dev.yml
Some checks failed
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Has been cancelled
2025-08-22 20:11:57 +08:00
8340f5cf6a 修改了会议室等bug
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m24s
2025-08-22 20:03:34 +08:00
lxj
9897bb8db7 Merge branch 'master' of http://47.109.37.87:3000/by2025/SmartParks
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m25s
2025-08-22 18:14:28 +08:00
lxj
4a62ad17c3 修改详情逻辑 2025-08-22 18:14:17 +08:00
1e39769309 更新 ruoyi-modules/Sis/Dockerfile
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m20s
2025-08-22 17:55:44 +08:00
lxj
df9e3b77ff 删除hik sdk 和宇试文档
Some checks failed
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Failing after 5m40s
2025-08-22 17:46:07 +08:00
lxj
42b5c78658 Merge branch 'master' of http://47.109.37.87:3000/by2025/SmartParks
Some checks failed
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Has been cancelled
2025-08-22 17:44:44 +08:00
lxj
49401d42ba 增加事件处理详情 2025-08-22 17:44:33 +08:00
1aa576a9ae 修改了权限bug
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m25s
2025-08-22 17:33:25 +08:00
dy
d0ccd668fa 修改前端不返回设备bug
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m30s
2025-08-22 16:29:37 +08:00
dy
3c144d00e5 前端不传集合时状态改不了的bug
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m19s
2025-08-22 14:48:31 +08:00
359a380937 修正nacos配置pom,添加默认配置
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m55s
2025-08-22 13:51:40 +08:00
a36667e599 修正nacos配置pom,添加默认配置
Some checks failed
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Has been cancelled
2025-08-22 12:16:51 +08:00
1d8ad14ebc 修正nacos配置pom,添加默认配置
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m50s
2025-08-22 11:51:23 +08:00
lxj
73e47e5127 修改开放环境参数配置
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m46s
2025-08-22 10:22:27 +08:00
2e314b2901 feat(sis): 添加图片压缩工具类并优化访客照片上传逻辑
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 7m17s
2025-08-21 23:14:12 +08:00
2103be1de5 refactor(sis): 1
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m19s
2025-08-21 18:10:30 +08:00
2a143bb147 修改了工单bug
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m25s
2025-08-21 17:35:28 +08:00
37966e73c1 refactor(sis): 1
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m26s
2025-08-21 15:10:54 +08:00
f01d28b21e 修改了工单bug
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m21s
2025-08-21 14:27:30 +08:00
db9b1e1cd3 修改了工单bug
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m27s
2025-08-21 14:11:51 +08:00
166 changed files with 2366 additions and 694 deletions

View File

@@ -1,205 +0,0 @@
run-name: ${{ gitea.actor }} 构建镜像并推送不含JAR依赖上传🚀
on:
push:
branches:
- main
jobs:
build-parent-pom:
runs-on: ubuntu
steps:
- name: 拉取代码仓库
uses: http://git.missmoc.top/mocheng/checkout@v4
- name: 配置环境变量(绝对路径)
run: |
export JAVA_HOME="/java17/java17"
export MAVEN_HOME="/maven/apache-maven-3.9.11"
if [ ! -f "$JAVA_HOME/bin/java" ]; then
echo "错误JDK可执行文件不存在于 $JAVA_HOME/bin/java"
exit 1
fi
if [ ! -f "$MAVEN_HOME/bin/mvn" ]; then
echo "错误Maven可执行文件不存在于 $MAVEN_HOME/bin/mvn"
exit 1
fi
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "$JAVA_HOME/bin" >> $GITHUB_PATH
echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
"$JAVA_HOME/bin/java" -version
"$MAVEN_HOME/bin/mvn" -v
- name: 配置Maven仓库
run: |
mkdir -p ~/.m2
cat > ~/.m2/settings.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<localRepository>/root/.m2/repository</localRepository>
<profiles>
<profile>
<id>multi-repo</id>
<repositories>
<repository>
<id>local-repo</id>
<url>file:///root/.m2/repository</url>
</repository>
<repository>
<id>aliyun-public</id>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>multi-repo</activeProfile>
</activeProfiles>
</settings>
EOF
- name: 构建主POM仅本地安装不上传
run: |
MAIN_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/pom.xml"
if [ ! -f "$MAIN_POM_ABSOLUTE_PATH" ]; then
echo "错误主POM文件不存在"
exit 1
fi
retries=3
count=0
until "$MAVEN_HOME/bin/mvn" clean install -U -DskipTests -f "$MAIN_POM_ABSOLUTE_PATH"; do
count=$((count + 1))
if [ $count -ge $retries ]; then
echo "错误主POM构建失败"
exit 1
fi
sleep 10
done
# build-common-modules:
# needs: build-parent-pom
# runs-on: ubuntu
# steps:
# - name: 拉取代码仓库
# uses: http://git.missmoc.top/mocheng/checkout@v4
# - name: 配置环境变量
# run: |
# export JAVA_HOME="/java17/java17"
# export MAVEN_HOME="/maven/apache-maven-3.9.11"
# echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
# echo "$JAVA_HOME/bin" >> $GITHUB_PATH
# echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
# echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
# - name: 构建通用模块(仅本地使用,不上传)
# run: |
# COMMON_MODULES=(
# "ruoyi-common"
# "ruoyi-api"
# "ruoyi-common-bom"
# "ruoyi-common-alibaba-bom"
# "ruoyi-api-bom"
# )
# for module in "${COMMON_MODULES[@]}"; do
# MODULE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${module}/pom.xml"
# if [ ! -f "$MODULE_POM_ABSOLUTE_PATH" ]; then
# echo "警告:模块 $module 不存在,跳过"
# continue
# fi
# retries=3
# count=0
# until "$MAVEN_HOME/bin/mvn" clean compile install -U -DskipTests -f "$MODULE_POM_ABSOLUTE_PATH"; do
# count=$((count + 1))
# if [ $count -ge $retries ]; then
# echo "错误:模块 $module 构建失败"
# exit 1
# fi
# sleep 10
# done
# done
build-and-push-services:
needs: build-common-modules
runs-on: ubuntu
strategy:
matrix:
service:
- ruoyi-auth
- ruoyi-gateway
- ruoyi-modules/Property
- ruoyi-modules/ruoyi-gen
- ruoyi-modules/ruoyi-job
- ruoyi-modules/ruoyi-resource
- ruoyi-modules/ruoyi-system
- ruoyi-modules/ruoyi-workflow
- ruoyi-modules/Sis
- ruoyi-visual/ruoyi-monitor
- ruoyi-visual/ruoyi-nacos
- ruoyi-seata-server
- ruoyi-sentinel-dashboard
- ruoyi-snailjob-server
steps:
- name: 拉取代码仓库
uses: http://git.missmoc.top/mocheng/checkout@v4
- name: 配置环境变量
run: |
export JAVA_HOME="/java17/java17"
export MAVEN_HOME="/maven/apache-maven-3.9.11"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "$JAVA_HOME/bin" >> $GITHUB_PATH
echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
- name: 构建服务模块
run: |
SERVICE_NAME="${{ matrix.service }}"
SERVICE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/pom.xml"
if [ ! -f "$SERVICE_POM_ABSOLUTE_PATH" ]; then
echo "错误:服务 $SERVICE_NAME 的POM文件不存在"
exit 1
fi
"$MAVEN_HOME/bin/mvn" clean package -U -DskipTests -f "$SERVICE_POM_ABSOLUTE_PATH"
- name: 配置Docker Buildx
uses: http://git.missmoc.top/mocheng/setup-buildx-action@v3
- name: 登录到容器仓库
uses: http://git.missmoc.top/mocheng/login-action@v3
with:
registry: ${{ secrets.REGISTRY_URL }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASS }}
- name: 确定Dockerfile路径
id: dockerfile-path
run: |
SERVICE_NAME="${{ matrix.service }}"
DOCKERFILE_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/Dockerfile"
if [ -f "$DOCKERFILE_ABSOLUTE_PATH" ]; then
echo "dockerfile_path=$DOCKERFILE_ABSOLUTE_PATH" >> $GITHUB_OUTPUT
else
echo "dockerfile_path=${GITHUB_WORKSPACE}/Dockerfile" >> $GITHUB_OUTPUT
fi
- name: 构建并推送Docker镜像仅推送镜像不上传JAR
uses: http://git.missmoc.top/mocheng/build-push-action@v5
with:
context: "${{ github.workspace }}"
file: ${{ github.workspace }}/${{ matrix.service }}/Dockerfile
tags: 172.100.10.45:3000/by2025/smartparks/${{ matrix.service }}:latest
# tags: ${{ secrets.REGISTRY_URL }}/by2025/$(echo ${{ matrix.service }} | tr 'A-Z' 'a-z'):${{ github.sha }}
# tags: ${{ secrets.REGISTRY_URL }}/by2025/${{ matrix.service }}:2.0.4
push: true
cache-from: type=gha
cache-to: type=gha,mode=max

View File

@@ -3,7 +3,7 @@ name: Build and Push to Target Registry
# 监听master分支的推送事件
on:
push:
branches: [ master ]
branches: [ prod ]
jobs:
build-and-deploy:
@@ -87,3 +87,8 @@ jobs:
echo "===== 清理操作 ====="
docker system prune -f
echo "===== 所有操作完成 ===="
- name: 重启服务
run: |
kubectl rollout restart deployment sis -n smartparks
kubectl rollout restart deployment property -n smartparks

10
pom.xml
View File

@@ -91,12 +91,12 @@
<properties>
<!-- 环境标识,需要与配置文件的名称相对应 -->
<profiles.active>dev</profiles.active>
<nacos.server>127.0.0.1:8848</nacos.server>
<logstash.address>127.0.0.1:4560</logstash.address>
<nacos.server>113.249.101.254:8848</nacos.server>
<logstash.address>113.249.101.254:4560</logstash.address>
<nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
<nacos.config.group>DEFAULT_GROUP</nacos.config.group>
<nacos.username>nacos</nacos.username>
<nacos.password>nacos</nacos.password>
<nacos.password>by@2025??</nacos.password>
</properties>
</profile>
@@ -118,8 +118,8 @@
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
<nacos.server>10.20.1.185:8848</nacos.server>
<logstash.address>10.20.1.185:4560</logstash.address>
<nacos.server>127.0.0.1:8848</nacos.server>
<logstash.address>127.0.0.1:4560</logstash.address>
<nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
<nacos.config.group>DEFAULT_GROUP</nacos.config.group>
<nacos.username>nacos</nacos.username>

View File

@@ -25,6 +25,7 @@ public interface RemoteUserService {
* @return 结果
*/
LoginUser getUserInfo(String username, String tenantId) throws UserException;
/**
* 通过用户id查询用户信息
*
@@ -196,6 +197,10 @@ public interface RemoteUserService {
*/
Map<Long, String> selectPostNamesByIds(List<Long> postIds);
Map<String ,Integer> seelectOrgcount();
Map<String, Integer> seelectOrgcount();
/**
* 查询用户列表
*/
List<RemoteUserVo> selectUserList(List<Long> userIds);
}

View File

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/Property/logs \
WORKDIR /ruoyi/Property
ENV SERVER_PORT=9201 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
ENV SERVER_PORT=9201 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Duser.timezone=Asia/Shanghai"
EXPOSE ${SERVER_PORT}

View File

@@ -125,6 +125,11 @@
<artifactId>ruoyi-common-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
</dependency>
</dependencies>
<build>

View File

@@ -62,7 +62,7 @@ public class ApplicationController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("property:application:query")
@SaCheckPermission("property:application:query")
@GetMapping("/{id}")
public R<ApplicationVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {

View File

@@ -24,7 +24,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 资产申请
* 前端访问路由地址为:/domain/application
* 前端访问路由地址为:/domain/procurementApplication
*
* @author mocheng
* @date 2025-07-25
@@ -40,7 +40,7 @@ public class CapitalApplicationController extends BaseController {
/**
* 查询资产申请列表
*/
// @SaCheckPermission("domain:application:list")
@SaCheckPermission("domain:procurementApplication:list")
@GetMapping("/list")
public TableDataInfo<CapitalApplicationVo> list(CapitalApplicationBo bo, PageQuery pageQuery) {
return capitalApplicationService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class CapitalApplicationController extends BaseController {
/**
* 导出资产申请列表
*/
@SaCheckPermission("domain:application:export")
@SaCheckPermission("domain:procurementApplication:export")
@Log(title = "资产申请", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CapitalApplicationBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class CapitalApplicationController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("domain:application:query")
@SaCheckPermission("domain:procurementApplication:query")
@GetMapping("/{id}")
public R<CapitalApplicationVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class CapitalApplicationController extends BaseController {
/**
* 新增资产申请
*/
// @SaCheckPermission("domain:application:add")
// @SaCheckPermission("domain:procurementApplication:add")
@Log(title = "资产申请", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class CapitalApplicationController extends BaseController {
/**
* 修改资产申请
*/
@SaCheckPermission("domain:application:edit")
@SaCheckPermission("domain:procurementApplication:edit")
@Log(title = "资产申请", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class CapitalApplicationController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("domain:application:remove")
@SaCheckPermission("domain:procurementApplication:remove")
@Log(title = "资产申请", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -40,7 +40,7 @@ public class CostItemsController extends BaseController {
/**
* 查询费用项设置列表
*/
@SaCheckPermission("property:costItems:list")
@SaCheckPermission("property:costItemSetting:list")
@GetMapping("/list")
public TableDataInfo<CostItemsVo> list(CostItemsBo bo, PageQuery pageQuery) {
return costItemsService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class CostItemsController extends BaseController {
/**
* 导出费用项设置列表
*/
@SaCheckPermission("property:costItems:export")
@SaCheckPermission("property:costItemSetting:export")
@Log(title = "费用项设置", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CostItemsBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class CostItemsController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("property:costItems:query")
@SaCheckPermission("property:costItemSetting:query")
@GetMapping("/{id}")
public R<CostItemsVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class CostItemsController extends BaseController {
/**
* 新增费用项设置
*/
@SaCheckPermission("property:costItems:add")
@SaCheckPermission("property:costItemSetting:add")
@Log(title = "费用项设置", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class CostItemsController extends BaseController {
/**
* 修改费用项设置
*/
@SaCheckPermission("property:costItems:edit")
@SaCheckPermission("property:costItemSetting:edit")
@Log(title = "费用项设置", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class CostItemsController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("property:costItems:remove")
@SaCheckPermission("property:costItemSetting:remove")
@Log(title = "费用项设置", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -40,7 +40,7 @@ public class CostMeterWaterController extends BaseController {
/**
* 查询费用-水电抄列表
*/
@SaCheckPermission("system:meterWater:list")
@SaCheckPermission("property:costMeterWater:list")
@GetMapping("/list")
public TableDataInfo<CostMeterWaterVo> list(CostMeterWaterBo bo, PageQuery pageQuery) {
return costMeterWaterService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class CostMeterWaterController extends BaseController {
/**
* 导出费用-水电抄列表
*/
@SaCheckPermission("system:meterWater:export")
@SaCheckPermission("property:costMeterWater:export")
@Log(title = "费用-水电抄", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CostMeterWaterBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class CostMeterWaterController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("system:meterWater:query")
@SaCheckPermission("property:costMeterWater:query")
@GetMapping("/{id}")
public R<CostMeterWaterVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -82,7 +82,7 @@ public class CostMeterWaterController extends BaseController {
/**
* 新增费用-水电抄
*/
@SaCheckPermission("system:meterWater:add")
@SaCheckPermission("property:costMeterWater:add")
@Log(title = "费用-水电抄", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -93,7 +93,7 @@ public class CostMeterWaterController extends BaseController {
/**
* 修改费用-水电抄
*/
@SaCheckPermission("system:meterWater:edit")
@SaCheckPermission("property:costMeterWater:edit")
@Log(title = "费用-水电抄", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -106,7 +106,7 @@ public class CostMeterWaterController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("system:meterWater:remove")
@SaCheckPermission("property:costMeterWater:remove")
@Log(title = "费用-水电抄", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -40,7 +40,7 @@ public class CostPayFeeAuditController extends BaseController {
/**
* 查询费用-缴费审核列表
*/
// @SaCheckPermission("system:payFeeAudit:list")
@SaCheckPermission("property:payFeeAudit:list")
@GetMapping("/list")
public TableDataInfo<CostPayFeeAuditVo> list(CostPayFeeAuditBo bo, PageQuery pageQuery) {
return costPayFeeAuditService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class CostPayFeeAuditController extends BaseController {
/**
* 导出费用-缴费审核列表
*/
@SaCheckPermission("system:payFeeAudit:export")
@SaCheckPermission("property:payFeeAudit:export")
@Log(title = "费用-缴费审核", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CostPayFeeAuditBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class CostPayFeeAuditController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("system:payFeeAudit:query")
@SaCheckPermission("property:payFeeAudit:query")
@GetMapping("/{id}")
public R<CostPayFeeAuditVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class CostPayFeeAuditController extends BaseController {
/**
* 新增费用-缴费审核
*/
@SaCheckPermission("system:payFeeAudit:add")
@SaCheckPermission("property:payFeeAudit:add")
@Log(title = "费用-缴费审核", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class CostPayFeeAuditController extends BaseController {
/**
* 修改费用-缴费审核
*/
@SaCheckPermission("system:payFeeAudit:edit")
@SaCheckPermission("property:payFeeAudit:edit")
@Log(title = "费用-缴费审核", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class CostPayFeeAuditController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("system:payFeeAudit:remove")
@SaCheckPermission("property:payFeeAudit:remove")
@Log(title = "费用-缴费审核", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -24,7 +24,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 费用-抄类型
* 前端访问路由地址为:/system/returnPayFee
* 前端访问路由地址为:/property/returnPayFee
*
* @author mocheng
* @date 2025-07-17
@@ -40,7 +40,7 @@ public class CostReturnPayFeeController extends BaseController {
/**
* 查询费用-抄类型列表
*/
//@SaCheckPermission("system:returnPayFee:list")
@SaCheckPermission("property:returnPayFee:list")
@GetMapping("/list")
public TableDataInfo<CostReturnPayFeeVo> list(CostReturnPayFeeBo bo, PageQuery pageQuery) {
return costReturnPayFeeService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class CostReturnPayFeeController extends BaseController {
/**
* 导出费用-抄类型列表
*/
@SaCheckPermission("system:returnPayFee:export")
@SaCheckPermission("property:returnPayFee:export")
@Log(title = "费用-抄类型", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CostReturnPayFeeBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class CostReturnPayFeeController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("system:returnPayFee:query")
@SaCheckPermission("property:returnPayFee:query")
@GetMapping("/{id}")
public R<CostReturnPayFeeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class CostReturnPayFeeController extends BaseController {
/**
* 新增费用-抄类型
*/
@SaCheckPermission("system:returnPayFee:add")
@SaCheckPermission("property:returnPayFee:add")
@Log(title = "费用-抄类型", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class CostReturnPayFeeController extends BaseController {
/**
* 修改费用-抄类型
*/
@SaCheckPermission("system:returnPayFee:edit")
@SaCheckPermission("property:returnPayFee:edit")
@Log(title = "费用-抄类型", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class CostReturnPayFeeController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("system:returnPayFee:remove")
@SaCheckPermission("property:returnPayFee:remove")
@Log(title = "费用-抄类型", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -40,7 +40,7 @@ public class CustomerFeedbacksController extends BaseController {
/**
* 查询客户服务-意见反馈列表
*/
@SaCheckPermission("system:feedbacks:list")
// @SaCheckPermission("system:feedbacks:list")
@GetMapping("/list")
public TableDataInfo<CustomerFeedbacksVo> list(CustomerFeedbacksBo bo, PageQuery pageQuery) {
return customerFeedbacksService.queryPageList(bo, pageQuery);
@@ -62,7 +62,9 @@ public class CustomerFeedbacksController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("system:feedbacks:query")
//
//
// @SaCheckPermission("system:feedbacks:query")
@GetMapping("/{id}")
public R<CustomerFeedbacksVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {

View File

@@ -33,4 +33,15 @@ public class EnumFetcherController {
List<Map<Object, Object>> map = enumFetcherService.getEnumValues(name);
return R.ok(map);
}
/**
* 根据工单类型或部门下的排班人员
* @param type
* @return
*/
@GetMapping("/enum-getShiftScheduler/{type}")
public R<List<Map<Object, Object>>> getShiftScheduler(@PathVariable("type") String type) {
List<Map<Object, Object>> map = enumFetcherService.getShiftScheduler(type);
return R.ok(map);
}
}

View File

@@ -40,7 +40,7 @@ public class InspectionItemController extends BaseController {
/**
* 查询巡检项目列表
*/
@SaCheckPermission("system:item:list")
@SaCheckPermission("property:inspectionItem:list")
@GetMapping("/list")
public TableDataInfo<InspectionItemVo> list(InspectionItemBo bo, PageQuery pageQuery) {
return inspectionItemService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class InspectionItemController extends BaseController {
/**
* 导出巡检项目列表
*/
@SaCheckPermission("system:item:export")
@SaCheckPermission("property:inspectionItem:export")
@Log(title = "巡检项目", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(InspectionItemBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class InspectionItemController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("system:item:query")
@SaCheckPermission("property:inspectionItem:query")
@GetMapping("/{id}")
public R<InspectionItemVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class InspectionItemController extends BaseController {
/**
* 新增巡检项目
*/
@SaCheckPermission("system:item:add")
@SaCheckPermission("property:inspectionItem:add")
@Log(title = "巡检项目", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class InspectionItemController extends BaseController {
/**
* 修改巡检项目
*/
@SaCheckPermission("system:item:edit")
@SaCheckPermission("property:inspectionItem:edit")
@Log(title = "巡检项目", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class InspectionItemController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("system:item:remove")
@SaCheckPermission("property:inspectionItem:remove")
@Log(title = "巡检项目", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -40,7 +40,7 @@ public class InspectionPointController extends BaseController {
/**
* 查询巡检点列表
*/
@SaCheckPermission("system:point:list")
@SaCheckPermission("property:inspectionPoint:list")
@GetMapping("/list")
public TableDataInfo<InspectionPointVo> list(InspectionPointBo bo, PageQuery pageQuery) {
return inspectionPointService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class InspectionPointController extends BaseController {
/**
* 导出巡检点列表
*/
@SaCheckPermission("system:point:export")
@SaCheckPermission("property:inspectionPoint:export")
@Log(title = "巡检点", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(InspectionPointBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class InspectionPointController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("system:point:query")
@SaCheckPermission("property:inspectionPoint:query")
@GetMapping("/{id}")
public R<InspectionPointVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class InspectionPointController extends BaseController {
/**
* 新增巡检点
*/
@SaCheckPermission("system:point:add")
@SaCheckPermission("property:inspectionPoint:add")
@Log(title = "巡检点", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class InspectionPointController extends BaseController {
/**
* 修改巡检点
*/
@SaCheckPermission("system:point:edit")
@SaCheckPermission("property:inspectionPoint:edit")
@Log(title = "巡检点", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class InspectionPointController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("system:point:remove")
@SaCheckPermission("property:inspectionPoint:remove")
@Log(title = "巡检点", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -40,7 +40,7 @@ public class InspectionRouteController extends BaseController {
/**
* 查询巡检路线列表
*/
//@SaCheckPermission("system:route:list")
@SaCheckPermission("property:inspectionRoute:list")
@GetMapping("/list")
public TableDataInfo<InspectionRouteVo> list(InspectionRouteBo bo, PageQuery pageQuery) {
return inspectionRouteService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class InspectionRouteController extends BaseController {
/**
* 导出巡检路线列表
*/
@SaCheckPermission("system:route:export")
@SaCheckPermission("property:inspectionRoute:export")
@Log(title = "巡检路线", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(InspectionRouteBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class InspectionRouteController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("system:route:query")
@SaCheckPermission("property:inspectionRoute:query")
@GetMapping("/{id}")
public R<InspectionRouteVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class InspectionRouteController extends BaseController {
/**
* 新增巡检路线
*/
@SaCheckPermission("system:route:add")
@SaCheckPermission("property:inspectionRoute:add")
@Log(title = "巡检路线", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class InspectionRouteController extends BaseController {
/**
* 修改巡检路线
*/
@SaCheckPermission("system:route:edit")
@SaCheckPermission("property:inspectionRoute:edit")
@Log(title = "巡检路线", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class InspectionRouteController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("system:route:remove")
@SaCheckPermission("property:inspectionRoute:remove")
@Log(title = "巡检路线", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -40,7 +40,7 @@ public class MachineMaintainPlanController extends BaseController {
/**
* 查询设备保养计划列表
*/
@SaCheckPermission("system:maintainPlan:list")
@SaCheckPermission("property:maintainPlan:list")
@GetMapping("/list")
public TableDataInfo<MachineMaintainPlanVo> list(MachineMaintainPlanBo bo, PageQuery pageQuery) {
return machineMaintainPlanService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class MachineMaintainPlanController extends BaseController {
/**
* 导出设备保养计划列表
*/
@SaCheckPermission("system:maintainPlan:export")
@SaCheckPermission("property:maintainPlan:export")
@Log(title = "设备保养计划", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(MachineMaintainPlanBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class MachineMaintainPlanController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("system:maintainPlan:query")
@SaCheckPermission("property:maintainPlan:query")
@GetMapping("/{id}")
public R<MachineMaintainPlanVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class MachineMaintainPlanController extends BaseController {
/**
* 新增设备保养计划
*/
@SaCheckPermission("system:maintainPlan:add")
@SaCheckPermission("property:maintainPlan:add")
@Log(title = "设备保养计划", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class MachineMaintainPlanController extends BaseController {
/**
* 修改设备保养计划
*/
@SaCheckPermission("system:maintainPlan:edit")
@SaCheckPermission("property:maintainPlan:edit")
@Log(title = "设备保养计划", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class MachineMaintainPlanController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("system:maintainPlan:remove")
@SaCheckPermission("property:maintainPlan:remove")
@Log(title = "设备保养计划", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -24,7 +24,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 设备保养任务明细
* 前端访问路由地址为:/domain/maintainTaskDetail
* 前端访问路由地址为:/property/maintainTaskDetail
*
* @author mocheng
* @date 2025-07-16
@@ -40,7 +40,7 @@ public class MachineMaintainTaskDetailController extends BaseController {
/**
* 查询设备保养任务明细列表
*/
@SaCheckPermission("domain:maintainTaskDetail:list")
@SaCheckPermission("property:maintainTaskDetail:list")
@GetMapping("/list")
public TableDataInfo<MachineMaintainTaskDetailVo> list(MachineMaintainTaskDetailBo bo, PageQuery pageQuery) {
return machineMaintainTaskDetailService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class MachineMaintainTaskDetailController extends BaseController {
/**
* 导出设备保养任务明细列表
*/
@SaCheckPermission("domain:maintainTaskDetail:export")
@SaCheckPermission("property:maintainTaskDetail:export")
@Log(title = "设备保养任务明细", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(MachineMaintainTaskDetailBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class MachineMaintainTaskDetailController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("domain:maintainTaskDetail:query")
@SaCheckPermission("property:maintainTaskDetail:query")
@GetMapping("/{id}")
public R<MachineMaintainTaskDetailVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class MachineMaintainTaskDetailController extends BaseController {
/**
* 新增设备保养任务明细
*/
@SaCheckPermission("domain:maintainTaskDetail:add")
@SaCheckPermission("property:maintainTaskDetail:add")
@Log(title = "设备保养任务明细", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class MachineMaintainTaskDetailController extends BaseController {
/**
* 修改设备保养任务明细
*/
@SaCheckPermission("domain:maintainTaskDetail:edit")
@SaCheckPermission("property:maintainTaskDetail:edit")
@Log(title = "设备保养任务明细", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class MachineMaintainTaskDetailController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("domain:maintainTaskDetail:remove")
@SaCheckPermission("property:maintainTaskDetail:remove")
@Log(title = "设备保养任务明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -40,7 +40,7 @@ public class MeetAttachController extends BaseController {
/**
* 查询分页会议室增值服务列表
*/
// @SaCheckPermission("property:attach:list")
@SaCheckPermission("property:conferenceAddServices:list")
@GetMapping("/list")
public TableDataInfo<MeetAttachVo> pageList(MeetAttachBo bo, PageQuery pageQuery) {
return meetAttachService.queryPageList(bo, pageQuery);
@@ -57,7 +57,7 @@ public class MeetAttachController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("property:attach:query")
@SaCheckPermission("property:conferenceAddServices:query")
@GetMapping("/{id}")
public R<MeetAttachVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -67,7 +67,7 @@ public class MeetAttachController extends BaseController {
/**
* 新增会议室增值服务
*/
@SaCheckPermission("property:attach:add")
@SaCheckPermission("property:conferenceAddServices:add")
@Log(title = "会议室增值服务", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -78,7 +78,7 @@ public class MeetAttachController extends BaseController {
/**
* 修改会议室增值服务
*/
// @SaCheckPermission("property:attach:edit")
@SaCheckPermission("property:conferenceAddServices:edit")
@Log(title = "会议室增值服务", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -91,7 +91,7 @@ public class MeetAttachController extends BaseController {
*
* @param ids 主键串
*/
// @SaCheckPermission("property:attach:remove")
@SaCheckPermission("property:conferenceAddServices:remove")
@Log(title = "会议室增值服务", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -1,5 +1,6 @@
package org.dromara.property.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
@@ -40,7 +41,7 @@ public class MeetBookingController extends BaseController {
/**
* 查询会议预约记录列表
*/
//@SaCheckPermission("property:meetbooking:list")
@SaCheckPermission("property:meetbooking:list")
@GetMapping("/list")
public TableDataInfo<MeetBookingVo> list(MeetBookingBo bo, PageQuery pageQuery) {
return meetBookingService.queryPageList(bo, pageQuery);
@@ -64,7 +65,7 @@ public class MeetBookingController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("property:meetbooking:query")
@SaCheckPermission("property:meetbooking:query")
@GetMapping("/{id}")
public R<MeetBookingDetailVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -74,7 +75,7 @@ public class MeetBookingController extends BaseController {
/**
* 新增会议预约
*/
//@SaCheckPermission("property:meetbooking:add")
@SaCheckPermission("property:meetbooking:add")
@Log(title = "会议预约", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -85,7 +86,7 @@ public class MeetBookingController extends BaseController {
/**
* 修改会议预约
*/
// @SaCheckPermission("property:meetbooking:edit")
@SaCheckPermission("property:meetbooking:edit")
@Log(title = "会议预约", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()

View File

@@ -43,7 +43,7 @@ public class MeetController extends BaseController {
/**
* 查询会议室管理列表
*/
// @SaCheckPermission("property:meet:list")
@SaCheckPermission("property:meet:list")
@Operation
@GetMapping("/list")
public TableDataInfo<MeetVo> list(MeetBo bo, PageQuery pageQuery) {
@@ -66,7 +66,7 @@ public class MeetController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("property:meet:query")
@SaCheckPermission("property:meet:query")
@Operation
@GetMapping("/{id}")
public R<MeetVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {

View File

@@ -26,7 +26,7 @@ import java.util.List;
/**
* 【业务管理-工单处理】
* 前端访问路由地址为:/system/workOrders
* 前端访问路由地址为:/property/workOrders
*
* @author mocheng
* @date 2025-07-07
@@ -42,7 +42,7 @@ public class ServiceWorkOrdersController extends BaseController {
/**
* 查询【工单处理】列表
*/
//@SaCheckPermission("system:workOrders:list")
@SaCheckPermission("property:workOrders:list")
@GetMapping("/list")
public TableDataInfo<ServiceWorkOrdersVo> list(ServiceWorkOrdersBo bo, PageQuery pageQuery) {
return serviceWorkOrdersService.queryPageList(bo, pageQuery);
@@ -51,7 +51,7 @@ public class ServiceWorkOrdersController extends BaseController {
/**
* 导出【工单处理】列表
*/
// @SaCheckPermission("system:workOrders:export")
@SaCheckPermission("property:workOrders:export")
@Log(title = "【工单处理】", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ServiceWorkOrdersBo bo, HttpServletResponse response) {
@@ -64,7 +64,7 @@ public class ServiceWorkOrdersController extends BaseController {
*
* @param id 主键
*/
// @SaCheckPermission("system:workOrders:query")
@SaCheckPermission("property:workOrders:query")
@GetMapping("/{id}")
public R<ServiceWorkOrdersInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -74,7 +74,7 @@ public class ServiceWorkOrdersController extends BaseController {
/**
* 新增【工单处理】
*/
// @SaCheckPermission("system:workOrders:add")
@SaCheckPermission("property:workOrders:add")
@Log(title = "【工单处理】", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -85,20 +85,40 @@ public class ServiceWorkOrdersController extends BaseController {
/**
* 修改【工单处理】
*/
//@SaCheckPermission("system:workOrders:edit")
@SaCheckPermission("property:workOrders:edit")
@Log(title = "【工单处理】", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ServiceWorkOrdersBo bo) {
return toAjax(serviceWorkOrdersService.updateByBo(bo));
}
/**
* 派单【工单处理】
*/
@SaCheckPermission("property:workOrders:dispatch")
@Log(title = "【工单处理】", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/dispatch")
public R<Void> dispatch(@Validated(EditGroup.class) @RequestBody ServiceWorkOrdersBo bo) {
return toAjax(serviceWorkOrdersService.updateByBo(bo));
}
/**
* 抢单【工单处理】
*/
@SaCheckPermission("property:workOrders:grab")
@Log(title = "【工单处理】", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("grab")
public R<Void> grab(@Validated(EditGroup.class) @RequestBody ServiceWorkOrdersBo bo) {
return toAjax(serviceWorkOrdersService.updateByBo(bo));
}
/**
* 删除【工单处理】
*
* @param ids 主键串
*/
// @SaCheckPermission("system:workOrders:remove")
@SaCheckPermission("property:workOrders:remove")
@Log(title = "【工单处理】", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -24,7 +24,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 【工单类型】
* 前端访问路由地址为:/system/workOrdersType
* 前端访问路由地址为:/property/workOrdersType
*
* @author mocheng
* @date 2025-07-09
@@ -40,7 +40,7 @@ public class ServiceWorkOrdersTypeController extends BaseController {
/**
* 查询【工单类型】列表
*/
@SaCheckPermission("system:workOrdersType:list")
@SaCheckPermission("property:workOrdersType:list")
@GetMapping("/list")
public TableDataInfo<ServiceWorkOrdersTypeVo> list(ServiceWorkOrdersTypeBo bo, PageQuery pageQuery) {
return serviceWorkOrdersTypeService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class ServiceWorkOrdersTypeController extends BaseController {
/**
* 导出【工单类型】列表
*/
@SaCheckPermission("system:workOrdersType:export")
@SaCheckPermission("property:workOrdersType:export")
@Log(title = "【导出工单类型】", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ServiceWorkOrdersTypeBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class ServiceWorkOrdersTypeController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("system:workOrdersType:query")
@SaCheckPermission("property:workOrdersType:query")
@GetMapping("/{id}")
public R<ServiceWorkOrdersTypeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class ServiceWorkOrdersTypeController extends BaseController {
/**
* 新增【工单类型】
*/
@SaCheckPermission("system:workOrdersType:add")
@SaCheckPermission("property:workOrdersType:add")
@Log(title = "【新增工单类型】", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class ServiceWorkOrdersTypeController extends BaseController {
/**
* 修改【工单类型】
*/
@SaCheckPermission("system:workOrdersType:edit")
@SaCheckPermission("property:workOrdersType:edit")
@Log(title = "【工单类型】", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class ServiceWorkOrdersTypeController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("system:workOrdersType:remove")
@SaCheckPermission("property:workOrdersType:remove")
@Log(title = "【工单类型】", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -145,17 +145,37 @@ public class TbVisitorManagementController extends BaseController {
if (info==null){
return R.fail("请确认Qr码有效");
}
bo.setType(0);
return toAjax(tbVisitorManagementService.insertByBo(bo));
}
/**
* h5端新增访客管理
* @param bo
* @return
*/
@SaCheckPermission("property:visitorManagement:addH5VistorManagement")
@Log(title = "访客管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/addH5VistorManagement")
public R<Void> addH5VistorManagement(@Validated(AddGroup.class) @RequestBody TbVisitorManagementBo bo) {
QrCodeInfo info = RedisUtils.getCacheObject(GlobalConstants.CAPTCHA_CODE_KEY +"Qrcode" + bo.getQrCodeId());
if (info==null){
return R.fail("请确认Qr码有效");
}
bo.setType(0);
return toAjax(tbVisitorManagementService.insertH5ByBo(bo));
}
/**
* pc端新增访客管理
*/
@SaCheckPermission("property:visitorManagement::addVisitorManagement")
@SaCheckPermission("property:visitorManagement:addVisitorManagement")
@Log(title = "访客管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping
public R<Void> addVistorManagement(@Validated(AddGroup.class) @RequestBody TbVisitorManagementBo bo) {
bo.setType(1);
return toAjax(tbVisitorManagementService.insertVistorManagementByBo(bo));
}

View File

@@ -40,7 +40,7 @@ public class CleanOrderController extends BaseController {
/**
* 查询保洁订单列表
*/
@SaCheckPermission("property:clean_order:list")
//@SaCheckPermission("property:clean_order:list")
@GetMapping("/list")
public TableDataInfo<CleanOrderVo> list(CleanOrderBo bo, PageQuery pageQuery) {
return cleanOrderService.queryPageList(bo, pageQuery);

View File

@@ -3,6 +3,7 @@ package org.dromara.property.controller.mobile;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
@@ -12,6 +13,7 @@ import org.dromara.common.web.core.BaseController;
import org.dromara.property.domain.bo.ServiceWorkOrdersBo;
import org.dromara.property.domain.bo.mobile.MServiceWorkOrdersBo;
import org.dromara.property.domain.vo.ServiceWorkOrdersVo;
import org.dromara.property.domain.vo.mobile.MServiceWorkOrdersVo;
import org.dromara.property.service.IServiceWorkOrdersService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -34,7 +36,6 @@ public class MServiceWorkOrdersController extends BaseController {
* 小程序新增【工单处理】
*/
@Log(title = "【小程序新增工单处理】", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody MServiceWorkOrdersBo bo) {
return toAjax(serviceWorkOrdersService.insertMServiceWorkOrdersBo(bo));
@@ -43,7 +44,16 @@ public class MServiceWorkOrdersController extends BaseController {
* 小程序查询【工单处理】
*/
@GetMapping("/list")
public TableDataInfo<ServiceWorkOrdersVo> list(ServiceWorkOrdersBo bo, PageQuery pageQuery) {
return serviceWorkOrdersService.queryPageList(bo, pageQuery);
public TableDataInfo<MServiceWorkOrdersVo> list(ServiceWorkOrdersBo bo, PageQuery pageQuery) {
return serviceWorkOrdersService.queryMobilePageList(bo, pageQuery);
}
/**
* 修改【工单处理】
*/
@Log(title = "【工单处理】", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ServiceWorkOrdersBo bo) {
return toAjax(serviceWorkOrdersService.updateByBo(bo));
}
}

View File

@@ -30,7 +30,7 @@ public class CustomerFeedbacks extends TenantEntity {
/**
* 反馈类型(0保修1保洁2会议)
*/
private String feedbackType;
private Long feedbackType;
/**
* 反馈人
@@ -58,7 +58,7 @@ public class CustomerFeedbacks extends TenantEntity {
private String feedbackImg;
/**
* 是否转至工单
* 工单id
*/
private Long orderId;
/**

View File

@@ -94,9 +94,18 @@ public class Meet extends TenantEntity {
private String appointmentTime;
/**
* 开放时段
* 图片
*/
private String openHours;
private String picture;
/**
* 开放开始时段
*/
private String openStartHours;
/**
* 开放结束时段
*/
private String openEndHours;
/**
* 状态(0启用,1禁用)

View File

@@ -47,7 +47,7 @@ public class ServiceWorkOrders extends TenantEntity {
private Long type;
/**
* 状态
* 状态(0创建工单,1已派单2已抢单3处理中,4已完成,5已评价)
*/
private String status;
@@ -104,7 +104,7 @@ public class ServiceWorkOrders extends TenantEntity {
*/
private String orderImgUrl;
/**
* 上报类型
* 上报类型(1电话上报2现场上报,3系统上报)
*/
private String reportingType;
/**

View File

@@ -38,7 +38,7 @@ public class ServiceWorkOrdersType extends TenantEntity {
private String orderTypeName;
/**
* 运作模式
* 运作模式(0派单+抢单,1派单,2自动派单)
*/
private String operationMode;
@@ -56,7 +56,10 @@ public class ServiceWorkOrdersType extends TenantEntity {
* 是否支持转单(0支持,1不支持)
*/
private Integer isTransfers;
/**
* 权重(1一般2紧急3危急)
*/
private String processingWeight;
/**
* 搜索值
*/

View File

@@ -50,6 +50,11 @@ public class CostCarChargeBo extends BaseEntity {
* 车位
*/
private String location;
/**
* 车位名称
*/
private String locationName;
/**
* 缴费状态
*/

View File

@@ -29,8 +29,8 @@ public class CustomerFeedbacksBo extends BaseEntity {
/**
* 反馈类型(0保修1保洁2会议)
*/
@NotBlank(message = "反馈类型(0保修1保洁2会议)不能为空", groups = { AddGroup.class, EditGroup.class })
private String feedbackType;
@NotNull (message = "反馈类型(0保修1保洁2会议)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long feedbackType;
/**
* 反馈人

View File

@@ -101,9 +101,13 @@ public class MeetBo extends BaseEntity {
private String appointmentTime;
/**
* 开放时段
* 开放开始时段
*/
private String openHours;
private String openStartHours;
/**
* 开放结束时段
*/
private String openEndHours;
/**
* 状态(0启用,1禁用)

View File

@@ -67,7 +67,7 @@ public class MeetBookingBo extends BaseEntity {
* 参会人数
*/
@NotNull(message = "参会人数不能为空", groups = { AddGroup.class, EditGroup.class })
private int personSum;
private Integer personSum;
/**
* 费用
@@ -78,17 +78,17 @@ public class MeetBookingBo extends BaseEntity {
/**
* 是否包含增值服务
*/
private int attach;
private Integer attach;
/**
* 支付状态
*/
private int payState;
private Integer payState;
/**
* 状态
*/
private int state;
private Integer state;
/**

View File

@@ -27,7 +27,7 @@ public class ServiceWorkOrdersBo extends BaseEntity {
/**
* id
*/
@NotBlank(message = "id不能为空", groups = { EditGroup.class })
@NotNull(message = "id不能为空", groups = { EditGroup.class })
private Long id;
/**
@@ -107,10 +107,6 @@ public class ServiceWorkOrdersBo extends BaseEntity {
* 图片
*/
private String imgUrl;
/**
* 工单图片
*/
private String orderImgUrl;
/**
* 备注
*/

View File

@@ -54,7 +54,10 @@ public class ServiceWorkOrdersTypeBo extends BaseEntity {
*/
@NotNull(message = "完成时效不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer completionNumber;
/**
* 权重(1一般2紧急3危急)
*/
private String processingWeight;
/**
* 是否支持转单(0支持,1不支持)
*/

View File

@@ -3,6 +3,7 @@ package org.dromara.property.domain.bo.mobile;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -28,7 +29,11 @@ public class MServiceWorkOrdersBo extends BaseEntity {
*/
@NotNull(message = "id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 工单名称
*/
@NotBlank(message = "工单名称不能为空", groups = { EditGroup.class })
private String orderName;
/**
* 工单编号
*/
@@ -100,6 +105,10 @@ public class MServiceWorkOrdersBo extends BaseEntity {
* 工单图片
*/
private String orderImgUrl;
/**
* 问题描述
*/
private String issueDesc;
/**
* 备注
*/

View File

@@ -1,6 +1,6 @@
package org.dromara.property.domain.bo.smartDevicesBo;
import org.dromara.property.domain.TbLightInfo;
import org.dromara.property.domain.entity.smartDevices.TbLightInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
@@ -47,7 +47,7 @@ public class TbLightInfoBo extends BaseEntity {
/**
* 楼层ID
*/
@NotNull(message = "层ID不能为空", groups = {AddGroup.class, EditGroup.class})
@NotNull(message = "层ID不能为空", groups = {AddGroup.class, EditGroup.class})
private Long floorId;
/**

View File

@@ -1,6 +1,6 @@
package org.dromara.property.domain.bo.smartDevicesBo;
import org.dromara.property.domain.TbMeterConfig;
import org.dromara.property.domain.entity.smartDevices.TbMeterConfig;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;

View File

@@ -1,6 +1,6 @@
package org.dromara.property.domain.bo.smartDevicesBo;
import org.dromara.property.domain.TbMeterInfo;
import org.dromara.property.domain.entity.smartDevices.TbMeterInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
@@ -9,6 +9,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
/**
* 水电气业务对象 tb_meter_info
*
@@ -23,7 +25,7 @@ public class TbMeterInfoBo extends BaseEntity {
/**
* 主键id
*/
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
@NotNull(message = "主键id不能为空", groups = {EditGroup.class})
private Long id;
/**
@@ -44,15 +46,42 @@ public class TbMeterInfoBo extends BaseEntity {
/**
* 设备类型(1-电表2-水表3-气表)
*/
@NotNull(message = "设备类型(1-电表2-水表3-气表)不能为空", groups = { AddGroup.class, EditGroup.class })
@NotNull(message = "设备类型(1-电表2-水表3-气表)不能为空", groups = {AddGroup.class, EditGroup.class})
private Long meterType;
/**
* 计量单位(1-度2-吨3-立方米)
*/
@NotNull(message = "计量单位(1-度2-吨3-立方米)不能为空", groups = { AddGroup.class, EditGroup.class })
@NotNull(message = "计量单位(1-度2-吨3-立方米)不能为空", groups = {AddGroup.class, EditGroup.class})
private Long meterUnit;
/**
* 采集器IP
*/
@NotNull(message = "采集器IP不能为空", groups = {AddGroup.class, EditGroup.class})
private String hostIp;
/**
* 楼层ID
*/
@NotNull(message = "楼层ID不能为空", groups = {AddGroup.class, EditGroup.class})
private Long floorId;
/**
* 园区编码
*/
private Long communityId;
/**
* 建筑名称
*/
private Long buildingId;
/**
* 单元编码
*/
private Long unitId;
/**
* 安装位置
*/
@@ -61,12 +90,12 @@ public class TbMeterInfoBo extends BaseEntity {
/**
* 初始读数
*/
private Long initReading;
private BigDecimal initReading;
/**
* 最大量程
*/
private Long maxRang;
private BigDecimal maxRang;
/**
* 通信状态

View File

@@ -1,6 +1,6 @@
package org.dromara.property.domain.bo.smartDevicesBo;
import org.dromara.property.domain.TbMeterRecord;
import org.dromara.property.domain.entity.smartDevices.TbMeterRecord;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
@@ -8,13 +8,15 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
/**
* 抄记录业务对象 tb_meter_record
*
* @author lsm
* @date 2025-07-19
* @since 2025-07-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@@ -33,6 +35,12 @@ public class TbMeterRecordBo extends BaseEntity {
@NotBlank(message = "仪表编号不能为空", groups = { AddGroup.class, EditGroup.class })
private String meterId;
/**
* 设备类型(1-电表2-水表3-气表)
*/
@NotNull(message = "仪表类型不能为空", groups = { AddGroup.class, EditGroup.class })
private Long meterType;
/**
* 抄表员ID
*/
@@ -49,18 +57,13 @@ public class TbMeterRecordBo extends BaseEntity {
* 当前读数
*/
@NotNull(message = "当前读数不能为空", groups = { AddGroup.class, EditGroup.class })
private Long currentReading;
private BigDecimal currentReading;
/**
* 上次读数
*/
@NotNull(message = "上次读数不能为空", groups = { AddGroup.class, EditGroup.class })
private Long previousReading;
/**
* 用量
*/
private Long consumption;
private BigDecimal previousReading;
/**
* 抄表方式(1手动 2自动 3用户上报)
@@ -71,7 +74,7 @@ public class TbMeterRecordBo extends BaseEntity {
/**
* 抄表照片
*/
private Long imgOssid;
private Long imgOssId;
}

View File

@@ -1,6 +1,6 @@
package org.dromara.property.domain.bo.smartDevicesBo;
import org.dromara.property.domain.TbMeterRoom;
import org.dromara.property.domain.entity.smartDevices.TbMeterRoom;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;

View File

@@ -1,4 +1,4 @@
package org.dromara.property.domain;
package org.dromara.property.domain.entity.smartDevices;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;

View File

@@ -1,4 +1,4 @@
package org.dromara.property.domain;
package org.dromara.property.domain.entity.smartDevices;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;

View File

@@ -1,4 +1,4 @@
package org.dromara.property.domain;
package org.dromara.property.domain.entity.smartDevices;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
@@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.math.BigDecimal;
/**
* 水电气对象 tb_meter_info
@@ -60,12 +61,12 @@ public class TbMeterInfo extends TenantEntity {
/**
* 初始读数
*/
private Long initReading;
private BigDecimal initReading;
/**
* 最大量程
*/
private Long maxRang;
private BigDecimal maxRang;
/**
* 通信状态
@@ -82,5 +83,30 @@ public class TbMeterInfo extends TenantEntity {
*/
private String remark;
/**
* 园区编码
*/
private Long communityId;
/**
* 建筑名称
*/
private Long buildingId;
/**
* 单元编码
*/
private Long unitId;
/**
* 所属楼层ID
*/
private Long floorId;
/**
* 采集器IP
*/
private String hostIp;
}

View File

@@ -1,11 +1,12 @@
package org.dromara.property.domain;
package org.dromara.property.domain.entity.smartDevices;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
@@ -13,7 +14,7 @@ import java.io.Serial;
* 抄记录对象 tb_meter_record
*
* @author lsm
* @date 2025-07-19
* @since 2025-07-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@@ -34,6 +35,11 @@ public class TbMeterRecord extends TenantEntity {
*/
private String meterId;
/**
* 设备类型(1-电表2-水表3-气表)
*/
private Long meterType;
/**
* 抄表员ID
*/
@@ -47,17 +53,17 @@ public class TbMeterRecord extends TenantEntity {
/**
* 当前读数
*/
private Long currentReading;
private BigDecimal currentReading;
/**
* 上次读数
*/
private Long previousReading;
private BigDecimal previousReading;
/**
* 用量
*/
private Long consumption;
private BigDecimal consumption;
/**
* 抄表方式(1手动 2自动 3用户上报)
@@ -67,7 +73,7 @@ public class TbMeterRecord extends TenantEntity {
/**
* 抄表照片
*/
private Long imgOssid;
private Long imgOssId;
}

View File

@@ -1,4 +1,4 @@
package org.dromara.property.domain;
package org.dromara.property.domain.entity.smartDevices;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;

View File

@@ -0,0 +1,30 @@
package org.dromara.property.domain.enums;
/**
* 收费类型枚举
*/
public enum ChargeTypeEnum {
/**
* 房屋收费
*/
HOUS_CHARGES("房屋收费", "1"),
/**
* 车辆收费
*/
CARD_CHARGES("车辆收费", "2");
private final String name;
private final String value;
ChargeTypeEnum(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return this.name;
}
public String getValue() {
return this.value;
}
}

View File

@@ -0,0 +1,28 @@
package org.dromara.property.domain.enums;
/**
* 工单上报类型
*/
public enum OrderReportingTypeEnum {
TELEPHONE_REPORT("电话上报", "1"),
SCENE_REPORT("现场上报", "2"),
SYSTEM_REPORT("系统上报", "3"),
PHONE_REPORT("手机上报", "4");
private final String name;
private final String value;
OrderReportingTypeEnum(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return this.name;
}
public String getValue() {
return this.value;
}
}

View File

@@ -0,0 +1,28 @@
package org.dromara.property.domain.enums;
/**
* @Author:yuyongle
* @Date:2025/7/4 10:35
* @Description:工单类型运作模式
**/
public enum OrderTypeOperationEnum {
DISPATCH_ORDERS_AND_GRAB_ORDERS("派单+抢单", "0"),
DISPATCH("派单", "1"),
AUTOMATE_DISPATCH("自动派单", "2");
private final String name;
private final String value;
OrderTypeOperationEnum(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return this.name;
}
public String getValue() {
return this.value;
}
}

View File

@@ -48,6 +48,11 @@ public class CostCarChargeVo implements Serializable {
*/
@ExcelProperty(value = "业主")
private Long personId;
/**
* 业主姓名
*/
@ExcelProperty(value = "业主姓名")
private String personName;
/**
* 楼层

View File

@@ -35,6 +35,10 @@ public class CostHouseChargeDetailVo implements Serializable {
*/
@ExcelProperty(value = "房屋")
private Long roomId;
/**
* 房屋名称
*/
private String roomName;
/**
* 业主
*/

View File

@@ -42,10 +42,19 @@ public class CostHouseChargeVo implements Serializable {
*/
@ExcelProperty(value = "房屋")
private Long roomId;
/**
* 房屋名称
*/
private String roomName;
/**
* 业主
*/
private Long personId;
/**
* 业主
*/
private String personName;
/**
* 收费项目
*/

View File

@@ -45,6 +45,10 @@ public class CostMeterWaterVo implements Serializable {
* 费用类型
*/
private String costType;
/**
* 费用名称
*/
private String costTypeName;
/**
* 房间id
*/

View File

@@ -53,8 +53,12 @@ public class CostPayFeeAuditVo implements Serializable {
/**
* 房间号(如101,202)
*/
@ExcelProperty(value = "房间号(如101,202)")
@ExcelProperty(value = "房间号")
private String roomNumber;
/**
* 车牌号
*/
private String carNumber;
/**
* 费用项目id

View File

@@ -33,16 +33,26 @@ public class CustomerFeedbacksVo implements Serializable {
private Long id;
/**
* 反馈类型(0保修1保洁2会议)
* 反馈类型(工单类型)
*/
@ExcelProperty(value = "反馈类型(0保修1保洁2会议)")
private String feedbackType;
@ExcelProperty(value = "反馈类型(工单类型)")
private Long feedbackType;
/**
* 反馈类型名称(工单类型名称)
*/
@ExcelProperty(value = "反馈类型名称(工单类型名称)")
private String feedbackTypeName;
/**
* 反馈人
*/
@ExcelProperty(value = "反馈人")
private Long feedbackPersion;
/**
* 反馈人名称
*/
@ExcelProperty(value = "反馈人名称")
private String feedbackPersionName;
/**
* 反馈人电话
@@ -67,7 +77,10 @@ public class CustomerFeedbacksVo implements Serializable {
*/
@ExcelProperty(value = "反馈图片")
private String feedbackImg;
/**
* 工单id
*/
private Long orderId;
/**
* 是否转至工单
*/

View File

@@ -41,7 +41,7 @@ public class InspectionPointVo implements Serializable {
* 巡检项目id
*/
@ExcelProperty(value = "巡检项目id")
private Long itemName;
private String itemName;
/**
* 巡检点名称

View File

@@ -59,9 +59,13 @@ public class MeetVo implements Serializable {
@ExcelProperty(value = "位置名称")
private String locationName;
/**
* 开放时段
* 开放开始时段
*/
private String openHours;
private String openStartHours;
/**
* 开放结束时段
*/
private String openEndHours;
/**
* 容纳人数
@@ -119,6 +123,10 @@ public class MeetVo implements Serializable {
* 预约时间
*/
private String appointmentTime;
/**
* 图片
*/
private String picture;
/**
* (1免费2.付费,3面议)

View File

@@ -57,7 +57,10 @@ public class ServiceWorkOrdersInfoVo implements Serializable {
*/
@ExcelProperty(value = "权重")
private String processingWeight;
/**
* 运作模式(0派单+抢单,1派单,2自动派单)
*/
private String operationMode;
/**
* 状态
*/

View File

@@ -68,7 +68,10 @@ public class ServiceWorkOrdersTypeVo implements Serializable {
*/
@ExcelProperty(value = "是否支持转单(0支持,1不支持)")
private Integer isTransfers;
/**
* 权重(1一般2紧急3危急)
*/
private String processingWeight;
/**
* 搜索值

View File

@@ -67,7 +67,7 @@ public class ServiceWorkOrdersVo implements Serializable {
/**
* 状态
*/
@ExcelProperty(value = "状态")
@ExcelProperty(value = "状态(0创建工单,1已派单2已抢单3处理中,4已完成,5已评价)")
private String status;
/**
@@ -75,7 +75,10 @@ public class ServiceWorkOrdersVo implements Serializable {
*/
@ExcelProperty(value = "派单时间")
private Date dispatchTime;
/**
* 运作模式(0派单+抢单,1派单,2自动派单)
*/
private String operationMode;
/**
* 发起人
*/
@@ -143,6 +146,7 @@ public class ServiceWorkOrdersVo implements Serializable {
* 图片
*/
private String imgUrl;
/**
* 备注
*/

View File

@@ -9,6 +9,7 @@ import org.dromara.sis.api.domain.RemoteSisDeviceManage;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
@@ -45,4 +46,6 @@ public class AttendanceAreaDeviceVo implements Serializable {
private RemoteSisDeviceManage remoteSisDeviceManage;
private List<AttendanceAreaDevice> areaDevice;
}

View File

@@ -38,6 +38,11 @@ public class CleanOrderVo implements Serializable {
*/
@ExcelProperty(value = "位置")
private Long location;
/**
* 位置
*/
@ExcelProperty(value = "位置")
private String locationName;
/**
* 面积

View File

@@ -0,0 +1,61 @@
package org.dromara.property.domain.vo.mobile;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.property.domain.ServiceWorkOrdersRecord;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* @author yuyongle
* @version 1.0
* @description: TODO
* @date 2025/8/26 13:53
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ServiceWorkOrdersRecord.class)
public class MServiceWorkOrdersRecordVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 工单id
*/
@ExcelProperty(value = "工单id")
private String orderId;
/**
* 状态(0创建工单,1已派单2已抢单3处理中,4已完成)
*/
@ExcelProperty(value = "状态(0创建工单,1已派单2已抢单3处理中,4已完成)")
private String status;
/**
* 处理人
*/
@ExcelProperty(value = "处理人")
private Long handler;
/**
* 处理人
*/
@ExcelProperty(value = "处理人")
private String handlerName;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间")
private Date createTime;
}

View File

@@ -0,0 +1,166 @@
package org.dromara.property.domain.vo.mobile;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.property.domain.ServiceWorkOrders;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @author yuyongle
* @version 1.0
* @description: TODO
* @date 2025/8/26 13:52
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ServiceWorkOrders.class)
public class MServiceWorkOrdersVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 工单编号
*/
@ExcelProperty(value = "工单编号")
private String orderNo;
/**
* 权重
*/
@ExcelProperty(value = "权重")
private String processingWeight;
/**
* 工单名称
*/
@ExcelProperty(value = "工单名称")
private String orderName;
/**
* 工单类型
*/
@ExcelProperty(value = "工单类型")
private Long type;
/**
* 上报类型
*/
private String reportingType;
/**
* 工单类型名称
*/
@ExcelProperty(value = "工单类型名称")
private String typeName;
/**
* 状态
*/
@ExcelProperty(value = "状态(0创建工单,1已派单2已抢单3处理中,4已完成,5已评价)")
private String status;
/**
* 派单时间
*/
@ExcelProperty(value = "派单时间")
private Date dispatchTime;
/**
* 运作模式(0派单+抢单,1派单,2自动派单)
*/
private String operationMode;
/**
* 发起人
*/
private String initiatorPeople;
/**
* 处理人姓名
*/
private long handler;
/**
* 抄送人
*/
private long ccPeople;
/**
* 发起人手机号
*/
@ExcelProperty(value = "发起人手机号")
private String initiatorPhone;
/**
* 处理人姓名文本
*/
@ExcelProperty(value = "处理人姓名文本")
private String handlerText;
/**
* 处理人姓名文本
*/
@ExcelProperty(value = "处理人电话")
private String handlerPhone;
/**
* 地址
*/
@ExcelProperty(value = "地址")
private String location;
/**
* 计划完成时间
*/
@ExcelProperty(value = "计划完成时间")
private Date planCompleTime;
/**
* 完成时间
*/
@ExcelProperty(value = "完成时间")
private Date compleTime;
/**
* 评价
*/
@ExcelProperty(value = "评价")
private Integer serviceEvalua;
/**
* 是否超时
*/
@ExcelProperty(value = "是否超时")
private String isTimeOut;
/**
* 评价文本
*/
private String serviceEvaluaText;
/**
* 工单图片
*/
private String orderImgUrl;
/**
* 图片
*/
private String imgUrl;
/**
* 备注
*/
private String remark;
/**
* 创建时间
*/
private Date createTime;
/**
* 工单记录
*/
List<MServiceWorkOrdersRecordVo> recordVoList;
}

View File

@@ -1,6 +1,6 @@
package org.dromara.property.domain.vo.smartDevicesVo;
import org.dromara.property.domain.TbLightInfo;
import org.dromara.property.domain.entity.smartDevices.TbLightInfo;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
@@ -10,8 +10,6 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**

View File

@@ -1,6 +1,6 @@
package org.dromara.property.domain.vo.smartDevicesVo;
import org.dromara.property.domain.TbMeterConfig;
import org.dromara.property.domain.entity.smartDevices.TbMeterConfig;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;

View File

@@ -2,7 +2,7 @@ package org.dromara.property.domain.vo.smartDevicesVo;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.property.domain.TbMeterInfo;
import org.dromara.property.domain.entity.smartDevices.TbMeterInfo;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
@@ -10,7 +10,7 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
@@ -54,7 +54,7 @@ public class TbMeterInfoVo implements Serializable {
/**
* 设备类型(1-电表2-水表3-气表)
*/
@ExcelProperty(value = "设备类型(1-电表2-水表3-气表)" ,converter = ExcelDictConvert.class)
@ExcelProperty(value = "设备类型(1-电表2-水表3-气表)", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "meter_type")
private Long meterType;
@@ -75,13 +75,13 @@ public class TbMeterInfoVo implements Serializable {
* 初始读数
*/
@ExcelProperty(value = "初始读数")
private Long initReading;
private BigDecimal initReading;
/**
* 最大量程
*/
@ExcelProperty(value = "最大量程")
private Long maxRang;
private BigDecimal maxRang;
/**
* 通信状态
@@ -97,6 +97,42 @@ public class TbMeterInfoVo implements Serializable {
@ExcelDictFormat(dictType = "sis_device_status")
private Long runningState;
/**
* 园区编码
*/
@ExcelProperty(value = "园区编码")
private Long communityId;
/**
* 建筑名称
*/
@ExcelProperty(value = "建筑名称")
private Long buildingId;
/**
* 单元编码
*/
@ExcelProperty(value = "单元编码")
private Long unitId;
/**
* 楼层ID
*/
@ExcelProperty(value = "楼层ID")
private Long floorId;
/**
* 楼层
*/
@ExcelProperty(value = "楼层")
private String floorName;
/**
* 采集器IP
*/
@ExcelProperty(value = "采集器IP")
private String hostIp;
/**
* 备注
*/

View File

@@ -1,8 +1,9 @@
package org.dromara.property.domain.vo.smartDevicesVo;
import java.math.BigDecimal;
import java.util.Date;
import org.dromara.property.domain.TbMeterRecord;
import org.dromara.property.domain.entity.smartDevices.TbMeterRecord;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
@@ -16,7 +17,7 @@ import java.io.Serializable;
* 抄记录视图对象 tb_meter_record
*
* @author lsm
* @date 2025-07-19
* @since 2025-07-19
*/
@Data
@ExcelIgnoreUnannotated
@@ -38,6 +39,12 @@ public class TbMeterRecordVo implements Serializable {
@ExcelProperty(value = "仪表编号")
private String meterId;
/**
* 设备类型(1-电表2-水表3-气表)
*/
@ExcelProperty(value = "仪表类型")
private Long meterType;
/**
* 抄表员ID
*/
@@ -54,19 +61,19 @@ public class TbMeterRecordVo implements Serializable {
* 当前读数
*/
@ExcelProperty(value = "当前读数")
private Long currentReading;
private BigDecimal currentReading;
/**
* 上次读数
*/
@ExcelProperty(value = "上次读数")
private Long previousReading;
private BigDecimal previousReading;
/**
* 用量
*/
@ExcelProperty(value = "用量")
private Long consumption;
private BigDecimal consumption;
/**
* 抄表方式(1手动 2自动 3用户上报)
@@ -78,7 +85,7 @@ public class TbMeterRecordVo implements Serializable {
* 抄表照片
*/
@ExcelProperty(value = "抄表照片")
private Long imgOssid;
private Long imgOssId;
}

View File

@@ -1,6 +1,6 @@
package org.dromara.property.domain.vo.smartDevicesVo;
import org.dromara.property.domain.TbMeterRoom;
import org.dromara.property.domain.entity.smartDevices.TbMeterRoom;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;

View File

@@ -17,6 +17,7 @@ import java.util.List;
public interface PlantsPlanProductMapper extends BaseMapperPlus<PlantsPlanProduct, PlantsPlanProductVo> {
void deleteByPlanId(Long planId);
void deleteByPlanIds(List<Long> planIds);
List<PlantsPlanProductVo> queryProductsInfo(Long planId);
}

View File

@@ -1,6 +1,7 @@
package org.dromara.property.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.property.domain.TbRoom;
import org.dromara.property.domain.vo.TbRoomVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
@@ -19,5 +20,5 @@ public interface TbRoomMapper extends BaseMapperPlus<TbRoom, TbRoomVo> {
//查询房间名称
String queryRoomName(Long roomId);
Map<Long,String> queryRoomNameList(List<Long> ids);
List<String> queryRoomNameList(@Param("ids") List<Long> ids);
}

View File

@@ -1,7 +1,7 @@
package org.dromara.property.mapper.smartDevicesMapper;
import org.apache.ibatis.annotations.Mapper;
import org.dromara.property.domain.TbLightInfo;
import org.dromara.property.domain.entity.smartDevices.TbLightInfo;
import org.dromara.property.domain.vo.smartDevicesVo.TbLightInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;

View File

@@ -1,7 +1,7 @@
package org.dromara.property.mapper.smartDevicesMapper;
import org.apache.ibatis.annotations.Mapper;
import org.dromara.property.domain.TbMeterConfig;
import org.dromara.property.domain.entity.smartDevices.TbMeterConfig;
import org.dromara.property.domain.vo.smartDevicesVo.TbMeterConfigVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;

View File

@@ -1,6 +1,7 @@
package org.dromara.property.mapper.smartDevicesMapper;
import org.dromara.property.domain.TbMeterInfo;
import org.apache.ibatis.annotations.Mapper;
import org.dromara.property.domain.entity.smartDevices.TbMeterInfo;
import org.dromara.property.domain.vo.smartDevicesVo.TbMeterInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
@@ -8,8 +9,9 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
* 水电气Mapper接口
*
* @author lsm
* @date 2025-07-19
* @since 2025-07-19
*/
@Mapper
public interface TbMeterInfoMapper extends BaseMapperPlus<TbMeterInfo, TbMeterInfoVo> {
}

View File

@@ -1,6 +1,7 @@
package org.dromara.property.mapper.smartDevicesMapper;
import org.dromara.property.domain.TbMeterRecord;
import org.apache.ibatis.annotations.Mapper;
import org.dromara.property.domain.entity.smartDevices.TbMeterRecord;
import org.dromara.property.domain.vo.smartDevicesVo.TbMeterRecordVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
@@ -8,8 +9,9 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
* 抄记录Mapper接口
*
* @author lsm
* @date 2025-07-19
* @since 2025-07-19
*/
@Mapper
public interface TbMeterRecordMapper extends BaseMapperPlus<TbMeterRecord, TbMeterRecordVo> {
}

View File

@@ -1,7 +1,7 @@
package org.dromara.property.mapper.smartDevicesMapper;
import org.apache.ibatis.annotations.Mapper;
import org.dromara.property.domain.TbMeterRoom;
import org.dromara.property.domain.entity.smartDevices.TbMeterRoom;
import org.dromara.property.domain.vo.smartDevicesVo.TbMeterRoomVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;

View File

@@ -0,0 +1,18 @@
package org.dromara.property.rocketmq;
/**
* @author lsm
* @apiNote RocketMqConstants
* @since 2025/8/25
*/
public interface RocketMqConstants {
// mq topic
String TOPIC = "SmartParks";
// mq GROUP
String METER_GROUP = "METER_GROUP";
/*-----------------------------------消息tag------------------------------------*/
String METER_RECORD = "METER_RECORD_TAG";
}

View File

@@ -0,0 +1,40 @@
package org.dromara.property.rocketmq.consumer;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.dromara.property.rocketmq.RocketMqConstants;
import org.springframework.stereotype.Component;
import java.util.Arrays;
/**
* @author lsm
* @apiNote MeterRecordConsumer
* @since 2025/8/25
*/
@Slf4j
@Component
@RequiredArgsConstructor
@RocketMQMessageListener(
topic = RocketMqConstants.TOPIC,
consumerGroup = RocketMqConstants.METER_GROUP,
selectorExpression = RocketMqConstants.METER_RECORD
)
public class MeterRecordConsumer implements RocketMQListener<MessageExt> {
@Override
public void onMessage(MessageExt ext) {
log.info("消费仪表上报数据,数据长度={}", ext.getBody().length);
try {
String message = new String(ext.getBody());
log.info("物业仪表上报数据,数据={}", message);
} catch (Exception e) {
log.error("消费仪表上报数据处理失败,", e);
}
}
}

View File

@@ -15,4 +15,12 @@ public interface EnumFetcherService {
* @return
*/
List<Map<Object, Object>> getEnumValues(String type);
/**
* 获取排班信息人员下拉
* @param type
* @return
*/
List<Map<Object, Object>> getShiftScheduler(String type);
}

View File

@@ -67,6 +67,12 @@ public interface IPlantsPlanProductService {
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 根据方案id删除方案产品
* @param ids
*/
void deleteByPlanIds(List<Long> ids);
/**
* 批量保存租赁方案植物
*

View File

@@ -8,6 +8,7 @@ import org.dromara.property.domain.bo.mobile.MServiceWorkOrdersBo;
import org.dromara.property.domain.vo.ServiceWorkOrderAnalysisVo;
import org.dromara.property.domain.vo.ServiceWorkOrdersInfoVo;
import org.dromara.property.domain.vo.ServiceWorkOrdersVo;
import org.dromara.property.domain.vo.mobile.MServiceWorkOrdersVo;
import java.util.Collection;
import java.util.List;
@@ -94,4 +95,12 @@ public interface IServiceWorkOrdersService {
* @return
*/
List<Map<Object, Object>> getServiceWorkOrdersHandler(String type);
/**
* 分页查询【工单处理】列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 【工单处理】分页列表
*/
TableDataInfo<MServiceWorkOrdersVo> queryMobilePageList(ServiceWorkOrdersBo bo, PageQuery pageQuery);
}

View File

@@ -9,6 +9,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 房间信息Service接口
@@ -76,5 +77,11 @@ public interface ITbRoomService {
* @return 房间名称
*/
String queryRoomName(Long roomId);
/**
* 获取详细房间名称
* @param ids 房间id集合
* @return 房间名称
*/
List<String> queryRoomNameList(List<Long> ids);
}

View File

@@ -56,6 +56,14 @@ public interface ITbVisitorManagementService {
*/
Boolean insertByBo(TbVisitorManagementBo bo);
/**
* 新增访客管理
*
* @param bo 访客管理
* @return 是否新增成功
*/
Boolean insertH5ByBo(TbVisitorManagementBo bo);
Boolean insertVistorManagementByBo(TbVisitorManagementBo bo);

View File

@@ -73,7 +73,7 @@ public class AssetTypeServiceImpl implements IAssetTypeService {
private LambdaQueryWrapper<AssetType> buildQueryWrapper(AssetTypeBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<AssetType> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(AssetType::getId);
lqw.orderByAsc(AssetType::getSort);
lqw.like(StringUtils.isNotBlank(bo.getAssetTypeName()), AssetType::getAssetTypeName, bo.getAssetTypeName());
lqw.eq(bo.getSort() != null, AssetType::getSort, bo.getSort());
return lqw;

View File

@@ -1,40 +1,41 @@
package org.dromara.property.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.property.domain.CostHouseCharge;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.property.domain.CostCarCharge;
import org.dromara.property.domain.CostPayFeeAudit;
import org.dromara.property.domain.CostReturnPayFee;
import org.dromara.property.domain.ResidentPerson;
import org.dromara.property.domain.bo.CostCarChargeBo;
import org.dromara.property.domain.bo.CostChargeReturnFeeBo;
import org.dromara.property.domain.enums.ChargeStatusEnum;
import org.dromara.property.domain.vo.CostHouseChargeVo;
import org.dromara.property.domain.vo.CostItemsVo;
import org.dromara.property.mapper.CostItemsMapper;
import org.dromara.property.mapper.CostPayFeeAuditMapper;
import org.dromara.property.mapper.CostReturnPayFeeMapper;
import org.springframework.stereotype.Service;
import org.dromara.property.domain.bo.CostCarChargeBo;
import org.dromara.property.domain.vo.CostCarChargeVo;
import org.dromara.property.domain.CostCarCharge;
import org.dromara.property.mapper.CostCarChargeMapper;
import org.dromara.property.domain.vo.CostItemsVo;
import org.dromara.property.mapper.*;
import org.dromara.property.service.ICostCarChargeService;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 费用-车辆收费Service业务层处理
@@ -51,6 +52,9 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
private final CostItemsMapper costItemsMapper;
private final CostPayFeeAuditMapper costPayFeeAuditMapper;
private final CostReturnPayFeeMapper costReturnPayFeeMapper;
@DubboReference
private RemoteUserService remoteUserService;
private final ResidentPersonMapper residentPersonMapper;
/**
@@ -60,7 +64,7 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
* @return 费用-车辆收费
*/
@Override
public CostCarChargeVo queryById(Long id){
public CostCarChargeVo queryById(Long id) {
return baseMapper.selectVoById(id);
}
@@ -75,6 +79,18 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
public TableDataInfo<CostCarChargeVo> queryPageList(CostCarChargeBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<CostCarCharge> lqw = buildQueryWrapper(bo);
Page<CostCarChargeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
// List<Long> residentPersonIdList = result.getRecords().stream().map(vo -> vo.getPersonId()).distinct().collect(Collectors.toList());
// List<RemoteUserVo> remoteUserVos = remoteUserService.selectListByIds(residentPersonIdList);
List<ResidentPerson> residentPeoplelist = residentPersonMapper.selectList();
// List<String> roomNames = roomService.queryRoomNameList(idList);
result.getRecords().stream().forEach(s -> {
if (CollUtil.isNotEmpty(residentPeoplelist)) {
ResidentPerson residentPerson = residentPeoplelist.stream()
.filter(vo -> vo.getId() != null && vo.getId().equals(s.getPersonId())).findFirst().orElse(null);
s.setPersonName(ObjectUtil.isNotEmpty(residentPerson)?residentPerson.getUserName():null);
}
});
return TableDataInfo.build(result);
}
@@ -142,6 +158,7 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
/**
* 车辆退费
*
* @param bo
* @return
*/
@@ -149,7 +166,7 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
@Transactional(rollbackFor = Exception.class)
public Boolean returnFree(CostChargeReturnFeeBo bo) {
CostCarCharge costCarCharge = baseMapper.selectById(bo.getId());
Assert.isTrue(ObjectUtil.isNotEmpty(costCarCharge),"该费用不存在");
Assert.isTrue(ObjectUtil.isNotEmpty(costCarCharge), "该费用不存在");
var CostReturnPayFee = new CostReturnPayFee()
.setChargeId(costCarCharge.getId())
.setChargeType("2")
@@ -159,8 +176,7 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
.setUserId(costCarCharge.getPersonId())
.setPayNo(costCarCharge.getId().toString())
.setPayAcount(costCarCharge.getAmountReceivable())
.setState("0")
;
.setState("0");
costReturnPayFeeMapper.insert(CostReturnPayFee);
costCarCharge.setChargeStatus(ChargeStatusEnum.REFUND_PENDING_REVIEW.getValue());
return baseMapper.updateById(costCarCharge) > 0;
@@ -183,7 +199,7 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(CostCarCharge entity){
private void validEntityBeforeSave(CostCarCharge entity) {
//TODO 做一些数据校验,如唯一约束
}
@@ -197,7 +213,7 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;

View File

@@ -1,9 +1,11 @@
package org.dromara.property.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -15,10 +17,13 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.property.domain.CostPayFeeAudit;
import org.dromara.property.domain.CostReturnPayFee;
import org.dromara.property.domain.ResidentPerson;
import org.dromara.property.domain.bo.CostChargeReturnFeeBo;
import org.dromara.property.domain.enums.ChargeStatusEnum;
import org.dromara.property.domain.vo.*;
import org.dromara.property.mapper.*;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.springframework.stereotype.Service;
import org.dromara.property.domain.bo.CostHouseChargeBo;
import org.dromara.property.domain.CostHouseCharge;
@@ -48,6 +53,9 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
private final CostPayFeeAuditMapper costPayFeeAuditMapper;
private final CostReturnPayFeeMapper costReturnPayFeeMapper;
private final ResidentPersonMapper residentPersonMapper;
@DubboReference
private RemoteUserService remoteUserService;
/**
* 查询房屋收费
*
@@ -59,11 +67,14 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
CostHouseChargeVo costHouseChargeVo = baseMapper.selectVoById(id);
CostHouseChargeDetailVo costHouseChargeDetailVo = BeanUtil.copyProperties(costHouseChargeVo, CostHouseChargeDetailVo.class);
CostItemsVo costItemsVo = costItemsMapper.selectVoById(costHouseChargeDetailVo.getCostItemsId());
costHouseChargeDetailVo.setCostItemsVo(costItemsVo);
costHouseChargeDetailVo.setCostItemsVo(ObjectUtil.isNotEmpty(costItemsVo) ? costItemsVo : null);
TbRoomVo tbRoomVo = tbRoomMapper.selectVoById(costHouseChargeDetailVo.getRoomId());
costHouseChargeDetailVo.setRoomVo(tbRoomVo);
costHouseChargeDetailVo.setRoomVo(ObjectUtil.isNotEmpty(tbRoomVo) ? tbRoomVo : null);
ResidentPersonVo residentPersonVo = residentPersonMapper.selectVoById(costHouseChargeVo.getPersonId());
costHouseChargeDetailVo.setPersonName(residentPersonVo.getUserName());
//RemoteUserVo userInfo = remoteUserService.getUserInfoById(costHouseChargeVo.getPersonId());
String roomName = tbRoomMapper.queryRoomName(costHouseChargeDetailVo.getRoomId());
costHouseChargeDetailVo.setRoomName(StringUtils.isNotBlank(roomName) ? roomName : null);
costHouseChargeDetailVo.setPersonName(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getUserName() : null);
return costHouseChargeDetailVo;
}
@@ -77,7 +88,17 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
@Override
public TableDataInfo<CostHouseChargeVo> queryPageList(CostHouseChargeBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<CostHouseCharge> lqw = buildQueryWrapper(bo);
List<ResidentPerson> residentPeoplelist = residentPersonMapper.selectList();
Page<CostHouseChargeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
result.getRecords().stream().forEach(s -> {
if (CollUtil.isNotEmpty(residentPeoplelist)) {
ResidentPerson residentPerson = residentPeoplelist.stream()
.filter(vo -> vo.getId() != null && vo.getId().equals(s.getPersonId())).findFirst().orElse(null);
s.setPersonName(ObjectUtil.isNotEmpty(residentPerson) ? residentPerson.getUserName() : null);
String roomName = tbRoomMapper.queryRoomName(s.getRoomId());
s.setRoomName(StringUtils.isNotBlank(roomName) ? roomName : null);
}
});
return TableDataInfo.build(result);
}
@@ -165,7 +186,7 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
@Transactional(rollbackFor = Exception.class)
public Boolean returnFree(CostChargeReturnFeeBo bo) {
CostHouseChargeVo costHouseChargeVo = baseMapper.selectVoById(bo.getId());
Assert.isTrue(ObjectUtil.isNotEmpty(costHouseChargeVo),"该费用不存在");
Assert.isTrue(ObjectUtil.isNotEmpty(costHouseChargeVo), "该费用不存在");
var CostReturnPayFee = new CostReturnPayFee().setItemId(costHouseChargeVo.getCostItemsId())
.setReturnNo(RandomUtil.randomNumbers(11))
.setReason(bo.getReason())
@@ -173,8 +194,7 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
.setUserId(costHouseChargeVo.getPersonId())
.setPayNo(costHouseChargeVo.getId().toString())
.setPayAcount(costHouseChargeVo.getAmountReceivable())
.setState("0")
;
.setState("0");
boolean flag = costReturnPayFeeMapper.insert(CostReturnPayFee) > 0;
CostHouseCharge costHouseCharge = BeanUtil.copyProperties(costHouseChargeVo, CostHouseCharge.class);
costHouseCharge.setChargeStatus(ChargeStatusEnum.REFUND_PENDING_REVIEW.getValue());

View File

@@ -1,6 +1,8 @@
package org.dromara.property.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -10,6 +12,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.property.domain.vo.CostMeterTypeVo;
import org.dromara.property.mapper.CostMeterTypeMapper;
import org.springframework.stereotype.Service;
import org.dromara.property.domain.bo.CostMeterWaterBo;
import org.dromara.property.domain.vo.CostMeterWaterVo;
@@ -35,6 +39,7 @@ import java.util.Collection;
public class CostMeterWaterServiceImpl implements ICostMeterWaterService {
private final CostMeterWaterMapper baseMapper;
private final CostMeterTypeMapper costMeterTypeMapper;
/**
* 查询费用-水电抄
@@ -58,6 +63,16 @@ public class CostMeterWaterServiceImpl implements ICostMeterWaterService {
public TableDataInfo<CostMeterWaterVo> queryPageList(CostMeterWaterBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<CostMeterWater> lqw = buildQueryWrapper(bo);
Page<CostMeterWaterVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
if (CollUtil.isNotEmpty(result.getRecords())){
//收集抄表类型id
List<Long> meterTypeIds = result.getRecords().stream().map(CostMeterWaterVo::getMeterTypeId).toList();
List<CostMeterTypeVo> costMeterTypeVos = costMeterTypeMapper.selectVoByIds(meterTypeIds);
result.getRecords().stream().forEach(s -> {
//查找抄表类型名称
CostMeterTypeVo costMeterTypeVo = costMeterTypeVos.stream().filter(vo -> vo.getId() != null && vo.getId().equals(s.getMeterTypeId())).findFirst().orElse(null);
s.setCostTypeName(ObjectUtil.isNotEmpty(costMeterTypeVo)?costMeterTypeVo.getName():null);
});
}
return TableDataInfo.build(result);
}
@@ -79,6 +94,7 @@ public class CostMeterWaterServiceImpl implements ICostMeterWaterService {
lqw.orderByAsc(CostMeterWater::getId);
lqw.eq(bo.getItemId() != null, CostMeterWater::getItemId, bo.getItemId());
lqw.eq(bo.getMeterTypeId() != null, CostMeterWater::getMeterTypeId, bo.getMeterTypeId());
lqw.eq(StringUtils.isNotBlank(bo.getCostType()), CostMeterWater::getCostType, bo.getCostType());
lqw.like(StringUtils.isNotBlank(bo.getObjName()), CostMeterWater::getObjName, bo.getObjName());
lqw.eq(StringUtils.isNotBlank(bo.getCurDegrees()), CostMeterWater::getCurDegrees, bo.getCurDegrees());
lqw.eq(StringUtils.isNotBlank(bo.getPreDegrees()), CostMeterWater::getPreDegrees, bo.getPreDegrees());

View File

@@ -1,6 +1,7 @@
package org.dromara.property.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import org.checkerframework.checker.units.qual.C;
import org.dromara.common.core.utils.MapstructUtils;
@@ -17,6 +18,7 @@ import org.dromara.property.domain.CostHouseCharge;
import org.dromara.property.domain.CostPayFeeAudit;
import org.dromara.property.domain.bo.CostPayFeeAuditBo;
import org.dromara.property.domain.enums.ChargeStatusEnum;
import org.dromara.property.domain.enums.ChargeTypeEnum;
import org.dromara.property.domain.vo.*;
import org.dromara.property.mapper.*;
import org.dromara.property.service.ICostPayFeeAuditService;
@@ -58,7 +60,18 @@ public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
CostItemsVo costItemsVo = costItemsMapper.selectVoById(costPayFeeAuditVo.getItemId());
costPayFeeAuditVo.setChargeItem(ObjectUtil.isNotEmpty(costItemsVo) ? costItemsVo.getChargeItem() : null);
costPayFeeAuditVo.setChargeCycle(ObjectUtil.isNotEmpty(costItemsVo) ? costItemsVo.getChargeCycle() : null);
//TbRoomVo roomVo = roomMapper.selectVoById(costPayFeeAuditVo.getChargeId());
if (costPayFeeAuditVo.getChargeType().equals(ChargeTypeEnum.HOUS_CHARGES.getValue())) {
CostHouseCharge costHouseCharge = coinHouseChargeMapper.selectById(costPayFeeAuditVo.getChargeId());
if (ObjectUtil.isNotEmpty(costHouseCharge)) {
String queryRoomName = roomMapper.queryRoomName(costHouseCharge.getRoomId());
costPayFeeAuditVo.setRoomNumber(ObjectUtil.isNotEmpty(queryRoomName) ? queryRoomName : null);
}
}
if (costPayFeeAuditVo.getChargeType().equals(ChargeTypeEnum.CARD_CHARGES.getValue())) {
CostCarCharge costCarCharge = costCarChargeMapper.selectById(costPayFeeAuditVo.getChargeId());
costPayFeeAuditVo.setCarNumber(ObjectUtil.isNotEmpty(costCarCharge) ? costCarCharge.getCarNumber() : null);
}
// TbRoomVo roomVo = roomMapper.selectVoById(costPayFeeAuditVo.getChargeId());
//costPayFeeAuditVo.setRoomNumber(ObjectUtil.isNotEmpty(roomVo)? roomVo.getRoomNumber() :null );
return costPayFeeAuditVo;
}
@@ -91,7 +104,7 @@ public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
}
if (CollUtil.isNotEmpty(roomVoList)) {
TbRoomVo tbRoomVo = roomVoList.stream()
.filter(vo -> vo.getId() != null && vo.getId().equals(s.getChargeId())).findFirst().orElse(null);
.filter(vo -> vo.getId() != null && vo.getId().equals(s.getRoomNumber())).findFirst().orElse(null);
s.setRoomNumber(ObjectUtil.isNotEmpty(tbRoomVo) ? tbRoomVo.getRoomNumber() : null);
}
costPayFeeAuditVoList.add(s);
@@ -174,25 +187,30 @@ public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
private void validEntityBeforeUpdate(CostPayFeeAudit entity) {
//TODO 做一些数据校验,如唯一约束
if (entity.getState().equals("1")) {
if (entity.getChargeType().equals("1")) {
if (entity.getChargeType().equals(ChargeTypeEnum.HOUS_CHARGES.getValue())) {
CostHouseCharge costHouseCharge = coinHouseChargeMapper.selectById(entity.getChargeId());
Assert.isTrue(ObjectUtil.isNotEmpty(costHouseCharge), "该房屋收费项不存在!");
costHouseCharge.setChargeStatus(ChargeStatusEnum.THE_PAYMENT_WAS_APPROVED.getValue());
coinHouseChargeMapper.updateById(costHouseCharge);
}
if (entity.getChargeType().equals("2")) {
if (entity.getChargeType().equals(ChargeTypeEnum.CARD_CHARGES.getValue())) {
CostCarCharge costCarCharge = costCarChargeMapper.selectById(entity.getChargeId());
Assert.isTrue(ObjectUtil.isNotEmpty(costCarCharge), "该车辆收费项为空");
costCarCharge.setChargeStatus(ChargeStatusEnum.THE_PAYMENT_WAS_APPROVED.getValue());
costCarChargeMapper.updateById(costCarCharge);
}
}
if (entity.getState().equals("2")) {
if (entity.getChargeType().equals("1")) {
if (entity.getChargeType().equals(ChargeTypeEnum.HOUS_CHARGES.getValue())) {
CostHouseCharge costHouseCharge = coinHouseChargeMapper.selectById(entity.getChargeId());
Assert.isTrue(ObjectUtil.isNotEmpty(costHouseCharge), "该房屋收费项为空");
costHouseCharge.setChargeStatus(ChargeStatusEnum.THE_PAYMENT_REVIEW_FAILED.getValue());
coinHouseChargeMapper.updateById(costHouseCharge);
}
if (entity.getChargeType().equals("2")) {
if (entity.getChargeType().equals(ChargeTypeEnum.CARD_CHARGES.getValue())) {
CostCarCharge costCarCharge = costCarChargeMapper.selectById(entity.getChargeId());
Assert.isTrue(ObjectUtil.isNotEmpty(costCarCharge), "该车辆收费项为空");
costCarCharge.setChargeStatus(ChargeStatusEnum.THE_PAYMENT_REVIEW_FAILED.getValue());
costCarChargeMapper.updateById(costCarCharge);
}

View File

@@ -138,6 +138,7 @@ public class CustomerContingenPlanServiceImpl implements ICustomerContingenPlanS
bo.setId(add.getId());
CustomerContingenPlanRecord customerContingenPlanRecord = new CustomerContingenPlanRecord();
customerContingenPlanRecord.setStatus(add.getStatus());
customerContingenPlanRecord.setStatus("0");
customerContingenPlanRecord.setContingenPlanId(add.getId());
customerContingenPlanRecord.setDutyPersion(add.getDutyPersion());
customerContingenPlanRecordMapper.insert(customerContingenPlanRecord);

View File

@@ -1,5 +1,9 @@
package org.dromara.property.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -9,17 +13,31 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.property.domain.CustomerFeedbacks;
import org.dromara.property.domain.ServiceWorkOrders;
import org.dromara.property.domain.ServiceWorkOrdersRecord;
import org.dromara.property.domain.ServiceWorkOrdersType;
import org.dromara.property.domain.bo.CustomerFeedbacksBo;
import org.dromara.property.domain.bo.ServiceWorkOrdersBo;
import org.dromara.property.domain.vo.CustomerFeedbacksVo;
import org.dromara.property.domain.vo.CustomerNoticesVo;
import org.dromara.property.mapper.CustomerFeedbacksMapper;
import org.dromara.property.mapper.ServiceWorkOrdersMapper;
import org.dromara.property.mapper.ServiceWorkOrdersRecordMapper;
import org.dromara.property.mapper.ServiceWorkOrdersTypeMapper;
import org.dromara.property.service.ICustomerFeedbacksService;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.dromara.system.api.model.LoginUser;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.stream.Collectors;
/**
* 客户服务-意见反馈Service业务层处理
@@ -33,6 +51,11 @@ import java.util.Collection;
public class CustomerFeedbacksServiceImpl implements ICustomerFeedbacksService {
private final CustomerFeedbacksMapper baseMapper;
private final ServiceWorkOrdersMapper serviceWorkOrdersMapper;
private final ServiceWorkOrdersTypeMapper serviceWorkOrdersTypeMapper;
private final ServiceWorkOrdersRecordMapper serviceWorkOrdersRecordMapper;
@DubboReference
private RemoteUserService remoteUserService;
/**
* 查询客户服务-意见反馈
@@ -41,8 +64,13 @@ public class CustomerFeedbacksServiceImpl implements ICustomerFeedbacksService {
* @return 客户服务-意见反馈
*/
@Override
public CustomerFeedbacksVo queryById(Long id){
return baseMapper.selectVoById(id);
public CustomerFeedbacksVo queryById(Long id) {
CustomerFeedbacksVo customerFeedbacksVo = baseMapper.selectVoById(id);
ServiceWorkOrdersType serviceWorkOrdersType = serviceWorkOrdersTypeMapper.selectById(customerFeedbacksVo.getFeedbackType());
customerFeedbacksVo.setFeedbackTypeName(ObjectUtil.isNotEmpty(serviceWorkOrdersType) ? serviceWorkOrdersType.getOrderTypeName() : null);
String nikName = remoteUserService.selectNicknameById(ObjectUtil.isNotEmpty(customerFeedbacksVo) ?customerFeedbacksVo.getFeedbackPersion():null);
customerFeedbacksVo.setFeedbackPersionName(nikName);
return customerFeedbacksVo;
}
/**
@@ -56,9 +84,45 @@ public class CustomerFeedbacksServiceImpl implements ICustomerFeedbacksService {
public TableDataInfo<CustomerFeedbacksVo> queryPageList(CustomerFeedbacksBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<CustomerFeedbacks> lqw = buildQueryWrapper(bo);
Page<CustomerFeedbacksVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
if (CollUtil.isNotEmpty(result.getRecords())) {
//收集类型为集合
List<Long> feedbackTypeIds = result.getRecords().stream().map(CustomerFeedbacksVo::getFeedbackType).toList();
//查询工单类型
List<ServiceWorkOrdersType> serviceWorkOrdersTypes = serviceWorkOrdersTypeMapper.selectList(
Wrappers.<ServiceWorkOrdersType>lambdaQuery()
.in(ServiceWorkOrdersType::getId, feedbackTypeIds)
);
// 提取发布人ID
List<Long> uerIds = result.getRecords().stream()
.filter(vo -> ObjectUtil.isNotEmpty(vo.getFeedbackPersion()))
.map(CustomerFeedbacksVo::getFeedbackPersion)
.distinct()
.collect(Collectors.toList());
List<RemoteUserVo> remoteUserVos = remoteUserService.selectListByIds(uerIds);
result.getRecords().stream().forEach(s -> {
assembly(s, serviceWorkOrdersTypes, remoteUserVos);
});
}
return TableDataInfo.build(result);
}
/**
*
* @param customerFeedbacksVo 意见反馈返回信息
*
*/
private void assembly(CustomerFeedbacksVo customerFeedbacksVo, List<ServiceWorkOrdersType> serviceWorkOrdersTypes, List<RemoteUserVo> remoteUserVos) {
if (CollUtil.isNotEmpty(remoteUserVos)) {
RemoteUserVo remoteUserVo = remoteUserVos.stream()
.filter(vo -> vo.getUserId() != null && vo.getUserId().equals(customerFeedbacksVo.getFeedbackPersion())).findFirst().orElse(null);
customerFeedbacksVo.setFeedbackPersionName(ObjectUtil.isNotEmpty(remoteUserVo) ? remoteUserVo.getNickName() : null);
}
if (CollUtil.isNotEmpty(serviceWorkOrdersTypes)) {
ServiceWorkOrdersType serviceWorkOrdersType = serviceWorkOrdersTypes.stream().filter(vo -> vo.getId() != null && vo.getId().equals(customerFeedbacksVo.getFeedbackType())).findFirst().orElse(null);
customerFeedbacksVo.setFeedbackTypeName(ObjectUtil.isNotEmpty(serviceWorkOrdersType) ? serviceWorkOrdersType.getOrderTypeName() : null);
}
}
/**
* 查询符合条件的客户服务-意见反馈列表
*
@@ -75,7 +139,7 @@ public class CustomerFeedbacksServiceImpl implements ICustomerFeedbacksService {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<CustomerFeedbacks> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(CustomerFeedbacks::getId);
lqw.eq(StringUtils.isNotBlank(bo.getFeedbackType()), CustomerFeedbacks::getFeedbackType, bo.getFeedbackType());
lqw.eq(ObjectUtil.isNotNull(bo.getFeedbackType()), CustomerFeedbacks::getFeedbackType, bo.getFeedbackType());
lqw.eq(bo.getFeedbackPersion() != null, CustomerFeedbacks::getFeedbackPersion, bo.getFeedbackPersion());
lqw.eq(StringUtils.isNotBlank(bo.getFeedbackPersionPhone()), CustomerFeedbacks::getFeedbackPersionPhone, bo.getFeedbackPersionPhone());
lqw.eq(StringUtils.isNotBlank(bo.getFeedbackContent()), CustomerFeedbacks::getFeedbackContent, bo.getFeedbackContent());
@@ -116,17 +180,45 @@ public class CustomerFeedbacksServiceImpl implements ICustomerFeedbacksService {
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(CustomerFeedbacksBo bo) {
CustomerFeedbacks update = MapstructUtils.convert(bo, CustomerFeedbacks.class);
validEntityBeforeSave(update);
validEntityBeforeUpdate(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(CustomerFeedbacks entity){
private void validEntityBeforeSave(CustomerFeedbacks entity) {
//TODO 做一些数据校验,如唯一约束
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeUpdate(CustomerFeedbacks entity) {
//TODO 做一些数据校验,如唯一约束
if (entity.getIsWorkOrder().equals("0") && ObjectUtil.isEmpty(entity.getOrderId())) {
ServiceWorkOrders serviceWorkOrders = new ServiceWorkOrders();
serviceWorkOrders.setOrderName("意见反馈转工单");
LoginUser user = LoginHelper.getLoginUser();
serviceWorkOrders.setOrderNo("GD" + IdUtil.getSnowflakeNextIdStr());
serviceWorkOrders.setStatus("0");
serviceWorkOrders.setRemark(entity.getFeedbackContent());
serviceWorkOrders.setType(entity.getFeedbackType());
serviceWorkOrders.setInitiatorPeople(user.getNickname());
serviceWorkOrders.setReportingType("3");
serviceWorkOrders.setProcessingWeight("1");
boolean flag = serviceWorkOrdersMapper.insert(serviceWorkOrders) > 0;
if (flag) {
ServiceWorkOrdersRecord serviceWorkOrdersRecord = new ServiceWorkOrdersRecord();
serviceWorkOrdersRecord.setOrderId(serviceWorkOrders.getId());
serviceWorkOrdersRecord.setStatus(serviceWorkOrders.getStatus());
//serviceWorkOrdersRecord.setHandler(add.getHandler());
serviceWorkOrdersRecordMapper.insert(serviceWorkOrdersRecord);
}
entity.setOrderId(serviceWorkOrders.getId());
}
}
/**
* 校验并批量删除客户服务-意见反馈信息
*
@@ -136,7 +228,7 @@ public class CustomerFeedbacksServiceImpl implements ICustomerFeedbacksService {
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;

View File

@@ -88,14 +88,14 @@ public class DepotLogServiceImpl implements IDepotLogService {
Map<Long, String> assetNamesByIds = assetsMapper.selectList(
new LambdaQueryWrapper<Asset>()
.select(Asset::getId, Asset::getName)
.in(Asset::getId, assetIds)
.in(CollUtil.isNotEmpty(assetIds),Asset::getId, assetIds)
).stream()
.collect(Collectors.toMap(Asset::getId, Asset::getName));
//批量获取厂库名
Map<Long, String> depotNamesByIds = depotMapper.selectList(
new LambdaQueryWrapper<Depot>()
.select(Depot::getId, Depot::getDepotName)
.in(Depot::getId, depotIds)
.in(CollUtil.isNotEmpty(depotIds),Depot::getId, depotIds)
).stream()
.collect(Collectors.toMap(Depot::getId, Depot::getDepotName));
result.getRecords().stream().forEach(s -> {

View File

@@ -1,18 +1,30 @@
package org.dromara.property.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.property.domain.AttendanceUserGroup;
import org.dromara.property.domain.ServiceWorkOrdersType;
import org.dromara.property.domain.TbUnit;
import org.dromara.property.domain.enums.BookingPayStatusEnum;
import org.dromara.property.domain.enums.BookingStatusEnum;
import org.dromara.property.domain.enums.MeetAttachStatusEnum;
import org.dromara.property.domain.enums.MeetStatusEnum;
import org.dromara.property.mapper.ServiceWorkOrdersTypeMapper;
import org.dromara.property.mapper.TbUnitMapper;
import org.dromara.property.mapper.attendanceMapper.AttendanceUserGroupMapper;
import org.dromara.property.service.*;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -31,6 +43,15 @@ public class EnumFetcherServiceImpl implements EnumFetcherService {
private IMeetBookingService meetBookingService;
@Autowired
private IServiceWorkOrdersService serviceWorkOrdersService;
@DubboReference
private RemoteUserService remoteUserService;
@Autowired
private ServiceWorkOrdersTypeMapper serviceWorkOrdersTypeMapper;
@Autowired
private TbUnitMapper unitMapper;
@Autowired
private AttendanceUserGroupMapper attendanceUserGroupMapper;
@Override
public List<Map<Object, Object>> getEnumValues(String type) {
@@ -53,13 +74,37 @@ public class EnumFetcherServiceImpl implements EnumFetcherService {
return getMeetBookingPayStatus();
case "getMeetBookingStatus":
return getMeetBookingStatus();
case "getAccount":
return getAccount(new ArrayList<>());
case "getServiceWorkOrdersHandler":
return serviceWorkOrdersService.getServiceWorkOrdersHandler(type);
case "getUnit":
return getUnit();
default:
throw new IllegalArgumentException("Unknown type: " + type);
}
}
/**
* 获取单位枚举接口下拉
* @return
*/
private List<Map<Object, Object>> getUnit() {
List<TbUnit> tbUnitList = unitMapper.selectList();
return tbUnitList.stream()
.map(e -> {
Map<Object, Object> map = new HashMap<>();
map.put("value", e.getId());
map.put("name", e.getUnitName());
return map;
})
.collect(Collectors.toList());
}
/**
* 获取会议室状态枚举接口
*/
List<Map<Object, Object>> getMeetStatus() {
return Arrays.stream(MeetStatusEnum.values())
.map(e -> {
@@ -104,4 +149,45 @@ public class EnumFetcherServiceImpl implements EnumFetcherService {
})
.collect(Collectors.toList());
}
@Override
public List<Map<Object, Object>> getShiftScheduler(String type) {
ServiceWorkOrdersType serviceWorkOrdersType = serviceWorkOrdersTypeMapper.selectById(type);
if (serviceWorkOrdersType == null) {
return List.of();
}
LocalDate today = LocalDate.now();
List<AttendanceUserGroup> attendanceUserGroups = attendanceUserGroupMapper.selectList(
new LambdaQueryWrapper<AttendanceUserGroup>()
.le(AttendanceUserGroup::getStartDate, today)
.ge(AttendanceUserGroup::getEndDate, today)
.eq(AttendanceUserGroup::getDeptId, serviceWorkOrdersType.getCreateDept())
);
if (CollUtil.isEmpty(attendanceUserGroups)) {
return List.of();
}
List<Long> userIdList = attendanceUserGroups.stream()
.map(AttendanceUserGroup::getEmployeeId)
.toList();
return getAccount(userIdList);
}
/**
* 获取账户信息
*/
List<Map<Object, Object>> getAccount(List<Long> userIdList) {
List<RemoteUserVo> remoteUserVos = remoteUserService.selectUserList(userIdList);
return remoteUserVos.stream()
.map(e -> {
Map<Object, Object> map = new HashMap<>();
map.put("value", e.getUserId());
map.put("name", e.getNickName());
return map;
})
.collect(Collectors.toList());
}
}

View File

@@ -183,15 +183,17 @@ public class InspectionPlanServiceImpl implements IInspectionPlanService {
*/
private void validEntityBeforebo(Long id,InspectionPlanBo bo) {
//TODO 做一些数据校验,如唯一约束
Assert.isTrue(CollUtil.isNotEmpty(bo.getInspectionPlanStaffBoList()), "巡检人员不存在");
QueryWrapper<InspectionPlanStaff> staffLambdaQueryWrapper = new QueryWrapper<>();
staffLambdaQueryWrapper.eq("inspection_plan_id", id);
inspectionPlanStaffMapper.delete(staffLambdaQueryWrapper);
List<InspectionPlanStaffBo> inspectionPlanStaffBoList = bo.getInspectionPlanStaffBoList();
inspectionPlanStaffBoList.stream().forEach(s->{
s.setInspectionPlanId(id);
});
inspectionPlanStaffMapper.insertBatch(BeanUtil.copyToList(inspectionPlanStaffBoList, InspectionPlanStaff.class));
if(CollUtil.isNotEmpty(bo.getInspectionPlanStaffBoList())){
QueryWrapper<InspectionPlanStaff> staffLambdaQueryWrapper = new QueryWrapper<>();
staffLambdaQueryWrapper.eq("inspection_plan_id", id);
inspectionPlanStaffMapper.delete(staffLambdaQueryWrapper);
List<InspectionPlanStaffBo> inspectionPlanStaffBoList = bo.getInspectionPlanStaffBoList();
inspectionPlanStaffBoList.stream().forEach(s->{
s.setInspectionPlanId(id);
});
inspectionPlanStaffMapper.insertBatch(BeanUtil.copyToList(inspectionPlanStaffBoList, InspectionPlanStaff.class));
}
}
/**

View File

@@ -1,6 +1,7 @@
package org.dromara.property.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -12,8 +13,10 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.property.domain.InspectionPoint;
import org.dromara.property.domain.bo.InspectionPointBo;
import org.dromara.property.domain.vo.InspectionItemVo;
import org.dromara.property.domain.vo.InspectionPlanVo;
import org.dromara.property.domain.vo.InspectionPointVo;
import org.dromara.property.mapper.InspectionItemMapper;
import org.dromara.property.mapper.InspectionPlanMapper;
import org.dromara.property.mapper.InspectionPointMapper;
import org.dromara.property.service.IInspectionPointService;
@@ -39,6 +42,7 @@ public class InspectionPointServiceImpl implements IInspectionPointService {
private final InspectionPointMapper baseMapper;
private final InspectionPlanMapper inspectionPlanMapper;
private final InspectionItemMapper inspectionItemMapper;
/**
* 查询巡检点
@@ -62,6 +66,8 @@ public class InspectionPointServiceImpl implements IInspectionPointService {
public TableDataInfo<InspectionPointVo> queryPageList(InspectionPointBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<InspectionPoint> lqw = buildQueryWrapper(bo);
Page<InspectionPointVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
//收集巡检项目id
if (CollectionUtil.isEmpty(result.getRecords())) {
return TableDataInfo.build(result);
}
@@ -69,8 +75,11 @@ public class InspectionPointServiceImpl implements IInspectionPointService {
.map(vo -> vo.getItemId())
.distinct()
.collect(Collectors.toList());
List<InspectionPlanVo> inspectionPlanVos = inspectionPlanMapper.selectVoByIds(itemIdList);
List<InspectionItemVo> inspectionItemVos = inspectionItemMapper.selectVoByIds(itemIdList);
result.getRecords().stream().forEach(s->{
InspectionItemVo inspectionItemVo = inspectionItemVos.stream().filter(vo -> vo.getId() != null && vo.getId().equals(s.getItemId())).findFirst().orElse(null);
s.setItemName(ObjectUtil.isNotEmpty(inspectionItemVo)?inspectionItemVo.getItemName():null);
});
return TableDataInfo.build(result);
}

View File

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
@@ -19,6 +20,8 @@ import org.dromara.property.domain.bo.MeetBookingBo;
import org.dromara.property.domain.vo.*;
import org.dromara.property.mapper.*;
import org.dromara.property.service.IMeetBookingService;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -46,6 +49,8 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
private final TbRoomMapper roomMapper;
private final MeetMapper meetMapper;
private final ResidentUnitMapper residentUnitMapper;
@DubboReference
private RemoteUserService remoteUserService;
/**
* 查询会议预约
@@ -59,12 +64,13 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
MeetBookingDetailVo meetBookingDetailVo = BeanUtil.copyProperties(meetBookingVo, MeetBookingDetailVo.class);
MeetVo meetVo = meetMapper.selectVoById(meetBookingDetailVo.getMeetId());
String locationName = roomMapper.queryRoomName(Long.valueOf(meetVo.getLocation()));
meetBookingDetailVo.setLocationName(ObjectUtil.isNotEmpty(locationName)?locationName:null);
meetBookingDetailVo.setLocationName(ObjectUtil.isNotEmpty(locationName) ? locationName : null);
//RemoteUserVo userInfo = remoteUserService.getUserInfoById(Long.valueOf(meetBookingVo.getPerson()));
ResidentPersonVo residentPersonVo = residentPersonMapper.selectVoById(Long.valueOf(meetBookingVo.getPerson()));
meetBookingDetailVo.setPersonName(ObjectUtil.isNotEmpty(residentPersonVo)?residentPersonVo.getUserName():null);
meetBookingDetailVo.setPhone(ObjectUtil.isNotEmpty(residentPersonVo)?residentPersonVo.getPhone():null);
meetBookingDetailVo.setPersonName(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getUserName() : null);
meetBookingDetailVo.setPhone(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getPhone(): null);
ResidentUnitVo residentUnitVo = residentUnitMapper.selectVoById(Long.valueOf(meetBookingVo.getUnit()));
meetBookingDetailVo.setUnitName(ObjectUtil.isNotEmpty(residentPersonVo)?residentUnitVo.getName():null);
meetBookingDetailVo.setUnitName(ObjectUtil.isNotNull(residentUnitVo) ? residentUnitVo.getName() : null);
return meetBookingDetailVo;
}
@@ -79,24 +85,28 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
public TableDataInfo<MeetBookingVo> queryPageList(MeetBookingBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<MeetBooking> lqw = buildQueryWrapper(bo);
Page<MeetBookingVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
List<ResidentUnitVo> residentUnitVolist = residentUnitMapper.selectVoList();
List<ResidentPersonVo> residentPersonsVolist = residentPersonMapper.selectVoList();
List<MeetBookingVo> meetBookingVoList = new ArrayList<>();
if(CollUtil.isNotEmpty(result.getRecords())){
List<ResidentUnitVo> residentUnitVolist = residentUnitMapper.selectVoList();
List<Long> userId = result.getRecords().stream().map(vo -> vo.getPerson()).distinct().map(Long::parseLong).collect(Collectors.toList());
List<ResidentPersonVo> remoteUserVos = residentPersonMapper.selectVoByIds(userId);
// List<RemoteUserVo> remoteUserVos = remoteUserService.selectListByIds(userId);
result.getRecords().stream().forEach(s -> {
if (CollUtil.isNotEmpty(residentUnitVolist)) {
ResidentUnitVo residentUnitVo = residentUnitVolist.stream()
.filter(vo -> vo.getId() != null && String.valueOf(vo.getId()).equals(s.getUnit())).findFirst().orElse(null);
s.setUnitName(ObjectUtil.isNotEmpty(residentUnitVo) ? residentUnitVo.getName() : null);
}
if (CollUtil.isNotEmpty(residentPersonsVolist)) {
ResidentPersonVo residentPersonVo = residentPersonsVolist.stream()
.filter(vo -> vo.getId() != null && String.valueOf(vo.getId()).equals(s.getPerson())).findFirst().orElse(null);
if (CollUtil.isNotEmpty(remoteUserVos)) {
ResidentPersonVo residentPersonVo = remoteUserVos.stream()
.filter(vo -> vo.getUserId() != null && String.valueOf(vo.getUserId()).equals(s.getPerson())).findFirst().orElse(null);
s.setPersonName(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getUserName() : null);
s.setPhone(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getPhone() : null);
}
meetBookingVoList.add(s);
});
}
return TableDataInfo.build(new Page<MeetBookingVo>().setRecords(meetBookingVoList).setTotal(result.getTotal()));
}
@@ -113,6 +123,7 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
LocalDateTime startOfDay = date.atStartOfDay();
LocalDateTime endOfDay = date.atTime(LocalTime.MAX);
meetBookingLambdaQueryWrapper
.eq(MeetBooking::getState,2)
.le(MeetBooking::getScheduledStarttime, endOfDay)
.ge(MeetBooking::getScheduledEndtime, startOfDay);
List<MeetBooking> meetBookings = baseMapper.selectList(meetBookingLambdaQueryWrapper);
@@ -122,19 +133,21 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
List<MeetBookingAppointmentVo> meetBookingAppointmentVoList = BeanUtil.copyToList(meetBookings, MeetBookingAppointmentVo.class);
SimpleDateFormat df = new SimpleDateFormat("HH");
List<ResidentUnitVo> residentUnitVolist = residentUnitMapper.selectVoList();
List<ResidentPersonVo> residentPersonsVolist = residentPersonMapper.selectVoList();
List<Long> userId = meetBookingAppointmentVoList.stream().map(vo -> vo.getPerson()).distinct().map(Long::parseLong).collect(Collectors.toList());
// List<RemoteUserVo> remoteUserVos = remoteUserService.selectListByIds(userId);
List<ResidentPersonVo> remoteUserVos = residentPersonMapper.selectVoByIds(userId);
meetBookingAppointmentVoList.stream().forEach(
s -> {
if (CollUtil.isNotEmpty(residentUnitVolist)) {
ResidentUnitVo residentUnitVo = residentUnitVolist.stream()
.filter(vo -> vo.getId() != null && String.valueOf(vo.getId()).equals(s.getUnit())).findFirst().orElse(null);
s.setUnitName(residentUnitVo.getName());
s.setUnitName(ObjectUtil.isNotEmpty(residentUnitVo) ?residentUnitVo.getName():null);
}
if (CollUtil.isNotEmpty(residentPersonsVolist)) {
ResidentPersonVo residentPersonVo = residentPersonsVolist.stream()
if (CollUtil.isNotEmpty(remoteUserVos)) {
ResidentPersonVo residentPersonVo = remoteUserVos.stream()
.filter(vo -> vo.getId() != null && String.valueOf(vo.getId()).equals(s.getPerson())).findFirst().orElse(null);
s.setPersonName(residentPersonVo.getUserName());
s.setPhone(residentPersonVo.getPhone());
s.setPersonName(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getUserName() : null);
s.setPhone(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getPhone() : null);
}
String str = df.format(s.getScheduledStarttime());
int a = Integer.parseInt(str);
@@ -170,6 +183,7 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
// 构建查询条件
LambdaQueryWrapper<MeetBooking> bookingLambdaQueryWrapper = new LambdaQueryWrapper<>();
bookingLambdaQueryWrapper.eq(MeetBooking::getMeetId, meetId)
.eq(MeetBooking::getState,2)
.ge(MeetBooking::getScheduledStarttime, startOfWeek)
.le(MeetBooking::getScheduledEndtime, endOfWeek);
List<MeetBookingVo> meetBookingVoList = baseMapper.selectVoList(bookingLambdaQueryWrapper);
@@ -181,17 +195,19 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
List<MeetBookingWeekVo> meetBookingWeekList = new ArrayList<>();
SimpleDateFormat df = new SimpleDateFormat("HH");
List<ResidentUnitVo> residentUnitVolist = residentUnitMapper.selectVoList();
List<ResidentPersonVo> residentPersonsVolist = residentPersonMapper.selectVoList();
List<Long> userId = meetBookingWeekVoList.stream().map(vo -> vo.getPerson()).distinct().map(Long::parseLong).collect(Collectors.toList());
// List<RemoteUserVo> remoteUserVos = remoteUserService.selectListByIds(userId);
List<ResidentPersonVo> remoteUserVos = residentPersonMapper.selectVoByIds(userId);
meetBookingWeekVoList.stream().forEach(s -> {
if (CollUtil.isNotEmpty(residentUnitVolist)) {
ResidentUnitVo residentUnitVo = residentUnitVolist.stream()
.filter(vo -> vo.getId() != null && String.valueOf(vo.getId()).equals(s.getUnit())).findFirst().orElse(null);
s.setUnitName(residentUnitVo.getName());
s.setUnitName(ObjectUtil.isNotEmpty(residentUnitVo)? residentUnitVo.getName():null);
}
if (CollUtil.isNotEmpty(residentPersonsVolist)) {
ResidentPersonVo residentPersonVo = residentPersonsVolist.stream()
.filter(vo -> vo.getId() != null && String.valueOf(vo.getId()).equals(s.getPerson())).findFirst().orElse(null);
s.setPersonName(residentPersonVo.getUserName());
if (CollUtil.isNotEmpty(remoteUserVos)) {
ResidentPersonVo residentPersonVo = remoteUserVos.stream()
.filter(vo -> vo.getUserId() != null && String.valueOf(vo.getUserId()).equals(s.getPerson())).findFirst().orElse(null);
s.setPersonName(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getUserName() : null);
}
//设置指定的Date对象不设置默认返回当天的星期
calendar.setTime(s.getScheduledStarttime());
@@ -209,6 +225,9 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
private LambdaQueryWrapper<MeetBooking> buildQueryWrapper(MeetBookingBo bo) {
LambdaQueryWrapper<MeetBooking> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(MeetBooking::getId);
lqw.eq(ObjectUtil.isNotEmpty(bo.getPayState()), MeetBooking::getPayState, bo.getPayState());
lqw.eq(ObjectUtil.isNotEmpty(bo.getState()), MeetBooking::getState, bo.getState());
lqw.eq(ObjectUtil.isNotEmpty(bo.getPerson()), MeetBooking::getPerson, bo.getPerson());
lqw.like(StringUtils.isNotBlank(bo.getName()), MeetBooking::getName, bo.getName());
lqw.eq(bo.getMeetId() != null, MeetBooking::getMeetId, bo.getMeetId());
return lqw;
@@ -284,21 +303,21 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
@Override
public List<Map<Object, Object>> getMeetBooking(String type) {
return switch (type) {
case "getMeetBookingPerson" -> getList().stream()
.map(MeetBooking::getPerson)
.filter(Objects::nonNull)
.distinct()
.map(person -> {
Map<Object, Object> map = new HashMap<>();
map.put("value", person);
map.put("name", person);
return map;
})
.collect(Collectors.toList());
return switch (type) {
case "getMeetBookingPerson" -> getList().stream()
.map(MeetBooking::getPerson)
.filter(Objects::nonNull)
.distinct()
.map(person -> {
Map<Object, Object> map = new HashMap<>();
map.put("value", person);
map.put("name", person);
return map;
})
.collect(Collectors.toList());
default -> throw new IllegalArgumentException("Unknown type: " + type);
};
default -> throw new IllegalArgumentException("Unknown type: " + type);
};
}
public List<MeetBooking> getList() {

View File

@@ -1,6 +1,10 @@
package org.dromara.property.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -10,17 +14,18 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.property.domain.MeetAttach;
import org.dromara.property.domain.MeetBooking;
import org.dromara.property.domain.vo.MeetAttachVo;
import org.dromara.property.domain.vo.ResidentPersonVo;
import org.dromara.property.mapper.MeetBookingMapper;
import org.dromara.property.mapper.ResidentPersonMapper;
import org.dromara.property.mapper.TbRoomMapper;
import org.dromara.property.mapper.*;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.springframework.stereotype.Service;
import org.dromara.property.domain.bo.MeetBo;
import org.dromara.property.domain.vo.MeetVo;
import org.dromara.property.domain.Meet;
import org.dromara.property.mapper.MeetMapper;
import org.dromara.property.service.IMeetService;
import org.springframework.transaction.annotation.Transactional;
@@ -29,6 +34,7 @@ import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
@@ -43,9 +49,12 @@ import java.util.stream.Collectors;
public class MeetServiceImpl implements IMeetService {
private final MeetMapper baseMapper;
private final MeetAttachMapper meetAttachMapper;
private final ResidentPersonMapper residentPersonMapper;
private final TbRoomMapper roomMapper;
private final MeetBookingMapper meetbookMapper;
@DubboReference
private RemoteUserService remoteUserService;
/**
* 查询会议室管理
@@ -54,12 +63,17 @@ public class MeetServiceImpl implements IMeetService {
* @return 会议室管理
*/
@Override
public MeetVo queryById(Long id){
MeetVo meetVo= baseMapper.selectVoById(id);
ResidentPersonVo residentPersonVo = residentPersonMapper.selectVoById(meetVo.getPrincipals());
if(ObjectUtil.isNotEmpty(residentPersonVo)){
meetVo.setPrincipalsName(residentPersonVo.getUserName());
meetVo.setPhoneNo(residentPersonVo.getPhone());
public MeetVo queryById(Long id) {
MeetVo meetVo = baseMapper.selectVoById(id);
// ResidentPersonVo residentPersonVo = residentPersonMapper.selectVoById(meetVo.getPrincipals());
// if(ObjectUtil.isNotEmpty(residentPersonVo)){
// meetVo.setPrincipalsName(residentPersonVo.getUserName());
// meetVo.setPhoneNo(residentPersonVo.getPhone());
// }
RemoteUserVo userInfo = remoteUserService.getUserInfoById(Long.valueOf(meetVo.getPrincipals()));
if (ObjectUtil.isNotEmpty(userInfo)) {
meetVo.setPrincipalsName(userInfo.getNickName());
meetVo.setPhoneNo(userInfo.getPhonenumber());
}
String locationName = roomMapper.queryRoomName(Long.valueOf(meetVo.getLocation()));
meetVo.setLocationName(locationName);
@@ -90,19 +104,17 @@ public class MeetServiceImpl implements IMeetService {
public List<MeetVo> queryList(MeetBo bo) {
//查询当前日期和当前时间段会议记录表的会议id
LambdaQueryWrapper<MeetBooking> bookLambdaQueryWrapper = new LambdaQueryWrapper<>();
String[] times = bo.getOpenHours().split("-");
String openStartTimeStr = times[0];
String openEndTimeStr = times[1];
LocalDate appointmentTime = LocalDate.parse(bo.getAppointmentTime());
LocalTime startTime = LocalTime.parse(openStartTimeStr, DateTimeFormatter.ofPattern("HH:mm"));
LocalTime EndTime = LocalTime.parse(openEndTimeStr, DateTimeFormatter.ofPattern("HH:mm"));
LocalDateTime startDateTime = LocalDateTime.of(appointmentTime, startTime );
LocalTime startTime = LocalTime.parse(bo.getOpenEndHours(), DateTimeFormatter.ofPattern("HH:mm"));
LocalTime EndTime = LocalTime.parse(bo.getOpenEndHours(), DateTimeFormatter.ofPattern("HH:mm"));
LocalDateTime startDateTime = LocalDateTime.of(appointmentTime, startTime);
LocalDateTime endDateTime = LocalDateTime.of(appointmentTime, EndTime);
bookLambdaQueryWrapper.ge(MeetBooking::getScheduledStarttime, startDateTime)
bookLambdaQueryWrapper
.ge(MeetBooking::getScheduledStarttime, startDateTime)
.le(MeetBooking::getScheduledEndtime, endDateTime);
List<MeetBooking> meetBookings = meetbookMapper.selectList(bookLambdaQueryWrapper);
List<Long> meetIdList = meetBookings.stream().map(MeetBooking::getMeetId).collect(Collectors.toList());
LambdaQueryWrapper<Meet> lqw = buildQueryListWrapper(bo,meetIdList);
LambdaQueryWrapper<Meet> lqw = buildQueryListWrapper(bo, meetIdList);
return baseMapper.selectVoList(lqw);
}
@@ -111,31 +123,32 @@ public class MeetServiceImpl implements IMeetService {
* @param bo
* @return
*/
private LambdaQueryWrapper<Meet> buildQueryListWrapper(MeetBo bo,List<Long> meetIdList) {
private LambdaQueryWrapper<Meet> buildQueryListWrapper(MeetBo bo, List<Long> meetIdList) {
LambdaQueryWrapper<Meet> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(Meet::getId);
lqw.like(StringUtils.isNotBlank(bo.getName()), Meet::getName, bo.getName());
lqw.notIn(ObjectUtil.isNotEmpty(meetIdList),Meet::getId,meetIdList);
lqw.notIn(ObjectUtil.isNotEmpty(meetIdList), Meet::getId, meetIdList);
lqw.eq(StringUtils.isNotBlank(bo.getLocation()), Meet::getLocation, bo.getLocation());
lqw.le(bo.getPersonNumber() != null, Meet::getPersonNumber, bo.getPersonNumber());
lqw.eq(StringUtils.isNotBlank(bo.getMeetingRoomType()), Meet::getMeetingRoomType, bo.getMeetingRoomType());
lqw.ge(bo.getPersonNumber() != null, Meet::getPersonNumber, bo.getPersonNumber());
lqw.eq(bo.getBaseService() != null, Meet::getBaseService, bo.getBaseService());
if (StringUtils.isNotBlank(bo.getOpenHours())) {
String[] times = bo.getOpenHours().split("-");
if (times.length == 2) {
String openStartTimeStr = times[0];
String openEndTimeStr = times[1];
String nowTime = LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm"));
if (nowTime.compareTo(openStartTimeStr) >= 0 && nowTime.compareTo(openEndTimeStr) <= 0) {
lqw.ge(Meet::getOpenHours, openStartTimeStr)
.le(Meet::getOpenHours, openEndTimeStr);
}
}
// 修复:正确处理时间段重叠逻辑
// 查询条件时间段与数据库存储时间段有重叠的会议室
if (bo.getOpenStartHours() != null && bo.getOpenEndHours() != null) {
LocalTime queryStartTime = LocalTime.parse(bo.getOpenStartHours(), DateTimeFormatter.ofPattern("HH:mm"));
LocalTime queryEndTime = LocalTime.parse(bo.getOpenEndHours(), DateTimeFormatter.ofPattern("HH:mm"));
// 时间段重叠条件: dbStart <= queryEnd AND dbEnd >= queryStart
lqw.le(Meet::getOpenStartHours, queryEndTime)
.ge(Meet::getOpenEndHours, queryStartTime);
}
lqw.eq(bo.getBasePrice() != null, Meet::getBasePrice, bo.getBasePrice());
lqw.eq(bo.getAttach() != null, Meet::getAttach, bo.getAttach());
return lqw;
}
private LambdaQueryWrapper<Meet> buildQueryWrapper(MeetBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<Meet> lqw = Wrappers.lambdaQuery();
@@ -151,7 +164,6 @@ public class MeetServiceImpl implements IMeetService {
}
/**
* 新增会议室管理
*
@@ -162,6 +174,7 @@ public class MeetServiceImpl implements IMeetService {
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(MeetBo bo) {
Meet add = MapstructUtils.convert(bo, Meet.class);
bo.setStatus(0);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
@@ -189,7 +202,7 @@ public class MeetServiceImpl implements IMeetService {
* 保存前的数据校验
*/
@Transactional(rollbackFor = Exception.class)
public void validEntityBeforeSave(Meet entity){
public void validEntityBeforeSave(Meet entity) {
//TODO 做一些数据校验,如唯一约束
}
@@ -203,16 +216,21 @@ public class MeetServiceImpl implements IMeetService {
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
boolean exists = meetAttachMapper.exists(new LambdaQueryWrapper<MeetAttach>().in(MeetAttach::getMeetId, ids));
Assert.isTrue(!exists, "会议室具有增值服务,不允许单独删除");
boolean meetbookExists = meetbookMapper.exists(new LambdaQueryWrapper<MeetBooking>().in(MeetBooking::getMeetId, ids));
Assert.isTrue(!meetbookExists, "会议室具有预约记录,不允许单独删除");
}
return baseMapper.deleteByIds(ids) > 0;
}
/**
* 下拉接口数据
*/
@Override
public List<Map<Object, Object>> getMeetSelectDate(String type){
public List<Map<Object, Object>> getMeetSelectDate(String type) {
switch (type) {
case "getMeetName":
List<Map<Object, Object>> result = new ArrayList<>();
@@ -239,7 +257,8 @@ public class MeetServiceImpl implements IMeetService {
throw new IllegalArgumentException("Unknown type: " + type);
}
}
public List<Meet> getList(){
public List<Meet> getList() {
LambdaQueryWrapper<Meet> meetQueryWrapper = new LambdaQueryWrapper<>();
return baseMapper.selectList(meetQueryWrapper);

View File

@@ -159,6 +159,7 @@ public class PlantsPlanProductServiceImpl implements IPlantsPlanProductService {
/**
* 查询租赁方案植物数据
*
* @param planId
* @return
*/
@@ -166,4 +167,17 @@ public class PlantsPlanProductServiceImpl implements IPlantsPlanProductService {
public List<PlantsPlanProductVo> queryPlanProductsInfo(Long planId) {
return baseMapper.queryProductsInfo(planId);
}
/**
* 根据方案id删除方案产品
*
* @param ids 方案id
* @return
*/
@Override
public void deleteByPlanIds(List<Long> ids) {
if (CollectionUtils.isNotEmpty(ids)) {
baseMapper.deleteByPlanIds(ids);
}
}
}

View File

@@ -25,6 +25,7 @@ import org.dromara.property.domain.vo.PlantsRentalPlanVo;
import org.dromara.property.domain.PlantsRentalPlan;
import org.dromara.property.mapper.PlantsRentalPlanMapper;
import org.dromara.property.service.IPlantsRentalPlanService;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@@ -166,6 +167,7 @@ public class PlantsRentalPlanServiceImpl implements IPlantsRentalPlanService {
* @return 是否删除成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
PlantsRentalOrderBo plantsRentalOrderBo = new PlantsRentalOrderBo();
@@ -174,6 +176,8 @@ public class PlantsRentalPlanServiceImpl implements IPlantsRentalPlanService {
if(CollectionUtils.isNotEmpty(plantsRentalOrderVos)){
throw new ServiceException("当前选中租赁方案不可删除");
}
//删除方案产品数据
planProductService.deleteByPlanIds(ids.stream().toList());
}
return baseMapper.deleteByIds(ids) > 0;
}

Some files were not shown because too many files have changed in this diff Show More