diff --git a/src/main/java/com/zcloud/controller/system/HeadController.java b/src/main/java/com/zcloud/controller/system/HeadController.java index e30277c..b372536 100644 --- a/src/main/java/com/zcloud/controller/system/HeadController.java +++ b/src/main/java/com/zcloud/controller/system/HeadController.java @@ -167,7 +167,9 @@ public class HeadController extends BaseController { Session session = Jurisdiction.getSession(); Collection shiroSet = (Collection)session.getAttribute(Jurisdiction.getUsername() + Const.SHIROSET); for(String key : keys){ - map.put(key.replace(":", "fhadmin"), shiroSet.contains(key)); + // todo 强制修改为所有的按钮都显示 +// map.put(key.replace(":", "fhadmin"), shiroSet.contains(key)); + map.put(key.replace(":", "fhadmin"), "true"); } //企业主账号可以删除隐患 pd.put("USER_ID", Jurisdiction.getUSER_ID()); diff --git a/src/main/java/com/zcloud/controller/system/UsersController.java b/src/main/java/com/zcloud/controller/system/UsersController.java index c2a2fb3..068179d 100644 --- a/src/main/java/com/zcloud/controller/system/UsersController.java +++ b/src/main/java/com/zcloud/controller/system/UsersController.java @@ -572,7 +572,7 @@ public class UsersController extends BaseController { map.put("result", errInfo); } else { map.put("result", "errInfo"); - map.put("msg", "人员定位系统修改失败"); + map.put("msg", "人员定位系统修改失败,请联系管理员"); } return map; } @@ -804,19 +804,14 @@ public class UsersController extends BaseController { @LogAnno(menuType = "双重预防", menuServer = "企业管理", instructionsOperate = "用户管理", instructionsType = "保存用户") public Object saveUser() throws Exception { Map map = new HashMap<>(); - String errInfo = "success"; PageData pd = this.getPageData(); try { - usersService.saveUserNew(pd); + return usersService.saveUserNew(pd); // 调用 Service 层保存用户 } catch (Exception e) { - errInfo = "error"; map.put("msg", e.getMessage()); throw e; } - map.put("result", errInfo); - map.put("USER_ID", pd.getString("USER_ID")); - return map; } /** @@ -1433,7 +1428,9 @@ public class UsersController extends BaseController { String postId = ""; if (postValMap != null) { PageData o = (PageData) postValMap.get(postName); - postId = o.getString("POST_ID"); + if (o!= null) { + postId = o.getString("POST_ID"); + } } /** 岗位 结束**/ @@ -1667,27 +1664,27 @@ public class UsersController extends BaseController { for (PageData pageData : editUserList) { String msg = usersService.changeOrUpdUserCardNo(pageData); if (!msg.equals(Const.CAN_CHENG_USER)) { - errorStr.append("第" + number + "行,"); - errorStr.append(msg+"\n"); + errorStr.append("第" + number + "行,"); + errorStr.append(msg + "\n"); } } for (PageData pageData : addUserList) { - if (PLSUtil.saveUser(pageData)) { - PageData cardNumberPeople = PLSUtil.getCardNumberPeople(pageData); - pageData.put("PLS_ID", cardNumberPeople.getString("psnId")); - }else { - errorStr.append("第" + number + "行,"); - errorStr.append("人员定位系统用户添加失败,请联系管理员。"+"\n"); - } + PageData response = PLSUtil.saveUser(pageData); + if ("200".equals(response.getString("code"))) { + pageData.put("PLS_ID", response.getString("data")); + } else { + errorStr.append("第" + number + "行,"); + errorStr.append("人员定位系统用户添加失败,请联系管理员。" + "\n"); + } } if (Tools.isEmpty(errorStr.toString())) { for (PageData pageData : addUserList) { usersService.saveUser(pageData); } for (PageData pageData : editUserList) { - if (PLSUtil.editUser(pageData)) { - usersService.editUser(pageData); - } + if (PLSUtil.editUser(pageData)) { + usersService.editUser(pageData); + } } errorStr.append("成功导入" + addUserList.size() + "条数据!"); errorStr.append("成功修改" + editUserList.size() + "条数据!"); diff --git a/src/main/java/com/zcloud/controller/video/AIWarningController.java b/src/main/java/com/zcloud/controller/video/AIWarningController.java index af50c5f..6bb6e10 100644 --- a/src/main/java/com/zcloud/controller/video/AIWarningController.java +++ b/src/main/java/com/zcloud/controller/video/AIWarningController.java @@ -1,19 +1,26 @@ package com.zcloud.controller.video; +import com.alibaba.fastjson.JSONObject; import com.zcloud.controller.base.BaseController; import com.zcloud.entity.Page; import com.zcloud.entity.PageData; import com.zcloud.service.video.AIWarningService; -import com.zcloud.util.Jurisdiction; -import com.zcloud.util.Tools; +import com.zcloud.service.video.VideoManagerService; +import com.zcloud.util.*; +import org.apache.commons.fileupload.disk.DiskFileItem; +import org.apache.commons.io.FileUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.commons.CommonsMultipartFile; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.io.*; +import java.util.*; /** * 说明:AI报警 @@ -25,6 +32,215 @@ public class AIWarningController extends BaseController { @Autowired private AIWarningService aiwarningService; + @Autowired + private VideoManagerService videoManagerService; + @Autowired + private Smb smb; + /**新增 + * @param + * @throws Exception + */ + @RequestMapping(value="/getAlarmInfo",headers = "content-type=multipart/form-data") + @ResponseBody + public Object getAlarmInfo( + @RequestParam(value = "resultVideo", required = false) MultipartFile resultVideo, @RequestParam("resultMsg") String resultMsg) throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + if(resultMsg!=null && !resultMsg.equals("")) { + JSONObject json = JSONObject.parseObject(resultMsg); + PageData pd = new PageData(); + pd.put("AIWARNING_ID", this.get32UUID()); //主键 + pd.put("CREATTIME", DateUtil.date2Str(new Date())); //添加时间 + pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 + pd.put("ISDELETE", 0); //是否删除 + pd.put("TYPE", Const.WARNING_TYPE_MAP.get(json.get("algType"))); //类型 + pd.put("WARNING_TIME", DateUtil.date2Str(new Date(Long.parseLong(json.getString("createTime").substring(0,json.getString("createTime").length()-3))))); //报警时间 + + File img = base64ToFile(json.getString("resultImg")); + MultipartFile file = getMultipartFile(img); + String ffile = DateUtil.getDays(); + String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + smb.sshSftp(file, fileName, Const.FILEPATHFILE + "/" + ffile); + img.delete(); + pd.put("IMG_PATH", Const.FILEPATHFILE + "/" + ffile + "/" + fileName); + + String ffile1 = DateUtil.getDays(); + File video = File.createTempFile(resultVideo.getOriginalFilename(), ".mp4"); + resultVideo.transferTo(video); + MultipartFile mvideo = getMultipartFile(video); + String fileName1 = mvideo.getOriginalFilename(); + smb.sshSftp(mvideo, fileName1, Const.FILEPATHFILE + "/" + ffile1); + video.delete(); + pd.put("VIDEO_PATH", Const.FILEPATHFILE + "/" + ffile1 + "/" + fileName1); + + PageData videoPd = new PageData(); + videoPd.put("CODE", json.get("cameraCode")); + videoPd = videoManagerService.findByCode(videoPd); + if(videoPd != null){ + pd.put("VIDEOMANAGER_ID", videoPd.get("VIDEOMANAGER_ID")); //视频ID + pd.put("VIDEOMANAGER_NAME", videoPd.get("VIDEONAME")); //视频名称 + pd.put("OUTSOURCED_ID", videoPd.get("OUTSOURCED_ID")); //重点工程id + } + pd.put("STATUS", 0); //状态0未处置 + pd.put("ISTRUE", 3); //状态3未审核 + aiwarningService.save(pd); + map.put("result", errInfo); + }else{ + map.put("result", "faild"); + map.put("msg", "报警信息为空"); + } + return map; + } + + @RequestMapping(value="/getAlarmInfo2",headers = "content-type=multipart/form-data") + @ResponseBody + public Object getAlarmInfo2( + @RequestParam(value = "resultVideo", required = false) MultipartFile resultVideo, @RequestParam("resultMsg") String resultMsg) throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + System.out.println(resultMsg); + if(resultMsg!=null && !resultMsg.equals("")) { + JSONObject json = JSONObject.parseObject(resultMsg); + PageData pd = new PageData(); + pd.put("AIWARNING_ID", this.get32UUID()); //主键 + pd.put("CREATTIME", DateUtil.date2Str(new Date())); //添加时间 + pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 + pd.put("ISDELETE", 0); //是否删除 + pd.put("TYPE",Const.WARNING_TYPE_MAP.get(json.get("algType"))); //类型 + pd.put("WARNING_TIME", DateUtil.date2Str(new Date(Long.parseLong(json.getString("createTime").substring(0,json.getString("createTime").length()-3))))); //报警时间 + + File img = base64ToFile(json.getString("sourceImgBase64")); + MultipartFile file = getMultipartFile(img); + String ffile = DateUtil.getDays(); + String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + smb.sshSftp(file, fileName, Const.FILEPATHFILE + "/" + ffile); + img.delete(); + pd.put("IMG_PATH", Const.FILEPATHFILE + "/" + ffile + "/" + fileName); + + String ffile1 = DateUtil.getDays(); + File video = File.createTempFile(resultVideo.getOriginalFilename(), ".mp4"); + resultVideo.transferTo(video); + MultipartFile mvideo = getMultipartFile(video); + String fileName1 = mvideo.getOriginalFilename(); + smb.sshSftp(mvideo, fileName1, Const.FILEPATHFILE + "/" + ffile1); + video.delete(); + pd.put("VIDEO_PATH", Const.FILEPATHFILE + "/" + ffile1 + "/" + fileName1); + + PageData videoPd = new PageData(); + videoPd.put("CODE", json.get("cameraCode")); + videoPd = videoManagerService.findByCode(videoPd); + if(videoPd != null){ + pd.put("VIDEOMANAGER_ID", videoPd.get("VIDEOMANAGER_ID")); //视频ID + pd.put("VIDEOMANAGER_NAME", videoPd.get("VIDEONAME")); //视频名称 + pd.put("OUTSOURCED_ID", videoPd.get("OUTSOURCED_ID")); //重点工程id + } + pd.put("STATUS", 0); //状态0未处置 + pd.put("ISTRUE", 3); //状态3未审核 + + aiwarningService.save(pd); + map.put("result", errInfo); + }else{ + map.put("result", "faild"); + map.put("msg", "报警信息为空"); + } + return map; + } + + @RequestMapping(value="/getAlarmInfo3") + @ResponseBody + public Object getAlarmInfo3(@RequestBody String resultMsg) throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + if(resultMsg!=null && !resultMsg.equals("")) { + JSONObject json = JSONObject.parseObject(resultMsg); + PageData pd = new PageData(); + pd.put("AIWARNING_ID", this.get32UUID()); //主键 + pd.put("CREATTIME", DateUtil.date2Str(new Date())); //添加时间 + pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 + pd.put("ISDELETE", 0); //是否删除 + pd.put("TYPE",Const.WARNING_TYPE_MAP.get(json.get("algType"))); //类型 + pd.put("WARNING_TIME", DateUtil.date2Str(new Date(Long.parseLong(json.getString("createTime").substring(0,json.getString("createTime").length()-3))))); //报警时间 + + File img = base64ToFile(json.getString("sourceImgBase64")); + MultipartFile file = getMultipartFile(img); + String ffile = DateUtil.getDays(); + String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + smb.sshSftp(file, fileName, Const.FILEPATHFILE + "/" + ffile); + img.delete(); + pd.put("IMG_PATH", Const.FILEPATHFILE + "/" + ffile + "/" + fileName); + + PageData videoPd = new PageData(); + videoPd.put("CODE", json.get("cameraCode")); + videoPd = videoManagerService.findByCode(videoPd); + if(videoPd != null){ + pd.put("VIDEOMANAGER_ID", videoPd.get("VIDEOMANAGER_ID")); //视频ID + pd.put("VIDEOMANAGER_NAME", videoPd.get("VIDEONAME")); //视频名称 + pd.put("OUTSOURCED_ID", videoPd.get("OUTSOURCED_ID")); //重点工程id + } + pd.put("STATUS", 0); //状态0未处置 + pd.put("ISTRUE", 3); //状态3未审核 + + aiwarningService.save(pd); + map.put("result", errInfo); + }else{ + map.put("result", "faild"); + map.put("msg", "报警信息为空"); + } + return map; + } + + + private File base64ToFile(String base64) throws IOException { + if(base64.contains("data:image")){ + base64 = base64.substring(base64.indexOf(",")+1); + } + base64 = base64.toString().replace("\r\n", ""); + //创建文件目录 + String prefix=".jpg"; + File file = File.createTempFile(get32UUID(), prefix); + BufferedOutputStream bos = null; + FileOutputStream fos = null; + try { + byte[] bytes = Base64.getDecoder().decode(base64); + fos = new FileOutputStream(file); + bos = new BufferedOutputStream(fos); + bos.write(bytes); + }finally { + if (bos != null) { + try { + bos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (fos != null) { + try { + fos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return file; + } + + public static MultipartFile getMultipartFile(File file) { + DiskFileItem item = new DiskFileItem("file" + , MediaType.MULTIPART_FORM_DATA_VALUE + , true + , file.getName() + , (int)file.length() + , file.getParentFile()); + try { + OutputStream os = item.getOutputStream(); + os.write(FileUtils.readFileToByteArray(file)); + } catch (IOException e) { + e.printStackTrace(); + } + return new CommonsMultipartFile(item); + } + + /**列表 * @param page * @throws Exception @@ -63,5 +279,35 @@ public class AIWarningController extends BaseController { map.put("result", errInfo); return map; } - + /** + * @Description: 修改 + * @Author: dearLin + * @Date: 2024/1/26/026 15:27 + * @Param: [] [] + * @Return: java.lang.Object + */ + @RequestMapping(value="/edit") + @ResponseBody + public Object edit() throws Exception{ + PageData pd = this.getPageData(); + pd.put("OPERATOR",Jurisdiction.getUSER_ID()); + pd.put("OPERATTIME",DateUtil.date2Str(new Date())); + aiwarningService.edit(pd); //根据ID读取 + return ReturnMap.ok(); + } + /** + * @Description: 批量删除 + * @Author: dearLin + * @Date: 2024/1/26/026 15:27 + * @Param: [] [] + * @Return: java.lang.Object + */ + @RequestMapping(value="/removeByIds") + @ResponseBody + public Object removeByIds() throws Exception{ + PageData pd = this.getPageData(); + String[] aiwarningIds = pd.getString("AIWARNING_IDS").split(","); + aiwarningService.deleteAll(aiwarningIds); //根据ID读取 + return ReturnMap.ok(); + } } diff --git a/src/main/java/com/zcloud/controller/video/VideoManagerController.java b/src/main/java/com/zcloud/controller/video/VideoManagerController.java index cd661b2..5949891 100644 --- a/src/main/java/com/zcloud/controller/video/VideoManagerController.java +++ b/src/main/java/com/zcloud/controller/video/VideoManagerController.java @@ -1,15 +1,13 @@ package com.zcloud.controller.video; +import com.alibaba.fastjson.JSONObject; import com.zcloud.controller.base.BaseController; import com.zcloud.entity.Page; import com.zcloud.entity.PageData; import com.zcloud.logs.LogAnno; import com.zcloud.service.video.TokenService; import com.zcloud.service.video.VideoManagerService; -import com.zcloud.util.DateUtil; -import com.zcloud.util.Jurisdiction; -import com.zcloud.util.ObjectExcelView; -import com.zcloud.util.Tools; +import com.zcloud.util.*; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -51,6 +49,11 @@ public class VideoManagerController extends BaseController { pd.put("OPDATE", DateUtil.date2Str(new Date())); //操作日期 pd.put("OPUSER", Jurisdiction.getUsername()); //操作人 pd.put("ISDELETE", "0"); //是否删除 + JSONObject jsonObject = PLSUtil.saveCamera(Jurisdiction.getCORPINFO_ID(), pd); + if (!"200".equals(jsonObject.getString("code"))) { + return ReturnMap.error("三方系统摄像头对接失败"); + } + pd.put("PLS_ID", jsonObject.get("data")); videomanagerService.save(pd); map.put("result", errInfo); return map; @@ -69,6 +72,10 @@ public class VideoManagerController extends BaseController { String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); + JSONObject jsonObject = PLSUtil.removeCamera(Jurisdiction.getCORPINFO_ID(), pd); + if (!"200".equals(jsonObject.getString("code"))) { + return ReturnMap.error("三方系统摄像头对接失败"); + } videomanagerService.delete(pd); map.put("result", errInfo); //返回结果 return map; @@ -116,6 +123,10 @@ public class VideoManagerController extends BaseController { String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); + JSONObject jsonObject = PLSUtil.editCamera(Jurisdiction.getCORPINFO_ID(), pd); + if (!"200".equals(jsonObject.getString("code"))) { + return ReturnMap.error("三方系统摄像头对接失败,禁止修改"); + } videomanagerService.edit(pd); map.put("result", errInfo); return map; diff --git a/src/main/java/com/zcloud/mapper/datasource/video/AIWarningMapper.java b/src/main/java/com/zcloud/mapper/datasource/video/AIWarningMapper.java index d04823e..572467b 100644 --- a/src/main/java/com/zcloud/mapper/datasource/video/AIWarningMapper.java +++ b/src/main/java/com/zcloud/mapper/datasource/video/AIWarningMapper.java @@ -33,5 +33,10 @@ public interface AIWarningMapper { */ PageData findById(PageData pd); + void save(PageData pd); + + void edit(PageData pd); + + void deleteAll(String[] aiwarningIds); } diff --git a/src/main/java/com/zcloud/mapper/datasource/video/VideoManagerMapper.java b/src/main/java/com/zcloud/mapper/datasource/video/VideoManagerMapper.java index e4f0256..1cc065d 100644 --- a/src/main/java/com/zcloud/mapper/datasource/video/VideoManagerMapper.java +++ b/src/main/java/com/zcloud/mapper/datasource/video/VideoManagerMapper.java @@ -65,5 +65,6 @@ public interface VideoManagerMapper { */ void deleteAll(String[] ArrayDATA_IDS); + PageData findByCode(PageData videoPd); } diff --git a/src/main/java/com/zcloud/service/system/UsersService.java b/src/main/java/com/zcloud/service/system/UsersService.java index 2885800..1d22c4c 100644 --- a/src/main/java/com/zcloud/service/system/UsersService.java +++ b/src/main/java/com/zcloud/service/system/UsersService.java @@ -3,6 +3,7 @@ package com.zcloud.service.system; import com.zcloud.entity.Page; import com.zcloud.entity.PageData; import com.zcloud.entity.system.User; +import com.zcloud.util.ReturnMap; import java.io.IOException; import java.util.List; @@ -266,7 +267,7 @@ public interface UsersService { void editUserState(PageData pageData)throws Exception; - void saveUserNew(PageData pd) throws Exception; + ReturnMap saveUserNew(PageData pd) throws Exception; /**通过USERID查监管端用户 * @param pd diff --git a/src/main/java/com/zcloud/service/system/impl/UsersServiceImpl.java b/src/main/java/com/zcloud/service/system/impl/UsersServiceImpl.java index 88929a0..92933d5 100644 --- a/src/main/java/com/zcloud/service/system/impl/UsersServiceImpl.java +++ b/src/main/java/com/zcloud/service/system/impl/UsersServiceImpl.java @@ -250,23 +250,24 @@ public class UsersServiceImpl implements UsersService { @Override public String changeOrUpdUserCardNo(PageData nowuser) throws Exception { PageData oldUser = usersMapper.findById(nowuser); + // 此人原来无卡号 // 先判断人员新的定位卡号是否有变化,没变化直接可以修改 - if (oldUser.getString("CARDNO") == null || oldUser.getOrDefault("CARDNO","").equals(nowuser.getString("CARDNO"))) { + if (oldUser.getString("CARDNO") != null && oldUser.getOrDefault("CARDNO", "").equals(nowuser.getString("CARDNO"))) { return Const.CAN_CHENG_USER; } // 有变化看库里是否有人在用这个新卡号 PageData getCordNo = new PageData(); getCordNo.putAll(nowuser); - getCordNo.put("CORPINFO_ID",Jurisdiction.getCORPINFO_ID()); + getCordNo.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); PageData usedCardNo = usersMapper.findByCardNo(getCordNo); // 卡号被本系统中他人使用了 if (usedCardNo != null) { - return Const.CARD_ALREADY_BEEN_USED+usedCardNo.getString("NAME"); + return Const.CARD_ALREADY_BEEN_USED + usedCardNo.getString("NAME"); } PageData cardNumberPeople = PLSUtil.getCardNumberPeople(nowuser); // 这个新卡号其他系统中绑定人了 if (cardNumberPeople != null) { - return "人员定位系统中"+Const.CARD_ALREADY_BEEN_USED+cardNumberPeople.getString("name"); + return "人员定位系统中" + Const.CARD_ALREADY_BEEN_USED + cardNumberPeople.getString("name"); } return Const.CAN_CHENG_USER; } @@ -277,14 +278,14 @@ public class UsersServiceImpl implements UsersService { } @Override - public void saveUserNew(PageData pd) throws Exception { + public ReturnMap saveUserNew(PageData pd) throws Exception { pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); pd.put("WORKSTATUS", "1"); pd.put("WORKPERIOD", "1"); pd.put("RIGHTS", "788664966448"); // 先判断这个人定位卡号与姓名是否对的上 if (!PLSUtil.hasCardNumber(pd)) { - throw new Exception(pd.getString("CARDNO") + "定位卡已经存在"); + return ReturnMap.error(pd.getString("CARDNO") + "定位卡已经存在"); } if (pd.get("USERAVATARURL") != null && !pd.getString("USERAVATARURL").equals("")) { @@ -310,7 +311,7 @@ public class UsersServiceImpl implements UsersService { pd.put("SKIN", "pcoded-navbar navbar-image-3, navbar pcoded-header navbar-expand-lg navbar-light header-dark"); pd.put("PASSWORD", new SimpleHash("SHA-1", pd.getString("USERNAME"), "666666").toString()); - if (usersMapper.findByUsername(pd) == null && PLSUtil.saveUser(pd)) { + if (usersMapper.findByUsername(pd) == null) { if ("true".equals(pd.getString("ISSTUDENT"))) { if ("select".equals(pd.getString("letDutiesType"))) { pd.put("DUTIES", pd.getString("DUTIES")); @@ -344,13 +345,19 @@ public class UsersServiceImpl implements UsersService { } userInfoService.save(pd); } - PageData cardNumberPeople = PLSUtil.getCardNumberPeople(pd); - pd.put("PLS_ID", cardNumberPeople.getString("psnId")); - usersMapper.saveUser(pd); - FHLOG.save(Jurisdiction.getUsername(), "新增用户:" + pd.getString("USERNAME")); - } else { - throw new Exception("请检查定位卡号与用户名是否重复"); + PageData response = PLSUtil.saveUser(pd); + if ("200".equals(response.getString("code"))) { + pd.put("PLS_ID", response.getString("data")); + usersMapper.saveUser(pd); + FHLOG.save(Jurisdiction.getUsername(), "新增用户:" + pd.getString("USERNAME")); + return ReturnMap.ok(); + } + return ReturnMap.error(response.getString("msg")); } + return ReturnMap.error("保存失败"); +// PageData cardNumberPeople = PLSUtil.getCardNumberPeople(pd); +// pd.put("PLS_ID", cardNumberPeople.getString("psnId")); +// usersMapper.saveUser(pd); } diff --git a/src/main/java/com/zcloud/service/video/AIWarningService.java b/src/main/java/com/zcloud/service/video/AIWarningService.java index d2cf33c..ac6a7e8 100644 --- a/src/main/java/com/zcloud/service/video/AIWarningService.java +++ b/src/main/java/com/zcloud/service/video/AIWarningService.java @@ -32,5 +32,10 @@ public interface AIWarningService { */ public PageData findById(PageData pd)throws Exception; + void save(PageData pd); + + void edit(PageData pd); + + void deleteAll(String[] aiwarningIds); } diff --git a/src/main/java/com/zcloud/service/video/VideoManagerService.java b/src/main/java/com/zcloud/service/video/VideoManagerService.java index 51d9812..ae74d83 100644 --- a/src/main/java/com/zcloud/service/video/VideoManagerService.java +++ b/src/main/java/com/zcloud/service/video/VideoManagerService.java @@ -65,5 +65,6 @@ public interface VideoManagerService { */ public void deleteAll(String[] ArrayDATA_IDS)throws Exception; + PageData findByCode(PageData videoPd); } diff --git a/src/main/java/com/zcloud/service/video/impl/AIWarningServiceImpl.java b/src/main/java/com/zcloud/service/video/impl/AIWarningServiceImpl.java index cc9f3a5..f98a98e 100644 --- a/src/main/java/com/zcloud/service/video/impl/AIWarningServiceImpl.java +++ b/src/main/java/com/zcloud/service/video/impl/AIWarningServiceImpl.java @@ -47,5 +47,20 @@ public class AIWarningServiceImpl implements AIWarningService { public PageData findById(PageData pd)throws Exception{ return aiwarningMapper.findById(pd); } + + @Override + public void save(PageData pd) { + aiwarningMapper.save(pd); + } + + @Override + public void edit(PageData pd) { + aiwarningMapper.edit(pd); + } + + @Override + public void deleteAll(String[] aiwarningIds) { + aiwarningMapper.deleteAll(aiwarningIds); + } } diff --git a/src/main/java/com/zcloud/service/video/impl/VideoManagerServiceImpl.java b/src/main/java/com/zcloud/service/video/impl/VideoManagerServiceImpl.java index 411d3fc..b059111 100644 --- a/src/main/java/com/zcloud/service/video/impl/VideoManagerServiceImpl.java +++ b/src/main/java/com/zcloud/service/video/impl/VideoManagerServiceImpl.java @@ -94,5 +94,10 @@ public class VideoManagerServiceImpl implements VideoManagerService { videomanagerMapper.deleteAll(ArrayDATA_IDS); } + @Override + public PageData findByCode(PageData videoPd) { + return videomanagerMapper.findByCode(videoPd); + } + } diff --git a/src/main/java/com/zcloud/util/Const.java b/src/main/java/com/zcloud/util/Const.java index c2472db..1700b56 100644 --- a/src/main/java/com/zcloud/util/Const.java +++ b/src/main/java/com/zcloud/util/Const.java @@ -1,5 +1,8 @@ package com.zcloud.util; +import java.util.HashMap; +import java.util.Map; + /** * 说明:常量 * 作者:luoxiaobao @@ -73,4 +76,35 @@ public class Const { // 修改用户相关 public static final String CAN_CHENG_USER="SUCCEEDS"; public static final String CARD_ALREADY_BEEN_USED="当前卡号已经被使用。使用人:"; + public static final Map WARNING_TYPE_MAP = new HashMap() {{ + put("blockingmonitoring", "占道"); + put("chefhatmonitoring", "厨师帽检测"); + put("chefuniformmonitoring", "厨师服检测"); + put("elevatorebikemonitoring", "电摩入梯"); + put("empty", "空算法"); + put("example", "示例算法"); + put("facemaskmonitoring", "口罩检测"); + put("faceset", "人脸识别(人脸库)"); + put("fireextinguisherdetection", "灭火器"); + put("gluedtophonemonitoring", "玩手机检测"); + put("helmetwearingmonitoring", "安全帽"); + put("intrusionmonitoring", "入侵检测(越界)"); + put("intrusionmonitoringplus", "陌生人入侵"); + put("mnpmonitoring", "机非人"); + put("mousedetection", "老鼠检测"); + put("nlprdetection", "车牌检测(车牌库)"); + put("ondutymonitoring", "离岗检测"); + put("peoplecountingcrossing", "过线人数统计"); + put("peoplecrossingmonitoring", "过线检测"); + put("peopledensitydetection", "人员密度检测"); + put("peoplefalldetection", "人员跌倒检测"); + put("peoplequeuemonitoring", "排队长度检测(排队统计)"); + put("safetyvestmonitoring", "反光衣检测"); + put("sleepingondutymonitoring", "睡岗"); + put("smokefiremonitoring", "烟火检测"); + put("smokingcallmonitoring", "抽烟打电话"); + put("uniformnn", "工服(工服库)"); + put("wastebinmonitoring", "垃圾桶检测"); + }}; + } diff --git a/src/main/java/com/zcloud/util/PLSUtil.java b/src/main/java/com/zcloud/util/PLSUtil.java index 19caedb..05ef2e4 100644 --- a/src/main/java/com/zcloud/util/PLSUtil.java +++ b/src/main/java/com/zcloud/util/PLSUtil.java @@ -1,10 +1,6 @@ package com.zcloud.util; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.zcloud.entity.Camera; -import com.zcloud.entity.Card; -import com.zcloud.entity.EmployeeData; import com.zcloud.entity.PageData; import com.zcloud.service.corp.CorpPlsInfoService; import com.zcloud.service.system.UsersService; @@ -12,17 +8,17 @@ import okhttp3.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; import javax.annotation.PostConstruct; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.*; @Component @@ -42,6 +38,77 @@ public class PLSUtil { restTemplate = restTemplatebean; } + /** + * @Description: 添加摄像头 + * @Author: dearLin + * @Date: 2024/1/25/025 14:37 + * @Param: [java.lang.String, java.lang.Integer, java.lang.Integer] [keywords, currentPage, showCount] + * @Return: com.alibaba.fastjson.JSONObject + */ + public static JSONObject saveCamera(String CORPINFO_ID, PageData camera) throws Exception { + HttpHeaders headers = new HttpHeaders(); + headers.set("Authorization", getToken(CORPINFO_ID)); + headers.setContentType(org.springframework.http.MediaType.valueOf("application/json")); + JSONObject uriVariables = new JSONObject(); + uriVariables.put("camNo",camera.getString("CODE")); + uriVariables.put("camName",camera.getString("VIDEONAME")); + uriVariables.put("camIp","127.0.0.1"); + uriVariables.put("type","0"); + uriVariables.put("port",""); + uriVariables.put("camUserName","1"); + uriVariables.put("camPassword","1"); + uriVariables.put("lon",""); + uriVariables.put("lat",""); + uriVariables.put("alt",""); + HttpEntity httpEntity = new HttpEntity<>(uriVariables,headers); +// HttpEntity httpEntity = new HttpEntity<>(uriVariables,headers); +// ResponseEntity jsonObjectResponseEntity = restTemplate.postForEntity(PLSUtil.BAKEADDR.get(CORPINFO_ID) + "/device/camera", +// httpEntity, JSONObject.class); + + + ResponseEntity exchange = restTemplate.exchange(PLSUtil.BAKEADDR.get(CORPINFO_ID) + "/device/camera", + HttpMethod.POST, + httpEntity, + JSONObject.class); + return exchange.getBody(); + } + /** + * @Description: 修改摄像头 + * @Author: dearLin + * @Date: 2024/1/25/025 14:37 + * @Param: [java.lang.String, java.lang.Integer, java.lang.Integer] [keywords, currentPage, showCount] + * @Return: com.alibaba.fastjson.JSONObject + */ + public static JSONObject editCamera(String CORPINFO_ID, PageData camera) throws Exception { + HttpHeaders headers = new HttpHeaders(); + headers.set("Authorization", getToken(CORPINFO_ID)); + headers.setContentType(org.springframework.http.MediaType.valueOf("application/json")); + JSONObject uriVariables = new JSONObject(); + uriVariables.put("camNo",camera.getString("CODE")); + uriVariables.put("camName",camera.getString("VIDEONAME")); + uriVariables.put("camId",camera.getString("PLS_ID")); + HttpEntity httpEntity = new HttpEntity<>(uriVariables,headers); + ResponseEntity exchange = restTemplate.exchange(PLSUtil.BAKEADDR.get(CORPINFO_ID) + "/device/camera", + HttpMethod.PUT, httpEntity, + JSONObject.class,uriVariables); + return exchange.getBody(); + } + /** + * @Description: 删除摄像头 + * @Author: dearLin + * @Date: 2024/1/25/025 14:37 + * @Param: [java.lang.String, java.lang.Integer, java.lang.Integer] [keywords, currentPage, showCount] + * @Return: com.alibaba.fastjson.JSONObject + */ + public static JSONObject removeCamera(String CORPINFO_ID, PageData camera) throws Exception { + HttpHeaders headers = new HttpHeaders(); + headers.set("Authorization", getToken(CORPINFO_ID)); + HttpEntity httpEntity = new HttpEntity<>(headers); + ResponseEntity exchange = restTemplate.exchange(PLSUtil.BAKEADDR.get(CORPINFO_ID) + "/device/camera/"+Integer.parseInt(camera.getString("PLS_ID")), HttpMethod.DELETE, httpEntity, JSONObject.class); + return exchange.getBody(); + } + + /** * @Description: 电子围栏列表 * @Author: dearLin @@ -175,7 +242,7 @@ public class PLSUtil { * @Param: [com.zcloud.entity.PageData] [user] * @Return: void */ - public static boolean saveUser(PageData user) throws Exception { + public static PageData saveUser(PageData user) throws Exception { String url = BAKEADDR.get(Jurisdiction.getCORPINFO_ID()) + "/deploy/psnmgt/insertPsnIfon"; JSONObject loginPayload = new JSONObject(); loginPayload.put("name", user.getString("NAME")); @@ -197,8 +264,8 @@ public class PLSUtil { loginPayload.put("deptName", ""); loginPayload.put("deptId", ""); loginPayload.put("avatar", ""); - PageData response = sendPostHttpRequest(url, loginPayload.toJSONString(), getToken(Jurisdiction.getCORPINFO_ID())); - return "200".equals(response.getString("code")); + return sendPostHttpRequest(url, loginPayload.toJSONString(), getToken(Jurisdiction.getCORPINFO_ID())); + } /** @@ -209,6 +276,15 @@ public class PLSUtil { * @Return: void */ public static boolean editUser(PageData user) throws Exception { + // 这个人没有卡号与人id的话 + if (!Tools.notEmpty(user.getString("PLS_ID"))) { + PageData response = saveUser(user); + if ("200".equals(response.getString("code"))) { + user.put("PLS_ID", response.getString("data")); + return true; + } + return false; + } String url = BAKEADDR.get(Jurisdiction.getCORPINFO_ID()) + "/deploy/psnmgt/updPsnInfoById"; JSONObject loginPayload = new JSONObject(); loginPayload.put("name", user.getString("NAME")); diff --git a/src/main/java/com/zcloud/util/RegexPatterns.java b/src/main/java/com/zcloud/util/RegexPatterns.java index ba5be80..2a80383 100644 --- a/src/main/java/com/zcloud/util/RegexPatterns.java +++ b/src/main/java/com/zcloud/util/RegexPatterns.java @@ -23,7 +23,7 @@ public class RegexPatterns { * 验证码正则, 6位数字或字母 */ public static final String VERIFY_CODE_REGEX = "^[a-zA-Z\\d]{6}$"; - public static final String VERIFY_CARDNO_REGEX = "^[0-9]{4}$"; + public static final String VERIFY_CARDNO_REGEX = "^[0-9]{5}$"; /** * 身份证号正则, 15位或者18位,最后一位可以为字母 */ diff --git a/src/main/resources/mybatis/datasource/system/UsersMapper.xml b/src/main/resources/mybatis/datasource/system/UsersMapper.xml index 4255f56..c951fa2 100644 --- a/src/main/resources/mybatis/datasource/system/UsersMapper.xml +++ b/src/main/resources/mybatis/datasource/system/UsersMapper.xml @@ -213,7 +213,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join OA_DEPARTMENT d on d.DEPARTMENT_ID=f.DEPARTMENT_ID left join SYS_POST p on p.POST_ID=f.POST_ID where - USER_ID = #{USER_ID} + USER_ID = #{USER_ID} and f.ISDELETE = 0 diff --git a/src/main/resources/mybatis/datasource/video/AIWarningMapper.xml b/src/main/resources/mybatis/datasource/video/AIWarningMapper.xml index 90506a3..330d7b1 100644 --- a/src/main/resources/mybatis/datasource/video/AIWarningMapper.xml +++ b/src/main/resources/mybatis/datasource/video/AIWarningMapper.xml @@ -65,13 +65,44 @@ #{HASHIDDEN}, #{AIWARNING_ID} - + + insert into + + ( + + ) values ( + + ) + + + update + + set + OPERATOR = #{OPERATOR}, + OPERATTIME = #{OPERATTIME}, + STATUS = #{STATUS}, + ISTRUE = #{ISTRUE}, + HASHIDDEN = #{HASHIDDEN} + where + AIWARNING_ID = #{AIWARNING_ID} + + + update + + set ISDELETE = '1' + where + AIWARNING_ID in + + #{str} + + +