Commit 413e934b authored by wangqiang's avatar wangqiang

IED计划更新时,更新技术文件的功能开发

parent 113def65
......@@ -37,9 +37,7 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.*;
@Component
@Slf4j
......@@ -124,7 +122,17 @@ public class IEDPlanExcelListenner extends AnalysisEventListener<ExtIEDPlanExcel
ExtIEDPlanVO extIEDPlanVOForDB = getIEDPlanByFileNumber(extIEDPlanExcelVO.getFileNumber());
extIEDPlanVOForDB.setOperator(OperatorType.MODIFY);
transitionObject(extIEDPlanVOForDB,extIEDPlanExcelVO);
//更新计划 --如果是未开启状态,表示还未启动计划;所以没有技术文件,所以不用更新技术文件,只计划信息。
if (extIEDPlanVOForDB.getState().equals(Constants.PLAN_STATE_UNOPENED)) {
//更新计划信息
extIEDPlanService.saveRecursion(extIEDPlanVOForDB);
}else {
//更新计划信息
extIEDPlanService.saveRecursion(extIEDPlanVOForDB);
//更新技术文件
updateDxdocumentVO(extIEDPlanVOForDB);
}
} else { //删除
ExtIEDPlanVO extIEDPlanVOForDB = getIEDPlanByFileNumber(extIEDPlanExcelVO.getFileNumber());
if(extIEDPlanVOForDB.getState().equals(Constants.PLAN_STATE_UNOPENED)){
......@@ -199,7 +207,7 @@ public class IEDPlanExcelListenner extends AnalysisEventListener<ExtIEDPlanExcel
errorString.append("解析到数据第"+excelDataRow+"行,新增IED计划的文件编号、文件代号或者管理信息系统编码已存在,不能重复添加!");
errorList.add(errorString);
}
}else if (Constants.EXCEL_DELETE.equals(extIEDPlanExcelVO.getOperation())){
}else if (Constants.EXCEL_DELETE.equals(extIEDPlanExcelVO.getOperation())){//删除时校验
// ExtIEDPlanVO extIEDPlanVO = getIEDPlanByFileNumberAndDeleted(extIEDPlanExcelVO.getFileNumber(),true);
// if(!ObjectUtils.isEmpty(extIEDPlanVO)){
// errorString.append("解析到数据第"+excelDataRow+"行,删除IED计划的文件编号:" + extIEDPlanExcelVO.getFileNumber() + "未查到相关数据,删除失败!");
......@@ -219,12 +227,35 @@ public class IEDPlanExcelListenner extends AnalysisEventListener<ExtIEDPlanExcel
errorList.add(errorString);
}
}
}else {
}else {//更新时校验
ExtIEDPlanVO iedPlan = getIEDPlanByFileNumberAndDeleted(extIEDPlanExcelVO.getFileNumber(),false);
//如果未查看计划信息,证明更新时的编码不存在,不能更新
if(ObjectUtils.isEmpty(iedPlan)){
errorString.append("解析到数据第"+excelDataRow+"行,更新IED计划的文件编号:" + extIEDPlanExcelVO.getFileNumber() + "未查到相关信息,更新失败!");
errorList.add(errorString);
return;
}
//校验该计划是否被删除
ExtIEDPlanVO extIEDPlanVO = getIEDPlanByFileNumberAndDeleted(extIEDPlanExcelVO.getFileNumber(),true);
if (!ObjectUtils.isEmpty(extIEDPlanVO) && 1 == extIEDPlanVO.getDeleted()) {
errorString.append("解析到数据第"+excelDataRow+"行,更新IED计划的文件编号:" + extIEDPlanExcelVO.getFileNumber() + "已被删除,更新或删除失败!");
errorList.add(errorString);
}
//已完成的计划不能被更新
if(!ObjectUtils.isEmpty(iedPlan) && Constants.COMPLETE.equals(iedPlan.getState())){
errorString.append("解析到数据第"+excelDataRow+"行,更新IED计划的文件编号:" + extIEDPlanExcelVO.getFileNumber() + "已完成的计划不能更新!");
errorList.add(errorString);
}
//如果更新时,计划是未完成状态且不是待审阅状态时,不允许更新
if(Constants.UNFINISHED.equals(iedPlan.getState()) ){
DxDocumentVO dxDocumentVO = getDocmentVoByPlanId(iedPlan.getId());
if(!Constants.PENDING_REVIEW.equals(dxDocumentVO.getState())){
errorString.append("解析到数据第"+excelDataRow+"行,更新IED计划的文件编号:" + extIEDPlanExcelVO.getFileNumber() + "的状态是未完成且审阅状态是"+getStateValue(dxDocumentVO.getState())+",不能更新!");
errorList.add(errorString);
}
}
}
} else {
......@@ -348,6 +379,7 @@ public class IEDPlanExcelListenner extends AnalysisEventListener<ExtIEDPlanExcel
.searchItems(SearchItems.builder()
.item(new SearchItem("fileNumber", SearchItem.Operator.EQ, fileNumber, null))
.item(new SearchItem("deleted", SearchItem.Operator.EQ, deleted, null))
.item(new SearchItem("dxContextId", SearchItem.Operator.EQ, projectId, (Object)null))
.build())
.build();
......@@ -381,4 +413,27 @@ public class IEDPlanExcelListenner extends AnalysisEventListener<ExtIEDPlanExcel
return CommonUtils.searchDictDataValueByDictCode(Constants.OBJ_STATUS, state);
}
/**
* 更新文档新新
* @param extIEDPlanVO
*/
public void updateDxdocumentVO(ExtIEDPlanVO extIEDPlanVO){
DxDocumentVO dxDocumentVO = getDocmentVoByPlanId(extIEDPlanVO.getId());
dxDocumentVO.setOperator(OperatorType.MODIFY);
//文件编号
dxDocumentVO.setNumber(extIEDPlanVO.getFileNumber());
//文件名称
dxDocumentVO.setName(extIEDPlanVO.getFileName());
Map<String, Object> dynamicAttrs = new HashMap<>();
//文件代号
dynamicAttrs.put("fileNumber", extIEDPlanVO.getFileCode());
//管理信息系统编码
dynamicAttrs.put("systemCode", extIEDPlanVO.getSystemNumber());
//阶段
dynamicAttrs.put("phase", extIEDPlanVO.getPhase());
//设置动态属性
dxDocumentVO.setDynamicAttrs(dynamicAttrs);
extDxDocumentServiceFeign.saveRecursion(dxDocumentVO);
}
}
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