Pārlūkot izejas kodu

新增通过sopid查询执行计划详情,一个sop只有一个执行计划

小车车 3 mēneši atpakaļ
vecāks
revīzija
c813d77684

+ 9 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/sop/SopExecutionPlanController.java

@@ -70,6 +70,15 @@ public class SopExecutionPlanController {
         return success(sopExecutionPlan);
     }
 
+    @GetMapping("/selectSopExecutionPlanBySopId")
+    @Operation(summary = "获得SOP计划执行BySopId")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('iscs:sop-execution-plan:query')")
+    public CommonResult<SopExecutionPlanRespVO> selectSopExecutionPlanBySopId(@RequestParam("sopId") Long sopId) {
+        SopExecutionPlanRespVO sopExecutionPlan = sopExecutionPlanService.selectSopExecutionPlanBySopId(sopId);
+        return success(sopExecutionPlan);
+    }
+
     @GetMapping("/getSopExecutionPlanPage")
     @Operation(summary = "获得SOP计划执行分页")
     @PreAuthorize("@ss.hasPermission('iscs:sop-execution-plan:query')")

+ 9 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopExecutionPlanService.java

@@ -55,6 +55,15 @@ public interface SopExecutionPlanService extends IService<SopExecutionPlanDO> {
      */
     SopExecutionPlanRespVO getSopExecutionPlan(Long id);
 
+    /**
+     * 获得SOP计划执行
+     *
+     * @param id 编号
+     * @return SOP计划执行
+     */
+    SopExecutionPlanRespVO selectSopExecutionPlanBySopId(Long sopId);
+
+
     /**
      * 获得SOP计划执行分页
      *

+ 99 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopExecutionPlanServiceImpl.java

@@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.iscs.controller.admin.sop.vo.*;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.sop.SopExecutionPlanDO;
 import cn.iocoder.yudao.module.iscs.dal.mysql.sop.SopExecutionPlanMapper;
 import cn.iocoder.yudao.module.iscs.utils.SuperDateUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
 import org.checkerframework.checker.units.qual.A;
@@ -162,6 +163,104 @@ public class SopExecutionPlanServiceImpl extends ServiceImpl<SopExecutionPlanMap
         return bean;
     }
 
+    @Override
+    public SopExecutionPlanRespVO selectSopExecutionPlanBySopId(Long sopId) {
+        SopExecutionPlanDO sopExecutionPlanDO = getOne(Wrappers.<SopExecutionPlanDO>lambdaQuery()
+                .eq(SopExecutionPlanDO::getId, sopId));
+        SopExecutionPlanRespVO bean = BeanUtils.toBean(sopExecutionPlanDO, SopExecutionPlanRespVO.class);
+        // sop数据
+        SopRespVO sopDetailById = sopService.getSopDetailById(bean.getSopId());
+        ArrayList<SopPreviewDataVO> sopRespVOS = new ArrayList<>();
+        // 年
+        if (bean.getFrequencyUnit().equals(0)) {
+            // 处理年的数据
+            String yyyymmdd = SuperDateUtils.getYYYYMMDD();
+            List<String> adjacentDatesYearDay = SuperDateUtils.getAdjacentDatesYearDay(
+                    yyyymmdd,
+                    null,
+                    bean.getFrequency(),
+                    Integer.parseInt(bean.getTimePoint()),
+                    10);
+            for (String s : adjacentDatesYearDay) {
+                SopPreviewDataVO sopPreviewDataVO = new SopPreviewDataVO();
+                sopPreviewDataVO.setPlanDay(s);
+                sopPreviewDataVO.setStartTime(bean.getStartTime());
+                sopPreviewDataVO.setDuration(bean.getDuration());
+                sopPreviewDataVO.setWorkstationName(sopDetailById.getWorkstationName());
+                sopPreviewDataVO.setMachineryName(sopDetailById.getMachineryName());
+                sopPreviewDataVO.setSopTypeName(sopDetailById.getSopTypeName());
+                sopRespVOS.add(sopPreviewDataVO);
+            }
+            bean.setPreviewDataList(sopRespVOS);
+        }
+        // 月
+        if (bean.getFrequencyUnit().equals(1)) {
+            // 处理月的数据
+            String yyyymmdd = SuperDateUtils.getYYYYMMDD();
+            List<String> adjacentDatesMonthDay = SuperDateUtils.getAdjacentDatesMonthDay(
+                    yyyymmdd,
+                    null,
+                    bean.getFrequency(),
+                    Integer.parseInt(bean.getTimePoint()),
+                    10);
+            for (String s : adjacentDatesMonthDay) {
+                SopPreviewDataVO sopPreviewDataVO = new SopPreviewDataVO();
+                sopPreviewDataVO.setPlanDay(s);
+                sopPreviewDataVO.setStartTime(bean.getStartTime());
+                sopPreviewDataVO.setDuration(bean.getDuration());
+                sopPreviewDataVO.setWorkstationName(sopDetailById.getWorkstationName());
+                sopPreviewDataVO.setMachineryName(sopDetailById.getMachineryName());
+                sopPreviewDataVO.setSopTypeName(sopDetailById.getSopTypeName());
+                sopRespVOS.add(sopPreviewDataVO);
+            }
+            bean.setPreviewDataList(sopRespVOS);
+        }
+        // 周
+        if (bean.getFrequencyUnit().equals(2)) {
+            // 处理周的数据
+            String yyyymmdd = SuperDateUtils.getYYYYMMDD();
+            List<String> adjacentDatesByWeekday = SuperDateUtils.getAdjacentDatesByWeekday(
+                    yyyymmdd,
+                    null,
+                    bean.getFrequency(),
+                    bean.getTimePoint(),
+                    10);
+            for (String s : adjacentDatesByWeekday) {
+                SopPreviewDataVO sopPreviewDataVO = new SopPreviewDataVO();
+                sopPreviewDataVO.setPlanDay(s);
+                sopPreviewDataVO.setStartTime(bean.getStartTime());
+                sopPreviewDataVO.setDuration(bean.getDuration());
+                sopPreviewDataVO.setWorkstationName(sopDetailById.getWorkstationName());
+                sopPreviewDataVO.setMachineryName(sopDetailById.getMachineryName());
+                sopPreviewDataVO.setSopTypeName(sopDetailById.getSopTypeName());
+                sopRespVOS.add(sopPreviewDataVO);
+            }
+            bean.setPreviewDataList(sopRespVOS);
+        }
+        // 天
+        if (bean.getFrequencyUnit().equals(3)) {
+            // 处理天的数据
+            String yyyymmdd = SuperDateUtils.getYYYYMMDD();
+            List<String> adjacentDatesByDay = SuperDateUtils.getAdjacentDatesByDay(
+                    yyyymmdd,
+                    null,
+                    bean.getFrequency(),
+                    10);
+            for (String s : adjacentDatesByDay) {
+                SopPreviewDataVO sopPreviewDataVO = new SopPreviewDataVO();
+                sopPreviewDataVO.setPlanDay(s);
+                sopPreviewDataVO.setStartTime(bean.getStartTime());
+                sopPreviewDataVO.setDuration(bean.getDuration());
+                sopPreviewDataVO.setWorkstationName(sopDetailById.getWorkstationName());
+                sopPreviewDataVO.setMachineryName(sopDetailById.getMachineryName());
+                sopPreviewDataVO.setSopTypeName(sopDetailById.getSopTypeName());
+                sopRespVOS.add(sopPreviewDataVO);
+            }
+            bean.setPreviewDataList(sopRespVOS);
+        }
+        return bean;
+    }
+
     @Override
     public PageResult<SopExecutionPlanDO> getSopExecutionPlanPage(SopExecutionPlanPageReqVO pageReqVO) {
         return sopExecutionPlanMapper.selectPage(pageReqVO);