Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
B
BasicAPI
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杜科
BasicAPI
Commits
c9003773
Commit
c9003773
authored
May 16, 2023
by
hanson.yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cadPro 接口优化
parent
d36c0aeb
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
73 additions
and
117 deletions
+73
-117
CADProSetting.json
codebase/com/yonde/config/cadpro/CADProSetting.json
+4
-4
CatiaIntegrationAttrMapping.json
.../com/yonde/config/cadpro/CatiaIntegrationAttrMapping.json
+8
-0
AbstractCADProChecker.java
src/com/yonde/cadpro/checker/AbstractCADProChecker.java
+5
-4
NewOpenChecker.java
src/com/yonde/cadpro/checker/impl/NewOpenChecker.java
+4
-5
CADProController.java
src/com/yonde/cadpro/controller/CADProController.java
+9
-18
ClientModelPathRuleFactory.java
...e/cadpro/download/factroy/ClientModelPathRuleFactory.java
+2
-1
CadCheckService.java
src/com/yonde/cadpro/service/CadCheckService.java
+5
-67
ModelService.java
src/com/yonde/cadpro/service/ModelService.java
+0
-7
CADProUtil.java
src/com/yonde/cadpro/util/CADProUtil.java
+36
-11
No files found.
codebase/com/yonde/config/cadpro/CADProSetting.json
View file @
c9003773
[
[
{
{
"comment"
:
"
GACE UAT
Server"
,
"comment"
:
"
615
Server"
,
"serverAddress"
:
"http://192.168.1.240/Windchill/extRest/"
,
"serverAddress"
:
"http://192.168.1.240/Windchill/extRest/"
,
"workspace"
:
"D:
\\
CA
DProTestWorkspace
"
,
"workspace"
:
"D:
\\
CA
TIA_WORK
"
,
"type"
:
0
,
"type"
:
0
,
"sort"
:
1
,
"sort"
:
1
,
"code"
:
"77d6cf9e-6527-4f38-ae8e-87bd744e405d"
,
"code"
:
"77d6cf9e-6527-4f38-ae8e-87bd744e405d"
,
...
@@ -15,9 +15,9 @@
...
@@ -15,9 +15,9 @@
}
}
},
},
{
{
"comment"
:
"
GACE Prod
Server"
,
"comment"
:
"
615
Server"
,
"serverAddress"
:
"http://192.168.1.240/Windchill/extRest/"
,
"serverAddress"
:
"http://192.168.1.240/Windchill/extRest/"
,
"workspace"
:
"D:
\\
CA
DProWorkspace
"
,
"workspace"
:
"D:
\\
CA
TIA_WORK
"
,
"type"
:
0
,
"type"
:
0
,
"sort"
:
2
,
"sort"
:
2
,
"code"
:
"1111a947-b018-4c24-9f32-24c9fab5d37e"
,
"code"
:
"1111a947-b018-4c24-9f32-24c9fab5d37e"
,
...
...
codebase/com/yonde/config/cadpro/CatiaIntegrationAttrMapping.json
0 → 100644
View file @
c9003773
{
"产品代号"
:
"productCode"
,
"材料"
:
"material"
,
"重量"
:
"singleWeight"
,
"重量代码"
:
"weightCode"
,
"物品码"
:
"materialCode"
,
"零部件类型"
:
"part_type"
}
\ No newline at end of file
src/com/yonde/cadpro/checker/AbstractCADProChecker.java
View file @
c9003773
package
com
.
yonde
.
cadpro
.
checker
;
package
com
.
yonde
.
cadpro
.
checker
;
import
com.yonde.cadpro.CADProConstants
;
import
com.yonde.cadpro.CADProConstants
;
import
com.yonde.common.CommonUtil
;
import
com.yonde.common.CommonUtil
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
...
@@ -59,10 +60,10 @@ public abstract class AbstractCADProChecker implements CADProChecker {
...
@@ -59,10 +60,10 @@ public abstract class AbstractCADProChecker implements CADProChecker {
throw
new
WTException
(
"选中节点获取对象异常,请确认:"
throw
new
WTException
(
"选中节点获取对象异常,请确认:"
+
StringUtils
.
join
(
invalidIds
,
CADProConstants
.
COMMA
));
+
StringUtils
.
join
(
invalidIds
,
CADProConstants
.
COMMA
));
}
}
if
(
invalidTypeIds
.
size
()
>
0
)
{
//
if (invalidTypeIds.size() > 0) {
throw
new
WTException
(
"选中节点对象类型非法,请确认:"
//
throw new WTException("选中节点对象类型非法,请确认:"
+
StringUtils
.
join
(
invalidTypeIds
,
CADProConstants
.
COMMA
));
//
+ StringUtils.join(invalidTypeIds, CADProConstants.COMMA));
}
//
}
if
(
selectedNodes
.
size
()
==
0
)
{
if
(
selectedNodes
.
size
()
==
0
)
{
throw
new
WTException
(
"获取选中节点异常,请确认!"
);
throw
new
WTException
(
"获取选中节点异常,请确认!"
);
...
...
src/com/yonde/cadpro/checker/impl/NewOpenChecker.java
View file @
c9003773
...
@@ -3,7 +3,6 @@ package com.yonde.cadpro.checker.impl;
...
@@ -3,7 +3,6 @@ package com.yonde.cadpro.checker.impl;
import
com.yonde.cadpro.CADProConstants
;
import
com.yonde.cadpro.CADProConstants
;
import
com.yonde.cadpro.checker.AbstractCADProChecker
;
import
com.yonde.cadpro.checker.AbstractCADProChecker
;
import
com.yonde.cadpro.config.CADProConfigPropertiesUtil
;
import
com.yonde.cadpro.config.CADProConfigPropertiesUtil
;
import
com.yonde.cadpro.util.CADProUtil
;
import
com.yonde.cadpro.util.EPMUtil
;
import
com.yonde.cadpro.util.EPMUtil
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.log4j.Logger
;
import
org.apache.log4j.Logger
;
...
@@ -46,10 +45,10 @@ public class NewOpenChecker extends AbstractCADProChecker {
...
@@ -46,10 +45,10 @@ public class NewOpenChecker extends AbstractCADProChecker {
}
}
//类型校验
//类型校验
String
typeDisplay
=
CADProUtil
.
getPartDisplayType
(
wto
);
//
String typeDisplay = CADProUtil.getPartDisplayType(wto);
if
(!
allowTypes
.
contains
(
typeDisplay
))
{
//
if (!allowTypes.contains(typeDisplay)) {
invalidTypeObjs
.
add
(
wto
.
getDisplayIdentity
().
toString
());
//
invalidTypeObjs.add(wto.getDisplayIdentity().toString());
}
//
}
}
}
//if (invalidTypeObjs.size() > 0) {
//if (invalidTypeObjs.size() > 0) {
...
...
src/com/yonde/cadpro/controller/CADProController.java
View file @
c9003773
...
@@ -4,9 +4,12 @@ import com.yonde.basedata.entity.api.ApiResult;
...
@@ -4,9 +4,12 @@ import com.yonde.basedata.entity.api.ApiResult;
import
com.yonde.basedata.search.SearchQueryCondition
;
import
com.yonde.basedata.search.SearchQueryCondition
;
import
com.yonde.cadpro.bean.*
;
import
com.yonde.cadpro.bean.*
;
import
com.yonde.cadpro.config.CADProConfigPropertiesUtil
;
import
com.yonde.cadpro.config.CADProConfigPropertiesUtil
;
import
com.yonde.cadpro.config.CADProSettingTypeEnum
;
import
com.yonde.cadpro.config.DxCADProSetting
;
import
com.yonde.cadpro.service.CADProService
;
import
com.yonde.cadpro.service.CADProService
;
import
com.yonde.cadpro.service.CadCheckService
;
import
com.yonde.cadpro.service.CadCheckService
;
import
com.yonde.cadpro.util.Base64Util
;
import
com.yonde.cadpro.util.Base64Util
;
import
com.yonde.cadpro.util.CADProUtil
;
import
com.yonde.context.vo.SelectOption
;
import
com.yonde.context.vo.SelectOption
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
wt.util.WTException
;
import
wt.util.WTException
;
...
@@ -164,24 +167,12 @@ public class CADProController {
...
@@ -164,24 +167,12 @@ public class CADProController {
public
ApiResult
<
List
<
SelectOption
>>
bomViewOptions
()
throws
Exception
{
public
ApiResult
<
List
<
SelectOption
>>
bomViewOptions
()
throws
Exception
{
return
ApiResult
.
ok
(
CADProConfigPropertiesUtil
.
getBOMViews
(
SelectOption
.
class
),
"success"
);
return
ApiResult
.
ok
(
CADProConfigPropertiesUtil
.
getBOMViews
(
SelectOption
.
class
),
"success"
);
}
}
//
//@GetMapping("/config/cadProSetting")
@GetMapping
(
"/config/cadProSetting"
)
//public ApiResult<List<DxCADProSetting>> getCADProSettings(@RequestParam String settingType) {
public
ApiResult
<
List
<
DxCADProSetting
>>
getCADProSettings
(
@RequestParam
String
settingType
)
{
// try {
CADProSettingTypeEnum
.
valueOf
(
settingType
);
// log.debug("getCADProSettings settingType : " + settingType);
return
ApiResult
.
ok
(
CADProUtil
.
getCADProSettings
(
settingType
),
"查询成功"
);
// try {
}
// CADProSettingTypeEnum.valueOf(settingType);
// } catch (Exception e) {
// log.error("getCADProSettings CADProSettingTypeEnum error...", e);
// throw new WTException("配置类型非法,请确认!");
// }
// List<DxCADProSetting> result = CADProUtil.getCADProSettings(settingType);
// return ApiResult.ok(result, "查询成功");
// } catch (Exception e) {
// log.error("getCADProSettings error...", e);
// return ExceptionUtil.constructErrorAPIResult(e);
// }
//}
//
//
//
//
...
...
src/com/yonde/cadpro/download/factroy/ClientModelPathRuleFactory.java
View file @
c9003773
...
@@ -6,6 +6,7 @@ import com.yonde.cadpro.download.ClientModelPathRule;
...
@@ -6,6 +6,7 @@ import com.yonde.cadpro.download.ClientModelPathRule;
import
com.yonde.cadpro.download.impl.ClientModelPathAsConfigRule
;
import
com.yonde.cadpro.download.impl.ClientModelPathAsConfigRule
;
import
com.yonde.cadpro.download.impl.ClientModelPathAsDSRule
;
import
com.yonde.cadpro.download.impl.ClientModelPathAsDSRule
;
import
com.yonde.cadpro.download.impl.ClientModelPathAsParentRule
;
import
com.yonde.cadpro.download.impl.ClientModelPathAsParentRule
;
import
com.yonde.cadpro.download.impl.CommonPathAsConfigRule
;
import
com.yonde.common.util.TypeAttrUtil
;
import
com.yonde.common.util.TypeAttrUtil
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.log4j.Logger
;
import
org.apache.log4j.Logger
;
...
@@ -41,7 +42,7 @@ public class ClientModelPathRuleFactory {
...
@@ -41,7 +42,7 @@ public class ClientModelPathRuleFactory {
return
new
ClientModelPathAsDSRule
(
part
);
return
new
ClientModelPathAsDSRule
(
part
);
}
else
{
}
else
{
//throw new WTException("此操作场景暂不支持");
//throw new WTException("此操作场景暂不支持");
return
n
ull
;
return
n
ew
CommonPathAsConfigRule
()
;
}
}
}
}
}
}
...
...
src/com/yonde/cadpro/service/CadCheckService.java
View file @
c9003773
...
@@ -8,10 +8,7 @@ import com.ptc.windchill.enterprise.copy.server.CoreMetaUtility;
...
@@ -8,10 +8,7 @@ import com.ptc.windchill.enterprise.copy.server.CoreMetaUtility;
import
com.yonde.cadpro.CADProConstants
;
import
com.yonde.cadpro.CADProConstants
;
import
com.yonde.cadpro.bean.*
;
import
com.yonde.cadpro.bean.*
;
import
com.yonde.cadpro.config.CatiaClientConfig
;
import
com.yonde.cadpro.config.CatiaClientConfig
;
import
com.yonde.cadpro.util.CadPartUtil
;
import
com.yonde.cadpro.util.*
;
import
com.yonde.cadpro.util.ContentUtil
;
import
com.yonde.cadpro.util.EPMUtil
;
import
com.yonde.cadpro.util.SearchUtil
;
import
com.yonde.common.CommonUtil
;
import
com.yonde.common.CommonUtil
;
import
com.yonde.common.IBAUtil
;
import
com.yonde.common.IBAUtil
;
import
com.yonde.common.PartUtil
;
import
com.yonde.common.PartUtil
;
...
@@ -67,42 +64,6 @@ import java.util.*;
...
@@ -67,42 +64,6 @@ import java.util.*;
@Service
@Service
public
class
CadCheckService
implements
RemoteAccess
{
public
class
CadCheckService
implements
RemoteAccess
{
public
static
Map
attrMapping
;
static
{
attrMapping
=
new
HashMap
();
attrMapping
.
put
(
"GA_A001"
,
"model"
);
attrMapping
.
put
(
"GA_A003"
,
"equipmentModel"
);
attrMapping
.
put
(
"GA_A004"
,
"part_type"
);
attrMapping
.
put
(
"GA_A005"
,
"weightCode"
);
attrMapping
.
put
(
"GA_A006"
,
"singleWeight"
);
attrMapping
.
put
(
"GA_A007"
,
"processMethod"
);
attrMapping
.
put
(
"GA_A008"
,
"featureKind"
);
attrMapping
.
put
(
"GA_A009"
,
"interchange"
);
attrMapping
.
put
(
"GA_A010"
,
"serviceLife"
);
attrMapping
.
put
(
"GA_A011"
,
"size"
);
attrMapping
.
put
(
"GA_A012"
,
"strength"
);
attrMapping
.
put
(
"GA_A013"
,
"materialCode"
);
attrMapping
.
put
(
"GA_A014"
,
"supplierCode"
);
attrMapping
.
put
(
"GA_A015"
,
"extSource"
);
attrMapping
.
put
(
"GA_A016"
,
"SupplierEquipNumber"
);
attrMapping
.
put
(
"GA_A017"
,
"SupplierEquipNumVersion"
);
attrMapping
.
put
(
"GA_A018"
,
"techAggreeNo"
);
attrMapping
.
put
(
"GA_A019"
,
"contractNo"
);
attrMapping
.
put
(
"GA_A020"
,
"EquipStatus"
);
attrMapping
.
put
(
"GA_A021"
,
"AirworthinessStatus"
);
attrMapping
.
put
(
"GA_A022"
,
"ApplyCTSOTSOStandard"
);
attrMapping
.
put
(
"GA_A023"
,
"InstallationLocation"
);
attrMapping
.
put
(
"GA_B001"
,
"isSymmetry"
);
attrMapping
.
put
(
"GA_B002"
,
"symmetry"
);
attrMapping
.
put
(
"表面处理"
,
"surfaceTreatment"
);
attrMapping
.
put
(
"材料"
,
"material"
);
attrMapping
.
put
(
"重量"
,
"singleWeight"
);
attrMapping
.
put
(
"重量代码"
,
"weightCode"
);
attrMapping
.
put
(
"物品码"
,
"materialCode"
);
attrMapping
.
put
(
"零部件类型"
,
"part_type"
);
}
@Autowired
@Autowired
ModelService
modelService
;
ModelService
modelService
;
...
@@ -315,6 +276,7 @@ public class CadCheckService implements RemoteAccess {
...
@@ -315,6 +276,7 @@ public class CadCheckService implements RemoteAccess {
enforced
=
SessionServerHelper
.
manager
.
setAccessEnforced
(
false
);
enforced
=
SessionServerHelper
.
manager
.
setAccessEnforced
(
false
);
//记录已处理模型编号
//记录已处理模型编号
Set
<
String
>
processedModelNumbers
=
new
HashSet
<
String
>();
Set
<
String
>
processedModelNumbers
=
new
HashSet
<
String
>();
Map
<
String
,
String
>
attrMapping
=
CADProUtil
.
getCADProIbaMapping
();
//IBA属性映射关系<MBDAttribute, IBAKey>
//IBA属性映射关系<MBDAttribute, IBAKey>
if
(
attrMapping
==
null
)
{
if
(
attrMapping
==
null
)
{
attrMapping
=
new
HashMap
<
String
,
String
>();
attrMapping
=
new
HashMap
<
String
,
String
>();
...
@@ -424,8 +386,7 @@ public class CadCheckService implements RemoteAccess {
...
@@ -424,8 +386,7 @@ public class CadCheckService implements RemoteAccess {
}
}
String
partTypeDisplay
=
StringUtils
.
trimToEmpty
(
entry
.
getValue
());
String
partTypeDisplay
=
StringUtils
.
trimToEmpty
(
entry
.
getValue
());
System
.
out
.
println
(
" partTypeDisplay : "
+
partTypeDisplay
);
System
.
out
.
println
(
" partTypeDisplay : "
+
partTypeDisplay
);
DxPartModelBomVo
partModelBOMVo
=
DxPartModelBomVo
.
newDxPartModelBomVo
(
epm
,
DxPartModelBomVo
partModelBOMVo
=
DxPartModelBomVo
.
newDxPartModelBomVo
(
epm
,
partTypeDisplay
,
true
);
partTypeDisplay
,
true
);
System
.
out
.
println
(
"partModelBOMVo by epm ["
+
epm
+
"] completed..."
);
System
.
out
.
println
(
"partModelBOMVo by epm ["
+
epm
+
"] completed..."
);
BatchResult
batchResult
=
BatchResult
.
successBatchResult
(
partModelBOMVo
);
BatchResult
batchResult
=
BatchResult
.
successBatchResult
(
partModelBOMVo
);
if
(
batchResult
==
null
)
{
if
(
batchResult
==
null
)
{
...
@@ -450,22 +411,6 @@ public class CadCheckService implements RemoteAccess {
...
@@ -450,22 +411,6 @@ public class CadCheckService implements RemoteAccess {
}
}
}
}
/**
* 处理检出或新建模型的检入
* 1. 零部件、数模的创建
* 2. 零部件、数模的属性更新
* 3. 零部件、数模的关联关系
* 4. 零部件、数模的BOMUses关系记录
*
* @param modelBaseInfo
* @param processedModelNumbers
* @param attrMapping
* @param drawingInfos
* @param bomUsesMap
* @param partEPMMap
* @throws Exception
*/
/**
/**
* 处理检出或新建模型的检入
* 处理检出或新建模型的检入
* 1. 零部件、数模的创建
* 1. 零部件、数模的创建
...
@@ -487,14 +432,12 @@ public class CadCheckService implements RemoteAccess {
...
@@ -487,14 +432,12 @@ public class CadCheckService implements RemoteAccess {
Map
<
WTPart
,
List
<
ModelBaseInfo
>>
bomUsesMap
,
Map
<
WTPart
,
EPMDocument
>
partEPMMap
)
Map
<
WTPart
,
List
<
ModelBaseInfo
>>
bomUsesMap
,
Map
<
WTPart
,
EPMDocument
>
partEPMMap
)
throws
Exception
{
throws
Exception
{
String
modelNumber
=
modelBaseInfo
.
getNumber
();
String
modelNumber
=
modelBaseInfo
.
getNumber
();
//todo 待确认
String
modelName
=
modelBaseInfo
.
getName
();
String
modelName
=
modelNumber
+
"cad"
;
String
modelFileName
=
modelBaseInfo
.
getModelFileName
();
String
modelFileName
=
modelBaseInfo
.
getModelFileName
();
String
modelFileUri
=
modelBaseInfo
.
getModelFileUri
();
String
modelFileUri
=
modelBaseInfo
.
getModelFileUri
();
Boolean
isDrawing
=
modelBaseInfo
.
getIsDrawing
();
Boolean
isDrawing
=
modelBaseInfo
.
getIsDrawing
();
String
modelThumbnailUri
=
modelBaseInfo
.
getModelThumbnailUri
();
String
modelThumbnailUri
=
modelBaseInfo
.
getModelThumbnailUri
();
//todo 先创建part
WTPart
epmPart
=
null
;
WTPart
epmPart
=
null
;
QuerySpec
qsPart
=
new
QuerySpec
(
WTPart
.
class
);
QuerySpec
qsPart
=
new
QuerySpec
(
WTPart
.
class
);
qsPart
.
appendWhere
(
new
SearchCondition
(
WTPart
.
class
,
WTPart
.
NUMBER
,
SearchCondition
.
EQUAL
,
modelNumber
),
new
int
[]{
0
});
qsPart
.
appendWhere
(
new
SearchCondition
(
WTPart
.
class
,
WTPart
.
NUMBER
,
SearchCondition
.
EQUAL
,
modelNumber
),
new
int
[]{
0
});
...
@@ -538,7 +481,7 @@ public class CadCheckService implements RemoteAccess {
...
@@ -538,7 +481,7 @@ public class CadCheckService implements RemoteAccess {
boolean
isDSPart
=
false
;
boolean
isDSPart
=
false
;
//判断是否为二维图,三维图处理完成后统一处理
//判断是否为
isDrawing
二维图,三维图处理完成后统一处理
if
(
isDrawing
)
{
if
(
isDrawing
)
{
System
.
out
.
println
(
"current model info is Drawing, processing after the all 3D model"
);
System
.
out
.
println
(
"current model info is Drawing, processing after the all 3D model"
);
List
<
ModelBaseInfo
>
tempChildInfos
=
modelBaseInfo
.
getChildren
();
List
<
ModelBaseInfo
>
tempChildInfos
=
modelBaseInfo
.
getChildren
();
...
@@ -651,11 +594,6 @@ public class CadCheckService implements RemoteAccess {
...
@@ -651,11 +594,6 @@ public class CadCheckService implements RemoteAccess {
}
}
System
.
out
.
println
(
"epm["
+
epm
.
getDisplayIdentifier
()
+
"]"
);
System
.
out
.
println
(
"epm["
+
epm
.
getDisplayIdentifier
()
+
"]"
);
//处理EPM是新建或者检出,检查Part是否存在
//Part 不存在,新建
//Part 存在,检出
//检查EPM是否已关联Part
if
(
wtPart
!=
null
)
{
if
(
wtPart
!=
null
)
{
//标准件忽略更新
//标准件忽略更新
if
(
isStandardPart
)
{
if
(
isStandardPart
)
{
...
...
src/com/yonde/cadpro/service/ModelService.java
View file @
c9003773
...
@@ -3530,13 +3530,6 @@ public class ModelService {
...
@@ -3530,13 +3530,6 @@ public class ModelService {
System
.
out
.
println
(
"get Container error by ["
+
epm3D
+
"]"
+
e
);
System
.
out
.
println
(
"get Container error by ["
+
epm3D
+
"]"
+
e
);
}
}
// if (inputContainer == null && isSupplierOP) {
// inputContainer = supplierContainer;
// }
//默认型号为AG600
// checkModelAttr(attsValueMap);
//创建EPM epmDocumentType_Drawing
//创建EPM epmDocumentType_Drawing
String
epmDocumentType
=
CatiaClientConfig
.
epmDocumentType_Drawing
;
//二维图
String
epmDocumentType
=
CatiaClientConfig
.
epmDocumentType_Drawing
;
//二维图
epm
=
EPMUtil
.
createEPMDoc
(
modelNumber
,
modelName
,
modelFileName
,
epmDocumentType
,
epm
=
EPMUtil
.
createEPMDoc
(
modelNumber
,
modelName
,
modelFileName
,
epmDocumentType
,
...
...
src/com/yonde/cadpro/util/CADProUtil.java
View file @
c9003773
package
com
.
yonde
.
cadpro
.
util
;
package
com
.
yonde
.
cadpro
.
util
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.ptc.core.meta.server.TypeIdentifierUtility
;
import
com.ptc.core.meta.server.TypeIdentifierUtility
;
import
com.yonde.cadpro.CADProConstants
;
import
com.yonde.cadpro.CADProConstants
;
import
com.yonde.cadpro.bean.DxModelFile
;
import
com.yonde.cadpro.bean.DxModelFile
;
...
@@ -7,7 +9,6 @@ import com.yonde.cadpro.config.CADProSettingTypeEnum;
...
@@ -7,7 +9,6 @@ import com.yonde.cadpro.config.CADProSettingTypeEnum;
import
com.yonde.cadpro.config.DxCADProSetting
;
import
com.yonde.cadpro.config.DxCADProSetting
;
import
com.yonde.common.CommonUtil
;
import
com.yonde.common.CommonUtil
;
import
com.yonde.common.IBAUtil
;
import
com.yonde.common.IBAUtil
;
import
com.yonde.common.JsonUtils
;
import
org.apache.commons.io.FileUtils
;
import
org.apache.commons.io.FileUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.log4j.Logger
;
import
org.apache.log4j.Logger
;
...
@@ -41,6 +42,8 @@ public class CADProUtil {
...
@@ -41,6 +42,8 @@ public class CADProUtil {
private
static
final
Logger
log
=
Logger
.
getLogger
(
CADProUtil
.
class
);
private
static
final
Logger
log
=
Logger
.
getLogger
(
CADProUtil
.
class
);
private
static
String
CAD_PRO_SETTING_FILE
=
"/codebase/com/yonde/config/cadpro/CADProSetting.json"
;
private
static
String
CAD_PRO_SETTING_FILE
=
"/codebase/com/yonde/config/cadpro/CADProSetting.json"
;
private
static
String
CAD_PRO_IBA_MAPPING_FILE
=
"/codebase/com/yonde/config/cadpro/CatiaIntegrationAttrMapping.json"
;
/**
/**
* 自动处理图号适配件号
* 自动处理图号适配件号
...
@@ -70,6 +73,7 @@ public class CADProUtil {
...
@@ -70,6 +73,7 @@ public class CADProUtil {
/**
/**
* 自动处理图号适配件号
* 自动处理图号适配件号
*
* @param number
* @param number
* @return
* @return
*/
*/
...
@@ -86,7 +90,6 @@ public class CADProUtil {
...
@@ -86,7 +90,6 @@ public class CADProUtil {
}
}
/**
/**
* 遍历BOM,下载CAD内容
* 遍历BOM,下载CAD内容
*
*
...
@@ -128,7 +131,7 @@ public class CADProUtil {
...
@@ -128,7 +131,7 @@ public class CADProUtil {
String
tmpFilePath
=
tmpPath
;
String
tmpFilePath
=
tmpPath
;
if
(!
CommonUtil
.
isTypeOf
(
part
,
CADProConstants
.
TYPE_STANDARDPART
))
{
if
(!
CommonUtil
.
isTypeOf
(
part
,
CADProConstants
.
TYPE_STANDARDPART
))
{
// 获取模型路径
// 获取模型路径
String
modelRelativePath
=
(
String
)
IBAUtil
.
getIBAValue
(
epm
,
CADProConstants
.
IBA_MODELRELATIVEPATH
);
String
modelRelativePath
=
(
String
)
IBAUtil
.
getIBAValue
(
epm
,
CADProConstants
.
IBA_MODELRELATIVEPATH
);
modelRelativePath
=
modelRelativePath
.
replaceAll
(
"\\\\"
,
"/"
);
modelRelativePath
=
modelRelativePath
.
replaceAll
(
"\\\\"
,
"/"
);
if
(!(
modelRelativePath
.
length
()
==
0
||
modelRelativePath
.
equals
(
"/"
)))
{
if
(!(
modelRelativePath
.
length
()
==
0
||
modelRelativePath
.
equals
(
"/"
)))
{
if
(
modelRelativePath
.
endsWith
(
"/"
))
{
if
(
modelRelativePath
.
endsWith
(
"/"
))
{
...
@@ -164,7 +167,7 @@ public class CADProUtil {
...
@@ -164,7 +167,7 @@ public class CADProUtil {
}
}
List
<
ContentItem
>
contents
=
ContentUtil
.
getContentsByRole
(
epm
,
List
<
ContentItem
>
contents
=
ContentUtil
.
getContentsByRole
(
epm
,
new
ContentRoleType
[]
{
ContentRoleType
.
PRIMARY
});
new
ContentRoleType
[]
{
ContentRoleType
.
PRIMARY
});
if
(
contents
!=
null
&&
contents
.
size
()
>
0
)
{
if
(
contents
!=
null
&&
contents
.
size
()
>
0
)
{
ContentItem
contentItem
=
contents
.
get
(
0
);
ContentItem
contentItem
=
contents
.
get
(
0
);
if
(
contentItem
instanceof
ApplicationData
)
{
if
(
contentItem
instanceof
ApplicationData
)
{
...
@@ -179,7 +182,8 @@ public class CADProUtil {
...
@@ -179,7 +182,8 @@ public class CADProUtil {
}
}
/**
/**
* 根据层级遍历零部件bom,获取其CAD内容文件
* 根据层级遍历零部件bom,获取其CAD内容文件
*
* @param part
* @param part
* @param level
* @param level
* @param needlevel
* @param needlevel
...
@@ -209,7 +213,7 @@ public class CADProUtil {
...
@@ -209,7 +213,7 @@ public class CADProUtil {
}
}
modelMap
.
put
(
partId
,
modelFile
);
modelMap
.
put
(
partId
,
modelFile
);
if
(
level
<
needlevel
||
needlevel
==
-
1
)
{
if
(
level
<
needlevel
||
needlevel
==
-
1
)
{
List
<
WTPart
>
children
=
CadPartUtil
.
getChildPart
(
part
,
true
);
List
<
WTPart
>
children
=
CadPartUtil
.
getChildPart
(
part
,
true
);
/*
/*
QueryResult qr = WTPartHelper.service.getUsesWTParts(part,
QueryResult qr = WTPartHelper.service.getUsesWTParts(part,
WTPartStandardConfigSpec.newWTPartStandardConfigSpec(
WTPartStandardConfigSpec.newWTPartStandardConfigSpec(
...
@@ -231,6 +235,7 @@ public class CADProUtil {
...
@@ -231,6 +235,7 @@ public class CADProUtil {
/**
/**
* 根据层级遍历CAD bom,并获取CAD内容文件
* 根据层级遍历CAD bom,并获取CAD内容文件
*
* @param epm
* @param epm
* @param level
* @param level
* @param needlevel
* @param needlevel
...
@@ -366,13 +371,11 @@ public class CADProUtil {
...
@@ -366,13 +371,11 @@ public class CADProUtil {
if
(
part
==
null
)
{
if
(
part
==
null
)
{
throw
new
WTException
(
"["
+
per
+
"]获取零部件异常"
);
throw
new
WTException
(
"["
+
per
+
"]获取零部件异常"
);
}
}
displayType
=
ClientTypedUtility
.
getLocalizedTypeName
(
part
,
Locale
.
SIMPLIFIED_CHINESE
);
displayType
=
ClientTypedUtility
.
getLocalizedTypeName
(
part
,
Locale
.
SIMPLIFIED_CHINESE
);
return
displayType
;
return
displayType
;
}
}
private
static
void
processBOMPath
(
String
singleBOMPath
,
Set
<
String
>
outputSet
)
{
private
static
void
processBOMPath
(
String
singleBOMPath
,
Set
<
String
>
outputSet
)
{
if
(
StringUtils
.
isNotBlank
(
singleBOMPath
))
{
if
(
StringUtils
.
isNotBlank
(
singleBOMPath
))
{
List
<
String
>
source
=
Arrays
.
asList
(
StringUtils
.
split
(
singleBOMPath
,
"/"
));
List
<
String
>
source
=
Arrays
.
asList
(
StringUtils
.
split
(
singleBOMPath
,
"/"
));
...
@@ -384,6 +387,7 @@ public class CADProUtil {
...
@@ -384,6 +387,7 @@ public class CADProUtil {
}
}
}
}
}
}
public
static
Set
<
String
>
splitBOMPaths
(
Set
<
String
>
inputSet
)
{
public
static
Set
<
String
>
splitBOMPaths
(
Set
<
String
>
inputSet
)
{
Set
<
String
>
outputSet
=
new
HashSet
<
String
>();
Set
<
String
>
outputSet
=
new
HashSet
<
String
>();
if
(
inputSet
==
null
||
inputSet
.
size
()
==
0
)
{
if
(
inputSet
==
null
||
inputSet
.
size
()
==
0
)
{
...
@@ -401,6 +405,7 @@ public class CADProUtil {
...
@@ -401,6 +405,7 @@ public class CADProUtil {
/**
/**
* 基于服务器端配置,获取指定配置
* 基于服务器端配置,获取指定配置
*
* @param seetingType
* @param seetingType
* @return
* @return
*/
*/
...
@@ -413,8 +418,9 @@ public class CADProUtil {
...
@@ -413,8 +418,9 @@ public class CADProUtil {
log
.
debug
(
"configFilePath : "
+
configFilePath
);
log
.
debug
(
"configFilePath : "
+
configFilePath
);
//InputStream is = IOUtils.toInputStream(configFilePath, "UTF-8");
//InputStream is = IOUtils.toInputStream(configFilePath, "UTF-8");
String
jsonStr
=
FileUtils
.
readFileToString
(
new
File
(
configFilePath
),
"UTF-8"
);
String
jsonStr
=
FileUtils
.
readFileToString
(
new
File
(
configFilePath
),
"UTF-8"
);
List
<
DxCADProSetting
>
settings
=
JsonUtils
.
fromJson
(
jsonStr
,
List
.
class
,
//List<DxCADProSetting> settings = JsonUtils.fromJson(jsonStr, List.class, DxCADProSetting.class);
DxCADProSetting
.
class
);
List
<
DxCADProSetting
>
settings
=
JSON
.
parseArray
(
jsonStr
,
DxCADProSetting
.
class
);
for
(
DxCADProSetting
dxCADProSetting
:
settings
)
{
for
(
DxCADProSetting
dxCADProSetting
:
settings
)
{
if
(
CADProSettingTypeEnum
.
valueOf
(
seetingType
)
if
(
CADProSettingTypeEnum
.
valueOf
(
seetingType
)
.
equals
(
dxCADProSetting
.
getType
()))
{
.
equals
(
dxCADProSetting
.
getType
()))
{
...
@@ -429,4 +435,23 @@ public class CADProUtil {
...
@@ -429,4 +435,23 @@ public class CADProUtil {
return
cadProSettings
;
return
cadProSettings
;
}
}
/**
* 获取cadPro iba映射配置信息
*
* @param
* @return
*/
public
static
Map
<
String
,
String
>
getCADProIbaMapping
()
{
try
{
String
mappingFile
=
CADProConstants
.
wthome
+
CAD_PRO_IBA_MAPPING_FILE
;
log
.
debug
(
"mappingFile : "
+
mappingFile
);
String
jsonStr
=
FileUtils
.
readFileToString
(
new
File
(
mappingFile
),
"UTF-8"
);
return
(
Map
<
String
,
String
>)
JSONObject
.
parseObject
(
jsonStr
,
Map
.
class
);
}
catch
(
Exception
e
)
{
log
.
error
(
"getCADProIbaMapping error..."
,
e
);
}
return
null
;
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment