Compare commits

...

1121 Commits

Author SHA1 Message Date
hujiaying
b1a08be57b bfm加工订单隐藏字段 ,待发货明细中,接单日期、发货日期顺序改变,欠单如果没有发货不要显示发货时间 、更改逾期状态逻辑。 2024-09-23 12:27:31 +08:00
禹翔辉
a3356fe195 Accept Merge Request #1324: (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/1324
2024-09-19 17:29:29 +08:00
yuxianghui
3c70e1623e Merge branch 'feature/工单状态优化' into feature/库存优化 2024-09-19 17:27:44 +08:00
yuxianghui
51628c081a 1、禁用超级管理员之外的角色通过库存概览跳转到调拨单界面的调拨单创建按钮,隐藏制造作业类型的单据;2、优化移动历史记录。 2024-09-19 17:27:02 +08:00
杨金灵
18ebe6bcb4 Accept Merge Request #1323: (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/1323
2024-09-19 17:25:05 +08:00
jinling.yang
63ac4f2b44 返工工单添加标签字段 2024-09-19 17:23:01 +08:00
马广威
2966260f51 Accept Merge Request #1322: (feature/优化制造功能 -> develop)
Merge Request: 解除装夹处,扫码同步打印成品条码

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1322?initial=true
2024-09-19 15:03:30 +08:00
mgw
c4069995e0 解除装夹处,扫码同步打印成品条码 2024-09-19 14:38:24 +08:00
管欢
54920982a2 Accept Merge Request #1319: (feature/org_info_synchronous -> develop)
Merge Request: 员工信息企微id同步

Created By: @管欢
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @管欢
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1319
2024-09-19 13:52:30 +08:00
廖丹龙
f947a3ed58 Accept Merge Request #1321: (feature/tax_sync -> develop)
Merge Request: bom清单问题修复

Created By: @廖丹龙
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @廖丹龙
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1321?initial=true
2024-09-19 13:50:43 +08:00
liaodanlong
5e86d67316 bom清单问题修复 2024-09-19 13:42:52 +08:00
马广威
7354a19696 Accept Merge Request #1320: (feature/优化制造功能 -> develop)
Merge Request: 扫码获取装夹检测结果

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1320?initial=true
2024-09-19 10:51:20 +08:00
mgw
78e3d77000 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-09-19 10:50:06 +08:00
mgw
47ad2410cf 调整agv参数位置 2024-09-19 10:16:09 +08:00
mgw
fa2eb7b3cf 增加是否获取文件判断 2024-09-19 10:07:26 +08:00
guanhuan
0cee6ebd77 员工信息同步 2024-09-19 09:48:01 +08:00
杨金灵
73f161ffa4 Accept Merge Request #1318: (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/1318?initial=true
2024-09-19 09:34:41 +08:00
jinling.yang
ff06d5c3be 消息模版添加时间节点 2024-09-19 09:32:04 +08:00
liaodanlong
78cb177ac5 Merge remote-tracking branch 'origin/develop' into develop 2024-09-19 09:14:33 +08:00
liaodanlong
9601502360 视图菜单与action顺序调整 2024-09-19 09:12:38 +08:00
mgw
739b7e600c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-09-19 09:04:20 +08:00
mgw
27da7639b2 增加扫码点击按钮功能 2024-09-19 09:04:05 +08:00
mgw
258e3bdb9f 一般设置页增加重新获取检测文件配置项目 2024-09-19 09:03:07 +08:00
jinling.yang
7f3e9927d5 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-09-19 08:52:34 +08:00
jinling.yang
927f726030 Merge branch 'feature/优化消息模版' into develop 2024-09-19 08:52:25 +08:00
杨金灵
7576200fc4 Accept Merge Request #1315: (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/1315?initial=true
2024-09-19 08:52:10 +08:00
胡尧
4ffb9d636f Accept Merge Request #1316: (feature/流程用扫码完成 -> develop)
Merge Request: 修改扫码判断起点接驳站逻辑

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1316?initial=true
2024-09-19 08:51:03 +08:00
jinling.yang
24f0547343 消息模块添加销售依赖 2024-09-19 08:50:24 +08:00
胡尧
402a323673 修改扫码判断起点接驳站逻辑 2024-09-19 08:49:23 +08:00
jinling.yang
5e1685417f Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-09-19 08:46:01 +08:00
jinling.yang
9dfe34ce9a 还原注释代码 2024-09-19 08:45:50 +08:00
jinling.yang
190d6da217 还原代码 2024-09-18 17:59:08 +08:00
胡嘉莹
8946b44280 Accept Merge Request #1313: (feature/update_production_line -> develop)
Merge Request: 修改计划排程,新增处理排程计划订单交货时间为null数据处理的方法

Created By: @胡嘉莹
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @胡嘉莹
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1313
2024-09-18 17:44:45 +08:00
廖丹龙
f21d085462 Accept Merge Request #1314: (feature/tax_sync -> 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/1314
2024-09-18 17:42:28 +08:00
jinling.yang
43f53197c4 优化消息模版 2024-09-18 17:39:06 +08:00
liaodanlong
ac43be1262 适用刀具物料类型字段 设置只能去选择。取消必填 2024-09-18 16:36:52 +08:00
jinling.yang
8bf1c56efd Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化消息模版
# Conflicts:
#	sf_tool_management/models/base.py
2024-09-18 15:40:54 +08:00
jinling.yang
d66791dc41 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-09-18 15:39:50 +08:00
jinling.yang
ce6b36a77e 12 2024-09-18 15:39:42 +08:00
hujiaying
4acae01009 修改计划排程,新增处理排程计划订单交货时间为null数据处理的方法 2024-09-18 15:34:04 +08:00
胡尧
213b76a280 Accept Merge Request #1312: (feature/流程用扫码完成 -> develop)
Merge Request: 解除装夹工单页面进入时失去焦点

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1312
2024-09-18 15:15:10 +08:00
胡尧
c675e1d67c 解除装夹工单页面进入时失去焦点 2024-09-18 15:13:20 +08:00
胡嘉莹
8a9f6ab34f Accept Merge Request #1311: (feature/update_production_line -> 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/1311
2024-09-18 14:14:50 +08:00
hujiaying
8aca6ce084 修改计划排程甘特图界面不显示已经排程的制造订单 2024-09-18 14:03:04 +08:00
禹翔辉
cb0c093006 Accept Merge Request #1310: (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/1310?initial=true
2024-09-18 11:56:37 +08:00
yuxianghui
1e7d7008b4 Merge branch 'feature/工单优化' into feature/工单状态优化 2024-09-18 11:55:02 +08:00
yuxianghui
ef453dbc1e 工单状态优化 2024-09-18 11:53:46 +08:00
jinling.yang
9f1e635c8d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-09-18 10:23:51 +08:00
jinling.yang
92037f3f04 注释OCC代码 2024-09-18 10:23:42 +08:00
禹翔辉
4ba0566d27 Accept Merge Request #1309: (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/1309?initial=true
2024-09-18 09:46:36 +08:00
yuxianghui
5d870d53f6 Merge branch 'feature/刀具拆解单优化' into feature/工单优化 2024-09-18 09:30:49 +08:00
yuxianghui
6a674cdb5b 工单状态优化 2024-09-18 09:28:36 +08:00
胡嘉莹
fbce132173 Accept Merge Request #1308: (feature/update_production_line -> 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/1308
2024-09-14 17:45:18 +08:00
guanhuan
98e13cba99 员工信息企微id同步 2024-09-14 17:45:00 +08:00
liaodanlong
7ce2f6c797 历史销售订单价格问题 2024-09-14 17:40:45 +08:00
hujiaying
7502792438 修改计划排程列表进入待排程的制造订单详情进行排程-报错 2024-09-14 17:26:24 +08:00
hujiaying
9efb13cf01 修改排程计划开始时间修改 2024-09-14 16:34:47 +08:00
管欢
b14e263a2e Accept Merge Request #1306: (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/1306
2024-09-14 14:40:58 +08:00
马广威
6f41ef3047 Accept Merge Request #1307: (feature/优化制造功能 -> develop)
Merge Request: 增加拉取文件之前的检查

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1307?initial=true
2024-09-14 14:34:02 +08:00
mgw
de29f0c938 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-09-14 14:32:55 +08:00
mgw
589a24f595 增加拉取文件之前的检查 2024-09-14 14:32:40 +08:00
胡嘉莹
85186f94f5 Accept Merge Request #1302: (feature/update_production_line -> develop)
Merge Request: 优化计划开始时间默认往后延迟10分钟

Created By: @胡嘉莹
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @胡嘉莹
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1302
2024-09-14 14:31:56 +08:00
廖丹龙
ffc363a31c Accept Merge Request #1305: (feature/tax_sync -> develop)
Merge Request: 功能刀具清单 bom添加查询排序与清单明细行删除校验

Created By: @廖丹龙
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @廖丹龙
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1305?initial=true
2024-09-14 14:30:59 +08:00
胡尧
a047ad3bb6 Accept Merge Request #1304: (feature/流程用扫码完成 -> develop)
Merge Request: 去掉多余的js引用,将工件配送页面起点接驳站修改为当前接驳站

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1304?initial=true
2024-09-14 14:09:29 +08:00
胡尧
cc3289c834 将工件配送页面起点接驳站修改为当前接驳站 2024-09-14 13:49:46 +08:00
胡尧
e1093a3c69 去掉多余的js引用 2024-09-14 13:42:38 +08:00
guanhuan
ba955ca658 快速订单上传模型文件检查文件后缀 2024-09-14 08:46:32 +08:00
禹翔辉
946abc5cf7 Accept Merge Request #1303: (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/1303?initial=true
2024-09-13 17:42:16 +08:00
yuxianghui
57ea9ed8f4 Merge branch 'feature/组装单重构_2' into feature/刀具拆解单优化 2024-09-13 17:38:19 +08:00
hujiaying
f8a12b1fe3 优化计划开始时间默认往后延迟10分钟 2024-09-13 17:37:57 +08:00
yuxianghui
722f6257ae 1、优化刀具拆解单 2024-09-13 17:37:20 +08:00
guanhuan
ccbe311c58 快速订单填写的零件图号和零件图纸传给制造订单 2024-09-13 10:45:08 +08:00
管欢
0f6ca0876c Accept Merge Request #1300: (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/1300
2024-09-13 10:41:19 +08:00
马广威
bb60fd0339 Accept Merge Request #1301: (feature/优化制造功能 -> develop)
Merge Request: 优化dashboard接口,及装夹bug

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1301?initial=true
2024-09-13 10:40:58 +08:00
mgw
eefbd5939b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-09-13 10:38:23 +08:00
mgw
7c01196f17 修复“装夹预调工单没有测量数据时点击左上角的【完成】按钮直接完成工单了” 2024-09-13 10:37:50 +08:00
guanhuan
4c58f4d7f3 快速订单填写的零件图号和零件图纸传给制造订单 2024-09-13 10:22:14 +08:00
胡嘉莹
c741587341 Accept Merge Request #1299: (feature/update_production_line -> 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/1299?initial=true
2024-09-13 10:21:11 +08:00
hujiaying
6ad2fa80f1 修改销售,采购,制造,仓库产品设置产品类型为默认分组 2024-09-13 10:15:26 +08:00
胡尧
55694ae303 Merge branch 'develop' into feature/流程用扫码完成 2024-09-13 08:53:16 +08:00
禹翔辉
8423b12119 Accept Merge Request #1298: (feature/组装单重构_2 -> 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/1298?initial=true
2024-09-12 17:27:42 +08:00
jinling.yang
5a7ba7f87e Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-09-12 17:24:43 +08:00
jinling.yang
d36da3df24 Merge branch 'feature/新增消息提醒模版' into develop 2024-09-12 17:24:35 +08:00
杨金灵
302a5f0cf1 Accept Merge Request #1297: (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/1297
2024-09-12 17:24:18 +08:00
yuxianghui
b4fef421dd Merge branch 'feature/功能刀具重构_1' into feature/组装单重构_2 2024-09-12 17:24:13 +08:00
jinling.yang
5f5e991d33 优化页面 2024-09-12 17:24:01 +08:00
yuxianghui
43a49242c5 1、组装单布局调整 2024-09-12 17:21:37 +08:00
yuxianghui
2e5694cd1a 1、优化组装单扫描验证物料方法;2、对组装单物料批次进行调整,删除部分字段和方法;优化获取BOM并自动初始化物料数据方法;3、货位批次模型新增物料字段,新增tree视图,并且除刀柄外物料点击【更多】时跳转至不同的货位批次模型tree视图;4、添加刀柄和其他物料在点击【更多】按钮后选取新物料点击【确认】后回填物料信息到组装单并给出提示信息;5、添加组装物料信息校验功能,初始化或重新选取物料后需进行验证才能进行组装;6、组装单form视图布局调整; 2024-09-12 17:20:58 +08:00
jinling.yang
3c123a07ea Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/新增消息提醒模版 2024-09-12 17:06:33 +08:00
jinling.yang
dec5ddd154 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-09-12 17:06:24 +08:00
jinling.yang
22864b9669 新增消息提醒模版 2024-09-12 17:06:16 +08:00
管欢
528fa483a2 Accept Merge Request #1296: (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/1296
2024-09-12 16:48:28 +08:00
guanhuan
b5a3815f1f 设备维保标准筛选添加已归档 2024-09-12 16:43:54 +08:00
mgw
1719e0394e 去掉run_time返回 2024-09-12 16:33:55 +08:00
mgw
eae902ee92 调整设备运行时长 2024-09-12 15:36:30 +08:00
liaodanlong
01c57a8691 去除无用代码添加描述信息 2024-09-12 15:17:47 +08:00
liaodanlong
2808005ce9 错误处理 2024-09-12 15:17:09 +08:00
mgw
06c5f65df2 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-09-12 11:08:41 +08:00
mgw
e0bad6ed40 优化当班计划量,完成量数据 2024-09-12 11:08:24 +08:00
jinling.yang
35c8b9316e Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/new 2024-09-12 10:46:40 +08:00
jinling.yang
2ddfbb0dde Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-09-12 10:46:29 +08:00
guanhuan
988c4a460d 2D加工图纸改为pdf 2024-09-12 10:24:45 +08:00
guanhuan
c050e2f11a 供应商详情的采购员去掉必填 2024-09-12 10:14:38 +08:00
mgw
95e49c7b0f 优化打印输出 2024-09-12 09:17:52 +08:00
管欢
e46a13889e Accept Merge Request #1295: (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/1295
2024-09-12 08:38:01 +08:00
mgw
335151f6ca Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-09-11 18:11:07 +08:00
mgw
908e4a3df6 调整通过数量取值 2024-09-11 18:07:21 +08:00
胡嘉莹
6b403f2c1e Accept Merge Request #1294: (feature/update_production_line -> 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/1294?initial=true
2024-09-11 17:58:51 +08:00
yuxianghui
da5e322229 1、组装单新增五种物料的【更多】按钮,点击按钮跳转至新的弹窗界面,根据功能刀具清单BOM的配置,搜索出全部满足条件的刀柄产品或者其他刀具物料对应的批次、货位,使用tree视图提供选择。2、新增产品tree、search视图 2024-09-11 17:49:43 +08:00
hujiaying
4f9ac16a07 修改计划排程,已取消的不占用小时或日产数量 2024-09-11 17:48:08 +08:00
mgw
4342844845 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-09-11 17:41:49 +08:00
guanhuan
8bc68e1edd 表面工艺参数取消必填 2024-09-11 17:40:28 +08:00
mgw
763d64a1ca 增加设备运行时长效率接口 2024-09-11 14:57:42 +08:00
胡嘉莹
8a10d18f37 Accept Merge Request #1293: (feature/update_production_line -> 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/1293?initial=true
2024-09-11 12:15:17 +08:00
hujiaying
181f490d47 修改计划排程时间范围内判断取值向上取整 2024-09-11 11:53:17 +08:00
mgw
322718d19a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-09-11 11:45:36 +08:00
mgw
96eeb1cab7 调整检测量、合格量 2024-09-11 11:45:14 +08:00
胡尧
d5c82e4a28 修改代码问题 2024-09-11 10:40:26 +08:00
liaodanlong
436adc5ff6 功能刀具清单 bom添加查询排序与清单明细行删除校验 2024-09-11 10:39:27 +08:00
廖丹龙
97a5d91fce Accept Merge Request #1292: (feature/tax_sync -> develop)
Merge Request: 功能刀具清单 bom添加查询排序与清单明细行删除校验

Created By: @廖丹龙
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @廖丹龙
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1292?initial=true
2024-09-11 10:30:08 +08:00
liaodanlong
9eee8557c2 功能刀具清单 bom添加查询排序与清单明细行删除校验 2024-09-11 10:23:02 +08:00
mgw
4394dd023e 增加交付准时率 2024-09-11 10:11:22 +08:00
胡尧
d39bbe4f99 Accept Merge Request #1291: (feature/流程用扫码完成 -> develop)
Merge Request: 工件配送,解除装夹使用扫码完成

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1291
2024-09-11 09:15:48 +08:00
胡尧
b188c8adfe 修改异常提示 2024-09-11 09:14:00 +08:00
guanhuan
ea6fd42b2e SF快速订单优化 2024-09-11 09:01:24 +08:00
guanhuan
625499f758 SF快速订单优化 2024-09-11 08:59:44 +08:00
guanhuan
0c2d6dd582 SF快速订单优化 2024-09-11 08:52:28 +08:00
mgw
f6a9c97e7f 优化产量部分 2024-09-11 08:51:01 +08:00
yuxianghui
e2d741937e 1、实现功能刀具点击开始组装时,自动获取功能刀具清单BOM信息,并根据规则匹配刀具物料信息进行信息初始化;2、对组装单form界面进行调整,并隐藏夹头物料的所以信息; 2024-09-10 17:52:40 +08:00
胡尧
9a3404f4b8 去掉屏蔽的代码 2024-09-10 17:51:27 +08:00
胡尧
d000aa095f 对于测试用例进行修改 2024-09-10 17:49:52 +08:00
胡尧
8945801db8 解决冲突 2024-09-10 16:16:30 +08:00
胡尧
40f327ea17 修改工件拆卸 2024-09-10 16:13:57 +08:00
mgw
44a2604dbd Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-09-10 16:13:17 +08:00
mgw
0ae7424f04 获取数据按钮增加调用服务功能 2024-09-10 16:12:24 +08:00
胡嘉莹
091af92e8d Accept Merge Request #1290: (feature/update_production_line -> 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/1290
2024-09-10 15:56:16 +08:00
hujiaying
3ed338ed64 修改计划-生产订单列表只显示制造订单 2024-09-10 14:50:24 +08:00
hujiaying
65781570e7 修改计划-生产订单列表只显示制造订单 2024-09-10 14:38:25 +08:00
liaodanlong
e1f7aeaa96 修改字段位置 2024-09-10 13:53:23 +08:00
胡嘉莹
a0a580588c Accept Merge Request #1289: (feature/update_production_line -> 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/1289?initial=true
2024-09-10 11:26:52 +08:00
mgw
a2f2a21a4c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-09-10 11:17:23 +08:00
hujiaying
1ddb446bc6 修改计划排程单小时产能取值 2024-09-10 11:15:00 +08:00
廖丹龙
dcdc6851b6 Accept Merge Request #1288: (feature/tax_sync -> develop)
Merge Request: bom物料清单添加错误信息,添加刀具物料字段展示

Created By: @廖丹龙
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @廖丹龙
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1288
2024-09-10 09:23:31 +08:00
liaodanlong
ece4e56118 Merge branch 'refs/heads/develop' into feature/tax_sync 2024-09-10 09:19:48 +08:00
liaodanlong
7cd104c047 bom物料清单添加错误信息,添加刀具物料字段展示 2024-09-10 09:18:43 +08:00
yuxianghui
80a7dd75c8 Merge branch 'feature/功能刀具重构' into feature/功能刀具重构_1 2024-09-10 08:28:47 +08:00
hujiaying
ec2ef752b3 补充模块注释 2024-09-09 18:04:10 +08:00
廖丹龙
57d5c57048 Accept Merge Request #1287: (feature/tax_sync -> develop)
Merge Request: bom物料清单,sf与cloud数据同步

Created By: @廖丹龙
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @廖丹龙
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1287
2024-09-09 18:00:55 +08:00
yuxianghui
9b7c22c35e 1、对组装单物料批次号获取逻辑进行优化,更改form视图批次字段显示条件;2、开发 寿命到期功能刀具完成拆解后关联生成并跳转到组装单的需求 需求 2024-09-09 17:54:10 +08:00
liaodanlong
6711f6f6e6 Merge branch 'refs/heads/develop' into feature/tax_sync 2024-09-09 17:37:21 +08:00
liaodanlong
7ac7077f8c bom物料清单 2024-09-09 17:36:23 +08:00
胡尧
ed20249988 Accept Merge Request #1286: (feature/流程用扫码完成 -> develop)
Merge Request: 扫码触发页面按钮,解除装夹起始站点根据下产线终点站点自动赋值

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1286
2024-09-09 17:31:25 +08:00
liaodanlong
dba8d23348 销售订单价格问题 2024-09-09 17:11:33 +08:00
胡嘉莹
ab9062983c Accept Merge Request #1285: (feature/update_production_line -> 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/1285?initial=true
2024-09-09 14:16:31 +08:00
hujiaying
37493a4688 sf计划排程计算排程时间日排程的制造订单总数量不能超过产线日产能数量,计算排程时间制造订单每小时排程不能超过产线小时产能 2024-09-09 14:08:39 +08:00
胡嘉莹
689d149edc Accept Merge Request #1282: (feature/仓库发货下发bfm -> 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/1282
2024-09-09 11:02:17 +08:00
管欢
9b9106c5da Accept Merge Request #1283: (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/1283
2024-09-09 10:53:20 +08:00
liaodanlong
9a43af98c3 cloud 与 sf 静态资源同步问题 2024-09-09 10:46:05 +08:00
yuxianghui
1eae92f2b2 1、功能刀具组装单添加物料校验标签字段、新增扫描校验功能、优化相关计算方法;2、添加新旧、粗中精字段值根据所选物料自动计算方法,伸出长自动计算方法;3、去除部分字段的校验方法;4、组装单form、tree视图布局调整,tree视图状态字段添加背景颜色,变更筛选条件; 2024-09-06 17:55:59 +08:00
hujiaying
4560bbc0ed sf计划排程计算生产线是否配置生产线,计算排程时间是否在工作时间内,计算生产线是否有可排程的资源, 2024-09-06 17:48:27 +08:00
胡尧
2d5ef0aae4 解除装夹起点从下产线agv调度任务关联带出 2024-09-06 15:34:30 +08:00
胡尧
096542c8ff 扫码触发按键功能 2024-09-06 09:37:05 +08:00
hujiaying
d123ca5173 修改日有效工作时长计算规则 2024-09-06 09:13:38 +08:00
胡尧
388929f207 扫码触发按键功能 2024-09-05 17:59:55 +08:00
yuxianghui
29b9223a14 1、将功能刀具组装弹窗模型的组装流程以及其中相关的业务逻辑,移动到组装单模型并进行优化;2、功能刀具组装单模型新增部分字段的自动计算方法;新增部分物料字段; 2024-09-05 17:57:23 +08:00
hujiaying
cf283377cd 计划排程考虑CNC生产线日产能的优化需求,新增可用机台数量,单台小时产能,日有效工作时长计算规则 2024-09-05 17:39:36 +08:00
hujiaying
5f218e69d4 计划排程考虑CNC生产线日产能的优化需求,新增可用机台数量,单台小时产能,日有效工作时长计算规则 2024-09-05 17:39:09 +08:00
mgw
7f5fb165de Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-09-05 10:30:21 +08:00
mgw
eec79d7d3e 优化图片返回为url 2024-09-05 10:30:04 +08:00
hujiaying
00809d88f6 修改打印日志 2024-09-05 09:53:32 +08:00
hujiaying
18b0cc6ea0 Merge remote-tracking branch 'origin/develop' into feature/仓库发货下发bfm 2024-09-05 09:38:40 +08:00
hujiaying
54d9902ae4 撤回修改 2024-09-05 09:26:05 +08:00
hujiaying
eff39a39e3 修改 cloud端新建表面工艺参数必填参数不能填写 2024-09-05 09:24:45 +08:00
guanhuan
005a7bb68e 建立设备维保标准,建立设备维保标准修复 2024-09-05 08:51:36 +08:00
胡嘉莹
afc1701150 Accept Merge Request #1281: (feature/仓库发货下发bfm -> develop)
Merge Request: 工厂发货下发bfm

Created By: @胡嘉莹
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @胡嘉莹
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1281?initial=true
2024-09-04 18:24:24 +08:00
yuxianghui
72eada0639 1、功能刀具组装tree、form视图布局调整;2、部分字段内容进行调整;3、功能刀具组装单编码自动生成方法添加新逻辑; 2024-09-04 17:55:24 +08:00
jinling.yang
979e8a47ab Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-09-04 17:45:02 +08:00
jinling.yang
e119a364c1 Merge branch 'feature/优化返工-保留装夹测量数据' into develop 2024-09-04 17:44:50 +08:00
杨金灵
c7b9bbb18d Accept Merge Request #1280: (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/1280
2024-09-04 17:44:07 +08:00
jinling.yang
3cb3dce247 优化返工代码 2024-09-04 17:43:48 +08:00
jinling.yang
a7e1c89e66 还原代码 2024-09-04 17:36:41 +08:00
jinling.yang
ca1060ada5 去掉注释代码 2024-09-04 17:33:54 +08:00
hujiaying
69578ab054 bfm新增库存菜单,代发货菜单,处理sf一次性发货,bfm生成代发货名字规则 2024-09-04 17:28:26 +08:00
jinling.yang
511bed47ff 优化返工-保留装夹测量数据 2024-09-04 16:58:55 +08:00
jinling.yang
26a0412649 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-09-04 15:00:47 +08:00
杨金灵
4989ff773c Accept Merge Request #1279: (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/1279
2024-09-04 14:59:59 +08:00
jinling.yang
04c0d68763 接口暂时去掉身份验证 2024-09-04 14:58:04 +08:00
hujiaying
589035d42b 处理采购订单代发货数量修改及创建欠单,处理sf发货单下发不需要创建欠单,处理bfm发货单下发内部管理,内部管理处理不需要创建欠单 2024-09-03 19:14:48 +08:00
mgw
5726d50106 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-09-03 17:26:56 +08:00
liaodanlong
6e9c326a52 智能工厂数据同步任务的错误提示优化 2024-09-03 13:56:16 +08:00
hujiaying
fc1cdf4d0e 联调接口数据,处理修改sf下发代发货,bfm接收代发货消息,下发到内部管理,处理采购订单代发货数量修改及创建欠单 2024-09-02 19:02:53 +08:00
杨金灵
45178ac38b Accept Merge Request #1278: (hotfix/修复报废-外协入库验证 -> 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/1278
2024-09-02 17:48:53 +08:00
jinling.yang
09ee1c26b1 修复报废-外协入库验证 2024-09-02 17:33:06 +08:00
liaodanlong
64180ca57f Merge branch 'refs/heads/develop' into feature/tax_sync 2024-09-02 15:43:25 +08:00
jinling.yang
0c052a118c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-09-02 14:44:59 +08:00
mgw
cb9fd43f11 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-09-02 09:04:59 +08:00
mgw
1dc55c2770 调整不良工单逻辑 2024-09-02 09:04:42 +08:00
hujiaying
0ca6d46a7b 修改sf下发欠单,bfm接收下发欠单,及处理发货单的关系 2024-08-31 21:09:56 +08:00
liaodanlong
3624ef4755 销售订单价格问题处理 2024-08-30 16:30:34 +08:00
胡尧
f07a003f2c Accept Merge Request #1277: (hotfix/修改agv回调接口授权 -> develop)
Merge Request: 将agv回调接口授权改为none

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1277?initial=true
2024-08-30 09:46:45 +08:00
胡尧
0ef46407dd 将agv回调接口授权改为none 2024-08-30 09:35:08 +08:00
jinling.yang
f7f3c005f8 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-30 08:59:09 +08:00
马广威
cae5e14587 Accept Merge Request #1276: (release/release_2.3 -> master)
Merge Request: SPRINT-MES-2024-05

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1276?initial=true
2024-08-29 22:02:45 +08:00
胡尧
a2990b8f2e Accept Merge Request #1275: (feature/agv_dispatch -> develop)
Merge Request: 修改agv相关接口请求授权用户

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1275
2024-08-29 20:21:33 +08:00
胡尧
5121e455d2 修改agv相关接口请求授权用户 2024-08-29 20:20:39 +08:00
马广威
4a14fa6bf6 Accept Merge Request #1274: (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/1274
2024-08-29 19:55:09 +08:00
jinling.yang
f251878637 优化工单工序,优化表面工艺排序 2024-08-29 19:53:37 +08:00
jinling.yang
9a5aa52801 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-29 19:45:53 +08:00
jinling.yang
5b3193d3ff Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/new 2024-08-29 19:45:44 +08:00
禹翔辉
52befb6233 Accept Merge Request #1273: (feature/工单优化_2 -> 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/1273
2024-08-29 19:25:22 +08:00
yuxianghui
9ce1963d44 Merge branch 'feature/工单优化_1' into feature/工单优化_2 2024-08-29 19:23:55 +08:00
yuxianghui
1b710b205f 工单优化 2024-08-29 19:23:15 +08:00
禹翔辉
0d253c54c8 Accept Merge Request #1272: (feature/工单优化_1 -> 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/1272
2024-08-29 18:19:22 +08:00
yuxianghui
d2c5fdb509 优化工单 2024-08-29 18:18:19 +08:00
马广威
40209958f2 Accept Merge Request #1271: (feature/优化制造功能 -> develop)
Merge Request: 修复验证代码

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1271?initial=true
2024-08-29 17:53:39 +08:00
mgw
778896a670 修复验证代码 2024-08-29 17:52:56 +08:00
禹翔辉
fcacf609e9 Accept Merge Request #1270: (feature/工单优化_1 -> 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/1270
2024-08-29 17:36:11 +08:00
yuxianghui
5cd134758a Merge branch 'feature/工单工序排序方法优化' into feature/工单优化_1 2024-08-29 17:33:06 +08:00
yuxianghui
b8f8e90444 Merge branch 'feature/刀具组装扫码优化' into feature/工单工序排序方法优化 2024-08-29 17:31:39 +08:00
jinling.yang
b50a852f77 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-29 17:31:38 +08:00
yuxianghui
ea94d74657 优化工单工序排序方法 2024-08-29 17:30:54 +08:00
jinling.yang
b5bea1f811 Merge branch 'feature/修复销售-表面工艺外协' into develop 2024-08-29 17:30:47 +08:00
杨金灵
8416630593 Accept Merge Request #1269: (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/1269
2024-08-29 17:30:32 +08:00
jinling.yang
6572ca25fe 优化提示 2024-08-29 17:30:16 +08:00
jinling.yang
6a7e6ee5c5 修复销售-表面工艺外协 2024-08-29 17:24:09 +08:00
杨金灵
aff35f2dd4 Accept Merge Request #1268: (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/1268
2024-08-29 15:25:11 +08:00
jinling.yang
8ead5655cf 修复外协采购 2024-08-29 15:23:28 +08:00
jinling.yang
d6b3a5a3f1 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-29 14:26:34 +08:00
jinling.yang
19d8f6ae73 Merge branch 'feature/优化工单' into develop 2024-08-29 14:26:24 +08:00
杨金灵
ae8e304d7f Accept Merge Request #1267: (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/1267
2024-08-29 14:25:52 +08:00
jinling.yang
e154f5b763 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化工单
# Conflicts:
#	sf_manufacturing/models/mrp_workorder.py
2024-08-29 14:22:50 +08:00
jinling.yang
804bdb60e8 修复外协采购单 2024-08-29 14:21:18 +08:00
马广威
302636635c Accept Merge Request #1266: (feature/优化制造功能 -> develop)
Merge Request: 翻译持久化

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1266?initial=true
2024-08-28 20:32:23 +08:00
mgw
c465822774 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-28 20:31:35 +08:00
mgw
f9063bf3d9 翻译持久化 2024-08-28 20:31:20 +08:00
马广威
ea6fb5e570 Accept Merge Request #1265: (feature/优化制造功能 -> develop)
Merge Request: 修复装夹判断逻辑

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1265?initial=true
2024-08-28 18:08:16 +08:00
mgw
0e672aef79 修复装夹判断逻辑 2024-08-28 18:07:34 +08:00
马广威
11ec04de5b Accept Merge Request #1264: (feature/优化制造功能 -> develop)
Merge Request: 修改装夹提示词

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1264?initial=true
2024-08-28 17:43:15 +08:00
mgw
efe98b5133 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-28 17:42:38 +08:00
mgw
2d2abfce25 修改提示词 2024-08-28 17:42:23 +08:00
jinling.yang
821a7a63be 优化工单 2024-08-28 17:30:46 +08:00
廖丹龙
de221ba67e Accept Merge Request #1263: (feature/tax_sync -> 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/1263
2024-08-28 14:55:40 +08:00
liaodanlong
c5bb9a32d0 多面工艺排程问题 2024-08-28 14:50:39 +08:00
杨金灵
925fc2f2b3 Accept Merge Request #1262: (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/1262
2024-08-28 10:42:53 +08:00
jinling.yang
41f379ef5f 优化下发编程单 2024-08-28 10:41:16 +08:00
jinling.yang
acc791978d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-28 10:39:11 +08:00
jinling.yang
f24c1ab4a5 Merge branch 'feature/修复报废-下发编程单' into develop 2024-08-28 10:31:04 +08:00
杨金灵
179899e483 Accept Merge Request #1261: (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/1261
2024-08-28 10:30:45 +08:00
jinling.yang
b8d21b7fa5 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复报废-下发编程单 2024-08-28 10:29:14 +08:00
jinling.yang
295f7ecae3 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-28 10:28:10 +08:00
jinling.yang
d2a76a03d2 修复报废-下发编程单 2024-08-28 10:28:01 +08:00
hujiaying
1e172cb4e3 处理代发货下发 2024-08-27 17:24:04 +08:00
马广威
4424cb58f4 Accept Merge Request #1260: (feature/优化制造功能 -> develop)
Merge Request: 接口优化

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1260?initial=true
2024-08-27 17:08:35 +08:00
jinling.yang
cd0ea08b21 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-27 17:00:57 +08:00
jinling.yang
10065e95d3 Merge branch 'feature/修复报废-时间' into develop 2024-08-27 17:00:45 +08:00
杨金灵
2c06c6f6a1 Accept Merge Request #1259: (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/1259?initial=true
2024-08-27 17:00:09 +08:00
jinling.yang
1eeaf2f85d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-27 16:58:41 +08:00
jinling.yang
aa96e63fff 修复报废-时间 2024-08-27 16:58:32 +08:00
胡尧
7ac09653c3 Accept Merge Request #1258: (feature/agv_dispatch -> develop)
Merge Request: 修改日期序列的bug

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1258
2024-08-27 16:49:35 +08:00
胡尧
9c3ed0166b 修改日期序列的bug 2024-08-27 16:49:04 +08:00
廖丹龙
3c8ce870df Accept Merge Request #1257: (feature/tax_sync -> 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/1257?initial=true
2024-08-27 16:38:22 +08:00
liaodanlong
d8e65a20d5 Merge branch 'refs/heads/develop' into feature/tax_sync 2024-08-27 16:34:57 +08:00
liaodanlong
10a622b52d 错误处理 2024-08-27 16:34:27 +08:00
禹翔辉
c1ffd3f870 Accept Merge Request #1255: (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/1255
2024-08-27 16:18:05 +08:00
jinling.yang
a98b7456c0 Merge branch 'feature/修复报废-坯料序列号' into develop 2024-08-27 16:16:01 +08:00
杨金灵
7e3d40bd38 Accept Merge Request #1256: (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/1256
2024-08-27 16:15:12 +08:00
jinling.yang
83d45b6d3f Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复报废-坯料序列号 2024-08-27 16:13:06 +08:00
jinling.yang
fe237dc742 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-27 16:12:57 +08:00
jinling.yang
35c13dc51c 修复报废-坯料序列号 2024-08-27 16:12:48 +08:00
yuxianghui
08477e4d94 Merge branch 'feature/收藏无法删除缺陷优化' into feature/刀具组装扫码优化 2024-08-27 14:43:16 +08:00
yuxianghui
069d1f50b0 解决刀具组装时,扫描刚刚拆解完的刀柄状态没有实时更新为可用的问题。 2024-08-27 14:39:49 +08:00
廖丹龙
dd60dee22d Accept Merge Request #1254: (feature/tax_sync -> 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/1254
2024-08-27 14:10:43 +08:00
liaodanlong
e49362e2e3 Merge branch 'refs/heads/develop' into feature/tax_sync 2024-08-27 14:04:13 +08:00
liaodanlong
d5b5231873 多面加工工单排程优化 2024-08-27 14:03:41 +08:00
mgw
2b080c1639 优化完成量接口 2024-08-27 11:43:56 +08:00
jinling.yang
bd3bfc979e Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-27 11:39:48 +08:00
jinling.yang
5a3233d539 Merge branch 'feature/优化表面工艺排序' into develop 2024-08-27 11:39:04 +08:00
杨金灵
3e8f045a40 Accept Merge Request #1253: (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/1253
2024-08-27 11:38:47 +08:00
jinling.yang
d1fab6aab0 还原代码 2024-08-27 11:38:30 +08:00
jinling.yang
a3357e01aa Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化表面工艺排序
# Conflicts:
#	sf_manufacturing/models/stock.py
#	sf_mrs_connect/controllers/controllers.py
2024-08-27 11:34:39 +08:00
jinling.yang
c46a148856 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-27 11:33:33 +08:00
jinling.yang
5794f75f0b Merge branch 'feature/修复报废' into develop 2024-08-27 11:33:04 +08:00
杨金灵
01d9d4a636 Accept Merge Request #1252: (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/1252
2024-08-27 11:32:46 +08:00
jinling.yang
2931d6a92d 去掉不要的代码 2024-08-27 11:32:16 +08:00
jinling.yang
5e6ae1ff55 去掉设置token代码 2024-08-27 11:29:17 +08:00
jinling.yang
d7a0dc578b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复报废
# Conflicts:
#	sf_manufacturing/models/mrp_workorder.py
2024-08-27 11:27:42 +08:00
jinling.yang
44a11c839f 修复下发编程单(报废) 2024-08-27 11:25:12 +08:00
jinling.yang
9808f49b3d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-27 11:24:13 +08:00
jinling.yang
b40a87df88 修复报废 2024-08-27 11:24:04 +08:00
胡尧
72e9443048 Accept Merge Request #1251: (feature/agv_dispatch -> develop)
Merge Request: 修复工件配送后没有同步任务下发时间的bug,AGV配置中增加是否下发AGV任务

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1251?initial=true
2024-08-27 10:43:44 +08:00
胡尧
c6f6927d57 修复工件配送后没有同步任务下发时间的bug,AGV配置中增加是否下发AGV任务 2024-08-27 10:42:24 +08:00
mgw
ade7588a9c 修改返回数据顺序 2024-08-27 10:23:53 +08:00
mgw
281f03670e Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-27 10:20:13 +08:00
mgw
7356e0afb7 接口优化 2024-08-27 10:19:53 +08:00
胡尧
fcd86e230a Accept Merge Request #1250: (feature/update_process_start_time -> 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/1250
2024-08-27 10:05:55 +08:00
guanhuan
bf1271a742 Merge remote-tracking branch 'origin/feature/update_process_start_time' into feature/update_process_start_time 2024-08-27 10:02:31 +08:00
guanhuan
324ed283c4 员工对象内”工作电子邮件“字段变为必填项 2024-08-27 10:01:22 +08:00
hujiaying
ebb8007549 销售订单内”取消“按钮变为”拒绝接单“按钮 2024-08-27 09:46:34 +08:00
胡尧
361f187026 Accept Merge Request #1249: (feature/agv_dispatch -> develop)
Merge Request: 修改人工报价流程

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1249
2024-08-27 09:23:50 +08:00
胡尧
b35f444e49 修改人工报价流程 2024-08-27 09:23:18 +08:00
马广威
9b2a2d644d Accept Merge Request #1248: (feature/优化制造功能 -> develop)
Merge Request: 优化运行信息接口、优化次数接口;增加oee接口

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1248?initial=true
2024-08-27 08:57:22 +08:00
mgw
93ca2000a1 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-27 08:56:13 +08:00
胡尧
ca43aa836e Accept Merge Request #1247: (feature/agv_dispatch -> develop)
Merge Request: 修改人工报价流程

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1247?initial=true
2024-08-27 08:55:15 +08:00
mgw
26ad5b5b3f 优化运行信息接口、优化次数接口 2024-08-27 08:55:01 +08:00
胡尧
937ea42af3 修改人工报价流程 2024-08-27 08:54:33 +08:00
jinling.yang
9b957848c2 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复报废 2024-08-27 08:53:29 +08:00
jinling.yang
36579d22ac Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-27 08:53:15 +08:00
jinling.yang
e662490cb5 修复报废 2024-08-26 17:31:14 +08:00
mgw
038ce8e139 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-26 17:21:02 +08:00
mgw
e1a4784092 增加设备oee数据 2024-08-26 17:20:46 +08:00
禹翔辉
6d4d393b9b Accept Merge Request #1246: (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/1246?initial=true
2024-08-26 17:08:53 +08:00
yuxianghui
c956b06f57 Merge branch 'feature/线边料架接口优化' into feature/收藏无法删除缺陷优化 2024-08-26 17:00:48 +08:00
yuxianghui
da02d68c12 1、将销售单的【取消】改为【拒绝接单】;2、取消功能刀具拆解单的刀柄是否报废按钮; 2024-08-26 16:58:54 +08:00
yuxianghui
eb9b43dc91 解决 【库存概览内增加收藏的默认筛选项后,删除报错(原生报错)】 缺陷 2024-08-26 16:11:40 +08:00
胡嘉莹
ab66e24c9d Accept Merge Request #1244: (feature/update_process_start_time -> 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/1244?initial=true
2024-08-26 15:06:43 +08:00
hujiaying
fbbce6332d 修改表面工艺同步测试,删除同步交期,同步周期菜单及同步接口 2024-08-26 15:02:33 +08:00
马广威
554b86e641 Accept Merge Request #1245: (feature/优化制造功能 -> develop)
Merge Request: 修复coding问题,增加机床类型返回

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1245
2024-08-26 13:25:08 +08:00
mgw
54317a529e Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-26 13:24:00 +08:00
mgw
78d00e9157 修复coding问题,增加机床类型返回 2024-08-26 13:23:44 +08:00
hujiaying
89cb61f244 修改同步表面工艺 2024-08-26 12:47:15 +08:00
hujiaying
deef246a6d 修改表面工艺字段同步 2024-08-26 11:10:52 +08:00
hujiaying
9de201705f Merge branch 'develop' into feature/update_process_start_time 2024-08-26 10:35:59 +08:00
廖丹龙
8f8d83d4cb Accept Merge Request #1243: (feature/tax_sync -> 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/1243
2024-08-26 10:34:58 +08:00
liaodanlong
c703012ec4 会计凭证处理 2024-08-26 10:08:40 +08:00
jinling.yang
f1780181fa 修复报废向导 2024-08-25 17:36:07 +08:00
jinling.yang
f5e36f601c 还原注释代码 2024-08-25 15:01:11 +08:00
jinling.yang
6c0b84ec43 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复报废 2024-08-25 14:58:57 +08:00
jinling.yang
3e438a10ee 优化表面工艺排序 2024-08-25 14:58:40 +08:00
jinling.yang
9218633a5e 优化表面工艺 2024-08-23 17:32:35 +08:00
hujiaying
c646e70a66 Merge branch 'develop' into feature/update_process_start_time 2024-08-23 16:28:42 +08:00
jinling.yang
40521e06a8 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-23 16:13:35 +08:00
jinling.yang
7fee98cdee 修复报废 2024-08-23 16:13:03 +08:00
马广威
4b7c277a25 Accept Merge Request #1242: (feature/优化制造功能 -> develop)
Merge Request: cnc工单开始二次确认

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1242?initial=true
2024-08-23 12:05:03 +08:00
mgw
064397b32b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-23 12:04:03 +08:00
mgw
048155bc9c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-23 12:03:48 +08:00
马广威
d439c9140d Accept Merge Request #1241: (feature/优化制造功能 -> develop)
Merge Request: 增加异常明细

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1241?initial=true
2024-08-23 11:44:51 +08:00
mgw
296659ebb0 增加异常明细 2024-08-23 11:44:05 +08:00
马广威
a82063d078 Accept Merge Request #1233: (feature/优化制造功能 -> develop)
Merge Request: 增加工单相关接口

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1233
2024-08-23 10:07:41 +08:00
mgw
f17ff2bc57 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-23 10:05:30 +08:00
mgw
5df3de7dcd 增加返工数量等 2024-08-23 10:05:17 +08:00
胡尧
b37738fbc3 Accept Merge Request #1240: (feature/agv_dispatch -> develop)
Merge Request: 屏蔽下发agv小车任务

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1240?initial=true
2024-08-22 15:57:49 +08:00
胡尧
79f3dce0ec 屏蔽下发agv小车任务 2024-08-22 15:57:17 +08:00
胡尧
4b87ea3f0e Accept Merge Request #1239: (feature/agv_dispatch -> develop)
Merge Request: 修改下发agv任务逻辑

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1239?initial=true
2024-08-22 15:43:01 +08:00
胡尧
098ac0e7e9 修改下发agv任务逻辑 2024-08-22 15:42:34 +08:00
jinling.yang
6825364a2b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-22 11:33:53 +08:00
jinling.yang
0cac8fbb4f Merge branch 'feature/修复报废-拣货单(sfp)' into develop 2024-08-22 10:55:12 +08:00
杨金灵
dce748c6a7 Accept Merge Request #1238: (feature/修复报废-拣货单(sfp) -> develop)
Merge Request: 修复报废-拣货单(sfp)

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1238
2024-08-22 10:54:59 +08:00
jinling.yang
536c766272 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复报废-拣货单(sfp) 2024-08-22 10:52:38 +08:00
jinling.yang
422edbcb02 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-22 10:52:28 +08:00
jinling.yang
d13961ff5f 修复报废-拣货单(sfp) 2024-08-22 10:52:19 +08:00
禹翔辉
b603934637 Accept Merge Request #1237: (feature/线边料架接口优化 -> develop)
Merge Request: 1、优化货位信息接口、库位变更接口。

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1237?initial=true
2024-08-22 10:36:34 +08:00
yuxianghui
62d303168e Merge branch 'feature/销售、刀具模块优化_1' into feature/线边料架接口优化 2024-08-22 10:32:47 +08:00
yuxianghui
39bc206344 1、优化货位信息接口、库位变更接口。 2024-08-22 10:31:22 +08:00
胡尧
715d835633 Accept Merge Request #1236: (feature/agv_dispatch -> develop)
Merge Request: 修改接驳站状态接口

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1236
2024-08-22 10:23:52 +08:00
胡尧
9e356682dc 修改接驳站状态接口 2024-08-22 10:22:35 +08:00
胡尧
5dc392a27b Accept Merge Request #1235: (feature/agv_dispatch -> develop)
Merge Request: 修复配送完成修改工件配送单的bug

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1235
2024-08-21 20:19:13 +08:00
胡尧
3d2c62f5db 修复配送完成修改工件配送单的bug 2024-08-21 20:16:41 +08:00
mgw
1e3f0d5ee5 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-21 17:44:37 +08:00
mgw
b26919a40d 优化接口,使其易于取值 2024-08-21 17:44:22 +08:00
jinling.yang
9ffe338532 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-21 17:00:01 +08:00
jinling.yang
08d333e4e2 Merge branch 'feature/修复报废-工单状态' into develop 2024-08-21 16:59:29 +08:00
杨金灵
47c501c6c6 Accept Merge Request #1234: (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/1234
2024-08-21 16:59:13 +08:00
jinling.yang
335c79e618 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-21 16:54:11 +08:00
jinling.yang
ba986995ed 修复报废-工单状态 2024-08-21 16:53:32 +08:00
马广威
2a45cdd53a Accept Merge Request #1232: (feature/agv_dispatch -> 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/1232#mr-1232-review-178956
2024-08-21 16:25:05 +08:00
胡尧
0cdf37bb50 修改接口名字 2024-08-21 16:20:45 +08:00
mgw
bae2592587 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-21 15:38:21 +08:00
mgw
c86cc27510 增加工单相关接口 2024-08-21 15:38:05 +08:00
胡尧
2dded43e39 Accept Merge Request #1231: (feature/agv_dispatch -> develop)
Merge Request: 开启agv任务下发代码

Created By: @胡尧
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1231
2024-08-21 15:10:07 +08:00
胡尧
eb6e638018 开启agv任务下发代码 2024-08-21 15:06:06 +08:00
jinling.yang
f64c21dacd Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-21 14:50:12 +08:00
jinling.yang
426aa78ed4 Merge branch 'feature/修复报废bug' into develop 2024-08-21 14:49:59 +08:00
杨金灵
42c65496ff Accept Merge Request #1230: (feature/修复报废bug -> develop)
Merge Request: 修复报废bug

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1230
2024-08-21 14:47:23 +08:00
jinling.yang
e893abd83e 还原接口代码 2024-08-21 14:46:37 +08:00
jinling.yang
78e2e7184e Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复报废bug 2024-08-21 14:43:44 +08:00
jinling.yang
ce575adc88 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-21 14:43:33 +08:00
jinling.yang
6668e0ee2f 还原OCC代码 2024-08-21 14:43:22 +08:00
胡尧
647d21dea3 Accept Merge Request #1229: (feature/agv_dispatch -> develop)
Merge Request: 放开下发agv小车任务代码

Created By: @胡尧
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1229
2024-08-21 11:32:50 +08:00
胡尧
0e13e2190e 屏蔽agv任务下发代码 2024-08-21 11:31:09 +08:00
胡尧
7f3d50a130 开启agv小车任务下发代码 2024-08-21 10:03:03 +08:00
jinling.yang
7b2908defa 修复报废bug 2024-08-20 17:52:36 +08:00
胡尧
a8211171b0 增加以日、月、年为日期期间的序列,工件配送单状态同步,返工时不生成工件配送单 2024-08-20 16:18:47 +08:00
yuxianghui
c57daa2c52 1、处理销售订单确认接单后,确认接单、取消按钮没有隐藏问题 2024-08-20 16:13:30 +08:00
jinling.yang
4ed7ecf628 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-20 14:45:39 +08:00
jinling.yang
8a6ebb331a Merge branch 'feature/优化最新版报废' into develop 2024-08-20 14:39:21 +08:00
杨金灵
b333e27c51 Accept Merge Request #1228: (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/1228
2024-08-20 14:39:03 +08:00
jinling.yang
6761851407 还原代码 2024-08-20 14:38:42 +08:00
胡尧
ada7936d1b Accept Merge Request #1227: (feature/agv_dispatch -> develop)
Merge Request: 增加可以移除焦点的controller

Created By: @胡尧
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1227
2024-08-20 14:36:43 +08:00
胡尧
9c40aa9a7e 修复更新agv站点同时下发任务的bug 2024-08-20 14:36:02 +08:00
jinling.yang
0694541653 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-20 14:34:34 +08:00
jinling.yang
e4e2dca22c 还原注释代码 2024-08-20 14:34:25 +08:00
jinling.yang
e259fd0c05 优化报废 2024-08-20 14:30:42 +08:00
胡尧
a767c6491f 增加移除焦点的controller 2024-08-20 14:05:05 +08:00
马广威
6c2045d0c3 Accept Merge Request #1222: (feature/优化制造功能 -> develop)
Merge Request: 运行日志数据接入;大屏对接

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1222
2024-08-20 11:28:33 +08:00
mgw
6fe56605ab Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-20 11:27:34 +08:00
mgw
bf2c7fd3c5 增加解绑托盘功能 2024-08-20 11:27:18 +08:00
胡尧
54fc91baa2 去掉js中的日志 2024-08-20 10:50:55 +08:00
黄焱
376f2b3079 Accept Merge Request #1226: (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/1226?initial=true
2024-08-20 10:50:39 +08:00
hy
3c50f19e2d 保存、取消按钮增加文字提示 2024-08-20 10:48:42 +08:00
胡尧
08622b10b9 Accept Merge Request #1225: (feature/agv_dispatch -> develop)
Merge Request: 生产总监、机床操作岗增加agv调度菜单权限,AGV下发任务界面需二次确认

Created By: @胡尧
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1225
2024-08-20 10:48:35 +08:00
胡尧
dc5b68cca0 生产总监、机床操作岗增加agv调度菜单权限,AGV下发任务界面需二次确认 2024-08-20 10:45:31 +08:00
mgw
1d399527e0 增加装夹预调工单扫码开启 2024-08-20 10:42:36 +08:00
禹翔辉
b3bfa69656 Accept Merge Request #1224: (feature/销售、刀具模块优化_1 -> 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/1224?initial=true
2024-08-20 09:05:57 +08:00
yuxianghui
96e226836e Merge branch 'feature/销售、刀具模块优化' into feature/销售、刀具模块优化_1 2024-08-20 09:02:52 +08:00
yuxianghui
062ca66328 1、库位变更接口、库位信息接口优化;2、功能刀具模型from页面按钮样式及显示优化; 2024-08-19 17:29:09 +08:00
胡尧
7ab8269088 Accept Merge Request #1223: (feature/agv_dispatch -> develop)
Merge Request: 修复agv调度bug

Created By: @胡尧
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1223
2024-08-19 14:40:04 +08:00
胡尧
1241737dea 修改agv调度搜索条件 2024-08-19 14:37:55 +08:00
mgw
813e424ec9 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-19 14:25:43 +08:00
mgw
8c08893aa1 修复“制造订单详情多了一个没有文案的按钮” 2024-08-19 14:25:26 +08:00
胡尧
5ad35de76b 修复agv调度bug 2024-08-19 11:22:30 +08:00
jinling.yang
3c8dac799d 修复报废 2024-08-16 17:28:21 +08:00
mgw
29c1c7a54d 调整日志顺序;增加订单名返回 2024-08-16 17:19:54 +08:00
胡尧
2c27a9b575 Accept Merge Request #1221: (feature/agv_dispatch -> develop)
Merge Request: 装夹工单完成后生成工件配送单同时绑定rfid

Created By: @胡尧
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1221
2024-08-16 17:13:46 +08:00
胡尧
0e4b9e44f8 修改下发agv调度任务参数 2024-08-16 17:12:34 +08:00
mgw
a07a1ba268 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-16 16:57:47 +08:00
mgw
f537fbc597 运行日志数据接入 2024-08-16 16:57:32 +08:00
胡尧
a6b7167f3b 修改创建调度任务逻辑,不匹配的路线返回错误信息 2024-08-16 16:49:30 +08:00
胡尧
c4de966dea 装夹工单完成后生成工件配送单同时绑定rfid 2024-08-16 16:31:54 +08:00
yuxianghui
03cfc00be5 Merge branch 'feature/销售单优化' into feature/销售、刀具模块优化 2024-08-16 16:02:19 +08:00
yuxianghui
cc05e8423e 1、注释重写的销售单交货按钮代码 2024-08-16 16:01:24 +08:00
yuxianghui
e78516f73c 1、 完成 功能刀具组装和拆解页面扫描操作优化需求 2024-08-16 15:59:24 +08:00
胡尧
a277bb402e Accept Merge Request #1220: (feature/agv_dispatch -> develop)
Merge Request: 装夹预调绑定rfid时,不绑定工件配送单的rfid

Created By: @胡尧
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1220?initial=true
2024-08-16 15:24:27 +08:00
胡尧
e5793638f7 屏蔽开始装夹预调绑定rfid时,不绑定工件配送的rfid 2024-08-16 15:21:08 +08:00
胡尧
9673fd165d Accept Merge Request #1219: (feature/agv_dispatch -> develop)
Merge Request: agv任务调度功能

Created By: @胡尧
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1219?initial=true
2024-08-16 10:41:30 +08:00
胡尧
e92905fe32 修改agv小车相关接口 2024-08-16 10:36:01 +08:00
胡尧
1b521ae460 解决冲突 2024-08-16 09:50:31 +08:00
胡尧
4e0d8f1c88 修改AGV调度 2024-08-16 09:43:03 +08:00
胡尧
aecf2121a1 agv调度开发 2024-08-15 17:41:25 +08:00
jinling.yang
e2d7576a5e 优化报废 2024-08-15 17:31:37 +08:00
mgw
cc13e5cd9a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-08-15 17:14:40 +08:00
mgw
271f34a03b 增加开动率采集 2024-08-15 17:14:07 +08:00
yuxianghui
366e816268 1、优化货位变更接口、优化同步库存信息接口;2、隐藏已取消状态的销售订单的【确认接单】和【取消】按钮;3、处理功能刀具从线边刀库到刀具房没有生成移动历史问题; 2024-08-15 16:45:39 +08:00
胡尧
1532184008 Merge branch 'feature/agv_dispatch' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/agv_dispatch 2024-08-15 15:02:16 +08:00
胡尧
9f180e307d agv调度开发 2024-08-15 15:02:13 +08:00
hy
f0a4cf1d0f 弹窗取消聚焦 2024-08-15 15:01:10 +08:00
胡尧
6c734eead4 agv调度开发 2024-08-15 11:34:38 +08:00
胡尧
f7e4ce416a AGV任务调度开发 2024-08-14 17:34:50 +08:00
hujiaying
5a60eed5b1 联调加工订单从待确认到加工中,经过的内部管理系统,bfm,sf接口测试联调,修改对应接收的参数值改变。采购订单加工中同步到内部管理系统失败,则新增到同步表,由同步表定时发起接口重试 2024-08-14 12:48:40 +08:00
yuxianghui
bf34de58fc 1、优化功能刀具预警记录跳转功能刀具拆解单链接方法;2、优化功能刀具预警界面及搜索等方法;3、优化拆解单功能及界面;4、处理功能刀具组装时,刀柄状态不实时变更问题 2024-08-13 17:30:19 +08:00
jinling.yang
cccc2f8493 优化报废 2024-08-12 17:30:53 +08:00
yuxianghui
894d3b9ea3 1、功能刀具拆解单添加功能刀具唯一校验;2、功能刀具模型tree视图的状态字段根据不同状态添加不同颜色;当功能刀具状态为报警时,自动创建拆解单和预警记录,并添加拆解单链接按钮;添加tree视图按状态排序,将报警状态刀具记录显示在最前面;3、优化功能刀具预警模型字段及关联关系,添加预警记录跳转到对应由该功能刀具生成的拆解单链接; 2024-08-12 17:25:56 +08:00
胡尧
0b85f29262 修改agv调度 2024-08-12 11:08:04 +08:00
胡尧
9dbea66b73 修改AGV调度系统 2024-08-09 17:32:46 +08:00
jinling.yang
9a7ac4dfa6 优化制造订单报废向导 2024-08-09 17:26:57 +08:00
yuxianghui
e6ca4c27ac 1、库位变更接口、库位信息接口优化;2、功能刀具预警模型优化; 2024-08-09 17:19:03 +08:00
jinling.yang
a8560a0684 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化最新版报废 2024-08-09 15:45:11 +08:00
jinling.yang
4f74996f24 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-09 15:44:48 +08:00
jinling.yang
5b26abc203 Merge branch 'feature/优化表面工艺外协' into develop 2024-08-09 15:43:52 +08:00
杨金灵
49654f1ff6 Accept Merge Request #1218: (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/1218
2024-08-09 15:43:33 +08:00
jinling.yang
a9b7f99944 修复表面工艺外协 2024-08-09 15:39:58 +08:00
jinling.yang
34e858ffe4 添加表面工艺服务产品验证 2024-08-09 11:31:30 +08:00
jinling.yang
41efe81119 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化表面工艺外协 2024-08-09 10:43:34 +08:00
jinling.yang
7cab8cd287 调拨单新增表面工艺参数字段 2024-08-09 10:42:59 +08:00
jinling.yang
5f9c5961a5 报废 2024-08-09 10:39:48 +08:00
胡尧
a79500d0ad 增加agv调度系统 2024-08-08 17:47:03 +08:00
jinling.yang
4399700c3d 优化报废向导 2024-08-08 17:24:41 +08:00
yuxianghui
36fd17b6c7 1、处理 智能工厂,销售角色与采购角色权限更新 需求 2024-08-08 17:03:36 +08:00
杨金灵
9d52466f61 Accept Merge Request #1217: (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/1217?initial=true
2024-08-08 16:24:06 +08:00
jinling.yang
112efccb7c 修复表面工艺外协采购 2024-08-08 16:21:15 +08:00
jinling.yang
45b9177da4 优化工单 2024-08-08 16:09:00 +08:00
jinling.yang
745658eff2 1.制造订单添加报废状态,
2.返工操作制造订单添加过滤条件:状态为报废
3.cnc工单完成检测结果添加报废
2024-08-08 15:40:29 +08:00
jinling.yang
ce8b0127b8 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-08-08 15:08:17 +08:00
jinling.yang
f58fb2ea13 Merge branch 'feature/优化表面工艺' into develop 2024-08-08 15:08:08 +08:00
杨金灵
d333621c7a Accept Merge Request #1216: (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/1216
2024-08-08 15:07:37 +08:00
jinling.yang
563023fa3c 中控接口身份验证放开 2024-08-08 15:07:22 +08:00
jinling.yang
3d2c7425c4 还原代码 2024-08-08 15:03:45 +08:00
jinling.yang
aaa19b96fd 还原注释代码 2024-08-08 14:57:55 +08:00
胡尧
5d8f0f83b2 增加AGV调度功能,工单页面增加自定义筛选字段 2024-08-07 17:44:43 +08:00
jinling.yang
1547a6064f 优化表面工艺 2024-08-07 17:30:29 +08:00
禹翔辉
55b2daa0a3 Accept Merge Request #1215: (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/1215
2024-08-07 17:13:57 +08:00
yuxianghui
d469c09f15 Merge branch 'feature/制造订单优化' into feature/销售单优化 2024-08-07 17:11:57 +08:00
yuxianghui
a03cb31b29 1、处理 SF销售单需求优化 需求 2024-08-07 17:11:12 +08:00
廖丹龙
d2b20761b5 Accept Merge Request #1214: (feature/tax_sync -> develop)
Merge Request: bom原材料查询出现多条会导致bfm 分配工厂时报错

Created By: @廖丹龙
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @廖丹龙
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1214
2024-08-07 09:49:20 +08:00
liaodanlong
0f47b4b8c3 bom原材料查询限制只拿一条 2024-08-07 09:44:04 +08:00
liaodanlong
0cfb16b9d9 Merge remote-tracking branch 'origin/develop' into develop 2024-08-06 09:09:59 +08:00
廖丹龙
8ec5e05739 Accept Merge Request #1213: (feature/tax_sync -> develop)
Merge Request: bfm 加工订单税信息同步

Created By: @廖丹龙
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @廖丹龙
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1213
2024-08-06 09:09:37 +08:00
jinling.yang
5393ef686a 优化表面工艺 2024-08-05 17:28:48 +08:00
yuxianghui
e92c9675b6 1、 处理 内部调拨单,在选择目标货位时,隐藏带循环货位标签的货位不进行展示 2024-08-05 17:18:54 +08:00
liaodanlong
e6bad80031 Merge branch 'refs/heads/feature/tax_sync' into develop 2024-08-05 17:12:37 +08:00
yuxianghui
070890e3b6 解决 SF,根据制造订单生成的采购单坯料入库时到原材料库BUG 2024-08-05 16:26:54 +08:00
mgw
6e50774b23 调整机床列表接口位置;增加机床品牌型号返回 2024-08-05 16:23:27 +08:00
mgw
fc18d34495 增加大屏用获取cnc机床列表接口 2024-08-05 16:04:53 +08:00
jinling.yang
ed0d57c364 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化表面工艺
# Conflicts:
#	sf_manufacturing/models/mrp_production.py
#	sf_manufacturing/models/mrp_workorder.py
2024-08-02 14:41:42 +08:00
禹翔辉
3f27ae0f35 Accept Merge Request #1212: (feature/bug优化 -> develop)
Merge Request: 修改夹具重量单位为kg

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1212
2024-08-02 11:22:06 +08:00
yuxianghui
cec426920b Merge branch 'feature/优化工单状态' into feature/bug优化 2024-08-02 11:19:45 +08:00
mgw
09a6255d9c 去掉无用文件夹及未用po 2024-08-02 09:57:52 +08:00
马广威
d187bb2bba Accept Merge Request #1211: (release/release_2.2 -> master)
Merge Request: SPRINT-MES-F-2024-04、05版本更新

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1211
2024-08-01 21:58:11 +08:00
杨金灵
0a6cf74bc2 Accept Merge Request #1210: (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/1210?initial=true
2024-08-01 16:41:49 +08:00
jinling.yang
c0202330f8 去掉工单输出 2024-08-01 16:40:46 +08:00
杨金灵
1dabdd157e Accept Merge Request #1209: (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/1209
2024-08-01 15:20:54 +08:00
jinling.yang
36dc8070fa 注释及还原代码 2024-08-01 15:18:57 +08:00
yuxianghui
a5da18bbc7 1、修改夹具重量单位为kg 2024-08-01 11:34:20 +08:00
liaodanlong
510e8d49fb 功能刀具拆解失败问题 2024-08-01 10:46:14 +08:00
liaodanlong
051273017d Merge remote-tracking branch 'refs/remotes/origin/develop' into feature/tax_sync 2024-08-01 10:45:09 +08:00
yuxianghui
f49557090a 1、优化刀具拆解单拆解时生成的调拨单单据验证出现数据缺失问题 2024-08-01 10:40:25 +08:00
杨金灵
d1656278ea Accept Merge Request #1208: (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/1208?initial=true
2024-07-31 17:02:05 +08:00
jinling.yang
0675937588 优化制造订单列表 2024-07-31 17:00:14 +08:00
马广威
c0d006d139 Accept Merge Request #1207: (feature/优化工单状态 -> develop)
Merge Request: 调整代码

Created By: @禹翔辉
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1207
2024-07-31 15:07:51 +08:00
yuxianghui
2fa47eae27 1 2024-07-31 15:06:55 +08:00
yuxianghui
cb2e1ecabe 1 2024-07-31 15:06:14 +08:00
yuxianghui
9f1233d20e 1 2024-07-31 15:04:37 +08:00
禹翔辉
a783f7ec7b Accept Merge Request #1206: (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/1206?initial=true
2024-07-31 15:02:31 +08:00
yuxianghui
db50253100 Merge branch 'feature/优化工单_6' into feature/优化工单状态 2024-07-31 15:00:48 +08:00
yuxianghui
5f7f905540 优化工单状态 2024-07-31 14:59:57 +08:00
杨金灵
1c86cc1421 Accept Merge Request #1205: (feature/优化ftp(pdf路径) -> develop)
Merge Request: 优化ftp(pdf路径)

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1205
2024-07-31 14:56:14 +08:00
jinling.yang
1ea6f649f0 优化ftp(pdf路径) 2024-07-31 14:54:15 +08:00
liaodanlong
115a3e0712 Merge remote-tracking branch 'refs/remotes/origin/develop' into feature/tax_sync 2024-07-31 14:41:02 +08:00
jinling.yang
f0421b873c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-31 11:55:55 +08:00
jinling.yang
913feea2a9 Merge branch 'feature/优化三次元检测报告' into develop 2024-07-31 11:55:46 +08:00
杨金灵
5d36513e59 Accept Merge Request #1204: (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/1204
2024-07-31 11:54:40 +08:00
jinling.yang
94d6085f92 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-31 11:51:31 +08:00
jinling.yang
f361106c40 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化三次元检测报告 2024-07-31 11:51:16 +08:00
jinling.yang
a46cd0f515 优化三次元检测报告 2024-07-31 11:51:04 +08:00
禹翔辉
2c6e1a40f5 Accept Merge Request #1203: (feature/优化工单_6 -> develop)
Merge Request: 1、刀具组装功能添加开始完成日志;2、库存概览看板按作业类型分组默认优化展示;3、优化工单状态。

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1203?initial=true
2024-07-31 11:49:10 +08:00
yuxianghui
ffb775abb7 1、优化工单状态 2024-07-31 11:45:59 +08:00
yuxianghui
2c15532c73 Merge branch 'feature/优化调拨单' into feature/优化工单_6 2024-07-31 11:02:24 +08:00
jinling.yang
1980ee2a9a 优化三次元检测报告 2024-07-31 10:59:35 +08:00
yuxianghui
bba4e55770 1、刀具组装功能添加开始完成日志;2、库存概览看板按作业类型分组默认优化展示。 2024-07-31 10:40:03 +08:00
jinling.yang
a9bbe98e8f Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-31 09:07:50 +08:00
马广威
11e3bbddd8 Accept Merge Request #1202: (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/1202
2024-07-30 17:47:59 +08:00
jinling.yang
c01dfddfb4 修复返工-功能刀具 2024-07-30 17:45:41 +08:00
jinling.yang
50dcc9f7ba Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/new 2024-07-30 14:37:19 +08:00
jinling.yang
41a7aea01e Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-30 14:37:07 +08:00
马广威
066b256b0c Accept Merge Request #1201: (feature/优化制造功能 -> develop)
Merge Request: 同步修改引用位置

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1201
2024-07-30 11:09:20 +08:00
mgw
754047bf02 同步修改引用位置 2024-07-30 11:08:27 +08:00
禹翔辉
f5bf95ab6e Accept Merge Request #1200: (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/1200?initial=true
2024-07-30 10:55:53 +08:00
yuxianghui
5ea25fae73 Merge branch 'feature/修复工单bug' into feature/优化调拨单 2024-07-30 10:54:13 +08:00
yuxianghui
c367e39d5f 修复当有功能刀具组装或拆解生成调拨单单据后,销售订单创建制造订单时报调拨单单号重复问题 2024-07-30 10:53:25 +08:00
马广威
dfec70081b Accept Merge Request #1199: (feature/优化制造功能 -> develop)
Merge Request: 修改制造订单状态翻译、修改配置字段类型

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1199?initial=true
2024-07-30 10:34:03 +08:00
mgw
d0c35695d5 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-07-30 10:33:19 +08:00
mgw
95eb6bd18b 修改制造订单状态翻译、修改配置字段类型 2024-07-30 10:33:03 +08:00
jinling.yang
599d2280f5 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-30 10:19:16 +08:00
禹翔辉
e1397f4b93 Accept Merge Request #1198: (feature/修复工单bug -> develop)
Merge Request: 解决 制造订单提交返工-申请重新编程-第一张工单状态不对 bug

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1198
2024-07-30 09:25:48 +08:00
liaodanlong
d49e8779f9 Merge remote-tracking branch 'refs/remotes/origin/develop' into feature/tax_sync 2024-07-30 09:24:48 +08:00
yuxianghui
71c606974c Merge branch 'feature/工单优化_2' into feature/修复工单bug 2024-07-30 09:23:24 +08:00
yuxianghui
a0ed14aed1 解决 制造订单提交返工-申请重新编程-第一张工单状态不对 bug 2024-07-30 09:21:08 +08:00
jinling.yang
be3d4979b7 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-29 17:16:46 +08:00
jinling.yang
373ce89a2c Merge branch 'feature/修复返工-cmm' into develop 2024-07-29 17:16:36 +08:00
禹翔辉
56317ab111 Accept Merge Request #1197: (feature/工单优化_2 -> 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/1197
2024-07-29 17:05:01 +08:00
yuxianghui
683d79a4e3 恢复制造订单的功能刀具备注字段自动计算方法代码 2024-07-29 17:03:25 +08:00
杨金灵
362801f527 Accept Merge Request #1196: (feature/修复返工-cmm -> develop)
Merge Request: 修复返工-cmm

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1196?initial=true
2024-07-29 16:43:46 +08:00
jinling.yang
a81ad08740 修复功能刀具 2024-07-29 16:43:37 +08:00
jinling.yang
d2d5702125 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复返工-cmm 2024-07-29 16:42:13 +08:00
jinling.yang
9c47a6bdba 修复返工-cmm 2024-07-29 16:36:46 +08:00
禹翔辉
f0a887887e Accept Merge Request #1195: (feature/工单优化_1 -> 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/1195?initial=true
2024-07-29 16:05:41 +08:00
yuxianghui
fffe0a230b 1 2024-07-29 15:40:44 +08:00
liaodanlong
81dbbf980c Merge remote-tracking branch 'refs/remotes/origin/develop' into feature/tax_sync 2024-07-29 15:09:37 +08:00
禹翔辉
2600d15e2b Accept Merge Request #1194: (feature/工单优化_1 -> develop)
Merge Request: 1、处理大批量修改cnc编程单的工单状态时,导致工单状态的自动计算方法进行递归而产生的栈溢出问题

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1194?initial=true
2024-07-29 11:35:53 +08:00
yuxianghui
c60b91c315 Merge branch 'feature/优化工单_5' into feature/工单优化_1 2024-07-29 11:33:35 +08:00
yuxianghui
639dd4e78d 1、处理大批量修改cnc编程单的工单状态时,导致工单状态的自动计算方法进行递归而产生的栈溢出问题 2024-07-29 11:32:33 +08:00
马广威
3c4286319f Accept Merge Request #1193: (feature/优化工单_5 -> develop)
Merge Request: 1、添加工单状态自动计算方法的触发条件

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1193
2024-07-28 16:37:33 +08:00
yuxianghui
55016918eb 1、添加工单状态自动计算方法的触发条件 2024-07-28 16:35:17 +08:00
禹翔辉
4236600b39 Accept Merge Request #1192: (feature/优化工单_5 -> develop)
Merge Request: 1、功能刀具状态备注值自动计算方法优化

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1192
2024-07-28 16:24:18 +08:00
yuxianghui
e84842d0a3 1、功能刀具状态备注值自动计算方法优化 2024-07-28 16:23:17 +08:00
禹翔辉
60df55d71e Accept Merge Request #1191: (feature/优化工单_5 -> develop)
Merge Request: 1、优化工单状态;2、添加功能刀具位置字段自动计算方法触发条件

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1191?initial=true
2024-07-28 16:09:23 +08:00
yuxianghui
6643684e9b Merge branch 'feature/优化工单_4' into feature/优化工单_5 2024-07-28 16:06:20 +08:00
yuxianghui
f77a1f6167 1、优化工单状态;2、添加功能刀具位置字段自动计算方法触发条件 2024-07-28 16:05:09 +08:00
杨金灵
a467aef925 Accept Merge Request #1190: (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/1190?initial=true
2024-07-28 15:21:12 +08:00
jinling.yang
b1b805959a 修复多次返工报依赖问题 2024-07-28 15:20:12 +08:00
jinling.yang
e602095b50 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-28 11:47:19 +08:00
jinling.yang
39214e5352 注释代码 2024-07-28 11:47:12 +08:00
禹翔辉
ba05827126 Accept Merge Request #1189: (feature/优化工单_4 -> develop)
Merge Request: 处理   无效刀触发返工-更新程序后-第一张工单的状态不对  bug

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1189
2024-07-28 10:26:42 +08:00
yuxianghui
89bd9533d7 Merge branch 'feature/优化工单_3' into feature/优化工单_4 2024-07-28 10:24:32 +08:00
jinling.yang
fd2228ba59 Merge branch 'feature/修复返工' into develop 2024-07-28 10:13:02 +08:00
jinling.yang
2758817048 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-28 10:12:45 +08:00
yuxianghui
2e916337e9 1 2024-07-26 17:25:01 +08:00
马广威
47b8a0051b Accept Merge Request #1188: (feature/优化制造功能 -> develop)
Merge Request: 设备oee界面优化;增加由dashboard调用的接口

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1188?initial=true
2024-07-26 17:24:10 +08:00
mgw
76e6502afe Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-07-26 17:22:59 +08:00
mgw
1b96f420ec 增加由dashboard调用的接口 2024-07-26 17:22:44 +08:00
jinling.yang
00645364b3 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复返工 2024-07-26 16:55:07 +08:00
杨金灵
fdad5100ae Accept Merge Request #1187: (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/1187?initial=true
2024-07-26 16:54:32 +08:00
jinling.yang
8cd03a1040 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复返工 2024-07-26 16:53:05 +08:00
jinling.yang
41c2523201 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-26 16:52:55 +08:00
jinling.yang
22a1ae11a6 修复返工 2024-07-26 16:52:48 +08:00
禹翔辉
4939c6d6db Accept Merge Request #1186: (feature/优化工单_3 -> 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/1186?initial=true
2024-07-26 16:27:58 +08:00
yuxianghui
460670843f Merge branch 'feature/优化工单_2' into feature/优化工单_3 2024-07-26 16:25:54 +08:00
yuxianghui
66caeee1cd 1、优化工单状态方法 2024-07-26 16:25:16 +08:00
jinling.yang
28041cbef9 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-26 15:49:32 +08:00
jinling.yang
36a2bcca6e 优化表面工yi 2024-07-26 15:49:25 +08:00
黄焱
fddddf1649 Accept Merge Request #1185: (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/1185?initial=true
2024-07-26 15:49:22 +08:00
hy
3e61e31314 修改刀具拆解时选择目标货位会出现重叠的现象 2024-07-26 15:44:52 +08:00
禹翔辉
549a64b012 Accept Merge Request #1184: (feature/优化工单_2 -> 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/1184?initial=true
2024-07-26 14:53:37 +08:00
yuxianghui
dbaad85670 Merge branch 'feature/优化工单_1' into feature/优化工单_2 2024-07-26 14:52:08 +08:00
yuxianghui
b731ffba33 1、优化工单状态 2024-07-26 14:51:23 +08:00
禹翔辉
9048b32405 Accept Merge Request #1183: (feature/优化工单_1 -> develop)
Merge Request: 1、解决  功能刀具是无效刀时-制造订单提交返工【申请重新编程】要做成必选

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1183?initial=true
2024-07-26 11:50:59 +08:00
yuxianghui
98d2aa756a 1、解决 功能刀具是无效刀时-制造订单提交返工【申请重新编程】要做成必选 2024-07-26 11:49:33 +08:00
禹翔辉
3749872780 Accept Merge Request #1182: (feature/优化工单_1 -> develop)
Merge Request: 1、添加制造订单的刀具备注字段自动计算逻辑及方法;2、优化工单状态自动计算方法;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1182?initial=true
2024-07-26 10:59:05 +08:00
yuxianghui
de8bebc1f9 1、添加制造订单的刀具备注字段自动计算逻辑及方法;2、优化工单状态自动计算方法; 2024-07-26 10:57:11 +08:00
jinling.yang
b468ac216c Merge branch 'feature/修复返工bug' into develop 2024-07-26 09:47:14 +08:00
杨金灵
05f5b10833 Accept Merge Request #1181: (feature/修复返工bug -> develop)
Merge Request: 修复返工bug

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1181
2024-07-26 09:46:15 +08:00
jinling.yang
8686d93651 还原注释代码 2024-07-26 09:43:28 +08:00
jinling.yang
258e24eb05 修复返工bug 2024-07-25 17:30:33 +08:00
jinling.yang
19c4b99bae 创建制造订单后生成询价单 2024-07-25 17:21:44 +08:00
jinling.yang
cc4b58b136 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-25 15:44:10 +08:00
jinling.yang
33fdd0f051 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化表面工艺 2024-07-25 15:44:01 +08:00
jinling.yang
d36250aa48 Merge branch 'feature/修复工件配送目的生产线' into develop 2024-07-25 15:43:13 +08:00
杨金灵
ad43b43beb Accept Merge Request #1180: (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/1180
2024-07-25 15:42:57 +08:00
jinling.yang
f9ace6da7c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复工件配送目的生产线 2024-07-25 15:41:01 +08:00
jinling.yang
12b4b418ea Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-25 15:40:54 +08:00
jinling.yang
60b77e09d6 修复工件配送目的生产线 2024-07-25 15:40:44 +08:00
禹翔辉
891fe257e1 Accept Merge Request #1179: (feature/修复工单cnc校验bug_3 -> develop)
Merge Request: 1、解决 缺刀状态第一张工单状态不对 bug

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1179?initial=true
2024-07-25 15:31:18 +08:00
yuxianghui
6859458db2 Merge branch 'feature/修复工单cnc校验bug_2' into feature/修复工单cnc校验bug_3
# Conflicts:
#	sf_manufacturing/models/mrp_workorder.py
2024-07-25 15:29:39 +08:00
禹翔辉
ca7c3867cd Accept Merge Request #1178: (release/release_2.1 -> develop)
Merge Request: 1、货架、货位添加循环货位标签;2、功能刀具拆解选取法人货位添加只能选择循环货位的过滤条件

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1178
2024-07-25 15:26:45 +08:00
jinling.yang
4bcf8236ef Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-25 15:25:43 +08:00
jinling.yang
74d557a0fc Merge branch 'feature/修复返工-工件配送' into develop 2024-07-25 15:25:34 +08:00
禹翔辉
3686c0e070 Merge branch refs/heads/develop into refs/heads/release/release_2.1 2024-07-25 15:25:07 +08:00
杨金灵
536d7e9e79 Accept Merge Request #1177: (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/1177?initial=true
2024-07-25 15:24:59 +08:00
jinling.yang
67e79c5fb8 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复返工-工件配送 2024-07-25 15:23:03 +08:00
jinling.yang
0c3217824e Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-25 15:22:55 +08:00
jinling.yang
9eddfe36d6 修复返工-工件配送 2024-07-25 15:22:48 +08:00
yuxianghui
9655281b67 1、解决 缺刀状态第一张工单状态不对 bug 2024-07-25 15:21:36 +08:00
mgw
18b584438a 设备oee界面优化 2024-07-25 15:08:26 +08:00
jinling.yang
2deaffb4eb 添加表面工艺产品校验 2024-07-25 14:07:36 +08:00
马广威
709f29185d Accept Merge Request #1175: (feature/优化制造功能 -> develop)
Merge Request: 设备日志、oee优化

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1175?initial=true
2024-07-25 14:06:38 +08:00
mgw
886de3195c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-07-25 14:05:49 +08:00
mgw
d9e5ffa68d 设备日志、oee优化 2024-07-25 14:05:35 +08:00
liaodanlong
8996297521 Merge branch 'refs/heads/master' into feature/tax_sync 2024-07-25 11:43:01 +08:00
jinling.yang
030a900580 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-25 10:39:10 +08:00
jinling.yang
0d1cb49cb7 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化表面工艺 2024-07-25 10:35:52 +08:00
jinling.yang
4370236edf Merge branch 'feature/修复中控对接接口' into develop 2024-07-25 10:35:41 +08:00
杨金灵
e01209f343 Accept Merge Request #1174: (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/1174?initial=true
2024-07-25 10:34:29 +08:00
jinling.yang
b4803f03fa 修复制造订单完成生产数量问题 2024-07-25 10:34:12 +08:00
jinling.yang
c9d4f0667a 修复中控对接接口 2024-07-25 10:27:07 +08:00
马广威
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
jinling.yang
96c22a5d46 添加表面工艺服务产品验证 2024-07-24 17:30:59 +08:00
杨金灵
30c823189c Accept Merge Request #1172: (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/1172?initial=true
2024-07-24 17:16:28 +08:00
jinling.yang
3ed503391e 修复更新程序 2024-07-24 17:10:35 +08:00
jinling.yang
121861863f 优化销售订单确认方法 2024-07-24 16:57:50 +08:00
jinling.yang
c2c8d63848 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化表面工艺 2024-07-24 16:41:19 +08:00
杨金灵
befe0c2b00 Accept Merge Request #1171: (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/1171?initial=true
2024-07-24 16:40:48 +08:00
jinling.yang
44a9ad340b 修复批量更新程序 2024-07-24 16:39:38 +08:00
jinling.yang
55bac0020f Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-24 16:34:21 +08:00
jinling.yang
a5d8e88f1d 注释OCC代码 2024-07-24 16:33:47 +08:00
禹翔辉
d3124bb9fe Accept Merge Request #1170: (feature/修复工单cnc校验bug_2 -> 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/1170
2024-07-24 16:24:13 +08:00
yuxianghui
64fd6ef5dc Merge branch 'feature/修复工单cnc校验bug_1' into feature/修复工单cnc校验bug_2 2024-07-24 16:21:40 +08:00
yuxianghui
001b2ead57 1、更具制造订单功能刀具状态变更第一个装夹预调工单的工单状态 2024-07-24 16:20:48 +08:00
mgw
d0be097a9b 设备加工参数等页面修改 2024-07-24 16:19:29 +08:00
jinling.yang
0be8d0fbb2 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-24 15:09:57 +08:00
jinling.yang
71faa8a835 Merge branch 'feature/修复工件配送按钮显示' into develop 2024-07-24 15:09:49 +08:00
杨金灵
12afc1ef83 Accept Merge Request #1169: (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/1169?initial=true
2024-07-24 15:08:49 +08:00
jinling.yang
34624e6592 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复工件配送按钮显示 2024-07-24 15:07:05 +08:00
jinling.yang
a16effd8db Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-24 15:06:58 +08:00
jinling.yang
f59299d4d5 修复工件配送按钮显示 2024-07-24 15:06:50 +08:00
禹翔辉
c7cef27ad6 Accept Merge Request #1168: (feature/修复工单cnc校验bug_1 -> 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/1168?initial=true
2024-07-24 12:38:21 +08:00
yuxianghui
b88b0fc38a Merge branch 'feature/修复工单cnc校验bug' into feature/修复工单cnc校验bug_1
# Conflicts:
#	sf_tool_management/models/mrp_workorder.py
2024-07-24 12:35:31 +08:00
yuxianghui
4297d41dda 添加工单开始校验 2024-07-24 12:32:33 +08:00
马广威
3f85d058cc Accept Merge Request #1167: (feature/优化制造功能 -> develop)
Merge Request: 修复“同一个产品多个制造订单时-只有一张制造订单有组件”

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1167?initial=true
2024-07-24 12:18:54 +08:00
mgw
680bed9944 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-07-24 12:18:04 +08:00
mgw
d3e307d195 修复“同一个产品多个制造订单时-只有一张制造订单有组件” 2024-07-24 12:17:32 +08:00
jinling.yang
86a011343d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-24 11:53:08 +08:00
jinling.yang
fe4bd3834e Merge branch 'feature/修复cnc工单按钮显示问题' into develop 2024-07-24 11:52:42 +08:00
杨金灵
d3992c2a2e Accept Merge Request #1166: (feature/修复cnc工单按钮显示问题 -> develop)
Merge Request: 修复cnc工单按钮显示问题

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1166
2024-07-24 11:52:12 +08:00
jinling.yang
e62ed636e7 还原注释代码 2024-07-24 11:42:34 +08:00
jinling.yang
f0fdeff699 修复cnc工单按钮显示问题 2024-07-24 11:40:16 +08:00
mgw
dec85dc92f Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-07-24 09:26:35 +08:00
mgw
f4f9591f35 设备机床信息tab调整,修复打印返回action问题 2024-07-24 09:26:19 +08:00
jinling.yang
efb7334486 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-23 17:20:59 +08:00
jinling.yang
b9c1224442 Merge branch 'feature/修复返工向导' into develop 2024-07-23 17:20:49 +08:00
杨金灵
ca1a3ff120 Accept Merge Request #1165: (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/1165
2024-07-23 17:20:22 +08:00
jinling.yang
da8e543819 修复返工向导 2024-07-23 17:18:31 +08:00
禹翔辉
eb236fea11 Accept Merge Request #1164: (feature/修复工单cnc校验bug -> develop)
Merge Request: 1、修复feature/修复工单cnc校验bug

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1164?initial=true
2024-07-23 16:00:39 +08:00
yuxianghui
1d271d9167 1、修复feature/修复工单cnc校验bug 2024-07-23 15:46:15 +08:00
禹翔辉
c5cf614645 Accept Merge Request #1163: (feature/修复工单cnc校验bug -> develop)
Merge Request: 修复工单cnc校验bug

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1163?initial=true
2024-07-23 11:54:58 +08:00
yuxianghui
167c280fa4 修复工单cnc校验bug 2024-07-23 11:53:47 +08:00
杨金灵
69157a7b1f Accept Merge Request #1162: (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/1162?initial=true
2024-07-23 11:48:47 +08:00
jinling.yang
2939e6bf82 修复功能刀具 2024-07-23 11:47:48 +08:00
杨金灵
96bbf3a677 Accept Merge Request #1161: (feature/修复返工(CNC加工) -> develop)
Merge Request: 修复返工(CNC加工)

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1161?initial=true
2024-07-23 10:48:29 +08:00
jinling.yang
e3580d9ac8 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复返工(CNC加工) 2024-07-23 10:33:37 +08:00
jinling.yang
ded1789813 修复返工(CNC加工) 2024-07-23 10:33:22 +08:00
禹翔辉
759f947fa7 Accept Merge Request #1160: (feature/NC程序和功能刀具校验_1 -> develop)
Merge Request: 完成  NC程序和功能刀具校验需求

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1160
2024-07-23 09:13:22 +08:00
yuxianghui
302aed16ec Merge branch 'feature/NC程序和功能刀具校验' into feature/NC程序和功能刀具校验_1 2024-07-23 09:08:33 +08:00
yuxianghui
7d1db793b1 Merge branch 'feature/NC程序和功能刀具校验' into feature/NC程序和功能刀具校验_1
# Conflicts:
#	sf_manufacturing/models/mrp_workorder.py
2024-07-23 09:06:57 +08:00
jinling.yang
83396f5434 修复返工(CNC加工) 2024-07-22 17:32:31 +08:00
禹翔辉
fe9baf08f0 Merge branch refs/heads/develop into refs/heads/feature/NC程序和功能刀具校验 2024-07-22 17:11:41 +08:00
杨金灵
b47cd0cdfe Accept Merge Request #1159: (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/1159?initial=true
2024-07-22 15:10:13 +08:00
jinling.yang
251e289fd1 修复返工多面 2024-07-22 15:08:14 +08:00
jinling.yang
1d4ecb9895 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-22 14:47:12 +08:00
yuxianghui
f3a7dcc6a4 Merge branch 'feature/无效刀返工' into feature/NC程序和功能刀具校验
# Conflicts:
#	sf_manufacturing/models/mrp_workorder.py
2024-07-22 11:36:29 +08:00
jinling.yang
ebd56eb5e0 Merge branch 'feature/修复返工bug' into develop 2024-07-22 11:01:57 +08:00
杨金灵
4f99a162b5 Accept Merge Request #1157: (feature/修复返工bug -> develop)
Merge Request: 修复返工bug

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1157?initial=true
2024-07-22 11:01:41 +08:00
jinling.yang
28843b0733 修复返工bug 2024-07-22 10:57:43 +08:00
jinling.yang
8a0c968b10 修复返工bug 2024-07-19 17:25:51 +08:00
liaodanlong
ef1c7b6b25 多余字符串信息 2024-07-19 17:23:01 +08:00
liaodanlong
03fe730c50 产品添加税信息 2024-07-19 16:46:53 +08:00
liaodanlong
a0d3b40548 添加工厂订单和产品创建时的错误日志 2024-07-19 16:46:31 +08:00
liaodanlong
dfba055019 添加bfm同步时产品创建填充税值 2024-07-19 16:45:46 +08:00
jinling.yang
9d3c4f8163 修复返工按钮 2024-07-19 09:17:35 +08:00
jinling.yang
08831812ae Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复返工bug
# Conflicts:
#	sf_manufacturing/models/mrp_production.py
2024-07-18 16:56:54 +08:00
jinling.yang
8b75658787 添加注释代码 2024-07-18 16:55:59 +08:00
yuxianghui
25ac346cb7 1、cnc编程单tree视图展示刀具状态字段;2、优化制造订单的功能刀具状态字段自动更新方法,同时当工单刀具状态变化时变更缺刀备注信息,添加状态为无效刀的备注字段;3、优化当功能刀具从【刀具房】到【制造前】时进行校验,校验是否为制造订单所缺的刀,如果是则修改cnc编程单刀具状态为正常;4、优化cnc用刀校验:添加对无效刀的处理(无效刀时触发返工流程,并生成检测结果数据),优化生成的待处理数据的数据结构; 2024-07-18 16:33:41 +08:00
jinling.yang
2d15782228 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-18 16:30:51 +08:00
jinling.yang
856237c4cb Merge branch 'feature/优化最新版报废' into develop 2024-07-18 16:30:41 +08:00
杨金灵
a47c751b04 Accept Merge Request #1155: (feature/优化最新版报废 -> develop)
Merge Request: 修复部分返工bug及优化部分报废

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1155
2024-07-18 16:29:58 +08:00
jinling.yang
9bec39f4e6 还原注释代码 2024-07-18 16:25:19 +08:00
jinling.yang
33bf88968c 修复返工bug 2024-07-18 16:17:19 +08:00
jinling.yang
7163e025d2 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化最新版报废
# Conflicts:
#	sf_manufacturing/security/ir.model.access.csv
2024-07-17 19:32:21 +08:00
杨金灵
11ec448e81 Accept Merge Request #1154: (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/1154?initial=true
2024-07-17 19:30:45 +08:00
jinling.yang
6c2fb043c4 修复更新程序后制造订单状态 2024-07-17 19:29:21 +08:00
jinling.yang
1dcecea3d5 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-17 19:07:35 +08:00
jinling.yang
88f3ac3d4e Merge branch 'feature/修复多面返工工单状态变更错误' into develop 2024-07-17 19:06:58 +08:00
杨金灵
983618d798 Accept Merge Request #1153: (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/1153?initial=true
2024-07-17 19:06:42 +08:00
jinling.yang
7a9c0ff163 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-17 19:03:14 +08:00
jinling.yang
77f7602b23 修复多面返工工单状态变更错误 2024-07-17 19:03:07 +08:00
yuxianghui
70b8521b90 Merge branch 'feature/销售订单、工单优化' into feature/无效刀返工
# Conflicts:
#	sf_manufacturing/models/mrp_production.py
#	sf_manufacturing/models/mrp_workorder.py
2024-07-17 16:57:11 +08:00
jinling.yang
1b89642dae Merge branch 'feature/修复检测报告添加权限' into develop 2024-07-17 15:39:00 +08:00
杨金灵
1968ee17cb Accept Merge Request #1152: (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/1152
2024-07-17 15:37:57 +08:00
jinling.yang
5e83fb382f 还原rfid代码 2024-07-17 15:37:20 +08:00
jinling.yang
974671ee07 修复解除装夹 2024-07-17 15:33:49 +08:00
jinling.yang
d8b4797ffe 检测报告添加机床操作岗权限 2024-07-17 15:31:47 +08:00
jinling.yang
b07e7707c7 添加计划调度岗,机床操作岗 2024-07-17 15:30:38 +08:00
jinling.yang
8726f8cac3 添加报废向导;添加重新生成制造订单 2024-07-17 15:20:31 +08:00
杨金灵
cb7960387b Accept Merge Request #1151: (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/1151?initial=true
2024-07-17 10:17:42 +08:00
jinling.yang
6eaf92b841 修复调用更新程序 2024-07-17 10:15:05 +08:00
jinling.yang
ec0b5e88b6 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-17 09:47:30 +08:00
jinling.yang
f1b8ee41bc Merge branch 'feature/优化最新版返工' into develop 2024-07-17 09:47:18 +08:00
杨金灵
97c0b95e2d Accept Merge Request #1150: (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/1150
2024-07-17 09:47:03 +08:00
jinling.yang
7ac342bfd4 返工向导隐藏工序 2024-07-17 09:46:23 +08:00
jinling.yang
6c820ead44 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化最新版返工
# Conflicts:
#	sf_manufacturing/models/mrp_production.py
2024-07-16 17:25:24 +08:00
jinling.yang
c536dde2cc 去掉注释代码 2024-07-16 17:24:15 +08:00
马广威
801ff9e076 Accept Merge Request #1149: (feature/优化制造功能 -> develop)
Merge Request: 修复制造订单状态

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1149?initial=true
2024-07-16 16:32:11 +08:00
mgw
d0e049e881 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造功能 2024-07-16 16:31:33 +08:00
mgw
81158e2fb4 修复制造订单状态 2024-07-16 16:31:18 +08:00
yuxianghui
3404cccdc8 1、货架、货位添加循环货位标签;2、功能刀具拆解选取法人货位添加只能选择循环货位的过滤条件 2024-07-16 15:33:27 +08:00
禹翔辉
45bb78d7e9 Accept Merge Request #1148: (feature/表面工艺优化 -> develop)
Merge Request: 1、表面工艺及同步接口添加‘加工天数’、‘路途天数’字段;2、表面工艺可选参数及同步接口添加‘工艺描述’、‘加工天数’、‘路途天数’字段

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1148?initial=true
2024-07-16 14:11:57 +08:00
yuxianghui
83334e2915 1、表面工艺及同步接口添加‘加工天数’、‘路途天数’字段;2、表面工艺可选参数及同步接口添加‘工艺描述’、‘加工天数’、‘路途天数’字段 2024-07-16 14:10:14 +08:00
禹翔辉
d4c30f645b Accept Merge Request #1147: (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/1147?initial=true
2024-07-16 10:46:37 +08:00
yuxianghui
bd642812a9 创建销售订单接口添加销售明细信息‘备注’字段 2024-07-16 10:45:00 +08:00
yuxianghui
3eca74518a Merge branch 'feature/CNC功能刀具用刀校验' into feature/销售订单、工单优化 2024-07-16 10:41:56 +08:00
yuxianghui
37977be862 1、工单解绑时添加二次校验是否解绑成功;2、销售订单创建接口添加详情信息‘备注’字段; 2024-07-16 10:40:18 +08:00
jinling.yang
a0bd214118 修复返工操作时工单状态及制造订单更新程序 2024-07-15 17:34:18 +08:00
jinling.yang
7885794322 1.优化制造订单的检测结果:新增处理结果字段
2.优化制造订单的返工向导:加工面字段类型改为多对多,且该字段需根据处理结果为待处理的检测结果的加工面进行过滤
3.优化工单工件下产线接口:工单状态为待检测
4,.优化工单状态方法(_compute_state)
2024-07-12 17:32:53 +08:00
jinling.yang
7152b54017 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化最新版返工
# Conflicts:
#	sf_manufacturing/views/mrp_workorder_view.xml
2024-07-11 17:38:38 +08:00
jinling.yang
0fef714d61 1.注释mrp_workcenter.xml文件和res.config添加不要的字段:lost_agent_id
2.制造订单新增“重新编程次数”字段,新增更新程序方法及对应的接口,优化返工且编程中的制造订单定时获取Cloud编程单状态的方法
3.优化返工向导页面及新增“重复编程次数”和“编程状态”字段
2024-07-11 17:37:35 +08:00
禹翔辉
6a2ff72dce Accept Merge Request #1146: (feature/销售单优化 -> develop)
Merge Request: 1、在销售订单内产品列表内增加备注字段

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1146?initial=true
2024-07-11 16:40:39 +08:00
yuxianghui
3094379e86 1、在销售订单内产品列表内增加备注字段 2024-07-11 16:38:41 +08:00
yuxianghui
77815c45a0 1、当检测到缺刀工单需要的功能刀具从刀具房出库到线边刀架时,更改cnc编程单的功能刀具状态为正常; 2024-07-11 16:37:20 +08:00
马广威
dd7c69ce1b Accept Merge Request #1145: (feature/优化制造功能 -> develop)
Merge Request: 修改订单状态

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1145?initial=true
2024-07-11 11:23:05 +08:00
mgw
e02f792300 修改订单状态 2024-07-11 11:22:25 +08:00
jinling.yang
9aca786522 1.优化工单排序2.新增调取cloud编程单的状态方法3.制造订单添加状态为返工及编程状态为"已编程",“已编程未下发”的过滤条件4,新增返工且编程中的制造订单定时获取Cloud编程单状态的定时器 2024-07-10 17:36:26 +08:00
yuxianghui
134e23ea2f 1、重构工单工序的生成方法; 2024-07-10 16:25:18 +08:00
yuxianghui
129f8a4d7d 1、重构工单cnc编程用刀校验方法;制造订单、工单、cnc编程单添加刀具状态字段,并且根据cnc编程单刀具状态自动计算制造订单、工单刀具状态字段的值;制造订单form页新增展示功能刀具状态字段;2、功能刀具拆解单刀具物料选择目标货位添加过滤添加为只选择所属货区是刀具房的货位; 2024-07-10 16:23:24 +08:00
马广威
79e3006cdb Accept Merge Request #1144: (feature/优化制造功能 -> develop)
Merge Request: 优化工单模块,增加企微模块

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1144?initial=true
2024-07-10 16:05:49 +08:00
mgw
6b140fe6dd 优化工单模块,增加企微模块 2024-07-10 15:58:47 +08:00
jinling.yang
7533d23d3e 1.工单状态新增‘返工’,2,在制造订单上点击返工选择加工面确认后,新增加工面的对应工单及新增重置cloud的编程单的状态3.优化返工向导 2024-07-09 17:36:47 +08:00
马广威
e8512b23e4 Accept Merge Request #1143: (feature/优化制造功能 -> develop)
Merge Request: 增加工单模块

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1143?initial=true
2024-07-09 17:32:54 +08:00
mgw
b582bfbafa 增加工单模块 2024-07-09 17:32:03 +08:00
马广威
11907d4c5e Accept Merge Request #1142: (feature/优化制造功能 -> develop)
Merge Request: 解除装夹处打印成品二维码

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1142
2024-07-09 10:19:20 +08:00
mgw
ed4903b6f1 解除装夹处打印成品二维码 2024-07-09 10:18:13 +08:00
jinling.yang
b383a6d229 1.新增加工面模型2.制造订单详情页面的返工操作上的加工面根据产品的加工面板进行过滤 2024-07-08 17:33:04 +08:00
禹翔辉
27eb959a2a Accept Merge Request #1141: (feature/功能刀具拆解单库存优化 -> develop)
Merge Request: 1、功能刀具组装/拆解单库存优化;2、完成 SF材料材料型号缺陷优化 bug

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1141
2024-07-08 09:57:04 +08:00
yuxianghui
1672a3982e 1、完成 SF材料材料型号缺陷优化 bug 2024-07-05 17:09:32 +08:00
黄焱
40f8392bd3 Accept Merge Request #1140: (feature/前端样式修改 -> develop)
Merge Request: 去除 根据进度条设置水印 修复切换产品3D图bug 修改表格下拉框会被表格下面数据框覆盖的bug

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1140?initial=true
2024-07-05 16:05:38 +08:00
hy
1c8644983b 去除 根据进度条设置水印
修复切换产品3D图bug
修改表格下拉框会被表格下面数据框覆盖的bug
2024-07-05 16:02:32 +08:00
马广威
566d9fce9c Accept Merge Request #1139: (feature/优化制造功能 -> develop)
Merge Request: 优化展示效果

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1139?initial=true
2024-07-05 11:37:24 +08:00
mgw
b071b14bbd 优化展示效果 2024-07-05 11:36:48 +08:00
马广威
9d95442720 Accept Merge Request #1138: (feature/优化制造功能 -> develop)
Merge Request: 工作中心的参数修改需增加sns模块("记录备注")

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1138?initial=true
2024-07-05 11:27:02 +08:00
mgw
fd225fa0e1 工作中心的参数修改需增加sns模块("记录备注") 2024-07-05 11:26:02 +08:00
jinling.yang
52fa229896 优化制造订单菜单 2024-07-04 17:31:03 +08:00
马广威
937efa5f0f Accept Merge Request #1137: (feature/优化制造功能 -> develop)
Merge Request: 前置检测文件命名增加加工面标识,避免检测文件覆盖

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1137?initial=true
2024-07-04 17:22:25 +08:00
mgw
87153fab3f 前置检测文件命名增加加工面标识,避免检测文件覆盖 2024-07-04 17:21:39 +08:00
马广威
21c33bb662 Accept Merge Request #1136: (feature/优化制造功能 -> develop)
Merge Request: 修复“已经排程的制造订单取消排程后状态没有回退”

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1136?initial=true
2024-07-04 16:19:46 +08:00
mgw
b0da7977f5 修复“已经排程的制造订单取消排程后状态没有回退” 2024-07-04 16:19:20 +08:00
马广威
ae6764495e Accept Merge Request #1135: (feature/优化制造功能 -> develop)
Merge Request: 修复”制造订单完工后对应的成品入库单还是等待状态-应该是就绪状态“

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1135?initial=true
2024-07-04 16:13:30 +08:00
mgw
869e3e4b4f 修复”制造订单完工后对应的成品入库单还是等待状态-应该是就绪状态“ 2024-07-04 16:12:27 +08:00
jinling.yang
050e82673a 优化cnc工单 2024-07-04 15:38:43 +08:00
杨金灵
1210625cfc Accept Merge Request #1134: (release/release_2.0 -> 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/1134?initial=true
2024-07-04 15:37:25 +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
a7a8e73616 新增返工向导 2024-07-03 17:35:29 +08:00
yuxianghui
d60fefb2ec 1 2024-07-03 17:33:29 +08:00
yuxianghui
4a86871039 1、功能刀具组装单添加对应调拨单跳转按钮;功能刀具拆解单添加调拨单跳转按钮和功能刀具移动跳转按钮;2、功能刀具拆解模型,form视图添加报废page页存放刀具物料报废单,优化拆解流程添加功能刀具拆解移动记录;3、功能刀具出入库列表视图添加拆解单跳转链接;4、功能刀具安全库存模型添加名称唯一验证,优化字段计算方法;5、优化功能刀具同步到cloud的同步接口,解决编码问题; 2024-07-03 17:17:48 +08:00
jinling.yang
93c3548b40 注释OCC代码 2024-07-03 11:05:55 +08:00
jinling.yang
6c6fe44d45 制造订单去掉上/下产线字段 2024-07-03 10:53:29 +08:00
jinling.yang
bb33a1d093 修复多面工单产线状态 2024-07-03 10:37:02 +08:00
杨金灵
396084a498 Accept Merge Request #1132: (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/1132
2024-07-03 10:32:42 +08:00
jinling.yang
73cc244994 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复多面加工产线状态 2024-07-03 10:30:27 +08:00
jinling.yang
fa6303bbef 修复多面工单加工产线状态 2024-07-03 10:30:13 +08:00
杨金灵
5ca555c520 Accept Merge Request #1131: (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/1131?initial=true
2024-07-03 10:00:29 +08:00
jinling.yang
487f6c2054 修复多面加工产线状态 2024-07-03 09:55:47 +08:00
jinling.yang
9ec37f5d5b 修复多面加工产线状态 2024-07-03 09:45:55 +08:00
yuxianghui
cbc8a41984 1、添加拆解的仓库管理地点;2、优化功能刀具拆解库存管理;3、代码迁移 2024-07-02 17:32:27 +08:00
yuxianghui
025ad213d6 Merge branch 'feature/功能刀具组装库存优化' into feature/功能刀具拆解单库存优化 2024-07-02 10:24:52 +08:00
yuxianghui
0b267cc88a 1 2024-07-02 09:32:50 +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
马广威
957c5583bd Accept Merge Request #1129: (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/1129#mr-1129-review-164092
2024-07-01 20:13:10 +08:00
jinling.yang
9c4c2b85dd 修复制造订单数量 2024-07-01 20:08:46 +08:00
jinling.yang
56af286500 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-01 18:30:18 +08:00
jinling.yang
cc83029c72 Merge branch 'feature/修复工单完成接口' into develop 2024-07-01 18:30:06 +08:00
杨金灵
79ab1cc573 Accept Merge Request #1128: (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/1128?initial=true
2024-07-01 18:29:29 +08:00
jinling.yang
bda3df7806 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-01 18:29:16 +08:00
马广威
150b684354 Accept Merge Request #1127: (feature/sf物流方面缺陷与优化 -> develop)
Merge Request: Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/sf物流方面缺陷与优化

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1127?initial=true
2024-07-01 18:28:37 +08:00
jinling.yang
d69dc20fd1 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复工单完成接口 2024-07-01 18:28:11 +08:00
jinling.yang
e9c9b77112 修复所有工单完成报库存问题 2024-07-01 18:27:59 +08:00
mgw
495f92bd80 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/sf物流方面缺陷与优化 2024-07-01 18:27:52 +08:00
马广威
8a97fd08e2 Accept Merge Request #1126: (feature/sf物流方面缺陷与优化 -> develop)
Merge Request: 状态补充条件

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1126?initial=true
2024-07-01 18:18:19 +08:00
mgw
1551ea4b12 状态补充条件 2024-07-01 18:17:48 +08:00
jinling.yang
75c5cca9a0 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-01 18:12:25 +08:00
jinling.yang
6b6be85057 去掉更改制造订单的状态等相关代码 2024-07-01 18:12:15 +08:00
jinling.yang
7fb3c32d07 修复工单完成接口 2024-07-01 17:48:45 +08:00
马广威
8203975142 Accept Merge Request #1125: (feature/sf物流方面缺陷与优化 -> develop)
Merge Request: 优化订单状态条件及物流的容错处理

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1125?initial=true
2024-07-01 17:28:45 +08:00
mgw
449cf5bfb1 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/sf物流方面缺陷与优化 2024-07-01 17:28:07 +08:00
mgw
d7d5ccc142 优化订单状态条件及物流的容错处理 2024-07-01 17:27:52 +08:00
jinling.yang
8710df6dc2 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-01 17:14:42 +08:00
jinling.yang
f5c1457707 Merge branch 'feature/优化解绑rfid' into develop 2024-07-01 17:13:57 +08:00
杨金灵
5155135cb4 Accept Merge Request #1124: (feature/优化解绑rfid -> develop)
Merge Request: 优化解绑rfid

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1124
2024-07-01 17:13:38 +08:00
jinling.yang
4421eed1d0 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-01 17:11:47 +08:00
yuxianghui
5be5e8b3ec 1、功能刀具组装完成时,自动生成内部调拨单以及所有的刀具物料的库存移动和移动历史记录,并自动完成该调拨单;优化功能刀具的刀具组装入库单的生成,简化入库步骤。 2024-07-01 17:11:44 +08:00
jinling.yang
46e3a23492 优化解绑rfid 2024-07-01 17:11:34 +08:00
马广威
675b09390b Accept Merge Request #1123: (feature/sf物流方面缺陷与优化 -> develop)
Merge Request: 优化订单状态

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1123?initial=true
2024-07-01 16:57:22 +08:00
mgw
34251b4027 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/sf物流方面缺陷与优化 2024-07-01 16:56:43 +08:00
mgw
c4621d36a3 优化订单状态 2024-07-01 16:56:19 +08:00
jinling.yang
7bdc4b463a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-01 15:42:22 +08:00
jinling.yang
ea88b5418f Merge branch 'feature/优化cnc工单接口' into develop 2024-07-01 15:42:10 +08:00
杨金灵
f5a64caf81 Accept Merge Request #1122: (feature/优化cnc工单接口 -> develop)
Merge Request: 优化cnc工单接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1122?initial=true
2024-07-01 15:41:52 +08:00
jinling.yang
1e5f26d645 工单开始和结束接口增加rfid_code不为空的条件 2024-07-01 15:29:55 +08:00
jinling.yang
ace32d9490 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-01 14:03:23 +08:00
马广威
5db2f1fc70 Accept Merge Request #1121: (feature/sf物流方面缺陷与优化 -> develop)
Merge Request: 优化物流提示

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1121?initial=true
2024-07-01 11:51:37 +08:00
mgw
960c940505 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/sf物流方面缺陷与优化 2024-07-01 11:50:49 +08:00
mgw
ee1629b40a 优化物流提示 2024-07-01 11:47:51 +08:00
jinling.yang
06de5f6a2d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-07-01 10:50:19 +08:00
jinling.yang
c1eff705c2 Merge branch 'feature/修复表面工艺' into develop 2024-07-01 10:49:57 +08:00
杨金灵
8e3c7f9732 Accept Merge Request #1120: (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/1120?initial=true
2024-07-01 10:49:38 +08:00
jinling.yang
2591e627f0 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复表面工艺 2024-07-01 10:47:33 +08:00
jinling.yang
4c66d86ee6 修复表面工艺 2024-07-01 10:47:05 +08:00
禹翔辉
d4bc1c13ea Accept Merge Request #1119: (feature/工单优化-2 -> 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/1119
2024-07-01 09:55:21 +08:00
yuxianghui
4c845ee9fd Merge branch 'feature/工单优化-1' into feature/工单优化-2 2024-07-01 09:53:11 +08:00
yuxianghui
726c3aede1 1、优化工单扫描绑定托盘的提示信息 2024-07-01 09:52:16 +08:00
黄焱
871c406c09 Accept Merge Request #1118: (feature/前端样式修改 -> develop)
Merge Request: // 修复表格内容覆盖表头bug

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1118?initial=true
2024-07-01 09:49:05 +08:00
hy
2ba9695c34 // 修复表格内容覆盖表头bug 2024-07-01 09:47:50 +08:00
杨金灵
e1db34f25d Accept Merge Request #1117: (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/1117
2024-07-01 09:31:43 +08:00
jinling.yang
e496555ff3 去掉注释代码 2024-06-30 19:29:36 +08:00
jinling.yang
404a41294c 修复表面工艺外协单状态 2024-06-30 19:16:48 +08:00
jinling.yang
e124560089 修复无外协单和程序单 2024-06-30 17:52:02 +08:00
jinling.yang
fd3a363bf6 修复无外协单和程序单 2024-06-30 16:51:40 +08:00
杨金灵
9f6563186c Accept Merge Request #1116: (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/1116
2024-06-30 14:47:44 +08:00
jinling.yang
1b174c5805 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-30 14:41:38 +08:00
jinling.yang
849b7be20d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-30 14:09:34 +08:00
jinling.yang
9d32bf8363 Merge branch 'feature/修复制造订单状态和多个编程单问题' into develop 2024-06-30 12:46:48 +08:00
杨金灵
998daaa7f7 Accept Merge Request #1115: (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/1115?initial=true
2024-06-30 12:45:54 +08:00
jinling.yang
b23cb9af6e 优化编程状态字段的样式 2024-06-30 12:09:09 +08:00
jinling.yang
56adaddefc 1.修复编程状态字段类型2.优化工单rfid排放位置 2024-06-30 12:01:48 +08:00
jinling.yang
4a648fbd7b 1,修复制造订单状态:第一张装夹工单未就绪是,状态需为:待加工;所有工单完成后,状态需为:完成;2.修复多个产品确认制造订单未生产多个编程单问题3.优化工单页面:去掉非必要的字段 2024-06-30 11:45:52 +08:00
mgw
a3bf451d83 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/sf物流方面缺陷与优化 2024-06-28 17:03:06 +08:00
mgw
2919a3c159 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/sf物流方面缺陷与优化 2024-06-28 17:02:47 +08:00
马广威
8f6e2bc13d Accept Merge Request #1114: (feature/sf物流方面缺陷与优化 -> develop)
Merge Request: 排程单甘特图界面订单的hover提示中订单交期字段没有翻译成日期格式

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1114?initial=true
2024-06-28 17:01:43 +08:00
mgw
909230c1cc 排程单甘特图界面订单的hover提示中订单交期字段没有翻译成日期格式 2024-06-28 17:00:50 +08:00
马广威
db8c338588 Accept Merge Request #1113: (feature/sf物流方面缺陷与优化 -> develop)
Merge Request: 工单增加默认产品分组,组内排序从小到大

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1113?initial=true
2024-06-28 16:02:09 +08:00
mgw
f319a9adf4 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/sf物流方面缺陷与优化 2024-06-28 16:01:05 +08:00
mgw
172e420939 增加分组内排序 2024-06-28 16:00:50 +08:00
mgw
0c3727540e 工单增加默认产品分组 2024-06-28 14:51:53 +08:00
禹翔辉
5668722109 Accept Merge Request #1112: (feature/工单优化-1 -> 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/1112
2024-06-28 14:25:01 +08:00
杨金灵
2d80355559 Accept Merge Request #1111: (feature/修复cmm程序接口 -> develop)
Merge Request: 修复cmm程序接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1111?initial=true
2024-06-28 14:24:23 +08:00
jinling.yang
d281026086 修复cmm程序接口 2024-06-28 14:23:03 +08:00
yuxianghui
5c35a8c38d Merge branch 'feature/添加权限、解决bug' into feature/工单优化-1 2024-06-28 14:22:35 +08:00
yuxianghui
3b24f90385 1、工单添加按Rfid搜索,隐藏多余的Rfid字段;2、优化程序创建日期; 2024-06-28 14:20:57 +08:00
杨金灵
14355606c7 Accept Merge Request #1110: (feature/优化ftp -> develop)
Merge Request: ftp优化

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1110
2024-06-28 12:03:05 +08:00
jinling.yang
5997cbcb0e download_program_file方法添加关闭ftp 2024-06-28 12:00:29 +08:00
jinling.yang
f07d7611d0 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-28 10:10:46 +08:00
马广威
b106d56f3f Accept Merge Request #1109: (feature/sf物流方面缺陷与优化 -> develop)
Merge Request: 修复隐藏项目

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1109?initial=true
2024-06-28 09:52:58 +08:00
mgw
3156052604 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/sf物流方面缺陷与优化 2024-06-28 09:51:50 +08:00
mgw
c8de75ceae 修复隐藏项目 2024-06-28 09:51:31 +08:00
马广威
d4b1f8f1a1 Accept Merge Request #1108: (feature/sf物流方面缺陷与优化 -> develop)
Merge Request: Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/sf物流方面缺陷与优化

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1108?initial=true
2024-06-28 09:45:59 +08:00
mgw
5378d62551 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/sf物流方面缺陷与优化 2024-06-28 09:44:24 +08:00
马广威
424f7196f8 Accept Merge Request #1107: (feature/sf物流方面缺陷与优化 -> develop)
Merge Request: 处理unlink传参问题2

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1107?initial=true
2024-06-28 09:19:58 +08:00
mgw
c2723d9d05 处理unlink传参问题2 2024-06-28 09:19:09 +08:00
jinling.yang
7bf001927a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-28 09:17:56 +08:00
杨金灵
84d67d285e Accept Merge Request #1106: (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/1106?initial=true
2024-06-28 09:16:32 +08:00
jinling.yang
a583b483e3 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复制造订单无采购单问题 2024-06-27 20:10:22 +08:00
jinling.yang
719a96f983 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-27 20:10:01 +08:00
jinling.yang
08fd0b01d3 去掉程序下发按钮 2024-06-27 20:09:45 +08:00
jinling.yang
db7fbed177 去掉重新编程下发相关代码,修复多制造订单无采购调拨单,去掉程序下发按钮 2024-06-27 20:09:28 +08:00
马广威
ad149a58ea Accept Merge Request #1105: (feature/sf物流方面缺陷与优化 -> develop)
Merge Request: 处理unlink()参数问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1105?initial=true
2024-06-27 17:32:18 +08:00
mgw
0d96cd070c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/sf物流方面缺陷与优化 2024-06-27 17:31:21 +08:00
mgw
37f030c2db 处理unlink()参数问题 2024-06-27 17:31:03 +08:00
禹翔辉
e2a62325f8 Accept Merge Request #1104: (feature/添加权限、解决bug -> develop)
Merge Request: 添加权限、解决bug

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1104?initial=true
2024-06-27 17:26:20 +08:00
yuxianghui
0db103cfc7 Merge branch 'feature/调拨单优化1' into feature/添加权限、解决bug 2024-06-27 17:22:42 +08:00
yuxianghui
05f2cb553d 1、完成 采购/采购总监岗位权限增加 需求;2、完成 刀具出入库列表缺少单据跳转 需求;3、完成 设备详情的机内装刀时间比当前时间还晚 bug; 2024-06-27 17:21:37 +08:00
黄焱
c597471949 Accept Merge Request #1103: (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/1103?initial=true
2024-06-27 10:14:10 +08:00
hy
70ffbafac4 甘特修改背景颜色和不可拖拽模块 2024-06-27 09:57:12 +08:00
jinling.yang
1cb7af072e 注释OCC代码 2024-06-27 09:52:20 +08:00
禹翔辉
4f6b1d0342 Accept Merge Request #1102: (feature/调拨单优化1 -> develop)
Merge Request: 1、完成 内部调拨单优化项 需求;2、解决 不同序列号调拨单选择同一个货位可以确认成功 bug;3、收货入库时扫描录入Rfid方法添加日志

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1102?initial=true
2024-06-26 17:10:25 +08:00
yuxianghui
9bdcf0dd92 Merge branch 'feature/调拨单优化' into feature/调拨单优化1 2024-06-26 17:08:39 +08:00
yuxianghui
bcb60425b2 1、完成 内部调拨单优化项 需求;2、解决 不同序列号调拨单选择同一个货位可以确认成功 bug;3、收货入库时扫描录入Rfid方法添加日志 2024-06-26 17:07:09 +08:00
jinling.yang
22643368fa Merge branch 'feature/修复工单完成报错库存问题' into develop 2024-06-26 16:41:23 +08:00
jinling.yang
aeb100923f Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复工单完成报错库存问题 2024-06-26 16:41:05 +08:00
杨金灵
53c6d6015e Accept Merge Request #1101: (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/1101?initial=true
2024-06-26 16:40:40 +08:00
jinling.yang
131e9329de Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-26 16:37:05 +08:00
jinling.yang
dbd5c488f8 修复制造订单生成时没有采购单 2024-06-26 16:36:51 +08:00
马广威
f8ba414229 Accept Merge Request #1100: (feature/sf物流方面缺陷与优化 -> develop)
Merge Request: sf物流优化

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1100?initial=true
2024-06-26 16:34:52 +08:00
mgw
7fd3647afb sf物流优化 2024-06-26 16:34:04 +08:00
马广威
f5be9c6e65 Accept Merge Request #1099: (feature/制造订单列表页及详情页优化需求 -> develop)
Merge Request: 制造订单列表页及详情页优化需求

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1099?initial=true
2024-06-26 14:13:06 +08:00
mgw
c275a39a15 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造订单列表页及详情页优化需求 2024-06-26 14:11:45 +08:00
mgw
d07ab53aeb 制造订单列表页及详情页优化需求 2024-06-26 14:10:57 +08:00
jinling.yang
55accb714a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-26 11:25:47 +08:00
jinling.yang
5bd3eddfd5 Merge branch 'feature/修复编程单下发ftp路径' into develop 2024-06-26 11:24:58 +08:00
杨金灵
c8bcd4d0f5 Accept Merge Request #1098: (feature/修复编程单下发ftp路径 -> develop)
Merge Request: 修复编程单下发ftp路径

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1098?initial=true
2024-06-26 11:24:40 +08:00
jinling.yang
2cbe5ed394 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复编程单下发ftp路径 2024-06-26 11:11:26 +08:00
jinling.yang
1f1cb17a40 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-26 11:11:08 +08:00
jinling.yang
2ff935f68d 修复编程单下发ftp路径 2024-06-26 11:10:54 +08:00
杨金灵
098745ec50 Accept Merge Request #1097: (feature/修复编程单下发ftp路径 -> develop)
Merge Request: 修复编程单下发ftp路径

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1097?initial=true
2024-06-26 10:21:25 +08:00
jinling.yang
94175f2039 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-26 10:17:27 +08:00
jinling.yang
1940116a35 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复编程单下发ftp路径 2024-06-26 10:17:14 +08:00
jinling.yang
f4eb378bea 修复制造订单:无工单时,工单page需隐藏 2024-06-26 10:17:00 +08:00
jinling.yang
dcbb60b088 修复编程单下发ftp路径:去掉注释 2024-06-25 18:11:45 +08:00
jinling.yang
88ef9c106d 修复编程单下发ftp路径 2024-06-25 17:54:08 +08:00
马广威
0f7f12008f Accept Merge Request #1096: (feature/【计划】模块的【排程单】页面优化需求 -> develop)
Merge Request: 处理"打印的二维码信息与界面的二维码信息不一致"等

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1096?initial=true
2024-06-25 16:51:47 +08:00
mgw
f44836705b 放出程序下载按钮 2024-06-25 16:50:09 +08:00
mgw
35ac51bc10 取消默认分组展示 2024-06-25 14:22:51 +08:00
mgw
eb2851391b 处理"打印的二维码信息与界面的二维码信息不一致" 2024-06-25 12:06:28 +08:00
jinling.yang
86f67556ce Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-25 11:07:41 +08:00
禹翔辉
e437875a92 Accept Merge Request #1095: (release/release_1.8 -> 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/1095
2024-06-25 09:53:14 +08:00
禹翔辉
f005a29beb Merge branch refs/heads/develop into refs/heads/release/release_1.8 2024-06-25 09:47:34 +08:00
马广威
6a24776701 Accept Merge Request #1094: (feature/【计划】模块的【排程单】页面优化需求 -> develop)
Merge Request: 计划模块后端优化

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1094?initial=true
2024-06-25 09:04:10 +08:00
mgw
09d06980b5 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/【计划】模块的【排程单】页面优化需求 2024-06-25 09:03:13 +08:00
mgw
8b492fc093 计划模块后端优化 2024-06-25 09:02:54 +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
jinling.yang
b4535e88c9 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-24 17:31:08 +08:00
禹翔辉
ba03790832 Accept Merge Request #1092: (hotfix/优化工单工序 -> develop)
Merge Request: 1、重构工单工序的生成规则

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1092
2024-06-24 17:30:28 +08:00
jinling.yang
be94cd0d54 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-24 17:30:03 +08:00
禹翔辉
3148cd55b8 Accept Merge Request #1091: (feature/单据跳转2 -> develop)
Merge Request: 1、重新下发NC程序按键添加权限

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1091?initial=true
2024-06-24 17:29:17 +08:00
yuxianghui
665ebaab9e 1、重新下发NC程序按键添加权限 2024-06-24 17:28:06 +08:00
jinling.yang
65e209fe2a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-24 17:20:18 +08:00
禹翔辉
40969adc2c Accept Merge Request #1090: (feature/单据跳转2 -> develop)
Merge Request: 1、功能刀具清单做编辑控制;2、刀具拆解——报废优化;3、功能刀具出入库添加刀具跳转;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1090
2024-06-24 17:15:55 +08:00
yuxianghui
95e89d8979 1 2024-06-24 17:10:39 +08:00
yuxianghui
5b400b746e Merge branch 'feature/单据跳转' into feature/单据跳转2 2024-06-24 17:09:40 +08:00
jinling.yang
828b4b0f6b 修复功能刀具清单列表 2024-06-24 16:55:42 +08:00
jinling.yang
27ba002b51 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-24 16:54:28 +08:00
jinling.yang
2cd83c87e2 Merge branch 'feature/优化重新下发程序' into develop 2024-06-24 16:52:48 +08:00
jinling.yang
ba87d07af7 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-24 16:52:24 +08:00
杨金灵
7d2c705c35 Accept Merge Request #1089: (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/1089?initial=true
2024-06-24 16:51:56 +08:00
jinling.yang
f3c2db7add Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化重新下发程序 2024-06-24 16:49:19 +08:00
jinling.yang
0af6d7f4cd 优化重新下发程序:装夹预调,cnc加工工单展示 2024-06-24 16:48:58 +08:00
yuxianghui
a82a54c464 1、功能刀具清单做编辑控制;2、刀具拆解——报废优化;3、功能刀具出入库添加刀具跳转; 2024-06-24 15:40:51 +08:00
马广威
d4253b21fe Accept Merge Request #1088: (feature/工单功能优化 -> develop)
Merge Request: 工件装夹预调工单页面优化需求-1

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1088
2024-06-24 15:05:53 +08:00
mgw
8356e898aa Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/工单功能优化
# Conflicts:
#	sf_manufacturing/views/mrp_workorder_view.xml
2024-06-24 15:04:09 +08:00
mgw
f67d08fc88 工件装夹预调工单页面优化需求-1 2024-06-24 15:00:54 +08:00
jinling.yang
0a40409c6c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-24 14:56:31 +08:00
jinling.yang
927f74213e Merge branch 'feature/优化工单(cnc和cmc)涉及多个加工面' into develop 2024-06-24 14:56:14 +08:00
杨金灵
8b8570a901 Accept Merge Request #1087: (feature/优化工单(cnc和cmc)涉及多个加工面 -> develop)
Merge Request: 优化工单(cnc和cmc)涉及多个加工面

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1087
2024-06-24 14:55:49 +08:00
jinling.yang
ec30a07394 修复创建移动历史记录 2024-06-24 14:54:33 +08:00
jinling.yang
9110c81c73 还原OCC代码 2024-06-24 14:46:47 +08:00
jinling.yang
5f4ecf8ff9 修复生成制造订单 2024-06-24 14:46:02 +08:00
jinling.yang
e453508f17 修改功能刀具清单查询列表:部分字段不可更改 2024-06-24 14:18:42 +08:00
jinling.yang
733b554942 no message 2024-06-24 14:16:53 +08:00
jinling.yang
eff2032762 修改fetchCNC方法· 2024-06-24 14:16:42 +08:00
jinling.yang
16a00bdb10 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化工单(cnc和cmc)涉及多个加工面 2024-06-24 10:53:53 +08:00
jinling.yang
de6014d1dd 修复工件上下产线接口:当RFID不为空时,更改制造订单上下产线状态 2024-06-21 17:39:15 +08:00
jinling.yang
66b66a935f 优化工单页面和下发编程单接口 2024-06-21 17:15:05 +08:00
jinling.yang
612906e01d 修改根据多面生成工单逻辑 2024-06-21 16:00:04 +08:00
禹翔辉
21f94e5523 Accept Merge Request #1086: (feature/单据跳转 -> develop)
Merge Request: 完成 工件装夹预调工单页面优化需求-3

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1086?initial=true
2024-06-20 17:34:24 +08:00
yuxianghui
f8c1d75b63 1、刀具过滤优化 2024-06-20 17:30:23 +08:00
yuxianghui
fcba3b18b7 Merge branch 'feature/工件装夹预调工单页面优化' into feature/单据跳转 2024-06-20 09:46:15 +08:00
禹翔辉
c6a509c6f4 Accept Merge Request #1085: (release/release1.7 -> 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/1085
2024-06-20 09:31:50 +08:00
马广威
ecf265fee7 Accept Merge Request #1084: (release/release1.7 -> master)
Merge Request: 迭代库存、制造逻辑

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1084?initial=true
2024-06-19 20:24:20 +08:00
yuxianghui
60560fe195 1、优化工单解绑Rfid 2024-06-19 17:40:49 +08:00
jinling.yang
67b48814f6 优化制造订单和生成工单逻辑 2024-06-19 17:35:13 +08:00
yuxianghui
21f2a704db 1、对刀仪接口获取的功能刀具半径值乘二后再赋值 2024-06-19 17:03:44 +08:00
yuxianghui
1f32aafc9b 1、完成 工件装夹预调工单页面优化需求-3 2024-06-19 16:38:30 +08:00
jinling.yang
b390712308 优化编程单下发接口 2024-06-19 15:39:28 +08:00
jinling.yang
c035ab8156 注释OCC代码 2024-06-19 15:32:03 +08:00
yuxianghui
c0b673bfd0 添加注释 2024-06-19 11:23:25 +08:00
yuxianghui
6dae144d76 1、功能刀具拆解单优化;2、完成 需求坯料序列号生成规则优化2; 2024-06-19 11:19:47 +08:00
jinling.yang
25dddb5b3b 优化制造订单:生成制造订单的同时不生成工单 2024-06-18 17:35:41 +08:00
yuxianghui
4497fb04c1 1、优化 托盘绑定工单逻辑优化 ;2 完成 整体式刀具批次/序列号生成的优化需求; 3、完成 坯料序列号生成规则优化需求1。 2024-06-18 17:19:41 +08:00
杨金灵
bc4dc82beb Accept Merge Request #1083: (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/1083?initial=true
2024-06-18 17:19:16 +08:00
jinling.yang
47305a2e61 添加'是否重新下发NC程序'字段 2024-06-18 17:17:09 +08:00
jinling.yang
9e58835082 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-18 11:41:24 +08:00
jinling.yang
63fa0e0c37 Merge branch 'feature/优化装夹预调工单' into develop 2024-06-18 11:41:12 +08:00
杨金灵
c6c9974326 Accept Merge Request #1082: (feature/优化装夹预调工单 -> develop)
Merge Request: 优化装夹预调工单

Created By: @杨金灵
Reviewed By: @马广威
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1082?initial=true
2024-06-18 11:40:49 +08:00
jinling.yang
d63c3b76bf Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化装夹预调工单 2024-06-18 11:36:01 +08:00
jinling.yang
3793d0a174 优化装夹预调工单 2024-06-18 11:35:50 +08:00
马广威
903fdee420 Accept Merge Request #1081: (release/release1.6 -> master)
Merge Request: 功能升级

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1081?initial=true
2024-06-17 21:34:41 +08:00
禹翔辉
ee17889fe8 Accept Merge Request #1080: (feature/预调仪接口 -> develop)
Merge Request: 1、添加日志

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1080?initial=true
2024-06-17 17:27:27 +08:00
yuxianghui
5bec3d6061 1 2024-06-17 17:24:23 +08:00
杨金灵
0fc5b12894 Accept Merge Request #1079: (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/1079?initial=true
2024-06-17 16:39:55 +08:00
jinling.yang
3258b6cc75 修复快速订单 2024-06-17 16:38:14 +08:00
jinling.yang
017404fe45 Merge branch 'feature/优化工单结束接口' into develop 2024-06-17 16:17:54 +08:00
杨金灵
cde6c76f83 Accept Merge Request #1078: (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/1078?initial=true
2024-06-17 16:16:39 +08:00
jinling.yang
7dea8c7c1e 去掉返工和报废的代码 2024-06-17 16:16:22 +08:00
jinling.yang
8ade3b43c4 中控新增是否完成字段,该接口根据该字段对cnc加工工单进行完成操作 2024-06-17 16:06:49 +08:00
禹翔辉
c2b7abaae1 Accept Merge Request #1077: (hotfix/功能刀具出入库处理 -> 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/1077
2024-06-17 14:40:14 +08:00
禹翔辉
c1f33c5e14 Merge branch refs/heads/develop into refs/heads/hotfix/功能刀具出入库处理 2024-06-17 14:36:00 +08:00
杨金灵
01f55350e2 Accept Merge Request #1076: (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/1076?initial=true
2024-06-17 11:56:45 +08:00
jinling.yang
9202409a89 去掉返工报废的代码 2024-06-17 11:53:38 +08:00
jinling.yang
2e779c4a68 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-17 11:50:25 +08:00
禹翔辉
5751837ddd Accept Merge Request #1075: (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/1075?initial=true
2024-06-17 11:46:22 +08:00
yuxianghui
e2f86097a0 Merge branch 'feature/模型优化' into feature/刀具同步接口优化 2024-06-17 11:42:25 +08:00
yuxianghui
77ad0dd635 优化动态刀具按批次管理的数据同步接口 2024-06-17 11:40:12 +08:00
jinling.yang
73e03bd815 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-17 11:00:33 +08:00
jinling.yang
51cd156e75 Merge branch 'feature/去掉客户部分字段必填校验和返工报废代码' into develop 2024-06-17 11:00:02 +08:00
杨金灵
b447db1b13 Accept Merge Request #1074: (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/1074?initial=true
2024-06-17 10:50:27 +08:00
jinling.yang
e3911c8f5a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-17 09:52:43 +08:00
jinling.yang
2892cdd99f Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/去掉客户部分字段必填校验和返工报废代码 2024-06-17 09:52:30 +08:00
jinling.yang
2862c5a888 去掉客户部分字段必填校验和返工报废代码 2024-06-17 09:52:18 +08:00
禹翔辉
ad8927fb83 Accept Merge Request #1073: (feature/模型优化 -> develop)
Merge Request: 1、对模型的添加筛选和分组,优化界面

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1073?initial=true
2024-06-17 09:44:52 +08:00
yuxianghui
e1f4e1e701 Merge branch 'feature/刀具接口调整' into feature/模型优化 2024-06-17 09:43:00 +08:00
yuxianghui
1e90b9a18a 1、功能刀具位置计算方法添加触发条件 2024-06-14 17:01:02 +08:00
jinling.yang
24edef023f Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-14 16:53:26 +08:00
马广威
4894576d25 Accept Merge Request #1072: (release/release_1.5 -> 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/1072
2024-06-14 16:21:38 +08:00
yuxianghui
904c63bfcb 1、优化功能刀具安全库存数量计算方法;2、货位看板模型添加功能刀具Rfid、名称字段 2024-06-14 15:38:52 +08:00
yuxianghui
a86ceb951b 1、优化功能刀具安全库存数量计算方法;2、货位看板模型添加功能刀具Rfid、名称字段 2024-06-14 15:00:30 +08:00
jinling.yang
dd9015dff9 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-14 09:31:18 +08:00
yuxianghui
642877ff45 去除整体式刀产品的【粗/中/精】字段的必填 2024-06-13 17:28:44 +08:00
yuxianghui
c1935e62b9 1、重构工单工序的生成规则 2024-06-13 17:24:46 +08:00
yuxianghui
aa0b6a9b21 1、新增功能刀具移动到线边刀库的出入库记录 2024-06-13 16:01:27 +08:00
yuxianghui
9c6ca3758b 1 2024-06-13 14:59:49 +08:00
yuxianghui
42644d449f 1、新增功能刀具移动历史,新增功能刀具入库到线边刀库 2024-06-13 14:45:29 +08:00
马广威
519c534a89 Accept Merge Request #1071: (release/release_1.5 -> master)
Merge Request: 添加刀具物料整个生命周期按批次管理

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1071?initial=true
2024-06-13 10:49:36 +08:00
马广威
741c5cf3d6 Accept Merge Request #1070: (feature/增加批量调拨功能 -> develop)
Merge Request: 修改线边库位名称

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1070?initial=true
2024-06-12 16:54:00 +08:00
yuxianghui
0ad7e72b15 1、解决 刀具组装选择的批次号队友物料只剩下1个时-组装完该单据详情不显示批次信息 的bug;2、调整拆解单界面布局 2024-06-12 16:28:42 +08:00
mgw
fa7e023dd1 修改线边库位名称 2024-06-12 16:19:33 +08:00
yuxianghui
07c7ed6dba 1、优化组装时重复选取货位时,批次号消失的问题 2024-06-12 14:20:15 +08:00
yuxianghui
0f32b0acb1 1、新增功能刀具出入库 2024-06-12 14:08:21 +08:00
yuxianghui
42cded8c64 1、优化功能刀具序列号 2024-06-12 10:24:16 +08:00
yuxianghui
469839f38e 1、处理二维码问题 2024-06-12 10:02:15 +08:00
jinling.yang
6a7fa89b67 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-06-11 17:31:59 +08:00
jinling.yang
c13078291f Merge branch 'feature/工件配送添加sns' into develop 2024-06-11 17:25:23 +08:00
杨金灵
a3580411d6 Accept Merge Request #1069: (feature/工件配送添加sns -> develop)
Merge Request: 工件配送及工单添加sns

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1069
2024-06-11 17:23:45 +08:00
yuxianghui
7d7f0348d2 1、优化产品按批量采购入库时,没有生成二维码问题; 2024-06-11 17:00:25 +08:00
jinling.yang
d7779cdb58 修改生成制造订单时未生成编程单 2024-06-11 16:57:56 +08:00
jinling.yang
adafce85bd 1.工单,工件配送新增sns及给部分字段添加tracking(跟踪)及优化页面
2.优化agv:部分字段不可编辑
2024-06-11 16:56:20 +08:00
yuxianghui
bae947bdca 1、添加采购入库时对需要录入的Rfid进行重复校验; 2024-06-11 15:18:13 +08:00
yuxianghui
14d823ab6e 1、增加是否使用刀具预调仪的配置; 2024-06-11 11:58:58 +08:00
yuxianghui
ae953c7ad6 1、更新功能刀具编码生成规则; 2024-06-11 10:15:54 +08:00
jinling.yang
7be5b53767 工件配送添加sns 2024-06-07 17:29:49 +08:00
yuxianghui
2cc91eea75 1、对模型的添加筛选和分组,优化界面 2024-06-07 17:27:25 +08:00
yuxianghui
2065625cd6 1、组装单添加校验 2024-06-07 09:42:09 +08:00
马广威
8c285c0eb5 Accept Merge Request #1068: (feature/增加批量调拨功能 -> develop)
Merge Request: 库存处增加批量调拨功能

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1068
2024-06-06 15:45:51 +08:00
mgw
22e24c5ed3 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/增加批量调拨功能 2024-06-06 15:44:38 +08:00
mgw
4459ed2e81 库存处增加批量调拨功能 2024-06-06 15:44:20 +08:00
禹翔辉
52bf899a1f Accept Merge Request #1067: (feature/刀具接口调整 -> develop)
Merge Request: 1、产品的成品、制造订单、工单添加零件图号字段;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1067?initial=true
2024-06-06 14:41:30 +08:00
yuxianghui
002727070d 1、产品的成品、制造订单、工单添加零件图号字段; 2024-06-06 14:38:10 +08:00
杨金灵
81327f04de Accept Merge Request #1065: (hotfix/优化多次编程单下发 -> 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/1065
2024-06-06 09:40:06 +08:00
杨金灵
e8c86c6306 Accept Merge Request #1066: (hotfix/刀具预调仪 -> 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/1066
2024-06-06 09:37:10 +08:00
杨金灵
fd6b579e2a Merge branch refs/heads/develop into refs/heads/hotfix/刀具预调仪 2024-06-06 09:30:50 +08:00
杨金灵
0b2b162d85 Merge branch refs/heads/develop into refs/heads/hotfix/优化多次编程单下发 2024-06-06 09:29:39 +08:00
yuxianghui
206fc7bb21 Merge branch 'hotfix/新增刀具按批次管理' into hotfix/新增刀具按批次管理_1.1
# Conflicts:
#	sf_tool_management/controllers/controllers.py
2024-06-06 09:17:32 +08:00
马广威
07b1c3cceb Accept Merge Request #1063: (release/release_1.4 -> master)
Merge Request: 流程优化,功能增加

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1063?initial=true
2024-06-05 21:43:21 +08:00
黄焱
e306d02ff2 Accept Merge Request #1062: (feature/前端样式修改 -> develop)
Merge Request: 设置表单页面label文本不换行

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1062
2024-06-05 17:42:54 +08:00
黄焱
09c56b2c07 设置表单页面label文本不换行 2024-06-05 17:35:07 +08:00
杨金灵
1af160542c Accept Merge Request #1061: (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/1061
2024-06-05 15:53:56 +08:00
jinling.yang
71246af16a 还原注释代码 2024-06-05 15:52:50 +08:00
yuxianghui
b6acbb8357 1、功能刀具拆解单新增拆解单号,优化拆解单 2024-06-05 10:23:13 +08:00
杨金灵
e290760895 Accept Merge Request #1060: (hotfix/修复工件上下产线 -> 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/1060
2024-06-05 10:13:02 +08:00
杨金灵
fdfd01605d Merge branch refs/heads/develop into refs/heads/hotfix/修复工件上下产线 2024-06-05 09:30:30 +08:00
yuxianghui
d47dcc7611 1、取消创建产品时,自动生成内部参考的值;2、优化功能刀具拆解单,修改由拆解单生成的移动历史单据编码生成规则;3、优化货位看板以及货位看板的货位变更功能; 2024-06-04 17:25:45 +08:00
jinling.yang
8bd5841d7a 去掉重写state方法 2024-06-04 15:59:35 +08:00
yuxianghui
3882d3a3cb 1、功能刀具拆解单拆解流程优化;2、优化货位看板显示; 2024-06-04 11:26:00 +08:00
jinling.yang
6fc94042ee 中控调取cnc工单时,工单不完成,加工完成时间为当前时间 2024-06-04 10:42:34 +08:00
yuxianghui
67c4f64d08 1、优化刀具组装单、刀具组装单弹窗、刀具拆解单,添加除刀柄外刀具物料按批次号进行管理;优化界面布局,优化组装流程; 2024-06-03 17:34:47 +08:00
jinling.yang
711e0d1437 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造订单报废流程 2024-06-03 16:09:08 +08:00
杨金灵
49d55822cc Accept Merge Request #1058: (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/1058
2024-06-03 15:53:19 +08:00
jinling.yang
ea6de0c248 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造订单报废流程
# Conflicts:
#	sf_manufacturing/models/mrp_production.py
2024-06-03 15:43:57 +08:00
jinling.yang
2db81ac2cc Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化工件上下产线及配送 2024-06-03 15:36:37 +08:00
jinling.yang
a673630fd3 1.优化工件配送超时提示2.优化工件上下线接口3.优化编程单下发至cnc工单时,将程序单pdf文件也传给装夹预调工单的加工图纸字段上 2024-06-03 15:36:19 +08:00
yuxianghui
a7102c81d4 1、新增货位批次数量模型,用来存储货位产品的批次及其数量;完成该模型根据货位产品的出入库记录自动新增或减少货位产品批次的数量。 2024-06-03 14:14:04 +08:00
yuxianghui
d213a2cf54 接口调整 2024-05-31 11:14:02 +08:00
禹翔辉
6c5b888bba Accept Merge Request #1057: (hotfix/新增中控接口-功能刀具查询 -> 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/1057
2024-05-31 09:52:45 +08:00
yuxianghui
7d6fb4f0e3 1、优化货位 2024-05-30 17:26:28 +08:00
jinling.yang
aa6b476e35 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-05-30 16:53:13 +08:00
jinling.yang
263253e79e Merge branch 'feature/修复报价选择已有产品确认问题' into develop 2024-05-30 16:52:42 +08:00
杨金灵
edda681940 Accept Merge Request #1054: (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/1054?initial=true
2024-05-30 16:52:27 +08:00
jinling.yang
7043d2b8b7 添加日志 2024-05-30 16:52:06 +08:00
马广威
6d66872dee Accept Merge Request #1055: (feature/修复会计凭证借贷无法输入的问题 -> develop)
Merge Request: 修复会计凭证借贷无法输入的问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1055?initial=true
2024-05-30 16:48:56 +08:00
mgw
3ab378f3bd 修复会计凭证借贷无法输入的问题 2024-05-30 16:48:02 +08:00
jinling.yang
26c979ef1d 修复报价选择已有产品确认问题 2024-05-30 16:45:32 +08:00
yuxianghui
1d4aaa40cd 1、优化刀具采购入库,入库时自动生成批次号;2、优化货位看板 2024-05-30 14:46:15 +08:00
jinling.yang
9aa4858774 Merge branch 'feature/空料架名称去重校验' into develop 2024-05-30 11:05:09 +08:00
jinling.yang
d883a7ff22 新增名称校验 2024-05-30 11:01:29 +08:00
yuxianghui
683e9631fa 刀具物料产品优化需求 2024-05-30 09:36:17 +08:00
jinling.yang
17678c53c9 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/空料架名称去重校验 2024-05-29 17:56:55 +08:00
jinling.yang
fb3cc095b2 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-05-29 17:56:36 +08:00
jinling.yang
c437c185a4 空料架名称去重校验 2024-05-29 17:56:22 +08:00
jinling.yang
b3eb3ee8fa Merge branch 'feature/优化配送空料架' into develop 2024-05-29 15:53:59 +08:00
杨金灵
b9ec821293 Accept Merge Request #1052: (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/1052
2024-05-29 15:53:30 +08:00
jinling.yang
f8a9fcc0ce 工件配送去掉重复的起点接驳站 2024-05-29 15:26:47 +08:00
jinling.yang
d12714dd65 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化配送空料架 2024-05-29 15:23:32 +08:00
jinling.yang
a1bea537bb Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-05-29 15:23:12 +08:00
jinling.yang
5350675355 释放occ注释代码 2024-05-29 15:22:57 +08:00
jinling.yang
65d2593db9 配送空料架开放新建 2024-05-29 15:03:08 +08:00
禹翔辉
a529c5513e Accept Merge Request #1051: (hotfix/制造订单的工单顺序错误bug -> develop)
Merge Request: 修复 【制造订单的工单顺序错误,需排查处理bug】 问题

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1051
2024-05-29 14:37:58 +08:00
禹翔辉
f5f881f256 Merge branch refs/heads/develop into refs/heads/hotfix/制造订单的工单顺序错误bug 2024-05-29 14:22:15 +08:00
jinling.yang
d2babec1aa Merge tag '修复编程单下发接口' into develop 2024-05-29 12:50:05 +08:00
jinling.yang
a1d8b88db2 修复工单排序 2024-05-29 10:25:23 +08:00
jinling.yang
7ab954ebbc Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化制造订单报废流程 2024-05-29 09:30:41 +08:00
jinling.yang
f7723f1b9c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-05-29 09:30:20 +08:00
jinling.yang
fe88a416a7 制造订单合并一张编程单下发时,工件配送记录的未下发nc程序为未下发及cnc程序没有对应ftp文件路径问题 2024-05-28 17:57:27 +08:00
禹翔辉
ef80848e9b Accept Merge Request #1048: (feature/优化工单工序 -> develop)
Merge Request: 1、优化生成工单工序的方法

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1048?initial=true
2024-05-28 16:39:52 +08:00
yuxianghui
138dd40a9e Merge branch 'feature/组装单弹窗优化' into feature/优化工单工序 2024-05-28 16:37:51 +08:00
yuxianghui
dc210f7263 1 2024-05-28 16:36:49 +08:00
yuxianghui
9055e7ed8b 1、优化生成工单工序的方法 2024-05-28 16:35:06 +08:00
黄焱
6890ddf615 Accept Merge Request #1047: (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/1047
2024-05-27 17:53:23 +08:00
黄焱
6dc29fb50a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/前端样式修改 2024-05-27 17:48:06 +08:00
jinling.yang
412bf4b9be 优化返工和报废 2024-05-24 17:00:44 +08:00
黄焱
c7df18ace6 设置表格横向滚动 2024-05-24 14:35:22 +08:00
马广威
053eba5887 Accept Merge Request #1046: (feature/组装单弹窗优化 -> develop)
Merge Request: 1、优化功能刀具定时同步接口,增加刀柄长度数据同步

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1046#mr-1046-review-152801
2024-05-23 16:25:16 +08:00
yuxianghui
e935b2fa11 1、优化功能刀具定时同步接口,增加刀柄长度数据同步 2024-05-23 16:18:48 +08:00
禹翔辉
d5bc610214 Accept Merge Request #1045: (feature/组装单弹窗优化 -> develop)
Merge Request: 1、将刀具名称字段获取由onchange改为depends

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1045
2024-05-23 15:46:34 +08:00
yuxianghui
2ca67eb8ad 1、将刀具名称字段获取由onchange改为depends 2024-05-23 15:43:32 +08:00
禹翔辉
b6a69debd8 Accept Merge Request #1044: (feature/组装单弹窗优化 -> develop)
Merge Request: 1、打开组装弹窗方法添加清除旧数据功能;2、组装弹窗界面,刷新按键名称改为获取测量值,添加是否获取测量值字段等,调整字段只读和界面布局;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1044?initial=true
2024-05-23 15:24:38 +08:00
yuxianghui
147ac35239 Merge branch 'feature/组装单优化' into feature/组装单弹窗优化 2024-05-23 15:22:35 +08:00
yuxianghui
3c3f375120 1、打开组装弹窗方法添加清除旧数据功能;2、组装弹窗界面,刷新按键名称改为获取测量值,添加是否获取测量值字段等,调整字段只读和界面布局; 2024-05-23 15:19:41 +08:00
jinling.yang
c87f310bb3 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-05-23 14:34:39 +08:00
禹翔辉
f53eecbb57 Accept Merge Request #1043: (feature/组装单优化 -> develop)
Merge Request: 1、组装单弹窗界面调整,优化按刷新后最大寿命值归0的问题;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1043?initial=true
2024-05-23 14:33:51 +08:00
jinling.yang
1743fa45b5 Merge branch 'feature/优化返工和重新制造订单' into develop 2024-05-23 14:33:09 +08:00
yuxianghui
75f30922e6 1、组装单弹窗界面调整,优化按刷新后最大寿命值归0的问题; 2024-05-23 14:32:13 +08:00
jinling.yang
3a0db05c33 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化返工和重新制造订单 2024-05-23 11:46:26 +08:00
jinling.yang
5f42b5d056 优化制造订单报废流程,返工流程暂停(需求需重新设计) 2024-05-23 11:46:09 +08:00
禹翔辉
c698b50853 Accept Merge Request #1041: (feature/组装单优化 -> develop)
Merge Request: 1、优化刀具预调仪接口的数据处理方式、更改搜索组装单条件;2、优化功能刀具、组装单、组装单弹窗的字段和界面展示的字段内容;3、更改组装单编码生成规则

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1041?initial=true
2024-05-23 11:18:40 +08:00
yuxianghui
251786f6be Merge branch 'feature/刀具预调仪接口优化' into feature/组装单优化 2024-05-23 11:16:13 +08:00
yuxianghui
66b4df5193 1、优化刀具预调仪接口的数据处理方式、更改搜索组装单条件;2、优化功能刀具、组装单、组装单弹窗的字段和界面展示的字段内容;3、更改组装单编码生成规则 2024-05-23 11:15:13 +08:00
jinling.yang
57b264b84d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化返工和重新制造订单 2024-05-22 17:36:17 +08:00
jinling.yang
ff12a86406 优化cnc工单返工:在原有的cnc工单后新增返工标志的cnc工单,且工序累加,状态为就绪,解除装夹工单的状态为等待其他工单 2024-05-22 17:35:57 +08:00
禹翔辉
b0b3ce7d99 Accept Merge Request #1040: (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/1040?initial=true
2024-05-22 15:09:22 +08:00
yuxianghui
8d02a94f78 Merge branch 'feature/物料同步接口优化' into feature/刀具预调仪接口优化 2024-05-22 15:05:55 +08:00
yuxianghui
4f6e4a8ed3 1、优化刀具预调仪接口及其写入到弹窗的流程,更改刀具总长度(高度)、直径和R角字段的精确度为小数点后三位; 2024-05-22 15:04:37 +08:00
黄焱
b524e385a1 Accept Merge Request #1039: (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/1039
2024-05-22 09:39:24 +08:00
yuxianghui
d22f08d187 1、添加刀具预调仪接口;2、刀具组装单添加开始预调字段,优化组装按键;3、优化组装单组装时的必填校验,添加刷新按钮用来获取刀具预调仪的参数信息; 2024-05-21 21:41:17 +08:00
黄焱
2ba53bbb02 // 功能刀具组装单 弹窗样式 2024-05-21 17:38:54 +08:00
禹翔辉
38e0a62130 Accept Merge Request #1038: (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/1038?initial=true
2024-05-21 09:27:33 +08:00
yuxianghui
bf1b14290e Merge branch 'feature/解决刀具组装时搜不到功能刀具产品问题' into feature/物料同步接口优化 2024-05-21 09:25:13 +08:00
yuxianghui
1b6ca90bd4 1、优化刀具、夹具同步接口;关闭刀具同步接口的实时调用; 2024-05-21 09:23:47 +08:00
346 changed files with 34169 additions and 86770 deletions

View File

@@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
from . import controllers
from . import models

View File

@@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
{
'name': "jikimo_account_process",
'summary': """
Short (1 phrase/line) summary of the module's purpose, used as
subtitle on modules listing or apps.openerp.com""",
'description': """
Long description of module's purpose
""",
'author': "My Company",
'website': "https://www.yourcompany.com",
# Categories can be used to filter modules in modules listing
# Check https://github.com/odoo/odoo/blob/16.0/odoo/addons/base/data/ir_module_category_data.xml
# for the full list
'category': 'Uncategorized',
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['base', 'account'],
# always loaded
'data': [
# 'security/ir.model.access.csv',
# 'views/views.xml',
# 'views/templates.xml',
],
# only loaded in demonstration mode
'demo': [
# 'demo/demo.xml',
],
}

View File

@@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import controllers

View File

@@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# from odoo import http
# class JikimoAccountProcess(http.Controller):
# @http.route('/jikimo_account_process/jikimo_account_process', auth='public')
# def index(self, **kw):
# return "Hello, world"
# @http.route('/jikimo_account_process/jikimo_account_process/objects', auth='public')
# def list(self, **kw):
# return http.request.render('jikimo_account_process.listing', {
# 'root': '/jikimo_account_process/jikimo_account_process',
# 'objects': http.request.env['jikimo_account_process.jikimo_account_process'].search([]),
# })
# @http.route('/jikimo_account_process/jikimo_account_process/objects/<model("jikimo_account_process.jikimo_account_process"):obj>', auth='public')
# def object(self, obj, **kw):
# return http.request.render('jikimo_account_process.object', {
# 'object': obj
# })

View File

@@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
from . import models
from . import account_move

View File

@@ -0,0 +1,15 @@
from odoo import models, fields, api
from odoo.exceptions import ValidationError
class CustomAccountMoveLine(models.Model):
_inherit = 'account.move'
_description = "account move line"
@api.model_create_multi
def create(self, vals):
for val in vals:
val['name'] = self.env['ir.sequence'].next_by_code('account.move') or '/'
# 因为供应商与客户支付创建流程是先创建move line在修改来填充account_payment与move line的关联
return super(CustomAccountMoveLine, self).create(vals)

View File

@@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-
# from odoo import models, fields, api
# class jikimo_account_process(models.Model):
# _name = 'jikimo_account_process.jikimo_account_process'
# _description = 'jikimo_account_process.jikimo_account_process'
# name = fields.Char()
# value = fields.Integer()
# value2 = fields.Float(compute="_value_pc", store=True)
# description = fields.Text()
#
# @api.depends('value')
# def _value_pc(self):
# for record in self:
# record.value2 = float(record.value) / 100

View File

@@ -5,7 +5,7 @@ import {patch} from '@web/core/utils/patch';
import {_t} from "@web/core/l10n/translation";
import {FormStatusIndicator} from "@web/views/form/form_status_indicator/form_status_indicator";
import {ListRenderer} from "@web/views/list/list_renderer";
import {StatusBarField} from "@web/views/fields/statusbar/statusbar_field";
// import {StatusBarField} from "@web/views/fields/statusbar/statusbar_field";
import {Field} from "@web/views/fields/field";
@@ -53,6 +53,23 @@ const tableRequiredList = [
]
patch(FormStatusIndicator.prototype, 'jikimo_frontend.FormStatusIndicator', {
setup() {
owl.onMounted(() => {
try {
const dom = this.__owl__.bdom.el
const buttonsDom = $(dom).find('.o_form_status_indicator_buttons ')
if (buttonsDom) {
const dom1 = buttonsDom.children('.o_form_button_save')
const dom2 = buttonsDom.children('.o_form_button_cancel')
dom1.append('保存')
dom2.append('取消')
}
} catch (e) {
console.log(e)
}
});
},
// 你可以重写或者添加一些方法和属性
async _onDiscardChanges() {
// var self = this;
@@ -153,47 +170,36 @@ patch(ListRenderer.prototype, 'jikimo_frontend.ListRenderer', {
// 根据进度条设置水印
const statusbar_params = {
'已完工': 'bg-primary',
'完成': 'bg-primary',
'采购订单': 'bg-primary',
'作废': 'bg-danger',
'封存(报废)': 'bg-danger',
}
patch(StatusBarField.prototype, 'jikimo_frontend.StatusBarField', {
setup() {
owl.onMounted(this.ribbons);
return this._super(...arguments);
},
ribbons() {
try {
const dom = $('.o_form_sheet.position-relative')
const status = statusbar_params[this.currentName]
if(status && dom.length) {
dom.prepend(`<div class="o_widget o_widget_web_ribbon">
<div class="ribbon ribbon-top-right">
<span class="bg-opacity-75 ${status}" title="">${this.currentName}</span>
</div>
</div>`)
}
} catch (e) {
console.log(e)
}
}
})
// const statusbar_params = {
// '已完工': 'bg-primary',
// '完成': 'bg-primary',
// '采购订单': 'bg-primary',
// '作废': 'bg-danger',
// '封存(报废)': 'bg-danger',
// }
// patch(StatusBarField.prototype, 'jikimo_frontend.StatusBarField', {
// setup() {
// owl.onMounted(this.ribbons);
// return this._super(...arguments);
// },
// ribbons() {
// try {
// const dom = $('.o_form_sheet.position-relative')
// const status = statusbar_params[this.currentName]
// if(status && dom.length) {
// dom.prepend(`<div class="o_widget o_widget_web_ribbon">
// <div class="ribbon ribbon-top-right">
// <span class="bg-opacity-75 ${status}" title="">${this.currentName}</span>
// </div>
// </div>`)
// }
// } catch (e) {
// console.log(e)
// }
// }
// })
$(function () {
document.addEventListener('click', function () {
const dom = $('.o_form_status_indicator_buttons ')
if (dom) {
const dom1 = dom.children().eq(0)
const dom2 = dom.children().eq(1)
if (!dom1.text()) {
dom1.append('保存')
dom2.append('取消')
}
}
})
function customRequired() {
let timer = null

View File

@@ -503,4 +503,32 @@ div:has(.o_required_modifier) > label::before {
color: #fff;
background-color: #4A4F59;
border-color: #4A4F59;
}
}
// 功能刀具组装单 弹窗样式
.o_horizontal_separator.mt-4.mb-3.text-uppercase.fw-bolder.small ~ div.col-lg-6 .o_inner_group.col-lg-6 {
width: 100%;
}
.o_horizontal_separator.mt-4.mb-3.text-uppercase.fw-bolder.small ~ div .o_inner_group .o_wrap_field.d-flex.d-sm-contents.flex-column{
display: flex!important;
flex-direction: row!important;
input {
border-bottom: 1px solid;
}
}
// 设置表格横向滚动
.o_list_renderer.o_renderer {
max-width: 100%;
overflow-x: auto;
}
// 设置表单页面label文本不换行
.o_form_view .o_group .o_wrap_label .o_form_label {
white-space: nowrap;
}
// 修复表格内容覆盖表头bug
.o_list_renderer .o_list_table tbody th {
position: unset;
}

View File

@@ -301,53 +301,27 @@ def unlink(self):
# This is used to restrict the access right to unlink a record
current_model_id = self.env['ir.model'].sudo().search(
[('model', '=', self._name)]).id
# access_right_rec = self.env['access.right'].sudo().search_read(
# [('model_id', '=', current_model_id)], ['model_id', 'is_delete',
# 'groups_id'])
# if access_right_rec and not self.env.is_admin():
# for rec in access_right_rec:
# group_name = self.env['ir.model.data'].sudo().search([
# ('model', '=', 'res.groups'),
# ('res_id', '=', rec['groups_id'][0])
# ]).name
# module_name = self.env['ir.model.data'].sudo().search([
# ('model', '=', 'res.groups'),
# ('res_id', '=', rec['groups_id'][0])
# ]).module
# group = module_name + "." + group_name
# if self.env.user.has_group(group):
# if rec['is_delete']:
# raise UserError(_('You are restricted from performing this'
# ' operation. Please contact the'
# ' administrator.'))
# 检查 'access.right' 模型是否存在于环境中
if 'access.right' in self.env:
# current_model_id = self.env['ir.model'].sudo().search([('model', '=', self._name)]).id
access_right_rec = self.env['access.right'].sudo().search_read(
[('model_id', '=', current_model_id)], ['model_id', 'is_delete', 'groups_id']
)
if access_right_rec and not self.env.is_admin():
for rec in access_right_rec:
group_data = self.env['ir.model.data'].sudo().search_read(
[('model', '=', 'res.groups'), ('res_id', '=', rec['groups_id'][0])],
['name', 'module']
)
if group_data:
group_name = group_data[0]['name']
module_name = group_data[0]['module']
group_xml_id = f"{module_name}.{group_name}"
if self.env.user.has_group(group_xml_id) and rec['is_delete']:
raise UserError(
_('You are restricted from performing this operation. Please contact the administrator.'))
else:
# 如果 'access.right' 模型不存在,可以在这里定义备选逻辑
pass
access_right_rec = self.env['access.right'].sudo().search_read(
[('model_id', '=', current_model_id)], ['model_id', 'is_delete',
'groups_id'])
if access_right_rec and not self.env.is_admin():
for rec in access_right_rec:
group_name = self.env['ir.model.data'].sudo().search([
('model', '=', 'res.groups'),
('res_id', '=', rec['groups_id'][0])
]).name
module_name = self.env['ir.model.data'].sudo().search([
('model', '=', 'res.groups'),
('res_id', '=', rec['groups_id'][0])
]).module
group = module_name + "." + group_name
if self.env.user.has_group(group):
if rec['is_delete']:
raise UserError(_('You are restricted from performing this'
' operation. Please contact the'
' administrator.'))
return True
BaseModel._create = _create
BaseModel.unlink = unlink
# BaseModel.unlink = unlink

View File

@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
from . import controllers
from . import models
from . import wizard

View File

@@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
{
'name': "jikimo_system_order",
'summary': """
系统工单""",
'description': """
用于处理针对系统的工作任务;
员工可以通过系统工单发起申请,由维护人员处理以后,填写处理结果。
""",
'author': "机企猫",
'website': "http://www.jikimo.com",
# Categories can be used to filter modules in modules listing
# Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_data.xml
# for the full list
'category': 'Uncategorized',
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['base','mail'],
# always loaded
'data': [
'security/account_security.xml',
'security/ir.model.access.csv',
'wizard/order_wizard.xml',
'views/notice_user_config.xml',
'views/yizuo_system_order_view.xml',
'views/work_order_number.xml',
'views/res_config_settings_views.xml',
],
# only loaded in demonstration mode
'demo': [
'demo/demo.xml',
],
}

View File

@@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import controllers

View File

@@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from odoo import http
# class TopSystemOrder(http.Controller):
# @http.route('/jikimo_system_order/jikimo_system_order/', auth='public')
# def index(self, **kw):
# return "Hello, world"
# @http.route('/jikimo_system_order/jikimo_system_order/objects/', auth='public')
# def list(self, **kw):
# return http.request.render('jikimo_system_order.listing', {
# 'root': '/jikimo_system_order/jikimo_system_order',
# 'objects': http.request.env['jikimo_system_order.jikimo_system_order'].search([]),
# })
# @http.route('/jikimo_system_order/jikimo_system_order/objects/<model("jikimo_system_order.jikimo_system_order"):obj>/', auth='public')
# def object(self, obj, **kw):
# return http.request.render('jikimo_system_order.object', {
# 'object': obj
# })

View File

@@ -0,0 +1,30 @@
<odoo>
<data>
<!-- -->
<!-- <record id="object0" model="jikimo_system_order.jikimo_system_order"> -->
<!-- <field name="name">Object 0</field> -->
<!-- <field name="value">0</field> -->
<!-- </record> -->
<!-- -->
<!-- <record id="object1" model="jikimo_system_order.jikimo_system_order"> -->
<!-- <field name="name">Object 1</field> -->
<!-- <field name="value">10</field> -->
<!-- </record> -->
<!-- -->
<!-- <record id="object2" model="jikimo_system_order.jikimo_system_order"> -->
<!-- <field name="name">Object 2</field> -->
<!-- <field name="value">20</field> -->
<!-- </record> -->
<!-- -->
<!-- <record id="object3" model="jikimo_system_order.jikimo_system_order"> -->
<!-- <field name="name">Object 3</field> -->
<!-- <field name="value">30</field> -->
<!-- </record> -->
<!-- -->
<!-- <record id="object4" model="jikimo_system_order.jikimo_system_order"> -->
<!-- <field name="name">Object 4</field> -->
<!-- <field name="value">40</field> -->
<!-- </record> -->
<!-- -->
</data>
</odoo>

View File

@@ -0,0 +1,7 @@
# -*- coding: utf-8 -*-
from . import constant
from . import order_classify
from . import system_work_order
from . import work_order_template
from . import res_config_setting

View File

@@ -0,0 +1,7 @@
# -*- coding: utf-8 -*-
# 工单状态
STATE_SELECTION = [('draft', u'草稿'), ('unconfirmed', u'待确认'), ('pending', u'待处理'),
('processed', u'已处理待评分'), ('completed', u'已完成'), ('closed', u'已关闭')]
GRADE = [('1', '1非常不满意'), ('2', '2不满意'), ('3', '3一般'), ('4', '4满意'), ('5', '5非常满意')]

View File

@@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
from odoo import models, fields, api
from odoo.exceptions import ValidationError
class OrderClassify(models.Model):
_name = 'order.classify'
_order = 'sequence, name'
@api.constrains('name')
def check_base_name(self):
"""类型名称唯一"""
name_obj = self.env['order.classify'].search([('name', '=', self.name)])
if len(name_obj) >= 2:
raise ValidationError(u'该类型已存在')
# 名称
name = fields.Char(string=u'名称', size=20)
# 排序
sequence = fields.Integer(default=10)
# 是否有效
state = fields.Boolean(default=True, string='是否有效')

View File

@@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
import logging
from odoo import api, fields, models, _
_logger = logging.getLogger(__name__)
class ResModelWeConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
lost_agent_id = fields.Char('企微通知应用ID')
@api.model
def get_values(self):
"""
重载获取参数的方法,参数都存在系统参数中
:return:
"""
values = super(ResModelWeConfigSettings, self).get_values()
config = self.env['ir.config_parameter'].sudo()
lost_agent_id = config.get_param('lost_agent_id', default='')
values.update(
lost_agent_id=lost_agent_id,
)
return values
def set_values(self):
super(ResModelWeConfigSettings, self).set_values()
ir_config = self.env['ir.config_parameter'].sudo()
ir_config.set_param("lost_agent_id", self.lost_agent_id or "")

View File

@@ -0,0 +1,183 @@
# -*- coding: utf-8 -*-
from odoo import models, fields, api
from odoo.exceptions import ValidationError
from odoo import exceptions
from .constant import STATE_SELECTION, GRADE
import datetime
import logging
class SystemWorkOrder(models.Model):
_name = 'system.work.order'
_inherit = ['mail.thread', 'mail.activity.mixin']
_order = 'date desc'
_description = u'系统工单'
_rec_name = 'order_number'
def get_is_technicist(self):
self._cr.execute(
"select u.id from res_users u left join res_groups_users_rel r on r.uid = u.id where r.gid in (select g.id from res_groups g where g.name = '技术员权限') and u.id ='%s'",
(self.env.user.id,))
hr = self._cr.dictfetchall()
if len(hr) > 0:
return True
else:
return False
# def get_user_department_id(self):
# """根据用户id系统员工id"""
# employee = self.env['hr.employee'].sudo().search([('user_id', '=', self.env.uid)], limit=1)
# if employee:
# if len(employee) > 0:
# if not employee.department_id:
# raise exceptions.Warning(u'您当前使用的用户没有所属部门')
# return employee.department_id
# else:
# return False
# else:
# raise exceptions.Warning(u'您当前使用的用户没有关联员工')
@api.onchange('order_template_id')
def get_title(self):
"""选择模板自动填充"""
if self.order_template_id:
self.title = self.order_template_id.title_template
self.text = self.order_template_id.text_template
# 工单编号
order_number = fields.Char(string=u'工单编号', default='/')
# 紧急程度
urgency_degree = fields.Selection([('0', u'0星'), ('1', u'一星'), ('2', u'二星'), ('3', u'三星'), ('4', u'四星'),
('5', u'五星')], string=u'紧急程度', help='五星为最紧急!', default='5')
# 工单分类(可以配置,并调整优先级)
order_type = fields.Many2one('order.classify', string=u'工单分类', domain=[('state', '=', True)])
# 发起人所属公司(res.company)
initiator_company_id = fields.Many2one('res.company', string=u'发起人所属公司', default=lambda self: self.env.user.company_id)
# 发起人部门(hr.department)
# initiator_department_id = fields.Many2one('hr.department', string=u'发起人部门', default=get_user_department_id)
# 发起人(hr.employee)
initiator_id = fields.Many2one('res.users', string=u'发起人', default=lambda self: self.env.user)
# 发起时间
date = fields.Datetime(string=u'发起时间', default=lambda self: fields.datetime.now())
# 确认人
confirm_id = fields.Many2one('res.users', string=u'确认人')
# 确认日期
confirmation_date = fields.Datetime(string=u'确认时间')
# 模板
order_template_id = fields.Many2one('work.order.template', string=u'模板', domain=[('state', '=', True)])
# 标题
title = fields.Char(string=u'标题')
# 正文
text = fields.Html(string=u'正文')
# 状态[草稿\待确认\待处理\已处理\已关闭]
state = fields.Selection(STATE_SELECTION, default='draft', string=u'状态')
# 关闭原因
close_cause = fields.Text(string=u'关闭问题原因')
# 关闭时间
close_time = fields.Datetime(string=u'关闭问题时间')
# 关闭人
close_user_id = fields.Many2one('res.users', string=u'关闭人')
# 解决人
solve_people_id = fields.Many2one('res.users', string=u'解决人')
# 用户实际问题
users_problem = fields.Text(string=u'用户实际问题')
# 最终解决方案
solution = fields.Text(string=u'最终解决方案')
# 判断是否为技术人员
# is_technicist = fields.Boolean(string=u'是否为技术人员', default=get_is_technicist)
# 打分
grade = fields.Selection(GRADE, string=u'评分')
# 评价按钮的显示
is_display = fields.Boolean('控制显示评价按钮', compute='compute_is_display')
def compute_is_display(self):
for item in self:
if item.state == 'processed' and self.env.user.id == item.initiator_id.id:
item.is_display = True
else:
item.is_display = False
@api.onchange('order_type')
def _onchange_order_type(self):
self.order_template_id = None
self.title = None
self.text = None
@api.model
def create(self, vals):
# 创建编号
if vals.get('order_number', '/') == '/':
vals['order_number'] = self.env['ir.sequence'].get('system.work.order') or '/'
return super(SystemWorkOrder, self).create(vals)
def do_draft(self, order=None):
"""状态草稿"""
bill = self
if order:
bill = order
if bill.state == 'unconfirmed':
state_remark = u'待确认 --> 草稿'
# bill.message_post(u'操作人:%s操作时间%s状态变更过程%s' % (self.env.user.name,
# (datetime.datetime.now() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S'), state_remark))
bill.state = 'draft'
def do_unconfirmed(self):
"""状态待确认"""
if self.state == 'draft':
state_remark = u'草稿 --> 待确认'
# self.message_post(u'操作人:%s操作时间%s状态变更过程%s' % (
# self.env.user.name,
# (datetime.datetime.now() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S'), state_remark))
self.state = 'unconfirmed'
# 获取通知人
objs = self.env['system.order.notice'].search([])
user_ids = objs.notice_user_ids.filtered(lambda item: item.we_employee_id not in ['', False])
we_employee_ids = user_ids.mapped('we_employee_id')
lost_agent_id = self.env['ir.config_parameter'].sudo().get_param('lost_agent_id')
wechat = self.env['we.config'].sudo().get_wechat(agent_id=lost_agent_id)
# agent_id, user_ids, content
content = """您有一张工单<font color=\"warning\">待处理</font>:**工单标题:{2}**
>创建人:{1}
>提交时间:{3}
>紧急程度:{0}
请查看工单消息,并及时处理!
""".format(self.urgency_degree,
self.initiator_id.name, self.title, (self.date + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M'))
for we_employee_id in we_employee_ids:
try:
wechat.message.send_markdown(agent_id=lost_agent_id, user_ids=we_employee_id, content=content)
except Exception as e:
logging.error('工单处理发送消息异常%s' % str(e))
return True
def do_pending(self):
"""状态待处理"""
if self.state == 'unconfirmed':
state_remark = u'待确认 --> 待处理'
# self.message_post(u'操作人:%s操作时间%s状态变更过程%s' % (
# self.env.user.name,
# (datetime.datetime.now() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S'), state_remark))
self.state = 'pending'
self.confirm_id = self.env.user
self.confirmation_date = fields.datetime.now()
return True
def urned_off(self):
"""状态关闭"""
if self.close_cause:
self.state = 'closed'
self.close_time = fields.datetime.now()
else:
raise ValidationError(u'请注明关闭原因')
return True
def unlink(self):
for item in self:
if item.state != "draft":
raise ValidationError(u'只能删除状态为【草稿】的工单。')
elif item.env.uid != item.initiator_id.id:
raise ValidationError(u'非本人不能删除')
else:
super(SystemWorkOrder, item).unlink()

View File

@@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class WorkOrderTemplate(models.Model):
_name = 'work.order.template'
_order = 'num'
# 编号
num = fields.Char(string=u'编号', default='/')
# 名称
name = fields.Char(string=u'模板名称', required="1")
# 分类
work_order_type = fields.Many2one('order.classify', string=u'系统工单分类', domain=[('state', '=', True)])
# 模板标题
title_template = fields.Char(string=u'模板标题')
# 模板正文
text_template = fields.Html(string=u'模板正文')
# 模板说明
template_explain = fields.Text(string=u'模板说明')
# 是否有效
state = fields.Boolean(default=True, string=u'是否有效')
@api.model
def create(self, vals):
# 创建编号
if vals.get('num', '/') == '/':
vals['num'] = self.env['ir.sequence'].get('work.order.template') or '/'
return super(WorkOrderTemplate, self).create(vals)
class SystemOrderNotice(models.Model):
_name = 'system.order.notice'
_description = '工单处理人设置'
notice_user_ids = fields.Many2many('res.users', string='工单处理人')

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="0"> <!-- noupdate表示当模块升级时是否更新本条数据-->
<!--运维权限组-->
<record id="group_operations_permissions_rwc" model="res.groups">
<field name="name">运维权限</field>
</record>
<record id="system_order_user_rule" model="ir.rule">
<field name="name">用户访问工单信息</field>
<field name="model_id" ref="model_system_work_order"/>
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
<field name="domain_force">[('initiator_id', '=', user.id)]</field>
</record>
<record id="system_order_group_operations_rule" model="ir.rule">
<field name="name">运维访问工单信息</field>
<field name="model_id" ref="model_system_work_order"/>
<field name="groups" eval="[(4, ref('jikimo_system_order.group_operations_permissions_rwc'))]"/>
<field name="domain_force">[(1, '=', 1)]</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,16 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
inside_system_order_classify_r,jikimo_system_order.order_classify,model_order_classify,,1,1,1,1
inside_system_work_order_rc,jikimo_system_order.system_work_order,model_system_work_order,,1,1,1,1
inside_work_order_template_r,jikimo_system_order.work_order_template,model_work_order_template,,1,1,1,1
inside_system_order_classify_rwc,jikimo_system_order.order_classify,model_order_classify,group_operations_permissions_rwc,1,1,1,0
inside_system_work_order_rwc,jikimo_system_order.system_work_order,model_system_work_order,group_operations_permissions_rwc,1,1,1,0
inside_work_order_template_rwc,jikimo_system_order.work_order_template,model_work_order_template,group_operations_permissions_rwc,1,1,1,0
order_close_wizard_group_user,jikimo_system_order.order_close_wizard,model_order_close_wizard,base.group_user,1,1,1,1
order_other_wizard_group_user,jikimo_system_order.order_other_wizard,model_order_other_wizard,base.group_user,1,1,1,1
order_technician_wizard_group_user,jikimo_system_order.order_technician_wizard,model_order_technician_wizard,base.group_user,1,1,1,1
system_work_order_wizard_group_user,jikimo_system_order.system_work_order_wizard,model_system_work_order_wizard,base.group_user,1,1,1,1
system_order_notice_group_user,jikimo_system_order.system_order_notice,model_system_order_notice,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 inside_system_order_classify_r jikimo_system_order.order_classify model_order_classify 1 1 1 1
3 inside_system_work_order_rc jikimo_system_order.system_work_order model_system_work_order 1 1 1 1
4 inside_work_order_template_r jikimo_system_order.work_order_template model_work_order_template 1 1 1 1
5 inside_system_order_classify_rwc jikimo_system_order.order_classify model_order_classify group_operations_permissions_rwc 1 1 1 0
6 inside_system_work_order_rwc jikimo_system_order.system_work_order model_system_work_order group_operations_permissions_rwc 1 1 1 0
7 inside_work_order_template_rwc jikimo_system_order.work_order_template model_work_order_template group_operations_permissions_rwc 1 1 1 0
8 order_close_wizard_group_user jikimo_system_order.order_close_wizard model_order_close_wizard base.group_user 1 1 1 1
9 order_other_wizard_group_user jikimo_system_order.order_other_wizard model_order_other_wizard base.group_user 1 1 1 1
10 order_technician_wizard_group_user jikimo_system_order.order_technician_wizard model_order_technician_wizard base.group_user 1 1 1 1
11 system_work_order_wizard_group_user jikimo_system_order.system_work_order_wizard model_system_work_order_wizard base.group_user 1 1 1 1
12 system_order_notice_group_user jikimo_system_order.system_order_notice model_system_order_notice base.group_user 1 1 1 1

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data>
# ---------- 工单通知处理人设置 ------------
<record model="ir.ui.view" id="tree_system_order_notice_view">
<field name="name">tree.system.order.notice</field>
<field name="model">system.order.notice</field>
<field name="arch" type="xml">
<tree string="工单处理人设置" editable="top">
<field name="notice_user_ids" widget="many2many_tags" required="1" options="{'no_create': True, 'no_edit': True}"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="search_system_order_notice_view">
<field name="name">search.system.order.notice</field>
<field name="model">system.order.notice</field>
<field name="arch" type="xml">
<search string="工单处理人设置">
<field name="notice_user_ids" string="模糊搜索"
filter_domain="[('notice_user_ids', 'ilike', self)]"/>
<separator></separator>
<field name="notice_user_ids" string="处理人"/>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="action_system_order_notice_view">
<field name="name">工单处理人</field>
<field name="res_model">system.order.notice</field>
<field name="view_mode">tree</field>
<field name="domain">[]</field>
<field name="context">{}</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
[工单处理人] 还没有哦!点左上角的[创建]按钮,沙发归你了!
</p>
<p>
</p>
</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="res_config_settings_we_view_form_inherit" model="ir.ui.view">
<field name="name">res.config.settings.we.view.form.inherit.bpm</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[hasclass('app_settings_block')]/div[6]" position="after">
<div>
<h2>企微通知应用ID</h2>
<div class="row mt16 o_settings_container" id="jd_api">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane"/>
<div class="o_setting_right_pane">
<div class="text-muted">
<label for="lost_agent_id"/>
<field name="lost_agent_id"/>
</div>
</div>
</div>
</div>
</div>
</xpath>
</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="True">
<!-- 工单流水号 -->
<record id="seq_work_order" model="ir.sequence">
<field name="name">seq_work_order</field>
<field name="company_id"/>
<field name="code">system.work.order</field>
<field name="prefix">SO%(year)s%(month)s%(day)s</field>
<field name="padding">1</field>
</record>
<!-- 模板编号 -->
<record id="seq_order_template" model="ir.sequence">
<field name="name">seq_order_template</field>
<field name="company_id"/>
<field name="code">work.order.template</field>
<field name="prefix">TL</field>
<field name="padding">1</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,243 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!--工单信息-->
<record model="ir.ui.view" id="work_order_tree">
<field name="name">工单信息</field>
<field name="model">system.work.order</field><!--对应表单名称-->
<field name="arch" type="xml">
<tree>
<field name="state" widget="badge" decoration-primary="state == 'draft'"
decoration-success="state in ('processed', 'completed')"
decoration-danger="state == 'pending'" decoration-warning="state in ('unconfirmed')"/>
<field name="order_number"/>
<field name="title"/>
<field name="initiator_id"/>
<field name="date"/>
</tree>
</field>
</record>
<!--新建系统工单-->
<record model="ir.ui.view" id="ork_order_form">
<field name="name">新建系统工单</field>
<field name="model">system.work.order</field>
<field name="arch" type="xml">
<form>
<header>
<field name="is_display" invisible="1"/>
<button string='提交' class="oe_highlight" states="draft"
type="object" name="do_unconfirmed"
attrs="{'invisible': [('state', '!=', 'draft')]}"/>
<button string='追回编辑' states="unconfirmed"
type="action" name="%(system_work_order_wizard_view_act_window)d"
context="{'explain':'确认要执行此操作吗?','object_name':'system.work.order','function_name':'do_draft','object_id':id}"/>
<button name="do_pending" states="unconfirmed"
string="确认可处理" type="object" class="oe_highlight"
groups="jikimo_system_order.group_operations_permissions_rwc"/>
<button string='处理工单' class="oe_highlight" states="pending"
type="action" name="%(launch_order_technician_wizard)d"
groups="jikimo_system_order.group_operations_permissions_rwc"/>
<button string='评价' class="oe_highlight" attrs="{'invisible': [('is_display', '=', False)]}"
type="action" name="%(launch_order_other_wizard)d" context="{'active_id':id}"/>
<button name="%(launch_order_close_wizard)d" string="关闭该工单"
attrs="{'invisible': ['|',('state', '=', 'draft'),'|',('state','=','completed'),('state','=','closed')]}"
type="action" context="{'active_id':id}"/>
<field name="state" widget="statusbar"/>
</header>
<sheet>
<group>
<!-- <label for="order_number" class="oe_edit_only"/>-->
<group>
<field name="order_number" required="True" readonly="1"/>
<field name="order_type" required="True" attrs="{'readonly': [('state', '!=', 'draft')]}" options="{'no_create': True}"/>
<field name="date" required="True" readonly="True"/>
<field name="order_template_id" attrs="{'readonly': [('state', '!=', 'draft')]}"
domain="[('work_order_type','=',order_type),('state','=',True)]" options="{'no_create': True}"/>
<field name="confirmation_date" readonly="True"/>
<field name="urgency_degree" required="True" attrs="{'readonly': [('state','!=','draft')]}" widget="priority"/>
</group>
<group>
<field name="initiator_company_id" required="True" readonly="True"/>
<!-- <field name="initiator_department_id" required="True" readonly="True"/>-->
<field name="initiator_id" required="True" readonly="True"/>
<field name="confirm_id" readonly="True"/>
<field name="solve_people_id" readonly="True"/>
<field name="close_user_id" readonly="True"/>
</group>
<group>
<field name="title" attrs="{'readonly': [('state', '!=', 'draft')]}" required="True"/>
</group>
</group>
<notebook>
<page string="工单内容">
<field name="text" attrs="{'readonly': [('state','!=','draft')]}" required="True"/>
</page>
<page string="解决方案">
<group>
<field name="users_problem" readonly="True"/>
<field name="solution" readonly="True"/>
</group>
</page>
<page string="其他">
<group>
<field name="close_cause" readonly="True"/>
<field name="close_time" readonly="True"/>
<field name="grade" readonly="True"/>
</group>
</page>
</notebook>
</sheet>
<!-- <div class="oe_chatter">-->
<!-- <field name="message_follower_ids" widget="mail_followers"/>-->
<!-- <field name="message_ids" widget="mail_thread"/>-->
<!-- </div>-->
</form>
</field>
</record>
<!-- 搜索工单 -->
<record model="ir.ui.view" id="restaurant_search">
<field name="name">搜索工单</field>
<field name="model">system.work.order</field>
<field name="arch" type="xml">
<search>
<field string='发起人' name="initiator_id" widget="char" required="True"/>
<field string='标题' name="title" widget="char"/>
<field string='正文' name="text" widget="html"/>
<field string='实际问题' name="users_problem" widget="text"/>
<field string='解决方案' name="solution" widget="text"/>
<filter name="today" string="今日工单" domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]"/>
<filter name="yesterday" string="昨日工单"
domain="[('date', '=', (context_today() - relativedelta(days=1)).strftime('%Y-%m-%d'))]"/>
<filter name="month" string="本月工单"
domain="[('date','&gt;=', time.strftime('%Y-%m-01')),('date','&lt;', (context_today() + relativedelta(months=1)).strftime('%Y-%m-01'))]"/>
<filter name="last_month" string="上月工单"
domain="[('date','&lt;', time.strftime('%Y-%m-01')),('date','&gt;=', (context_today() - relativedelta(months=1)).strftime('%Y-%m-01'))]"/>
<filter name="unconfirmed" string="待确认" domain="[('state','=','unconfirmed')]"/>
<filter name="pending" string="待处理" domain="[('state','=','pending')]"/>
<filter name="processed" string="已处理"
domain="['|', ('state','=','processed'), ('state','=','closed')]"/>
<group>
<filter string='发起人' name="initiator_id" context='{"group_by":"initiator_id"}'/>
<filter string='工单分类' name="order_type" context='{"group_by":"order_type"}'/>
<filter string='模板' name="order_template_id" context='{"group_by":"order_template_id"}'/>
<filter string='状态' name="state" context='{"group_by":"state"}'/>
<filter string='紧急情况' name="state" context='{"group_by":"urgency_degree"}'/>
</group>
</search>
</field>
</record>
<record model="ir.ui.view" id="graph_tree">
<field name="name">工单图表</field>
<field name="model">system.work.order</field><!--对应表单名称-->
<field name="arch" type="xml">
<pivot>
<field name="date" type="row" interval="day"/>
<field name="order_type" type="col"/>
<field name="state" type="row"/>
</pivot>
</field>
</record>
<!-- 工单 -->
<record model="ir.actions.act_window" id="system_order">
<field name="name">工单</field>
<field name="res_model">system.work.order</field>
<field name="view_mode">tree,form,search,graph,pivot</field>
</record>
<!--工单模板信息-->
<record model="ir.ui.view" id="order_template_tree">
<field name="name">工单模板信息</field>
<field name="model">work.order.template</field><!--对应表单名称-->
<field name="arch" type="xml">
<tree>
<field name="num"/>
<field name="name"/>
<field name="work_order_type"/>
<field name="title_template"/>
<field name="template_explain"/>
<field name="state"/>
</tree>
</field>
</record>
<!--新建系统工单模板-->
<record model="ir.ui.view" id="order_template_form">
<field name="name">新建系统工单模板</field>
<field name="model">work.order.template</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="num" required="True" readonly="True"/>
<field name="name" required="True"/>
<field name="work_order_type" required="True"/>
<field name="template_explain" required="True" style="height: 50px;"/>
<field name="title_template" required="True"/>
<field name="state"/>
<field name="text_template" required="True"/>
</group>
</sheet>
</form>
</field>
</record>
<!-- 工单模板 -->
<record model="ir.actions.act_window" id="work_template">
<field name="name">工单模板</field>
<field name="res_model">work.order.template</field>
<field name="view_mode">tree,form</field>
</record>
<!--工单分类信息-->
<record model="ir.ui.view" id="order_type_tree">
<field name="name">工单分类信息</field>
<field name="model">order.classify</field><!--对应表单名称-->
<field name="arch" type="xml">
<tree>
<field name="sequence" widget="handle"/>
<field name="name"/>
<field name="state"/>
</tree>
</field>
</record>
<!--新建系统分类信息-->
<record model="ir.ui.view" id="order_type_form">
<field name="name">新建系统分类信息</field>
<field name="model">order.classify</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="name" required="True"/>
<field name="sequence" invisible="True"/>
<field name="state"/>
</group>
</sheet>
</form>
</field>
</record>
<!-- 工单分类 -->
<record model="ir.actions.act_window" id="classify">
<field name="name">工单分类</field>
<field name="res_model">order.classify</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem name="系统工单" id="work_order_1_list" web_icon="jikimo_system_order,static/description/icon.png"/>
<menuitem name="工单" id="work_order" parent="work_order_1_list" action="system_order"/>
<menuitem name="工单模板" id="work_order_template" parent="work_order_1_list" action="work_template" groups="jikimo_system_order.group_operations_permissions_rwc"/>
<menuitem name="工单分类" id="work_order_type" parent="work_order_1_list" action="classify" groups="jikimo_system_order.group_operations_permissions_rwc"/>
<menuitem name="工单设置" id="system_order_notice_user_config" parent="work_order_1_list" action="action_system_order_notice_view" groups="jikimo_system_order.group_operations_permissions_rwc"/>
</data>
</odoo>

View File

@@ -0,0 +1,6 @@
# -*- coding: utf-8 -*-
from . import order_other_wizard
from . import order_technician_wizard
from . import order_close_wizard
from . import system_work_order_wizard

View File

@@ -0,0 +1,79 @@
# -*- coding: utf-8 -*-
from odoo import models, fields, api
from odoo.addons.jikimo_system_order.models.constant import STATE_SELECTION
from odoo.exceptions import ValidationError
import datetime, logging
class OrderCloseWizard(models.TransientModel):
_name = 'order.close.wizard'
def get_context(self):
if self._context.get('active_id'):
obj = self.env['system.work.order'].browse(self._context.get('active_id'))
if obj.initiator_id.id != self.env.user.id:
raise ValidationError(u'非本人无法操作')
return obj
order_id = fields.Many2one('system.work.order', string=u'工单ID',
default=lambda self: self.get_context().id)
# 关闭原因
close_cause = fields.Text(string=u'关闭问题原因', default=lambda self: self.get_context().close_cause)
# 关闭时间
close_time = fields.Datetime(string=u'关闭问题时间', default=fields.datetime.now())
# 状态
state = fields.Selection(STATE_SELECTION, default='closed', string=u'状态')
# 关闭人
close_user_id = fields.Many2one('res.users', string=u'关闭人', default=lambda self: self.env.user)
def sure(self):
self.order_id.close_cause = self.close_cause
self.order_id.close_time = self.close_time
if self.order_id.state == 'unconfirmed':
state_remark = u'待确认 --> 已关闭'
if self.order_id.state == 'pending':
state_remark = u'待处理 --> 已关闭'
if self.order_id.state == 'processed':
state_remark = u'已处理待评分 --> 已关闭'
# self.order_id.message_post(u'操作人:%s操作时间%s状态变更过程%s' % (
# self.env.user.name,
# (datetime.datetime.now() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S'), state_remark))
self.order_id.state = self.state
self.order_id.close_user_id = self.close_user_id
we_employee_ids = []
if self.order_id.initiator_id.we_employee_id:
we_employee_ids.append(self.order_id.initiator_id.we_employee_id)
lost_agent_id = self.env['ir.config_parameter'].sudo().get_param('lost_agent_id')
wechat = self.env['we.config'].sudo().get_wechat(agent_id=lost_agent_id)
# agent_id, user_ids, content
content = """您提交的工单-**工单标题:{0}**-<font color=\"#FF0000\">**已关闭**</font>
>提交时间:{1}
>处理时间:{2}
>处理人:{3}
如有问题,请联系系统管理员!
""".format(self.order_id.title,
(self.order_id.date + datetime.timedelta(hours=8)).strftime(
'%Y-%m-%d %H:%M'), (datetime.datetime.now() + datetime.timedelta(
hours=8)).strftime('%Y-%m-%d %H:%M'), self.env.user.name or '')
# wechat.message.send_markdown(agent_id=lost_agent_id, user_ids=we_employee_ids, content=content)
for we_employee_id in we_employee_ids:
try:
wechat.message.send_markdown(agent_id=lost_agent_id, user_ids=we_employee_id, content=content)
except Exception as e:
logging.error('工单关闭发送消息异常%s' % str(e))
return {}

View File

@@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
from odoo import models, fields, api
from odoo.exceptions import ValidationError
from odoo.addons.jikimo_system_order.models.constant import STATE_SELECTION, GRADE
import datetime
class OrderOtherWizard(models.TransientModel):
_name = 'order.other.wizard'
def get_context(self):
if self._context.get('active_id'):
obj = self.env['system.work.order'].browse(self._context.get('active_id'))
if obj.initiator_id.id != self.env.user.id:
raise ValidationError(u'非本人无法操作')
return obj
order_id = fields.Many2one('system.work.order', string=u'工单ID',
default=lambda self: self.get_context().id)
# 关闭时间
close_time = fields.Datetime(string=u'关闭时间', default=fields.datetime.now())
# 状态
state = fields.Selection(STATE_SELECTION, default='completed', string=u'状态')
# 打分
grade = fields.Selection(GRADE, string=u'评分')
# 关闭人
close_user_id = fields.Many2one('res.users', string=u'关闭人', default=lambda self: self.env.user)
def sure(self):
self.order_id.close_time = self.close_time
self.order_id.grade = self.grade
if self.order_id.state == 'processed':
state_remark = u'已处理待评分 --> 已完成'
# self.order_id.message_post(u'操作人:%s操作时间%s状态变更过程%s' % (
# self.env.user.name,
# (datetime.datetime.now() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S'), state_remark))
self.order_id.state = self.state
self.order_id.close_user_id = self.close_user_id
return {}

View File

@@ -0,0 +1,59 @@
# -*- coding: utf-8 -*-
from odoo import models, fields, api
from odoo.addons.jikimo_system_order.models.constant import STATE_SELECTION
import datetime
import logging
class OrderTechnicianWizard(models.TransientModel):
_name = 'order.technician.wizard'
order_id = fields.Many2one('system.work.order', string=u'工单ID',
default=lambda self: self.env.context.get('active_id'))
# 解决人
solve_people_id = fields.Many2one('res.users', string=u'解决人', default=lambda self: self.env.user)
# 用户实际问题
users_problem = fields.Text(string=u'用户实际问题')
# 最终解决方案
solution = fields.Text(string=u'最终解决方案')
# 状态
state = fields.Selection(STATE_SELECTION, default='processed', string=u'状态')
def sure(self):
self.order_id.solve_people_id = self.solve_people_id
self.order_id.users_problem = self.users_problem
self.order_id.solution = self.solution
if self.order_id.state == 'pending':
state_remark = u'待处理 --> 已处理待评分'
# self.order_id.message_post(u'操作人:%s操作时间%s状态变更过程%s' % (
# self.env.user.name,
# (datetime.datetime.now() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S'), state_remark))
self.order_id.state = self.state
# 获取通知人
# objs = self.env['system.order.notice'].search([])
# user_ids = objs.notice_user_ids.filtered(lambda item: item.we_employee_id not in ['', False])
# we_employee_ids = user_ids.mapped('we_employee_id')
we_employee_ids = []
if self.order_id.initiator_id.we_employee_id:
we_employee_ids.append(self.order_id.initiator_id.we_employee_id)
print(we_employee_ids)
lost_agent_id = self.env['ir.config_parameter'].sudo().get_param('lost_agent_id')
wechat = self.env['we.config'].sudo().get_wechat(agent_id=lost_agent_id)
# agent_id, user_ids, content
content = """您提交的工单-**工单标题:{0}**-<font color=\"info\">**已处理**</font>
>提交时间:{1}
>处理反馈:{4}
>处理时间:{2}
>处理人:{3}
如有问题,请联系系统管理员!
""".format(self.order_id.title,
(self.order_id.date + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M'), (datetime.datetime.now() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M'), self.env.user.name or '', self.solution or '')
# wechat.message.send_markdown(agent_id=lost_agent_id, user_ids=we_employee_ids, content=content)
for we_employee_id in we_employee_ids:
try:
wechat.message.send_markdown(agent_id=lost_agent_id, user_ids=we_employee_id, content=content)
except Exception as e:
logging.error('工单处理发送消息异常%s' % str(e))
return {}

View File

@@ -0,0 +1,122 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- 技术员向导form-->
<record model="ir.ui.view" id="wizard_technician_form_view">
<field name="name">技术员向导</field>
<field name="model">order.technician.wizard</field>
<field name="arch" type="xml">
<form string="技术员编辑">
<group>
<field name="order_id" required="1" readonly="1"/>
<field name="solve_people_id" required="1"/>
<field name="users_problem" required="1" style="height: 50px;"/>
<field name="solution" required="1" style="height: 50px;"/>
</group>
<footer>
<button name="sure" string="确定" type="object" class="oe_highlight"/>
or
<button string="取消" class="oe_link" special="cancel"/>
</footer>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="launch_order_technician_wizard">
<field name="name">技术员编辑</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">order.technician.wizard</field>
<field name="view_mode">form</field>
<field name="view_id" ref="wizard_technician_form_view"/>
<field name="context">{'display_default_code':False}</field>
<field name="target">new</field>
</record>
<!-- 其它向导form-->
<record model="ir.ui.view" id="wizard_other_form_view">
<field name="name">其它向导</field>
<field name="model">order.other.wizard</field>
<field name="arch" type="xml">
<form string="其它编辑">
<group>
<field name="order_id" required="1" readonly="1"/>
<field name="close_time" required="1" readonly="1"/>
<field name="grade" required="1"/>
<field name="close_user_id" required="1" readonly="1"/>
</group>
<footer>
<button name="sure" string="确定" type="object" class="oe_highlight"/>
or
<button string="取消" class="oe_link" special="cancel"/>
</footer>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="launch_order_other_wizard">
<field name="name">其它编辑</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">order.other.wizard</field>
<field name="view_mode">form</field>
<field name="view_id" ref="wizard_other_form_view"/>
<field name="context">{'display_default_code':False}</field>
<field name="target">new</field>
</record>
<!--关闭向导form-->
<record model="ir.ui.view" id="wizard_close_form_view">
<field name="name">关闭向导</field>
<field name="model">order.close.wizard</field>
<field name="arch" type="xml">
<form string="关闭工单">
<group>
<field name="order_id" required="1" readonly="1"/>
<field name="close_cause" required="1" style="height: 50px;"/>
<field name="close_time" required="1" readonly="1"/>
<field name="close_user_id" required="1" readonly="1"/>
</group>
<footer>
<button name="sure" string="确定" type="object" class="oe_highlight"/>
or
<button string="取消" class="oe_link" special="cancel"/>
</footer>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="launch_order_close_wizard">
<field name="name">关闭工单</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">order.close.wizard</field>
<field name="view_mode">form</field>
<field name="view_id" ref="wizard_close_form_view"/>
<field name="context">{'display_default_code':False}</field>
<field name="target">new</field>
</record>
<record id="system_work_order_wizard_view" model="ir.ui.view">
<field name="name">system_work_order_wizard_view</field>
<field name="model">system.work.order.wizard</field>
<field name="arch" type="xml">
<form string="二次确认">
<field name="explain" readonly="1"/>
<footer>
<button name="sure" string="确定" type="object" class="oe_highlight"/>
or
<button string="取消" class="oe_link" special="cancel"/>
</footer>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="system_work_order_wizard_view_act_window">
<field name="name">二次确认</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">system.work.order.wizard</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,42 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/12/12 9:46
# @Author : GuoXiang
# @Site :
# @File : system_work_order_wizard.py
# @Software: PyCharm
# @Desc :
# @license : Copyright©2018 www.dasmaster.com All Rights Reserved.
# @Contact : xg1230205321@163.com
from odoo import models, api, fields
from odoo.exceptions import ValidationError
class SystemWorkOrderWizard(models.TransientModel):
_name = "system.work.order.wizard"
_description = u"追回确认"
def _get_explain(self):
if self._context.get('object_id'):
obj = self.env['system.work.order'].browse(self._context.get('object_id'))
if obj.initiator_id.id != self.env.user.id:
raise ValidationError(u'非本人无法操作')
if self._context.get('explain'):
return self._context["explain"]
explain = fields.Char(default=_get_explain)
def sure(self):
"""
确认
:return:
"""
if self._context.get('object_id') and self._context.get('object_name') and self._context.get(
'explain') and self._context.get('function_name'):
work_sheet_obj = self.env[self._context["object_name"]].search([('id', '=', int(self._context["object_id"]))])
class_name = self._context.get('object_name') # 获得对象类名
method_name = self._context.get('function_name') # 获得对象的方法
obj_function = getattr(self.env[class_name], method_name)
obj_function(work_sheet_obj)

View File

@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
from odoo import fields, models, api
class MrpProduction(models.Model):
@@ -12,7 +12,8 @@ class MrpProduction(models.Model):
check_ids = fields.One2many('quality.check', 'production_id', string="Checks")
def _split_productions(self, amounts=False, cancel_remaining_qty=False, set_consumed_qty=False):
productions = super()._split_productions(amounts=amounts, cancel_remaining_qty=cancel_remaining_qty, set_consumed_qty=set_consumed_qty)
productions = super()._split_productions(amounts=amounts, cancel_remaining_qty=cancel_remaining_qty,
set_consumed_qty=set_consumed_qty)
backorders = productions[1:]
if not backorders:
return productions
@@ -20,3 +21,4 @@ class MrpProduction(models.Model):
if wo.current_quality_check_id.component_id:
wo.current_quality_check_id._update_component_quantity()
return productions

View File

@@ -27,7 +27,7 @@ class MrpWorkcenter(models.Model):
class MrpProductionWorkcenterLine(models.Model):
_name = 'mrp.workorder'
_inherit = ['mrp.workorder', 'barcodes.barcode_events_mixin']
_inherit = ['mrp.workorder', 'barcodes.barcode_events_mixin', 'mail.thread', 'mail.activity.mixin']
quality_point_ids = fields.Many2many('quality.point', compute='_compute_quality_point_ids', store=True)
quality_point_count = fields.Integer('Steps', compute='_compute_quality_point_count')
@@ -47,14 +47,17 @@ class MrpProductionWorkcenterLine(models.Model):
is_last_lot = fields.Boolean('Is Last lot', compute='_compute_is_last_lot')
is_first_started_wo = fields.Boolean('Is The first Work Order', compute='_compute_is_last_unfinished_wo')
is_last_unfinished_wo = fields.Boolean('Is Last Work Order To Process', compute='_compute_is_last_unfinished_wo', store=False)
is_last_unfinished_wo = fields.Boolean('Is Last Work Order To Process', compute='_compute_is_last_unfinished_wo',
store=False)
lot_id = fields.Many2one(related='current_quality_check_id.lot_id', readonly=False)
move_id = fields.Many2one(related='current_quality_check_id.move_id', readonly=False)
move_line_id = fields.Many2one(related='current_quality_check_id.move_line_id', readonly=False)
move_line_ids = fields.One2many(related='move_id.move_line_ids')
quality_state = fields.Selection(related='current_quality_check_id.quality_state', string="Quality State", readonly=False)
quality_state = fields.Selection(related='current_quality_check_id.quality_state', string="Quality State",
readonly=False)
qty_done = fields.Float(related='current_quality_check_id.qty_done', readonly=False)
test_type_id = fields.Many2one('quality.point.test_type', 'Test Type', related='current_quality_check_id.test_type_id')
test_type_id = fields.Many2one('quality.point.test_type', 'Test Type',
related='current_quality_check_id.test_type_id')
test_type = fields.Char(related='test_type_id.technical_name')
user_id = fields.Many2one(related='current_quality_check_id.user_id', readonly=False)
worksheet_page = fields.Integer('Worksheet page')
@@ -65,7 +68,8 @@ class MrpProductionWorkcenterLine(models.Model):
def _compute_quality_point_ids(self):
for workorder in self:
quality_points = workorder.operation_id.quality_point_ids
quality_points = quality_points.filtered(lambda qp: not qp.product_ids or workorder.production_id.product_id in qp.product_ids)
quality_points = quality_points.filtered(
lambda qp: not qp.product_ids or workorder.production_id.product_id in qp.product_ids)
workorder.quality_point_ids = quality_points
@api.depends('operation_id')
@@ -91,7 +95,8 @@ class MrpProductionWorkcenterLine(models.Model):
@api.depends('check_ids')
def _compute_finished_product_check_ids(self):
for wo in self:
wo.finished_product_check_ids = wo.check_ids.filtered(lambda c: c.finished_product_sequence == wo.qty_produced)
wo.finished_product_check_ids = wo.check_ids.filtered(
lambda c: c.finished_product_sequence == wo.qty_produced)
def write(self, values):
res = super().write(values)
@@ -138,7 +143,8 @@ class MrpProductionWorkcenterLine(models.Model):
self.finished_lot_id = self.env['stock.lot'].create({
'product_id': self.product_id.id,
'company_id': self.company_id.id,
'name': self.env['stock.lot']._get_next_serial(self.company_id, self.product_id) or self.env['ir.sequence'].next_by_code('stock.lot.serial'),
'name': self.env['stock.lot']._get_next_serial(self.company_id, self.product_id) or self.env[
'ir.sequence'].next_by_code('stock.lot.serial'),
})
def _create_subsequent_checks(self):
@@ -152,7 +158,7 @@ class MrpProductionWorkcenterLine(models.Model):
"""
# Create another quality check if necessary
next_check = self.current_quality_check_id.next_check_id
if next_check.component_id != self.current_quality_check_id.product_id or\
if next_check.component_id != self.current_quality_check_id.product_id or \
next_check.point_id != self.current_quality_check_id.point_id:
# TODO: manage reservation here
@@ -279,7 +285,8 @@ class MrpProductionWorkcenterLine(models.Model):
if self.current_quality_check_id:
team = self.current_quality_check_id.team_id
else:
team = self.env['quality.alert.team'].search(['|', ('company_id', '=', self.company_id.id), ('company_id', '=', False)], limit=1)
team = self.env['quality.alert.team'].search(
['|', ('company_id', '=', self.company_id.id), ('company_id', '=', False)], limit=1)
return {
'type': 'ir.actions.act_window',
'res_model': 'quality.check',
@@ -320,7 +327,8 @@ class MrpProductionWorkcenterLine(models.Model):
production = wo.production_id
move_raw_ids = wo.move_raw_ids.filtered(lambda m: m.state not in ('done', 'cancel'))
move_finished_ids = wo.move_finished_ids.filtered(lambda m: m.state not in ('done', 'cancel') and m.product_id != wo.production_id.product_id)
move_finished_ids = wo.move_finished_ids.filtered(
lambda m: m.state not in ('done', 'cancel') and m.product_id != wo.production_id.product_id)
previous_check = self.env['quality.check']
for point in wo.quality_point_ids:
# Check if we need a quality control for this point
@@ -342,11 +350,13 @@ class MrpProductionWorkcenterLine(models.Model):
if point.test_type == 'register_byproducts':
moves = move_finished_ids.filtered(lambda m: m.product_id == point.component_id)
if not moves:
moves = production.move_finished_ids.filtered(lambda m: not m.operation_id and m.product_id == point.component_id)
moves = production.move_finished_ids.filtered(
lambda m: not m.operation_id and m.product_id == point.component_id)
elif point.test_type == 'register_consumed_materials':
moves = move_raw_ids.filtered(lambda m: m.product_id == point.component_id)
if not moves:
moves = production.move_raw_ids.filtered(lambda m: not m.operation_id and m.product_id == point.component_id)
moves = production.move_raw_ids.filtered(
lambda m: not m.operation_id and m.product_id == point.component_id)
else:
check = self.env['quality.check'].create(values)
previous_check.next_check_id = check
@@ -363,8 +373,10 @@ class MrpProductionWorkcenterLine(models.Model):
processed_move |= moves
# Generate quality checks associated with unreferenced components
moves_without_check = ((move_raw_ids | move_finished_ids) - processed_move).filtered(lambda move: (move.has_tracking != 'none' and not move.raw_material_production_id.use_auto_consume_components_lots) or move.operation_id)
quality_team_id = self.env['quality.alert.team'].search(['|', ('company_id', '=', wo.company_id.id), ('company_id', '=', False)], limit=1).id
moves_without_check = ((move_raw_ids | move_finished_ids) - processed_move).filtered(lambda move: (
move.has_tracking != 'none' and not move.raw_material_production_id.use_auto_consume_components_lots) or move.operation_id)
quality_team_id = self.env['quality.alert.team'].search(
['|', ('company_id', '=', wo.company_id.id), ('company_id', '=', False)], limit=1).id
for move in moves_without_check:
values = {
'production_id': production.id,
@@ -412,7 +424,8 @@ class MrpProductionWorkcenterLine(models.Model):
backorder = False
# Trigger the backorder process if we produce less than expected
if float_compare(self.qty_producing, self.qty_remaining, precision_rounding=self.product_uom_id.rounding) == -1 and self.is_first_started_wo:
if float_compare(self.qty_producing, self.qty_remaining,
precision_rounding=self.product_uom_id.rounding) == -1 and self.is_first_started_wo:
backorder = self.production_id._split_productions()[1:]
for workorder in backorder.workorder_ids:
if workorder.product_tracking == 'serial':
@@ -423,7 +436,8 @@ class MrpProductionWorkcenterLine(models.Model):
else:
if self.operation_id:
backorder = (self.production_id.procurement_group_id.mrp_production_ids - self.production_id).filtered(
lambda p: p.workorder_ids.filtered(lambda wo: wo.operation_id == self.operation_id).state not in ('cancel', 'done')
lambda p: p.workorder_ids.filtered(lambda wo: wo.operation_id == self.operation_id).state not in (
'cancel', 'done')
)[:1]
else:
index = list(self.production_id.workorder_ids).index(self)
@@ -442,7 +456,8 @@ class MrpProductionWorkcenterLine(models.Model):
wo.current_quality_check_id._update_component_quantity()
if not self.env.context.get('no_start_next'):
if self.operation_id:
return backorder.workorder_ids.filtered(lambda wo: wo.operation_id == self.operation_id).open_tablet_view()
return backorder.workorder_ids.filtered(
lambda wo: wo.operation_id == self.operation_id).open_tablet_view()
else:
index = list(self.production_id.workorder_ids).index(self)
return backorder.workorder_ids[index].open_tablet_view()
@@ -466,7 +481,8 @@ class MrpProductionWorkcenterLine(models.Model):
def open_tablet_view(self):
self.ensure_one()
if not self.is_user_working and self.working_state != 'blocked' and self.state in ('ready', 'waiting', 'progress', 'pending'):
if not self.is_user_working and self.working_state != 'blocked' and self.state in (
'ready', 'waiting', 'progress', 'pending'):
self.button_start()
action = self.env["ir.actions.actions"]._for_xml_id("mrp_workorder.tablet_client_action")
action['target'] = 'fullscreen'
@@ -521,7 +537,8 @@ class MrpProductionWorkcenterLine(models.Model):
data = {
'mrp.workorder': self.read(self._get_fields_for_tablet(), load=False)[0],
'quality.check': self.check_ids._get_fields_for_tablet(sorted_check_list),
'operation': self.operation_id.read(self.operation_id._get_fields_for_tablet())[0] if self.operation_id else {},
'operation': self.operation_id.read(self.operation_id._get_fields_for_tablet())[
0] if self.operation_id else {},
'working_state': self.workcenter_id.working_state,
'views': {
'workorder': self.env.ref('mrp_workorder.mrp_workorder_view_form_tablet').id,
@@ -553,7 +570,8 @@ class MrpProductionWorkcenterLine(models.Model):
return {
'duration': self.duration,
'position': bisect_left(last30op, self.duration), # which position regarded other workorders ranked by duration
'position': bisect_left(last30op, self.duration),
# which position regarded other workorders ranked by duration
'quality_score': score,
'show_rainbow': show_rainbow,
}

View File

@@ -1,41 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Manufacturing Order for Planing view -->
<record id="mrp_production_tree_view_planning" model="ir.ui.view">
<field name="name">mrp.production.tree.inherit.planning</field>
<field name="model">mrp.production</field>
<field name="arch" type="xml">
<tree default_order="date_planned_start asc" decoration-info="state=='confirmed'" decoration-danger="date_planned_start&lt;current_date and state not in ('done','cancel')" decoration-muted="state in ('done','cancel')" string="Manufacturing Orders" name="Production">
<field name="message_needaction" invisible="1"/>
<field name="name"/>
<field name="date_planned_start"/>
<field name="product_id"/>
<field name="product_qty" sum="Total Qty" string="Quantity"/>
<field name="product_uom_id" string="Unit of Measure" options="{'no_open':True,'no_create':True}" groups="uom.group_uom"/>
<field name="reservation_state" string="Availability"/>
<field name="origin"/>
<field name="state"/>
</tree>
</field>
</record>
<!-- Manufacturing Order for Planing view -->
<record id="mrp_production_tree_view_planning" model="ir.ui.view">
<field name="name">mrp.production.tree.inherit.planning</field>
<field name="model">mrp.production</field>
<field name="arch" type="xml">
<tree default_order="date_planned_start asc" decoration-info="state=='confirmed'"
decoration-danger="date_planned_start&lt;current_date and state not in ('done','cancel')"
decoration-muted="state in ('done','cancel')" string="Manufacturing Orders" name="Production">
<field name="message_needaction" invisible="1"/>
<field name="name"/>
<field name="date_planned_start"/>
<field name="product_id"/>
<field name="product_qty" sum="Total Qty" string="Quantity"/>
<field name="product_uom_id" string="Unit of Measure" options="{'no_open':True,'no_create':True}"
groups="uom.group_uom"/>
<field name="reservation_state" string="Availability"/>
<field name="origin"/>
<field name="state"/>
</tree>
</field>
</record>
<!-- <record id="mrp_production_form_inherit_planning" model="ir.ui.view">-->
<!-- <field name="name">mrp.production.form_inherit_planning</field>-->
<!-- <field name="model">mrp.production</field>-->
<!-- <field name="inherit_id" ref="mrp.mrp_production_form_view"/>-->
<!-- <field name="arch" type="xml">-->
<!-- <xpath expr="div[hasclass('oe_chatter')]" position="replace">-->
<!-- &lt;!&ndash; 这里放置替换后的内容 &ndash;&gt;-->
<!-- </xpath>-->
<!-- <xpath expr="//notebook" position="after">-->
<!-- <div class="oe_chatter">-->
<!-- <field name="message_follower_ids"/>-->
<!-- <field name="activity_ids"/>-->
<!-- <field name="message_ids"/>-->
<!-- </div>-->
<!-- </xpath>-->
<!-- </field>-->
<!-- </record>-->
<!-- <record id="mrp_production_form_inherit_planning" model="ir.ui.view">-->
<!-- <field name="name">mrp.production.form_inherit_planning</field>-->
<!-- <field name="model">mrp.production</field>-->
<!-- <field name="inherit_id" ref="mrp.mrp_production_form_view"/>-->
<!-- <field name="arch" type="xml">-->
<!-- <xpath expr="div[hasclass('oe_chatter')]" position="replace">-->
<!-- &lt;!&ndash; 这里放置替换后的内容 &ndash;&gt;-->
<!-- </xpath>-->
<!-- <xpath expr="//notebook" position="after">-->
<!-- <div class="oe_chatter">-->
<!-- <field name="message_follower_ids"/>-->
<!-- <field name="activity_ids"/>-->
<!-- <field name="message_ids"/>-->
<!-- </div>-->
<!-- </xpath>-->
<!-- </field>-->
<!-- </record>-->
<record id="mrp_production_view_search_inherit_planning" model="ir.ui.view">
<field name="name">mrp.production.search.view.inherit.planning</field>
@@ -43,7 +46,9 @@
<field name="inherit_id" ref="mrp.view_mrp_production_filter"/>
<field name="arch" type="xml">
<filter name="filter_planned" position="attributes">
<attribute name="domain">[('is_planned', '=', True), ('date_planned_start', '!=', False), ('date_planned_finished', '!=', False)]</attribute>
<attribute name="domain">[('is_planned', '=', True), ('date_planned_start', '!=', False),
('date_planned_finished', '!=', False)]
</attribute>
</filter>
</field>
</record>
@@ -51,30 +56,33 @@
<record id="production_order_unplan_server_action" model="ir.actions.server">
<field name="name">Unplan orders</field>
<field name="model_id" ref="mrp.model_mrp_production"/>
<field name="binding_model_id" ref="mrp.model_mrp_production" />
<field name="binding_model_id" ref="mrp.model_mrp_production"/>
<field name="binding_view_types">list</field>
<field name="state">code</field>
<field name="code">records.button_unplan()</field>
</record>
<record id="mrp.act_product_mrp_production_workcenter" model="ir.actions.act_window">
<field name="domain">[('bom_id', '!=', False), ('bom_id.operation_ids.workcenter_id', '=', active_id), ('date_planned_start', '!=', False), ('date_planned_finished', '!=', False)]</field>
<field name="domain">[('bom_id', '!=', False), ('bom_id.operation_ids.workcenter_id', '=', active_id),
('date_planned_start', '!=', False), ('date_planned_finished', '!=', False)]
</field>
<field name="view_id" ref="mrp_production_tree_view_planning"/>
</record>
<menuitem id="mrp_workorder_menu_planning"
name="Work Orders"
sequence="2"
parent="mrp.mrp_planning_menu_root"
groups="mrp.group_mrp_routings"/>
name="Work Orders"
sequence="2"
parent="mrp.mrp_planning_menu_root"
groups="mrp.group_mrp_routings"/>
<menuitem id="menu_mrp_workorder_production"
name="Planning by Production"
sequence="1"
action="mrp.action_mrp_workorder_production"
parent="mrp_workorder_menu_planning"/>
name="Planning by Production"
sequence="1"
action="mrp.action_mrp_workorder_production"
parent="mrp_workorder_menu_planning"/>
<menuitem id="menu_mrp_workorder_workcenter"
name="Planning by Workcenter"
sequence="2"
action="mrp_workorder.action_mrp_workorder_dependencies_workcenter"
parent="mrp_workorder_menu_planning"/>
name="Planning by Workcenter"
sequence="2"
action="mrp_workorder.action_mrp_workorder_dependencies_workcenter"
parent="mrp_workorder_menu_planning"/>
</odoo>

View File

@@ -27,6 +27,13 @@
</field>
</page>
</page>
<xpath expr="//sheet" position="after">
<div class="oe_chatter">
<field name="message_follower_ids"/>
<field name="activity_ids"/>
<field name="message_ids" options="{'post_refresh': 'recipients'}"/>
</div>
</xpath>
</field>
</record>

View File

@@ -35,6 +35,7 @@
],
'web.assets_backend': [
'sf_base/static/src/scss/*.scss',
'sf_base/static/src/js/*.js',
],
},

View File

@@ -5,3 +5,4 @@ from . import fixture
from . import functional_fixture
from . import tool_other_features
from . import basic_parameters_fixture
from . import ir_sequence

View File

@@ -13,7 +13,7 @@ class BasicParametersFixture(models.Model):
diameter = fields.Float('直径(mm)', digits=(16, 2))
# '零点卡盘' 字段
weight = fields.Float('重量(mm)', digits=(16, 2))
weight = fields.Float('重量(kg)', digits=(16, 2))
orientation_dish_diameter = fields.Float('定位盘直径(mm)', digits=(16, 2))
clamping_diameter = fields.Float('装夹直径(mm)', digits=(16, 2))
clamping_num = fields.Selection([('1', '1'), ('2', '2'), ('4', '4'), ('6', '6'), ('8', '8')], string='装夹单元数')

View File

@@ -61,12 +61,10 @@ class MrsMaterialModel(models.Model):
supplier_ids = fields.One2many('sf.supplier.sort', 'materials_model_id', string='供应商')
active = fields.Boolean('有效', default=True)
@api.onchange('gain_way')
def _check_gain_way(self):
if not self.gain_way:
raise UserError("请选择获取方式")
if self.gain_way in ['外协', '采购']:
if not self.supplier_ids:
@api.constrains("gain_way")
def _check_supplier_ids(self):
for item in self:
if item.gain_way in ('外协', '采购') and not item.supplier_ids:
raise UserError("请添加供应商")
@@ -86,17 +84,21 @@ class MrsProductionProcessCategory(models.Model):
class MrsProductionProcess(models.Model):
_name = 'sf.production.process'
_description = '表面工艺'
order = 'sequence asc'
code = fields.Char("编码")
name = fields.Char('名称')
remark = fields.Text("备注")
sequence = fields.Integer('排序')
# processing_order_ids = fields.One2many('sf.processing.order', 'production_process_id', string='工序')
partner_process_ids = fields.Many2many('res.partner', 'process_ids', '加工工厂')
active = fields.Boolean('有效', default=True)
parameter_ids = fields.One2many('sf.production.process.parameter', 'process_id', string='可选参数')
category_id = fields.Many2one('sf.production.process.category')
category_id = fields.Many2one('sf.production.process.category', string='表面工艺类别')
# workcenter_ids = fields.Many2many('mrp.workcenter', 'rel_workcenter_process', required=True)
processing_day = fields.Float('加工天数/d')
travel_day = fields.Float('路途天数/d')
sequence = fields.Integer('排序')
# class MrsProcessingTechnology(models.Model):
# _name = 'sf.processing.technology'
@@ -143,8 +145,12 @@ class MrsProductionProcessParameter(models.Model):
is_check = fields.Boolean(default=False)
# price = fields.Float('单价')
process_id = fields.Many2one('sf.production.process', string='表面工艺')
process_description = fields.Char(string='工艺描述')
materials_model_ids = fields.Many2many('sf.materials.model', 'applicable_material', string='适用材料')
processing_day = fields.Float('加工天数/d')
travel_day = fields.Float('路途天数/d')
active = fields.Boolean('有效', default=True)
processing_mm = fields.Char('加工厚度/mm')
def name_get(self):
result = []

View File

@@ -0,0 +1,74 @@
import calendar
from datetime import timedelta
from odoo import models, fields
class IrSequence(models.Model):
_inherit = 'ir.sequence'
date_range_period = fields.Selection(
[('day', '每日'), ('month', '每月'), ('year', '每年')],
string='日期期间',
)
def _next(self, sequence_date=None):
""" Returns the next number in the preferred sequence in all the ones given in self."""
if not self.use_date_range:
return self._next_do()
# date mode
dt = sequence_date or self._context.get('ir_sequence_date', fields.Date.today())
seq_date = self.env['ir.sequence.date_range'].search(
[
('sequence_id', '=', self.id),
('date_from', '<=', dt),
('date_to', '>=', dt),
('date_range_period', '=', self.date_range_period)
], limit=1)
if not seq_date:
if self.date_range_period:
seq_date = self._create_date_range_seq_by_period(dt, self.date_range_period)
else:
seq_date = self._create_date_range_seq(dt)
return seq_date.with_context(ir_sequence_date_range=seq_date.date_from)._next()
def _create_date_range_seq_by_period(self, date, period):
if period == 'year':
year = fields.Date.from_string(date).strftime('%Y')
date_from = '{}-01-01'.format(year)
date_to = '{}-12-31'.format(year)
if period == 'month':
# 计算当前月份的第一天和最后一天
year = fields.Date.from_string(date).strftime('%Y')
month = fields.Date.from_string(date).strftime('%m')
date_from = fields.Date.from_string(date).strftime('%Y-%m-01')
date_to = '{}-{}-{}'.format(year, month, calendar.monthrange(int(year), int(month))[1])
if period == 'day':
date_from = date
date_to = date
date_range = self.env['ir.sequence.date_range'].search(
[
('sequence_id', '=', self.id),
('date_to', '>=', date_from),
('date_to', '<=', date),
('date_range_period', '=', period)
],
order='date_to desc', limit=1)
if date_range:
date_from = date_range.date_to + timedelta(days=1)
seq_date_range = self.env['ir.sequence.date_range'].sudo().create({
'date_from': date_from,
'date_to': date_to,
'sequence_id': self.id,
'date_range_period': period,
})
return seq_date_range
class IrSequenceDateRange(models.Model):
_inherit = 'ir.sequence.date_range'
date_range_period = fields.Selection(
[('day', '每日'), ('month', '每月'), ('year', '每年')],
string='日期期间',
)

View File

@@ -331,7 +331,7 @@ class ToolInventory(models.Model):
work_material = fields.Selection([('', ''), ('', '')], string='加工材料')
life_span = fields.Float('寿命(min)')
tool_groups_id = fields.Many2one('sf.tool.groups', string='刀具组')
tool_groups_id = fields.Many2one('sf.tool.groups', string='刀具组', required=True)
active = fields.Boolean('已归档', default=True)

View File

@@ -1,10 +0,0 @@
diff a/sf_base/models/tool_base_new.py b/sf_base/models/tool_base_new.py (rejected hunks)
@@ -108,6 +108,4 @@
cutting_speed_ids = fields.One2many('sf.cutting.speed', 'standard_library_id', string='切削速度Vc')
- feed_per_tooth_ids = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz',
- domain=[('cutting_speed', '!=', False)])
- feed_per_tooth_ids_3 = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz',
- domain=[('cutting_speed', '!=', False)])
+ feed_per_tooth_ids = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz')
+ feed_per_tooth_ids_3 = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz')

View File

@@ -11,8 +11,8 @@ access_sf_machine_control_system,sf_machine_control_system,model_sf_machine_cont
access_sf_machine_control_system_admin,sf_machine_control_system_admin,model_sf_machine_control_system,base.group_system,1,1,1,0
access_sf_production_process_group_sale_director,sf_production_process_group_sale_director,model_sf_production_process,sf_base.group_sale_director,1,0,0,0
access_sf_production_process_group_sale_salemanager,sf_production_process_group_sale_salemanager,model_sf_production_process,sf_base.group_sale_salemanager,1,0,0,0
access_res_partner_category_group_sale_salemanager,res_partner_category_group_sale_salemanager,base.model_res_partner_category,sf_base.group_sale_salemanager,1,0,1,0
access_res_partner_category_group_sale_director,res_partner_category_group_sale_director,base.model_res_partner_category,sf_base.group_sale_director,1,0,1,0
access_res_partner_category_group_sale_salemanager,res_partner_category_group_sale_salemanager,base.model_res_partner_category,sf_base.group_sale_salemanager,1,1,1,0
access_res_partner_category_group_sale_director,res_partner_category_group_sale_director,base.model_res_partner_category,sf_base.group_sale_director,1,1,1,0
access_sf_production_process,sf_production_process,model_sf_production_process,base.group_user,1,1,1,0
access_sf_production_process_admin,sf_production_process_admin,model_sf_production_process,base.group_system,1,1,1,0
access_sf_production_materials,sf_production_materials,model_sf_production_materials,base.group_user,1,1,1,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
11 access_sf_machine_control_system_admin sf_machine_control_system_admin model_sf_machine_control_system base.group_system 1 1 1 0
12 access_sf_production_process_group_sale_director sf_production_process_group_sale_director model_sf_production_process sf_base.group_sale_director 1 0 0 0
13 access_sf_production_process_group_sale_salemanager sf_production_process_group_sale_salemanager model_sf_production_process sf_base.group_sale_salemanager 1 0 0 0
14 access_res_partner_category_group_sale_salemanager res_partner_category_group_sale_salemanager base.model_res_partner_category sf_base.group_sale_salemanager 1 0 1 1 0
15 access_res_partner_category_group_sale_director res_partner_category_group_sale_director base.model_res_partner_category sf_base.group_sale_director 1 0 1 1 0
16 access_sf_production_process sf_production_process model_sf_production_process base.group_user 1 1 1 0
17 access_sf_production_process_admin sf_production_process_admin model_sf_production_process base.group_system 1 1 1 0
18 access_sf_production_materials sf_production_materials model_sf_production_materials base.group_user 1 1 1 0

View File

@@ -0,0 +1,61 @@
/** @odoo-module **/
import { registry } from "@web/core/registry";
import { barcodeGenericHandlers } from '@barcodes/barcode_handlers';
import { patch } from "@web/core/utils/patch";
// 定义新的 clickOnButton 函数
function customClickOnButton(selector) {
console.log("This is the custom clickOnButton function!");
const buttons = document.body.querySelectorAll(selector);
let length = buttons.length;
if (length > 0) {
buttons[length - 1].click();
} else {
console.warn(`Button with selector ${selector} not found`);
}
}
patch(barcodeGenericHandlers, "start", {
start(env, { ui, barcode, notification }) {
// 使用新定义的 clickOnButton 函数
const COMMANDS = {
"O-CMD.EDIT": () => customClickOnButton(".o_form_button_edit"),
"O-CMD.DISCARD": () => customClickOnButton(".o_form_button_cancel"),
"O-CMD.SAVE": () => customClickOnButton(".o_form_button_save"),
"O-CMD.PREV": () => customClickOnButton(".o_pager_previous"),
"O-CMD.NEXT": () => customClickOnButton(".o_pager_next"),
"O-CMD.PAGER-FIRST": () => updatePager("first"),
"O-CMD.PAGER-LAST": () => updatePager("last"),
"O-CMD.CONFIRM": () => customClickOnButton(".jikimo_button_confirm"),
};
barcode.bus.addEventListener("barcode_scanned", (ev) => {
const barcode = ev.detail.barcode;
if (barcode.startsWith("O-BTN.")) {
let targets = [];
try {
targets = getVisibleElements(ui.activeElement, `[barcode_trigger=${barcode.slice(6)}]`);
} catch (_e) {
console.warn(`Barcode '${barcode}' is not valid`);
}
for (let elem of targets) {
elem.click();
}
}
if (barcode.startsWith("O-CMD.")) {
const fn = COMMANDS[barcode];
if (fn) {
fn();
} else {
notification.add(env._t("Barcode: ") + `'${barcode}'`, {
title: env._t("Unknown barcode command"),
type: "danger"
});
}
}
});
}
})

View File

@@ -0,0 +1,42 @@
/** @odoo-module **/
import { registry } from '@web/core/registry';
import { formView } from '@web/views/form/form_view';
import { FormController } from '@web/views/form/form_controller';
import { listView } from '@web/views/list/list_view';
import { ListController } from '@web/views/list/list_controller'
import { onRendered, onMounted } from "@odoo/owl";
export class RemoveFocusFormController extends FormController {
setup() {
super.setup();
onMounted(() => {
this.__owl__.bdom.el.querySelectorAll(':focus').forEach(element => element.blur());
})
}
}
registry.category('views').add('remove_focus_form_view', {
...formView,
Controller: RemoveFocusFormController,
});
export class RemoveFocusListController extends ListController {
setup() {
super.setup();
onMounted(() => {
this.__owl__.bdom.el.querySelectorAll(':focus').forEach(element => element.blur());
})
}
}
registry.category('views').add('remove_focus_list_view', {
...listView,
Controller: RemoveFocusListController,
});

View File

@@ -1,7 +1,7 @@
.o_data_row .w-100 {
width: 40px !important;
height: 40px !important;
display: block !important;
//display: block !important;
}
.o_list_renderer .o_list_table tbody > tr > td:not(.o_list_record_selector):not(.o_handle_cell):not(.o_list_button):not(.o_list_record_remove) {

View File

@@ -12,11 +12,10 @@
</tree>
</field>
</record>
<record model="ir.ui.view" id="mrs_production_process_parameter_form">
<field name="model">sf.production.process.parameter</field>
<field name="arch" type="xml">
<form string="表面工艺可选参数" create="0" delete="0">
<form string="表面工艺可选参数" create="0" delete="0" >
<sheet>
<div class="oe_title">
<h1>
@@ -26,14 +25,19 @@
<group>
<group>
<field name="code" readonly="1"/>
<field name="process_id" readonly="1"/>
<field name="process_id" attrs="{'readonly': [('code', '!=', False)]}"/>
<field name="process_description" attrs="{'readonly': [('code', '!=', False)]}"/>
<field name="gain_way"/>
</group>
<group>
<field name="processing_day" attrs="{'readonly': [('code', '!=', False)]}"/>
<field name="travel_day" attrs="{'readonly': [('code', '!=', False)]}"/>
<field name="processing_mm" attrs="{'readonly': [('code', '!=', False)]}"/>
</group>
</group>
<notebook>
<page string="适用材料">
<field name="materials_model_ids"></field>
<field name="materials_model_ids" attrs="{'readonly': [('code', '!=', False)]}"></field>
</page>
</notebook>
</sheet>
@@ -48,7 +52,7 @@
<search>
<filter name="filter_active" string="已归档" domain="[('active','=',False)]"/>
<field name="name" string="名称" filter_domain="[('name','ilike',self)]"/>
<field name="code" string="编码" filter_domain="[('codeNum','ilike',self)]"/>
<field name="code" string="编码" filter_domain="[('code','ilike',self)]"/>
<searchpanel class="account_root">
<field name="process_id" icon="fa-filter"/>
</searchpanel>
@@ -136,7 +140,7 @@
<field name="model">sf.production.process.category</field>
<field name="arch" type="xml">
<tree string="表面工艺类别" default_order="sequence, id" create="0" edit="0" delete="1">
<field name="sequence" widget="handle" string="序号"/>
<field name="sequence" widget="handle" string="序号" readonly="1"/>
<field name="code"/>
<field name="name" string="名称"/>
</tree>
@@ -159,7 +163,8 @@
<record model="ir.ui.view" id="sf_production_process_tree">
<field name="model">sf.production.process</field>
<field name="arch" type="xml">
<tree string="表面工艺" create="0" edit="0" delete="1">
<tree string="表面工艺" create="0" edit="0" delete="0">
<field name="sequence" string="加工顺序" readonly="1"/>
<field name="code"/>
<field name="name" string="名称"/>
<field name="remark"/>
@@ -170,7 +175,7 @@
<record model="ir.ui.view" id="sf_production_process_form">
<field name="model">sf.production.process</field>
<field name="arch" type="xml">
<form string="表面工艺" create="0" edit="1" delete="1">
<form string="表面工艺" create="0" delete="0">
<sheet>
<div class="oe_title">
<h1>
@@ -179,41 +184,46 @@
</div>
<group>
<group>
<field name="code"/>
<field name="code" readonly="1"/>
<field name="category_id" readonly="1"/>
</group>
<group>
<field name="processing_day" readonly="1"/>
<field name="travel_day" readonly="1"/>
</group>
<notebook>
<page string="可选参数">
<field name="parameter_ids">
<tree force_save="1">
<field name="code" readonly="1" force_save="1"/>
<field name="name"/>
<field name="gain_way"/>
<field name='process_id' default="default"/>
</tree>
<form>
<sheet>
<group>
<group>
<field name="code"/>
<field name="name" string="参数名"/>
</group>
<group>
<field name='process_id'/>
<field name="gain_way"/>
</group>
</group>
<notebook>
<page string="适用材料">
<field name="materials_model_ids"/>
</page>
</notebook>
</sheet>
</form>
</field>
</page>
</notebook>
</group>
<notebook>
<page string="可选参数" >
<field name="parameter_ids" >
<tree force_save="1" create="0">
<field name="code" readonly="1" force_save="1"/>
<field name="name" readonly="1"/>
<field name="gain_way"/>
<field name='process_id' default="default"/>
</tree>
<form>
<sheet>
<group>
<group>
<field name="code"/>
<field name="name" string="参数名"/>
</group>
<group>
<field name='process_id'/>
<field name="gain_way"/>
</group>
</group>
<notebook>
<page string="适用材料">
<field name="materials_model_ids"/>
</page>
</notebook>
</sheet>
</form>
</field>
</page>
</notebook>
<group>
<group>
<field name="remark"/>
@@ -251,7 +261,7 @@
<group>
<group>
<field name="materials_no" readonly="1" force_save="1"/>
<field name="gain_way" required="1"/>
<field name="gain_way" required="0"/>
<field name="tensile_strength" required="1"/>
<field name="hardness" required="1"/>
<field name="density" readonly="1"/>
@@ -270,9 +280,9 @@
<notebook>
<page string="供应商">
<field name='supplier_ids' class="supplier_ids_set_css">
<tree editable='bottom'>
<tree editable='bottom' delete="1">
<field name="sequence" widget="handle" string="序号"/>
<field name="partner_id" string="名称"/>
<field name="partner_id" string="名称" options="{'no_create': True}"/>
</tree>
</field>
</page>

View File

@@ -171,7 +171,7 @@
<field name="width"/>
<field name="height"/>
<field name="diameter"/>
<field name="weight"/>
<field name="weight" string="重量(kg)"/>
<field name="orientation_dish_diameter"/>
<field name="clamping_diameter"/>
<field name="clamping_num"/>
@@ -197,7 +197,7 @@
<field name="width"/>
<field name="height"/>
<field name="diameter"/>
<field name="weight"/>
<field name="weight" string="重量(kg)"/>
<field name="clamping_diameter"/>
<field name="connector_diameter"/>
<field name="chucking_power_max"/>
@@ -220,7 +220,7 @@
<field name="length"/>
<field name="width"/>
<field name="height"/>
<field name="weight"/>
<field name="weight" string="重量(kg)"/>
<field name="gripper_length_min"/>
<field name="gripper_width_min"/>
<field name="gripper_height_min"/>
@@ -248,7 +248,7 @@
<field name="length"/>
<field name="width"/>
<field name="height"/>
<field name="weight"/>
<field name="weight" string="重量(kg)"/>
<field name="gripper_length_min"/>
<field name="gripper_width_min"/>
<field name="gripper_height_min"/>
@@ -278,7 +278,7 @@
<field name="width"/>
<field name="height"/>
<field name="height_tolerance_value"/>
<field name="weight"/>
<field name="weight" string="重量(kg)"/>
<field name="gripper_length_min"/>
<field name="gripper_width_min"/>
<field name="gripper_height_min"/>
@@ -307,7 +307,7 @@
<field name="length"/>
<field name="width"/>
<field name="height"/>
<field name="weight"/>
<field name="weight" string="重量(kg)"/>
<field name="gripper_length_min"/>
<field name="gripper_width_min"/>
<field name="gripper_height_min"/>
@@ -335,7 +335,7 @@
<field name="width"/>
<field name="height"/>
<field name="diameter"/>
<field name="weight"/>
<field name="weight" string="重量(kg)"/>
<field name="gripper_length_min"/>
<field name="gripper_width_min"/>
<field name="gripper_height_min"/>

View File

@@ -80,10 +80,10 @@
<field name="name">sf.cutter.function.tree</field>
<field name="model">sf.functional.cutting.tool.model</field>
<field name="arch" type="xml">
<tree string="功能刀具类型" create="0" delete="0" edit="1">
<field name="name" string="名称"/>
<field name="code"/>
<field name="remark"/>
<tree string="功能刀具类型" create="0" delete="0" edit="1" editable="bottom">
<field name="name" string="名称" readonly="1"/>
<field name="code" readonly="1"/>
<field name="remark" readonly="1"/>
</tree>
</field>
</record>
@@ -555,9 +555,9 @@
<field name="model">sf.tool.inventory</field>
<field name="arch" type="xml">
<tree string="功能刀具清单" create="1" edit="1" delete="0" editable="bottom">
<field name="name"/>
<field name="name" attrs="{'readonly': [('id', '!=', False)]}"/>
<field name="functional_cutting_tool_model_id"/>
<field name="tool_groups_id"/>
<field name="tool_groups_id" required="1" attrs="{'readonly': [('id', '!=', False)]}"/>
<field name="work_material"/>
<field name="life_span"/>
<field name="prefix" optional="hide"/>

View File

@@ -21,6 +21,7 @@ class Http(models.AbstractModel):
def _auth_method_sf_token(cls):
# 从headers.environ中获取对方传过来的token,timestamp,加密的校验字符串
datas = request.httprequest.headers.environ
_logger.info('datas:%s' % datas)
if 'HTTP_TOKEN' in datas:
_logger.info('token:%s' % datas['HTTP_TOKEN'])
# 查询密钥
@@ -35,7 +36,7 @@ class Http(models.AbstractModel):
post_time = int(datas['HTTP_TIMESTAMP'])
datetime_post = datetime.fromtimestamp(post_time)
datetime_now = datetime.now().replace(microsecond=0)
datetime_del = datetime_now + timedelta(seconds=5)
datetime_del = datetime_now + timedelta(seconds=30)
if datetime_post > datetime_del:
raise AuthenticationError('请求已过期')
check_str = '%s%s%s' % (datas['HTTP_TOKEN'], post_time, factory_secret.sf_secret_key)

View File

@@ -5,7 +5,7 @@ import requests
import cpca
# from odoo.exceptions import UserError
# from odoo.exceptions import ValidationError
from odoo import api, fields, models
from odoo import api, fields, models, _
from odoo.exceptions import ValidationError
_logger = logging.getLogger(__name__)
@@ -14,7 +14,7 @@ _logger = logging.getLogger(__name__)
class JdEclp(models.Model):
_inherit = 'stock.picking'
senderNickName = fields.Char(string='寄件工厂简称', required=True, default='MW')
senderNickName = fields.Char(string='寄件工厂简称', required=True, default='XT')
# receiverName = fields.Char(string='收件人姓名')
# receiverMobile = fields.Char(string='收件人电话')
@@ -67,9 +67,10 @@ class JdEclp(models.Model):
"""
判断是否为出库单
"""
if self.name:
is_check_out = self.name.split('/')
self.check_out = is_check_out[1]
for record in self:
if record.name:
is_check_out = record.name.split('/')
record.check_out = is_check_out[1]
@api.depends('carrier_tracking_ref')
def query_bill_pdf(self):
@@ -148,7 +149,7 @@ class JdEclp(models.Model):
},
}
_logger.info('准备调接口1')
url1 = config['bfm_url'] + '/api/create/jd/order'
url1 = config['bfm_url_new'] + '/api/create/jd/order'
requests.post(url1, json=json1, data=None)
_logger.info('调用成功1')
_logger.info('准备调接口2')
@@ -157,18 +158,31 @@ class JdEclp(models.Model):
'orderNo': self.origin,
},
}
url2 = config['bfm_url'] + '/api/get/jd/no'
url2 = config['bfm_url_new'] + '/api/get/jd/no'
response = requests.post(url2, json=json2, data=None)
# _logger.info('调用成功2', response.json()['result']['wbNo'])
self.carrier_tracking_ref = response.json()['result']['wbNo']
tem_ret = response.json().get('result')
if not tem_ret:
raise ValidationError('京东物流返回异常,请联系管理员')
self.carrier_tracking_ref = response.json()['result'].get('wbNo')
if not self.carrier_tracking_ref:
raise ValidationError('物流下单未成功,请联系管理员')
self.is_bill = True
self.logistics_status = '1'
# # 京东物流下单后,销售订单状态改为待收货
# self.env['sale.order'].search([('name', '=', self.origin)]).write({'scheduled_status': 'to receive'})
notification = {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'title': _('成功'),
'type': 'success',
'message': '物流下单成功',
'sticky': False,
'next': {'type': 'ir.actions.client', 'tag': 'reload'}
}
}
# else:
# raise UserError("选择京东物流才能下单呦")
return notification
def get_bill(self):
"""
@@ -182,7 +196,7 @@ class JdEclp(models.Model):
'no': self.origin,
},
}
url1 = config['bfm_url'] + '/api/create/jd/bill'
url1 = config['bfm_url_new'] + '/api/create/jd/bill'
response = requests.post(url1, json=json1, data=None)
# _logger.info('调用成功2', response.json())

View File

@@ -1,7 +1,9 @@
import traceback
from datetime import datetime
import logging
import requests
from odoo import fields, models
from odoo.exceptions import UserError
from odoo import fields, models, _
_logger = logging.getLogger(__name__)
@@ -14,26 +16,52 @@ class StatusChange(models.Model):
def action_confirm(self):
# 在原有方法执行前记录日志和执行其他操作
logging.info('函数已经执行=============')
server_product_none = []
for order in self.order_line:
gain_way_no = order.product_template_id.model_process_parameters_ids.filtered(lambda a: not a.gain_way)
if gain_way_no:
process_parameters = [item.name for item in gain_way_no]
raise UserError(
_("请先至【制造】-【配置】中【表面工艺可选参数】为【%s】填写获取方式", ", ".join(process_parameters)))
for item in order.product_template_id.model_process_parameters_ids:
if item.gain_way == '外协':
server_product = self.env['product.template'].search(
[('server_product_process_parameters_id', '=', item.id),
('detailed_type', '=', 'service')])
if not server_product:
server_product_none.append(item.name)
if server_product_none:
raise UserError(_("请先至【产品】中创建【表面工艺参数】为【%s】的服务产品", ", ".join(server_product_none)))
# 使用super()来调用原始方法(在本例中为'sale.order'模型的'action_confirm'方法)
res = super(StatusChange, self).action_confirm()
# 原有方法执行后进行额外的操作如调用外部API
process_start_time = str(datetime.now())
config = self.env['res.config.settings'].get_values()
json1 = {
'params': {
'model_name': 'jikimo.process.order',
'field_name': 'name',
'default_code': self.default_code,
'state': '加工中',
'process_start_time': process_start_time,
},
}
url1 = config['bfm_url'] + '/api/get/state/get_order'
requests.post(url1, json=json1, data=None)
logging.info('接口已经执行=============')
try:
res = super(StatusChange, self).action_confirm()
# 原有方法执行后进行额外的操作如调用外部API
process_start_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
config = self.env['res.config.settings'].get_values()
json1 = {
'params': {
'model_name': 'jikimo.process.order',
'field_name': 'name',
'default_code': self.default_code,
'state': '加工中',
'process_start_time': process_start_time,
},
}
url1 = config['bfm_url_new'] + '/api/get/state/get_order'
ret = requests.post(url1, json=json1, data=None)
ret = ret.json()
if not ret.get('error'):
logging.info('接口已经执行=============')
else:
traceback_error = traceback.format_exc()
logging.error("bfm订单状态同步失败:%s request info %s" % traceback_error)
logging.error('/api/get/state/get_order 请求失败{}'.format(ret))
raise UserError('工厂加工同步订单状态到bfm失败')
except UserError as e:
traceback_error = traceback.format_exc()
logging.error("工厂加工同步订单状态失败:%s " % traceback_error)
raise UserError(e)
return res
def action_cancel(self):
@@ -54,7 +82,7 @@ class StatusChange(models.Model):
'state': '待派单',
},
}
url1 = config['bfm_url'] + '/api/get/state/cancel_order'
url1 = config['bfm_url_new'] + '/api/get/state/cancel_order'
requests.post(url1, json=json1, data=None)
return res
@@ -202,12 +230,12 @@ class FinishStatusChange(models.Model):
[('id', 'child_of', self.picking_type_id.warehouse_id.view_location_id.id),
('usage', '!=', 'supplier')])
if self.env['stock.move'].search([
('state', 'in', ['confirmed', 'partially_available', 'waiting', 'assigned']),
('product_qty', '>', 0),
('location_id', 'in', wh_location_ids),
('move_orig_ids', '=', False),
('picking_id', 'not in', self.ids),
('product_id', 'in', lines.product_id.ids)], limit=1):
('state', 'in', ['confirmed', 'partially_available', 'waiting', 'assigned']),
('product_qty', '>', 0),
('location_id', 'in', wh_location_ids),
('move_orig_ids', '=', False),
('picking_id', 'not in', self.ids),
('product_id', 'in', lines.product_id.ids)], limit=1):
action = self.action_view_reception_report()
action['context'] = {'default_picking_ids': self.ids}
return action

View File

@@ -32,7 +32,7 @@
<field name="is_bill" invisible="True"/>
<field name="logistics_status" invisible="True"/>
<field name="logistics_way" invisible="True"/>
<button string="京东物流下单" name="create_order" type="object" confirm="是否确认物流下单" class="btn-primary"
<button string="物流下单" name="create_order" type="object" confirm="是否确认物流下单" class="btn-primary"
attrs="{'invisible': ['|', '|', '|', ('check_out', '!=', 'OUT'), ('state', '!=', 'assigned'), ('is_bill', '=', True), ('logistics_way', '=', '自提')]}"/>
<button string="获取物流面单" name="get_bill" type="object" confirm="是否获取物流面单" class="btn-primary"
attrs="{'invisible': ['|', '|', '|', '|', ('check_out', '!=', 'OUT'), ('state', '!=', 'assigned'), ('logistics_status', '=', '2'), ('is_bill', '=', False), ('logistics_way', '=', '自提')]}"/>
@@ -45,42 +45,50 @@
<field name="model">stock.picking</field>
<field name="inherit_id" ref="delivery.view_picking_withcarrier_out_form"/>
<field name="arch" type="xml">
<field name="location_id" position="after">
<field name="logistics_status" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="logistics_way" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
</field>
</field>
</record>
<xpath expr="//group//field[@name='carrier_id']" position="after">
<!-- <field name="senderNickName" domain="[('self.name', 'like', '%OUT%')]"/> -->
<field name="senderNickName" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="expressItemName" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="deliveryType" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="receiverName" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="receiverMobile" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="receiverProvinceName" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="receiverCityName" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="receiverCountyName" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="receiverTownName" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="receiverCompany" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="remark" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="grossWeight" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="grossVolume" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="pickupBeginTime" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="bill_show" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="logistics_status"/>
<record id="tracking_only_view" model="ir.ui.view">
<field name="name">tracking only</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="arch" type="xml">
<xpath expr="//form//sheet//notebook//page[@name='operations']" position="after">
<page string="发货信息" name="tracking">
<group>
<group>
<field name="senderNickName" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="expressItemName" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="grossWeight" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="grossVolume" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="deliveryType" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="receiverName" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="receiverMobile" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="receiverProvinceName" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="receiverCityName" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="receiverCountyName" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="receiverTownName" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="receiverCompany" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="remark" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
<field name="pickupBeginTime" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
</group>
<group>
<field name="logistics_status"/>
<field name="carrier_id"/>
<field name="carrier_tracking_ref"/>
<field name="bill_show" attrs="{'invisible': [('check_out', '!=', 'OUT')]}" string='面单下载'/>
<field name="bill_show" widget="pdf_viewer" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
</group>
</group>
</page>
</xpath>
<xpath expr="//group//field[@name='group_id']" position="after">
<field name="bill_show" widget="pdf_viewer" attrs="{'invisible': [('check_out', '!=', 'OUT')]}"/>
</xpath>
<!-- <xpath expr="//group[@name='other_infos']" position="after"> -->
<!-- <div> -->
<!-- <button string="京东物流下单" name="create_order" type="object" confirm="是否确认物流下单" class="btn-primary"/> -->
<!-- </div> -->
<!-- <div> -->
<!-- <button string="获取物流面单" name="get_bill" type="object" confirm="是否获取物流面单" class="btn-primary"/> -->
<!-- </div> -->
<!-- </xpath> -->
</field>
</record>
</odoo>

View File

@@ -122,7 +122,7 @@ class ResMrpBomMo(models.Model):
# 查bom的原材料
def get_raw_bom(self, product):
raw_bom = self.env['product.product'].search(
[('categ_id.type', '=', '原材料'), ('materials_type_id', '=', product.materials_type_id.id)])
[('categ_id.type', '=', '原材料'), ('materials_type_id', '=', product.materials_type_id.id)],limit=1)
return raw_bom

View File

@@ -22,6 +22,16 @@
<field name="company_id" ref="base.main_company"/>
</record>
<record id="stock_location_tool_dismantle" model="stock.location">
<field name="name">拆解</field>
<field name="location_id" ref="stock.stock_location_locations_virtual"/>
<field name="usage">internal</field>
<field name="barcode">DJCJ</field>
<field name="scrap_location">true</field>
<field name="active">true</field>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="after_assembly_picking_in" model="stock.picking.type">
<field name="name">刀具组装入库</field>

View File

@@ -1,6 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data>
<record id="mrp.product_template_action" model="ir.actions.act_window">
<field name="context">
{"search_default_categ_id":1,"search_default_consumable": 1, 'default_detailed_type': 'product'}
</field>
</record>
<record model="ir.ui.view" id="view_sale_product_template_form_inherit_sf">
<field name="name">product.template.form.inherit.sf</field>
<field name="model">product.template</field>
@@ -10,6 +15,7 @@
<field name='categ_id' class="custom_required" attrs="{'readonly': [('id', '!=', False)]}"/>
<field name='is_bfm' invisible="1"/>
<field name='categ_type' invisible="1"/>
<field name='part_number' attrs="{'invisible': [('categ_type', '!=', '成品')]}"/>
<field name='manual_quotation' attrs="{'invisible':[('upload_model_file', '=', [])]}"/>
<field name="upload_model_file"
widget="many2many_binary"
@@ -31,9 +37,11 @@
options="{'no_create': True}"
attrs="{'invisible': [('categ_type', '!=', '刀具')],'required': [('categ_type', '=', '刀具')],'readonly': [('id', '!=', False)]}"
placeholder="请选择"/>
<field name="brand_id" options="{'no_create': True}" placeholder="请选择"
attrs="{'invisible': [('categ_type', '!=', '刀具')],'required': [('categ_type', '=', '刀具')],'readonly': [('id', '!=', False)]}"/>
<field name="cutting_tool_model_id" placeholder="请选择" class="custom_required"
options="{'no_create': True}"
domain="[('cutting_tool_material_id','=',cutting_tool_material_id)]"
domain="[('cutting_tool_material_id','=',cutting_tool_material_id),('brand_id', '=', brand_id)]"
context="{'default_cutting_tool_material_id': cutting_tool_material_id}"
attrs="{'invisible': [('categ_type', '!=', '刀具')],'required': [('categ_type', '=', '刀具')],'readonly': [('id', '!=', False)]}">
</field>
@@ -47,10 +55,10 @@
<field name="fixture_material_id"
attrs="{'invisible': [('categ_type', '!=', '夹具')],'required': [('categ_type', '=', '夹具')]}"
placeholder="请选择" options="{'no_create': True}"/>
<field name="fixture_model_id" string="型号" placeholder="请选择" options="{'no_create': True}"
<field name="fixture_model_id" string="型号名称" placeholder="请选择" options="{'no_create': True}"
attrs="{'invisible': [('categ_type', '!=', '夹具')],'required': [('categ_type', '=', '夹具')]}"
domain="[('fixture_material_id','=',fixture_material_id)]"/>
<field name="specification_fixture_id" string="规格" placeholder="请选择"
<field name="specification_fixture_id" string="物料号" placeholder="请选择"
options="{'no_create': True}"
attrs="{'invisible': [('categ_type', '!=', '夹具')],'required': [('categ_type', '=', '夹具')]}"
domain="[('fixture_model_id','=',fixture_model_id)]"/>
@@ -85,7 +93,8 @@
</div>
<field name="model_volume" string="体积[mm³]"/>
<field name="product_model_type_id" string="模型类型"/>
<field name="model_processing_panel" placeholder="例如R,U" string="加工面板"/>
<field name="model_processing_panel" placeholder="例如R,U" string="加工面板"
readonly="1"/>
<field name="model_machining_precision"/>
<field name="model_process_parameters_ids" string="表面工艺参数"
widget="many2many_tags"
@@ -95,6 +104,16 @@
</group>
</page>
</xpath>
<xpath expr="//field[@name='name']" position="attributes">
<attribute name="attrs">{'readonly': ['|',('id','!=',False),('categ_type', '=',
'刀具')], 'required': True}
</attribute>
</xpath>
<!-- <xpath expr="//field[@name='default_code']" position="attributes">-->
<!-- <attribute name="attrs">{'readonly': [('categ_type', '=', '刀具')], 'invisible':-->
<!-- [('product_variant_count', '>' , 1)]}-->
<!-- </attribute>-->
<!-- </xpath>-->
</field>
</record>
@@ -292,7 +311,7 @@
<field name="cutting_tool_blade_type"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')],'readonly': [('id', '!=', False)]}"/>
<field name="cutting_tool_coarse_medium_fine" string="粗/中/精" placeholder="请选择"
attrs="{'required': [('cutting_tool_type','=','整体式刀具')],'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))],'readonly': [('id', '!=', False)]}"/>
attrs="{'invisible': [('cutting_tool_type', 'not in', ('整体式刀具','刀片'))],'readonly': [('id', '!=', False)]}"/>
<!--整体式刀具-->
<field name="cutting_tool_shank_diameter" string="柄部直径(mm)" class="diameter"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')],'readonly': [('id', '!=', False)]}"/>
@@ -455,7 +474,8 @@
<tree editable="bottom">
<!-- <field name="cutting_speed"-->
<!-- attrs="{'readonly': [('materials_type_id','!=',False)]}"/>-->
<field name="materials_type_id" options="{'no_create': True}" placeholder="请选择"/>
<field name="materials_type_id" options="{'no_create': True}"
placeholder="请选择"/>
<field name="blade_diameter"/>
<field name="feed_per_tooth"/>
</tree>

3
sf_hr/__init__.py Normal file
View File

@@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import models

24
sf_hr/__manifest__.py Normal file
View File

@@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': '机企猫智能工厂 员工管理',
'version': '1.0',
'summary': '智能工厂员工模块',
'sequence': 1,
'category': 'sf',
'website': 'https://www.sf.jikimo.com',
'depends': ['hr'],
'data': [
'views/hr_employee.xml',
'views/res_config_settings_views.xml',
'data/cron_data.xml',
],
'demo': [
],
'qweb': [
],
'license': 'LGPL-3',
'installable': True,
'application': False,
'auto_install': False,
}

15
sf_hr/data/cron_data.xml Normal file
View File

@@ -0,0 +1,15 @@
<odoo>
<data noupdate="1">
<record model="ir.cron" id="ir_cron_employee_info_sync">
<field name="name">员工企微id同步</field>
<field name="model_id" ref="hr.model_hr_employee"/>
<field name="state">code</field>
<field name="code">model._employee_info_sync()</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field name="doall" eval="False"/>
</record>
</data>
</odoo>

4
sf_hr/models/__init__.py Normal file
View File

@@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
from . import hr_employee
from . import res_config_setting

View File

@@ -0,0 +1,26 @@
import logging
import requests
from odoo import models, fields, api, _
_logger = logging.getLogger(__name__)
class JkmPracticeEmployee(models.Model):
_inherit = 'hr.employee'
_description = '员工信息'
we_id = fields.Char(string='企微ID', index=True)
def _employee_info_sync(self):
url = '/api/get/organization'
config = self.env['res.config.settings'].get_values()
ret = requests.post((config['ims_url'] + url), json={}, data={})
result = ret.json()['result']
if result['code'] == 200:
if result['employee_list']:
for employee_info in result['employee_list']:
if employee_info['work_email']:
self.sudo().search([('work_email', '=', employee_info['work_email'])]).write(
{'we_id': employee_info['we_id']})
else:
logging.info('_employee_info_sync error:%s' % result['message'])

View File

@@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
import logging
from odoo import api, fields, models
_logger = logging.getLogger(__name__)
class ResIMSConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
ims_url = fields.Char('综合管理系统访问地址')
@api.model
def get_values(self):
"""
重载获取参数的方法,参数都存在系统参数中
:return:
"""
values = super(ResIMSConfigSettings, self).get_values()
config = self.env['ir.config_parameter'].sudo()
ims_url = config.get_param('ims_url', default='')
values.update(
ims_url=ims_url,
)
return values
def set_values(self):
super(ResIMSConfigSettings, self).set_values()
ir_config = self.env['ir.config_parameter'].sudo()
ir_config.set_param("ims_url", self.ims_url or "")

View File

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<data>
<record id="view_form_employee_extend" model="ir.ui.view">
<field name="name">employee_form</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_form"/>
<field name="arch" type="xml">
<xpath expr="//group//field[@name='work_email']" position="attributes">
<attribute name="required">1</attribute>
</xpath>
<xpath expr="//page[@name='public']" position='after'>
<page string="企业微信">
<group col="2">
<group>
<field name="we_id"/>
</group>
</group>
</page>
</xpath>
</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="res_config_settings_finance_view_form_extend" model="ir.ui.view">
<field name="name">res.config.settings.finance.view.form.extend</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[hasclass('app_settings_block')]/div" position="before">
<div>
<h2>综合管理系统接口配置</h2>
<div class="row mt16 o_settings_container" id="jd_api">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane"/>
<div class="o_setting_right_pane">
<div class="text-muted">
<label for="ims_url"/>
<field name="ims_url"/>
</div>
</div>
</div>
</div>
</div>
</xpath>
</field>
</record>
</data>
</odoo>

View File

@@ -1,2 +1,3 @@
from . import models
from . import wizard
from . import controllers

View File

@@ -30,6 +30,7 @@
'views/machine_info_present.xml',
'views/delivery_record.xml',
'views/res_config_settings_views.xml',
'views/maintenance_views.xml',
],
'assets': {

View File

@@ -0,0 +1 @@
from . import controllers

File diff suppressed because it is too large Load Diff

View File

@@ -2,3 +2,4 @@ from . import ftp_client
from . import ftp_operate
from . import py2opcua
from . import res_config_setting
from . import mrp_workorder

View File

@@ -121,130 +121,189 @@ class Machine_ftp(models.Model):
"""
_inherit = 'maintenance.equipment'
# 机床首次上线时间(默认取值2024年08月01日零点)
def _get_default_online_time(self):
return datetime(2024, 1, 1, 0, 0, 0)
first_online_time = fields.Datetime(string='首次上线时间', default=_get_default_online_time)
# workorder_ids = fields.One2many('mrp.workorder', 'machine_tool_id', string='工单')
# 机床配置项目
# ftp相关
ftp_num = fields.Char('ftp账号')
ftp_pwd = fields.Char('ftp密码')
ftp_host = fields.Char('ftp地址')
ftp_port = fields.Integer('ftp端口')
ftp_remote_path = fields.Char('机床ftp路径')
# 补偿值写入相关
x_compensation_node = fields.Char('x补偿值节点')
y_compensation_node = fields.Char('y补偿值节点')
# 数采配置相关
machine_ip = fields.Char('机床IP')
machine_signed = fields.Char('机床刷新间隔')
machine_status = fields.Char('机床在线状态')
machine_cnc_type = fields.Char('机床CNC型号')
machine_axis_count = fields.Char('机床轴总数')
machine_run_status = fields.Char('机床运行状态')
machine_emg_status = fields.Char('机床急停状态')
machine_cut_status = fields.Char('机床当前切削状态')
machine_mode = fields.Char('机床当前操作模式')
machine_spindle_load = fields.Char('机床主轴负载')
machine_x_mach = fields.Char('机床X轴机械坐标')
machine_x_abs_mach = fields.Char('机床X轴当前位置')
machine_x_rel_mach = fields.Char('机床X轴相对工件坐标')
machine_x_dis_mach = fields.Char('机床X轴目标距离')
machine_x_axis_load = fields.Char('机床X轴伺服轴负载')
machine_y_mach = fields.Char('机床Y轴机械坐标')
machine_y_abs_mach = fields.Char('机床Y轴当前位置')
machine_y_rel_mach = fields.Char('机床Y轴相对工件坐标')
machine_y_dis_mach = fields.Char('机床Y轴目标距离')
machine_y_axis_load = fields.Char('机床Y轴伺服轴负载')
machine_z_mach = fields.Char('机床Z轴机械坐标')
machine_z_abs_mach = fields.Char('机床Z轴当前位置')
machine_z_rel_mach = fields.Char('机床Z轴相对工件坐标')
machine_z_dis_mach = fields.Char('机床Z轴目标距离')
machine_z_axis_load = fields.Char('机床Z轴伺服轴负载')
machine_tool_num = fields.Char('机床当前刀位号')
machine_program = fields.Char('机床主程序名称')
machine_current_prg = fields.Char('机床当前执行指令')
machine_prg_seq = fields.Char('机床当前执行语句号')
machine_spindle_speed_set = fields.Char('机床设定主轴速度')
machine_act_spindle_speed = fields.Char('机床实际主轴转速')
machine_feed_speed_set = fields.Char('机床设定进给速度')
machine_act_feed_speed = fields.Char('机床实际进给速度')
machine_spindle_feed = fields.Char('机床主轴倍率')
machine_feed_rate = fields.Char('机床进给倍率')
machine_rapid_feed = fields.Char('机床快速移动倍率')
machine_run_time = fields.Char('机床运行时间')
machine_cut_time = fields.Char('机床切削时间')
machine_keep_alive_time = fields.Char('机床上电时间')
machine_circle_time = fields.Char('机床循环时间')
machine_product_counts = fields.Char('机床加工件数')
machine_system_date = fields.Char('机床系统日期')
machine_system_time = fields.Char('机床系统时间')
machine_alarm_msg = fields.Char('机床系统报警')
# # 机床配置项目
# # ftp相关
# ftp_num = fields.Char('ftp账号')
# ftp_pwd = fields.Char('ftp密码')
# ftp_host = fields.Char('ftp地址')
# ftp_port = fields.Integer('ftp端口')
# ftp_remote_path = fields.Char('机床ftp路径')
# # 补偿值写入相关
# x_compensation_node = fields.Char('x补偿值节点')
# y_compensation_node = fields.Char('y补偿值节点')
# # 数采配置相关
# machine_ip = fields.Char('机床IP')
# machine_signed = fields.Char('机床刷新间隔')
# machine_status = fields.Char('机床在线状态')
# machine_cnc_type = fields.Char('机床CNC型号')
# machine_axis_count = fields.Char('机床轴总数')
# machine_run_status = fields.Char('机床运行状态')
# machine_emg_status = fields.Char('机床急停状态')
# machine_cut_status = fields.Char('机床当前切削状态')
# machine_mode = fields.Char('机床当前操作模式')
# machine_spindle_load = fields.Char('机床主轴负载')
# machine_x_mach = fields.Char('机床X轴机械坐标')
# machine_x_abs_mach = fields.Char('机床X轴当前位置')
# machine_x_rel_mach = fields.Char('机床X轴相对工件坐标')
# machine_x_dis_mach = fields.Char('机床X轴目标距离')
# machine_x_axis_load = fields.Char('机床X轴伺服轴负载')
# machine_y_mach = fields.Char('机床Y轴机械坐标')
# machine_y_abs_mach = fields.Char('机床Y轴当前位置')
# machine_y_rel_mach = fields.Char('机床Y轴相对工件坐标')
# machine_y_dis_mach = fields.Char('机床Y轴目标距离')
# machine_y_axis_load = fields.Char('机床Y轴伺服轴负载')
# machine_z_mach = fields.Char('机床Z轴机械坐标')
# machine_z_abs_mach = fields.Char('机床Z轴当前位置')
# machine_z_rel_mach = fields.Char('机床Z轴相对工件坐标')
# machine_z_dis_mach = fields.Char('机床Z轴目标距离')
# machine_z_axis_load = fields.Char('机床Z轴伺服轴负载')
# machine_tool_num = fields.Char('机床当前刀位号')
# machine_program = fields.Char('机床主程序名称')
# machine_current_prg = fields.Char('机床当前执行指令')
# machine_prg_seq = fields.Char('机床当前执行语句号')
# machine_spindle_speed_set = fields.Char('机床设定主轴速度')
# machine_act_spindle_speed = fields.Char('机床实际主轴转速')
# machine_feed_speed_set = fields.Char('机床设定进给速度')
# machine_act_feed_speed = fields.Char('机床实际进给速度')
# machine_spindle_feed = fields.Char('机床主轴倍率')
# machine_feed_rate = fields.Char('机床进给倍率')
# machine_rapid_feed = fields.Char('机床快速移动倍率')
# machine_run_time = fields.Char('机床运行时间')
# machine_cut_time = fields.Char('机床切削时间')
# machine_keep_alive_time = fields.Char('机床上电时间')
# machine_circle_time = fields.Char('机床循环时间')
# machine_product_counts = fields.Char('机床加工件数')
# machine_system_date = fields.Char('机床系统日期')
# machine_system_time = fields.Char('机床系统时间')
# machine_alarm_msg = fields.Char('机床系统报警')
# 刀位配置
tool_num1 = fields.Char('刀位1')
tool_num2 = fields.Char('刀位2')
tool_num3 = fields.Char('刀位3')
tool_num4 = fields.Char('刀位4')
tool_num5 = fields.Char('刀位5')
tool_num6 = fields.Char('刀位6')
tool_num7 = fields.Char('刀位7')
tool_num8 = fields.Char('刀位8')
tool_num9 = fields.Char('刀位9')
tool_num10 = fields.Char('刀位10')
tool_num11 = fields.Char('刀位11')
tool_num12 = fields.Char('刀位12')
tool_num13 = fields.Char('刀位13')
tool_num14 = fields.Char('刀位14')
tool_num15 = fields.Char('刀位15')
tool_num16 = fields.Char('刀位16')
tool_num17 = fields.Char('刀位17')
tool_num18 = fields.Char('刀位18')
tool_num19 = fields.Char('刀位19')
tool_num20 = fields.Char('刀位20')
tool_num21 = fields.Char('刀位21')
tool_num22 = fields.Char('刀位22')
tool_num23 = fields.Char('刀位23')
tool_num24 = fields.Char('刀位24')
# # 刀位配置
# tool_num1 = fields.Char('刀位1')
# tool_num2 = fields.Char('刀位2')
# tool_num3 = fields.Char('刀位3')
# tool_num4 = fields.Char('刀位4')
# tool_num5 = fields.Char('刀位5')
# tool_num6 = fields.Char('刀位6')
# tool_num7 = fields.Char('刀位7')
# tool_num8 = fields.Char('刀位8')
# tool_num9 = fields.Char('刀位9')
# tool_num10 = fields.Char('刀位10')
# tool_num11 = fields.Char('刀位11')
# tool_num12 = fields.Char('刀位12')
# tool_num13 = fields.Char('刀位13')
# tool_num14 = fields.Char('刀位14')
# tool_num15 = fields.Char('刀位15')
# tool_num16 = fields.Char('刀位16')
# tool_num17 = fields.Char('刀位17')
# tool_num18 = fields.Char('刀位18')
# tool_num19 = fields.Char('刀位19')
# tool_num20 = fields.Char('刀位20')
# tool_num21 = fields.Char('刀位21')
# tool_num22 = fields.Char('刀位22')
# tool_num23 = fields.Char('刀位23')
# tool_num24 = fields.Char('刀位24')
# 机床采集项目
timestamp = fields.Datetime('时间戳', readonly=True)
signed = fields.Integer('刷新间隔', readonly=True)
status = fields.Boolean('在线状态', readonly=True)
time_on = fields.Char('总在线时长', readonly=True)
time_on_now = fields.Char('本次在线时长', readonly=True)
tool_num = fields.Integer('当前刀具', readonly=True)
program = fields.Char('当前程序', readonly=True)
run_status = fields.Selection([('0', '空闲中'), ('1', '加工中'), ('2', '加工中'), ('3', '加工中')], string='运行状态',
readonly=True, default='0')
run_time = fields.Char('总运行时长', readonly=True)
cut_time = fields.Char('切削时', readonly=True)
cut_status = fields.Selection([('0', '未切削'), ('1', '切削中'), ('2', '切削中'), ('3', '切削中')], string='切削状态',
readonly=True, default='0')
spindle_speed = fields.Char('主轴转速', readonly=True)
status = fields.Boolean('机床在线状态', readonly=True)
# run_status = fields.Selection([('0', '空闲中'), ('1', '加工中'), ('2', '加工中'), ('3', '加工中')], string='机床运行状态',
# readonly=True, default='0')
run_status = fields.Char('机床运行状态', readonly=True)
run_time = fields.Char('机床累计运行时长', readonly=True)
# 机床系统日期
system_date = fields.Char('机床系统日期', readonly=True)
# 机床系统时间
system_time = fields.Char('机床系统时间', readonly=True)
cut_time = fields.Char('机床累计切削时', readonly=True)
# cut_status = fields.Selection([('0', '未切削'), ('1', '切削中'), ('2', '切削中'), ('3', '切削中')], string='机床当前切削状态',
# readonly=True, default='0')
cut_status = fields.Char('机床当前切削状态', readonly=True)
# 当前程序名
program = fields.Char('机床当前程序', readonly=True)
# 当前刀具号
tool_num = fields.Integer('机床当前刀具号', readonly=True)
# 机床通电开机时间, 机床加工件数, 机床当前操作模式, 开始加工时间, 结束加工时间, 加工程序开始时间, 加工程序结束时间, 待机开始时间,
# 待机结束时间, 机床离线开始时间, 机床离线结束时间, 机床急停状态, 机床主程序名称, 程序运行的状态, 机床当前执行指令, 机床当前执行语句号
# 机床X轴当前位置, 机床Y轴当前位置, 机床Z轴当前位置
machine_power_on_time = fields.Char('机床通电开机时间', readonly=True)
product_counts = fields.Char('机床加工件数', readonly=True)
mode = fields.Char('机床当前操作模式', readonly=True)
start_time = fields.Char('开始加工时间', readonly=True)
end_time = fields.Char('结束加工时间', readonly=True)
program_start_time = fields.Char('加工程序开始时间', readonly=True)
program_end_time = fields.Char('加工程序结束时间', readonly=True)
standby_start_time = fields.Char('待机开始时间', readonly=True)
standby_end_time = fields.Char('待机结束时间', readonly=True)
offline_start_time = fields.Char('机床离线开始时间', readonly=True)
offline_end_time = fields.Char('机床离线结束时间', readonly=True)
emg_status = fields.Char('机床急停状态', readonly=True)
program_name = fields.Char('机床主程序名称', readonly=True)
program_status = fields.Char('程序运行状态', readonly=True)
current_program = fields.Char('机床当前执行指令', readonly=True)
current_program_seq = fields.Char('机床当前执行语句号', readonly=True)
x_abs_pos = fields.Char('机床X轴当前位置(mm)', readonly=True)
y_abs_pos = fields.Char('机床Y轴当前位置(mm)', readonly=True)
z_abs_pos = fields.Char('机床Z轴当前位置(mm)', readonly=True)
tool_num_process_time1 = fields.Char('刀位1', readonly=True, default='0')
tool_num_process_time2 = fields.Char('刀位2', readonly=True, default='0')
tool_num_process_time3 = fields.Char('刀位3', readonly=True, default='0')
tool_num_process_time4 = fields.Char('刀位4', readonly=True, default='0')
tool_num_process_time5 = fields.Char('刀位5', readonly=True, default='0')
tool_num_process_time6 = fields.Char('刀位6', readonly=True, default='0')
tool_num_process_time7 = fields.Char('刀位7', readonly=True, default='0')
tool_num_process_time8 = fields.Char('刀位8', readonly=True, default='0')
tool_num_process_time9 = fields.Char('刀位9', readonly=True, default='0')
tool_num_process_time10 = fields.Char('刀位10', readonly=True, default='0')
tool_num_process_time11 = fields.Char('刀位11', readonly=True, default='0')
tool_num_process_time12 = fields.Char('刀位12', readonly=True, default='0')
tool_num_process_time13 = fields.Char('刀位13', readonly=True, default='0')
tool_num_process_time14 = fields.Char('刀位14', readonly=True, default='0')
tool_num_process_time15 = fields.Char('刀位15', readonly=True, default='0')
tool_num_process_time16 = fields.Char('刀位16', readonly=True, default='0')
tool_num_process_time17 = fields.Char('刀位17', readonly=True, default='0')
tool_num_process_time18 = fields.Char('刀位18', readonly=True, default='0')
tool_num_process_time19 = fields.Char('刀位19', readonly=True, default='0')
tool_num_process_time20 = fields.Char('刀位20', readonly=True, default='0')
tool_num_process_time21 = fields.Char('刀位21', readonly=True, default='0')
tool_num_process_time22 = fields.Char('刀位22', readonly=True, default='0')
tool_num_process_time23 = fields.Char('刀位23', readonly=True, default='0')
tool_num_process_time24 = fields.Char('刀位24', readonly=True, default='0')
# 机床设定进给速度, 机床实际进给速度, 机床设定主轴转速, 机床实际主轴转速, 机床主轴负载, 机床X轴伺服轴负载, 机床Y轴伺服轴负载
# 机床Z轴伺服轴负载, 机床快速移动倍率, 机床进给倍率, 机床X轴机械坐标, 机床Y轴机械坐标, 机床Z轴机械坐标, 机床X轴相对工件坐标
# 机床Y轴相对工件坐标, 机床Z轴相对工件坐标, 机床X轴目标距离, 机床Y轴目标距离, 机床Z轴目标距离
feed_speed_set = fields.Char('机床设定进给速度(mm/min)', readonly=True)
act_feed_speed = fields.Char('机床实际进给速度(mm/min)', readonly=True)
spindle_speed_set = fields.Char('机床设定主轴转速(r/min)', readonly=True)
act_spindle_speed = fields.Char('机床实际主轴转速(r/min)', readonly=True)
spindle_load = fields.Char('机床主轴负载(%)', readonly=True)
x_axis_load = fields.Char('机床X轴伺服轴负载(%)', readonly=True)
y_axis_load = fields.Char('机床Y轴伺服轴负载(%)', readonly=True)
z_axis_load = fields.Char('机床Z轴伺服轴负载(%)', readonly=True)
rapid_feed = fields.Char('机床快速移动倍率(%)', readonly=True)
feed_rate = fields.Char('机床进给倍率(%)', readonly=True)
x_mach_coord = fields.Char('机床X轴机械坐标(mm)', readonly=True)
y_mach_coord = fields.Char('机床Y轴机械坐标(mm)', readonly=True)
z_mach_coord = fields.Char('机床Z轴机械坐标(mm)', readonly=True)
x_rel_coord = fields.Char('机床X轴相对工件坐标(mm)', readonly=True)
y_rel_coord = fields.Char('机床Y轴相对工件坐标(mm)', readonly=True)
z_rel_coord = fields.Char('机床Z轴相对工件坐标(mm)', readonly=True)
x_dis_coord = fields.Char('机床X轴目标距离(mm)', readonly=True)
y_dis_coord = fields.Char('机床Y轴目标距离(mm)', readonly=True)
z_dis_coord = fields.Char('机床Z轴目标距离(mm)', readonly=True)
# 故障报警时间, 故障报警信息, 故障消除时间(复原时间)
alarm_time = fields.Char('故障报警时间', readonly=True)
alarm_msg = fields.Char('故障报警信息', readonly=True)
clear_time = fields.Char('故障消除时间(复原时间)', readonly=True)
# # 开动率
run_rate = fields.Char('开动率', readonly=True)
# 同步CNC设备到oee
def sync_oee(self):
"""
同步CNC设备到oee
:return:
"""
for record in self:
record.ensure_one()
cnc_oee_dict = {
'equipment_id': record.id,
'type_id': record.type_id.id,
'machine_tool_picture': record.machine_tool_picture,
'equipment_code': record.code,
'function_type': record.function_type,
}
if self.env['maintenance.equipment.oee.logs'].search([('equipment_id', '=', record.id)]):
self.env['maintenance.equipment.oee.logs'].write(cnc_oee_dict)
else:
self.env['maintenance.equipment.oee.logs'].create(cnc_oee_dict)
class WorkCenterBarcode(models.Model):
@@ -259,39 +318,59 @@ class WorkCenterBarcode(models.Model):
button_compensation_state = fields.Boolean(string='是否已经补偿', readonly=True)
button_up_all_state = fields.Boolean(string='是否已经全部下发', readonly=True)
machine_tool_id = fields.Many2one('sf.machine_tool.type', string='机床')
machine_tool_name = fields.Char(string='机床名称', default='未知机床', compute='_run_info', readonly=True)
machine_tool_type_id = fields.Char(string='机床型号', default='未知型号', compute='_run_info', readonly=True)
machine_tool_status = fields.Boolean(string='在线状态', compute='_run_info', readonly=True)
# machine_tool_name = fields.Char(string='机床名称', default='未知机床', compute='_run_info', readonly=True)
# machine_tool_type_id = fields.Char(string='机床型号', default='未知型号', compute='_run_info', readonly=True)
# machine_tool_status = fields.Boolean(string='在线状态', compute='_run_info', readonly=True)
# machine_tool_run_status = fields.Selection([('0', '关机中'), ('1', '加工中'), ('2', '加工中'), ('3', '加工中')],
# string='运行状态', compute='_run_info', readonly=True, default='0')
# machine_tool_timestamp = fields.Datetime('时间戳', compute='_run_info', readonly=True)
# machine_tool_time_on = fields.Char('总在线时长', compute='_run_info', readonly=True)
# machine_tool_time_on_now = fields.Char('本次在线时长', compute='_run_info', readonly=True)
# machine_tool_tool_num = fields.Integer('当前刀具', compute='_run_info', readonly=True)
# machine_tool_program = fields.Char('当前程序', compute='_run_info', readonly=True)
# machine_tool_machine_ip = fields.Char('机床IP', compute='_run_info', readonly=True)
# machine_tool_cut_status = fields.Selection([('0', '未切削'), ('1', '切削中'), ('2', '切削中'), ('3', '切削中')],
# string='切削状态', compute='_run_info', readonly=True, default='0')
# machine_tool_compensation_value_x = fields.Char('x补偿值', compute='_run_info', readonly=True)
# machine_tool_compensation_value_y = fields.Char('y补偿值', compute='_run_info', readonly=True)
machine_tool_name = fields.Char(string='机床名称', default='未知机床', readonly=True)
machine_tool_type_id = fields.Char(string='机床型号', default='未知型号', readonly=True)
machine_tool_status = fields.Boolean(string='在线状态', readonly=True)
machine_tool_run_status = fields.Selection([('0', '关机中'), ('1', '加工中'), ('2', '加工中'), ('3', '加工中')],
string='运行状态', compute='_run_info', readonly=True, default='0')
machine_tool_timestamp = fields.Datetime('时间戳', compute='_run_info', readonly=True)
machine_tool_time_on = fields.Char('总在线时长', compute='_run_info', readonly=True)
machine_tool_time_on_now = fields.Char('本次在线时长', compute='_run_info', readonly=True)
machine_tool_tool_num = fields.Integer('当前刀具', compute='_run_info', readonly=True)
machine_tool_program = fields.Char('当前程序', compute='_run_info', readonly=True)
machine_tool_machine_ip = fields.Char('机床IP', compute='_run_info', readonly=True)
string='运行状态', readonly=True, default='0')
machine_tool_timestamp = fields.Datetime('时间戳', readonly=True)
machine_tool_time_on = fields.Char('总在线时长', readonly=True)
machine_tool_time_on_now = fields.Char('本次在线时长', readonly=True)
machine_tool_tool_num = fields.Integer('当前刀具', readonly=True)
machine_tool_program = fields.Char('当前程序', readonly=True)
machine_tool_machine_ip = fields.Char('机床IP', readonly=True)
machine_tool_cut_status = fields.Selection([('0', '未切削'), ('1', '切削中'), ('2', '切削中'), ('3', '切削中')],
string='切削状态', compute='_run_info', readonly=True, default='0')
machine_tool_compensation_value_x = fields.Char('x补偿值', compute='_run_info', readonly=True)
machine_tool_compensation_value_y = fields.Char('y补偿值', compute='_run_info', readonly=True)
string='切削状态', readonly=True, default='0')
machine_tool_compensation_value_x = fields.Char('x补偿值', readonly=True)
machine_tool_compensation_value_y = fields.Char('y补偿值', readonly=True)
# 工单状态
delivery_records = fields.One2many('delivery.record', 'workorder_id', string="下发记录")
@api.depends('equipment_id.timestamp')
def _run_info(self):
# self.machine_tool_name = '1号机床'
self.machine_tool_name = self.equipment_id.name
self.machine_tool_type_id = self.equipment_id.type_id.name
self.machine_tool_status = self.equipment_id.status
self.machine_tool_run_status = self.equipment_id.run_status
self.machine_tool_timestamp = self.equipment_id.timestamp
self.machine_tool_time_on = self.equipment_id.time_on
self.machine_tool_time_on_now = self.equipment_id.time_on_now
self.machine_tool_tool_num = self.equipment_id.tool_num
self.machine_tool_program = self.equipment_id.program
self.machine_tool_machine_ip = self.equipment_id.machine_ip
self.machine_tool_cut_status = self.equipment_id.cut_status
self.machine_tool_compensation_value_x = self.compensation_value_x
self.machine_tool_compensation_value_y = self.compensation_value_y
# self.machine_tool_name = self.equipment_id.name
# self.machine_tool_type_id = self.equipment_id.type_id.name
# self.machine_tool_status = self.equipment_id.status
# self.machine_tool_run_status = self.equipment_id.run_status
# self.machine_tool_timestamp = self.equipment_id.timestamp
# self.machine_tool_time_on = self.equipment_id.time_on
# self.machine_tool_time_on_now = self.equipment_id.time_on_now
# self.machine_tool_tool_num = self.equipment_id.tool_num
# self.machine_tool_program = self.equipment_id.program
# self.machine_tool_machine_ip = self.equipment_id.machine_ip
# self.machine_tool_cut_status = self.equipment_id.cut_status
# self.machine_tool_compensation_value_x = self.compensation_value_x
# self.machine_tool_compensation_value_y = self.compensation_value_y
pass
def compensation(self):

View File

@@ -0,0 +1,38 @@
import re
from odoo import fields, models, api
class ResMrpWorkOrder(models.Model):
_inherit = 'mrp.workorder'
mixed_search_field = fields.Char(string='坯料产品名称/RFID')
@api.model
def web_read_group(self, domain, fields, groupby, limit=None, offset=0, orderby=False,
lazy=True, expand=False, expand_limit=None, expand_orderby=False):
domain = domain or []
for index, item in enumerate(domain):
if isinstance(item, list):
if item[0] == 'mixed_search_field':
if self._is_rfid_code(item[2]):
domain[index] = ['rfid_code', item[1], item[2]]
else:
domain[index] = ['product_tmpl_name', item[1], item[2]]
return super(ResMrpWorkOrder, self).web_read_group(domain, fields, groupby, limit=limit, offset=offset, orderby=orderby,
lazy=lazy, expand=expand, expand_limit=expand_limit, expand_orderby=expand_orderby)
def _is_rfid_code(self, tag):
"""
判断是否是rfid_code
"""
# 基于长度判断假设RFID标签长度为10到16个字符
if not 10 <= len(tag) <= 16:
return False
# 基于字符集判断(仅包含数字和字母)
if not re.match("^[0-9]*$", tag):
return False
return True

View File

@@ -8,11 +8,15 @@ _logger = logging.getLogger(__name__)
class ResBFMConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
bfm_url = fields.Selection(
[("https://bfm.cs.jikimo.com", "开发环境(https://bfm.cs.jikimo.com)"),
("https://bfm.t.jikimo.com", "测试环境(https://bfm.t.jikimo.com)"),
# ("正式环境", "https://bfm.jikimo.com")], string='bfm环境', store=True)
("https://bfm.jikimo.com", "正式环境(https://bfm.jikimo.com)")], string='bfm环境', store=True)
# bfm_url = fields.Selection(
# [("https://bfm.cs.jikimo.com", "开发环境(https://bfm.cs.jikimo.com)"),
# ("https://bfm.t.jikimo.com", "测试环境(https://bfm.t.jikimo.com)"),
# ("https://bfm.r.jikimo.com", "预发布环境(https://bfm.r.jikimo.com)"),
# # ("正式环境", "https://bfm.jikimo.com")], string='bfm环境', store=True)
# ("https://bfm.jikimo.com", "正式环境(https://bfm.jikimo.com)")], string='bfm环境', store=True)
bfm_url_new = fields.Char('业务平台环境路径', placeholder='请输入当前对应的业务平台环境路径')
get_check_file_path = fields.Char('获取检查文件路径', default='')
@api.model
def get_values(self):
@@ -22,14 +26,17 @@ class ResBFMConfigSettings(models.TransientModel):
"""
values = super(ResBFMConfigSettings, self).get_values()
config = self.env['ir.config_parameter'].sudo()
bfm_url = config.get_param('bfm_url', default='')
bfm_url_new = config.get_param('bfm_url_new', default='')
get_check_file_path = config.get_param('get_check_file_path', default='')
values.update(
bfm_url=bfm_url,
bfm_url_new=bfm_url_new,
get_check_file_path=get_check_file_path
)
return values
def set_values(self):
super(ResBFMConfigSettings, self).set_values()
ir_config = self.env['ir.config_parameter'].sudo()
ir_config.set_param("bfm_url", self.bfm_url or "")
ir_config.set_param("bfm_url_new", self.bfm_url_new or "")
ir_config.set_param("get_check_file_path", self.get_check_file_path or "")

View File

@@ -25,6 +25,11 @@
<filter string="人工编程" name="manual_quotation" domain="[('manual_quotation', '=', True)]"/>
<filter string="自动编程" name="no_manual_quotation" domain="[('manual_quotation', '=', False)]"/>
</xpath>
<xpath expr="//field[@name='production_id']" position="before">
<field name="mixed_search_field"/>
<field name="product_tmpl_name"/>
<field name="rfid_code"/>
</xpath>
</field>
</record>
</odoo>

View File

@@ -5,39 +5,46 @@
<field name="model">mrp.workorder</field>
<field name="inherit_id" ref="sf_manufacturing.view_mrp_production_workorder_tray_form_inherit_sf"/>
<field name="arch" type="xml">
<xpath expr="//header" position="inside">
<button string="程序下载" name="cnc_file_download" type="object" class="oe_highlight" attrs='{"invisible": ["|",
("user_permissions","=",False),("routing_type","!=","CNC加工")]}'/>
</xpath>
<xpath expr="//page//field[@name='cnc_ids']" position="before">
<!-- <xpath expr="//header" position="inside">&ndash;&gt;-->
<!-- <button string="程序下载" name="cnc_file_download" type="object" class="oe_highlight" attrs='{"invisible": ["|",-->
<!-- ("user_permissions","=",False),("routing_type","!=","CNC加工")]}'/>-->
<!-- </xpath>-->
<xpath expr="//page//field[@name='cnc_ids']" position="before">
<group>
<group>
<group>
<field name="compensation_value_x"/>
<field name="compensation_value_y"/>
</group>
<div>
<div>
<field name="button_compensation_state" attrs='{"invisible": ["|",
("state","!=","progress"),("user_permissions","=",False)]}'/>
<button string="一键补偿" name="compensation" type="object" confirm="是否确认下发补偿"
class="btn-primary" attrs='{"invisible": ["|",
("state","!=","progress"),("user_permissions","=",False)]}'/>
<span>&#32;</span>
<button string="一键下发" name="up_all" type="object" style="text-align: right;" confirm="是否确认一键下发"
class="btn-primary" context="{'default_workorder_id': id}" attrs='{"invisible": ["|",
("state","!=","progress"),("user_permissions","=",False)]}'/>
<span>&#32;</span>
<button string="合并下发" id="action_up_select" name="%(sf_machine_connect.action_up_select)d"
type="action" class="btn-primary" context="{'default_workorder_id': id}" attrs='{"invisible": ["|",
("state","!=","progress"),("user_permissions","=",False)]}'/>
<span>&#32;</span>
<button string="一键合并下发" name="up_merge_all" type="object" style="text-align: right;" confirm="是否确认一键合并下发"
class="btn-primary" context="{'default_workorder_id': id}" attrs='{"invisible": ["|",
("state","!=","progress"),("user_permissions","=",False)]}'/>
</div>
</div>
<field name="compensation_value_x"/>
<field name="compensation_value_y"/>
</group>
</xpath>
<div>
<div>
<!-- <field name="button_compensation_state" attrs='{"invisible": ["|",-->
<!-- ("state","!=","progress"),("user_permissions","=",False)]}'/>-->
<!-- <span>&#32;</span>-->
<!-- <button name="button_send_program_again" type="object" string="重新下发NC程序"-->
<!-- class="btn-primary"-->
<!-- confirm="是否确认重新下发NC程序"-->
<!-- groups="sf_base.group_sf_order_user,sf_base.group_sf_equipment_user"-->
<!-- attrs="{'invisible': ['|', '|', '|',('routing_type','!=','装夹预调'),('state','in',['done', 'cancel',-->
<!-- 'progress']),('processing_drawing','=',False),('is_send_program_again','=',True)]}"/>-->
<!-- <button string="一键补偿" name="compensation" type="object" confirm="是否确认下发补偿"-->
<!-- class="btn-primary" attrs='{"invisible": ["|",-->
<!-- ("state","!=","progress"),("user_permissions","=",False)]}'/>-->
<!-- <span>&#32;</span>-->
<!-- <button string="一键下发" name="up_all" type="object" style="text-align: right;" confirm="是否确认一键下发"-->
<!-- class="btn-primary" context="{'default_workorder_id': id}" attrs='{"invisible": ["|",-->
<!-- ("state","!=","progress"),("user_permissions","=",False)]}'/>-->
<!-- <span>&#32;</span>-->
<!-- <button string="合并下发" id="action_up_select" name="%(sf_machine_connect.action_up_select)d"-->
<!-- type="action" class="btn-primary" context="{'default_workorder_id': id}" attrs='{"invisible": ["|",-->
<!-- ("state","!=","progress"),("user_permissions","=",False)]}'/>-->
<!-- <span>&#32;</span>-->
<!-- <button string="一键合并下发" name="up_merge_all" type="object" style="text-align: right;" confirm="是否确认一键合并下发"-->
<!-- class="btn-primary" context="{'default_workorder_id': id}" attrs='{"invisible": ["|",-->
<!-- ("state","!=","progress"),("user_permissions","=",False)]}'/>-->
</div>
</div>
</group>
</xpath>
</field>
</record>

View File

@@ -9,9 +9,9 @@
<tree>
<field name="sequence_number"/>
<field name="program_name"/>
<field name="cnc_id" string="文件"/>
<field name="functional_tool_type_id"/>
<field name="cutting_tool_name"/>
<field name="tool_state"/>
<field name="cutting_tool_no"/>
<field name="processing_type"/>
<field name="margin_x_y"/>

View File

@@ -19,7 +19,7 @@
<!-- attrs='{"invisible": ["|",("state","!=","progress"), -->
<!-- ("user_permissions","!=",True)]}'/> -->
<!-- <button string="下发" name="up" type="object" class="btn-primary" confirm="是否确认下发此程序" context="{'default_cnc_ids': cnc_ids}"/> -->
<button string="下发" name="up" type="object" class="btn-primary" confirm="是否确认下发此程序"
<!-- <button string="下发" name="up" type="object" class="btn-primary" confirm="是否确认下发此程序"-->
context="{'default_sf_cnc_processing_id': id}" attrs='{"invisible": ["|",("state","!=","progress"),
("user_permissions","!=",True)]}'/>
<!-- <button string="下发" name="up" type="object" class="btn-primary" confirm="是否确认下发此程序"-->

View File

@@ -13,294 +13,139 @@
<page string="机床运行状态" attrs="{'invisible': [('equipment_type', '!=', '机床')]}">
<group string='状态监控'>
<group>
<field name="timestamp"/>
<field name="signed"/>
<!-- <field name="timestamp"/> -->
<field name="status"/>
<field name="time_on"/>
<field name="time_on_now"/>
</group>
<group>
<field name="run_status"/>
<field name="run_time"/>
<field name="system_date"/>
<field name="first_online_time"/>
</group>
<group>
<field name="cut_status"/>
<field name="cut_time"/>
<!-- <field name="cut_time"/> -->
<field name="program"/>
<field name="tool_num"/>
<field name="spindle_speed"/>
</group>
</group>
<!-- <group string='刀位统计'> -->
<!-- <group> -->
<!-- <group> -->
<!-- <field name="tool_num_process_time1"/> -->
<!-- <field name="tool_num_process_time5"/> -->
<!-- <field name="tool_num_process_time9"/> -->
<!-- <field name="tool_num_process_time13"/> -->
<!-- <field name="tool_num_process_time17"/> -->
<!-- <field name="tool_num_process_time21"/> -->
<!-- </group> -->
<!-- <group> -->
<!-- <field name="tool_num_process_time2"/> -->
<!-- <field name="tool_num_process_time6"/> -->
<!-- <field name="tool_num_process_time10"/> -->
<!-- <field name="tool_num_process_time14"/> -->
<!-- <field name="tool_num_process_time18"/> -->
<!-- <field name="tool_num_process_time22"/> -->
<!-- </group> -->
<!-- </group> -->
<!-- <group> -->
<!-- <group> -->
<!-- <field name="tool_num_process_time3"/> -->
<!-- <field name="tool_num_process_time7"/> -->
<!-- <field name="tool_num_process_time11"/> -->
<!-- <field name="tool_num_process_time15"/> -->
<!-- <field name="tool_num_process_time19"/> -->
<!-- <field name="tool_num_process_time23"/> -->
<!-- </group> -->
<!-- <group> -->
<!-- <field name="tool_num_process_time4"/> -->
<!-- <field name="tool_num_process_time8"/> -->
<!-- <field name="tool_num_process_time12"/> -->
<!-- <field name="tool_num_process_time16"/> -->
<!-- <field name="tool_num_process_time20"/> -->
<!-- <field name="tool_num_process_time24"/> -->
<!-- </group> -->
<!-- </group> -->
<!-- </group> -->
<!-- <div class="o_address_format"> -->
<!-- <label for="tool_num_process_time1" string="刀位1"/> -->
<!-- <field name="tool_num_process_time1" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time2" string="刀位2"/> -->
<!-- <field name="tool_num_process_time2" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time3" string="刀位3"/> -->
<!-- <field name="tool_num_process_time3" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time4" string="刀位4"/> -->
<!-- <field name="tool_num_process_time4" class="o_form_label"/> -->
<!-- <div></div> -->
<!-- <label for="tool_num_process_time5" string="刀位5"/> -->
<!-- <field name="tool_num_process_time5" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time6" string="刀位6"/> -->
<!-- <field name="tool_num_process_time6" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time7" string="刀位7"/> -->
<!-- <field name="tool_num_process_time7" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time8" string="刀位8"/> -->
<!-- <field name="tool_num_process_time8" class="o_form_label"/> -->
<!-- <div></div> -->
<!-- <label for="tool_num_process_time9" string="刀位9"/> -->
<!-- <field name="tool_num_process_time9" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time10" string="刀位10"/> -->
<!-- <field name="tool_num_process_time10" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time11" string="刀位11"/> -->
<!-- <field name="tool_num_process_time11" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time12" string="刀位12"/> -->
<!-- <field name="tool_num_process_time12" class="o_form_label"/> -->
<!-- <div></div> -->
<!-- <label for="tool_num_process_time13" string="刀位13"/> -->
<!-- <field name="tool_num_process_time13" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time14" string="刀位14"/> -->
<!-- <field name="tool_num_process_time14" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time15" string="刀位15"/> -->
<!-- <field name="tool_num_process_time15" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time16" string="刀位16"/> -->
<!-- <field name="tool_num_process_time16" class="o_form_label"/> -->
<!-- <div></div> -->
<!-- <label for="tool_num_process_time17" string="刀位17"/> -->
<!-- <field name="tool_num_process_time17" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time18" string="刀位18"/> -->
<!-- <field name="tool_num_process_time18" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time19" string="刀位19"/> -->
<!-- <field name="tool_num_process_time19" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time20" string="刀位20"/> -->
<!-- <field name="tool_num_process_time20" class="o_form_label"/> -->
<!-- <div></div> -->
<!-- <label for="tool_num_process_time21" string="刀位21"/> -->
<!-- <field name="tool_num_process_time21" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time22" string="刀位22"/> -->
<!-- <field name="tool_num_process_time22" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time23" string="刀位23"/> -->
<!-- <field name="tool_num_process_time23" class="o_form_label"/> -->
<!-- <span>&amp;nbsp;</span> -->
<!-- <label for="tool_num_process_time24" string="刀位24"/> -->
<!-- <field name="tool_num_process_time24" class="o_form_label"/> -->
<!-- </div> -->
<!-- </group> -->
</page>
<page string="机床运行数据" attrs="{'invisible': [('equipment_type', '!=', '机床')]}">
<!-- <group string="机床配置">--> -->
<group string="ftp相关">
<group>
<field name="ftp_num"/>
<field name="ftp_pwd"/>
<field name="ftp_host"/>
</group>
<group>
<field name="ftp_port"/>
<field name="ftp_remote_path"/>
</group>
<group string="运行数据">
<group>
<field name="machine_power_on_time"/>
<field name="product_counts"/>
<field name="mode"/>
<field name="start_time"/>
<field name="end_time"/>
<field name="program_start_time"/>
<field name="program_end_time"/>
<field name="standby_start_time"/>
<field name="standby_end_time"/>
<field name="offline_start_time"/>
<field name="offline_end_time"/>
<field name="emg_status"/>
<field name="program_name"/>
<field name="program_status"/>
<field name="current_program"/>
<field name="current_program_seq"/>
<field name="x_abs_pos"/>
<field name="y_abs_pos"/>
<field name="z_abs_pos"/>
</group>
<group string="补偿值相关">
<group>
<field name="x_compensation_node"/>
</group>
<group>
<field name="y_compensation_node"/>
</group>
<group>
<field name="feed_speed_set"/>
<field name="act_feed_speed"/>
<field name="spindle_speed_set"/>
<field name="act_spindle_speed"/>
<field name="spindle_load"/>
<field name="x_axis_load"/>
<field name="y_axis_load"/>
<field name="z_axis_load"/>
<field name="rapid_feed"/>
<field name="feed_rate"/>
<field name="x_mach_coord"/>
<field name="y_mach_coord"/>
<field name="z_mach_coord"/>
<field name="x_rel_coord"/>
<field name="y_rel_coord"/>
<field name="z_rel_coord"/>
<field name="x_dis_coord"/>
<field name="y_dis_coord"/>
<field name="z_dis_coord"/>
</group>
<group string="数采相关">
<group>
<field name="machine_ip"/>
<field name="machine_signed"/>
<field name="machine_status"/>
<field name="machine_cnc_type"/>
<field name="machine_axis_count"/>
<field name="machine_run_status"/>
<field name="machine_emg_status"/>
<field name="machine_cut_status"/>
<field name="machine_mode"/>
<field name="machine_spindle_load"/>
<field name="machine_x_mach"/>
<field name="machine_x_abs_mach"/>
<field name="machine_x_rel_mach"/>
<field name="machine_x_dis_mach"/>
<field name="machine_x_axis_load"/>
<field name="machine_y_mach"/>
<field name="machine_y_abs_mach"/>
<field name="machine_y_rel_mach"/>
<field name="machine_y_dis_mach"/>
<field name="machine_y_axis_load"/>
<field name="machine_z_mach"/>
<field name="machine_z_abs_mach"/>
</group>
<group>
<field name="machine_z_rel_mach"/>
<field name="machine_z_dis_mach"/>
<field name="machine_z_axis_load"/>
<field name="machine_tool_num"/>
<field name="machine_program"/>
<field name="machine_current_prg"/>
<field name="machine_prg_seq"/>
<field name="machine_spindle_speed_set"/>
<field name="machine_act_spindle_speed"/>
<field name="machine_feed_speed_set"/>
<field name="machine_act_feed_speed"/>
<field name="machine_spindle_feed"/>
<field name="machine_feed_rate"/>
<field name="machine_rapid_feed"/>
<field name="machine_run_time"/>
<field name="machine_cut_time"/>
<field name="machine_keep_alive_time"/>
<field name="machine_circle_time"/>
<field name="machine_product_counts"/>
<field name="machine_system_date"/>
<field name="machine_system_time"/>
<field name="machine_alarm_msg"/>
</group>
</group>
<!-- </group> -->
</page>
<!-- <page string="刀位配置"> -->
<!-- <group string="刀位配置"> -->
</group>
<!-- <group string="ftp相关"> -->
<!-- <group> -->
<!-- <group> -->
<!-- <field name="tool_num1"/> -->
<!-- <field name="tool_num5"/> -->
<!-- <field name="tool_num9"/> -->
<!-- <field name="tool_num13"/> -->
<!-- <field name="tool_num17"/> -->
<!-- <field name="tool_num21"/> -->
<!-- </group> -->
<!-- <group> -->
<!-- <field name="tool_num2"/> -->
<!-- <field name="tool_num6"/> -->
<!-- <field name="tool_num10"/> -->
<!-- <field name="tool_num14"/> -->
<!-- <field name="tool_num18"/> -->
<!-- <field name="tool_num22"/> -->
<!-- </group> -->
<!-- <field name="ftp_num"/> -->
<!-- <field name="ftp_pwd"/> -->
<!-- <field name="ftp_host"/> -->
<!-- </group> -->
<!-- <group> -->
<!-- <group> -->
<!-- <field name="tool_num3"/> -->
<!-- <field name="tool_num7"/> -->
<!-- <field name="tool_num11"/> -->
<!-- <field name="tool_num15"/> -->
<!-- <field name="tool_num19"/> -->
<!-- <field name="tool_num23"/> -->
<!-- </group> -->
<!-- <group> -->
<!-- <field name="tool_num4"/> -->
<!-- <field name="tool_num8"/> -->
<!-- <field name="tool_num12"/> -->
<!-- <field name="tool_num16"/> -->
<!-- <field name="tool_num20"/> -->
<!-- <field name="tool_num24"/> -->
<!-- </group> -->
<!-- <field name="ftp_port"/> -->
<!-- <field name="ftp_remote_path"/> -->
<!-- </group> -->
<!-- </group> -->
<!-- </page> -->
<!-- </notebook> -->
<!-- <group string="补偿值相关"> -->
<!-- <group> -->
<!-- <field name="x_compensation_node"/> -->
<!-- </group> -->
<!-- <group> -->
<!-- <field name="y_compensation_node"/> -->
<!-- </group> -->
<!-- </group> -->
<!-- <group string="数采相关"> -->
<!-- <group> -->
<!-- <field name="machine_ip"/> -->
<!-- <field name="machine_signed"/> -->
<!-- <field name="machine_status"/> -->
<!-- <field name="machine_cnc_type"/> -->
<!-- <field name="machine_axis_count"/> -->
<!-- <field name="machine_run_status"/> -->
<!-- <field name="machine_emg_status"/> -->
<!-- <field name="machine_cut_status"/> -->
<!-- <field name="machine_mode"/> -->
<!-- <field name="machine_spindle_load"/> -->
<!-- <field name="machine_x_mach"/> -->
<!-- <field name="machine_x_abs_mach"/> -->
<!-- <field name="machine_x_rel_mach"/> -->
<!-- <field name="machine_x_dis_mach"/> -->
<!-- <field name="machine_x_axis_load"/> -->
<!-- <field name="machine_y_mach"/> -->
<!-- <field name="machine_y_abs_mach"/> -->
<!-- <field name="machine_y_rel_mach"/> -->
<!-- <field name="machine_y_dis_mach"/> -->
<!-- <field name="machine_y_axis_load"/> -->
<!-- <field name="machine_z_mach"/> -->
<!-- <field name="machine_z_abs_mach"/> -->
<!-- </group> -->
<!-- <group> -->
<!-- <field name="machine_z_rel_mach"/> -->
<!-- <field name="machine_z_dis_mach"/> -->
<!-- <field name="machine_z_axis_load"/> -->
<!-- <field name="machine_tool_num"/> -->
<!-- <field name="machine_program"/> -->
<!-- <field name="machine_current_prg"/> -->
<!-- <field name="machine_prg_seq"/> -->
<!-- <field name="machine_spindle_speed_set"/> -->
<!-- <field name="machine_act_spindle_speed"/> -->
<!-- <field name="machine_feed_speed_set"/> -->
<!-- <field name="machine_act_feed_speed"/> -->
<!-- <field name="machine_spindle_feed"/> -->
<!-- <field name="machine_feed_rate"/> -->
<!-- <field name="machine_rapid_feed"/> -->
<!-- <field name="machine_run_time"/> -->
<!-- <field name="machine_cut_time"/> -->
<!-- <field name="machine_keep_alive_time"/> -->
<!-- <field name="machine_circle_time"/> -->
<!-- <field name="machine_product_counts"/> -->
<!-- <field name="machine_system_date"/> -->
<!-- <field name="machine_system_time"/> -->
<!-- <field name="machine_alarm_msg"/> -->
<!-- </group> -->
<!-- </group> -->
</page>
</xpath>
</field>
</record>
<!-- 刀具寿命 -->
<!-- <record id="view_cutting_tool_inherited" model="ir.ui.view"> -->
<!-- <field name="name">sf_cutting_tool_extension</field> -->
<!-- <field name="model">sf.cutting_tool.type</field> -->
<!-- <field name="inherit_id" ref="sf_base.form_sf_machine_tool_type"/> -->
<!-- <field name="arch" type="xml"> -->
<!-- <xpath expr="//form//group" position="after"> -->
<!-- <group string='刀具寿命'> -->
<!-- <group> -->
<!-- <field name="total_cut_time"/> -->
<!-- <field name="tool_position"/> -->
<!-- </group> -->
<!-- <group> -->
<!-- <field name="predict_life_time"/> -->
<!-- </group> -->
<!-- <div> -->
<!-- <div> -->
<!-- <field name='is_connect_tool_position' invisible='1'/> -->
<!-- <button string="绑定刀位" name="tool_connect_machine" type="object" confirm="是否确认绑定此刀位" -->
<!-- class="btn-primary"/> -->
<!-- attrs='{"invisible": [("is_connect_tool_position","!=", -->
<!-- "False")]}' -->
<!-- <span>&#32;</span> -->
<!-- <button string="解绑刀位" name="tool_unconnect_machine" type="object" confirm="是否解绑此刀位" -->
<!-- class="btn-primary"/> -->
<!-- attrs='{"invisible": [("is_connect_tool_position","!=", -->
<!-- "False")]}' -->
<!-- </div> -->
<!-- </div> -->
<!-- </group> -->
<!-- </xpath> -->
<!-- </field> -->
<!-- </record> -->
</odoo>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<odoo>
<!-- 修改设备列表视图-->
<record id="sf_machine_hr_equipment_view_tree_inherit" model="ir.ui.view">
<field name="name">sf.machine.hr.equipment.view.tree.inherit</field>
<field name="model">maintenance.equipment</field>
<field name="inherit_id" ref="maintenance.hr_equipment_view_tree"/>
<field name="arch" type="xml">
<xpath expr="//tree" position="inside">
<header>
<button name="sync_oee" type="object" string="同步设备至OEE"/>
</header>
</xpath>
</field>
</record>
</odoo>

View File

@@ -14,8 +14,23 @@
<div class="o_setting_left_pane"/>
<div class="o_setting_right_pane">
<div class="text-muted">
<label for="bfm_url" />
<field name="bfm_url" string="访问地址"/>
<label for="bfm_url_new" />
<field name="bfm_url_new" string="业务平台访问地址"/>
</div>
</div>
<!-- </div> -->
</div>
</div>
</div>
<div>
<h2>获取检测报告服务配置</h2>
<div class="row mt16 o_settings_container" id="check_report_config">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane"/>
<div class="o_setting_right_pane">
<div class="text-muted">
<label for="get_check_file_path" />
<field name="get_check_file_path" string="检测报告服务地址"/>
</div>
</div>
<!-- </div> -->
@@ -23,6 +38,18 @@
</div>
</div>
</xpath>
<xpath expr="//div[@id='check_report_config']/div" position="after">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="is_get_detection_file"/>
</div>
<div class="o_setting_right_pane">
<div class="text-muted">
<label for="is_get_detection_file"/>
</div>
</div>
</div>
</xpath>
</field>
</record>
</data>

View File

@@ -14,7 +14,7 @@
<!-- <field name="program_ids" domain="[('workorder_id', '=', workorder_id)]"/>-->
</group>
<footer>
<button string="合并下发" name="confirm_up" type="object" class="btn-primary" confirm="是否确认合并下发"/>
<!-- <button string="合并下发" name="confirm_up" type="object" class="btn-primary" confirm="是否确认合并下发"/>-->
<button string="取消" class="btn-secondary" special="cancel"/>
</footer>
</form>

View File

@@ -24,6 +24,7 @@ class SfEquipmentSaintenanceStandards(models.Model):
remark = fields.Char('备注')
maintenance_type = fields.Selection([('保养', '保养'), ("检修", "检修")], string='类型', default='保养')
name = fields.Char(string='名称')
active = fields.Boolean(default=True)
@api.model_create_multi
def create(self, vals_list):

View File

@@ -38,8 +38,7 @@ class SfMaintenanceEquipment(models.Model):
crea_url = "/api/machine_tool/create"
#AGV运行日志
# AGV运行日志
agv_logs = fields.One2many('maintenance.equipment.agv.log', 'equipment_id', string='AGV运行日志')
# 1212修改后的字段
number_of_axles = fields.Selection(
@@ -117,7 +116,6 @@ class SfMaintenanceEquipment(models.Model):
# num = "%04d" % m
# return num
equipment_maintenance_standards_ids = fields.Many2many('equipment.maintenance.standards',
'sf_maintenance_equipment_ids', string='设备维保标准')
eq_maintenance_id = fields.Many2one('equipment.maintenance.standards', string='设备保养标准',
@@ -179,7 +177,8 @@ class SfMaintenanceEquipment(models.Model):
type_id = fields.Many2one('sf.machine_tool.type', '型号')
state = fields.Selection(
[("正常", "正常"), ("故障停机", "故障停机"), ("计划维保", "计划维保"), ("空闲", "空闲"), ("封存(报废)", "封存(报废)")],
[("正常", "正常"), ("故障停机", "故障停机"), ("计划维保", "计划维保"), ("空闲", "空闲"),
("封存(报废)", "封存(报废)")],
default='正常', string="机床状态")
run_time = fields.Char('总运行时长')
# 0606新增字段
@@ -328,7 +327,7 @@ class SfMaintenanceEquipment(models.Model):
item.tool_diameter_min = item.type_id.tool_diameter_min
item.machine_tool_category = item.type_id.machine_tool_category.id
item.brand_id = item.type_id.brand_id.id
#新增修改字段
# 新增修改字段
item.taper_type_id = item.type_id.taper_type_id.id
item.function_type = item.type_id.function_type
item.a_axis = item.type_id.a_axis
@@ -370,7 +369,6 @@ class SfMaintenanceEquipment(models.Model):
item.image_id = item.type_id.jg_image_id.ids
item.image_lq_id = item.type_id.lq_image_id.ids
# AGV小车设备参数
AGV_L = fields.Char('AGV尺寸(长)')
AGV_W = fields.Char('AGV尺寸(宽)')
@@ -461,18 +459,6 @@ class SfMaintenanceEquipment(models.Model):
original_value = fields.Char('原值')
incomplete_value = fields.Char('残值')
# 注册同步机床
def enroll_machine_tool(self):
sf_sync_config = self.env['res.config.settings'].get_values()
@@ -763,7 +749,7 @@ class SfMaintenanceEquipment(models.Model):
image_id = fields.Many2many('maintenance.equipment.image', 'equipment_id',
domain="[('type', '=', '加工能力')]")
image_lq_id = fields.Many2many('maintenance.equipment.image', 'equipment_lq_id', string='冷却方式',
domain="[('type', '=', '冷却方式')]")
domain="[('type', '=', '冷却方式')]")
class SfRobotAxisNum(models.Model):
@@ -777,4 +763,5 @@ class SfRobotAxisNum(models.Model):
weight = fields.Char('最大负载(kg)')
permissible_load_torque = fields.Char('允许负载扭矩(N-m)')
permissible_inertial_torque = fields.Char('允许惯性扭矩(kg-m²)')
equipment_id = fields.Many2one('maintenance.equipment', string='机器人', domain="[('equipment_type', '=', '机器人')]")
equipment_id = fields.Many2one('maintenance.equipment', string='机器人',
domain="[('equipment_type', '=', '机器人')]")

View File

@@ -10,21 +10,21 @@ class SfMaintenanceLogs(models.Model):
name = fields.Char(string='名称')
type = fields.Selection([('type1', '类型1'), ('type2', '类型2')], string='类型')
brand = fields.Many2one('sf.machine.brand', related='maintenance_equipment_id.brand_id', string='品牌')
maintenance_equipment_id = fields.Many2one('maintenance.equipment', string='设备')
maintenance_equipment_id = fields.Many2one('maintenance.equipment', string='机台号')
maintenance_equipment_oee_id = fields.Many2one('maintenance.equipment.oee', string='设备oee')
code_location = fields.Char(string='编码位置')
fault_type = fields.Selection(
[('电气类', '电气类'), ('机械类', '机械类'), ('程序类', '程序类'), ('系统类', '系统类')], string='故障类型')
fault_code = fields.Char(string='故障代码')
fault_alarm_info = fields.Char(string='故障报警信息')
fault_alarm_info = fields.Text(string='故障报警信息')
alarm_level = fields.Selection([('一级', '一级(严重)'), ('二级', '二级(中等)'), ('三级', '三级(轻微)')],
string='报警级别')
alarm_time = fields.Datetime(string='报警时间')
alarm_time = fields.Datetime(string='故障报警时间')
alarm_way = fields.Selection([('文本提示报警', '文本提示报警'), ('声光报警', '声光报警'), ('图文报警', '图文报警')],
string='报警方式')
fault_process = fields.Text(string='故障处理方法')
operator = fields.Many2one('res.users', string='处理人')
recovery_time = fields.Datetime(string='复原时间')
recovery_time = fields.Datetime(string='故障消除时间')
fault_duration = fields.Float(string='故障时长')
note = fields.Text(string='备注')
active = fields.Boolean('Active', default=True)

View File

@@ -7,20 +7,23 @@ class SfMaintenanceEquipmentOEE(models.Model):
_description = '设备OEE'
name = fields.Char('设备oee')
equipment_id = fields.Many2one('maintenance.equipment', '设备',
equipment_id = fields.Many2one('maintenance.equipment', '机台号',
domain="[('category_id.equipment_type', '=', '机床'),('state_zc', '=', '已注册')]")
type_id = fields.Many2one('sf.machine_tool.type', '型号', related='equipment_id.type_id')
machine_tool_picture = fields.Binary('设备图片', related='equipment_id.machine_tool_picture')
machine_tool_picture = fields.Binary('设备图片', related='equipment_id.machine_tool_picture')
state = fields.Selection(
[("正常", "正常"), ("故障停机", "故障停机"), ("计划维保", "计划维保"), ("空闲", "空闲"),
("封存(报废)", "封存(报废)")],
default='正常', string="机床状态", related='equipment_id.state')
run_time = fields.Float('正常运行总时长(h)')
equipment_time = fields.Float('时长(h)')
done_nums = fields.Integer('累计加工件数')
utilization_rate = fields.Char('开动')
fault_time = fields.Float('故障停机总时长(h)')
run_time = fields.Float('加工时长(h)')
equipment_time = fields.Float('开机时长(h)')
done_nums = fields.Integer('加工件数')
utilization_rate = fields.Char('可用')
fault_time = fields.Float('故障时长')
fault_nums = fields.Integer('故障次数')
# 故障率
fault_rate = fields.Char('故障率')
# 设备故障日志
sf_maintenance_logs_ids = fields.One2many('sf.maintenance.logs', 'maintenance_equipment_oee_id', '设备故障日志',
related='equipment_id.sf_maintenance_logs_ids')
oee_logs = fields.One2many('maintenance.equipment.oee.logs', 'equipment_oee_id', string='运行日志')
@@ -38,12 +41,58 @@ class SfMaintenanceEquipmentOEELog(models.Model):
_name = 'maintenance.equipment.oee.logs'
_description = '设备运行日志'
name = fields.Char('运行日志')
run_time = fields.Datetime('时间')
state = fields.Selection([("开机", "开机"), ("关机", "关机"), ("等待", "等待"), ("开始加工", "开始加工"),
("结束加工", "结束加工"), ("故障", "故障"),
("检修", "检修"), ("保养", "保养")], default="", string="事件/状态")
workorder_id = fields.Char('加工订单')
time = fields.Char('持续时长')
color = fields.Char('颜色', default=1)
equipment_id = fields.Many2one('maintenance.equipment', '机台号', readonly='True')
equipment_code = fields.Char('设备编码', readonly='True')
name = fields.Char('设备名称', readonly='True')
function_type = fields.Selection(
[("ZXJGZX", "钻铣加工中心"), ("CXJGZX", "车削加工中心"), ("FHJGZX", "复合加工中心")],
default="", string="功能类型")
machine_tool_picture = fields.Binary('设备图片')
type_id = fields.Many2one('sf.machine_tool.type', '品牌型号', reaonly='True')
state = fields.Selection([("加工", "加工"), ("关机", "关机"), ("待机", "待机"), ("故障", "故障"),
("检修", "检修"), ("保养", "保养")], default="", string="实时状态")
online_time = fields.Char('开机时长', reaonly='True')
offline_time = fields.Char('关机时长', reaonly='True')
offline_nums = fields.Integer('关机次数', reaonly='True')
# 待机时长
idle_time = fields.Char('待机时长', reaonly='True')
# 待机率
idle_rate = fields.Char('待机率', reaonly='True')
work_time = fields.Char('加工时长', reaonly='True')
work_rate = fields.Char('可用率', reaonly='True')
fault_time = fields.Char('故障时长', reaonly='True')
fault_rate = fields.Char('故障率', reaonly='True')
fault_nums = fields.Integer('故障次数', reaonly='True')
detail_ids = fields.One2many('maintenance.equipment.oee.log.detail', 'log_id', string='日志详情')
# maintenance_time = fields.Char('维保时长')
# work_nums = fields.Integer('加工件数')
equipment_oee_id = fields.Many2one('maintenance.equipment.oee', '设备OEE')
@api.onchange('equipment_id')
def get_name(self):
self.name = self.equipment_id.name
self.equipment_code = self.equipment_id.code
# 设备运行日志详情
class SfMaintenanceEquipmentOEELogDetail(models.Model):
_name = 'maintenance.equipment.oee.log.detail'
_description = '设备运行日志详情'
_order = 'time desc'
# sequence = fields.Integer('序号', related='id')
time = fields.Datetime('时间')
state = fields.Selection([("加工", "加工"), ("关机", "关机"), ("待机", "待机"), ("故障", "故障"),
("检修", "检修"), ("保养", "保养")], default="", string="事件/状态")
production_name = fields.Char('加工工单')
log_id = fields.Many2one('maintenance.equipment.oee.logs', '日志')
# equipment_code = fields.Char('设备编码', related='log_id.equipment_code')
equipment_code = fields.Char('设备编码', readonly='True')

View File

@@ -67,3 +67,6 @@ access_sf_cutting_tool_type_admin_sf_group_equipment_user,sf_cutting_tool_type_a
access_sf_cutting_tool_type_group_purchase_director_sf_group_equipment_user,sf_cutting_tool_type_group_purchase_director,sf_base.model_sf_cutting_tool_type,sf_maintenance.sf_group_equipment_user,1,0,0,0
access_sf_cutting_tool_type_group_sale_director_sf_group_equipment_user,sf_cutting_tool_type_group_sale_director,sf_base.model_sf_cutting_tool_type,sf_maintenance.sf_group_equipment_user,1,0,0,0
access_sf_cutting_tool_type_group_plan_director_sf_group_equipment_user,sf_cutting_tool_type_group_plan_director,sf_base.model_sf_cutting_tool_type,sf_maintenance.sf_group_equipment_user,1,0,0,0
access_maintenance_equipment_oee_logs,maintenance_equipment_oee_logs,model_maintenance_equipment_oee_logs,sf_maintenance.sf_group_equipment_manager,1,1,1,1
access_maintenance_equipment_oee_log_detail,maintenance_equipment_oee_log_detail,model_maintenance_equipment_oee_log_detail,sf_maintenance.sf_group_equipment_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
67
68
69
70
71
72

View File

@@ -6,15 +6,16 @@
<field name="name">equipment.maintenance.standards.form</field>
<field name="model">equipment.maintenance.standards</field>
<field name="arch" type="xml">
<form string="设备维保标准">
<form string="设备维保标准" delete="false" duplicate="false">
<sheet>
<group>
<group>
<field name="code" readonly="1" force_save="1"/>
<field name="name" readonly="1" force_save="1"/>
<field name="maintenance_equipment_category_id" required="1" />
<field name="eq_maintenance_ids" invisible='1'/>
<field name="overhaul_ids" invisible='1'/>
<group>
<field name="active" invisible="1"/>
<field name="code" readonly="1" force_save="1"/>
<field name="name" readonly="1" force_save="1"/>
<field name="maintenance_equipment_category_id" required="1"/>
<field name="eq_maintenance_ids" invisible='1'/>
<field name="overhaul_ids" invisible='1'/>
</group>
@@ -50,7 +51,8 @@
<field name="name">equipment.maintenance.standards.tree</field>
<field name="model">equipment.maintenance.standards</field>
<field name="arch" type="xml">
<tree string="设备维保标准">
<tree string="设备维保标准" delete="false">
<field name="active" invisible="1"/>
<field name="code" readonly="1" force_save="1"/>
<field name="maintenance_type" required="1"/>
<field name="name" required="1"/>
@@ -77,6 +79,7 @@
<field name="name" string="日常机床保养"/>
<field name="created_user_id" string="创建人"/>
<field name="maintenance_equipment_category_id" string="设备类别"/>
<filter name="filter_active" string="已归档" domain="[('active','=',False)]"/>
</search>
</field>
</record>

View File

@@ -14,6 +14,7 @@
<field name="utilization_rate"/>
<field name="fault_time"/>
<field name="fault_nums"/>
<field name="fault_rate"/>
</tree>
</field>
</record>
@@ -49,19 +50,19 @@
</group>
</group>
<notebook>
<page string="运行日志">
<field name="oee_logs">
<tree create="1" edit="1" delete="1" editable="bottom">
<field name = 'run_time'/>
<field name = 'state'/>
<field name = 'workorder_id'/>
<field name = 'time'/>
<field name = 'color' widget="color"/>
</tree>
</field>
</page>
</notebook>
<!-- <notebook> -->
<!-- <page string="运行日志"> -->
<!-- <field name="oee_logs"> -->
<!-- <tree create="1" edit="1" delete="1" editable="bottom"> -->
<!-- <field name = 'run_time'/> -->
<!-- <field name = 'state'/> -->
<!-- <field name = 'workorder_id'/> -->
<!-- <field name = 'time'/> -->
<!-- <field name = 'color' widget="color"/> -->
<!-- </tree> -->
<!-- </field> -->
<!-- </page> -->
<!-- </notebook> -->
</sheet>
</form>
</field>

View File

@@ -7,22 +7,20 @@
<field name="model">sf.maintenance.logs</field>
<field name="arch" type="xml">
<tree>
<field name="code"/>
<field name="type" optional="hide"/>
<field name="brand"/>
<field name="maintenance_equipment_id"/>
<field name="code_location" optional="hide"/>
<field name="fault_type"/>
<field name="fault_code" optional="hide"/>
<field name="alarm_time"/>
<field name="fault_alarm_info"/>
<field name="alarm_level" optional="hide"/>
<field name="alarm_time"/>
<field name="alarm_way" optional="hide"/>
<field name="fault_process"/>
<field name="operator"/>
<field name="fault_process" optional="hide"/>
<field name="operator" optional="hide"/>
<field name="recovery_time"/>
<field name="fault_duration"/>
<field name="note"/>
<field name="note" optional="hide"/>
</tree>
</field>
</record>
@@ -45,25 +43,32 @@
<group>
<group>
<field name="name"/>
<field name="type" required="1" widget="radio" options="{'horizontal': true}"/>
<field name="brand"/>
<!-- <field name="name"/> -->
<!-- <field name="type" required="1" widget="radio" options="{'horizontal': true}"/> -->
<field name="maintenance_equipment_id"/>
<field name="code_location"/>
<field name="fault_type" required="1" widget="radio" options="{'horizontal': true}"/>
<field name="fault_code"/>
<field name="fault_process"/>
</group>
<group>
<field name="fault_alarm_info"/>
<field name="brand"/>
<field name="alarm_time"/>
<field name="alarm_way" required="1" widget="radio" options="{'horizontal': true}"/>
<field name="operator"/>
<field name="recovery_time"/>
<field name="fault_duration"/>
<field name="note"/>
<field name="fault_alarm_info"/>
<!-- <field name="code_location"/> -->
<!-- <field name="fault_type" required="1" widget="radio" options="{'horizontal': true}"/> -->
<!-- <field name="fault_code"/> -->
</group>
<group>
<field name="operator"/>
<field name="fault_process"/>
<!-- <field name="alarm_way" required="1" widget="radio" options="{'horizontal': true}"/> -->
<field name="recovery_time"/>
<field name="fault_duration"/>
</group>
</group>
<group>
<field name="note"/>
</group>
</sheet>
</form>
@@ -100,6 +105,248 @@
</field>
</record>
<!-- 设备运行日志 -->
<record id="view_maintenance_logs_run_tree" model="ir.ui.view">
<field name="name">maintenance.logs.run.tree</field>
<field name="model">maintenance.equipment.oee.logs</field>
<field name="arch" type="xml">
<tree>
<field name="equipment_id"/>
</tree>
</field>
</record>
<record id="view_maintenance_logs_run_form" model="ir.ui.view">
<field name="name">maintenance.logs.run.form</field>
<field name="model">maintenance.equipment.oee.logs</field>
<field name="arch" type="xml">
<!-- <form string="设备运行日志"> -->
<!-- <header> -->
<!-- <field name="equipment_id" readonly="1"/> -->
<!-- </header> -->
<!-- <sheet> -->
<!-- <div class="oe_title"> -->
<!-- <h1> -->
<!-- <field name="start_time" readonly="1"/> -->
<!-- </h1> -->
<!-- </div> -->
<!-- <group> -->
<!-- <group> -->
<!-- <field name="stop_time" readonly="1"/> -->
<!-- <field name="duration" readonly="1"/> -->
<!-- <field name="oee" readonly="1"/> -->
<!-- </group> -->
<!-- <group> -->
<!-- <field name="note"/> -->
<!-- </group> -->
<!-- </group> -->
<!-- </sheet> -->
<!-- </form> -->
<form string="设备运行日志">
<!-- <header> -->
<!-- <field name="name" readonly="1"/> -->
<!-- </header> -->
<sheet>
<div class="oe_title">
<h1>
<field name="name"/>
</h1>
</div>
<group>
<group>
<group>
<field name="equipment_id" domain="[('name','ilike','加工中心')]"/>
<field name="type_id"/>
<field name="state"/>
<field name="equipment_code"/>
<field name="function_type"/>
</group>
</group>
<group>
<group>
<!-- <field name="state" nolabel="1"/> -->
<field name="state" string=""/>
</group>
<group>
<field name="machine_tool_picture" widget="image" nolabel="1"/>
</group>
</group>
</group>
<group>
<group>
<group>
<field name="online_time" readonly="1"/>
<field name="offline_time" readonly="1"/>
<field name="fault_rate" readonly="1"/>
</group>
<group>
<field name="offline_nums" readonly="1"/>
<field name="fault_time" readonly="1"/>
<field name="fault_nums" readonly="1"/>
</group>
</group>
<group>
<group>
<field name="idle_time"/>
<field name="idle_rate"/>
</group>
<group>
<field name="work_time"/>
<field name="work_rate"/>
</group>
</group>
</group>
<notebook>
<page string="24H日志详情">
<!-- 筛选出24小时内的日志 -->
<!-- <field name="detail_ids" domain="[('time','&lt;',(datetime.datetime.now() - datetime.timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S'))]"> -->
<field name="detail_ids" domain="[('state','ilike','加工')]">
<tree>
<!-- <field name="sequence"/> -->
<field name="time"/>
<field name="state"/>
<field name="production_name"/>
</tree>
<!-- <form> -->
<!-- <field name="sequence"/> -->
<!-- <field name="time"/> -->
<!-- <field name="state"/> -->
<!-- <field name="production_id"/> -->
<!-- </form> -->
</field>
</page>
<page string="历史日志详情">
<field name="detail_ids">
<tree>
<!-- <field name="sequence"/> -->
<field name="time"/>
<field name="state"/>
<field name="production_name"/>
</tree>
<!-- <form> -->
<!-- <field name="sequence"/> -->
<!-- <field name="time"/> -->
<!-- <field name="state"/> -->
<!-- <field name="production_id"/> -->
<!-- </form> -->
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- <record id="view_maintenance_logs_run_search" model="ir.ui.view"> -->
<!-- <field name="name">maintenance.logs.run.search</field> -->
<!-- <field name="model">maintenance.equipment.oee.logs</field> -->
<!-- <field name="arch" type="xml"> -->
<!-- <search> -->
<!-- <field name="equipment_id"/> -->
<!-- <field name="start_time"/> -->
<!-- <field name="stop_time"/> -->
<!-- <field name="duration"/> -->
<!-- <field name="oee"/> -->
<!-- <field name="note"/> -->
<!-- </search> -->
<!-- </field> -->
<!-- </record> -->
<!-- 设备运行日志详情 -->
<record id="view_maintenance_logs_run_detail_tree" model="ir.ui.view">
<field name="name">maintenance.logs.run.detail.tree</field>
<field name="model">maintenance.equipment.oee.log.detail</field>
<field name="arch" type="xml">
<tree>
<!-- <field name="sequence"/> -->
<field name="time"/>
<field name="state"/>
<field name="production_name"/>
</tree>
</field>
</record>
<record id="view_maintenance_logs_run_detail_form" model="ir.ui.view">
<field name="name">maintenance.logs.run.detail.form</field>
<field name="model">maintenance.equipment.oee.log.detail</field>
<field name="arch" type="xml">
<form string="设备运行日志详情">
<sheet>
<group>
<group>
<field name="state"/>
<!-- <field name="production_id"/> -->
</group>
<group>
<!-- <field name="sequence"/> -->
<field name="time"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<!-- <record id="view_maintenance_logs_run_detail_search" model="ir.ui.view"> -->
<!-- <field name="name">maintenance.logs.run.detail.search</field> -->
<!-- <field name="model">maintenance.equipment.oee.logs.detail</field> -->
<!-- <field name="arch" type="xml"> -->
<!-- <search> -->
<!-- <field name="equipment_id"/> -->
<!-- <field name="start_time"/> -->
<!-- <field name="stop_time"/> -->
<!-- <field name="duration"/> -->
<!-- <field name="oee"/> -->
<!-- <field name="note"/> -->
<!-- </search> -->
<!-- </field> -->
<!-- </record> -->
<!-- 设备运行日志详情action -->
<!-- <record id="action_maintenance_logs_run_detail" model="ir.actions.act_window"> -->
<!-- <field name="name">设备运行日志详情</field> -->
<!-- <field name="type">ir.actions.act_window</field> -->
<!-- <field name="res_model">maintenance.equipment.oee.logs.detail</field> -->
<!-- <field name="view_mode">tree,form</field> -->
<!-- <field name="view_id" ref="view_maintenance_logs_run_detail_tree"/> -->
<!-- <field name="help" type="html"> -->
<!-- <p class="oe_view_nocontent_create"> -->
<!-- 设备运行日志详情 -->
<!-- </p> -->
<!-- </field> -->
<!-- -->
<!-- </record> -->
<record id="action_maintenance_logs_run" model="ir.actions.act_window">
<field name="name">设备运行日志</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">maintenance.equipment.oee.logs</field>
<!-- <field name="search_view_id" ref="view_maintenance_logs_run_search"/> -->
<field name="view_mode">tree,form</field>
<!-- <field name="view_mode">form</field> -->
<field name="view_id" ref="view_maintenance_logs_run_tree"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
设备运行日志
</p>
</field>
</record>
<menuitem name="设备运行日志" id="menu_maintenance_logs_run" parent="maintenance.menu_m_request"
sequence="10" action="action_maintenance_logs_run"/>
<!-- Action -->

View File

@@ -14,10 +14,15 @@
'data': [
'data/stock_data.xml',
'data/empty_racks_data.xml',
'data/panel_data.xml',
'data/agv_scheduling_data.xml',
'security/group_security.xml',
'security/ir.model.access.csv',
'wizard/workpiece_delivery_views.xml',
'wizard/rework_wizard_views.xml',
'wizard/production_wizard_views.xml',
'views/mrp_views_menus.xml',
'views/agv_scheduling_views.xml',
'views/stock_lot_views.xml',
'views/mrp_production_addional_change.xml',
'views/mrp_routing_workcenter_view.xml',
@@ -27,7 +32,7 @@
'views/model_type_view.xml',
'views/agv_setting_views.xml',
'views/sf_maintenance_equipment.xml',
'views/res_config_settings_views.xml',
],
'assets': {
@@ -37,7 +42,9 @@
'web.assets_backend': [
'sf_manufacturing/static/src/xml/kanban_change.xml',
'sf_manufacturing/static/src/js/kanban_change.js',
'sf_manufacturing/static/src/scss/kanban_change.scss'
'sf_manufacturing/static/src/scss/kanban_change.scss',
'sf_manufacturing/static/src/xml/button_show_on_tree.xml',
'sf_manufacturing/static/src/js/workpiece_delivery_wizard_confirm.js',
]
},

View File

@@ -2,13 +2,15 @@
import logging
import json
from datetime import datetime
from odoo.addons.sf_manufacturing.models.agv_scheduling import RepeatTaskException
from odoo import http
from odoo.http import request
class Manufacturing_Connect(http.Controller):
@http.route('/AutoDeviceApi/GetWoInfo', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
@http.route('/AutoDeviceApi/GetWoInfo', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False,
cors="*")
def get_Work_Info(self, **kw):
"""
@@ -25,7 +27,8 @@ class Manufacturing_Connect(http.Controller):
{'content': ret, 'name': 'AutoDeviceApi/GetWoInfo'})
logging.info('RfidCode:%s' % ret['RfidCode'])
if 'RfidCode' in ret:
workorder = request.env['mrp.workorder'].sudo().search([('rfid_code', '=', ret['RfidCode'])])
workorder = request.env['mrp.workorder'].sudo().search(
[('rfid_code', '=', ret['RfidCode']), ('state', '!=', 'rework')])
if workorder:
for item in workorder:
res['Datas'].append({
@@ -122,7 +125,8 @@ class Manufacturing_Connect(http.Controller):
logging.info('RfidCode:%s' % ret['RfidCode'])
if 'RfidCode' in ret:
workorder = request.env['mrp.workorder'].sudo().search(
[('routing_type', '=', '装夹预调'), ('rfid_code', '=', ret['RfidCode'])], limit=1, order='id asc')
[('routing_type', '=', '装夹预调'), ('rfid_code', '=', ret['RfidCode']), ('state', '!=', 'rework')],
limit=1, order='id asc')
if workorder:
for item in workorder:
if item.material_center_point:
@@ -143,7 +147,7 @@ class Manufacturing_Connect(http.Controller):
logging.info('get_qcCheck error:%s' % e)
return json.JSONEncoder().encode(res)
@http.route('/AutoDeviceApi/FeedBackStart', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False,
@http.route('/AutoDeviceApi/FeedBackStart', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
cors="*")
def button_Work_START(self, **kw):
"""
@@ -162,7 +166,8 @@ class Manufacturing_Connect(http.Controller):
routing_type = ret['CraftId']
equipment_id = ret["DeviceId"]
workorder = request.env['mrp.workorder'].sudo().search(
[('production_id', '=', production_id), ('routing_type', '=', routing_type)], limit=1)
[('production_id', '=', production_id), ('routing_type', '=', routing_type),
('rfid_code', '!=', False), ('state', '!=', 'rework')], limit=1)
if not workorder:
res = {'Succeed': False, 'ErrorCode': 202, 'Error': '该工单不存在'}
return json.JSONEncoder().encode(res)
@@ -190,7 +195,7 @@ class Manufacturing_Connect(http.Controller):
logging.info('button_Work_START error:%s' % e)
return json.JSONEncoder().encode(res)
@http.route('/AutoDeviceApi/FeedBackEnd', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False,
@http.route('/AutoDeviceApi/FeedBackEnd', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
cors="*")
def button_Work_End(self, **kw):
"""
@@ -203,40 +208,45 @@ class Manufacturing_Connect(http.Controller):
res = {'Succeed': True, 'Datas': ['工单已结束']}
datas = request.httprequest.data
ret = json.loads(datas)
logging.info('button_Work_End:%s' % ret)
request.env['center_control.interface.log'].sudo().create(
{'content': ret, 'name': 'AutoDeviceApi/FeedBackEnd'})
production_id = ret['BillId']
routing_type = ret['CraftId']
workorder = request.env['mrp.workorder'].sudo().search(
[('production_id', '=', production_id), ('routing_type', '=', routing_type)], limit=1)
[('production_id', '=', production_id), ('routing_type', '=', routing_type),
('rfid_code', '!=', False), ('state', '!=', 'rework')], limit=1)
if not workorder:
res = {'Succeed': False, 'ErrorCode': 202, 'Error': '该工单不存在'}
return json.JSONEncoder().encode(res)
if workorder.state != 'progress':
res = {'Succeed': False, 'ErrorCode': 202, 'Error': '该工单未开始'}
return json.JSONEncoder().encode(res)
workorder.button_finish()
# workorder.process_state = '待解除装夹'
# workorder.sudo().production_id.process_state = '待解除装夹'
# workorder.write({'date_finished': datetime.now()})
if ret['IsComplete'] is True:
workorder.write({'date_finished': datetime.now()})
# 根据工单的实际结束时间修改排程单的结束时间、状态,同时修改销售订单的状态
if workorder.date_finished:
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': 'completed'})
# request.env['sale.order'].sudo().search(
# [('name', '=', production_obj.origin)]).write({'schedule_status': 'to deliver'})
# workorder.process_state = '待解除装夹'
# workorder.sudo().production_id.process_state = '待解除装夹'
# 根据工单的实际结束时间修改排程单的结束时间、状态,同时修改销售订单的状态
# if workorder.date_finished:
# 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'})
except Exception as e:
res = {'Succeed': False, 'ErrorCode': 202, 'Error': e}
logging.info('button_Work_End error:%s' % e)
return json.JSONEncoder().encode(res)
@http.route('/AutoDeviceApi/PartQualityInspect', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False,
@http.route('/AutoDeviceApi/PartQualityInspect', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
cors="*")
def PartQualityInspect(self, **kw):
"""
@@ -252,39 +262,27 @@ class Manufacturing_Connect(http.Controller):
request.env['center_control.interface.log'].sudo().create(
{'content': ret, 'name': 'AutoDeviceApi/PartQualityInspect'})
production_id = ret['BillId']
routing_type = ret['CraftId']
# routing_type = ret['CraftId']
workorder = request.env['mrp.workorder'].sudo().search(
[('production_id', '=', production_id), ('routing_type', '=', routing_type)], limit=1)
[('production_id', '=', production_id), ('routing_type', '=', 'CNC加工'),
('state', 'not in', ['rework', 'done', 'cancel'])], order='sequence asc',
limit=1)
if workorder:
# workorder.test_results = ret['Quality']
logging.info('制造订单:%s' % workorder.production_id.name)
if 'ReportPaht' in ret:
download_state = request.env['mrp.workorder'].with_user(
request.env.ref("base.user_admin")).download_reportfile_tmp(workorder,
ret['ReportPaht'])
if download_state == 1:
detection_ret = request.env['mrp.workorder'].with_user(
request.env.ref("base.user_admin")).get_detection_file(workorder, ret['ReportPaht'])
if detection_ret is True:
stock_picking_type = request.env['stock.picking.type'].sudo().search(
[('sequence_code', '=', 'SFP')])
if stock_picking_type:
stock_picking = request.env['stock.picking'].sudo().search(
[('product_id', '=', workorder.product_id.id),
('origin', '=', workorder.production_id.origin),
('picking_type_id', '=', stock_picking_type.id)])
if stock_picking:
quality_check = request.env['quality.check'].sudo().search(
[('product_id', '=', workorder.product_id.id),
('picking_id', '=', stock_picking.id)])
if quality_check:
logging.info('质检单:%s' % quality_check.name)
quality_check.write({'report_pdf': workorder.detection_report})
elif download_state == 2:
res = {'Succeed': False, 'ErrorCode': 205,
'Error': 'ReportPaht中的工件号与制造订单%s不匹配请检查ReportPaht是否正确' % workorder.production_id.name}
else:
res = {'Succeed': False, 'ErrorCode': 204, 'Error': '检测报告文件从FTP拉取失败'}
if ret['ReportPaht'].find('.pdf') != -1:
download_state = request.env['mrp.workorder'].with_user(
request.env.ref("base.user_admin")).download_reportfile_tmp(workorder,
ret['ReportPaht'])
if download_state is True:
detection_ret = request.env['mrp.workorder'].with_user(
request.env.ref("base.user_admin")).get_detection_file(workorder, ret['ReportPaht'])
logging.info('detection_ret:%s' % detection_ret)
if detection_ret is False:
res = {'Succeed': False, 'ErrorCode': 205, 'Error': '检测报告文件读取失败'}
else:
res = {'Succeed': False, 'ErrorCode': 204, 'Error': '检测报告文件从FTP拉取失败'}
else:
res = {'Succeed': False, 'ErrorCode': 203, 'Error': '未传ReportPaht字段'}
else:
@@ -294,7 +292,7 @@ class Manufacturing_Connect(http.Controller):
logging.info('PartQualityInspect error:%s' % e)
return json.JSONEncoder().encode(res)
@http.route('/AutoDeviceApi/CMMProgDolod', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False,
@http.route('/AutoDeviceApi/CMMProgDolod', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
cors="*")
def CMMProgDolod(self, **kw):
"""
@@ -312,18 +310,18 @@ class Manufacturing_Connect(http.Controller):
if 'RfidCode' in ret:
logging.info('RfidCode:%s' % ret['RfidCode'])
workorder = request.env['mrp.workorder'].sudo().search(
[('rfid_code', '=', ret['RfidCode']), ('routing_type', '=', 'CNC加工')])
[('rfid_code', '=', ret['RfidCode']), ('routing_type', '=', 'CNC加工'), ('state', '!=', 'rework')])
if workorder:
for item in workorder.cmm_ids:
if item.program_date is not False:
program_date = item.program_date.strftime("%Y-%m-%d %H:%M:%S")
program_date_str = request.env['sf.sync.common'].sudo().get_add_time(program_date)
if item.program_create_date is not False:
program_create_date = item.program_create_date.strftime("%Y-%m-%d %H:%M:%S")
program_date_str = request.env['sf.sync.common'].sudo().get_add_time(program_create_date)
res['Datas'].append({
'CraftId': workorder.id,
'CraftKey': workorder.name,
'ProgramDate': '' if not item.program_date else program_date_str,
'ProgramDate': '' if not item.program_create_date else program_date_str,
'ProgramPath': item.program_path,
'PostProcessing': item.post_processing_name,
'PostProcessing': item.program_name,
})
else:
res = {'Succeed': False, 'ErrorCode': 203, 'Error': '暂无工单及对应的CNC程序数据'}
@@ -334,7 +332,7 @@ class Manufacturing_Connect(http.Controller):
logging.info('CMMProgDolod error:%s' % e)
return json.JSONEncoder().encode(res)
@http.route('/AutoDeviceApi/NCProgDolod', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False,
@http.route('/AutoDeviceApi/NCProgDolod', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
cors="*")
def NCProgDolod(self, **kw):
"""
@@ -352,7 +350,7 @@ class Manufacturing_Connect(http.Controller):
if 'RfidCode' in ret:
logging.info('RfidCode:%s' % ret['RfidCode'])
workorder = request.env['mrp.workorder'].sudo().search(
[('rfid_code', '=', ret['RfidCode']), ('routing_type', '=', 'CNC加工')])
[('rfid_code', '=', ret['RfidCode']), ('routing_type', '=', 'CNC加工'), ('state', '!=', 'rework')])
if workorder:
for item in workorder.cnc_ids:
res['Datas'].append({
@@ -390,7 +388,7 @@ class Manufacturing_Connect(http.Controller):
ret = json.loads(datas)
request.env['center_control.interface.log'].sudo().create(
{'content': ret, 'name': 'AutoDeviceApi/LocationChange'})
logging.info('LocationChange_ret===========:%s' % ret)
logging.info('库位变更LocationChange_ret:%s' % ret)
RfidCode = ret['RfidCode']
ChangeType = ret['ChangeType']
OldDeciveId = ret['OldDeciveId']
@@ -400,40 +398,86 @@ class Manufacturing_Connect(http.Controller):
OldDeciveStart = ret['OldDeciveStart']
OldDeciveEnd = ret['OldDeciveEnd']
temp_val_sn_id = None
old_localtion = None
# if ChangeType == 'Part' or ChangeType == 'Tool':
stock_lot_obj = request.env['stock.lot'].sudo().search(
[('rfid', '=', RfidCode)], limit=1)
logging.info('stock_lot_obj===========:%s' % stock_lot_obj)
if not stock_lot_obj:
res = {'Succeed': False, 'ErrorCode': 202, 'Error': '未根据RfidCode找到该产品'}
return json.JSONEncoder().encode(res)
if OldPosition:
old_localtion = request.env['sf.shelf.location'].sudo().search(
[('barcode', '=', OldPosition)], limit=1)
logging.info('old_localtion===========:%s' % old_localtion)
new_localtion = request.env['sf.shelf.location'].sudo().search(
[('barcode', '=', NewPosition)], limit=1)
logging.info('new_localtion===========:%s' % new_localtion)
if not new_localtion:
res = {'Succeed': False, 'ErrorCode': 202, 'Error': '没有该目标位置'}
return json.JSONEncoder().encode(res)
if old_localtion:
temp_val_sn_id = old_localtion.product_sn_id
logging.info('temp_val_sn_id===========:%s' % temp_val_sn_id)
old_localtion.product_sn_id = None
new_localtion.product_sn_id = temp_val_sn_id
logging.info('====1======')
else:
new_localtion.product_sn_id = stock_lot_obj.id
logging.info('=====2======')
if ChangeType == 'Part':
temp_val_sn_id = None
old_localtion = None
# if ChangeType == 'Part' or ChangeType == 'Tool':
stock_lot_obj = request.env['stock.lot'].sudo().search(
[('rfid', '=', RfidCode)], limit=1)
logging.info('stock_lot_obj===========:%s' % stock_lot_obj)
if not stock_lot_obj:
res = {'Succeed': False, 'ErrorCode': 202, 'Error': '未根据RfidCode找到该产品'}
return json.JSONEncoder().encode(res)
if OldPosition:
old_localtion = request.env['sf.shelf.location'].sudo().search(
[('barcode', '=', OldPosition)], limit=1)
logging.info('old_localtion===========:%s' % old_localtion)
new_localtion = request.env['sf.shelf.location'].sudo().search(
[('barcode', '=', NewPosition)], limit=1)
logging.info('new_localtion===========:%s' % new_localtion)
if not new_localtion:
res = {'Succeed': False, 'ErrorCode': 202, 'Error': '没有该目标位置'}
return json.JSONEncoder().encode(res)
if old_localtion:
temp_val_sn_id = old_localtion.product_sn_id
logging.info('temp_val_sn_id===========:%s' % temp_val_sn_id)
old_localtion.product_sn_id = None
new_localtion.product_sn_id = temp_val_sn_id
logging.info('====1======')
else:
new_localtion.product_sn_id = stock_lot_obj.id
logging.info('=====2======')
elif ChangeType == 'Tool':
# 对功能刀具库位变更信息进行更改
def write_tool(DeciveId):
if 'Tool' in DeciveId:
shelfinfo = list(filter(lambda x: x.get('DeviceId') == DeciveId,
request.env['sf.shelf.location'].sudo().get_sf_shelf_location_info(
DeciveId)))
total_data = request.env['sf.shelf.location.datasync'].sudo().get_total_data()
for item in shelfinfo:
logging.info('货架已获取信息:%s' % item)
shelf_barcode = request.env['sf.shelf.location.datasync'].sudo().find_our_code(
total_data, item['Postion'])
location_id = request.env['sf.shelf.location'].sudo().search(
[('barcode', '=', shelf_barcode)],
limit=1)
if location_id:
# 如果是线边刀库信息,则对功能刀具移动生成记录
if 'Tool' in item['Postion']:
tool = request.env['sf.functional.cutting.tool.entity'].sudo().search(
[('rfid', '=', item['RfidCode']), ('functional_tool_status', '!=', '已拆除')])
tool.sudo().tool_in_out_stock_location(location_id)
if tool:
location_id.product_sn_id = tool.barcode_id.id
# 修改功能刀具状态
if item.get('State') == '报警':
if tool.functional_tool_status != item.get('State'):
tool.write({
'functional_tool_status': item['State']
})
else:
location_id.product_sn_id = False
if item['RfidCode']:
logging.info('Rfid为【%s】的功能刀具在系统中不存在!' % item['RfidCode'])
else:
equipment_id = request.env['maintenance.equipment'].sudo().search([('name', '=', DeciveId)])
if equipment_id:
equipment_id.sudo().register_equipment_tool()
else:
res_1 = {'Succeed': False, 'ErrorCode': 202, 'Error': f'设备【{DeciveId}】不存在'}
return json.JSONEncoder().encode(res_1)
if OldDeciveId:
write_tool(OldDeciveId)
elif NewDeciveId:
write_tool(NewDeciveId)
except Exception as e:
res = {'Succeed': False, 'ErrorCode': 202, 'Error': e}
logging.info('LocationChange error:%s' % e)
return json.JSONEncoder().encode(res)
@http.route('/AutoDeviceApi/AGVToProduct', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False,
@http.route('/AutoDeviceApi/AGVToProduct', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
cors="*")
def AGVToProduct(self, **kw):
"""
@@ -452,41 +496,60 @@ class Manufacturing_Connect(http.Controller):
if 'DeviceId' in ret:
logging.info('DeviceId:%s' % ret['DeviceId'])
if 'IsComplete' in ret:
rfid_codes = []
workorder_ids = []
if ret['IsComplete'] is True or ret['IsComplete'] is False:
for i in range(1, 5):
logging.info('F-RfidCode:%s' % i)
if f'RfidCode{i}' in ret:
rfid_code = ret[f'RfidCode{i}']
logging.info('RfidCode:%s' % rfid_code)
domain = [
('rfid_code', '=', rfid_code),
('routing_type', '=', 'CNC加工')
]
workorder = request.env['mrp.workorder'].sudo().search(domain, order='id asc')
if workorder:
for order in workorder:
if order.production_id.production_line_state == '待上产线':
logging.info(
'制造订单产线状态:%s' % order.production_id.production_line_state)
order.production_id.write({'production_line_state': '上产线'})
workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search([
('rfid_code', '=', rfid_code), ('type', '=', '上产线'),
('production_id', '=', order.production_id.id)])
if workpiece_delivery.status == '待下发':
workpiece_delivery.write({'is_manual_work': True})
else:
res = {'Succeed': False, 'ErrorCode': 204,
'Error': 'DeviceId为%s没有对应的已配送工件数据' % ret['DeviceId']}
if rfid_code is not None and rfid_code != '':
rfid_codes.append(rfid_code)
domain = [
('rfid_code', '=', rfid_code),
('routing_type', '=', 'CNC加工'), ('state', '!=', 'rework')
]
workorder = request.env['mrp.workorder'].sudo().search(domain, order='id asc')
if workorder:
for order in workorder:
workorder_ids.append(order.id)
if order.production_line_state == '上产线':
logging.info(
'工单产线状态:%s' % order.production_line_state)
panel_workorder = request.env['mrp.workorder'].sudo().search(
[('rfid_code', '=', rfid_code), ('state', '!=', 'rework'),
('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', '=', '上产线'),
# ('production_id', '=', order.production_id.id),
# ('workorder_id', '=', order.id),
# ('workorder_state', '=', 'done')])
# if workpiece_delivery.status == '待下发':
# workpiece_delivery.write({'is_manual_work': True})
# 下发
else:
res = {'Succeed': False, 'ErrorCode': 204,
'Error': 'DeviceId为%s没有对应的已配送工件数据' % ret['DeviceId']}
if ret['IsComplete'] is True:
# 向AGV任务调度下发运送空料架任务
workorders = request.env['mrp.workorder'].browse(workorder_ids)
request.env['sf.agv.scheduling'].add_scheduling(ret['DeviceId'], '运送空料架', workorders)
else:
res = {'Succeed': False, 'ErrorCode': 203, 'Error': '未传IsComplete字段'}
else:
res = {'Succeed': False, 'ErrorCode': 201, 'Error': '未传DeviceId字段'}
except RepeatTaskException as e:
logging.info('AGVToProduct error:%s' % e)
except Exception as e:
res = {'Succeed': False, 'ErrorCode': 202, 'Error': e}
res = {'Succeed': False, 'ErrorCode': 202, 'Error': str(e)}
logging.info('AGVToProduct error:%s' % e)
return json.JSONEncoder().encode(res)
@http.route('/AutoDeviceApi/AGVDownProduct', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False,
@http.route('/AutoDeviceApi/AGVDownProduct', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
cors="*")
def AGVDownProduct(self, **kw):
"""
@@ -505,7 +568,8 @@ class Manufacturing_Connect(http.Controller):
logging.info('ret:%s' % ret)
if 'DeviceId' in ret:
logging.info('DeviceId:%s' % ret['DeviceId'])
delivery_Arr = []
# delivery_Arr = []
workorder_ids = []
if 'IsComplete' in ret:
if ret['IsComplete'] is True or ret['IsComplete'] is False:
for i in range(1, 5):
@@ -513,42 +577,59 @@ class Manufacturing_Connect(http.Controller):
if f'RfidCode{i}' in ret:
rfid_code = ret[f'RfidCode{i}']
logging.info('RfidCode:%s' % rfid_code)
domain = [
('rfid_code', '=', rfid_code),
('routing_type', '=', 'CNC加工')
]
workorder = request.env['mrp.workorder'].sudo().search(domain, order='id asc')
if workorder:
for order in workorder:
if order.production_id.production_line_state == '已上产线':
logging.info(
'制造订单产线状态:%s' % order.production_id.production_line_state)
order.production_id.write({'production_line_state': '已下产线'})
workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search([
('rfid_code', '=', rfid_code), ('type', '=', '下产线'),
('production_id', '=', order.production_id.id)])
delivery_Arr.append(workpiece_delivery.id)
else:
res = {'Succeed': False, 'ErrorCode': 204,
'Error': 'DeviceId为%s没有对应的已配送工件数据' % ret['DeviceId']}
if delivery_Arr:
logging.info('delivery_Arr:%s' % delivery_Arr)
delivery_workpiece = request.env['sf.workpiece.delivery'].sudo().search(
[('id', 'in', delivery_Arr)])
if delivery_workpiece:
logging.info('开始向agv下发下产线任务')
agv_site = request.env['sf.agv.site'].sudo().search([])
if agv_site:
has_site = agv_site.update_site_state()
if has_site is True:
is_free = delivery_workpiece._check_avgsite_state()
if is_free is True:
delivery_workpiece._delivery_avg()
logging.info('agv下发下产线任务下发完成')
if rfid_code is not None and rfid_code != '':
domain = [
('rfid_code', '=', rfid_code),
('routing_type', '=', 'CNC加工'), ('state', '!=', 'rework')
]
workorder = request.env['mrp.workorder'].sudo().search(domain, order='id asc')
if workorder:
for order in workorder:
workorder_ids.append(order.id)
if order.production_line_state == '已上产线':
logging.info(
'工单产线状态:%s' % order.production_line_state)
panel_workorder = request.env['mrp.workorder'].sudo().search(
[('rfid_code', '=', rfid_code), ('state', '!=', 'rework'),
('processing_panel', '=', order.processing_panel)])
if panel_workorder:
panel_workorder.write({'production_line_state': '已下产线'})
workorder.write({'state': 'to be detected'})
# workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search(
# [
# ('rfid_code', '=', rfid_code), ('type', '=', '下产线'),
# ('production_id', '=', order.production_id.id),
# ('workorder_id', '=', order.id),
# ('workorder_state', '=', 'done')])
# if workpiece_delivery:
# delivery_Arr.append(workpiece_delivery.id)
else:
res = {'Succeed': False, 'ErrorCode': 204,
'Error': 'DeviceId为%s没有对应的已配送工件数据' % ret['DeviceId']}
# if delivery_Arr:
# logging.info('delivery_Arr:%s' % delivery_Arr)
# delivery_workpiece = request.env['sf.workpiece.delivery'].sudo().search(
# [('id', 'in', delivery_Arr)])
# if delivery_workpiece:
# logging.info('开始向agv下发下产线任务')
# agv_site = request.env['sf.agv.site'].sudo().search([])
# if agv_site:
# has_site = agv_site.update_site_state()
# if has_site is True:
# is_free = delivery_workpiece._check_avgsite_state()
# if is_free is True:
# delivery_workpiece._delivery_avg()
# logging.info('agv下发下产线任务下发完成')
if ret['IsComplete'] is True:
# 向AGV任务调度下发下产线任务
workorders = request.env['mrp.workorder'].browse(workorder_ids)
request.env['sf.agv.scheduling'].add_scheduling(ret['DeviceId'], '下产线', workorders)
else:
res = {'Succeed': False, 'ErrorCode': 203, 'Error': '未传IsComplete字段'}
except RepeatTaskException as e:
logging.info('AGVToProduct error:%s' % e)
except Exception as e:
res = {'Succeed': False, 'ErrorCode': 202, 'Error': e}
res = {'Succeed': False, 'ErrorCode': 202, 'Error': str(e)}
logging.info('AGVDownProduct error:%s' % e)
return json.JSONEncoder().encode(res)
@@ -586,3 +667,32 @@ class Manufacturing_Connect(http.Controller):
res = {'Succeed': False, 'ErrorCode': 202, 'Error': e}
logging.info('AGVDownProduct error:%s' % e)
return json.JSONEncoder().encode(res)
@http.route('/AutoDeviceApi/AgvStationState', type='json', auth='public', methods=['GET', 'POST'], csrf=False,
cors="*")
def AGVStationState(self, **kw):
"""
中控推送接驳站状态
:param kw:
:return:
"""
logging.info('AGVStationState:%s' % kw)
try:
res = {'Succeed': True}
datas = request.httprequest.data
ret = json.loads(datas)
request.env['center_control.interface.log'].sudo().create(
{'content': ret, 'name': 'AutoDeviceApi/AGVStationState'})
logging.info('ret:%s' % ret)
ret = ret['param']
params = {}
for i in range(len(ret)):
if 'DeviceId' in ret[i] and 'AtHome' in ret[i]:
logging.info('DeviceId:%s, AtHome:%s' % (ret[i]['DeviceId'], ret[i]['AtHome']))
params[ret[i]['DeviceId']] = '占用' if ret[i]['AtHome'] else '空闲'
if params:
request.env['sf.agv.site'].update_site_state(params)
except Exception as e:
res = {'Succeed': False, 'ErrorCode': 202, 'Error': str(e)}
logging.info('AGVDownProduct error:%s' % e)
return json.JSONEncoder().encode(res)

View File

@@ -25,15 +25,14 @@ class Workpiece(http.Controller):
if 'reqCode' in ret:
if 'method' in ret:
if ret['method'] == 'end':
req_codes = ret['reqCode'].split(',')
for req_code in req_codes:
workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search(
[('name', '=', req_code.strip()), ('task_completion_time', '=', False)])
if workpiece_delivery:
workpiece_delivery.write({'status': '已配送', 'task_completion_time': datetime.now()})
else:
res = {'Succeed': False, 'ErrorCode': 203,
'Error': '该reqCode暂未查到对应的工件配送记录'}
# 找到对应的AGV调度任务
agv_scheduling = request.env['sf.agv.scheduling'].sudo().search(
[('name', '=', ret['reqCode']), ('state', '=', '配送中')])
if agv_scheduling:
agv_scheduling.finish_scheduling()
else:
res = {'Succeed': False, 'ErrorCode': 203,
'Error': '该reqCode暂未查到对应的AGV任务记录'}
else:
res = {'Succeed': False, 'ErrorCode': 204, 'Error': '未传method字段'}
else:

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="0">
<record id="sequence_agv_scheduling" model="ir.sequence">
<field name="name">AGV调度</field>
<field name="code">sf.agv.scheduling</field>
<field name="prefix">B%(year)s%(month)s%(day)s</field>
<field name="padding">4</field>
<field name="number_next">1</field>
<field name="implementation">standard</field>
<field name="use_date_range">True</field>
<field name="date_range_period">day</field>
<field name="company_id" eval="False"/>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="panel_zm" model="sf.processing.panel">
<field name="name">ZM</field>
</record>
<record id="panel_fm" model="sf.processing.panel">
<field name="name">FM</field>
</record>
<record id="panel_yc" model="sf.processing.panel">
<field name="name">YC</field>
</record>
<record id="panel_zc" model="sf.processing.panel">
<field name="name">ZC</field>
</record>
<record id="panel_qc" model="sf.processing.panel">
<field name="name">QC</field>
</record>
<record id="panel_hc" model="sf.processing.panel">
<field name="name">HC</field>
</record>
</data>
</odoo>

View File

@@ -1,6 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record model="ir.cron" id="ir_cron_mrp_production">
<field name="name">返工且编程中的制造订单定时获取Cloud编程单状态</field>
<field name="model_id" ref="model_mrp_production"/>
<field name="state">code</field>
<field name="code">model._cron_get_programming_state()</field>
<field name="interval_number">3</field>
<field name="interval_type">minutes</field>
<field name="numbercall">-1</field>
</record>
<record id="sequence_routing_workcenter" model="ir.sequence">
<field name="name">工序编码规则</field>
<field name="code">mrp.routing.workcenter</field>

View File

@@ -9,3 +9,5 @@ from . import stock
from . import res_user
from . import production_line_base
from . import agv_setting
from . import agv_scheduling
from . import res_config_setting

View File

@@ -0,0 +1,282 @@
import logging
import requests
from odoo import models, fields, api, _
from odoo.exceptions import UserError
_logger = logging.getLogger(__name__)
class RepeatTaskException(UserError):
pass
class AgvScheduling(models.Model):
_name = 'sf.agv.scheduling'
_description = 'agv调度'
_order = 'id desc'
name = fields.Char('任务单号', index=True, copy=False)
def _get_agv_route_type_selection(self):
return self.env['sf.agv.task.route'].fields_get(['route_type'])['route_type']['selection']
agv_route_type = fields.Selection(selection=_get_agv_route_type_selection, string='任务类型', required=True)
agv_route_id = fields.Many2one('sf.agv.task.route', '任务路线')
start_site_id = fields.Many2one('sf.agv.site', '起点接驳站', required=True)
end_site_id = fields.Many2one('sf.agv.site', '终点接驳站', tracking=True)
site_state = fields.Selection([
('占用', '占用'),
('空闲', '空闲')], string='终点接驳站状态', default='占用')
state = fields.Selection([
('待下发', '待下发'),
('配送中', '配送中'),
('已配送', '已配送'),
('已取消', '已取消')], string='状态', default='待下发', tracking=True)
workorder_ids = fields.Many2many('mrp.workorder', 'sf_agv_scheduling_mrp_workorder_ref', string='关联工单')
task_create_time = fields.Datetime('任务创建时间')
task_delivery_time = fields.Datetime('任务下发时间')
task_completion_time = fields.Datetime('任务完成时间')
task_duration = fields.Char('任务时长', compute='_compute_task_duration')
@api.depends('agv_route_type')
def _compute_delivery_workpieces(self):
for record in self:
if record.agv_route_type == '运送空料架':
record.delivery_workpieces = '/'
else:
record.delivery_workpieces = ''.join(record.workorder_ids.mapped('production_id.name'))
delivery_workpieces = fields.Char('配送工件', compute=_compute_delivery_workpieces)
@api.model
def web_search_read(self, domain=None, fields=None, offset=0, limit=None, order=None, count_limit=None):
domain = domain or []
new_domain = []
for item in domain:
if isinstance(item, list):
if item[0] == 'delivery_workpieces':
new_domain.append('&')
new_domain.append(['workorder_ids.production_id.name', item[1], item[2]])
new_domain.append(['agv_route_type', '!=', '运送空料架'])
continue
new_domain.append(item)
return super(AgvScheduling, self).web_search_read(new_domain, fields, offset, limit, order, count_limit)
@api.depends('task_completion_time', 'task_delivery_time')
def _compute_task_duration(self):
for rec in self:
if rec.task_completion_time and rec.task_delivery_time:
rec.task_duration = str(rec.task_completion_time - rec.task_delivery_time)
else:
rec.task_duration = ''
@api.model_create_multi
def create(self, vals_list):
# We generate a standard reference
for vals in vals_list:
vals['name'] = self.env['ir.sequence'].next_by_code('sf.agv.scheduling') or _('New')
return super().create(vals_list)
def add_scheduling(self, agv_start_site_name, agv_route_type, workorders):
""" add_scheduling(agv_start_site_id, agv_route_type, workorders) -> agv_scheduling
新增AGV调度
params:
agv_start_site_name: AGV起点接驳站名称
agv_route_type: AGV任务类型
workorders: 工单
"""
_logger.info('创建AGV调度任务\r\n起点为【%s】,任务类型为【%s】,工单为【%s' % (agv_start_site_name, agv_route_type, workorders))
if not workorders:
raise UserError(_('工单不能为空'))
agv_start_site = self.env['sf.agv.site'].sudo().search([('name', '=', agv_start_site_name)], limit=1)
if not agv_start_site:
raise UserError(_('不存在名称为【%s】的接驳站,请先创建!' % agv_start_site_name))
# 如果存在相同任务类型工单的AGV调度任务则提示错误
agv_scheduling = self.sudo().search([
('workorder_ids', 'in', workorders.ids),
('agv_route_type', '=', agv_route_type),
('state', 'in', ['待下发', '配送中'])
], limit=1)
if agv_scheduling:
# 计算agv_scheduling.workorder_ids与workorders的交集
repetitive_workorders = agv_scheduling.workorder_ids & workorders
raise RepeatTaskException(
'制造订单号【%s】已存在于【%s】AGV调度任务请勿重复下发' %
(','.join(repetitive_workorders.mapped('production_id.name')), agv_scheduling.name)
)
vals = {
'start_site_id': agv_start_site.id,
'agv_route_type': agv_route_type,
'workorder_ids': workorders.ids,
# 'workpiece_delivery_ids': deliveries.mapped('id') if deliveries else [],
'task_create_time': fields.Datetime.now()
}
# 如果只有唯一任务路线,则自动赋予终点接驳站跟任务名称
agv_routes = self.env['sf.agv.task.route'].sudo().search([
('route_type', '=', agv_route_type),
('start_site_id', '=', agv_start_site.id)
])
if not agv_routes:
raise UserError(_('不存在起点为【%s】的【%s】任务路线,请先创建!' % (agv_start_site_name, agv_route_type)))
idle_route = None
if len(agv_routes) == 1:
idle_route = agv_routes[0]
vals.update({'end_site_id': idle_route.end_site_id.id, 'agv_route_id': idle_route.id})
else:
# 判断终点接驳站是否为空闲
idle_routes = agv_routes.filtered(lambda r: r.end_site_id.state == '空闲')
if idle_routes:
# 将空闲的路线按照终点接驳站名称排序
idle_routes = sorted(idle_routes, key=lambda r: r.end_site_id.name)
idle_route = idle_routes[0]
vals.update({'end_site_id': idle_route.end_site_id.id, 'agv_route_id': idle_route.id})
try:
scheduling = self.env['sf.agv.scheduling'].sudo().create(vals)
# 触发空闲接驳站状态更新,触发新任务下发
if idle_route and idle_route.end_site_id.state == '空闲':
scheduling.dispatch_scheduling(idle_route)
except Exception as e:
_logger.error('添加AGV调度任务失败: %s', e)
raise UserError(_('添加AGV调度任务失败: %s', e))
return scheduling
def on_site_state_change(self, agv_site_id, agv_site_state):
"""
响应AGV接驳站站点状态变化
params:
agv_site_id: 接驳站ID
agv_site_state: 站点状态('空闲', '占用'
"""
if agv_site_state == '空闲':
# 查询终点接驳站为agv_site_id的AGV路线
task_routes = self.env['sf.agv.task.route'].sudo().search([('end_site_id', '=', agv_site_id)])
agv_scheduling = self.env['sf.agv.scheduling'].sudo().search(
[('state', '=', '待下发'), ('agv_route_type', 'in', task_routes.mapped('route_type'))],
order='id asc',
limit=1
)
task_route = task_routes.filtered(
lambda r: r.start_site_id == agv_scheduling.start_site_id and r.start_site_id == agv_scheduling.start_site_id
)
if task_route:
# 下发AGV调度任务并修改接驳站状态为占用
agv_scheduling.dispatch_scheduling(task_route)
def _delivery_avg(self):
config = self.env['res.config.settings'].get_values()
position_code_arr = [{
'positionCode': self.start_site_id.name,
'code': '00'
}, {
'positionCode': self.end_site_id.name,
'code': '00'
}]
res = {'reqCode': self.name, 'reqTime': '', 'clientCode': '', 'tokenCode': '',
'taskTyp': 'F01', 'ctnrTyp': '', 'ctnrCode': '', 'wbCode': config['wbcode'],
'positionCodePath': position_code_arr,
'podCode': '',
'podDir': '', 'materialLot': '', 'priority': '', 'taskCode': '', 'agvCode': '', 'materialLot': '',
'data': ''}
try:
logging.info('AGV请求路径:%s' % config['agv_rcs_url'])
logging.info('AGV-json:%s' % res)
headers = {'Content-Type': 'application/json'}
ret = requests.post((config['agv_rcs_url']), json=res, headers=headers)
ret = ret.json()
logging.info('config-ret:%s' % ret)
if ret['code'] == 0:
return True
else:
raise UserError(ret['message'])
except Exception as e:
logging.info('config-e:%s' % e)
raise UserError("工件配送请求agv失败:%s" % e)
def button_cancel(self):
# 弹出二次确认窗口后执行
for rec in self:
if rec.state != '待下发':
raise UserError('只有待下发状态的AGV调度任务才能取消')
rec.state = '已取消'
def finish_scheduling(self):
"""
完成调度任务
"""
for rec in self:
if rec.state != '配送中':
return False
_logger.info('AGV任务调度完成任务%s' % rec)
rec.state = '已配送'
rec.task_completion_time = fields.Datetime.now()
def dispatch_scheduling(self, agv_task_route):
"""
下发调度任务
params:
agv_route sf.agv.task.route对象
"""
for rec in self:
if rec.state != '待下发':
return False
_logger.info('AGV任务调度下发调度任务路线为%s' % agv_task_route)
rec.state = '配送中'
rec.task_delivery_time = fields.Datetime.now()
rec.site_state = '空闲'
rec.end_site_id = agv_task_route.end_site_id.id
rec.agv_route_id = agv_task_route.id
is_agv_task_dispatch = self.env['ir.config_parameter'].sudo().get_param('is_agv_task_dispatch')
if is_agv_task_dispatch:
rec._delivery_avg()
# 更新接驳站状态
rec.env['sf.agv.site'].update_site_state({rec.end_site_id.name: '占用'}, False)
def write(self, vals):
if vals.get('state', False):
if vals['state'] == '已取消':
self.env['sf.workpiece.delivery'].search([('agv_scheduling_id', '=', self.id)]).write({'status': '待下发'})
elif vals['state'] == '已配送':
self.env['sf.workpiece.delivery'].search([('agv_scheduling_id', '=', self.id)]).write({
'status': '已配送',
'feeder_station_destination_id': self.end_site_id.id,
'route_id': self.agv_route_id.id,
'task_completion_time': fields.Datetime.now()
})
elif vals['state'] == '配送中':
self.env['sf.workpiece.delivery'].search([('agv_scheduling_id', '=', self.id)]).write({
'feeder_station_destination_id': self.end_site_id.id,
'route_id': self.agv_route_id.id,
'task_delivery_time': fields.Datetime.now()
})
return super().write(vals)
class ResMrpWorkOrder(models.Model):
_inherit = 'mrp.workorder'
agv_scheduling_ids = fields.Many2many(
'sf.agv.scheduling',
'sf_agv_scheduling_mrp_workorder_ref',
string='AGV调度',
domain=[('state', '!=', '已取消')])
def get_down_product_agv_scheduling(self):
"""
获取关联的制造订单下产线的agv任务
"""
self.ensure_one()
workorder_ids = self.production_id.workorder_ids
cnc_workorder = workorder_ids.filtered(
lambda w: w.routing_type == 'CNC加工' and w.state == 'done' and w.processing_panel == self.processing_panel
)
if cnc_workorder:
agv_schedulingss = cnc_workorder.agv_scheduling_ids
return agv_schedulingss.filtered(lambda a: a.state == '已配送' and a.agv_route_type == '下产线')
else:
return None

Some files were not shown because too many files have changed in this diff Show More