eis/inc/dao/MaterialDivision.h

401 lines
18 KiB
C
Raw Normal View History

/*********************************************************************
*
* : 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