eis/inc/dao/MaterialDivision.h

401 lines
18 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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