|
@@ -16,6 +16,7 @@
|
|
|
*/
|
|
|
package org.springblade.manager.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import org.jsoup.Jsoup;
|
|
|
import org.jsoup.nodes.Document;
|
|
@@ -23,6 +24,7 @@ import org.jsoup.nodes.Element;
|
|
|
import org.jsoup.select.Elements;
|
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
|
import org.springblade.core.tool.utils.IoUtil;
|
|
|
+import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
import org.springblade.core.tool.utils.StringUtil;
|
|
|
import org.springblade.manager.entity.NodeBaseInfo;
|
|
|
import org.springblade.manager.entity.Parameter;
|
|
@@ -34,6 +36,7 @@ import org.springblade.manager.vo.NodeBaseInfoVO;
|
|
|
import org.springblade.manager.mapper.NodeBaseInfoMapper;
|
|
|
import org.springblade.manager.service.INodeBaseInfoService;
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
@@ -67,12 +70,8 @@ public class NodeBaseInfoServiceImpl extends BaseServiceImpl<NodeBaseInfoMapper,
|
|
|
|
|
|
@Override
|
|
|
public NodeBaseInfo getOrSaveNodeBaseInfo(Long pKeyId) {
|
|
|
- NodeBaseInfo nodeBaseInfo = baseMapper.selectOne(new QueryWrapper<NodeBaseInfo>().eq("node_id", pKeyId));
|
|
|
- if(nodeBaseInfo!=null){
|
|
|
- return nodeBaseInfo;
|
|
|
- }
|
|
|
//查出当前节点的所有父节点
|
|
|
- WbsTreeContract wbsTreeContract = iWbsTreeContractService.getBaseMapper().selectById(pKeyId);
|
|
|
+ WbsTreeContract wbsTreeContract = iWbsTreeContractService.getBaseMapper().selectOne(new LambdaQueryWrapper<>(WbsTreeContract.class).eq(WbsTreeContract::getPKeyId,pKeyId));
|
|
|
if(wbsTreeContract!=null&&wbsTreeContract.getAncestors()!=null){
|
|
|
String ancestors = wbsTreeContract.getAncestors();
|
|
|
String[] nodeIds = ancestors.split(",");
|
|
@@ -80,12 +79,11 @@ public class NodeBaseInfoServiceImpl extends BaseServiceImpl<NodeBaseInfoMapper,
|
|
|
QueryWrapper<WbsTreeContract> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq("project_id",wbsTreeContract.getProjectId());
|
|
|
queryWrapper.eq("contract_id",wbsTreeContract.getContractId());
|
|
|
- queryWrapper.in("id", Arrays.asList(nodeIds));
|
|
|
+ queryWrapper.in("p_key_id", Arrays.asList(nodeIds));
|
|
|
List<WbsTreeContract> wbsTreeContracts = iWbsTreeContractService.getBaseMapper().selectList(queryWrapper);
|
|
|
if(wbsTreeContracts.size()>0){
|
|
|
NodeBaseInfo info = new NodeBaseInfo();
|
|
|
- info.setId(SnowFlakeUtil.getId());
|
|
|
- info.setNodeId(pKeyId);
|
|
|
+
|
|
|
for (WbsTreeContract contract : wbsTreeContracts) {
|
|
|
if(contract.getNodeType()==1){
|
|
|
info.setUnit(contract.getNodeName());
|
|
@@ -115,6 +113,41 @@ public class NodeBaseInfoServiceImpl extends BaseServiceImpl<NodeBaseInfoMapper,
|
|
|
info.setProcesses(contract.getNodeName());
|
|
|
}
|
|
|
}
|
|
|
+ if(wbsTreeContract.getNodeType()==1){
|
|
|
+ info.setUnit(wbsTreeContract.getNodeName());
|
|
|
+ }
|
|
|
+ else if(wbsTreeContract.getNodeType()==18){
|
|
|
+ info.setSubUnit(wbsTreeContract.getNodeName());
|
|
|
+ }
|
|
|
+ else if(wbsTreeContract.getNodeType()==2){
|
|
|
+ info.setDivision(wbsTreeContract.getNodeName());
|
|
|
+ }
|
|
|
+ else if(wbsTreeContract.getNodeType()==3){
|
|
|
+ info.setSubDivision(wbsTreeContract.getNodeName());
|
|
|
+ }
|
|
|
+ else if(wbsTreeContract.getNodeType()==4){
|
|
|
+ info.setItem(wbsTreeContract.getNodeName());
|
|
|
+ }
|
|
|
+ else if(wbsTreeContract.getNodeType()==5){
|
|
|
+ info.setSubItem(wbsTreeContract.getNodeName());
|
|
|
+ }
|
|
|
+ else if(wbsTreeContract.getNodeType()==6){
|
|
|
+ info.setProcesses(wbsTreeContract.getNodeName());
|
|
|
+ }
|
|
|
+ NodeBaseInfo nodeBaseInfo = baseMapper.selectOne(new QueryWrapper<NodeBaseInfo>().eq("node_id", pKeyId));
|
|
|
+ if(nodeBaseInfo!=null){
|
|
|
+ if(StringUtil.equals(nodeBaseInfo.getUnit(),info.getUnit())&&StringUtil.equals(nodeBaseInfo.getSubUnit(),info.getSubUnit())&&StringUtil.equals(nodeBaseInfo.getDivision(),info.getDivision())
|
|
|
+ &&StringUtil.equals(nodeBaseInfo.getSubDivision(),info.getSubDivision())&&StringUtil.equals(nodeBaseInfo.getItem(),info.getItem())&&StringUtil.equals(nodeBaseInfo.getSubItem(),info.getSubItem())
|
|
|
+ &&StringUtil.equals(nodeBaseInfo.getProcesses(),info.getProcesses())){
|
|
|
+ return nodeBaseInfo;
|
|
|
+ }else {
|
|
|
+ BeanUtils.copyProperties(info,nodeBaseInfo);
|
|
|
+ baseMapper.updateById(nodeBaseInfo);
|
|
|
+ return nodeBaseInfo;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ info.setId(SnowFlakeUtil.getId());
|
|
|
+ info.setNodeId(pKeyId);
|
|
|
baseMapper.insert(info);
|
|
|
return info;
|
|
|
}
|
|
@@ -183,13 +216,13 @@ public class NodeBaseInfoServiceImpl extends BaseServiceImpl<NodeBaseInfoMapper,
|
|
|
htmlString = htmlString.replaceAll("placeholder", "placeholderxx");
|
|
|
Document doc = Jsoup.parse(htmlString);
|
|
|
//拿到参数库所有元素与参数库的元素比较
|
|
|
- String sql="select * from m_parameter_element where is_deleted !=0";
|
|
|
+ String sql="select * from m_parameter_element where is_deleted =0";
|
|
|
List<ParameterElement> ParameterElementList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ParameterElement.class));
|
|
|
- List<WbsTreeContract> ancestorsNodes = iWbsTreeContractService.getBaseMapper().selectList(new QueryWrapper<WbsTreeContract>().in("id", Arrays.stream(wbsTreeContractNode.getAncestors().split(",")).toArray()).eq("contract_id", wbsTreeContractNode.getContractId()));
|
|
|
+ List<WbsTreeContract> ancestorsNodes = iWbsTreeContractService.getBaseMapper().selectList(new QueryWrapper<WbsTreeContract>().in("p_key_id", Arrays.stream(wbsTreeContractNode.getAncestors().split(",")).toArray()).eq("contract_id", wbsTreeContractNode.getContractId()));
|
|
|
for (ParameterElement parameterElement : ParameterElementList) {
|
|
|
- Elements select = doc.select("[placeholderxx='" + parameterElement.getElementName() + "']");
|
|
|
+ Elements selects = doc.select("[placeholderxx='" + parameterElement.getElementName() + "']");
|
|
|
//元素库里存在表单的元素
|
|
|
- if(select.size()>0){
|
|
|
+ if(selects.size()>0){
|
|
|
//用元素查出参数库
|
|
|
String sql1="Select * from m_parameter where id="+parameterElement.getParameterId();
|
|
|
Parameter parameter = jdbcTemplate.queryForObject(sql1, new BeanPropertyRowMapper<>(Parameter.class));
|
|
@@ -214,70 +247,72 @@ public class NodeBaseInfoServiceImpl extends BaseServiceImpl<NodeBaseInfoMapper,
|
|
|
//拿到参数库的类型
|
|
|
String paramType = parameter.getParamType();
|
|
|
String[] paramTypes = paramType.split(",");
|
|
|
- StringBuilder result=new StringBuilder();
|
|
|
//根据参数的类型值,来获取不同的值 1-7是获取单位工程名称这些 8是获取划分编号 9是获取范围随机数
|
|
|
- for (String type : paramTypes) {
|
|
|
- if(type.equals("1")){
|
|
|
- String s=ancestorsNodes.stream()
|
|
|
- .filter(m -> m.getNodeType() == 1)
|
|
|
+ for (Element select : selects) {
|
|
|
+ StringBuilder result=new StringBuilder();
|
|
|
+ for (String type : paramTypes) {
|
|
|
+ if(type.equals("1")){
|
|
|
+ String s=ancestorsNodes.stream()
|
|
|
+ .filter(m -> m.getNodeType() == 1&&m.getParentId()!=0)
|
|
|
.map(WbsTreeContract::getNodeName)
|
|
|
.findFirst()
|
|
|
.orElse("");
|
|
|
- result.append(s);
|
|
|
- } else if (type.equals("2")) {
|
|
|
- String s=ancestorsNodes.stream()
|
|
|
+ result.append(s);
|
|
|
+ } else if (type.equals("2")) {
|
|
|
+ String s=ancestorsNodes.stream()
|
|
|
.filter(m -> m.getNodeType() == 18)
|
|
|
.map(WbsTreeContract::getNodeName)
|
|
|
.findFirst()
|
|
|
.orElse("");
|
|
|
- result.append(s);
|
|
|
- } else if (type.equals("3")) {
|
|
|
- String s=ancestorsNodes.stream()
|
|
|
+ result.append(s);
|
|
|
+ } else if (type.equals("3")) {
|
|
|
+ String s=ancestorsNodes.stream()
|
|
|
.filter(m -> m.getNodeType() == 2)
|
|
|
.map(WbsTreeContract::getNodeName)
|
|
|
.findFirst()
|
|
|
.orElse("");
|
|
|
- result.append(s);
|
|
|
- }else if (type.equals("4")) {
|
|
|
- String s=ancestorsNodes.stream()
|
|
|
+ result.append(s);
|
|
|
+ }else if (type.equals("4")) {
|
|
|
+ String s=ancestorsNodes.stream()
|
|
|
.filter(m -> m.getNodeType() == 3)
|
|
|
.map(WbsTreeContract::getNodeName)
|
|
|
.findFirst()
|
|
|
.orElse("");
|
|
|
- result.append(s);
|
|
|
- }else if (type.equals("5")) {
|
|
|
- String s=ancestorsNodes.stream()
|
|
|
+ result.append(s);
|
|
|
+ }else if (type.equals("5")) {
|
|
|
+ String s=ancestorsNodes.stream()
|
|
|
.filter(m -> m.getNodeType() == 4)
|
|
|
.map(WbsTreeContract::getNodeName)
|
|
|
.findFirst()
|
|
|
.orElse("");
|
|
|
- result.append(s);
|
|
|
- }else if (type.equals("6")) {
|
|
|
- String s=ancestorsNodes.stream()
|
|
|
+ result.append(s);
|
|
|
+ }else if (type.equals("6")) {
|
|
|
+ String s=ancestorsNodes.stream()
|
|
|
.filter(m -> m.getNodeType() == 5)
|
|
|
.map(WbsTreeContract::getNodeName)
|
|
|
.findFirst()
|
|
|
.orElse("");
|
|
|
- result.append(s);
|
|
|
- }else if (type.equals("7")) {
|
|
|
- String s=ancestorsNodes.stream()
|
|
|
+ result.append(s);
|
|
|
+ }else if (type.equals("7")) {
|
|
|
+ String s=ancestorsNodes.stream()
|
|
|
.filter(m -> m.getNodeType() == 6)
|
|
|
.map(WbsTreeContract::getNodeName)
|
|
|
.findFirst()
|
|
|
.orElse("");
|
|
|
- result.append(s);
|
|
|
- }else if (type.equals("8")) {
|
|
|
- String s= ancestorsNodes.stream()
|
|
|
+ result.append(s);
|
|
|
+ }else if (type.equals("8")) {
|
|
|
+ String s= ancestorsNodes.stream()
|
|
|
.map(WbsTreeContract::getPartitionCode) // 获取 partitionCode
|
|
|
.filter(partitionCode -> partitionCode != null && !partitionCode.isEmpty()) // 过滤掉空值
|
|
|
.collect(Collectors.joining());
|
|
|
- if(wbsTreeContract.getPartitionCode()!=null){
|
|
|
- s=s+wbsTreeContract.getPartitionCode();
|
|
|
+ if(wbsTreeContract.getPartitionCode()!=null){
|
|
|
+ s=s+wbsTreeContract.getPartitionCode();
|
|
|
+ }
|
|
|
+ result.append(s);
|
|
|
}
|
|
|
- result.append(s);
|
|
|
}
|
|
|
+ map.put(select.attr("keyname"),result.toString());
|
|
|
}
|
|
|
- map.put(select.attr("keyname"),result.toString());
|
|
|
}
|
|
|
}
|
|
|
}
|