|
@@ -55,10 +55,9 @@ public class ZhcxItpTemplateNodesServiceImpl extends ServiceImpl<ZhcxItpTemplate
|
|
|
if(StringUtils.isNotBlank(zhcxItpTemplateNodeSyncProjectVo.getNodeid())
|
|
|
&& zhcxItpTemplateNodeSyncProjectVo.getProjectids() != null && zhcxItpTemplateNodeSyncProjectVo.getProjectids().size()>0){
|
|
|
// 待保存的项目ITP节点
|
|
|
- List<ZhcxItpProjectNodesDo> toSaveNodes = new ArrayList<>();
|
|
|
- List<ZhcxItpProjectNodesDo> toUpdateNodes = new ArrayList<>();
|
|
|
- // 模板节点ID和项目节点ID的映射关系
|
|
|
- Map<String,String> tempProMap = new HashMap<>();
|
|
|
+ List<ZhcxItpProjectNodesDo> toSaveTotalNodes = new ArrayList<>();
|
|
|
+ List<ZhcxItpProjectNodesDo> toUpdateTotalNodes = new ArrayList<>();
|
|
|
+
|
|
|
// 获取当前报验点
|
|
|
ZhcxItpTemplateNodesDo baNodes = this.getById(zhcxItpTemplateNodeSyncProjectVo.getNodeid());
|
|
|
// 查询当前报验点及上级节点和以及上级节点归属大构件
|
|
@@ -75,32 +74,18 @@ public class ZhcxItpTemplateNodesServiceImpl extends ServiceImpl<ZhcxItpTemplate
|
|
|
for (ZhcxItpTemplateNodesDo nodess : templateNodess) {
|
|
|
if(StringUtils.isNotBlank(nodess.getPnodeid())){
|
|
|
ZhcxItpTemplateNodesDo pnode = this.getById(nodess.getPnodeid());
|
|
|
- templateBigNodess.add(pnode);
|
|
|
- nodeids.add(nodess.getPnodeid());
|
|
|
+ if(pnode != null){
|
|
|
+ templateBigNodess.add(pnode);
|
|
|
+ nodeids.add(nodess.getPnodeid());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if(templateBigNodess != null && templateBigNodess.size()>0){
|
|
|
templateNodess.addAll(templateBigNodess);
|
|
|
}
|
|
|
|
|
|
+ // 根据名称刷新最新数据
|
|
|
for (String projectid : zhcxItpTemplateNodeSyncProjectVo.getProjectids()) {
|
|
|
- // 查询项目ID关联的机号
|
|
|
- String projectDeviceNumberIds = null;
|
|
|
- String projectDeviceNumberNames = null;
|
|
|
- List<ZhcxProjectDeviceNumberDo> deviceNumberDos = zhcxProjectDeviceNumberService.list(
|
|
|
- new LambdaQueryWrapper<ZhcxProjectDeviceNumberDo>().eq(ZhcxProjectDeviceNumberDo::getPid, projectid));
|
|
|
- if(deviceNumberDos != null && deviceNumberDos.size()>0){
|
|
|
- for (ZhcxProjectDeviceNumberDo deviceNumberDo : deviceNumberDos) {
|
|
|
- if(projectDeviceNumberIds == null){
|
|
|
- projectDeviceNumberIds = deviceNumberDo.getId();
|
|
|
- projectDeviceNumberNames = deviceNumberDo.getDeviceNumber();
|
|
|
- }else{
|
|
|
- projectDeviceNumberIds = projectDeviceNumberIds + "," + deviceNumberDo.getId();
|
|
|
- projectDeviceNumberNames = projectDeviceNumberNames + "," + deviceNumberDo.getDeviceNumber();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
// 根据名称判断
|
|
|
String sql1 = "select a.NODENAME AS \"NAMEONE\",a.ID AS \"IDONE\",b.NODENAME AS \"NAMETWO\",b.ID AS \"IDTWO\",c.NODENAME AS \"NAMETHREE\",c.ID AS \"IDTHREE\"\n" +
|
|
|
"from ZHCX_ITP_TEMPLATE_NODES a \n" +
|
|
@@ -118,45 +103,104 @@ public class ZhcxItpTemplateNodesServiceImpl extends ServiceImpl<ZhcxItpTemplate
|
|
|
node1.setId(namethree.get(0).getId());
|
|
|
node1.setItpnodeid(nodes.get(0).get("IDTHREE").toString());
|
|
|
zhcxItpProjectNodesService.updateById(node1);
|
|
|
- // 2级
|
|
|
- List<String> a = new ArrayList<>();
|
|
|
- a.add(CxConstants.ITP_NODETYPE_SMALL);a.add(CxConstants.ITP_NODETYPE_BIG);
|
|
|
- List<ZhcxItpProjectNodesDo> nametwo = zhcxItpProjectNodesService.list(new LambdaQueryWrapper<ZhcxItpProjectNodesDo>()
|
|
|
- .eq(ZhcxItpProjectNodesDo::getProjectid, projectid).in(ZhcxItpProjectNodesDo::getNodetype,a)
|
|
|
- .eq(ZhcxItpProjectNodesDo::getNodename, nodes.get(0).get("NAMETWO")).eq(ZhcxItpProjectNodesDo::getPid,node1.getId()));
|
|
|
- if(nametwo != null && nametwo.size()>0){
|
|
|
- if(!nametwo.get(0).getItpnodeid().equals(nodes.get(0).get("IDTWO"))){
|
|
|
- ZhcxItpProjectNodesDo node2 = new ZhcxItpProjectNodesDo();
|
|
|
- node2.setId(nametwo.get(0).getId());
|
|
|
- node2.setItpnodeid(nodes.get(0).get("IDTWO").toString());
|
|
|
- zhcxItpProjectNodesService.updateById(node2);
|
|
|
- // 3级
|
|
|
- List<ZhcxItpProjectNodesDo> nameone = zhcxItpProjectNodesService.list(new LambdaQueryWrapper<ZhcxItpProjectNodesDo>()
|
|
|
- .eq(ZhcxItpProjectNodesDo::getProjectid, projectid).eq(ZhcxItpProjectNodesDo::getNodetype,CxConstants.ITP_NODETYPE_CHECKPOINT)
|
|
|
- .eq(ZhcxItpProjectNodesDo::getNodename, nodes.get(0).get("NAMEONE")).eq(ZhcxItpProjectNodesDo::getPid,node2.getId()));
|
|
|
- if(!nameone.get(0).getItpnodeid().equals(nodes.get(0).get("IDONE"))){
|
|
|
- ZhcxItpProjectNodesDo node3 = new ZhcxItpProjectNodesDo();
|
|
|
- node3.setId(nameone.get(0).getId());
|
|
|
- node3.setItpnodeid(nodes.get(0).get("IDONE").toString());
|
|
|
- ZhcxItpTemplateNodesDo idone = this.getById(nodes.get(0).get("IDONE").toString());
|
|
|
- node3.setIsneedout(idone.getIsneedout());
|
|
|
- node3.setInspectiontype(idone.getInspectiontype());
|
|
|
- node3.setIssupp(idone.getIssupp());
|
|
|
- node3.setChecktmpid(idone.getChecktmpid());
|
|
|
- node3.setCheckrole(idone.getCheckrole());
|
|
|
- node3.setCheckroleid(idone.getCheckroleid());
|
|
|
- node3.setOrgid(idone.getOrgid());
|
|
|
- node3.setOrgname(idone.getOrgname());
|
|
|
- node3.setCheckfile(idone.getCheckfile());
|
|
|
- node3.setNodename(idone.getNodename());
|
|
|
- node3.setIsneedinput(idone.getIsneedinput());
|
|
|
- zhcxItpProjectNodesService.updateById(node3);
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2级
|
|
|
+ List<String> a = new ArrayList<>();
|
|
|
+ a.add(CxConstants.ITP_NODETYPE_SMALL);a.add(CxConstants.ITP_NODETYPE_BIG);
|
|
|
+ List<ZhcxItpProjectNodesDo> nametwo = zhcxItpProjectNodesService.list(new LambdaQueryWrapper<ZhcxItpProjectNodesDo>()
|
|
|
+ .eq(ZhcxItpProjectNodesDo::getProjectid, projectid).in(ZhcxItpProjectNodesDo::getNodetype,a)
|
|
|
+ .eq(ZhcxItpProjectNodesDo::getNodename, nodes.get(0).get("NAMETWO")).eq(ZhcxItpProjectNodesDo::getPid,namethree.get(0).getId()));
|
|
|
+ if(nametwo != null && nametwo.size()>0){
|
|
|
+ if(!nametwo.get(0).getItpnodeid().equals(nodes.get(0).get("IDTWO"))){
|
|
|
+ ZhcxItpProjectNodesDo node2 = new ZhcxItpProjectNodesDo();
|
|
|
+ node2.setId(nametwo.get(0).getId());
|
|
|
+ node2.setItpnodeid(nodes.get(0).get("IDTWO").toString());
|
|
|
+ zhcxItpProjectNodesService.updateById(node2);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3级
|
|
|
+ List<ZhcxItpProjectNodesDo> nameone = zhcxItpProjectNodesService.list(new LambdaQueryWrapper<ZhcxItpProjectNodesDo>()
|
|
|
+ .eq(ZhcxItpProjectNodesDo::getProjectid, projectid).eq(ZhcxItpProjectNodesDo::getNodetype,CxConstants.ITP_NODETYPE_CHECKPOINT)
|
|
|
+ .eq(ZhcxItpProjectNodesDo::getNodename, nodes.get(0).get("NAMEONE")).eq(ZhcxItpProjectNodesDo::getPid,nametwo.get(0).getId()));
|
|
|
+ if(nameone != null && nameone.size()>0){
|
|
|
+ if(!nameone.get(0).getItpnodeid().equals(nodes.get(0).get("IDONE"))){
|
|
|
+ ZhcxItpProjectNodesDo node3 = new ZhcxItpProjectNodesDo();
|
|
|
+ node3.setId(nameone.get(0).getId());
|
|
|
+ node3.setItpnodeid(nodes.get(0).get("IDONE").toString());
|
|
|
+ ZhcxItpTemplateNodesDo idone = this.getById(nodes.get(0).get("IDONE").toString());
|
|
|
+ node3.setIsneedout(idone.getIsneedout());
|
|
|
+ node3.setInspectiontype(idone.getInspectiontype());
|
|
|
+ node3.setIssupp(idone.getIssupp());
|
|
|
+ node3.setChecktmpid(idone.getChecktmpid());
|
|
|
+ node3.setCheckrole(idone.getCheckrole());
|
|
|
+ node3.setCheckroleid(idone.getCheckroleid());
|
|
|
+ node3.setOrgid(idone.getOrgid());
|
|
|
+ node3.setOrgname(idone.getOrgname());
|
|
|
+ node3.setCheckfile(idone.getCheckfile());
|
|
|
+ node3.setNodename(idone.getNodename());
|
|
|
+ node3.setIsneedinput(idone.getIsneedinput());
|
|
|
+ zhcxItpProjectNodesService.updateById(node3);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 归属大构件
|
|
|
+ for (ZhcxItpTemplateNodesDo nodess : templateBigNodess) {
|
|
|
+ // 查找大构件所属阶段
|
|
|
+ ZhcxItpTemplateNodesDo pidnode = this.getById(nodess.getPid());
|
|
|
+ // 1级
|
|
|
+ List<ZhcxItpProjectNodesDo> dgjpnode = zhcxItpProjectNodesService.list(new LambdaQueryWrapper<ZhcxItpProjectNodesDo>()
|
|
|
+ .eq(ZhcxItpProjectNodesDo::getProjectid, projectid).eq(ZhcxItpProjectNodesDo::getNodetype, CxConstants.ITP_NODETYPE_PHASE)
|
|
|
+ .eq(ZhcxItpProjectNodesDo::getNodename, pidnode.getNodename()));
|
|
|
+ if(dgjpnode != null && dgjpnode.size()>0){
|
|
|
+ if(!dgjpnode.get(0).getItpnodeid().equals(pidnode.getId())){
|
|
|
+ ZhcxItpProjectNodesDo node1 = new ZhcxItpProjectNodesDo();
|
|
|
+ node1.setId(dgjpnode.get(0).getId());
|
|
|
+ node1.setItpnodeid(pidnode.getId());
|
|
|
+ zhcxItpProjectNodesService.updateById(node1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 2级
|
|
|
+ List<String> a1 = new ArrayList<>();
|
|
|
+ a1.add(CxConstants.ITP_NODETYPE_SMALL);a1.add(CxConstants.ITP_NODETYPE_BIG);
|
|
|
+ List<ZhcxItpProjectNodesDo> gsnametwo = zhcxItpProjectNodesService.list(new LambdaQueryWrapper<ZhcxItpProjectNodesDo>()
|
|
|
+ .eq(ZhcxItpProjectNodesDo::getProjectid, projectid).in(ZhcxItpProjectNodesDo::getNodetype,a1)
|
|
|
+ .eq(ZhcxItpProjectNodesDo::getNodename, nodess.getNodename()).eq(ZhcxItpProjectNodesDo::getPid,pidnode.getId()));
|
|
|
+ if(gsnametwo != null && gsnametwo.size()>0){
|
|
|
+ if(!gsnametwo.get(0).getItpnodeid().equals(nodess.getId())){
|
|
|
+ ZhcxItpProjectNodesDo node2 = new ZhcxItpProjectNodesDo();
|
|
|
+ node2.setId(gsnametwo.get(0).getId());
|
|
|
+ node2.setItpnodeid(nodess.getId());
|
|
|
+ zhcxItpProjectNodesService.updateById(node2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (String projectid : zhcxItpTemplateNodeSyncProjectVo.getProjectids()) {
|
|
|
+ List<ZhcxItpProjectNodesDo> toSaveNodes = new ArrayList<>();
|
|
|
+ List<ZhcxItpProjectNodesDo> toUpdateNodes = new ArrayList<>();
|
|
|
+ // 模板节点ID和项目节点ID的映射关系
|
|
|
+ Map<String,String> tempProMap = new HashMap<>();
|
|
|
+ // 查询项目ID关联的机号
|
|
|
+ String projectDeviceNumberIds = null;
|
|
|
+ String projectDeviceNumberNames = null;
|
|
|
+ List<ZhcxProjectDeviceNumberDo> deviceNumberDos = zhcxProjectDeviceNumberService.list(
|
|
|
+ new LambdaQueryWrapper<ZhcxProjectDeviceNumberDo>().eq(ZhcxProjectDeviceNumberDo::getPid, projectid));
|
|
|
+ if(deviceNumberDos != null && deviceNumberDos.size()>0){
|
|
|
+ for (ZhcxProjectDeviceNumberDo deviceNumberDo : deviceNumberDos) {
|
|
|
+ if(projectDeviceNumberIds == null){
|
|
|
+ projectDeviceNumberIds = deviceNumberDo.getId();
|
|
|
+ projectDeviceNumberNames = deviceNumberDo.getDeviceNumber();
|
|
|
+ }else{
|
|
|
+ projectDeviceNumberIds = projectDeviceNumberIds + "," + deviceNumberDo.getId();
|
|
|
+ projectDeviceNumberNames = projectDeviceNumberNames + "," + deviceNumberDo.getDeviceNumber();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 获取当前项目是否有当前报验点
|
|
|
List<ZhcxItpProjectNodesDo> projectNodesDos = zhcxItpProjectNodesService.list(new LambdaQueryWrapper<ZhcxItpProjectNodesDo>().
|
|
|
eq(ZhcxItpProjectNodesDo::getProjectid, projectid).in(ZhcxItpProjectNodesDo::getItpnodeid, nodeids));
|
|
@@ -207,48 +251,58 @@ public class ZhcxItpTemplateNodesServiceImpl extends ServiceImpl<ZhcxItpTemplate
|
|
|
tempProMap.put(nodess.getId(),itpProjectNodesDo.getId());
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- // 项目节点相关ID替换
|
|
|
- for (ZhcxItpProjectNodesDo projectNode : toSaveNodes) {
|
|
|
- if(StringUtils.isNotBlank(projectNode.getPid()) && !"-1".equals(projectNode.getPid())){
|
|
|
- if(tempProMap.containsKey(projectNode.getPid())){
|
|
|
- projectNode.setPid(tempProMap.get(projectNode.getPid()));
|
|
|
+
|
|
|
+ // 项目节点相关ID替换
|
|
|
+ for (ZhcxItpProjectNodesDo projectNode : toSaveNodes) {
|
|
|
+ if(StringUtils.isNotBlank(projectNode.getPid()) && !"-1".equals(projectNode.getPid())){
|
|
|
+ if(tempProMap.containsKey(projectNode.getPid())){
|
|
|
+ projectNode.setPid(tempProMap.get(projectNode.getPid()));
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- if(StringUtils.isNotBlank(projectNode.getPnodeid())){
|
|
|
- if(tempProMap.containsKey(projectNode.getPnodeid())){
|
|
|
- projectNode.setPnodeid(tempProMap.get(projectNode.getPnodeid()));
|
|
|
+ if(StringUtils.isNotBlank(projectNode.getPnodeid())){
|
|
|
+ if(tempProMap.containsKey(projectNode.getPnodeid())){
|
|
|
+ projectNode.setPnodeid(tempProMap.get(projectNode.getPnodeid()));
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- // 替换新的path
|
|
|
- if(StringUtils.isNotBlank(projectNode.getPath())){
|
|
|
- String newPaths = null;
|
|
|
- String[] paths = projectNode.getPath().split(",");
|
|
|
- for (String path : paths) {
|
|
|
- if(newPaths == null){
|
|
|
- if(tempProMap.containsKey(path)){
|
|
|
- newPaths = tempProMap.get(path);
|
|
|
- }else{
|
|
|
- newPaths = path;
|
|
|
- }
|
|
|
- }else{
|
|
|
- if(tempProMap.containsKey(path)){
|
|
|
- newPaths = newPaths + "," + tempProMap.get(path);
|
|
|
+ // 替换新的path
|
|
|
+ if(StringUtils.isNotBlank(projectNode.getPath())){
|
|
|
+ String newPaths = null;
|
|
|
+ String[] paths = projectNode.getPath().split(",");
|
|
|
+ for (String path : paths) {
|
|
|
+ if(newPaths == null){
|
|
|
+ if(tempProMap.containsKey(path)){
|
|
|
+ newPaths = tempProMap.get(path);
|
|
|
+ }else{
|
|
|
+ newPaths = path;
|
|
|
+ }
|
|
|
}else{
|
|
|
- newPaths = newPaths + "," + path;
|
|
|
+ if(tempProMap.containsKey(path)){
|
|
|
+ newPaths = newPaths + "," + tempProMap.get(path);
|
|
|
+ }else{
|
|
|
+ newPaths = newPaths + "," + path;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ projectNode.setPath(newPaths);
|
|
|
}
|
|
|
- projectNode.setPath(newPaths);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 数据汇总
|
|
|
+ if(toSaveNodes != null && toSaveNodes.size()>0){
|
|
|
+ toSaveTotalNodes.addAll(toSaveNodes);
|
|
|
+ }
|
|
|
+ if(toUpdateNodes != null && toUpdateNodes.size()>0){
|
|
|
+ toUpdateTotalNodes.addAll(toUpdateNodes);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
// 数据保存
|
|
|
- if(toSaveNodes != null && toSaveNodes.size()>0){
|
|
|
- zhcxItpProjectNodesService.saveBatch(toSaveNodes);
|
|
|
+ if(toSaveTotalNodes != null && toSaveTotalNodes.size()>0){
|
|
|
+ zhcxItpProjectNodesService.saveBatch(toSaveTotalNodes);
|
|
|
}
|
|
|
// 数据更新
|
|
|
- if(toUpdateNodes != null && toUpdateNodes.size()>0){
|
|
|
- zhcxItpProjectNodesService.updateBatchById(toUpdateNodes);
|
|
|
+ if(toUpdateTotalNodes != null && toUpdateTotalNodes.size()>0){
|
|
|
+ zhcxItpProjectNodesService.updateBatchById(toUpdateTotalNodes);
|
|
|
}
|
|
|
}
|
|
|
}
|