Merge branch 'htq20251215' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu into htq20251215
| | |
| | | { field: 'warehouseCode', title: 'ä»åºç¼ç ', type: 'string', width: 160, require: true, align: 'left' }, |
| | | { field: 'unit', title: 'åä½', type: 'string', width: 100, require: true, align: 'left' }, |
| | | { field: 'factoryArea', title: 'ååº', type: 'string', width: 120, require: true, align: 'left' }, |
| | | { field: 'result', title: 'æ£éªç»æ', type: 'int', width: 110, require: true, align: 'left',bind: { key: "inOrderType", data: [] },}, |
| | | { field: 'result', title: 'æ£éªç»æ', type: 'int', width: 110, require: true, align: 'left',bind: { key: "result", data: [] },}, |
| | | { field: 'inspectionNumber', title: 'æ£éªæ¬¡æ°', type: 'int', width: 110, require: true, align: 'left' }, |
| | | { field: 'qty', title: 'æ°é', type: 'float', width: 110, require: true, align: 'left' }, |
| | | { field: 'signSeq', title: 'ç¾å顺åº', type: 'int', width: 110, require: true, align: 'left' }, |
| | |
| | | field: "returnToMESStatus", |
| | | title: "åä¼ MESç¶æ", |
| | | width: 120, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 3, value: "é¨ååä¼ æå" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | }, |
| | | { |
| | | field: "factoryArea", |
| | |
| | | field: "returnToMESStatus", |
| | | title: "åä¼ MESç¶æ", |
| | | width: 120, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 3, value: "é¨ååä¼ æå" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | }, |
| | | { |
| | | field: "creater", |
| | |
| | | field: "returnToMESStatus", |
| | | title: "åä¼ MESç¶æ", |
| | | width: 120, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 3, value: "é¨ååä¼ æå" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | }, |
| | | { |
| | | field: "factoryArea", |
| | |
| | | <template> |
| | | <div class="message-container"> |
| | | <!-- å è½½ç¶æ --> |
| | | <div v-if="loading" class="loading">å è½½ä¸...</div> |
| | | |
| | | <!-- ç©ºæ°æ®æç¤º --> |
| | | <div v-else-if="!list.length" class="empty">ææ æ¶æ¯</div> |
| | | |
| | | <!-- æ¶æ¯å表 --> |
| | | <div v-else class="list-wrap"> |
| | | <div class="item" v-for="(item, index) in list" :key="index"> |
| | | <div class="title">{{ item.title }}({{ item.date }})</div> |
| | | <div class="content"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <label>æ¶è´§åå·ï¼{{ item.formData.receiveOrderNo }}</label> |
| | | <label>è´¨æ£ç»æï¼{{ item.formData.result || 'æªå¡«å' }}</label> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <label>è´¨æ£åå·ï¼{{ item.formData.checkOrderNo }}</label> |
| | | <label>è´¨æ£åå·ï¼{{ item.formData.checkOrderNo || 'æªå¡«å' }}</label> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <label>æ¶è´§æç»è¡å·ï¼{{ item.formData.receiveDetailRowNo }}</label> |
| | | <label>æ¹æ¬¡ï¼{{ item.formData.batchNo || item.formData.receiveDetailRowNo || 'æªå¡«å' }}</label> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <label>ç©æç¼å·ï¼{{ item.formData.materielCode }}</label> |
| | | <label>ç©æç¼å·ï¼{{ item.formData.materielCode || 'æªå¡«å' }}</label> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <label>åæ ¼æ°éï¼{{ item.formData.qualifiedQuantity }}</label> |
| | | <label>è´¨æ£æ°éï¼{{ item.formData.receivedQuantity || 'æªå¡«å' }}</label> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <label>ç¹éæ°éï¼{{ item.formData.defectedQuantity }}</label> |
| | | <label>æ£éªæ¬¡æ°ï¼{{ item.formData.inspectionNumber || 'æªå¡«å' }}</label> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <label>éè´§æ°éï¼{{ item.formData.returnQuantity }}</label> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <label>æ¥åºæ°éï¼{{ item.formData.scrappedQuantity }}</label> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <label>è´¨æ£æ»æ°ï¼{{ item.formData.receivedQuantity }}</label> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="16"> |
| | | <label>ç¹é说æï¼{{ item.formData.defectedNote }}</label> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <label>æ£éªäººï¼{{ item.formData.checkUserName }}</label> |
| | | <!-- è¡¥å
å±ç¤ºæ´å¤å段 --> |
| | | <el-row v-if="item.formData.message" style="margin-top: 10px"> |
| | | <el-col :span="24"> |
| | | <label>夿³¨ï¼{{ item.formData.message }}</label> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div style="margin-top: 20px"> |
| | | <el-button type="primary">åæ</el-button |
| | | ><el-button type="danger">驳å</el-button> |
| | | <el-button type="primary" @click="handleAgree(item)">åæ</el-button> |
| | | <el-button type="danger" @click="handleReject(item)">驳å</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'CheckOrderApproval', |
| | | props: { |
| | | list: { |
| | | type: Array, |
| | | default: () => { |
| | | return []; |
| | | default: () => [], |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | // æ¬å°ç»´æ¤åè¡¨æ°æ®ï¼æ åå§æ¨¡ææ°æ®ï¼ |
| | | localList: [], |
| | | loading: false, // å è½½ç¶æ |
| | | }; |
| | | }, |
| | | created() { |
| | | // if (!this.list.length) { |
| | | // this.list.push({ |
| | | // title: "IQCè´¨æ£ç»æå®¡æ¹", |
| | | // formData: { |
| | | // receiveOrderNo: "æ¶è´§åå·", |
| | | // checkOrderNo: "è´¨æ£åå·", |
| | | // receiveDetailRowNo: "æ¶è´§æç»è¡å·", |
| | | // materielCode: "ç©æç¼å·", |
| | | // qualifiedQuantity: "åæ ¼æ°é", |
| | | // defectedQuantity: "ç¹éæ°é", |
| | | // returnQuantity: "éè´§æ°é", |
| | | // scrappedQuantity: "æ¥åºæ°é", |
| | | // receivedQuantity: "è´¨æ£æ»æ°", |
| | | // defectedNote: "ç¹é说æ", |
| | | // checkUserName: "æ£éªäºº", |
| | | // message: "æ¶æ¯æµè¯å
å®¹æ¶æ¯æµè¯å
å®¹æ¶æ¯æµè¯å
å®¹æ¶æ¯æµè¯å
容", |
| | | // }, |
| | | // date: "2022-05-02 03:10", |
| | | // }); |
| | | // } |
| | | // ä»
è°ç¨æ¥å£ï¼æ æµè¯æ°æ®å¡«å
|
| | | this.fetchCheckOrderList(); |
| | | }, |
| | | methods: { |
| | | /** |
| | | * 请æ±è´¨æ£å®¡æ¹åè¡¨ï¼æ å
åºæ°æ®ï¼ |
| | | */ |
| | | fetchCheckOrderList() { |
| | | const _this = this; |
| | | _this.loading = true; |
| | | |
| | | _this.http |
| | | .post(`api/CheckOrder/ReceiveReCheckOrder`, {}, "å 载质æ£å®¡æ¹æ°æ®ä¸...") |
| | | .then((x) => { |
| | | _this.loading = false; |
| | | if (x.status) { |
| | | // ä»
èµå¼æ¥å£è¿åçç宿°æ® |
| | | _this.localList = x.data || []; |
| | | } else { |
| | | // æ å
åºæ°æ®ï¼ä»
æç¤ºé误ï¼å表置空 |
| | | _this.$Message.error('å 载质æ£å®¡æ¹æ°æ®å¤±è´¥'); |
| | | _this.localList = []; |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | _this.loading = false; |
| | | console.error('å 载质æ£å®¡æ¹æ°æ®å¼å¸¸ï¼', error); |
| | | _this.$Message.error('å 载质æ£å®¡æ¹æ°æ®å¼å¸¸ï¼è¯·ç¨åéè¯'); |
| | | // å¼å¸¸æ¶åè¡¨ç½®ç©ºï¼æ å
åºæ°æ® |
| | | _this.localList = []; |
| | | }); |
| | | }, |
| | | |
| | | /** |
| | | * åæå®¡æ¹ï¼æ æµè¯é»è¾ï¼ |
| | | */ |
| | | handleAgree(item) { |
| | | const _this = this; |
| | | _this.$confirm('ç¡®å®åæè¯¥è´¨æ£å®¡æ¹åï¼', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'info', |
| | | }).then(() => { |
| | | _this.http |
| | | .post(`api/CheckOrder/AgreeReCheckOrder?orderNo=${item.formData.checkOrderNo}`, {}, "审æ¹å¤çä¸...") |
| | | .then((x) => { |
| | | if (x.status) { |
| | | _this.$Message.success('审æ¹åæå®æ'); |
| | | _this.fetchCheckOrderList(); // å·æ°å表 |
| | | } else { |
| | | return _this.$Message.error('审æ¹åæå¤±è´¥'); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error('åæå®¡æ¹å¼å¸¸ï¼', error); |
| | | _this.$Message.error('审æ¹åæå¼å¸¸ï¼è¯·ç¨åéè¯'); |
| | | }); |
| | | }).catch(() => { |
| | | _this.$Message.info('已忶åæ'); |
| | | }); |
| | | }, |
| | | |
| | | /** |
| | | * 驳å审æ¹ï¼æ æµè¯é»è¾ï¼ |
| | | */ |
| | | handleReject(item) { |
| | | const _this = this; |
| | | _this.$prompt('请è¾å
¥é©³ååå ', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | }).then(({ value }) => { |
| | | _this.http |
| | | .post( |
| | | `api/CheckOrder/RejectReCheckOrder?orderNo=${item.formData.checkOrderNo}`, |
| | | { rejectReason: value }, |
| | | "审æ¹é©³åå¤çä¸..." |
| | | ) |
| | | .then((x) => { |
| | | if (x.status) { |
| | | _this.$Message.success('审æ¹é©³å宿'); |
| | | _this.fetchCheckOrderList(); // å·æ°å表 |
| | | } else { |
| | | return _this.$Message.error('审æ¹é©³å失败'); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error('驳å审æ¹å¼å¸¸ï¼', error); |
| | | _this.$Message.error('审æ¹é©³åå¼å¸¸ï¼è¯·ç¨åéè¯'); |
| | | }); |
| | | }).catch(() => { |
| | | _this.$Message.info('已忶驳å'); |
| | | }); |
| | | }, |
| | | }, |
| | | computed: { |
| | | list() { |
| | | return this.localList.length ? this.localList : this.$props.list; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | .message-container { |
| | | min-height: 300px; |
| | | padding: 10px; |
| | | |
| | | .loading, |
| | | .empty { |
| | | text-align: center; |
| | | padding: 50px 0; |
| | | color: #999; |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .title { |
| | | padding-bottom: 10px; |
| | | font-weight: bold; |
| | | font-size: 15px; |
| | | } |
| | | |
| | | .item { |
| | | border-bottom: 1px solid #eee; |
| | | padding: 10px 20px; |
| | | margin-bottom: 10px; |
| | | background: #fafafa; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | .content { |
| | | color: #1b1b1b; |
| | | font-size: 14px; |
| | | line-height: 1.8; |
| | | |
| | | label { |
| | | display: block; |
| | | word-break: break-all; |
| | | } |
| | | } |
| | | |
| | | .list-wrap { |
| | | margin-top: 10px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | field: "returnToMESStatus", |
| | | title: "åä¼ MESç¶æ", |
| | | width: 120, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 3, value: "é¨ååä¼ æå" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | }, |
| | | { |
| | | field: "departmentCode", |
| | |
| | | field: "returnToMESStatus", |
| | | title: "åä¼ MESç¶æ", |
| | | width: 120, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | bind: { key: "createType", data: [{ key: 0, value: "æªåä¼ " }, { key: 1, value: "å·²åä¼ æå" }, { key: 2, value: "åä¼ å¤±è´¥" },{ key: 3, value: "é¨ååä¼ æå" },{ key: 4, value: "é¨ååä¼ å¤±è´¥" }] }, |
| | | }, |
| | | { |
| | | field: "factoryArea", |
| | |
| | | return this; |
| | | } |
| | | |
| | | public WebResponseContent Error(string message = null) |
| | | public WebResponseContent Error(string message = null, object data = null) |
| | | { |
| | | Status = false; |
| | | Message = message; |
| | | Data = data; |
| | | return this; |
| | | } |
| | | } |
| | |
| | | |
| | | if (details.Count() <= 0) |
| | | { |
| | | return content.Error("请确认æ¯å¦å·²ç»ç»ç"); |
| | | var inbounddetail =_inboundOrderDetailRepository.QueryFirst(x => x.Barcode == palletDto.Barcode); |
| | | var inbound = _inboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x => x.Id == inbounddetail.OrderId).First(); |
| | | if (inbound == null) |
| | | { |
| | | return content.Error("åæ®ä¸è½ä¸ºç©º"); |
| | | } |
| | | |
| | | var detail = _inboundOrderDetailRepository.Db.Queryable<Dt_InboundOrderDetail>().LeftJoin<Dt_InboundOrder>((d,o)=>d.OrderId==o.Id).Where((d, o) => d.OrderId == inbound.Id |
| | | && d.ReceiptQuantity != 0 |
| | | && d.OverInQuantity == 0).Select((d, o) => new |
| | | { |
| | | orderNo=o.InboundOrderNo, |
| | | d.Barcode, |
| | | d.MaterielCode, |
| | | d.BatchNo, |
| | | d.ReceiptQuantity, |
| | | d.Unit, |
| | | d.SupplyCode, |
| | | d.WarehouseCode |
| | | }).ToList(); |
| | | return content.Error("请确认æ¯å¦å·²ç»ç»ç",detail); |
| | | } |
| | | inboundOrder = _inboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Includes(x=>x.Details).Where(x => x.Id == details.First().OrderId).First(); |
| | | |