懒羊羊
2023-08-30 1ac2bc1590406d9babec036e154d8d08f34a6aa1
提交 | 用户 | 时间
1ac2bc 1 layui.use(['table', 'admin', 'ax', 'func'], function () {
2     var $ = layui.$;
3     var table = layui.table;
4     var $ax = layui.ax;
5     var admin = layui.admin;
6     var func = layui.func;
7
8     /**
9      * 生产工单管理
10      */
11     var WorkOrder = {
12         tableId: "workOrderTable"
13     };
14
15     /**
16      * 初始化表格的列
17      */
18     WorkOrder.initColumn = function () {
19         return [[
20             {type: 'checkbox'},
21             {field: 'id', hide: true, title: '主键id'},
22             {align: 'center', toolbar: '#tableBar', title: '操作',minWidth:330},
23             {field: 'workOrderCode', sort: true, title: '工单编号',width: 160},
24             {field: 'salesOrderCode', sort: true, title: '订单编号',width: 160},
25             {field: 'productCode', sort: true, title: '产品编号',width: 160},
26             {field: 'productName', sort: true, title: '产品名称',width: 160},
27             {field: 'planQty', sort: true, title: '计划数量',width: 120},
28             {field: 'produceQty', sort: true, title: '完成数量',width: 120},
29             {field: 'onlineQty', sort: true, title: '上线数量',width: 120},
30             {field: 'planStartTime', sort: true, title: '计划开始时间',width: 160},
31             {field: 'planEndTime', sort: true, title: '计划结束时间',width: 160},
32             {field: 'produceStartTime', sort: true, title: '生产开始时间',width: 160},
33             {field: 'produceEndTime', sort: true, title: '生产结束时间',width: 160},
34             {field: 'workshopCode', sort: true, title: '车间编码',width: 120},
35             {field: 'lineCode', sort: true, title: '产线编码',width: 120},
36             {field: 'state', sort: true, title: '状态',width: 120,templet: '#orderStatusTpl'},
37             {field: 'badQty', sort: true, title: '不良数量',width: 120},
38             {field: 'repairQty', sort: true, title: '返修数量',width: 120},
39             {field: 'scrapQty', sort: true, title: '报废数量',width: 120},
40             {field: 'routeCode', sort: true, title: '工艺流程',width: 120},
41             {field: 'bomCode', sort: true, title: '产品BOM',width: 160},
42             {field: 'recipeCode', sort: true, title: '工艺配方',width: 120},
43             {field: 'createUser', sort: true, title: '创建用户',width: 120},
44             {field: 'createTime', sort: true, title: '创建时间',width: 160},
45             {field: 'updateUser', sort: true, title: '更改用户',width: 120},
46             {field: 'updateTime', sort: true, title: '更改时间',width: 160},
47             {field: 'remark', sort: true, title: '备注',width: 160},
48             // {fixed: 'right',width: 125, minWidth: 125, align: 'center', toolbar: '#tableBar', title: '操作'}
49         ]];
50     };
51
52     /**
53      * 点击查询按钮
54      */
55     WorkOrder.search = function () {
56         var queryData = {};
57
58         queryData['workOrderCode'] = $('#workOrderCode').val();
59         queryData['salesOrderCode'] = $('#salesOrderCode').val();
60         queryData['productCode'] = $('#productCode').val();
61         queryData['productName'] = $('#productName').val();
62         queryData['workshopCode'] = $('#workshopCode').val();
63         queryData['lineCode'] = $('#lineCode').val();
64         queryData['state'] = $('#state').val();
65
66         table.reload(WorkOrder.tableId, {
67             where: queryData, page: {curr: 1}
68         });
69     };
70
71     /**
72      * 跳转到添加页面
73      */
74     WorkOrder.jumpAddPage = function () {
75         window.location.href = Feng.ctxPath + '/workOrder/add'
76     };
77
78     /**
79     * 跳转到编辑页面
80     *
81     * @param data 点击按钮时候的行数据
82     */
83     WorkOrder.jumpEditPage = function (data) {
84         window.location.href = Feng.ctxPath + '/workOrder/edit?id=' + data.id
85     };
86
87     /**
88      * 导出excel按钮
89      */
90     WorkOrder.exportExcel = function () {
91         var checkRows = table.checkStatus(WorkOrder.tableId);
92         if (checkRows.data.length === 0) {
93             Feng.error("请选择要导出的数据");
94         } else {
95             table.exportFile(tableResult.config.id, checkRows.data, 'xls');
96         }
97     };
98
99     /**
100      * 点击删除
101      *
102      * @param data 点击按钮时候的行数据
103      */
104     WorkOrder.onDeleteItem = function (data) {
105         var operation = function () {
106             var ajax = new $ax(Feng.ctxPath + "/workOrder/delete", function (data) {
107                 Feng.success("删除成功!");
108                 table.reload(WorkOrder.tableId);
109             }, function (data) {
110                 Feng.error("删除失败!" + data.responseJSON.message + "!");
111             });
112             ajax.set("id", data.id);
113             ajax.start();
114         };
115         Feng.confirm("是否删除?", operation);
116     };
117
118     // 渲染表格
119     var tableResult = table.render({
120         elem: '#' + WorkOrder.tableId,
121         url: Feng.ctxPath + '/workOrder/list',
122         page: true,
123         height: "full-158",
124         cellMinWidth: 100,
125         cols: WorkOrder.initColumn()
126     });
127
128     // 搜索按钮点击事件
129     $('#btnSearch').click(function () {
130         WorkOrder.search();
131     });
132
133     // 添加按钮点击事件
134     $('#btnAdd').click(function () {
135
136     WorkOrder.jumpAddPage();
137
138     });
139
140     // 导出excel
141     $('#btnExp').click(function () {
142         WorkOrder.exportExcel();
143     });
144
145     //操作栏编辑
146     /**
147      * 点击开始工单
148      */
149     WorkOrder.startOrder = function (data) {
150         var ajax = new $ax(Feng.ctxPath + "/workOrder/list?state=3");
151         var result = ajax.start();
152         if(result.data.length === 0) {
153             var operation = function () {
154                 var ajax = new $ax(Feng.ctxPath + "/productionOrdeInfo/editItem", function (data) {
155                     Feng.success("开始工单成功!");
156                     table.reload(ProductionOrdeInfo.tableId);
157                 }, function (data) {
158                     Feng.error("开始工单失败!" + data.responseJSON.message + "!");
159                 });
160                 ajax.set(data);
161                 ajax.start();
162             };
163             Feng.confirm("是否开始生产?", operation);
164         }else {
165             layer.open({
166                 title: "操作提示",
167                 icon: 0,
168                 closeBtn: 2,
169                 area: ['450px', '200px'],
170                 time: 5000,
171                 content: '<span style="font-size: 30px;color: red">开始失败,只能有一条生产中的工单进行生产!</span>'
172             });
173         }
174     };
175
176     // 工具条点击事件
177     table.on('tool(' + WorkOrder.tableId + ')', function (obj) {
178         var data = obj.data;
179         var layEvent = obj.event;
180
181         // if (layEvent === 'edit') {
182         //     WorkOrder.jumpEditPage(data);
183         // } else if (layEvent === 'delete') {
184         //     WorkOrder.onDeleteItem(data);
185         // }
186         if (layEvent === 'edit') {//编辑
187             WorkOrder.jumpEditPage(data);
188         }
189         else if (layEvent === 'start') {//开始
190             data.orderStatus = '3';
191             // data.actualStartTime = getDateTime();
192             WorkOrder.startOrder(data);
193         }else if (layEvent === 'freeze') {//冻结
194             data.orderStatus = '4';
195             WorkOrder.freezeOrder(data);
196         }else if (layEvent === 'thaw') {//解冻
197             data.orderStatus = '3';
198             WorkOrder.thawOrder(data);
199         }else if (layEvent === 'close') {//关闭
200             data.orderStatus = '6';
201             WorkOrder.closeOrder(data);
202         }else if (layEvent === 'enable') {//启用
203             data.orderStatus = '1';
204             WorkOrder.enableOrder(data);
205         }else if (layEvent === 'delete') {
206             WorkOrder.onDeleteItem(data);
207         }else if (layEvent === 'materialCodeClick') {
208             WorkOrder.materialCodeClick(data);
209         }else if (layEvent === 'finish') {//完成
210             data.orderStatus = '5';
211             data.actualEndTime = getDateTime();
212             WorkOrder.finish(data);
213         }
214     });
215
216     //获取当前日期
217     function getDateTime(){
218         let date = new Date();
219         let year = date.getFullYear();
220         let month = date.getMonth() + 1;
221         let day = date.getDate();
222         let time = date.toLocaleTimeString();
223         // 对月份进行处理,1-9月在前面添加一个“0”
224         if (month >= 1 && month <= 9) {
225             month = "0" + month;
226         }
227         //对日期进行处理,1-9日在前面添加一个“0”
228         if (day >= 0 && day <= 9) {
229             day = "0" + day;
230         }
231         let separator = "-"; //添加分隔符“-”
232         this.dateTime = year + separator + month + separator + day + " " + time;
233         return this.dateTime;
234     }
235 });