人工线下加工工单的计划时间计算优化需求
This commit is contained in:
@@ -1980,3 +1980,55 @@ class CMMprogram(models.Model):
|
||||
'program_create_date': datetime.strptime(item['program_create_date'], '%Y-%m-%d %H:%M:%S'),
|
||||
}))
|
||||
return cmm_program
|
||||
|
||||
def update_work_start_end(self,date_planned_start,date_planned_end):
|
||||
self.leave_id.write({
|
||||
'date_from': date_planned_start,
|
||||
'date_to': date_planned_end,
|
||||
})
|
||||
self.date_planned_finished = datetime.datetime.today() + datetime.timedelta(days=100)
|
||||
self.date_planned_start = date_planned_start
|
||||
self.date_planned_finished = date_planned_end
|
||||
routing_workcenter = self.env['mrp.routing.workcenter'].sudo().search(
|
||||
[('name', '=', self.routing_type)])
|
||||
|
||||
self.write({'date_planned_start': date_planned_start, 'date_planned_finished': date_planned_end,
|
||||
'duration_expected': routing_workcenter.time_cycle})
|
||||
|
||||
def auto_production_process(self, last_time, is_first, type_map):
|
||||
date_planned_end = None
|
||||
date_planned_start = None
|
||||
duration_expected = datetime.timedelta(minutes=self.duration_expected)
|
||||
reserve_time = datetime.timedelta(minutes=self.reserved_duration)
|
||||
if is_first:
|
||||
# 第一轮加工
|
||||
if self.routing_type == '装夹预调':
|
||||
date_planned_end = last_time - reserve_time
|
||||
date_planned_start = date_planned_end - duration_expected
|
||||
elif self.routing_type == 'CNC加工':
|
||||
date_planned_start = last_time
|
||||
date_planned_end = last_time + duration_expected
|
||||
last_time = date_planned_end
|
||||
else:
|
||||
date_planned_start = last_time + reserve_time
|
||||
date_planned_end = date_planned_start + duration_expected
|
||||
last_time = date_planned_end
|
||||
type_map.update({self.routing_type: True})
|
||||
else:
|
||||
date_planned_start = last_time + reserve_time
|
||||
date_planned_end = date_planned_start + duration_expected
|
||||
last_time = date_planned_end
|
||||
return date_planned_start, date_planned_end, last_time
|
||||
def manual_offline_process(self,last_time,is_first):
|
||||
date_planned_end = None
|
||||
date_planned_start = None
|
||||
duration_expected = datetime.timedelta(minutes=self.duration_expected)
|
||||
reserve_time = datetime.timedelta(minutes=self.reserved_duration)
|
||||
if is_first:
|
||||
date_planned_start = last_time
|
||||
date_planned_end = last_time + duration_expected
|
||||
|
||||
else:
|
||||
date_planned_start = last_time + reserve_time
|
||||
date_planned_end = date_planned_start + duration_expected
|
||||
return date_planned_start, date_planned_end,last_time
|
||||
Reference in New Issue
Block a user