|
@@ -51,6 +51,7 @@ import org.springblade.business.entity.InformationQuery;
|
|
|
import org.springblade.business.service.IInformationQueryService;
|
|
|
import org.springblade.core.boot.ctrl.BladeController;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -93,16 +94,41 @@ public class InformationWriteQueryController extends BladeController {
|
|
|
@ApiImplicitParam(name = "wbsType", value = "模板类型, 1质检,2试验", required = true),
|
|
|
@ApiImplicitParam(name = "contractId", value = "合同段ID", required = true)
|
|
|
})
|
|
|
- public R<List<WbsTreeContractTreeVOS>> queryMappingStructureTree(@RequestParam String parentId, @RequestParam Integer wbsType, @RequestParam String contractId){
|
|
|
- if(StringUtils.isEmpty(parentId) || "0".equals(parentId)){
|
|
|
- //直接返回
|
|
|
- return R.data(this.clientTreePublicCodeClient.queryContractWbsTreeByContractIdAndType(contractId, wbsType, "0"));
|
|
|
- }
|
|
|
- //不是根节点,则获取子节点
|
|
|
- List<WbsTreeContractTreeVOS> result = this.wbsTreeContractClient.queryContractWbsTreeByContractIdAndType(contractId, 1, parentId);
|
|
|
- //判断当前节点下是不是只有一个子节点
|
|
|
- if(result != null && result.size() == 1){
|
|
|
- this.foreachQueryChildNode(result, contractId);
|
|
|
+ public R<List<WbsTreeContractTreeVOS>> queryMappingStructureTree(@RequestParam String parentId, @RequestParam Integer wbsType, @RequestParam String contractId, @RequestParam String contractIdRelation){
|
|
|
+ List<WbsTreeContractTreeVOS> result;
|
|
|
+
|
|
|
+ //获取合同段,检查是否是监理合同段
|
|
|
+ ContractInfo contractInfo = this.contractClient.getContractById(Long.parseLong(contractId));
|
|
|
+
|
|
|
+ if(new Integer("2").equals(contractInfo.getContractType())){
|
|
|
+ //监理合同段
|
|
|
+ List<WbsTreeContractTreeVOS> childList = this.wbsTreeContractClient.lazyTree(StringUtils.isNotEmpty(parentId) ? Long.parseLong(parentId) : 0, contractId, contractIdRelation, contractInfo.getContractType());
|
|
|
+ if(childList != null && childList.size() == 1){
|
|
|
+ //需要向下展开
|
|
|
+ this.foreachQueryChildNode(childList, childList.get(0).getContractIdRelation(), contractInfo.getContractType());
|
|
|
+ }
|
|
|
+ if(StringUtils.isEmpty(contractIdRelation) && "0".equals(parentId)){
|
|
|
+ //给个顶点
|
|
|
+ WbsTreeContractTreeVOS vos = new WbsTreeContractTreeVOS();
|
|
|
+ vos.setTitle(contractInfo.getContractName());
|
|
|
+ vos.setChildren(childList);
|
|
|
+ result = new ArrayList<>();
|
|
|
+ result.add(vos);
|
|
|
+ } else {
|
|
|
+ result = childList;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ if(StringUtils.isEmpty(parentId) || "0".equals(parentId)){
|
|
|
+ //直接返回
|
|
|
+ return R.data(this.clientTreePublicCodeClient.queryContractWbsTreeByContractIdAndType(contractId, wbsType, "0"));
|
|
|
+ }
|
|
|
+ //不是根节点,则获取子节点
|
|
|
+ result = this.wbsTreeContractClient.queryContractWbsTreeByContractIdAndType(contractId, 1, parentId);
|
|
|
+ //判断当前节点下是不是只有一个子节点
|
|
|
+ if(result != null && result.size() == 1){
|
|
|
+ this.foreachQueryChildNode(result, contractId, contractInfo.getContractType());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return R.data(result);
|
|
@@ -112,15 +138,18 @@ public class InformationWriteQueryController extends BladeController {
|
|
|
* 如果子节点只有一个,则进一步查询该子节点的下级节点
|
|
|
* @param result 子节点集合
|
|
|
*/
|
|
|
- private void foreachQueryChildNode(List<WbsTreeContractTreeVOS> result, String contractId){
|
|
|
+ private void foreachQueryChildNode(List<WbsTreeContractTreeVOS> result, String contractId, Integer initialContractType){
|
|
|
result.forEach(vos -> {
|
|
|
- List<WbsTreeContractTreeVOS> child = this.wbsTreeContractClient.queryContractWbsTreeByContractIdAndType(contractId, 1, vos.getId());
|
|
|
+ String id = new Integer("2").equals(initialContractType) ? vos.getPrimaryKeyId() : vos.getId();
|
|
|
+ String primaryKeyId = new Integer("2").equals(initialContractType) ? vos.getId() : vos.getPrimaryKeyId();
|
|
|
+
|
|
|
+ List<WbsTreeContractTreeVOS> child = this.wbsTreeContractClient.queryContractWbsTreeByContractIdAndType(contractId, 1, id);
|
|
|
if(child != null && child.size() == 1){
|
|
|
//如果子节点还是只有一个,则进一步向下查询
|
|
|
- this.foreachQueryChildNode(child, contractId);
|
|
|
+ this.foreachQueryChildNode(child, contractId, initialContractType);
|
|
|
}
|
|
|
//判断当前节点是否被标记为首件
|
|
|
- TreeContractFirst first = this.treeContractFirstService.getOne(Wrappers.<TreeContractFirst>lambdaQuery().eq(TreeContractFirst::getIsDeleted, 0).eq(TreeContractFirst::getWbsNodeId, vos.getPrimaryKeyId()));
|
|
|
+ TreeContractFirst first = this.treeContractFirstService.getOne(Wrappers.<TreeContractFirst>lambdaQuery().eq(TreeContractFirst::getIsDeleted, 0).eq(TreeContractFirst::getWbsNodeId, primaryKeyId));
|
|
|
vos.setIsFirst(first != null);
|
|
|
|
|
|
vos.setChildren(child);
|
|
@@ -321,23 +350,31 @@ public class InformationWriteQueryController extends BladeController {
|
|
|
@ApiImplicitParam(name = "parentId", value = "父节点,为空则查询第一级节点"),
|
|
|
@ApiImplicitParam(name = "contractId", value = "合同段ID", required = true)
|
|
|
})
|
|
|
- public R<List<WbsTreeContractTreeVOS>> queryContractWbsTreeByContractIdAndType(@RequestParam String parentId, @RequestParam String contractId){
|
|
|
+ public R<List<WbsTreeContractTreeVOS>> queryContractWbsTreeByContractIdAndType(@RequestParam String parentId, @RequestParam String contractId, @RequestParam String contractIdRelation){
|
|
|
List<WbsTreeContractTreeVOS> rootTreeNode;
|
|
|
|
|
|
- if(com.alibaba.nacos.common.utils.StringUtils.isEmpty(parentId)){
|
|
|
- //为空,说明初始化
|
|
|
- //获取根节点
|
|
|
- rootTreeNode = this.clientTreePublicCodeClient.queryContractWbsTreeByContractIdAndType(contractId, 1, "0");
|
|
|
+ //获取合同段,检查是否是监理合同段
|
|
|
+ ContractInfo contractInfo = this.contractClient.getContractById(Long.parseLong(contractId));
|
|
|
+ if(new Integer("2").equals(contractInfo.getContractType())){
|
|
|
+ //监理合同段,需要获取关联的施工方合同段根节点数据
|
|
|
+ rootTreeNode = this.wbsTreeContractClient.lazyTree(StringUtils.isNotEmpty(parentId) ? Long.parseLong(parentId) : 0, contractId, contractIdRelation, contractInfo.getContractType());
|
|
|
} else {
|
|
|
- //不为空,获取其下子节点
|
|
|
- rootTreeNode = this.wbsTreeContractClient.queryContractWbsTreeByContractIdAndType(contractId, 1, parentId);
|
|
|
+ if(com.alibaba.nacos.common.utils.StringUtils.isEmpty(parentId)){
|
|
|
+ //为空,说明初始化
|
|
|
+ //获取根节点
|
|
|
+ rootTreeNode = this.clientTreePublicCodeClient.queryContractWbsTreeByContractIdAndType(contractId, 1, "0");
|
|
|
+ } else {
|
|
|
+ //不为空,获取其下子节点
|
|
|
+ rootTreeNode = this.wbsTreeContractClient.queryContractWbsTreeByContractIdAndType(contractId, 1, parentId);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//其他参数
|
|
|
if(rootTreeNode != null && rootTreeNode.size() != 0){
|
|
|
rootTreeNode.forEach(vo -> {
|
|
|
+ String primaryKeyId = new Integer("2").equals(contractInfo.getContractType()) ? vo.getId() : vo.getPrimaryKeyId();
|
|
|
//获取上传的图纸
|
|
|
- ContractTreeDrawings drawings = this.contractTreeDrawingsService.queryCurrentNodeDrawings(vo.getPrimaryKeyId());
|
|
|
+ ContractTreeDrawings drawings = this.contractTreeDrawingsService.queryCurrentNodeDrawings(primaryKeyId);
|
|
|
if(drawings != null){
|
|
|
//主键
|
|
|
vo.setDrawingsId(drawings.getId());
|
|
@@ -346,7 +383,7 @@ public class InformationWriteQueryController extends BladeController {
|
|
|
}
|
|
|
|
|
|
//判断当前节点是否被标记为首件
|
|
|
- TreeContractFirst first = this.treeContractFirstService.getOne(Wrappers.<TreeContractFirst>lambdaQuery().eq(TreeContractFirst::getIsDeleted, 0).eq(TreeContractFirst::getWbsNodeId, vo.getPrimaryKeyId()));
|
|
|
+ TreeContractFirst first = this.treeContractFirstService.getOne(Wrappers.<TreeContractFirst>lambdaQuery().eq(TreeContractFirst::getIsDeleted, 0).eq(TreeContractFirst::getWbsNodeId, primaryKeyId));
|
|
|
vo.setIsFirst(first != null);
|
|
|
});
|
|
|
}
|