Răsfoiți Sursa

pms 5#国日报 填报时选择 任务井号

zhangcl 6 zile în urmă
părinte
comite
ad6d4a0e28

+ 19 - 4
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotfivedailyreport/IotFiveDailyReportController.java

@@ -116,7 +116,7 @@ public class IotFiveDailyReportController {
             return new IotFiveDailyReportRespVO();
         }
         IotFiveDailyReportRespVO dailyReportVO = BeanUtils.toBean(dailyReport, IotFiveDailyReportRespVO.class);
-
+        Long deptId = dailyReportVO.getDeptId();
         LocalDateTime reportTime = dailyReportVO.getCreateTime();
         // 当月计划工作量,默认0
         BigDecimal monthPlanLayers = BigDecimal.ZERO;
@@ -142,12 +142,24 @@ public class IotFiveDailyReportController {
             BigDecimal utilizationRate = wokDeviceNum.divide(mainDeviceNum, 4, RoundingMode.HALF_UP );
             dailyReportVO.setUtilizationRate(utilizationRate);
         }
-        // 当前日报的 施工队伍
-        if (ObjUtil.isNotEmpty(dailyReportVO.getDeptId())) {
-            DeptDO dept = deptService.getDept(dailyReportVO.getDeptId());
+        // 当前日报的 施工队伍 队伍关联的 任务井列表
+        Map<Long, String> deptWellNames = new HashMap<>();
+        if (ObjUtil.isNotEmpty(deptId)) {
+            DeptDO dept = deptService.getDept(deptId);
             if (ObjUtil.isNotEmpty(dept)) {
                 dailyReportVO.setDeptName(dept.getName());
             }
+            // 查询当前日报相关的部门队伍关联的任务列表(未完工的任务)
+            IotProjectTaskPageReqVO taskReqVO = new IotProjectTaskPageReqVO();
+            taskReqVO.setCompanyId(388l);
+            taskReqVO.setJobFlag("Y");
+            taskReqVO.setDeptId(deptId);
+            List<IotProjectTaskDO> tasks = iotProjectTaskService.projectTasks(taskReqVO);
+            if (CollUtil.isNotEmpty(tasks)) {
+                tasks.forEach(task -> {
+                    deptWellNames.put(task.getId(), task.getWellName());
+                });
+            }
         }
         // 当前日报的 项目信息
         if (ObjUtil.isNotEmpty(dailyReportVO.getProjectId())) {
@@ -157,6 +169,9 @@ public class IotFiveDailyReportController {
                 dailyReportVO.setCustomer(projectInfo.getManufactureName());
             }
         }
+
+        // 当前日报相关的部门关联的任务井列表
+        dailyReportVO.setRelatedTasks(deptWellNames);
         // 查询当前日报关联的 任务信息
         if (ObjUtil.isNotEmpty(dailyReportVO.getTaskId())) {
             IotProjectTaskDO projectTask = iotProjectTaskService.getIotProjectTask(dailyReportVO.getTaskId());

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotfivedailyreport/vo/IotFiveDailyReportRespVO.java

@@ -8,6 +8,7 @@ import lombok.Data;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
+import java.util.Map;
 
 @Schema(description = "管理后台 - 5#国日报 Response VO")
 @Data
@@ -296,4 +297,7 @@ public class IotFiveDailyReportRespVO {
     @Schema(description = "当月 计划压裂(层)")
     @ExcelProperty("当月计划压裂(层)")
     private BigDecimal planWorkingLayers;
+
+    @Schema(description = "部门关联的任务井")
+    private Map<Long, String> relatedTasks;
 }

+ 18 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotfivedailyreport/IotFiveDailyReportServiceImpl.java

@@ -10,7 +10,9 @@ import cn.iocoder.yudao.module.pms.controller.admin.iotfivedailyreport.vo.IotFiv
 import cn.iocoder.yudao.module.pms.controller.admin.iotfivedailyreport.vo.IotFiveDailyReportSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotfivedailyreport.vo.IotFiveDailyReportStatisticsRespVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotfivedailyreport.IotFiveDailyReportDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttask.IotProjectTaskDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotfivedailyreport.IotFiveDailyReportMapper;
+import cn.iocoder.yudao.module.pms.dal.mysql.iotprojecttask.IotProjectTaskMapper;
 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
 import cn.iocoder.yudao.module.system.service.dept.DeptService;
@@ -40,6 +42,8 @@ public class IotFiveDailyReportServiceImpl implements IotFiveDailyReportService
     private IotFiveDailyReportMapper iotFiveDailyReportMapper;
     @Resource
     private DeptService deptService;
+    @Resource
+    private IotProjectTaskMapper iotProjectTaskMapper;
 
     @Override
     public Long createIotFiveDailyReport(IotFiveDailyReportSaveReqVO createReqVO) {
@@ -58,6 +62,20 @@ public class IotFiveDailyReportServiceImpl implements IotFiveDailyReportService
         IotFiveDailyReportDO updateObj = BeanUtils.toBean(updateReqVO, IotFiveDailyReportDO.class);
         // 填报 保存后 修改日报 状态
         updateObj.setStatus(1);
+
+        Long taskId = updateReqVO.getTaskId();
+        // 关联更新相关任务的 施工状态
+        if (ObjUtil.isNotEmpty(taskId)) {
+            IotProjectTaskDO task = iotProjectTaskMapper.selectById(taskId);
+            if (ObjUtil.isNotEmpty(task)) {
+                task.setStatus(updateReqVO.getFiveStatus());
+                task.setRdStatus(updateReqVO.getFiveStatus());
+                int num = iotProjectTaskMapper.updateById(task);
+                // 有可能重新选择任务井 根据taskId 查询相关的项目 projectId 重新赋值
+                updateObj.setProjectId(task.getProjectId());
+            }
+        }
+
         iotFiveDailyReportMapper.updateById(updateObj);
     }