Compare commits

...

39 Commits

Author SHA1 Message Date
guanhuan
7d1f7b11eb 坯料尺寸显示修改 2025-06-24 11:39:47 +08:00
guanhuan
0d76d1a7d3 需求计划修改 2025-06-23 13:59:37 +08:00
guanhuan
9ad06b4361 需求计划 2025-06-20 17:34:17 +08:00
guanhuan
f9c13341e6 Merge branch 'refs/heads/develop' into feature/齐套检查与下达生产 2025-06-20 17:33:26 +08:00
guanhuan
d2a61c79d0 需求计划 2025-06-20 17:29:41 +08:00
禹翔辉
5f80b377e5 Accept Merge Request #2238: (feature/出厂检验报告模版 -> develop)
Merge Request: 添加页脚页码数据测试

Created By: @禹翔辉
Reviewed By: @胡尧 @秦圣
Approved By: @胡尧 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2238
2025-06-20 17:28:20 +08:00
yuxianghui
ab2e685004 添加页脚页码数据测试 2025-06-20 17:24:48 +08:00
guanhuan
dcc5eef006 需求计划 2025-06-20 17:21:06 +08:00
guanhuan
7e8b2adb3d 需求计划 2025-06-20 17:19:33 +08:00
禹翔辉
9aa870065b Accept Merge Request #2237: (feature/出厂检验报告模版 -> develop)
Merge Request: 页脚优化

Created By: @禹翔辉
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2237
2025-06-20 17:03:52 +08:00
yuxianghui
60c39929b2 页脚优化 2025-06-20 17:02:31 +08:00
禹翔辉
9a5b8a2627 Accept Merge Request #2236: (feature/出厂检验报告模版 -> develop)
Merge Request: 出厂检验报告-页脚优化

Created By: @禹翔辉
Reviewed By: @秦圣
Approved By: @秦圣 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2236
2025-06-20 16:56:08 +08:00
yuxianghui
73696eb72c 出厂检验报告-页脚优化 2025-06-20 16:50:59 +08:00
禹翔辉
55babb8a35 Accept Merge Request #2235: (feature/出厂检验报告模版 -> develop)
Merge Request: 出厂检验报告模版-页脚优化

Created By: @禹翔辉
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2235
2025-06-20 16:42:02 +08:00
yuxianghui
6682dbfb7d 出厂检验报告模版-页脚优化 2025-06-20 16:40:38 +08:00
禹翔辉
e0b8e5fe07 Accept Merge Request #2234: (feature/出厂检验报告模版 -> develop)
Merge Request: 出厂检验报告-页脚优化

Created By: @禹翔辉
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2234
2025-06-20 16:19:18 +08:00
yuxianghui
800f2eb6a7 出厂检验报告-页脚优化 2025-06-20 16:03:13 +08:00
禹翔辉
3cc633131e Accept Merge Request #2233: (feature/出厂检验报告模版 -> develop)
Merge Request: 出厂检验报告-页脚修改

Created By: @禹翔辉
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2233
2025-06-20 15:57:55 +08:00
yuxianghui
e3fb266890 出厂检验报告-页脚修改 2025-06-20 15:55:58 +08:00
胡尧
844f7de1ab Accept Merge Request #2232: (feature/6711 -> develop)
Merge Request: 修改计划量字段为–qty_production

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2232?initial=true
2025-06-20 15:39:28 +08:00
胡尧
13d33488dc 修改计划量字段为–qty_production 2025-06-20 15:39:11 +08:00
禹翔辉
266601cf84 Accept Merge Request #2231: (feature/出厂检验报告模版 -> develop)
Merge Request: 出厂检验报告模版-页脚优化

Created By: @禹翔辉
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2231
2025-06-20 15:36:51 +08:00
yuxianghui
2e168a4ba7 出厂检验报告模版-页脚优化 2025-06-20 15:35:07 +08:00
胡尧
68ba47ed70 Accept Merge Request #2230: (feature/7151 -> develop)
Merge Request: 修改依赖

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2230?initial=true
2025-06-20 15:03:57 +08:00
胡尧
9a05bbd82c Accept Merge Request #2229: (feature/7151 -> develop)
Merge Request: 修改需求计划,下达生成的方法

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2229?initial=true
2025-06-20 14:52:34 +08:00
yuxianghui
5947b3dfe9 回退出厂检验报告模版 2025-06-20 14:26:29 +08:00
禹翔辉
95e43b0fba Accept Merge Request #2228: (feature/出厂检验报告模版 -> develop)
Merge Request: 出厂检验报告模版优化

Created By: @禹翔辉
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2228
2025-06-20 14:07:56 +08:00
yuxianghui
e7afc76753 出厂检验报告模版优化 2025-06-20 14:01:56 +08:00
禹翔辉
4ddabdefa1 Accept Merge Request #2227: (feature/出厂检验报告模版 -> develop)
Merge Request: 优化出厂检验报告模版

Created By: @禹翔辉
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2227
2025-06-20 13:39:42 +08:00
yuxianghui
364127beb3 1 2025-06-20 13:37:42 +08:00
yuxianghui
109ea8729d 优化出厂检验报告模版 2025-06-20 12:03:17 +08:00
禹翔辉
32de726164 Accept Merge Request #2226: (feature/平台下单接口优化 -> develop)
Merge Request: 修改出厂检验报告模版

Created By: @禹翔辉
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2226
2025-06-20 11:49:32 +08:00
yuxianghui
79f89f068b 修改出厂检验报告模版 2025-06-20 11:47:59 +08:00
禹翔辉
52189cff72 Accept Merge Request #2225: (feature/平台下单接口优化 -> develop)
Merge Request: 修改出厂检验报告生成模版

Created By: @禹翔辉
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2225
2025-06-20 11:37:18 +08:00
yuxianghui
aadccce47e 修改出厂检验报告生成模版 2025-06-20 11:35:23 +08:00
胡尧
abd88fd721 Accept Merge Request #2224: (feature/6711 -> develop)
Merge Request: 修改产量接口bug

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2224?initial=true
2025-06-20 11:27:06 +08:00
胡尧
2c2fa87719 修改产量接口bug 2025-06-20 11:26:48 +08:00
胡尧
7d8b7048a8 Accept Merge Request #2223: (feature/6711 -> develop)
Merge Request: 去掉多余代码

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2223?initial=true
2025-06-20 11:15:58 +08:00
胡尧
e7b312fb22 去掉多余代码 2025-06-20 10:53:31 +08:00
6 changed files with 72 additions and 43 deletions

View File

@@ -10,7 +10,7 @@
""", """,
'category': 'sf', 'category': 'sf',
'website': 'https://www.sf.jikimo.com', 'website': 'https://www.sf.jikimo.com',
'depends': ['sf_plan'], 'depends': ['sf_plan','jikimo_printing'],
'data': [ 'data': [
'security/ir.model.access.csv', 'security/ir.model.access.csv',
'views/demand_plan.xml', 'views/demand_plan.xml',

View File

@@ -196,11 +196,14 @@ class SfProductionDemandPlan(models.Model):
else: else:
line.model_long = None line.model_long = None
@api.depends('product_id.model_long', 'product_id.model_width', 'product_id.model_height') @api.depends('product_id.model_long', 'product_id.model_width', 'product_id.model_height', 'product_id.blank_type')
def _compute_embryo_long(self): def _compute_embryo_long(self):
for line in self: for line in self:
if line.product_id: if line.product_id:
line.embryo_long = f"{round(line.product_id.model_long, 3)}*{round(line.product_id.model_width, 3)}*{round(line.product_id.model_height, 3)}" if line.product_id.blank_type == '圆料':
line.embryo_long = f"Ø{round(line.product_id.model_width, 3)}*{round(line.product_id.model_long, 3)}"
else:
line.embryo_long = f"{round(line.product_id.model_long, 3)}*{round(line.product_id.model_width, 3)}*{round(line.product_id.model_height, 3)}"
else: else:
line.embryo_long = None line.embryo_long = None
@@ -403,29 +406,30 @@ class SfProductionDemandPlan(models.Model):
outsourcing_purchase_request.extend(pr_ids.ids) outsourcing_purchase_request.extend(pr_ids.ids)
if record.supply_method == 'outsourcing' and not record.sale_order_line_id.is_incoming_material: if record.supply_method == 'outsourcing' and not record.sale_order_line_id.is_incoming_material:
bom_line_ids = record.product_id.bom_ids.bom_line_ids bom_line_ids = record.product_id.bom_ids.bom_line_ids
# BOM_数量 if bom_line_ids:
total_product_qty = sum(line.product_qty for line in bom_line_ids) # BOM_数量
bom_product_ids = bom_line_ids.mapped('product_id') total_product_qty = sum(line.product_qty for line in bom_line_ids)
product_purchase_orders = self.env['purchase.order'].sudo().search([ bom_product_ids = bom_line_ids.mapped('product_id')
('state', 'in', ('purchase', 'done')), product_purchase_orders = self.env['purchase.order'].sudo().search([
('order_line.product_id', 'in', bom_product_ids.ids) ('state', 'in', ('purchase', 'done')),
]) ('order_line.product_id', 'in', bom_product_ids.ids)
# 购订单_数量 ])
total_outsourcing_purchase_quantity = sum( # 购订单_数量
sum( total_outsourcing_purchase_quantity = sum(
order.order_line.filtered( sum(
lambda line: line.product_id in bom_product_ids order.order_line.filtered(
).mapped('product_qty') lambda line: line.product_id in bom_product_ids
).mapped('product_qty')
)
for order in product_purchase_orders
) )
for order in product_purchase_orders quantity = total_outsourcing_purchase_quantity / total_product_qty
) if float_compare(quantity, record.product_uom_qty,
quantity = total_outsourcing_purchase_quantity / total_product_qty precision_rounding=record.product_id.uom_id.rounding) == -1:
if float_compare(quantity, record.product_uom_qty, purchase_request = self.env['purchase.request'].sudo().search(
precision_rounding=record.product_id.uom_id.rounding) == -1: [('line_ids.product_id', 'in', bom_product_ids.ids),
purchase_request = self.env['purchase.request'].sudo().search( ('line_ids.purchase_state', 'not in', ('purchase', 'done')), ('state', '!=', 'done')])
[('line_ids.product_id', 'in', bom_product_ids.ids), outsourcing_purchase_request.extend(purchase_request.ids)
('line_ids.purchase_state', 'not in', ('purchase', 'done')), ('state', '!=', 'done')])
outsourcing_purchase_request.extend(purchase_request.ids)
record.outsourcing_purchase_request = json.dumps(outsourcing_purchase_request) record.outsourcing_purchase_request = json.dumps(outsourcing_purchase_request)
if outsourcing_purchase_request: if outsourcing_purchase_request:
record.hide_action_purchase_orders = True record.hide_action_purchase_orders = True

View File

@@ -28,7 +28,7 @@
<field name="qty_delivered"/> <field name="qty_delivered"/>
<field name="qty_to_deliver"/> <field name="qty_to_deliver"/>
<field name="model_long"/> <field name="model_long"/>
<field name="blank_type"/> <field name="blank_type" optional="hide"/>
<field name="embryo_long"/> <field name="embryo_long"/>
<field name="materials_id"/> <field name="materials_id"/>
<field name="model_machining_precision"/> <field name="model_machining_precision"/>

View File

@@ -4,12 +4,12 @@
<field name="name">sf.demand.plan.print.wizard.tree</field> <field name="name">sf.demand.plan.print.wizard.tree</field>
<field name="model">sf.demand.plan.print.wizard</field> <field name="model">sf.demand.plan.print.wizard</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="打印" class="print_demand" js_class="print_demand" > <tree string="打印" class="print_demand" js_class="print_demand">
<field name="model_id"/> <field name="model_id"/>
<field name="filename_url"/> <field name="filename_url"/>
<field name="type"/> <field name="type"/>
<field name="machining_drawings" attrs="{'column_invisible': True }"/> <field name="machining_drawings" attrs="{'column_invisible': True }"/>
<field name="cnc_worksheet" attrs="{'column_invisible': True }" /> <field name="cnc_worksheet" attrs="{'column_invisible': True }"/>
<field name="status"/> <field name="status"/>
</tree> </tree>
</field> </field>

View File

@@ -437,7 +437,7 @@ class Sf_Dashboard_Connect(http.Controller):
('state', 'in', ['ready', 'progress', 'done']) ('state', 'in', ['ready', 'progress', 'done'])
]) ])
plan_data_total_counts = sum(plan_data_total.mapped('qty_produced')) plan_data_total_counts = sum(plan_data_total.mapped('qty_production'))
# # 工单完成量 # # 工单完成量
# plan_data_finish_counts = plan_obj.search_count( # plan_data_finish_counts = plan_obj.search_count(
@@ -489,7 +489,7 @@ class Sf_Dashboard_Connect(http.Controller):
# 工单返工数量 # 工单返工数量
plan_data_rework = work_order_obj.search(plan_domain + [ plan_data_rework = work_order_obj.search(work_order_domain + [
('state', 'in', ['rework']) ('state', 'in', ['rework'])
]) ])
@@ -717,7 +717,7 @@ class Sf_Dashboard_Connect(http.Controller):
# 使用小时和分钟作为键,确保每个小时的数据有独立的键 # 使用小时和分钟作为键,确保每个小时的数据有独立的键
key = start_time.strftime('%H:%M:%S') # 只取小时:分钟:秒作为键 key = start_time.strftime('%H:%M:%S') # 只取小时:分钟:秒作为键
# time_count_dict[key] = len(orders) # time_count_dict[key] = len(orders)
plan_count_dict[key] = sum(interval_orders.mapped('qty_produced')) plan_count_dict[key] = sum(interval_orders.mapped('qty_production'))
# order_counts.append() # order_counts.append()
res['data'][line] = { res['data'][line] = {
@@ -857,7 +857,6 @@ class Sf_Dashboard_Connect(http.Controller):
:param kw: :param kw:
:return: :return:
""" """
request.env['stock.warehouse'].browse(request.env.company.id).pbm_loc_id
# res = {'status': 1, 'message': '成功', 'not_done_data': [], 'done_data': []} # res = {'status': 1, 'message': '成功', 'not_done_data': [], 'done_data': []}
res = {'status': 1, 'message': '成功', 'data': {}} res = {'status': 1, 'message': '成功', 'data': {}}
plan_obj = request.env['sf.production.plan'].sudo() plan_obj = request.env['sf.production.plan'].sudo()

View File

@@ -201,10 +201,34 @@
</div> </div>
</div> --> </div> -->
<div class="footer">
<div style="border-top: 2px solid black;"></div>
<div>
<p>o_index: <t t-esc="o_index"/></p>
<p>len(docs): <t t-esc="len(docs)"/></p>
</div>
<t t-if="o_index + 1 == len(docs)">
<div class="row">
<div class="col-6">
<p>售后服务: <span t-field="o.company_id.phone"/></p>
<p>公司名称: <span t-field="o.company_id.name"/></p>
<p>加工工厂: <span t-field="o.company_id.factory_name"/></p>
</div>
<div class="col-6">
<p>公司网址: <span t-field="o.company_id.website"/></p>
<p>公司邮箱: <span t-field="o.company_id.email"/></p>
</div>
</div>
</t>
<div class="text-center">
<span><span class="page"/> 页/共 <span class="topage"/></span>
</div>
</div>
<!-- 页脚固定在底部 --> <!-- 页脚固定在底部 -->
<!-- <div style="position: absolute; bottom: 0; left: 0; right: 0;"> -->
<t t-call="sf_quality.report_quality_footer"/> <!-- <div style="position: absolute; bottom: 0; left: 0; right: 0;"> -->
<!-- </div> --> <!-- <t t-call="sf_quality.report_quality_footer"/>-->
<!-- </div> -->
</div> </div>
</t> </t>
</t> </t>
@@ -329,9 +353,11 @@
</div> --> </div> -->
<!-- 页脚固定在底部 --> <!-- 页脚固定在底部 -->
<!-- <div style="position: absolute; bottom: 0; left: 0; right: 0;"> --> <!-- <t t-if="loop.index == len(docs) - 1">-->
<t t-call="sf_quality.html_report_quality_footer"/> <!-- <div style="position: absolute; bottom: 0; left: 0; right: 0;"> -->
<!-- </div> --> <t t-call="sf_quality.html_report_quality_footer"/>
<!-- </div> -->
<!-- </t>-->
</div> </div>
</t> </t>
</t> </t>