春风项目四线(合箱线、总装线)
cl
2024-01-16 52108a651417e8763194c91227aafb12195b96ac
提交 | 用户 | 时间
fd2207 1 <template>
2   <div class="app-container">
3     <el-card class="box-card">
4     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
df1f2b 5       <el-form-item label-width="100" label="生产通知单" prop="productName">
6         <el-input v-model="queryParams.productionNotice" placeholder="请输入生产通知单" clearable @keyup.enter.native="handleQuery"/>
fd2207 7       </el-form-item>
df1f2b 8       <el-form-item label-width="80" label="生产订单" prop="workOrderNo">
9         <el-input v-model="queryParams.workOrderNo" placeholder="请输入生产订单" clearable @keyup.enter.native="handleQuery"/>
fd2207 10       </el-form-item>
df1f2b 11 <!--      <el-form-item label="产品名称" prop="productName">-->
12 <!--        <el-input v-model="queryParams.productName" placeholder="请输入产品名称" clearable @keyup.enter.native="handleQuery"/>-->
13 <!--      </el-form-item>-->
fd2207 14       <el-form-item label="工单状态" prop="orderStatus">
15         <el-select v-model="queryParams.orderStatus" placeholder="请选择工单状态" clearable>
16           <el-option
17             v-for="dict in dict.type.order_state"
18             :key="dict.value"
19             :label="dict.label"
3d8828 20             :value="dict.value"/>
fd2207 21         </el-select>
22       </el-form-item>
23       <el-form-item style="float: right">
24         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
25         <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">高级查询</el-button>
26         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
27       </el-form-item>
28     </el-form>
29     <el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="advancedShowSearch" label-width="68px">
30       <el-form-item style="margin-left: 14px" label="产品编号" prop="productCode">
3d8828 31         <el-input v-model="queryParams.productCode" placeholder="请输入产品编号" clearable @keyup.enter.native="handleQuery"/>
fd2207 32       </el-form-item>
33       <el-form-item label="订单编号" prop="salesOrderCode">
3d8828 34         <el-input v-model="queryParams.salesOrderCode" placeholder="请输入订单编号" clearable @keyup.enter.native="handleQuery"/>
fd2207 35       </el-form-item>
36       <el-form-item label="车间编号" prop="workshopCode">
3d8828 37         <el-input v-model="queryParams.workshopCode" placeholder="请输入车间编号" clearable @keyup.enter.native="handleQuery"/>
fd2207 38       </el-form-item>
39       <el-form-item label="产线编号" prop="lineCode">
3d8828 40         <el-input v-model="queryParams.lineCode" placeholder="请输入产线编号" clearable @keyup.enter.native="handleQuery"/>
fd2207 41       </el-form-item>
42       <el-form-item style="margin-left: 7px" label-width="80" label="产品BOM" prop="bomCode">
3d8828 43         <el-input v-model="queryParams.bomCode" placeholder="请输入产品BOM" clearable @keyup.enter.native="handleQuery"/>
fd2207 44       </el-form-item>
45       <el-form-item label="工艺流程" prop="routeCode">
3d8828 46         <el-input v-model="queryParams.routeCode" placeholder="请输入工艺流程" clearable @keyup.enter.native="handleQuery"/>
fd2207 47       </el-form-item>
48       <el-form-item label="工艺配方" prop="recipeCode">
3d8828 49         <el-input v-model="queryParams.recipeCode" placeholder="请输入工艺配方" clearable @keyup.enter.native="handleQuery"/>
fd2207 50       </el-form-item>
51     </el-form>
52     </el-card>
53
54     <el-card style="margin-top: 10px" class="box-card">
55     <el-row :gutter="10" class="mb8">
56       <el-col :span="1.5">
57         <el-button
58           type="primary"
59           plain
60           icon="el-icon-plus"
61           size="mini"
62           @click="handleAdd"
63           v-hasPermi="['om:productionOrde:add']"
64         >新增</el-button>
65       </el-col>
66       <el-col :span="1.5">
67         <el-button
68           type="success"
69           plain
70           icon="el-icon-edit"
71           size="mini"
72           :disabled="single"
73           @click="handleUpdate"
74           v-hasPermi="['om:productionOrde:edit']"
75         >修改</el-button>
76       </el-col>
77       <el-col :span="1.5">
78         <el-button
79           type="danger"
80           plain
81           icon="el-icon-delete"
82           size="mini"
83           :disabled="multiple"
84           @click="handleDelete"
85           v-hasPermi="['om:productionOrde:remove']"
86         >删除</el-button>
87       </el-col>
88       <el-col :span="1.5">
89         <el-button
90           type="warning"
91           plain
92           icon="el-icon-download"
93           size="mini"
94           @click="handleExport"
95           v-hasPermi="['om:productionOrde:export']"
96         >导出</el-button>
97       </el-col>
acbca4 98 <!--      <el-col :span="1.5">-->
H 99 <!--        <el-button-->
100 <!--          type="warning"-->
101 <!--          plain-->
102 <!--          icon="el-icon-upload2"-->
103 <!--          :disabled="move"-->
104 <!--          size="mini"-->
105 <!--          @click="moveUp(val => val, 'up')"-->
106 <!--        >上移</el-button>-->
107 <!--      </el-col>-->
108 <!--      <el-col :span="1.5">-->
109 <!--        <el-button-->
110 <!--          type="warning"-->
111 <!--          plain-->
112 <!--          icon="el-icon-download"-->
113 <!--          size="mini"-->
114 <!--          :disabled="move"-->
115 <!--          @click="moveUp(val => val, 'down')"-->
116 <!--        >下移</el-button>-->
117 <!--      </el-col>-->
fd2207 118       <el-col :span="1.5">
119         <el-button
120           type="warning"
121           plain
122           icon="el-icon-download"
123           size="mini"
acbca4 124           @click="getProductionNotice"
H 125         >接收</el-button>
fd2207 126       </el-col>
065fe8 127       <el-col :span="1.5">
H 128         <el-button
129           type="primary"
130           plain
3d8828 131           icon="el-icon-createUpdate"
065fe8 132           size="mini"
3d8828 133           :disabled="single"
H 134           @click="CreatehandleUpdate"
135           v-hasPermi="['om:productionOrde:createUpdate']"
065fe8 136         >生成</el-button>
H 137       </el-col>
138
fd2207 139       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
140     </el-row>
141
142       <el-table border v-loading="loading" :data="productionOrdeList" @selection-change="handleSelectionChange">
143         <el-table-column type="selection" width="55" align="center" />
df1f2b 144         <el-table-column label="生产通知单号" width="160" align="center" prop="productionNotice">
145         </el-table-column>
146         <el-table-column label="生产订单" width="160" align="center">
fd2207 147           <template slot-scope="scope">
148             <router-link :to="{path: '/main/workReport-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type">
149               <span>{{ scope.row.workOrderNo }}</span>
150             </router-link>
151           </template>
152         </el-table-column>
df1f2b 153         <el-table-column label="机型" width="160" align="center" prop="typeZ">
fd2207 154         </el-table-column>
df1f2b 155         <el-table-column label="需求数量" align="center" prop="planQty">
fd2207 156         </el-table-column>
acbca4 157         <el-table-column label="产品编号" width="150" align="center" prop="productCode">
3d8828 158         </el-table-column>
f11989 159 <!--        <el-table-column label="实际数量" width="160" align="center" prop="actualQty">-->
160 <!--        </el-table-column>-->
fd2207 161         <el-table-column label="工单状态" align="center" prop="orderStatus">
162           <template slot-scope="scope">
163             <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>
164           </template>
165         </el-table-column>
f11989 166 <!--        <el-table-column label="工厂" align="center" prop="workshopCode">-->
167 <!--        </el-table-column>-->
168 <!--        <el-table-column label="仓库" align="center">-->
169 <!--        </el-table-column>-->
df1f2b 170         <el-table-column label="产线" align="center" prop="lineCode">
fd2207 171         </el-table-column>
f11989 172 <!--        <el-table-column label="订单类型" align="center">-->
173 <!--        </el-table-column>-->
174 <!--        <el-table-column label="ZWS" align="center">-->
175 <!--        </el-table-column>-->
df1f2b 176
177 <!--        <el-table-column label="工艺流程" width="140" align="center" prop="routeCode">-->
178 <!--        </el-table-column>-->
179 <!--        <el-table-column label="产品BOM" width="140" align="center" prop="bomCode">-->
180 <!--        </el-table-column>-->
181 <!--        <el-table-column label="工艺配方" width="140" align="center" prop="recipeCode">-->
182 <!--        </el-table-column>-->
183
184 <!--        <el-table-column label="实际数量" align="center" prop="actualQty">-->
185 <!--        </el-table-column>-->
186 <!--        <el-table-column label="实际上线数量" width="100" align="center" prop="actualOnlineQty">-->
187 <!--        </el-table-column>-->
188 <!--        <el-table-column label="需求日期" align="center" prop="demandDate" width="180">-->
189 <!--        </el-table-column>-->
190 <!--        <el-table-column label="计划开始时间" width="160" align="center" prop="planStartTime">-->
191 <!--        </el-table-column>-->
192 <!--        <el-table-column label="计划结束时间" width="160" align="center" prop="planEndTime">-->
193 <!--        </el-table-column>-->
194 <!--        <el-table-column label="实际开始时间" width="160" align="center" prop="actualStartTime">-->
195 <!--        </el-table-column>-->
196 <!--        <el-table-column label="实际结束时间" width="160" align="center" prop="actualEndTime">-->
197 <!--        </el-table-column>-->
198
199 <!--        <el-table-column width="160" label="更新时间" align="center" prop="updateTime">-->
200 <!--        </el-table-column>-->
201         <el-table-column label="通知单制单人" width="80" align="center" prop="createUser">
fd2207 202         </el-table-column>
df1f2b 203         <el-table-column width="160" label="通知生成日期" align="center" prop="createTime">
fd2207 204         </el-table-column>
f11989 205         <el-table-column label="成品描述" width="320" align="center" prop="productName">
fd2207 206         </el-table-column>
df1f2b 207 <!--        <el-table-column label="修改人" width="80" align="center" prop="updateUser">-->
208 <!--        </el-table-column>-->
209 <!--        <el-table-column label="备注" width="100" align="center" prop="remarks">-->
210 <!--        </el-table-column>-->
211 <!--        <el-table-column label="流水号" align="center" prop="streamNumber">-->
212 <!--        </el-table-column>-->
213 <!--        <el-table-column label="客户" width="80" align="center" prop="custom">-->
214 <!--        </el-table-column>-->
215 <!--        <el-table-column fixed="right" width="350" label="操作" align="center" class-name="small-padding fixed-width">-->
216 <!--          <template slot-scope="scope">-->
217 <!--            &lt;!&ndash;  工单状态(1创建、2已发布、3生产中、4已冻结、5已完工、6已关闭) &ndash;&gt;-->
218 <!--            <el-button type="success" :disabled="scope.row.orderStatus !== '1'"  style="width: 72px" plain @click="handleCommand('3',scope.row.id)" size="mini">-->
219 <!--              开始</el-button>-->
220 <!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '2' && scope.row.orderStatus !== '3'" v-if="scope.row.orderStatus !== '2'&&  scope.row.orderStatus !== '4'" plain @click="handleCommand('4',scope.row.id)" type="warning" size="mini">-->
221 <!--              冻结</el-button>-->
222 <!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '4'" v-if="scope.row.orderStatus === '4'" plain @click="handleCommand('3',scope.row.id)" type="warning" size="mini">-->
223 <!--              解冻</el-button>-->
224 <!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '1'" plain @click="handleCommand('6',scope.row.id)" v-if="scope.row.orderStatus === '1'||scope.row.orderStatus === '3'||scope.row.orderStatus === '4'||scope.row.orderStatus === '5'" type="danger" size="mini">-->
225 <!--              关闭</el-button>-->
226 <!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">-->
227 <!--              启用</el-button>-->
228 <!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '4'||scope.row.orderStatus === '6'" v-if="scope.row.orderStatus !== '5'" @click="handleCommand('5',scope.row.id)" type="success" size="mini">-->
229 <!--              完成</el-button>-->
230 <!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '5'" v-if="scope.row.orderStatus === '5'" type="success" size="mini">已完工</el-button>            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">-->
231 <!--            启用</el-button>-->
232 <!--          </template>-->
233 <!--        </el-table-column>-->
fd2207 234       </el-table>
235     </el-card>
236
237
238     <pagination
239       v-show="total>0"
240       :total="total"
241       :page.sync="queryParams.pageNum"
242       :limit.sync="queryParams.pageSize"
243       @pagination="getList"
244     />
245
246     <!-- 添加或修改生产工单对话框 -->
247     <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="1000px" append-to-body>
248        <span slot="title">
249         <i class="el-icon-s-order"></i>
250         {{titleName}}
251       </span>
252       <el-form ref="form" inline :model="form" :rules="rules" label-width="80px">
253         <el-form-item label="工单号" prop="workOrderNo">
df1f2b 254           <el-input v-model="form.workOrderNo" placeholder="请输入生产订单" />
fd2207 255         </el-form-item>
256         <el-form-item label="订单编号" prop="salesOrderCode">
257           <el-input v-model="form.salesOrderCode" placeholder="请输入订单编号" />
258         </el-form-item>
259         <el-form-item label="产品编号" prop="productCode">
260           <el-input v-model="form.productCode" placeholder="请选择产品" >
261             <el-button slot="append" @click="handleSelectProduct" icon="el-icon-search"></el-button>
262           </el-input>
263           <ItemSelect ref="itemSelect" @onSelected="onItemSelected" > </ItemSelect>
264         </el-form-item>
265         <el-form-item label="产品名称" prop="productName">
266           <el-input v-model="form.productName" disabled placeholder="请输入产品名称" />
065fe8 267         </el-form-item>
3d8828 268         <el-form-item label="种类" prop="productName">
065fe8 269           <el-input v-model="form.typeZ" disabled placeholder="请输入种类" />
3d8828 270         </el-form-item>
H 271         <el-form-item label="实际数量" prop="actualQty">
272           <el-input v-model="form.actualQty"  placeholder="请输入实际数量" />
fd2207 273         </el-form-item>
274         <el-form-item label="车间编号" prop="workshopCode">
275           <el-select style="width: 93%" @change="handleSelectChange(form.workshopCode)" v-model="form.workshopCode" placeholder="请选择车间编号">
276             <el-option
277               v-for="item in options"
278               :key="item.workshopCode"
279               :label="item.workshopName"
280               :value="item.workshopCode">
281             </el-option>
282           </el-select>
283         </el-form-item>
284         <el-form-item style="margin-left: -15px" label="产线编号" prop="lineCode">
285           <el-select style="width: 93%" v-model="form.lineCode" placeholder="请选择产线编号">
286             <el-option
287               v-for="item in lineOptions"
288               :key="item.lineCode"
289               :label="item.lineName"
290               :value="item.lineCode">
291             </el-option>
292           </el-select>
293         </el-form-item>
294         <el-form-item label="工艺流程" prop="routeCode">
295           <el-input v-model="form.routeCode" disabled placeholder="请输入工艺流程" />
296         </el-form-item>
297         <el-form-item label="产品BOM" prop="bomCode">
298           <el-input v-model="form.bomCode" disabled placeholder="请输入产品BOM" />
299         </el-form-item>
300         <el-form-item label="工艺配方" prop="recipeCode">
301           <el-input v-model="form.recipeCode" placeholder="请输入工艺配方" />
302         </el-form-item>
303         <el-form-item label="计划数量" prop="planQty">
304           <el-input v-model="form.planQty" placeholder="请输入计划数量" />
305         </el-form-item>
306         <el-form-item label="需求日期" prop="demandDate">
307           <el-date-picker style="width: 88%" clearable
308             v-model="form.demandDate"
309             type="date"
310             value-format="yyyy-MM-dd"
311             placeholder="请选择需求日期">
312           </el-date-picker>
313         </el-form-item>
314         <el-form-item style="margin-left: -30px" label="备注" prop="remarks">
315           <el-input v-model="form.remarks" placeholder="请输入备注" />
316         </el-form-item>
317         <el-row>
318           <el-col :span="12">
319             <el-form-item style="margin-left: 10px" label-width="120" label="计划开始时间" prop="planStartTime">
320               <el-date-picker clearable
321                 v-model="form.planStartTime"
322                 type="date"
323                 value-format="yyyy-MM-dd"
324                 placeholder="请选择计划开始时间">
325               </el-date-picker>
326             </el-form-item>
327           </el-col>
328           <el-col :span="12">
329             <el-form-item style="margin-left: 76px" label-width="120" label="计划结束时间" prop="planEndTime">
330               <el-date-picker clearable
331                 v-model="form.planEndTime"
332                 type="date"
333                 value-format="yyyy-MM-dd"
334                 placeholder="请选择计划结束时间">
335               </el-date-picker>
336             </el-form-item>
337           </el-col>
338
339         </el-row>
340       </el-form>
341       <div slot="footer" class="dialog-footer">
342         <el-button type="primary" @click="submitForm">确 定</el-button>
343         <el-button @click="cancel">取 消</el-button>
344       </div>
345     </el-dialog>
346
3d8828 347     <el-dialog v-dialogpop-up :title="title" :visible.sync="Createopen" width="400px" append-to-body>
H 348        <span slot="title">
349         <i class="el-icon-s-order"></i>
350         {{titleName}}
351       </span>
f11989 352       <el-form ref="form" inline  :model="form" :rules="CreateRules" label-width="80px">
3d8828 353         <el-form-item   label="种类" prop="typeZ">
H 354           <el-input disabled v-model="form.typeZ"  placeholder="请输入种类" />
355         </el-form-item>
05d425 356         <el-form-item  label="日期" prop="dateTime">
C 357           <el-date-picker clearable
358                           v-model="form.dateTime"
359                           type="date"
360                           value-format="yyyy-MM-dd"
361                           placeholder="请选择日期" @input="handleCodeChange">
362           </el-date-picker>
3d8828 363         </el-form-item>
f11989 364         <el-form-item class="hidden-form-item" label="日期规则" prop="dateTimeRule">
365           <el-input v-model="form.dateTimeRule"/>
3d8828 366         </el-form-item>
05d425 367         <el-form-item   label="起始编号" prop="startCode">
acbca4 368           <el-input type="number"   :maxlength="3"  :pattern="'[0-9]{3}'" v-model="form.startCode"  placeholder="请输入起始编号" @input="handleCodeChange"/>
3d8828 369         </el-form-item>
05d425 370         <el-form-item   label="起止编号" prop="startEndCode">
C 371           <el-input disabled v-model="form.startEndCode"/>
3d8828 372         </el-form-item>
H 373       </el-form>
374       <div slot="footer" class="dialog-footer">
05d425 375         <el-button type="primary" @click="submitFormForBoxCode">确 定</el-button>
3d8828 376         <el-button @click="cancel">取 消</el-button>
H 377       </div>
378     </el-dialog>
379
fd2207 380   </div>
381 </template>
382
383 <script>
384 import { listLineInfo } from "@/api/main/bs/lineInfo/lineInfo";
385 import { listWorkshop } from "@/api/main/bs/workshop/workshop";
386 import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom";
387 import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute";
388 import ItemSelect  from "@/components/itemSelect/single.vue";
05d425 389 import {  addOrderSchedulingForBoxCode,getProductionNotice, upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
C 390 import {
391   listOrderScheduling,
392   getOrderScheduling,
393   delOrderScheduling,
394   addOrderScheduling,
395   updateOrderScheduling,
396   generateNumbers
397 } from "@/api/main/bs/orderScheduling/orderScheduling";
f11989 398 import {listMaterial} from "@/api/main/bs/material/material";
fd2207 399
400 export default {
401   name: "ProductionOrde",
3d8828 402   dicts: ['order_state','year','month','day'],
fd2207 403   components: {
404     ItemSelect ,
405   },
406   data() {
407     return {
408       titleName: '',
409       options: [],
410       lineOptions: [],
3d8828 411       outputArray: [],
fd2207 412       showFlag:false,
413       advancedShowSearch: false,
414       workOrder: {
415         status: 'ss'
416       },
417       // 遮罩层
418       loading: true,
419       // 选中数组
420       ids: [],
421       // 非单个禁用
422       single: true,
423       // 非多个禁用
424       multiple: true,
425       move: true,
426       selectedRowIndex: -1, // 存储选中行的索引
427       // 显示搜索条件
428       showSearch: true,
429       // 总条数
430       total: 0,
431       // 生产工单表格数据
432       productionOrdeList: [],
433       // 弹出层标题
434       title: "",
435       // 是否显示弹出层
436       open: false,
3d8828 437       Createopen: false,
fd2207 438       // 查询参数
439       queryParams: {
440         pageNum: 1,
441         pageSize: 10,
442         workOrderNo: null,
443         salesOrderCode: null,
444         productCode: null,
445         productName: null,
446         workshopCode: null,
447         lineCode: null,
448         routeCode: null,
449         bomCode: null,
450         recipeCode: null,
451         orderStatus: null,
452         custom: null,
453         marketAreaCode: null,
454         softwareVersionCode: null,
455         productCompanyCode: null,
456         frontEndId: 0,
457         idNums: null,
065fe8 458         typeZ: null,
fd2207 459         flag: null,
3d8828 460         adds:null,
df1f2b 461         productionNotice: null,
fd2207 462       },
f11989 463       materialQueryParams: {
464         pageNum: 1,
465         pageSize: 10,
466         materialCode: null,
467       },
3d8828 468
fd2207 469       // 表单参数
470       form: {},
471       updateStatusParameter: {
472         id: null,
473         orderStatus: null
474       },
475       // 表单校验
476       rules: {
477         id: [
478           { required: true, message: "ID不能为空", trigger: "blur" }
479         ],
3d8828 480       },
H 481       CreateRules: {
482         day: [
483           { required: true, message: "不能为空", trigger: "blur" }
484         ],
485         month: [
486           { required: true, message: "不能为空", trigger: "blur" }
487         ],
488         year: [
489           { required: true, message: "不能为空", trigger: "blur" }
490         ],
f11989 491         dateTime: [
492           { required: true, message: "不能为空", trigger: "blur" }
493         ],
494         startCode: [
495           { required: true, message: "不能为空", trigger: "blur" }
496         ],
3d8828 497       },
H 498       change: {
499         day: '',
500         month: '',
501         year: '',
502       },
f11989 503       markNo: '',
fd2207 504     };
505   },
506   created() {
507     this.getList();
508     this.initWorkshop();
509   },
510   methods: {
05d425 511     //日期或开始编号输入时
C 512     handleCodeChange(data){
513       let dateTime = this.form.dateTime;
514       let planQty = this.form.planQty;
515       let startCode = this.form.startCode
516       if(dateTime !== null && dateTime !== undefined
517         && startCode !== null && startCode !== undefined) {
518         let dateTimes = dateTime.split("-");
519         let year = dateTimes[0];
520         let month = dateTimes[1];
521         let day = dateTimes[2];
522         let dictYear = this.dict.type.year;
523         let dictMonth = this.dict.type.month;
524         let startCode = this.form.startCode
525         let dateTimeRule = "";
526
527         //年
528         for (let i = 0; i < dictYear.length; i++) {
529           if (year === dictYear[i].label) {
530             dateTimeRule = dictYear[i].value
531             // this.form.startEndCode = startEndCode;
532           }
533         }
534         //月
535         for (let i = 0; i < dictMonth.length; i++) {
536           if (month === dictMonth[i].label) {
537             dateTimeRule = dateTimeRule + dictMonth[i].value;
538           }
539         }
540         //日
541         dateTimeRule = dateTimeRule + day;
f11989 542         dateTimeRule = dateTimeRule + this.markNo;
05d425 543         this.form.dateTimeRule = dateTimeRule;
C 544         //赋值起始编码
f11989 545         this.form.startEndCode = dateTimeRule +  startCode + "----" + dateTimeRule + String(parseInt(startCode) + parseInt(planQty)-1).padStart(3, '0') ;
05d425 546       }
C 547     },
548
df1f2b 549     getProductionNotice(){
550       getProductionNotice(this.queryParams).then(response => {
551         this.$modal.msgSuccess("接收成功");
552         this.queryParams = {}
553         this.getList();
554       });
555     },
3d8828 556     //数组生成
H 557     changeDay(day){
558       this.change.day = day;
559       let adds =this.form.typeZ+this.change.year+this.change.month+this.change.day+this.form.actualQty;
560       this.form.adds = adds
561     },
562     changeMonth(day){
563       this.change.month = day;
564       let adds =this.form.typeZ+this.change.year+this.change.month+this.change.day+this.form.actualQty;
565       this.form.adds = adds
566     },
567     changeYear(day){
568       this.change.year = day;
569       let adds =this.form.typeZ+this.change.year+this.change.month+this.change.day+this.form.actualQty;
570       this.form.adds = adds
571     },
fd2207 572     moveUp(row, val){
573       console.log(val)
574       const ids = row.id || this.ids
575       let str = JSON.stringify(ids);
576       let num = BigInt(str.replace(/[\[\]]/g, ''));
577       this.queryParams.frontEndId = num
578       this.queryParams.idNums = ids
579       this.queryParams.flag = val
580       upDownMove(this.queryParams).then(response => {
581         this.$modal.msgSuccess("移动成功");
582         this.getList();
583       });
584     },
585     initWorkshop(){
586       listWorkshop(this.queryParams).then(response => {
587         this.options = response.rows;
588       });
589     },
590     // 在这里编写处理选中事件的逻辑
3d8828 591
H 592
fd2207 593     //物料选择弹出框
594     onItemSelected(obj){
595       if(obj !== undefined && obj !== null){
596         let productCode = obj.materialCode;
597         this.form.productCode = productCode;
598         this.form.productName = obj.materialName;
065fe8 599         this.form.typeZ = obj.typeZ;
3d8828 600         this.typeL = obj.typeZ;
065fe8 601         this.queryParams.productCode = productCode;
H 602         this.queryParams.typeZ = typeZ
fd2207 603         listTechnologyRoute(this.queryParams).then(response => {
604           this.form.routeCode = response.rows[0].routeCode;
605         });
606         listProductBom(this.queryParams).then(response => {
607           this.form.bomCode = response.rows[0].bomCode;
608         });
609       }
610     },
611     handleSelectProduct(){
612       this.$refs.itemSelect.showFlag = true;
613     },
614     advancedQuery(){
615       this.advancedShowSearch = (this.advancedShowSearch) ? this.advancedShowSearch = false : this.advancedShowSearch = true;
616     },
617     handleCommand(status,id) {
618       console.log(status)
619       this.updateStatusParameter.id = id;
620       this.updateStatusParameter.orderStatus = status;
621       updateProductionOrde(this.updateStatusParameter).then(response => {
622         this.$modal.msgSuccess("修改成功");
623         this.open = false;
624         this.getList();
625       });
626     },
627     /** 查询生产工单列表 */
628     getList() {
629       this.loading = true;
630       listProductionOrde(this.queryParams).then(response => {
631         this.productionOrdeList = response.rows;
632         this.total = response.total;
633         this.loading = false;
634       });
635     },
636     // 取消按钮
637     cancel() {
638       this.open = false;
3d8828 639       this.Createopen = false;
fd2207 640       this.reset();
641     },
642     // 表单重置
643     reset() {
644       this.form = {
645         id: null,
646         workOrderNo: null,
647         salesOrderCode: null,
648         productCode: null,
649         productName: null,
650         workshopCode: null,
651         lineCode: null,
652         routeCode: null,
653         bomCode: null,
654         recipeCode: null,
655         planQty: null,
656         actualQty: null,
657         badQty: null,
658         scrapQty: null,
659         repairQty: null,
660         actualOnlineQty: null,
661         onlineCompletionMark: null,
662         demandDate: null,
663         planStartTime: null,
664         planEndTime: null,
665         actualStartTime: null,
666         actualEndTime: null,
667         serialNumber: null,
668         orderStatus: null,
669         createTime: null,
670         updateTime: null,
671         createUser: null,
672         updateUser: null,
673         remarks: null,
674         streamNumber: null,
675         custom: null,
676         marketAreaCode: null,
677         softwareVersionCode: null,
678         productCompanyCode: null,
679         spareField1: null,
680         spareField2: null,
681         spareField3: null,
065fe8 682         typeZ: null,
3d8828 683         spareField4: null,
H 684         adds:null
fd2207 685       };
686       this.resetForm("form");
687     },
688     /** 搜索按钮操作 */
689     handleQuery() {
690       this.queryParams.pageNum = 1;
691       this.getList();
692     },
693     /** 重置按钮操作 */
694     resetQuery() {
695       this.resetForm("queryForm");
696       this.handleQuery();
697     },
698     // 多选框选中数据
699     handleSelectionChange(selection) {
700       this.ids = selection.map(item => item.id)
701       this.move = selection.length!==1
702       if(!selection.length){
703         this.single = true
704         this.multiple = true
705       }else {
706         if(selection[0].orderStatus === '1' && selection.length === 1){
707           this.single = false
708           this.multiple = false
709         }
710       }
711
712     },
713     /** 新增按钮操作 */
714     handleAdd() {
715       this.initWorkshop();
716       this.reset();
717       this.open = true;
df1f2b 718       this.titleName = "添加生产订单";
3d8828 719     },
H 720     /** 同步按钮操作 */
721     CreatehandleUpdate(Row) {
722       this.initWorkshop();
723       this.reset();
724       const id = Row.id || this.ids
725       getProductionOrde(id).then(response => {
726         console.log(response.data)
f11989 727         console.log(response.data.productCode)
728         this.materialQueryParams.materialCode = response.data.productCode;
729         listMaterial(this.materialQueryParams).then(response => {
730           this.markNo = response.rows[0].mark
731         });
3d8828 732         this.form = response.data;
H 733         this.Createopen = true;
05d425 734         this.titleName = "生成箱体条码";
3d8828 735         // return Array.from({ length: parseInt(this.actualQty) }, (_, index) => index + 1);
H 736       });
fd2207 737     },
738     /** 修改按钮操作 */
739     handleUpdate(row) {
740       this.initWorkshop();
741       this.reset();
742       const id = row.id || this.ids
743       getProductionOrde(id).then(response => {
744         console.log(response.data)
745         this.form = response.data;
746         this.open = true;
df1f2b 747         this.titleName = "修改生产订单";
fd2207 748       });
749     },
750     /** 提交按钮 */
751     submitForm() {
752       this.$refs["form"].validate(valid => {
753         if (valid) {
754           if (this.form.id != null) {
755             updateProductionOrde(this.form).then(response => {
756               this.$modal.msgSuccess("修改成功");
757               this.open = false;
758               this.getList();
759             });
760           } else {
761             addProductionOrde(this.form).then(response => {
762               this.$modal.msgSuccess("新增成功");
763               this.open = false;
764               this.getList();
765             });
766           }
767         }
768       });
769     },
05d425 770
C 771     /** 生成箱体条码提交按钮 */
772     submitFormForBoxCode() {
773       this.$refs["form"].validate(valid => {
774         if (valid) {
775           if (this.form.id != null) {
776             addOrderSchedulingForBoxCode(this.form).then(response => {
777               this.$modal.msgSuccess("保存成功");
f11989 778               this.Createopen = false;
05d425 779               this.getList();
C 780             });
781           }
782         }
783       });
784     },
785
fd2207 786     /** 删除按钮操作 */
787     handleDelete(row) {
788       const ids = row.id || this.ids;
df1f2b 789       this.$modal.confirm('是否确认删除生产订单编号为"' + ids + '"的数据项?').then(function() {
fd2207 790         return delProductionOrde(ids);
791       }).then(() => {
792         this.getList();
793         this.$modal.msgSuccess("删除成功");
794       }).catch(() => {});
795     },
796     /** 导出按钮操作 */
797     handleExport() {
798       this.download('om/productionOrde/export', {
799         ...this.queryParams
800       }, `productionOrde_${new Date().getTime()}.xlsx`)
3d8828 801     },
H 802
fd2207 803   }
804 };
805 </script>
806 <style lang="scss" scoped>
f11989 807 .hidden-form-item {
808   display: none;
809 }
fd2207 810 </style>