1.修复工件配送扫描工件(坯料)时,同运工件显示的是坯料对应的制造订单号,修改配送时长字段类型及对应的时长方法,修复工件装夹岗不能修改配送工件
2.修复产品中计划总监岗和调度总监岗不能访问切削速度的权限
This commit is contained in:
@@ -132,7 +132,7 @@ class ResMrpWorkOrder(models.Model):
|
||||
production_line = fields.Char(string="生产线")
|
||||
preset_program_information = fields.Char(string="预调程序信息")
|
||||
workpiece_delivery_ids = fields.One2many('sf.workpiece.delivery', 'workorder_id', '工件配送')
|
||||
is_delivery = fields.Boolean('是否配送完成',default=False)
|
||||
is_delivery = fields.Boolean('是否配送完成', default=False)
|
||||
|
||||
@api.onchange('is_ok')
|
||||
def _onchange_inspection_user_id(self):
|
||||
@@ -197,25 +197,19 @@ class ResMrpWorkOrder(models.Model):
|
||||
work = workorder.production_id.workorder_ids
|
||||
work.compensation_value_x = eval(self.material_center_point)[0]
|
||||
work.compensation_value_y = eval(self.material_center_point)[1]
|
||||
workorder.workpiece_delivery_ids[0].write({
|
||||
'status': '待下发'
|
||||
})
|
||||
workorder.button_finish()
|
||||
except:
|
||||
raise UserError("参数计算有误")
|
||||
|
||||
def button_workpiece_delivery(self):
|
||||
if self.routing_type == '装夹预调':
|
||||
if not self.workpiece_delivery_ids:
|
||||
raise UserError('请添加【工件配送】信息')
|
||||
else:
|
||||
for item in self.workpiece_delivery_ids:
|
||||
if not item.feeder_station_start:
|
||||
raise UserError('【工件配送】明细中请输入起点接驳站')
|
||||
if not item.workpiece_code:
|
||||
raise UserError('请对【同运工件】进行扫描')
|
||||
else:
|
||||
item.write({'task_delivery_time': fields.Datetime.now(), 'status': '待配送'})
|
||||
for item in self.workpiece_delivery_ids:
|
||||
if not item.feeder_station_start:
|
||||
raise UserError('【工件配送】明细中请输入起点接驳站')
|
||||
# if not item.workpiece_code:
|
||||
# raise UserError('请对【同运工件】进行扫描')
|
||||
else:
|
||||
item.write({'task_delivery_time': fields.Datetime.now(), 'status': '待配送'})
|
||||
|
||||
# 拼接工单对象属性值
|
||||
def json_workorder_str(self, k, production, route):
|
||||
@@ -760,6 +754,13 @@ class SfWorkOrderBarcodes(models.Model):
|
||||
'tray_model_id': stock_move_line.product_id.fixture_model_id.id
|
||||
})
|
||||
workorder.button_start()
|
||||
# return {
|
||||
# 'type': 'ir.actions.act_window',
|
||||
# 'res_model': 'mrp.workorder',
|
||||
# 'view_mode': 'form',
|
||||
# 'domain': [('id', 'in', workorder.id)],
|
||||
# 'target': 'current'
|
||||
# }
|
||||
else:
|
||||
embryo_stock_lot = self.env['stock.lot'].search([('name', '=', barcode)])
|
||||
if embryo_stock_lot:
|
||||
@@ -769,16 +770,20 @@ class SfWorkOrderBarcodes(models.Model):
|
||||
('lot_id', '=', embryo_stock_lot.id),
|
||||
('product_category_name', '=', '坯料')])
|
||||
if embryo_stock_move_line:
|
||||
bom_production = self.env['mrp.production'].search(
|
||||
[('product_id', '=', embryo_stock_lot.product_id.id),
|
||||
('origin', '=', workorder.production_id.name)], limit=1, order='id asc')
|
||||
workpiece_delivery = self.env['sf.workpiece.delivery'].search(
|
||||
[('workorder_id', '=', workorder.id)], limit=1, order='id asc')
|
||||
if workpiece_delivery:
|
||||
embryo_workpiece_code = workpiece_delivery.workpiece_code
|
||||
if workpiece_delivery.workpiece_code and embryo_stock_lot.name not in \
|
||||
workpiece_delivery.workpiece_code:
|
||||
embryo_workpiece_code = workpiece_delivery.workpiece_code + ',' + \
|
||||
embryo_stock_lot.name
|
||||
if not workpiece_delivery.workpiece_code:
|
||||
embryo_workpiece_code = embryo_stock_lot.name
|
||||
if bom_production:
|
||||
if workpiece_delivery.workpiece_code and bom_production.name not in \
|
||||
workpiece_delivery.workpiece_code:
|
||||
embryo_workpiece_code = workpiece_delivery.workpiece_code + ',' + \
|
||||
bom_production.name
|
||||
if not workpiece_delivery.workpiece_code:
|
||||
embryo_workpiece_code = bom_production.name
|
||||
workpiece_delivery.write({'workpiece_code': embryo_workpiece_code})
|
||||
else:
|
||||
raise UserError('工件生产线不一致,请重新确认')
|
||||
@@ -799,7 +804,7 @@ class WorkPieceDelivery(models.Model):
|
||||
feeder_station_destination = fields.Char('目的接驳站')
|
||||
task_delivery_time = fields.Datetime('任务下发时间')
|
||||
task_completion_time = fields.Datetime('任务完成时间')
|
||||
delivery_time = fields.Char('配送时长', compute='_compute_delivery_time')
|
||||
delivery_duration = fields.Float('配送时长', compute='_compute_delivery_duration')
|
||||
status = fields.Selection(
|
||||
[('待下发', '待下发'), ('待配送', '待配送'), ('已配送', '已配送')], string='状态',
|
||||
default='待下发')
|
||||
@@ -830,14 +835,10 @@ class WorkPieceDelivery(models.Model):
|
||||
self.plan_start_processing_time = self.production_id.plan_start_processing_time
|
||||
|
||||
@api.depends('task_delivery_time', 'task_completion_time')
|
||||
def _compute_delivery_time(self):
|
||||
def _compute_delivery_duration(self):
|
||||
for obj in self:
|
||||
if obj.task_delivery_time and obj.task_completion_time:
|
||||
delivery_duration = obj.task_completion_time - obj.task_delivery_time
|
||||
hours, seconds = divmod(delivery_duration.total_seconds(), 3600)
|
||||
minutes, _ = divmod(seconds, 60)
|
||||
delivery_time_str = "{:.0f}时 {:.0f}分".format(hours, minutes)
|
||||
|
||||
obj.delivery_time = delivery_time_str
|
||||
obj.delivery_duration = round(
|
||||
(obj.task_completion_time - obj.task_delivery_time).total_seconds() / 60.0, 2)
|
||||
else:
|
||||
obj.delivery_time = ''
|
||||
obj.delivery_duration = 0.0
|
||||
|
||||
Reference in New Issue
Block a user