车车 1 anno fa
parent
commit
9e3b0e7056
20 ha cambiato i file con 259 aggiunte e 54 eliminazioni
  1. 5 6
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysAutoCodePartController.java
  2. 1 1
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysAutoCodeRuleController.java
  3. 1 1
      ktg-admin/src/main/resources/application.yml
  4. 1 0
      ktg-framework/src/main/java/com/ktg/framework/web/service/TokenService.java
  5. 3 3
      ktg-iscs/src/main/java/com/ktg/iscs/controller/IsHardwareController.java
  6. 2 2
      ktg-iscs/src/main/java/com/ktg/iscs/controller/IsHardwareTypeController.java
  7. 2 1
      ktg-iscs/src/main/java/com/ktg/iscs/controller/IsIsolationPointController.java
  8. 15 1
      ktg-iscs/src/main/java/com/ktg/iscs/controller/IsWorkareaController.java
  9. 6 0
      ktg-iscs/src/main/java/com/ktg/iscs/domain/vo/points/PointDetailVO.java
  10. 51 0
      ktg-iscs/src/main/java/com/ktg/iscs/domain/vo/workarea/PointsMapVO.java
  11. 1 1
      ktg-iscs/src/main/java/com/ktg/iscs/mapper/IsIsolationPointMapper.java
  12. 1 1
      ktg-iscs/src/main/java/com/ktg/iscs/service/IIsIsolationPointService.java
  13. 9 0
      ktg-iscs/src/main/java/com/ktg/iscs/service/IIsWorkareaService.java
  14. 1 1
      ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsIsolationPointServiceImpl.java
  15. 9 5
      ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsJobTicketServiceImpl.java
  16. 4 2
      ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsSopServiceImpl.java
  17. 90 0
      ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsWorkareaServiceImpl.java
  18. 13 4
      ktg-iscs/src/main/resources/mapper/IsIsolationPointMapper.xml
  19. 39 24
      ktg-mes/src/main/java/com/ktg/mes/md/domain/MdWorkshop.java
  20. 5 1
      ktg-mes/src/main/resources/mapper/md/MdWorkshopMapper.xml

+ 5 - 6
ktg-admin/src/main/java/com/ktg/web/controller/system/SysAutoCodePartController.java

@@ -9,7 +9,6 @@ import com.ktg.common.core.page.TableDataInfo;
 import com.ktg.common.enums.BusinessType;
 import com.ktg.system.service.IAutoCodePartService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -22,7 +21,7 @@ public class SysAutoCodePartController extends BaseController {
     @Autowired
     private IAutoCodePartService iAutoCodePartService;
 
-    @PreAuthorize("@ss.hasPermi('system:autocode:part:list')")
+    // @PreAuthorize("@ss.hasPermi('system:autocode:part:list')")
     @GetMapping("/list")
     public TableDataInfo list(SysAutoCodePart sysAutoCodePart){
         startPage();
@@ -30,14 +29,14 @@ public class SysAutoCodePartController extends BaseController {
         return getDataTable(parts);
     }
 
-    @PreAuthorize("@ss.hasPermi('system:autocode:part:query')")
+    // @PreAuthorize("@ss.hasPermi('system:autocode:part:query')")
     @GetMapping("/{partId}")
     public AjaxResult getInfo(@PathVariable Long partId){
         return AjaxResult.success(iAutoCodePartService.findById(partId));
     }
 
 
-    @PreAuthorize("@ss.hasPermi('system:autocode:part:insert')")
+    // @PreAuthorize("@ss.hasPermi('system:autocode:part:insert')")
     @Log(title = "新增编码生产规则组成部分",businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysAutoCodePart part){
@@ -48,7 +47,7 @@ public class SysAutoCodePartController extends BaseController {
         return toAjax(iAutoCodePartService.insertPart(part));
     }
 
-    @PreAuthorize("@ss.hasPermi('system:autocode:part:update')")
+    // @PreAuthorize("@ss.hasPermi('system:autocode:part:update')")
     @Log(title = "更新物料编码",businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult update(@Validated @RequestBody SysAutoCodePart sysAutoCodePart){
@@ -60,7 +59,7 @@ public class SysAutoCodePartController extends BaseController {
     }
 
 
-    @PreAuthorize("@ss.hasPermi('system:autocode:part:remove')")
+    // @PreAuthorize("@ss.hasPermi('system:autocode:part:remove')")
     @Log(title = "删除物料编码",businessType = BusinessType.DELETE)
     @DeleteMapping("/{partIds}")
     public AjaxResult delete(@PathVariable Long[] partIds){

+ 1 - 1
ktg-admin/src/main/java/com/ktg/web/controller/system/SysAutoCodeRuleController.java

@@ -30,7 +30,7 @@ public class SysAutoCodeRuleController extends BaseController {
         return getDataTable(rules);
     }
 
-    @PreAuthorize("@ss.hasPermi('system:autocode:rule:query')")
+    // @PreAuthorize("@ss.hasPermi('system:autocode:rule:query')")
     @GetMapping("/{ruleId}")
     public AjaxResult getInfo(@PathVariable Long ruleId){
         return AjaxResult.success(iAutoCodeRuleService.findById(ruleId));

+ 1 - 1
ktg-admin/src/main/resources/application.yml

@@ -11,7 +11,7 @@ ktg-mes:
   # 文件路径 示例( Windows配置D:/ktg/uploadPath,Linux配置 /home/ktg/uploadPath)
   profile: /home/iscs
   # 获取ip地址开关
-  addressEnabled: false
+  addressEnabled: true
   # 验证码类型 math 数组计算 char 字符验证
   captchaType: math
 

+ 1 - 0
ktg-framework/src/main/java/com/ktg/framework/web/service/TokenService.java

@@ -96,6 +96,7 @@ public class TokenService
         if (StringUtils.isNotEmpty(token))
         {
             String userKey = getTokenKey(token);
+            System.out.println("开始删除用户缓存--------------"+ userKey);
             redisCache.deleteObject(userKey);
         }
     }

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

@@ -46,7 +46,7 @@ public class IsHardwareController extends BaseController
             @Parameter(name = "page", description = "Page"),
             @Parameter(name = "dto", description = "实体参数")
     })
-    @PreAuthorize("@ss.hasPermi('is:hardware:list')")
+    // @PreAuthorize("@ss.hasPermi('is:hardware:list')")
     @GetMapping("/getIsHardwarePage")
     public CommonResult<Page<IsHardware>> getIsHardwarePage(Page page, HardwarePageDTO dto)
     {
@@ -83,7 +83,7 @@ public class IsHardwareController extends BaseController
      */
     @ApiOperation("获取硬件详细信息")
     @Parameter(name = "id", description = "id")
-    @PreAuthorize("@ss.hasPermi('is:hardware:query')")
+    // @PreAuthorize("@ss.hasPermi('is:hardware:query')")
     @GetMapping(value = "/selectIsHardwareById")
     public CommonResult<IsHardware> selectIsHardwareById(Long id)
     {
@@ -118,7 +118,7 @@ public class IsHardwareController extends BaseController
      * 删除硬件
      */
     @ApiOperation("删除硬件")
-    @PreAuthorize("@ss.hasPermi('is:hardware:remove')")
+    // @PreAuthorize("@ss.hasPermi('is:hardware:remove')")
     @Log(title = "硬件", businessType = BusinessType.DELETE)
 	@PostMapping("/deleteIsHardwareByIds")
     public CommonResult<Boolean> deleteIsHardwareByIds(String ids)

+ 2 - 2
ktg-iscs/src/main/java/com/ktg/iscs/controller/IsHardwareTypeController.java

@@ -92,7 +92,7 @@ public class IsHardwareTypeController extends BaseController
      */
     @ApiOperation("获取硬件类型详细信息")
     @Parameter(name = "id", description = "id")
-    @PreAuthorize("@ss.hasPermi('is:type:query')")
+    // @PreAuthorize("@ss.hasPermi('is:type:query')")
     @GetMapping(value = "/selectIsHardwareTypeById")
     public CommonResult<IsHardwareType> selectIsHardwareTypeById(Long id)
     {
@@ -127,7 +127,7 @@ public class IsHardwareTypeController extends BaseController
      * 删除硬件类型
      */
     @ApiOperation("删除硬件类型")
-    @PreAuthorize("@ss.hasPermi('is:type:remove')")
+    // @PreAuthorize("@ss.hasPermi('is:type:remove')")
     @Log(title = "硬件类型", businessType = BusinessType.DELETE)
 	@PostMapping("/deleteIsHardwareTypeByIds")
     public CommonResult<Boolean> deleteIsHardwareTypeByIds(String ids)

+ 2 - 1
ktg-iscs/src/main/java/com/ktg/iscs/controller/IsIsolationPointController.java

@@ -9,6 +9,7 @@ import com.ktg.common.pojo.CommonResult;
 import com.ktg.common.utils.poi.ExcelUtil;
 import com.ktg.iscs.domain.IsIsolationPoint;
 import com.ktg.iscs.domain.dto.point.PagePointDTO;
+import com.ktg.iscs.domain.vo.points.PointDetailVO;
 import com.ktg.iscs.service.IIsIsolationPointService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -94,7 +95,7 @@ public class IsIsolationPointController extends BaseController {
     @Parameter(name = "pointId", description = "pointId")
     // @PreAuthorize("@ss.hasPermi('iscs:point:query')")
     @GetMapping(value = "/selectIsIsolationPointById")
-    public CommonResult<IsIsolationPoint> selectIsIsolationPointById(Long pointId) {
+    public CommonResult<PointDetailVO> selectIsIsolationPointById(Long pointId) {
         return CommonResult.success(isIsolationPointService.selectIsIsolationPointByPointId(pointId));
     }
 

+ 15 - 1
ktg-iscs/src/main/java/com/ktg/iscs/controller/IsWorkareaController.java

@@ -9,6 +9,7 @@ import com.ktg.common.pojo.CommonResult;
 import com.ktg.common.utils.poi.ExcelUtil;
 import com.ktg.iscs.domain.IsWorkarea;
 import com.ktg.iscs.domain.vo.workarea.PageWorkareaVO;
+import com.ktg.iscs.domain.vo.workarea.PointsMapVO;
 import com.ktg.iscs.service.IIsWorkareaService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -80,7 +81,7 @@ public class IsWorkareaController extends BaseController {
      */
     @ApiOperation("获取工作区域详细信息")
     @Parameter(name = "workareaId", description = "workareaId")
-    @PreAuthorize("@ss.hasPermi('iscs:workarea:query')")
+    // @PreAuthorize("@ss.hasPermi('iscs:workarea:query')")
     @GetMapping(value = "/selectIsWorkareaById")
     public CommonResult<IsWorkarea> selectIsWorkareaById(Long workareaId) {
         return CommonResult.success(isWorkareaService.selectIsWorkareaByWorkareaId(workareaId));
@@ -118,4 +119,17 @@ public class IsWorkareaController extends BaseController {
     public CommonResult<Boolean> deleteIsWorkareaByWorkareaIds(String workareaIds) {
         return CommonResult.success(isWorkareaService.deleteIsWorkareaByWorkareaIds(workareaIds) != 0);
     }
+
+    @ApiOperation("获取区域map解析数据")
+    @Parameter(name = "workareaId", description = "workareaId")
+    @Parameters({
+            @Parameter(name = "workareaId", description = "区域id"),
+            @Parameter(name = "sopId", description = "sopId"),
+            @Parameter(name = "ticketId", description = "ticketId")
+    })
+    // @PreAuthorize("@ss.hasPermi('iscs:workarea:query')")
+    @GetMapping(value = "/selectIsWorkareaMapById")
+    public CommonResult<List<PointsMapVO>> selectIsWorkareaMapById(Long workareaId, Long sopId, Long ticketId) {
+        return CommonResult.success(isWorkareaService.selectIsWorkareaMapById(workareaId, sopId, ticketId));
+    }
 }

+ 6 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/vo/points/PointDetailVO.java

@@ -35,9 +35,15 @@ public class PointDetailVO extends BaseBean
     @ApiModelProperty(value = "所属车间ID")
     private Long workshopId;
 
+    @ApiModelProperty(value = "所属车间Name")
+    private String workshopName;
+
     @ApiModelProperty(value = "所属区域ID")
     private Long workareaId;
 
+    @ApiModelProperty(value = "所属区域Name")
+    private String workareaName;
+
     @ApiModelProperty(value = "危险能量类型")
     private String powerType;
 

+ 51 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/vo/workarea/PointsMapVO.java

@@ -0,0 +1,51 @@
+package com.ktg.iscs.domain.vo.workarea;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 工作区域对象 is_workarea
+ *
+ * @author cgj
+ * @date 2024-10-18
+ */
+@Data
+public class PointsMapVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "横坐标")
+    private Integer row;
+
+    @ApiModelProperty(value = "纵坐标")
+    private Integer col;
+
+    @ApiModelProperty(value = "点位id")
+    private Long pointId;
+
+    @ApiModelProperty(value = "点位Name")
+    private String pointName;
+
+    @ApiModelProperty(value = "隔离点类型")
+    private String pointType;
+
+    @ApiModelProperty(value = "隔离点类型Name")
+    private String pointTypeName;
+
+    @ApiModelProperty(value = "危险能量类型")
+    private String powerType;
+
+    @ApiModelProperty(value = "危险能量类型Name")
+    private String powerTypeName;
+
+    @ApiModelProperty(value = "点位选中状态")
+    private Boolean state;
+
+    @ApiModelProperty(value = "隔离点图标")
+    private String pointIcon;
+
+    @ApiModelProperty(value = "隔离点图片")
+    private String pointPicture;
+
+}

+ 1 - 1
ktg-iscs/src/main/java/com/ktg/iscs/mapper/IsIsolationPointMapper.java

@@ -23,7 +23,7 @@ public interface IsIsolationPointMapper extends BaseMapperX<IsIsolationPoint>
      * @param pointId 隔离点主键
      * @return 隔离点
      */
-    IsIsolationPoint selectIsIsolationPointByPointId(Long pointId);
+    PointDetailVO selectIsIsolationPointByPointId(Long pointId);
 
     /**
      * 查询隔离点列表

+ 1 - 1
ktg-iscs/src/main/java/com/ktg/iscs/service/IIsIsolationPointService.java

@@ -20,7 +20,7 @@ public interface IIsIsolationPointService extends IService<IsIsolationPoint>
      * @param pointId 隔离点主键
      * @return 隔离点
      */
-    IsIsolationPoint selectIsIsolationPointByPointId(Long pointId);
+    PointDetailVO selectIsIsolationPointByPointId(Long pointId);
 
     /**
      * 查询隔离点列表

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ktg.iscs.domain.IsWorkarea;
 import com.ktg.iscs.domain.vo.workarea.PageWorkareaVO;
+import com.ktg.iscs.domain.vo.workarea.PointsMapVO;
 
 import java.util.List;
 
@@ -64,4 +65,12 @@ public interface IIsWorkareaService extends IService<IsWorkarea>
     int deleteIsWorkareaByWorkareaId(Long workareaId);
 
     Page<PageWorkareaVO> getIsWorkareaPage(Page page, IsWorkarea dto);
+
+    /**
+     * 获取区域map解析数据
+     *
+     * @param workareaId 工作区域主键
+     * @return 工作区域
+     */
+    List<PointsMapVO> selectIsWorkareaMapById(Long workareaId, Long sopId, Long ticketId);
 }

+ 1 - 1
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsIsolationPointServiceImpl.java

@@ -34,7 +34,7 @@ public class IsIsolationPointServiceImpl extends ServiceImpl<IsIsolationPointMap
      * @return 隔离点
      */
     @Override
-    public IsIsolationPoint selectIsIsolationPointByPointId(Long pointId)
+    public PointDetailVO selectIsIsolationPointByPointId(Long pointId)
     {
         return isIsolationPointMapper.selectIsIsolationPointByPointId(pointId);
     }

+ 9 - 5
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsJobTicketServiceImpl.java

@@ -25,6 +25,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -65,9 +66,9 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
         // 2.1查询隔离点的详细信息
         if (!isJobTicketPoints.isEmpty()) {
             List<Long> pointIds = isJobTicketPoints.stream().map(IsJobTicketPoints::getPointId).collect(Collectors.toList());
-            List<IsIsolationPoint> isIsolationPoints = iIsIsolationPointService.listByIds(pointIds);
+            List<PointDetailVO> pointDetailList = iIsIsolationPointService.getPointDetailList(pointIds);
             // 2.2组装隔离点数据
-            jobTicketDetailVO.setPointDetailVOList(BeanUtils.toBean(isIsolationPoints, PointDetailVO.class));
+            jobTicketDetailVO.setPointDetailVOList(pointDetailList);
         }
         // 3.查询人员信息
         List<IsJobTicketUser> jobTicketUserList = iIsJobTicketUserService.list(Wrappers.<IsJobTicketUser>lambdaQuery()
@@ -157,22 +158,25 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
         // 1.2人员信息是否存在重复
         boolean b = dto.getTicketUserDTOList().size() == dto.getTicketUserDTOList().stream().distinct().count();
         Assert.isTrue(b, "用户数据存在同名情况,请修改!");
-        // 1.1检查作业票编码是否唯一
+        // 1.3检查作业票编码是否唯一
         List<IsJobTicket> list = list(Wrappers.<IsJobTicket>lambdaQuery()
                 .eq(IsJobTicket::getTicketCode, dto.getTicketCode())
                 .ne(IsJobTicket::getTicketId, dto.getTicketId()));
         Assert.isTrue(list.isEmpty(), "该编码已被使用!");
+        // 1.4检查区域有没有变,区域变了的话隔离点肯定变了,因为隔离点是从区域数据中解析的
+        IsJobTicket isJobTicket = getById(dto.getTicketId());
         // 2.修改作业票
         IsJobTicket jobTicket = BeanUtils.toBean(dto, IsJobTicket.class);
         jobTicket.setUpdateTime(DateUtils.getNowDate());
         isJobTicketMapper.updateById(jobTicket);
+
         // 3.1检查隔离点有没有变更
         Long[] pointIds = Convert.toLongArray(dto.getPointIds());
         List<IsJobTicketPoints> isSopPoints = iIsJobTicketPointsService.list(Wrappers.<IsJobTicketPoints>lambdaQuery()
                 .eq(IsJobTicketPoints::getTicketId, dto.getTicketId())
                 .in(IsJobTicketPoints::getPointId, pointIds));
-        // 3.1如果查出来变更了,开始执行删除,重新增加一轮
-        if (pointIds.length != isSopPoints.size()) {
+        // 3.2如果查出来变更了,开始执行删除,重新增加一轮 / 当workarea变更也要全部换掉
+        if (pointIds.length != isSopPoints.size() || !Objects.equals(isJobTicket.getWorkareaId(), dto.getWorkareaId())) {
             Set<Long> recordIds = isSopPoints.stream().map(IsJobTicketPoints::getRecordId).collect(Collectors.toSet());
             if (!recordIds.isEmpty()) {
                 String rids = StringUtils.join(recordIds.toArray(), ",");

+ 4 - 2
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsSopServiceImpl.java

@@ -131,12 +131,14 @@ public class IsSopServiceImpl extends ServiceImpl<IsSopMapper, IsSop> implements
         Assert.isTrue(list.isEmpty(), "该SOP编号已被使用!");
         // 1.判断隔离点必选
         Assert.isTrue(StringUtils.isNotBlank(dto.getPointIds()), "隔离点id不可为空!");
+        // 1.1检查区域有没有变,区域变了的话隔离点肯定变了,因为隔离点是从区域数据中解析的
+        IsSop sop = getById(dto.getSopId());
         // 2.开始检查隔离点有没有变更
         Long[] pointIds = Convert.toLongArray(dto.getPointIds());
         List<IsSopPoints> isSopPoints = iIsSopPointsService.list(Wrappers.<IsSopPoints>lambdaQuery()
                 .eq(IsSopPoints::getSopId, dto.getSopId()));
-        // 2.1如果查出来变更了,开始执行删除,重新增加一轮
-        if (pointIds.length != isSopPoints.size()) {
+        // 2.1如果查出来变更了,开始执行删除,重新增加一轮 / 区域变更则点位必然改变,也需要删除
+        if (pointIds.length != isSopPoints.size() || !sop.getWorkareaId().equals(dto.getWorkareaId())) {
             Set<Long> recordIds = isSopPoints.stream().map(IsSopPoints::getRecordId).collect(Collectors.toSet());
             if (!recordIds.isEmpty()) {
                 String rids = StringUtils.join(recordIds.toArray(), ",");

+ 90 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsWorkareaServiceImpl.java

@@ -4,19 +4,29 @@ 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.core.text.Convert;
+import com.ktg.iscs.domain.IsJobTicketPoints;
 import com.ktg.iscs.domain.IsSopPoints;
 import com.ktg.iscs.domain.IsWorkarea;
+import com.ktg.iscs.domain.vo.points.PointDetailVO;
 import com.ktg.iscs.domain.vo.workarea.PageWorkareaVO;
+import com.ktg.iscs.domain.vo.workarea.PointsMapVO;
 import com.ktg.iscs.mapper.IsWorkareaMapper;
+import com.ktg.iscs.service.IIsIsolationPointService;
+import com.ktg.iscs.service.IIsJobTicketPointsService;
 import com.ktg.iscs.service.IIsSopPointsService;
 import com.ktg.iscs.service.IIsWorkareaService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 工作区域Service业务层处理
@@ -31,6 +41,10 @@ public class IsWorkareaServiceImpl extends ServiceImpl<IsWorkareaMapper, IsWorka
     private IsWorkareaMapper isWorkareaMapper;
     @Autowired
     private IIsSopPointsService iIsSopPointsService;
+    @Autowired
+    private IIsIsolationPointService iIsIsolationPointService;
+    @Autowired
+    private IIsJobTicketPointsService iIsJobTicketPointsService;
 
     /**
      * 查询工作区域
@@ -136,4 +150,80 @@ public class IsWorkareaServiceImpl extends ServiceImpl<IsWorkareaMapper, IsWorka
     public Page<PageWorkareaVO> getIsWorkareaPage(Page page, IsWorkarea dto) {
         return isWorkareaMapper.getIsWorkareaPage(page, dto);
     }
+
+    @Override
+    public List<PointsMapVO> selectIsWorkareaMapById(Long workareaId, Long sopId, Long ticketId) {
+        // 1.断言校验
+        Assert.notNull(workareaId, "请传入区域id");
+        // 2.查询区域信息
+        IsWorkarea workarea = getById(workareaId);
+        // 3.解析map
+        List<PointsMapVO> points = new ArrayList<>();
+        if (workarea != null) {
+            String map = workarea.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);
+                            }
+                        }
+                    }
+                    // 作业票如果选中信息有则开始标记
+                    if (!isJobTicketPoints.isEmpty()) {
+                        for (IsJobTicketPoints ticketPoint : isJobTicketPoints) {
+                            if (o.getPointId().equals(ticketPoint.getPointId())) {
+                                o.setState(true);
+                            }
+                        }
+                    }
+                    return true;
+                }).collect(Collectors.toList());
+            } catch (IOException e) {
+                Assert.isTrue(false, "map数据解析失败!");
+                e.printStackTrace();
+            }
+        }
+        return points;
+    }
 }

+ 13 - 4
ktg-iscs/src/main/resources/mapper/IsIsolationPointMapper.xml

@@ -41,10 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
     </select>
 
-    <select id="selectIsIsolationPointByPointId" parameterType="Long" resultMap="IsIsolationPointResult">
-        <include refid="selectIsIsolationPointVo"/>
-        where point_id = #{pointId}
-    </select>
+
 
     <insert id="insertIsIsolationPoint" parameterType="IsIsolationPoint" useGeneratedKeys="true" keyProperty="pointId">
         insert into is_isolation_point
@@ -128,4 +125,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </foreach>
         </where>
     </select>
+    <select id="selectIsIsolationPointByPointId" resultType="com.ktg.iscs.domain.vo.points.PointDetailVO">
+        SELECT
+            p.*,
+            ws.workshop_name,
+            wa.workarea_name
+        FROM
+            is_isolation_point p
+                LEFT JOIN md_workshop ws ON p.workshop_id = ws.workshop_id
+                LEFT JOIN is_workarea wa ON p.workarea_id = wa.workarea_id
+        WHERE
+            p.point_id = #{pointId}
+    </select>
 </mapper>

+ 39 - 24
ktg-mes/src/main/java/com/ktg/mes/md/domain/MdWorkshop.java

@@ -1,14 +1,15 @@
 package com.ktg.mes.md.domain;
 
-import java.math.BigDecimal;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ktg.common.annotation.Excel;
 import com.ktg.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.math.BigDecimal;
 
 /**
  * 车间对象 md_workshop
- * 
+ *
  * @author yinjinlu
  * @date 2022-05-07
  */
@@ -39,6 +40,9 @@ public class MdWorkshop extends BaseEntity
     @Excel(name = "是否启用")
     private String enableFlag;
 
+    /** 地图文件 */
+    private String map;
+
     /** 预留字段1 */
     private String attr1;
 
@@ -51,93 +55,103 @@ public class MdWorkshop extends BaseEntity
     /** 预留字段4 */
     private Long attr4;
 
-    public void setWorkshopId(Long workshopId) 
+    public void setWorkshopId(Long workshopId)
     {
         this.workshopId = workshopId;
     }
 
-    public Long getWorkshopId() 
+    public Long getWorkshopId()
     {
         return workshopId;
     }
-    public void setWorkshopCode(String workshopCode) 
+    public void setWorkshopCode(String workshopCode)
     {
         this.workshopCode = workshopCode;
     }
 
-    public String getWorkshopCode() 
+    public String getWorkshopCode()
     {
         return workshopCode;
     }
-    public void setWorkshopName(String workshopName) 
+    public void setWorkshopName(String workshopName)
     {
         this.workshopName = workshopName;
     }
 
-    public String getWorkshopName() 
+    public String getWorkshopName()
     {
         return workshopName;
     }
-    public void setArea(BigDecimal area) 
+    public void setArea(BigDecimal area)
     {
         this.area = area;
     }
 
-    public BigDecimal getArea() 
+    public BigDecimal getArea()
     {
         return area;
     }
-    public void setCharge(String charge) 
+    public void setCharge(String charge)
     {
         this.charge = charge;
     }
 
-    public String getCharge() 
+    public String getCharge()
     {
         return charge;
     }
-    public void setEnableFlag(String enableFlag) 
+    public void setEnableFlag(String enableFlag)
     {
         this.enableFlag = enableFlag;
     }
 
-    public String getEnableFlag() 
+    public String getEnableFlag()
     {
         return enableFlag;
     }
-    public void setAttr1(String attr1) 
+
+    public void setMap(String map)
+    {
+        this.map = map;
+    }
+
+    public String getmap()
+    {
+        return map;
+    }
+    public void setAttr1(String attr1)
     {
         this.attr1 = attr1;
     }
 
-    public String getAttr1() 
+    public String getAttr1()
     {
         return attr1;
     }
-    public void setAttr2(String attr2) 
+    public void setAttr2(String attr2)
     {
         this.attr2 = attr2;
     }
 
-    public String getAttr2() 
+    public String getAttr2()
     {
         return attr2;
     }
-    public void setAttr3(Long attr3) 
+    public void setAttr3(Long attr3)
     {
         this.attr3 = attr3;
     }
 
-    public Long getAttr3() 
+    public Long getAttr3()
     {
         return attr3;
     }
-    public void setAttr4(Long attr4) 
+    public void setAttr4(Long attr4)
     {
         this.attr4 = attr4;
     }
 
-    public Long getAttr4() 
+    public Long getAttr4()
     {
         return attr4;
     }
@@ -152,6 +166,7 @@ public class MdWorkshop extends BaseEntity
             .append("charge", getCharge())
             .append("enableFlag", getEnableFlag())
             .append("remark", getRemark())
+            .append("map", getmap())
             .append("attr1", getAttr1())
             .append("attr2", getAttr2())
             .append("attr3", getAttr3())

+ 5 - 1
ktg-mes/src/main/resources/mapper/md/MdWorkshopMapper.xml

@@ -12,6 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="charge"    column="charge"    />
         <result property="enableFlag"    column="enable_flag"    />
         <result property="remark"    column="remark"    />
+        <result property="map"    column="map"    />
         <result property="attr1"    column="attr1"    />
         <result property="attr2"    column="attr2"    />
         <result property="attr3"    column="attr3"    />
@@ -23,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectMdWorkshopVo">
-        select workshop_id, workshop_code, workshop_name, area, charge, enable_flag, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from md_workshop
+        select workshop_id, workshop_code, workshop_name, area, charge, enable_flag, remark, map, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from md_workshop
     </sql>
 
     <select id="selectMdWorkshopList" parameterType="MdWorkshop" resultMap="MdWorkshopResult">
@@ -62,6 +63,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="charge != null">charge,</if>
             <if test="enableFlag != null and enableFlag != ''">enable_flag,</if>
             <if test="remark != null">remark,</if>
+            <if test="map != null">map,</if>
             <if test="attr1 != null">attr1,</if>
             <if test="attr2 != null">attr2,</if>
             <if test="attr3 != null">attr3,</if>
@@ -78,6 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="charge != null">#{charge},</if>
             <if test="enableFlag != null and enableFlag != ''">#{enableFlag},</if>
             <if test="remark != null">#{remark},</if>
+            <if test="map != null">map,</if>
             <if test="attr1 != null">#{attr1},</if>
             <if test="attr2 != null">#{attr2},</if>
             <if test="attr3 != null">#{attr3},</if>
@@ -98,6 +101,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="charge != null">charge = #{charge},</if>
             <if test="enableFlag != null and enableFlag != ''">enable_flag = #{enableFlag},</if>
             <if test="remark != null">remark = #{remark},</if>
+            <if test="map != null and map != ''">map = #{map},</if>
             <if test="attr1 != null">attr1 = #{attr1},</if>
             <if test="attr2 != null">attr2 = #{attr2},</if>
             <if test="attr3 != null">attr3 = #{attr3},</if>