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
4323d8aa
Commit
4323d8aa
authored
Apr 26, 2023
by
hanson.yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
test cadpro client
parent
dc0c359f
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
350 additions
and
5 deletions
+350
-5
CatiaIntegration.properties
codebase/config/yonde/CatiaIntegration.properties
+21
-0
LoginController.java
src/com/yonde/basedata/controller/LoginController.java
+0
-2
ApiResult.java
src/com/yonde/basedata/entity/api/ApiResult.java
+7
-0
DxErrorCodeData.java
src/com/yonde/basedata/exception/DxErrorCodeData.java
+2
-1
SearchQueryCondition.java
src/com/yonde/basedata/search/SearchQueryCondition.java
+10
-0
CatiaInteConfigPropertiesUtil.java
...om/yonde/cadpro/config/CatiaInteConfigPropertiesUtil.java
+1
-2
CADProController.java
src/com/yonde/cadpro/controller/CADProController.java
+272
-0
ExceptionUtil.java
src/com/yonde/cadpro/util/ExceptionUtil.java
+37
-0
No files found.
codebase/config/yonde/CatiaIntegration.properties
0 → 100644
View file @
4323d8aa
#MCADPro Client Version
MCADProClient.version
=
v1.0.20211126
#For Part Default Type by Catia Check In
WTPart.DefaultType
=
{domain}.MechanicalPart
WTPart.StandardType
=
{domain}.StandardPart
WTPart.DSType
=
{domain}.DS
WTPart.AirborneEquipmentType
=
{domain}.AirborneEquipment
Transfrom.Default
=
1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1
IBA.PARTTYPE
=
part_type
PARTTYPE.STANDARD
=
\u6807\u
51C6
\u
4EF6
BOMEndRecursion.types
=
DS
Absolute.Position.Type
=
DS
Absolute.Position.Default
=
1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1
BOM.AllowPartType
=
\u
4E3B
\u
89C6
\u
56FE
\u9876\u
5C42
\u
4EF6,DCI,FCI,LO,DS
#For FTP Config
ftp.host
=
192.168.1.240
ftp.port
=
21
ftp.username
=
ftpuser
ftp.password
=
Aa12345678!
ftp.remotePath
=
/
ftp.rootPath
=
E:/FTPHome
src/com/yonde/basedata/controller/LoginController.java
View file @
4323d8aa
...
@@ -5,8 +5,6 @@ import com.yonde.common.LdapUtil;
...
@@ -5,8 +5,6 @@ import com.yonde.common.LdapUtil;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
wt.util.WTException
;
import
wt.util.WTException
;
import
java.io.IOException
;
@RestController
@RestController
@RequestMapping
({
"/login"
})
@RequestMapping
({
"/login"
})
public
class
LoginController
{
public
class
LoginController
{
...
...
src/com/yonde/basedata/entity/api/ApiResult.java
View file @
4323d8aa
...
@@ -74,6 +74,13 @@ public class ApiResult<T> {
...
@@ -74,6 +74,13 @@ public class ApiResult<T> {
return
error
(
error
.
getCode
(),
error
.
getValue
(),
exception
);
return
error
(
error
.
getCode
(),
error
.
getValue
(),
exception
);
}
}
public
static
ApiResult
error
(
String
message
){
ApiResult
result
=
new
ApiResult
();
result
.
setCode
(
DxErrorCodeData
.
Service_Error
.
getCode
());
result
.
setMessage
(
message
);
return
result
;
}
public
static
<
T
>
ApiResult
ok
(
T
obj
,
String
message
)
{
public
static
<
T
>
ApiResult
ok
(
T
obj
,
String
message
)
{
ApiResult
result
=
new
ApiResult
(
obj
);
ApiResult
result
=
new
ApiResult
(
obj
);
result
.
setMessage
(
message
);
result
.
setMessage
(
message
);
...
...
src/com/yonde/basedata/exception/DxErrorCodeData.java
View file @
4323d8aa
...
@@ -24,7 +24,8 @@ public enum DxErrorCodeData implements DxEnumData {
...
@@ -24,7 +24,8 @@ public enum DxErrorCodeData implements DxEnumData {
ILLEGALARGS
(
18
,
"目标类[%s]不可分配给可编辑类[%s]"
),
ILLEGALARGS
(
18
,
"目标类[%s]不可分配给可编辑类[%s]"
),
PROP_MAPPING_ERROR
(
19
,
"目标类[%s]属性映射错误[%s]"
),
PROP_MAPPING_ERROR
(
19
,
"目标类[%s]属性映射错误[%s]"
),
CURRENT_NOT_SUPPORT_CUSTOM_TYPE
(
20
,
"当前系统不支持自定义类型(json转对象)"
),
CURRENT_NOT_SUPPORT_CUSTOM_TYPE
(
20
,
"当前系统不支持自定义类型(json转对象)"
),
CAN_NOT_FOUND_DX_TYPE
(
21
,
"没有找见对应的dxType类型[%s]"
);
CAN_NOT_FOUND_DX_TYPE
(
21
,
"没有找见对应的dxType类型[%s]"
),
Service_Error
(
2100
,
"服务异常"
);
public
static
final
String
PREFIX
=
"BASEDATA_"
;
public
static
final
String
PREFIX
=
"BASEDATA_"
;
final
String
code
;
final
String
code
;
final
String
value
;
final
String
value
;
...
...
src/com/yonde/basedata/search/SearchQueryCondition.java
View file @
4323d8aa
...
@@ -33,6 +33,16 @@ public class SearchQueryCondition extends BaseSearchCondition implements Seriali
...
@@ -33,6 +33,16 @@ public class SearchQueryCondition extends BaseSearchCondition implements Seriali
public
SearchQueryCondition
(){
public
SearchQueryCondition
(){
}
}
private
boolean
onlyCAD
=
false
;
public
boolean
isOnlyCAD
()
{
return
onlyCAD
;
}
public
void
setOnlyCAD
(
boolean
onlyCAD
)
{
this
.
onlyCAD
=
onlyCAD
;
}
public
SearchQueryCondition
(
SearchItems
searchItems
,
Integer
pageFrom
,
Integer
pageSize
,
List
<
SortItem
>
sortItem
,
List
<
String
>
indices
,
String
keyWord
,
String
name
,
Boolean
parentFilter
,
SearchQueryCondition
.
SearchVersion
searchVersion
,
boolean
globalSearch
,
Boolean
seriesFlag
,
List
<
SearchQueryCondition
>
openProps
)
{
public
SearchQueryCondition
(
SearchItems
searchItems
,
Integer
pageFrom
,
Integer
pageSize
,
List
<
SortItem
>
sortItem
,
List
<
String
>
indices
,
String
keyWord
,
String
name
,
Boolean
parentFilter
,
SearchQueryCondition
.
SearchVersion
searchVersion
,
boolean
globalSearch
,
Boolean
seriesFlag
,
List
<
SearchQueryCondition
>
openProps
)
{
super
(
searchItems
,
pageFrom
,
pageSize
,
sortItem
);
super
(
searchItems
,
pageFrom
,
pageSize
,
sortItem
);
this
.
indices
=
indices
;
this
.
indices
=
indices
;
...
...
src/com/yonde/cadpro/config/CatiaInteConfigPropertiesUtil.java
View file @
4323d8aa
...
@@ -15,8 +15,7 @@ public class CatiaInteConfigPropertiesUtil implements RemoteAccess {
...
@@ -15,8 +15,7 @@ public class CatiaInteConfigPropertiesUtil implements RemoteAccess {
private
static
final
Logger
LOGGER
=
LogR
.
getLogger
(
CLASSNAME
);
private
static
final
Logger
LOGGER
=
LogR
.
getLogger
(
CLASSNAME
);
private
static
String
CATIAINTE_CONFIG_URL
=
File
.
separator
+
"codebase"
+
File
.
separator
private
static
String
CATIAINTE_CONFIG_URL
=
File
.
separator
+
"codebase"
+
File
.
separator
+
"ext"
+
File
.
separator
+
"gace"
+
File
.
separator
+
"config"
+
File
.
separator
+
"config"
+
File
.
separator
+
"yonde"
+
File
.
separator
+
"CatiaIntegration.properties"
;
+
"CatiaIntegration.properties"
;
private
static
String
getValue
(
String
key
)
throws
Exception
{
private
static
String
getValue
(
String
key
)
throws
Exception
{
return
StringUtils
return
StringUtils
...
...
src/com/yonde/cadpro/controller/CADProController.java
0 → 100644
View file @
4323d8aa
package
com
.
yonde
.
cadpro
.
controller
;
import
com.yonde.basedata.entity.api.ApiResult
;
import
com.yonde.basedata.search.SearchQueryCondition
;
import
com.yonde.cadpro.CADProService
;
import
com.yonde.cadpro.bean.*
;
import
com.yonde.cadpro.config.CADProConfigPropertiesUtil
;
import
com.yonde.cadpro.config.CADProSettingTypeEnum
;
import
com.yonde.cadpro.config.DxCADProSetting
;
import
com.yonde.cadpro.util.CADProUtil
;
import
com.yonde.cadpro.util.ExceptionUtil
;
import
com.yonde.context.vo.SelectOption
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
wt.util.WTException
;
import
java.util.List
;
import
java.util.Map
;
@RestController
@RequestMapping
(
value
=
"/partModel"
)
public
class
CADProController
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
CADProController
.
class
);
@Autowired
private
CADProService
cadProService
;
/**
* searchQueryCondition模型查询
*
* @return
* @throws Exception
*/
@SuppressWarnings
(
"unchecked"
)
@RequestMapping
(
value
=
"/search"
,
method
=
RequestMethod
.
POST
)
public
ApiResult
<
List
<
DxPartModelBomVo
>>
searchPartCADModel
(
@RequestBody
(
required
=
false
)
SearchQueryCondition
searchQueryCondition
)
{
try
{
log
.
debug
(
"searchQueryCondition : "
+
searchQueryCondition
);
if
(
searchQueryCondition
==
null
)
{
throw
new
WTException
(
"查询条件不允许为空!"
);
}
List
<
DxPartModelBomVo
>
models
=
cadProService
.
searchModel
(
searchQueryCondition
);
return
ApiResult
.
ok
(
models
,
"模型查询成功"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"searchCADModel error..."
,
e
);
return
ExceptionUtil
.
constructErrorAPIResult
(
e
);
}
}
/**
* searchQueryCondition模型查询
*
* @return
* @throws Exception
*/
@SuppressWarnings
(
"unchecked"
)
@RequestMapping
(
value
=
"/searchCAD"
,
method
=
RequestMethod
.
POST
)
public
ApiResult
<
List
<
DxPartModelBomVo
>>
searchCADModel
(
@RequestBody
(
required
=
false
)
SearchQueryCondition
searchQueryCondition
)
{
try
{
log
.
debug
(
"searchQueryCondition : "
+
searchQueryCondition
);
if
(
searchQueryCondition
==
null
)
{
throw
new
WTException
(
"查询条件不允许为空!"
);
}
searchQueryCondition
.
setOnlyCAD
(
true
);
List
<
DxPartModelBomVo
>
models
=
cadProService
.
searchModel
(
searchQueryCondition
);
return
ApiResult
.
ok
(
models
,
"模型查询成功"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"searchCADModel error..."
,
e
);
return
ExceptionUtil
.
constructErrorAPIResult
(
e
);
}
}
/**
* 获取结构
* baselineId
* level
* 0 -- 自己
* 1 -- 向下一层
* n -- 向下n层
* -1 -- 全部
* partCADId
* number
* eff
* @return
*/
@SuppressWarnings
(
"unchecked"
)
@RequestMapping
(
value
=
""
,
method
=
RequestMethod
.
POST
)
public
ApiResult
<
DxPartModelBomVo
>
modelTree
(
@RequestBody
(
required
=
false
)
SearchQueryCondition
searchQueryCondition
)
{
try
{
DxPartModelBomVo
modelTree
=
cadProService
.
modelTree
(
searchQueryCondition
);
return
ApiResult
.
ok
(
modelTree
,
"获取模型树成功"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"modelTree error..."
,
e
);
return
ExceptionUtil
.
constructErrorAPIResult
(
e
);
}
}
/**
* 6.2.4 生成所有模型文件ZIP
*
* @param oids
* @return
*/
@SuppressWarnings
(
"unchecked"
)
@RequestMapping
(
value
=
"/createModelZip"
,
method
=
RequestMethod
.
POST
)
public
ApiResult
<
Map
<
String
,
Object
>>
createModelZip
(
@RequestBody
List
<
String
>
oids
)
{
try
{
String
url
=
cadProService
.
createModelZip
(
oids
);
return
ApiResult
.
ok
(
url
,
"生成所有模型文件ZIP"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"createModelZip error..."
,
e
);
return
ExceptionUtil
.
constructErrorAPIResult
(
e
);
}
}
/**
* 基于CADPro打开条件,收集模型,并封装路径地址
*
*
* @param openModelFilesCondition
* @return
*/
@PostMapping
(
"/collectModelFiles"
)
public
ApiResult
<
List
<
DxModelFile
>>
collectModelFiles
(
@RequestBody
(
required
=
true
)
OpenModelFilesCondition
openModelFilesCondition
)
{
try
{
if
(
openModelFilesCondition
==
null
)
{
throw
new
WTException
(
"打开模型参数不能为空"
);
}
List
<
DxModelFile
>
result
=
cadProService
.
collectModelFiles
(
openModelFilesCondition
);
return
ApiResult
.
ok
(
result
,
"success"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"findModelChildrenByPartMap error..."
,
e
);
return
ExceptionUtil
.
constructErrorAPIResult
(
e
);
}
}
@GetMapping
(
"/bomViewOptions"
)
public
ApiResult
<
List
<
SelectOption
>>
bomViewOptions
()
{
try
{
List
<
SelectOption
>
bomViewOptions
=
CADProConfigPropertiesUtil
.
getBOMViews
(
SelectOption
.
class
);
return
ApiResult
.
ok
(
bomViewOptions
,
"success"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"bomViewOption error..."
,
e
);
return
ExceptionUtil
.
constructErrorAPIResult
(
e
);
}
}
@GetMapping
(
"/config/cadProSetting"
)
public
ApiResult
<
List
<
DxCADProSetting
>>
getCADProSettings
(
@RequestParam
String
settingType
)
{
try
{
log
.
debug
(
"getCADProSettings settingType : "
+
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
);
}
}
/**
* 检出模型
* @param numbers
* @return
*/
@RequestMapping
(
value
=
"/batch/checkout"
,
method
=
RequestMethod
.
POST
)
public
ApiResult
<
List
<
BatchResult
>>
batchCheckout
(
@RequestBody
List
<
String
>
numbers
)
{
try
{
List
<
BatchResult
>
resultInfos
=
cadProService
.
batchCheckout
(
numbers
);
return
ApiResult
.
ok
(
resultInfos
,
"执行检出模型完成"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"batchCheckout error..."
,
e
);
return
ExceptionUtil
.
constructErrorAPIResult
(
e
);
}
}
/**
* 撤销检出模型
* @param numbers
* @return
*/
@RequestMapping
(
value
=
"/batch/undoCheckout"
,
method
=
RequestMethod
.
POST
)
public
ApiResult
<
List
<
BatchResult
>>
batchUndoCheckout
(
@RequestBody
List
<
String
>
numbers
)
{
try
{
List
<
BatchResult
>
resultInfos
=
cadProService
.
batchUndoCheckout
(
numbers
);
return
ApiResult
.
ok
(
resultInfos
,
"撤销检出模型完成"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"batchUndoCheckout error..."
,
e
);
return
ExceptionUtil
.
constructErrorAPIResult
(
e
);
}
}
/**
* 撤销检出模型
* @param models
* @return
*/
@RequestMapping
(
value
=
"/batch/checkin"
,
method
=
RequestMethod
.
POST
)
public
ApiResult
<
List
<
BatchResult
>>
batchCheckin
(
@RequestBody
(
required
=
false
)
List
<
ModelBaseInfo
>
models
)
{
try
{
List
<
BatchResult
>
resultInfos
=
cadProService
.
batchCheckin
(
models
);
return
ApiResult
.
ok
(
resultInfos
,
"检入模型完成"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"batchCheckin error..."
,
e
);
return
ExceptionUtil
.
constructErrorAPIResult
(
e
);
}
}
/**
* 获取顶层BOM结构
* @param partNum
* @return
*/
@RequestMapping
(
value
=
"/pullTopStructure"
,
method
=
RequestMethod
.
GET
)
public
ApiResult
<
String
>
pullTopStructure
(
@RequestParam
String
partNum
)
{
try
{
String
xmlUrl
=
cadProService
.
pullTopStructure
(
partNum
);
return
ApiResult
.
ok
(
xmlUrl
,
"获取顶层BOM结构化文件完成"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"pullTopStructure error..."
,
e
);
return
ExceptionUtil
.
constructErrorAPIResult
(
e
);
}
}
/**
* @return
*/
@RequestMapping
(
value
=
"/pullDICNumber"
,
method
=
RequestMethod
.
GET
)
public
ApiResult
<
String
>
pullDICNumber
(
@RequestParam
String
partNum
)
{
try
{
String
dicNumber
=
cadProService
.
pullDICNumber
(
partNum
);
return
ApiResult
.
ok
(
dicNumber
,
"获取DIC编号完成"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"pullDICNumber error..."
,
e
);
return
ExceptionUtil
.
constructErrorAPIResult
(
e
);
}
}
/**
* 基于选中的节点,封装DS、LO挂接关系
*
*
* @return
*/
@PostMapping
(
"/calulateDSLORelation"
)
public
ApiResult
<
Map
<
String
,
String
>>
calulateDSLORelation
(
@RequestBody
(
required
=
true
)
OpenModelFilesCondition
openModelFilesCondition
)
{
try
{
Map
<
String
,
String
>
result
=
cadProService
.
calulateDSLORelation
(
openModelFilesCondition
);
return
ApiResult
.
ok
(
result
,
"success"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"calulateAssemblyRel error..."
,
e
);
return
ExceptionUtil
.
constructErrorAPIResult
(
e
);
}
}
}
src/com/yonde/cadpro/util/ExceptionUtil.java
0 → 100644
View file @
4323d8aa
package
com
.
yonde
.
cadpro
.
util
;
import
com.yonde.basedata.entity.api.ApiResult
;
import
org.apache.commons.lang.exception.ExceptionUtils
;
import
wt.util.WTException
;
import
wt.util.WTPropertyVetoException
;
public
class
ExceptionUtil
{
public
static
String
getErrorMessage
(
Throwable
th
)
{
String
errMsg
=
""
;
Throwable
rootCause
=
ExceptionUtils
.
getRootCause
(
th
);
if
(
rootCause
==
null
)
{
rootCause
=
th
;
}
if
(
rootCause
instanceof
WTException
)
{
WTException
ex
=
(
WTException
)
rootCause
;
errMsg
=
ex
.
getLocalizedMessage
();
}
else
if
(
rootCause
instanceof
WTPropertyVetoException
)
{
WTPropertyVetoException
ex
=
(
WTPropertyVetoException
)
rootCause
;
errMsg
=
ex
.
getLocalizedMessage
();
}
else
{
errMsg
=
ExceptionUtils
.
getMessage
(
rootCause
);
}
return
errMsg
;
}
public
static
ApiResult
constructErrorAPIResult
(
Exception
exception
)
{
return
ApiResult
.
error
(
getErrorMessage
(
exception
));
}
public
static
ApiResult
constructErrorAPIResult
(
String
errorMsgPrefix
,
Exception
exception
)
{
return
ApiResult
.
error
(
errorMsgPrefix
+
getErrorMessage
(
exception
));
}
}
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