You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

409 lines
14 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include <vector>
#include <map>
#include <string>
//针对发布状态的名称
#define SCRAPE_STATUS_NAME "失效" //废弃的状态的名称
//针对物料属性
#define MATERIAL_jk8SpecModel "jk8SpecModel" //规格型号
#define MATERIAL_jk8Remarks "jk8Remarks" //t特殊说明2019.06.13
#define MATERIAL_jk8ProductIdentifyNO "jk8ProductIdentifyNO" //产品识别号2019.06.13
#define MATERIAL_jk8StockBigTypeNo "jk8StockBigTypeNo" //存货大类编码
#define MATERIAL_jk8TechModel "jk8TechModel" //产品识别号
#define MATERIAL_jk8UnitWeight "jk8UnitWeight" //单位重量 (2017.8.28新加18条表单属性)
#define MATERIAL_jk8UnitVolume "jk8UnitVolume" //单位体积
#define MATERIAL_jk8IsDomesticMarket "jk8IsDomesticMarket" //是否内销
#define MATERIAL_jk8Isconsumables "jk8Isconsumables" //是否耗用
#define MATERIAL_jk8IsBuy "jk8IsBuy" //是否采购
#define MATERIAL_jk8IsMake "jk8IsMake" //是否自制
#define MATERIAL_jk8IsOutsource "jk8IsOutsource" //是否委外
#define MATERIAL_jk8AccountSet "jk8AccountSet" //默认账套
#define MATERIAL_jk8BusinessType "jk8BusinessType" //业务类型
#define MATERIAL_jk8Buyer "jk8Buyer" //采购员
#define MATERIAL_jk8PurLeadTime "jk8PurLeadTime" //固定提前期
#define MATERIAL_jk8SafeStock "jk8SafeStock" //安全库存
#define MATERIAL_jk8SupplyType1 "jk8SupplyType1" //供应类型
#define MATERIAL_jk8Warehouse1 "jk8Warehouse1" //默认仓库
#define MATERIAL_jk8InnTransCoe "jk8InnTransCoe" //内部交易价格系数
#define MATERIAL_jk8WarehouseKeeper "jk8WarehouseKeeper" //库管员
#define MATERIAL_jk8IsInnTrans "jk8IsInnTrans" //是否内部交易
#define MATERIAL_jk8PlanMethod "jk8PlanMethod" //计划方式
//#define MATERIAL_jk8ProductIdentifyNO "jk8ProductIdentifyNO" //选配功能之产品识别号
#define MATERIAL_jk8DisabledDate "jk8DisabledDate" //停用日期
#define MATERIAL_jk8EnableDate "jk8EnableDate" //启用日期
//针对BOM属性
#define BOM_Jk8SupplyType "jk8SupplyType1" //2017/11/2改 //供货类型 JK8SupplyType
#define BOM_Jk8Warehouse "jk8Warehouse1" //2017/11/2改 //仓库 JK8Warehouse
#define BOM_Jk8RemarkDesc "JK8Remark" //备注
#define BOM_JK_BOM_CWR "jk8SubCompLossRate" //子件损耗率
//针对BOM中的母件损耗率
#define BOM_jk8_mjshl "jk8ParentCompLossRate" //母件利用率
//数据库链接信息
#define JK_DB_USER_NAME "infodba" //用户名
#define JK_DB_USER_PWD "infodba" //密码
#define JK_DB_URL "//10.200.2.43/jktc" //正式机链接URL
/*#define JK_DB_USER_NAME "infodba" //测试用户名
#define JK_DB_USER_PWD "infodba" //测试密码
#define JK_DB_URL "//10.201.5.202/jktc" //测试链接URL*/
/*#define JK_DB_URL "//10.201.5.203/tc11" //测试链接URL
#define JK_DB_URL "//localhost/tc" //测试链接URL
#define JK_DB_URL "//10.201.5.202/JKTC" //测试链接URL*/
//中间表名称
#define JK_MATERIAL_TABLE "JK_MATERIAL_TABLE" //物料中间表
#define JK_BOM_PARENT_LINE_TABLE "JK_BOM_PARENT_LINE_TABLE" //BOM表头中间表
#define JK_BOM_CHILD_LINE_TABLE "JK_BOM_CHILD_LINE_TABLE" //BOM结构中间表
#define JK_BOM_SUBSTITUTE_PART_TABLE "JK_BOM_SUBSTITUTE_PART_TABLE" //BOMLINE替换件中间表
#define JK_RECORD_SUBSTIT_TABLE "JK_RECORD_SUBSTIT_T" //物料全局替代件表 2018.5.4加
//替代件
#define JK_SUBSTITUTE_EffectiveDate "jk8EffectiveDate" //生效日期
#define JK_SUBSTITUTE_Order "jk8SubstitOrder" //替代次序
#define JK_SUBSTITUTE_Ratio "jk8SubstitRatio" //替代比
#define JK_SUBSTITUTE_EffectiveDate1 "JK8EffectiveDate" //生效日期1
#define JK_SUBSTITUTE_Order1 "JK8SubstitOrder" //替代次序1
#define JK_SUBSTITUTE_Ratio1 "JK8SubstitRatio" //替代比1
using namespace std;
/**********************************************************
*
* 金卡 物料中间表字段
*
***********************************************************/
char jk_material_fields[45][45] = {
"JK_ITEM_ID", // 物料编码
"JK_ITEM_NAME", // 物料名称
"JK_ITEM_SPEC_MODEL", // 规格型号
"JK_CLASS_CODE", // 存货大类编码
"JK_PROD_CODE", // 产品识别号 //5
"JK_UOM", // 主计量单位
"JK_CREATION_DATE", // 申请日期
"JK_SCRAP_DATE", // 停用日期
"JK_DESIGN_CODE", // 图号信息
"JK_IS_SCRAP", // 是否失效 //10
"JK_FROM", // 发起人
"JK_TRANS_TIME", // 传递时间
"JK_STATUS", // 接收状态
"JK_ERROR_MSG", // 错误信息
"JK_OPERATE_TIME", // 接收时间 //15
"JK_PUID", // 唯一编号
"JK_FROM_SYS", // 传递方
"JK_ATTR_1", // 扩展字段2
"JK_MATERIAL_STATUS", // 2018.12.7物料状态
"JK_REMARKS", // 扩展字段3 //20
"JK_PRODUCT_IDNO", // 扩展字段4
"JK_ITEM_REV", // 扩展字段5 2019.11.19版本信息
"JK_ATTR_6", // 扩展字段6
"JK_ATTR_7", // 扩展字段7
"JK_ATTR_8", // 扩展字段8 //25
"JK_CPSBH", // 扩展字段9 2019.04.11产品识别号
"JK_ATTR_10", // 扩展字段10 //27
"JK_UNIT_WEIGHT", // "jk8UnitWeight单位重量" (2017.8.28中间表新加18个字段)
"JK_UNIT_VOLUME", // "jk8UnitVolume单位体积"
"JK_DOMSC_MARKET", // jk8IsDomesticMarket是否内销 //30
"JK_CONSUM", // "jk8Isconsumables是否耗用"
"JK_IS_BUY", // "jk8IsBuy是否采购"
"JK_IS_MAKE", // "jk8IsMake是否自制"
"JK_OUT_SOURCE", // "jk8IsOutsource是否委外"
"JK_ACCOUNT_SET", // "jk8AccountSet默认账套" //35
"JK_BUSINESS_TYPE", // "jk8BusinessType业务类型"
"JK_BUYER", // "jk8Buyer采购员"
"JK_PURLEAD_TIME", // "jk8PurLeadTime固定提前期"
"JK_SAFE_STOCK", // "jk8SafeStock安全库存"
"JK_SUPPLY_TYPE1", // "jk8SupplyType1供应类型" //40
"JK_WARE_HOUSE1", // "jk8Warehouse1默认仓库"
"JK_INNTRANS_COE", // "jk8InnTransCoe内部交易价格系数"
"JK_HOUSE_KEEPER", // "jk8WarehouseKeeper库管员"
"JK_IS_INNTRANS", // "jk8IsInnTrans是否内部交易"
"JK_PLAN_METHOD" // "jk8PlanMethod计划方式" //45 "LR"
};
/**********************************************************
*
* 金卡 物料存储最小单位
*
***********************************************************/
typedef struct{
string JK_ITEM_ID; // 物料编码 //item_id
string JK_ITEM_NAME; // 物料名称 //object_name
string JK_ITEM_SPEC_MODEL; // 规格型号 //jk8SpecModel(rev)
string JK_CLASS_CODE; // 存货大类编码 //jk8StockBigTypeNo(rev)
string JK_PROD_CODE; // 产品识别号 //5 //jk8TechModel(rev)
string JK_UOM; // 主计量单位 //uom_tag(item)
string JK_CREATION_DATE; // 申请日期 //now_date(system)
string JK_SCRAP_DATE; // 停用日期 //
string JK_DESIGN_CODE; // 图号信息 //
string JK_IS_SCRAP; // 是否失效 //10 //
string JK_FROM; // 发起人 //current_user_name
string JK_TRANS_TIME; // 传递时间 //now_date(system)
string JK_STATUS; // 接收状态 //0-新建,1-正常接收,2-异常未接收,3-失败已重传,4-未接收重传
string JK_ERROR_MSG; // 错误信息 //erp
string JK_OPERATE_TIME; // 接收时间 //15 //erp
string JK_PUID; // 唯一编号 //puid
string JK_FROM_SYS; // 传递方 //默认"TC"
string JK_ATTR_1; // 扩展字段2
string JK_MATERIAL_STATUS; // 物料状态2018.12.7
string JK_REMARKS; // 扩展字段3 //20
string JK_PRODUCT_IDNO; // 扩展字段4
string JK_ITEM_REV; // 扩展字段5 2019.11.19版本信息
string JK_ATTR_6; // 扩展字段6
string JK_ATTR_7; // 扩展字段7
string JK_ATTR_8; // 扩展字段8 //25
string JK_CPSBH; // 扩展字段9 2019.04.11存储产品识别号
string JK_ATTR_10; // 扩展字段10 //27
string JK_UNIT_WEIGHT; //单位重量 (2017.8.28新加18条表单属性)
string JK_UNIT_VOLUME; //单位体积
string JK_DOMSC_MARKET; //是否内销
string JK_CONSUM ; //是否耗用
string JK_IS_BUY ; //是否采购
string JK_IS_MAKE ; //是否自制
string JK_OUT_SOURCE; //是否委外
string JK_ACCOUNT_SET; //默认账套
string JK_BUSINESS_TYPE; //业务类型
string JK_BUYER ; //采购员
string JK_PURLEAD_TIME; //固定提前期
string JK_SAFE_STOCK; //安全库存
string JK_SUPPLY_TYPE1; //供应类型
string JK_WARE_HOUSE1; //默认仓库
string JK_INNTRANS_COE; //内部交易价格系数
string JK_HOUSE_KEEPER; //库管员
string JK_IS_INNTRANS; //是否内部交易
string JK_PLAN_METHOD; //计划方式
}JK_MATERIAL_STRUCT;
/**********************************************************
*
* 金卡 BOM_P 结构中间表字段
*
***********************************************************/
char jk_p_bom_fields[24][45] = {
"JK_BOM_ID", // 母件编码
"JK_BOM_REV", //视图版本
"JK_OWNING_USER", // 所有者(用户名称)
"JK_RATE", // 母件损耗率
"JK_CREATION_DATE", // 生效日期 //5
"JK_SCRAP_DATE", // 失效日期
"JK_IS_SCRAP", // 是否失效
"JK_FROM", // 发起人
"JK_TRANS_TIME", // 传递时间
"JK_STATUS", // 接收状态 //10
"JK_ERROR_MSG", // 错误信息
"JK_OPERATE_TIME", // 接收时间
"JK_PUID", // 唯一编号
"JK_FROM_SYS", // 传递方
"JK_ATTR_1", // 扩展字段1 //15
"JK_ATTR_2", // 扩展字段2
"JK_ATTR_3", // 扩展字段3
"JK_ATTR_4", // 扩展字段4
"JK_ATTR_5", // 扩展字段5
"JK_ATTR_6", // 扩展字段6 //20
"JK_ATTR_7", // 扩展字段7
"JK_ATTR_8", // 扩展字段8
"JK_ATTR_9", // 扩展字段9
"JK_ATTR_10" // 扩展字段10 //24
};
/********************************************************
*
* 金卡 BOM_P 结构存储最小单位
*
*********************************************************/
typedef struct{
string JK_BOM_ID; // 母件编码
string JK_BOM_REV; //视图版本
string JK_OWNING_USER; // 所有者(用户名称)
string JK_RATE; // 母件损耗率
string JK_CREATION_DATE; // 生效日期 //5
string JK_SCRAP_DATE; // 失效日期
string JK_IS_SCRAP; // 是否失效
string JK_FROM; // 发起人
string JK_TRANS_TIME; // 传递时间
string JK_STATUS; // 接收状态 //10
string JK_ERROR_MSG; // 错误信息
string JK_OPERATE_TIME; // 接收时间
string JK_PUID; // 唯一编号
string JK_FROM_SYS; // 传递方
string JK_ATTR_1; // 扩展字段1 //15
string JK_ATTR_2; // 扩展字段2
string JK_ATTR_3; // 扩展字段3
string JK_ATTR_4; // 扩展字段4
string JK_ATTR_5; // 扩展字段5
string JK_ATTR_6; // 扩展字段6 //20
string JK_ATTR_7; // 扩展字段7
string JK_ATTR_8; // 扩展字段8
string JK_ATTR_9; // 扩展字段9
string JK_ATTR_10; // 扩展字段10 //24
}JK_P_BOM_STRUCT;
/**********************************************************
*
* 金卡 BOM_C结构中间表字段
*
***********************************************************/
char jk_c_bom_fields[18][45] = {
"JK_BOM_ID", // 母件编码
"JK_BOM_REV", // BOM视图版本
"JK_BOM_CID", // 子件编码
"JK_SUPPLY_TYPE", // 供应类型
"JK_WAREHOUSE", // 仓库 //5
"JK_QUANTITY", // 基础用量/用量
"JK_REMARK", // 备注说明
"JK_ATTR_1", // 扩展字段1
"JK_ATTR_2", // 扩展字段2
"JK_ATTR_3", // 扩展字段3 //10
"JK_ATTR_4", // 扩展字段4
"JK_ATTR_5", // 扩展字段5
"JK_ATTR_6", // 扩展字段6
"JK_ATTR_7", // 扩展字段7
"JK_ATTR_8", // 扩展字段8 //15
"JK_ATTR_9", // 扩展字段9
"JK_ATTR_10", // 扩展字段10 //17
"JK_BOM_CWR"
};
/********************************************************
*
* 金卡 BOM_C结构存储最小单位
*
*********************************************************/
typedef struct{
string JK_BOM_ID; // 母件编码
string JK_BOM_REV; // BOM视图版本
string JK_BOM_CID; // 子件编码
string JK_SUPPLY_TYPE; // 供应类型
string JK_WAREHOUSE; // 仓库 //5
string JK_QUANTITY; // 基础用量/用量
string JK_REMARK; // 备注说明
string JK_ATTR_1; // 扩展字段1
string JK_ATTR_2; // 扩展字段2
string JK_ATTR_3; // 扩展字段3 //10
string JK_ATTR_4; // 扩展字段4
string JK_ATTR_5; // 扩展字段5
string JK_ATTR_6; // 扩展字段6
string JK_ATTR_7; // 扩展字段7
string JK_ATTR_8; // 扩展字段8 //15
string JK_ATTR_9; // 扩展字段9
string JK_ATTR_10; // 扩展字段10 //17
string JK_BOM_CWR;
}JK_C_BOM_STRUCT;
/**********************************************************
*
* 金卡 BOM_SUB 结构中间表字段
*
***********************************************************/
char jk_sub_bom_fields[17][45] = {
"JK_BOM_ID", // 母件编码
"JK_BOM_REV", // BOM视图版本
"JK_BOM_CID", // 子件编码
"JK_SUBSTITUTE_PART_ID", // 替代件编码
"JK_SUBSTITUTE_PART_INDEX", // 替代件次序 //5
"JK_SUBSTITUTE_PART_RATIO", // 替代件比例
"JK_SUBSTITUTE_PART_DATE", // 替代件生效时间
"JK_IS_GLOBAL", // 扩展字段1
"JK_ATTR_2", // 扩展字段2
"JK_ATTR_3", // 扩展字段3 //10
"JK_ATTR_4", // 扩展字段4
"JK_ATTR_5", // 扩展字段5
"JK_ATTR_6", // 扩展字段6
"JK_ATTR_7", // 扩展字段7
"JK_ATTR_8", // 扩展字段8 //15
"JK_ATTR_9", // 扩展字段9
"JK_ATTR_10" //扩展字段10 //17
};
/********************************************************
*
* 金卡 BOM_SUB 结构存储最小单位
*
*********************************************************/
typedef struct{
string JK_BOM_ID; // 母件编码
string JK_BOM_REV; // BOM视图版本
string JK_BOM_CID; // 子件编码
string JK_SUBSTITUTE_PART_ID; // 替代件编码
string JK_SUBSTITUTE_PART_INDEX; // 替代件次序 //5
string JK_SUBSTITUTE_PART_RATIO; // 替代件比例
string JK_SUBSTITUTE_PART_DATE; // 替代件生效时间
string JK_IS_GLOBAL; // 扩展字段1
string JK_ATTR_2; // 扩展字段2
string JK_ATTR_3; // 扩展字段3 //10
string JK_ATTR_4; // 扩展字段4
string JK_ATTR_5; // 扩展字段5
string JK_ATTR_6; // 扩展字段6
string JK_ATTR_7; // 扩展字段7
string JK_ATTR_8; // 扩展字段8 //15
string JK_ATTR_9; // 扩展字段9
string JK_ATTR_10; // 扩展字段10 //17
}JK_SUB_BOM_STRUCT;
int sum(int y,int m,int d)
{
unsigned char x[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int i,s=0;
for(i=1;i<y;i++)
if(i%4==0 && i%100!=0 || i%400==0)
s+=366;//闰年
else
s+=365;//平年
if(y%4==0 && y%100!=0 || y%400==0)
x[2]=29;
for(i=1;i<m;i++)
s+=x[i];//整月的天数
s+=d;//日的天数
return s;//返回总天数,相对公元1年
}
/**********************************************************
*
* 金卡 物料全局替代件中间表字段
*
***********************************************************/
char JK_RECORD_SUBSTIT_fields[4][45] = {
"NO", // 物料编码
"SUBSTITNO", // 全局替代件编码
"STATES" , // 状态
"SUB_TRANS_TIME" //传递时间
};
/**********************************************************
*
* 金卡 物料全局替代件
*
***********************************************************/
typedef struct{
string NO; // 物料编码
string SUBSTITNO; // 全局替代件编码
string STATES; // 状态
string SUB_TRANS_TIME;//传递时间
}JK_RECORD_SUBSTIT_T;