Răsfoiți Sursa

对接修改

车车 3 luni în urmă
părinte
comite
ba5ae943d5

+ 0 - 1
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/jobticket/JobTicketController.java

@@ -83,7 +83,6 @@ public class JobTicketController {
         return success(jobTicketService.autoGenerateName(name));
     }
 
-
     @GetMapping("/getMonitorJobTicketPage")
     @Operation(summary = "获得作业执行分页")
     @PreAuthorize("@ss.hasPermission('iscs:job-ticket:query')")

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

@@ -0,0 +1,39 @@
+package cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 作业票 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class JobTicketMessVO {
+
+    @Schema(description = "区域名称")
+    private String workstationName;
+
+    @Schema(description = "sop名称")
+    private String sopName;
+
+    @Schema(description = "作业票名称")
+    private String jobTicketName;
+
+    @Schema(description = "发件人姓名")
+    private String sendUser;
+
+    @Schema(description = "收信人名字")
+    private String receiveUser;
+
+    @Schema(description = "作业开始时间")
+    private String ticketStartTime;
+
+    @Schema(description = "作业预计结束时间")
+    private String ticketEndTime;
+
+    @Schema(description = "工艺/设备名称")
+    private String machineryName;
+
+    @Schema(description = "SOP类型")
+    private String sopTypeName;
+
+}

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

@@ -97,6 +97,9 @@ public class JobTicketRespVO {
     @Schema(description = "设备工艺name")
     private String machineryName;
 
+    @Schema(description = "所属SOPID", example = "665")
+    private String sopName;
+
     @Schema(description = "作业分组")
     private List<JobTicketGroupRespVO> ticketGroupList;
 

+ 14 - 12
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/job/SopExecutionPlanJob.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.iscs.job;
 import cn.hutool.core.date.DateUtil;
 import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
 import cn.iocoder.yudao.framework.tenant.core.job.TenantJob;
+import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketMessVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketSaveReqVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.notifyconfig.vo.MessSaveVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.sop.vo.SopExecutionPlanRespVO;
@@ -76,28 +77,29 @@ public class SopExecutionPlanJob implements JobHandler {
                 jobTicketSaveReqVO.setTicketName("SOP计划执行作业-" + executionPlanRespVO.getSopId() + "-" + yyyymmdd);
                 jobTicketSaveReqVO.setCreateType("1");
                 jobTicketSaveReqVO.setPlanStartTime(planStartTime);
-                Long l = jobTicketService.insertJobTicketBySop(jobTicketSaveReqVO);
+                Long ticketId = jobTicketService.insertJobTicketBySop(jobTicketSaveReqVO);
                 sopIds.add(executionPlanRespVO.getSopId());
-                ticketIds.add(l);
+                ticketIds.add(ticketId);
 
                 // 发送消息
                 // 定义匹配输入格式的解析器
                 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+                JobTicketMessVO jobMessParams = jobTicketService.getJobMessParams(ticketId);
                 Map<String, Object> stringObjectHashMap = new HashMap<>();
-                stringObjectHashMap.put("workstationName", "R&R");
-                stringObjectHashMap.put("sopName", "SOP名称");
-                stringObjectHashMap.put("jobTicketName", "作业名称");
-                stringObjectHashMap.put("sendUser", "发信人名字");
-                stringObjectHashMap.put("receiveUser", "收信人名字");
-                stringObjectHashMap.put("ticketStartTime", "作业开始时间");
-                stringObjectHashMap.put("ticketEndTime", "作业预计结束时间");
-                stringObjectHashMap.put("machineryName", "工艺/设备名称");
-                stringObjectHashMap.put("sopTypeName", "SOP类型");
+                stringObjectHashMap.put("workstationName", jobMessParams.getWorkstationName());
+                stringObjectHashMap.put("sopName", jobMessParams.getSopName());
+                stringObjectHashMap.put("jobTicketName", jobMessParams.getJobTicketName());
+                stringObjectHashMap.put("sendUser", "系统管理员");
+                // stringObjectHashMap.put("receiveUser", "收信人名字");
+                stringObjectHashMap.put("ticketStartTime", jobMessParams.getTicketStartTime());
+                stringObjectHashMap.put("ticketEndTime", jobMessParams.getTicketEndTime());
+                stringObjectHashMap.put("machineryName", jobMessParams.getMachineryName());
+                stringObjectHashMap.put("sopTypeName", jobMessParams.getSopTypeName());
                 MessSaveVO messSaveVO = new MessSaveVO();
                 messSaveVO.setSopId(executionPlanRespVO.getSopId());
                 messSaveVO.setType(0);
                 messSaveVO.setRule("0");
-                messSaveVO.setTicketId(l);
+                messSaveVO.setTicketId(ticketId);
                 messSaveVO.setShouldSendTime(LocalDateTime.parse(planStartTime, formatter));
                 messSaveVO.setTemplateParams(stringObjectHashMap);
                 notifyConfigService.insertMessByRule(messSaveVO);

+ 3 - 4
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketService.java

@@ -1,10 +1,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.JobTicketPageReqVO;
-import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketRespVO;
-import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketSaveReqVO;
-import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.MonitorTicketPageVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.*;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.jobticket.JobTicketDO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import jakarta.validation.Valid;
@@ -62,4 +59,6 @@ public interface JobTicketService extends IService<JobTicketDO> {
 
     PageResult<MonitorTicketPageVO> getMonitorJobTicketPage(JobTicketPageReqVO pageReqVO);
 
+    JobTicketMessVO getJobMessParams(Long ticketId);
+
 }

+ 29 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketServiceImpl.java

@@ -269,6 +269,8 @@ public class JobTicketServiceImpl extends ServiceImpl<JobTicketMapper, JobTicket
             vo.setWorkstationId(sopDO.getWorkstationId());
             vo.setMachineryId(sopDO.getMachineryId());
         }
+        vo.setModeId(sopDO.getModeId());
+        vo.setTicketType(sopDO.getSopType());
         // 1.1.名称重复
         Assert.isTrue(StringUtils.isNotBlank(vo.getTicketName()), "作业名称不可为空!");
         List<JobTicketDO> list = list(Wrappers.<JobTicketDO>lambdaQuery().eq(JobTicketDO::getTicketName, vo.getTicketName()));
@@ -480,4 +482,31 @@ public class JobTicketServiceImpl extends ServiceImpl<JobTicketMapper, JobTicket
         return respVOPageResult;
     }
 
+    @Override
+    public JobTicketMessVO getJobMessParams(Long ticketId) {
+        JobTicketMessVO jobTicketMessVO = new JobTicketMessVO();
+        if (ticketId == null) {
+            return jobTicketMessVO;
+        }
+        // 作业信息
+        JobTicketRespVO jobTicketRespVO = jobTicketMapper.getJobTicket(ticketId);
+        jobTicketMessVO.setWorkstationName(jobTicketRespVO.getWorkstationName());
+        jobTicketMessVO.setSopName(jobTicketRespVO.getSopName());
+        jobTicketMessVO.setJobTicketName(jobTicketRespVO.getTicketName());
+        jobTicketMessVO.setTicketStartTime(jobTicketRespVO.getPlanStartTime());
+        jobTicketMessVO.setMachineryName(jobTicketRespVO.getMachineryName());
+        // sop信息
+        /*if (jobTicketRespVO.getSopId() != null) {
+            SopDO sopDO = sopService.getById(jobTicketRespVO.getSopId());
+            if (sopDO != null) {
+               // 无法获取字典纸,需要自己封装方法
+            }
+        }*/
+        jobTicketMessVO.setSopTypeName("");
+        jobTicketMessVO.setTicketEndTime("");
+        jobTicketMessVO.setSendUser("");
+        jobTicketMessVO.setReceiveUser("");
+        return jobTicketMessVO;
+    }
+
 }

+ 8 - 1
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/notifyconfig/NotifyConfigDetailServiceImpl.java

@@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.iscs.controller.admin.notifyconfig.vo.NotifyConfi
 import cn.iocoder.yudao.module.iscs.controller.admin.notifyconfig.vo.NotifyConfigDetailSaveReqVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.notifyconfig.NotifyConfigDetailDO;
 import cn.iocoder.yudao.module.iscs.dal.mysql.notifyconfig.NotifyConfigDetailMapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
@@ -52,7 +53,13 @@ public class NotifyConfigDetailServiceImpl extends ServiceImpl<NotifyConfigDetai
             if (notifyConfigDetailDO.getId() != null) {
                 updateById(notifyConfigDetailDO);
             } else {
-                save(notifyConfigDetailDO);
+                // 检查当前的数据是否已经在,如果在就不要了
+                NotifyConfigDetailDO one = getOne(Wrappers.<NotifyConfigDetailDO>lambdaQuery()
+                        .eq(NotifyConfigDetailDO::getConfigId, notifyConfigDetailDO.getConfigId())
+                        .eq(NotifyConfigDetailDO::getRoleId, notifyConfigDetailDO.getRoleId()));
+                if (one == null) {
+                    save(notifyConfigDetailDO);
+                }
             }
         }
         return true;

+ 3 - 1
yudao-module-iscs/src/main/resources/mapper/JobTicketMapper.xml

@@ -101,11 +101,13 @@
         SELECT
             j.*,
             w.workstation_name,
-            m.machinery_name
+            m.machinery_name,
+            s.sop_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
+                left join isc_sop s ON s.id = j.sop_id
         where j.id = #{id}
     </select>
 </mapper>