Ver Fonte

Merge remote-tracking branch 'origin/V1' into V1

jz.kai há 5 anos atrás
pai
commit
dfc40a9c51

+ 9 - 0
common/src/main/resources/mapper/base/DeviceInfo.xml

@@ -169,6 +169,15 @@ id_, header_,device_no,alias_name,address_,is_online,company_id,unlock_password,
 			<if test="searchParams.companyId != null">
 				and a.company_id = #{searchParams.companyId}
 			</if>
+			<if test="searchParams.bindCompanyId != null">
+				and (
+					a.company_id = #{searchParams.bindCompanyId}
+					or a.id_ in(
+						select c.device_id from base_company_device_relation c
+						where c.device_id=a.id_ and c.company_id=#{searchParams.bindCompanyId}
+					)
+				}
+			</if>
 		</where>
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">
 	        ${sort.name} ${sort.order}

+ 49 - 8
web/src/main/java/com/jpsoft/smart/modules/base/controller/CompanyInfoController.java

@@ -3,13 +3,10 @@ package com.jpsoft.smart.modules.base.controller;
 import com.github.pagehelper.Page;
 import com.jpsoft.smart.modules.base.dto.CompanyInfoDTO;
 import com.jpsoft.smart.modules.base.entity.*;
-import com.jpsoft.smart.modules.base.service.CompanyDeviceRelationService;
-import com.jpsoft.smart.modules.base.service.CompanyPositionService;
-import com.jpsoft.smart.modules.base.service.PersonInfoService;
+import com.jpsoft.smart.modules.base.service.*;
 import com.jpsoft.smart.modules.common.utils.PojoUtils;
 import com.jpsoft.smart.modules.common.dto.Sort;
 import com.jpsoft.smart.modules.common.dto.MessageResult;
-import com.jpsoft.smart.modules.base.service.CompanyInfoService;
 import com.jpsoft.smart.modules.sys.entity.User;
 import com.jpsoft.smart.modules.sys.service.UserService;
 import com.rabbitmq.client.AMQP;
@@ -52,6 +49,9 @@ public class CompanyInfoController {
     @Autowired
     private CompanyDeviceRelationService companyDeviceRelationService;
 
+    @Autowired
+    private DeviceInfoService deviceInfoService;
+
     @ApiOperation(value="创建空记录")
     @GetMapping("create")
     public MessageResult<CompanyInfoDTO> create(){
@@ -376,13 +376,54 @@ public class CompanyInfoController {
     }
 
     @GetMapping("queryBindDeviceList")
-    public MessageResult<List> queryBindDeviceList(String companyId){
-        MessageResult<List> messageResult = new MessageResult<>();
+    public MessageResult<Map> queryBindDeviceList(String companyId,
+                                                   @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
+                                                   @RequestParam(value="pageSize",defaultValue="20") int pageSize,
+                                                   @RequestAttribute String subject){
+        MessageResult<Map> messageResult = new MessageResult<>();
 
         try {
-            List<DeviceInfo> deviceList = companyDeviceRelationService.findDeviceByCompanyId(companyId);
+            User user = userService.get(subject);
+
+            Map<String,Object> searchParams = new HashMap<>();
+
+            if(!userService.hasRole(user.getId(),"SYSADMIN")) {
+                searchParams.put("bindCompanyId",user.getCompanyId());
+            }
+
+            List<Sort> sorts = new ArrayList<>();
+            sorts.add(new Sort("create_time","asc"));
+
+            //设备列表
+            Page<DeviceInfo> deviceInfoPage = deviceInfoService.pageSearch(searchParams,pageIndex,pageSize,true,sorts);
+
+            //查询已绑定设备
+            List<DeviceInfo> bindDeviceList = companyDeviceRelationService.findDeviceByCompanyId(companyId);
+
+            List<Map> mapList = new ArrayList<>();
+
+            for (DeviceInfo deviceInfo : deviceInfoPage) {
+                Map<String,Object> map = new HashMap<>();
+
+                map.put("device",deviceInfo);
+
+                long count = bindDeviceList.stream().filter((d)->d.getId().equals(deviceInfo.getId())).count();
+
+                if (count>0){
+                    map.put("bound",true);
+                }
+                else{
+                    map.put("bound",false);
+                }
+
+                mapList.add(map);
+            }
+
+            Map<String,Object> dataMap = PojoUtils.pageWrapper(deviceInfoPage);
+
+            dataMap.put("data",mapList);
 
-            messageResult.setData(deviceList);
+            messageResult.setData(dataMap);
             messageResult.setResult(true);
         }
         catch (Exception ex){

+ 20 - 17
web/src/main/java/com/jpsoft/smart/modules/mobile/controller/IndividualLogApiController.java

@@ -205,26 +205,29 @@ public class IndividualLogApiController {
 
                 map.put("date",startDate);
 
-                List<Map<String,Object>> list = new ArrayList<>();
-                boolean isDanger = false;
-                for (PersonDeviceFilterLog personDeviceFilterLog:personDeviceLogList) {
-                    Map<String, Object> mapChi = new HashMap<>();
-                    Date recordTime = personDeviceFilterLog.getRecordTime();
-                    String hour = f.format(recordTime);
-
-                    mapChi.put("name",hour+"时");
-                    mapChi.put("value",personDeviceFilterLog.getTemperature());
-                    double temperatureDou = Double.parseDouble(personDeviceFilterLog.getTemperature().toString());
-                    if(temperatureDou>=37){
-                        isDanger = true;
+                if(personDeviceLogList.size()>0) {
+
+                    List<Map<String, Object>> list = new ArrayList<>();
+                    boolean isDanger = false;
+                    for (PersonDeviceFilterLog personDeviceFilterLog : personDeviceLogList) {
+                        Map<String, Object> mapChi = new HashMap<>();
+                        Date recordTime = personDeviceFilterLog.getRecordTime();
+                        String hour = f.format(recordTime);
+
+                        mapChi.put("name", hour + "时");
+                        mapChi.put("value", personDeviceFilterLog.getTemperature());
+                        double temperatureDou = Double.parseDouble(personDeviceFilterLog.getTemperature().toString());
+                        if (temperatureDou >= 37) {
+                            isDanger = true;
+                        }
+                        list.add(mapChi);
                     }
-                    list.add(mapChi);
-                }
 
-                map.put("list",list);
-                map.put("danger",isDanger);
+                    map.put("list", list);
+                    map.put("danger", isDanger);
 
-                totalList.add(map);
+                    totalList.add(map);
+                }
             }
 
             messageResult.setData(totalList);

+ 2 - 0
web/src/main/java/com/jpsoft/smart/modules/mobile/controller/PersonDeviceLogApiController.java

@@ -158,6 +158,8 @@ public class PersonDeviceLogApiController {
                         .sorted(Comparator.comparing(PersonDeviceLog::getRecordTime))
                         .map((log)->{
                             Map<String,Object> map = new HashMap<>();
+                            //日志编号
+                            map.put("id",log.getId());
                             map.put("temperature",log.getTemperature());
                             map.put("recordTime",sdf.format(log.getRecordTime()));