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')
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')
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')
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')
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')
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)