Forráskód Böngészése

质检-表单设置
1、添加节点不执行公式

LHB 1 hete
szülő
commit
4dfc263028

+ 33 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/FormulaReferenceDTO.java

@@ -0,0 +1,33 @@
+package org.springblade.manager.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 公式应用设置
+ * @author LHB
+ */
+@Data
+public class FormulaReferenceDTO {
+    @ApiModelProperty("表单pKeyId")
+    private Long pKeyId;
+
+    @ApiModelProperty(value = "节点pKeyId",required = true)
+    @NotNull(message = "节点pKeyId不能为空")
+    private Long pId;
+
+    @ApiModelProperty(value = "选择表格的元素key",required = true)
+    @NotBlank(message = "选择表格的元素key不能为空")
+    private String key;
+
+    @ApiModelProperty(value = "表单元素表名称",required = true)
+    @NotBlank(message = "表单元素表名称不能为空")
+    private String initTableName;
+
+    @ApiModelProperty(value = "状态 0禁用 1启用",required = true)
+    @NotNull(message = "状态不能为空")
+    private Integer status;
+}

+ 5 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContractExtend.java

@@ -64,4 +64,9 @@ public class WbsTreeContractExtend {
      *  修改人
      */
     private Long updateUser;
+
+    /**
+     * 哪些元素执行公式
+     */
+    private String formulaConfig;
 }

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

@@ -41,6 +41,7 @@ import org.springblade.core.tool.utils.CollectionUtil;
 import org.springblade.core.tool.utils.IoUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.core.tool.utils.ResourceUtil;
+import org.springblade.manager.dto.FormulaReferenceDTO;
 import org.springblade.manager.dto.MoveNodeDTO;
 import org.springblade.manager.dto.TableSortDTO;
 import org.springblade.manager.dto.WbsTreeContractDTO2;
@@ -1217,5 +1218,11 @@ public class WbsTreeContractController extends BladeController {
     }
 
 
-
+    @PostMapping("/setFormulaReference")
+    @ApiOperation(value = "公式引用")
+    @ApiOperationSupport(order = 33)
+    public R setFormulaReference(@RequestBody FormulaReferenceDTO dto) {
+        iWbsTreeContractService.setFormulaReference(dto);
+        return R.success("成功");
+    }
 }

+ 3 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeContractService.java

@@ -4,10 +4,7 @@ import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.springblade.business.dto.EKeyDto;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.core.tool.api.R;
-import org.springblade.manager.dto.MoveNodeDTO;
-import org.springblade.manager.dto.RangeInfo;
-import org.springblade.manager.dto.WbsTreeContractDTO;
-import org.springblade.manager.dto.WbsTreeContractDTO2;
+import org.springblade.manager.dto.*;
 import org.springblade.manager.entity.ContractRelationJlyz;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.entity.WbsTreePrivate;
@@ -120,4 +117,6 @@ public interface IWbsTreeContractService extends BaseService<WbsTreeContract> {
     List<QualityData> qualityDataAcquisition(String projectId, String sectionId, String codesId);
 
     String isExistOssUrl(Long pkeyId,String key);
+
+    void setFormulaReference(FormulaReferenceDTO dto);
 }

+ 46 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -69,6 +69,7 @@ import org.springblade.manager.mapper.*;
 import org.springblade.manager.service.INodeBaseInfoService;
 import org.springblade.manager.service.ITableFileService;
 import org.springblade.manager.service.IWbsTreeContractService;
+import org.springblade.manager.service.WbsTreeContractExtendService;
 import org.springblade.manager.util.DataStructureFormatUtils;
 import org.springblade.manager.utils.CompositeKey;
 import org.springblade.manager.vo.*;
@@ -139,6 +140,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
     private final TrialCyAccessoriesClient trialCyAccessoriesClient;
     private final WbsTreeContractStatisticsClient wbsTreeContractStatisticsClient;
     private final FormulaDataBlockMapper formulaDataBlockMapper;
+    private final WbsTreeContractExtendService wbsTreeContractExtendService;
 
 
 
@@ -6109,4 +6111,48 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
         // 如果共同部分都相同,长度短的排在前面(父级在子级前面)
         return Integer.compare(arr1.length, arr2.length);
     }
+
+    @Override
+    public void setFormulaReference(FormulaReferenceDTO dto) {
+        try {
+            dto.setKey(dto.getKey().split("__")[0]);
+            //查询父节点
+            WbsTreeContract parentNode = wbsTreeContractMapper.selectById(dto.getPId());
+            //查询父节点的扩展信息
+            WbsTreeContractExtend byId = wbsTreeContractExtendService.getById(dto.getPKeyId());
+
+            if(byId != null){
+                String formulaConfig = byId.getFormulaConfig();
+                if(StringUtils.isNotEmpty(formulaConfig)){
+                    List<String> list = Arrays.asList(formulaConfig.split(","));
+                    HashSet<String> strings = new HashSet<>(list);
+                    if(dto.getStatus() == 1){
+                        strings.remove(dto.getInitTableName() + ":" + dto.getKey());
+                    }else{
+                        strings.add(dto.getInitTableName() + ":" + dto.getKey());
+                    }
+                    byId.setFormulaConfig(StringUtils.join(strings, ","));
+                }else{
+                    if(dto.getStatus() == 0){
+                        byId.setFormulaConfig(dto.getInitTableName() + ":" + dto.getKey());
+                    }
+                }
+                wbsTreeContractExtendService.updateById(byId);
+            }else{
+                if(dto.getStatus() == 0){
+                    WbsTreeContractExtend wbsTreeContractExtend = new WbsTreeContractExtend();
+                    wbsTreeContractExtend.setPKeyId(parentNode.getPKeyId());
+                    wbsTreeContractExtend.setContractId(Long.valueOf(parentNode.getContractId()));
+                    wbsTreeContractExtend.setType(null);
+                    wbsTreeContractExtend.setIsSync(0);
+                    wbsTreeContractExtend.setAncestors(parentNode.getAncestorsPId());
+                    wbsTreeContractExtend.setFormulaConfig(dto.getInitTableName() + ":" + dto.getKey());
+                    wbsTreeContractExtendService.save(wbsTreeContractExtend);
+                }
+            }
+        } catch (NumberFormatException e) {
+            e.printStackTrace();
+            throw new RuntimeException("失败");
+        }
+    }
 }