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.

1349 lines
49 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 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=labels.currentTime>
  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 class="customer-bun-min" type="primary" @click="refreshPageData" style="margin-left: 10px; margin-bottom: 5px;">
  20. {{buttons.refreshButton}}</el-button>
  21. </el-form-item>
  22. <el-form-item class="customer-button">
  23. <el-button class="customer-bun-min" :disabled="buttonTags.finishRollFlag" type="primary" @click="finishRollBun" style="margin-left: 10px; margin-bottom: 5px;">
  24. {{buttons.finishRoll}}</el-button>
  25. </el-form-item>
  26. <el-form-item class="customer-button">
  27. <el-button class="customer-bun-min" type="primary" @click="closeDialog" style="margin-left: 10px; margin-bottom: 5px;">
  28. {{buttons.closeButton}}</el-button>
  29. </el-form-item>
  30. <el-button v-if="showDefault" @click="saveMultiLanguage()" type="primary">对语言设置</el-button>
  31. </el-col>
  32. </el-row>
  33. <!-- 卷数量统计 班次信息 -->
  34. <el-form>
  35. <fieldset class="customer-fieldset" style="width: 495px;">
  36. <legend>{{labels.rollQtySum}}</legend>
  37. <el-form-item class="customer-item">
  38. <el-checkbox disabled="disabled" style="margin-top: 15px;" true-label="Y" false-label="N"
  39. v-model="pageData.reportedFlag">{{labels.whetherReport}}</el-checkbox>
  40. </el-form-item>
  41. <el-form-item class="customer-item" :label=labels.approvedQty style="margin-top: -10px;">
  42. <!--<el-input v-model="pageData.approvedQty" type="number" @blur="checkValidApprovedQty"-->
  43. <el-input v-if="this.preItemNo<=0" v-model="pageData.approvedQty" @blur="checkValidApprovedQty" type="number" style="width: 80px;" ></el-input>
  44. <el-input v-if="this.preItemNo>0" disabled class="customer-input-color-red" v-model="pageData.approvedQty" @blur="checkValidApprovedQty" type="number" style="width: 80px;" ></el-input>
  45. </el-form-item>
  46. <el-form-item class="customer-item" :label=labels.defectedQty style="margin-top: -10px;">
  47. <el-input v-model="pageData.defectedQty" :disabled="showNumFlag" class="customer-input-color-red" readonly="readonly" style="width: 80px;"></el-input>
  48. </el-form-item>
  49. <el-form-item class="customer-item" :label=labels.totalQty style="margin-top: -10px;">
  50. <el-input v-model="pageData.totalQty" class="customer-input-color-red" readonly="readonly" style="width: 80px;"></el-input>
  51. </el-form-item>
  52. <el-form-item class="customer-item" :label=labels.otherRollQty style="margin-top: -10px;">
  53. <el-input v-model="pageData.otherRollQty" class="customer-input-color-red" readonly="readonly" style="width: 80px;"></el-input>
  54. </el-form-item>
  55. </fieldset>
  56. <!-- 操作员信息和班次信息 -->
  57. <fieldset class="customer-fieldset"
  58. style="margin-left: 500px; margin-top: -70px; width: 400px;">
  59. <legend>{{labels.operatorScheduleInfo}}</legend>
  60. <el-form-item class="customer-item" :label=labels.operatorId>
  61. <el-input v-model="operatorData.operatorId" disabled="disabled" style="width: 80px;" ></el-input>
  62. </el-form-item>
  63. <el-form-item class="customer-item" :label=labels.operatorName>
  64. <el-input v-model="operatorData.operatorName" class="customer-input-color-red" readonly="readonly" style="width: 80px;"></el-input>
  65. </el-form-item>
  66. <el-form-item class="customer-item" :label=labels.scheduledDate>
  67. <el-input v-model="pageData.scheduledDate" disabled="disabled" style="width: 80px;" ></el-input>
  68. </el-form-item>
  69. <el-form-item class="customer-item" :label=labels.shiftNo>
  70. <el-input v-model="pageData.shiftDesc" class="customer-input-color-red" readonly="readonly" style="width: 80px;"></el-input>
  71. </el-form-item>
  72. <el-button type="info" :disabled="buttonTags.selectShiftFlag" plain @click="selectSchduleShiftModal"
  73. style="margin-left: -10px; margin-top: 10px; height: 20px; padding: 3px 3px;">
  74. <icon-svg name="ellipsis" style="height: 10px; width: 10px;" ></icon-svg>
  75. </el-button>
  76. </fieldset>
  77. </el-form>
  78. <!-- 卷生产时间统计产量报告 -->
  79. <el-form style="margin-top: 5px;">
  80. <fieldset class="customer-fieldset" style="width: 320px; margin-top: -10px;">
  81. <legend>{{labels.rollTimeSum}}</legend>
  82. <!-- 调机时间 -->
  83. <el-row style="margin-top: -10px;">
  84. <el-col :span="24">
  85. <el-form-item :label=labels.totalTuningTime >
  86. <el-input v-model="pageData.totalSetupTime" class="customer-input-color-red" readonly="readonly" style="width: 80px;" ></el-input>
  87. </el-form-item>
  88. <el-form-item :label=labels.totalTuningDownTime >
  89. <el-input v-model="pageData.totalDowntimeTimeSetup" class="customer-input-color-red" readonly="readonly" style="width: 100px;"></el-input>
  90. </el-form-item>
  91. <el-form-item :label=labels.totalPureTuningTime >
  92. <el-input v-model="pageData.totalPureSetupTime" class="customer-input-color-red" readonly="readonly" style="width: 80px;"></el-input>
  93. </el-form-item>
  94. </el-col>
  95. </el-row>
  96. <!-- 生产时间 -->
  97. <el-row>
  98. <el-col :span="24">
  99. <el-form-item :label=labels.totalProdTime>
  100. <el-input v-model="pageData.totalProdTime" class="customer-input-color-red" readonly="readonly" style="width: 80px;"></el-input>
  101. </el-form-item>
  102. <el-form-item :label=labels.totalProdDownTime>
  103. <el-input v-model="pageData.totalDowntimeTimeProd" class="customer-input-color-red" readonly="readonly" style="width: 100px;"></el-input>
  104. </el-form-item>
  105. <el-form-item :label=labels.totalPureProdTime >
  106. <el-input v-model="pageData.totalPureProdTime" class="customer-input-color-red" readonly="readonly" style="width: 80px;"></el-input>
  107. </el-form-item>
  108. </el-col>
  109. </el-row>
  110. <!-- 制造时间 -->
  111. <el-row>
  112. <el-col :span="24">
  113. <el-form-item :label=labels.totalManufTime>
  114. <el-input v-model="pageData.totalManufactureTime" class="customer-input-color-red" readonly="readonly" style="width: 80px;"></el-input>
  115. </el-form-item>
  116. <el-form-item :label=labels.totalManufDownTime>
  117. <el-input v-model="pageData.totalManufactureDowntimeTime" class="customer-input-color-red" readonly="readonly" style="width: 100px;"></el-input>
  118. </el-form-item>
  119. <el-form-item :label=labels.totalPureManufTime>
  120. <el-input v-model="pageData.totalPureManufactureTime" class="customer-input-color-red" readonly="readonly" style="width: 80px;"></el-input>
  121. </el-form-item>
  122. </el-col>
  123. </el-row>
  124. </fieldset>
  125. <!-- 产量报告 -->
  126. <fieldset class="customer-fieldset"
  127. style="margin-left: 325px; margin-top: -143px; width: 575px;">
  128. <legend>{{ labels.produceReport }}</legend>
  129. <!-- 开工时间 -->
  130. <el-row>
  131. <el-col :span="24">
  132. <el-form-item :label=labels.startTime>
  133. <el-input v-model="pageData.eventTime" disabled="disabled" style="width: 130px;"></el-input>
  134. </el-form-item>
  135. <el-form-item :label=labels.finishTime>
  136. <el-input v-model="pageData.tillTime" disabled="disabled" style="width: 130px;"></el-input>
  137. </el-form-item>
  138. <el-form-item :label=labels.prodTime >
  139. <el-input v-model="pageData.sfdcProdTime" class="customer-input-color-red" readonly="readonly" style="width: 80px;"></el-input>
  140. </el-form-item>
  141. <el-form-item :label=labels.tuningTime>
  142. <el-input v-model="pageData.sfdcSetupTime" class="customer-input-color-red" readonly="readonly" style="width: 80px;"></el-input>
  143. </el-form-item>
  144. <el-form-item :label=labels.manufTime>
  145. <el-input v-model="pageData.sfdcManufactureTime" class="customer-input-color-red" readonly="readonly" style="width: 80px;"></el-input>
  146. </el-form-item>
  147. </el-col>
  148. </el-row>
  149. <!-- 合格数量 -->
  150. <el-row>
  151. <el-col :span="24">
  152. <el-form-item :label=labels.sfdcApprovedQty>
  153. <el-input v-model="pageData.sfdcApprovedQty" class="customer-input-color-red" readonly="readonly" style="width: 130px;"></el-input>
  154. </el-form-item>
  155. <el-form-item :label=labels.sfdcDefectedQty>
  156. <el-input v-model="pageData.defectedQty" class="customer-input-color-red" readonly="readonly" style="width: 130px;"></el-input>
  157. </el-form-item>
  158. <el-form-item :label=labels.sfdcReportedQty >
  159. <el-input v-model="pageData.sfdcReportedQty" class="customer-input-color-red" readonly="readonly" style="width: 80px;"></el-input>
  160. </el-form-item>
  161. <el-form-item :label=labels.tuningDown>
  162. <el-input v-model="pageData.sfdcSetupDownTime" style="width: 80px;"></el-input>
  163. </el-form-item>
  164. <el-form-item :label=labels.manufTuning >
  165. <el-input v-model="pageData.sfdcProdSetupTime" style="width: 80px;"></el-input>
  166. </el-form-item>
  167. </el-col>
  168. </el-row>
  169. <!-- 备注 -->
  170. <el-row>
  171. <el-col :span="24">
  172. <el-form-item :label=labels.remark>
  173. <el-input v-model="pageData.remark" style="width: 430px;"></el-input>
  174. </el-form-item>
  175. <el-form-item :label=labels.downTime>
  176. <el-input v-model="pageData.sfdcDownTime" style="width: 80px;"></el-input>
  177. </el-form-item>
  178. </el-col>
  179. </el-row>
  180. </fieldset>
  181. </el-form>
  182. <!-- 主材料 -->
  183. <el-form>
  184. <fieldset class="customer-fieldset" style="width: 830px;">
  185. <legend>{{labels.primaryMaterial}}</legend>
  186. <el-table
  187. height="180"
  188. :data="sfdcMaterialList"
  189. :cell-style="customerCellStyle" :cell-class-name="customerCellClassName"
  190. border
  191. v-loading="dataListLoading"
  192. style="width: 100%; margin-top: -5px;">
  193. <el-table-column
  194. v-for="(item,index) in columnMaterialArray" :key="index"
  195. :sortable="item.columnSortable"
  196. :prop="item.columnProp"
  197. :header-align="item.headerAlign"
  198. :show-overflow-tooltip="item.showOverflowTooltip"
  199. :align="item.align"
  200. :fixed="item.fixed==''?false:item.fixed"
  201. :width="item.columnWidth"
  202. :label="item.columnLabel">
  203. <template slot-scope="scope">
  204. <!--<el-input type="number" class="table-input" align="right" @blur="checkValidQty(scope.row)"-->
  205. <el-input type="number" class="table-input" align="right" v-if="item.columnHidden"
  206. v-model="scope.row[item.columnProp]"></el-input>
  207. <span v-else>{{scope.row[item.columnProp]}}</span>
  208. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  209. style="width: 100px; height: 80px"/></span>
  210. </template>
  211. </el-table-column>
  212. </el-table>
  213. </fieldset>
  214. </el-form>
  215. </el-form>
  216. </el-dialog>
  217. <!-- 异常原因录入的组件 -->
  218. <comExceptionReason ref="comExceptionReason" :close-on-click-modal="false"
  219. :visible.sync="showExceptionFlag"
  220. @initExceptionReason = "initExceptionReason">
  221. </comExceptionReason>
  222. <!-- 班次选择组件 -->
  223. <comSelectShift ref="comSelectShift" :close-on-click-modal="false"
  224. :visible.sync="showShiftFlag"
  225. @initScheduleShift = "initScheduleShift">
  226. </comSelectShift>
  227. </div>
  228. </template>
  229. <script>
  230. /*添加组件*/
  231. import comExceptionReason from "./com_exception_reason";//异常远远
  232. import comSelectShift from "./com_select_shift";//班次选择的组件
  233. import {
  234. getCurrentRollReportedQty,
  235. countSfdcTimeQty,
  236. getScheduleShiftData,
  237. getSfdcTimeMaxAndMinTime,
  238. getSfdcTimeData,
  239. getSfdcReportedData,
  240. getSfdcMaterialByRollNo,
  241. checkFinishRollWithNoFqc,
  242. finishRollWithNoFqc,
  243. getSORoutingPreviousOperationItemNo,
  244. getSfdcFlowLabelData,/*执行打印的请求*/
  245. } from '@/api/yieldReport/com_finish_roll.js';
  246. /*打印标签专用的js*/
  247. import {
  248. printSfdcLabel,
  249. } from "@/views/modules/yieldReport/print_roll_label.js";
  250. import {
  251. searchSysLanguagePackList,
  252. searchSysLanguageParam,
  253. searchFunctionButtonList,
  254. saveButtonList,
  255. searchSysLanguage,
  256. searchLanguageListByLanguageCode,
  257. saveSysLanguageOne,
  258. searchPageLanguageData,
  259. removerLanguage,
  260. saveSysLanguageList
  261. } from "@/api/sysLanguage.js";
  262. var functionId = 'C10000005';
  263. export default {
  264. name: "com_finish_roll",
  265. data() {
  266. return {
  267. titleCon: '结束卷',
  268. showDefault: false,
  269. showExceptionFlag: false,
  270. showShiftFlag: false,
  271. showNumFlag:false,
  272. sfdcTimeList: [],
  273. preItemNo: 0,
  274. scheduleData: {
  275. site: this.$store.state.user.site,
  276. username: this.$store.state.user.name,
  277. seqNo: '',
  278. orderNo: '',
  279. itemNo: 0,
  280. partNo: '',
  281. workCenterNo: '',
  282. workCenterDesc: '',
  283. resourceDesc: '',
  284. rollNo: '',
  285. partDesc: '',
  286. planStartTime: '',
  287. planFinishTime: '',
  288. qtyRequiredOriginal: 0,
  289. reportedTime: this.dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'),
  290. scheduledDate: '',
  291. shiftNo: '',
  292. preItemDesc: '',
  293. nextItemDesc: '',
  294. nextItemNo: 0,
  295. operatorId: '',
  296. functionName: '',
  297. currentRollFlag: false
  298. },
  299. pageData: {
  300. site: this.$store.state.user.site,
  301. username: this.$store.state.user.name,
  302. orderNo: '',
  303. itemNo: 0,
  304. seqNo: '',
  305. rollNo: '',
  306. resourceId: '',
  307. scheduledDate: '',
  308. shiftNo: '',
  309. reportedTime: this.dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'),
  310. reportedFlag: 'N',
  311. approvedQty: 0,
  312. defectedQty: 0,
  313. totalQty: 0,
  314. editNewRollQty: 0,
  315. otherRollQty: '',
  316. shiftDesc: '',
  317. totalSetupTime: 0,
  318. totalDowntimeTimeSetup: 0,
  319. totalPureSetupTime: 0,
  320. totalProdTime: 0,
  321. totalDowntimeTimeProd: 0,
  322. totalPureProdTime: 0,
  323. totalManufactureTime: 0,
  324. totalManufactureDowntimeTime: 0,
  325. totalPureManufactureTime: 0,
  326. sfdcProdTime: 0,//生产时间
  327. sfdcSetupTime: 0,//调机时间
  328. sfdcManufactureTime: 0,//制造时间
  329. sfdcSetupDownTime: 0,//调机停机时间
  330. sfdcProdSetupTime: 0,//生产调机时间
  331. sfdcDownTime: 0,//停机时间
  332. eventTime: '',
  333. tillTime: '',
  334. sfdcApprovedQty: 0,
  335. sfdcDefectedQty: 0,
  336. sfdcReportedQty: 0,
  337. remark: '',
  338. exceptionFlag: 'N',
  339. exceptionReason: '',
  340. operatorId: '',
  341. operatorName: '',
  342. createNewRollFlag: 'N',
  343. },
  344. operatorData: {
  345. site: this.$store.state.user.site,
  346. username: this.$store.state.user.name,
  347. operatorId: '',
  348. operatorName: '',
  349. status: '',
  350. seqNo: '',
  351. showFlag: false
  352. },
  353. sfdcMaterialList: [],
  354. columnMaterialArray: [
  355. {
  356. userId: this.$store.state.user.name,
  357. functionId: 5303,
  358. serialNumber: '5303MaterialReportDate',
  359. tableId: "5303Material",
  360. tableName: "派工单材料",
  361. columnProp: "reportDate",
  362. headerAlign: "center",
  363. align: "center",
  364. columnLabel: "报告时间",
  365. columnWidth: 125,
  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: '5303MaterialReportedBy',
  377. tableId: "5303Material",
  378. tableName: "派工单材料",
  379. columnProp: "reportedBy",
  380. headerAlign: "center",
  381. align: "center",
  382. columnLabel: "报告人",
  383. columnWidth: 80,
  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: '5303MaterialRmRollNo',
  395. tableId: "5303Material",
  396. tableName: "派工单材料",
  397. columnProp: "rmRollNo",
  398. headerAlign: "center",
  399. align: "center",
  400. columnLabel: "材料卷号",
  401. columnWidth: 100,
  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: '5303MaterialPartNo',
  413. tableId: "5303Material",
  414. tableName: "派工单材料",
  415. columnProp: "partNo",
  416. headerAlign: "center",
  417. align: "center",
  418. columnLabel: "零部件编码",
  419. columnWidth: 100,
  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: '5303MaterialStartDate',
  431. tableId: "5303Material",
  432. tableName: "派工单材料",
  433. columnProp: "startDate",
  434. headerAlign: "center",
  435. align: "center",
  436. columnLabel: "开始使用时间",
  437. columnWidth: 125,
  438. columnHidden: false,
  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: '5303MaterialTransQty',
  449. tableId: "5303Material",
  450. tableName: "派工单材料",
  451. columnProp: "transQty",
  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: '5303MaterialNetIssueQty',
  467. tableId: "5303Material",
  468. tableName: "派工单材料",
  469. columnProp: "netIssueQty",
  470. headerAlign: "center",
  471. align: "center",
  472. columnLabel: "本卷耗用数量",
  473. columnWidth: 100,
  474. columnHidden: true,
  475. columnImage: false,
  476. columnSortable: false,
  477. sortLv: 0,
  478. status: true,
  479. fixed: false
  480. },
  481. {
  482. userId: this.$store.state.user.name,
  483. functionId: 5303,
  484. serialNumber: '5303MaterialKeyRMFlag',
  485. tableId: "5303Material",
  486. tableName: "派工单材料",
  487. columnProp: "keyRMFlag",
  488. headerAlign: "center",
  489. align: "center",
  490. columnLabel: "是否主材",
  491. columnWidth: 80,
  492. columnHidden: false,
  493. columnImage: false,
  494. columnSortable: false,
  495. sortLv: 0,
  496. status: true,
  497. fixed: false
  498. },
  499. {
  500. userId: this.$store.state.user.name,
  501. functionId: 5303,
  502. serialNumber: '5303MaterialSAPBOMItemNo',
  503. tableId: "5303Material",
  504. tableName: "派工单材料",
  505. columnProp: "sAPBOMItemNo",
  506. headerAlign: "center",
  507. align: "center",
  508. columnLabel: "SAP BOM序号",
  509. columnWidth: 100,
  510. columnHidden: false,
  511. columnImage: false,
  512. columnSortable: false,
  513. sortLv: 0,
  514. status: true,
  515. fixed: false
  516. }
  517. ],
  518. buttonTags:{
  519. selectShiftFlag: true,
  520. finishRollFlag: true,
  521. },
  522. dataListLoading: false,
  523. buttons: {
  524. refreshButton: '刷新',
  525. finishRoll: '结束卷',
  526. closeButton: '关闭',
  527. },
  528. buttonList: [
  529. {
  530. functionId: functionId,
  531. languageValue: '刷新',
  532. objectId: 'refreshButton',
  533. objectType: 'button',
  534. tableId: '*'
  535. }, {
  536. functionId: functionId,
  537. languageValue: '结束卷',
  538. objectId: 'finishRoll',
  539. objectType: 'button',
  540. tableId: '*'
  541. }, {
  542. functionId: functionId,
  543. languageValue: '关闭',
  544. objectId: 'closeButton',
  545. objectType: 'button',
  546. tableId: '*'
  547. },
  548. ],
  549. queryButton: {
  550. functionId: functionId,
  551. table_id: '*',
  552. languageCode: this.$i18n.locale,
  553. objectType: 'button'
  554. },
  555. labels: {
  556. titleCon: '结束卷操作 ',
  557. seqNoName: '派工单号:',
  558. currentTime: '当前时间',
  559. rollQtySum: '卷数量统计',
  560. whetherReport: '是否报告产量',
  561. approvedQty: '总良品数量',
  562. defectedQty: '总不良品数量',
  563. totalQty: '总数量',
  564. otherRollQty: '其他卷数量',
  565. operatorScheduleInfo: '人员排程班次信息',
  566. operatorId: '操作员',
  567. operatorName: '操作员姓名',
  568. scheduledDate: '排产日期',
  569. shiftNo: '班次',
  570. rollTimeSum: '卷生产时间统计',
  571. totalTuningTime: '总调机时间',
  572. totalTuningDownTime: '总调机过程停机时间',
  573. totalPureTuningTime: '净调机时间',
  574. totalProdTime: '总生产时间',
  575. totalProdDownTime: '总生产过程停机时间',
  576. totalPureProdTime: '净生产时间',
  577. totalManufTime: '总制造时间',
  578. totalManufDownTime: '总制造过程停机时间 ',
  579. totalPureManufTime: '净制造时间:',
  580. produceReport: '产量报告',
  581. startTime: '开工时间',
  582. finishTime: '完工时间',
  583. prodTime: '生产时间',
  584. tuningTime: '调机时间',
  585. manufTime: '制造时间',
  586. sfdcApprovedQty: '合格数量',
  587. sfdcDefectedQty: '不合格数量',
  588. sfdcReportedQty: '报告数量',
  589. tuningDown: '调机停机',
  590. manufTuning: '生产调机',
  591. remark: '备注',
  592. downTime: '停机时间',
  593. primaryMaterial: '主材料 ',
  594. },
  595. labelsList: [
  596. {
  597. functionId: functionId,
  598. languageValue: '结束卷操作 ',
  599. objectId: 'titleCon',
  600. objectType: 'label',
  601. tableId: '*'
  602. }, {
  603. functionId: functionId,
  604. languageValue: '派工单号:',
  605. objectId: 'seqNoName',
  606. objectType: 'label',
  607. tableId: '*'
  608. }, {
  609. functionId: functionId,
  610. languageValue: '当前时间',
  611. objectId: 'currentTime',
  612. objectType: 'label',
  613. tableId: '*'
  614. }, {
  615. functionId: functionId,
  616. languageValue: '卷数量统计 ',
  617. objectId: 'rollQtySum',
  618. objectType: 'label',
  619. tableId: '*'
  620. }, {
  621. functionId: functionId,
  622. languageValue: '是否报告产量 ',
  623. objectId: 'whetherReport',
  624. objectType: 'label',
  625. tableId: '*'
  626. }, {
  627. functionId: functionId,
  628. languageValue: '总良品数量',
  629. objectId: 'approvedQty',
  630. objectType: 'label',
  631. tableId: '*'
  632. }, {
  633. functionId: functionId,
  634. languageValue: '总不良品数量',
  635. objectId: 'defectedQty',
  636. objectType: 'label',
  637. tableId: '*'
  638. }, {
  639. functionId: functionId,
  640. languageValue: '总数量',
  641. objectId: 'totalQty',
  642. objectType: 'label',
  643. tableId: '*'
  644. }, {
  645. functionId: functionId,
  646. languageValue: '其他卷数量',
  647. objectId: 'otherRollQty',
  648. objectType: 'label',
  649. tableId: '*'
  650. }, {
  651. functionId: functionId,
  652. languageValue: '人员排程班次信息',
  653. objectId: 'operatorScheduleInfo',
  654. objectType: 'label',
  655. tableId: '*'
  656. }, {
  657. functionId: functionId,
  658. languageValue: '操作员',
  659. objectId: 'operatorId',
  660. objectType: 'label',
  661. tableId: '*'
  662. }, {
  663. functionId: functionId,
  664. languageValue: '操作员姓名',
  665. objectId: 'operatorName',
  666. objectType: 'label',
  667. tableId: '*'
  668. }, {
  669. functionId: functionId,
  670. languageValue: '排产日期',
  671. objectId: 'scheduledDate',
  672. objectType: 'label',
  673. tableId: '*'
  674. }, {
  675. functionId: functionId,
  676. languageValue: '班次',
  677. objectId: 'shiftNo',
  678. objectType: 'label',
  679. tableId: '*'
  680. }, {
  681. functionId: functionId,
  682. languageValue: '卷生产时间统计',
  683. objectId: 'rollTimeSum',
  684. objectType: 'label',
  685. tableId: '*'
  686. }, {
  687. functionId: functionId,
  688. languageValue: '总调机时间',
  689. objectId: 'totalTuningTime',
  690. objectType: 'label',
  691. tableId: '*'
  692. }, {
  693. functionId: functionId,
  694. languageValue: '总调机过程停机时间',
  695. objectId: 'totalTuningDownTime',
  696. objectType: 'label',
  697. tableId: '*'
  698. }, {
  699. functionId: functionId,
  700. languageValue: '净调机时间',
  701. objectId: 'totalPureTuningTime',
  702. objectType: 'label',
  703. tableId: '*'
  704. }, {
  705. functionId: functionId,
  706. languageValue: '总生产时间',
  707. objectId: 'totalProdTime',
  708. objectType: 'label',
  709. tableId: '*'
  710. }, {
  711. functionId: functionId,
  712. languageValue: '总生产过程停机时间',
  713. objectId: 'totalProdDownTime',
  714. objectType: 'label',
  715. tableId: '*'
  716. }, {
  717. functionId: functionId,
  718. languageValue: '净生产时间',
  719. objectId: 'totalPureProdTime',
  720. objectType: 'label',
  721. tableId: '*'
  722. }, {
  723. functionId: functionId,
  724. languageValue: '总制造时间',
  725. objectId: 'totalManufTime',
  726. objectType: 'label',
  727. tableId: '*'
  728. }, {
  729. functionId: functionId,
  730. languageValue: '总制造过程停机时间',
  731. objectId: 'totalManufDownTime',
  732. objectType: 'label',
  733. tableId: '*'
  734. }, {
  735. functionId: functionId,
  736. languageValue: '净制造时间',
  737. objectId: 'totalPureManufTime',
  738. objectType: 'label',
  739. tableId: '*'
  740. }, {
  741. functionId: functionId,
  742. languageValue: '产量报告',
  743. objectId: 'roduceReport',
  744. objectType: 'label',
  745. tableId: '*'
  746. }, {
  747. functionId: functionId,
  748. languageValue: '开工时间 ',
  749. objectId: 'startTime',
  750. objectType: 'label',
  751. tableId: '*'
  752. }, {
  753. functionId: functionId,
  754. languageValue: '完工时间:',
  755. objectId: 'finishTime',
  756. objectType: 'label',
  757. tableId: '*'
  758. }, {
  759. functionId: functionId,
  760. languageValue: '生产时间',
  761. objectId: 'prodTime',
  762. objectType: 'label',
  763. tableId: '*'
  764. }, {
  765. functionId: functionId,
  766. languageValue: '调机时间',
  767. objectId: 'tuningTime',
  768. objectType: 'label',
  769. tableId: '*'
  770. }, {
  771. functionId: functionId,
  772. languageValue: '制造时间',
  773. objectId: 'manufTime',
  774. objectType: 'label',
  775. tableId: '*'
  776. }, {
  777. functionId: functionId,
  778. languageValue: '合格数量',
  779. objectId: 'sfdcApprovedQty',
  780. objectType: 'label',
  781. tableId: '*'
  782. }, {
  783. functionId: functionId,
  784. languageValue: '不合格数量',
  785. objectId: 'sfdcDefectedQty',
  786. objectType: 'label',
  787. tableId: '*'
  788. }, {
  789. functionId: functionId,
  790. languageValue: '报告数量',
  791. objectId: 'sfdcReportedQty',
  792. objectType: 'label',
  793. tableId: '*'
  794. }, {
  795. functionId: functionId,
  796. languageValue: '调机停机',
  797. objectId: 'tuningDown',
  798. objectType: 'label',
  799. tableId: '*'
  800. }, {
  801. functionId: functionId,
  802. languageValue: '生产调机 ',
  803. objectId: 'manufTuning',
  804. objectType: 'label',
  805. tableId: '*'
  806. }, {
  807. functionId: functionId,
  808. languageValue: '备注',
  809. objectId: 'remark',
  810. objectType: 'label',
  811. tableId: '*'
  812. }, {
  813. functionId: functionId,
  814. languageValue: '停机时间',
  815. objectId: 'downTime',
  816. objectType: 'label',
  817. tableId: '*'
  818. }, {
  819. functionId: functionId,
  820. languageValue: '主材料',
  821. objectId: 'primaryMaterial',
  822. objectType: 'label',
  823. tableId: '*'
  824. },
  825. ],
  826. queryLabel: {
  827. functionId: functionId,
  828. table_id: '*',
  829. languageCode: this.$i18n.locale,
  830. objectType: 'label'
  831. },
  832. }
  833. },
  834. components: {
  835. comExceptionReason,/*异常原因的组件*/
  836. comSelectShift,/*班次选择的组件*/
  837. },
  838. methods: {
  839. sORoutingPreviousOperationItemNo(){
  840. getSORoutingPreviousOperationItemNo( this.pageData).then(({data})=>{
  841. if (data.code==0){
  842. if (data.itemNo>0){
  843. this.showNumFlag = true
  844. }else {
  845. this.showNumFlag = false
  846. }
  847. }
  848. })
  849. },
  850. /*初始化页面参数*/
  851. init(scheduleData, operatorData) {
  852. //初始化参数
  853. this.scheduleData = scheduleData;
  854. //初始化参数
  855. this.pageData.orderNo = scheduleData.orderNo;
  856. this.pageData.itemNo = scheduleData.itemNo;
  857. this.pageData.seqNo = scheduleData.seqNo;
  858. this.pageData.rollNo = scheduleData.rollNo;
  859. this.pageData.scheduledDate = scheduleData.scheduledDate;
  860. this.pageData.shiftNo = scheduleData.shiftNo;
  861. this.pageData.resourceId = scheduleData.resourceId;
  862. this.pageData.operatorId = operatorData.operatorId;
  863. this.pageData.operatorName = operatorData.operatorName;
  864. this.preItemNo = scheduleData.preItemNo
  865. //this.scheduleData.reportedTime = this.dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss');
  866. //重置时间
  867. this.pageData.reportedTime = this.dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss');
  868. //初始化操作员对象
  869. this.operatorData = JSON.parse(JSON.stringify(operatorData));
  870. //初始化标题
  871. this.titleCon = this.labels.titleCon+this.labels.seqNoName+scheduleData.seqNo;
  872. //处理异常的原因
  873. this.pageData.exceptionFlag = 'N';
  874. this.pageData.exceptionReason = '';
  875. //刷新当前派工单的信息
  876. this.refreshPageData();
  877. },
  878. /*关闭modal*/
  879. closeDialog(){
  880. //刷新报工的页面
  881. this.$emit('refreshPageData');
  882. //关闭当前的页面
  883. this.$emit('update:visible', false);
  884. },
  885. /*生产过程的停机组件*/
  886. exceptionReasonModal() {
  887. //1.首先调用菜单判断方式 打开生产过程的停机的页面
  888. //checkProduceButton('produceDownFlag');
  889. //打开生产过程的工具的页面
  890. this.$nextTick(() => {
  891. this.show = true;
  892. this.$refs.comProduceDown.init(this.scheduleData, this.operatorData)
  893. });
  894. },
  895. /*刷新当前的页面参数*/
  896. async refreshPageData(){
  897. //首先关闭报工按钮
  898. this.buttonTags.finishRollFlag = true;
  899. //1.刷新当前卷的报工数据
  900. await getCurrentRollReportedQty(this.scheduleData).then(({data}) => {
  901. this.pageData.approvedQty = data.row.approvedQty;
  902. this.pageData.defectedQty = data.row.defectedQty;
  903. this.pageData.totalQty = data.row.totalQty;
  904. this.pageData.otherRollQty = data.row.otherRollQty;
  905. })
  906. //2.刷新当前卷的时间信息
  907. await countSfdcTimeQty(this.scheduleData).then(({data}) => {
  908. this.pageData.totalSetupTime = data.row.totalSetupTime;
  909. this.pageData.totalDowntimeTimeSetup = data.row.totalDowntimeTimeSetup;
  910. this.pageData.totalPureSetupTime = data.row.totalPureSetupTime;
  911. this.pageData.totalProdTime = data.row.totalProdTime;
  912. this.pageData.totalDowntimeTimeProd = data.row.totalDowntimeTimeProd;
  913. this.pageData.totalPureProdTime = data.row.totalPureProdTime;
  914. this.pageData.totalManufactureTime = data.row.totalManufactureTime.toFixed(2);
  915. this.pageData.totalManufactureDowntimeTime = data.row.totalManufactureDowntimeTime;
  916. this.pageData.totalPureManufactureTime = data.row.totalPureManufactureTime.toFixed(2);
  917. //先预设一些参数 后期方法再计算
  918. //生产时间=总生产时间
  919. this.pageData.sfdcProdTime = this.pageData.totalProdTime;
  920. //调机时间=总调机时间
  921. this.pageData.sfdcSetupTime = this.pageData.totalSetupTime;
  922. //制造时间=总制造时间
  923. this.pageData.sfdcManufactureTime = this.pageData.totalManufactureTime;
  924. //调机停机=总调机过程停机时间
  925. this.pageData.sfdcSetupDownTime = this.pageData.totalDowntimeTimeSetup;
  926. //生产调机=总生产过程停机时间
  927. this.pageData.sfdcProdSetupTime = this.pageData.totalDowntimeTimeProd;
  928. //停机时间=总制造过程停机时间
  929. this.pageData.sfdcDownTime = this.pageData.totalManufactureDowntimeTime;
  930. });
  931. //3.刷新派工单的班次信息
  932. await getScheduleShiftData(this.pageData).then(({data}) => {
  933. let specialAuth = 'N';
  934. //区分是否存在班次
  935. if(data.code == 500){
  936. this.pageData.shiftDesc = '无班次';//重置班次
  937. this.pageData.scheduledDate = '';//重置排产日期
  938. this.pageData.shiftNo = '';
  939. }else{
  940. this.pageData.shiftDesc = data.row.shiftDesc;//重置班次
  941. this.pageData.scheduledDate = data.row.scheduledDate.substring(0, 10);//重置排产日期
  942. this.pageData.shiftNo = data.row.shiftNo;
  943. //设置结果
  944. specialAuth = data.row.specialAuth;
  945. }
  946. //根据不同设置不同的属性
  947. if("Y" === specialAuth){
  948. this.buttonTags.selectShiftFlag = false;
  949. }else{
  950. this.buttonTags.selectShiftFlag = true;
  951. }
  952. });
  953. //4.刷新当前卷的最早和最晚时间
  954. await getSfdcTimeMaxAndMinTime(this.scheduleData).then(({data}) => {
  955. this.pageData.eventTime = data.row.eventTime;
  956. this.pageData.tillTime = data.row.tillTime;
  957. });
  958. //5.刷新当前卷的Sfdc表的时间
  959. await getSfdcTimeData(this.scheduleData).then(({data}) => {
  960. //先判断是否成功查询
  961. if(data.resultCode == 200){
  962. //判断是否操作成功
  963. this.pageData.eventTime = data.row.finishTime;
  964. this.pageData.sfdcProdTime = data.row.sfdcProdTime;
  965. this.pageData.sfdcSetupTime = data.row.sfdcSetupTime;
  966. this.pageData.sfdcManufactureTime = data.row.sfdcManufactureTime;
  967. this.pageData.sfdcDownTime = data.row.sfdcDownTime;
  968. this.pageData.sfdcSetupDownTime = data.row.sfdcSetupDownTime;
  969. this.pageData.sfdcProdSetupTime = data.row.sfdcProdSetupTime;
  970. }else{
  971. //暂时不处理数据
  972. }
  973. });
  974. //6.刷新当前卷的报工数据
  975. await getSfdcReportedData(this.scheduleData).then(({data}) => {
  976. this.pageData.sfdcApprovedQty = this.pageData.approvedQty - data.row.approveQty;
  977. this.pageData.sfdcDefectedQty = this.pageData.defectedQty - data.row.defectQty;
  978. this.pageData.sfdcReportedQty = this.pageData.sfdcApprovedQty + this.pageData.sfdcDefectedQty;
  979. });
  980. //刷新当前卷的时间数据
  981. await getSfdcMaterialByRollNo(this.scheduleData).then(({data}) => {
  982. this.sfdcMaterialList = data.rows;
  983. //只有数据全部刷新后 才可以报工
  984. setTimeout(()=>{
  985. this.buttonTags.finishRollFlag = false;
  986. }, 1000);
  987. });
  988. },
  989. /*刷新当前卷的报工数据汇总*/
  990. refreshCurrentRollReportedQty(){
  991. getCurrentRollReportedQty(this.scheduleData).then(({data}) => {
  992. this.pageData.approvedQty = data.row.approvedQty;
  993. this.pageData.defectedQty = data.row.defectedQty;
  994. this.pageData.totalQty = data.row.totalQty;
  995. this.pageData.otherRollQty = data.row.otherRollQty;
  996. })
  997. },
  998. //刷新当前卷的时间信息
  999. refreshCurrentRollTimeQty(){
  1000. countSfdcTimeQty(this.scheduleData).then(({data}) => {
  1001. this.pageData.totalSetupTime = data.row.totalSetupTime;
  1002. this.pageData.totalDowntimeTimeSetup = data.row.totalDowntimeTimeSetup;
  1003. this.pageData.totalPureSetupTime = data.row.totalPureSetupTime;
  1004. this.pageData.totalProdTime = data.row.totalProdTime;
  1005. this.pageData.totalDowntimeTimeProd = data.row.totalDowntimeTimeProd;
  1006. this.pageData.totalPureProdTime = data.row.totalPureProdTime;
  1007. this.pageData.totalManufactureTime = data.row.totalManufactureTime;
  1008. this.pageData.totalManufactureDowntimeTime = data.row.totalManufactureDowntimeTime;
  1009. this.pageData.totalPureManufactureTime = data.row.totalPureManufactureTime;
  1010. });
  1011. },
  1012. //刷新派工单的班次信息
  1013. refreshScheduleShiftData(){
  1014. getScheduleShiftData(this.scheduleData).then(({data}) => {
  1015. //区分是否存在班次
  1016. if(data.code == 500){
  1017. this.pageData.shiftDesc = data.row.shiftDesc;//重置班次
  1018. this.pageData.scheduledDate = '';//重置排产日期
  1019. this.pageData.shiftNo = '';
  1020. }else{
  1021. this.pageData.shiftDesc = data.row.shiftDesc;//重置班次
  1022. this.pageData.scheduledDate = data.row.scheduledDate.substring(0, 10);//重置排产日期
  1023. this.pageData.shiftNo = data.row.shiftNo;
  1024. }
  1025. });
  1026. },
  1027. //刷新当前卷的时间信息
  1028. refreshCurrentRollMaxAndMinTime(){
  1029. getSfdcTimeMaxAndMinTime(this.scheduleData).then(({data}) => {
  1030. this.pageData.eventTime = data.row.eventTime;
  1031. this.pageData.tillTime = data.row.tillTime;
  1032. });
  1033. },
  1034. //刷新当前卷的Sfdc的信息
  1035. refreshSfdcTimeData(){
  1036. getSfdcTimeData(this.scheduleData).then(({data}) => {
  1037. //判断是否操作成功
  1038. this.pageData.eventTime = data.row.finishTime;
  1039. this.pageData.sfdcProdTime = data.row.sfdcProdTime;
  1040. this.pageData.sfdcSetupTime = data.row.sfdcSetupTime;
  1041. this.pageData.sfdcManufactureTime = data.row.sfdcManufactureTime;
  1042. this.pageData.sfdcDownTime = data.row.sfdcDownTime;
  1043. this.pageData.sfdcSetupDownTime = data.row.sfdcSetupDownTime;
  1044. this.pageData.sfdcProdSetupTime = data.row.sfdcProdSetupTime;
  1045. });
  1046. },
  1047. //刷新当前卷的报工数据
  1048. refreshSfdcData(){
  1049. getSfdcReportedData(this.scheduleData).then(({data}) => {
  1050. this.pageData.sfdcApprovedQty = this.pageData.approvedQty - data.row.approveQty;
  1051. this.pageData.sfdcDefectedQty = this.pageData.defectedQty - data.row.defectQty;
  1052. this.pageData.sfdcReportedQty = this.pageData.sfdcApprovedQty + this.pageData.sfdcDefectedQty;
  1053. });
  1054. },
  1055. //刷新当前卷的时间数据
  1056. refreshSfdcMaterialTable(){
  1057. getSfdcMaterialByRollNo(this.scheduleData).then(({data}) => {
  1058. this.sfdcMaterialList = data.rows;
  1059. });
  1060. },
  1061. /*检查数据是否有效*/
  1062. checkValidQty(row){
  1063. //判断当前是否为空
  1064. if(row.netIssueQty == ''){
  1065. this.$message.error('材料上本卷耗用数量不能为空!');
  1066. row.netIssueQty = 0;//重新赋值
  1067. return false;
  1068. }
  1069. //判断当前是否有效
  1070. if(row.netIssueQty <= 0){
  1071. this.$message.error('材料耗用数量必须大于0!');
  1072. return false;
  1073. }
  1074. //判断是否超限
  1075. if(row.netIssueQty > row.transQty){
  1076. this.$message.error('材料耗用数量大于发料数量!');
  1077. row.netIssueQty = 0;//重新赋值
  1078. return false;
  1079. }
  1080. },
  1081. /*添加定制的css类*/
  1082. customerCellClassName({row, column, rowIndex, columnIndex}) {
  1083. if(column.property == 'netIssueQty'){
  1084. return 'customer-number-cell';
  1085. }
  1086. },
  1087. /*添加定制的cess样式*/
  1088. customerCellStyle({row, column, rowIndex, columnIndex}) {
  1089. if(column.property == 'netIssueQty'){
  1090. return 'padding: 0px 0px;';
  1091. }
  1092. },
  1093. /*检验良品的总数量*/
  1094. checkValidApprovedQty(){
  1095. //调用刷新的方法
  1096. this.refreshSfdcData();
  1097. this.pageData.totalQty = parseFloat(this.pageData.approvedQty) + parseFloat(this.pageData.defectedQty);
  1098. },
  1099. /*结束当前的操作*/
  1100. finishRollBun(){
  1101. //首先判断数值是否通过判断
  1102. let approvedQty = this.pageData.approvedQty;
  1103. if(approvedQty == null || approvedQty == ''){
  1104. //this.$message.error('请输入良品总数量!');
  1105. this.pageData.approvedQty = 0;//重新赋值
  1106. approvedQty = 0;
  1107. //return false;
  1108. }
  1109. if(approvedQty < 0){
  1110. this.$message.error('良品总数量必须大于等于0!');
  1111. this.pageData.approvedQty = 0;//重新赋值
  1112. return false;
  1113. }
  1114. //班次判断
  1115. if(this.pageData.shiftDesc == '无班次'){
  1116. this.$message.error('该时间段内没有匹配的班次信息,请联系相关人员!!');
  1117. return false;
  1118. }
  1119. //验证通过提交到后台
  1120. let postData = {'pageData': JSON.stringify(this.pageData), 'materialList': JSON.stringify(this.sfdcMaterialList)};
  1121. //先调用检查方法
  1122. checkFinishRollWithNoFqc(postData).then(({data}) => {
  1123. //判断是否成功
  1124. if(data.code == 500){
  1125. this.$message.error(data.msg);
  1126. }else if (data.resultMap.resultCode == '201'){
  1127. //打开异常原因录入的界面
  1128. this.$confirm(data.resultMap.resultMsg, '提示', {
  1129. confirmButtonText: '确认',
  1130. celButtonText: '取消',
  1131. type: 'warning'
  1132. }).then(() => {
  1133. this.showExceptionReasonModal();
  1134. });
  1135. }else{
  1136. //执行结束卷操作
  1137. this.finishRollOperation();
  1138. }
  1139. });
  1140. },
  1141. /*结束卷的具体操作*/
  1142. finishRollOperation(){
  1143. //验证通过提交到后台
  1144. let postData = {'pageData': JSON.stringify(this.pageData), 'materialList': JSON.stringify(this.sfdcMaterialList)};
  1145. //处理信息
  1146. finishRollWithNoFqc(postData).then(({data}) => {
  1147. //判断操作是否成功
  1148. if(data.code == 500){
  1149. this.$message.error(data.msg);
  1150. }else{
  1151. //判断是否打印卷标签
  1152. if(data.rollNo != ''){
  1153. //需要打印标签
  1154. let printRow = {site: this.pageData.site, orderNo: this.pageData.orderNo,
  1155. rollNo: data.rollNo};
  1156. this.printSfdcFlowLabel(printRow);
  1157. //延时一秒关闭 --预防没有出标签
  1158. setTimeout(() => {
  1159. this.closeDialog();
  1160. }, 1000);
  1161. }else{
  1162. //关闭当前的页面
  1163. this.closeDialog();
  1164. }
  1165. }
  1166. })
  1167. },
  1168. /*打开异常原因录入页面*/
  1169. showExceptionReasonModal(){
  1170. //1.首先调用菜单判断方式 打开生产过程的材料的页面
  1171. //checkProduceButton('produceMaterialFlag');
  1172. //打开生产过程的工具的页面
  1173. this.$nextTick(() => {
  1174. this.showExceptionFlag = true;
  1175. this.$refs.comExceptionReason.init();
  1176. });
  1177. },
  1178. /*处理异常的原因*/
  1179. initExceptionReason(exceptionReason){
  1180. //处理异常的原因
  1181. this.pageData.exceptionFlag = 'Y';
  1182. this.pageData.exceptionReason = exceptionReason;
  1183. //然后提交结束卷的数据
  1184. this.finishRollOperation();
  1185. },
  1186. /*打开班次选择页面*/
  1187. selectSchduleShiftModal(){
  1188. //1.首先调用菜单判断方式 打开生产过程的材料的页面
  1189. //checkProduceButton('produceMaterialFlag');
  1190. //打开生产过程的工具的页面
  1191. this.$nextTick(() => {
  1192. this.showShiftFlag = true;
  1193. this.$refs.comSelectShift.init(this.pageData);
  1194. });
  1195. },
  1196. /*修改页面的班次和排产的时间*/
  1197. initScheduleShift(scheduleDate, shiftDesc, username){
  1198. //重置班次和排产的时间
  1199. this.pageData.scheduledDate = scheduleDate.substring(0, 10);
  1200. this.pageData.shiftDesc = shiftDesc;
  1201. this.pageData.shiftNo = shiftDesc;
  1202. this.pageData.remark = username+"更改了班次."
  1203. },
  1204. /*打印流转标签*/
  1205. printSfdcFlowLabel(sfdcRow){
  1206. //先查询打印的卷信息
  1207. getSfdcFlowLabelData(sfdcRow).then(({data}) => {
  1208. //开始打印标签
  1209. if(data.code === 200){
  1210. let printList = data.printList;
  1211. printSfdcLabel(printList);
  1212. }else{
  1213. this.$message.error(data.msg);
  1214. }
  1215. });
  1216. },
  1217. /// 保存 默认配置 列
  1218. async saveMultiLanguage() {
  1219. // 保存页面 button label title 属性
  1220. let buttons = this.buttonList;
  1221. let labels = this.labelsList;
  1222. await saveButtonList(buttons)
  1223. await saveButtonList(labels)
  1224. this.getMultiLanguageList()
  1225. },
  1226. getMultiLanguageList() {
  1227. //首先查询当前按钮的多语言
  1228. searchFunctionButtonList(this.queryButton).then(({data}) => {
  1229. if (JSON.stringify(data.data) != '{}') {
  1230. this.buttons = data.data
  1231. } else {
  1232. // saveButtonList(this.buttonList).then(({data}) => {
  1233. // })
  1234. }
  1235. });
  1236. //其次查询当前标签的多语言
  1237. searchFunctionButtonList(this.queryLabel).then(({data}) => {
  1238. if (JSON.stringify(data.data) != '{}') {
  1239. this.labels = data.data
  1240. } else {
  1241. // saveButtonList(this.buttonList).then(({data}) => {
  1242. // })
  1243. }
  1244. });
  1245. },
  1246. },
  1247. created() {
  1248. // this.factoryList()
  1249. // this.getLanguageList()
  1250. this.getMultiLanguageList()//刷新按钮
  1251. }
  1252. }
  1253. </script>
  1254. <style scoped lang="scss">
  1255. /*调节页面button和input的上下间距*/
  1256. .customer-css .customer-button{
  1257. margin-top: 25px;
  1258. }
  1259. /*调节样式*/
  1260. .customer-item{
  1261. margin-top: -10px;
  1262. }
  1263. /*fieldset下table的样式*/
  1264. .customer-fieldset /deep/ .el-table__header th.is-leaf{
  1265. line-height: 16px;
  1266. }
  1267. /deep/ .customer-tab .el-tabs__content{
  1268. padding: 0px !important;
  1269. }
  1270. /*table中input*/
  1271. div.table-input /deep/ input.el-input__inner{
  1272. text-align: right;
  1273. }
  1274. /*当前按钮的通用样式*/
  1275. .customer-css .customer-bun-mid{
  1276. width: 65px;
  1277. text-align: center;
  1278. }
  1279. .customer-css .customer-bun-min{
  1280. width: 50px;
  1281. text-align: center;
  1282. }
  1283. .customer-css .customer-bun-max{
  1284. width: 80px;
  1285. text-align: center;
  1286. }
  1287. /*当前按钮的通用样式*/
  1288. .customer-css .el-button--medium {
  1289. padding: 5px 5px;
  1290. }
  1291. /*统一的input内容颜色样式*/
  1292. .customer-input-color-red /deep/ .el-input__inner {
  1293. color: red;
  1294. }
  1295. </style>