Bläddra i källkod

元素识别相关

liuyc 2 år sedan
förälder
incheckning
427c8cc8e6

+ 10 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ExctabCell.java

@@ -66,6 +66,16 @@ public class ExctabCell implements Serializable {
      */
     private String xys;
 
+    /**
+     * 元素类型
+     */
+    private Integer textElementType;
+
+    /**
+     * 偏差值
+     */
+    private String textDeviation;
+
     /**
      * 是否已删除
      */

+ 10 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ExctabCellVO2.java

@@ -38,6 +38,16 @@ public class ExctabCellVO2 implements Serializable {
 	 */
 	private String xys;
 
+	/**
+	 * 元素类型
+	 */
+	private Integer textElementType;
+
+	/**
+	 * 偏差值
+	 */
+	private String textDeviation;
+
 	/**
 	 * 是否已删除
 	 */

+ 19 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExctabCellController.java

@@ -28,6 +28,7 @@ import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.manager.entity.WbsFormElement;
 import org.springblade.manager.unit.CopyUtil;
 import org.springblade.manager.vo.ExctabCellVO2;
 import org.springframework.web.bind.annotation.*;
@@ -106,6 +107,24 @@ public class ExctabCellController extends BladeController {
     @ApiOperationSupport(order = 5)
     @ApiOperation(value = "修改", notes = "传入exctabCell")
     public R update(@Valid @RequestBody ExctabCell exctabCell) {
+        //获取所有元素表ids
+        List<Long> ids = exctabCellService.getTabIds(exctabCell.getExctabId());
+        //获取所有元素表下的元素信息
+        List<WbsFormElement> infos = exctabCellService.getElementInfos(ids);
+        for (WbsFormElement info : infos) {
+            if (!exctabCell.getTextInfo().equals(info.getEName())) {
+                //名称不同就不同步修改,而是新增,关联元素表时新增
+                continue;
+            }
+            if (exctabCell.getTextInfo().equals(info.getEName())
+                    && (!exctabCell.getTextElementType().equals(info.getEType()) || !exctabCell.getTextDeviation().equals(info.getEAllowDeviation()))) {
+                //修改对应关联的元素表中的元素信息
+                info.setEType(exctabCell.getTextElementType());
+                info.setEAllowDeviation(exctabCell.getTextDeviation());
+                exctabCellService.updateElementInfo(info);
+            }
+        }
+        //修改基础信息
         return R.status(exctabCellService.updateById(exctabCell));
     }
 

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

@@ -334,7 +334,7 @@ public class WbsTreeController extends BladeController {
      * 查询公有wbs节点元素表与节点参数
      */
     @ApiOperationSupport(order = 12)
-    @ApiOperation(value = "查询节点元素表与节点参数", notes = "传入父节点id")
+    @ApiOperation(value = "查询公有wbs节点元素表与节点参数", notes = "传入父节点id")
     @RequestMapping(value = "/getNodeTabAndParam", method = RequestMethod.GET)
     public R<WbsNodeTabAndParamVO> getNodeTabAndParam(@ApiParam(value = "父节点id", required = true) @RequestParam String id) {
         WbsNodeTabAndParamVO rs = wbsTreeService.getNodeTabAndParam(id);

+ 3 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ExctabCellMapper.java

@@ -46,4 +46,7 @@ public interface ExctabCellMapper extends BaseMapper<ExctabCell> {
 	List<ExctabCellVO> getColSelect(String tabId);
 
 	Integer DeletExcelByTableId(String tabId);
+
+    List<Long> selectTabIdsByExcelId(Long id);
+
 }

+ 4 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ExctabCellMapper.xml

@@ -20,6 +20,10 @@
         select * from m_exctab_cell where is_deleted = 0 and exctab_id =#{tabId}
     </select>
 
+    <select id="selectTabIdsByExcelId" resultType="java.lang.Long">
+        SELECT wbs_tab_id FROM m_wbs_tab_relation_excel_tab WHERE excel_tab_id = #{id}
+    </select>
+
     <delete id="DeletExcelByTableId" >
         delete from m_exctab_cell where exctab_id =#{tabId}
     </delete>

+ 8 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IExctabCellService.java

@@ -19,6 +19,7 @@ package org.springblade.manager.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.manager.entity.ExctabCell;
 import org.springblade.manager.entity.LinkdataInfo;
+import org.springblade.manager.entity.WbsFormElement;
 import org.springblade.manager.vo.ExctabCellVO;
 import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -46,4 +47,11 @@ public interface IExctabCellService extends IService<ExctabCell> {
 	List<ExctabCellVO> getColSelect(String tabId);
 
 	Integer DeletExcelByTableId(String tabId);
+
+    List<Long> getTabIds(Long id);
+
+	List<WbsFormElement> getElementInfos(List<Long> ids);
+
+	Integer updateElementInfo(WbsFormElement info);
+
 }

+ 35 - 12
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExctabCellServiceImpl.java

@@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
 import org.springblade.manager.entity.ExctabCell;
 import org.springblade.manager.entity.LinkdataInfo;
+import org.springblade.manager.entity.WbsFormElement;
 import org.springblade.manager.vo.ExctabCellVO;
 import org.springblade.manager.mapper.ExctabCellMapper;
 import org.springblade.manager.service.IExctabCellService;
@@ -28,6 +29,7 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import javax.validation.constraints.NotEmpty;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -40,20 +42,41 @@ import java.util.List;
 @AllArgsConstructor
 public class ExctabCellServiceImpl extends ServiceImpl<ExctabCellMapper, ExctabCell> implements IExctabCellService {
 
+    private final WbsFormElementServiceImpl wbsFormElementService;
 
-	@Override
-	public IPage<ExctabCellVO> selectExctabCellPage(IPage<ExctabCellVO> page, ExctabCellVO exctabCell) {
-		return page.setRecords(baseMapper.selectExctabCellPage(page, exctabCell));
-	}
+    @Override
+    public IPage<ExctabCellVO> selectExctabCellPage(IPage<ExctabCellVO> page, ExctabCellVO exctabCell) {
+        return page.setRecords(baseMapper.selectExctabCellPage(page, exctabCell));
+    }
 
-	@Override
-	public List<ExctabCellVO> getColSelect(String tabId) {
-		return baseMapper.getColSelect(tabId);
-	}
+    @Override
+    public List<ExctabCellVO> getColSelect(String tabId) {
+        return baseMapper.getColSelect(tabId);
+    }
 
-	@Override
-	public Integer DeletExcelByTableId(String tabId) {
-		return baseMapper.DeletExcelByTableId(tabId);
-	}
+    @Override
+    public Integer DeletExcelByTableId(String tabId) {
+        return baseMapper.DeletExcelByTableId(tabId);
+    }
+
+    @Override
+    public List<Long> getTabIds(Long id) {
+        return baseMapper.selectTabIdsByExcelId(id);
+    }
+
+    @Override
+    public List<WbsFormElement> getElementInfos(List<Long> ids) {
+        List<WbsFormElement> result = new ArrayList<>();
+        for (Long id : ids) {
+            List<WbsFormElement> wbsFormElements = wbsFormElementService.selectElementListByFid(String.valueOf(id));
+            result.addAll(wbsFormElements);
+        }
+        return result;
+    }
+
+    @Override
+    public Integer updateElementInfo(WbsFormElement info) {
+        return wbsFormElementService.updateById(info) ? 1 : -1;
+    }
 
 }

+ 8 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -400,8 +400,14 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         WbsNodeTabAndParamVO resultList = new WbsNodeTabAndParamVO();
         //获取该节点下所有表单
         List<WbsNodeTableVO> list = baseMapper.selectNodeTabAndParamList(id, wbsId, projectId);
-        //获取节点参数 id=表单parentId=节点id; id重复,后期可能会出问题,此处建议使用pKeyId与参数的wbsId做绑定;
-        List<WbsParam> paramList = wbsParamServiceImpl.findByNodeId(Long.valueOf(id));
+        //获取节点信息
+        WbsTreePrivate nodeInfo = baseMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
+                .eq(WbsTreePrivate::getId, id)
+                .eq(WbsTreePrivate::getWbsId, wbsId)
+                .eq(WbsTreePrivate::getProjectId, projectId)
+        );
+        //获取节点参数,此处使用pKeyId与参数表的wbsId做的绑定才能确定唯一;
+        List<WbsParam> paramList = wbsParamServiceImpl.findByNodeId(nodeInfo.getPKeyId());
         resultList.setTabData(list);
         resultList.setParamData(paramList);
         return resultList;