You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

902 lines
31 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" label-position="top" label-width="100px" >
  4. <el-form-item :label="'工厂编码'">
  5. <el-input v-model="searchData.site" style="width: 130px"></el-input>
  6. </el-form-item>
  7. <el-form-item :label="'派工单号'">
  8. <el-input v-model="searchData.seqNo" type="number" style="width: 130px"></el-input>
  9. </el-form-item>
  10. <el-form-item :label="'生产订单号'">
  11. <el-input v-model="searchData.orderNo" style="width: 120px"></el-input>
  12. </el-form-item>
  13. <el-form-item >
  14. <span slot="label" style="" @click="getBaseList(24)"><a herf="#">加工中心编码</a></span>
  15. <el-input v-model="searchData.sWorkCenterNo" style="width: 120px"></el-input>
  16. </el-form-item>
  17. <el-form-item >
  18. <span slot="label" style="" @click="getBaseList(5)"><a herf="#">产品编码</a></span>
  19. <el-input v-model="searchData.partNo" style="width: 120px"></el-input>
  20. </el-form-item>
  21. <el-form-item :label="'工序名称'">
  22. <el-input v-model="searchData.itemDesc" style="width: 120px"></el-input>
  23. </el-form-item>
  24. <el-form-item :label="'派工单是否关闭'">
  25. <el-select v-model="searchData.reportFlag" style="width: 120px">
  26. <el-option label="全部" value=""></el-option>
  27. <el-option label="是" value="closedFlag='Y'"></el-option>
  28. <el-option label="否" value="closedFlag='N'"></el-option>
  29. </el-select>
  30. </el-form-item>
  31. </el-form>
  32. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  33. <el-form-item :label="'派工日期:'">
  34. <el-date-picker
  35. style="width: 130px"
  36. v-model="searchData.startDate"
  37. value-format="yyyy-MM-dd"
  38. placeholder="选择日期">
  39. </el-date-picker>
  40. </el-form-item>
  41. <el-form-item :label="'至: '">
  42. <el-date-picker
  43. style="width: 130px"
  44. v-model="searchData.endDate"
  45. type="date"
  46. value-format="yyyy-MM-dd"
  47. placeholder="选择日期">
  48. </el-date-picker>
  49. </el-form-item>
  50. <el-form-item >
  51. <span slot="label" style="" @click="getBaseList(26,3)"><a herf="#">操作员姓名</a></span>
  52. <el-input v-model="searchData.operatorName" style="width: 120px"></el-input>
  53. </el-form-item>
  54. <el-form-item >
  55. <span slot="label" style="" @click="getBaseList(88)"><a herf="#">机台ID</a></span>
  56. <el-input v-model="searchData.sResourceID" style="width: 120px"></el-input>
  57. </el-form-item>
  58. <el-form-item :label="'班次'">
  59. <el-select v-model="searchData.sShiftNo" style="width: 120px">
  60. <el-option label="全部" value=""></el-option>
  61. <el-option label="白班" value="白班"></el-option>
  62. <el-option label="晚班" value="晚班"></el-option>
  63. </el-select>
  64. </el-form-item>
  65. <el-form-item :label="' '">
  66. <el-button @click="search()" style="margin-left: 0px;margin-top:0px" type="primary">查询</el-button>
  67. <download-excel
  68. :fields="exportDataStandard"
  69. :data="tableData"
  70. type="xlsx"
  71. :name="exportName"
  72. :header="exportHeader"
  73. :footer="exportFooter"
  74. :defaultValue="exportDefaultValue"
  75. :fetch="createExportData"
  76. :before-generate="startDownload"
  77. :before-finish="finishDownload"
  78. worksheet="导出信息"
  79. class="el-button el-button--primary el-button--medium">
  80. {{'导出'}}
  81. </download-excel>
  82. </el-form-item>
  83. </el-form>
  84. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  85. <el-form-item :label="' '">
  86. <el-button @click="openStart()" style="margin-left: 0px;margin-top:0px" type="primary">工具领用</el-button>
  87. <el-button @click="openScan()" style="margin-left: 0px;margin-top:0px" type="primary">工具报工</el-button>
  88. <download-excel
  89. :fields="exportDataStandard"
  90. :data="tableData"
  91. type="xlsx"
  92. :name="exportName"
  93. :header="exportHeader"
  94. :footer="exportFooter"
  95. :defaultValue="exportDefaultValue"
  96. :fetch="createExportData"
  97. :before-generate="startDownload"
  98. :before-finish="finishDownload"
  99. worksheet="导出信息"
  100. class="el-button el-button--primary el-button--medium">
  101. {{'导出'}}
  102. </download-excel>
  103. </el-form-item>
  104. </el-form>
  105. <el-table
  106. :height="height"
  107. :data="tableData"
  108. border
  109. style="width: 100%">
  110. <el-table-column
  111. prop=""
  112. header-align="center"
  113. align="center"
  114. min-width="100"
  115. label="操作">
  116. <template slot-scope="scope" class="foo_container">
  117. <a type="text" size="small" @click="initUseModal(scope.row)">查看工具记录</a>
  118. </template>
  119. </el-table-column>
  120. <el-table-column
  121. prop="site"
  122. header-align="center"
  123. align="left"
  124. min-width="60"
  125. label="工厂编码">
  126. </el-table-column>
  127. <el-table-column
  128. prop="seqNo"
  129. header-align="center"
  130. align="left"
  131. min-width="70"
  132. label="派工单号">
  133. </el-table-column>
  134. <el-table-column
  135. prop="orderNo"
  136. header-align="center"
  137. align="left"
  138. min-width="100"
  139. label="生产订单号">
  140. </el-table-column>
  141. <el-table-column
  142. prop="sScheduledDate"
  143. header-align="center"
  144. align="left"
  145. min-width="80"
  146. label="派工日期">
  147. </el-table-column>
  148. <el-table-column
  149. prop="operatorName"
  150. header-align="center"
  151. align="left"
  152. min-width="80"
  153. label="操作员姓名">
  154. </el-table-column>
  155. <el-table-column
  156. prop="partNo"
  157. header-align="center"
  158. align="left"
  159. min-width="80"
  160. label="产品编码">
  161. </el-table-column>
  162. <el-table-column
  163. prop="partDesc"
  164. header-align="center"
  165. align="left"
  166. min-width="200"
  167. label="产品名称">
  168. </el-table-column>
  169. <el-table-column
  170. prop="itemNo"
  171. header-align="center"
  172. align="left"
  173. min-width="70"
  174. label="工序号">
  175. </el-table-column>
  176. <el-table-column
  177. prop="itemDesc"
  178. header-align="center"
  179. align="left"
  180. min-width="160"
  181. label="工序名称">
  182. </el-table-column>
  183. <el-table-column
  184. prop="qtyRequired"
  185. header-align="center"
  186. align="right"
  187. min-width="80"
  188. label="派工数量">
  189. </el-table-column>
  190. <el-table-column
  191. prop="qtyReported"
  192. header-align="center"
  193. align="right"
  194. min-width="80"
  195. label="报工数量">
  196. </el-table-column>
  197. <el-table-column
  198. prop="qtyApprove"
  199. header-align="center"
  200. align="right"
  201. min-width="80"
  202. label="合格数量">
  203. </el-table-column>
  204. <el-table-column
  205. prop="timeRequired"
  206. header-align="center"
  207. align="right"
  208. min-width="80"
  209. label="需求时间">
  210. </el-table-column>
  211. <el-table-column
  212. prop="sResourceID"
  213. header-align="center"
  214. align="left"
  215. min-width="70"
  216. label="机台ID">
  217. </el-table-column>
  218. <el-table-column
  219. prop="sShiftNo"
  220. header-align="center"
  221. align="left"
  222. min-width="70"
  223. label="班次">
  224. </el-table-column>
  225. <el-table-column
  226. prop="sWorkCenterNo"
  227. header-align="center"
  228. align="left"
  229. min-width="100"
  230. label="加工中心编码">
  231. </el-table-column>
  232. </el-table>
  233. <el-dialog title="工具报工" :close-on-click-modal="false" v-drag :visible.sync="scanModalFlag" width="215px" >
  234. <el-form :inline="true" label-position="top" style="margin-left: 22px;margin-top: -5px;" @submit.native.prevent>
  235. <el-form-item :label="'派工单号:'">
  236. <el-input v-model="scanSeqNo" ref="input" type="number" style="width: 130px;" @keyup.enter.native="searchSeqNo()"></el-input>
  237. </el-form-item>
  238. </el-form>
  239. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  240. <el-button type="primary" @click="searchSeqNo()">搜索</el-button>
  241. <el-button type="primary" @click="scanModalFlag = false">关闭</el-button>
  242. </el-footer>
  243. </el-dialog>
  244. <el-dialog title="领用工具" :close-on-click-modal="false" v-drag :visible.sync="startModalFlag" width="215px">
  245. <el-form :inline="true" label-position="top" style="margin-left: 22px;margin-top: -5px;" @submit.native.prevent>
  246. <el-form-item :label="'派工单号:'">
  247. <el-input v-model="scanSeqNo" ref="start" type="number" style="width: 130px;" @keyup.enter.native="startSeqNo()"></el-input>
  248. </el-form-item>
  249. </el-form>
  250. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  251. <el-button type="primary" @click="startSeqNo()">开始</el-button>
  252. <el-button type="primary" @click="startModalFlag = false">关闭</el-button>
  253. </el-footer>
  254. </el-dialog>
  255. <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" v-drag :title="pageTitle" :visible.sync="setUp.reviewFlag" width="615px">
  256. <el-form :inline="true" label-position="top">
  257. <el-form-item label="派工单号">
  258. <el-input style="width: 130px;" readonly onkeyup="this.value = this.value.toUpperCase()" v-model="saveHeaderData.seqNo"></el-input>
  259. </el-form-item>
  260. <el-form-item label="产品编码">
  261. <el-input style="width: 130px;" readonly v-model="saveHeaderData.partNo"></el-input>
  262. </el-form-item>
  263. <el-form-item label="产品名称/规格型号">
  264. <el-input style="width: 275px;" readonly v-model="saveHeaderData.partDescription"></el-input>
  265. </el-form-item>
  266. </el-form>
  267. <el-form :inline="true" label-position="top">
  268. <el-form-item label="工序号">
  269. <el-input style="width: 130px;" readonly v-model="saveHeaderData.itemNo"></el-input>
  270. </el-form-item>
  271. <el-form-item label="工序名称">
  272. <el-input style="width: 130px;" readonly v-model="saveHeaderData.operationDesc"></el-input>
  273. </el-form-item>
  274. <el-form-item label="加工中心编码">
  275. <el-input style="width: 130px;" readonly v-model="saveHeaderData.workCenterNo"></el-input>
  276. </el-form-item>
  277. <el-form-item label="加工中心名称">
  278. <el-input style="width: 130px;" readonly v-model="saveHeaderData.workCenterDesc"></el-input>
  279. </el-form-item>
  280. </el-form>
  281. <el-form :inline="true" label-position="top">
  282. <el-form-item label="生产订单">
  283. <el-input style="width: 130px;" readonly v-model="saveHeaderData.orderNo"></el-input>
  284. </el-form-item>
  285. <el-form-item label="请扫描工具条码">
  286. <el-input v-if="!toolReportFlag" style="width: 130px;" ref="issuance" v-model="toolInstanceID" @keyup.enter.native="toolIssuance()"></el-input>
  287. <el-input v-if="toolReportFlag" style="width: 130px;" ref="report" v-model="toolInstanceID" @keyup.enter.native="toolReportCheck()"></el-input>
  288. </el-form-item>
  289. </el-form>
  290. <el-table
  291. height="200"
  292. :data="toolList1"
  293. border
  294. style="width: 100%">
  295. <el-table-column
  296. prop="toolInstanceId"
  297. header-align="center"
  298. align="left"
  299. min-width="100"
  300. label="工具实例编码">
  301. </el-table-column>
  302. <el-table-column
  303. prop="reportedby"
  304. header-align="center"
  305. align="left"
  306. min-width="100"
  307. label="领用人">
  308. </el-table-column>
  309. <el-table-column
  310. prop="startDate"
  311. header-align="center"
  312. align="left"
  313. min-width="100"
  314. label="领用日期">
  315. </el-table-column>
  316. </el-table>
  317. <span slot="footer" class="dialog-footer">
  318. <el-button @click="setUp.reviewFlag = false">取消</el-button>
  319. </span>
  320. </el-dialog>
  321. <el-dialog title="工具报工" :close-on-click-modal="false" v-drag :visible.sync="reportModalFlag" width="330px">
  322. <el-form :inline="true" label-position="top">
  323. <el-form-item label="工具实例编码">
  324. <el-input style="width: 130px;" readonly v-model="toolReportData.toolInstanceID"></el-input>
  325. </el-form-item>
  326. <el-form-item label="工具编码">
  327. <el-input style="width: 130px;" readonly v-model="toolReportData.toolId"></el-input>
  328. </el-form-item>
  329. </el-form>
  330. <el-form :inline="true" label-position="top">
  331. <el-form-item label="模数">
  332. <el-input style="width: 130px;" readonly v-model="toolReportData.moQty"></el-input>
  333. </el-form-item>
  334. <el-form-item label="生产数量">
  335. <el-input style="width: 130px;" type="number" ref="reportDo" v-model="toolReportData.finishQty"></el-input>
  336. </el-form-item>
  337. </el-form>
  338. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  339. <el-button type="primary" @click="saveToolReport()">保存</el-button>
  340. <el-button type="primary" @click="reportModalFlag = false">关闭</el-button>
  341. </el-footer>
  342. </el-dialog>
  343. <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" v-drag title="工具使用记录" :visible.sync="toolUseDetailFlag" width="805px">
  344. <el-form :inline="true" label-position="top">
  345. <el-form-item label="派工单号">
  346. <el-input style="width: 130px;" readonly onkeyup="this.value = this.value.toUpperCase()" v-model="saveHeaderData.seqNo"></el-input>
  347. </el-form-item>
  348. <el-form-item label="生产订单">
  349. <el-input style="width: 130px;" readonly v-model="saveHeaderData.orderNo"></el-input>
  350. </el-form-item>
  351. <el-form-item label="产品编码">
  352. <el-input style="width: 130px;" readonly v-model="saveHeaderData.partNo"></el-input>
  353. </el-form-item>
  354. <el-form-item label="产品名称/规格型号">
  355. <el-input style="width: 275px;" readonly v-model="saveHeaderData.partDescription"></el-input>
  356. </el-form-item>
  357. </el-form>
  358. <el-form :inline="true" label-position="top">
  359. <el-form-item label="工序号">
  360. <el-input style="width: 130px;" readonly v-model="saveHeaderData.itemNo"></el-input>
  361. </el-form-item>
  362. <el-form-item label="工序名称">
  363. <el-input style="width: 130px;" readonly v-model="saveHeaderData.operationDesc"></el-input>
  364. </el-form-item>
  365. <el-form-item label="加工中心编码">
  366. <el-input style="width: 130px;" readonly v-model="saveHeaderData.workCenterNo"></el-input>
  367. </el-form-item>
  368. <el-form-item label="加工中心名称">
  369. <el-input style="width: 130px;" readonly v-model="saveHeaderData.workCenterDesc"></el-input>
  370. </el-form-item>
  371. </el-form>
  372. <el-table
  373. height="300"
  374. :data="toolList2"
  375. border
  376. style="width: 100%">
  377. <el-table-column
  378. prop="toolInstanceId"
  379. header-align="center"
  380. align="left"
  381. min-width="100"
  382. label="工具实例编码">
  383. </el-table-column>
  384. <el-table-column
  385. prop="reportedby"
  386. header-align="center"
  387. align="left"
  388. min-width="60"
  389. label="领用人">
  390. </el-table-column>
  391. <el-table-column
  392. prop="startDate"
  393. header-align="center"
  394. align="left"
  395. min-width="100"
  396. label="领用日期">
  397. </el-table-column>
  398. <el-table-column
  399. prop="finishDate"
  400. header-align="center"
  401. align="left"
  402. min-width="100"
  403. label="报工日期">
  404. </el-table-column>
  405. <el-table-column
  406. prop="finishQty"
  407. header-align="center"
  408. align="right"
  409. min-width="60"
  410. label="产量">
  411. </el-table-column>
  412. <el-table-column
  413. prop="moQty"
  414. header-align="center"
  415. align="right"
  416. min-width="60"
  417. label="模数">
  418. </el-table-column>
  419. <el-table-column
  420. prop="useQty"
  421. header-align="center"
  422. align="right"
  423. min-width="60"
  424. label="消耗寿命">
  425. </el-table-column>
  426. </el-table>
  427. <span slot="footer" class="dialog-footer">
  428. <el-button @click="toolUseDetailFlag = false">关闭</el-button>
  429. </span>
  430. </el-dialog>
  431. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  432. </div>
  433. </template>
  434. <script>
  435. import {
  436. getSOScheduleRoutingData,
  437. toolStart,
  438. toolIssuance,
  439. toolReport,
  440. toolReportCheck,
  441. toolUseDetail,
  442. } from '@/api/production/schedule.js'
  443. import Chooselist from '@/views/modules/common/Chooselist'
  444. export default {
  445. name: 'generateReport',
  446. components: {
  447. Chooselist
  448. },
  449. data () {
  450. return {
  451. cavity:'',
  452. setUp: {
  453. reviewFlag: false,
  454. saveButton: false,
  455. readonlyFlag: false,
  456. disabled: false
  457. },
  458. toolReportFlag:'',
  459. toolInstanceID:'',
  460. toolList1:[],
  461. factorFlag:false,
  462. abnormalList:[],
  463. saveHeaderData: {
  464. site: '',
  465. seqNo: '',
  466. itemNo: '',
  467. partNo: '',
  468. partDescription: '',
  469. operationDesc: '',
  470. workCenterNo: '',
  471. workCenterDesc: '',
  472. orderNo:'',
  473. userId:'',
  474. },
  475. reportModalFlag:false,
  476. toolReportData:{
  477. toolInstanceID:'',
  478. toolId:'',
  479. moQty:'',
  480. finishQty:'',
  481. },
  482. scanSeqNo:'',
  483. stopModalFlag:false,
  484. continueModalFlag:false,
  485. qty1:'',
  486. qty2:'',
  487. site: '',
  488. operatorType: 0,
  489. toolList2:[],
  490. toolUseDetailFlag:false,
  491. // 导出 start
  492. exportData: [],
  493. exportDataStandard: {
  494. '派工单号': 'seqNo',
  495. '关联单号': 'orderNo',
  496. '关联单号类型': 'scheduleType',
  497. '工序号': 'itemNo',
  498. '工序名称': 'itemDesc',
  499. '派工数量': 'qtyRequired',
  500. '报工数量': 'qtyReported',
  501. '合格数量': 'qtyApprove',
  502. '需求时间': 'timeRequired',
  503. '派工日期': 'sScheduledDate',
  504. '操作员姓名': 'operatorName',
  505. '产品编码': 'partNo',
  506. '产品名称': 'partDesc',
  507. '机台ID': 'sResourceID',
  508. '班次': 'sShiftNo',
  509. '加工中心': 'sWorkCenterNo',
  510. },
  511. exportName: '派工单列表' + this.getStrDate(),
  512. exportHeader: ['派工单列表'],
  513. exportFooter: [],
  514. exportDefaultValue: '这一行这一列没有数据',
  515. // 导出 end
  516. height: 200,
  517. tableData: [],
  518. searchData: {
  519. userId:this.$store.state.user.name,
  520. orderNo: '',
  521. sWorkCenterNo: '',
  522. partNo: '',
  523. site: '',
  524. itemDesc:'',
  525. scheduleType:'',
  526. reportFlag:"closedFlag='N'",
  527. startDate:'',
  528. endDate:'',
  529. operatorName:'',
  530. sResourceID:'',
  531. sShiftNo:'',
  532. seqNo:'',
  533. },
  534. scanModalFlag:false,
  535. currentData:'',
  536. tagNo2:'',
  537. startModalFlag:false,
  538. pageTitle:'',
  539. }
  540. },
  541. mounted () {
  542. this.$nextTick(() => {
  543. this.height = window.innerHeight - 210
  544. })
  545. },
  546. methods: {
  547. // 获取基础数据列表S
  548. getBaseList (val, type) {
  549. this.tagNo = val
  550. this.tagNo2 = type
  551. this.$nextTick(() => {
  552. let strVal = ''
  553. if (val === 24) {
  554. strVal = this.searchData.sWorkCenterNo
  555. }
  556. if (val === 5) {
  557. strVal = this.searchData.partNo
  558. }
  559. if (val === 26) {
  560. if(type==1) {
  561. strVal = this.saveHeaderData.operatorId
  562. }else if(type==2){
  563. strVal = this.saveHeaderData.operatorId2
  564. }else {
  565. strVal = this.searchData.operatorName
  566. }
  567. }
  568. if (val === 88) {
  569. strVal = this.searchData.sResourceID
  570. }
  571. this.$refs.baseList.init(val, strVal)
  572. })
  573. },
  574. /* 列表方法的回调 */
  575. getBaseData (val) {
  576. if (this.tagNo === 24) {
  577. this.searchData.sWorkCenterNo = val.WorkCenterNo
  578. } else if (this.tagNo === 5) {
  579. this.searchData.partNo = val.PartNo
  580. }
  581. if (this.tagNo === 26) {
  582. if(this.tagNo2==1) {
  583. this.saveHeaderData.operatorId = val.OperatorID
  584. this.saveHeaderData.operatorName = val.OperatorName
  585. }else if(this.tagNo2==2){
  586. this.saveHeaderData.operatorId2 = val.OperatorID
  587. this.saveHeaderData.operatorIdName2 = val.OperatorName
  588. }else {
  589. this.searchData.operatorName = val.OperatorName
  590. }
  591. }
  592. if (this.tagNo === 88) {
  593. this.searchData.sResourceID = val.ResourceID
  594. }
  595. },
  596. search () {
  597. getSOScheduleRoutingData(this.searchData).then(({data}) => {
  598. this.tableData = data.rows
  599. })
  600. },
  601. createExportData () {
  602. return this.tableData
  603. },
  604. startDownload () {
  605. // this.exportData = this.dataList
  606. },
  607. finishDownload () {
  608. },
  609. getStrDate () {
  610. let dd = new Date()
  611. let Y = dd.getFullYear()
  612. let M = (dd.getMonth() + 1) < 10 ? '0' + (dd.getMonth() + 1) : (dd.getMonth() + 1)// 获取当前月份的日期,不足10补0
  613. let D = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate()// 获取当前几号,不足10补0
  614. let H = dd.getHours() < 10 ? '0' + dd.getHours() : dd.getHours()
  615. let MM = dd.getMinutes() < 10 ? '0' + dd.getMinutes() : dd.getMinutes()
  616. let S = dd.getSeconds() < 10 ? '0' + dd.getSeconds() : dd.getSeconds()
  617. return Y + M + D + H + MM + S
  618. },
  619. openScan(){
  620. this.scanSeqNo='';
  621. this.scanModalFlag=true;
  622. this.$nextTick(() => { this.$refs.input.focus();})
  623. },
  624. openStart(){
  625. this.scanSeqNo='';
  626. this.startModalFlag=true;
  627. this.$nextTick(() => { this.$refs.start.focus();})
  628. },
  629. searchSeqNo(){
  630. let inData={
  631. username:this.$store.state.user.name,
  632. seqNo:this.scanSeqNo,
  633. }
  634. toolStart(inData).then(({data}) => {
  635. if (data && data.code === 0) {
  636. this.scanModalFlag=false;
  637. if(data.row==null){
  638. this.scanSeqNo=''
  639. this.$alert("派工单不存在!",'错误', {
  640. confirmButtonText: '确定'
  641. })
  642. return false;
  643. }
  644. let currentData = data.row;
  645. // if(currentData.closedFlag=='Y'){
  646. // this.scanSeqNo=''
  647. // this.$alert("该派工单已关闭!",'错误', {
  648. // confirmButtonText: '确定'
  649. // })
  650. // return false;
  651. // }
  652. this.saveHeaderData.site = currentData.site;
  653. this.saveHeaderData.seqNo = currentData.seqNo;
  654. this.saveHeaderData.itemNo = currentData.itemNo;
  655. this.saveHeaderData.operationDesc = currentData.itemDesc;
  656. this.saveHeaderData.partNo = currentData.partNo;
  657. this.saveHeaderData.partDescription = currentData.partSpec;
  658. this.saveHeaderData.workCenterNo = currentData.sWorkCenterNo;
  659. this.saveHeaderData.workCenterDesc = currentData.workCenterDesc;
  660. this.saveHeaderData.orderNo =currentData.orderNo;
  661. this.toolList1=data.rows;
  662. this.setUp.reviewFlag=true;
  663. this.toolReportFlag=true;
  664. this.toolInstanceID='';
  665. this.pageTitle='工具报工'
  666. this.$nextTick(() => { this.$refs.report.focus();})
  667. } else {
  668. this.scanSeqNo='';
  669. this.$alert(data.msg, '错误', {
  670. confirmButtonText: '确定'
  671. })
  672. }
  673. })
  674. },
  675. startSeqNo(){
  676. let inData={
  677. username:this.$store.state.user.name,
  678. seqNo:this.scanSeqNo,
  679. }
  680. toolStart(inData).then(({data}) => {
  681. if (data && data.code === 0) {
  682. this.startModalFlag=false;
  683. if(data.row==null){
  684. this.scanSeqNo=''
  685. this.$alert("派工单不存在!",'错误', {
  686. confirmButtonText: '确定'
  687. })
  688. return false;
  689. }
  690. let currentData = data.row;
  691. this.saveHeaderData.site = currentData.site;
  692. this.saveHeaderData.seqNo = currentData.seqNo;
  693. this.saveHeaderData.itemNo = currentData.itemNo;
  694. this.saveHeaderData.operationDesc = currentData.itemDesc;
  695. this.saveHeaderData.partNo = currentData.partNo;
  696. this.saveHeaderData.partDescription = currentData.partSpec;
  697. this.saveHeaderData.workCenterNo = currentData.sWorkCenterNo;
  698. this.saveHeaderData.workCenterDesc = currentData.workCenterDesc;
  699. this.saveHeaderData.orderNo =currentData.orderNo;
  700. this.toolList1=data.rows;
  701. this.setUp.reviewFlag=true;
  702. this.toolReportFlag=false;
  703. this.toolInstanceID='';
  704. this.pageTitle='工具领用'
  705. this.$nextTick(() => { this.$refs.issuance.focus();})
  706. } else {
  707. this.scanSeqNo='';
  708. this.$alert(data.msg, '错误', {
  709. confirmButtonText: '确定'
  710. })
  711. }
  712. })
  713. },
  714. toolIssuance(){
  715. this.$confirm(`确定领用此工具?`, '提示', {
  716. confirmButtonText: '确定',
  717. cancelButtonText: '取消',
  718. type: 'warning'
  719. }).then(() => {
  720. let inData={
  721. site:this.saveHeaderData.site,
  722. orderNo:this.saveHeaderData.orderNo,
  723. seqNo:this.saveHeaderData.seqNo,
  724. toolInstanceId:this.toolInstanceID,
  725. itemNo:this.saveHeaderData.itemNo,
  726. reportedby:this.$store.state.user.name,
  727. }
  728. toolIssuance(inData).then(({data}) => {
  729. if (data && data.code === 0) {
  730. let data2={
  731. username:this.$store.state.user.name,
  732. seqNo:this.saveHeaderData.seqNo,
  733. }
  734. toolStart(data2).then(({data}) => {
  735. if (data && data.code === 0) {
  736. this.toolList1=data.rows;
  737. }
  738. })
  739. this.toolInstanceID='';
  740. this.$message({
  741. message: '操作成功',
  742. type: 'success',
  743. duration: 1500,
  744. onClose: () => {
  745. this.$nextTick(() => { this.$refs.issuance.focus();})
  746. }
  747. })
  748. } else {
  749. this.toolInstanceID='';
  750. this.$alert(data.msg, '错误', {
  751. confirmButtonText: '确定'
  752. })
  753. }
  754. })
  755. }).catch(() => {
  756. })
  757. },
  758. toolReportCheck(){
  759. let inData={
  760. site:this.saveHeaderData.site,
  761. orderNo:this.saveHeaderData.orderNo,
  762. seqNo:this.saveHeaderData.seqNo,
  763. toolInstanceId:this.toolInstanceID,
  764. itemNo:this.saveHeaderData.itemNo,
  765. reportedby:this.$store.state.user.name,
  766. }
  767. toolReportCheck(inData).then(({data}) => {
  768. if (data && data.code === 0) {
  769. this.toolInstanceID='';
  770. this.toolReportData={
  771. toolInstanceID:data.row.toolInstanceId,
  772. toolId:data.row.toolId,
  773. moQty:data.row.moQty,
  774. finishQty:'',
  775. }
  776. this.reportModalFlag=true;
  777. this.$nextTick(() => { this.$refs.reportDo.focus();})
  778. } else {
  779. this.toolInstanceID='';
  780. this.$alert(data.msg, '错误', {
  781. confirmButtonText: '确定'
  782. })
  783. } })
  784. },
  785. saveToolReport(){
  786. if(this.toolReportData.finishQty==null||this.toolReportData.finishQty==''){
  787. this.$alert("请输入生产数量!",'错误', {
  788. confirmButtonText: '确定'
  789. })
  790. return false;
  791. }
  792. if(this.toolReportData.finishQty<0){
  793. this.$alert("生产数量不能小于0!",'错误', {
  794. confirmButtonText: '确定'
  795. })
  796. return false;
  797. }
  798. this.$confirm(`确定报工?`, '提示', {
  799. confirmButtonText: '确定',
  800. cancelButtonText: '取消',
  801. type: 'warning'
  802. }).then(() => {
  803. let inData={
  804. site:this.saveHeaderData.site,
  805. orderNo:this.saveHeaderData.orderNo,
  806. seqNo:this.saveHeaderData.seqNo,
  807. toolInstanceId:this.toolReportData.toolInstanceID,
  808. itemNo:this.saveHeaderData.itemNo,
  809. reportedby:this.$store.state.user.name,
  810. moQty:this.toolReportData.moQty,
  811. finishQty:this.toolReportData.finishQty,
  812. }
  813. toolReport(inData).then(({data}) => {
  814. if (data && data.code === 0) {
  815. let data2={
  816. username:this.$store.state.user.name,
  817. seqNo:this.saveHeaderData.seqNo,
  818. }
  819. toolStart(data2).then(({data}) => {
  820. if (data && data.code === 0) {
  821. this.toolList1=data.rows;
  822. }
  823. })
  824. this.reportModalFlag=false;
  825. this.toolInstanceID='';
  826. this.$message({
  827. message: '操作成功',
  828. type: 'success',
  829. duration: 1500,
  830. onClose: () => {
  831. }
  832. })
  833. this.$nextTick(() => { this.$refs.report.focus();})
  834. } else {
  835. this.$alert(data.msg, '错误', {
  836. confirmButtonText: '确定'
  837. })
  838. }
  839. })
  840. }).catch(() => {
  841. })
  842. },
  843. initUseModal(row){
  844. let currentData = row;
  845. this.saveHeaderData.site = currentData.site;
  846. this.saveHeaderData.seqNo = currentData.seqNo;
  847. this.saveHeaderData.itemNo = currentData.itemNo;
  848. this.saveHeaderData.operationDesc = currentData.itemDesc;
  849. this.saveHeaderData.partNo = currentData.partNo;
  850. this.saveHeaderData.partDescription = currentData.partSpec;
  851. this.saveHeaderData.workCenterNo = currentData.sWorkCenterNo;
  852. this.saveHeaderData.workCenterDesc = currentData.workCenterDesc;
  853. this.saveHeaderData.orderNo =currentData.orderNo;
  854. this.toolUseDetailFlag=true;
  855. toolUseDetail(this.saveHeaderData).then(({data}) => {
  856. if (data && data.code === 0) {
  857. this.toolList2=data.rows;
  858. }
  859. })
  860. },
  861. },
  862. created () {
  863. }
  864. }
  865. </script>
  866. <style scoped>
  867. .input_left{
  868. text-align: left;
  869. }
  870. .input_reight{
  871. text-align: right;
  872. }
  873. /deep/ input::-webkit-inner-spin-button {
  874. -webkit-appearance: none !important;
  875. }
  876. input[type='number'] {
  877. -moz-appearance: textfield !important;
  878. }
  879. .big /deep/ .el-form-item__label {
  880. font-size: 17px;
  881. }
  882. .big /deep/ .el-input__inner {
  883. height: 22px !important;
  884. font-size: 17px;
  885. }
  886. .big /deep/ .el-dialog__title {
  887. font-size: 17px;
  888. font-weight: bold;
  889. }
  890. </style>