Compare commits

..

8 Commits

Author SHA1 Message Date
马广威
8840e9642d Accept Merge Request #1173: (release/release_2.1 -> master)
Merge Request: 1、货架、货位添加循环货位标签;2、功能刀具拆解时选择的货位添加只能为循环货位的过滤条件

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1173?initial=true
2024-07-24 20:23:31 +08:00
yuxianghui
3404cccdc8 1、货架、货位添加循环货位标签;2、功能刀具拆解选取法人货位添加只能选择循环货位的过滤条件 2024-07-16 15:33:27 +08:00
马广威
804b401a87 Accept Merge Request #1133: (release/release_2.0 -> master)
Merge Request: 修复多面工单产线状态

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1133?initial=true
2024-07-03 21:33:49 +08:00
jinling.yang
6c6fe44d45 制造订单去掉上/下产线字段 2024-07-03 10:53:29 +08:00
jinling.yang
bb33a1d093 修复多面工单产线状态 2024-07-03 10:37:02 +08:00
jinling.yang
9ec37f5d5b 修复多面加工产线状态 2024-07-03 09:45:55 +08:00
马广威
0bc4072a8f Accept Merge Request #1130: (release/release_1.9 -> master)
Merge Request: SPRINT-MES-2024-03迭代优化升级

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1130?initial=true
2024-07-01 22:35:53 +08:00
马广威
9e56aeda67 Accept Merge Request #1093: (release/release_1.8 -> master)
Merge Request: 功能刀具、工件状态优化

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1093?initial=true
2024-06-24 21:38:15 +08:00
7 changed files with 36 additions and 23 deletions

View File

@@ -229,12 +229,12 @@ class Manufacturing_Connect(http.Controller):
# request.env['sf.production.plan'].sudo().search([('production_id', '=', production_id)]).write(
# {'actual_end_time': workorder.date_finished,
# 'state': 'finished'})
# production_obj = request.env['mrp.production'].sudo().search([('name', '=', production_id)])
# if production_obj:
# production_obj.sudo().work_order_state = '已完成'
# production_obj.write({'state': 'done'})
# request.env['sale.order'].sudo().search(
# [('name', '=', production_obj.origin)]).write({'schedule_status': 'to deliver'})
# production_obj = request.env['mrp.production'].sudo().search([('name', '=', production_id)])
# if production_obj:
# production_obj.sudo().work_order_state = '已完成'
# production_obj.write({'state': 'done'})
# request.env['sale.order'].sudo().search(
# [('name', '=', production_obj.origin)]).write({'schedule_status': 'to deliver'})
except Exception as e:
res = {'Succeed': False, 'ErrorCode': 202, 'Error': e}
@@ -471,10 +471,14 @@ class Manufacturing_Connect(http.Controller):
workorder = request.env['mrp.workorder'].sudo().search(domain, order='id asc')
if workorder:
for order in workorder:
if order.production_id.production_line_state == '待上产线':
if order.production_line_state == '待上产线':
logging.info(
'制造订单产线状态:%s' % order.production_id.production_line_state)
order.production_id.write({'production_line_state': '已上产线'})
'单产线状态:%s' % order.production_line_state)
panel_workorder = request.env['mrp.workorder'].sudo().search(
[('rfid_code', '=', rfid_code),
('processing_panel', '=', order.processing_panel)])
if panel_workorder:
panel_workorder.write({'production_line_state': '已上产线'})
workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search(
[
('rfid_code', '=', rfid_code), ('type', '=', '上产线'),
@@ -528,10 +532,14 @@ class Manufacturing_Connect(http.Controller):
workorder = request.env['mrp.workorder'].sudo().search(domain, order='id asc')
if workorder:
for order in workorder:
if order.production_id.production_line_state == '已上产线':
if order.production_line_state == '已上产线':
logging.info(
'制造订单产线状态:%s' % order.production_id.production_line_state)
order.production_id.write({'production_line_state': '已下产线'})
'单产线状态:%s' % order.production_line_state)
panel_workorder = request.env['mrp.workorder'].sudo().search(
[('rfid_code', '=', rfid_code),
('processing_panel', '=', order.processing_panel)])
if panel_workorder:
panel_workorder.write({'production_line_state': '已下产线'})
workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search(
[
('rfid_code', '=', rfid_code), ('type', '=', '下产线'),

View File

@@ -55,9 +55,9 @@ class MrpProduction(models.Model):
glb_file = fields.Binary("glb模型文件")
production_line_id = fields.Many2one('sf.production.line', string='生产线', tracking=True)
plan_start_processing_time = fields.Datetime('计划开始加工时间')
production_line_state = fields.Selection(
[('待上产线', '待上产线'), ('已上产线', '已上产线'), ('已下产线', '已下产线')],
string='上/下产线', default='待上产线', tracking=True)
# production_line_state = fields.Selection(
# [('待上产线', '待上产线'), ('已上产线', '已上产线'), ('已下产线', '已下产线')],
# string='上/下产线', default='待上产线', tracking=True)
# 工序状态
# Todo 研究下用法
process_state = fields.Selection([

View File

@@ -193,8 +193,9 @@ class ResMrpWorkOrder(models.Model):
production_line_id = fields.Many2one('sf.production.line', related='production_id.production_line_id',
string='生产线', store=True, tracking=True)
production_line_state = fields.Selection(related='production_id.production_line_state',
string='/下产线', store=True, tracking=True)
production_line_state = fields.Selection(
[('待上产线', '待上产线'), ('已上产线', '上产线'), ('已下产线', '已下产线')],
string='上/下产线', default='待上产线', tracking=True)
detection_report = fields.Binary('检测报告', readonly=True)
is_remanufacture = fields.Boolean(string='重新生成制造订单', default=False)
is_fetchcnc = fields.Boolean(string='重新获取NC程序', default=False)

View File

@@ -87,7 +87,7 @@
</xpath>
<xpath expr="//field[@name='user_id']" position="after">
<field name="production_line_id" readonly="1"/>
<field name="production_line_state" readonly="1"/>
<!-- <field name="production_line_state" readonly="1"/>-->
<field name="part_number" string="成品的零件图号"/>
<field name="part_drawing"/>
</xpath>

View File

@@ -803,7 +803,7 @@ class FunctionalToolDismantle(models.Model):
integral_lot_id = fields.Many2one('stock.lot', string='整体式刀具批次', compute='_compute_functional_tool_num',
store=True)
integral_freight_id = fields.Many2one('sf.shelf.location', '整体式刀具目标货位',
domain="[('product_id', 'in', (integral_product_id, False))]")
domain="[('product_id', 'in', (integral_product_id, False)),('rotative_Boolean', '=', True)]")
# 刀片
blade_product_id = fields.Many2one('product.product', string='刀片', compute='_compute_functional_tool_num',
@@ -813,7 +813,7 @@ class FunctionalToolDismantle(models.Model):
blade_brand_id = fields.Many2one('sf.machine.brand', string='刀片品牌', related='blade_product_id.brand_id')
blade_lot_id = fields.Many2one('stock.lot', string='刀片批次', compute='_compute_functional_tool_num', store=True)
blade_freight_id = fields.Many2one('sf.shelf.location', '刀片目标货位',
domain="[('product_id', 'in', (blade_product_id, False))]")
domain="[('product_id', 'in', (blade_product_id, False)),('rotative_Boolean', '=', True)]")
# 刀杆
bar_product_id = fields.Many2one('product.product', string='刀杆', compute='_compute_functional_tool_num',
@@ -823,7 +823,7 @@ class FunctionalToolDismantle(models.Model):
bar_brand_id = fields.Many2one('sf.machine.brand', string='刀杆品牌', related='bar_product_id.brand_id')
bar_lot_id = fields.Many2one('stock.lot', string='刀杆批次', compute='_compute_functional_tool_num', store=True)
bar_freight_id = fields.Many2one('sf.shelf.location', '刀杆目标货位',
domain="[('product_id', 'in', (bar_product_id, False))]")
domain="[('product_id', 'in', (bar_product_id, False)),('rotative_Boolean', '=', True)]")
# 刀盘
pad_product_id = fields.Many2one('product.product', string='刀盘', compute='_compute_functional_tool_num',
@@ -833,7 +833,7 @@ class FunctionalToolDismantle(models.Model):
pad_brand_id = fields.Many2one('sf.machine.brand', string='刀盘品牌', related='pad_product_id.brand_id')
pad_lot_id = fields.Many2one('stock.lot', string='刀盘批次', compute='_compute_functional_tool_num', store=True)
pad_freight_id = fields.Many2one('sf.shelf.location', '刀盘目标货位',
domain="[('product_id', 'in', (pad_product_id, False))]")
domain="[('product_id', 'in', (pad_product_id, False)),('rotative_Boolean', '=', True)]")
# 夹头
chuck_product_id = fields.Many2one('product.product', string='夹头', compute='_compute_functional_tool_num',
@@ -843,7 +843,7 @@ class FunctionalToolDismantle(models.Model):
chuck_brand_id = fields.Many2one('sf.machine.brand', string='夹头品牌', related='chuck_product_id.brand_id')
chuck_lot_id = fields.Many2one('stock.lot', string='夹头批次', compute='_compute_functional_tool_num', store=True)
chuck_freight_id = fields.Many2one('sf.shelf.location', '夹头目标货位',
domain="[('product_id', 'in', (chuck_product_id, False))]")
domain="[('product_id', 'in', (chuck_product_id, False)),('rotative_Boolean', '=', True)]")
@api.onchange('functional_tool_id')
def _onchange_freight(self):

View File

@@ -254,6 +254,7 @@ class SfShelf(models.Model):
shelf_height = fields.Float(string='货架高度(m)')
shelf_layer = fields.Integer(string='货架层数')
layer_capacity = fields.Integer(string='层数容量')
shelf_rotative_Boolean = fields.Boolean('循环货架', default=False)
# 是否有货位
is_there_area = fields.Boolean(string='是否有货位', compute='_compute_is_there_area', default=False, store=True)
@@ -361,6 +362,7 @@ class ShelfLocation(models.Model):
name = fields.Char('货位名称', required=True, size=20)
barcode = fields.Char('货位编码', copy=False, size=50)
rotative_Boolean = fields.Boolean('循环货位', related='shelf_id.shelf_rotative_Boolean', store=True)
qr_code = fields.Binary(string='二维码', compute='_compute_location_qr_code', store=True)
# 货架

View File

@@ -23,6 +23,7 @@
<field name="shelf_height" string="货架高度(m)"/>
<field name="shelf_layer" string="货架层数"/>
<field name="layer_capacity" string="层数容量"/>
<field name="shelf_rotative_Boolean"/>
</group>
<notebook>
<page string="货位">
@@ -169,6 +170,7 @@
<group>
<field name="barcode" readonly="1"/>
<field name="name" readonly="1"/>
<field name="rotative_Boolean" invisible="1"/>
<field name="shelf_id" readonly="1"/>
<field name="location_id" readonly="1"/>
<field name="product_id"/>