From d43dd3f0b3d75dfcc96002724fd5fdb03bfa3eea Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Mon, 6 May 2024 18:43:30 +0800 Subject: [PATCH] =?UTF-8?q?AI=E5=88=86=E6=9E=90=E7=A1=AC=E4=BB=B6=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zhgd/mybatis/DataScopeHandler.java | 18 ++++++ .../modules/quality/entity/QualityRegion.java | 7 +++ .../entity/QualityRegionToAiAnalyseHard.java | 62 +++++++++++++++++++ .../QualityRegionToAiAnalyseHardMapper.java | 16 +++++ .../mapper/xml/QualityRegionMapper.xml | 10 ++- .../QualityRegionToAiAnalyseHardMapper.xml | 4 ++ .../impl/QualityRegionServiceImpl.java | 25 ++++++++ .../AiAnalyseHardWareAlarmRecordMapper.java | 3 +- .../mapper/AiAnalyseHardWareRecordMapper.java | 5 +- .../xml/AiAnalyseHardWareRecordMapper.xml | 9 ++- .../IAiAnalyseHardWareRecordService.java | 13 +++- .../AiAnalyseHardWareRecordServiceImpl.java | 24 +++++++ .../controller/WorkerInfoController.java | 1 + .../worker/mapper/xml/WorkerInfoMapper.xml | 6 ++ .../service/impl/WorkerInfoServiceImpl.java | 4 ++ 15 files changed, 201 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/modules/quality/entity/QualityRegionToAiAnalyseHard.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityRegionToAiAnalyseHardMapper.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionToAiAnalyseHardMapper.xml diff --git a/src/main/java/com/zhgd/mybatis/DataScopeHandler.java b/src/main/java/com/zhgd/mybatis/DataScopeHandler.java index 49fb63a51..8195b530c 100644 --- a/src/main/java/com/zhgd/mybatis/DataScopeHandler.java +++ b/src/main/java/com/zhgd/mybatis/DataScopeHandler.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler; import com.zhgd.annotation.DataScope; +import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareRecordService; import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo; import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper; import com.zhgd.xmgl.modules.worker.service.impl.UserDevAuthorityServiceImpl; @@ -111,6 +112,12 @@ public class DataScopeHandler implements DataPermissionHandler { return tables; } + private HashMap getFieldAiTables() { + HashMap tables = new HashMap<>(); + tables.put("ai_analyse_hard_ware_alarm_record", "hardware_id"); + return tables; + } + public PlainSelect getSqlSegment(PlainSelect plainSelect, Object obj) { UserInfo user = SecurityUtils.getUser(); if (user == null) { @@ -124,6 +131,9 @@ public class DataScopeHandler implements DataPermissionHandler { //} } + @Autowired + IAiAnalyseHardWareRecordService aiAnalyseHardWareRecordService; + private PlainSelect dataScopeFilterByProject(PlainSelect plainSelect, UserInfo user, Object obj) { JSONObject jo = (JSONObject) obj; Object parameter = jo.get("parameter"); @@ -148,6 +158,14 @@ public class DataScopeHandler implements DataPermissionHandler { } } + List filterAis = getNeedFilterLeftExpression(plainSelect, getFieldAiTables(), ds); + if (CollUtil.isNotEmpty(filterAis)) { + List videoItems = aiAnalyseHardWareRecordService.getAiAnalyseHardIdsByUserId(); + for (String item : filterAis) { + inExpression(item, videoItems, plainSelect); + } + } + } else if (user.getAccountType() == 11) { List filterEnterprises = getNeedFilterLeftExpression(plainSelect, getFieldEnterpriseTables(), ds); EnterpriseInfo ei = enterpriseInfoMapper.getXzSupplierByUserId(SecurityUtils.getUser().getUserId()); diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/entity/QualityRegion.java b/src/main/java/com/zhgd/xmgl/modules/quality/entity/QualityRegion.java index b77c333f8..f89184381 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/entity/QualityRegion.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/entity/QualityRegion.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; +import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord; import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -96,6 +97,8 @@ public class QualityRegion implements Serializable { @TableField(exist = false) private List systemUsers; + @TableField(exist = false) + private List aiAnalyseHardWareRecords; @TableField(exist = false) @ApiModelProperty(value = "负责人名称(逗号分割)") @@ -105,4 +108,8 @@ public class QualityRegion implements Serializable { @ApiModelProperty(value = "分包单位名称(逗号分割)") private java.lang.String enterpriseName; + @TableField(exist = false) + @ApiModelProperty(value = "AI分析硬件设备名称(逗号分割)") + private java.lang.String aiAnalyseHardName; + } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/entity/QualityRegionToAiAnalyseHard.java b/src/main/java/com/zhgd/xmgl/modules/quality/entity/QualityRegionToAiAnalyseHard.java new file mode 100644 index 000000000..1c55ee394 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/quality/entity/QualityRegionToAiAnalyseHard.java @@ -0,0 +1,62 @@ +package com.zhgd.xmgl.modules.quality.entity; + +import java.io.Serializable; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Description: 区域和AI分析硬件设备中间表 + * @author: pds + * @date: 2024-05-06 + * @version: V1.0 + */ +@Data +@TableName("quality_region_to_ai_analyse_hard") +@ApiModel(value = "QualityRegionToAiAnalyseHard实体类", description = "QualityRegionToAiAnalyseHard") +public class QualityRegionToAiAnalyseHard implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.Long id; + /** + * 区域id + */ + @Excel(name = "区域id", width = 15) + @ApiModelProperty(value = "区域id") + private java.lang.Long qualityRegionId; + /** + * AI分析硬件设备id + */ + @Excel(name = "AI分析硬件设备id", width = 15) + @ApiModelProperty(value = "AI分析硬件设备id") + private java.lang.Long aiAnalyseHardWareRecordId; + /** + * 创建时间 yyyy-MM-dd HH:mm:ss + */ + @Excel(name = "创建时间 yyyy-MM-dd HH:mm:ss", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间 yyyy-MM-dd HH:mm:ss") + private java.util.Date createTime; + /** + * 更新时间 yyyy-MM-dd HH:mm:ss + */ + @Excel(name = "更新时间 yyyy-MM-dd HH:mm:ss", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新时间 yyyy-MM-dd HH:mm:ss") + private java.util.Date updateTime; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityRegionToAiAnalyseHardMapper.java b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityRegionToAiAnalyseHardMapper.java new file mode 100644 index 000000000..830d570cc --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityRegionToAiAnalyseHardMapper.java @@ -0,0 +1,16 @@ +package com.zhgd.xmgl.modules.quality.mapper; + +import com.zhgd.xmgl.modules.quality.entity.QualityRegionToAiAnalyseHard; +import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 区域和AI分析硬件设备中间表 + * @author: pds + * @date: 2024-05-06 + * @version: V1.0 + */ +@Mapper +public interface QualityRegionToAiAnalyseHardMapper extends BaseMapper { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionMapper.xml b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionMapper.xml index fe5d2388b..3f8478d2c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionMapper.xml @@ -15,17 +15,25 @@ + + + + + diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionToAiAnalyseHardMapper.xml b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionToAiAnalyseHardMapper.xml new file mode 100644 index 000000000..ad5101fa5 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionToAiAnalyseHardMapper.xml @@ -0,0 +1,4 @@ + + + + diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRegionServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRegionServiceImpl.java index 556b78a04..3f3ebed5d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRegionServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRegionServiceImpl.java @@ -9,12 +9,15 @@ import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.service.impl.SystemUserServiceImpl; import com.zhgd.xmgl.modules.quality.entity.QualityRegion; +import com.zhgd.xmgl.modules.quality.entity.QualityRegionToAiAnalyseHard; import com.zhgd.xmgl.modules.quality.entity.QualityRegionToEnterprise; import com.zhgd.xmgl.modules.quality.entity.QualityRegionToUser; import com.zhgd.xmgl.modules.quality.mapper.QualityRegionMapper; +import com.zhgd.xmgl.modules.quality.mapper.QualityRegionToAiAnalyseHardMapper; import com.zhgd.xmgl.modules.quality.mapper.QualityRegionToEnterpriseMapper; import com.zhgd.xmgl.modules.quality.mapper.QualityRegionToUserMapper; import com.zhgd.xmgl.modules.quality.service.IQualityRegionService; +import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord; import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo; import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl; import com.zhgd.xmgl.util.ListUtils; @@ -44,6 +47,8 @@ public class QualityRegionServiceImpl extends ServiceImpl aiAnalyseHardWareRecords = qualityRegion.getAiAnalyseHardWareRecords(); + if (CollUtil.isNotEmpty(aiAnalyseHardWareRecords)) { + qualityRegion.setAiAnalyseHardName(StrUtil.join(",", aiAnalyseHardWareRecords.stream().map(AiAnalyseHardWareRecord::getHardwareName).collect(Collectors.toList()))); + } } return list; } @@ -156,8 +165,12 @@ public class QualityRegionServiceImpl extends ServiceImpl() .eq(QualityRegionToUser::getQualityRegionId, qualityRegion.getId())); + toAiAnalyseHardMapper.delete(new LambdaQueryWrapper() + .eq(QualityRegionToAiAnalyseHard::getQualityRegionId, qualityRegion.getId())); + List systemUsers = qualityRegion.getSystemUsers(); List enterpriseInfos = qualityRegion.getEnterpriseInfos(); + List aiAnalyseHardWareRecords = qualityRegion.getAiAnalyseHardWareRecords(); if (CollUtil.isNotEmpty(enterpriseInfos)) { for (EnterpriseInfo systemUser : enterpriseInfos) { Long userId = systemUser.getId(); @@ -192,6 +205,18 @@ public class QualityRegionServiceImpl extends ServiceImpl { List queryAiAnalyseHardWareAlarmPageList(Page page, @Param("param") Map map); - List queryAiAnalyseHardWareAlarmPageListTwo(Page page, @Param("param") Map map); @MapKey("dayTitle") diff --git a/src/main/java/com/zhgd/xmgl/modules/video/mapper/AiAnalyseHardWareRecordMapper.java b/src/main/java/com/zhgd/xmgl/modules/video/mapper/AiAnalyseHardWareRecordMapper.java index b4ab392e7..76bfec503 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/mapper/AiAnalyseHardWareRecordMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/mapper/AiAnalyseHardWareRecordMapper.java @@ -4,13 +4,16 @@ import org.apache.ibatis.annotations.Mapper; import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; + /** * @Description: AI分析硬件设备 * @author: pds - * @date: 2021-07-26 + * @date: 2021-07-26 * @version: V1.0 */ @Mapper public interface AiAnalyseHardWareRecordMapper extends BaseMapper { + List getAiAnalyseHardIdsByUserId(Long userId); } diff --git a/src/main/java/com/zhgd/xmgl/modules/video/mapper/xml/AiAnalyseHardWareRecordMapper.xml b/src/main/java/com/zhgd/xmgl/modules/video/mapper/xml/AiAnalyseHardWareRecordMapper.xml index 0e516bac6..9962d9fcf 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/mapper/xml/AiAnalyseHardWareRecordMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/video/mapper/xml/AiAnalyseHardWareRecordMapper.xml @@ -2,4 +2,11 @@ - \ No newline at end of file + + diff --git a/src/main/java/com/zhgd/xmgl/modules/video/service/IAiAnalyseHardWareRecordService.java b/src/main/java/com/zhgd/xmgl/modules/video/service/IAiAnalyseHardWareRecordService.java index a322f6380..0131c47c5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/service/IAiAnalyseHardWareRecordService.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/service/IAiAnalyseHardWareRecordService.java @@ -1,7 +1,7 @@ package com.zhgd.xmgl.modules.video.service; -import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord; import com.baomidou.mybatisplus.extension.service.IService; +import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord; import java.util.List; import java.util.Map; @@ -9,7 +9,7 @@ import java.util.Map; /** * @Description: AI分析硬件设备 * @author: pds - * @date: 2021-07-26 + * @date: 2021-07-26 * @version: V1.0 */ public interface IAiAnalyseHardWareRecordService extends IService { @@ -21,4 +21,13 @@ public interface IAiAnalyseHardWareRecordService extends IService getAiAnalyseHardIdsByUserId(); + + List getAiAnalyseHardIdsByUserId(Long userId); } diff --git a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareRecordServiceImpl.java index 8d8567dd0..18282bd20 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareRecordServiceImpl.java @@ -1,11 +1,14 @@ package com.zhgd.xmgl.modules.video.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord; import com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareRecordMapper; import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareRecordService; +import com.zhgd.xmgl.security.entity.UserInfo; +import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.util.MessageUtil; import org.apache.commons.collections.MapUtils; import org.springframework.stereotype.Service; @@ -14,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; import java.util.Map; +import java.util.Objects; /** * @Description: AI分析硬件设备 @@ -65,4 +69,24 @@ public class AiAnalyseHardWareRecordServiceImpl extends ServiceImpl getAiAnalyseHardIdsByUserId() { + UserInfo user = SecurityUtils.getUser(); + if (Objects.equals(user.getAccountType(), 6)) { + //项目子账号就筛选自己能看到的 + Long userId = user.getUserId(); + List hardIds = this.getAiAnalyseHardIdsByUserId(userId); + if (CollUtil.isEmpty(hardIds)) { + hardIds.add("0"); + } + return hardIds; + } + return null; + } + + @Override + public List getAiAnalyseHardIdsByUserId(Long userId) { + return baseMapper.getAiAnalyseHardIdsByUserId(userId); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java index f570a3ea2..f96538bfe 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java @@ -149,6 +149,7 @@ public class WorkerInfoController { @ApiImplicitParam(name = "workerInfos", value = "劳务人员id(多个,分割)", paramType = "body", required = false, dataType = "String"), @ApiImplicitParam(name = "presence", value = "1在场2离场", paramType = "body", required = false, dataType = "Integer"), @ApiImplicitParam(name = "attendance", value = "1今日出勤", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "isFilterQualityRegionEnterprise", value = "是否查询过滤区域管理下的企业,1是", paramType = "body", required = false, dataType = "Integer"), }) @PostMapping(value = "/selectWorkerInfoList") public Result> selectWorkerInfoList(@RequestBody Map map) { diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml index 3a08f11ea..6c6a20e83 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml @@ -48,6 +48,12 @@ and create_time>=current_date group by person_sn ) wa on wa.person_sn = a.person_sn WHERE 1 = 1 + + and a.enterprise_id in( + select distinct qrte.enterprise_id from quality_region_to_enterprise qrte join quality_region_to_user qrtu + on qrte.quality_region_id = qrtu.quality_region_id where qrtu.user_id=#{param.userId} + ) + and a.enterprise_id = #{param.enterpriseId} diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java index 4d25db3d3..343bdc81e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java @@ -181,6 +181,10 @@ public class WorkerInfoServiceImpl extends ServiceImpl selectWorkerInfoList(Map map) { int pageNo = Integer.parseInt(map.getOrDefault("pageNo", 1).toString()); int pageSize = Integer.parseInt(map.getOrDefault("pageSize", 10000).toString()); + if (SecurityUtils.getUser() != null) { + map.put("userId", SecurityUtils.getUser().getUserId()); + map.put("accountType", SecurityUtils.getUser().getAccountType()); + } Page page = new Page<>(pageNo, pageSize); List list = new ArrayList<>(); if (systemUserService.isSupplier()) {