From e1ac73f9a89b205cc18ed2fa65a5ac7e854a01e4 Mon Sep 17 00:00:00 2001 From: Administrator <1923636941@qq.com> Date: Mon, 20 Mar 2023 19:15:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=8E=A8=E9=80=81bim?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/project/entity/ProgressTask.java | 4 +- .../project/service/ProgressTaskService.java | 2 + .../modules/project/service/impl/AsyBim.java | 9 +- .../service/impl/ProgressTaskServiceImpl.java | 142 +++++++++++++++--- .../com/zhgd/xmgl/task/ProgressAlarmTask.java | 9 ++ 5 files changed, 138 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/project/entity/ProgressTask.java b/src/main/java/com/zhgd/xmgl/modules/project/entity/ProgressTask.java index 6ce83e4d8..595c2d13f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/entity/ProgressTask.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/entity/ProgressTask.java @@ -135,7 +135,9 @@ public class ProgressTask implements Serializable { @TableField(value = "create_user_id") @ApiModelProperty(value = "创建用户id") private Long createUserId; - + /** + * 两套状态 + */ @TableField(value = "status") @ApiModelProperty(value = "状态,1:提前 2正常 3延迟") private Integer status; diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/ProgressTaskService.java b/src/main/java/com/zhgd/xmgl/modules/project/service/ProgressTaskService.java index deb36ecfb..7584ef53a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/ProgressTaskService.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/ProgressTaskService.java @@ -72,5 +72,7 @@ public interface ProgressTaskService extends IService { * @return 实际进度列表 */ List actualProgress(String projectSn); + + void autoTaskUpdateForBim(); } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/AsyBim.java b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/AsyBim.java index e7e4779b5..ec57ae7e1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/AsyBim.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/AsyBim.java @@ -15,10 +15,15 @@ import java.util.HashMap; @Component @Slf4j public class AsyBim { + //测试 + //String ipPort = "http://47.105.67.193:8086"; + + //生产 + String ipPort = "http://124.71.79.109:8086"; @Async("bimExecutor") public void asynAddProgressTask(BIMProgressTaskRqBody bimProgressTaskRqBody) { - String url = "http://47.105.67.193:8086/Other/SaveProgress"; + String url = ipPort + "/Other/SaveProgress"; String body = JSON.toJSONString(bimProgressTaskRqBody); log.info("http调用bim保存进度:url:{},body:{}", url, body); String rs = HttpUtil.post(url, body); @@ -56,7 +61,7 @@ public class AsyBim { @Async("bimExecutor") public void asynDeleteProgressTask(String floor, String major) { - String url = "http://47.105.67.193:8086/Other/DeleteProgress?floor=" + floor + "&major=" + major; + String url = ipPort + "/Other/DeleteProgress?floor=" + floor + "&major=" + major; log.info("http调用bim删除进度:url:{}", url); String rs = HttpUtil.post(url, new HashMap<>()); log.info("http调用bim删除进度结果:{}", rs); diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProgressTaskServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProgressTaskServiceImpl.java index d0d6b15ff..48e7460d9 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProgressTaskServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProgressTaskServiceImpl.java @@ -26,6 +26,7 @@ import net.sf.mpxj.ProjectFile; import net.sf.mpxj.Relation; import net.sf.mpxj.Task; import net.sf.mpxj.mpp.MPPReader; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -72,6 +73,8 @@ public class ProgressTaskServiceImpl extends ServiceImpl deleteList = getProgressTaskRqBodyData(progressTasks); + List deleteList = getBimTasksByProgressTasks(progressTasks); if (CollUtil.isNotEmpty(deleteList)) { for (BIMProgressTaskRqBody body : deleteList) { asyBim.asynDeleteProgressTask(body.getFloor(), body.getMajor()); @@ -98,7 +101,7 @@ public class ProgressTaskServiceImpl extends ServiceImpl bimProgressTaskRqBodies = getProgressTaskRqBodyData(progressTasks); + List bimProgressTaskRqBodies = getBimTasksByProgressTasks(progressTasks); if (CollUtil.isNotEmpty(bimProgressTaskRqBodies)) { for (BIMProgressTaskRqBody bimProgressTaskRqBody : bimProgressTaskRqBodies) { asyBim.asynAddProgressTask(bimProgressTaskRqBody); @@ -114,7 +117,7 @@ public class ProgressTaskServiceImpl extends ServiceImpl getProgressTaskRqBodyData(List progressTasks) { + private List getBimTasksByProgressTasks(List progressTasks) { ArrayList bimProgressTaskRqBodies = new ArrayList<>(); Map topIdMap = progressTasks.stream().filter(progressTask -> progressTask.getParentId().equals(0L)) .collect(Collectors.toMap(ProgressTask::getId, progressTask -> progressTask)); @@ -123,17 +126,17 @@ public class ProgressTaskServiceImpl extends ServiceImpl progressTasks = progressTaskMapper.selectList(new LambdaQueryWrapper<>()); + List bimTasksByProgressTasks = getBimTasksByProgressTasks(progressTasks); + if (CollUtil.isNotEmpty(bimTasksByProgressTasks)) { + for (BIMProgressTaskRqBody body : bimTasksByProgressTasks) { + //0未开始不同步,其他的全部同步 + //0未开始 ,1进行中,2已完成,3已逾期 + Integer status = body.getStatus(); + if (!Objects.equals(status, 0)) { + asyBim.asynAddProgressTask(body); + } + } + } + } + } + } diff --git a/src/main/java/com/zhgd/xmgl/task/ProgressAlarmTask.java b/src/main/java/com/zhgd/xmgl/task/ProgressAlarmTask.java index 48abb0ea9..38b6c0834 100644 --- a/src/main/java/com/zhgd/xmgl/task/ProgressAlarmTask.java +++ b/src/main/java/com/zhgd/xmgl/task/ProgressAlarmTask.java @@ -117,6 +117,15 @@ public class ProgressAlarmTask { } + /** + * 中建四局定时推送进度状态给bim + */ + @SchedulerLock(name = "autoTaskUpdateForBim", lockAtMostFor = 1000 * 60 * 60, lockAtLeastFor = 1000 * 60 * 5) + @Scheduled(cron = "0 0 1 * * ?") + public void autoTaskUpdateForBim() { + progressTaskService.autoTaskUpdateForBim(); + } + /** * 每天7点对没有处理的逾期任务进行通知 */