123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- package com.fdkankan.fusion.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.fdkankan.fusion.entity.SceneFileBuild;
- import com.fdkankan.fusion.mapper.ISceneFileBuildMapper;
- import com.fdkankan.fusion.service.ISceneFileBuildService;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.stereotype.Service;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- /**
- * <p>
- * 场景文件建模表 服务实现类
- * </p>
- *
- * @author
- * @since 2025-03-05
- */
- @Service
- @Slf4j
- public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper, SceneFileBuild> implements ISceneFileBuildService {
- @Override
- public String getBuildTimeByScene(String num, Integer isObj) {
- LambdaQueryWrapper<SceneFileBuild> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(SceneFileBuild::getSceneNum,num);
- wrapper.eq(SceneFileBuild::getBuildType,isObj == 0?"buildScene":"buildObj");
- wrapper.orderByDesc(SceneFileBuild::getId);
- List<SceneFileBuild> list = this.list(wrapper);
- if(list!=null && !list.isEmpty()){
- return list.get(0).getEndBuildTime();
- }
- return null;
- }
- @Override
- public HashMap<String, SceneFileBuild> getBuildTimeByScene(List<String> numList) {
- HashMap<String,SceneFileBuild> map = new HashMap<>(numList.size());
- if(numList.isEmpty()){
- return map;
- }
- LambdaQueryWrapper<SceneFileBuild> wrapper = new LambdaQueryWrapper<>();
- wrapper.in(SceneFileBuild::getSceneNum,numList);
- //wrapper.eq(SceneFileBuild::getBuildType,isObj == 0?"buildScene":"buildObj");
- List<SceneFileBuild> list = this.list(wrapper);
- for (SceneFileBuild sceneFileBuild : list) {
- String buildType = sceneFileBuild.getBuildType();
- if(map.get(sceneFileBuild.getSceneNum() + buildType) == null){
- map.put(sceneFileBuild.getSceneNum() + buildType,sceneFileBuild);
- }else {
- SceneFileBuild o1 = map.get(sceneFileBuild.getSceneNum() + buildType);
- if(o1.getId() >sceneFileBuild.getId()){
- continue;
- }
- map.put(sceneFileBuild.getSceneNum() + buildType,sceneFileBuild);
- }
- }
- return map;
- }
- @Override
- public void updateTimeAndStatus(String sceneCode, int status, Date startTime, Date endTime, String buildType,String path) {
- LambdaQueryWrapper<SceneFileBuild> qr = Wrappers.lambdaQuery();
- qr.eq(SceneFileBuild::getSceneNum, sceneCode);
- qr.eq(SceneFileBuild::getBuildType, buildType);
- List<SceneFileBuild> list = this.list(qr);
- if(list.isEmpty()){
- SceneFileBuild sceneFileBuild = new SceneFileBuild();
- sceneFileBuild.setSceneNum(sceneCode);
- sceneFileBuild.setBuildType(buildType);
- sceneFileBuild.setBuildStatus(status);
- sceneFileBuild.setFileId(sceneCode);
- sceneFileBuild.setStartBuildTime(new Date());
- sceneFileBuild.setResultPath(path);
- this.save(sceneFileBuild);
- return;
- }
- LambdaUpdateWrapper<SceneFileBuild> wrapper = Wrappers.lambdaUpdate();
- wrapper.eq(SceneFileBuild::getSceneNum, sceneCode);
- wrapper.eq(SceneFileBuild::getBuildType, buildType);
- wrapper.set(SceneFileBuild::getBuildStatus, status);
- if (startTime != null) {
- wrapper.set(SceneFileBuild::getStartBuildTime, startTime);
- }
- if (endTime != null) {
- wrapper.set(SceneFileBuild::getEndBuildTime, endTime);
- }
- wrapper.isNull(SceneFileBuild::getDeleteFlag);
- if (StringUtils.isNotBlank(sceneCode)){
- boolean rows = update(wrapper); // 检查返回的影响行数
- log.info("更新记录数: {}, sceneCode: {}, buildType: {}", rows, sceneCode, buildType);
- }
- }
- }
|