1、新增根据项目ID获取对应的批次号方法

This commit is contained in:
2026-03-10 18:57:33 +08:00
parent f01d4a212a
commit 503e57f5ef

View File

@@ -13,6 +13,9 @@ import com.sdm.common.entity.resp.system.CIDUserResp;
import com.sdm.common.feign.impl.system.SysUserFeignClientImpl; import com.sdm.common.feign.impl.system.SysUserFeignClientImpl;
import com.sdm.common.utils.PageUtils; import com.sdm.common.utils.PageUtils;
import com.sdm.common.utils.TimeCalculator; import com.sdm.common.utils.TimeCalculator;
import com.sdm.outbridge.entity.LyricVProjectBatchToDM;
import com.sdm.outbridge.service.lyric.LyricVProjectBatchToDmService;
import com.sdm.outbridge.service.lyric.LyricVProjectToDmService;
import com.sdm.project.common.MemberTypeEnum; import com.sdm.project.common.MemberTypeEnum;
import com.sdm.project.dao.SimulationTaskMapper; import com.sdm.project.dao.SimulationTaskMapper;
import com.sdm.project.dao.SimulationWorkMapper; import com.sdm.project.dao.SimulationWorkMapper;
@@ -56,6 +59,9 @@ public class SimulationWorkServiceImpl extends ServiceImpl<SimulationWorkMapper,
@Autowired @Autowired
private SimulationTaskExtraServiceImpl taskExtraService; private SimulationTaskExtraServiceImpl taskExtraService;
@Autowired
private LyricVProjectBatchToDmService lyricVProjectBatchToDmService;
// 报工类型常量 // 报工类型常量
public static final int WORK_TYPE_START = 0; // 开始报工 public static final int WORK_TYPE_START = 0; // 开始报工
public static final int WORK_TYPE_FINISH = 1; // 完成报工 public static final int WORK_TYPE_FINISH = 1; // 完成报工
@@ -67,6 +73,12 @@ public class SimulationWorkServiceImpl extends ServiceImpl<SimulationWorkMapper,
SimulationTaskExtra.PROPERTY_NAME_SHOULD_PROGRESS SimulationTaskExtra.PROPERTY_NAME_SHOULD_PROGRESS
); );
// 特殊批次名称
public static final String SPECIAL_BATCH_NAME = "C01";
// 普通批次名称
public static final String GENERAL_BATCH_NAME = "P00";
/** /**
* 更新任务应达成进度(删除旧值+保存新值) * 更新任务应达成进度(删除旧值+保存新值)
*/ */
@@ -362,4 +374,44 @@ public class SimulationWorkServiceImpl extends ServiceImpl<SimulationWorkMapper,
return SdmResponse.success(); return SdmResponse.success();
} }
/**
* 根据项目ID获取对应的批次号
* 规则优先返回C01批次无则返回固定值P00
*
* @param projectId 项目ID非空
* @return 批次号C01/P00
*/
public String getBatchByProjectId(String projectId) {
// 1. 参数校验
if (StringUtils.isBlank(projectId)) {
String errorMsg = String.format("获取批次号失败projectId不能为空入参为[%s]", projectId);
log.error(errorMsg);
throw new IllegalArgumentException(errorMsg);
}
// 2. 直接查询是否存在C01批次
boolean existsSpecialBatch = lyricVProjectBatchToDmService.lambdaQuery()
.eq(LyricVProjectBatchToDM::getProjectId, projectId)
.eq(LyricVProjectBatchToDM::getBatch, SPECIAL_BATCH_NAME)
.exists();
// 3. 存在C01批次则返回否则检查是否有其他批次
if (existsSpecialBatch) {
return SPECIAL_BATCH_NAME;
}
// 4. 检查是否有其他批次数据原逻辑无数据返回空串有数据返回P00
boolean existsAnyBatch = lyricVProjectBatchToDmService.lambdaQuery()
.eq(LyricVProjectBatchToDM::getProjectId, projectId)
.exists();
if (!existsAnyBatch) {
log.error("根据projectId{}未查询到任何批次信息,返回空串", projectId);
return "";
}
// 5. 有批次但无C01返回通用批次
return GENERAL_BATCH_NAME;
}
} }