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
|