def handle(self, *args, **options): logging.critical('start post lab orders ....') try: lbos = LabOrder.objects.filter(is_sync=False).exclude(vendor='0') count = lbos.count() index = 0 for lbo in lbos: index += 1 try: logging.critical('Index: %s / %s' % (index,count)) if lbo.is_sync: logging.critical('Order is Sync, passed ....') continue if lbo.vendor=='0': logging.critical("Order has'nt been distributed to any vendor. passed ....") continue logging.critical('Lab Order Number: %s' % lbo.lab_number) loc = lab_order_controller() loc.post_mrp(lbo) logging.critical('Post Ok!') except Exception as ex: logging.critical(str(ex)) except Exception as e: logging.critical(str(e)) logging.critical('post lab orders completed ....')
def add(self, request, data_dict): rm = response_message() rm.code = -9 rm.message = '准备操作' try: logging.debug('开始进入 ...') logging.debug('没有重复记录') with transaction.atomic(): loc = lab_order_controller() lbos = loc.get_by_entity(data_dict.get('lab_number')) lbo = None if len(lbos) > 0: lbo = lbos[0] if not lbo == None: objs = glasses_return.objects.all().order_by('-id')[:1] # 2019.03.30 by guof. # 去掉针对连续重复生成同一订单号的成镜返工单的限制 # 调整针对连续重复操作的限制规则 if len(objs) > 0: ob = objs[0] if ob.lab_number == lbo.lab_number \ and lbo.status == 'GLASSES_RETURN': rm.code = -3 rm.message = '疑似重复操作' return rm if not lbo.status == 'FINAL_INSPECTION_NO' and \ not lbo.status == 'GLASSES_RECEIVE' and \ not lbo.status == 'FINAL_INSPECTION_YES' and \ not lbo.status == 'FINAL_INSPECTION': rm.code = -4 rm.message = '只有 待装配/装配完成/终检/终检合格或终检不合格 的状态时才可以生成镜片返工; \n该订单当前状态为:{%s}' % lbo.get_status_display() return rm if data_dict.get('lens_check') == 'true': lenreason = LensReason.objects.get(reason_code=data_dict.get('reason_code')) obj = glasses_return() obj.laborder_id = lbo.id obj.lab_number = lbo.lab_number obj.laborder_entity = lbo obj.user_id = request.user.id obj.user_name = request.user.username obj.doc_type = '1' obj.assembler_id = data_dict.get('assembler') obj.assembler_user_code = data_dict.get('assembler_user_code') obj.assembler_user_name = data_dict.get('assembler_user_name') obj.reason_code = data_dict.get('reason_code') obj.reason = lenreason.reason_name obj.lens_return = data_dict.get('lens_return') if obj.lens_return == '0': obj.lens_return_qty = 2 else: obj.lens_return_qty = 1 obj.comments = data_dict.get('comments') obj.save() if data_dict.get('frame_check') == 'true': framereason = FrameReason.objects.get(reason_code=data_dict.get('frame_reason')) obj = glasses_return() obj.laborder_id = lbo.id obj.lab_number = lbo.lab_number obj.laborder_entity = lbo obj.user_id = request.user.id obj.user_name = request.user.username obj.doc_type = '2' obj.assembler_id = data_dict.get('assembler') obj.assembler_user_code = data_dict.get('assembler_user_code') obj.assembler_user_name = data_dict.get('assembler_user_name') obj.reason_code = data_dict.get('frame_reason') obj.reason = framereason.reason_name obj.lens_return = '' obj.lens_return_qty = 0 obj.comments = data_dict.get('frame_comments') obj.save() lbo.status = 'GLASSES_RETURN' lbo.is_glasses_return = True lbo.save() tloc = tracking_lab_order_controller() tloc.tracking(lbo, request.user, 'GLASSES_RETURN', '成镜返工', obj.reason) rm.obj = obj rm.code = 0 rm.message = '此操作已成功' else: rm.code = -4 rm.message = '订单未找到' return rm except Exception as e: logging.debug(str(e)) rm.capture_execption(e) return rm
def add(self, request, lab_order_entity, qualified, reason_code, reason, act_lens_sku, act_lens_name): rm = response_message() rm.code = -9 rm.message = '准备操作' try: logging.debug('开始进入 ...') logging.debug('没有重复记录') logging.debug('------------------------------------------------------------') logging.debug('lab entity: %s' % lab_order_entity) logging.debug('------------------------------------------------------------') # with transaction.atomic(): loc = lab_order_controller() lbos = loc.get_by_entity(lab_order_entity) if len(lbos) == 0: rm.code = -20 rm.message = "未找到订单记录,请求的订单号[%s]" % lab_order_entity return rm lbo = None if len(lbos) > 0: lbo = lbos[0] if not lbo == None: objs = preliminary_checking.objects.all().order_by('-id')[:1] if len(objs) > 0: ob = objs[0] if ob.lab_number == lbo.lab_number: rm.code = -3 rm.message = '疑似重复操作' return rm if not lbo.status == 'LENS_REGISTRATION': rm.code = -4 rm.message = '只有镜片来片登记之后 的状态时才可以初检; 该订单当前状态为:{%s}' % lbo.get_status_display() return rm obj = preliminary_checking() obj.laborder_id = lbo.id obj.lab_number = lbo.lab_number obj.laborder_entity = lbo obj.user_id = request.user.id obj.user_name = request.user.username obj.is_qualified = qualified obj.reason_code = reason_code obj.reason = reason obj.save() if qualified == True: logging.debug('') lc = lens_collection() lc.pc_entity = obj lc.laborder_entity = lbo lc.laborder_id = lbo.id lc.lab_number = lbo.lab_number lc.user_id = request.user.id lc.user_name = request.user.username lc.save() if not act_lens_sku == '': if not lbo.act_lens_sku == act_lens_sku: lbo.act_lens_sku = act_lens_sku lbo.act_lens_name = act_lens_name self.update_status(lbo.id) # lbo.status = 'LENS_RECEIVE' # lbo.save() tloc = tracking_lab_order_controller() tloc.tracking(lbo, request.user, 'LENS_RECEIVE') lbo.status = 'LENS_RECEIVE' lbo.save() # from django.db import connection # cursor = connection.cursor() # # 更新操作 # cursor.execute( # "update oms_laborder set status='LENS_RECEIVE' where lab_number='%s'" % lbo.lab_number) logging.debug('1.----%s' % qualified) else: lc = lens_return() lc.pc_entity = obj lc.laborder_entity = lbo lc.laborder_id = lbo.id lc.lab_number = lbo.lab_number lc.user_id = request.user.id lc.user_name = request.user.username lc.reason_code = reason_code lc.reason = reason lc.save() lbo.status = 'LENS_RETURN' lbo.save() tloc = tracking_lab_order_controller() tloc.tracking(lbo, request.user, 'LENS_RETURN', '镜片退货', reason) logging.debug('2.----%s' % qualified) rm.obj = obj rm.code = 0 rm.message = '此操作已成功' else: rm.code = -4 rm.message = '订单未找到' return rm except Exception as e: logging.debug(str(e)) rm.capture_execption(e) return rm
def add(self, request, lab_order_entity): rm = response_message() rm.code = -9 rm.message = '准备操作' try: with transaction.atomic(): logging.debug('开始进入 ...') logging.debug('没有重复记录') loc = lab_order_controller() lbos = loc.get_by_entity(lab_order_entity) lbo = None if len(lbos) > 0: lbo = lbos[0] if not lbo == None: objs = lens_registration.objects.all().order_by('-id')[:1] if len(objs) > 0: ob = objs[0] if ob.lab_number == lbo.lab_number and \ lbo.status == 'LENS_REGISTRATION': rm.code = -3 rm.message = '疑似重复操作' return rm if not lbo.status == 'PRINT_DATE' and not lbo.status == 'LENS_RETURN' \ and not lbo.status == 'GLASSES_RETURN' and not lbo.status == 'LENS_OUTBOUND' \ and not lbo.status == 'REQUEST_NOTES' and not lbo.status == 'FRAME_OUTBOUND': rm.code = -4 rm.message = '只有订单处于镜片生产/镜片退货/成镜退货/镜片出库的状态时才可以执行来片登记; ' \ '\n该订单当前状态为:{%s}' % lbo.get_status_display() return rm # VD 6 ,VD 8,lens_order为已出库状态才能来片登记 if lbo.vendor == '6' or lbo.vendor == '8': los = lens_order.objects.filter(lab_number=lbo.lab_number) for lo in los: if not lo.status == 'LENS_OUTBOUND': rm.code = -4 rm.message = '此订单未完成镜片出库' return rm obj = lens_registration() obj.laborder_id = lbo.id obj.lab_number = lbo.lab_number obj.laborder_entity = lbo obj.user_id = request.user.id obj.user_name = request.user.username obj.save() lbo.status = 'LENS_REGISTRATION' lbo.save() tloc = tracking_lab_order_controller() tloc.tracking(lbo, request.user, 'LENS_REGISTRATION') rm.obj = obj rm.code = 0 rm.message = '此操作已成功' else: rm.code = -4 rm.message = '订单未找到' return rm except Exception as e: logging.debug(str(e)) rm.capture_execption(e) return rm
def handle(self, *args, **options): logging.critical('start sync_pg_orderitem_ordertype ....') try: from util.ups import run from util.utils import LogHelper start_date = '2020-01-01 00:00:00' sd = datetime.datetime.strptime(start_date, '%Y-%m-%d %H:%M:%S') lh = LogHelper(settings.BASE_DIR + '/logs/sync_pgorder_shipments_tracking_code_maintenance.csv') lbos = LabOrder.objects.filter( create_at__gte=sd , status='SHIPPING').filter( act_ship_direction='STANDARD' ) \ .only( 'id', 'lab_number', 'order_number', 'shipping_number') lbos_count = lbos.count() idx = 1 for lbo in lbos: try: logging.critical('----------------------------------------') logging.critical('index: %s / count:%s' % (idx, lbos_count)) msg = ',%s,%s,%s' % ( lbo.order_number, lbo.lab_number, lbo.shipping_number) logging.critical(msg) shipping_number = lbo.shipping_number lab_number = lbo.lab_number sleep_life = random.randint(1, 2) logging.critical('sleep: %s Seconds ....' % sleep_life) time.sleep(sleep_life) loc = lab_order_controller() resp = loc.get_tracking_code(lab_number=lab_number) logging.debug(resp) tracking_code = resp.get('data', '') if tracking_code: LabOrder.objects.filter(lab_number=lab_number).update(tracking_code=tracking_code) lh.write(msg) else: logging.debug('tracking is null, passed ....') except Exception as ex: logging.error(str(ex)) idx += 1 except Exception as e: logging.critical(str(e)) logging.critical('end sync_pg_orderitem_ordertype ....')
def redirect_construction_voucher_finished_glasses_quick_submit(request): _form_data = {} _form_data['request_feature'] = 'Finished Glasses' _items = [] _paginator = None _id = -1 _id = request.GET.get('id', -1) logging.debug('id: %s' % _id) _form_data['id'] = _id try: if _id != -1: loc = lab_order_controller() lbos = loc.get_by_entity(_id) lbo = lbos[0] lab_number = lbo.lab_number if not lbo.status == 'LENS_RECEIVE' and not lbo.status == 'GLASSES_RETURN' and not lbo.status == 'COLLECTION' and not lbo.status == 'ASSEMBLING' and lbo.quantity == 1: _form_data['code'] = -1 _form_data[ 'message'] = "订单只有 镜片收货或成镜返工 状态,才能更改状态!当前订单状态为{0}".format( lbo.status) _form_data['laborder'] = lbo return render( request, "construction_voucher_finished_glasses_quick.html", { 'form_data': _form_data, }) elif lbo.status == 'ASSEMBLING': _form_data['code'] = -1 _form_data['message'] = "该订单已是待装配状态!" _form_data['laborder'] = lbo _form_data['flag'] = 0 return render( request, "construction_voucher_finished_glasses_quick.html", { 'form_data': _form_data, }) if lbo.is_production_change: _form_data['message'] = "制作参数已经修改,请补打印作业单" _form_data['flag'] = 0 _form_data['code'] = 0 elif lbo.is_production_change == False: lbo.status = 'ASSEMBLING' lbo.save() tloc = tracking_lab_order_controller() tloc.tracking(lbo, request.user, 'ASSEMBLING') _form_data['code'] = 0 _form_data['message'] = "【装配】操作成功!" # 移除仓位 lc = locker_controller() lc.deleteItem(lab_number) lbo = LabOrder.objects.get(lab_number=lab_number) _form_data['laborder'] = lbo return render(request, "construction_voucher_finished_glasses_quick.html", { 'form_data': _form_data, }) except Exception as e: logging.debug('Exception: %s' % e.message) _form_data['exceptions'] = e _form_data['error_message'] = e.message return render(request, "exceptions.html", { 'form_data': _form_data, })
def redirect_preliminary_checking_quick(request): ''' 初检快捷 :param request: :return: ''' rm = response_message() _form_data = {} _form_data['request_feature'] = 'Preliminary Checking' items = [] lbo = None try: if request.method == 'POST': res = {} lab_number = request.POST.get('lab_nubmer', '') qualified = request.POST.get('qualified', '') reason_code = request.POST.get('reason_code', '') reason = request.POST.get('reason', '') act_lens_sku = request.POST.get('act_lens_sku', '') act_lens_name = request.POST.get('act_lens_name', '') if lab_number == '': res['code'] = -1 res['message'] = '请输入订单号!!' return HttpResponse(json.dumps(res)) if qualified == '': res['code'] = -1 res['message'] = '无质检结果信息!!' return HttpResponse(json.dumps(res)) try: logging.debug('----------------------------------------') if qualified == '1': is_qualified = True else: is_qualified = False pcc = preliminary_checking_control() # preliminary_checking_control.add 已加事务 rm = pcc.add( request, lab_number, is_qualified, reason_code, reason, act_lens_sku, act_lens_name, ) res['code'] = rm.code res['message'] = rm.message logging.debug('----------------------------------------') except Exception as e: res['code'] = -999 res['message'] = '数据遇到异常: ' + e.message return HttpResponse(json.dumps(res)) entity_id = request.GET.get('entity_id', '') # _form_data["search_entity"] = entity_id if not entity_id == '': loc = lab_order_controller() lbos = loc.get_by_entity(entity_id) if len(lbos) == 1: lbo = lbos[0] lab_number = lbo.lab_number lbo = LabOrder.objects.get(lab_number=lab_number) _form_data['laborder'] = lbo _form_data['code'] = 0 if lbo.status == 'LENS_RECEIVE': _form_data['message'] = '当前状态为【镜片收货】' else: _form_data['message'] = '当前状态为【镜片退货】' return render( request, "construction_voucher_finished_glasses_quick.html", { 'form_data': _form_data, 'item': lbo, 'requestUrl': reverse('workshop_preliminary_checking_quick'), }) except Exception as e: logging.debug('Exception: %s' % e.message) _form_data['exceptions'] = e _form_data['error_message'] = e.message return render( request, "exceptions.html", { 'form_data': _form_data, 'requestUrl': reverse('workshop_preliminary_checking_quick'), })
def redirect_lens_registration_quick(request): ''' 来片登记快捷 :param request: :return: ''' rm = response_message() _form_data = {} # 字典,相当于hashMap _form_data['code'] = 0 _form_data['request_feature'] = 'Lens Registration' items = [] lbo = None try: # if request.method == 'POST': # res = {} # lab_number = request.POST.get('lab_nubmer', '') # # if lab_number == '': # res['code'] = -1 # res['message'] = '请输入订单号!!' # _form_data['code'] = -1 # _form_data['message'] = '请输入订单号!!' # return HttpResponse(json.dumps(res)) # # try: # logging.debug('----------------------------------------') # lrc = lens_registration_control() # # lens_registration_control.add 已添加事务 # rm = lrc.add( # request, # lab_number # ) # res['code'] = rm.code # res['message'] = rm.message # logging.debug('----------------------------------------') # # except Exception as e: # res['code'] = -999 # res['message'] = '数据遇到异常: ' + e.message # _form_data['code'] = -1 # _form_data['message'] = '数据遇到异常: ' + e.message # return HttpResponse(json.dumps(res)) entity_id = request.GET.get('entity_id', '') if entity_id == '': _form_data['code'] = -1 _form_data['message'] = '请输入订单号!!' return render( request, "construction_voucher_finished_glasses_quick.html", { 'form_data': _form_data, 'requestUrl': reverse('workshop_lens_registration_quick'), }) loc = lab_order_controller() lbos = loc.get_by_entity(entity_id) if len(lbos) == 1: lbo = lbos[0] lab_number = lbo.lab_number # 用来到wms_product_frame中查找sku_specs字段(警示信息) caution_info = product_frame.objects.get(sku=lbo.frame) _form_data['caution_info'] = caution_info.sku_specs try: logging.debug('----------------------------------------') lrc = lens_registration_control() # lens_registration_control.add 已添加事务 rm = lrc.add(request, lab_number) if rm.code == 0: _form_data['message'] = "【来片登记】操作成功!" else: _form_data['code'] = rm.code _form_data['message'] = rm.message logging.debug('----------------------------------------') except Exception as e: _form_data['code'] = -1 _form_data['message'] = '数据遇到异常: ' + e.message lbo = LabOrder.objects.get(lab_number=lab_number) _form_data['laborder'] = lbo special_handling = lbo.special_handling if lbo.special_handling else '' _form_data['special_handling'] = special_handling.replace( "\n", "").replace("\t", "").replace("\r", "") return render( request, "construction_voucher_finished_glasses_quick.html", { 'form_data': _form_data, 'item': lbo, 'requestUrl': reverse('workshop_lens_registration_quick'), }) except Exception as e: logging.debug('Exception: %s' % e.message) _form_data['exceptions'] = e _form_data['error_message'] = e.message _form_data['code'] = -1 return render( request, "exceptions.html", { 'form_data': _form_data, 'requestUrl': reverse('workshop_lens_registration_quick'), })
def redirect_assembled(request): ''' 装配完成 :param request: :return: ''' rm = response_message() _form_data = {} _form_data['request_feature'] = 'ASSEMBLED' items = [] lbo = None try: if request.method == 'POST': res = {} lab_number = request.POST.get('lab_nubmer', '') if lab_number == '': res['code'] = -1 res['message'] = '请输入订单号!!' return HttpResponse(json.dumps(res)) try: cac = assembled_control() # add 中已做事务处理 rm = cac.add(request, lab_number) res['code'] = rm.code res['message'] = rm.message tloc = tracking_lab_order_controller() tloc.tracking(lbo, request.user, "ASSEMBLING", "装配完成") except Exception as e: res['code'] = -999 res['message'] = '数据遇到异常: ' + e.message return HttpResponse(json.dumps(res)) entity_id = request.GET.get('entity_id', '') # _form_data["search_entity"] = entity_id if not entity_id == '': loc = lab_order_controller() lbos = loc.get_by_entity(entity_id) if len(lbos) == 1: lbo = lbos[0] lab_number = lbo.lab_number # 用来到wms_product_frame中查找sku_specs字段(警示信息) caution_info = product_frame.objects.get(sku=lbo.frame) _form_data['caution_info'] = caution_info.sku_specs lbo = LabOrder.objects.get(lab_number=lab_number) _form_data['laborder'] = lbo return render( request, "assembled.html", { 'form_data': _form_data, 'requestUrl': reverse('workshop_assembled'), 'item': lbo, }) except Exception as e: logging.debug('Exception: %s' % e.message) _form_data['exceptions'] = e _form_data['error_message'] = e.message return render(request, "exceptions.html", { 'form_data': _form_data, 'requestUrl': reverse('workshop_assembled'), })
def redirect_glasses_return(request): ''' 装配完成 :param request: :return: ''' rm = response_message() _form_data = {} _page_info = {} _form_data['request_feature'] = 'GLASSES_RETURN' items = [] lbo = None try: entity_id = request.GET.get('entity_id', '') page = request.GET.get('page', 1) currentPage = int(page) filter_ext = {} filter_ext['status'] = 'GLASSES_RETURN' filter_ext['vendor'] = 5 if not entity_id == '': loc = lab_order_controller() lbos = loc.get_by_entity(entity_id) if len(lbos) == 1: lbo = lbos[0] _id = lbo.lab_number else: _id = entity_id filter_ext['lab_number'] = _id ac = assembling_control() items = ac.get_items(filter_ext) count = len(items) if count > 0: _form_data['total'] = count _page_info['total'] = count if sorted == 'set_time': paginator = Paginator(items, count) else: paginator = Paginator( items, const.PAGE_SIZE_MORE) # Show 20 contacts per page try: items = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. items = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. items = paginator.page(paginator.num_pages) if request.method == 'POST': return HttpResponse("ok") return render( request, "glasses_return.html", { 'form_data': _form_data, 'requestUrl': reverse('workshop_glasses_return'), 'list': items, 'page_info': _page_info, 'currentPage': currentPage, 'paginator': paginator, 'filter': filter, }) except Exception as e: logging.debug('Exception: %s' % e.message) _form_data['exceptions'] = e _form_data['error_message'] = e.message return render( request, "exceptions.html", { 'form_data': _form_data, 'requestUrl': reverse('workshop_glasses_return'), })
def add( self, request, lab_order_entity, ): rm = response_message() rm.message = '此操作已成功' try: logging.debug('开始进入 ...') with transaction.atomic(): loc = lab_order_controller() lbos = loc.get_by_entity(lab_order_entity) lbo = None if len(lbos) > 0: lbo = lbos[0] if not lbo == None: objs = received_glasses.objects.all().order_by('-id')[:1] if len(objs) > 0: ob = objs[0] if ob.lab_number == lbo.lab_number \ and lbo.status == 'GLASSES_RECEIVE': rm.code = -3 rm.message = '疑似重复操作' return rm # and not lbo.status == 'PRINT_DATE' \ if not lbo.status == 'ASSEMBLING' \ and not lbo.status == 'ASSEMBLED' \ and not lbo.status == 'FINAL_INSPECTION_NO' \ and not lbo.status == 'GLASSES_RETURN': rm.code = -4 rm.message = '只有订单处于装配中的状态时才可以执行成镜收货;\n终检不合格&成镜返工支持成镜收货;\n' \ '镜片生产状态支持镜片收货;\n该订单当前状态为:{%s}' % lbo.get_status_display() return rm rg = received_glasses() rg.lab_order_entity = lbo.id rg.lab_number = lbo.lab_number rg.user_id = request.user.id rg.user_name = request.user.username rg.save() lbo.status = 'GLASSES_RECEIVE' lbo.save() tloc = tracking_lab_order_controller() tloc.tracking(lbo, request.user, 'GLASSES_RECEIVE') rm.obj = rg else: rm.code = -4 rm.message = '订单未找到' return rm except Exception as e: logging.debug(e.message) rm.capture_execption(e) return rm
def get_statment_list(self, request): rm = response_message() lab_number = request.GET.get('lab_number', '') try: if not lab_number == '': objs = [] loc = lab_order_controller() objs = loc.get_by_entity(lab_number) lab_number = objs[0].lab_number doc_type = request.GET.get('doc_type', '') logging.debug('type' + doc_type) if doc_type == 'LENS': vendor = request.GET.get('filter', '') logging.debug('len' + lab_number) year = request.GET.get('year', '') month = request.GET.get('month', '') day = request.GET.get('day', '') if lab_number == '': today = timezone.now().date() if year == '': year = today.year if month == '': month = today.month if day == '': day = today.day year = int(year) month = int(month) day = int(day) if day <> '': day = datetime.date(year, month, day) logging.debug(day) day2 = day + datetime.timedelta(days=1) logging.debug(day2) lrs = lens_registration.objects.filter( created_at__range=(day, day2), laborder_entity__vendor=vendor) logging.critical(lrs.query) # logging.debug(lrs.query) # for lr in lrs: # logging.debug(lr.id) rm.obj = lrs else: lrs = lens_registration.objects.filter( lab_number=lab_number) rm.obj = lrs else: list = [] rgs = None logging.debug(lab_number) workshop = request.GET.get('workshop', '') year = request.GET.get('year', '') month = request.GET.get('month', '') day = request.GET.get('day', '') if lab_number == '': today = timezone.now().date() if year == '': year = today.year if month == '': month = today.month if day == '': day = today.day year = int(year) month = int(month) day = int(day) if day <> '': day = datetime.date(year, month, day) logging.debug(day) day2 = day + datetime.timedelta(days=1) logging.debug(day2) rgs = received_glasses.objects.filter( created_at__range=(day, day2)) for rg in rgs: lbo = LabOrder.objects.get(id=rg.lab_order_entity) ln_rg = received_glasses.objects.filter( created_at__lt=day, lab_number=rg.lab_number) logging.debug(ln_rg.count()) if lbo.workshop == workshop and not ln_rg.count(): rg.laborder_entity = lbo list.append(rg) logging.debug(rgs.query) else: rgs = received_glasses.objects.filter( lab_number=lab_number) logging.debug(rgs.count()) for rg in rgs: lbo = LabOrder.objects.get(id=rg.lab_order_entity) rg.laborder_entity = lbo list.append(rg) rm.obj = list return rm except Exception as e: rm.capture_execption(e) logging.critical(e) return rm
def add( self, request, lab_order_entity, ): rm = response_message() rm.message = '此操作已成功' try: logging.debug('开始进入 ...') with transaction.atomic(): loc = lab_order_controller() lbos = loc.get_by_entity(lab_order_entity) lbo = None if len(lbos) > 0: lbo = lbos[0] if not lbo == None: objs = assembled.objects.all().order_by('-id')[:1] if len(objs) > 0: ob = objs[0] if ob.lab_number == lbo.lab_number: rm.code = -3 rm.message = '疑似重复操作' return rm if not lbo.status == 'ASSEMBLING': rm.code = -4 rm.message = '只有订单处于待装配的状态时才可以执行装配完成:{%s}' % lbo.get_status_display( ) return rm rg = assembled() rg.lab_order_entity = lbo.id rg.lab_number = lbo.lab_number rg.user_id = request.user.id rg.user_name = request.user.username rg.save() lbo.status = 'ASSEMBLED' lbo.save() tloc = tracking_lab_order_controller() tloc.tracking(lbo, request.user, "ASSEMBLED", "装配完成") rm.obj = rg else: rm.code = -4 rm.message = '订单未找到' return rm except Exception as e: logging.debug(e.message) rm.capture_execption(e) return rm