测试优化代码后的代码扫描效果,优化部分代码审查问题

This commit is contained in:
mgw
2023-11-20 10:48:43 +08:00
parent 24e75f8895
commit d2899fe38e
10 changed files with 51 additions and 69 deletions

View File

@@ -1,22 +1,21 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import base64
import logging
import os import os
import json
import hashlib
import time import time
import requests import json
from datetime import datetime, timedelta import base64
from odoo.http import request
from odoo import fields, models, api, _
from odoo.exceptions import ValidationError
from odoo.exceptions import UserError
from odoo.addons.sf_machine_connect.models import py2opcua, ftp_operate
import shutil import shutil
import logging
import hashlib
from io import BytesIO from io import BytesIO
from zipfile import ZipFile from zipfile import ZipFile
from datetime import datetime, timedelta
import requests
from odoo.http import request
from odoo import fields, models, api, _
from odoo.exceptions import UserError
from odoo.exceptions import MissingError from odoo.exceptions import MissingError
from odoo.exceptions import ValidationError
from odoo.addons.sf_machine_connect.models import py2opcua, ftp_operate
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
@@ -514,7 +513,6 @@ class WorkCenterBarcode(models.Model):
print('111111111111111111111') print('111111111111111111111')
workorder_obj_target = self.env['mrp.workorder'].sudo().search([('tray_code', '=', barcode)]) workorder_obj_target = self.env['mrp.workorder'].sudo().search([('tray_code', '=', barcode)])
workorder_obj_current = self.env['mrp.workorder'].sudo().search([('id', '=', kwargs['current_id'])]) workorder_obj_current = self.env['mrp.workorder'].sudo().search([('id', '=', kwargs['current_id'])])
# workorder_cnc = self.env['mrp.workorder'].sudo().search(['&', ('production_id', '=', workorder_obj.production_id.id), ('name', '=', 'CNC加工')])
workorder_cnc = self.env['mrp.workorder'].sudo().search( workorder_cnc = self.env['mrp.workorder'].sudo().search(
['&', ('production_id', '=', workorder_obj_target.production_id.id), ['&', ('production_id', '=', workorder_obj_target.production_id.id),
('name', '=', workorder_obj_current.name)]) ('name', '=', workorder_obj_current.name)])

View File

@@ -49,7 +49,6 @@ class FtpController:
self.port = port self.port = port
self.username = username self.username = username
self.password = password self.password = password
# _logger.info("===================ftppppp==================%s,%s,%s,%s" % self.host, self.port, self.username, self.password)
# 测试 # 测试
print("==============================================") print("==============================================")
print(self.username, self.port, self.host, self.password) print(self.username, self.port, self.host, self.password)

View File

@@ -33,4 +33,3 @@ class ResBFMConfigSettings(models.TransientModel):
super(ResBFMConfigSettings, self).set_values() super(ResBFMConfigSettings, self).set_values()
ir_config = self.env['ir.config_parameter'].sudo() ir_config = self.env['ir.config_parameter'].sudo()
ir_config.set_param("bfm_url", self.bfm_url or "") ir_config.set_param("bfm_url", self.bfm_url or "")

View File

@@ -1,29 +1,23 @@
/** @odoo-module **/ /** @odoo-module **/
import { browser } from "@web/core/browser/browser"; import { browser } from "@web/core/browser/browser";
import { Dialog } from "@web/core/dialog/dialog";
import { _lt } from "@web/core/l10n/translation";
import { useChildRef, useOwnedDialogs, useService } from "@web/core/utils/hooks";
import { sprintf } from "@web/core/utils/strings";
import { isMobileOS } from "@web/core/browser/feature_detection";
import * as BarcodeScanner from "@web/webclient/barcode/barcode_scanner"; import * as BarcodeScanner from "@web/webclient/barcode/barcode_scanner";
const { useRef } = owl; const { Component } = owl;
const {xml, Component} = owl;
import { standardFieldProps } from "@web/views/fields/standard_field_props"; import { standardFieldProps } from "@web/views/fields/standard_field_props";
import {registry} from "@web/core/registry"; import {registry} from "@web/core/registry";
import {useInputField} from "@web/views/fields/input_field_hook"; import {useInputField} from "@web/views/fields/input_field_hook";
export class CodeField extends Component { export class CodeField extends Component {
setup() { setup() {
console.log('CodeField created') // console.log('CodeField created')
console.log('this',this) // console.log('this',this)
console.log('this.props',this.props) // console.log('this.props',this.props)
console.log('this.props.record',this.props.value) // console.log('this.props.record',this.props.value)
useInputField({ useInputField({
getValue: () => this.props.value, getValue: () => this.props.value,
refName: "scan_code", refName: "scan_code",
}); });
console.log('我是setup1') // console.log('我是setup1')
super.setup(); super.setup();
this.orm = this.env.services.orm; this.orm = this.env.services.orm;
this.record = this.props.record; this.record = this.props.record;
@@ -45,12 +39,12 @@ export class CodeField extends Component {
async search(barcode) { async search(barcode) {
// alert('我是search') // alert('我是search')
const domain = [["code", "=", barcode]]; const domain = [["code", "=", barcode]];
console.log(domain) // console.log(domain)
const fields = ["id", "code", "name", "state"]; const fields = ["id", "code", "name", "state"];
console.log(fields) // console.log(fields)
const results = await this.orm.call("sf.tray", "search_read", [domain, fields]); const results = await this.orm.call("sf.tray", "search_read", [domain, fields]);
const values = await this.orm.call("sf.tray", "search_read", [domain]); const values = await this.orm.call("sf.tray", "search_read", [domain]);
console.log(results) // console.log(results)
return results.map((result) => { return results.map((result) => {
return { return {
id: result.id, id: result.id,
@@ -63,16 +57,16 @@ export class CodeField extends Component {
} }
async onBarcodeScanned(barcode) { async onBarcodeScanned(barcode) {
const results = await this.search(barcode); const results = await this.search(barcode);
console.log(results) // console.log(results)
const records = results.filter((r) => !!r.id); const records = results.filter((r) => !!r.id);
console.log(records) // console.log(records)
if (records.length === 1) { if (records.length === 1) {
if (records[0].state === '空闲') { if (records[0].state === '空闲') {
console.log('currentModel',this) // console.log('currentModel',this)
console.log('this.record.data',this.record.data) // console.log('this.record.data',this.record.data)
console.log('this.record.data.id', this.record.data.id) // console.log('this.record.data.id', this.record.data.id)
const workorder = await this.orm.call('mrp.workorder', 'read', [this.record.data.id]); const workorder = await this.orm.call('mrp.workorder', 'read', [this.record.data.id]);
console.log('workorder', workorder[0]) // console.log('workorder', workorder[0])
const updatedRecord = await this.orm.call("sf.tray", "write", [ const updatedRecord = await this.orm.call("sf.tray", "write", [
[records[0].id], [records[0].id],
{ {
@@ -81,31 +75,32 @@ export class CodeField extends Component {
production_id: workorder[0].product_id[0], production_id: workorder[0].product_id[0],
// workorder_id: workorder.id, // workorder_id: workorder.id,
}]); }]);
console.log(workorder[0].routing_type); // console.log(workorder[0].routing_type);
console.log(workorder[0].production_id); // console.log(workorder[0].production_id);
// const productionIDS = await this.orm.call('mrp.production', 'search', [[['id', '=', workorder[0].production_id[0]]]]); // const productionIDS = await this.orm.call('mrp.production', 'search', [[['id', '=', workorder[0].production_id[0]]]]);
const productionIDS = await this.orm.call('mrp.workorder', 'search', [[["production_id", "=", workorder[0].production_id[0]]]]); const productionIDS = await this.orm.call('mrp.workorder', 'search', [[["production_id", "=", workorder[0].production_id[0]]]]);
console.log('prooooooo', productionIDS); // console.log('prooooooo', productionIDS);
console.log('values', records[0].values[0]); // console.log('values', records[0].values[0]);
productionIDS.forEach(async (data) => { productionIDS.forEach(async (data) => {
// 处理每一个数据 // 处理每一个数据
console.log(data); // console.log(data);
const updatetrayRecord = await this.orm.call("mrp.workorder", "write", [ const updatetrayRecord = await this.orm.call("mrp.workorder", "write", [
[data], [data],
{ {
tray_id: records[0].values[0].id, tray_id: records[0].values[0].id,
// tray_id: false, // tray_id: false,
}]); }]);
console.log(updatetrayRecord) // console.log(updatetrayRecord)
}); });
this.props.update(records[0].code); this.props.update(records[0].code);
$('.o_form_button_save').click(); $('.o_form_button_save').click();
} else { } else {
if (records[0].state === '占用') { if (records[0].state === '占用') {
console.log('此托盘已占用,请检查') // console.log('此托盘已占用,请检查')
alert('此托盘已占用,请检查') alert('此托盘已占用,请检查')
} else { } else {
console.log('此托盘已损坏,请登记') // console.log('此托盘已损坏,请登记')
alert('此托盘已损坏,请登记')
} }
} }

View File

@@ -8,10 +8,7 @@ const { Component, xml } = owl;
export class BarcodeHandlerField extends Component { export class BarcodeHandlerField extends Component {
setup() { setup() {
console.log('99999999111');
this.actionService = useService("action") this.actionService = useService("action")
console.log(this.actionService)
const barcode = useService("barcode"); const barcode = useService("barcode");
// this.rpc = useService("rpc"); // this.rpc = useService("rpc");
// useBus(barcode.bus, "barcode_scanned", this.onBarcodeScanned.bind(this)); // useBus(barcode.bus, "barcode_scanned", this.onBarcodeScanned.bind(this));
@@ -20,9 +17,6 @@ export class BarcodeHandlerField extends Component {
async _rpc(params) { async _rpc(params) {
// const { data } = await this.env.services.rpc('/web/dataset/call_kw', params); // const { data } = await this.env.services.rpc('/web/dataset/call_kw', params);
const response = await this.env.services.rpc('/web/dataset/call_kw', params); const response = await this.env.services.rpc('/web/dataset/call_kw', params);
console.log('response', response);
console.log('response.result', response.result);
// return response // return response
const responseObject = JSON.parse(response) const responseObject = JSON.parse(response)
return responseObject; return responseObject;
@@ -33,8 +27,6 @@ export class BarcodeHandlerField extends Component {
this.props.update(barcode); this.props.update(barcode);
// const actionService = useService("action"); // const actionService = useService("action");
// const productId = 12345 // const productId = 12345
console.log('111222222222211111');
// 根据条形码获取相关数据例如产品ID // 根据条形码获取相关数据例如产品ID
const response = await this._rpc({ const response = await this._rpc({
model: 'mrp.workorder', model: 'mrp.workorder',
@@ -42,11 +34,10 @@ export class BarcodeHandlerField extends Component {
args: [barcode], args: [barcode],
kwargs:{}, kwargs:{},
}); });
// console.log(productId.result)
if (response.result) { if (response.result) {
const action = response.result; // const action = response.result;
console.log(action) // console.log(action)
console.log('11111111111111111111111111111111111'); // console.log('11111111111111111111111111111111111');
// 通过产品ID执行操作并跳转到表单视图 // 通过产品ID执行操作并跳转到表单视图
// await this.actionService.doAction({ // await this.actionService.doAction({
// // type: 'ir.actions.act_window', // // type: 'ir.actions.act_window',

View File

@@ -5,9 +5,8 @@ import os
import json import json
import hashlib import hashlib
import time import time
import requests
from datetime import datetime from datetime import datetime
import requests
from odoo import fields, models, api, _ from odoo import fields, models, api, _
from odoo.exceptions import ValidationError from odoo.exceptions import ValidationError
from odoo.exceptions import UserError from odoo.exceptions import UserError

View File

@@ -16,12 +16,12 @@ class CustomKanbanController extends KanbanController {
console.log('99999999111'); console.log('99999999111');
this.workOrders = await this.getAllWorkOrders(); this.workOrders = await this.getAllWorkOrders();
this.workOrdersNew = this.workOrders; this.workOrdersNew = this.workOrders;
console.log('lines222222222', this.workOrders); // console.log('lines222222222', this.workOrders);
//
console.log(typeof this.workOrders); // console.log(typeof this.workOrders);
console.log(Array.isArray(this.workOrders)); // console.log(Array.isArray(this.workOrders));
//
console.log(this.workOrders.every(order => typeof order === 'object' && order.id !== undefined)); // console.log(this.workOrders.every(order => typeof order === 'object' && order.id !== undefined));

View File

@@ -42,7 +42,8 @@ class sf_production_plan(models.Model):
actual_end_time = fields.Datetime(string='实际结束时间') actual_end_time = fields.Datetime(string='实际结束时间')
shift = fields.Char(string='班次') shift = fields.Char(string='班次')
# 序号、坯料编号、坯料名称、材质、数量、长度、宽度、厚度、直径、计划开始时间、计划结束时间、状态(已产出与待产出)、操作、创建人、创建时间、客户名称、订单号、行号、长度、宽度、厚度、直径、交货数量、交货日期 # 序号、坯料编号、坯料名称、材质、数量、长度、宽度、厚度、直径、计划开始时间、计划结束时间、状态(已产出与待产出)、操作、创建人、创建时间、
# 客户名称、订单号、行号、长度、宽度、厚度、直径、交货数量、交货日期
# sequence = fields.Integer(string='序号', required=True, copy=False, readonly=True, index=True, # sequence = fields.Integer(string='序号', required=True, copy=False, readonly=True, index=True,
# default=lambda self: self.env['ir.sequence'].sudo().next_by_code('sf.pl.plan')) # default=lambda self: self.env['ir.sequence'].sudo().next_by_code('sf.pl.plan'))
sequence = fields.Integer(string='序号', copy=False, readonly=True, index=True) sequence = fields.Integer(string='序号', copy=False, readonly=True, index=True)
@@ -160,7 +161,8 @@ class sf_production_plan(models.Model):
'name': '排程甘特图', 'name': '排程甘特图',
'type': 'ir.actions.act_window', 'type': 'ir.actions.act_window',
'res_model': 'sf.production.plan', # 要跳转的模型名称 'res_model': 'sf.production.plan', # 要跳转的模型名称
'view_mode': 'gantt,tree,form', # 要显示的视图类型,可以是'form', 'tree', 'kanban', 'graph', 'calendar', 'pivot'等 # 要显示的视图类型,可以是'form', 'tree', 'kanban', 'graph', 'calendar', 'pivot'等
'view_mode': 'gantt,tree,form',
'target': 'current', # 跳转的目标窗口,可以是'current'或'new' 'target': 'current', # 跳转的目标窗口,可以是'current'或'new'
} }

View File

@@ -24,10 +24,9 @@
'web.assets_qweb': [ 'web.assets_qweb': [
], ],
'web.assets_backend':[ 'web.assets_backend': [
] ]
}, },
'license': 'LGPL-3', 'license': 'LGPL-3',
'installable': True, 'installable': True,