Commit f38ddacc authored by wangqiang's avatar wangqiang

修改tapd bug

【ID1010954】【项目中心】IED计划:实际开始时间,根据规则自动取值;
【ID1010966】【项目中心】IED计划:导入新增时,需要校验,下列三个编号都得是唯一的
parent 43ce681e
......@@ -145,12 +145,26 @@ public class IEDPlanExcelListenner extends AnalysisEventListener<ExtIEDPlanExcel
if (!operationList.contains(extIEDPlanExcelVO.getOperation())) {
errorString.append("解析到数据第"+excelDataRow+"行文件编号为:" + extIEDPlanExcelVO.getFileNumber() + "的操作符无法识别!!");
errorList.add(errorString);
return;
}
//文件代号不能为空
if(StringUtils.isEmpty(extIEDPlanExcelVO.getFileCode())){
errorString.append("解析到数据第"+excelDataRow+"行文件编号为:" + extIEDPlanExcelVO.getFileNumber() + "的文件代号不能为空!!");
errorList.add(errorString);
return;
}
//管理系统编码不能为空
if(StringUtils.isEmpty(extIEDPlanExcelVO.getSystemNumber())){
errorString.append("解析到数据第"+excelDataRow+"行文件编号为:" + extIEDPlanExcelVO.getFileNumber() + "的管理信息系统编码不能为空!!");
errorList.add(errorString);
return;
}
//如果是新增,查看一下数据库中是不是已经存在
if (Constants.EXCEL_ADD.equals(extIEDPlanExcelVO.getOperation())) {
ExtIEDPlanVO extIEDPlanVO = getIEDPlanByFileNumber(extIEDPlanExcelVO.getFileNumber());
//文件编码、文件代号、管理系统编码只要有一个存在就不能新增。
ExtIEDPlanVO extIEDPlanVO = getIEDPlanByFileNumberAndFileCodeAndSystemNumber(extIEDPlanExcelVO.getFileNumber(),extIEDPlanExcelVO.getFileCode(),extIEDPlanExcelVO.getSystemNumber());
if (!ObjectUtils.isEmpty(extIEDPlanVO)) {
errorString.append("解析到数据第"+excelDataRow+"行,新增IED计划的文件编号:" + extIEDPlanExcelVO.getFileNumber() + "已存在,不能重复添加!");
errorString.append("解析到数据第"+excelDataRow+"行,新增IED计划的文件编号、文件代号或者管理信息系统编码已存在,不能重复添加!");
errorList.add(errorString);
}
}else if (Constants.EXCEL_DELETE.equals(extIEDPlanExcelVO.getOperation())){
......@@ -225,6 +239,38 @@ public class IEDPlanExcelListenner extends AnalysisEventListener<ExtIEDPlanExcel
return null;
}
/**
* 查询系统中文件编码、文件代号、管理系统编码是否存在,保证数据在数据库中是唯一。
* @param fileNumber
* @param fileCode
* @param systemNumber
* @return
*/
public ExtIEDPlanVO getIEDPlanByFileNumberAndFileCodeAndSystemNumber(String fileNumber,String fileCode,String systemNumber) {
SearchQueryCondition searchQuery = SearchQueryCondition.builder().
searchItems(SearchItems.builder().child(
SearchItems.builder()
.item(new SearchItem("fileNumber", SearchItem.Operator.EQ, fileNumber, (Object)null))
.item(new SearchItem("fileCode", SearchItem.Operator.EQ, fileCode, (Object)null))
.item(new SearchItem("systemNumber", SearchItem.Operator.EQ, systemNumber, (Object)null))
.operator(SearchItems.BooleanOperator.OR).build())
.item(new SearchItem("dxContextId", SearchItem.Operator.EQ, projectId, (Object)null)).operator(SearchItems.BooleanOperator.AND).build()
).build();
//根据文件编号查询IED计划
// DxPageImpl<ExtIEDPlanVO> IEDPlanPage = extIEDPlanService.findRecursion(SearchUtil.buildQuery("fileNumber", SearchItem.Operator.EQ, fileNumber));
DxPageImpl<ExtIEDPlanVO> IEDPlanPage = extIEDPlanService.findRecursion(searchQuery);
if (!CollectionUtils.isEmpty(IEDPlanPage.getContent())) {
ExtIEDPlanVO extIEDPlanVOForDB = DxPageUtils.getFirst(IEDPlanPage);
return extIEDPlanVOForDB;
} else {
log.info("根据计划的文件编码:{},未查到相关计划", fileNumber);
}
return null;
}
/**
* 根据fileNumber查询已经删除的计划
* @param fileNumber
......
......@@ -211,8 +211,12 @@ public class ExtIEDPlanServiceImpl<V extends ExtIEDPlanVO> implements ExtIEDPlan
extIEDPlanDocLinkVO.setSourceId(extIEDPlanVO.getId());
extIEDPlanDocLinkVO.setOperator(OperatorType.ADD);
extIEDPlanDocLinkService.saveRecursion(extIEDPlanDocLinkVO);
//修改计划的实际开始时间
DxPageImpl<V> dxPage = this.findRecursion(SearchUtil.buildQuery("id", SearchItem.Operator.EQ, extIEDPlanVO.getId()));
ExtIEDPlanVO extIEDPlanForDB = dxPage.getContent().get(0);
extIEDPlanForDB.setOperator(OperatorType.MODIFY);
extIEDPlanForDB.setActualStartTime(LocalDateTime.now());
this.saveRecursion((V) extIEDPlanForDB);
return ApiResult.SUCCESS;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment