/********************************************************************* * * 文 件: MaterialDivision.h //TODO请概述文件功能 * * 版权所有: Shanghai Baosight Software Co., Ltd. * * 概述: 入口和出口分卷分析 * * 版本历史 * 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容 * %USER% *********************************************************************/ #ifndef MATERIALDIVIVSION_H #define MATERIALDIVIVSION_H #include #include 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:参数取值范围 * * 版本历史 * 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容 * **********************************************************************/ MaterialDivision(void); public: /********************************************************************** * 概述: //TODO:请添加函数描述 * 函数名: ~MaterialDivision * 返回值: //TODO:返回值描述 * 参数列表: 参数类型 取值范围 描述 * : [IN/OUT] void //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:参数取值范围 * part : [IN/OUT] short //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:参数取值范围 * * 版本历史 * 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:参数取值范围 * newLength1 : [IN/OUT] double //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:参数取值范围 * newLength1 : [IN/OUT] double //TODO:参数取值范围 * newoutdim : [IN/OUT] double //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:参数取值范围 * * 版本历史 * 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:参数取值范围 * afterMuCode : [IN/OUT] MU_CODE //TODO:参数取值范围 * storeOri : [IN/OUT] short //TODO:参数取值范围 * useBasIdPart1 : [IN/OUT] short //TODO:参数取值范围 * useBasIdPart2 : [IN/OUT] short //TODO:参数取值范围 * mcPart1 : [IN/OUT] MU_CODE * //TODO:参数取值范围 * mcPart2 : [IN/OUT] MU_CODE * //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:参数取值范围 * afterMuCode : [IN/OUT] MU_CODE //TODO:参数取值范围 * storeOri : [IN/OUT] short //TODO:参数取值范围 * useBasIdPart1 : [IN/OUT] short //TODO:参数取值范围 * useBasIdPart2 : [IN/OUT] short //TODO:参数取值范围 * mcPart1 : [IN/OUT] MU_CODE * //TODO:参数取值范围 * mcPart2 : [IN/OUT] MU_CODE * //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:参数取值范围 * * 版本历史 * 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容 * **********************************************************************/ int divideMaterial(DB_MAT_DIVISION* divideStruct ); private: /********************************************************************** * 概述: //TODO:请添加函数描述 * 函数名: reorgCompPos * 返回值: int //TODO:返回值描述 * 参数列表: 参数类型 取值范围 描述 * mes : [IN/OUT] T_MUR //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:参数取值范围 * muId1 : [IN/OUT] long //TODO:参数取值范围 * muId2 : [IN/OUT] long //TODO:参数取值范围 * basId1 : [IN/OUT] short //TODO:参数取值范围 * basId2 : [IN/OUT] short //TODO:参数取值范围 * extId1 : [IN/OUT] char * //TODO:参数取值范围 * extId2 : [IN/OUT] char * //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:参数取值范围 * muId1 : [IN/OUT] long //TODO:参数取值范围 * muId2 : [IN/OUT] long //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:参数取值范围 * muId1 : [IN/OUT] long //TODO:参数取值范围 * muId2 : [IN/OUT] long //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:参数取值范围 * muId2 : [IN/OUT] long //TODO:参数取值范围 * basId1 : [IN/OUT] short //TODO:参数取值范围 * basId2 : [IN/OUT] short //TODO:参数取值范围 * dS : [IN/OUT] DB_MAT_DIVISION * //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:参数取值范围 * spiltIndex : [IN/OUT] short //TODO:参数取值范围 * count : [IN/OUT] short //TODO:参数取值范围 * newMuId1 : [IN/OUT] long //TODO:参数取值范围 * newMuId2 : [IN/OUT] long //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:参数取值范围 * subMuCodes[] : [IN/OUT] MU_CODE //TODO:参数取值范围 * countSubs : [IN/OUT] short //TODO:参数取值范围 * tolLength : [IN/OUT] double //TODO:参数取值范围 * oriLength : [IN/OUT] double //TODO:参数取值范围 * matIndex : [IN/OUT] short * //TODO:参数取值范围 * newMuId1 : [IN/OUT] long * //TODO:参数取值范围 * newMasId1 : [IN/OUT] short * //TODO:参数取值范围 * newMuId2 : [IN/OUT] long * //TODO:参数取值范围 * newMasId2 : [IN/OUT] short * //TODO:参数取值范围 * dS : [IN/OUT] DB_MAT_DIVISION * //TODO:参数取值范围 * mS : [IN/OUT] MAT_STRUCTURE * //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