فهرست منبع

作业详情修改

车车 3 ماه پیش
والد
کامیت
1d51f78cde

+ 17 - 4
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/jobticket/vo/JobTicketGroupRespVO.java

@@ -1,11 +1,12 @@
 package cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import org.springframework.format.annotation.DateTimeFormat;
+import lombok.Data;
+
 import java.time.LocalDateTime;
-import com.alibaba.excel.annotation.*;
+import java.util.List;
 
 @Schema(description = "管理后台 - 作业票分组 Response VO")
 @Data
@@ -32,4 +33,16 @@ public class JobTicketGroupRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    @Schema(description = "分组下点位")
+    List<JobTicketPointsRespVO> ticketPointsRespVOList;
+
+    @Schema(description = "待锁定")
+    private Integer waitLock;
+
+    @Schema(description = "已锁定")
+    private Integer locked;
+
+    @Schema(description = "已解锁")
+    private Integer unlocked;
+
 }

+ 16 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/jobticket/vo/JobTicketPointsRespVO.java

@@ -35,6 +35,10 @@ public class JobTicketPointsRespVO {
     @ExcelProperty("隔离点ID")
     private Long pointId;
 
+    @Schema(description = "pointName", example = "1405")
+    @ExcelProperty("pointName")
+    private String pointName;
+
     @Schema(description = "隔离点状态(0-未上锁 1-已上锁 2-已解锁)", example = "1")
     @ExcelProperty("隔离点状态(0-未上锁 1-已上锁 2-已解锁)")
     private String pointStatus;
@@ -55,6 +59,10 @@ public class JobTicketPointsRespVO {
     @ExcelProperty("上锁时间")
     private LocalDateTime lockTime;
 
+    @Schema(description = "锁定人")
+    @ExcelProperty("锁定人")
+    private Long lockUserId;
+
     @Schema(description = "解锁时间")
     @ExcelProperty("解锁时间")
     private LocalDateTime unlockTime;
@@ -79,4 +87,12 @@ public class JobTicketPointsRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    @Schema(description = "作用", example = "作用")
+    @ExcelProperty("作用")
+    private String ability;
+
+    @Schema(description = "锁定人", example = "锁定人")
+    @ExcelProperty("锁定人")
+    private String lockUserName;
+
 }

+ 6 - 7
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/dataobject/isolationpoint/IsolationPointDO.java

@@ -1,11 +1,10 @@
 package cn.iocoder.yudao.module.iscs.dal.dataobject.isolationpoint;
 
-import lombok.*;
-import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.*;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
 
 /**
  * 隔离点 DO
@@ -92,9 +91,9 @@ public class IsolationPointDO extends BaseDO {
      */
     private String pointSerialNumber;
     /**
-     * 备注
+     * 作用
      */
     private String remark;
 
 
-}
+}

+ 4 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/dataobject/jobticket/JobTicketPointsDO.java

@@ -68,6 +68,10 @@ public class JobTicketPointsDO extends BaseDO {
      * 上锁时间
      */
     private LocalDateTime lockTime;
+    /**
+     * 锁定人
+     */
+    private Long lockUserId;
     /**
      * 解锁时间
      */

+ 2 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/mysql/jobticket/JobTicketMapper.java

@@ -36,5 +36,7 @@ public interface JobTicketMapper extends BaseMapperX<JobTicketDO> {
 
     Page<MonitorTicketPageVO> getMonitorJobTicketPage(Page<JobTicketDO> page, @Param(value = "vo") JobTicketPageReqVO vo);
 
+    JobTicketRespVO getJobTicket(@Param(value = "id") Long id);
+
 
 }

+ 3 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/mysql/jobticket/JobTicketPointsMapper.java

@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketPointsPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketPointsRespVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.jobticket.JobTicketPointsDO;
 import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Mapper;
@@ -50,5 +51,7 @@ public interface JobTicketPointsMapper extends BaseMapperX<JobTicketPointsDO> {
     })
     Boolean physicalDeleteByIds(@Param(value = "ids") List<Long> ids);
 
+    List<JobTicketPointsRespVO> listByTicketId(@Param(value = "ticketId") Long ticketId);
+
 
 }

+ 8 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketPointsService.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.iscs.service.jobticket;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketPointsPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketPointsRespVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketPointsSaveReqVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.jobticket.JobTicketPointsDO;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -54,4 +55,11 @@ public interface JobTicketPointsService extends IService<JobTicketPointsDO> {
      */
     PageResult<JobTicketPointsDO> getJobTicketPointsPage(JobTicketPointsPageReqVO pageReqVO);
 
+    /**
+     * 通过作业票id获取点位信息
+     * @param ticketId
+     * @return
+     */
+    List<JobTicketPointsRespVO> listByTicketId(Long ticketId);
+
 }

+ 6 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketPointsServiceImpl.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.iscs.service.jobticket;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketPointsPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketPointsRespVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketPointsSaveReqVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.jobticket.JobTicketLockDO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.jobticket.JobTicketPointsDO;
@@ -96,4 +97,9 @@ public class JobTicketPointsServiceImpl extends ServiceImpl<JobTicketPointsMappe
         return jobTicketPointsMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public List<JobTicketPointsRespVO> listByTicketId(Long ticketId) {
+        return jobTicketPointsMapper.listByTicketId(ticketId);
+    }
+
 }

+ 18 - 6
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketServiceImpl.java

@@ -194,9 +194,8 @@ public class JobTicketServiceImpl extends ServiceImpl<JobTicketMapper, JobTicket
 
     @Override
     public JobTicketRespVO getJobTicket(Long id) {
-        JobTicketDO jobTicketDO = jobTicketMapper.selectById(id);
-        Assert.isTrue(jobTicketDO != null, "作业信息不存在!");
-        JobTicketRespVO bean = BeanUtils.toBean(jobTicketDO, JobTicketRespVO.class);
+        JobTicketRespVO bean = jobTicketMapper.getJobTicket(id);
+        Assert.isTrue(bean != null, "作业信息不存在!");
         // 作业分组
         List<JobTicketGroupDO> ticketGroupDOList = jobTicketGroupService.list(Wrappers.<JobTicketGroupDO>lambdaQuery()
                 .eq(JobTicketGroupDO::getTicketId, id));
@@ -213,10 +212,23 @@ public class JobTicketServiceImpl extends ServiceImpl<JobTicketMapper, JobTicket
         List<JobTicketLockRespVO> ticketLockRespVOList = BeanUtils.toBean(ticketLockDOList, JobTicketLockRespVO.class);
         bean.setTicketLockList(ticketLockRespVOList);
         // 作业点位
-        List<JobTicketPointsDO> ticketPointsDOList = jobTicketPointsService.list(Wrappers.<JobTicketPointsDO>lambdaQuery()
-                .eq(JobTicketPointsDO::getTicketId, id));
-        List<JobTicketPointsRespVO> ticketPointsRespVOList = BeanUtils.toBean(ticketPointsDOList, JobTicketPointsRespVO.class);
+        List<JobTicketPointsRespVO> ticketPointsRespVOList = jobTicketPointsService.listByTicketId(id);
         bean.setTicketPointsList(ticketPointsRespVOList);
+        // 作业点位-放入分组
+        for (JobTicketGroupRespVO groupRespVO : bean.getTicketGroupList()) {
+            List<JobTicketPointsRespVO> list = ticketPointsRespVOList.stream().filter(o -> o.getGroupId().equals(groupRespVO.getId())).toList();
+            // 待锁定
+            int waitLock = (int)list.stream().filter(o -> StringUtils.isBlank(o.getPointStatus()) || o.getPointStatus().equals("0")).count();
+            // 已锁定
+            int locked = (int)list.stream().filter(o -> StringUtils.isNotBlank(o.getPointStatus()) && o.getPointStatus().equals("1")).count();
+            // 已解锁
+            int unlocked = (int)list.stream().filter(o -> StringUtils.isNotBlank(o.getPointStatus()) && o.getPointStatus().equals("2")).count();
+            // 组装数据
+            groupRespVO.setTicketPointsRespVOList(list);
+            groupRespVO.setWaitLock(waitLock);
+            groupRespVO.setLocked(locked);
+            groupRespVO.setUnlocked(unlocked);
+        }
         // 作业步骤
         List<JobTicketStepDO> ticketStepDOList = jobTicketStepService.list(Wrappers.<JobTicketStepDO>lambdaQuery()
                 .eq(JobTicketStepDO::getTicketId, id));

+ 12 - 0
yudao-module-iscs/src/main/resources/mapper/JobTicketMapper.xml

@@ -96,4 +96,16 @@
         </where>
         order by j.id desc
     </select>
+    <select id="getJobTicket"
+            resultType="cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketRespVO">
+        SELECT
+            j.*,
+            w.workstation_name,
+            m.machinery_name
+        FROM
+            isc_job_ticket j
+                left join isc_workstation w on w.id = j.workstation_id
+                left join isc_machinery m ON m.id = j.machinery_id
+        where j.id = #{id}
+    </select>
 </mapper>

+ 13 - 0
yudao-module-iscs/src/main/resources/mapper/JobTicketPointsMapper.xml

@@ -9,4 +9,17 @@
         文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
      -->
 
+    <select id="listByTicketId"
+            resultType="cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketPointsRespVO">
+        SELECT
+            tp.*,
+            p.point_name,
+            p.remark AS ability,
+            s.nickname AS lockUserName
+        FROM
+            isc_job_ticket_points tp
+                LEFT JOIN isc_isolation_point p ON p.id = tp.point_id
+                LEFT JOIN system_users s ON s.id = tp.lock_user_id
+        where tp.ticket_id = #{ticketId}
+    </select>
 </mapper>