|
|
@@ -177,8 +177,8 @@ public class IotRhDailyReportServiceImpl implements IotRhDailyReportService {
|
|
|
|
|
|
// 根据日报的 施工队伍 deptId 查询队伍所在的 项目 任务
|
|
|
// 根据日报的施工状态 更新 对应任务的 状态
|
|
|
- Long taskId = Long.MIN_VALUE;
|
|
|
Set<Long> deviceIds = new HashSet<>();
|
|
|
+
|
|
|
IotProjectTaskPageReqVO reqVO = new IotProjectTaskPageReqVO();
|
|
|
reqVO.setDeptId(createReqVO.getDeptId());
|
|
|
// 只筛选未施工完成的任务
|
|
|
@@ -193,22 +193,49 @@ public class IotRhDailyReportServiceImpl implements IotRhDailyReportService {
|
|
|
Set<String> zhbdCarIds = new HashSet<>();
|
|
|
// 井号
|
|
|
String wellName;
|
|
|
- if (CollUtil.isNotEmpty(tasks)) {
|
|
|
- // 只查询 未施工完成 的任务 随机获取1个 最好是保持 1个施工队伍只存在于1个任务中
|
|
|
- IotProjectTaskDO task = tasks.get(0);
|
|
|
+
|
|
|
+ // 根据传参赋值 taskId 如果 createReqVO 传参对象中设置了 taskId 说明 填报人已经选择了 任务井 直接保存
|
|
|
+ Long existTaskId = createReqVO.getTaskId();
|
|
|
+ IotProjectTaskDO commonTask = null;
|
|
|
+ if (ObjUtil.isNotEmpty(existTaskId)) {
|
|
|
+ commonTask = iotProjectTaskMapper.selectById(existTaskId);
|
|
|
+ } else {
|
|
|
+ if (CollUtil.isNotEmpty(tasks)) {
|
|
|
+ // 只查询 未施工完成 的任务 随机获取1个 最好是保持 1个施工队伍只存在于1个任务中
|
|
|
+ commonTask = tasks.get(0);
|
|
|
+ } else {
|
|
|
+ // 当前队伍没有关联任务 查询当前部门关联的最新的完工任务 关联上 有可能是已经完工的空日报任务
|
|
|
+ reqVO.setDeptId(createReqVO.getDeptId());
|
|
|
+ // 只筛选未施工完成的任务
|
|
|
+ reqVO.setJobFlag(StrUtil.EMPTY);
|
|
|
+ reqVO.setFinishFlag("Y");
|
|
|
+ // 查询包含当前日报施工队伍的任务
|
|
|
+ List<IotProjectTaskDO> finishedTasks = iotProjectTaskMapper.selectList(reqVO);
|
|
|
+ if (CollUtil.isNotEmpty(finishedTasks)) {
|
|
|
+ // 最新完工的任务位于列表第1个元素
|
|
|
+ IotProjectTaskDO latestTask = finishedTasks.get(0);
|
|
|
+ iotRhDailyReport.setProjectId(latestTask.getProjectId());
|
|
|
+ iotRhDailyReport.setTaskId(latestTask.getId());
|
|
|
+ wellName = latestTask.getWellName();
|
|
|
+ } else {
|
|
|
+ wellName = StrUtil.EMPTY;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (ObjUtil.isNotEmpty(commonTask)) {
|
|
|
// 暂时只考虑1个施工队伍只属于1个任务
|
|
|
- iotRhDailyReport.setProjectId(task.getProjectId());
|
|
|
- iotRhDailyReport.setTaskId(task.getId());
|
|
|
- taskId = task.getId();
|
|
|
- wellName = task.getWellName();
|
|
|
+ iotRhDailyReport.setProjectId(commonTask.getProjectId());
|
|
|
+ iotRhDailyReport.setTaskId(commonTask.getId());
|
|
|
+ wellName = commonTask.getWellName();
|
|
|
// 根据日报状态 查询 日报所属任务的状态
|
|
|
if (ObjUtil.isNotEmpty(createReqVO.getConstructionStatus())) {
|
|
|
- task.setStatus(createReqVO.getConstructionStatus());
|
|
|
+ commonTask.setStatus(createReqVO.getConstructionStatus());
|
|
|
// 更新任务状态
|
|
|
- iotProjectTaskMapper.updateById(task);
|
|
|
+ iotProjectTaskMapper.updateById(commonTask);
|
|
|
}
|
|
|
// 查询任务的设备列表
|
|
|
- deviceIds = task.getDeviceIds();
|
|
|
+ deviceIds = commonTask.getDeviceIds();
|
|
|
IotDevicePageReqVO deviceReqVO = new IotDevicePageReqVO();
|
|
|
deviceReqVO.setDeviceIds(new ArrayList<>(deviceIds));
|
|
|
List<IotDeviceDO> carDevices = iotDeviceMapper.selectListAlone(deviceReqVO);
|
|
|
@@ -256,22 +283,7 @@ public class IotRhDailyReportServiceImpl implements IotRhDailyReportService {
|
|
|
));
|
|
|
}
|
|
|
} else {
|
|
|
- // 当前队伍没有关联任务 查询当前部门关联的最新的完工任务 关联上 有可能是已经完工的空日报任务
|
|
|
- reqVO.setDeptId(createReqVO.getDeptId());
|
|
|
- // 只筛选未施工完成的任务
|
|
|
- reqVO.setJobFlag(StrUtil.EMPTY);
|
|
|
- reqVO.setFinishFlag("Y");
|
|
|
- // 查询包含当前日报施工队伍的任务
|
|
|
- List<IotProjectTaskDO> finishedTasks = iotProjectTaskMapper.selectList(reqVO);
|
|
|
- if (CollUtil.isNotEmpty(finishedTasks)) {
|
|
|
- // 最新完工的任务位于列表第1个元素
|
|
|
- IotProjectTaskDO latestTask = finishedTasks.get(0);
|
|
|
- iotRhDailyReport.setProjectId(latestTask.getProjectId());
|
|
|
- iotRhDailyReport.setTaskId(latestTask.getId());
|
|
|
- wellName = latestTask.getWellName();
|
|
|
- } else {
|
|
|
- wellName = StrUtil.EMPTY;
|
|
|
- }
|
|
|
+ wellName = StrUtil.EMPTY;
|
|
|
}
|
|
|
|
|
|
// 查询当前队伍的运行记录 找到注水量 注水时间 赋值到日报的 注水时间
|
|
|
@@ -370,9 +382,9 @@ public class IotRhDailyReportServiceImpl implements IotRhDailyReportService {
|
|
|
if (ObjUtil.isEmpty(existReport)) {
|
|
|
// 新增日报记录 如果是 无施工设备的队伍 status auditStatus 需要单独处理
|
|
|
if (CollUtil.isNotEmpty(teamStatusL)) {
|
|
|
- // 自动生成的日报 设置 填报完成 审批通过
|
|
|
- iotRhDailyReport.setStatus(1);
|
|
|
- iotRhDailyReport.setAuditStatus(20);
|
|
|
+ // 20260731 修改成 生成的空日报需要再次填报 确认并审核
|
|
|
+ iotRhDailyReport.setStatus(0);
|
|
|
+ iotRhDailyReport.setAuditStatus(0);
|
|
|
// 如果是自动生成的日报 需要根据规则设备 非生产时间
|
|
|
// 设备状态为 "动迁" 时,系统生成的日报里面,非生产时间内的 "生产配合"(relocation_time) 时间为24小时;
|
|
|
// 设备状态为 "完工" 时,系统生成的日报里面,非生产时间内的 "待命"(winter_break_time) 时间为24小时
|
|
|
@@ -511,6 +523,7 @@ public class IotRhDailyReportServiceImpl implements IotRhDailyReportService {
|
|
|
Long parentId = currentDept[0].getParentId();
|
|
|
if (ObjUtil.isNotEmpty(parentId)) {
|
|
|
AtomicReference<DeptDO> projectDept = new AtomicReference<>();
|
|
|
+ String finalWellName = wellName;
|
|
|
DataPermissionUtils.executeIgnore(() -> {
|
|
|
projectDept.set(deptService.getDept(parentId));
|
|
|
if (ObjUtil.isNotEmpty(projectDept) && "2".equals(projectDept.get().getType())) {
|
|
|
@@ -545,8 +558,8 @@ public class IotRhDailyReportServiceImpl implements IotRhDailyReportService {
|
|
|
if (CollUtil.isNotEmpty(users)) {
|
|
|
// 生成消息提醒标题 部门名称-井号
|
|
|
String msgTitle = currentDept[0].getName();
|
|
|
- if (StrUtil.isNotBlank(wellName)) {
|
|
|
- msgTitle = StrUtil.join("-", msgTitle, wellName);
|
|
|
+ if (StrUtil.isNotBlank(finalWellName)) {
|
|
|
+ msgTitle = StrUtil.join("-", msgTitle, finalWellName);
|
|
|
}
|
|
|
CountDownLatch latch = new CountDownLatch(users.size());
|
|
|
String finalMsgTitle = msgTitle;
|