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.

783 lines
30 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
  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="finishRollOperation" 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. </div>
  215. </template>
  216. <script>
  217. import {
  218. getCurrentRollReportedQty,
  219. countSfdcTimeQty,
  220. getScheduleShiftData,
  221. getSfdcTimeMaxAndMinTime,
  222. getSfdcTimeData,
  223. getSfdcReportedData,
  224. getSfdcMaterialByRollNo,
  225. finishRoll,
  226. } from '@/api/yieldReport/com_finish_roll.js';
  227. export default {
  228. name: "com_finish_roll",
  229. data() {
  230. return {
  231. titleCon: '',
  232. sfdcTimeList: [],
  233. scheduleData: {
  234. site: this.$store.state.user.site,
  235. userName: this.$store.state.user.name,
  236. seqNo: '',
  237. orderNo: '',
  238. itemNo: 0,
  239. partNo: '',
  240. workCenterNo: '',
  241. workCenterDesc: '',
  242. resourceDesc: '',
  243. rollNo: '',
  244. partDesc: '',
  245. planStartTime: '',
  246. planFinishTime: '',
  247. qtyRequiredOriginal: 0,
  248. scheduledDate: '',
  249. shiftNo: '',
  250. preItemDesc: '',
  251. nextItemDesc: '',
  252. nextItemNo: 0,
  253. operatorId: '',
  254. functionName: '',
  255. currentRollFlag: false
  256. },
  257. pageData: {
  258. site: this.$store.state.user.site,
  259. userName: this.$store.state.user.name,
  260. orderNo: '',
  261. itemNo: 0,
  262. seqNo: '',
  263. rollNo: '',
  264. resourceId: '',
  265. scheduledDate: '',
  266. shiftNo: '',
  267. reportedTime: this.dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'),
  268. reportedFlag: 'N',
  269. approvedQty: 0,
  270. defectedQty: 0,
  271. totalQty: 0,
  272. otherRollQty: '',
  273. shiftDesc: '',
  274. totalSetupTime: 0,
  275. totalDowntimeTimeSetup: 0,
  276. totalPureSetupTime: 0,
  277. totalProdTime: 0,
  278. totalDowntimeTimeProd: 0,
  279. totalPureProdTime: 0,
  280. totalManufactureTime: 0,
  281. totalManufactureDowntimeTime: 0,
  282. totalPureManufactureTime: 0,
  283. sfdcProdTime: 0,//生产时间
  284. sfdcSetupTime: 0,//调机时间
  285. sfdcManufactureTime: 0,//制造时间
  286. sfdcSetupDownTime: 0,//调机停机时间
  287. sfdcProdSetupTime: 0,//生产调机时间
  288. sfdcDownTime: 0,//停机时间
  289. eventTime: '',
  290. tillTime: '',
  291. sfdcApprovedQty: 0,
  292. sfdcDefectedQty: 0,
  293. sfdcReportedQty: 0,
  294. remark: '',
  295. },
  296. operatorData: {
  297. site: this.$store.state.user.site,
  298. username: this.$store.state.user.name,
  299. operatorId: '',
  300. operatorName: '',
  301. status: '',
  302. seqNo: '',
  303. showFlag: false
  304. },
  305. sfdcMaterialList: [],
  306. columnMaterialArray: [
  307. {
  308. userId: this.$store.state.user.name,
  309. functionId: 5303,
  310. serialNumber: '5303MaterialReportDate',
  311. tableId: "5303Material",
  312. tableName: "派工单材料",
  313. columnProp: "reportDate",
  314. headerAlign: "center",
  315. align: "center",
  316. columnLabel: "报告时间",
  317. columnWidth: 125,
  318. columnHidden: false,
  319. columnImage: false,
  320. columnSortable: false,
  321. sortLv: 0,
  322. status: true,
  323. fixed: false
  324. },
  325. {
  326. userId: this.$store.state.user.name,
  327. functionId: 5303,
  328. serialNumber: '5303MaterialReportedBy',
  329. tableId: "5303Material",
  330. tableName: "派工单材料",
  331. columnProp: "reportedBy",
  332. headerAlign: "center",
  333. align: "center",
  334. columnLabel: "报告人",
  335. columnWidth: 80,
  336. columnHidden: false,
  337. columnImage: false,
  338. columnSortable: false,
  339. sortLv: 0,
  340. status: true,
  341. fixed: false
  342. },
  343. {
  344. userId: this.$store.state.user.name,
  345. functionId: 5303,
  346. serialNumber: '5303MaterialRmRollNo',
  347. tableId: "5303Material",
  348. tableName: "派工单材料",
  349. columnProp: "rmRollNo",
  350. headerAlign: "center",
  351. align: "center",
  352. columnLabel: "材料卷号",
  353. columnWidth: 100,
  354. columnHidden: false,
  355. columnImage: false,
  356. columnSortable: false,
  357. sortLv: 0,
  358. status: true,
  359. fixed: false
  360. },
  361. {
  362. userId: this.$store.state.user.name,
  363. functionId: 5303,
  364. serialNumber: '5303MaterialPartNo',
  365. tableId: "5303Material",
  366. tableName: "派工单材料",
  367. columnProp: "partNo",
  368. headerAlign: "center",
  369. align: "center",
  370. columnLabel: "零部件编码",
  371. columnWidth: 100,
  372. columnHidden: false,
  373. columnImage: false,
  374. columnSortable: false,
  375. sortLv: 0,
  376. status: true,
  377. fixed: false
  378. },
  379. {
  380. userId: this.$store.state.user.name,
  381. functionId: 5303,
  382. serialNumber: '5303MaterialStartDate',
  383. tableId: "5303Material",
  384. tableName: "派工单材料",
  385. columnProp: "startDate",
  386. headerAlign: "center",
  387. align: "center",
  388. columnLabel: "开始使用时间",
  389. columnWidth: 125,
  390. columnHidden: false,
  391. columnImage: false,
  392. columnSortable: false,
  393. sortLv: 0,
  394. status: true,
  395. fixed: false
  396. },
  397. {
  398. userId: this.$store.state.user.name,
  399. functionId: 5303,
  400. serialNumber: '5303MaterialTransQty',
  401. tableId: "5303Material",
  402. tableName: "派工单材料",
  403. columnProp: "transQty",
  404. headerAlign: "center",
  405. align: "center",
  406. columnLabel: "数量",
  407. columnWidth: 80,
  408. columnHidden: false,
  409. columnImage: false,
  410. columnSortable: false,
  411. sortLv: 0,
  412. status: true,
  413. fixed: false
  414. },
  415. {
  416. userId: this.$store.state.user.name,
  417. functionId: 5303,
  418. serialNumber: '5303MaterialNetIssueQty',
  419. tableId: "5303Material",
  420. tableName: "派工单材料",
  421. columnProp: "netIssueQty",
  422. headerAlign: "center",
  423. align: "center",
  424. columnLabel: "本卷耗用数量",
  425. columnWidth: 100,
  426. columnHidden: true,
  427. columnImage: false,
  428. columnSortable: false,
  429. sortLv: 0,
  430. status: true,
  431. fixed: false
  432. },
  433. {
  434. userId: this.$store.state.user.name,
  435. functionId: 5303,
  436. serialNumber: '5303MaterialKeyRMFlag',
  437. tableId: "5303Material",
  438. tableName: "派工单材料",
  439. columnProp: "keyRMFlag",
  440. headerAlign: "center",
  441. align: "center",
  442. columnLabel: "是否主材",
  443. columnWidth: 80,
  444. columnHidden: false,
  445. columnImage: false,
  446. columnSortable: false,
  447. sortLv: 0,
  448. status: true,
  449. fixed: false
  450. },
  451. {
  452. userId: this.$store.state.user.name,
  453. functionId: 5303,
  454. serialNumber: '5303MaterialSAPBOMItemNo',
  455. tableId: "5303Material",
  456. tableName: "派工单材料",
  457. columnProp: "sAPBOMItemNo",
  458. headerAlign: "center",
  459. align: "center",
  460. columnLabel: "SAP BOM序号",
  461. columnWidth: 100,
  462. columnHidden: false,
  463. columnImage: false,
  464. columnSortable: false,
  465. sortLv: 0,
  466. status: true,
  467. fixed: false
  468. }
  469. ],
  470. buttonTags:{
  471. createNewRollFlag: true,
  472. switchRollFlag: true,
  473. separatorRollFlag: true,
  474. finishRollFlag: true,
  475. mergeRollFlag: true,
  476. tuningFlag: true,
  477. produceFlag: true,
  478. defectFlag: true,
  479. toolFlag: true,
  480. materialFlag: true,
  481. downTimeFlag: true
  482. },
  483. dataListLoading: false,
  484. }
  485. },
  486. methods: {
  487. /*初始化页面参数*/
  488. init(scheduleData, operatorData) {
  489. //初始化参数
  490. this.scheduleData = scheduleData;
  491. //初始化参数
  492. this.pageData.orderNo = scheduleData.orderNo;
  493. this.pageData.itemNo = scheduleData.itemNo;
  494. this.pageData.seqNo = scheduleData.seqNo;
  495. this.pageData.rollNo = scheduleData.rollNo;
  496. this.pageData.scheduledDate = scheduleData.scheduledDate;
  497. this.pageData.shiftNo = scheduleData.shiftNo;
  498. this.pageData.resourceId = scheduleData.resourceId;
  499. //初始化操作员对象
  500. this.operatorData = JSON.parse(JSON.stringify(operatorData));
  501. //初始化标题
  502. this.titleCon = '结束卷操作 \
  503. 派工单号:'+scheduleData.seqNo;
  504. //刷新当前派工单的信息
  505. this.refreshPageData();
  506. },
  507. /*关闭modal*/
  508. closeDialog(){
  509. this.$emit('update:visible', false);
  510. },
  511. /*刷新当前的页面参数*/
  512. refreshPageData(){
  513. //1.刷新当前卷的报工数据
  514. getCurrentRollReportedQty(this.scheduleData).then(({data}) => {
  515. this.pageData.approvedQty = data.row.approvedQty;
  516. this.pageData.defectedQty = data.row.defectedQty;
  517. this.pageData.totalQty = data.row.totalQty;
  518. this.pageData.otherRollQty = data.row.otherRollQty;
  519. }).then(() => {
  520. //2.刷新当前卷的时间信息
  521. countSfdcTimeQty(this.scheduleData).then(({data}) => {
  522. this.pageData.totalSetupTime = data.row.totalSetupTime;
  523. this.pageData.totalDowntimeTimeSetup = data.row.totalDowntimeTimeSetup;
  524. this.pageData.totalPureSetupTime = data.row.totalPureSetupTime;
  525. this.pageData.totalProdTime = data.row.totalProdTime;
  526. this.pageData.totalDowntimeTimeProd = data.row.totalDowntimeTimeProd;
  527. this.pageData.totalPureProdTime = data.row.totalPureProdTime;
  528. this.pageData.totalManufactureTime = data.row.totalManufactureTime;
  529. this.pageData.totalManufactureDowntimeTime = data.row.totalManufactureDowntimeTime;
  530. this.pageData.totalPureManufactureTime = data.row.totalPureManufactureTime;
  531. //先预设一些参数 后期方法再计算
  532. //生产时间=总生产时间
  533. this.pageData.sfdcProdTime = this.pageData.totalProdTime;
  534. //调机时间=总调机时间
  535. this.pageData.sfdcSetupTime = this.pageData.totalSetupTime;
  536. //制造时间=总制造时间
  537. this.pageData.sfdcManufactureTime = this.pageData.totalManufactureTime;
  538. //调机停机=总调机过程停机时间
  539. this.pageData.sfdcDownTime = this.pageData.totalDowntimeTimeSetup;
  540. //生产调机=总生产过程停机时间
  541. this.pageData.sfdcProdSetupTime = this.pageData.totalDowntimeTimeProd;
  542. //停机时间=总制造过程停机时间
  543. this.pageData.sfdcDownTime = this.pageData.totalManufactureDowntimeTime;
  544. });
  545. }).then(() => {
  546. //3.刷新派工单的班次信息
  547. getScheduleShiftData(this.scheduleData).then(({data}) => {
  548. this.pageData.shiftDesc = data.row.shiftDesc;
  549. });
  550. }).then(() => {
  551. //4.刷新当前卷的最早和最晚时间
  552. getSfdcTimeMaxAndMinTime(this.scheduleData).then(({data}) => {
  553. this.pageData.eventTime = data.row.eventTime;
  554. this.pageData.tillTime = data.row.tillTime;
  555. });
  556. }).then(() => {
  557. //5.刷新当前卷的Sfdc表的时间
  558. getSfdcTimeData(this.scheduleData).then(({data}) => {
  559. //先判断是否成功查询
  560. if(data.resultCode == 200){
  561. //判断是否操作成功
  562. this.pageData.eventTime = data.row.finishTime;
  563. this.pageData.sfdcProdTime = data.row.sfdcProdTime;
  564. this.pageData.sfdcSetupTime = data.row.sfdcSetupTime;
  565. this.pageData.sfdcManufactureTime = data.row.sfdcManufactureTime;
  566. this.pageData.sfdcDownTime = data.row.sfdcDownTime;
  567. this.pageData.sfdcSetupDownTime = data.row.sfdcSetupDownTime;
  568. this.pageData.sfdcProdSetupTime = data.row.sfdcProdSetupTime;
  569. }else{
  570. //暂时不处理数据
  571. }
  572. });
  573. }).then(() => {
  574. //6.刷新当前卷的报工数据
  575. getSfdcReportedData(this.scheduleData).then(({data}) => {
  576. this.pageData.sfdcApprovedQty = this.pageData.approvedQty - data.row.approveQty;
  577. this.pageData.sfdcDefectedQty = this.pageData.defectedQty - data.row.defectQty;
  578. this.pageData.sfdcReportedQty = this.pageData.sfdcApprovedQty + this.pageData.sfdcDefectedQty;
  579. });
  580. }).then(() => {
  581. //刷新当前卷的时间数据
  582. getSfdcMaterialByRollNo(this.scheduleData).then(({data}) => {
  583. this.sfdcMaterialList = data.rows;
  584. });
  585. });
  586. },
  587. /*刷新当前卷的报工数据汇总*/
  588. refreshCurrentRollReportedQty(){
  589. getCurrentRollReportedQty(this.scheduleData).then(({data}) => {
  590. this.pageData.approvedQty = data.row.approvedQty;
  591. this.pageData.defectedQty = data.row.defectedQty;
  592. this.pageData.totalQty = data.row.totalQty;
  593. this.pageData.otherRollQty = data.row.otherRollQty;
  594. })
  595. },
  596. //刷新当前卷的时间信息
  597. refreshCurrentRollTimeQty(){
  598. countSfdcTimeQty(this.scheduleData).then(({data}) => {
  599. this.pageData.totalSetupTime = data.row.totalSetupTime;
  600. this.pageData.totalDowntimeTimeSetup = data.row.totalDowntimeTimeSetup;
  601. this.pageData.totalPureSetupTime = data.row.totalPureSetupTime;
  602. this.pageData.totalProdTime = data.row.totalProdTime;
  603. this.pageData.totalDowntimeTimeProd = data.row.totalDowntimeTimeProd;
  604. this.pageData.totalPureProdTime = data.row.totalPureProdTime;
  605. this.pageData.totalManufactureTime = data.row.totalManufactureTime;
  606. this.pageData.totalManufactureDowntimeTime = data.row.totalManufactureDowntimeTime;
  607. this.pageData.totalPureManufactureTime = data.row.totalPureManufactureTime;
  608. });
  609. },
  610. //刷新派工单的班次信息
  611. refreshScheduleShiftData(){
  612. getScheduleShiftData(this.scheduleData).then(({data}) => {
  613. this.pageData.shiftDesc = data.row.shiftDesc;
  614. });
  615. },
  616. //刷新当前卷的时间信息
  617. refreshCurrentRollMaxAndMinTime(){
  618. getSfdcTimeMaxAndMinTime(this.scheduleData).then(({data}) => {
  619. this.pageData.eventTime = data.row.eventTime;
  620. this.pageData.tillTime = data.row.tillTime;
  621. });
  622. },
  623. //刷新当前卷的Sfdc的信息
  624. refreshSfdcTimeData(){
  625. getSfdcTimeData(this.scheduleData).then(({data}) => {
  626. //判断是否操作成功
  627. this.pageData.eventTime = data.row.finishTime;
  628. this.pageData.sfdcProdTime = data.row.sfdcProdTime;
  629. this.pageData.sfdcSetupTime = data.row.sfdcSetupTime;
  630. this.pageData.sfdcManufactureTime = data.row.sfdcManufactureTime;
  631. this.pageData.sfdcDownTime = data.row.sfdcDownTime;
  632. this.pageData.sfdcSetupDownTime = data.row.sfdcSetupDownTime;
  633. this.pageData.sfdcProdSetupTime = data.row.sfdcProdSetupTime;
  634. });
  635. },
  636. //刷新当前卷的报工数据
  637. refreshSfdcData(){
  638. getSfdcReportedData(this.scheduleData).then(({data}) => {
  639. this.pageData.sfdcApprovedQty = this.pageData.approvedQty - data.row.approveQty;
  640. this.pageData.sfdcDefectedQty = this.pageData.defectedQty - data.row.defectQty;
  641. this.pageData.sfdcReportedQty = this.pageData.sfdcApprovedQty + this.pageData.sfdcDefectedQty;
  642. });
  643. },
  644. //刷新当前卷的时间数据
  645. refreshSfdcMaterialTable(){
  646. getSfdcMaterialByRollNo(this.scheduleData).then(({data}) => {
  647. this.sfdcMaterialList = data.rows;
  648. });
  649. },
  650. /*检查数据是否有效*/
  651. checkValidQty(row){
  652. //判断当前是否为空
  653. if(row.netIssueQty == ''){
  654. this.$message.error('材料上本卷耗用数量不能为空!');
  655. row.netIssueQty = 0;//重新赋值
  656. return false;
  657. }
  658. //判断当前是否有效
  659. if(row.netIssueQty <= 0){
  660. this.$message.error('材料耗用数量必须大于0!');
  661. return false;
  662. }
  663. //判断是否超限
  664. if(row.netIssueQty > row.transQty){
  665. this.$message.error('材料耗用数量大于发料数量!');
  666. row.netIssueQty = 0;//重新赋值
  667. return false;
  668. }
  669. },
  670. /*添加定制的css类*/
  671. customerCellClassName({row, column, rowIndex, columnIndex}) {
  672. if(column.property == 'netIssueQty'){
  673. return 'customer-number-cell';
  674. }
  675. },
  676. /*添加定制的cess样式*/
  677. customerCellStyle({row, column, rowIndex, columnIndex}) {
  678. if(column.property == 'netIssueQty'){
  679. return 'padding: 0px 0px;';
  680. }
  681. },
  682. /*检验良品的总数量*/
  683. checkValidApprovedQty(){
  684. //调用刷新的方法
  685. this.refreshSfdcData();
  686. },
  687. /*结束当前的操作*/
  688. finishRollOperation(){
  689. //首先判断数值是否通过判断
  690. let approvedQty = this.pageData.approvedQty;
  691. if(approvedQty == null || approvedQty == ''){
  692. this.$message.error('请输入良品总数量!');
  693. this.pageData.approvedQty = 0;//重新赋值
  694. return false;
  695. }
  696. if(approvedQty <= 0){
  697. this.$message.error('良品总数量必须大于0!');
  698. this.pageData.approvedQty = 0;//重新赋值
  699. return false;
  700. }
  701. //班次判断
  702. if(this.pageData.shiftDesc == '无班次'){
  703. this.$message.error('该时间段内没有匹配的班次信息,请联系相关人员!!');
  704. return false;
  705. }
  706. //验证通过提交到后台
  707. let postData = {'pageData': JSON.stringify(this.pageData), 'materialList': JSON.stringify(this.sfdcMaterialList)};
  708. finishRoll(postData).then(({data}) => {
  709. this.$message.error('qty_reported找不到!');
  710. //判断操作是否成功
  711. if(data.code == 500){
  712. this.$message.error(data.msg);
  713. }else{
  714. //刷新报工的页面
  715. this.$emit('refreshPageData');
  716. //关闭当前的页面
  717. this.closeDialog();
  718. }
  719. })
  720. },
  721. },
  722. created() {
  723. // this.factoryList()
  724. // this.getLanguageList()
  725. }
  726. }
  727. </script>
  728. <style scoped lang="scss">
  729. /*调节页面button和input的上下间距*/
  730. .customer-css .customer-button{
  731. margin-top: 25px;
  732. }
  733. /*调节样式*/
  734. .customer-item{
  735. margin-top: -10px;
  736. }
  737. /*fieldset下table的样式*/
  738. .customer-fieldset /deep/ .el-table__header th.is-leaf{
  739. line-height: 16px;
  740. }
  741. /deep/ .customer-tab .el-tabs__content{
  742. padding: 0px !important;
  743. }
  744. /*table中input*/
  745. div.table-input /deep/ input.el-input__inner{
  746. text-align: right;
  747. }
  748. </style>