Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

Zimo 19 часов назад
Родитель
Сommit
edf2397bc8

+ 101 - 3
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/IotOpeationFillController.java

@@ -2,6 +2,10 @@ package cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill;
 
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.LocalDateTimeUtil;
+import cn.hutool.core.util.ObjUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
@@ -296,7 +300,19 @@ public class IotOpeationFillController {
                     if(fillDO1.getDeviceCategoryId()==228){
                     if(fillDO1.getDeviceCategoryId()==228){
                         saveReqVO1.setProjectClassification("2");
                         saveReqVO1.setProjectClassification("2");
                     }
                     }
-                    saveReqVO1.setReportDetails(operationFillSaveVO.getReportDetails());
+                    List<IotRyDailyReportDetailSaveReqVO> details = operationFillSaveVO.getReportDetails();
+                    saveReqVO1.setReportDetails(details);
+                    List<Long> taskIds = new ArrayList<>();
+                    if (CollUtil.isNotEmpty(details)) {
+                        details.forEach(detail -> {
+                            if (ObjUtil.isNotEmpty(detail)) {
+                                taskIds.add(detail.getTaskId());
+                            }
+                        });
+                        if (CollUtil.isNotEmpty(taskIds)) {
+                            saveReqVO1.setTaskId(taskIds.get(0));
+                        }
+                    }
                     iotRyDailyReportService.createIotRyDailyReport(saveReqVO1);
                     iotRyDailyReportService.createIotRyDailyReport(saveReqVO1);
                 }
                 }
 
 
@@ -919,9 +935,44 @@ public class IotOpeationFillController {
                     reqVO.setDeptId(iotOpeationFill.getDeptId());
                     reqVO.setDeptId(iotOpeationFill.getDeptId());
                     reqVO.setJobFlag("Y");
                     reqVO.setJobFlag("Y");
                     List<IotProjectTaskDO> tasks = iotProjectTaskMapper.selectList(reqVO);
                     List<IotProjectTaskDO> tasks = iotProjectTaskMapper.selectList(reqVO);
+                    Map<Long, String> wellNamePair = new HashMap<>();
                     if (CollUtil.isNotEmpty(tasks)) {
                     if (CollUtil.isNotEmpty(tasks)) {
                         // 取最新的1个任务
                         // 取最新的1个任务
                         iotOpeationFill.setWellName(tasks.get(0).getWellName());
                         iotOpeationFill.setWellName(tasks.get(0).getWellName());
+                        tasks.forEach(task -> {
+                            wellNamePair.put(task.getId(), task.getWellName());
+                        });
+                        iotOpeationFill.setWellNamePair(wellNamePair);
+                    }
+                    // 查询当前队伍是否已经生成日报 回显数据
+                    // 查询日报表中对应日期 对应部门的taskId
+                    String reportDateStr = StrUtil.EMPTY;
+                    if (ObjUtil.isNotEmpty(iotOpeationFill.getCreateTime())) {
+                        reportDateStr = LocalDateTimeUtil.format(iotOpeationFill.getCreateTime(), DatePattern.NORM_DATE_PATTERN);
+                    }
+                    Long deptId = iotOpeationFill.getDeptId();
+                    // 判断当前队伍是 瑞恒 还是 瑞鹰
+                    Set<Long> rhChildDeptIds = deptService.getChildDeptIdListFromCache(157l);
+                    Set<Long> ryChildDeptIds = deptService.getChildDeptIdListFromCache(158l);
+                    if (ObjUtil.isNotEmpty(deptId) && StrUtil.isNotBlank(reportDateStr)) {
+                        if (rhChildDeptIds.contains(deptId)) {
+                            // 瑞恒日报
+                            IotOpeationFillDO taskWellPair = iotOpeationFillService.selectRhFillReports(deptId, reportDateStr);
+                            if (ObjUtil.isNotEmpty(taskWellPair)) {
+                                wellNamePair.clear();
+                                wellNamePair.put(taskWellPair.getTaskId(), taskWellPair.getWellName());
+                                iotOpeationFill.setWellNamePair(wellNamePair);
+                            }
+                        }
+                        if (ryChildDeptIds.contains(deptId)) {
+                            // 瑞鹰日报
+                            IotOpeationFillDO taskWellPair = iotOpeationFillService.selectRyFillReports(deptId, reportDateStr);
+                            if (ObjUtil.isNotEmpty(taskWellPair)) {
+                                wellNamePair.clear();
+                                wellNamePair.put(taskWellPair.getTaskId(), taskWellPair.getWellName());
+                                iotOpeationFill.setWellNamePair(wellNamePair);
+                            }
+                        }
                     }
                     }
         });
         });
         return success(BeanUtils.toBean(iotOpeationFill, IotOpeationFillDO.class));
         return success(BeanUtils.toBean(iotOpeationFill, IotOpeationFillDO.class));
@@ -1052,9 +1103,44 @@ public class IotOpeationFillController {
                         reqVO.setDeptId(fill.getDeptId());
                         reqVO.setDeptId(fill.getDeptId());
                         reqVO.setJobFlag("Y");
                         reqVO.setJobFlag("Y");
                         List<IotProjectTaskDO> tasks = iotProjectTaskMapper.selectList(reqVO);
                         List<IotProjectTaskDO> tasks = iotProjectTaskMapper.selectList(reqVO);
+                        // 查询日报表中对应日期 对应部门的taskId
+                        String reportDateStr = StrUtil.EMPTY;
+                        if (ObjUtil.isNotEmpty(fill.getCreateTime())) {
+                            reportDateStr = LocalDateTimeUtil.format(fill.getCreateTime(), DatePattern.NORM_DATE_PATTERN);
+                        }
+                        Long deptId = fill.getDeptId();
+                        // 判断当前队伍是 瑞恒 还是 瑞鹰
+                        Set<Long> rhChildDeptIds = deptService.getChildDeptIdListFromCache(157l);
+                        Set<Long> ryChildDeptIds = deptService.getChildDeptIdListFromCache(158l);
+
+                        Map<Long, String> wellNamePair = new HashMap<>();
                         if (CollUtil.isNotEmpty(tasks)) {
                         if (CollUtil.isNotEmpty(tasks)) {
                             // 取最新的1个任务
                             // 取最新的1个任务
                             fill.setWellName(tasks.get(0).getWellName());
                             fill.setWellName(tasks.get(0).getWellName());
+                            tasks.forEach(task -> {
+                                wellNamePair.put(task.getId(), task.getWellName());
+                            });
+                            fill.setWellNamePair(wellNamePair);
+                        }
+                        if (ObjUtil.isNotEmpty(deptId) && StrUtil.isNotBlank(reportDateStr)) {
+                            if (rhChildDeptIds.contains(deptId)) {
+                                // 瑞恒日报
+                                IotOpeationFillDO taskWellPair = iotOpeationFillService.selectRhFillReports(deptId, reportDateStr);
+                                if (ObjUtil.isNotEmpty(taskWellPair)) {
+                                    wellNamePair.clear();
+                                    wellNamePair.put(taskWellPair.getTaskId(), taskWellPair.getWellName());
+                                    fill.setWellNamePair(wellNamePair);
+                                }
+                            }
+                            if (ryChildDeptIds.contains(deptId)) {
+                                // 瑞鹰日报
+                                IotOpeationFillDO taskWellPair = iotOpeationFillService.selectRyFillReports(deptId, reportDateStr);
+                                if (ObjUtil.isNotEmpty(taskWellPair)) {
+                                    wellNamePair.clear();
+                                    wellNamePair.put(taskWellPair.getTaskId(), taskWellPair.getWellName());
+                                    fill.setWellNamePair(wellNamePair);
+                                }
+                            }
                         }
                         }
                     }
                     }
                 });
                 });
@@ -1528,9 +1614,21 @@ public class IotOpeationFillController {
     @TenantIgnore
     @TenantIgnore
     @Operation(summary = "获得瑞鹰生产日报的生产明细")
     @Operation(summary = "获得瑞鹰生产日报的生产明细")
     public CommonResult<List<IotRyDailyReportDetailRespVO>> getProdDetail(@PathVariable("id") Long id) {
     public CommonResult<List<IotRyDailyReportDetailRespVO>> getProdDetail(@PathVariable("id") Long id) {
+        List<IotRyDailyReportDetailRespVO> details = new ArrayList<>();
         IotOpeationFillOrderDO iotOpeationFillOrderDO = iotOpeationFillOrderMapper.selectById(id);
         IotOpeationFillOrderDO iotOpeationFillOrderDO = iotOpeationFillOrderMapper.selectById(id);
-        List<IotRyDailyReportDetailRespVO> iotRyDailyReportDetailRespVOS = iotRyDailyReportService.ryDailyReportDetails(iotOpeationFillOrderDO.getCreateTime(), iotOpeationFillOrderDO.getDeptId());
-        return success(iotRyDailyReportDetailRespVOS);
+        if (ObjUtil.isEmpty(iotOpeationFillOrderDO)) {
+            success(details);
+        }
+        // 查询运行记录对应的日报id 因为 生产动态明细 日期可能填写非当天的数据
+        String reportDateStr = StrUtil.EMPTY;
+        if (ObjUtil.isNotEmpty(iotOpeationFillOrderDO.getCreateTime())) {
+            reportDateStr = LocalDateTimeUtil.format(iotOpeationFillOrderDO.getCreateTime(), DatePattern.NORM_DATE_PATTERN);
+        }
+        IotOpeationFillDO report = iotOpeationFillService.selectRyFillReports(iotOpeationFillOrderDO.getDeptId(), reportDateStr);
+        if (ObjUtil.isNotEmpty(report)) {
+            details = iotRyDailyReportService.ryDailyReportDetails(null, iotOpeationFillOrderDO.getDeptId(), report.getReportId());
+        }
+        return success(details);
     }
     }
 
 
     @GetMapping("/getAttrs")
     @GetMapping("/getAttrs")

+ 3 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotopeationfill/IotOpeationFillDO.java

@@ -5,8 +5,6 @@ import lombok.*;
 import java.time.LocalDate;
 import java.time.LocalDate;
 import java.util.*;
 import java.util.*;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.*;
 import com.baomidou.mybatisplus.annotation.*;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -118,4 +116,7 @@ public class IotOpeationFillDO extends BaseDO {
      * 扩展字段
      * 扩展字段
      */
      */
     private String wellName;
     private String wellName;
+    private Long taskId;
+    private Long reportId;
+    private Map<Long, String> wellNamePair;
 }
 }

+ 6 - 3
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotopeationfill/IotOpeationFillMapper.java

@@ -8,8 +8,6 @@ import cn.iocoder.yudao.module.pms.controller.admin.iotmodeltemplateattrs.vo.Iot
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.*;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.*;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.stat.vo.AllOrderResp;
 import cn.iocoder.yudao.module.pms.controller.admin.stat.vo.AllOrderResp;
-import cn.iocoder.yudao.module.pms.controller.admin.stat.vo.OrderVo;
-import cn.iocoder.yudao.module.pms.controller.admin.vo.DeviceVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotZHBD.DeviceZHBDDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotZHBD.DeviceZHBDDO;
@@ -29,7 +27,6 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeFormatter;
 import java.util.Collection;
 import java.util.Collection;
 import java.util.List;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 import java.util.Set;
 
 
 /**
 /**
@@ -102,6 +99,12 @@ public interface IotOpeationFillMapper extends BaseMapperX<IotOpeationFillDO> {
     @TenantIgnore
     @TenantIgnore
     List<IotOpeationFillDO> selectReportsByYear(@Param("deptId")Long deptId, @Param("year")int year);
     List<IotOpeationFillDO> selectReportsByYear(@Param("deptId")Long deptId, @Param("year")int year);
 
 
+    @TenantIgnore
+    IotOpeationFillDO selectRyFillReports(@Param("deptId")Long deptId, @Param("reportDateStr")String reportDateStr);
+
+    @TenantIgnore
+    IotOpeationFillDO selectRhFillReports(@Param("deptId")Long deptId, @Param("reportDateStr")String reportDateStr);
+
     @TenantIgnore
     @TenantIgnore
     List<IotOpeationFillOrderDO> selectListByCreateTime(IotOpeationFillPageReqVO reqVO);
     List<IotOpeationFillOrderDO> selectListByCreateTime(IotOpeationFillPageReqVO reqVO);
 
 

+ 15 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillService.java

@@ -1,7 +1,6 @@
 package cn.iocoder.yudao.module.pms.service.iotopeationfill;
 package cn.iocoder.yudao.module.pms.service.iotopeationfill;
 
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmodeltemplateattrs.vo.IotModelTemplateAttrsRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmodeltemplateattrs.vo.IotModelTemplateAttrsRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.*;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.*;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
@@ -11,7 +10,6 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicerunlog.IotDeviceRunLo
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodeltemplateattrs.IotModelTemplateAttrsDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodeltemplateattrs.IotModelTemplateAttrsDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillOrderDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillOrderDO;
-import org.apache.ibatis.annotations.Param;
 
 
 import javax.validation.Valid;
 import javax.validation.Valid;
 import java.util.Collection;
 import java.util.Collection;
@@ -79,6 +77,21 @@ public interface IotOpeationFillService {
 
 
     List<IotOpeationFillDO> fillListByUserId(IotOpeationFillRespVO vo);
     List<IotOpeationFillDO> fillListByUserId(IotOpeationFillRespVO vo);
 
 
+    /**
+     * 查询 指定部门 指定日期的 瑞鹰日报
+     * @param deptId 部门id
+     * @param reportDateStr yyyy-MM-dd格式的日期
+     * @return
+     */
+    IotOpeationFillDO selectRyFillReports(Long deptId, String reportDateStr);
+
+    /**
+     * 查询 指定部门 指定日期的 瑞恒日报
+     * @param deptId 部门id
+     * @param reportDateStr yyyy-MM-dd格式的日期
+     * @return
+     */
+    IotOpeationFillDO selectRhFillReports(Long deptId, String reportDateStr);
 
 
     PageResult<IotOpeationFillDO> fillListPage(IotOpeationFillPageVO vo);
     PageResult<IotOpeationFillDO> fillListPage(IotOpeationFillPageVO vo);
 
 

+ 10 - 7
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillServiceImpl.java

@@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.pms.service.iotopeationfill;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmodeltemplateattrs.vo.IotModelTemplateAttrsRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmodeltemplateattrs.vo.IotModelTemplateAttrsRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.*;
 import cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.*;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
-import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotcountdata.IotCountDataDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotcountdata.IotCountDataDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicecountdata.IotDeviceCountData;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicecountdata.IotDeviceCountData;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicerunlog.IotDeviceRunLogDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicerunlog.IotDeviceRunLogDO;
@@ -25,13 +24,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 
 
 
 
 import java.security.SecureRandom;
 import java.security.SecureRandom;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ThreadLocalRandom;
-import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
@@ -150,6 +143,16 @@ public class IotOpeationFillServiceImpl implements IotOpeationFillService {
         return iotOpeationFillMapper.fillListByUserId(vo);
         return iotOpeationFillMapper.fillListByUserId(vo);
     }
     }
 
 
+    @Override
+    public IotOpeationFillDO selectRyFillReports(Long deptId, String reportDateStr) {
+        return iotOpeationFillMapper.selectRyFillReports(deptId, reportDateStr);
+    }
+
+    @Override
+    public IotOpeationFillDO selectRhFillReports(Long deptId, String reportDateStr) {
+        return iotOpeationFillMapper.selectRhFillReports(deptId, reportDateStr);
+    }
+
 
 
     @Override
     @Override
     public PageResult<IotOpeationFillOrderDO> fillRecords(IotOpeationFillPageReqVO vo) {
     public PageResult<IotOpeationFillOrderDO> fillRecords(IotOpeationFillPageReqVO vo) {

+ 2 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotrddailyreport/IotRdDailyReportServiceImpl.java

@@ -2634,7 +2634,8 @@ public class IotRdDailyReportServiceImpl implements IotRdDailyReportService {
 
 
         // 考虑到平台井的情况 只向有审批权限的人发送一次 钉钉提醒及站内信
         // 考虑到平台井的情况 只向有审批权限的人发送一次 钉钉提醒及站内信
         // 任务为平台井时 只向主井的任务的 填报人所属部门或上级项目部下 有审批权限的人 发送消息提醒
         // 任务为平台井时 只向主井的任务的 填报人所属部门或上级项目部下 有审批权限的人 发送消息提醒
-        if (CollUtil.isNotEmpty(tobeSendMsgReports)) {
+        // 维护 非生产时间 施工简报 时 不发送消息提醒
+        if (CollUtil.isNotEmpty(tobeSendMsgReports) && StrUtil.isBlank(nonProduct.get())) {
             Set<Long> deptIds = new HashSet<>();
             Set<Long> deptIds = new HashSet<>();
             IotRdDailyReportDO tobeSendMsgReport = tobeSendMsgReports.get(0);
             IotRdDailyReportDO tobeSendMsgReport = tobeSendMsgReports.get(0);
             Long deptId = tobeSendMsgReport.getDeptId();
             Long deptId = tobeSendMsgReport.getDeptId();

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotrydailyreport/IotRyDailyReportService.java

@@ -53,7 +53,7 @@ public interface IotRyDailyReportService {
      * @param currentDate 当日日期
      * @param currentDate 当日日期
      * @param deptId 部门id
      * @param deptId 部门id
      */
      */
-    List<IotRyDailyReportDetailRespVO> ryDailyReportDetails(LocalDateTime currentDate, Long deptId);
+    List<IotRyDailyReportDetailRespVO> ryDailyReportDetails(LocalDateTime currentDate, Long deptId, Long reportId);
 
 
     /**
     /**
      * 获得瑞鹰日报分页
      * 获得瑞鹰日报分页

+ 2 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotrydailyreport/IotRyDailyReportServiceImpl.java

@@ -416,12 +416,13 @@ public class IotRyDailyReportServiceImpl implements IotRyDailyReportService {
     }
     }
 
 
     @Override
     @Override
-    public List<IotRyDailyReportDetailRespVO> ryDailyReportDetails(LocalDateTime currentDate, Long deptId) {
+    public List<IotRyDailyReportDetailRespVO> ryDailyReportDetails(LocalDateTime currentDate, Long deptId, Long reportId) {
         List<IotRyDailyReportDetailRespVO> result = new ArrayList<>();
         List<IotRyDailyReportDetailRespVO> result = new ArrayList<>();
         // 运行记录中查询生产动态详情使用 日期只匹配 yyyy-MM-dd 的值
         // 运行记录中查询生产动态详情使用 日期只匹配 yyyy-MM-dd 的值
         // 查询日报的生产动态详情
         // 查询日报的生产动态详情
         IotRyDailyReportDetailPageReqVO detailReqVO = new IotRyDailyReportDetailPageReqVO();
         IotRyDailyReportDetailPageReqVO detailReqVO = new IotRyDailyReportDetailPageReqVO();
         detailReqVO.setDeptId(deptId);
         detailReqVO.setDeptId(deptId);
+        detailReqVO.setReportId(reportId);
         detailReqVO.setFillOrderReportDate(currentDate);
         detailReqVO.setFillOrderReportDate(currentDate);
         detailReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
         detailReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
         PageResult<IotRyDailyReportDetailDO> reportDetailsPage = iotRyDailyReportDetailMapper.selectPages(detailReqVO);
         PageResult<IotRyDailyReportDetailDO> reportDetailsPage = iotRyDailyReportDetailMapper.selectPages(detailReqVO);

+ 26 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotOpeationFillMapper.xml

@@ -497,6 +497,32 @@
         AND YEAR(create_time) = #{year}
         AND YEAR(create_time) = #{year}
     </select>
     </select>
 
 
+    <select id="selectRyFillReports" resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
+        SELECT dr.id reportId, dr.task_id taskId, pt.well_name wellName
+        FROM rq_iot_ry_daily_report dr
+        LEFT JOIN rq_iot_project_task pt ON pt.id = dr.task_id
+        WHERE dr.deleted = 0
+        AND pt.deleted = 0
+        <if test="deptId != null">
+            AND dr.dept_id = #{deptId}
+        </if>
+        AND DATE(dr.create_time) = #{reportDateStr}
+        LIMIT 1
+    </select>
+
+    <select id="selectRhFillReports" resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
+        SELECT dr.task_id taskId, pt.well_name wellName
+        FROM rq_iot_rh_daily_report dr
+        LEFT JOIN rq_iot_project_task pt ON pt.id = dr.task_id
+        WHERE dr.deleted = 0
+        AND pt.deleted = 0
+        <if test="deptId != null">
+            AND dr.dept_id = #{deptId}
+        </if>
+        AND DATE(dr.create_time) = #{reportDateStr}
+        LIMIT 1
+    </select>
+
     <select id="fillRecords" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillPageReqVO"
     <select id="fillRecords" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillPageReqVO"
             resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillOrderDO">
             resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillOrderDO">
         SELECT a.*
         SELECT a.*