Пример #1
0
    def middleCollect(self):
        '''中间回收'''
        #左边
        new_distri_id = getNextVal(self.oracle)
        split_tax_end_nbr = addZero(len(self.tax_begin_nbr),
        int(self.tax_begin_nbr)-1)

        insertDistriAsSplit(self.oracle, new_distri_id = new_distri_id, distri_id =
        self.distri_id, staff_id = self.hold_staff_id, tax_begin_nbr =
        self.hold_tax_begin_nbr , tax_end_nbr = split_tax_end_nbr)

        insertDistriLog(oracle = self.oracle, distri_id = new_distri_id,
        oper_staff_id = self.oper_staff_id, oper = 'split collect', state =
        'hold')
        #右边
        new_distri_id = getNextVal(self.oracle)
        split_tax_begin_nbr = addZero(len(self.tax_end_nbr),
        int(self.tax_end_nbr)+1)

        insertDistriAsSplit(self.oracle, new_distri_id = new_distri_id, distri_id =
        self.distri_id, staff_id = self.hold_staff_id, tax_begin_nbr =
        split_tax_begin_nbr , tax_end_nbr = self.hold_tax_end_nbr)

        insertDistriLog(oracle = self.oracle, distri_id = new_distri_id,
        oper_staff_id = self.oper_staff_id, oper = 'split collect',state =
        'hold')
Пример #2
0
    def setDistriOut(self):
        checkBeginEndNbr(self.tax_begin_nbr, self.tax_end_nbr, 
        self.hold_tax_begin_nbr, self.hold_tax_end_nbr)
        update_dic = {'state':'out','state_date':'/sysdate'}
        where_dic = {'distri_id':self.distri_id}
        update(self.oracle, 'distri', update_dic, where_dic)

        insertDistriLog(self.oracle, distri_id = self.distri_id, oper_staff_id =
        self.oper_staff_id, oper = 'part be collect',state = 'out')
Пример #3
0
    def insertNewDistri(self):
        #回收
        new_distri_id = getNextVal(self.oracle)

        insertDistriAsSplit(self.oracle, new_distri_id = new_distri_id,
        distri_id = self.distri_id, staff_id = self.oper_staff_id,
        tax_begin_nbr = self.tax_begin_nbr, tax_end_nbr = self.tax_end_nbr)

        insertDistriLog(oracle = self.oracle, distri_id = new_distri_id,
        oper_staff_id = self.oper_staff_id, oper = 'collect', state = 'hold')
Пример #4
0
 def leftCollect(self):      
     '''右回收'''
     #拆分生成原持有左边剩下的
     new_distri_id = getNextVal(self.oracle)
     split_tax_end_nbr = addZero(len(self.tax_begin_nbr),
     int(self.tax_begin_nbr)-1)
     insertDistriAsSplit(self.oracle, new_distri_id = new_distri_id, distri_id =
     self.distri_id, staff_id = self.hold_staff_id, 
     tax_begin_nbr = self.hold_tax_begin_nbr, tax_end_nbr =
     split_tax_end_nbr)
     insertDistriLog(oracle = self.oracle, distri_id = new_distri_id,
     oper_staff_id = self.oper_staff_id, oper = 'split collect', state =
     'hold')
Пример #5
0
def allCollect(oracle, distri_id, oper_staff_id):
    '''全部回收'''
    update_dic = {'state':'out','state_date':'/sysdate'}
    where_dic = {'distri_id':distri_id}
    update(oracle, 'distri', update_dic, where_dic)
    
    insertDistriLog(oracle = oracle, distri_id = distri_id, oper_staff_id =
    oper_staff_id, oper = 'be collect',state = 'out')
    
    new_distri_id = getNextVal(oracle)
    insertDistriAsSplit(oracle, new_distri_id = new_distri_id, distri_id =
    distri_id, staff_id = oper_staff_id)

    insertDistriLog(oracle = oracle, distri_id = new_distri_id, oper_staff_id =
    oper_staff_id, oper = 'collect',state = 'hold')
Пример #6
0
def allInstance(oracle, **args):
    '''全部上架'''
    for k, v in args.items():
        exec "%s = '%s'" % (k, v)

    state = 'instance'
    update_dic = {'state': state, 'state_date': '/sysdate'}
    where_dic = {'distri_id': distri_id}
    update(oracle, 'distri', update_dic, where_dic,
           "and state in('in','hold')")
    insertDistriLog(oracle=oracle,
                    distri_id=distri_id,
                    oper_staff_id=oper_staff_id,
                    oper='instance',
                    state=state)

    #先插入一条
    dic = {}
    pool_id = pool.getNextVal(oracle)
    dic['pool_id'] = pool_id
    dic['distri_id'] = distri_id
    dic['tax_code'] = tax_code
    dic['tax_nbr'] = tax_begin_nbr
    #dic['sys_type'] = 'B'
    dic['state'] = 'instance'
    dic['state_date'] = '/sysdate'
    dic['staff_id'] = oper_staff_id
    insert(oracle, 'pool', dic)

    must_instance_count = int(tax_end_nbr) - int(tax_begin_nbr) + 1
    if (hold_tax_begin_nbr != hold_tax_end_nbr):

        length = len(hold_tax_begin_nbr)
        tax_nbr_list = []
        sql = '''	 insert into pool             
            		   (pool_id,                    
            		    distri_id,                  
            		    tax_code,                   
            		    tax_nbr,                    
            		    state,                      
            		    state_date,                 
            		    staff_id,                   
            		    sys_type)                
            		   (select pool_seq.nextval,        
            		           distri_id,           
            		           tax_code,            
            		           :tax_nbr,             
            		           state,               
            		           state_date,          
            		           staff_id,            
            		           sys_type            
            		      from  pool    
            		     where pool_id = %s)   ''' % pool_id
        if (int(hold_tax_end_nbr) - int(hold_tax_begin_nbr) > 100000):
            raise Warning_, '一次上架记录数有%s条,业务不允许,请下发拆分小于10W再上架' % (
                int(hold_tax_end_nbr) - int(hold_tax_begin_nbr))

        for i in range(int(hold_tax_begin_nbr) + 1, int(hold_tax_end_nbr) + 1):
            tax_nbr = addZero(length, i)
            dic = {'tax_nbr': tax_nbr}
            tax_nbr_list.append(dic)
        if (len(tax_nbr_list) > 100000):
            raise Warning_, '一次上架记录数有%s条,业务不允许,请下发拆分小于10W再上架'
        if (len(tax_nbr_list) > 50000):
            row_count = oracle.executemany(sql, tax_nbr_list[:50000])
            row_count += oracle.executemany(sql, tax_nbr_list[50000:])
        else:
            row_count = oracle.executemany(sql, tax_nbr_list)
        if (row_count != must_instance_count - 1):
            raise Exception, '未能正确上架 distri_id = %s,应上架%s,实际只上了%s,数据发生变动,请重新查' % (
                distri_id, must_instance_count, row_count + 1)

    where_dic = {
        'tax_code': tax_code,
        'distri_id': distri_id,
        'state': 'instance',
        'staff_id': oper_staff_id
    }
    and_the = "and to_number(tax_nbr)> = to_number('%s') and to_number(tax_nbr)< = to_number('%s')" % (
        tax_begin_nbr, tax_end_nbr)
    add_infos = {'oper': 'instance'}
    add_infos['oper_staff_id'] = oper_staff_id
    add_infos['oper_date'] = '/sysdate'
    insertLog(oracle, 'pool', where_dic, add_infos, and_the,
              must_instance_count)