info.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. <template>
  2. <div class="app-container" v-if="open">
  3. <el-card class="box-card">
  4. <el-descriptions title="铜管基本信息" :column="3" border>
  5. <el-descriptions-item label="追溯编号">{{ retroactiveInfo.retroactiveId }}</el-descriptions-item>
  6. <el-descriptions-item label="产线">{{ retroactiveInfo.productionLine }}</el-descriptions-item>
  7. <el-descriptions-item label="批次号">{{ retroactiveInfo.batchNo }}</el-descriptions-item>
  8. <el-descriptions-item label="重量(KG)">{{ retroactiveInfo.weight }}</el-descriptions-item>
  9. <el-descriptions-item label="生产状态">
  10. <template>
  11. <dict-tag :options="dict.type.process" :value="retroactiveInfo.status"/>
  12. </template>
  13. </el-descriptions-item>
  14. </el-descriptions>
  15. </el-card>
  16. <el-steps style="margin:20px 0 0 30px" direction="vertical" :active="retroactiveInfo.status">
  17. <el-step title="称重工序">
  18. <template slot="description">
  19. <el-descriptions :column="2" border style="margin:10px 0 10px 0">
  20. <el-descriptions-item label="称重完成时间">{{
  21. this.retroactiveHisttoyrMap['1'][0].createTime
  22. }}
  23. </el-descriptions-item>
  24. <el-descriptions-item v-if="retroactiveInfo.status>1 && retroactiveHisttoyrMap['2'] !=null" label="至下个工序完成经历时间">
  25. <span style="color: #3A71A8"
  26. v-text="parseTimeInterval(this.retroactiveHisttoyrMap['1'][0].createTime,this.retroactiveHisttoyrMap['2'][0].createTime)"/>
  27. </el-descriptions-item>
  28. <el-descriptions-item label="备注">{{
  29. this.retroactiveHisttoyrMap['1'][0].remark
  30. }}
  31. </el-descriptions-item>
  32. </el-descriptions>
  33. </template>
  34. </el-step>
  35. <el-step title="倒角工序">
  36. <template slot="description">
  37. <el-descriptions v-if="retroactiveHisttoyrMap['2']" :column="2" border style="margin:10px 0 10px 0">
  38. <el-descriptions-item label="倒角完成时间">
  39. {{this.retroactiveHisttoyrMap['2'][0].createTime }}
  40. </el-descriptions-item>
  41. <el-descriptions-item v-if="retroactiveInfo.status>2 && retroactiveHisttoyrMap['3'] !=null" label="至下个工序完成经历时间">
  42. <span style="color: #3A71A8"
  43. v-text="parseTimeInterval(this.retroactiveHisttoyrMap['2'][0].createTime,this.retroactiveHisttoyrMap['3'][0].createTime)"/>
  44. </el-descriptions-item>
  45. <el-descriptions-item label="备注">{{
  46. this.retroactiveHisttoyrMap['2'][0].remark
  47. }}
  48. </el-descriptions-item>
  49. </el-descriptions>
  50. </template>
  51. </el-step>
  52. <el-step title="铣面工序">
  53. <template slot="description">
  54. <el-descriptions v-if="retroactiveHisttoyrMap['3']" :column="3" border style="margin:10px 0 10px 0">
  55. <el-descriptions-item label="铣面完成时间">
  56. {{ this.retroactiveHisttoyrMap['3'][0].createTime }}
  57. </el-descriptions-item>
  58. <el-descriptions-item v-if="retroactiveInfo.status>3 && retroactiveHisttoyrMap['4'] !=null" label="至下个工序完成经历时间">
  59. <span style="color: #3A71A8"
  60. v-text="parseTimeInterval(this.retroactiveHisttoyrMap['3'][0].createTime,this.retroactiveHisttoyrMap['4'][0].createTime)"/>
  61. </el-descriptions-item>
  62. <el-descriptions-item label="备注">{{
  63. this.retroactiveHisttoyrMap['3'][0].remark
  64. }}
  65. </el-descriptions-item>
  66. </el-descriptions>
  67. </template>
  68. </el-step>
  69. <el-step title="轧制工序">
  70. <template slot="description">
  71. <el-descriptions v-if="retroactiveHisttoyrMap['4']" :column="2" border style="margin:10px 0 10px 0">
  72. <el-descriptions-item label="轧制完成时间">
  73. {{ this.retroactiveHisttoyrMap['4'][0].createTime }}
  74. </el-descriptions-item>
  75. <el-descriptions-item v-if="retroactiveInfo.status>4 && retroactiveHisttoyrMap['5'] !=null" label="至下个工序完成经历时间">
  76. <span style="color: #3A71A8"
  77. v-text="parseTimeInterval(this.retroactiveHisttoyrMap['4'][0].createTime,this.retroactiveHisttoyrMap['5'][0].createTime)"/>
  78. </el-descriptions-item>
  79. <el-descriptions-item label="备注">{{
  80. this.retroactiveHisttoyrMap['4'][0].remark
  81. }}
  82. </el-descriptions-item>
  83. </el-descriptions>
  84. </template>
  85. </el-step>
  86. <el-step title="大散盘工序">
  87. <template slot="description" >
  88. <el-table :data="retroactiveHisttoyrMap['5']" v-if="retroactiveHisttoyrMap['5']">
  89. <el-table-column label="序号" type="index" align="center"/>
  90. <el-table-column label="读码设备" prop="deviceId" :show-overflow-tooltip="true" align="center"/>
  91. <el-table-column label="大散盘产出设备编号" prop="sanPanDevice" :show-overflow-tooltip="true" align="center"/>
  92. <el-table-column label="托盘号" prop="lotNo" :show-overflow-tooltip="true" align="center"/>
  93. <el-table-column label="大散下料时间" prop="createTime" :show-overflow-tooltip="true" align="center"/>
  94. <el-table-column label="至下个工序完成经历时间" align="center" prop="createTime">
  95. <template slot-scope="scope">
  96. <span style="color: #3A71A8"
  97. v-text="parseTimeInterval(scope.row.createTime,getNextTime(retroactiveHisttoyrMap['6'],scope.row.lotNo))"/>
  98. </template>
  99. </el-table-column>
  100. <el-table-column label="备注" prop="remark" :show-overflow-tooltip="true" align="center"/>
  101. </el-table>
  102. </template>
  103. </el-step>
  104. <el-step title="退货工序">
  105. <template slot="description">
  106. <el-table :data="retroactiveHisttoyrMap['6']" v-if="retroactiveHisttoyrMap['6']">
  107. <el-table-column label="序号" type="index" align="center"/>
  108. <el-table-column label="托盘号" prop="lotNo" :show-overflow-tooltip="true" align="center"/>
  109. <el-table-column label="机组号" prop="uniuCode" :show-overflow-tooltip="true" align="center"/>
  110. <el-table-column label="料架号" prop="shelfNumber" :show-overflow-tooltip="true" align="center"/>
  111. <el-table-column label="料架列" prop="shelfNumber" :show-overflow-tooltip="true" align="center"/>
  112. <el-table-column label="料架层" prop="numberOfLayers" :show-overflow-tooltip="true" align="center"/>
  113. <el-table-column label="退火上料时间" prop="createTime" :show-overflow-tooltip="true" align="center"/>
  114. <el-table-column label="至下个工序完成经历时间" align="center" prop="createTime">
  115. <template slot-scope="scope">
  116. <span style="color: #3A71A8"
  117. v-text="parseTimeInterval(scope.row.createTime,getNextTime(retroactiveHisttoyrMap['7'],scope.row.lotNo))"/>
  118. </template>
  119. </el-table-column>
  120. <el-table-column label="备注" prop="remark" :show-overflow-tooltip="true" align="center"/>
  121. </el-table>
  122. </template>
  123. </el-step>
  124. <el-step title="生产完成">
  125. <template slot="description">
  126. <el-table :data="retroactiveHisttoyrMap['7']" v-if="retroactiveHisttoyrMap['7']">
  127. <el-table-column label="序号" type="index" align="center"/>
  128. <el-table-column label="托盘号" prop="lotNo" :show-overflow-tooltip="true" align="center"/>
  129. <el-table-column label="退火下料时间" prop="createTime" :show-overflow-tooltip="true" align="center"/>
  130. <el-table-column label="生产完成总耗时" align="center" prop="createTime" >
  131. <template slot-scope="scope">
  132. <span style="color: #3A71A8"
  133. v-text="parseTimeInterval(this.retroactiveHisttoyrMap['1'][0].createTime,scope.row.createTime)"/>
  134. </template>
  135. </el-table-column>
  136. <el-table-column label="备注" prop="remark" :show-overflow-tooltip="true" align="center"/>
  137. </el-table>
  138. </template>
  139. </el-step>
  140. </el-steps>
  141. </div>
  142. </template>
  143. <script>
  144. import {getRetroactiveHistoryInfo, getRetroactiveNowInfo} from "@/api/trace/process";
  145. import {parseTime} from "../../../utils/ruoyi";
  146. export default {
  147. name: "info",
  148. dicts: ['process'],
  149. data() {
  150. return {
  151. retroactiveId: null,
  152. retroactiveInfo: {
  153. status:0,
  154. },
  155. retroactiveHisttoyrMap: {},
  156. poorProductionTime: [],
  157. open: false
  158. }
  159. },
  160. methods: {
  161. parseTime,
  162. getInfo() {
  163. getRetroactiveNowInfo({retroactiveId: this.retroactiveId}).then(response1 => {
  164. this.retroactiveInfo = response1.data
  165. getRetroactiveHistoryInfo({retroactiveId: this.retroactiveId}).then(response2 => {
  166. this.retroactiveHisttoyrMap = eval(response2.data);
  167. if (this.retroactiveInfo == null || this.retroactiveInfo==undefined) {
  168. this.retroactiveInfo = this.retroactiveHisttoyrMap['1']
  169. this.retroactiveInfo.lotNo = this.retroactiveHisttoyrMap['4'].lotNo
  170. this.retroactiveInfo.status = 7
  171. } else {
  172. this.retroactiveInfo.status = parseInt(this.retroactiveInfo.status)
  173. }
  174. this.open = true
  175. })
  176. })
  177. },
  178. parseTimeInterval(time1, time2) {
  179. if (time1==null ||time2==null){
  180. return '缺少数据!';
  181. }
  182. var stime = new Date(time1).getTime();
  183. var etime = new Date(time2).getTime();
  184. var usedTime = etime - stime; //两个时间戳相差的毫秒数
  185. var days = Math.floor(usedTime / (24 * 3600 * 1000));
  186. //计算出小时数
  187. var leave1 = usedTime % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
  188. var hours = Math.floor(leave1 / (3600 * 1000));
  189. //计算相差分钟数
  190. var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
  191. var minutes = Math.floor(leave2 / (60 * 1000));
  192. var time = days + "天" + hours + "时" + minutes + "分";
  193. //var time = days;
  194. return time
  195. },
  196. getNextTime(next,lotNo){
  197. if (!next){
  198. return null
  199. }
  200. let time = null;
  201. next.forEach(item=>{
  202. if (item.lotNo === lotNo){
  203. time = item.createTime
  204. }
  205. })
  206. return time;
  207. }
  208. },
  209. mounted() {
  210. this.retroactiveId = this.$route.params.retroactiveId
  211. this.getInfo()
  212. },
  213. }
  214. </script>