fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapReply.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,71 @@ package com.fzzy.igds.domain; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fzzy.igds.constant.Constant; import lombok.Data; import lombok.EqualsAndHashCode; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import java.io.Serializable; /** * ææåè¦æ¹å¤ * * @author sgj * @since 2026/04/07 */ @Data @Entity @Table(name = "d_snap_reply") @TableName("d_snap_reply") @EqualsAndHashCode(callSuper = false) public class SnapReply extends BizBaseEntity implements Serializable { /** * */ private static final long serialVersionUID = 1L; @Id @Column(name = "id", columnDefinition = "varchar(40) COMMENT '主é®'") @TableField("id") private String id; @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT 'æå±åºåº'") @TableField("dept_id") private String deptId; @Column(name = "content", columnDefinition = "varchar(200) COMMENT 'åè¦å 容'") @TableField("content") private String content; //æªæ¥ï¼1-30ï¼å¤©åºåºæ£å¸¸ï¼ä¸è¿è¡æé @Column(name = "days", columnDefinition = "int(2) COMMENT '䏿é天æ°'") @TableField("days") private Integer days; @Column(name = "reply_text", columnDefinition = "varchar(200) COMMENT 'æ¹å¤ææ¬ä¿¡æ¯'") @TableField("reply_text") private String replyText; // @Column(name = "is_push", columnDefinition = "varchar(2) COMMENT 'æ¯å¦æ¨éå ¬ä¼å·ä¿¡æ¯'") // @TableField("is_push") // private String isPush = Constant.YN_N; @Column(name = "is_handle", columnDefinition = "varchar(2) COMMENT 'æ¯å¦å¤ç'") @TableField("is_handle") private String isHandle = Constant.YN_N; } fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/SnapReplyMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ package com.fzzy.igds.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.fzzy.igds.domain.SnapReply; import org.apache.ibatis.annotations.Mapper; @Mapper public interface SnapReplyMapper extends BaseMapper<SnapReply> { } fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SnapReplyService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,142 @@ package com.fzzy.igds.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fzzy.igds.data.BaseResp; import com.fzzy.igds.data.IgdsBaseParam; import com.fzzy.igds.domain.SnapReply; import com.fzzy.igds.mapper.SnapReplyMapper; import com.fzzy.igds.utils.ContextUtil; import com.ruoyi.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; @Slf4j @Service public class SnapReplyService { @Resource private SnapReplyMapper snapReplyMapper; /** * å页æ¥è¯¢æ°æ® * * @param page * @param param */ public void listPage(Page<SnapReply> page, IgdsBaseParam param) { QueryWrapper<SnapReply> queryWrapper = new QueryWrapper<>(); param.setCompanyId(ContextUtil.getCompanyId()); queryWrapper.eq("company_id", param.getCompanyId()); //åºåºæ£ç´¢ if (StringUtils.isNotBlank(param.getDeptId())) { queryWrapper.eq("dept_id", param.getDeptId()); } //æ¯å¦å¤çæ£ç´¢ if (StringUtils.isNotBlank(param.getName())) { queryWrapper.eq("is_handle", param.getName()); } queryWrapper.orderByDesc("create_time"); snapReplyMapper.selectPage(page, queryWrapper); } /** * æ¥è¯¢æææ°æ® * * @param param * @return * @author sgj * @date 2026/04/07 */ public List<SnapReply> getListByParam(IgdsBaseParam param) { if (null == param) { param = new IgdsBaseParam(); } QueryWrapper<SnapReply> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("company_id", ContextUtil.getCompanyId()); if (StringUtils.isNotBlank(param.getDeptId())) { queryWrapper.eq("dept_id", param.getDeptId()); } if (StringUtils.isNotBlank(param.getName())) { queryWrapper.eq("is_handle", param.getName()); } queryWrapper.orderByDesc("create_time"); return snapReplyMapper.selectList(queryWrapper); } /** * æ ¹æ®IDæ¥è¯¢è¯¦æ * * @param id * @return * @author sgj * @date 2026/04/07 */ public SnapReply getById(String id) { return snapReplyMapper.selectById(id); } /** * æä¹ åä¿å * * @param snapReply * @author sgj * @date 2026/04/07 */ public void addData(SnapReply snapReply) { if (StringUtils.isBlank(snapReply.getId())) { snapReply.setId(ContextUtil.generateId()); } if (StringUtils.isBlank(snapReply.getCompanyId())) { snapReply.setCompanyId(ContextUtil.getCompanyId()); } snapReply.setUpdateBy(ContextUtil.getLoginUserName()); snapReply.setUpdateTime(new Date()); snapReply.setCreateBy(ContextUtil.getLoginUserName()); snapReply.setCreateTime(new Date()); snapReplyMapper.insert(snapReply); } /** * æ´æ°æ°æ® * * @param snapReply * @return * @author sgj * @date 2026/04/07 */ public BaseResp updateData(SnapReply snapReply) { snapReply.setUpdateBy(ContextUtil.getLoginUserName()); snapReply.setUpdateTime(new Date()); return snapReplyMapper.updateById(snapReply) > 0 ? BaseResp.success() : BaseResp.error("æ´æ°å¤±è´¥"); } /** * å 餿°æ® * * @param snapReply * @return * @author sgj * @date 2026/04/07 */ public BaseResp deleteData(SnapReply snapReply) { return snapReplyMapper.deleteById(snapReply) > 0 ? BaseResp.success() : BaseResp.error("å é¤å¤±è´¥"); } } fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PSnapDto.java
@@ -27,7 +27,11 @@ private String tags ; private Date snapTime; private Double weight = 0.0; private String name; private Date time; private String imgName; fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5001.java
@@ -13,6 +13,7 @@ import com.fzzy.igds.app.v1.util.PhoneRespUtil; import com.fzzy.igds.app.v1.util.PhoneUtil; import com.fzzy.igds.service.SysDeptService; import com.fzzy.igds.utils.Base64Util; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.entity.SysDept; @@ -121,8 +122,8 @@ AsyncManager.me().execute(AsyncFactory.recordLogininfor(param.getUsername(), Constants.LOGIN_FAIL, MessageUtils.message("user.blocked"))); throw new UserBlockedException(); } passwordService.validate(user, param.getPassword()); String password = Base64Util.decodeBase64Password(param.getPassword()); passwordService.validate(user, password); AsyncManager.me().execute(AsyncFactory.recordLogininfor(param.getUsername(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); PUserDto phoneUserDto = new PUserDto(); fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5108.java
@@ -11,12 +11,13 @@ import com.fzzy.igds.app.v1.dto.PSnapDto; import com.fzzy.igds.app.v1.service.PhoneService; import com.fzzy.igds.app.v1.util.PhoneRespUtil; import com.fzzy.igds.domain.Dept; import com.fzzy.igds.domain.PatrolRecord; import com.fzzy.igds.domain.SnapRecord; import com.fzzy.igds.domain.*; import com.fzzy.igds.mapper.SnapRecordMapper; import com.fzzy.igds.mapper.WeighbridgeSnapMapper; import com.fzzy.igds.service.CoreDeptService; import com.fzzy.igds.service.FileService; import com.fzzy.igds.service.InoutConfService; import com.fzzy.igds.service.SecCameraService; import com.fzzy.igds.utils.ContextUtil; import com.fzzy.igds.utils.DateUtil; import org.apache.commons.lang3.StringUtils; @@ -29,6 +30,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** * @Author: YYC @@ -39,9 +41,11 @@ public class ServiceImpl5108 implements PhoneService { @Resource private SnapRecordMapper snapRecordMapper; private WeighbridgeSnapMapper weighbridgeSnapMapper; @Resource private CoreDeptService deptService; @Resource private InoutConfService inoutConfService; @Override @@ -64,22 +68,31 @@ if (null == param.getDateTime()) { return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "åæ°æè¯¯ï¼è¯·éè¯ï¼ï¼"); } QueryWrapper<SnapRecord> queryWrapper = new QueryWrapper<>(); QueryWrapper<WeighbridgeSnap> queryWrapper = new QueryWrapper<>(); param.setCompanyId(ContextUtil.getCompanyId()); queryWrapper.eq("company_id", param.getCompanyId()); queryWrapper.likeRight("dept_id", param.getDeptId()); queryWrapper.ge("snap_time", DateUtil.getCurZero(param.getDateTime())); queryWrapper.le("snap_time", DateUtil.getNextZero(param.getDateTime())); queryWrapper.ge("time", DateUtil.getCurZero(param.getDateTime())); queryWrapper.le("time", DateUtil.getNextZero(param.getDateTime())); List<SnapRecord> list = snapRecordMapper.selectList(queryWrapper); List<WeighbridgeSnap> list = weighbridgeSnapMapper.selectList(queryWrapper); PSnapDto snapDto; Dept dept; List<PSnapDto> snapDtoList = new ArrayList<>(); for (SnapRecord snapRecord:list){ List<InoutConf> collect; //è·åçæ§è®¾å¤ List<InoutConf> inoutConfs = inoutConfService.getInoutConfList(ContextUtil.getCompanyId(), param.getDeptId()); for (WeighbridgeSnap weighbridgeSnap : list) { snapDto = new PSnapDto(); BeanUtils.copyProperties(snapRecord,snapDto); dept = deptService.getDeptById(snapRecord.getDeptId()); BeanUtils.copyProperties(weighbridgeSnap, snapDto); //æ å°çæ§è®¾å¤åç§° collect = inoutConfs.stream().filter(camera -> camera.getId().equals(weighbridgeSnap.getSerId())).collect(Collectors.toList()); if (!collect.isEmpty()) { snapDto.setCameraId(collect.get(0).getName()); } dept = deptService.getDeptById(weighbridgeSnap.getDeptId()); snapDto.setDeptName(dept.getKqmc()); snapDtoList.add(snapDto); } fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5109.java
@@ -12,7 +12,9 @@ import com.fzzy.igds.app.v1.util.PhoneRespUtil; import com.fzzy.igds.domain.PatrolRecord; import com.fzzy.igds.domain.SnapRecord; import com.fzzy.igds.domain.WeighbridgeSnap; import com.fzzy.igds.mapper.SnapRecordMapper; import com.fzzy.igds.mapper.WeighbridgeSnapMapper; import com.fzzy.igds.service.FileService; import com.ruoyi.common.config.FrameworkConfig; import org.apache.commons.lang3.StringUtils; @@ -29,7 +31,7 @@ public class ServiceImpl5109 implements PhoneService { @Resource private SnapRecordMapper snapRecordMapper; private WeighbridgeSnapMapper weighbridgeSnapMapper; @Resource private FileService fileService; @@ -50,11 +52,11 @@ return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "åæ°æè¯¯ï¼è¯·éè¯ï¼ï¼"); } param.setCompanyId(authUser.getCompanyId()); SnapRecord snapRecord = snapRecordMapper.selectById(param.getId()); if (StringUtils.isNotEmpty(snapRecord.getImgName())) { String imgData = Base64Util.getImageStr(snapRecord.getImgName().replace("/profile/", FrameworkConfig.getProfile())); snapRecord.setImgName(imgData); WeighbridgeSnap weighbridgeSnap = weighbridgeSnapMapper.selectById(param.getId()); if (StringUtils.isNotEmpty(weighbridgeSnap.getImgName())) { String imgData = Base64Util.getImageStr(weighbridgeSnap.getImgName().replace("/profile/", FrameworkConfig.getProfile())); weighbridgeSnap.setImgName(imgData); } return PhoneRespUtil.success(snapRecord, req); return PhoneRespUtil.success(weighbridgeSnap, req); } } fzzy-igdss-view/src/main/java/com/fzzy/igds/SecCamera.view.xml
@@ -556,7 +556,7 @@ return;
 }
 
 var url = "./basic/security/video-play?cameraId="+cur.get("id")+"&playType="+playType+"&time="+ new Date().getTime();
 var url = "./security/video-play?cameraId="+cur.get("id")+"&playType="+playType+"&time="+ new Date().getTime();
 
 view.get("#iFrameVideo").set("path",url);
 view.get("#dialogVideo").show();
 fzzy-igdss-web/src/main/java/com/fzzy/regulatory/SnapReplyController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,56 @@ package com.fzzy.regulatory; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fzzy.igds.constant.RespCodeEnum; import com.fzzy.igds.data.IgdsBaseParam; import com.fzzy.igds.data.PageResponse; import com.fzzy.igds.domain.SnapReply; import com.fzzy.igds.response.BaseResponse; import com.fzzy.regulatory.manager.SnapReplyManager; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; @Slf4j @Controller @RequestMapping("/regulatory/snapReply") public class SnapReplyController { private static final String prefix = "regulatory"; @Resource private SnapReplyManager snapReplyManager; /** * å页æ¥è¯¢æ°æ® * * @param param * @return */ @PostMapping("/pageData") @ResponseBody public PageResponse<Page<SnapReply>> pageData(IgdsBaseParam param) { Page<SnapReply> snapRecordPage = snapReplyManager.pageData(param); return new PageResponse<>(RespCodeEnum.CODE_0000, snapRecordPage); } /** * åè¦æ¹å¤ * * @param snapReply * @return */ @PostMapping("/updateData") @ResponseBody public BaseResponse updateData(SnapReply snapReply) { return snapReplyManager.updateData(snapReply); } } fzzy-igdss-web/src/main/java/com/fzzy/regulatory/manager/SnapReplyManager.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,67 @@ package com.fzzy.regulatory.manager; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fzzy.igds.constant.RespCodeEnum; import com.fzzy.igds.data.BaseResp; import com.fzzy.igds.data.IgdsBaseParam; import com.fzzy.igds.domain.SnapReply; import com.fzzy.igds.response.BaseResponse; import com.fzzy.igds.service.SnapReplyService; import com.fzzy.igds.utils.ContextUtil; import com.ruoyi.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.ArrayList; @Slf4j @Component public class SnapReplyManager { @Resource private SnapReplyService snapReplyService; /** * å页æ¥è¯¢æ°æ® * * @param param * @return */ public Page<SnapReply> pageData(IgdsBaseParam param) { if (StringUtils.isEmpty(param.getCompanyId())) { param.setCompanyId(ContextUtil.getCompanyId()); } Page<SnapReply> corePage = new Page<>(param.getPage(), param.getLimit()); snapReplyService.listPage(corePage, param); if (null == corePage.getRecords() || corePage.getRecords().isEmpty()) { return corePage.setRecords(new ArrayList<>()); } return corePage; } /** * åè¦æ¹å¤ * * @param snapReply * @return */ public BaseResponse updateData(SnapReply snapReply) { if (null == snapReply) { return new BaseResponse(RespCodeEnum.CODE_2000.getCode(),"åæ°ä¸è½ä¸ºç©º"); } if(StringUtils.isBlank(snapReply.getReplyText())){ return new BaseResponse(RespCodeEnum.CODE_2000.getCode(),"æ¹å¤å 容ä¸è½ä¸ºç©º"); } BaseResp baseResp = snapReplyService.updateData(snapReply); if (!BaseResp.isSuccess(baseResp)) { return new BaseResponse(RespCodeEnum.CODE_1111.getCode(),"æ´æ°å¤±è´¥"); } return new BaseResponse(RespCodeEnum.CODE_0000.getCode(),"æ´æ°æå"); } } fzzy-igdss-web/src/main/resources/static/security/video-webrtc.js
@@ -29,8 +29,19 @@ layer.msg(result.msg); } else { playUrl = result.playUrl; toPlay(); onLogin(); var htm = ""; //web-rtcææ¾æ¹å¼ if (PlayType.PLAY_TYPE_WEB_RTC == cameraData.playType) { htm = '<video class="video" id="video" autoplay="" muted="" playsinline=""></video>'; $("#sp-showItem2").append(htm); toPlay(); onLogin(); } if (PlayType.PLAY_TYPE_YD_QLY == cameraData.playType) { htm = '<iframe src="' + playUrl + '" width="100%" height="100%" frameborder="0" allowfullscreen></iframe>'; $("#sp-showItem2").append(htm); } } }, error: function (result) { fzzy-igdss-web/src/main/resources/templates/security/video-webrtc.html
@@ -74,9 +74,7 @@ <div class="sp-tab-bd"> <div class="sp-showBox layui-row show"> <div class="layui-col-lg12 layui-col-md12"> <div class="sp-showItem2"> <video class="video" id="video" autoplay="" muted="" playsinline=""> </video> <div class="sp-showItem2" id="sp-showItem2"> </div> </div> </div> @@ -204,6 +202,7 @@ var cameraData = [[${cameraData}]]; </script> <script th:src="@{/js/jquery.min.js}"></script> <script th:src="@{/common/constant.js}"></script> <script th:src="@{/ajax/libs/layui/layui.js}"></script> <script th:src="@{/security/video-webrtc.js}"></script> </body>