Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
 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()
Ejemplo n.º 4
0
                    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()
Ejemplo n.º 5
0
        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()
Ejemplo n.º 6
0
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()