Bladeren bron

新增电机地图显示

车车 2 maanden geleden
bovenliggende
commit
1700c61b87

+ 23 - 9
ktg-iscs/src/main/java/com/ktg/iscs/controller/IsMotorController.java

@@ -8,9 +8,8 @@ import com.ktg.common.annotation.Log;
 import com.ktg.common.core.controller.BaseController;
 import com.ktg.common.enums.BusinessType;
 import com.ktg.common.pojo.CommonResult;
-import com.ktg.common.utils.StringUtils;
-import com.ktg.common.utils.poi.ExcelUtil;
 import com.ktg.iscs.domain.IsMotor;
+import com.ktg.iscs.domain.dto.motor.MotorMoveDTO;
 import com.ktg.iscs.service.IIsMotorService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -20,14 +19,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
 import java.util.Arrays;
-
-
-
-
-import com.ktg.common.core.page.TableDataInfo;
+import java.util.List;
 
 /**
  * 电机Controller
@@ -98,6 +91,27 @@ public class IsMotorController extends BaseController
         return CommonResult.success(isMotorService.removeBatchByIds(Arrays.asList(longIds)));
     }
 
+    @ApiOperation("查询电机-list")
+    @Parameters({
+            @Parameter(name = "lotoId", description = "锁控柜id")
+    })
+    @PreAuthorize("@ss.hasPermi('iscs:motor:list')")
+    @GetMapping("/getIsMotorListByLotoId")
+    public CommonResult<List<IsMotor>> getIsMotorListByLotoId(Long lotoId)
+    {
+        List<IsMotor> isMotorListByLotoId = isMotorService.getIsMotorListByLotoId(lotoId);
+        return CommonResult.success(isMotorListByLotoId);
+    }
+
+
+    @ApiOperation("移动电机")
+    @PreAuthorize("@ss.hasPermi('iscs:motor:edit')")
+    @Log(title = "电机", businessType = BusinessType.UPDATE)
+    @PostMapping("/updateIsMotorMove")
+    public CommonResult<Boolean> updateIsMotorMove(@RequestBody @Parameter(name = "dto", description = "修改数据类,放到body") MotorMoveDTO dto)
+    {
+        return CommonResult.success(isMotorService.updateIsMotorMove(dto));
+    }
 
 
 }

+ 7 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/IsLotoStation.java

@@ -48,6 +48,13 @@ public class IsLotoStation extends BaseEntity
     @TableField(exist = false)
     private String mapName;
 
+    @ApiModelProperty(value = "电机地图id")
+    private Long motorMapId;
+
+    @ApiModelProperty(value = "电机地图name")
+    @TableField(exist = false)
+    private String motorMapName;
+
     @ApiModelProperty(value = "状态")
     @Excel(name = "状态")
     private String status;

+ 2 - 2
ktg-iscs/src/main/java/com/ktg/iscs/domain/IsMapPoint.java

@@ -36,8 +36,8 @@ public class IsMapPoint extends BaseBean
     @TableField(exist = false)
     private String mapName;
 
-    @ApiModelProperty(value = "地图类型(1岗位; 2锁定站)")
-    @Excel(name = "地图类型", readConverterExp = "1=岗位;,2=锁定站")
+    @ApiModelProperty(value = "地图类型(1岗位; 2锁定站,3布局图,4电机)")
+    @Excel(name = "地图类型", readConverterExp = "地图类型(1岗位; 2锁定站,3布局图,4电机)")
     private String mapType;
 
     @ApiModelProperty(value = "实体id")

+ 11 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/IsMotor.java

@@ -41,5 +41,16 @@ public class IsMotor extends BaseBean
     @ApiModelProperty(value = "删除标志(0代表存在 2代表删除)")
     private String delFlag;
 
+    @ApiModelProperty(value = "x")
+    @TableField(exist = false)
+    private String x;
+
+    @ApiModelProperty(value = "y")
+    @TableField(exist = false)
+    private String y;
+
+    @ApiModelProperty(value = "mapPointId")
+    @TableField(exist = false)
+    private Long mapPointId;
 
 }

+ 28 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/dto/motor/MotorMoveDTO.java

@@ -0,0 +1,28 @@
+package com.ktg.iscs.domain.dto.motor;
+
+import com.ktg.common.core.domain.model.BaseBean;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 电机对象 is_motor
+ *
+ * @author cgj
+ * @date 2025-09-04
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class MotorMoveDTO extends BaseBean
+{
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "地图ID")
+    private Long mapId;
+
+    @ApiModelProperty(value = "移动的电机")
+    private List<MotorMoveDetailDTO> moveList;
+
+}

+ 34 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/dto/motor/MotorMoveDetailDTO.java

@@ -0,0 +1,34 @@
+package com.ktg.iscs.domain.dto.motor;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ktg.common.core.domain.model.BaseBean;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 电机对象 is_motor
+ *
+ * @author cgj
+ * @date 2025-09-04
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class MotorMoveDetailDTO extends BaseBean
+{
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "电机id")
+    private Long entityId;
+
+    @ApiModelProperty(value = "x")
+    private String x;
+
+    @ApiModelProperty(value = "y")
+    private String y;
+
+    @ApiModelProperty(value = "mapPointId")
+    @TableField(exist = false)
+    private Long mapPointId;
+
+}

+ 6 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/vo/loto/IsLotoStationVO.java

@@ -49,6 +49,12 @@ public class IsLotoStationVO extends BaseBean
     @ApiModelProperty(value = "地图name")
     private String mapName;
 
+    @ApiModelProperty(value = "电机地图id")
+    private Long motorMapId;
+
+    @ApiModelProperty(value = "电机地图name")
+    private String motorMapName;
+
     @ApiModelProperty(value = "状态")
     @Excel(name = "状态")
     private String status;

+ 8 - 2
ktg-iscs/src/main/java/com/ktg/iscs/service/IIsMotorService.java

@@ -1,9 +1,11 @@
 package com.ktg.iscs.service;
 
-import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.ktg.iscs.domain.IsMotor;
+import com.ktg.iscs.domain.dto.motor.MotorMoveDTO;
+
+import java.util.List;
 
 /**
  * 电机Service接口
@@ -15,4 +17,8 @@ public interface IIsMotorService extends IService<IsMotor> {
 
     Page<IsMotor> getIsMotorPage(Page<IsMotor> page, IsMotor isMotor);
 
+    List<IsMotor> getIsMotorListByLotoId(Long lotoId);
+
+    Boolean updateIsMotorMove(MotorMoveDTO dto);
+
 }

+ 5 - 7
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsLotoStationServiceImpl.java

@@ -4,24 +4,21 @@ import cn.hutool.core.lang.Assert;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ktg.common.annotation.MarsDataScope;
 import com.ktg.common.utils.StringUtils;
-import com.ktg.iscs.domain.*;
+import com.ktg.iscs.domain.IsIsolationPoint;
+import com.ktg.iscs.domain.IsLotoStation;
+import com.ktg.iscs.domain.IsMap;
 import com.ktg.iscs.domain.dto.point.BindingPointDTO;
 import com.ktg.iscs.domain.vo.loto.IsLotoStationVO;
-import com.ktg.iscs.domain.vo.points.PointDetailVO;
 import com.ktg.iscs.domain.vo.workarea.PointsMapVO;
 import com.ktg.iscs.mapper.IsLotoStationMapper;
 import com.ktg.iscs.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * 电柜Service业务层处理
@@ -168,7 +165,8 @@ public class IsLotoStationServiceImpl extends ServiceImpl<IsLotoStationMapper, I
                 .set(IsLotoStation::getOrderNum, isLotoStation.getOrderNum())
                 .set(IsLotoStation::getMapId, isLotoStation.getMapId() != null ? isLotoStation.getMapId() : null)
                 .set(IsLotoStation::getWorkstationId, isLotoStation.getWorkstationId() != null ? isLotoStation.getWorkstationId() : null)
-                .set(IsLotoStation::getMap, StringUtils.isNotBlank(isLotoStation.getMap()) ? isLotoStation.getMap() : null));
+                .set(IsLotoStation::getMap, StringUtils.isNotBlank(isLotoStation.getMap()) ? isLotoStation.getMap() : null)
+                .set(IsLotoStation::getMotorMapId, isLotoStation.getMotorMapId() != null ? isLotoStation.getMotorMapId() : null));
         return true;
     }
 

+ 81 - 8
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsMotorServiceImpl.java

@@ -1,17 +1,26 @@
 package com.ktg.iscs.service.impl;
 
+import cn.hutool.core.lang.Assert;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import java.util.List;
-import cn.hutool.core.lang.Assert;
-import com.ktg.common.core.text.Convert;
-import com.ktg.common.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.ktg.iscs.mapper.IsMotorMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ktg.iscs.domain.IsIsolationPoint;
+import com.ktg.iscs.domain.IsLotoStation;
+import com.ktg.iscs.domain.IsMapPoint;
 import com.ktg.iscs.domain.IsMotor;
+import com.ktg.iscs.domain.dto.motor.MotorMoveDTO;
+import com.ktg.iscs.domain.dto.motor.MotorMoveDetailDTO;
+import com.ktg.iscs.mapper.IsMotorMapper;
+import com.ktg.iscs.service.IIsIsolationPointService;
+import com.ktg.iscs.service.IIsLotoStationService;
+import com.ktg.iscs.service.IIsMapPointService;
 import com.ktg.iscs.service.IIsMotorService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 电机Service业务层处理
@@ -24,6 +33,12 @@ public class IsMotorServiceImpl extends ServiceImpl<IsMotorMapper, IsMotor> impl
 
     @Autowired
     private IsMotorMapper isMotorMapper;
+    @Autowired
+    private IIsLotoStationService isLotoStationService;
+    @Autowired
+    private IIsIsolationPointService iIsIsolationPointService;
+    @Autowired
+    private IIsMapPointService isMapPointService;
 
     @Override
     public Page<IsMotor> getIsMotorPage(Page<IsMotor> page, IsMotor isMotor) {
@@ -31,4 +46,62 @@ public class IsMotorServiceImpl extends ServiceImpl<IsMotorMapper, IsMotor> impl
         return result;
     }
 
+    @Override
+    public List<IsMotor> getIsMotorListByLotoId(Long lotoId) {
+        Assert.notNull(lotoId, "锁控柜id不能为空!");
+        IsLotoStation lotoStation = isLotoStationService.getById(lotoId);
+        Assert.notNull(lotoStation, "物资柜存在!");
+        List<IsMotor> motorList = null;
+        if (lotoStation.getMotorMapId() != null) {
+            List<IsIsolationPoint> points = iIsIsolationPointService.list(Wrappers.<IsIsolationPoint>lambdaQuery()
+                    .eq(IsIsolationPoint::getLotoId, lotoId));
+            if (!points.isEmpty()) {
+                motorList = list(Wrappers.<IsMotor>lambdaQuery()
+                        .in(IsMotor::getPointId, points.stream().map(IsIsolationPoint::getPointId).collect(Collectors.toList())));
+                if (!motorList.isEmpty()) {
+                    // 查询这些电机有没有坐标数据
+                    List<IsMapPoint> mapPoints = isMapPointService.list(Wrappers.<IsMapPoint>lambdaQuery()
+                            .eq(IsMapPoint::getMapType, "4")
+                            .eq(IsMapPoint::getMapId, lotoStation.getMotorMapId())
+                            .in(IsMapPoint::getEntityId, motorList.stream().map(IsMotor::getMotorId).collect(Collectors.toList())));
+                    for (IsMotor isMotor : motorList) {
+                        for (IsMapPoint mapPoint : mapPoints) {
+                            if (isMotor.getMotorId().equals(mapPoint.getEntityId())) {
+                                isMotor.setX(mapPoint.getX());
+                                isMotor.setY(mapPoint.getY());
+                                isMotor.setMapPointId(mapPoint.getId());
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return motorList;
+    }
+
+    @Override
+    public Boolean updateIsMotorMove(MotorMoveDTO dto) {
+        if (dto.getMapId() != null && !dto.getMoveList().isEmpty()) {
+            Date date = new Date();
+            for (MotorMoveDetailDTO motorMoveDetailDTO : dto.getMoveList()) {
+                if (motorMoveDetailDTO.getMapPointId() != null) {
+                    isMapPointService.update(Wrappers.<IsMapPoint>lambdaUpdate()
+                            .eq(IsMapPoint::getId, motorMoveDetailDTO.getMapPointId())
+                            .set(IsMapPoint::getX, motorMoveDetailDTO.getX())
+                            .set(IsMapPoint::getY, motorMoveDetailDTO.getY())
+                            .set(IsMapPoint::getUpdateTime, date));
+                } else {
+                    IsMapPoint isMapPoint = new IsMapPoint();
+                    isMapPoint.setMapId(dto.getMapId());
+                    isMapPoint.setMapType("4");
+                    isMapPoint.setEntityId(motorMoveDetailDTO.getEntityId());
+                    isMapPoint.setX(motorMoveDetailDTO.getX());
+                    isMapPoint.setY(motorMoveDetailDTO.getY());
+                    isMapPointService.save(isMapPoint);
+                }
+            }
+        }
+        return true;
+    }
+
 }

+ 3 - 1
ktg-iscs/src/main/resources/mapper/IsLotoStationMapper.xml

@@ -8,12 +8,14 @@
         SELECT
         l.*,
         w.workstation_name,
-        m.name as map_name
+        m.name as map_name,
+        m1.name as motor_map_name
         FROM
         is_loto_station l
         LEFT JOIN is_workstation w ON w.workstation_id = l.workstation_id
         LEFT JOIN sys_user u ON u.user_id = l.create_by
         LEFT JOIN is_map m ON m.id = l.map_id
+        LEFT JOIN is_map m1 ON m1.id = l.motor_map_id
         where
             l.del_flag = '0'
             <if test="isLotoStation.lotoName != null and isLotoStation.lotoName.trim != ''">