Răsfoiți Sursa

对接修改工艺和隔离点的关系

车车 10 luni în urmă
părinte
comite
f9306b445b
22 a modificat fișierele cu 510 adăugiri și 38 ștergeri
  1. 0 10
      ktg-iscs/src/main/java/com/ktg/iscs/controller/IsIsolationPointController.java
  2. 16 3
      ktg-iscs/src/main/java/com/ktg/iscs/controller/IsLotoStationController.java
  3. 16 22
      ktg-iscs/src/main/java/com/ktg/iscs/controller/IsMachineryController.java
  4. 6 0
      ktg-iscs/src/main/java/com/ktg/iscs/domain/IsIsolationPoint.java
  5. 4 0
      ktg-iscs/src/main/java/com/ktg/iscs/domain/IsMachinery.java
  6. 39 0
      ktg-iscs/src/main/java/com/ktg/iscs/domain/IsMachineryPoints.java
  7. 28 0
      ktg-iscs/src/main/java/com/ktg/iscs/domain/dto/machinery/IsMachineryDTO.java
  8. 54 0
      ktg-iscs/src/main/java/com/ktg/iscs/domain/vo/loto/IsLotoStationVO.java
  9. 11 1
      ktg-iscs/src/main/java/com/ktg/iscs/domain/vo/machinery/IsMachineryVO.java
  10. 9 0
      ktg-iscs/src/main/java/com/ktg/iscs/domain/vo/points/PointPageVO.java
  11. 5 0
      ktg-iscs/src/main/java/com/ktg/iscs/mapper/IsLotoStationMapper.java
  12. 16 0
      ktg-iscs/src/main/java/com/ktg/iscs/mapper/IsMachineryPointsMapper.java
  13. 9 0
      ktg-iscs/src/main/java/com/ktg/iscs/service/IIsLotoStationService.java
  14. 14 0
      ktg-iscs/src/main/java/com/ktg/iscs/service/IIsMachineryPointsService.java
  15. 11 0
      ktg-iscs/src/main/java/com/ktg/iscs/service/IIsMachineryService.java
  16. 109 0
      ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsLotoStationServiceImpl.java
  17. 22 0
      ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsMachineryPointsServiceImpl.java
  18. 99 0
      ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsMachineryServiceImpl.java
  19. 11 1
      ktg-iscs/src/main/resources/mapper/IsIsolationPointMapper.xml
  20. 21 0
      ktg-iscs/src/main/resources/mapper/IsLotoStationMapper.xml
  21. 3 1
      ktg-iscs/src/main/resources/mapper/IsMachineryMapper.xml
  22. 7 0
      ktg-iscs/src/main/resources/mapper/IsMachineryPointsMapper.xml

+ 0 - 10
ktg-iscs/src/main/java/com/ktg/iscs/controller/IsIsolationPointController.java

@@ -47,16 +47,6 @@ public class IsIsolationPointController extends BaseController {
     @PreAuthorize("@ss.hasPermi('mes:md:seg:query')")
     @GetMapping("/getIsIsolationPointPage")
     public CommonResult<Page<PointPageVO>> getIsIsolationPointPage(Page<IsIsolationPoint> page, PagePointDTO dto) {
-       /*Page<IsIsolationPoint> result = isIsolationPointService.page(page, Wrappers.<IsIsolationPoint>lambdaQuery()
-                .like(StringUtils.isNotBlank(dto.getPointCode()), IsIsolationPoint::getPointCode, dto.getPointCode())
-                .like(StringUtils.isNotBlank(dto.getPointName()), IsIsolationPoint::getPointName, dto.getPointName())
-                .eq(StringUtils.isNotBlank(dto.getDelFlag()), IsIsolationPoint::getDelFlag, dto.getDelFlag())
-                .eq(StringUtils.isNotBlank(dto.getPointType()), IsIsolationPoint::getPointType, dto.getPointType())
-                .eq(StringUtils.isNotBlank(dto.getPowerType()), IsIsolationPoint::getPowerType, dto.getPowerType())
-                .ge(StringUtils.isNotBlank(dto.getStartTime()), IsIsolationPoint::getCreateTime, dto.getStartTime())
-                .le(StringUtils.isNotBlank(dto.getEndTime()), IsIsolationPoint::getCreateTime, dto.getEndTime())
-                .eq(dto.getLockTypeId() != null, IsIsolationPoint::getLockTypeId, dto.getLockTypeId())
-                .orderByDesc(IsIsolationPoint::getPointId));*/
         Page<PointPageVO> result = isIsolationPointService.getIsIsolationPointPage(page, dto);
         return CommonResult.success(result);
     }

+ 16 - 3
ktg-iscs/src/main/java/com/ktg/iscs/controller/IsLotoStationController.java

@@ -10,6 +10,8 @@ import com.ktg.common.enums.BusinessType;
 import com.ktg.common.pojo.CommonResult;
 import com.ktg.common.utils.poi.ExcelUtil;
 import com.ktg.iscs.domain.IsLotoStation;
+import com.ktg.iscs.domain.vo.loto.IsLotoStationVO;
+import com.ktg.iscs.domain.vo.workarea.PointsMapVO;
 import com.ktg.iscs.service.IIsLotoStationService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -47,10 +49,9 @@ public class IsLotoStationController extends BaseController
     })
     @PreAuthorize("@ss.hasPermi('iscs:station:list')")
     @GetMapping("/getIsLotoStationPage")
-    public CommonResult<Page<IsLotoStation>> getIsLotoStationPage(Page<IsLotoStation> page, IsLotoStation isLotoStation)
+    public CommonResult<Page<IsLotoStationVO>> getIsLotoStationPage(Page<IsLotoStation> page, IsLotoStation isLotoStation)
     {
-        Page<IsLotoStation> result = isLotoStationService.page(page, Wrappers.<IsLotoStation>lambdaQuery()
-                .orderByDesc(IsLotoStation::getLotoId));
+        Page<IsLotoStationVO> result = isLotoStationService.getIsLotoStationPage(page, isLotoStation);
         return CommonResult.success(result);
     }
 
@@ -122,4 +123,16 @@ public class IsLotoStationController extends BaseController
         Long[] longIds = Convert.toLongArray(lotoIds);
         return CommonResult.success(isLotoStationService.removeBatchByIds(Arrays.asList(longIds)));
     }
+
+    @ApiOperation("获取电柜map解析数据")
+    @Parameter(name = "workareaId", description = "workareaId")
+    @Parameters({
+            @Parameter(name = "workareaId", description = "区域id"),
+            @Parameter(name = "sopId", description = "sopId"),
+            @Parameter(name = "ticketId", description = "ticketId")
+    })
+    @GetMapping(value = "/selectLotoMapById")
+    public CommonResult<List<PointsMapVO>> selectLotoMapById(Long lotoId, Long sopId, Long ticketId) {
+        return CommonResult.success(isLotoStationService.selectLotoMapById(lotoId, sopId, ticketId));
+    }
 }

+ 16 - 22
ktg-iscs/src/main/java/com/ktg/iscs/controller/IsMachineryController.java

@@ -1,16 +1,14 @@
 package com.ktg.iscs.controller;
 
-import cn.hutool.core.convert.Convert;
-import cn.hutool.core.lang.Assert;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.IsMachinery;
+import com.ktg.iscs.domain.dto.machinery.IsMachineryDTO;
 import com.ktg.iscs.domain.vo.machinery.IsMachineryVO;
 import com.ktg.iscs.service.IIsMachineryService;
 import io.swagger.annotations.Api;
@@ -22,7 +20,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
-import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -81,9 +78,9 @@ public class IsMachineryController extends BaseController
     @Parameter(name = "technologyId", description = "technologyId")
     @PreAuthorize("@ss.hasPermi('iscs:machinery:query')")
     @GetMapping(value = "/selectIsMachineryById")
-    public CommonResult<IsMachinery> selectIsMachineryById(Long technologyId)
+    public CommonResult<IsMachineryVO> selectIsMachineryById(Long machineryId)
     {
-        return CommonResult.success(isMachineryService.getById(technologyId));
+        return CommonResult.success(isMachineryService.selectIsMachineryById(machineryId));
     }
 
     /**
@@ -95,17 +92,7 @@ public class IsMachineryController extends BaseController
     @PostMapping("/insertIsMachinery")
     public CommonResult<Boolean> insertIsMachinery(@RequestBody @Parameter(name = "isMachinery", description = "新增数据类,放到body") IsMachinery isMachinery)
     {
-        // 断言校验
-        Assert.isTrue(StringUtils.isNotBlank(isMachinery.getMachineryName()), "名称不可为空!");
-        IsMachinery one =isMachineryService.getById(isMachinery.getParentId());
-        String ancestors;
-        if (one != null) {
-            ancestors = one.getAncestors() + "," + isMachinery.getParentId();
-        } else {
-            ancestors = "0";
-        }
-        isMachinery.setAncestors(ancestors);
-        return CommonResult.success(isMachineryService.save(isMachinery));
+        return CommonResult.success(isMachineryService.insertIsMachinery(isMachinery));
     }
 
     /**
@@ -117,7 +104,16 @@ public class IsMachineryController extends BaseController
     @PostMapping("/updateIsMachinery")
     public CommonResult<Boolean> updateIsMachinery(@RequestBody @Parameter(name = "isMachinery", description = "修改数据类,放到body") IsMachinery isMachinery)
     {
-        return CommonResult.success(isMachineryService.updateById(isMachinery));
+        return CommonResult.success(isMachineryService.updateIsMachinery(isMachinery));
+    }
+
+    @ApiOperation("设备工艺隔离点建立关联关系")
+    @PreAuthorize("@ss.hasPermi('iscs:machinery:edit')")
+    @Log(title = "设备工艺", businessType = BusinessType.UPDATE)
+    @PostMapping("/saveMachineryPoints")
+    public CommonResult<Boolean> saveMachineryPoints(@RequestBody @Parameter(name = "dto", description = "修改数据类,放到body") IsMachineryDTO dto)
+    {
+        return CommonResult.success(isMachineryService.saveMachineryPoints(dto));
     }
 
     /**
@@ -127,10 +123,8 @@ public class IsMachineryController extends BaseController
     @PreAuthorize("@ss.hasPermi('iscs:machinery:remove')")
     @Log(title = "设备工艺", businessType = BusinessType.DELETE)
 	@PostMapping("/deleteIsMachineryByTechnologyIds")
-    public CommonResult<Boolean> deleteIsMachineryByTechnologyIds(String technologyIds)
+    public CommonResult<Boolean> deleteIsMachineryByMachineryIds(String machineryIds)
     {
-        Assert.notBlank(technologyIds, "请选择需要删除的数据!");
-        Long[] longIds = Convert.toLongArray(technologyIds);
-        return CommonResult.success(isMachineryService.removeBatchByIds(Arrays.asList(longIds)));
+        return CommonResult.success(isMachineryService.deleteIsMachineryByMachineryIds(machineryIds));
     }
 }

+ 6 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/IsIsolationPoint.java

@@ -54,6 +54,12 @@ public class IsIsolationPoint extends BaseBean
     @Excel(name = "所属区域ID")
     private Long workareaId;
 
+    @ApiModelProperty(value = "所属mars岗位ID")
+    private Long workstationId;
+
+    @ApiModelProperty(value = "所属电柜ID")
+    private Long lotoId;
+
     /** 危险能量类型 */
     @ApiModelProperty(value = "危险能量类型")
     @Excel(name = "危险能量类型")

+ 4 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/IsMachinery.java

@@ -40,6 +40,10 @@ public class IsMachinery extends BaseBean
     @Excel(name = "所属mars岗位ID")
     private Long workstationId;
 
+    @ApiModelProperty(value = "所属电柜ID")
+    @Excel(name = "所属电柜ID")
+    private Long lotoId;
+
     @ApiModelProperty(value = "工艺图")
     @Excel(name = "工艺图")
     private String machineryImg;

+ 39 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/IsMachineryPoints.java

@@ -0,0 +1,39 @@
+package com.ktg.iscs.domain;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.ktg.common.annotation.Excel;
+import com.ktg.common.core.domain.model.BaseBean;
+
+/**
+ * 设备工艺关联隔离点对象 is_machinery_points
+ *
+ * @author cgj
+ * @date 2024-12-19
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class IsMachineryPoints extends BaseBean
+{
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录ID")
+    @TableId(type = IdType.AUTO)
+    private Long recordId;
+
+    @ApiModelProperty(value = "设备工艺ID")
+    @Excel(name = "设备工艺ID")
+    private Long machineryId;
+
+    @ApiModelProperty(value = "隔离点ID")
+    @Excel(name = "隔离点ID")
+    private Long pointId;
+
+    @ApiModelProperty(value = "删除标志(0代表存在 2代表删除)")
+    private String delFlag;
+
+
+}

+ 28 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/dto/machinery/IsMachineryDTO.java

@@ -0,0 +1,28 @@
+package com.ktg.iscs.domain.dto.machinery;
+
+import com.ktg.common.core.domain.model.BaseBean;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 设备工艺对象 is_machinery
+ *
+ * @author cgj
+ * @date 2024-12-19
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class IsMachineryDTO extends BaseBean
+{
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "设备工艺ID")
+    private Long machineryId;
+
+    @ApiModelProperty(value = "工艺涉及隔离点id")
+    private List<Long> pointIdList;
+
+}

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

@@ -0,0 +1,54 @@
+package com.ktg.iscs.domain.vo.loto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ktg.common.annotation.Excel;
+import com.ktg.common.core.domain.model.BaseBean;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 电柜对象 is_loto_station
+ *
+ * @author cgj
+ * @date 2024-12-19
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class IsLotoStationVO extends BaseBean
+{
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "电柜ID")
+    @TableId(type = IdType.AUTO)
+    private Long lotoId;
+
+    @ApiModelProperty(value = "电柜编号")
+    @Excel(name = "电柜编号")
+    private String lotoCode;
+
+    @ApiModelProperty(value = "电柜名称")
+    @Excel(name = "电柜名称")
+    private String lotoName;
+
+    @ApiModelProperty(value = "所属岗位ID")
+    private Long workstationId;
+
+    @ApiModelProperty(value = "所属岗位Name")
+    @Excel(name = "所属岗位Name")
+    private String workstationName;
+
+    @ApiModelProperty(value = "点位信息")
+    @Excel(name = "点位信息")
+    private String map;
+
+    @ApiModelProperty(value = "状态")
+    @Excel(name = "状态")
+    private String status;
+
+    @ApiModelProperty(value = "删除标志(0代表存在 2代表删除)")
+    private String delFlag;
+
+
+}

+ 11 - 1
ktg-iscs/src/main/java/com/ktg/iscs/domain/vo/machinery/IsMachineryVO.java

@@ -8,6 +8,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.List;
+
 /**
  * 设备工艺对象 is_machinery
  *
@@ -37,13 +39,19 @@ public class IsMachineryVO extends BaseBean
     private String machineryType;
 
     @ApiModelProperty(value = "所属mars岗位ID")
-    @Excel(name = "所属mars岗位ID")
     private Long workstationId;
 
     @ApiModelProperty(value = "所属mars岗位Name")
     @Excel(name = "所属mars岗位Name")
     private String workstationName;
 
+    @ApiModelProperty(value = "所属电柜ID")
+    private Long lotoId;
+
+    @ApiModelProperty(value = "所属电柜名称")
+    @Excel(name = "所属电柜名称")
+    private String lotoName;
+
     @ApiModelProperty(value = "工艺图")
     @Excel(name = "工艺图")
     private String machineryImg;
@@ -63,5 +71,7 @@ public class IsMachineryVO extends BaseBean
     @ApiModelProperty(value = "删除标志(0代表存在 2代表删除)")
     private String delFlag;
 
+    @ApiModelProperty(value = "工艺涉及隔离点id")
+    private List<Long> pointIdList;
 
 }

+ 9 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/vo/points/PointPageVO.java

@@ -41,6 +41,15 @@ public class PointPageVO extends BaseBean
     @ApiModelProperty(value = "所属区域ID")
     private Long workareaId;
 
+    @ApiModelProperty(value = "所属mars岗位ID")
+    private Long workstationId;
+
+    @ApiModelProperty(value = "所属电柜ID")
+    private Long lotoId;
+
+    @ApiModelProperty(value = "所属电柜Name")
+    private String lotoName;
+
     @ApiModelProperty(value = "危险能量类型")
     private String powerType;
 

+ 5 - 0
ktg-iscs/src/main/java/com/ktg/iscs/mapper/IsLotoStationMapper.java

@@ -1,8 +1,11 @@
 package com.ktg.iscs.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ktg.common.mapper.BaseMapperX;
 import com.ktg.iscs.domain.IsLotoStation;
+import com.ktg.iscs.domain.vo.loto.IsLotoStationVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 电柜Mapper接口
@@ -13,4 +16,6 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface IsLotoStationMapper extends BaseMapperX<IsLotoStation> {
 
+    Page<IsLotoStationVO> getIsLotoStationPage(Page<IsLotoStation> page, @Param(value = "isLotoStation") IsLotoStation isLotoStation);
+
 }

+ 16 - 0
ktg-iscs/src/main/java/com/ktg/iscs/mapper/IsMachineryPointsMapper.java

@@ -0,0 +1,16 @@
+package com.ktg.iscs.mapper;
+
+import com.ktg.common.mapper.BaseMapperX;
+import com.ktg.iscs.domain.IsMachineryPoints;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 设备工艺关联隔离点Mapper接口
+ *
+ * @author cgj
+ * @date 2024-12-19
+ */
+@Mapper
+public interface IsMachineryPointsMapper extends BaseMapperX<IsMachineryPoints> {
+
+}

+ 9 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/IIsLotoStationService.java

@@ -1,7 +1,12 @@
 package com.ktg.iscs.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ktg.iscs.domain.IsLotoStation;
+import com.ktg.iscs.domain.vo.loto.IsLotoStationVO;
+import com.ktg.iscs.domain.vo.workarea.PointsMapVO;
+
+import java.util.List;
 
 /**
  * 电柜Service接口
@@ -11,4 +16,8 @@ import com.ktg.iscs.domain.IsLotoStation;
  */
 public interface IIsLotoStationService extends IService<IsLotoStation> {
 
+    Page<IsLotoStationVO> getIsLotoStationPage(Page<IsLotoStation> page, IsLotoStation isLotoStation);
+
+    List<PointsMapVO> selectLotoMapById(Long lotoId, Long sopId, Long ticketId);
+
 }

+ 14 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/IIsMachineryPointsService.java

@@ -0,0 +1,14 @@
+package com.ktg.iscs.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ktg.iscs.domain.IsMachineryPoints;
+
+/**
+ * 设备工艺关联隔离点Service接口
+ *
+ * @author cgj
+ * @date 2024-12-19
+ */
+public interface IIsMachineryPointsService extends IService<IsMachineryPoints> {
+
+}

+ 11 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/IIsMachineryService.java

@@ -3,6 +3,7 @@ package com.ktg.iscs.service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ktg.iscs.domain.IsMachinery;
+import com.ktg.iscs.domain.dto.machinery.IsMachineryDTO;
 import com.ktg.iscs.domain.vo.machinery.IsMachineryVO;
 
 /**
@@ -15,4 +16,14 @@ public interface IIsMachineryService extends IService<IsMachinery> {
 
     Page<IsMachineryVO> getIsMachineryPage(Page<IsMachinery> page, IsMachinery isMachinery);
 
+    Boolean insertIsMachinery(IsMachinery isMachinery);
+
+    Boolean updateIsMachinery(IsMachinery isMachinery);
+
+    Boolean saveMachineryPoints(IsMachineryDTO dto);
+
+    Boolean deleteIsMachineryByMachineryIds(String machineryIds);
+
+    IsMachineryVO selectIsMachineryById(Long machineryId);
+
 }

+ 109 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsLotoStationServiceImpl.java

@@ -1,12 +1,31 @@
 package com.ktg.iscs.service.impl;
 
+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.utils.StringUtils;
+import com.ktg.iscs.domain.IsJobTicketPoints;
 import com.ktg.iscs.domain.IsLotoStation;
+import com.ktg.iscs.domain.IsSopPoints;
+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.IIsIsolationPointService;
+import com.ktg.iscs.service.IIsJobTicketPointsService;
 import com.ktg.iscs.service.IIsLotoStationService;
+import com.ktg.iscs.service.IIsSopPointsService;
 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业务层处理
  *
@@ -18,5 +37,95 @@ public class IsLotoStationServiceImpl extends ServiceImpl<IsLotoStationMapper, I
 
     @Autowired
     private IsLotoStationMapper isLotoStationMapper;
+    @Autowired
+    private IIsIsolationPointService iIsIsolationPointService;
+    @Autowired
+    private IIsSopPointsService iIsSopPointsService;
+    @Autowired
+    private IIsJobTicketPointsService iIsJobTicketPointsService;
+
+    @Override
+    public Page<IsLotoStationVO> getIsLotoStationPage(Page<IsLotoStation> page, IsLotoStation isLotoStation) {
+        return isLotoStationMapper.getIsLotoStationPage(page, isLotoStation);
+    }
 
+    @Override
+    public List<PointsMapVO> selectLotoMapById(Long lotoId, Long sopId, Long ticketId) {
+        // 1.断言校验
+        Assert.notNull(lotoId, "请传入电柜id");
+        // 2.查询区域信息
+        IsLotoStation lotoStation = getById(lotoId);
+        // 3.解析map
+        List<PointsMapVO> points = new ArrayList<>();
+        if (lotoStation != null && StringUtils.isNotBlank(lotoStation.getMap())) {
+            String map = lotoStation.getMap();
+            ObjectMapper objectMapper = new ObjectMapper();
+            try {
+                points = objectMapper.readValue(map, new TypeReference<List<PointsMapVO>>(){});
+                // 4.补充点位name,隔离点类型,危险能量类型
+                List<Long> pointIds = points.stream().map(PointsMapVO::getPointId).collect(Collectors.toList());
+                List<PointDetailVO> pointDetailList = iIsIsolationPointService.getPointDetailList(pointIds);
+                // 5.获取sop信息
+                List<IsSopPoints> isSopPoints;
+                if (sopId != null) {
+                    isSopPoints = iIsSopPointsService.list(Wrappers.<IsSopPoints>lambdaQuery()
+                            .eq(IsSopPoints::getSopId, sopId));
+                } else {
+                    isSopPoints = new ArrayList<>();
+                }
+                // 6.获取作业票点位数据
+                List<IsJobTicketPoints> isJobTicketPoints;
+                if (ticketId != null) {
+                    isJobTicketPoints = iIsJobTicketPointsService.list(Wrappers.<IsJobTicketPoints>lambdaQuery()
+                            .eq(IsJobTicketPoints::getTicketId, ticketId));
+                } else {
+                    isJobTicketPoints = new ArrayList<>();
+                }
+                // 6.组装数据
+                points.stream().filter(o -> {
+                    // 初始化选中状态
+                    o.setState(false);
+                    // 如果点位信息有,则填充
+                    if (!pointDetailList.isEmpty()) {
+                        for (PointDetailVO pointDetailVO : pointDetailList) {
+                            if (o.getPointId().equals(pointDetailVO.getPointId())) {
+                                o.setPointName(pointDetailVO.getPointName());
+                                o.setPointType(pointDetailVO.getPointType());
+                                o.setPointTypeName(pointDetailVO.getPointTypeName());
+                                o.setPowerType(pointDetailVO.getPowerType());
+                                o.setPowerTypeName(pointDetailVO.getPowerTypeName());
+                                o.setPointIcon(pointDetailVO.getPointIcon());
+                                o.setPointPicture(pointDetailVO.getPointPicture());
+                            }
+                        }
+                    }
+                    // sop如果选中信息有则开始标记
+                    if (!isSopPoints.isEmpty()) {
+                        for (IsSopPoints isSopPoint : isSopPoints) {
+                            if (o.getPointId().equals(isSopPoint.getPointId())) {
+                                o.setState(true);
+                                // 根据sop的前置节点赋值
+                                o.setPrePointId(isSopPoint.getPrePointId());
+                            }
+                        }
+                    }
+                    // 作业票如果选中信息有则开始标记
+                    if (!isJobTicketPoints.isEmpty()) {
+                        for (IsJobTicketPoints ticketPoint : isJobTicketPoints) {
+                            if (o.getPointId().equals(ticketPoint.getPointId())) {
+                                o.setState(true);
+                                // 根据作业票的前置节点赋值
+                                o.setPrePointId(ticketPoint.getPrePointId());
+                            }
+                        }
+                    }
+                    return true;
+                }).collect(Collectors.toList());
+            } catch (IOException e) {
+                Assert.isTrue(false, "map数据解析失败!");
+                e.printStackTrace();
+            }
+        }
+        return points;
+    }
 }

+ 22 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsMachineryPointsServiceImpl.java

@@ -0,0 +1,22 @@
+package com.ktg.iscs.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ktg.iscs.domain.IsMachineryPoints;
+import com.ktg.iscs.mapper.IsMachineryPointsMapper;
+import com.ktg.iscs.service.IIsMachineryPointsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 设备工艺关联隔离点Service业务层处理
+ *
+ * @author cgj
+ * @date 2024-12-19
+ */
+@Service
+public class IsMachineryPointsServiceImpl extends ServiceImpl<IsMachineryPointsMapper, IsMachineryPoints> implements IIsMachineryPointsService {
+
+    @Autowired
+    private IsMachineryPointsMapper isMachineryPointsMapper;
+
+}

+ 99 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsMachineryServiceImpl.java

@@ -1,13 +1,27 @@
 package com.ktg.iscs.service.impl;
 
+import cn.hutool.core.convert.Convert;
+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.ktg.common.utils.StringUtils;
+import com.ktg.common.utils.bean.BeanUtils;
 import com.ktg.iscs.domain.IsMachinery;
+import com.ktg.iscs.domain.IsMachineryPoints;
+import com.ktg.iscs.domain.dto.machinery.IsMachineryDTO;
 import com.ktg.iscs.domain.vo.machinery.IsMachineryVO;
 import com.ktg.iscs.mapper.IsMachineryMapper;
+import com.ktg.iscs.service.IIsMachineryPointsService;
 import com.ktg.iscs.service.IIsMachineryService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 设备工艺Service业务层处理
@@ -20,9 +34,94 @@ public class IsMachineryServiceImpl extends ServiceImpl<IsMachineryMapper, IsMac
 
     @Autowired
     private IsMachineryMapper isMachineryMapper;
+    @Autowired
+    private IIsMachineryPointsService iIsMachineryPointsService;
 
     @Override
     public Page<IsMachineryVO> getIsMachineryPage(Page<IsMachinery> page, IsMachinery isMachinery) {
         return isMachineryMapper.getIsMachineryPage(page, isMachinery);
     }
+
+    @Transactional
+    @Override
+    public Boolean insertIsMachinery(IsMachinery isMachinery) {
+        // 断言校验
+        Assert.isTrue(StringUtils.isNotBlank(isMachinery.getMachineryName()), "名称不可为空!");
+        Assert.notNull(isMachinery.getParentId(), "父id不可为空!");
+        IsMachinery one = getById(isMachinery.getParentId());
+        String ancestors;
+        if (one != null) {
+            ancestors = one.getAncestors() + "," + isMachinery.getParentId();
+        } else {
+            ancestors = "0";
+        }
+        isMachinery.setAncestors(ancestors);
+        save(isMachinery);
+        return true;
+    }
+
+    @Override
+    public Boolean updateIsMachinery(IsMachinery isMachinery) {
+        // 断言校验
+        Assert.notNull(isMachinery.getMachineryId(), "id不可为空!");
+        Assert.isTrue(StringUtils.isNotBlank(isMachinery.getMachineryName()), "名称不可为空!");
+        Assert.notNull(isMachinery.getParentId(), "父id不可为空!");
+        IsMachinery one = getById(isMachinery.getParentId());
+        String ancestors;
+        if (one != null) {
+            ancestors = one.getAncestors() + "," + isMachinery.getParentId();
+        } else {
+            ancestors = "0";
+        }
+        isMachinery.setAncestors(ancestors);
+        updateById(isMachinery);
+        return true;
+    }
+
+    @Override
+    public Boolean saveMachineryPoints(IsMachineryDTO dto) {
+        // 断言校验
+        Assert.notNull(dto.getMachineryId(), "id不可为空!");
+        Assert.isFalse(dto.getPointIdList().isEmpty(), "请选择隔离点!");
+        // 开始存储工艺和隔离点的关联关系
+        iIsMachineryPointsService.remove(Wrappers.<IsMachineryPoints>lambdaQuery()
+                .eq(IsMachineryPoints::getMachineryId, dto.getMachineryId()));
+        List<IsMachineryPoints> isMachineryPoints = new ArrayList<>();
+        for (Long pointId : dto.getPointIdList()) {
+            IsMachineryPoints isMachineryPoint = new IsMachineryPoints();
+            isMachineryPoint.setMachineryId(dto.getMachineryId());
+            isMachineryPoint.setPointId(pointId);
+            isMachineryPoints.add(isMachineryPoint);
+        }
+        iIsMachineryPointsService.saveBatch(isMachineryPoints);
+        return true;
+    }
+
+    @Transactional
+    @Override
+    public Boolean deleteIsMachineryByMachineryIds(String machineryIds) {
+
+        Assert.notBlank(machineryIds, "请选择需要删除的数据!");
+        Long[] longIds = Convert.toLongArray(machineryIds);
+        removeBatchByIds(Arrays.asList(longIds));
+        // 移除关联的点位信息
+        iIsMachineryPointsService.remove(Wrappers.<IsMachineryPoints>lambdaQuery()
+                .in(IsMachineryPoints::getMachineryId, Arrays.asList(longIds)));
+        return true;
+    }
+
+    @Override
+    public IsMachineryVO selectIsMachineryById(Long machineryId) {
+        Assert.notNull(machineryId, "id不可为空!");
+        IsMachinery machinery = getById(machineryId);
+        IsMachineryVO bean = BeanUtils.toBean(machinery, IsMachineryVO.class);
+        // 查询关联的点位信息
+        List<IsMachineryPoints> list = iIsMachineryPointsService.list(Wrappers.<IsMachineryPoints>lambdaQuery()
+                .eq(IsMachineryPoints::getMachineryId, machineryId));
+        if (!list.isEmpty()) {
+            List<Long> collect = list.stream().map(IsMachineryPoints::getPointId).collect(Collectors.toList());
+            bean.setPointIdList(collect);
+        }
+        return bean;
+    }
 }

+ 11 - 1
ktg-iscs/src/main/resources/mapper/IsIsolationPointMapper.xml

@@ -23,6 +23,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="lockTypeId"    column="lock_type_id"    />
         <result property="pointNfc"    column="point_nfc"    />
         <result property="locksetTypeId"    column="lockset_type_id"    />
+        <result property="workstationId"    column="workstation_id"    />
+        <result property="lotoId"    column="loto_id"    />
     </resultMap>
 
     <sql id="selectIsIsolationPointVo">
@@ -66,6 +68,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="lockTypeId != null">lock_type_id,</if>
             <if test="pointNfc != null and pointNfc != ''">point_nfc,</if>
             <if test="locksetTypeId != null">lockset_type_id,</if>
+            <if test="workstationId != null">workstation_id,</if>
+            <if test="lotoId != null">loto_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="pointCode != null and pointCode != ''">#{pointCode},</if>
@@ -85,6 +89,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="lockTypeId != null">#{lockTypeId},</if>
             <if test="pointNfc != null and pointNfc != ''">#{pointNfc},</if>
             <if test="locksetTypeId != null">#{locksetTypeId},</if>
+            <if test="workstationId != null">#{workstationId},</if>
+            <if test="lotoId != null">#{lotoId},</if>
          </trim>
     </insert>
 
@@ -108,6 +114,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="lockTypeId != null">lock_type_id = #{lockTypeId},</if>
             <if test="pointNfc != null and pointNfc != ''">point_nfc = #{pointNfc},</if>
             <if test="locksetTypeId != null">lockset_type_id = #{locksetTypeId},</if>
+            <if test="workstationId != null">workstation_id = #{workstationId},</if>
+            <if test="lotoId != null">loto_id = #{lotoId},</if>
         </trim>
         where point_id = #{pointId}
     </update>
@@ -159,10 +167,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             l.lock_type_code,
             l.lock_type_icon,
             l.lock_type_img,
-            t.lockset_type_img
+            t.lockset_type_img,
+            s.loto_name
         FROM is_isolation_point p
         LEFT JOIN is_lock_type l ON l.lock_type_id = p.lock_type_id
         LEFT JOIN is_lockset_type t ON t.lockset_type_id = p.lockset_type_id
+        LEFT JOIN is_loto_station s ON s.loto_id = p.loto_id
         <where>
             <if test="dto.pointCode != null and dto.pointCode.trim != ''">
                 and p.point_code like concat('%',#{dto.pointCode},'%')

+ 21 - 0
ktg-iscs/src/main/resources/mapper/IsLotoStationMapper.xml

@@ -4,4 +4,25 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ktg.iscs.mapper.IsLotoStationMapper">
 
+    <select id="getIsLotoStationPage" resultType="com.ktg.iscs.domain.vo.loto.IsLotoStationVO">
+        SELECT
+        l.*,
+        w.workstation_name
+        FROM
+        is_loto_station l
+        LEFT JOIN is_workstation w ON w.workstation_id = l.workstation_id
+        <where>
+            <if test="isLotoStation.lotoName != null and isLotoStation.lotoName.trim != ''">
+                and l.loto_name like concat('%',#{isLotoStation.lotoName},'%')
+            </if>
+            <if test="isLotoStation.lotoCode != null and isLotoStation.lotoCode.trim != ''">
+                and l.loto_code like concat('%',#{isLotoStation.lotoCode},'%')
+            </if>
+            <if test="isLotoStation.workstationId != null">
+                and l.workstation_id = #{isLotoStation.workstationId}
+            </if>
+        </where>
+        ORDER BY
+        l.loto_id DESC
+    </select>
 </mapper>

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

@@ -7,10 +7,12 @@
     <select id="getIsMachineryPage" resultType="com.ktg.iscs.domain.vo.machinery.IsMachineryVO">
         SELECT
         t.*,
-        w.workstation_name
+        w.workstation_name,
+        l.loto_name
         FROM
         is_machinery t
         LEFT JOIN is_workstation w ON w.workstation_id = t.workstation_id
+        LEFT JOIN is_loto_station l ON l.loto_id = t.loto_id
         <where>
             <if test="isMachinery.machineryName != null and isMachinery.machineryName.trim != ''">
                 and t.machinery_name like concat('%',#{isDeviceTechnology.machineryName},'%')

+ 7 - 0
ktg-iscs/src/main/resources/mapper/IsMachineryPointsMapper.xml

@@ -0,0 +1,7 @@
+<?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.ktg.iscs.mapper.IsMachineryPointsMapper">
+
+</mapper>