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.

861 lines
32 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. <template>
  2. <div class="customer-css">
  3. <el-dialog :title="titleCon" v-drag v-bind="$attrs" v-on="$listeners"
  4. width="920px" style="height: 680px;" class="customer-dialog">
  5. <el-form :inline="true" label-position="top" style="height: 495px;"
  6. label-width="80px">
  7. <!-- 菜单信息 -->
  8. <el-row>
  9. <el-col :span="24">
  10. <el-form-item :label="'当前时间'">
  11. <el-date-picker disabled="disabled" style="width: 145px;"
  12. v-model="pageData.reportedTime"
  13. format="yyyy-MM-dd HH:mm:ss"
  14. value-format="yyyy-MM-dd HH:mm:ss"
  15. placeholder="">
  16. </el-date-picker>
  17. </el-form-item>
  18. <el-form-item class="customer-button">
  19. <el-button type="primary" :disabled="buttonTags.createRollFlag" style="margin-left: 10px; margin-bottom: 5px;">
  20. 列表</el-button>
  21. </el-form-item>
  22. <el-form-item class="customer-button">
  23. <el-button type="primary" @click="refreshPageData" style="margin-left: 10px; margin-bottom: 5px;">
  24. 刷新</el-button>
  25. </el-form-item>
  26. <el-form-item class="customer-button">
  27. <el-button type="primary" @click="finishRollBun" style="margin-left: 10px; margin-bottom: 5px;">
  28. 结束卷</el-button>
  29. </el-form-item>
  30. <el-form-item class="customer-button">
  31. <el-button type="primary" @click="closeDialog" style="margin-left: 10px; margin-bottom: 5px;">
  32. 关闭</el-button>
  33. </el-form-item>
  34. </el-col>
  35. </el-row>
  36. <!-- 卷数量统计 班次信息 -->
  37. <el-form>
  38. <fieldset class="customer-fieldset" style="width: 505px;">
  39. <legend>卷数量统计</legend>
  40. <el-form-item class="customer-item">
  41. <el-checkbox disabled="disabled" style="margin-top: 15px;" true-label="Y" false-label="N"
  42. v-model="pageData.reportedFlag">是否报告产量</el-checkbox>
  43. </el-form-item>
  44. <el-form-item class="customer-item" label="总良品数量:" style="margin-top: -10px;">
  45. <el-input v-model="pageData.approvedQty" type="number" @blur="checkValidApprovedQty"
  46. style="width: 80px;" ></el-input>
  47. </el-form-item>
  48. <el-form-item class="customer-item" label="总不良品数量:" style="margin-top: -10px;">
  49. <el-input v-model="pageData.defectedQty" disabled="disabled" style="width: 80px;"></el-input>
  50. </el-form-item>
  51. <el-form-item class="customer-item" label="总数量" style="margin-top: -10px;">
  52. <el-input v-model="pageData.totalQty" disabled="disabled" style="width: 80px;"></el-input>
  53. </el-form-item>
  54. <el-form-item class="customer-item" label="其他卷数量:" style="margin-top: -10px;">
  55. <el-input v-model="pageData.otherRollQty" disabled="disabled" style="width: 80px;"></el-input>
  56. </el-form-item>
  57. </fieldset>
  58. <!-- 操作员信息和班次信息 -->
  59. <fieldset class="customer-fieldset"
  60. style="margin-left: 510px; margin-top: -70px; ;width: 390px;">
  61. <legend>人员排程班次信息</legend>
  62. <el-form-item class="customer-item" label="操作员:">
  63. <el-input v-model="operatorData.operatorId" disabled="disabled" style="width: 80px;" ></el-input>
  64. </el-form-item>
  65. <el-form-item class="customer-item" label="操作员姓名:">
  66. <el-input v-model="operatorData.operatorName" disabled="disabled" style="width: 80px;"></el-input>
  67. </el-form-item>
  68. <el-form-item class="customer-item" label="排产日期:">
  69. <el-input v-model="pageData.scheduledDate" disabled="disabled" style="width: 80px;" ></el-input>
  70. </el-form-item>
  71. <el-form-item class="customer-item" label="班次:">
  72. <el-input v-model="pageData.shiftDesc" disabled="disabled" style="width: 80px;"></el-input>
  73. </el-form-item>
  74. </fieldset>
  75. </el-form>
  76. <!-- 卷生产时间统计产量报告 -->
  77. <el-form style="margin-top: 5px;">
  78. <fieldset class="customer-fieldset" style="width: 320px;">
  79. <legend>卷生产时间统计</legend>
  80. <!-- 调机时间 -->
  81. <el-row>
  82. <el-col :span="24">
  83. <el-form-item label="总调机时间:">
  84. <el-input v-model="pageData.totalSetupTime" disabled="disabled" style="width: 80px;" ></el-input>
  85. </el-form-item>
  86. <el-form-item label="总调机过程停机时间:">
  87. <el-input v-model="pageData.totalDowntimeTimeSetup" disabled="disabled" style="width: 100px;"></el-input>
  88. </el-form-item>
  89. <el-form-item label="净调机时间:" >
  90. <el-input v-model="pageData.totalPureSetupTime" disabled="disabled" style="width: 80px;"></el-input>
  91. </el-form-item>
  92. </el-col>
  93. </el-row>
  94. <!-- 生产时间 -->
  95. <el-row>
  96. <el-col :span="24">
  97. <el-form-item label="总生产时间">
  98. <el-input v-model="pageData.totalProdTime" disabled="disabled" style="width: 80px;"></el-input>
  99. </el-form-item>
  100. <el-form-item label="总生产过程停机时间:">
  101. <el-input v-model="pageData.totalDowntimeTimeProd" disabled="disabled" style="width: 100px;"></el-input>
  102. </el-form-item>
  103. <el-form-item label="净生产时间:" >
  104. <el-input v-model="pageData.totalPureProdTime" disabled="disabled" style="width: 80px;"></el-input>
  105. </el-form-item>
  106. </el-col>
  107. </el-row>
  108. <!-- 制造时间 -->
  109. <el-row>
  110. <el-col :span="24">
  111. <el-form-item label="总制造时间:">
  112. <el-input v-model="pageData.totalManufactureTime" disabled="disabled" style="width: 80px;"></el-input>
  113. </el-form-item>
  114. <el-form-item label="总制造过程停机时间:">
  115. <el-input v-model="pageData.totalManufactureDowntimeTime" disabled="disabled" style="width: 100px;"></el-input>
  116. </el-form-item>
  117. <el-form-item label="净制造时间:" >
  118. <el-input v-model="pageData.totalPureManufactureTime" disabled="disabled" style="width: 80px;"></el-input>
  119. </el-form-item>
  120. </el-col>
  121. </el-row>
  122. </fieldset>
  123. <!-- 产量报告 -->
  124. <fieldset class="customer-fieldset"
  125. style="margin-left: 325px; margin-top: -165px; width: 575px;">
  126. <legend>产量报告</legend>
  127. <!-- 开工时间 -->
  128. <el-row>
  129. <el-col :span="24">
  130. <el-form-item label="开工时间">
  131. <el-input v-model="pageData.eventTime" disabled="disabled" style="width: 130px;"></el-input>
  132. </el-form-item>
  133. <el-form-item label="完工时间">
  134. <el-input v-model="pageData.tillTime" disabled="disabled" style="width: 130px;"></el-input>
  135. </el-form-item>
  136. <el-form-item label="生产时间" >
  137. <el-input v-model="pageData.sfdcProdTime" disabled="disabled" style="width: 80px;"></el-input>
  138. </el-form-item>
  139. <el-form-item label="调机时间" >
  140. <el-input v-model="pageData.sfdcSetupTime" disabled="disabled" style="width: 80px;"></el-input>
  141. </el-form-item>
  142. <el-form-item label="制造时间" >
  143. <el-input v-model="pageData.sfdcManufactureTime" disabled="disabled" style="width: 80px;"></el-input>
  144. </el-form-item>
  145. </el-col>
  146. </el-row>
  147. <!-- 合格数量 -->
  148. <el-row>
  149. <el-col :span="24">
  150. <el-form-item label="合格数量">
  151. <el-input v-model="pageData.sfdcApprovedQty" disabled="disabled" style="width: 130px;"></el-input>
  152. </el-form-item>
  153. <el-form-item label="不合格数量">
  154. <el-input v-model="pageData.defectedQty" disabled="disabled" style="width: 130px;"></el-input>
  155. </el-form-item>
  156. <el-form-item label="报告数量" >
  157. <el-input v-model="pageData.sfdcReportedQty" disabled="disabled" style="width: 80px;"></el-input>
  158. </el-form-item>
  159. <el-form-item label="调机停机">
  160. <el-input v-model="pageData.sfdcSetupDownTime" style="width: 80px;"></el-input>
  161. </el-form-item>
  162. <el-form-item label="生产调机" >
  163. <el-input v-model="pageData.sfdcProdSetupTime" style="width: 80px;"></el-input>
  164. </el-form-item>
  165. </el-col>
  166. </el-row>
  167. <!-- 备注 -->
  168. <el-row>
  169. <el-col :span="24">
  170. <el-form-item label="remark">
  171. <el-input v-model="pageData.remark" disabled="disabled" style="width: 430px;"></el-input>
  172. </el-form-item>
  173. <el-form-item label="停机时间">
  174. <el-input v-model="pageData.sfdcDownTime" style="width: 80px;"></el-input>
  175. </el-form-item>
  176. </el-col>
  177. </el-row>
  178. </fieldset>
  179. </el-form>
  180. <!-- 主材料 -->
  181. <el-form>
  182. <fieldset class="customer-fieldset" style="width: 830px;">
  183. <legend>主材料</legend>
  184. <el-table
  185. height="180"
  186. :data="sfdcMaterialList"
  187. :cell-style="customerCellStyle" :cell-class-name="customerCellClassName"
  188. border
  189. v-loading="dataListLoading"
  190. style="width: 100%; margin-top: -5px;">
  191. <el-table-column
  192. v-for="(item,index) in columnMaterialArray" :key="index"
  193. :sortable="item.columnSortable"
  194. :prop="item.columnProp"
  195. :header-align="item.headerAlign"
  196. :show-overflow-tooltip="item.showOverflowTooltip"
  197. :align="item.align"
  198. :fixed="item.fixed"
  199. :width="item.columnWidth"
  200. :label="item.columnLabel">
  201. <template slot-scope="scope">
  202. <el-input type="number" class="table-input" align="right" @blur="checkValidQty(scope.row)"
  203. v-if="item.columnHidden" v-model="scope.row[item.columnProp]"></el-input>
  204. <span v-else>{{scope.row[item.columnProp]}}</span>
  205. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  206. style="width: 100px; height: 80px"/></span>
  207. </template>
  208. </el-table-column>
  209. </el-table>
  210. </fieldset>
  211. </el-form>
  212. </el-form>
  213. </el-dialog>
  214. <!-- 异常原因录入的组件 -->
  215. <comExceptionReason ref="comExceptionReason" :close-on-click-modal="false"
  216. :visible.sync="showExceptionFlag"
  217. @initExceptionReason = "initExceptionReason">
  218. </comExceptionReason>
  219. </div>
  220. </template>
  221. <script>
  222. /*添加组件*/
  223. import comExceptionReason from "./com_exception_reason";//异常远远
  224. import {
  225. getCurrentRollReportedQty,
  226. countSfdcTimeQty,
  227. getScheduleShiftData,
  228. getSfdcTimeMaxAndMinTime,
  229. getSfdcTimeData,
  230. getSfdcReportedData,
  231. getSfdcMaterialByRollNo,
  232. checkFinishRollWithNoFqc,
  233. finishRollWithNoFqc
  234. } from '@/api/yieldReport/com_finish_roll.js';
  235. export default {
  236. name: "com_finish_roll",
  237. data() {
  238. return {
  239. titleCon: '结束卷',
  240. showExceptionFlag: false,
  241. sfdcTimeList: [],
  242. scheduleData: {
  243. site: this.$store.state.user.site,
  244. userName: this.$store.state.user.name,
  245. seqNo: '',
  246. orderNo: '',
  247. itemNo: 0,
  248. partNo: '',
  249. workCenterNo: '',
  250. workCenterDesc: '',
  251. resourceDesc: '',
  252. rollNo: '',
  253. partDesc: '',
  254. planStartTime: '',
  255. planFinishTime: '',
  256. qtyRequiredOriginal: 0,
  257. scheduledDate: '',
  258. shiftNo: '',
  259. preItemDesc: '',
  260. nextItemDesc: '',
  261. nextItemNo: 0,
  262. operatorId: '',
  263. functionName: '',
  264. currentRollFlag: false
  265. },
  266. pageData: {
  267. site: this.$store.state.user.site,
  268. userName: this.$store.state.user.name,
  269. orderNo: '',
  270. itemNo: 0,
  271. seqNo: '',
  272. rollNo: '',
  273. resourceId: '',
  274. scheduledDate: '',
  275. shiftNo: '',
  276. reportedTime: this.dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'),
  277. reportedFlag: 'N',
  278. approvedQty: 0,
  279. defectedQty: 0,
  280. totalQty: 0,
  281. editNewRollQty: 0,
  282. otherRollQty: '',
  283. shiftDesc: '',
  284. totalSetupTime: 0,
  285. totalDowntimeTimeSetup: 0,
  286. totalPureSetupTime: 0,
  287. totalProdTime: 0,
  288. totalDowntimeTimeProd: 0,
  289. totalPureProdTime: 0,
  290. totalManufactureTime: 0,
  291. totalManufactureDowntimeTime: 0,
  292. totalPureManufactureTime: 0,
  293. sfdcProdTime: 0,//生产时间
  294. sfdcSetupTime: 0,//调机时间
  295. sfdcManufactureTime: 0,//制造时间
  296. sfdcSetupDownTime: 0,//调机停机时间
  297. sfdcProdSetupTime: 0,//生产调机时间
  298. sfdcDownTime: 0,//停机时间
  299. eventTime: '',
  300. tillTime: '',
  301. sfdcApprovedQty: 0,
  302. sfdcDefectedQty: 0,
  303. sfdcReportedQty: 0,
  304. remark: '',
  305. exceptionFlag: 'N',
  306. exceptionReason: '',
  307. },
  308. operatorData: {
  309. site: this.$store.state.user.site,
  310. username: this.$store.state.user.name,
  311. operatorId: '',
  312. operatorName: '',
  313. status: '',
  314. seqNo: '',
  315. showFlag: false
  316. },
  317. sfdcMaterialList: [],
  318. columnMaterialArray: [
  319. {
  320. userId: this.$store.state.user.name,
  321. functionId: 5303,
  322. serialNumber: '5303MaterialReportDate',
  323. tableId: "5303Material",
  324. tableName: "派工单材料",
  325. columnProp: "reportDate",
  326. headerAlign: "center",
  327. align: "center",
  328. columnLabel: "报告时间",
  329. columnWidth: 125,
  330. columnHidden: false,
  331. columnImage: false,
  332. columnSortable: false,
  333. sortLv: 0,
  334. status: true,
  335. fixed: false
  336. },
  337. {
  338. userId: this.$store.state.user.name,
  339. functionId: 5303,
  340. serialNumber: '5303MaterialReportedBy',
  341. tableId: "5303Material",
  342. tableName: "派工单材料",
  343. columnProp: "reportedBy",
  344. headerAlign: "center",
  345. align: "center",
  346. columnLabel: "报告人",
  347. columnWidth: 80,
  348. columnHidden: false,
  349. columnImage: false,
  350. columnSortable: false,
  351. sortLv: 0,
  352. status: true,
  353. fixed: false
  354. },
  355. {
  356. userId: this.$store.state.user.name,
  357. functionId: 5303,
  358. serialNumber: '5303MaterialRmRollNo',
  359. tableId: "5303Material",
  360. tableName: "派工单材料",
  361. columnProp: "rmRollNo",
  362. headerAlign: "center",
  363. align: "center",
  364. columnLabel: "材料卷号",
  365. columnWidth: 100,
  366. columnHidden: false,
  367. columnImage: false,
  368. columnSortable: false,
  369. sortLv: 0,
  370. status: true,
  371. fixed: false
  372. },
  373. {
  374. userId: this.$store.state.user.name,
  375. functionId: 5303,
  376. serialNumber: '5303MaterialPartNo',
  377. tableId: "5303Material",
  378. tableName: "派工单材料",
  379. columnProp: "partNo",
  380. headerAlign: "center",
  381. align: "center",
  382. columnLabel: "零部件编码",
  383. columnWidth: 100,
  384. columnHidden: false,
  385. columnImage: false,
  386. columnSortable: false,
  387. sortLv: 0,
  388. status: true,
  389. fixed: false
  390. },
  391. {
  392. userId: this.$store.state.user.name,
  393. functionId: 5303,
  394. serialNumber: '5303MaterialStartDate',
  395. tableId: "5303Material",
  396. tableName: "派工单材料",
  397. columnProp: "startDate",
  398. headerAlign: "center",
  399. align: "center",
  400. columnLabel: "开始使用时间",
  401. columnWidth: 125,
  402. columnHidden: false,
  403. columnImage: false,
  404. columnSortable: false,
  405. sortLv: 0,
  406. status: true,
  407. fixed: false
  408. },
  409. {
  410. userId: this.$store.state.user.name,
  411. functionId: 5303,
  412. serialNumber: '5303MaterialTransQty',
  413. tableId: "5303Material",
  414. tableName: "派工单材料",
  415. columnProp: "transQty",
  416. headerAlign: "center",
  417. align: "center",
  418. columnLabel: "数量",
  419. columnWidth: 80,
  420. columnHidden: false,
  421. columnImage: false,
  422. columnSortable: false,
  423. sortLv: 0,
  424. status: true,
  425. fixed: false
  426. },
  427. {
  428. userId: this.$store.state.user.name,
  429. functionId: 5303,
  430. serialNumber: '5303MaterialNetIssueQty',
  431. tableId: "5303Material",
  432. tableName: "派工单材料",
  433. columnProp: "netIssueQty",
  434. headerAlign: "center",
  435. align: "center",
  436. columnLabel: "本卷耗用数量",
  437. columnWidth: 100,
  438. columnHidden: true,
  439. columnImage: false,
  440. columnSortable: false,
  441. sortLv: 0,
  442. status: true,
  443. fixed: false
  444. },
  445. {
  446. userId: this.$store.state.user.name,
  447. functionId: 5303,
  448. serialNumber: '5303MaterialKeyRMFlag',
  449. tableId: "5303Material",
  450. tableName: "派工单材料",
  451. columnProp: "keyRMFlag",
  452. headerAlign: "center",
  453. align: "center",
  454. columnLabel: "是否主材",
  455. columnWidth: 80,
  456. columnHidden: false,
  457. columnImage: false,
  458. columnSortable: false,
  459. sortLv: 0,
  460. status: true,
  461. fixed: false
  462. },
  463. {
  464. userId: this.$store.state.user.name,
  465. functionId: 5303,
  466. serialNumber: '5303MaterialSAPBOMItemNo',
  467. tableId: "5303Material",
  468. tableName: "派工单材料",
  469. columnProp: "sAPBOMItemNo",
  470. headerAlign: "center",
  471. align: "center",
  472. columnLabel: "SAP BOM序号",
  473. columnWidth: 100,
  474. columnHidden: false,
  475. columnImage: false,
  476. columnSortable: false,
  477. sortLv: 0,
  478. status: true,
  479. fixed: false
  480. }
  481. ],
  482. buttonTags:{
  483. createNewRollFlag: true,
  484. switchRollFlag: true,
  485. separatorRollFlag: true,
  486. finishRollFlag: true,
  487. mergeRollFlag: true,
  488. tuningFlag: true,
  489. produceFlag: true,
  490. defectFlag: true,
  491. toolFlag: true,
  492. materialFlag: true,
  493. downTimeFlag: true
  494. },
  495. dataListLoading: false,
  496. }
  497. },
  498. components: {
  499. comExceptionReason,/*异常原因的组件*/
  500. },
  501. methods: {
  502. /*初始化页面参数*/
  503. init(scheduleData, operatorData) {
  504. //初始化参数
  505. this.scheduleData = scheduleData;
  506. //初始化参数
  507. this.pageData.orderNo = scheduleData.orderNo;
  508. this.pageData.itemNo = scheduleData.itemNo;
  509. this.pageData.seqNo = scheduleData.seqNo;
  510. this.pageData.rollNo = scheduleData.rollNo;
  511. this.pageData.scheduledDate = scheduleData.scheduledDate;
  512. this.pageData.shiftNo = scheduleData.shiftNo;
  513. this.pageData.resourceId = scheduleData.resourceId;
  514. this.pageData.operatorId = operatorData.operatorId;
  515. //重置时间
  516. this.pageData.reportedTime = this.dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss');
  517. //初始化操作员对象
  518. this.operatorData = JSON.parse(JSON.stringify(operatorData));
  519. //初始化标题
  520. this.titleCon = '结束卷操作 \
  521. 派工单号:'+scheduleData.seqNo;
  522. //处理异常的原因
  523. this.pageData.exceptionFlag = 'N';
  524. this.pageData.exceptionReason = '';
  525. //刷新当前派工单的信息
  526. this.refreshPageData();
  527. },
  528. /*关闭modal*/
  529. closeDialog(){
  530. this.$emit('update:visible', false);
  531. },
  532. /*生产过程的停机组件*/
  533. exceptionReasonModal() {
  534. //1.首先调用菜单判断方式 打开生产过程的停机的页面
  535. //checkProduceButton('produceDownFlag');
  536. //打开生产过程的工具的页面
  537. this.$nextTick(() => {
  538. this.show = true;
  539. this.$refs.comProduceDown.init(this.scheduleData, this.operatorData)
  540. });
  541. },
  542. /*刷新当前的页面参数*/
  543. refreshPageData(){
  544. //1.刷新当前卷的报工数据
  545. getCurrentRollReportedQty(this.scheduleData).then(({data}) => {
  546. this.pageData.approvedQty = data.row.approvedQty;
  547. this.pageData.defectedQty = data.row.defectedQty;
  548. this.pageData.totalQty = data.row.totalQty;
  549. this.pageData.otherRollQty = data.row.otherRollQty;
  550. }).then(() => {
  551. //2.刷新当前卷的时间信息
  552. countSfdcTimeQty(this.scheduleData).then(({data}) => {
  553. this.pageData.totalSetupTime = data.row.totalSetupTime;
  554. this.pageData.totalDowntimeTimeSetup = data.row.totalDowntimeTimeSetup;
  555. this.pageData.totalPureSetupTime = data.row.totalPureSetupTime;
  556. this.pageData.totalProdTime = data.row.totalProdTime;
  557. this.pageData.totalDowntimeTimeProd = data.row.totalDowntimeTimeProd;
  558. this.pageData.totalPureProdTime = data.row.totalPureProdTime;
  559. this.pageData.totalManufactureTime = data.row.totalManufactureTime;
  560. this.pageData.totalManufactureDowntimeTime = data.row.totalManufactureDowntimeTime;
  561. this.pageData.totalPureManufactureTime = data.row.totalPureManufactureTime;
  562. //先预设一些参数 后期方法再计算
  563. //生产时间=总生产时间
  564. this.pageData.sfdcProdTime = this.pageData.totalProdTime;
  565. //调机时间=总调机时间
  566. this.pageData.sfdcSetupTime = this.pageData.totalSetupTime;
  567. //制造时间=总制造时间
  568. this.pageData.sfdcManufactureTime = this.pageData.totalManufactureTime;
  569. //调机停机=总调机过程停机时间
  570. this.pageData.sfdcSetupDownTime = this.pageData.totalDowntimeTimeSetup;
  571. //生产调机=总生产过程停机时间
  572. this.pageData.sfdcProdSetupTime = this.pageData.totalDowntimeTimeProd;
  573. //停机时间=总制造过程停机时间
  574. this.pageData.sfdcDownTime = this.pageData.totalManufactureDowntimeTime;
  575. });
  576. }).then(() => {
  577. //3.刷新派工单的班次信息
  578. getScheduleShiftData(this.scheduleData).then(({data}) => {
  579. this.pageData.shiftDesc = data.row.shiftDesc;//重置班次
  580. this.pageData.scheduledDate = data.row.scheduledDate.substring(0, 10);//重置排产日期
  581. });
  582. }).then(() => {
  583. //4.刷新当前卷的最早和最晚时间
  584. getSfdcTimeMaxAndMinTime(this.scheduleData).then(({data}) => {
  585. this.pageData.eventTime = data.row.eventTime;
  586. this.pageData.tillTime = data.row.tillTime;
  587. });
  588. }).then(() => {
  589. //5.刷新当前卷的Sfdc表的时间
  590. getSfdcTimeData(this.scheduleData).then(({data}) => {
  591. //先判断是否成功查询
  592. if(data.resultCode == 200){
  593. //判断是否操作成功
  594. this.pageData.eventTime = data.row.finishTime;
  595. this.pageData.sfdcProdTime = data.row.sfdcProdTime;
  596. this.pageData.sfdcSetupTime = data.row.sfdcSetupTime;
  597. this.pageData.sfdcManufactureTime = data.row.sfdcManufactureTime;
  598. this.pageData.sfdcDownTime = data.row.sfdcDownTime;
  599. this.pageData.sfdcSetupDownTime = data.row.sfdcSetupDownTime;
  600. this.pageData.sfdcProdSetupTime = data.row.sfdcProdSetupTime;
  601. }else{
  602. //暂时不处理数据
  603. }
  604. });
  605. }).then(() => {
  606. //6.刷新当前卷的报工数据
  607. getSfdcReportedData(this.scheduleData).then(({data}) => {
  608. this.pageData.sfdcApprovedQty = this.pageData.approvedQty - data.row.approveQty;
  609. this.pageData.sfdcDefectedQty = this.pageData.defectedQty - data.row.defectQty;
  610. this.pageData.sfdcReportedQty = this.pageData.sfdcApprovedQty + this.pageData.sfdcDefectedQty;
  611. });
  612. }).then(() => {
  613. //刷新当前卷的时间数据
  614. getSfdcMaterialByRollNo(this.scheduleData).then(({data}) => {
  615. this.sfdcMaterialList = data.rows;
  616. });
  617. });
  618. },
  619. /*刷新当前卷的报工数据汇总*/
  620. refreshCurrentRollReportedQty(){
  621. getCurrentRollReportedQty(this.scheduleData).then(({data}) => {
  622. this.pageData.approvedQty = data.row.approvedQty;
  623. this.pageData.defectedQty = data.row.defectedQty;
  624. this.pageData.totalQty = data.row.totalQty;
  625. this.pageData.otherRollQty = data.row.otherRollQty;
  626. })
  627. },
  628. //刷新当前卷的时间信息
  629. refreshCurrentRollTimeQty(){
  630. countSfdcTimeQty(this.scheduleData).then(({data}) => {
  631. this.pageData.totalSetupTime = data.row.totalSetupTime;
  632. this.pageData.totalDowntimeTimeSetup = data.row.totalDowntimeTimeSetup;
  633. this.pageData.totalPureSetupTime = data.row.totalPureSetupTime;
  634. this.pageData.totalProdTime = data.row.totalProdTime;
  635. this.pageData.totalDowntimeTimeProd = data.row.totalDowntimeTimeProd;
  636. this.pageData.totalPureProdTime = data.row.totalPureProdTime;
  637. this.pageData.totalManufactureTime = data.row.totalManufactureTime;
  638. this.pageData.totalManufactureDowntimeTime = data.row.totalManufactureDowntimeTime;
  639. this.pageData.totalPureManufactureTime = data.row.totalPureManufactureTime;
  640. });
  641. },
  642. //刷新派工单的班次信息
  643. refreshScheduleShiftData(){
  644. getScheduleShiftData(this.scheduleData).then(({data}) => {
  645. this.pageData.shiftDesc = data.row.shiftDesc;//重置班次
  646. this.pageData.scheduledDate = data.row.scheduledDate.substring(0, 10);//重置排产日期
  647. });
  648. },
  649. //刷新当前卷的时间信息
  650. refreshCurrentRollMaxAndMinTime(){
  651. getSfdcTimeMaxAndMinTime(this.scheduleData).then(({data}) => {
  652. this.pageData.eventTime = data.row.eventTime;
  653. this.pageData.tillTime = data.row.tillTime;
  654. });
  655. },
  656. //刷新当前卷的Sfdc的信息
  657. refreshSfdcTimeData(){
  658. getSfdcTimeData(this.scheduleData).then(({data}) => {
  659. //判断是否操作成功
  660. this.pageData.eventTime = data.row.finishTime;
  661. this.pageData.sfdcProdTime = data.row.sfdcProdTime;
  662. this.pageData.sfdcSetupTime = data.row.sfdcSetupTime;
  663. this.pageData.sfdcManufactureTime = data.row.sfdcManufactureTime;
  664. this.pageData.sfdcDownTime = data.row.sfdcDownTime;
  665. this.pageData.sfdcSetupDownTime = data.row.sfdcSetupDownTime;
  666. this.pageData.sfdcProdSetupTime = data.row.sfdcProdSetupTime;
  667. });
  668. },
  669. //刷新当前卷的报工数据
  670. refreshSfdcData(){
  671. getSfdcReportedData(this.scheduleData).then(({data}) => {
  672. this.pageData.sfdcApprovedQty = this.pageData.approvedQty - data.row.approveQty;
  673. this.pageData.sfdcDefectedQty = this.pageData.defectedQty - data.row.defectQty;
  674. this.pageData.sfdcReportedQty = this.pageData.sfdcApprovedQty + this.pageData.sfdcDefectedQty;
  675. });
  676. },
  677. //刷新当前卷的时间数据
  678. refreshSfdcMaterialTable(){
  679. getSfdcMaterialByRollNo(this.scheduleData).then(({data}) => {
  680. this.sfdcMaterialList = data.rows;
  681. });
  682. },
  683. /*检查数据是否有效*/
  684. checkValidQty(row){
  685. //判断当前是否为空
  686. if(row.netIssueQty == ''){
  687. this.$message.error('材料上本卷耗用数量不能为空!');
  688. row.netIssueQty = 0;//重新赋值
  689. return false;
  690. }
  691. //判断当前是否有效
  692. if(row.netIssueQty <= 0){
  693. this.$message.error('材料耗用数量必须大于0!');
  694. return false;
  695. }
  696. //判断是否超限
  697. if(row.netIssueQty > row.transQty){
  698. this.$message.error('材料耗用数量大于发料数量!');
  699. row.netIssueQty = 0;//重新赋值
  700. return false;
  701. }
  702. },
  703. /*添加定制的css类*/
  704. customerCellClassName({row, column, rowIndex, columnIndex}) {
  705. if(column.property == 'netIssueQty'){
  706. return 'customer-number-cell';
  707. }
  708. },
  709. /*添加定制的cess样式*/
  710. customerCellStyle({row, column, rowIndex, columnIndex}) {
  711. if(column.property == 'netIssueQty'){
  712. return 'padding: 0px 0px;';
  713. }
  714. },
  715. /*检验良品的总数量*/
  716. checkValidApprovedQty(){
  717. //调用刷新的方法
  718. this.refreshSfdcData();
  719. },
  720. /*结束当前的操作*/
  721. finishRollBun(){
  722. //首先判断数值是否通过判断
  723. let approvedQty = this.pageData.approvedQty;
  724. if(approvedQty == null || approvedQty == ''){
  725. this.$message.error('请输入良品总数量!');
  726. this.pageData.approvedQty = 0;//重新赋值
  727. return false;
  728. }
  729. if(approvedQty <= 0){
  730. this.$message.error('良品总数量必须大于0!');
  731. this.pageData.approvedQty = 0;//重新赋值
  732. return false;
  733. }
  734. //班次判断
  735. if(this.pageData.shiftDesc == '无班次'){
  736. this.$message.error('该时间段内没有匹配的班次信息,请联系相关人员!!');
  737. return false;
  738. }
  739. //验证通过提交到后台
  740. let postData = {'pageData': JSON.stringify(this.pageData), 'materialList': JSON.stringify(this.sfdcMaterialList)};
  741. //先调用检查方法
  742. checkFinishRollWithNoFqc(postData).then(({data}) => {
  743. //判断是否成功
  744. if(data.code == 500){
  745. this.$message.error(data.msg);
  746. }else if (data.resultMap.resultCode == '201'){
  747. //打开异常原因录入的界面
  748. this.$confirm(data.resultMap.resultMsg, '提示', {
  749. confirmButtonText: '确认',
  750. celButtonText: '取消',
  751. type: 'warning'
  752. }).then(() => {
  753. this.showExceptionReasonModal();
  754. });
  755. }else{
  756. //执行结束卷操作
  757. this.finishRollOperation();
  758. }
  759. });
  760. },
  761. /*结束卷的具体操作*/
  762. finishRollOperation(){
  763. //验证通过提交到后台
  764. let postData = {'pageData': JSON.stringify(this.pageData), 'materialList': JSON.stringify(this.sfdcMaterialList)};
  765. //处理信息
  766. finishRollWithNoFqc(postData).then(({data}) => {
  767. this.$message.error('qty_reported找不到!');
  768. //判断操作是否成功
  769. if(data.code == 500){
  770. this.$message.error(data.msg);
  771. }else{
  772. //刷新报工的页面
  773. this.$emit('refreshPageData');
  774. //关闭当前的页面
  775. this.closeDialog();
  776. }
  777. })
  778. },
  779. /*打开异常原因录入页面*/
  780. showExceptionReasonModal(){
  781. //1.首先调用菜单判断方式 打开生产过程的材料的页面
  782. //checkProduceButton('produceMaterialFlag');
  783. //打开生产过程的工具的页面
  784. this.$nextTick(() => {
  785. this.showExceptionFlag = true;
  786. this.$refs.comExceptionReason.init();
  787. });
  788. },
  789. /*处理异常的原因*/
  790. initExceptionReason(exceptionReason){
  791. //处理异常的原因
  792. this.pageData.exceptionFlag = 'Y';
  793. this.pageData.exceptionReason = exceptionReason;
  794. //然后提交结束卷的数据
  795. this.finishRollOperation();
  796. }
  797. },
  798. created() {
  799. // this.factoryList()
  800. // this.getLanguageList()
  801. }
  802. }
  803. </script>
  804. <style scoped lang="scss">
  805. /*调节页面button和input的上下间距*/
  806. .customer-css .customer-button{
  807. margin-top: 25px;
  808. }
  809. /*调节样式*/
  810. .customer-item{
  811. margin-top: -10px;
  812. }
  813. /*fieldset下table的样式*/
  814. .customer-fieldset /deep/ .el-table__header th.is-leaf{
  815. line-height: 16px;
  816. }
  817. /deep/ .customer-tab .el-tabs__content{
  818. padding: 0px !important;
  819. }
  820. /*table中input*/
  821. div.table-input /deep/ input.el-input__inner{
  822. text-align: right;
  823. }
  824. </style>