فهرست منبع

视频直播间接口以及报警设备接口
2022年8月24日09时40分

纪新园 3 سال پیش
والد
کامیت
d7822b7830
27فایلهای تغییر یافته به همراه1701 افزوده شده و 328 حذف شده
  1. 60 43
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/liveBroadcast/controller/LiveBroadcastController.java
  2. 24 9
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitoringAlarms/controller/MonitoringAlarmsController.java
  3. 68 26
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/plugin/CcbController.java
  4. 41 3
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/appHold/AppWarehouseController.java
  5. 1 1
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/basicData/TWarehouseWebcamController.java
  6. 108 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/webcame/TMonitoringAlarmsController.java
  7. 6 0
      ruoyi-plugin/src/main/java/com/ruoyi/ccb/service/CcbHttpService.java
  8. 215 21
      ruoyi-plugin/src/main/java/com/ruoyi/ccb/service/impl/CcbHttpServiceImpl.java
  9. 13 0
      ruoyi-warehouse/src/main/java/com/ruoyi/basicData/domain/TWarehouseWebcam.java
  10. 7 0
      ruoyi-warehouse/src/main/java/com/ruoyi/basicData/mapper/TWarehouseWebcamMapper.java
  11. 11 0
      ruoyi-warehouse/src/main/java/com/ruoyi/quotation/domain/TSeaprice.java
  12. 46 45
      ruoyi-warehouse/src/main/java/com/ruoyi/quotation/service/impl/TSeapriceServiceImpl.java
  13. 402 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouse/warehouse/domain/TMonitoringAlarms.java
  14. 61 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouse/warehouse/mapper/TMonitoringAlarmsMapper.java
  15. 61 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouse/warehouse/service/ITMonitoringAlarmsService.java
  16. 93 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouse/warehouse/service/impl/TMonitoringAlarmsServiceImpl.java
  17. 13 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/TWarehouseBills.java
  18. 1 1
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehouseBillsMapper.java
  19. 5 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehousebillsitemsElabelMapper.java
  20. 1 1
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehouseBillsService.java
  21. 16 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/IWarehouseBillsCcbService.java
  22. 203 171
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java
  23. 36 1
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/WarehouseBillsCcbServiceImpl.java
  24. 14 2
      ruoyi-warehouse/src/main/resources/mapper/basicData/TWarehouseWebcamMapper.xml
  25. 176 0
      ruoyi-warehouse/src/main/resources/mapper/warehouse/TMonitoringAlarmsMapper.xml
  26. 15 4
      ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml
  27. 4 0
      ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsitemsElabelMapper.xml

+ 60 - 43
ruoyi-admin/src/main/java/com/ruoyi/web/controller/liveBroadcast/controller/LiveBroadcastController.java

@@ -3,15 +3,17 @@ package com.ruoyi.web.controller.liveBroadcast.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.basicData.domain.TWarehouseWebcam;
+import com.ruoyi.basicData.service.ITWarehouseWebcamService;
 import com.ruoyi.common.constant.LiveBroadcast;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.utils.JsonUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.models.auth.In;
 import okhttp3.OkHttpClient;
 import okhttp3.Request;
 import okhttp3.RequestBody;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -19,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.io.IOException;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
@@ -28,6 +31,9 @@ import java.util.Objects;
 @RequestMapping("/api/LiveBroadcast")
 public class LiveBroadcastController {
 
+    @Autowired
+    private ITWarehouseWebcamService itWarehouseWebcamService;
+
     /**
      * 获取access_token
      */
@@ -95,10 +101,10 @@ public class LiveBroadcastController {
     @ApiOperation("根据监控点编号查询直播间信息")
     @PostMapping(value = "/cameraCode")
     public AjaxResult cameraCode(@RequestParam(value = "cameraCode", required = false) String cameraCode,
-                            @RequestParam(value = "streamType", required = false) String streamType,
-                            @RequestParam(value = "projectId") String projectId,
+                                 @RequestParam(value = "streamType", required = false) String streamType,
+                                 @RequestParam(value = "projectId") String projectId,
                                  @RequestParam(value = "Authorization") String Authorization,
-                             @RequestParam(value = "token") String token
+                                 @RequestParam(value = "token") String token
     ) {
 
         Map<String, Object> rsp = new HashMap<>();
@@ -109,8 +115,8 @@ public class LiveBroadcastController {
 
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
-                .addHeader("access_token",token)
-                .addHeader("Authorization",Authorization)
+                .addHeader("access_token", token)
+                .addHeader("Authorization", Authorization)
                 .url(LiveBroadcast.CAMERA_CODE)
                 .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
                 .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
@@ -153,8 +159,8 @@ public class LiveBroadcastController {
 
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
-                .addHeader("Authorization",Authorization)
-                .addHeader("access_token",token)
+                .addHeader("Authorization", Authorization)
+                .addHeader("access_token", token)
                 .url(LiveBroadcast.CREATE)
                 .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
                 .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
@@ -191,8 +197,8 @@ public class LiveBroadcastController {
 
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
-                .addHeader("access_token",token)
-                .addHeader("Authorization",Authorization)
+                .addHeader("access_token", token)
+                .addHeader("Authorization", Authorization)
                 .url(LiveBroadcast.DELETE)
                 .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
                 .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
@@ -217,9 +223,9 @@ public class LiveBroadcastController {
     @ApiOperation("开启直播")
     @PostMapping(value = "/open")
     public AjaxResult open(@RequestParam(value = "source") String source,
-                             @RequestParam(value = "projectId") String projectId,
-                             @RequestParam(value = "Authorization") String Authorization,
-                             @RequestParam(value = "token") String token
+                           @RequestParam(value = "projectId") String projectId,
+                           @RequestParam(value = "Authorization") String Authorization,
+                           @RequestParam(value = "token") String token
     ) {
 
         Map<String, Object> rsp = new HashMap<>();
@@ -229,8 +235,8 @@ public class LiveBroadcastController {
 
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
-                .addHeader("access_token",token)
-                .addHeader("Authorization",Authorization)
+                .addHeader("access_token", token)
+                .addHeader("Authorization", Authorization)
                 .url(LiveBroadcast.OPEN)
                 .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
                 .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
@@ -255,9 +261,9 @@ public class LiveBroadcastController {
     @ApiOperation("关闭直播")
     @PostMapping(value = "/close")
     public AjaxResult close(@RequestParam(value = "source") String source,
-                           @RequestParam(value = "projectId") String projectId,
-                           @RequestParam(value = "Authorization") String Authorization,
-                           @RequestParam(value = "token") String token
+                            @RequestParam(value = "projectId") String projectId,
+                            @RequestParam(value = "Authorization") String Authorization,
+                            @RequestParam(value = "token") String token
     ) {
 
         Map<String, Object> rsp = new HashMap<>();
@@ -267,8 +273,8 @@ public class LiveBroadcastController {
 
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
-                .addHeader("access_token",token)
-                .addHeader("Authorization",Authorization)
+                .addHeader("access_token", token)
+                .addHeader("Authorization", Authorization)
                 .url(LiveBroadcast.CLOSE)
                 .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
                 .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
@@ -293,9 +299,9 @@ public class LiveBroadcastController {
     @ApiOperation("根据直播源查询直播地址")
     @PostMapping(value = "/address")
     public AjaxResult address(@RequestParam(value = "source") String source,
-                            @RequestParam(value = "projectId") String projectId,
-                            @RequestParam(value = "Authorization") String Authorization,
-                            @RequestParam(value = "token") String token
+                              @RequestParam(value = "projectId") String projectId,
+                              @RequestParam(value = "Authorization") String Authorization,
+                              @RequestParam(value = "token") String token
     ) {
 
         Map<String, Object> rsp = new HashMap<>();
@@ -305,8 +311,8 @@ public class LiveBroadcastController {
 
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
-                .addHeader("access_token",token)
-                .addHeader("Authorization",Authorization)
+                .addHeader("access_token", token)
+                .addHeader("Authorization", Authorization)
                 .url(LiveBroadcast.ADDRESS)
                 .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
                 .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
@@ -332,13 +338,13 @@ public class LiveBroadcastController {
     @ApiOperation("添加设备")
     @PostMapping(value = "/save")
     public AjaxResult save(@RequestParam(value = "deviceSerial") String deviceSerial,
-                              @RequestParam(value = "validateCode") String validateCode,
-                              @RequestParam(value = "deviceOrgId") String deviceOrgId,
-                              @RequestParam(value = "deviceName",required = false) String deviceName,
-                              @RequestParam(value = "modelType",required = false) String modelType,
-                              @RequestParam(value = "projectId") String projectId,
-                              @RequestParam(value = "Authorization") String Authorization,
-                              @RequestParam(value = "token") String token
+                           @RequestParam(value = "validateCode") String validateCode,
+                           @RequestParam(value = "deviceOrgId") String deviceOrgId,
+                           @RequestParam(value = "deviceName", required = false) String deviceName,
+                           @RequestParam(value = "modelType", required = false) String modelType,
+                           @RequestParam(value = "projectId") String projectId,
+                           @RequestParam(value = "Authorization") String Authorization,
+                           @RequestParam(value = "token") String token
     ) {
 
         Map<String, Object> rsp = new HashMap<>();
@@ -352,8 +358,8 @@ public class LiveBroadcastController {
 
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
-                .addHeader("access_token",token)
-                .addHeader("Authorization",Authorization)
+                .addHeader("access_token", token)
+                .addHeader("Authorization", Authorization)
                 .url(LiveBroadcast.SAVE)
                 .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
                 .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
@@ -369,6 +375,18 @@ public class LiveBroadcastController {
         }
         System.out.println(s);
         JSONObject result = JSON.parseObject(s);
+        if ("200".equals(result.get("data"))) {
+            TWarehouseWebcam tWarehouseWebcam = new TWarehouseWebcam();
+            tWarehouseWebcam.setProjectId(projectId);
+            tWarehouseWebcam.setfWarehouseName("");
+            tWarehouseWebcam.setfWarehouseId(null);
+            tWarehouseWebcam.setDeviceSerial(deviceSerial);
+            tWarehouseWebcam.setDeviceName(deviceName);
+            tWarehouseWebcam.setCode("");
+            tWarehouseWebcam.setCreateBy("设备添加");
+            tWarehouseWebcam.setCreateTime(new Date());
+            itWarehouseWebcamService.insertTWarehouseWebcam(tWarehouseWebcam);
+        }
         return AjaxResult.success(result);
     }
 
@@ -378,12 +396,12 @@ public class LiveBroadcastController {
     @ApiOperation("获取Web端视频监控画面")
     @PostMapping(value = "/videoWeb")
     public AjaxResult videoWeb(@RequestParam(value = "deviceSerial") String deviceSerial,
-                           @RequestParam(value = "channelNo",required = false) String channelNo,
-                           @RequestParam(value = "videoLevel",required = false) String videoLevel,
-                           @RequestParam(value = "recordType",required = false) String recordType,
-                           @RequestParam(value = "projectId") String projectId,
-                           @RequestParam(value = "Authorization") String Authorization,
-                           @RequestParam(value = "token") String token
+                               @RequestParam(value = "channelNo", required = false) String channelNo,
+                               @RequestParam(value = "videoLevel", required = false) String videoLevel,
+                               @RequestParam(value = "recordType", required = false) String recordType,
+                               @RequestParam(value = "projectId") String projectId,
+                               @RequestParam(value = "Authorization") String Authorization,
+                               @RequestParam(value = "token") String token
     ) {
 
         Map<String, Object> rsp = new HashMap<>();
@@ -396,8 +414,8 @@ public class LiveBroadcastController {
 
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
-                .addHeader("access_token",token)
-                .addHeader("Authorization",Authorization)
+                .addHeader("access_token", token)
+                .addHeader("Authorization", Authorization)
                 .url(LiveBroadcast.VIDEO_WEB)
                 .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
                 .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
@@ -417,5 +435,4 @@ public class LiveBroadcastController {
     }
 
 
-
 }

+ 24 - 9
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitoringAlarms/controller/MonitoringAlarmsController.java

@@ -2,22 +2,21 @@ package com.ruoyi.web.controller.monitoringAlarms.controller;
 
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.common.constant.MonitoringAlarms;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.utils.JsonUtil;
-import com.ruoyi.common.utils.sign.Md5Utils;
+import com.ruoyi.warehouse.warehouse.domain.TMonitoringAlarms;
+import com.ruoyi.warehouse.warehouse.service.ITMonitoringAlarmsService;
 import com.ruoyi.web.controller.monitoringAlarms.main.OpenApi;
-import com.ruoyi.web.controller.monitoringAlarms.req.QueryAlarmInfoListBean;
-import com.ruoyi.web.controller.monitoringAlarms.utils.HttpUtil;
-import com.ruoyi.web.controller.monitoringAlarms.utils.RequestUtils;
-import com.ruoyi.web.controller.monitoringAlarms.utils.VerifyCodeUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import okhttp3.OkHttpClient;
 import okhttp3.Request;
 import okhttp3.RequestBody;
-import org.apache.commons.codec.digest.DigestUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -25,14 +24,19 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.util.*;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 
 @Api("报警设备相关接口")
 @RestController
 @RequestMapping("/api")
 public class MonitoringAlarmsController {
 
+    @Autowired
+    private ITMonitoringAlarmsService tMonitoringAlarmsService;
+
 
     /**
      * 获取接口调用凭证
@@ -75,8 +79,19 @@ public class MonitoringAlarmsController {
     public AjaxResult queryAlarmList(@RequestParam(value = "pageNum") int pageNum,
                                      @RequestParam(value = "pageSize") int pageSize,
                                      @RequestParam(value = "token") String token) {
-        String retStr = OpenApi.queryAlarmList(MonitoringAlarms.API_PREFIX_DEV,token);
+        String retStr = OpenApi.queryAlarmList(MonitoringAlarms.API_PREFIX_DEV, token);
         JSONObject result = JSON.parseObject(retStr);
+        if ("200".equals(result.get("code"))) {
+            List<TMonitoringAlarms> list = JSONArray.parseArray(result.get("data").toString(), TMonitoringAlarms.class);
+            for (TMonitoringAlarms tMonitoringAlarms : list) {
+                TMonitoringAlarms alarms =  tMonitoringAlarmsService.selectTMonitoringAlarmsById(tMonitoringAlarms.getId());
+                if (ObjectUtils.isNotNull(alarms)){
+                    tMonitoringAlarmsService.updateTMonitoringAlarms(tMonitoringAlarms);
+                }else{
+                    tMonitoringAlarmsService.insertTMonitoringAlarms(tMonitoringAlarms);
+                }
+            }
+        }
         return AjaxResult.success(result);
     }
 

+ 68 - 26
ruoyi-admin/src/main/java/com/ruoyi/web/controller/plugin/CcbController.java

@@ -2,15 +2,21 @@ package com.ruoyi.web.controller.plugin;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.ruoyi.basicData.domain.TWarehouseWebcam;
+import com.ruoyi.basicData.service.ITWarehouseService;
+import com.ruoyi.basicData.service.ITWarehouseWebcamService;
 import com.ruoyi.ccb.domain.*;
 import com.ruoyi.ccb.domain.basic.Page;
 import com.ruoyi.ccb.service.CcbHttpService;
 import com.ruoyi.common.constant.CcbConstants;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.TWarehouse;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.JsonUtil;
 import com.ruoyi.common.utils.ShaUtil;
-import com.ruoyi.framework.web.domain.server.Sys;
+import com.ruoyi.warehouse.warehouse.domain.TMonitoringAlarms;
+import com.ruoyi.warehouse.warehouse.service.ITMonitoringAlarmsService;
 import lombok.AllArgsConstructor;
 import okhttp3.OkHttpClient;
 import okhttp3.Request;
@@ -20,8 +26,9 @@ import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 
@@ -39,6 +46,15 @@ public class CcbController {
     @Autowired
     private CcbHttpService ccbHttpService;
 
+    @Autowired
+    private ITWarehouseService itWarehouseService;
+
+    @Autowired
+    private ITWarehouseWebcamService itWarehouseWebcamService;
+
+    @Autowired
+    private ITMonitoringAlarmsService itMonitoringAlarmsService;
+
     /**
      * 查询保管凭证号
      *
@@ -267,35 +283,61 @@ public class CcbController {
      */
     @GetMapping("/deviceAlarm")
     public AjaxResult deviceAlarm() {
-
-        Date date = new Date();
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        String time = simpleDateFormat.format(date);
-
 
         DeviceAlarm deviceAlarm = new DeviceAlarm();
         deviceAlarm.setReqUser("涂宝");
 
         List<DeviceException> deviceExceptionList = new ArrayList<>();
 
-        DeviceException deviceException = new DeviceException();
-        deviceException.setWarehouseName("630号 ");
-        deviceException.setWarehouseNo("630号");
-        deviceException.setShelvesName("黄岛区");
-        deviceException.setBTypeName("设备异常");
-        deviceException.setBType("异常");
-        deviceException.setReMark("设备连接异常");
-        deviceException.setETime(time);
-        deviceException.setElectronicTag("0101");
-
-        List<DevicesDetail> devicesDetailList = DevicesDetail.date();
-        deviceException.setDeviceInfo(devicesDetailList.get(0));
-
-        deviceExceptionList.add(deviceException);
-
-        deviceAlarm.setDeviceException(deviceExceptionList);
+        List<TMonitoringAlarms> tMonitoringAlarmsList = itMonitoringAlarmsService.selectTMonitoringAlarmsList(new TMonitoringAlarms());
+        for (TMonitoringAlarms tMonitoringAlarms : tMonitoringAlarmsList) {
+
+            DeviceException deviceException = new DeviceException();
+
+            DevicesDetail devicesDetail = new DevicesDetail();
+
+            //设备信息
+            TWarehouseWebcam deviceDetail = itWarehouseWebcamService.selectTWarehouseWebcamByDeviceSerial(tMonitoringAlarms.getDeviceId());
+            if (ObjectUtils.isNotNull(deviceDetail)) {
+                //仓库信息
+                TWarehouse tWarehouse = itWarehouseService.selectTWarehouseById(deviceDetail.getfWarehouseId());
+                deviceException.setWarehouseName(deviceDetail.getfWarehouseName());
+                if (ObjectUtils.isNotNull(tWarehouse)) {
+                    deviceException.setWarehouseNo(tWarehouse.getfNo());
+                    deviceException.setShelvesName(tWarehouse.getfLocation() + "");
+                }
+                devicesDetail.setHardwareName(deviceDetail.getDeviceName());
+                if (ObjectUtils.isNotNull(tMonitoringAlarms.getAlarmDate())) {
+                    String time = simpleDateFormat.format(deviceDetail.getCreateTime());
+                    devicesDetail.setMonitorTime(time);
+                }
+                if (ObjectUtils.isNotNull(deviceDetail.getCreateTime())) {
+                    String time = simpleDateFormat.format(deviceDetail.getCreateTime());
+                    devicesDetail.setLastTime(time);
+                }
+            }
+            deviceException.setBTypeName(tMonitoringAlarms.getAlarmLocation());
+            deviceException.setBType(tMonitoringAlarms.getAlarmTypeName());
+            deviceException.setReMark(tMonitoringAlarms.getAlarmSiteDescription());
+            if (ObjectUtils.isNotNull(tMonitoringAlarms.getAlarmDate())) {
+                String time = simpleDateFormat.format(tMonitoringAlarms.getAlarmDate());
+                deviceException.setETime(time);
+            }
+            deviceException.setElectronicTag("1");
+            devicesDetail.setHardwareListId("");
+            devicesDetail.setHardwareType("摄像头");
+            devicesDetail.setDeviceStatus("可用");
+            devicesDetail.setNetStat("正常");
+            devicesDetail.setDeviceId(tMonitoringAlarms.getDeviceId());
+            deviceException.setDeviceInfo(devicesDetail);
+
+            deviceExceptionList.add(deviceException);
+
+            deviceAlarm.setDeviceException(deviceExceptionList);
+        }
 
-        System.out.println("请求内容:"+JsonUtil.toJson(deviceAlarm));
+        System.out.println("请求内容:" + JsonUtil.toJson(deviceAlarm));
 
         String requestTime = DateUtils.dateTimeNow() + (Math.random() * 9 + 1) * 100000;
         // 签名内容
@@ -320,16 +362,16 @@ public class CcbController {
         String s;
         try {
             s = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
-            System.out.println("请求成功返回信息:"+s);
+            System.out.println("请求成功返回信息:" + s);
         } catch (IOException e) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            return AjaxResult.error("请求银行反馈异常," + e.getMessage());
+            return AjaxResult.error("请求反馈异常," + e.getMessage());
         }
 
         JSONObject result = JSON.parseObject(s);
         if (!CcbConstants.SUCCESS.equals(result.getString("result"))) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            return AjaxResult.error("请求银行反馈失败," + result.getString("reason"));
+            return AjaxResult.error("请求反馈失败," + result.getString("reason"));
         }
         return AjaxResult.success("成功");
     }

+ 41 - 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/appHold/AppWarehouseController.java

@@ -227,11 +227,21 @@ public class AppWarehouseController extends BaseController {
         map.put("fMblno", fMblno);
         map.put("fMarks", fMarks);
         map.put("fOriginalbilldate", fOriginalbilldate);
-        List<Map<String, Long>> wareMap = itWarehouseBillsService.selectWareIdAndItemId(map);
+        List<Map<String, Object>> wareMap = itWarehouseBillsService.selectWareIdAndItemId(map);
         if (ObjectUtil.isNotNull(wareMap)) {
             String[] arrs = fContent.split(",");
-            for (Map<String, Long> map1 : wareMap) {
+            for (Map<String, Object> map1 : wareMap) {
                 for (String arr : arrs) {
+
+                    TWarehousebillsitemsElabel tWarehousebillsitemsElabel1 = new TWarehousebillsitemsElabel();
+                    tWarehousebillsitemsElabel1.setfType(1);
+                    tWarehousebillsitemsElabel1.setfStatus(0);
+                    tWarehousebillsitemsElabel1.setfContent(fContent);
+                    List<TWarehousebillsitemsElabel> tWarehousebillsitemsElabelList1 = labelService.selectItemsElabelList(tWarehousebillsitemsElabel1);
+                    if (tWarehousebillsitemsElabelList1.size() == 0) {
+                        return AjaxResult.error("标签号"+arr+"未入库,请重新录入");
+                    }
+
                     TWarehousebillsitemsElabel tWarehousebillsitemsElabel = new TWarehousebillsitemsElabel();
                     tWarehousebillsitemsElabel.setfPid(Long.valueOf(String.valueOf(map1.get("itemId"))));
                     tWarehousebillsitemsElabel.setfGPid(Long.valueOf(String.valueOf(map1.get("fId"))));
@@ -240,7 +250,12 @@ public class AppWarehouseController extends BaseController {
                     tWarehousebillsitemsElabel.setfContent(arr);
                     List<TWarehousebillsitemsElabel> tWarehousebillsitemsElabelList = labelService.selectItemsElabelList(tWarehousebillsitemsElabel);
                     if (tWarehousebillsitemsElabelList.size() == 0) {
-                        return AjaxResult.error("标签号:" + fContent + "不在改单号里,请重新录入");
+                        TWarehousebillsitems tWarehousebillsitems = itWarehousebillsitemsService.selectTWarehousebillsitemsById(tWarehousebillsitemsElabelList1.get(0).getfPid());
+                        if (ObjectUtil.isNotNull(tWarehousebillsitems)) {
+                            return AjaxResult.error("标签号:" + arr + "在" + tWarehousebillsitems.getfMblno() + "单号中,请重新录入");
+                        } else {
+                            return AjaxResult.error("标签号:" + arr + "不在" + fMblno + "单号中,请重新录入");
+                        }
                     }
                 }
             }
@@ -250,4 +265,27 @@ public class AppWarehouseController extends BaseController {
         return AjaxResult.success();
     }
 
+    /**
+     * 判断标签是否已存在
+     */
+    @GetMapping(value = "/isLabel")
+    public AjaxResult isLabel(@RequestParam(value = "fId") Long fId,
+                              @RequestParam(value = "itemId") Long itemId,
+                              @RequestParam(value = "type") int type,
+                              @RequestParam(value = "fContent") String fContent) {
+        if (ObjectUtil.isNull(fContent) || ObjectUtil.isNull(fId) || ObjectUtil.isNull(itemId) || ObjectUtil.isNull(type)) {
+            return AjaxResult.error("数据不能为空");
+        }
+        TWarehousebillsitemsElabel tWarehousebillsitemsElabel = new TWarehousebillsitemsElabel();
+       /* tWarehousebillsitemsElabel.setfPid(fId);
+        tWarehousebillsitemsElabel.setfGPid(itemId);*/
+        tWarehousebillsitemsElabel.setfType(type);
+        tWarehousebillsitemsElabel.setfContent(fContent);
+        List<TWarehousebillsitemsElabel> tWarehousebillsitemsElabelList = labelService.selectItemsElabelList(tWarehousebillsitemsElabel);
+        if (tWarehousebillsitemsElabelList.size() != 0) {
+            return AjaxResult.error("该标签号:" + fContent + "已扫描,请重新录入");
+        }
+        return AjaxResult.success();
+    }
+
 }

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/basicData/TWarehouseWebcamController.java

@@ -112,7 +112,7 @@ public class TWarehouseWebcamController extends BaseController {
         if (StringUtils.isNotNull(tWarehouseWebcamService.selectTWarehouseWebcamByDeviceSerial(tWarehouseWebcam.getDeviceSerial()))) {
             return AjaxResult.error("设备序列号已存在");
         }
-
+        tWarehouseWebcam.setProjectId("951186895306992");
         return toAjax(tWarehouseWebcamService.insertTWarehouseWebcam(tWarehouseWebcam));
     }
 

+ 108 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/webcame/TMonitoringAlarmsController.java

@@ -0,0 +1,108 @@
+package com.ruoyi.web.controller.warehouse.webcame;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.warehouse.warehouse.domain.TMonitoringAlarms;
+import com.ruoyi.warehouse.warehouse.service.ITMonitoringAlarmsService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 仓库报警设备Controller
+ * 
+ * @author jixinyuan
+ * @date 2022-08-22
+ */
+@RestController
+@RequestMapping("/warehouse/alarms")
+public class TMonitoringAlarmsController extends BaseController
+{
+    @Autowired
+    private ITMonitoringAlarmsService tMonitoringAlarmsService;
+
+    /**
+     * 查询仓库报警设备列表
+     */
+    @PreAuthorize("@ss.hasPermi('warehouse:alarms:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TMonitoringAlarms tMonitoringAlarms)
+    {
+        startPage();
+        List<TMonitoringAlarms> list = tMonitoringAlarmsService.selectTMonitoringAlarmsList(tMonitoringAlarms);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出仓库报警设备列表
+     */
+    @PreAuthorize("@ss.hasPermi('warehouse:alarms:export')")
+    @Log(title = "仓库报警设备", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(TMonitoringAlarms tMonitoringAlarms)
+    {
+        List<TMonitoringAlarms> list = tMonitoringAlarmsService.selectTMonitoringAlarmsList(tMonitoringAlarms);
+        ExcelUtil<TMonitoringAlarms> util = new ExcelUtil<TMonitoringAlarms>(TMonitoringAlarms.class);
+        return util.exportExcel(list, "alarms");
+    }
+
+    /**
+     * 获取仓库报警设备详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('warehouse:alarms:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(tMonitoringAlarmsService.selectTMonitoringAlarmsById(id));
+    }
+
+    /**
+     * 新增仓库报警设备
+     */
+    @PreAuthorize("@ss.hasPermi('warehouse:alarms:add')")
+    @Log(title = "仓库报警设备", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TMonitoringAlarms tMonitoringAlarms)
+    {
+        return toAjax(tMonitoringAlarmsService.insertTMonitoringAlarms(tMonitoringAlarms));
+    }
+
+    /**
+     * 修改仓库报警设备
+     */
+    @PreAuthorize("@ss.hasPermi('warehouse:alarms:edit')")
+    @Log(title = "仓库报警设备", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TMonitoringAlarms tMonitoringAlarms)
+    {
+        return toAjax(tMonitoringAlarmsService.updateTMonitoringAlarms(tMonitoringAlarms));
+    }
+
+    /**
+     * 删除仓库报警设备
+     */
+    @PreAuthorize("@ss.hasPermi('warehouse:alarms:remove')")
+    @Log(title = "仓库报警设备", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(tMonitoringAlarmsService.deleteTMonitoringAlarmsByIds(ids));
+    }
+}

+ 6 - 0
ruoyi-plugin/src/main/java/com/ruoyi/ccb/service/CcbHttpService.java

@@ -1,7 +1,12 @@
 package com.ruoyi.ccb.service;
 
+import com.ruoyi.basicData.domain.TWarehouseWebcam;
 import com.ruoyi.ccb.domain.*;
 import com.ruoyi.ccb.domain.basic.Page;
+import com.ruoyi.common.core.domain.entity.TWarehouse;
+import com.ruoyi.warehouse.warehouse.domain.TMonitoringAlarms;
+
+import java.util.List;
 
 /**
  * CCB-HTTP接口
@@ -164,4 +169,5 @@ public interface CcbHttpService {
      * @return 结果
      */
     FindDeviceData findDeviceHistoryData(HistoryData historyData);
+
 }

+ 215 - 21
ruoyi-plugin/src/main/java/com/ruoyi/ccb/service/impl/CcbHttpServiceImpl.java

@@ -4,22 +4,31 @@ import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageInfo;
+import com.ruoyi.basicData.domain.TWarehouseWebcam;
 import com.ruoyi.ccb.domain.*;
 import com.ruoyi.ccb.domain.basic.CargoDetail;
 import com.ruoyi.ccb.domain.basic.CargoLockInfo;
 import com.ruoyi.ccb.domain.basic.Page;
 import com.ruoyi.ccb.domain.basic.SyncedOrg;
 import com.ruoyi.ccb.service.CcbHttpService;
+import com.ruoyi.common.constant.LiveBroadcast;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.JsonUtil;
 import com.ruoyi.reportManagement.domain.TWhgenleg;
+import com.ruoyi.warehouse.warehouse.domain.TMonitoringAlarms;
 import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
 import com.ruoyi.warehouseBusiness.service.IWarehouseBillsCcbService;
 import lombok.AllArgsConstructor;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -216,12 +225,12 @@ public class CcbHttpServiceImpl implements CcbHttpService {
         System.out.println(pledge);
         List<CargoDetail> cargos = pledge.getCargos();
         int count = 0;
-        for (CargoDetail cargosDetail:cargos) {
+        for (CargoDetail cargosDetail : cargos) {
             String wrNumber = ccbService.generateWrNumber(pledge.getUserName(), cargosDetail.getBlNumber(), true);
-            if (ObjectUtil.isNotNull(wrNumber)){
+            if (ObjectUtil.isNotNull(wrNumber)) {
                 cargosDetail.setWrNumber(wrNumber);
                 count++;
-            }else{
+            } else {
                 cargosDetail.setWrNumber("");
             }
         }
@@ -618,13 +627,26 @@ public class CcbHttpServiceImpl implements CcbHttpService {
      */
     @Override
     public Devices listAllDevices(Devices devices) {
-        if (ObjectUtil.isNull(devices.getPageNo())){
+        if (ObjectUtil.isNull(devices.getPageNo())) {
             devices.setPageNo(1);
         }
-        if (ObjectUtil.isNull(devices.getPageSize())){
+        if (ObjectUtil.isNull(devices.getPageSize())) {
             devices.setPageSize(10);
         }
-        List<DeviceDetail> devicesDetailList = DeviceDetail.date();
+        List<TWarehouseWebcam> tWarehouseWebcamList = ccbService.selectListAllDevices(devices.getPageNo(), devices.getPageSize(),null);
+        List<DeviceDetail> devicesDetailList = new ArrayList<>();
+        for (TWarehouseWebcam tWarehouseWebcam : tWarehouseWebcamList) {
+            DeviceDetail deviceDetail = new DeviceDetail();
+            deviceDetail.setDeviceName(tWarehouseWebcam.getDeviceName());
+            deviceDetail.setDeviceId(tWarehouseWebcam.getDeviceSerial());
+            deviceDetail.setValid(true);
+            deviceDetail.setDeviceType("摄像头");
+            deviceDetail.setDeviceAccessMethod("http请求");
+            deviceDetail.setDeviceAccessAddress("https://test.wms.tubaosoft.com/");
+            deviceDetail.setDeviceLocationCode(tWarehouseWebcam.getfWarehouseId() + "");
+            deviceDetail.setDeviceAccessCode(tWarehouseWebcam.getProjectId());
+            devicesDetailList.add(deviceDetail);
+        }
         Devices devices1 = new Devices();
         devices1.setContent(devicesDetailList);
         devices1.setPageNo(devices.getPageNo());
@@ -641,10 +663,18 @@ public class CcbHttpServiceImpl implements CcbHttpService {
      */
     @Override
     public DeviceDetail findDeviceById(String deviceId) {
-        List<DeviceDetail> devicesDetailList = DeviceDetail.date();
-        Optional<DeviceDetail> devicesDetail = devicesDetailList.stream().filter(item -> item.getDeviceId().equals(deviceId)).findFirst();
+        TWarehouseWebcam tWarehouseWebcam = ccbService.selectByDeviceId(deviceId);
         DeviceDetail detail = new DeviceDetail();
-        BeanUtils.copyProperties(devicesDetail.get(), detail);
+        if (ObjectUtil.isNotNull(tWarehouseWebcam)){
+            detail.setDeviceName(tWarehouseWebcam.getDeviceName());
+            detail.setDeviceId(tWarehouseWebcam.getDeviceSerial());
+            detail.setValid(true);
+            detail.setDeviceType("摄像头");
+            detail.setDeviceAccessMethod("http请求");
+            detail.setDeviceAccessAddress("https://test.wms.tubaosoft.com/");
+            detail.setDeviceLocationCode(tWarehouseWebcam.getfWarehouseId() + "");
+            detail.setDeviceAccessCode(tWarehouseWebcam.getProjectId());
+        }
         return detail;
     }
 
@@ -656,14 +686,28 @@ public class CcbHttpServiceImpl implements CcbHttpService {
      */
     @Override
     public Devices findDevicesByStorage(DevicesByStorage devicesByStorage) {
-        if (ObjectUtil.isNull(devicesByStorage.getPageNo())){
+        if (ObjectUtil.isNull(devicesByStorage.getPageNo())) {
             devicesByStorage.setPageNo(1);
         }
-        if (ObjectUtil.isNull(devicesByStorage.getPageSize())){
+        if (ObjectUtil.isNull(devicesByStorage.getPageSize())) {
             devicesByStorage.setPageSize(10);
         }
-        List<DeviceDetail> devicesDetailList = DeviceDetail.date();
-        List<DeviceDetail> deviceDetails = devicesDetailList.stream().filter(item -> item.getDeviceLocationCode().equals(devicesByStorage.getDeviceLocationCode())).collect(Collectors.toList());
+        List<DeviceDetail> deviceDetails = new ArrayList<>();
+        if (ObjectUtil.isNotNull(devicesByStorage)){
+            List<TWarehouseWebcam> tWarehouseWebcamList = ccbService.selectListAllDevices(devicesByStorage.getPageNo(), devicesByStorage.getPageSize(),Long.parseLong(devicesByStorage.getDeviceLocationCode()));
+            for (TWarehouseWebcam tWarehouseWebcam : tWarehouseWebcamList) {
+                DeviceDetail deviceDetail = new DeviceDetail();
+                deviceDetail.setDeviceName(tWarehouseWebcam.getDeviceName());
+                deviceDetail.setDeviceId(tWarehouseWebcam.getDeviceSerial());
+                deviceDetail.setValid(true);
+                deviceDetail.setDeviceType("摄像头");
+                deviceDetail.setDeviceAccessMethod("http请求");
+                deviceDetail.setDeviceAccessAddress("https://test.wms.tubaosoft.com/");
+                deviceDetail.setDeviceLocationCode(tWarehouseWebcam.getfWarehouseId() + "");
+                deviceDetail.setDeviceAccessCode(tWarehouseWebcam.getProjectId());
+                deviceDetails.add(deviceDetail);
+            }
+        }
         Devices devices = new Devices();
         devices.setContent(deviceDetails);
         devices.setPageNo(devicesByStorage.getPageNo());
@@ -680,11 +724,86 @@ public class CcbHttpServiceImpl implements CcbHttpService {
      */
     @Override
     public FindDeviceData findDeviceData(String deviceId) {
-        List<DevicesDetail> devicesDetailList = DevicesDetail.date();
-        List<String> devicesDetail = devicesDetailList.stream().map(DevicesDetail::getDeviceId).collect(Collectors.toList());
-        List<String> deviceIds = devicesDetail.stream().filter(item -> item.equals(deviceId)).collect(Collectors.toList());
+
+        List<String> deviceIds = new ArrayList<>();
+
         FindDeviceData findDeviceData = new FindDeviceData();
-        findDeviceData.setUrl("");
+
+        if (ObjectUtil.isNotNull(deviceId)){
+            String body = "client_id=" + LiveBroadcast.APP_KEY + "&client_secret=" + LiveBroadcast.SECRET_KEY + "";
+
+            OkHttpClient okHttpClient = new OkHttpClient();
+            Request request = new Request.Builder()
+                    .addHeader("User-Agent", "Apipost client Runtime/+https://www.apipost.cn/")
+                    .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                    .url(LiveBroadcast.GET_ACCESS_TOKEN)
+                    .method("post", RequestBody.create(okhttp3.MediaType.parse("application/x-www-form-urlencoded"), body))
+                    .post(RequestBody.create(okhttp3.MediaType.parse("application/x-www-form-urlencoded"), body))
+                    .build();
+
+            String videoWeb = "";
+            try {
+                String tokenR = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+                JSONObject result = JSON.parseObject(tokenR);
+                if ("200".equals(result.get("code"))){
+                    Map<String, Object> rsp = new HashMap<>();
+                    rsp.put("productCode", "1640070936703286");
+                    Request request1 = new Request.Builder()
+                            .addHeader("access_token", result.get("access_token").toString())
+                            .url(LiveBroadcast.TOKEN_JWT)
+                            .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
+                            .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
+                            .build();
+
+                    System.out.println("请求数据=   " + JsonUtil.toJson(rsp));
+                    try {
+                        String authorization = Objects.requireNonNull(okHttpClient.newCall(request1).execute().body()).string();
+                        JSONObject authorizationR = JSON.parseObject(authorization);
+                        if ("200".equals(authorizationR.get("code"))){
+                            Map<String, Object> rsp1 = new HashMap<>();
+
+                            rsp1.put("deviceSerial", deviceId);
+                            rsp1.put("projectId", "951186895306992");
+                            rsp1.put("channelNo", "");
+                            rsp1.put("videoLevel", "");
+                            rsp1.put("recordType", "");
+
+                            Request request2 = new Request.Builder()
+                                    .addHeader("access_token", result.get("access_token").toString())
+                                    .addHeader("Authorization",authorizationR.get("").toString())
+                                    .url(LiveBroadcast.VIDEO_WEB)
+                                    .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp1)))
+                                    .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp1)))
+                                    .build();
+
+                            System.out.println("请求数据=   " + JsonUtil.toJson(rsp1));
+                            try {
+                                 videoWeb = Objects.requireNonNull(okHttpClient.newCall(request2).execute().body()).string();
+                            } catch (IOException e) {
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                System.out.println("请求反馈异常," + e.getMessage());
+                                System.out.println("获取摄像头地址失败");
+                            }
+                        }
+                    } catch (IOException e) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        System.out.println("请求反馈异常," + e.getMessage());
+                        System.out.println("获取全局token失败");
+                    }
+                }
+            } catch (IOException e) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                System.out.println("请求反馈异常," + e.getMessage());
+                System.out.println("获取token失败");
+            }
+            JSONObject result = JSON.parseObject(videoWeb);
+            if ("200".equals(result.get("code"))){
+                deviceIds.add(deviceId);
+                findDeviceData.setUrl(result.get("previewUrl").toString());
+            }else{
+                findDeviceData.setUrl("");
+            }
+        }
         findDeviceData.setDeviceId(deviceIds);
         return findDeviceData;
     }
@@ -697,11 +816,85 @@ public class CcbHttpServiceImpl implements CcbHttpService {
      */
     @Override
     public FindDeviceData findDeviceHistoryData(HistoryData historyData) {
-        List<DevicesDetail> devicesDetailList = DevicesDetail.date();
-        List<String> devicesDetail = devicesDetailList.stream().map(DevicesDetail::getDeviceId).collect(Collectors.toList());
-        List<String> deviceIds = devicesDetail.stream().filter(item -> item.equals(historyData.getDeviceId())).collect(Collectors.toList());
+        List<String> deviceIds = new ArrayList<>();
+
         FindDeviceData findDeviceData = new FindDeviceData();
-        findDeviceData.setUrl("");
+
+        if (ObjectUtil.isNotNull(historyData.getDeviceId())){
+            String body = "client_id=" + LiveBroadcast.APP_KEY + "&client_secret=" + LiveBroadcast.SECRET_KEY + "";
+
+            OkHttpClient okHttpClient = new OkHttpClient();
+            Request request = new Request.Builder()
+                    .addHeader("User-Agent", "Apipost client Runtime/+https://www.apipost.cn/")
+                    .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                    .url(LiveBroadcast.GET_ACCESS_TOKEN)
+                    .method("post", RequestBody.create(okhttp3.MediaType.parse("application/x-www-form-urlencoded"), body))
+                    .post(RequestBody.create(okhttp3.MediaType.parse("application/x-www-form-urlencoded"), body))
+                    .build();
+
+            String videoWeb = "";
+            try {
+                String tokenR = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+                JSONObject result = JSON.parseObject(tokenR);
+                if ("200".equals(result.get("code"))){
+                    Map<String, Object> rsp = new HashMap<>();
+                    rsp.put("productCode", "1640070936703286");
+                    Request request1 = new Request.Builder()
+                            .addHeader("access_token", result.get("access_token").toString())
+                            .url(LiveBroadcast.TOKEN_JWT)
+                            .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
+                            .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
+                            .build();
+
+                    System.out.println("请求数据=   " + JsonUtil.toJson(rsp));
+                    try {
+                        String authorization = Objects.requireNonNull(okHttpClient.newCall(request1).execute().body()).string();
+                        JSONObject authorizationR = JSON.parseObject(authorization);
+                        if ("200".equals(authorizationR.get("code"))){
+                            Map<String, Object> rsp1 = new HashMap<>();
+
+                            rsp1.put("deviceSerial", historyData.getDeviceId());
+                            rsp1.put("projectId", "951186895306992");
+                            rsp1.put("channelNo", "");
+                            rsp1.put("videoLevel", "");
+                            rsp1.put("recordType", "");
+
+                            Request request2 = new Request.Builder()
+                                    .addHeader("access_token", result.get("access_token").toString())
+                                    .addHeader("Authorization",authorizationR.get("").toString())
+                                    .url(LiveBroadcast.VIDEO_WEB)
+                                    .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp1)))
+                                    .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp1)))
+                                    .build();
+
+                            System.out.println("请求数据=   " + JsonUtil.toJson(rsp1));
+                            try {
+                                videoWeb = Objects.requireNonNull(okHttpClient.newCall(request2).execute().body()).string();
+                            } catch (IOException e) {
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                System.out.println("请求反馈异常," + e.getMessage());
+                                System.out.println("获取摄像头地址失败");
+                            }
+                        }
+                    } catch (IOException e) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        System.out.println("请求反馈异常," + e.getMessage());
+                        System.out.println("获取全局token失败");
+                    }
+                }
+            } catch (IOException e) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                System.out.println("请求反馈异常," + e.getMessage());
+                System.out.println("获取token失败");
+            }
+            JSONObject result = JSON.parseObject(videoWeb);
+            if ("200".equals(result.get("code"))){
+                deviceIds.add(historyData.getDeviceId());
+                findDeviceData.setUrl(result.get("playbackUrl").toString());
+            }else{
+                findDeviceData.setUrl("");
+            }
+        }
         findDeviceData.setDeviceId(deviceIds);
         return findDeviceData;
     }
@@ -754,6 +947,7 @@ public class CcbHttpServiceImpl implements CcbHttpService {
             item.setfVolumn(BigDecimal.ZERO);
             item.setfBillstatus(10L);
             item.setElectronicTags(cargo.getElectronicTags());
+            item.setfOriginalbilldate(cargo.getInStorageDate());
             items.add(item);
         }
         return items;

+ 13 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/domain/TWarehouseWebcam.java

@@ -54,6 +54,19 @@ public class TWarehouseWebcam extends BaseEntity {
      */
     private String delFlag;
 
+    /**
+     * 萤石云验证码
+     */
+    private String code;
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
     public void setfId(Long fId) {
         this.fId = fId;
     }

+ 7 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/mapper/TWarehouseWebcamMapper.java

@@ -76,4 +76,11 @@ public interface TWarehouseWebcamMapper {
      * @return 仓库摄像头集合
      */
     public List<TWarehouseWebcam> selectAppTWarehouseWebcamList(@Param("fWarehouseId") Long fWarehouseId, @Param("external") String external);
+
+    /**
+     * 获取所有可用设备列表
+     *
+     * @return
+     */
+    List<TWarehouseWebcam> selectTWarehouseWebcamByPage(@Param("pageNo")int pageNo, @Param("pageSize")int pageSize, @Param("deviceLocationCode")Long deviceLocationCode);
 }

+ 11 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/quotation/domain/TSeaprice.java

@@ -196,6 +196,17 @@ public class TSeaprice extends BaseEntity
     /** 订舱代理ID */
     private String fBookagentid;
 
+    /** 陆运费 */
+    private BigDecimal landFee;
+
+    public BigDecimal getLandFee() {
+        return landFee;
+    }
+
+    public void setLandFee(BigDecimal landFee) {
+        this.landFee = landFee;
+    }
+
     @Override
     public String getCreateBy() {
         return createBy;

+ 46 - 45
ruoyi-warehouse/src/main/java/com/ruoyi/quotation/service/impl/TSeapriceServiceImpl.java

@@ -2,6 +2,7 @@ package com.ruoyi.quotation.service.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.basicData.domain.TCorps;
 import com.ruoyi.basicData.mapper.TCorpsMapper;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -25,13 +26,12 @@ import java.util.stream.Collectors;
 
 /**
  * 海运价主Service业务层处理
- * 
+ *
  * @author ruoyi
  * @date 2021-06-01
  */
 @Service
-public class TSeapriceServiceImpl implements ITSeapriceService
-{
+public class TSeapriceServiceImpl implements ITSeapriceService {
     @Autowired
     private TCorpsMapper tCorpsMapper;
 
@@ -45,18 +45,19 @@ public class TSeapriceServiceImpl implements ITSeapriceService
     private TSeapriceitemMapper tSeapriceitemMapper;
 
     /**
-     *  查询海运报价列表信息
+     * 查询海运报价列表信息
+     *
      * @param tSeaprice 条件
-     * @return  结果
+     * @return 结果
      */
     @Override
     public Map<String, List<Map<String, Object>>> selectTSeapriceMapList(TSeaprice tSeaprice) {
         Map<String, List<Map<String, Object>>> map = new HashMap<>();
-        List<Map<String, Object>> list =tSeapriceMapper.selectTSeapriceMapList(tSeaprice);
+        List<Map<String, Object>> list = tSeapriceMapper.selectTSeapriceMapList(tSeaprice);
         List<Map<String, Object>> result = new ArrayList<>();
         //新增主表内带item逻辑
         for (int i = 0; i < list.size(); i++) {
-            Map<String,Object> m = list.get(i);
+            Map<String, Object> m = list.get(i);
             //获取主表id
             Long fId = Long.parseLong(String.valueOf(m.get("fId")));
             //获取明细表数据,填充到主表map
@@ -68,8 +69,8 @@ public class TSeapriceServiceImpl implements ITSeapriceService
             m.put("seapriceFees", tSeapriceitemMapper.selectTSeapriceitemList(tSeapriceitem));
             result.add(m);
         }
-        map.put("list1",list);
-        map.put("list2",result);
+        map.put("list1", list);
+        map.put("list2", result);
         return map;
     }
 
@@ -81,11 +82,11 @@ public class TSeapriceServiceImpl implements ITSeapriceService
      */
     @Override
     public List<Map<String, Object>> selectTSeapriceMapListApp(TSeaprice tSeaprice) {
-        List<Map<String, Object>> list =tSeapriceMapper.selectTSeapriceMapList(tSeaprice);
+        List<Map<String, Object>> list = tSeapriceMapper.selectTSeapriceMapList(tSeaprice);
         List<Map<String, Object>> result = new ArrayList<>();
         //新增主表内带item逻辑
         for (int i = 0; i < list.size(); i++) {
-            Map<String,Object> m = list.get(i);
+            Map<String, Object> m = list.get(i);
             //获取主表id
             Long fId = Long.parseLong(String.valueOf(m.get("fId")));
             //获取明细表数据,填充到主表map
@@ -100,13 +101,12 @@ public class TSeapriceServiceImpl implements ITSeapriceService
 
     /**
      * 查询海运价主
-     * 
+     *
      * @param fId 海运价主ID
      * @return 海运价主
      */
     @Override
-    public AjaxResult selectTSeapriceById(Long fId)
-    {
+    public AjaxResult selectTSeapriceById(Long fId) {
         TSeaprice tSeaprice = tSeapriceMapper.selectTSeapriceById(fId);
         if (StringUtils.isNull(tSeaprice)) {
             return AjaxResult.error("请确认该单据是否存在");
@@ -124,13 +124,12 @@ public class TSeapriceServiceImpl implements ITSeapriceService
 
     /**
      * 查询海运价主列表
-     * 
+     *
      * @param tSeaprice 海运价主
      * @return 海运价主
      */
     @Override
-    public List<TSeaprice> selectTSeapriceList(TSeaprice tSeaprice)
-    {
+    public List<TSeaprice> selectTSeapriceList(TSeaprice tSeaprice) {
         return tSeapriceMapper.selectTSeapriceList(tSeaprice);
     }
 
@@ -341,13 +340,13 @@ public class TSeapriceServiceImpl implements ITSeapriceService
         // 海运费 * 数量 + 其他运费合计
         otherAmt = otherAmt.add(tSeaprice.getRmb().multiply(new BigDecimal(tSeaprice.getfQty())));
         // (海运费合计 + 其他运费合计) / 2
-        map.put("amt", oceanAmt.add(otherAmt).divide(new BigDecimal(tSeaprice.getfQty()),2,BigDecimal.ROUND_HALF_UP));
+        map.put("amt", oceanAmt.add(otherAmt).divide(new BigDecimal(tSeaprice.getfQty()), 2, BigDecimal.ROUND_HALF_UP));
         /*BigDecimal amt = oceanAmt.multiply(new BigDecimal(tSeaprice.getfQty())).add(tSeaprice.getExrate().multiply(new BigDecimal(tSeaprice.getfQty()))).add(otherAmt);
         map.put("amt", amt.divide(new BigDecimal(tSeaprice.getfQty()),2,BigDecimal.ROUND_HALF_UP));*/
-        List<Map<String,Object>> mapList = tSeapriceMapper.selectSeapriceItem(tSeaprice);
-        List<Map<String,Object>> newMap = new ArrayList<>();
-        for (Map<String,Object> ma:mapList) {
-            if (!ma.get("fUnitprice").equals(0.0)){
+        List<Map<String, Object>> mapList = tSeapriceMapper.selectSeapriceItem(tSeaprice);
+        List<Map<String, Object>> newMap = new ArrayList<>();
+        for (Map<String, Object> ma : mapList) {
+            if (!ma.get("fUnitprice").equals(0.0)) {
                 newMap.add(ma);
             }
         }
@@ -358,8 +357,9 @@ public class TSeapriceServiceImpl implements ITSeapriceService
 
     /**
      * 动态查询海运费、汇率
+     *
      * @param tSeaprice 条件
-     * @return  结果
+     * @return 结果
      */
     @Override
     public AjaxResult changeSelectShippingFee(TSeaprice tSeaprice) {
@@ -368,7 +368,8 @@ public class TSeapriceServiceImpl implements ITSeapriceService
     }
 
     /**
-     *  查询所需基础资料
+     * 查询所需基础资料
+     *
      * @return
      */
     @Override
@@ -382,11 +383,12 @@ public class TSeapriceServiceImpl implements ITSeapriceService
     }
 
     /**
-     *  校验主表必填项是否填写
+     * 校验主表必填项是否填写
+     *
      * @param seaprice
      * @return
      */
-    public AjaxResult checkSeaprice (TSeaprice seaprice) {
+    public AjaxResult checkSeaprice(TSeaprice seaprice) {
         if (StringUtils.isNull(seaprice.getfBilltype())) {
             return AjaxResult.error("请维护业务类型");
         }
@@ -409,18 +411,19 @@ public class TSeapriceServiceImpl implements ITSeapriceService
     }
 
     /**
-     *  校验明细表必填项是否填写
+     * 校验明细表必填项是否填写
+     *
      * @param tSeapriceitems
      * @return
      */
-    public AjaxResult checkSeapriceItem (List<TSeapriceitem> tSeapriceitems, String fType) {
+    public AjaxResult checkSeapriceItem(List<TSeapriceitem> tSeapriceitems, String fType) {
         int line = 1;
         for (TSeapriceitem item : tSeapriceitems) {
             if (StringUtils.isNull(item.getfFeeid())) {
                 if ("0".equalsIgnoreCase(fType)) {
-                    return AjaxResult.error("请维护海运费表第"+line+ "行未选择费用");
+                    return AjaxResult.error("请维护海运费表第" + line + "行未选择费用");
                 }
-                return AjaxResult.error("请维护杂费表第"+line+ "行未选择费用");
+                return AjaxResult.error("请维护杂费表第" + line + "行未选择费用");
             }
         }
         line++;
@@ -428,14 +431,15 @@ public class TSeapriceServiceImpl implements ITSeapriceService
     }
 
     /**
-     *  新增或更新明细信息
-     * @param tSeapriceitems    明细信息
-     * @param fId               主表id
-     * @param fType             类型
-     * @return  结果
+     * 新增或更新明细信息
+     *
+     * @param tSeapriceitems 明细信息
+     * @param fId            主表id
+     * @param fType          类型
+     * @return 结果
      */
     @Transactional
-    public AjaxResult insertOrUpdateItem (List<TSeapriceitem> tSeapriceitems, Long fId, String fType) {
+    public AjaxResult insertOrUpdateItem(List<TSeapriceitem> tSeapriceitems, Long fId, String fType) {
         for (TSeapriceitem item : tSeapriceitems) {
             item.setfPid(fId);
             item.setfType(fType);
@@ -454,27 +458,25 @@ public class TSeapriceServiceImpl implements ITSeapriceService
 
     /**
      * 修改海运价主
-     * 
+     *
      * @param tSeaprice 海运价主
      * @return 结果
      */
     @Override
-    public int updateTSeaprice(TSeaprice tSeaprice)
-    {
+    public int updateTSeaprice(TSeaprice tSeaprice) {
         tSeaprice.setUpdateTime(DateUtils.getNowDate());
         return tSeapriceMapper.updateTSeaprice(tSeaprice);
     }
 
     /**
      * 批量删除海运价主
-     * 
+     *
      * @param fIds 需要删除的海运价主ID
      * @return 结果
      */
     @Override
     @Transactional
-    public AjaxResult deleteTSeapriceByIds(Long[] fIds)
-    {
+    public AjaxResult deleteTSeapriceByIds(Long[] fIds) {
         for (Long l : fIds) {
             tSeapriceitemMapper.deleteTSeapriceitemByfPid(l);
             tSeapriceMapper.deleteTSeapriceById(l);
@@ -484,13 +486,12 @@ public class TSeapriceServiceImpl implements ITSeapriceService
 
     /**
      * 删除海运价主信息
-     * 
+     *
      * @param fId 海运价主ID
      * @return 结果
      */
     @Override
-    public int deleteTSeapriceById(Long fId)
-    {
+    public int deleteTSeapriceById(Long fId) {
         return tSeapriceMapper.deleteTSeapriceById(fId);
     }
 }

+ 402 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouse/warehouse/domain/TMonitoringAlarms.java

@@ -0,0 +1,402 @@
+package com.ruoyi.warehouse.warehouse.domain;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 仓库报警设备对象 t_monitoring_alarms
+ * 
+ * @author jixinyuan
+ * @date 2022-08-22
+ */
+public class TMonitoringAlarms extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createDate;
+
+    /** 更新时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updateDate;
+
+    /** 告警时间  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "告警时间 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date alarmDate;
+
+    private List<String> alarmDateStart;
+
+    /** 告警处理时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "告警处理时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date alarmDealDate;
+
+    private List<String> alarmDealDateStart;
+
+    /** 告警处理人 */
+    @Excel(name = "告警处理人")
+    private String alarmDealPeople;
+
+    /** 告警处理结果 1 火灾误报,2 正常处理
+ */
+    @Excel(name = "告警处理结果 1 火灾误报,2 正常处理 ")
+    private String alarmDealResult;
+
+    /** 告警 id */
+    @Excel(name = "告警 id")
+    private Long alarmId;
+
+    /** 告警位置 */
+    @Excel(name = "告警位置")
+    private String alarmLocation;
+
+    /** 告警图片 */
+    @Excel(name = "告警图片")
+    private String alarmPicUrl;
+
+    /** 告警状态 1 未处理,3 已处理 */
+    @Excel(name = "告警状态 1 未处理,3 已处理")
+    private String alarmState;
+
+    /** 设备 ID */
+    @Excel(name = "设备 ID")
+    private String deviceId;
+
+    /** 设备名 */
+    @Excel(name = "设备名")
+    private String deviceName;
+
+    /** 设备位置 */
+    @Excel(name = "设备位置")
+    private String deviceLocation;
+
+    /** 设备别名 */
+    @Excel(name = "设备别名")
+    private String dNickName;
+
+    /** 设备状态 0 表示离线,1 表示在线 */
+    @Excel(name = "设备状态 0 表示离线,1 表示在线")
+    private Long deviceState;
+
+    /** 告警类型  */
+    @Excel(name = "告警类型 ")
+    private Integer alarmType;
+
+    /** 告警类型名称 */
+    @Excel(name = "告警类型名称")
+    private String alarmTypeName;
+
+    /** 现场告警情况描述 */
+    @Excel(name = "现场告警情况描述")
+    private String alarmSiteDescription;
+
+    /** 处理方案及结果 */
+    @Excel(name = "处理方案及结果")
+    private String alarmPlanResult;
+
+    /** 现场照片 */
+    @Excel(name = "现场照片")
+    private String alarmSiteimgUrl;
+
+    /** 项目 Id */
+    @Excel(name = "项目 Id")
+    private Long projectId;
+
+    /** 项目名称 */
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    /** 客户 Id  */
+    @Excel(name = "客户 Id ")
+    private Long companyId;
+
+    /** 客户名称 */
+    @Excel(name = "客户名称")
+    private String companyName;
+
+    public List<String> getAlarmDateStart() {
+        return alarmDateStart;
+    }
+
+    public void setAlarmDateStart(List<String> alarmDateStart) {
+        this.alarmDateStart = alarmDateStart;
+    }
+
+    public List<String> getAlarmDealDateStart() {
+        return alarmDealDateStart;
+    }
+
+    public void setAlarmDealDateStart(List<String> alarmDealDateStart) {
+        this.alarmDealDateStart = alarmDealDateStart;
+    }
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setCreateDate(Date createDate) 
+    {
+        this.createDate = createDate;
+    }
+
+    public Date getCreateDate() 
+    {
+        return createDate;
+    }
+    public void setUpdateDate(Date updateDate) 
+    {
+        this.updateDate = updateDate;
+    }
+
+    public Date getUpdateDate() 
+    {
+        return updateDate;
+    }
+    public void setAlarmDate(Date alarmDate) 
+    {
+        this.alarmDate = alarmDate;
+    }
+
+    public Date getAlarmDate() 
+    {
+        return alarmDate;
+    }
+    public void setAlarmDealDate(Date alarmDealDate) 
+    {
+        this.alarmDealDate = alarmDealDate;
+    }
+
+    public Date getAlarmDealDate() 
+    {
+        return alarmDealDate;
+    }
+    public void setAlarmDealPeople(String alarmDealPeople) 
+    {
+        this.alarmDealPeople = alarmDealPeople;
+    }
+
+    public String getAlarmDealPeople() 
+    {
+        return alarmDealPeople;
+    }
+    public void setAlarmDealResult(String alarmDealResult) 
+    {
+        this.alarmDealResult = alarmDealResult;
+    }
+
+    public String getAlarmDealResult() 
+    {
+        return alarmDealResult;
+    }
+    public void setAlarmId(Long alarmId) 
+    {
+        this.alarmId = alarmId;
+    }
+
+    public Long getAlarmId() 
+    {
+        return alarmId;
+    }
+    public void setAlarmLocation(String alarmLocation) 
+    {
+        this.alarmLocation = alarmLocation;
+    }
+
+    public String getAlarmLocation() 
+    {
+        return alarmLocation;
+    }
+    public void setAlarmPicUrl(String alarmPicUrl) 
+    {
+        this.alarmPicUrl = alarmPicUrl;
+    }
+
+    public String getAlarmPicUrl() 
+    {
+        return alarmPicUrl;
+    }
+    public void setAlarmState(String alarmState) 
+    {
+        this.alarmState = alarmState;
+    }
+
+    public String getAlarmState() 
+    {
+        return alarmState;
+    }
+    public void setDeviceId(String deviceId) 
+    {
+        this.deviceId = deviceId;
+    }
+
+    public String getDeviceId() 
+    {
+        return deviceId;
+    }
+    public void setDeviceName(String deviceName) 
+    {
+        this.deviceName = deviceName;
+    }
+
+    public String getDeviceName() 
+    {
+        return deviceName;
+    }
+    public void setDeviceLocation(String deviceLocation) 
+    {
+        this.deviceLocation = deviceLocation;
+    }
+
+    public String getDeviceLocation() 
+    {
+        return deviceLocation;
+    }
+    public void setdNickName(String dNickName) 
+    {
+        this.dNickName = dNickName;
+    }
+
+    public String getdNickName() 
+    {
+        return dNickName;
+    }
+    public void setDeviceState(Long deviceState) 
+    {
+        this.deviceState = deviceState;
+    }
+
+    public Long getDeviceState() 
+    {
+        return deviceState;
+    }
+    public void setAlarmType(Integer alarmType) 
+    {
+        this.alarmType = alarmType;
+    }
+
+    public Integer getAlarmType() 
+    {
+        return alarmType;
+    }
+    public void setAlarmTypeName(String alarmTypeName) 
+    {
+        this.alarmTypeName = alarmTypeName;
+    }
+
+    public String getAlarmTypeName() 
+    {
+        return alarmTypeName;
+    }
+    public void setAlarmSiteDescription(String alarmSiteDescription) 
+    {
+        this.alarmSiteDescription = alarmSiteDescription;
+    }
+
+    public String getAlarmSiteDescription() 
+    {
+        return alarmSiteDescription;
+    }
+    public void setAlarmPlanResult(String alarmPlanResult) 
+    {
+        this.alarmPlanResult = alarmPlanResult;
+    }
+
+    public String getAlarmPlanResult() 
+    {
+        return alarmPlanResult;
+    }
+    public void setAlarmSiteimgUrl(String alarmSiteimgUrl) 
+    {
+        this.alarmSiteimgUrl = alarmSiteimgUrl;
+    }
+
+    public String getAlarmSiteimgUrl() 
+    {
+        return alarmSiteimgUrl;
+    }
+    public void setProjectId(Long projectId) 
+    {
+        this.projectId = projectId;
+    }
+
+    public Long getProjectId() 
+    {
+        return projectId;
+    }
+    public void setProjectName(String projectName) 
+    {
+        this.projectName = projectName;
+    }
+
+    public String getProjectName() 
+    {
+        return projectName;
+    }
+    public void setCompanyId(Long companyId) 
+    {
+        this.companyId = companyId;
+    }
+
+    public Long getCompanyId() 
+    {
+        return companyId;
+    }
+    public void setCompanyName(String companyName) 
+    {
+        this.companyName = companyName;
+    }
+
+    public String getCompanyName() 
+    {
+        return companyName;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("createDate", getCreateDate())
+            .append("updateDate", getUpdateDate())
+            .append("alarmDate", getAlarmDate())
+            .append("alarmDealDate", getAlarmDealDate())
+            .append("alarmDealPeople", getAlarmDealPeople())
+            .append("alarmDealResult", getAlarmDealResult())
+            .append("alarmId", getAlarmId())
+            .append("alarmLocation", getAlarmLocation())
+            .append("alarmPicUrl", getAlarmPicUrl())
+            .append("alarmState", getAlarmState())
+            .append("deviceId", getDeviceId())
+            .append("deviceName", getDeviceName())
+            .append("deviceLocation", getDeviceLocation())
+            .append("dNickName", getdNickName())
+            .append("deviceState", getDeviceState())
+            .append("alarmType", getAlarmType())
+            .append("alarmTypeName", getAlarmTypeName())
+            .append("alarmSiteDescription", getAlarmSiteDescription())
+            .append("alarmPlanResult", getAlarmPlanResult())
+            .append("alarmSiteimgUrl", getAlarmSiteimgUrl())
+            .append("projectId", getProjectId())
+            .append("projectName", getProjectName())
+            .append("companyId", getCompanyId())
+            .append("companyName", getCompanyName())
+            .toString();
+    }
+}

+ 61 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouse/warehouse/mapper/TMonitoringAlarmsMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.warehouse.warehouse.mapper;
+
+import java.util.List;
+import com.ruoyi.warehouse.warehouse.domain.TMonitoringAlarms;
+
+/**
+ * 仓库报警设备Mapper接口
+ * 
+ * @author jixinyuan
+ * @date 2022-08-22
+ */
+public interface TMonitoringAlarmsMapper 
+{
+    /**
+     * 查询仓库报警设备
+     * 
+     * @param id 仓库报警设备ID
+     * @return 仓库报警设备
+     */
+    public TMonitoringAlarms selectTMonitoringAlarmsById(Long id);
+
+    /**
+     * 查询仓库报警设备列表
+     * 
+     * @param tMonitoringAlarms 仓库报警设备
+     * @return 仓库报警设备集合
+     */
+    public List<TMonitoringAlarms> selectTMonitoringAlarmsList(TMonitoringAlarms tMonitoringAlarms);
+
+    /**
+     * 新增仓库报警设备
+     * 
+     * @param tMonitoringAlarms 仓库报警设备
+     * @return 结果
+     */
+    public int insertTMonitoringAlarms(TMonitoringAlarms tMonitoringAlarms);
+
+    /**
+     * 修改仓库报警设备
+     * 
+     * @param tMonitoringAlarms 仓库报警设备
+     * @return 结果
+     */
+    public int updateTMonitoringAlarms(TMonitoringAlarms tMonitoringAlarms);
+
+    /**
+     * 删除仓库报警设备
+     * 
+     * @param id 仓库报警设备ID
+     * @return 结果
+     */
+    public int deleteTMonitoringAlarmsById(Long id);
+
+    /**
+     * 批量删除仓库报警设备
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteTMonitoringAlarmsByIds(Long[] ids);
+}

+ 61 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouse/warehouse/service/ITMonitoringAlarmsService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.warehouse.warehouse.service;
+
+import java.util.List;
+import com.ruoyi.warehouse.warehouse.domain.TMonitoringAlarms;
+
+/**
+ * 仓库报警设备Service接口
+ * 
+ * @author jixinyuan
+ * @date 2022-08-22
+ */
+public interface ITMonitoringAlarmsService 
+{
+    /**
+     * 查询仓库报警设备
+     * 
+     * @param id 仓库报警设备ID
+     * @return 仓库报警设备
+     */
+    public TMonitoringAlarms selectTMonitoringAlarmsById(Long id);
+
+    /**
+     * 查询仓库报警设备列表
+     * 
+     * @param tMonitoringAlarms 仓库报警设备
+     * @return 仓库报警设备集合
+     */
+    public List<TMonitoringAlarms> selectTMonitoringAlarmsList(TMonitoringAlarms tMonitoringAlarms);
+
+    /**
+     * 新增仓库报警设备
+     * 
+     * @param tMonitoringAlarms 仓库报警设备
+     * @return 结果
+     */
+    public int insertTMonitoringAlarms(TMonitoringAlarms tMonitoringAlarms);
+
+    /**
+     * 修改仓库报警设备
+     * 
+     * @param tMonitoringAlarms 仓库报警设备
+     * @return 结果
+     */
+    public int updateTMonitoringAlarms(TMonitoringAlarms tMonitoringAlarms);
+
+    /**
+     * 批量删除仓库报警设备
+     * 
+     * @param ids 需要删除的仓库报警设备ID
+     * @return 结果
+     */
+    public int deleteTMonitoringAlarmsByIds(Long[] ids);
+
+    /**
+     * 删除仓库报警设备信息
+     * 
+     * @param id 仓库报警设备ID
+     * @return 结果
+     */
+    public int deleteTMonitoringAlarmsById(Long id);
+}

+ 93 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouse/warehouse/service/impl/TMonitoringAlarmsServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.warehouse.warehouse.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.warehouse.warehouse.mapper.TMonitoringAlarmsMapper;
+import com.ruoyi.warehouse.warehouse.domain.TMonitoringAlarms;
+import com.ruoyi.warehouse.warehouse.service.ITMonitoringAlarmsService;
+
+/**
+ * 仓库报警设备Service业务层处理
+ * 
+ * @author jixinyuan
+ * @date 2022-08-22
+ */
+@Service
+public class TMonitoringAlarmsServiceImpl implements ITMonitoringAlarmsService 
+{
+    @Autowired
+    private TMonitoringAlarmsMapper tMonitoringAlarmsMapper;
+
+    /**
+     * 查询仓库报警设备
+     * 
+     * @param id 仓库报警设备ID
+     * @return 仓库报警设备
+     */
+    @Override
+    public TMonitoringAlarms selectTMonitoringAlarmsById(Long id)
+    {
+        return tMonitoringAlarmsMapper.selectTMonitoringAlarmsById(id);
+    }
+
+    /**
+     * 查询仓库报警设备列表
+     * 
+     * @param tMonitoringAlarms 仓库报警设备
+     * @return 仓库报警设备
+     */
+    @Override
+    public List<TMonitoringAlarms> selectTMonitoringAlarmsList(TMonitoringAlarms tMonitoringAlarms)
+    {
+        return tMonitoringAlarmsMapper.selectTMonitoringAlarmsList(tMonitoringAlarms);
+    }
+
+    /**
+     * 新增仓库报警设备
+     * 
+     * @param tMonitoringAlarms 仓库报警设备
+     * @return 结果
+     */
+    @Override
+    public int insertTMonitoringAlarms(TMonitoringAlarms tMonitoringAlarms)
+    {
+        return tMonitoringAlarmsMapper.insertTMonitoringAlarms(tMonitoringAlarms);
+    }
+
+    /**
+     * 修改仓库报警设备
+     * 
+     * @param tMonitoringAlarms 仓库报警设备
+     * @return 结果
+     */
+    @Override
+    public int updateTMonitoringAlarms(TMonitoringAlarms tMonitoringAlarms)
+    {
+        return tMonitoringAlarmsMapper.updateTMonitoringAlarms(tMonitoringAlarms);
+    }
+
+    /**
+     * 批量删除仓库报警设备
+     * 
+     * @param ids 需要删除的仓库报警设备ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTMonitoringAlarmsByIds(Long[] ids)
+    {
+        return tMonitoringAlarmsMapper.deleteTMonitoringAlarmsByIds(ids);
+    }
+
+    /**
+     * 删除仓库报警设备信息
+     * 
+     * @param id 仓库报警设备ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTMonitoringAlarmsById(Long id)
+    {
+        return tMonitoringAlarmsMapper.deleteTMonitoringAlarmsById(id);
+    }
+}

+ 13 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/TWarehouseBills.java

@@ -700,6 +700,19 @@ public class TWarehouseBills extends BaseEntity {
      */
     private String fVoyTwoName;
 
+    /**
+     * 是否质押
+     */
+    private String isPledge;
+
+    public String getIsPledge() {
+        return isPledge;
+    }
+
+    public void setIsPledge(String isPledge) {
+        this.isPledge = isPledge;
+    }
+
     public Long getfShipTwo() {
         return fShipTwo;
     }

+ 1 - 1
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehouseBillsMapper.java

@@ -335,5 +335,5 @@ public interface TWarehouseBillsMapper extends BaseMapper<TWarehouseBills> {
      * @param map
      * @return
      */
-    List<Map<String, Long>> selectWareIdAndItemId(Map<String, Object> map);
+    List<Map<String, Object>> selectWareIdAndItemId(Map<String, Object> map);
 }

+ 5 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehousebillsitemsElabelMapper.java

@@ -22,6 +22,11 @@ public interface TWarehousebillsitemsElabelMapper {
      * 修改状态
      */
     void updateStatus(TWarehousebillsitemsElabel elabel);
+
+    /**
+     * 修改状态
+     */
+    void updateStatusS(TWarehousebillsitemsElabel elabel);
     /**
      * 删一条
      */

+ 1 - 1
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehouseBillsService.java

@@ -914,5 +914,5 @@ public interface ITWarehouseBillsService {
      * @param map
      * @return
      */
-    List<Map<String, Long>> selectWareIdAndItemId(Map<String, Object> map);
+    List<Map<String, Object>> selectWareIdAndItemId(Map<String, Object> map);
 }

+ 16 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/IWarehouseBillsCcbService.java

@@ -1,7 +1,9 @@
 package com.ruoyi.warehouseBusiness.service;
 
+import com.ruoyi.basicData.domain.TWarehouseWebcam;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.reportManagement.domain.TWhgenleg;
+import com.ruoyi.warehouse.warehouse.domain.TMonitoringAlarms;
 import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
 
 import java.util.List;
@@ -119,5 +121,19 @@ public interface IWarehouseBillsCcbService {
      */
     String generateWrNumber(String belongTo, String billNo, boolean isWrNumber);
 
+    /**
+     * 获取所有可用设备列表
+     *
+     * @return
+     */
+    List<TWarehouseWebcam> selectListAllDevices(int pageNo,int pageSize,Long deviceLocationCode);
+
+    /**
+     * 获取指定设备
+     *
+     * @param deviceId 设备id
+     * @return 结果
+     */
+    TWarehouseWebcam selectByDeviceId(String deviceId);
 
 }

+ 203 - 171
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -4302,93 +4302,93 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 
         // 处理银行反馈
         if (WarehouseTypeEnum.SJRK.getType().equals(billsType)) {
-            SysConfig feedbackConfig = sysConfigMapper.checkConfigKeyUnique("bank.feedback");
-            if (ObjectUtil.isNotNull(feedbackConfig) && "0".equals(feedbackConfig.getConfigValue())) {
-                // 出入库不同处理
-                TCorps corp = tCorpsMapper.selectTCorpsById(tWarehouseBills.getfCorpid());
-                if (ObjectUtil.isNull(corp)) {
-                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    return AjaxResult.error("请求银行反馈异常,未找到客户");
-                }
+            if (ObjectUtil.isNotNull(tWarehouseBills.getIsPledge())){
+                SysConfig feedbackConfig = sysConfigMapper.checkConfigKeyUnique("bank.feedback");
+                if (ObjectUtil.isNotNull(feedbackConfig) && "0".equals(feedbackConfig.getConfigValue())) {
+                    // 出入库不同处理
+                    TCorps corp = tCorpsMapper.selectTCorpsById(tWarehouseBills.getfCorpid());
+                    if (ObjectUtil.isNull(corp)) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("请求银行反馈异常,未找到客户");
+                    }
 
-                InCargoRsp rsp = new InCargoRsp();
-                rsp.setUserName(corp.getfCname());
-                rsp.setUscc(corp.getUscc());
-                rsp.setReqUser(corp.getfCname());
+                    InCargoRsp rsp = new InCargoRsp();
+                    rsp.setUserName(corp.getfCname());
+                    rsp.setUscc(corp.getUscc());
+                    rsp.setReqUser(corp.getfCname());
 
-                List<Map<String, Object>> stockList = tWhgenlegMapper.selectStockList(tWarehouseBills.getfBillno(), tWarehouseBills.getfCorpid());
-                if (CollectionUtil.isEmpty(stockList)) {
-                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    return AjaxResult.error("请求银行反馈异常,未找到库存");
-                }
+                    List<Map<String, Object>> stockList = tWhgenlegMapper.selectStockList(tWarehouseBills.getfBillno(), tWarehouseBills.getfCorpid());
+                    if (CollectionUtil.isEmpty(stockList)) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("请求银行反馈异常,未找到库存");
+                    }
 
-                List<CargoInOutResult> inOutResults = new ArrayList<>();
-                stockList.forEach(stockMap -> {
-                    String temp = JSON.toJSONString(stockMap);
+                    List<CargoInOutResult> inOutResults = new ArrayList<>();
+                    stockList.forEach(stockMap -> {
+                        String temp = JSON.toJSONString(stockMap);
 
-                    CargoInfo detail = JSON.parseObject(temp, CargoInfo.class);
-                    detail.setNumberUnit("件");
-                    detail.setWeightUnit("千克");
-                    detail.setCargoBelong(corp.getfCname());
-                    detail.setInStorageNumber(detail.getTakeVoucher());
-                    detail.setRemainNumber(detail.getNumberLeft());
-                    detail.setRemainWeight(detail.getWeightLeft());
-                    detail.setElectronicTags(warehousebillsitemsElabelMapper.getLabelByTop(tWarehouseBills.getfId()));
-                    detail.setInStorageDate(null);
+                        CargoInfo detail = JSON.parseObject(temp, CargoInfo.class);
+                        detail.setNumberUnit("件");
+                        detail.setWeightUnit("千克");
+                        detail.setCargoBelong(corp.getfCname());
+                        detail.setInStorageNumber(detail.getTakeVoucher());
+                        detail.setRemainNumber(detail.getNumberLeft());
+                        detail.setRemainWeight(detail.getWeightLeft());
+                        detail.setElectronicTags(warehousebillsitemsElabelMapper.getLabelByTop(tWarehouseBills.getfId()));
+                        detail.setInStorageDate(null);
 
-                    CargoInOutResult cargoInOutResult = new CargoInOutResult();
-                    cargoInOutResult.setResult("Y");
-                    cargoInOutResult.setReason("test");
-                    cargoInOutResult.setCargo(detail);
+                        CargoInOutResult cargoInOutResult = new CargoInOutResult();
+                        cargoInOutResult.setResult("Y");
+                        cargoInOutResult.setReason("test");
+                        cargoInOutResult.setCargo(detail);
 
-                    inOutResults.add(cargoInOutResult);
+                        inOutResults.add(cargoInOutResult);
 
-                });
-                rsp.setCargoInResults(inOutResults);
-
-                String requestTime = DateUtils.dateTimeNow() + (Math.random() * 9 + 1) * 100000;
-                // 签名内容
-                String str = "appId=" + CcbConstants.APP_ID + "&"
-                        + "secretKey=" + CcbConstants.SECRET_KEY + "&"
-                        + "platformId=" + CcbConstants.PLATFORM_ID + "&"
-                        + "requestTime=" + requestTime + "&"
-                        + "body=" + JsonUtil.toJson(rsp);
-
-                String sign = ShaUtil.sha256(str);
-
-                OkHttpClient okHttpClient = new OkHttpClient();
-                Request request = new Request.Builder()
-                        .addHeader("content-type", "application/json")
-                        .addHeader("X-RC-AppId", CcbConstants.APP_ID)
-                        .addHeader("X-RC-Sign", sign)
-                        .addHeader("X-RC-SignType", "SHA256")
-                        .addHeader("X-RC-RequestTime", requestTime)
-                        .addHeader("X-RC-RLF-Uid", CcbConstants.PLATFORM_ID)
-                        .url(CcbConstants.IN_URL)
-                        .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
-                        .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
-                        .build();
-
-                System.out.println("请求数据=   " + JsonUtil.toJson(rsp));
-
-
-                String s;
-                try {
-                    s = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
-                } catch (IOException e) {
-                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    System.out.println("异常信息=" + e);
-                    return AjaxResult.error("请求银行反馈异常," + e.getMessage());
-                }
+                    });
+                    rsp.setCargoInResults(inOutResults);
 
-                System.out.println(s);
-                JSONObject result = JSON.parseObject(s);
-                if (!CcbConstants.SUCCESS.equals(result.getString("result"))) {
-                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    return AjaxResult.error("请求银行反馈失败," + result.getString("reason"));
-                }
+                    String requestTime = DateUtils.dateTimeNow() + (Math.random() * 9 + 1) * 100000;
+                    // 签名内容
+                    String str = "appId=" + CcbConstants.APP_ID + "&"
+                            + "secretKey=" + CcbConstants.SECRET_KEY + "&"
+                            + "platformId=" + CcbConstants.PLATFORM_ID + "&"
+                            + "requestTime=" + requestTime + "&"
+                            + "body=" + JsonUtil.toJson(rsp);
+
+                    String sign = ShaUtil.sha256(str);
+
+                    OkHttpClient okHttpClient = new OkHttpClient();
+                    Request request = new Request.Builder()
+                            .addHeader("content-type", "application/json")
+                            .addHeader("X-RC-AppId", CcbConstants.APP_ID)
+                            .addHeader("X-RC-Sign", sign)
+                            .addHeader("X-RC-SignType", "SHA256")
+                            .addHeader("X-RC-RequestTime", requestTime)
+                            .addHeader("X-RC-RLF-Uid", CcbConstants.PLATFORM_ID)
+                            .url(CcbConstants.IN_URL)
+                            .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
+                            .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
+                            .build();
+
+                    System.out.println("请求数据=   " + JsonUtil.toJson(rsp));
 
 
+                    String s;
+                    try {
+                        s = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+                    } catch (IOException e) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        System.out.println("异常信息=" + e);
+                        return AjaxResult.error("请求银行反馈异常," + e.getMessage());
+                    }
+
+                    System.out.println(s);
+                    JSONObject result = JSON.parseObject(s);
+                    if (!CcbConstants.SUCCESS.equals(result.getString("result"))) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("请求银行反馈失败," + result.getString("reason"));
+                    }
+                }
             }
         }
 
@@ -4557,10 +4557,14 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 throw new WarehouseException("业务日期不得超出库存总帐日期");
             }
 
-            List<Map<String, Object>> stockList = tWhgenlegMapper.selectStockListCk(tWarehouseBills.getfMblno(), tWarehouseBills.getfCorpid());
-            if (CollectionUtil.isEmpty(stockList)) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return AjaxResult.error("请求银行反馈异常,未找到库存");
+            List<Map<String, Object>> stockList = new ArrayList<>();
+            SysConfig feedbackConfig = sysConfigMapper.checkConfigKeyUnique("bank.feedback");
+            if (ObjectUtil.isNotNull(feedbackConfig) && "0".equals(feedbackConfig.getConfigValue())) {
+                stockList = tWhgenlegMapper.selectStockListCk(tWarehouseBills.getfMblno(), tWarehouseBills.getfCorpid());
+                if (CollectionUtil.isEmpty(stockList)) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("请求反馈异常,未找到库存");
+                }
             }
 
             //  入库数特殊不判断入账
@@ -4664,92 +4668,94 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 
             // 处理银行反馈
             if (WarehouseTypeEnum.SJCK.getType().equals(billsType)) {
-                SysConfig feedbackConfig = sysConfigMapper.checkConfigKeyUnique("bank.feedback");
-                if (ObjectUtil.isNotNull(feedbackConfig) && "0".equals(feedbackConfig.getConfigValue())) {
-                    // 出入库不同处理
-                    TCorps corp = tCorpsMapper.selectTCorpsById(tWhgenle.getfCorpid());
-                    if (ObjectUtil.isNull(corp)) {
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return AjaxResult.error("请求银行反馈异常,未找到客户");
-                    }
-
-                    OutCargoRsp rsp = new OutCargoRsp();
-                    rsp.setUserName(corp.getfCname());
-                    rsp.setUscc(corp.getUscc());
-
-                    System.out.println("提单号=" + tWarehouseBills.getfMblno());
-
-                    List<CargoOutResults> cargoOutResults = new ArrayList<>();
-                    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-                    String time = new SimpleDateFormat("HH:mm:ss").format(new Date());
-                    System.out.println("当前时分秒:" + time);
-                    stockList.forEach(stockMap -> {
-                        CargoOutResults cargoOutResults1 = new CargoOutResults();
-                        cargoOutResults1.setResult("Y");
-                        cargoOutResults1.setReason("test");
-                        String temp = JSON.toJSONString(stockMap);
+                //是否质押
+                if(ObjectUtil.isNotNull(tWarehouseBills.getIsPledge())){
+                    if (ObjectUtil.isNotNull(feedbackConfig) && "0".equals(feedbackConfig.getConfigValue())) {
+                        // 出入库不同处理
+                        TCorps corp = tCorpsMapper.selectTCorpsById(tWhgenle.getfCorpid());
+                        if (ObjectUtil.isNull(corp)) {
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return AjaxResult.error("请求银行反馈异常,未找到客户");
+                        }
 
-                        CargoInfo detail = JSON.parseObject(temp, CargoInfo.class);
-                        if (ObjectUtils.isNotNull(detail.getInStorageDate())) {
-                            try {
-                                String time1 = sdf.format(detail.getInStorageDate());
-                                System.out.println("组合时间:" + df.parse(time1 + " " + time));
-                                detail.setOutStorageDate(df.parse(time1 + " " + time));
-                            } catch (ParseException e) {
-                                e.printStackTrace();
+                        OutCargoRsp rsp = new OutCargoRsp();
+                        rsp.setUserName(corp.getfCname());
+                        rsp.setUscc(corp.getUscc());
+
+                        System.out.println("提单号=" + tWarehouseBills.getfMblno());
+
+                        List<CargoOutResults> cargoOutResults = new ArrayList<>();
+                        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+                        String time = new SimpleDateFormat("HH:mm:ss").format(new Date());
+                        System.out.println("当前时分秒:" + time);
+                        stockList.forEach(stockMap -> {
+                            CargoOutResults cargoOutResults1 = new CargoOutResults();
+                            cargoOutResults1.setResult("Y");
+                            cargoOutResults1.setReason("test");
+                            String temp = JSON.toJSONString(stockMap);
+
+                            CargoInfo detail = JSON.parseObject(temp, CargoInfo.class);
+                            if (ObjectUtils.isNotNull(detail.getInStorageDate())) {
+                                try {
+                                    String time1 = sdf.format(detail.getInStorageDate());
+                                    System.out.println("组合时间:" + df.parse(time1 + " " + time));
+                                    detail.setOutStorageDate(df.parse(time1 + " " + time));
+                                } catch (ParseException e) {
+                                    e.printStackTrace();
+                                }
                             }
+                            detail.setNumberUnit("件");
+                            detail.setWeightUnit("千克");
+                            detail.setCargoBelong(corp.getfCname());
+                            detail.setInStorageNumber(detail.getTakeVoucher());
+                            detail.setRemainNumber(detail.getNumberLeft());
+                            detail.setRemainWeight(detail.getWeightLeft());
+                            detail.setElectronicTags(warehousebillsitemsElabelMapper.getLabelByTop(tWarehouseBills.getfId()));
+
+                            List<String> list = new ArrayList<>();
+                            list.add("01010");
+                            detail.setElectronicTags(list);
+                            cargoOutResults1.setCargo(detail);
+                            cargoOutResults.add(cargoOutResults1);
+                        });
+                        rsp.setCargoOutResults(cargoOutResults);
+                        String requestTime = DateUtils.dateTimeNow() + (Math.random() * 9 + 1) * 100000;
+                        // 签名内容
+                        String str = "appId=" + CcbConstants.APP_ID + "&"
+                                + "secretKey=" + CcbConstants.SECRET_KEY + "&"
+                                + "platformId=" + CcbConstants.PLATFORM_ID + "&"
+                                + "requestTime=" + requestTime + "&"
+                                + "body=" + JsonUtil.toJson(rsp);
+
+
+                        System.out.println("出库请求数据:" + JsonUtil.toJson(rsp));
+
+                        OkHttpClient okHttpClient = new OkHttpClient();
+                        Request request = new Request.Builder()
+                                .addHeader("content-type", "application/json")
+                                .addHeader("X-RC-AppId", CcbConstants.APP_ID)
+                                .addHeader("X-RC-Sign", ShaUtil.sha256(str))
+                                .addHeader("X-RC-SignType", "SHA256")
+                                .addHeader("X-RC-RequestTime", requestTime)
+                                .addHeader("X-RC-RLF-Uid", CcbConstants.PLATFORM_ID)
+                                .url(CcbConstants.OUT_URL)
+                                .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
+                                .build();
+
+                        String s;
+                        try {
+                            s = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+                        } catch (IOException e) {
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return AjaxResult.error("请求银行反馈异常," + e.getMessage());
+                        }
+                        System.out.println("请求数据返回:" + s);
+                        JSONObject result = JSON.parseObject(s);
+                        if (!CcbConstants.SUCCESS.equals(result.getString("result"))) {
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return AjaxResult.error("请求银行反馈失败," + result.getString("reason"));
                         }
-                        detail.setNumberUnit("件");
-                        detail.setWeightUnit("千克");
-                        detail.setCargoBelong(corp.getfCname());
-                        detail.setInStorageNumber(detail.getTakeVoucher());
-                        detail.setRemainNumber(detail.getNumberLeft());
-                        detail.setRemainWeight(detail.getWeightLeft());
-                        detail.setElectronicTags(warehousebillsitemsElabelMapper.getLabelByTop(tWarehouseBills.getfId()));
-
-                        List<String> list = new ArrayList<>();
-                        list.add("01010");
-                        detail.setElectronicTags(list);
-                        cargoOutResults1.setCargo(detail);
-                        cargoOutResults.add(cargoOutResults1);
-                    });
-                    rsp.setCargoOutResults(cargoOutResults);
-                    String requestTime = DateUtils.dateTimeNow() + (Math.random() * 9 + 1) * 100000;
-                    // 签名内容
-                    String str = "appId=" + CcbConstants.APP_ID + "&"
-                            + "secretKey=" + CcbConstants.SECRET_KEY + "&"
-                            + "platformId=" + CcbConstants.PLATFORM_ID + "&"
-                            + "requestTime=" + requestTime + "&"
-                            + "body=" + JsonUtil.toJson(rsp);
-
-
-                    System.out.println("出库请求数据:" + JsonUtil.toJson(rsp));
-
-                    OkHttpClient okHttpClient = new OkHttpClient();
-                    Request request = new Request.Builder()
-                            .addHeader("content-type", "application/json")
-                            .addHeader("X-RC-AppId", CcbConstants.APP_ID)
-                            .addHeader("X-RC-Sign", ShaUtil.sha256(str))
-                            .addHeader("X-RC-SignType", "SHA256")
-                            .addHeader("X-RC-RequestTime", requestTime)
-                            .addHeader("X-RC-RLF-Uid", CcbConstants.PLATFORM_ID)
-                            .url(CcbConstants.OUT_URL)
-                            .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
-                            .build();
-
-                    String s;
-                    try {
-                        s = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
-                    } catch (IOException e) {
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return AjaxResult.error("请求银行反馈异常," + e.getMessage());
-                    }
-                    System.out.println("请求数据返回:" + s);
-                    JSONObject result = JSON.parseObject(s);
-                    if (!CcbConstants.SUCCESS.equals(result.getString("result"))) {
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return AjaxResult.error("请求银行反馈失败," + result.getString("reason"));
                     }
                 }
             }
@@ -9849,7 +9855,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             if (warehousebillsitems.getfQty() != tWarehousebillsitemsElabelList.size()){
                 return AjaxResult.error("出库件数:"+warehousebillsitems.getfQty()+"与标签码数量:"+tWarehousebillsitemsElabelList.size()+"不一致,不允许出库");
             }
-
             // 跟新库存总账
             updateTWhgenlegData(warehousebillsitems, tWhgenle.getfId(), billsType);
             warehousebillsitems.setfBillstatus(40L);
@@ -9860,6 +9865,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             }
             warehousebillsitems.setfBillno(warehouseBills.getfBillno());
             warehousebillsitems.setUpdateBy(storekeeper);
+            warehousebillsitems.setfIsPass("T");
             tWarehousebillsitemsMapper.updateTWarehousebillsitems(warehousebillsitems);
             // 添加状态log
             insertTWarehousebillsLog(warehousebillsitems, 40L);
@@ -9892,15 +9898,41 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 
         String[] arrs = fContent.split(",");
         for (String arr : arrs) {
-            TWarehousebillsitemsElabel tWarehousebillsitemsElabel = new TWarehousebillsitemsElabel();
+            //入库修改标签状态
             if (fType == 1) {
+                TWarehousebillsitemsElabel tWarehousebillsitemsElabel = new TWarehousebillsitemsElabel();
+                tWarehousebillsitemsElabel.setfPid(itemId);
+                tWarehousebillsitemsElabel.setfGPid(fId);
                 tWarehousebillsitemsElabel.setfStatus(0);
-            } else {
+                tWarehousebillsitemsElabel.setfContent(arr);
+                warehousebillsitemsElabelMapper.updateStatusS(tWarehousebillsitemsElabel);
+            } else {//出库修改标签状态
+                //出库标签的状态
+                TWarehousebillsitemsElabel tWarehousebillsitemsElabel = new TWarehousebillsitemsElabel();
+                tWarehousebillsitemsElabel.setfPid(itemId);
+                tWarehousebillsitemsElabel.setfGPid(fId);
                 tWarehousebillsitemsElabel.setfStatus(1);
+                tWarehousebillsitemsElabel.setfContent(arr);
+                warehousebillsitemsElabelMapper.updateStatusS(tWarehousebillsitemsElabel);
+
+                //该提单号入库时标签状态修改
+                Map<String, Object> map = new HashMap<>();
+                map.put("fCorpid", warehouseBills.getfCorpid());
+                map.put("fGoodsid", warehousebillsitems.getfGoodsid());
+                map.put("fBusinessType", warehousebillsitems.getfBusinessType());
+                map.put("fMblno", warehousebillsitems.getfMblno());
+                map.put("fMarks", warehousebillsitems.getfMarks());
+                map.put("fOriginalbilldate", warehousebillsitems.getfOriginalbilldate());
+                List<Map<String, Object>> wareMap = tWarehouseBillsMapper.selectWareIdAndItemId(map);
+                for (Map<String, Object> map1 : wareMap) {
+                    TWarehousebillsitemsElabel tWarehousebillsitemsElabel1 = new TWarehousebillsitemsElabel();
+                    tWarehousebillsitemsElabel1.setfPid(Long.valueOf(String.valueOf(map1.get("itemId"))));
+                    tWarehousebillsitemsElabel1.setfGPid(Long.valueOf(String.valueOf(map1.get("fId"))));
+                    tWarehousebillsitemsElabel1.setfStatus(1);
+                    tWarehousebillsitemsElabel1.setfContent(arr);
+                    warehousebillsitemsElabelMapper.updateStatusS(tWarehousebillsitemsElabel1);
+                }
             }
-            tWarehousebillsitemsElabel.setfType(fType);
-            tWarehousebillsitemsElabel.setfContent(arr);
-            warehousebillsitemsElabelMapper.updateStatus(tWarehousebillsitemsElabel);
         }
         return AjaxResult.success();
     }
@@ -9912,7 +9944,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
      * @return
      */
     @Override
-    public List<Map<String, Long>> selectWareIdAndItemId(Map<String, Object> map) {
+    public List<Map<String, Object>> selectWareIdAndItemId(Map<String, Object> map) {
         return tWarehouseBillsMapper.selectWareIdAndItemId(map);
     }
 

+ 36 - 1
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/WarehouseBillsCcbServiceImpl.java

@@ -5,14 +5,20 @@ import cn.hutool.core.util.ObjectUtil;
 import com.github.pagehelper.PageHelper;
 import com.ruoyi.basicData.domain.TCorps;
 import com.ruoyi.basicData.domain.TGoods;
+import com.ruoyi.basicData.domain.TWarehouseWebcam;
 import com.ruoyi.basicData.mapper.TCorpsMapper;
 import com.ruoyi.basicData.mapper.TGoodsMapper;
 import com.ruoyi.basicData.mapper.TWarehouseMapper;
+import com.ruoyi.basicData.mapper.TWarehouseWebcamMapper;
+import com.ruoyi.basicData.service.ITWarehouseWebcamService;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.reportManagement.domain.TWhgenleg;
 import com.ruoyi.reportManagement.mapper.TWhgenlegMapper;
 import com.ruoyi.system.mapper.SysDictDataMapper;
+import com.ruoyi.warehouse.warehouse.domain.TMonitoringAlarms;
+import com.ruoyi.warehouse.warehouse.mapper.TMonitoringAlarmsMapper;
+import com.ruoyi.warehouse.warehouse.service.ITMonitoringAlarmsService;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
 import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
 import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitemsElabel;
@@ -21,6 +27,7 @@ import com.ruoyi.warehouseBusiness.mapper.TWarehousebillsitemsElabelMapper;
 import com.ruoyi.warehouseBusiness.mapper.TWarehousebillsitemsMapper;
 import com.ruoyi.warehouseBusiness.service.IWarehouseBillsCcbService;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -57,6 +64,10 @@ public class WarehouseBillsCcbServiceImpl implements IWarehouseBillsCcbService {
 
     private final SysDictDataMapper sysDictData;
 
+    private final TWarehouseWebcamMapper tWarehouseWebcamMapper;
+
+    private final TMonitoringAlarmsMapper tMonitoringAlarmsMapper;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public AjaxResult inAndOutStock(String billType, List<TWarehousebillsitems> items) {
@@ -67,7 +78,7 @@ public class WarehouseBillsCcbServiceImpl implements IWarehouseBillsCcbService {
                 return AjaxResult.error("客户不存在!");
             }
 
-            TGoods goods = goodsMapper.getGoodsByNo(item.getCargoNo());
+            TGoods goods = goodsMapper.getGoodsByName(item.getCargoName());
             TGoods goods1 = new TGoods();
             if (ObjectUtil.isNull(goods)) {
                 String type = "";
@@ -149,6 +160,7 @@ public class WarehouseBillsCcbServiceImpl implements IWarehouseBillsCcbService {
                 String bsCorpNo = serialServiceImpl.getCorpNo(corp.getfId(), bsDate);
                 bill.setfBscorpno(bsCorpNo);
                 bill.setfBusinessType("0");
+                bill.setIsPledge("0");
             } else {
                /* TWarehouse warehouse = warehouseMapper.getWarehouseByNo(item.getWarehouseNo());
                 if (ObjectUtil.isNull(warehouse)) {
@@ -158,6 +170,7 @@ public class WarehouseBillsCcbServiceImpl implements IWarehouseBillsCcbService {
                 bill.setfWarehouseid(warehouse.getfId());*/
                 bill.setfChargedate(bsDate);
                 bill.setfBusinessType("5");
+                bill.setIsPledge("1");
             }
             bill.setRemark(item.getCargoName());
             billMapper.insertTWarehousebills(bill);
@@ -360,4 +373,26 @@ public class WarehouseBillsCcbServiceImpl implements IWarehouseBillsCcbService {
         stockMapper.changeBelongTo(stock);
         return fOriginalbillno;
     }
+
+    /**
+     * 获取所有可用设备列表
+     *
+     * @return
+     */
+    @Override
+    public List<TWarehouseWebcam> selectListAllDevices(int pageNo, int pageSize,Long deviceLocationCode) {
+        return tWarehouseWebcamMapper.selectTWarehouseWebcamByPage(pageNo,pageSize,deviceLocationCode);
+    }
+
+    /**
+     * 获取指定设备
+     *
+     * @param deviceId 设备id
+     * @return 结果
+     */
+    @Override
+    public TWarehouseWebcam selectByDeviceId(String deviceId) {
+        return tWarehouseWebcamMapper.selectTWarehouseWebcamByDeviceSerial(deviceId);
+    }
+
 }

+ 14 - 2
ruoyi-warehouse/src/main/resources/mapper/basicData/TWarehouseWebcamMapper.xml

@@ -17,6 +17,7 @@
         <result property="updateBy" column="update_by"/>
         <result property="updateTime" column="update_time"/>
         <result property="remark" column="remark"/>
+        <result property="code" column="code"/>
     </resultMap>
 
     <sql id="selectTWarehouseWebcamVo">
@@ -31,7 +32,8 @@
                create_time,
                update_by,
                update_time,
-               remark
+               remark,
+               code
         from t_warehouse_webcam
     </sql>
 
@@ -42,6 +44,7 @@
             <if test="deviceName != null  and deviceName != ''">and device_name like concat('%', #{deviceName}, '%')
             </if>
             <if test="deviceSerial != null  and deviceSerial != ''">and device_serial = #{deviceSerial}</if>
+            <if test="code != null  and code != ''">and code = #{code}</if>
             <if test="fWarehouseId != null ">and f_warehouse_id = #{fWarehouseId}</if>
             <if test="fWarehouseName != null  and fWarehouseName != ''">and f_warehouse_name like concat('%',
                 #{fWarehouseName}, '%')
@@ -56,7 +59,7 @@
 
     <select id="selectTWarehouseWebcamByDeviceSerial" parameterType="String" resultMap="TWarehouseWebcamResult">
         <include refid="selectTWarehouseWebcamVo"/>
-        where device_serial = #{deviceSerial}
+        where device_serial = #{deviceSerial} and del_flag = '0'
     </select>
 
     <insert id="insertTWarehouseWebcam" parameterType="TWarehouseWebcam" useGeneratedKeys="true" keyProperty="fId">
@@ -73,6 +76,7 @@
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
             <if test="remark != null">remark,</if>
+            <if test="code != null  and code != ''">code,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="projectId != null and projectId != ''">#{projectId},</if>
@@ -86,6 +90,7 @@
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
             <if test="remark != null">#{remark},</if>
+            <if test="code != null  and code != ''">#{code},</if>
         </trim>
     </insert>
 
@@ -103,6 +108,7 @@
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="remark != null">remark = #{remark},</if>
+            <if test="code != null  and code != ''">code = #{code},</if>
         </trim>
         where f_id = #{fId}
     </update>
@@ -144,4 +150,10 @@
             </if>
         </where>
     </select>
+    <select id="selectTWarehouseWebcamByPage" resultType="com.ruoyi.basicData.domain.TWarehouseWebcam">
+        <include refid="selectTWarehouseWebcamVo"/>
+        where del_flag = '0'
+        <if test="deviceLocationCode != null ">and f_warehouse_id = #{deviceLocationCode}</if>
+        limit #{pageNo},#{pageSize}
+    </select>
 </mapper>

+ 176 - 0
ruoyi-warehouse/src/main/resources/mapper/warehouse/TMonitoringAlarmsMapper.xml

@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.warehouse.warehouse.mapper.TMonitoringAlarmsMapper">
+    
+    <resultMap type="TMonitoringAlarms" id="TMonitoringAlarmsResult">
+        <result property="id"    column="id"    />
+        <result property="createDate"    column="create_date"    />
+        <result property="updateDate"    column="update_date"    />
+        <result property="alarmDate"    column="alarm_date"    />
+        <result property="alarmDealDate"    column="alarm_deal_date"    />
+        <result property="alarmDealPeople"    column="alarm_deal_people"    />
+        <result property="alarmDealResult"    column="alarm_deal_result"    />
+        <result property="alarmId"    column="alarm_id"    />
+        <result property="alarmLocation"    column="alarm_location"    />
+        <result property="alarmPicUrl"    column="alarm_pic_url"    />
+        <result property="alarmState"    column="alarm_state"    />
+        <result property="deviceId"    column="device_id"    />
+        <result property="deviceName"    column="device_name"    />
+        <result property="deviceLocation"    column="device_location"    />
+        <result property="dNickName"    column="d_nick_name"    />
+        <result property="deviceState"    column="device_state"    />
+        <result property="alarmType"    column="alarm_type"    />
+        <result property="alarmTypeName"    column="alarm_type_name"    />
+        <result property="alarmSiteDescription"    column="alarm_site_description"    />
+        <result property="alarmPlanResult"    column="alarm_plan_result"    />
+        <result property="alarmSiteimgUrl"    column="alarm_siteImg_url"    />
+        <result property="projectId"    column="project_id"    />
+        <result property="projectName"    column="project_name"    />
+        <result property="companyId"    column="company_id"    />
+        <result property="companyName"    column="company_name"    />
+    </resultMap>
+
+    <sql id="selectTMonitoringAlarmsVo">
+        select id, create_date, update_date, alarm_date, alarm_deal_date, alarm_deal_people, alarm_deal_result, alarm_id, alarm_location, alarm_pic_url, alarm_state, device_id, device_name, device_location, d_nick_name, device_state, alarm_type, alarm_type_name, alarm_site_description, alarm_plan_result, alarm_siteImg_url, project_id, project_name, company_id, company_name from t_monitoring_alarms
+    </sql>
+
+    <select id="selectTMonitoringAlarmsList" parameterType="TMonitoringAlarms" resultMap="TMonitoringAlarmsResult">
+        <include refid="selectTMonitoringAlarmsVo"/>
+        <where>  
+            <if test="createDate != null "> and create_date = #{createDate}</if>
+            <if test="updateDate != null "> and update_date = #{updateDate}</if>
+            <if test='alarmDateStart != null and alarmDateStart[0] != null and alarmDateStart[1]!= ""'>
+                and alarm_date BETWEEN #{alarmDateStart[0]} AND #{alarmDateStart[1]}
+            </if>
+            <if test='alarmDealDateStart != null and alarmDealDateStart[0] != null and alarmDealDateStart[1]!= ""'>
+                and alarm_deal_date BETWEEN #{alarmDealDateStart[0]} AND #{alarmDealDateStart[1]}
+            </if>
+            <if test="alarmDealPeople != null  and alarmDealPeople != ''"> and alarm_deal_people = #{alarmDealPeople}</if>
+            <if test="alarmDealResult != null  and alarmDealResult != ''"> and alarm_deal_result = #{alarmDealResult}</if>
+            <if test="alarmId != null "> and alarm_id = #{alarmId}</if>
+            <if test="alarmLocation != null  and alarmLocation != ''"> and alarm_location = #{alarmLocation}</if>
+            <if test="alarmPicUrl != null  and alarmPicUrl != ''"> and alarm_pic_url = #{alarmPicUrl}</if>
+            <if test="alarmState != null  and alarmState != ''"> and alarm_state = #{alarmState}</if>
+            <if test="deviceId != null  and deviceId != ''"> and device_id = #{deviceId}</if>
+            <if test="deviceName != null  and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if>
+            <if test="deviceLocation != null  and deviceLocation != ''"> and device_location = #{deviceLocation}</if>
+            <if test="dNickName != null  and dNickName != ''"> and d_nick_name like concat('%', #{dNickName}, '%')</if>
+            <if test="deviceState != null "> and device_state = #{deviceState}</if>
+            <if test="alarmType != null "> and alarm_type = #{alarmType}</if>
+            <if test="alarmTypeName != null  and alarmTypeName != ''"> and alarm_type_name like concat('%', #{alarmTypeName}, '%')</if>
+            <if test="alarmSiteDescription != null  and alarmSiteDescription != ''"> and alarm_site_description = #{alarmSiteDescription}</if>
+            <if test="alarmPlanResult != null  and alarmPlanResult != ''"> and alarm_plan_result = #{alarmPlanResult}</if>
+            <if test="alarmSiteimgUrl != null  and alarmSiteimgUrl != ''"> and alarm_siteImg_url = #{alarmSiteimgUrl}</if>
+            <if test="projectId != null "> and project_id = #{projectId}</if>
+            <if test="projectName != null  and projectName != ''"> and project_name like concat('%', #{projectName}, '%')</if>
+            <if test="companyId != null "> and company_id = #{companyId}</if>
+            <if test="companyName != null  and companyName != ''"> and company_name like concat('%', #{companyName}, '%')</if>
+        </where>
+    </select>
+    
+    <select id="selectTMonitoringAlarmsById" parameterType="Long" resultMap="TMonitoringAlarmsResult">
+        <include refid="selectTMonitoringAlarmsVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTMonitoringAlarms" parameterType="TMonitoringAlarms" useGeneratedKeys="true" keyProperty="id">
+        insert into t_monitoring_alarms
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="createDate != null">create_date,</if>
+            <if test="updateDate != null">update_date,</if>
+            <if test="alarmDate != null">alarm_date,</if>
+            <if test="alarmDealDate != null">alarm_deal_date,</if>
+            <if test="alarmDealPeople != null">alarm_deal_people,</if>
+            <if test="alarmDealResult != null">alarm_deal_result,</if>
+            <if test="alarmId != null">alarm_id,</if>
+            <if test="alarmLocation != null">alarm_location,</if>
+            <if test="alarmPicUrl != null">alarm_pic_url,</if>
+            <if test="alarmState != null">alarm_state,</if>
+            <if test="deviceId != null">device_id,</if>
+            <if test="deviceName != null">device_name,</if>
+            <if test="deviceLocation != null">device_location,</if>
+            <if test="dNickName != null">d_nick_name,</if>
+            <if test="deviceState != null">device_state,</if>
+            <if test="alarmType != null">alarm_type,</if>
+            <if test="alarmTypeName != null">alarm_type_name,</if>
+            <if test="alarmSiteDescription != null">alarm_site_description,</if>
+            <if test="alarmPlanResult != null">alarm_plan_result,</if>
+            <if test="alarmSiteimgUrl != null">alarm_siteImg_url,</if>
+            <if test="projectId != null">project_id,</if>
+            <if test="projectName != null">project_name,</if>
+            <if test="companyId != null">company_id,</if>
+            <if test="companyName != null">company_name,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="createDate != null">#{createDate},</if>
+            <if test="updateDate != null">#{updateDate},</if>
+            <if test="alarmDate != null">#{alarmDate},</if>
+            <if test="alarmDealDate != null">#{alarmDealDate},</if>
+            <if test="alarmDealPeople != null">#{alarmDealPeople},</if>
+            <if test="alarmDealResult != null">#{alarmDealResult},</if>
+            <if test="alarmId != null">#{alarmId},</if>
+            <if test="alarmLocation != null">#{alarmLocation},</if>
+            <if test="alarmPicUrl != null">#{alarmPicUrl},</if>
+            <if test="alarmState != null">#{alarmState},</if>
+            <if test="deviceId != null">#{deviceId},</if>
+            <if test="deviceName != null">#{deviceName},</if>
+            <if test="deviceLocation != null">#{deviceLocation},</if>
+            <if test="dNickName != null">#{dNickName},</if>
+            <if test="deviceState != null">#{deviceState},</if>
+            <if test="alarmType != null">#{alarmType},</if>
+            <if test="alarmTypeName != null">#{alarmTypeName},</if>
+            <if test="alarmSiteDescription != null">#{alarmSiteDescription},</if>
+            <if test="alarmPlanResult != null">#{alarmPlanResult},</if>
+            <if test="alarmSiteimgUrl != null">#{alarmSiteimgUrl},</if>
+            <if test="projectId != null">#{projectId},</if>
+            <if test="projectName != null">#{projectName},</if>
+            <if test="companyId != null">#{companyId},</if>
+            <if test="companyName != null">#{companyName},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTMonitoringAlarms" parameterType="TMonitoringAlarms">
+        update t_monitoring_alarms
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="createDate != null">create_date = #{createDate},</if>
+            <if test="updateDate != null">update_date = #{updateDate},</if>
+            <if test="alarmDate != null">alarm_date = #{alarmDate},</if>
+            <if test="alarmDealDate != null">alarm_deal_date = #{alarmDealDate},</if>
+            <if test="alarmDealPeople != null">alarm_deal_people = #{alarmDealPeople},</if>
+            <if test="alarmDealResult != null">alarm_deal_result = #{alarmDealResult},</if>
+            <if test="alarmId != null">alarm_id = #{alarmId},</if>
+            <if test="alarmLocation != null">alarm_location = #{alarmLocation},</if>
+            <if test="alarmPicUrl != null">alarm_pic_url = #{alarmPicUrl},</if>
+            <if test="alarmState != null">alarm_state = #{alarmState},</if>
+            <if test="deviceId != null">device_id = #{deviceId},</if>
+            <if test="deviceName != null">device_name = #{deviceName},</if>
+            <if test="deviceLocation != null">device_location = #{deviceLocation},</if>
+            <if test="dNickName != null">d_nick_name = #{dNickName},</if>
+            <if test="deviceState != null">device_state = #{deviceState},</if>
+            <if test="alarmType != null">alarm_type = #{alarmType},</if>
+            <if test="alarmTypeName != null">alarm_type_name = #{alarmTypeName},</if>
+            <if test="alarmSiteDescription != null">alarm_site_description = #{alarmSiteDescription},</if>
+            <if test="alarmPlanResult != null">alarm_plan_result = #{alarmPlanResult},</if>
+            <if test="alarmSiteimgUrl != null">alarm_siteImg_url = #{alarmSiteimgUrl},</if>
+            <if test="projectId != null">project_id = #{projectId},</if>
+            <if test="projectName != null">project_name = #{projectName},</if>
+            <if test="companyId != null">company_id = #{companyId},</if>
+            <if test="companyName != null">company_name = #{companyName},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTMonitoringAlarmsById" parameterType="Long">
+        delete from t_monitoring_alarms where id = #{id}
+    </delete>
+
+    <delete id="deleteTMonitoringAlarmsByIds" parameterType="String">
+        delete from t_monitoring_alarms where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    
+</mapper>

+ 15 - 4
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml

@@ -135,6 +135,7 @@
         <result property="pickUpTime"    column="pick_up_time"    />
         <result property="facilityPerson"    column="facility_person"    />
         <result property="facilityTime"    column="facility_time"    />
+        <result property="isPledge"    column="is_pledge"    />
     </resultMap>
 
     <resultMap type="WarehouseBillsVO" id="WarehousebillsVOResult">
@@ -159,7 +160,7 @@
         free_container_date, f_business_attribution, f_fee_status, f_supervision_unit, f_declaration_elements, f_part_number, f_ifinspection, f_value, f_weighing_date,
         f_ifsampling, send_sample_date, f_ifweight_recovery, weight_recovery_date, warehouse_status, f_times ,f_date_changed, f_chargetype,f_weigh_weight,
         f_predict_branch,f_grade,f_delivery_details,f_salesman_id,f_itemstatus,f_updete_status, f_submit_update, f_delete_status,f_remarks_fees,f_cargo_planning,
-        f_arrival_status,f_dismount_status,f_serviceitems_new,f_receivable,f_recycle,f_due,f_pay,f_carego_status, f_ship_two, f_voy_two, pick_up_person, pick_up_time, facility_person, facility_time from t_warehousebills
+        f_arrival_status,f_dismount_status,f_serviceitems_new,f_receivable,f_recycle,f_due,f_pay,f_carego_status, f_ship_two, f_voy_two, pick_up_person, pick_up_time, facility_person, facility_time,is_pledge from t_warehousebills
     </sql>
 
     <select id="selectTWarehousebillsList" parameterType="TWarehousebills" resultMap="TWarehousebillsResult">
@@ -225,6 +226,7 @@
             <if test="fBilltype != null  and fBilltype != ''">and f_billtype = #{fBilltype}</if>
             <if test="fBillstatus != null  and fBillstatus != ''">and f_billstatus = #{fBillstatus}</if>
             <if test="fNewTrademodeid != null ">and f_new_trademodeid = #{fNewTrademodeid}</if>
+            <if test="isPledge != null and isPledge != ''">and is_pledge = #{isPledge}</if>
         </where>
         ORDER BY ware.create_time desc
         ${params.dataScope}
@@ -355,7 +357,8 @@
             twfC.f_accamount as fPay,
             twfD.f_invamount AS fApplyMoney,
             twfD.f_invnos AS invoiceNo,
-            twfD.f_invoicing_date AS fAccbilldate
+            twfD.f_invoicing_date AS fAccbilldate,
+            bill.is_pledge AS isPledge
         FROM
             t_warehousebills bill
             LEFT JOIN t_goods g ON g.f_id = bill.f_goodsid
@@ -492,6 +495,7 @@
             <if test="warehouseStatus != null and warehouseStatus != ''">and bill.warehouse_status = #{warehouseStatus}</if>
             <if test="fVslid != null ">and bill.f_vslid = #{fVslid}</if>
             <if test="fVoyid != null ">and bill.f_voyid = #{fVoyid}</if>
+            <if test="isPledge != null and isPledge != ''">and bill.is_pledge = #{isPledge}</if>
         </where>
         ${params.dataScope}
         ORDER BY bill.f_bsdate DESC, bill.f_bstime DESC,bill.f_id DESC,bill.f_billstatus
@@ -575,7 +579,8 @@
             bill.f_remarks_fees AS fRemarksFees,
             tf.f_apply_money AS fApplyMoney,
             tf.invoice_no AS invoiceNo,
-            tf.f_accbilldate AS fAccbilldate
+            tf.f_accbilldate AS fAccbilldate,
+            bill.is_pledge AS isPledge
         FROM
             t_warehousebills bill
             LEFT JOIN t_goods g ON g.f_id = bill.f_goodsid
@@ -669,6 +674,7 @@
             <if test="createBy != null and createBy != ''">and bill.create_by = #{createBy}</if>
             <if test="fNewTrademodeid != null ">and bill.f_new_trademodeid = #{fNewTrademodeid}</if>
             <if test="warehouseStatus != null and warehouseStatus != ''">and bill.warehouse_status = #{warehouseStatus}</if>
+            <if test="isPledge != null and isPledge != ''">and bill.is_pledge = #{isPledge}</if>
         </where>
         ${params.dataScope}
         ORDER BY bill.f_bsdate DESC, bill.f_bstime DESC,bill.f_id DESC,bill.f_billstatus
@@ -1201,6 +1207,7 @@
             <if test="pickUpTime != null">pick_up_time,</if>
             <if test="facilityPerson != null">facility_person,</if>
             <if test="facilityTime != null">facility_time,</if>
+            <if test="isPledge != null and isPledge != ''">is_pledge,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="fBillno != null">#{fBillno},</if>
@@ -1332,6 +1339,7 @@
             <if test="pickUpTime != null">#{pickUpTime},</if>
             <if test="facilityPerson != null">#{facilityPerson},</if>
             <if test="facilityTime != null">#{facilityTime},</if>
+            <if test="isPledge != null and isPledge != ''">#{isPledge},</if>
         </trim>
     </insert>
 
@@ -1467,6 +1475,7 @@
             <if test="pickUpTime != null">pick_up_time = #{pickUpTime},</if>
             <if test="facilityPerson != null">facility_person = #{facilityPerson},</if>
             <if test="facilityTime != null">facility_time = #{facilityTime},</if>
+            <if test="isPledge != null and isPledge != ''">is_pledge = #{isPledge},</if>
         </trim>
         where f_id = #{fId}
     </update>
@@ -1603,6 +1612,7 @@
             <if test="pickUpTime != null">pick_up_time = #{pickUpTime},</if>
             <if test="facilityPerson != null">facility_person = #{facilityPerson},</if>
             <if test="facilityTime != null">facility_time = #{facilityTime},</if>
+            <if test="isPledge != null and isPledge != ''">is_pledge = #{isPledge},</if>
         </trim>
         where f_id = #{fId}
     </update>
@@ -3510,7 +3520,8 @@
     <select id="selectWareIdAndItemId" parameterType="java.util.Map" resultType="java.util.Map">
         SELECT
             ware.f_id AS fId,
-            item.f_id AS itemId
+            item.f_id AS itemId,
+            item.f_mblno AS fMblno
         FROM
             t_warehousebills ware
                 LEFT JOIN t_warehousebillsitems item ON ware.f_id = item.f_pid

+ 4 - 0
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsitemsElabelMapper.xml

@@ -100,6 +100,10 @@
         update t_warehousebillsitems_elabel set f_status = #{fStatus} where f_content = #{fContent} and f_type = #{fType}
     </update>
 
+    <update id="updateStatusS" parameterType="com.ruoyi.warehouseBusiness.domain.TWarehousebillsitemsElabel">
+        update t_warehousebillsitems_elabel set f_status = #{fStatus} where f_content = #{fContent} and f_g_pid = #{fGPid} and f_pid = #{fPid}
+    </update>
+
     <delete id="deleteById" parameterType="com.ruoyi.warehouseBusiness.domain.TWarehousebillsitemsElabel">
         delete from t_warehousebillsitems_elabel where f_id = #{id}
     </delete>