From ce7964aba19721cebdd9eb7d475ac651a6dca6bf Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 09 七月 2024 09:24:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | 2
ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java | 2
ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java | 7 ++
ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java | 2
ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java | 36 ++++++++++++
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 51 ++++++++++++++++
ycl-server/src/main/java/com/ycl/platform/controller/TMonitorController.java | 4 +
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java | 7 ++
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 15 +++-
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java | 7 +
10 files changed, 120 insertions(+), 13 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java
new file mode 100644
index 0000000..f0059e8
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java
@@ -0,0 +1,36 @@
+package com.ycl.platform.domain.form;
+
+import enumeration.general.WorkOrderStatusEnum;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 宸ュ崟瀹℃牳琛ㄥ崟
+ *
+ * @author锛歺p
+ * @date锛�2024/3/6 8:59
+ */
+@Data
+public class WorkOrderBatchAuditingForm {
+
+ /**
+ * 瀹℃牳缁撴灉
+ */
+ @NotBlank(message = "瀹℃牳缁撴灉涓嶈兘涓虹┖")
+ private WorkOrderStatusEnum auditingResult;
+
+ /**
+ * 瀹℃牳璇存槑
+ */
+ private String auditingRemark;
+
+ /**
+ * 鏁呴殰绫诲瀷
+ */
+ @NotBlank(message = "鏁呴殰绫诲瀷涓嶈兘涓虹┖")
+ private String errorType;
+
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/TMonitorController.java b/ycl-server/src/main/java/com/ycl/platform/controller/TMonitorController.java
index 436efa6..f1b7859 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/TMonitorController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/TMonitorController.java
@@ -104,7 +104,9 @@
@GetMapping("/getVideoCount/{cameraFunType}")
public AjaxResult getVideoCount(@PathVariable String cameraFunType)
{
- return success(tMonitorService.getVideoCount(cameraFunType));
+ TMonitor tMonitor = new TMonitor();
+ tMonitor.setCameraFunType(cameraFunType);
+ return success(tMonitorService.getVideoCount(tMonitor));
}
/**
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
index 29b973e..e7037c6 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
@@ -56,6 +56,13 @@
return workOrderService.auditing(form);
}
+ @PutMapping("/batchAuditing")
+ @ApiOperation(value = "瀹℃牳", notes = "宸ュ崟鎵归噺瀹℃牳")
+ @PreAuthorize("@ss.hasPermi('work:order:audit')")
+ public Result batchAuditing(@RequestBody @Validated(Update.class) WorkOrderBatchAuditingForm form) {
+ return workOrderService.batchAuditing(form);
+ }
+
@PutMapping("/yw-condition")
@ApiOperation(value = "杩愮淮鎯呭喌", notes = "杩愮淮鎯呭喌")
public Result ywCondition(@RequestBody @Validated(Update.class) WorkOrderYWConditionForm form) {
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
index dc55616..0132e86 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
@@ -68,7 +68,7 @@
* @param cameraFunType 绫诲瀷
* @return 缁熻鏁�
*/
- Map<String, String> getVideoCount(String cameraFunType);
+ Map<String, String> getVideoCount(TMonitor tMonitor);
Map<String, String> recoveryException();
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java b/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
index 2c26fd4..da3f76a 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
@@ -68,7 +68,7 @@
* @param cameraFunType 鎽勫儚澶村姛鑳界被鍨嬶紝鐢ㄤ簬绛涢�夎棰戙��
* @return 杩斿洖涓�涓寘鍚棰戞暟閲忕殑Map瀵硅薄锛屽叾涓璳ey涓虹粺璁℃寚鏍囷紝value涓哄搴斿姛鑳界被鍨嬩笅鐨勭粺璁℃暟閲忋��
*/
- Map<String, String> getVideoCount(String cameraFunType);
+ Map<String, String> getVideoCount(TMonitor tMonitor);
Map<String, String> recoveryException();
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
index 3a271d1..eead1af 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -73,6 +73,13 @@
Result auditing(WorkOrderAuditingForm form);
/**
+ * 鎵归噺瀹℃牳
+ * @param form 宸ュ崟
+ * @return 缁撴灉
+ */
+ Result batchAuditing(WorkOrderBatchAuditingForm form);
+
+ /**
* 杩愮淮鎯呭喌
* @param form
* @return
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
index 9d2d0a0..57e65f8 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
@@ -1,5 +1,6 @@
package com.ycl.platform.service.impl;
+import annotation.DataScope;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.platform.domain.entity.TMonitor;
import com.ycl.platform.domain.vo.TMonitorVO;
@@ -42,6 +43,7 @@
* @return 璁惧璧勪骇
*/
@Override
+ @DataScope(deptAlias = "d",userAlias = "u")
public List<TMonitorVO> selectTMonitorList(TMonitor tMonitor)
{
return tMonitorMapper.selectTMonitorList(tMonitor);
@@ -96,8 +98,9 @@
}
@Override
- public Map<String, String> getVideoCount(String cameraFunType) {
- return tMonitorMapper.getVideoCount(cameraFunType);
+ @DataScope(deptAlias = "d",userAlias = "u")
+ public Map<String, String> getVideoCount(TMonitor tMonitor) {
+ return tMonitorMapper.getVideoCount(tMonitor);
}
@Override
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index d50ec03..67a558c 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -1,5 +1,6 @@
package com.ycl.platform.service.impl;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
@@ -13,6 +14,7 @@
import com.ycl.platform.domain.vo.WorkOrderVO;
import com.ycl.platform.mapper.*;
import com.ycl.platform.service.NotifyService;
+import com.ycl.platform.service.WorkOrderAuditingRecordService;
import com.ycl.platform.service.WorkOrderService;
import com.ycl.system.Result;
import com.ycl.system.model.LoginUser;
@@ -28,10 +30,12 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.time.ZoneId;
+import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
@@ -51,6 +55,7 @@
private final YwUnitMapper ywUnitMapper;
private final YwPeopleMapper ywPeopleMapper;
private final WorkOrderAuditingRecordMapper workOrderAuditingRecordMapper;
+ private final WorkOrderAuditingRecordService workOrderAuditingRecordService;
private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper;
private final NotifyService notifyService;
private final WorkOrderDistributeRecordMapper workOrderDistributeRecordMapper;
@@ -123,6 +128,49 @@
@Override
@Transactional(rollbackFor = Exception.class)
+ public Result batchAuditing(WorkOrderBatchAuditingForm form) {
+ // 鏍规嵁鏁呴殰绫诲瀷鑾峰彇鍒楄〃
+ List<WorkOrder> list = new LambdaQueryChainWrapper<>(baseMapper)
+ .in(WorkOrder::getStatus, WorkOrderStatusEnum.YW_HANDLE.getValue())
+ .eq(WorkOrder::getErrorType, form.getErrorType())
+ .select(WorkOrder::getId, WorkOrder::getUnitId, WorkOrder::getWorkOrderNo)
+ .list();
+ if (list.isEmpty()) {
+ return Result.error("娌℃湁宸ュ崟鍙互瀹℃牳");
+ }
+ List<Integer> ids = list.stream().map(WorkOrder::getId).collect(Collectors.toList());
+ // 宸ュ崟鐘舵��
+ LambdaUpdateWrapper<WorkOrder> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+ lambdaUpdateWrapper.in(WorkOrder::getId, ids);
+ lambdaUpdateWrapper.set(WorkOrder::getStatus, form.getAuditingResult());
+ baseMapper.update(lambdaUpdateWrapper);
+ // 娣诲姞澶氭潯瀹℃牳璁板綍
+ List<WorkOrderAuditingRecord> workOrderAuditingRecords = new ArrayList<>();
+ for (Integer id : ids) {
+ WorkOrderAuditingRecord workOrderAuditingRecord = new WorkOrderAuditingRecord();
+ workOrderAuditingRecord.setWorkOrderId(id);
+ workOrderAuditingRecord.setAuditingUser(SecurityUtils.getLoginUser().getUserId().intValue());
+ workOrderAuditingRecord.setResult(form.getAuditingResult().getDesc());
+ workOrderAuditingRecord.setRemark(form.getAuditingRemark());
+ workOrderAuditingRecords.add(workOrderAuditingRecord);
+ }
+ workOrderAuditingRecordService.saveBatch(workOrderAuditingRecords);
+ // 娣诲姞鏂伴�氱煡
+ List<Notify> notifies = new ArrayList<>();
+ for (WorkOrder workOrder : list) {
+ Notify notify = Notify.genEntityByUnit(NotifyTypeEnum.WORK_ORDER,
+ form.getAuditingResult().getDesc(),
+ workOrder.getUnitId(),
+ UrgentLevelEnum.WARNING,
+ workOrder.getWorkOrderNo());
+ notifies.add(notify);
+ }
+ notifyService.saveBatch(notifies);
+ return Result.ok("鎿嶄綔鎴愬姛");
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
public Result ywCondition(WorkOrderYWConditionForm form) {
WorkOrder workOrder = baseMapper.selectById(form.getId());
if (Objects.isNull(workOrder)) {
@@ -148,8 +196,7 @@
new LambdaQueryChainWrapper<>(workOrderYwConditionRecordMapper)
.eq(WorkOrderYwConditionRecord::getWorkOrderId, id)
.orderByAsc(WorkOrderYwConditionRecord::getCreateTime)
- .last("limit 1")
- .one());
+ .list());
}
@Override
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
index e75c2f6..e23dd08 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -49,8 +49,8 @@
<select id="selectTMonitorList" resultType="com.ycl.platform.domain.vo.TMonitorVO">
select id, serial_number, name, site_type, mac_addr, ip, camera_fun_type, longitude, latitude, camera_capture_area, on_state, civil_code, integrated_device, camera_brand, address, net_working, public_security, installed_time, management_unit, mu_contact_info, storage_days
- , monitor_azimuth, scene_photo_addr, model, site_vulgo, camera_type, camera_light_type, encoded_format, camera_dept, hybm, lxbm, reason, default_order,recovery,recovery_time,sd.dept_name from t_monitor m
- left join sys_dept sd on m.dept_id = sd.dept_id
+ , monitor_azimuth, scene_photo_addr, model, site_vulgo, camera_type, camera_light_type, encoded_format, camera_dept, hybm, lxbm, reason, default_order,recovery,recovery_time,d.dept_name from t_monitor m
+ left join sys_dept d on m.dept_id = d.dept_id
<where>
<if test="serialNumber != null and serialNumber != ''"> and serial_number = #{serialNumber}</if>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
@@ -86,8 +86,9 @@
<if test="defaultOrder != null "> and default_order = #{defaultOrder}</if>
<if test="recovery != null "> and recovery = #{recovery}</if>
<if test="recoveryTime != null "> and recovery_time = #{recoveryTime}</if>
- <if test="deptId != null "> and dept_id = #{deptId}</if>
+ <if test="deptId != null "> and m.dept_id = #{deptId}</if>
</where>
+ ${params.dataScope}
</select>
<select id="selectTMonitorById" parameterType="Long" resultMap="TMonitorResult">
@@ -236,8 +237,12 @@
IFNULL(ROUND(SUM(IF(on_state = 1, 1, 0)) / count(*) * 100, 2), 0) as viewsPercentage,
-1 as totalFace,
-1 as totalCar
- FROM t_monitor
- WHERE camera_fun_type like concat('%', #{cameraFunType}, '%')
+ FROM t_monitor m
+ left join sys_dept d on m.dept_id = d.dept_id
+ <where>
+ camera_fun_type like concat('%', #{cameraFunType}, '%')
+ </where>
+ ${params.dataScope}
</select>
<select id="recoveryException" resultType="java.util.Map">
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
index 364b380..5b6c6f0 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -32,7 +32,7 @@
<if test="query.status != null">
AND wo.status = #{query.status}
</if>
- <if test="query.errorType != null and query.errType != ''">
+ <if test="query.errorType != null and query.errorType != ''">
AND wo.error_type = #{query.errorType}
</if>
<if test="query.start != null">
--
Gitblit v1.8.0