瀏覽代碼

fix:"优化机器列表接口"

soobin 1 月之前
父節點
當前提交
7ef731b2d9

+ 170 - 0
src/main/java/com/szwl/controller/TEquipmentController.java

@@ -319,6 +319,174 @@ public class TEquipmentController {
 
     }
 
+    @ApiOperation(value = "机器列表")
+    @PostMapping("/list")
+    public ResponseModel<IPage<?>> list(@RequestBody EquipmentParam param) {
+        UserDetailBO userDetailBO = Optional.ofNullable(tokenManager.getLoginUserDetails())
+                .orElseThrow(() -> new BizException(ResponseCodesEnum.L0001));
+        String adminId = userDetailBO.getId().toString();
+        int authId = Integer.parseInt(adminId);
+        LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+        TAdmin admin = tAdminService.getById(authId);
+        // 条件参数
+        String companyType = param.getCompanyType();
+        String clientId = param.getClientId();
+        String adminName = param.getAdminName();
+        String equipmentName = param.getEquipmentName();
+        String areaName = param.getAreaName();
+        String eqeStatus = param.getEqeStatus();
+        String machineType = param.getMachineType();
+        String equimentType = param.getEquimentType();
+        String labelId = param.getLabelId();
+        String todayDate = param.getTodayDate();
+        Boolean isAbroad = param.getIsAbroad();
+        long current = param.getCurrent();
+        long size = param.getSize();
+        IPage<TEquipmentDTO> iPageDTO = new Page<>(current, size, true);
+
+        if (authId == 2738) {
+            // 申泽管理员
+            companyType = "0";
+        } else if (authId == 2739) {
+            // 七云管理员
+            companyType = "1";
+        }
+        Integer type = admin.getType();
+        if (type > 1) {
+            if (type == 2) {
+                query.eq(TEquipment::getAdminId, authId);
+            }
+            if (type == 3) {
+                //查找属于这个商家子账户的设备
+                TAdminEquipment adminEquipment = tAdminEquipmentService.getById(admin.getId());
+                if (adminEquipment.getType().equals("0")) {
+                    //全部机器
+                    query.eq(TEquipment::getAdminId, admin.getParentId());
+                } else {
+                    String equipmentIds = adminEquipment.getEquipmentIds();
+                    String[] strings = equipmentIds.split(",");
+                    query.in(TEquipment::getId, strings);
+                }
+            }
+        }
+        if (StringUtils.isNotEmpty(clientId)) {
+            query.like(TEquipment::getClientId, clientId);
+        }
+        if (StringUtils.isNotEmpty(adminName) && !"sysMgtAcc".equals(adminName)) {
+            LambdaQueryWrapper<TAdmin> adminQuery = Wrappers.lambdaQuery();
+            adminQuery.eq(TAdmin::getUsername, adminName);
+            TAdmin tAdmin = tAdminService.getOne(adminQuery);
+            if (tAdmin ==  null) {
+                return R.ok(iPageDTO);
+            }
+            query.eq(TEquipment::getAdminId, tAdmin.getId());
+        }
+        if (StringUtils.isNotEmpty(equipmentName)) {
+            query.like(TEquipment::getName, equipmentName);
+        }
+        if (StringUtils.isNotEmpty(areaName)) {
+            query.like(TEquipment::getFullName, areaName);
+        }
+        if (StringUtils.isNotEmpty(eqeStatus)) {
+            query.eq(TEquipment::getEqeStatus, eqeStatus);
+        }
+        if (StringUtils.isNotEmpty(machineType)) {
+            query.eq(TEquipment::getMachineType, machineType);
+        }
+        if (StringUtils.isNotEmpty(equimentType)) {
+            query.eq(TEquipment::getEquimentType, equimentType);
+        }
+        // 公司平台
+        if (StringUtils.isNotEmpty(companyType)) {
+            if (companyType.equals("0")) {
+//                query.isNull(TEquipment::getCompanyType)
+//                        .or().eq(TEquipment::getCompanyType, companyType);
+                query.ne(TEquipment::getCompanyType, "1");
+            } else {
+                query.eq(TEquipment::getCompanyType, companyType);
+            }
+        }
+        // 分组ID
+        if (StringUtils.isNotEmpty(labelId)) {
+            if (NumberUtil.isInteger(labelId)) {
+                TLabel label = labelService.getById(labelId);
+                String equipmentIds = label.getEquipmentIds();
+                equipmentIds = equipmentIds.replace("\"", "").replace("[", "").replace("]", "");
+                String[] split = equipmentIds.split(",");
+                query.in(TEquipment::getId, split);
+            } else if (ConfigConsts.ABNORMAL.equals(labelId)) {
+                query.eq(TEquipment::getIsAlarm, 1);
+            } else if (ConfigConsts.ON.equals(labelId)) {
+                query.eq(TEquipment::getEqeStatus, 1);
+            }
+        }
+        // todo 是否海外
+        query.orderByDesc(TEquipment::getCreateDate);
+        Page<TEquipment> page = new Page<>(current, size, true);
+        IPage<TEquipment> iPage = tEquipmentService.page(page, query);
+        iPageDTO.setCurrent(iPage.getCurrent());
+        iPageDTO.setPages(iPage.getPages());
+        iPageDTO.setSize(iPage.getSize());
+        iPageDTO.setTotal(iPage.getTotal());
+        List<TEquipment> list = iPage.getRecords();
+        List<TEquipmentDTO> equipmentDTOList = list.stream().map(equipment -> {
+            TEquipmentDTO equipmentDTO = new TEquipmentDTO();
+            BeanUtils.copyPropertiesIgnoreNull(equipment, equipmentDTO, true);
+            return equipmentDTO;
+        }).collect(Collectors.toList());
+        for (TEquipmentDTO equipmentDTO : equipmentDTOList) {
+            LocalDateTime dateTime = LocalDateTime.parse(todayDate + "T00:00:00");
+            // 获取前一天的0点时间
+            LocalDateTime startDateTime = dateTime.minusDays(1).with(LocalTime.MIN);
+            // 获取当天的24点时间
+            LocalDateTime endDateTime = dateTime.with(LocalTime.MAX);
+            LambdaQueryWrapper<TAlarmRecord> query1 = Wrappers.lambdaQuery();
+            query1.eq(TAlarmRecord::getEquipmentId, equipmentDTO.getId());
+            query1.eq(TAlarmRecord::getIsEliminate, 0);
+            query1.gt(TAlarmRecord::getOccurrenceTime, startDateTime);
+            query1.le(TAlarmRecord::getOccurrenceTime, endDateTime);
+            query1.orderByDesc(TAlarmRecord::getLevel).orderByDesc(TAlarmRecord::getOccurrenceTime);
+            List<TAlarmRecord> alarmRecordList = tAlarmRecordService.list(query1);
+            if (!alarmRecordList.isEmpty()) {
+                equipmentDTO.setHasTodayAlarm(true);
+                equipmentDTO.setAlarmList(alarmRecordList);
+            } else {
+                equipmentDTO.setHasTodayAlarm(false);
+            }
+            TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipmentDTO.getId());
+            if (equipmentDesc != null) {
+                equipmentDTO.setRedSugar(equipmentDesc.getRedSugar());
+                equipmentDTO.setWasteWater(equipmentDesc.getWasteWater());
+                equipmentDTO.setWater(equipmentDesc.getWater());
+                equipmentDTO.setYellowSugar(equipmentDesc.getYellowSugar());
+                equipmentDTO.setBlueSugar(equipmentDesc.getBlueSugar());
+                equipmentDTO.setIsMaterialUse(equipmentDesc.getIsMaterialUse());
+                equipmentDTO.setStick(equipmentDesc.getStick());
+                equipmentDTO.setWhiteSugar(equipmentDesc.getWhiteSugar());
+                equipmentDTO.setSleepDesc(equipmentDesc.getSleepDesc());
+                equipmentDTO.setOutDoor(equipmentDesc.getOutDoor());
+                equipmentDTO.setInDoor(equipmentDesc.getInDoor());
+                equipmentDTO.setCupQuantity(equipmentDesc.getCupQuantity());
+                equipmentDTO.setStirTm(equipmentDesc.getStirTm());
+                equipmentDTO.setCornGeneratorTm(equipmentDesc.getCornGeneratorTm());
+                equipmentDTO.setNumberOne(equipmentDesc.getNumberOne());
+                equipmentDTO.setCandyGeneratorTm(equipmentDesc.getCandyGeneratorTm());
+                equipmentDTO.setOutsideHd(equipmentDesc.getOutsideHd());
+                equipmentDTO.setOutsideTm(equipmentDesc.getOutsideTm());
+                equipmentDTO.setDiyFlowerStatus(equipmentDesc.getDiyFlowerStatus());
+                equipmentDTO.setWorkingMode(equipmentDesc.getWorkingMode());
+                equipmentDTO.setCleanFunction(equipmentDesc.getCleanFunction());
+                equipmentDTO.setTaxStatus(equipmentDesc.getTaxStatus());
+                equipmentDTO.setTaxRate(equipmentDesc.getTaxRate());
+                equipmentDTO.setBanPaper(equipmentDesc.getBanPaper());
+                equipmentDTO.setIsAbroad(equipmentDesc.getIsAbroad());
+            }
+
+        }
+        iPageDTO.setRecords(equipmentDTOList);
+        return R.ok(iPageDTO);
+    }
+
     @ApiOperation(value = "id查找机器详情")
     @PostMapping("/findById")
     public ResponseModel<?> findById(@RequestParam Long id) {
@@ -1992,5 +2160,7 @@ public class TEquipmentController {
         return R.ok();
     }
 
+
+
 }
 

+ 38 - 1
src/main/java/com/szwl/model/param/EquipmentParam.java

@@ -1,11 +1,12 @@
 package com.szwl.model.param;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.szwl.model.entity.TEquipment;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 @Data
-public class EquipmentParam {
+public class EquipmentParam extends TEquipment {
 
     @ApiModelProperty(value = "设备id")
     private Long id;
@@ -13,10 +14,46 @@ public class EquipmentParam {
     @ApiModelProperty(value = "设备编号")
     private String clientId;
 
+    @ApiModelProperty(value = "商家名称")
+    private String adminName;
+
+    @ApiModelProperty(value = "位置关键字")
+    private String areaName;
+
     @ApiModelProperty(value = "设备名称")
     private String equipmentName;
 
+    @ApiModelProperty(value = "设备状态")
+    private String eqeStatus;
+
+    @ApiModelProperty(value = "设备类型")
+    private String machineType;
+
+    @ApiModelProperty(value = "设备型号")
+    private String equimentType;
+
+    @ApiModelProperty(value = "通道")
+    private String channel;
+
+    @ApiModelProperty(value = "公司类型")
+    private String companyType;
+
+    @ApiModelProperty(value = "分组id")
+    private String labelId;
+
+    @ApiModelProperty(value = "今天日期")
+    private String todayDate;
+
+    @ApiModelProperty(value = "是否海外机器,0:国内,1:海外")
+    private Boolean isAbroad;
+
     @ApiModelProperty(value = "app链接")
     private String url;
 
+    @ApiModelProperty(value = "当前页")
+    private long current;
+
+    @ApiModelProperty(value = "每页条数")
+    private long size;
+
 }