Merge remote-tracking branch 'origin/main'

This commit is contained in:
2026-02-03 14:25:33 +08:00
4 changed files with 183 additions and 4 deletions

View File

@@ -151,4 +151,30 @@ public class SimulationDemandController {
return demandService.addDemandNoPermission(req);
}
/**
* 修改需求(无权限)
*
* @param req
* @return
*/
@SysLog("修改需求")
@PostMapping("/editDemandNoPermission")
@Operation(summary = "修改需求", description = "修改需求")
public SdmResponse editDemandNoPermission(@RequestBody SpdmEditDemandReq req) {
return demandService.editDemandNoPermission(req);
}
/**
* 删除需求(无权限)
*
* @param req
* @return
*/
@SysLog("删除需求")
@PostMapping("/deleteDemandNoPermission")
@Operation(summary = "删除需求", description = "删除需求")
public SdmResponse deleteDemandNoPermission(@RequestBody @Validated SpdmDeleteDemandReq req) {
return demandService.deleteDemandNoPermission(req);
}
}

View File

@@ -48,4 +48,9 @@ public interface IDemandService {
SdmResponse queryTodoList(DemandQryReq req);
SdmResponse addDemandNoPermission(SpdmAddDemandReq req);
SdmResponse deleteDemandNoPermission(SpdmDeleteDemandReq req);
SdmResponse editDemandNoPermission(SpdmEditDemandReq req);
}

View File

@@ -342,6 +342,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
return SdmResponse.failed("修改需求额外属性失败!");
}
}
renameDirNew(req.getUuid(),req.getDemandName());
return SdmResponse.success();
}
@@ -351,6 +352,15 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
mapper.deleteDemand(req.getDeleteNodeIdList());
mapper.deleteDemandMember(req.getDeleteNodeIdList());
mapper.deleteDemandExtra(req.getDeleteNodeIdList());
for (String demandNodeId : req.getDeleteNodeIdList()) {
SdmResponse response = deleteDirNew(demandNodeId);
if (ObjectUtils.isEmpty(response) || response.getCode() != ResultCode.SUCCESS.getCode()) {
// 先记录日志
log.error("deleteDemand删除需求id为{}的文件夹失败,原因为:{}", demandNodeId,response.getMessage());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return SdmResponse.failed("删除失败,原因:" + response.getMessage());
}
}
return SdmResponse.success();
}
@@ -1437,4 +1447,142 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
log.info("下发任务调用创建文件夹的返回值为:{}", response);
}
// 删除文件夹
public SdmResponse deleteDirNew(String uuid) {
DelDirReq req = new DelDirReq();
req.setDelUuid(uuid);
log.info("调用删除需求文件夹的参数为:{}", req);
SdmResponse response = dataClientFeignClient.delDir(req);
log.info("调用删除需求文件夹的返回值为:{}", response);
return response;
}
@Transactional(rollbackFor = Exception.class)
@Override
public SdmResponse deleteDemandNoPermission(SpdmDeleteDemandReq req) {
mapper.deleteDemand(req.getDeleteNodeIdList());
mapper.deleteDemandMember(req.getDeleteNodeIdList());
mapper.deleteDemandExtra(req.getDeleteNodeIdList());
for (String demandNodeId : req.getDeleteNodeIdList()) {
SdmResponse response = deleteDirNew(demandNodeId);
if (ObjectUtils.isEmpty(response) || response.getCode() != ResultCode.SUCCESS.getCode()) {
// 先记录日志
log.error("deleteDemandNoPermission删除需求id为{}的文件夹失败,原因为:{}", demandNodeId,response.getMessage());
}
}
return SdmResponse.success();
}
public SdmResponse renameDirNew(String uuid, String newDirName) {
RenameDirReq req = new RenameDirReq();
req.setUuid(uuid);
req.setNewName(newDirName);
log.info("修改需求调用重命名文件夹的参数为:{}", req);
SdmResponse response = dataClientFeignClient.renameDirNew(req);
log.info("修改需求调用重命名文件夹的返回值为:{}", response);
return response;
}
@Override
public SdmResponse editDemandNoPermission(SpdmEditDemandReq req) {
Long tenantId = ThreadLocalContext.getTenantId();
Long jobNumber = ThreadLocalContext.getUserId();
log.info("修改需求时当前租户id为{},工号为:{}", tenantId, jobNumber);
// 获取仿真负责人
String pMemberList = req.getPMemberList();
// 获取仿真执行人
String eMemberList = req.getEMemberList();
// 3D负责人
String threeDMemberList = req.getTMemberList();
// 关注人
String attentionMemberList = req.getAMemberList();
// 获取需求额外属性
List<SpdmDemandExtraReq> demandExtraList = req.getExtras();
String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
req.setUpdateTime(curDateStr);
if (mapper.editDemand(req, jobNumber) <= 0) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return SdmResponse.failed("修改需求失败!");
}
// 先删除所有成员,然后再添加
mapper.deleteDemandMember(Collections.singletonList(req.getUuid()));
List<SpdmDemandRelateMemberReq> allMemberList = new ArrayList<>();
String uuid = req.getUuid();
if (StringUtils.isNotBlank(pMemberList)) {
String[] pMemberArray = pMemberList.split(",");
for (String userId : pMemberArray) {
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
spdmDemandRelateMemberReq.setDemandId(uuid);
spdmDemandRelateMemberReq.setType(0);
spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId));
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
spdmDemandRelateMemberReq.setCreator(jobNumber);
allMemberList.add(spdmDemandRelateMemberReq);
}
}
if (StringUtils.isNotBlank(eMemberList)) {
String[] eMemberArray = eMemberList.split(",");
for (String userId : eMemberArray) {
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
spdmDemandRelateMemberReq.setDemandId(uuid);
spdmDemandRelateMemberReq.setType(1);
spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId));
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
spdmDemandRelateMemberReq.setCreator(jobNumber);
allMemberList.add(spdmDemandRelateMemberReq);
}
}
if (StringUtils.isNotBlank(threeDMemberList)) {
String[] threeDMemberArray = threeDMemberList.split(",");
for (String userId : threeDMemberArray) {
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
spdmDemandRelateMemberReq.setDemandId(uuid);
spdmDemandRelateMemberReq.setType(2);
spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId));
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
spdmDemandRelateMemberReq.setCreator(jobNumber);
allMemberList.add(spdmDemandRelateMemberReq);
}
}
if (StringUtils.isNotBlank(attentionMemberList)) {
String[] attentionMemberArray = attentionMemberList.split(",");
for (String userId : attentionMemberArray) {
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
spdmDemandRelateMemberReq.setDemandId(uuid);
spdmDemandRelateMemberReq.setType(3);
spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId));
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
spdmDemandRelateMemberReq.setCreator(jobNumber);
allMemberList.add(spdmDemandRelateMemberReq);
}
}
if (CollectionUtils.isNotEmpty(allMemberList)) {
if (mapper.addDemandMember(allMemberList) <= 0) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return SdmResponse.failed("修改需求关联成员失败!");
}
}
// 先删除所有额外属性,然后再添加
mapper.deleteDemandExtra(Collections.singletonList(req.getUuid()));
if (CollectionUtils.isNotEmpty(demandExtraList)) {
demandExtraList.forEach(demandExtra -> {
demandExtra.setDemandId(req.getUuid());
demandExtra.setCreateTime(curDateStr);
demandExtra.setCreator(jobNumber);
});
if (mapper.addDemandExtra(demandExtraList) <= 0) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return SdmResponse.failed("修改需求额外属性失败!");
}
}
renameDirNew(req.getUuid(),req.getDemandName());
return SdmResponse.success();
}
}

View File

@@ -283,7 +283,7 @@
<select id="getNodeListNoPermission" resultType="com.sdm.project.model.vo.SpdmNodeVo">
select * from simulation_node sn
<where>
<trim prefix="WHERE" suffixOverrides="and">
<if test="nodeType != null and nodeType != ''">
sn.nodeType = #{nodeType} and
</if>
@@ -305,7 +305,7 @@
<bind name="searchKey3" value="'%' + nodeName + '%'"/>
sn.nodeName like #{searchKey3} and
</if>
</where>
</trim>
order by create_time desc
limit #{pos},#{limit}
@@ -313,7 +313,7 @@
<select id="getNodeListCountNoPermission" resultType="java.lang.Integer">
select count(1) from simulation_node sn
<where>
<trim prefix="WHERE" suffixOverrides ="and">
<if test="nodeType != null and nodeType != ''">
sn.nodeType = #{nodeType} and
</if>
@@ -335,7 +335,7 @@
<bind name="searchKey3" value="'%' + nodeName + '%'"/>
sn.nodeName like #{searchKey3} and
</if>
</where>
</trim>
</select>
<select id="getNodeExtraListByNodeIdList" resultType="com.sdm.project.model.vo.SpdmNodeExtraVo">