401 lines
18 KiB
C++
401 lines
18 KiB
C++
/*********************************************************************
|
||
*
|
||
* 文 件: MaterialDivision.h //TODO请概述文件功能
|
||
*
|
||
* 版权所有: Shanghai Baosight Software Co., Ltd.
|
||
*
|
||
* 概述: 入口和出口分卷分析
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
* %USER%
|
||
*********************************************************************/
|
||
#ifndef MATERIALDIVIVSION_H
|
||
#define MATERIALDIVIVSION_H
|
||
|
||
#include <iDA/iDA.h>
|
||
#include <glob/GlobDefine.h>
|
||
|
||
using namespace iPlature;
|
||
|
||
class T_MU;
|
||
class T_MUR;
|
||
|
||
namespace baosight{
|
||
|
||
/*********************************************************************
|
||
* 类 名: //TODO MaterialDivision
|
||
* 版权所有: Shanghai Baosight Software Co., Ltd.
|
||
* 类 职 责://TODO请添加类职责描述
|
||
* ://TODO
|
||
* ://TODO
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
*********************************************************************/
|
||
class MaterialDivision
|
||
{
|
||
|
||
private:
|
||
MU_CODE reorgMuCodes[10];
|
||
|
||
private:
|
||
iDA::Command cmd;
|
||
char* dbMessage;
|
||
|
||
public:
|
||
/**********************************************************************
|
||
* 概述: //TODO:请添加函数描述
|
||
* 函数名: MaterialDivision
|
||
* 返回值: //TODO:返回值描述
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* : [IN/OUT] void //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
MaterialDivision(void);
|
||
|
||
public:
|
||
/**********************************************************************
|
||
* 概述: //TODO:请添加函数描述
|
||
* 函数名: ~MaterialDivision
|
||
* 返回值: //TODO:返回值描述
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* : [IN/OUT] void //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
virtual ~MaterialDivision(void);
|
||
|
||
public:
|
||
/**********************************************************************
|
||
* 概述: //TODO:this function returns a new external Id.
|
||
* 函数名: getNewExtId
|
||
* 返回值: char* //TODO:if an error occurs NULL should be returned
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* muCode : [IN/OUT] MU_CODE //TODO:参数取值范围 <//TODO:参数描述>
|
||
* part : [IN/OUT] short //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
virtual char* getNewExtId ( MU_CODE muCode , short part )=0;
|
||
|
||
|
||
/**********************************************************************
|
||
* 概述: //TODO:this function returns the length of a material unit
|
||
* 函数名: getMuLength
|
||
* 返回值: double //TODO:if an error occurs length should be set to -1.0
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* muCode : [IN/OUT] MU_CODE //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
virtual double getMuLength ( MU_CODE muCode )=0;
|
||
|
||
|
||
/**********************************************************************
|
||
* 概述: //TODO:this function returns the border tolerance of material units
|
||
* 函数名: getTolLength
|
||
* 返回值: double //TODO:返回值描述
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
virtual double getTolLength()=0;
|
||
|
||
|
||
/**********************************************************************
|
||
* 概述: //TODO:this function set the length of a material unit
|
||
* 函数名: setMuLength
|
||
* 返回值: void //TODO:返回值描述
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* muCode : [IN/OUT] MU_CODE //TODO:参数取值范围 <//TODO:参数描述>
|
||
* newLength1 : [IN/OUT] double //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
virtual void setMuLength ( MU_CODE muCode , double newLength1 )=0;
|
||
/**********************************************************************
|
||
* 概述: //TODO:请添加函数描述
|
||
* 函数名: setMuLength
|
||
* 返回值: void //TODO:返回值描述
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* muCode : [IN/OUT] MU_CODE //TODO:参数取值范围 <//TODO:参数描述>
|
||
* newLength1 : [IN/OUT] double //TODO:参数取值范围 <//TODO:参数描述>
|
||
* newoutdim : [IN/OUT] double //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
virtual void setMuLength ( MU_CODE muCode , double newLength1 ,double newoutdim )=0;
|
||
|
||
virtual void setPDITable(char* where,long newMuId1,long newMuId2)=0;
|
||
|
||
public:
|
||
/**********************************************************************
|
||
* 概述: //TODO:divides a order material idendified
|
||
* 函数名: divide
|
||
* 返回值: int //TODO: // return - 0 = OK ,
|
||
// -1 = ORACLE Error ( Material not found ??? )
|
||
// -2 = Material has outline status
|
||
// -3 = new material is to short
|
||
// -4 = Material is to short
|
||
// -5 = Divideposition not found in submaterial (wrong length ??)
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* divideStruct : [IN/OUT] DB_MAT_DIVISION * //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
int divide(DB_MAT_DIVISION* divideStruct );
|
||
|
||
/**********************************************************************
|
||
* 概述: //TODO:请添加函数描述
|
||
* 函数名: divide
|
||
* 返回值: int //TODO:
|
||
// 1 = afterMeCode is the last part of divMeCode
|
||
// -1 = Oralce Error
|
||
// -2 = material already divided
|
||
// -3 = material has level3 entry status
|
||
// -4 = afterMeCode is not a part of divMeCode
|
||
// -5 = afterMeCode is a physical material
|
||
// -6 = divMeCode is an order material
|
||
// -7 = divMeCode has outline status
|
||
// -8 = divMeCode have the same type as afterMeCode
|
||
// -10 = material do not exist
|
||
// 0 = Ok
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* divMuCode : [IN/OUT] MU_CODE //TODO:参数取值范围 <//TODO:参数描述>
|
||
* afterMuCode : [IN/OUT] MU_CODE //TODO:参数取值范围 <//TODO:参数描述>
|
||
* storeOri : [IN/OUT] short //TODO:参数取值范围 <//TODO:参数描述>
|
||
* useBasIdPart1 : [IN/OUT] short //TODO:参数取值范围 <//TODO:参数描述>
|
||
* useBasIdPart2 : [IN/OUT] short //TODO:参数取值范围 <//TODO:参数描述>
|
||
* mcPart1 : [IN/OUT] MU_CODE * //TODO:参数取值范围 <//TODO:参数描述>
|
||
* mcPart2 : [IN/OUT] MU_CODE * //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
int divide( MU_CODE divMuCode ,
|
||
MU_CODE afterMuCode ,
|
||
short storeOri,
|
||
short useBasIdPart1,
|
||
short useBasIdPart2,
|
||
MU_CODE* mcPart1,
|
||
MU_CODE* mcPart2);
|
||
|
||
private:
|
||
/**********************************************************************
|
||
* 概述: //暂时未使用
|
||
* 函数名: divideBehind
|
||
* 返回值: int //TODO:返回值描述
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* divMuCode : [IN/OUT] MU_CODE //TODO:参数取值范围 <//TODO:参数描述>
|
||
* afterMuCode : [IN/OUT] MU_CODE //TODO:参数取值范围 <//TODO:参数描述>
|
||
* storeOri : [IN/OUT] short //TODO:参数取值范围 <//TODO:参数描述>
|
||
* useBasIdPart1 : [IN/OUT] short //TODO:参数取值范围 <//TODO:参数描述>
|
||
* useBasIdPart2 : [IN/OUT] short //TODO:参数取值范围 <//TODO:参数描述>
|
||
* mcPart1 : [IN/OUT] MU_CODE * //TODO:参数取值范围 <//TODO:参数描述>
|
||
* mcPart2 : [IN/OUT] MU_CODE * //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
int divideBehind( MU_CODE divMuCode ,
|
||
MU_CODE afterMuCode ,
|
||
short storeOri,
|
||
short useBasIdPart1,
|
||
short useBasIdPart2,
|
||
MU_CODE* mcPart1,
|
||
MU_CODE* mcPart2 );
|
||
|
||
private:
|
||
/**********************************************************************
|
||
* 概述: //TODO:材料分卷
|
||
* 函数名: divideMaterial
|
||
* 返回值: int //TODO:返回值描述
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* divideStruct : [IN/OUT] DB_MAT_DIVISION * //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
int divideMaterial(DB_MAT_DIVISION* divideStruct );
|
||
|
||
private:
|
||
/**********************************************************************
|
||
* 概述: //TODO:请添加函数描述
|
||
* 函数名: reorgCompPos
|
||
* 返回值: int //TODO:返回值描述
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* mes : [IN/OUT] T_MUR //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
int reorgCompPos ( T_MUR mes );
|
||
// create Me records
|
||
private:
|
||
/**********************************************************************
|
||
* 概述: //TODO:创建表MU记录
|
||
* 函数名: createMu
|
||
* 返回值: int //TODO:返回值描述
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* muParam : [IN/OUT] T_MU //TODO:参数取值范围 <//TODO:参数描述>
|
||
* muId1 : [IN/OUT] long //TODO:参数取值范围 <//TODO:参数描述>
|
||
* muId2 : [IN/OUT] long //TODO:参数取值范围 <//TODO:参数描述>
|
||
* basId1 : [IN/OUT] short //TODO:参数取值范围 <//TODO:参数描述>
|
||
* basId2 : [IN/OUT] short //TODO:参数取值范围 <//TODO:参数描述>
|
||
* extId1 : [IN/OUT] char * //TODO:参数取值范围 <//TODO:参数描述>
|
||
* extId2 : [IN/OUT] char * //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
int createMu ( T_MU muParam ,
|
||
long muId1 ,
|
||
long muId2 ,
|
||
short basId1 ,
|
||
short basId2 ,
|
||
char* extId1 ,
|
||
char* extId2 );
|
||
private:
|
||
/**********************************************************************
|
||
* 概述: //TODO:创建表MB记录
|
||
* 函数名: createMB
|
||
* 返回值: int //TODO:返回值描述
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* muParam : [IN/OUT] T_MU //TODO:参数取值范围 <//TODO:参数描述>
|
||
* muId1 : [IN/OUT] long //TODO:参数取值范围 <//TODO:参数描述>
|
||
* muId2 : [IN/OUT] long //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
int createMB ( T_MU muParam ,
|
||
long muId1 ,
|
||
long muId2 );
|
||
|
||
private:
|
||
/**********************************************************************
|
||
* 概述: //TODO:创建表MUR记录
|
||
* 函数名: createMur
|
||
* 返回值: int //TODO:返回值描述
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* muParam : [IN/OUT] T_MU //TODO:参数取值范围 <//TODO:参数描述>
|
||
* muId1 : [IN/OUT] long //TODO:参数取值范围 <//TODO:参数描述>
|
||
* muId2 : [IN/OUT] long //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
int createMur (T_MU muParam ,
|
||
long muId1 ,
|
||
long muId2 );
|
||
|
||
private:
|
||
/**********************************************************************
|
||
* 概述: //TODO:创建表PM记录
|
||
* 函数名: createPM
|
||
* 返回值: int //TODO:返回值描述
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* muId1 : [IN/OUT] long //TODO:参数取值范围 <//TODO:参数描述>
|
||
* muId2 : [IN/OUT] long //TODO:参数取值范围 <//TODO:参数描述>
|
||
* basId1 : [IN/OUT] short //TODO:参数取值范围 <//TODO:参数描述>
|
||
* basId2 : [IN/OUT] short //TODO:参数取值范围 <//TODO:参数描述>
|
||
* dS : [IN/OUT] DB_MAT_DIVISION * //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
int createPM ( long muId1 ,
|
||
long muId2 ,
|
||
short basId1 ,
|
||
short basId2 ,
|
||
DB_MAT_DIVISION* dS );
|
||
|
||
private:
|
||
/**********************************************************************
|
||
* 概述: //TODO:请添加函数描述
|
||
* 函数名: reorgSubMUs
|
||
* 返回值: int //TODO:返回值描述
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* reorgMuCodes[] : [IN/OUT] MU_CODE //TODO:参数取值范围 <//TODO:参数描述>
|
||
* spiltIndex : [IN/OUT] short //TODO:参数取值范围 <//TODO:参数描述>
|
||
* count : [IN/OUT] short //TODO:参数取值范围 <//TODO:参数描述>
|
||
* newMuId1 : [IN/OUT] long //TODO:参数取值范围 <//TODO:参数描述>
|
||
* newMuId2 : [IN/OUT] long //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
int reorgSubMUs( MU_CODE reorgMuCodes[] ,
|
||
short spiltIndex ,
|
||
short count ,
|
||
long newMuId1 ,
|
||
long newMuId2 );
|
||
|
||
|
||
/**********************************************************************
|
||
* 概述: //TODO:分析分卷
|
||
* 函数名: analyseDivision
|
||
* 返回值: int //TODO:返回值描述
|
||
* 参数列表: 参数类型 取值范围 描述
|
||
* actMuCode : [IN/OUT] MU_CODE //TODO:参数取值范围 <//TODO:参数描述>
|
||
* subMuCodes[] : [IN/OUT] MU_CODE //TODO:参数取值范围 <//TODO:参数描述>
|
||
* countSubs : [IN/OUT] short //TODO:参数取值范围 <//TODO:参数描述>
|
||
* tolLength : [IN/OUT] double //TODO:参数取值范围 <//TODO:参数描述>
|
||
* oriLength : [IN/OUT] double //TODO:参数取值范围 <//TODO:参数描述>
|
||
* matIndex : [IN/OUT] short * //TODO:参数取值范围 <//TODO:参数描述>
|
||
* newMuId1 : [IN/OUT] long * //TODO:参数取值范围 <//TODO:参数描述>
|
||
* newMasId1 : [IN/OUT] short * //TODO:参数取值范围 <//TODO:参数描述>
|
||
* newMuId2 : [IN/OUT] long * //TODO:参数取值范围 <//TODO:参数描述>
|
||
* newMasId2 : [IN/OUT] short * //TODO:参数取值范围 <//TODO:参数描述>
|
||
* dS : [IN/OUT] DB_MAT_DIVISION * //TODO:参数取值范围 <//TODO:参数描述>
|
||
* mS : [IN/OUT] MAT_STRUCTURE * //TODO:参数取值范围 <//TODO:参数描述>
|
||
*
|
||
* 版本历史
|
||
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
|
||
*
|
||
**********************************************************************/
|
||
int analyseDivision( MU_CODE actMuCode ,
|
||
MU_CODE subMuCodes[],
|
||
short countSubs,
|
||
double tolLength,
|
||
double oriLength,
|
||
short* matIndex,
|
||
long* newMuId1,
|
||
short* newMasId1,
|
||
long* newMuId2,
|
||
short* newMasId2,
|
||
DB_MAT_DIVISION* dS,
|
||
MAT_STRUCTURE* mS
|
||
);
|
||
};
|
||
}
|
||
|
||
#endif
|