Пример #1
0
    def saveData_stream_Trans(self, strDir = ""):
        #提取当前数据
        if(strDir == ""): strDir = self.dir
        dictDatas = {}
        if(True):
            myDebug.Print("... load data(" + self.name + ")...")
            path = strDir + self.fileName + ".csv"
            pDt_csv = myIO_xlsx.DtTable()
            pDt_csv.dataFieldType = ['datetime', 'float', 'float', 'float']             #数据字段类型集
            pDt_csv.Load_csv(path, isUtf = True)
        
            #组装数据
            nRows = len(pDt_csv.dataMat)
            for x in range(nRows - 1, -1, -1):
                pData = copy.deepcopy(self.data)
                pData.datetime = None                           #清空时间(必须)
                pData.fromValueList(pDt_csv.dataMat[x])         #由表数据还原
                dictDatas[pData.getTime()] = pData

        #字典排序
        keys = list(dictDatas.keys())
        keys.sort(key = None, reverse = True)
        
        #组装数据
        pDt = myIO_xlsx.DtTable()
        pDt.dataField = self.data.csvHead().split(',')
        pDt.dataMat = []
        for x in keys:
            pDt.dataMat.append(dictDatas[x].toValueList())

        #保存基础数据
        myIO.mkdir(strDir)
        pDt.Save(strDir, self.fileName, row_start = 0, col_start = 0, cell_overwrite = True, sheet_name = self.name, row_end = -1, col_end = -1, bSave_AsStr = False) 
Пример #2
0
    def _Save(self):
        dtSetting = myIO_xlsx.DtTable()  #监听设置信息表
        dtSetting.dataName = "dataName"
        dtSetting.dataField = self.lstFields
        dtSetting.dataFieldType = [
            "", "", "", "", "bool", "", "bool", "", "", ""
        ]

        # 组装行数据
        for pSet in self.sets:
            if (not pSet.IsEnable()): continue
            for x in pSet.settings:
                pSetting = pSet.settings[x]
                if (pSetting.IsNull()): continue

                pValues = []
                pValues.append(pSet.stockInfo.extype + "." +
                               pSet.stockInfo.code_id)
                pValues.append(pSet.stockInfo.code_name)
                pValues.append(pSet.stockInfo.type)
                pValues.append(pSet.stockInfo.area)
                pValues.append(pSet.stockInfo.IsIndex())

                pValues.append(pSetting.monitorTag)
                pValues.append(pSetting.isValid)
                pValues.append(pSetting.setStr)
                pValues.append(str(pSetting.msgUsers).replace(',', ','))
                pValues.append(pSetting.mark)
                dtSetting.dataMat.append(pValues)

        # 保存
        # dtSetting.Save(self.Dir_Setting, "Setting_Quote", 0, 0, True, "监听设置表", -1, -1, False)
        dtSetting.Save_csv(self.Dir_Setting, "Setting_Quote", True, 0, 0)
Пример #3
0
    def _Save(self):
        dtUser = myIO_xlsx.DtTable()  #用户信息表
        dtUser.dataName = "dataName"
        dtUser.dataField = self.lstFields
        dtUser.dataFieldType = [
            'string', 'string', 'string', 'string', 'string', 'string',
            'string', 'string', 'string', 'string', 'string', 'string',
            'string', 'datetime', 'datetime'
        ]

        # 组装行数据
        keys = self.usrList.keys()
        for x in keys:
            pUser = self.usrList[x]
            pValues = []
            pValues.append(pUser.usrID_sys)
            pValues.append('、'.join(pUser.usrRelationID_sys))
            pValues.append(pUser.usrName)
            pValues.append(pUser.usrName_Nick)
            pValues.append(pUser.usrID)
            pValues.append(pUser.usrPlat)
            pValues.append(pUser.usrName_Full)
            pValues.append('、'.join(pUser.usrPhones))
            pValues.append('、'.join(pUser.usrTags))
            pValues.append('、'.join(pUser.usrAddresss))
            pValues.append(pUser.usrRamak)
            pValues.append(pUser.usrNotes)
            pValues.append(pUser.usrTime_Regist.strftime("%Y-%m-%d %H:%M:%S"))
            pValues.append(
                pUser.usrTime_Logined_Last.strftime("%Y-%m-%d %H:%M:%S"))
            dtUser.dataMat.append(pValues)

        # 保存
        # dtUser.Save(self.Dir_Setting, "UserInfo", 0, 0, True, "用户信息表")
        dtUser.Save_csv(self.Dir_Setting, "UserInfo", True, 0, 0)
Пример #4
0
    def _Init(self):
        #提取字段信息
        #dtUser = myIO_xlsx.loadDataTable(self.Path_SetUser, 0, 1)            #用户信息
        dtUser = myIO_xlsx.DtTable()
        dtUser.Load_csv(self.Path_SetUser, 1, 0, isUtf=True)

        if (len(dtUser.dataMat) < 1 or len(dtUser.dataField) < 1): return
        lstFields_ind = dtUser.Get_Index_Fields(self.lstFields)

        #转换为功能权限对象集
        for dtRow in dtUser.dataMat:
            pUser = myRoot_Usr("", dtRow[lstFields_ind["用户名"]])
            pUser.usrID_sys = dtRow[lstFields_ind["ID"]]
            pUser.usrRelationID_sys = dtRow[
                lstFields_ind["RelationIDs"]].split('、')
            pUser.usrName_Nick = dtRow[lstFields_ind["用户昵称"]]
            pUser.usrID = dtRow[lstFields_ind["用户ID"]]
            pUser.usrName_Full = dtRow[lstFields_ind["用户姓名"]]
            if (pUser.usrName_Full != ""):
                pUser.usrRelations.append(pUser.usrName_Full)

            pUser.usrPlat = dtRow[lstFields_ind["来源平台"]]
            pUser.usrPhones = dtRow[lstFields_ind["电话"]].split('、')
            pUser.usrTags = dtRow[lstFields_ind["标签"]].split('、')
            pUser.usrAddresss = dtRow[lstFields_ind["地址"]].split('、')
            pUser.usrRamak = dtRow[lstFields_ind["备注"]]
            pUser.usrNotes = dtRow[lstFields_ind["描述"]]
            pUser.usrTime_Regist = myData_Trans.Tran_ToDatetime(
                dtRow[lstFields_ind["注册时间"]])
            pUser.usrTime_Logined_Last = myData_Trans.Tran_ToDatetime(
                dtRow[lstFields_ind["最后登录时间"]])
            pUser.usrLoaded = True
            self._Index(pUser)  #索引用户信息
Пример #5
0
    def _Init_DB(self, path):
        #提取字段信息
        dtDB = myIO_xlsx.DtTable()
        dtDB.Load_csv(path, 1, 0, True, 0, ',', isUtf=True)

        lstFields = [
            "编号", "用户名", "操作类型", "标的代码", "标的名称", "标的所属市场", "标的所属市场板块", "标的价格",
            "标的价格-期望", "标的仓位", "标的所属行业", "标的所属概念", "交易类型", "交易子类型", "交易数量",
            "交易金额", "交易量仓位占比", "交易收益", "交易收益-总计", "交易时间", "是否删除", "记录人",
            "记录时间", "备注"
        ]
        if (dtDB.sheet == None): dtDB.dataField = lstFields
        lstFields_ind = dtDB.Get_Index_Fields(lstFields)
        self.lstFields = lstFields
        self.pathData = path

        #装载账单记录
        self.usrDB = {}
        self.indLst = []
        for dtRow in dtDB.dataMat:
            trade = myObj_Trade()
            if (dtRow[lstFields_ind["记录时间"]] == ""): continue
            trade.recordTime = myData_Trans.Tran_ToDatetime(
                dtRow[lstFields_ind["记录时间"]])
            trade.recorder = dtRow[lstFields_ind["记录人"]]

            trade.usrID = dtRow[lstFields_ind["用户名"]]
            trade.usrOrderType = dtRow[lstFields_ind["操作类型"]]

            trade.targetID = dtRow[lstFields_ind["标的代码"]]
            trade.targetName = dtRow[lstFields_ind["标的名称"]]
            trade.targetMarket = dtRow[lstFields_ind["标的所属市场"]]
            trade.targetMarketBoard = dtRow[lstFields_ind["标的所属市场板块"]]
            trade.targetIndustries = dtRow[lstFields_ind["标的所属行业"]].split("、")
            trade.targetConcepts = dtRow[lstFields_ind["标的所属概念"]].split("、")
            trade.targetPrice = float(dtRow[lstFields_ind["标的价格"]])
            trade.targetPrice_Ex = float(dtRow[lstFields_ind["标的价格-期望"]])
            trade.targetPosition = float(dtRow[lstFields_ind["标的仓位"]])

            trade.infoID = int(dtRow[lstFields_ind["编号"]])
            trade.tradeType = dtRow[lstFields_ind["交易类型"]]
            trade.tradeType_sub = dtRow[lstFields_ind["交易子类型"]]
            trade.tradeNum = float(dtRow[lstFields_ind["交易数量"]])
            trade.tradeMoney = float(dtRow[lstFields_ind["交易金额"]])
            trade.tradePosition = float(dtRow[lstFields_ind["交易量仓位占比"]])
            trade.tradeProfit = float(dtRow[lstFields_ind["交易收益"]])
            trade.tradeProfit_total = float(dtRow[lstFields_ind["交易收益-总计"]])
            trade.tradeTime = myData_Trans.Tran_ToDatetime(
                dtRow[lstFields_ind["交易时间"]])

            trade.isDel = myData.iif(dtRow[lstFields_ind["是否删除"]] == "TRUE",
                                     True, False)
            trade.remark = dtRow[lstFields_ind["备注"]]
            self.usrDB[trade.infoID] = trade
            self.indLst.append(trade.infoID)  # 顺序记录索引
        self.dtDB = dtDB
Пример #6
0
    def _Init(self):            
        #提取字段信息 
        dtSetting = myIO_xlsx.DtTable()  
        dtSetting.dataFieldType = ["","","","",""]
        dtSetting.Load_csv(self.Path_Stock, 1, 0, isUtf = True)
        if(len(dtSetting.dataMat) < 1 or len(dtSetting.dataField) < 1): return

        #转换为功能权限对象集
        for dtRow in dtSetting.dataMat:
            if(len(dtRow) < len(self.setFields)): continue
            pSet = myStock_Info(dtRow[0], dtRow[1], dtRow[2], dtRow[3], dtRow[4], dtRow[5], dtRow[6], dtRow[7], dtRow[8], dtRow[9])
            self._Index(pSet)               #索引设置信息 
Пример #7
0
    def _Init(self):            
        #提取字段信息  
        dtSetting = myIO_xlsx.DtTable() 
        dtSetting.dataFieldType = ["","","","","bool","",""]
        dtSetting.Load_csv(self.Path_SetSpider, 1, 0, isUtf = True) 
        if(len(dtSetting.dataMat) < 1 or len(dtSetting.dataField) < 1): return

        #转换为功能权限对象集
        lstFields_ind = dtSetting.Get_Index_Fields(self.lstFields)
        for dtRow in dtSetting.dataMat:
            if(len(dtRow) < len(self.lstFields)): continue
            strSet = myData_Trans.Tran_ToStr(dtRow, ',')
            self._Init_BySet_str(strSet)
Пример #8
0
    def _Init_DB(self, path):
        #提取字段信息
        dtDB = myIO_xlsx.DtTable()
        dtDB.Load_csv(path, 1, 0, True, 0, ',', isUtf=True)

        lstFields = [
            "编号", "账单类型", "交易方", "交易类型", "交易子类", "交易内容", "交易单价", "交易数量",
            "剩余数量", "交易金额", "手续费", "交易收益", "交易时间", "关联编号", "是否删除", "记录人",
            "记录时间", "备注"
        ]
        if (dtDB.sheet == None): dtDB.dataField = lstFields
        lstFields_ind = dtDB.Get_Index_Fields(lstFields)
        self.lstFields = lstFields
        self.pathData = path

        #装载账单记录
        self.usrDB = {}
        self.indLst = []
        for dtRow in dtDB.dataMat:
            bill = myObj_Bill()
            bill.usrID = self.usrID
            if (dtRow[lstFields_ind["记录时间"]] == ""): continue
            bill.recordTime = myData_Trans.Tran_ToDatetime(
                dtRow[lstFields_ind["记录时间"]])
            bill.recorder = dtRow[lstFields_ind["记录人"]]
            bill.usrBillType = dtRow[lstFields_ind["账单类型"]]

            bill.tradeID = int(dtRow[lstFields_ind["编号"]])
            bill.tradeParty = dtRow[lstFields_ind["交易方"]]
            bill.tradeType = dtRow[lstFields_ind["交易类型"]]
            bill.tradeTypeTarget = dtRow[lstFields_ind["交易子类"]]
            bill.tradeTarget = dtRow[lstFields_ind["交易内容"]]
            bill.tradePrice = float(dtRow[lstFields_ind["交易单价"]])
            bill.tradeNum = float(dtRow[lstFields_ind["交易数量"]])
            bill.tradeNum_Stock = float(dtRow[lstFields_ind["剩余数量"]])
            bill.tradeMoney = float(dtRow[lstFields_ind["交易金额"]])
            bill.tradePoundage = float(dtRow[lstFields_ind["手续费"]])
            bill.tradeProfit = float(dtRow[lstFields_ind["交易收益"]])
            bill.tradeTime = myData_Trans.Tran_ToDatetime(
                dtRow[lstFields_ind["交易时间"]])
            bill.tradeID_Relation = dtRow[lstFields_ind["关联编号"]]
            if (bill.tradeID_Relation == "0"):
                bill.tradeID_Relation = ""

            bill.isDel = myData.iif(dtRow[lstFields_ind["是否删除"]] == "TRUE",
                                    True, False)
            bill.remark = dtRow[lstFields_ind["备注"]]
            self.usrDB[bill.tradeID] = bill
            self.indLst.append(bill.tradeID)  # 顺序记录索引
        self.dtDB = dtDB
Пример #9
0
    def _Save(self):            
        dtSetting = myIO_xlsx.DtTable()     #监听设置信息表
        dtSetting.dataName = "dataName"
        dtSetting.dataField = self.lstFields
        
        # 组装行数据
        for key in self.setList:
            pSet = self.setList[key]
            if(pSet.isDeled): continue
            pValues = pSet.ToList()
            dtSetting.dataMat.append(pValues)

        # 保存
        dtSetting.Save_csv(self.Dir_Setting, "Setting_Spider", True, 0, 0)
Пример #10
0
    def loadData(self, strPath = ""):
        #提取分钟数据 
        if(strPath == ""): strPath = self.pathData 
        pDt_csv = myIO_xlsx.DtTable()
        pDt_csv.dataFieldType = Quote_Data_Static().csvFiled_Type()
        pDt_csv.Load_csv(strPath, isUtf = True)

        for x in range(0, len(pDt_csv.dataMat)):
            pData_S = Quote_Data_Static()
            pData_S.fromValueList(pDt_csv.dataMat[x]) 

            pDatas_S = Quote_Data_Statics_M(pData_S.dtTime, self.data, self.dataS_Min_Now, self.interval_M)
            pDatas_S.dataS = pData_S
            self.datasS_Min.append(pDatas_S)
            self.dataS_Min_Now = pDatas_S
        return True
Пример #11
0
    def _Init(self):
        #提取字段信息
        #dtGroup = myIO_xlsx.loadDataTable(self.Path_SetUser, 0, 1)            #用户信息
        dtGroup = myIO_xlsx.DtTable()
        dtGroup.Load_csv(self.Path_SetUser, 1, 0, isUtf=True)

        if (len(dtGroup.dataMat) < 1 or len(dtGroup.dataField) < 1): return
        lstFields_ind = dtGroup.Get_Index_Fields(self.lstFields)

        #转换为功能权限对象集
        for dtRow in dtGroup.dataMat:
            pGroup = myRoot_GroupInfo("", dtRow[lstFields_ind["群组名"]])
            pGroup.groupID = dtRow[lstFields_ind["ID"]]
            pGroup.typeName = dtRow[lstFields_ind["来源平台"]].split('、')
            pGroup.groupDesc = dtRow[lstFields_ind["描述"]]
            pGroup.groupTime_Regist = myData_Trans.Tran_ToDatetime(
                dtRow[lstFields_ind["注册时间"]])
            pGroup.groupTime_Logined_Last = myData_Trans.Tran_ToDatetime(
                dtRow[lstFields_ind["最后登录时间"]])
            self._Index(pGroup)  #索引用户信息
Пример #12
0
    def loadData(self, strDir = ""):
        #提取历史数据 
        strPath = self.dir + strDir + "History.csv"
        pDt_csv = myIO_xlsx.DtTable()
        pDt_csv.dataFieldType = Quote_Data_Static().csvFiled_Type()
        pDt_csv.Load_csv(strPath, isUtf = True)

        pDtNow = datetime.datetime.now()
        for x in range(0, len(pDt_csv.dataMat)):
            pData_S = Quote_Data_Static()
            pData_S.fromValueList(pDt_csv.dataMat[x])
            self.datasS.append(pData_S)


        #初始当前(未初始,或六小时内数据,默认当天)
        if(len(self.datasS) < 1 or ((pDtNow - self.datasS[0].dtTime).total_seconds() / 3600 > 6)):
            pData_S = Quote_Data_Static()
            self.datasS.append(pData_S) 

        #载入当天分钟数据集
        self.datasS_M = self.newData_S(self.data)       #只初始
        self.datasS_M.pathData = self.dir + self.fileName + "_M.csv"
        self.datasS_M.loadData("")
        return True
Пример #13
0
    def _Init(self):            
        #dtSetting = myIO_xlsx.loadDataTable(self.Dir_Setting + "Setting.csv", 0, 1)            #外部参数设置 
        #dtSetting_user = myIO_xlsx.loadDataTable(self.Dir_Setting + "Setting_User.csv", 0, 1)   #外部参数设置-权限用户 
        dtSetting = myIO_xlsx.DtTable()  
        dtSetting.dataFieldType = ["","","","","bool","bool","bool","bool","bool","",""]
        dtSetting.Load_csv(self.Dir_Setting + "Setting.csv", 1, 0, isUtf = True)
        dtSetting_user = myIO_xlsx.DtTable() 
        dtSetting_user.dataFieldType = ["","bool","",""]
        dtSetting_user.Load_csv(self.Dir_Setting + "Setting_User.csv", 1, 0, isUtf = True)

        #提取字段信息 
        lstFields = ["功能名称","文件名","类名","启动命令","统一启用","是否启用","一对一有效","群有效","群同时有效","群列表","平台列表"]
        lstFields_ind = dtSetting.Get_Index_Fields(lstFields)

        #转换为功能权限对象集
        if(self.hasGol):
            pGroups = gol._Get_Value('rootRobot_usrGroups_sys')  #所有可用群集
        for dtRow in dtSetting.dataMat:
            prjRoot = myRoot_Prj()
            prjRoot.prjName = dtRow[lstFields_ind["功能名称"]]
            prjRoot.fileName = dtRow[lstFields_ind["文件名"]]
            prjRoot.className = dtRow[lstFields_ind["类名"]]
            prjRoot.cmdStr = dtRow[lstFields_ind["启动命令"]]
            prjRoot.isEnable = myData.iif(dtRow[lstFields_ind["是否启用"]] == True, True, False)
            prjRoot.isEnable_All = myData.iif(dtRow[lstFields_ind["统一启用"]] == True, True, False)
            prjRoot.isEnable_one = myData.iif(dtRow[lstFields_ind["一对一有效"]] == True, True, False)
            prjRoot.isEnable_group = myData.iif(dtRow[lstFields_ind["群有效"]] == True, True, False)
            prjRoot.isEnable_groupAll = myData.iif(dtRow[lstFields_ind["群同时有效"]] == True, True, False)

            #平台集合
            lstGroup = dtRow[lstFields_ind["群列表"]].split('、')
            if(self.hasGol):
                for x in lstGroup:
                    pGroup = pGroups.Find_Group(x, x, "", True)
                    prjRoot.usrGroups._Index(pGroup)
            prjRoot.PlatsEnable = dtRow[lstFields_ind["平台列表"]].split('、')

            #实例功能对象并缓存索引
            prjRoot.creatIntance(self.usrID, self.usrName)
            self.prjRoots[prjRoot.prjName] = prjRoot
            self.prjCmds[prjRoot.cmdStr.lower()] = prjRoot.prjName

            #启动后台功能
            if(prjRoot.isRunBack and prjRoot.isEnable):
                prjRoot.prjClass.Done("@@" + prjRoot.cmdStr, "")          #自启动

        #增加默认隐藏功能 
        if(True): 	 
            prjRoot = myRoot_Prj()
            #_Init(self, prjName, fileName, className, cmdStr, isEnable, isEnable_All, isEnable_one, isEnable_group, isEnable_groupAll): 
            prjRoot._Init("权限提升", "myRobot_Root", "myRobot_Root", "zxcRobot_Root", True, False, True, False, False)
            prjRoot.creatIntance(self.usrID, self.usrName)
            self.prjRoots[prjRoot.prjName] = prjRoot
            self.prjCmds[prjRoot.cmdStr.lower()] = prjRoot.prjName

            prjLog = myRoot_Prj()
            prjLog._Init("消息日志", "myRobot_Log", "myRobot_Log", "zxcRobot_Log", True, True, True, True, False)
            prjLog.creatIntance(self.usrID, self.usrName)
            prjLog.prjClass.Done("@@zxcRobot_Log", "")          #自启动
            self.prjRoots[prjLog.prjName] = prjLog
            self.prjCmds[prjLog.cmdStr.lower()] = prjLog.prjName
        
            #prjRevoke = myRoot_Prj()
            #prjRevoke._Init("通知消息", "myRobot_Note", "myRobot_Note", "zxcRobot_Note", True, False, True, True, False)
            #prjRevoke.creatIntance(self.usrID, self.usrName)
            #prjRevoke.prjClass.Done("@@zxcRobot_Note", "")      #自启动
            #self.prjRoots[prjRevoke.prjName] = prjRevoke
            #self.prjCmds[prjRevoke.cmdStr.lower()] = prjRevoke.prjName
            
            #prjMsg = myRoot_Prj()
            #prjMsg._Init("消息处理", "myRobot_Msg", "myRobot_Msg", "zxcRobot_Msg", True, True, True, True, False)
            #prjMsg.creatIntance(self.usrID, self.usrName)
            #prjMsg.prjClass.Done("@@zxcRobot_Msg", "")          #自启动
            #self.prjRoots[prjMsg.prjName] = prjMsg
            #self.prjCmds[prjMsg.cmdStr.lower()] = prjMsg.prjName

            #prjStockAppetite = myRoot_Prj()
            #prjStockAppetite._Init("股票偏好", "myRobot_StockAppetite", "myRobot_StockAppetite", "zxcRobot_StockAppetite", True, False, False, True, False)
            #prjStockAppetite.creatIntance(self.usrID, self.usrName)
            #prjStockAppetite.prjClass.Done("@@zxcRobot_StockAppetite", "")          #自启动
            #self.prjRoots[prjStockAppetite.prjName] = prjStockAppetite
            #self.prjCmds[prjStockAppetite.cmdStr.lower()] = prjStockAppetite.prjName

        #用户权限设置
        if(True): 	 
            #提取字段信息 
            lstFields_user = ["用户名","功能权限","功能列表","关联人列表"]
            lstFields_ind_user = dtSetting_user.Get_Index_Fields(lstFields_user)

            #转换为功能权限对象集
            if(self.hasGol):
                pUsers = gol._Get_Value('rootRobot_usrInfos', None)     #权限信息
                for dtRow in dtSetting_user.dataMat:
                    #提取用户对象
                    #prjRoot_user = myRoot_Usr.myRoot_Usr("", usrName, usrName, "", self)
                    usrName = dtRow[lstFields_ind_user["用户名"]] 
                    pUser = pUsers._Find(usrName, usrName, usrName, "", "", True) 

                    #添加系统级权限用户 
                    bRoot = myData.iif(dtRow[lstFields_ind_user["功能权限"]] == True, True, False)
                    lstPrj = dtRow[lstFields_ind_user["功能列表"]]
                    if(lstPrj.count('、') > 0): lstPrj = lstPrj.split('、')
                    if(bRoot):
                        if(len(lstPrj) < 1):    #所有有效
                            for x in self.prjRoots.keys():
                                self.prjRoots[x].rootUsers._Add(pUser)
                        else:
                            for x in self.prjRoots.keys():
                                if(self.prjRoots[x].prjName in lstPrj):
                                    self.prjRoots[x].rootUsers._Add(pUser) 
                    #用户关联权限用户姓名集
                    lstUsr = dtRow[lstFields_ind_user["关联人列表"]].strip().split('、')
                    pUser.usrRelations = pUser.usrRelations + lstUsr
Пример #14
0
    马萨CRM电话接通率去重
"""

import sys, os, time
import mySystem

#引用根目录类文件夹--必须,否则非本地目录起动时无法找到自定义类
sysDir = mySystem.Append_Us("")
sysDir = mySystem.Append_Dir("myFunction")
import myIO, myIO_xlsx

#主启动程序
if __name__ == "__main__":
    # 载入表格数据
    #['客户: Group&Dealer Name', '客户: ID', '客户: 潜在客户状态', '客户: 客户所有人', '客户: 创建日期', '客户: 本季度云电话拨打是否符合考核要求', '客户: 本季度云电话是否成功拨打', '是否DCC拨打', '云电话拨打记录:拨打记录编号', '客户: 客户名', '客户: 客户 ID', '客户: 最近展厅来访日期', '拨打时间', '客户: 手机', ...]
    pTable = myIO_xlsx.DtTable()
    #pTable.dataFieldType= ['', "", "", "", "int", "", "", "", "", "", "", "int"]
    pTable.Load(
        "D:\\myCode\\zxcProj\\src\\Zxc.Python\\zxcPy.gsLog_Submits\\mySetting\\DCC.xlsx"
    )
    indFields = pTable.Get_Index_Fields(pTable.dataField)

    # 循环剔除重复
    dictDCC = {}
    lstRows = []
    rows = pTable._Rows()
    for i in range(0, rows):
        # 忽略已处理用户
        row = pTable[i]
        usrID = row[indFields['客户: ID']]
        if (dictDCC.get(usrID, None) != None):
Пример #15
0
def transData(dataType):
    dir = "D:\\myDevEvn\\UCMLCoreYunUMS7.6.1.8\\Standard\\Html\\BPObject\\sln_12002\\BusinessUnit\\我的测试\\data\\"
    pTable = myIO_xlsx.DtTable()
    pTable.Load_csv(dir + "dcjd_2020_08_20_pm.csv")

    indFields = pTable.Get_Index_Fields(pTable.dataField)
    ind_data = indFields[dataType]
    ind_name = indFields['"时间"']
    ind_lng = indFields['"经度"']
    ind_lat = indFields['"纬度"']

    # 循环提取数据
    maxValue = -999999
    lstRows = []
    rows = pTable._Rows()
    for i in range(0, rows):
        row = pTable[i]
        value = myData_Trans.To_Float(row[ind_data].replace('"', ''))
        if (value > maxValue):
            maxValue = value

        name = row[ind_name].replace('"', '')
        name = ""
        lng = myData_Trans.To_Float(row[ind_lng].replace('"', ''))
        lat = myData_Trans.To_Float(row[ind_lat].replace('"', ''))
        jsonInfo = {"name": name, "value": [lng, lat, value]}
        lstRows.append(jsonInfo)

    # 插值加密
    dataAdds = []
    deltaDic = 1.0 / 111000 * 5
    for i in range(0, rows - 1):
        value0 = lstRows[i]['value']
        value1 = lstRows[i + 1]['value']
        name = lstRows[i]['name']
        _deltaDic, linePoints = myData_Geometry.breakLine(
            value0[0], value0[1], value1[0], value1[1], deltaDic)
        if (len(linePoints) > 0):
            #计算插值
            dicT = myData_Geometry.distance(value0[0], value0[1], value1[0],
                                            value1[1])
            valueT = (value1[2] - value0[2]) / 2
            x0 = value0[0]
            y0 = value0[1]

            numPoint = len(linePoints)
            for x in range(0, numPoint, 2):
                x1 = linePoints[x]
                y1 = linePoints[x + 1]
                dicTemp = myData_Geometry.distance(x0, y0, x1, y1)
                valueTemp = value0[2] + valueT * (dicTemp / dicT)
                jsonInfo = {"name": name, "value": [x1, y1, valueTemp]}
                dataAdds.append({"index": i, "jsonInfo": jsonInfo})

    # 添加插值
    for i in range(len(dataAdds) - 1, -1, -1):
        dataAdd = dataAdds[i]
        jsonInfo = dataAdd["jsonInfo"]
        ind = dataAdd["index"]
        lstRows.insert(ind, jsonInfo)
    dataInfo = [lstRows, maxValue]
    strData = str(dataInfo).replace("'", '"')

    path = dir + dataType.replace('"', '') + ".json"
    myIO.Save_File(path, strData, True, False)
    pass
Пример #16
0
    def _Init_TradeDB(self, path):
        #提取字段信息
        dtDB = myIO_xlsx.DtTable()
        dtDB.Load_csv(path, 5, 0, True, 4, ',', isUtf=False)

        lstFields = [
            "交收日期", "合同号", "资金账号", "股东代码", "证券代码", "证券名称", "交易类别", "成交价格",
            "成交数量", "证券余额", "成交金额", "资金发生数", "资金余额", "费用合计", "净佣金", "规费",
            "印花税", "过户费", "经手费", "清算费", "前台费用", "交易规费", "证管费", "币种", "交易市场"
        ]
        if (dtDB.sheet == None): dtDB.dataField = lstFields
        lstFields_ind = dtDB.Get_Index_Fields(lstFields)

        #提取交易记录
        pBills = self.billManager._Find("Stock_" + self.usrID, True)

        #装载账单记录
        nInd = 0
        for nTimes in range(0, 1):
            for dtRow in dtDB.dataMat:
                #解析有效数据内容
                bill = myManager_Bill.myObj_Bill()
                bill.usrID = self.usrID
                bill.recorder = self.usrID

                bill.tradeParty = dtRow[lstFields_ind["交易市场"]]
                bill.tradeType = "投资"
                bill.tradeTypeTarget = "股票"
                bill.tradeTarget = dtRow[lstFields_ind["证券名称"]]
                bill.tradePrice = float(dtRow[lstFields_ind["成交价格"]])
                bill.tradeNum = int(dtRow[lstFields_ind["成交数量"]])
                bill.tradeMoney = float(dtRow[lstFields_ind["成交金额"]])
                bill.tradePoundage = float(dtRow[lstFields_ind["费用合计"]])
                bill.tradeTime = myData_Trans.Tran_ToDatetime(
                    dtRow[lstFields_ind["交收日期"]],
                    "%Y%m%d") + datetime.timedelta(seconds=nInd * 10)
                nInd = nInd + 1

                #区分类型,部分类型屏蔽
                strType = dtRow[lstFields_ind["交易类别"]]
                if (strType.count('买入') == 1 or strType.count('配售缴款')):
                    bill.usrBillType = '买入'
                elif (strType.count('配股入帐') == 1):
                    bill.usrBillType = '买入'
                    bill.tradePrice = bill.tradeMoney / bill.tradeNum
                    bill.tradePoundage = 0
                elif (strType.count('卖出') == 1):
                    bill.usrBillType = '卖出'
                elif (strType.count('银行转证券') == 1):
                    bill.usrBillType = '转账'
                    bill.tradeTypeTarget = "转入"
                    bill.tradeTarget = "现金"
                    bill.tradeParty = "券商"
                    bill.tradeMoney = float(dtRow[lstFields_ind["资金发生数"]])
                elif (strType.count('证券转银行') == 1):
                    bill.usrBillType = '转账'
                    bill.tradeTypeTarget = "转出"
                    bill.tradeTarget = "现金"
                    bill.tradeParty = "券商"
                    bill.tradeMoney = abs(float(dtRow[lstFields_ind["资金发生数"]]))
                elif (strType.count('融券回购') == 1):
                    bill.usrBillType = '买入'
                    bill.tradeTypeTarget = "国债逆回购"
                elif (strType.count('融券购回') == 1):
                    bill.usrBillType = '卖出'
                    bill.tradeTypeTarget = "国债逆回购"
                    bill.tradeMoney = float(dtRow[lstFields_ind["资金发生数"]])
                elif (strType.count('利息归本') == 1
                      or strType.count('利息税代扣') == 1):
                    bill.usrBillType = '分红'
                    bill.tradeTypeTarget = "活期"
                    bill.tradeTarget = "利息"
                    bill.tradeParty = "券商"
                    bill.tradeMoney = float(dtRow[lstFields_ind["资金发生数"]])
                elif (strType.count('红利入账') == 1):
                    bill.usrBillType = '分红'
                    if (bill.tradeNum != 0):
                        pass  #价格变动。。
                    bill.tradeMoney = float(dtRow[lstFields_ind["资金发生数"]])
                else:
                    continue

                #部分特殊类型名称转换
                if (bill.usrBillType == "卖出"):
                    if (bill.tradeTarget.count("转债") == 1):
                        bill.tradeTarget = bill.tradeTarget.replace("转债", "发债")
                if (bill.tradeTarget.count("发债") == 1):
                    bill.tradeTypeTarget = "可转债"
                if (bill.tradeTarget.count("发债") == 1):
                    bill.tradeTypeTarget = "可转债"

                #@@Test
                if (bill.usrBillType == "卖出"
                        and bill.tradeTarget.count("五粮") == 1):
                    aa = 1

                #添加账单信息
                strReturn = pBills._Add(bill)
                myDebug.Print(strReturn)
Пример #17
0
        print('\n')


if __name__ == '__main__':
    filename = "data/应急救援.docx"
    #pDocx = myDcox(filename)
    pDocx = myDcox()
    pDocx.loadDocx(filename, True)

    # 提取测试

    # 导出节点为excel
    paras = pDocx.getParas_All(None, True)
    if (len(paras) > 0):
        import myIO_xlsx
        pExcel = myIO_xlsx.DtTable()
        pExcel.dataName = "应急救援"
        for x in range(pDocx.paraDepth_min, pDocx.paraDepth_max + 1):
            pExcel.dataField.append("段落 " + str(x) + " 级")
        pExcel.dataField.append("备注")

        styleSets = []
        nDelta = pDocx.paraDepth_min
        nCols = pExcel._Cloumns()
        ind = 1  # 第一行不算
        nRows = 0
        for x in range(0, len(paras)):
            #循环跳过,
            if (nRows > 0):
                nRows -= 1
                continue