Browse Source

甬台温日志查看

chenr 7 tháng trước cách đây
mục cha
commit
d55f270ae1

+ 3 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/EntrustInfoVO.java

@@ -50,4 +50,7 @@ public class EntrustInfoVO extends EntrustInfo {
 	@ApiModelProperty("测试单Id")
 	private String testId;
 
+    @ApiModelProperty("是否关联试验记录")
+    private Boolean isRecords;
+
 }

+ 8 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/EntrustInfoController.java

@@ -143,7 +143,7 @@ public class  EntrustInfoController extends BladeController {
 		return R.status(entrustInfoService.saveOrUpdate(entrustInfo));
 	}
 
-	
+
 	/**
 	 * 删除 委托单信息表
 	 */
@@ -154,6 +154,13 @@ public class  EntrustInfoController extends BladeController {
 		return  entrustInfoService.delEntrustInfo(ids);
 	}
 
+    @GetMapping("/annul")
+    @ApiOperationSupport(order = 7)
+    @ApiOperation(value = "废除委托单(撤回上报)")
+    public R annul(@RequestParam String id){
+        return entrustInfoService.annul(id);
+    }
+
 	@PostMapping("/get-report-detail")
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "获取报告详情", notes = "获取报告详情")

+ 78 - 47
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -1502,8 +1502,8 @@ public class InformationWriteQueryController extends BladeController {
                 Map<Long, Long> oldToNewIdMap = new HashMap<>();
                 Map<String, WbsTreeContract> nodeMap = new HashMap<>();
                 nodeChildAll.forEach(node -> {
-                    oldToNewIdMap.put(node.getId(), SnowFlakeUtil.getId());
-                    nodeMap.put(node.getId().toString(), node);
+                    oldToNewIdMap.put(node.getPKeyId(), SnowFlakeUtil.getId());
+                    nodeMap.put(node.getPKeyId().toString(), node);
                 });
 
                 /*获取元素表数据*/
@@ -1556,7 +1556,9 @@ public class InformationWriteQueryController extends BladeController {
                     WbsTreeContract newData = new WbsTreeContract();
                     BeanUtils.copyProperties(nodeOld, newData);
 
-                    newData.setPKeyId(SnowFlakeUtil.getId());
+                    newData.setPKeyId(oldToNewIdMap.get(nodeOld.getPKeyId()));
+                    newData.setId(newData.getPKeyId());
+
                     if (nodeOld.getNodeType() != null && nodeOld.getNodeType() == 6) {
                         peerMap.put(newData.getPKeyId(), nodeOld.getPKeyId());
                     }
@@ -1566,17 +1568,20 @@ public class InformationWriteQueryController extends BladeController {
                     } else {
                         newData.setOldId(nodeOld.getId().toString());
                     }
-
                     if (new Integer("1").equals(nodeOld.getType())) {
-                        newData.setId(oldToNewIdMap.containsKey(nodeOld.getId()) ? oldToNewIdMap.get(nodeOld.getId()) : SnowFlakeUtil.getId());
+                       // newData.setId(oldToNewIdMap.containsKey(nodeOld.getPKeyId()) ? oldToNewIdMap.get(nodeOld.getPKeyId()) : SnowFlakeUtil.getId());
                         newData.setPartitionCode(StringUtils.isNotEmpty(vo.getPartitionCode()) ? vo.getPartitionCode() : null);
                     }
+                    //如果被复制的是节点,parendID等于父节点的PkeyID
                     if (vo.getNeedCopyPrimaryKeyId().equals(nodeOld.getPKeyId().toString())) {
-                        newData.setParentId(parent.getId());
+                        newData.setParentId(parent.getPKeyId());
+                        newData.setPId(parent.getPKeyId());
                         newData.setNodeName(vo.getNeedCopyNodeName());
                         newData.setFullName(vo.getNeedCopyNodeName());
                     } else {
-                        newData.setParentId(oldToNewIdMap.containsKey(nodeOld.getParentId()) ? oldToNewIdMap.get(nodeOld.getParentId()) : SnowFlakeUtil.getId());
+                        //如果是复制的表格,parentID 他父节点的pkeyId
+                        newData.setParentId(oldToNewIdMap.containsKey(nodeOld.getPId()) ? oldToNewIdMap.get(nodeOld.getPId()) : SnowFlakeUtil.getId());
+                        newData.setPId(oldToNewIdMap.containsKey(nodeOld.getPId()) ? oldToNewIdMap.get(nodeOld.getPId()) : SnowFlakeUtil.getId());
                     }
                     newData.setCreateTime(new Date());
                     newData.setUpdateTime(new Date());
@@ -1585,9 +1590,7 @@ public class InformationWriteQueryController extends BladeController {
                     newData.setPdfUrl(null);
                     newData.setCreateUser(AuthUtil.getUserId());
                     newData.setSort(ObjectUtil.isNotEmpty(nodeOld.getSort()) ? nodeOld.getSort() : 0);
-
                     this.restoreParent(newData, oldToNewIdMap);
-
                     saveList.add(newData);
 
                     /*生成工序节点施工日志*/
@@ -2077,15 +2080,15 @@ public class InformationWriteQueryController extends BladeController {
 
         Map<Long, WbsTreeContract> newMap = BeanUtil.copyProperties(result, WbsTreeContract.class).stream().collect(Collectors.toMap(WbsTreeContract::getId, Function.identity()));
         for (WbsTreeContract obj : sortedResult) {
-            if (obj != null && ObjectUtil.isNotEmpty(obj.getParentId())) {
+            if (obj != null && ObjectUtil.isNotEmpty(obj.getPId())) {
                 if (newMap.size() > 0) {
-                    WbsTreeContract parentObj = newMap.get(obj.getParentId());
-                    if (parentObj != null && ObjectUtil.isNotEmpty(obj.getAncestors()) && ObjectUtil.isNotEmpty(obj.getParentId()) && !obj.getAncestors().contains(obj.getParentId().toString())) {
+                    WbsTreeContract parentObj = newMap.get(obj.getPId());
+                    if (parentObj != null && ObjectUtil.isNotEmpty(obj.getAncestors()) && ObjectUtil.isNotEmpty(obj.getPId()) && !obj.getAncestors().contains(obj.getPId().toString())) {
                         String parentAncestors = parentObj.getAncestors();
-                        obj.setAncestors(parentAncestors + "," + obj.getParentId());
+                        obj.setAncestors(parentAncestors + "," + obj.getPId());
                     }
                 }
-                newMap.put(obj.getId(), obj);
+                newMap.put(obj.getPKeyId(), obj);
                 result.add(obj);
             }
         }
@@ -2364,14 +2367,18 @@ public class InformationWriteQueryController extends BladeController {
         } else { //多层级节点复制
             //根节点id
             Long needCopyNodeOldId = needCopyNode.getId();
-            needCopyNode.setId(SnowFlakeUtil.getId());
+            Long needCopyNodeOldPKeyId = needCopyNode.getPKeyId();
             needCopyNode.setPKeyId(SnowFlakeUtil.getId());
+            needCopyNode.setId(needCopyNode.getPKeyId());
+            needCopyNode.setPId(needCopyNodeOldPKeyId);
+
             needCopyNode.setNodeName(toCopyNode.getNodeName());
             needCopyNode.setFullName(toCopyNode.getNodeName());
             needCopyNode.setPartitionCode(toCopyNode.getPartitionCode());
             needCopyNode.setCreateTime(new Date());
 
             Map<Long, Long> parentIdToId = new HashMap<>();
+            Map<Long,Long>pidToPkeyId=new HashMap<>();
             Map<Long, List<WbsTreeContract>> tabMap = needTabs.stream().collect(Collectors.groupingBy(WbsTreeContract::getParentId));
 
             //获取节点下所有表的key
@@ -2385,6 +2392,7 @@ public class InformationWriteQueryController extends BladeController {
                 if (obj != null) {
                     //构造节点
                     Long newParentId;
+                    Long newPid;
                     if (parentIdToId.size() > 0) {
                         //去数据源节点获取父级id对应的新id,设置成重设后的新的父级id
                         newParentId = parentIdToId.get(node.getParentId());
@@ -2392,9 +2400,22 @@ public class InformationWriteQueryController extends BladeController {
                         //根节点
                         newParentId = needCopyNode.getId();
                     }
+                    if(pidToPkeyId.size()>0){
+                        //去数据源节点获取父级id对应的新id,设置成重设后的新的父级Pid
+                        newPid = pidToPkeyId.get(node.getPId());
+                    }else{
+                        //根节点
+                        newPid = needCopyNode.getPKeyId();
+                    }
+
                     if (ObjectUtils.isEmpty(newParentId)) {
                         newParentId = needCopyNode.getId();
                     }
+                    if(ObjectUtils.isEmpty(newPid)){
+                        newPid=needCopyNode.getPKeyId();
+                    }
+
+
                     obj.setPKeyId(SnowFlakeUtil.getId());
 
                     if (ObjectUtil.isNotEmpty(node.getOldId())) {
@@ -2406,8 +2427,10 @@ public class InformationWriteQueryController extends BladeController {
                     Long id = SnowFlakeUtil.getId();
                     //数据源节点的老id与新的id的Map,作为下一级的节点的父级id的替换
                     parentIdToId.put(node.getId(), id);
+                    pidToPkeyId.put(node.getPId(),newPid);
                     //重设Id
                     obj.setId(id);
+                    obj.setPId(newPid);
                     obj.setParentId(newParentId);
                     obj.setCreateTime(new Date());
                     //获取当前复制的节点的sort
@@ -2430,6 +2453,7 @@ public class InformationWriteQueryController extends BladeController {
                                 Long oldPKeyId = needTab.getPKeyId();
                                 String tableName = needTab.getInitTableName();
                                 Long tabId = SnowFlakeUtil.getId();
+                                objTab.setPId(obj.getPKeyId());
                                 objTab.setId(tabId);
                                 objTab.setParentId(id);
                                 objTab.setPKeyId(SnowFlakeUtil.getId());
@@ -2479,9 +2503,12 @@ public class InformationWriteQueryController extends BladeController {
             if (isSameNode == 1) {
                 //同节点
                 needCopyNode.setParentId(needCopyNode.getParentId());
+                needCopyNode.setPId(needCopyNode.getPId());
             } else {
                 //跨节点
                 needCopyNode.setParentId(toCopyNode.getId());
+                needCopyNode.setPId(toCopyNode.getPKeyId());
+                needCopyNode.setAncestors(toCopyNode.getAncestors()+","+needCopyNode.getPId());
             }
             addNodeList.add(0, needCopyNode);
         }
@@ -3034,8 +3061,8 @@ public class InformationWriteQueryController extends BladeController {
             Map<String, WbsTreePrivate> nodeMap = new HashMap<>();
             Map<String, WbsTreeContract> nodeMapContract = new HashMap<>();
             selectedNodeList.forEach(half -> {
-                OldIdToNewIdMap.put(half.getId(), SnowFlakeUtil.getId());
-                nodeMap.put(half.getId().toString(), half);
+                OldIdToNewIdMap.put(half.getPKeyId(), SnowFlakeUtil.getId());
+                nodeMap.put(half.getPKeyId().toString(), half);
 
                 WbsTreeContract wbsTreeContract = BeanUtil.copyProperties(half, WbsTreeContract.class);
                 nodeMapContract.put(half.getId().toString(), wbsTreeContract);
@@ -3048,25 +3075,28 @@ public class InformationWriteQueryController extends BladeController {
                 BeanUtils.copyProperties(half, newData);
 
                 //重塑pKeyId、id和parentId
-                newData.setPKeyId(SnowFlakeUtil.getId());
+                newData.setPKeyId(OldIdToNewIdMap.get(half.getPKeyId()));
+                newData.setId(newData.getPKeyId());
                 if (new Integer("1").equals(half.getType())) {
-                    newData.setId(OldIdToNewIdMap.containsKey(half.getId()) ? OldIdToNewIdMap.get(half.getId()) : SnowFlakeUtil.getId());
+                    newData.setPId(OldIdToNewIdMap.containsKey(half.getPId()) ? OldIdToNewIdMap.get(half.getPId()) : treeContract.getPKeyId());
                 }
 
                 //设置父级id
                 boolean var = true;
                 if ("1".equals(vo.getSaveType())) {
                     //当前节点及其子节点操作
-                    if (OldIdToNewIdMap.containsKey(half.getParentId())) {
+                    if (OldIdToNewIdMap.containsKey(half.getPId())) {
                         //跨节点
-                        WbsTreePrivate wbsTreePrivate = nodeMap.get(half.getParentId() + "");
+                        WbsTreePrivate wbsTreePrivate = nodeMap.get(half.getPId() + "");
                         if (treeContract.getNodeType().equals(wbsTreePrivate.getNodeType()) && treeContract.getNodeName().equals(wbsTreePrivate.getNodeName())) {
                             newData.setParentId(treeContract.getId());
+                            newData.setPId(treeContract.getPKeyId());
                             var = false;
 
                             //从复制or新增节点开始操作-》选择新增节点,根节点会走到这里
                         } else if (treeContract.getNodeType().equals(wbsTreePrivate.getNodeType()) && ObjectUtil.isNotEmpty(treeContract.getOldId()) && treeContract.getOldId().equals(wbsTreePrivate.getId().toString())) {
                             newData.setParentId(treeContract.getId());
+                            newData.setPId(treeContract.getPKeyId());
                             var = false;
                         }
                     }
@@ -3083,11 +3113,7 @@ public class InformationWriteQueryController extends BladeController {
                         } else {
                             //非自定义节点
                             //同节点
-                            newData.setParentId(OldIdToNewIdMap.containsKey(half.getParentId())
-                                ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId())
-                                ||
-                                treeContract.getOldId().equals(half.getParentId().toString())
-                                ? treeContract.getId() : SnowFlakeUtil.getId());
+                            newData.setPId(OldIdToNewIdMap.containsKey(half.getPId())?OldIdToNewIdMap.get(half.getPId()):treeContract.getPKeyId());
                         }
                     }
 
@@ -3099,16 +3125,19 @@ public class InformationWriteQueryController extends BladeController {
                             if (("1").equals(node.getIsPeer())) {
                                 //同级
                                 newData.setParentId(treeContract.getParentId());
+                                newData.setPId(treeContract.getPKeyId());
 
                             } else if (("2").equals(node.getIsPeer())) {
                                 //下一级
                                 newData.setParentId(treeContract.getId());
+                                newData.setPId(treeContract.getPKeyId());
 
                             }
                         }
                     } else if (new Integer("2").equals(half.getType())) {
                         //表
                         newData.setParentId(OldIdToNewIdMap.containsKey(half.getParentId()) ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId()) || treeContract.getOldId().equals(half.getParentId().toString()) ? treeContract.getId() : SnowFlakeUtil.getId());
+                        newData.setPId(OldIdToNewIdMap.containsKey(half.getPId())?OldIdToNewIdMap.get(half.getPId()):half.getPId());
                     }
                 }
 
@@ -3134,24 +3163,18 @@ public class InformationWriteQueryController extends BladeController {
                 //设置节点名称
                 newData.setFullName(ObjectUtil.isNotEmpty(idAndNodeNameMaps.get(half.getId())) ? idAndNodeNameMaps.get(half.getId()) : half.getFullName());
 
-                /*//重塑父节点关联关系
-                String ancestors = newData.getAncestors();
+                //重塑父节点关联关系
+                String sql="Select ancestors from m_wbs_tree_contract where p_key_id="+newData.getPId();
+                String ancestors = jdbcTemplate.query(sql, (rs, rowNum) -> rs.getString(1))
+                    .stream()
+                    .findFirst()
+                    .orElse(null);
                 if (StringUtils.isNotEmpty(ancestors)) {
-                    //重组后的链表
-                    StringBuilder stringBuilder = new StringBuilder();
-                    //拆分重组
-                    String[] ancestorsArray = ancestors.split(",");
-                    for (String oldParentId : ancestorsArray) {
-                        if (StringUtils.isNotEmpty(oldParentId)) {
-                            //获取新的
-                            Long newParentId = OldIdToNewIdMap.get(Long.parseLong(oldParentId));
-                            //如果新的id为空,说明不变
-                            stringBuilder.append(",").append(newParentId == null ? oldParentId : newParentId);
-                        }
-                    }
                     //将新链表设置进对象中
-                    newData.setAncestors(stringBuilder.substring(1));
-                }*/
+                    newData.setAncestors(ancestors+","+newData.getPId());
+                }else {
+                    newData.setAncestors(null);
+                }
 
                 //设置到保存集合中
                 saveList.add(newData);
@@ -3211,6 +3234,15 @@ public class InformationWriteQueryController extends BladeController {
                 }
             }
         }
+        //设置ancestors
+        for (WbsTreeContract wbsTreeContract : saveList) {
+            if(wbsTreeContract.getAncestors()==null){
+                WbsTreeContract wbsTreeContract1 = saveList.stream().filter(s -> s.getPKeyId().equals(wbsTreeContract.getPId())).findFirst().orElse(null);
+                if(wbsTreeContract1!=null&&wbsTreeContract1.getAncestors()!=null){
+                    wbsTreeContract.setAncestors(wbsTreeContract1.getAncestors()+","+wbsTreeContract.getPId());
+                }
+            }
+        }
         R<Boolean> booleanR = this.saveOrCopyNodeTree(saveList, saveLedger, 2, treeContract);
 
         List<WbsTreeContract> nowTabs = saveList.stream().filter(f -> new Integer(2).equals(f.getType())).collect(Collectors.toList());
@@ -3980,10 +4012,10 @@ public class InformationWriteQueryController extends BladeController {
             if (parentNode.getNodeType() < parentNode.getNodeType()) {
                 throw new ServiceException("当前新增选择的节点类型不能大于父级节点类型");
             }
-
             WbsTreeContract obj = new WbsTreeContract();
             obj.setPKeyId(SnowFlakeUtil.getId());
-            obj.setId(SnowFlakeUtil.getId());
+            obj.setId(obj.getPKeyId());
+            obj.setPId(parentNode.getPKeyId());
             obj.setProjectId(parentNode.getProjectId());
             obj.setContractId(parentNode.getContractId());
             obj.setContractType(ObjectUtil.isNotEmpty(parentNode.getContractType()) ? parentNode.getContractType() : null);
@@ -3993,7 +4025,7 @@ public class InformationWriteQueryController extends BladeController {
             obj.setFullName(dto.getNodeName());
 
             if (ObjectUtil.isNotEmpty(parentNode.getNodeType())) {
-                if (parentNode.getParentId().equals(0L)) {
+                if (parentNode.getPId().equals(0L)) {
                     obj.setNodeType(1);
                 } else {
                     obj.setNodeType(parentNode.getNodeType().equals(6) ? 6 : dto.getNodeType());
@@ -4001,7 +4033,7 @@ public class InformationWriteQueryController extends BladeController {
             }
             obj.setPartitionCode(dto.getPartitionCode());
             obj.setParentId(parentNode.getId());
-            obj.setAncestors(parentNode.getAncestors() + "," + parentNode.getId());
+            obj.setAncestors(parentNode.getAncestors() + "," + parentNode.getPKeyId());
             obj.setType(1);
             obj.setStatus(1);
             obj.setIsDeleted(0);
@@ -4039,7 +4071,6 @@ public class InformationWriteQueryController extends BladeController {
                         obj.setIsClassifition(dto.getIsClassifition());
                         obj.setExcellentNum(dto.getExcellentNum());
                         obj.setUnitNum(dto.getUnitNum());
-
                     } else {
                         throw new ServiceException("标准分类或单元名称选择有误");
                     }

+ 2 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/IEntrustInfoService.java

@@ -75,4 +75,6 @@ public interface IEntrustInfoService extends BaseService<EntrustInfo> {
 	R delEntrustInfo(String ids);
 	//检查材料是否关联委托单
 	R checkSample(Long sampleId);
+
+    R annul(String id);
 }

+ 60 - 5
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/EntrustInfoServiceImpl.java

@@ -22,25 +22,32 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import org.springblade.business.entity.EntrustInfo;
+import org.springblade.business.entity.InformationQuery;
+import org.springblade.business.entity.Task;
+import org.springblade.business.entity.TaskParallel;
 import org.springblade.business.mapper.EntrustInfoMapper;
 import org.springblade.business.service.IEntrustInfoService;
+import org.springblade.business.service.IInformationQueryService;
 import org.springblade.business.vo.EntrustDataInfoVO;
 import org.springblade.business.vo.EntrustInfoVO;
 import org.springblade.business.vo.LoadDataInfoVO;
 import org.springblade.business.vo.TrialSampleDataInfoVO;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.feign.ExcelTabClient;
 import org.springblade.manager.feign.WbsTreePrivateClient;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 委托单信息表 服务实现类
@@ -56,6 +63,7 @@ public class EntrustInfoServiceImpl extends BaseServiceImpl<EntrustInfoMapper, E
 	private final JdbcTemplate jdbcTemplate;
 	private final WbsTreePrivateClient wbsTreePrivateClient;
 	private final EntrustInfoMapper entrustInfoMapper;
+    private final IInformationQueryService informationQueryService;
 
 	@Override
 	public IPage<EntrustInfoVO> selectEntrustInfoPage(IPage<EntrustInfoVO> page, EntrustInfoVO entrustInfo) {
@@ -148,7 +156,6 @@ public class EntrustInfoServiceImpl extends BaseServiceImpl<EntrustInfoMapper, E
 					}
 				}
 			}
-
 			if ((wb.get("dynamic_dict") + "").equals("501")) { //委托单--委托单编号
 				for(String dataEkey : dataInfo.keySet()){
 					if(dataEkey.indexOf(ekey)>=0){
@@ -158,7 +165,10 @@ public class EntrustInfoServiceImpl extends BaseServiceImpl<EntrustInfoMapper, E
 			}
 		}
 		entrustInfo.setEntrustName(wbsTreePrivate.getNodeName());
-		this.saveOrUpdate(entrustInfo);
+        if(dataInfo.containsKey("id")){
+            entrustInfo.setId(Long.parseLong(dataInfo.get("id").toString()));
+        }
+        this.saveOrUpdate(entrustInfo);
 		dataInfo.put("groupId",entrustInfo.getId());
 		dataInfo.put("pkeyId", dataInfo.getString("nodeErTreeId"));
 		excelTabClient.saveEntrustTabData(dataInfo);
@@ -204,4 +214,49 @@ public class EntrustInfoServiceImpl extends BaseServiceImpl<EntrustInfoMapper, E
 		}
 		return R.success("操作成功");
 	}
+
+    @Override
+    @Transactional
+    public R annul(String id) {
+        if (ObjectUtil.isEmpty(SecureUtil.getUserId()) || SecureUtil.getUserId() == -1L) {
+            throw new ServiceException("未获取到当前用户信息");
+        }
+        String[] ids = id.split(",");
+        List<String>formDataIds=new ArrayList<>();
+        if(ids.length>0){
+            for (String i : ids) {
+                EntrustInfo entrustInfo = entrustInfoMapper.selectById(Long.parseLong(i));
+                if(entrustInfo.getStatus()!=2&&entrustInfo.getStatus()!=3){
+                    throw new ServiceException("该委托单不能废除"+entrustInfo.getEntrustNo());
+                }
+                entrustInfo.setEntrustEPdf(null);
+                entrustInfo.setStatus(1);
+                entrustInfoMapper.updateById(entrustInfo);
+            }
+            List<InformationQuery> queryList = this.informationQueryService.list(Wrappers.<InformationQuery>lambdaQuery().in(InformationQuery::getId, Arrays.asList(ids)));
+            if (queryList.size() == 0) {
+                //试验填报数据
+                queryList = new ArrayList<>(this.informationQueryService.list(Wrappers.<InformationQuery>lambdaQuery().in(InformationQuery::getWbsId, Arrays.asList(ids))));
+                //重新绑定trialSelfInspectionRecordId使用map
+                //试验记录 和 委托单 ids重新赋值映射为数据源ids
+                formDataIds = queryList.stream().map(InformationQuery::getId).map(String::valueOf).collect(Collectors.toList());
+            }
+            if(formDataIds.size()>0){
+                for (String formDataId : formDataIds) {
+                    String sql="Select * from u_task where form_data_id="+formDataId +" and status!=3 and is_deleted=0";
+                    Task task = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(Task.class));
+                    if(task!=null){
+                        String updateTaskParallel="update u_task_parallel set status=3 where process_instance_id='" + task.getProcessInstanceId() + "'";
+                        String updateTask="update u_task set status=3 where id="+task.getId()+" and status!=3 and is_deleted=0";
+                        jdbcTemplate.update(updateTaskParallel);
+                        jdbcTemplate.update(updateTask);
+                    }
+                    String updateinformationQuery="update u_information_query set status=3,e_visa_pdf_url= null where id="+formDataId;
+                    jdbcTemplate.update(updateinformationQuery);
+                }
+            }
+
+        }
+        return R.success("操作成功");
+    }
 }

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -707,7 +707,7 @@ public class WbsTreePrivateController extends BladeController {
                 }
 
                 //表单数据
-                List<Map<String, Object>> bussDataInfoTrial = iExcelTabService.getBussDataInfoTrial(id, treePrivate.getPKeyId(), Long.parseLong(contractId),null,null,null);
+                List<Map<String, Object>> bussDataInfoTrial = iExcelTabService.getBussDataInfoTrial(id, treePrivate.getPKeyId(), Long.parseLong(contractId),null,null,null,null);
                 if (bussDataInfoTrial != null && bussDataInfoTrial.size() > 0) {
                     bussDataInfoTrial.get(0).remove("group_id");
                     treePrivate.setBussDataInfoTrial(bussDataInfoTrial.get(0));

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreePrivateClientImpl.java

@@ -218,7 +218,7 @@ public class WbsTreePrivateClientImpl implements WbsTreePrivateClient {
 
     @Override
     public List<Map<String, Object>> getTrialDataInfo(String pKeyId, Long id) {
-        return excelTabServiceImpl.getBussDataInfoTrial(id, Long.parseLong(pKeyId), null,null,null,null);
+        return excelTabServiceImpl.getBussDataInfoTrial(id, Long.parseLong(pKeyId), null,null,null,null,null);
     }
 
     @Override
@@ -307,7 +307,7 @@ public class WbsTreePrivateClientImpl implements WbsTreePrivateClient {
                 }
 
                 //表单数据
-                List<Map<String, Object>> bussDataInfoTrial = iExcelTabService.getBussDataInfoTrial(id, treePrivate.getPKeyId(), Long.parseLong(contractId),null,null,null);
+                List<Map<String, Object>> bussDataInfoTrial = iExcelTabService.getBussDataInfoTrial(id, treePrivate.getPKeyId(), Long.parseLong(contractId),null,null,null,null);
                 if (bussDataInfoTrial != null && bussDataInfoTrial.size() > 0) {
                     bussDataInfoTrial.get(0).remove("group_id");
                     treePrivate.setBussDataInfoTrial(bussDataInfoTrial.get(0));

+ 26 - 33
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -2688,43 +2688,36 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
         System.out.println("66666666666");
     }
     public void diGuiWbs(int i) {
-        List<Long>contractIds=new ArrayList<>();
-        contractIds.add(1750755552044064769L);
-        contractIds.add(1750756463776702465L);
-        contractIds.add(1750756833940807682L);
-        contractIds.add(1750757133997121538L);
-        contractIds.add(1750757280558686209L);
-        contractIds.add(1750757576810766337L);
         QueryWrapper<WbsTreeContract> wbsTreeContractQueryWrapper = new QueryWrapper<>();
         wbsTreeContractQueryWrapper.select("p_key_id","id","p_id","wbs_id","contract_id","parent_id","ancestors");
         wbsTreeContractQueryWrapper.eq("parent_id",0);
         wbsTreeContractQueryWrapper.eq("is_deleted",0);
-        wbsTreeContractQueryWrapper.in("contract_id",contractIds);
+        wbsTreeContractQueryWrapper.isNotNull("contract_id");
         wbsTreeContractQueryWrapper.isNotNull("wbs_id");
         List<WbsTreeContract> list = this.list(wbsTreeContractQueryWrapper);
         if(!list.isEmpty()){
             WbsTreeContract wbsTreeContract = list.get(i);
             //通过parentID,contractID,wbsId分组,映射map
-            Map<CompositeKey, List<WbsTreeContract>> map = findAllContract(wbsTreeContract).stream()
-                .collect(Collectors.groupingBy(
-                    item -> new CompositeKey(item.getParentId(),item.getContractId(),item.getWbsId())
-                ));
-            List<WbsTreeContract>updateList=new ArrayList<>();
-
-            //递归设置pid和ancestors
-            setPidAndAncestors(map,wbsTreeContract,updateList);
-            for (WbsTreeContract contract : updateList) {
-                UpdateWrapper wrapper=new UpdateWrapper();
-                wrapper.set("p_id",contract.getPId());
-                wrapper.set("ancestors",contract.getAncestors());
-                wrapper.eq("p_key_id",contract.getPKeyId());
-                this.update(wrapper);
-            }
+                    Map<CompositeKey, List<WbsTreeContract>> map = findAllContract(wbsTreeContract).stream()
+                        .collect(Collectors.groupingBy(
+                            item -> new CompositeKey(item.getParentId(),item.getContractId(),item.getWbsId())
+                        ));
+                    List<WbsTreeContract>updateList=new ArrayList<>();
+                    //递归设置pid和ancestors
+                    setPidAndAncestors(map,wbsTreeContract,updateList);
+                    System.out.println(Colour.RED.getCode()+updateList.size()+Colour.RESET.getCode());
+                    for (WbsTreeContract contract : updateList) {
+                        UpdateWrapper wrapper=new UpdateWrapper();
+                        wrapper.set("p_id",contract.getPId());
+                        wrapper.set("ancestors",contract.getAncestors());
+                        wrapper.eq("p_key_id",contract.getPKeyId());
+                        this.update(wrapper);
+                    }
         }
-        System.out.println(Colour.RED.getCode()+"第"+i+"次递归完成============================================================================================="+Colour.RESET.getCode());
+    }
+
 
 
-    }
     public  List<WbsTreeContract> findAllContract(WbsTreeContract wbsTreeContract){
         QueryWrapper<WbsTreeContract> wbsTreeContractQueryWrapper = new QueryWrapper<>();
         wbsTreeContractQueryWrapper.select("p_key_id","id","p_id","wbs_id","contract_id","parent_id","ancestors");
@@ -2739,14 +2732,14 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
         if(ObjectUtil.isNotEmpty(childrens)){
             for (WbsTreeContract children : childrens) {
                 if(children.getParentId().equals(wbsTreeContract.getId())){
-                    //设置祖级节点和pid
-                    String ancestors=wbsTreeContract.getAncestors()+",";
-                    ancestors=ancestors+wbsTreeContract.getPKeyId();
-                    children.setAncestors(ancestors);
-                    children.setPId(wbsTreeContract.getPKeyId());
-                    updateList.add(children);
-                    //递归调用自己继续将一个合同段的子节点设置完
-                    setPidAndAncestors(map,children,updateList);
+                        //设置祖级节点和pid
+                        String ancestors=wbsTreeContract.getAncestors()+",";
+                        ancestors=ancestors+wbsTreeContract.getPKeyId();
+                        children.setAncestors(ancestors);
+                        children.setPId(wbsTreeContract.getPKeyId());
+                        updateList.add(children);
+                        //递归调用自己继续将一个合同段的子节点设置完
+                        setPidAndAncestors(map,children,updateList);
                 }
             }
         }