eis/inc/cda/MtrDAO.h

558 lines
22 KiB
C++

/*********************************************************************
*
* 文 件: MtrDAO.h //TODO请概述文件功能
*
* 版权所有: Shanghai Baosight Software Co., Ltd.
*
* 概述:跟踪数据访问层
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
* %USER%
*********************************************************************/
#ifndef MTRDAO_H
#define MTRDAO_H
#include <utility/StringHelper.h>
#include <cold/Location.h>
#include <common/BasicStruct.h>
#include <cda/MtrDefine.h>
#include <cda/CusCopyProcess.h>
using namespace baosight;
class MatUnit;
class MtrDAO
{
public:
/**********************************************************************
* 概述:构造函数
* 函数名: MtrDAO
* 返回值: //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
MtrDAO();
/**********************************************************************
* 概述: 析构函数
* 函数名: ~MtrDAO
* 返回值: //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual ~MtrDAO();
private:
char* dbMessage;
CopyProcess* copyPro;
public:
/**********************************************************************
* 概述: //获得钢卷位置信息
* 函数名: getLocation
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* posno : [IN/OUT] int //TODO:参数取值范围 <//TODO:参数描述>
* p_loc : [IN/OUT] Location * //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int getLocation(int posno, Location* p_loc);
/**********************************************************************
* 概述: //获得钢卷信息
* 函数名: getMatUint
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* innerId : [IN/OUT] int //TODO:参数取值范围 <//TODO:参数描述>
* p_mat : [IN/OUT] MatUnit * //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int getMatUint(int innerId, MatUnit* p_mat);
public:
/**********************************************************************
* 概述: //检查原始数据是否正常
* 函数名: isPrimaryOK
* 返回值: bool //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* meCode : [IN/OUT] const MU_CODE & //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual bool isPrimaryOK(const MU_CODE& meCode);
/**********************************************************************
* 概述: //设置钢卷上下鞍座状态
* 函数名: setCoilStatus
* 返回值: void //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* loc : [IN/OUT] Location * //TODO:参数取值范围 <//TODO:参数描述>
* status : [IN/OUT] int //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual void setCoilStatus(Location* loc,int status);
/**********************************************************************
* 概述: //检查中央段是否存在该钢卷
* 函数名: isCenterCoil
* 返回值: bool //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* loc : [IN/OUT] Location * //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual bool isCenterCoil(Location* loc);
/**********************************************************************
* 概述: //设置跟踪映像表中的内部卷号
* 函数名: setImageInnerId
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* loc : [IN/OUT] Location * //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int setImageInnerId(Location* loc);
/**********************************************************************
* 概述: //离开某个位置
* 函数名: moveAway
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* p_loc : [IN/OUT] Location * //TODO:参数取值范围 <//TODO:参数描述>
* flag : [IN/OUT] int //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int moveAway(Location* p_loc,int flag = 0);
/**********************************************************************
* 概述: //到达某个位置
* 函数名: moveArrive
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* p_loc : [IN/OUT] Location * //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int moveArrive(Location* p_loc);
/**********************************************************************
* 概述: //读取通到映像
* 函数名: readImage
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* pos : [IN/OUT] int //TODO:参数取值范围 <//TODO:参数描述>
* coilId : [IN/OUT] char * //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int readImage(int pos,char* coilId);
/**********************************************************************
* 概述: //当前钢卷是入口钢卷还是出口钢卷
* 函数名: coilpos
* 返回值: bool //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* p_loc : [IN/OUT] Location * //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual bool coilpos(Location* p_loc);
public:
/**********************************************************************
* 概述: //内部映像表中该钢卷是否已经存在
* 函数名: isInnerCoilId
* 返回值: bool //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* coilId : [IN/OUT] string //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual bool isInnerCoilId(string coilId);
/**********************************************************************
* 概述: //设置内部映像表中的所有钢卷
* 函数名: setAllCoilId
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* p_mat : [IN/OUT] MatUnit * //TODO:参数取值范围 <//TODO:参数描述>
* flag : [IN/OUT] int //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int setAllCoilId(MatUnit* p_mat,int flag) ;
/**********************************************************************
* 概述: //写内部卷号到设定值表中
* 函数名: setInnerId2ST
* 返回值: bool //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* meCode : [IN/OUT] const MU_CODE & //TODO:参数取值范围 <//TODO:参数描述>
* innerId : [IN/OUT] int //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual bool setInnerId2ST(const MU_CODE& meCode,int innerId) ;
/**********************************************************************
* 概述: //更新内部映像表中的序号
* 函数名: updateAllSeqNo
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int updateAllSeqNo();
/**********************************************************************
* 概述: //更新当前卷的序号
* 函数名: updateActSeqNo
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* inId : [IN/OUT] int //TODO:参数取值范围 <//TODO:参数描述>
* flag : [IN/OUT] int //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int updateActSeqNo(int inId,int flag);
/**********************************************************************
* 概述: //获得进入机组时间
* 函数名: getBookTime
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* meCode : [IN/OUT] const MU_CODE & //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int getBookTime(const MU_CODE& meCode);
/**********************************************************************
* 概述: //获得生产开始时间
* 函数名: getStartTime
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* meCode : [IN/OUT] MU_CODE & //TODO:参数取值范围 <//TODO:参数描述>
* startTime : [IN/OUT] char * //TODO:参数取值范围 <//TODO:参数描述>
* flag : [IN/OUT] int //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int getStartTime(MU_CODE& meCode,char* startTime,int flag);
/**********************************************************************
* 概述://获得剪切模式
* 函数名: getCutMode
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* meCode : [IN/OUT] MU_CODE & //TODO:参数取值范围 <//TODO:参数描述>
* cutlength : [IN/OUT] int //TODO:参数取值范围 <//TODO:参数描述>
* cutMode : [IN/OUT] int //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int getCutMode(MU_CODE& meCode,int cutlength,int cutMode);
/**********************************************************************
* 概述: //设置计划表中删除标志
* 函数名: setScheduleFlag
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* p_mat : [IN/OUT] MatUnit * //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int setScheduleFlag(MatUnit* p_mat);
/**********************************************************************
* 概述: //设置进入机组时间
* 函数名: setBookTime
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* meCode : [IN/OUT] MU_CODE & //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int setBookTime(MU_CODE& meCode);
/**********************************************************************
* 概述: //增加剪切实绩
* 函数名: addActCutData
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* firstCut : [IN/OUT] S_FirstCut & //TODO:参数取值范围 <//TODO:参数描述>
* p_mat : [IN/OUT] MatUnit & //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int addActCutData(S_FirstCut& firstCut,MatUnit& p_mat) ;
/**********************************************************************
* 概述: //设置当前卷的剪切模式
* 函数名: setCutMode
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* meCode : [IN/OUT] MU_CODE & //TODO:参数取值范围 <//TODO:参数描述>
* Exlen : [IN/OUT] int & //TODO:参数取值范围 <//TODO:参数描述>
* cutMode : [IN/OUT] int //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int setCutMode(MU_CODE& meCode,int& Exlen,int cutMode);
/**********************************************************************
* 概述: //设置生产开始时间
* 函数名: setStartTime
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* meCode : [IN/OUT] MU_CODE & //TODO:参数取值范围 <//TODO:参数描述>
* startTime : [IN/OUT] char * //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int setStartTime(MU_CODE& meCode,char* startTime);
/**********************************************************************
* 概述://设置最后卷标志
* 函数名: setFinalflag
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* meCode : [IN/OUT] const MU_CODE & //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int setFinalflag(const MU_CODE& meCode);
/**********************************************************************
* 概述: //获得母卷长度
* 函数名: getCoilLen
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* meCode : [IN/OUT] const MU_CODE & //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int getCoilLen(const MU_CODE& meCode);
/**********************************************************************
* 概述: //插入一条记录到过程控制表
* 函数名: setCoilInfo
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* muCode : [IN/OUT] const MU_CODE & //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int setCoilInfo(const MU_CODE& muCode);
//获取内部ID
virtual int getInnerId(char* coilid);
public:
/**********************************************************************
* 概述: //获得MU表中记录数目
* 函数名: getMuRecordNo
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* coilId : [IN/OUT] const string & //TODO:参数取值范围 <//TODO:参数描述>
* flag : [IN/OUT] int //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int getMuRecordNo(const string& coilId,int flag = 0);
/**********************************************************************
* 概述: //获得T_SCH_COIL表中的记录数目
* 函数名: getSchRecordNo
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* coilId : [IN/OUT] const string & //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int getSchRecordNo(const string& coilId);
/**********************************************************************
* 概述: //获得T_SCH_DUMMY表中的记录数目
* 函数名: getDummyRecordNo
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* coilId : [IN/OUT] const string & //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int getDummyRecordNo(const string& coilId);
/**********************************************************************
* 概述: //获得T_MU表中的数据
* 函数名: getMuData
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* coilId : [IN/OUT] const string & //TODO:参数取值范围 <//TODO:参数描述>
* id : [IN/OUT] string & //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int getMuData(const string& coilId,string& id);
public:
/**********************************************************************
* 概述: //头尾废料
* 函数名: HTScrapCut
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* cutInfo : [IN/OUT] CUT_INFO & //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int HTScrapCut(CUT_INFO& cutInfo);
/**********************************************************************
* 概述: //废料统计
* 函数名: scrapStatic
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* muCode : [IN/OUT] MU_CODE & //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int scrapStatic(MU_CODE& muCode);
/**********************************************************************
* 概述: //是否为过渡卷
* 函数名: isDummy
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* muCode : [IN/OUT] const MU_CODE & //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int isDummy(const MU_CODE& muCode);
/**********************************************************************
* 概述: //管理过渡卷
* 函数名: doDummy
* 返回值: int //TODO:返回值描述
* 参数列表: 参数类型 取值范围 描述
* muCode : [IN/OUT] const MU_CODE & //TODO:参数取值范围 <//TODO:参数描述>
* matStructEntry : [IN/OUT] const MAT_STRUCTURE & //TODO:参数取值范围 <//TODO:参数描述>
*
* 版本历史
* 1.0 2011-06-10 fuxiandong //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int doDummy(const MU_CODE& muCode,const MAT_STRUCTURE& matStructEntry);
/**********************************************************************
* 概述: 为钢卷注册新的跟踪索引信息
* 函数名: RegNewInnerId
* 返回值: int 大于0:新索引号 小于0:没有可用索引号
* 参数列表: 参数类型 取值范围 描述
*
* coil const char* 钢卷号
* 版本历史
* 1.0 2011-08-01 WeiSheng yu //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int RegNewInnerId( const char *coil);
/**********************************************************************
* 概述: 注销钢卷的跟踪索引信息
* 函数名: LogoutInnerId
* 返回值: int 大于0:新索引号 小于0:没有可用索引号
* 参数列表: 参数类型 取值范围 描述
*
* InnerId int 索引号
* 版本历史
* 1.0 2011-08-01 WeiSheng yu //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int LogoutInnerId( int InnerId);
};
#endif