fix[project]: 仿真策划时创建任务时,同时创建需求
This commit is contained in:
@@ -121,6 +121,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
|
||||
public static final String PROGRAM_TEAM = "programTeam";
|
||||
public static final String REFERENCE_ITEM = "referenceItem";
|
||||
public static final String PROJECT_UNDERTAKER = "projectUndertaker";
|
||||
public static final String IS_MOLD_MAKING = "isMoldMaking";
|
||||
// 同步待办锁
|
||||
private final ReentrantLock syncTodoInfoLock = new ReentrantLock();
|
||||
|
||||
|
||||
@@ -45,10 +45,7 @@ import com.sdm.common.utils.RandomUtil;
|
||||
import com.sdm.common.utils.SystemOperate;
|
||||
import com.sdm.common.utils.excel.ExcelUtil;
|
||||
import com.sdm.project.bo.ExportOperate;
|
||||
import com.sdm.project.common.MemberTypeEnum;
|
||||
import com.sdm.project.common.NodeMemberTypeEnum;
|
||||
import com.sdm.project.common.TaskExeStatusEnum;
|
||||
import com.sdm.project.common.VersionEnum;
|
||||
import com.sdm.project.common.*;
|
||||
import com.sdm.project.dao.SimulationDemandMapper;
|
||||
import com.sdm.project.dao.SimulationNodeMapper;
|
||||
import com.sdm.project.dao.SimulationProjectMapper;
|
||||
@@ -78,11 +75,13 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Field;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.sdm.project.service.impl.LyricInternalServiceImpl.*;
|
||||
import static com.sdm.project.service.impl.NodeServiceImpl.*;
|
||||
|
||||
@Slf4j
|
||||
@@ -2193,7 +2192,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
|
||||
log.info("仿真策划时,删除用户权限的返回值为:{}",updatePermissionResponse);
|
||||
}
|
||||
|
||||
private SdmResponse newRealAddSimulationTaskItems(TaskNodeTree taskNodeTree, Long tenantId, List<TaskNodeTag> tagList, String ownRootNodeUuid) {
|
||||
private SdmResponse newRealAddSimulationTaskItems(TaskNodeTree taskNodeTree, Long tenantId, List<TaskNodeTag> tagList, String ownRootNodeUuid,List<SpdmNodeExtraVo> nodeExtraList) {
|
||||
Long userId = ThreadLocalContext.getUserId();
|
||||
SdmResponse response = SdmResponse.success();
|
||||
if (CollectionUtils.isEmpty(taskNodeTree.getNodeList())) {
|
||||
@@ -2409,7 +2408,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
|
||||
}
|
||||
// 20260320 新增任务时,同步新增一个需求
|
||||
try {
|
||||
addDemandByTask(taskNodeList);
|
||||
addDemandByTask(taskNodeList,nodeExtraList);
|
||||
}catch (Exception ex) {
|
||||
log.error("新增任务时,同步新增需求时异常:{}",ex.getMessage());
|
||||
}
|
||||
@@ -2489,7 +2488,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
|
||||
return response;
|
||||
}
|
||||
|
||||
public void addDemandByTask(List<TaskNode> taskNodeList) {
|
||||
public void addDemandByTask(List<TaskNode> taskNodeList,List<SpdmNodeExtraVo> nodeExtraList) {
|
||||
log.info("addDemandByTask 策划任务时,新增需求");
|
||||
Long tenantId = ThreadLocalContext.getTenantId();
|
||||
Long jobNumber = ThreadLocalContext.getUserId();
|
||||
@@ -2512,11 +2511,65 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
|
||||
String attentionMemberList = taskNode.getAMemberList();
|
||||
req.setCreateTime(curDateStr);
|
||||
req.setUuid(RandomUtil.generateString(32));
|
||||
req.setDemandName(taskNode.getTaskName());
|
||||
req.setProjectId(String.join(",", taskNode.getTag1()));
|
||||
req.setPhaseId(String.join(",", taskNode.getTag2()));
|
||||
req.setMachineId(String.join(",", taskNode.getTag4()));
|
||||
req.setWorkspaceId(String.join(",", taskNode.getTag5()));
|
||||
req.setSimType(taskNode.getDiscipline());
|
||||
req.setBeginTime(taskNode.getBeginTime());
|
||||
req.setEndTime(taskNode.getEndTime());
|
||||
req.setDemandStatus(String.valueOf(DemandStatusTypeEnum.NOT_STARTED.getCode()));
|
||||
// 没有的属性:
|
||||
if (demandMapper.addDemand(req, tenantId, jobNumber) <= 0) {
|
||||
log.error("addDemandByTask 新增需求失败!");
|
||||
return;
|
||||
}
|
||||
long demandId = req.getId();
|
||||
List<SpdmDemandExtraReq> demandExtraList = new ArrayList<>();
|
||||
// 项目承接主题
|
||||
SpdmNodeExtraVo projectUndertakerExtraVo = nodeExtraList.stream().filter(nodeExtra -> PROJECT_UNDERTAKER.equals(nodeExtra.getPropertyName())).findFirst().orElse(null);
|
||||
if (projectUndertakerExtraVo != null) {
|
||||
SpdmDemandExtraReq demandExtraReq = new SpdmDemandExtraReq();
|
||||
demandExtraReq.setDemandId(req.getUuid());
|
||||
demandExtraReq.setPropertyName(PROJECT_UNDERTAKER);
|
||||
demandExtraReq.setPropertyValue(projectUndertakerExtraVo.getPropertyValue());
|
||||
demandExtraReq.setPropertyClass(projectUndertakerExtraVo.getPropertyClass());
|
||||
demandExtraReq.setCreator(jobNumber);
|
||||
demandExtraReq.setCreateTime(curDateStr);
|
||||
demandExtraList.add(demandExtraReq);
|
||||
}
|
||||
|
||||
// 产品线
|
||||
SpdmNodeExtraVo projectLineExtraVo = nodeExtraList.stream().filter(nodeExtra -> PRODUCE_LINE.equals(nodeExtra.getPropertyName())).findFirst().orElse(null);
|
||||
if (projectLineExtraVo != null) {
|
||||
SpdmDemandExtraReq demandExtraReq = new SpdmDemandExtraReq();
|
||||
demandExtraReq.setDemandId(req.getUuid());
|
||||
demandExtraReq.setPropertyName(PRODUCE_LINE);
|
||||
demandExtraReq.setPropertyValue(projectLineExtraVo.getPropertyValue());
|
||||
demandExtraReq.setPropertyClass(projectLineExtraVo.getPropertyClass());
|
||||
demandExtraReq.setCreator(jobNumber);
|
||||
demandExtraReq.setCreateTime(curDateStr);
|
||||
demandExtraList.add(demandExtraReq);
|
||||
}
|
||||
|
||||
// 是否开模件
|
||||
SpdmNodeExtraVo isMoldMakingExtraVo = nodeExtraList.stream().filter(nodeExtra -> IS_MOLD_MAKING.equals(nodeExtra.getPropertyName())).findFirst().orElse(null);
|
||||
if (isMoldMakingExtraVo != null) {
|
||||
SpdmDemandExtraReq demandExtraReq = new SpdmDemandExtraReq();
|
||||
demandExtraReq.setDemandId(req.getUuid());
|
||||
demandExtraReq.setPropertyName(IS_MOLD_MAKING);
|
||||
demandExtraReq.setPropertyValue(isMoldMakingExtraVo.getPropertyValue());
|
||||
demandExtraReq.setPropertyClass(isMoldMakingExtraVo.getPropertyClass());
|
||||
demandExtraReq.setCreator(jobNumber);
|
||||
demandExtraReq.setCreateTime(curDateStr);
|
||||
demandExtraList.add(demandExtraReq);
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(demandExtraList)) {
|
||||
demandMapper.addDemandExtra(demandExtraList);
|
||||
}
|
||||
|
||||
List<SpdmDemandRelateMemberReq> allMemberList = new ArrayList<>();
|
||||
String uuid = req.getUuid();
|
||||
if (StringUtils.isNotBlank(pMemberList)) {
|
||||
@@ -3003,7 +3056,10 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
|
||||
Long tenantId = ThreadLocalContext.getTenantId();
|
||||
TaskNodeTree taskNodeTree = newParseTaskTree(JSONArray.parseArray(JSONArray.toJSONString(addNodeList)));
|
||||
tagMap = req.getTagMap();
|
||||
SdmResponse response = newRealAddSimulationTaskItems(taskNodeTree, tenantId, req.getTagMap(),req.getOwnRootNodeUuid());
|
||||
List<String> tag1Id = addNodeList.get(0).getTag1();
|
||||
// 查询项目的拓展属性
|
||||
List<SpdmNodeExtraVo> nodeExtraList = nodeMapper.getNodeExtraListByNodeIdList(tag1Id);
|
||||
SdmResponse response = newRealAddSimulationTaskItems(taskNodeTree, tenantId, req.getTagMap(),req.getOwnRootNodeUuid(),nodeExtraList);
|
||||
if (response.getCode() != ResultCode.SUCCESS.getCode()) {
|
||||
log.error("新增任务、分析项失败,清理新增数据!");
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
@@ -3908,4 +3964,20 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
|
||||
|
||||
return PageUtils.getJsonObjectSdmResponse(pagedList, pageInfo);
|
||||
}
|
||||
|
||||
public static void setTagProperty(Object obj, String propertyName, Object value) throws Exception {
|
||||
Class<?> clazz = obj.getClass();
|
||||
Field field = clazz.getDeclaredField(propertyName);
|
||||
field.setAccessible(true);
|
||||
field.set(obj, value);
|
||||
field.setAccessible(false);
|
||||
}
|
||||
|
||||
public static String getTagProperty(Object obj, String propertyName) throws Exception {
|
||||
Class<?> clazz = obj.getClass();
|
||||
Field field = clazz.getDeclaredField(propertyName);
|
||||
field.setAccessible(true);
|
||||
return (String) field.get(obj);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user