def main(): print('------' + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) + ',运行在线程序' + '------') base = Base() erp = base.conn('erp') offline = base.conn('offline') wms = base.conn('wms') mes = base.conn('mes') conns = {'offline': offline, 'erp': erp, 'wms': wms, 'mes': mes} config = conf.configs lasttime = conf.total_T newpoint = strftime("%Y-%m-%d %H:%M:%S", localtime()) for k, v in config.items(): if lasttime % int(v['T']) == 0: k2func(k, v['checkpoint'], newpoint, conns) config[k]['checkpoint'] = newpoint #修改checkpoint if lasttime == minx([v['T'] for v in config.values()]): new_T = 1 # 周期循环 else: new_T = lasttime + 1 with open(base.path1 + 'config.py', 'w') as f: f.write('configs=' + str(config) + '\n' + 'total_T=' + str(new_T)) #写入配置文件 offline.close() erp.close() wms.close() mes.close()
def __call__(self, conns): b = Base() yday = b.getYesterday() self.ora = conns['erp'] sql = open(b.path1 + 'sqls/itemcost.sql', 'r').read().replace('yesterday', yday) self.ms = b.conn('offline') res = self.ora.doget(sql) res.columns = [ 'ROW_ID', 'ITEM_NUMBER', 'ITEM_COST', 'LAST_UPDATE_DATE' ] self.ms.dopost("delete from item_cost where LAST_UPDATE_DATE>'" + yday + ' 00:00:00' + "'") b.batchwri(res, 'item_cost', self.ms)
def __call__(self): sql1="select distinct * from view_qiaojiao" b=Base() self.ms =b.conn('offline') che=self.ms.getdata('check_mess') res=[] for hdlot,checktime in che[['LOT','CHECKTIME']].dropna().drop_duplicates().values: hddata=self.ms.getdata('trace_production',tjs=["rtx_lot='"+hdlot+"'"]).drop_duplicates() hdfin=hddata[['psa_lot','pva_lot','psa_intime','psa_outtime','pva_intime','pva_outtime','rtx_intime','rtx_outtime','slt_intime','slt_outtime','slt_lot','rtx_lot']].values[0] for qdlot in hddata['psa_lot'].drop_duplicates().dropna().values: if qdlot=='null': res.append(list(hdfin)+['']*5) else: qddata=self.ms.getdata('qiaojiao_mess',tjs=["LOT='"+str(qdlot)+"'"]).drop_duplicates() for one in qddata.values: all=list(hdfin)+list(one)[1:-1]+[str(checktime)] for i in range(2,10): all[i]=str(all[i]) res.append(all) column=['psa_lot','pva_lot','psa_intime','psa_outtime','pva_intime','pva_outtime','rtx_intime','rtx_outtime','slt_intime','slt_outtime','slt_lot','hd_lot','DATA1','PARAMETER','SAMPLESEQ','OPERATION','checktime'] res =pd.DataFrame(res,columns=column) self.ms.dopost('truncate table all_qiaojiao') b.batchwri(res, 'all_qiaojiao',self.ms) self.ms.close()
columns=['riqi', 'costrate15', 'costrate30', 'type']) else: if chanchu_yuanfan30 == None or chanchu_yuanfan30 == 'null': chanchu_yuanfan30 = 0 if chanchu_yuanfan15 == None or chanchu_yuanfan15 == 'null': chanchu_yuanfan15 = 0 res = pd.DataFrame([[ b.getYesterday(day), 1 - float(chanchu_yuanfan15) / float(touru_yuanfan15), 1 - float(chanchu_yuanfan30) / float(touru_yuanfan30), '原反' ]], columns=[ 'riqi', 'costrate15', 'costrate30', 'type' ]) b.batchwri(res, 'pastcost', self.ms) base = Base() erp = base.conn('erp') offline = base.conn('offline') wms = base.conn('wms') mes = base.conn('mes') conns = {'offline': offline, 'erp': erp, 'wms': wms, 'mes': mes} zc = PastCost() zc(conns) offline.close() erp.close() wms.close() mes.close()
super(SWG, self).__init__() def __call__(self, conns): b = Base() self.ora = conns['wms'] self.ms = conns['offline'] sql = ''' select SUM(QTY)/1000 QTY,ITEM_CODE FROM WMS.A_PALLET_ITEM WHERE SUBINVENTORY_CODE IN ('F1FGA','F1RDA','F1CAA') AND QC_STATUS NOT IN ('B','D') GROUP BY ITEM_CODE''' res = self.ora.doget(sql) day = base.gettoday() res['日期'] = day self.ms.dopost("delete from swgkc where 日期='" + day + "'") b.batchwri(res, 'swgkc', self.ms) base = Base() offline = base.conn('offline') offline1 = base.conn('offline_test') wms = base.conn('wms') conns = {'offline': offline, 'wms': wms} conns1 = {'offline': offline1, 'wms': wms} t3s = SWG() t3s(conns) t3s(conns1) offline.close() wms.close()
import sys, os sys.path.append('/home/openstack/data_offline/data_factory/') from dataprocess.oracleprocess.mes.base import Base base = Base() sql = ''' SELECT NVL(SUM(CASE WHEN OPERATION = 'PSA' THEN QUANTITY END),0) PSA ,NVL(SUM(CASE WHEN OPERATION = '檢查_1' THEN QUANTITY END),0) VIC ,NVL(SUM(CASE WHEN OPERATION = '內包裝' THEN QUANTITY END),0) 内包 from MES.mes_wip_lot where STATUS NOT IN ('Terminated','Finished')''' ora = base.conn('mes') ms = base.conn('offline') ms_test = base.conn('offline_test') res = ora.doget(sql) res['日期'] = base.gettoday() # ms.dopost('truncate table PsaInnerPkg') base.batchwri(res, 'PsaInnerPkg', ms) base.batchwri(res, 'PsaInnerPkg', ms_test) ora.close() ms.close() ms_test.close()