From 57148c2264abe80bd3b472f2980104d90dad5c61 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期六, 13 九月 2025 08:35:32 +0800 Subject: [PATCH] 合并,接口优化等 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs | 12 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReturnOrderService.cs | 4 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProCollectOutOrderRepository.cs | 18 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/proCollectOutOrder.js | 110 +++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProCollectOutOrderController.cs | 23 + 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs | 10 代码管理/WMS/WIDESEA_WMSClient/src/views/outbound/proCollectOutOrder.vue | 314 ++++++++++++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProCollectOutOrder.cs | 53 ++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProCollectOutOrderService.cs | 105 +++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs | 4 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProCollectOutOrderDetailRepository.cs | 14 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/InboundOrderMenu.cs | 14 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs | 16 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProCollectOutOrderService.cs | 26 + 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_ReceiveOrderDetail.cs | 6 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/AssignInboundTaskLocation_BC.cs | 22 代码管理/WMS/WIDESEA_WMSClient/src/router/viewGird.js | 4 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/OutboundOrderEnum.cs | 5 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs | 1 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProCollectOutOrderDetailService.cs | 18 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 2 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs | 134 +++++- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProCollectOutOrderRepository.cs | 14 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs | 6 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 23 - 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs | 4 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProCollectOutOrderDetail.cs | 117 +++++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProCollectOutOrderDetailService.cs | 52 ++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs | 16 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProCollectOutOrderDetailRepository.cs | 18 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs | 19 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundService.cs | 1 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs | 37 + 33 files changed, 1,135 insertions(+), 87 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/proCollectOutOrder.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/proCollectOutOrder.js" new file mode 100644 index 0000000..f918ec2 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/proCollectOutOrder.js" @@ -0,0 +1,110 @@ + +//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜 +import { el } from 'element-plus/es/locales.mjs'; +import gridBody from './extend/proOutboundOrderDetail.vue' +let extension = { + components: { + //鏌ヨ鐣岄潰鎵╁睍缁勪欢 + gridHeader: '', + gridBody: gridBody, + gridFooter: '', + //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢 + modelHeader: '', + modelBody: '', + modelFooter: '' + }, + tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓) + buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽� + methods: { + //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄� + onInit() { + let outSysc = this.buttons.find(x => x.value == 'ExecuteOutboundSync'); + if (outSysc) { + outSysc.onClick = function () { + let rows = this.$refs.table.getSelected(); + if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!"); + if (rows.length > 1) return this.$error("璇烽�夋嫨鍗曟潯鏁版嵁!"); + // this.$confirm("纭鍒涘缓鏀惰揣鍗�" + rows[0].receiveOrderNo + "鐨勫叆搴撳悧?", "璀﹀憡", { + // confirmButtonText: "纭畾", + // cancelButtonText: "鍙栨秷", + // type: "warning", + // center: true, + // }).then(() => { + + var keys = rows.map(x => { return x.proOutOrderNo }); + this.http + .post("api/ProOutOrder/OutProErpSync?outProOrderNo=" + keys[0], null, "鏁版嵁澶勭悊涓�") + .then((x) => { + if (!x.status) return this.$message.error(x.message); + this.$message.success("鎿嶄綔鎴愬姛"); + this.refresh(); + }); + // }); + } + + } + //鎵╁睍椤甸潰鍒濆鍖栨搷浣� + this.columns.push({ + field: '鎿嶄綔', + title: '鎿嶄綔', + width: 90, + fixed: 'right', + align: 'center', + formatter: (row) => { + return ( + '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鏌ョ湅鏄庣粏</i>' + ); + }, + click: (row) => { + this.$refs.gridBody.open(row); + } + }); + }, + onInited() { + //妗嗘灦鍒濆鍖栭厤缃悗 + //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔 + //this.detailOptions.columns.forEach(column=>{ }); + }, + searchBefore(param) { + //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟 + //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ + return true; + }, + searchAfter(result) { + //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊� + return true; + }, + addBefore(formData) { + //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫�� + return true; + }, + updateBefore(formData) { + //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d + return true; + }, + rowClick({ row, column, event }) { + //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠� + this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�; + let outSysc = this.buttons.find(x => x.value == 'ExecuteOutboundSync'); + console.log(outSysc); + if (row.proOrderStatus==2) { + if (!outSysc.hidden){ + this.$message.warning(row.proOutOrderNo+"璁㈠崟宸插畬鎴愶紝鏃犻渶鍚屾"); + outSysc.hidden=true; + } + }else{ + outSysc.hidden=false; + } + }, + modelOpenAfter(row) { + //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁 + //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add'; + //(2)缁欏脊鍑烘璁剧疆榛樿鍊� + //(3)this.editFormFields.瀛楁='xxx'; + //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊� + //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions) + } + } + }; + export default extension; + \ No newline at end of file diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/router/viewGird.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/router/viewGird.js" index fddf1a5..7007117 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/router/viewGird.js" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/router/viewGird.js" @@ -302,6 +302,10 @@ path: '/inspectOrder', name: 'inspectOrder', component: () => import('@/views/check/inspectOrder.vue') + }, { + path: '/proCollectOutOrder', + name: 'proCollectOutOrder', + component: () => import('@/views/outbound/proCollectOutOrder.vue') } ] export default viewgird diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/outbound/proCollectOutOrder.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/outbound/proCollectOutOrder.vue" new file mode 100644 index 0000000..8ee5188 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/outbound/proCollectOutOrder.vue" @@ -0,0 +1,314 @@ + +<template> + <view-grid + ref="grid" + :columns="columns" + :detail="detail" + :editFormFields="editFormFields" + :editFormOptions="editFormOptions" + :searchFormFields="searchFormFields" + :searchFormOptions="searchFormOptions" + :table="table" + :extend="extend" + > + </view-grid> + </template> + <script> + import extend from "@/extension/outbound/proCollectOutOrder.js"; + import { ref, defineComponent } from "vue"; + export default defineComponent({ + setup() { + const table = ref({ + key: "id", + footer: "Foots", + cnName: "鎴愬搧棰嗘枡鍑哄簱鍗�", + name: "proCollectOutOrder", + url: "/proCollectOutOrder/", + sortName: "id", + }); + const editFormFields = ref({ + proOrderType: "", + proCollectOutOrderNo: "", + proOrderStatus: "", + warehouseId: "", + }); + const editFormOptions = ref([ + [ + { + title: "鍗曟嵁绫诲瀷", + required: true, + field: "proOrderType", + type: "select", + dataKey: "ProOrderType", + data: [{key:2,value:"鎴愬搧棰嗘枡鍑哄簱鍗�"}] + }, + { + field: "proCollectOutOrderNo", + title: "鍗曟嵁缂栧彿", + type: "string", + readonly: true, + }, + { + title: "鍗曟嵁鐘舵��", + field: "proOrderStatus", + type: "select", + dataKey: "outboundStatusEnum", + data: [], + readonly: true, + }, + { + title: "浠撳簱", + field: "warehouseId", + type: "select", + dataKey: "warehouses", + data: [], + required: true, + }, + ], + ]); + const searchFormFields = ref({ + proOutOrderNo: "", + proOrderStatus: "", + }); + const searchFormOptions = ref([ + [ + { title: "鍑哄簱鍗曞彿", field: "proOutOrderNo", type: "like" }, + { + title: "鍗曟嵁鐘舵��", + field: "proOrderStatus", + type: "select", + dataKey: "outboundStatusEnum", + data: [], + }, + ] + ]); + const columns = ref([ + { + field: "id", + title: "Id", + type: "int", + width: 90, + hidden: true, + readonly: true, + require: true, + align: "left", + }, + { + field: "warehouseId", + title: "浠撳簱", + type: "string", + width: 90, + align: "left", + bind: { key: "warehouses", data: [] }, + }, + { + field: "proCollectOutOrderNo", + title: "鍑哄簱鍗曞彿", + type: "string", + width: 160, + align: "left", + link: true, + }, + { + field: "proOrderType", + title: "鍗曟嵁绫诲瀷", + type: "string", + width: 150, + align: "left", + bind: { key: "ProOrderType", data: [{key:2,value:"鎴愬搧棰嗘枡鍑哄簱鍗�"}] }, + }, + { + field: "proOrderStatus", + title: "鍗曟嵁鐘舵��", + type: "decimal", + width: 90, + align: "left", + bind: { key: "outboundStatusEnum", data: [] }, + }, + // { + // field: "createType", + // title: "鍒涘缓鏂瑰紡", + // type: "string", + // width: 120, + // align: "left", + // bind: { key: "createType", data: [] }, + // }, + // { + // field: "departmentCode", + // title: "淇敼鏃堕棿", + // type: "string", + // width: 120, + // align: "left", + // hidden: true, + // }, + { + field: "creater", + title: "鍒涘缓浜�", + type: "string", + width: 90, + align: "left", + }, + { + field: "createDate", + title: "鍒涘缓鏃堕棿", + type: "datetime", + width: 160, + align: "left", + }, + // { + // field: "modifier", + // title: "淇敼浜�", + // type: "string", + // width: 100, + // align: "left", + // }, + // { + // field: "modifyDate", + // title: "淇敼鏃堕棿", + // type: "datetime", + // width: 160, + // align: "left", + // }, + { + field: "remark", + title: "澶囨敞", + type: "string", + width: 100, + align: "left", + }, + ]); + const detail = ref({ + cnName: "鍑哄簱鏄庣粏鍗�", + table: "proCollectOutOrderDetail", + columns: [ + { + field: "id", + title: "Id", + type: "int", + width: 90, + hidden: true, + readonly: true, + require: true, + align: "left", + }, + { + field: "proCollectOrderId", + title: "鍑哄簱鍗曚富閿�", + type: "string", + width: 90, + align: "left", + hidden: true, + }, + { + field: "rowId", + title: "琛屽彿", + type: "string", + width: 90, + align: "left", + required: true, + }, + { + field: "pCode", + title: "浜у搧缂栫爜", + type: "string", + width: 150, + align: "left", + required: true, + }, + { + field: "pVer", + title: "浜у搧鐗堟湰", + type: "string", + width: 150, + align: "left", + }, + { + field: "lLot", + title: "浜у搧鎵规", + type: "string", + width: 90, + align: "left", + }, + { + field: "dateCode", + title: "浜у搧鍛ㄦ湡", + type: "string", + width: 100, + align: "left", + }, + { + field: "qtyPcs", + title: "鍑哄簱鍚堟牸PCS鏁�", + type: "string", + width: 130, + align: "left", + required: true, + }, + + { + field: "overQtyPcs", + title: "宸插嚭鏁伴噺", + type: "string", + width: 100, + align: "left", + }, + { + field: "lockQtyPcs", + title: "閿佸畾鏁伴噺", + type: "string", + width: 100, + align: "left", + }, + { + field: "setQty", + title: "Set鏁�", + type: "string", + width: 100, + align: "left", + }, + { + field: "proOrderDetailStatus", + title: "璁㈠崟鏄庣粏鐘舵��", + type: "string", + width: 180, + align: "left", + bind: { key: "orderDetailStatusEnum", data: [] }, + }, + { + field: "unit", + title: "鍗曚綅", + type: "string", + width: 100, + align: "left", + }, + { + field: "orderDate", + title: "瀹℃牳鏃ユ湡", + type: "datetime", + width: 160, + align: "left", + }, + { + field: "remark", + title: "澶囨敞", + type: "string", + width: 100, + align: "left", + }, + ], + sortName: "id", + key: "id", + }); + return { + table, + extend, + editFormFields, + editFormOptions, + searchFormFields, + searchFormOptions, + columns, + detail, + }; + }, + }); + </script> \ No newline at end of file diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs" index 5841275..17c9e38 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs" @@ -75,15 +75,15 @@ if(heightType == 1) { - undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x=>x.Layer <= 3).ToList(); - definedTypeEmptyLocations = definedTypeEmptyLocations.Where(x => x.Layer <= 3).ToList(); + undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x=>x.Layer <= 4).ToList(); + definedTypeEmptyLocations = definedTypeEmptyLocations.Where(x => x.Layer <= 4).ToList(); } - else if(heightType == 2) - { - undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Layer == 4).ToList(); - definedTypeEmptyLocations = definedTypeEmptyLocations.Where(x => x.Layer == 4).ToList(); - } - else if (heightType == 3) + //else if(heightType == 2) + //{ + // undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Layer == 4).ToList(); + // definedTypeEmptyLocations = definedTypeEmptyLocations.Where(x => x.Layer == 4).ToList(); + //} + else if (heightType == 2) { undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Layer == 5).ToList(); definedTypeEmptyLocations = definedTypeEmptyLocations.Where(x => x.Layer == 5).ToList(); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs" index 6a77d8a..afc0bc2 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs" @@ -3,8 +3,10 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using WIDESEA_Common.CommonEnum; using WIDESEA_Common.OrderEnum; using WIDESEA_Common.StockEnum; +using WIDESEA_Common.WareHouseEnum; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; @@ -12,6 +14,7 @@ using WIDESEA_Core.Helper; using WIDESEA_External.Model; using WIDESEA_IApprovalRepository; +using WIDESEA_IBasicRepository; using WIDESEA_ICheckRepository; using WIDESEA_ICheckService; using WIDESEA_IInboundRepository; @@ -31,7 +34,10 @@ private readonly IPurchaseOrderDetailRepository _purchaseOrderDetailRepository; private readonly IOutboundRepository _outboundRepository; private readonly IStockRepository _stockRepository; - public CheckOrderResultService(ICheckOrderResultRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICheckOrderRepository checkOrderRepository, IReceiveOrderRepository receiveOrderRepository, ICheckOrderService checkOrderService, IPurchaseOrderRepository purchaseOrderRepository, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IOutboundRepository outboundRepository, IStockRepository stockRepository) : base(BaseDal) + private readonly IWarehouseRepository _warehouseRepository; + private readonly IReceiveOrderDetailRepository _receiveOrderDetailRepository; + + public CheckOrderResultService(ICheckOrderResultRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICheckOrderRepository checkOrderRepository, IReceiveOrderRepository receiveOrderRepository, ICheckOrderService checkOrderService, IPurchaseOrderRepository purchaseOrderRepository, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IOutboundRepository outboundRepository, IStockRepository stockRepository,IWarehouseRepository warehouseRepository, IReceiveOrderDetailRepository receiveOrderDetailRepository) : base(BaseDal) { _checkOrderRepository = checkOrderRepository; _unitOfWorkManage = unitOfWorkManage; @@ -41,6 +47,8 @@ _purchaseOrderDetailRepository = purchaseOrderDetailRepository; _outboundRepository = outboundRepository; _stockRepository = stockRepository; + _warehouseRepository=warehouseRepository; + _receiveOrderDetailRepository = receiveOrderDetailRepository; } /// <summary> @@ -61,6 +69,7 @@ { return content.Error($"鏈壘鍒拌璐ㄦ鍗�"); } + Dt_Warehouse warehouse = _warehouseRepository.QueryFirst(x => x.WarehouseId == checkOrder.WarehouseId); Dt_ReceiveOrder receiveOrder = _receiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == checkOrder.ReceiveOrderNo).Includes(x => x.Details).First(); if (receiveOrder.ReceiveOrderStatus!=ReceiveOrderStatusEnum.Completed.ObjToInt()) { @@ -178,6 +187,8 @@ { return content.Error($"鏈壘鍒拌璐ㄦ鍗�"); } + Dt_Warehouse warehouse = _warehouseRepository.QueryFirst(x => x.WarehouseId == checkOrder.WarehouseId); + //鑾峰彇鏀惰揣鍗� Dt_ReceiveOrder receiveOrder = _receiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == checkOrder.ReceiveOrderNo).Includes(x => x.Details).First(); if (receiveOrder.ReceiveOrderStatus != ReceiveOrderStatusEnum.Completed.ObjToInt()) { @@ -203,6 +214,7 @@ { return content.Error($"鏈壘鍒扮己闄风被鍨�"); } + //妫�楠岀粨鏋� checkOrderResult = new Dt_CheckOrderResult() { Quantity = (float)Convert.ToDecimal(eRPCheckResult.Quantity), @@ -212,7 +224,7 @@ Note = eRPCheckResult.Note, SampleCount = 0, }; - //鑾峰彇瀵瑰簲閲囪喘鍗� + //鑾峰彇瀵瑰簲閲囪喘鍗曟墸闄ゆ敹璐ф暟閲� Dt_ReceiveOrderDetail receiveOrderDetail = receiveOrder.Details.First(x => x.RowNo == checkOrder.ReceiveDetailRowNo); purchaseOrder = _purchaseOrderRepository.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == receiveOrderDetail.PurchaseOrderNo).Includes(x => x.Details).Where(x => x.Details.Any(v => v.RowNo == receiveOrderDetail.PurchaseOrderDetailRowNo)).First(); if (purchaseOrder == null) @@ -226,6 +238,7 @@ } purchaseOrderDetail.PurchaseDetailReceiveQty -= (float)Convert.ToDecimal(eRPCheckResult.Quantity); } + //鍒ゆ柇妫�楠屽悎鏍肩粨鏋� if (checkModel.Result == CheckAcceptEnum.Accept.ToString()) { checkOrder.Result = CheckAcceptEnum.Accept.ToString(); @@ -239,17 +252,33 @@ return content.Error("鏈壘鍒版楠岀被鍨�"); } checkOrder.CheckOrderStatus = CheckOrderStatusEnum.Checked.ObjToInt(); + List<Dt_ReceiveOrderDetail> receiveOrderDetails = new List<Dt_ReceiveOrderDetail>(); + //鏍规嵁妫�楠屾暟閲忔墸闄ゅ悎鏍兼暟閲� if (checkOrderResult != null) { checkOrder.QualifiedQuantity = checkOrder.ReceivedQuantity - checkOrderResult.Quantity; + //鏇存柊鏀惰揣妫�楠屽悎鏍兼爣璇� + if (warehouse.WarehouseCode == WarehouseEnum.HA152.ToString() || warehouse.WarehouseCode == WarehouseEnum.HA58.ToString()) + { + receiveOrderDetails = receiveOrder.Details.Where(x=>x.RowNo==checkOrder.ReceiveDetailRowNo).OrderByDescending(x => x.RowNo).Take((int)checkOrderResult.Quantity).ToList(); + receiveOrderDetails.ForEach(x => + { + x.IsCheckOk = WhetherEnum.True.ObjToInt(); + }); + } } else { checkOrder.QualifiedQuantity = checkOrder.ReceivedQuantity; } checkOrder.CheckUserName = App.User.UserName; + _unitOfWorkManage.BeginTran(); - + if (receiveOrderDetails.Count > 0) + { + _receiveOrderDetailRepository.UpdateData(receiveOrderDetails); + } + //鏇存柊閲囪喘鍗� if (checkOrderResult != null && purchaseOrder != null && purchaseOrderDetail != null) { BaseDal.AddData(checkOrderResult); @@ -298,7 +327,7 @@ try { Dt_CheckOrder checkOrder = _checkOrderRepository.QueryFirst(x => x.CheckOrderId == checkOrderId); - //鑾峰彇璐ㄦ鍗曞搴旂殑鏀惰揣鍗� + //鑾峰彇璐ㄦ鍗� if (checkOrder == null) { return content.Error($"鏈壘鍒拌璐ㄦ鍗�"); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/InboundOrderMenu.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/InboundOrderMenu.cs" index 20c0435..6089636 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/InboundOrderMenu.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/InboundOrderMenu.cs" @@ -85,20 +85,28 @@ EmptyDisk = 125, /// <summary> - /// 鍏朵粬鍏ュ簱鍗� + /// 缁翠慨閫�鏂欏崟 /// </summary> - [Description("鍏朵粬鍏ュ簱鍗�")] - Other = 130, + [Description("缁翠慨閫�鏂欏崟")] + RMStock = 130, + /// <summary> /// 瀹緵鍥炴敹 /// </summary> [Description("瀹緵鍥炴敹")] CustomerRecovery=135, + /// <summary> /// 閫佹鍏ュ簱鍗� /// </summary> [Description("閫佹鍏ュ簱鍗�")] Inspect = 140, + + /// <summary> + /// Bom閫�鏂欏崟 + /// </summary> + [Description("Bom閫�鏂欏崟")] + BomReturn = 145, } /// <summary> /// 鎴愬搧鍏ュ簱鍗曟嵁绫诲瀷 diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/OutboundOrderEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/OutboundOrderEnum.cs" index 79a1f01..52b4714 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/OutboundOrderEnum.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/OutboundOrderEnum.cs" @@ -125,5 +125,10 @@ /// </summary> [Description("鎴愬搧璋冩嫧鍑哄簱鍗�")] ProOutAllocat = 1, + /// <summary> + /// 鎴愬搧棰嗘枡鍑哄簱鍗� + /// </summary> + [Description("鎴愬搧棰嗘枡鍑哄簱鍗�")] + ProCollect = 2, } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs" index 3d17fc0..337c883 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs" @@ -43,6 +43,12 @@ OutAllocate = 150, /// <summary> + /// 缁翠慨鍙戞枡鍑哄簱 + /// </summary> + [Description("缁翠慨鍙戞枡鍑哄簱")] + OutMaintenance = 160, + + /// <summary> /// MES鍑哄簱 /// </summary> [Description("MES鍑哄簱")] diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProCollectOutOrderDetailRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProCollectOutOrderDetailRepository.cs" new file mode 100644 index 0000000..8b97359 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProCollectOutOrderDetailRepository.cs" @@ -0,0 +1,14 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core.BaseRepository; +using WIDESEA_Model.Models; + +namespace WIDESEA_IOutboundRepository +{ + public interface IProCollectOutOrderDetailRepository : IRepository<Dt_ProCollectOutOrderDetail> + { + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProCollectOutOrderRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProCollectOutOrderRepository.cs" new file mode 100644 index 0000000..155c284 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProCollectOutOrderRepository.cs" @@ -0,0 +1,14 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core.BaseRepository; +using WIDESEA_Model.Models; + +namespace WIDESEA_IOutboundRepository +{ + public interface IProCollectOutOrderRepository : IRepository<Dt_ProCollectOutOrder> + { + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundService.cs" index 3f408b2..4537a79 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundService.cs" @@ -31,5 +31,6 @@ IErpProTransferOrderService ErpProTransferOrderService { get; } IErpProScrapSheetService ErpProScrapSheetService { get; } IErpProScrapSheetDetailService ErpProScrapSheetDetailService { get;} + IProCollectOutOrderService ProCollectOutOrderService { get; } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProCollectOutOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProCollectOutOrderDetailService.cs" new file mode 100644 index 0000000..1ea8f0b --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProCollectOutOrderDetailService.cs" @@ -0,0 +1,18 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core; +using WIDESEA_Core.BaseServices; +using WIDESEA_DTO.ERP; +using WIDESEA_IOutboundRepository; +using WIDESEA_Model.Models; + +namespace WIDESEA_IOutboundService +{ + public interface IProCollectOutOrderDetailService : IService<Dt_ProCollectOutOrderDetail> + { + IProCollectOutOrderDetailRepository Repository { get; } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProCollectOutOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProCollectOutOrderService.cs" new file mode 100644 index 0000000..be42546 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProCollectOutOrderService.cs" @@ -0,0 +1,26 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core; +using WIDESEA_Core.BaseServices; +using WIDESEA_DTO.ERP; +using WIDESEA_IOutboundRepository; +using WIDESEA_Model.Models; + +namespace WIDESEA_IOutboundService +{ + public interface IProCollectOutOrderService : IService<Dt_ProCollectOutOrder> + { + IProCollectOutOrderRepository Repository { get; } + + /// <summary> + /// 鎺ユ敹鎴愬搧棰嗘枡鍑哄簱鍗曟嵁 + /// </summary> + /// <param name="erpProOutLingOrder"></param> + /// <returns></returns> + + WebResponseContent ProductOutOrder(ErpProOutLingOrder erpProOutLingOrder); + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" index ceab17f..19140ee 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" @@ -627,7 +627,7 @@ #region 鍏ュ簱瀹屾垚涓婃姤ERP if (inboundOrder != null && inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && inboundOrder.OrderType != InOrderTypeEnum.Allocat.ObjToInt()) { - if (inboundOrder.OrderType == InOrderTypeEnum.Return.ObjToInt()) + if (inboundOrder.OrderType == InOrderTypeEnum.Return.ObjToInt() || inboundOrder.OrderType == InOrderTypeEnum.BomReturn.ObjToInt()) { FeedbackReturnOrder(inboundOrder, returnOrder); } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" index a5ebece..bf5bd87 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" @@ -9,6 +9,7 @@ using System.Threading.Tasks; using WIDESEA_Common.CommonEnum; using WIDESEA_Common.OrderEnum; +using WIDESEA_Common.WareHouseEnum; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; @@ -62,6 +63,7 @@ { try { + //鑾峰彇鏀惰揣鍗� Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == orderNo).Includes(x => x.Details).First(); if (receiveOrder == null) { @@ -97,6 +99,7 @@ { return WebResponseContent.Instance.Error($"搴撳瓨{stockInfo.PalletCode}涓壒娆model.LotNo}宸插瓨鍦�"); } + //鏃ユ湡鏍煎紡楠岃瘉 if (model!=null) { string format = "yyyy-MM-dd"; // 鐩爣鏍煎紡 @@ -274,8 +277,8 @@ ReceivedQuantity = model.Quantity, MaterielCode = model.MaterielCode, LotNo = model.LotNo, - MaterielName=materielInfo.MaterielName, - MaterielSpec=materielInfo.MaterielSpec, + MaterielName = materielInfo.MaterielName, + MaterielSpec = materielInfo.MaterielSpec, ReceiveOrderId = receiveOrder.ReceiveOrderId, PurchaseOrderDetailRowNo = purchaseOrderDetail.RowNo, IfInspection = materielInfo.IsCheck.ObjToInt(), @@ -283,7 +286,8 @@ PriceInTax = 0, TaxRate = "", RowNo = rowNo + 1, - Unit = purchaseOrderDetail.Unit + Unit = purchaseOrderDetail.Unit, + IsCheckOk = WhetherEnum.False.ObjToInt() }; if (receiveOrder.ReceiveOrderStatus == ReceiveOrderStatusEnum.NotStarted.ObjToInt()) { @@ -329,8 +333,10 @@ } _inboundRepository.ReceiveOrderRepository.UpdateData(receiveOrder); _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail); - if (materielInfo.IsCheck == WhetherEnum.True) + //鐗╂枡妫�楠屼笂浼� + if (materielInfo.IsCheck == WhetherEnum.True && (warehouse.WarehouseCode != WarehouseEnum.HA152.ToString() && warehouse.WarehouseCode != WarehouseEnum.HA58.ToString())) { + //鏀惰揣缁撴灉涓婃姤 Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); checkOrder.OrderType = CheckTypeEnum.ReceiveCheck.ObjToInt(); checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo; @@ -367,11 +373,13 @@ { throw new Exception(mesResponseContent.StrMsg); } + //QMS鍥炰紶缁撴灉 ReceiveResultDTO? receiveResult = JsonConvert.DeserializeObject<ReceiveResultDTO>(mesResponseContent.Content.ToString()); if (receiveResult == null) { throw new Exception("鎺ユ敹QMS缁撴灉澶辫触"); } + //鏇存柊妫�楠屽崟鍙� Dt_CheckOrder _CheckOrder = _checkOrderRepository.QueryFirst(x => x.CheckOrderId == id); _CheckOrder.CheckOrderNo = receiveResult.InspectionNumber; _checkOrderRepository.UpdateData(_CheckOrder); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" index 27f3b20..22685c9 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" @@ -1,5 +1,6 @@ 锘縰sing AutoMapper; using MailKit.Search; +using Newtonsoft.Json; using SqlSugar; using System; using System.Collections.Generic; @@ -7,8 +8,10 @@ using System.Reflection; using System.Text; using System.Threading.Tasks; +using WIDESEA_BasicRepository; using WIDESEA_Common.CommonEnum; using WIDESEA_Common.OrderEnum; +using WIDESEA_Common.WareHouseEnum; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; @@ -17,9 +20,11 @@ using WIDESEA_DTO; using WIDESEA_DTO.Basic; using WIDESEA_DTO.ERP; +using WIDESEA_DTO.QMS; using WIDESEA_DTO.Stock; using WIDESEA_External.ERPService; using WIDESEA_External.Model; +using WIDESEA_External.QMSService; using WIDESEA_IBasicRepository; using WIDESEA_ICheckRepository; using WIDESEA_IInboundRepository; @@ -36,8 +41,10 @@ private readonly IInboundRepository _inboundRepository; private readonly IBasicRepository _basicRepository; private readonly IInvokeERPService _invokeERPService; + private readonly ISupplierInfoRepository _supplierInfoRepository; + private readonly IInvokeQMSService _invokeQMSService; - public ReceiveOrderService(IReceiveOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IMapper mapper, ICheckOrderRepository checkOrderRepository, IInboundRepository inboundRepository, IBasicRepository basicRepository, IInvokeERPService invokeERPService) : base(BaseDal) + public ReceiveOrderService(IReceiveOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IMapper mapper, ICheckOrderRepository checkOrderRepository, IInboundRepository inboundRepository, IBasicRepository basicRepository, IInvokeERPService invokeERPService, ISupplierInfoRepository supplierInfoRepository, IInvokeQMSService invokeQMSService) : base(BaseDal) { _mapper = mapper; _unitOfWorkManage = unitOfWorkManage; @@ -45,6 +52,8 @@ _inboundRepository = inboundRepository; _basicRepository = basicRepository; _invokeERPService = invokeERPService; + _supplierInfoRepository = supplierInfoRepository; + _invokeQMSService = invokeQMSService; } public override PageGridData<Dt_ReceiveOrder> GetPageData(PageDataOptions options) { @@ -190,10 +199,13 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒颁粨搴撲俊鎭�"); } - + Dt_SupplierInfo supplierInfo = _supplierInfoRepository.QueryFirst(x => x.SupplierCode == receiveOrder.SuppliersId); + List<Dt_CheckOrder> checkOrders = new List<Dt_CheckOrder>(); + //鐢熸垚ERP鎺ㄩ�佷俊鎭� List<RecevieOrderDetailModel> recevieOrderDetails = new List<RecevieOrderDetailModel>(); foreach (var item in receiveOrder.Details) { + //娣诲姞鏀惰揣鏄庣粏 RecevieOrderDetailModel recevieOrderDetail = new RecevieOrderDetailModel() { Currcode = "", @@ -206,8 +218,7 @@ QtyRecieved = item.ReceivedQuantity, Serno = item.RowNo, Supplotno = item.LotNo, - Taxrate = "", - + Taxrate = "" }; if (receiveOrder.ReceiveOrderType!=ReceiveOrderTypeEnum.PO.ObjToInt()) { @@ -215,6 +226,78 @@ recevieOrderDetail.Currcode = "RMB"; } recevieOrderDetails.Add(recevieOrderDetail); + if (warehouse.WarehouseCode == WarehouseEnum.HA152.ToString() || warehouse.WarehouseCode == WarehouseEnum.HA58.ToString()) + { + string lotNo = item.LotNo.Substring(0, item.LotNo.IndexOf("-")); + Dt_CheckOrder? ExistcheckOrder = checkOrders.FirstOrDefault(x => x.LotNo == lotNo && x.MaterielCode == item.MaterielCode && x.PurchaseOrderNo == item.PurchaseOrderNo); + if (ExistcheckOrder == null) + { + //妫�楠岀粨鏋滅粨鏋滀笂鎶� + Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(item); + checkOrder.LotNo = lotNo; + checkOrder.OrderType = CheckTypeEnum.ReceiveCheck.ObjToInt(); + checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo; + checkOrder.Result = CheckAcceptEnum.NotCheckAccept.ToString(); + checkOrder.QualifiedQuantity = 0; + checkOrder.ReceiveDetailRowNo = item.RowNo; + checkOrder.WarehouseId = receiveOrder.WarehouseId; + checkOrder.ScrappedQuantity = 0; + checkOrder.MaterielSpec = item.MaterielSpec; + checkOrder.ReturnQuantity = 0; + checkOrder.DefectedQuantity = 0; + checkOrder.MaterielName = item.MaterielName; + checkOrders.Add(checkOrder); + } + else + { + //娣诲姞妫�楠屾敹璐ф暟閲� + ExistcheckOrder.ReceivedQuantity += item.ReceivedQuantity; + } + + } + } + _unitOfWorkManage.BeginTran(); + //骞茶啘/PP涓婃姤QMS缁撴灉 + if (checkOrders.Count > 0) + { + foreach (var checkOrder in checkOrders) + { + int id = _checkOrderRepository.AddData(checkOrder); + QMSReceiveCheckModel qMSReceiveCheck = new QMSReceiveCheckModel() + { + UniqueTag = id.ToString(), + EntryNumber = receiveOrder.ReceiveOrderNo, + MaterialCode = checkOrder.MaterielCode, + MaterialName = checkOrder.MaterielName, + Quantity = (decimal)checkOrder.ReceivedQuantity, + SupplierCode = receiveOrder.SuppliersId, + SupplierName = supplierInfo.SupplierName, + BatchNumber = checkOrder.LotNo, + DeliveryNumber = receiveOrder.DeliveryCode, + PurchaseNumber = checkOrder.PurchaseOrderNo, + RowNumber = checkOrder.ReceiveDetailRowNo, + WarehouseCode = warehouse.WarehouseCode, + ReceiptDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + Remark = " " + }; + //璋冪敤QMS鏉ユ枡妫�楠屾帴鍙� + string response = _invokeQMSService.InvokeReceiveCheckApi(qMSReceiveCheck); + MesResponseContent mesResponseContent = response.DeserializeObject<MesResponseContent>(); + if (!mesResponseContent.BSucc) + { + throw new Exception(mesResponseContent.StrMsg); + } + //QMS鍥炰紶缁撴灉 + ReceiveResultDTO? receiveResult = JsonConvert.DeserializeObject<ReceiveResultDTO>(mesResponseContent.Content.ToString()); + if (receiveResult == null) + { + throw new Exception("鎺ユ敹QMS缁撴灉澶辫触"); + } + //鏇存柊妫�楠屽崟鍙� + Dt_CheckOrder _CheckOrder = _checkOrderRepository.QueryFirst(x => x.CheckOrderId == id); + _CheckOrder.CheckOrderNo = receiveResult.InspectionNumber; + _checkOrderRepository.UpdateData(_CheckOrder); + } } ERPReceiveModel receiveModel = new ERPReceiveModel() @@ -232,18 +315,18 @@ Way = 1, Details = recevieOrderDetails }; - //鏇存柊鏀惰揣鍗曚俊鎭� receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Completed.ObjToInt(); - //鏀惰揣鎺ㄩ�佽嚦ER - string response = _invokeERPService.InvokeMatReceiveApi(receiveModel); - ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>(); + //鏀惰揣鎺ㄩ�佽嚦ERP + string responseReceive = _invokeERPService.InvokeMatReceiveApi(receiveModel); + ErpRequestContent requestContent = responseReceive.DeserializeObject<ErpRequestContent>(); if (requestContent.res != 1) { - return WebResponseContent.Instance.Error($"{requestContent.Data}"); + throw new Exception($"{requestContent.Data}"); } receiveOrder.UploadStatus = WhetherEnum.True.ObjToInt(); BaseDal.UpdateData(receiveOrder); + _unitOfWorkManage.CommitTran(); if (receiveOrder.Details.FirstOrDefault(x=>x.IfInspection==WhetherEnum.True.ObjToInt())==null) { //鍒涘缓鍏ュ簱鍗� todo:鏄庣粏閮芥槸涓嶆楠岃嚜鍔ㄥ垱寤哄叆搴撳崟 @@ -253,6 +336,7 @@ } catch (Exception ex) { + _unitOfWorkManage.RollbackTran(); return WebResponseContent.Instance.Error(ex.Message); } } @@ -294,13 +378,14 @@ try { Dt_ReceiveOrder receiveOrder = Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderId == receiveOrderId).Includes(x => x.Details).First(); - if (receiveOrder.UploadStatus!= WhetherEnum.True.ObjToInt()) - { - return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏉ユ枡涓婁紶ERP澶辫触鏃犳硶鍒涘缓鍏ュ簱鍗曟嵁"); - } if (receiveOrder == null) { return WebResponseContent.Instance.Error($"鏈壘鍒拌鏀惰揣鍗曚俊鎭�"); + } + //ERP鍒ゆ柇鏄惁涓婁紶 + if (receiveOrder.UploadStatus!= WhetherEnum.True.ObjToInt()) + { + return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏉ユ枡涓婁紶ERP澶辫触鏃犳硶鍒涘缓鍏ュ簱鍗曟嵁"); } if (receiveOrder.Details == null || receiveOrder.Details.Count() <= 0) { @@ -310,22 +395,21 @@ { return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈畬鎴�"); } + Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseId==receiveOrder.WarehouseId); + //楠岃瘉鍏ュ簱鍗曟槸鍚﹂噸澶嶇敓鎴� Dt_InboundOrder OldCreateOrder = _inboundRepository.InboundOrderRepository.QueryFirst(x => x.UpperOrderNo == receiveOrder.ReceiveOrderNo); if (receiveOrder.CreateInOrderStatus==WhetherEnum.True.ObjToInt() || OldCreateOrder!=null) { return WebResponseContent.Instance.Error($"璇ユ敹璐у崟瀵瑰簲鐨勫叆搴撳崟宸插瓨鍦�"); } - #region 娉ㄩ噴 + + #region 鍒ゆ柇鏀惰揣鍗曟楠屾槸鍚﹀畬鎴� List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo); if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null) { return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈川妫�瀹屾垚"); } - //if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null) - //{ - // return WebResponseContent.Instance.Error($"璇ユ敹璐у崟璐ㄦ缁撴灉瀹℃壒鏈畬鎴�"); - //} if (checkOrders.FirstOrDefault(x => x.Result != CheckAcceptEnum.Accept.ToString()) != null) { return WebResponseContent.Instance.Error($"鏀惰揣鏄庣粏涓瓨鏈夎川妫�鏈�氳繃"); @@ -343,18 +427,22 @@ Details = new List<Dt_InboundOrderDetail>() }; List<Dt_MaterielInfo> materielCodeInfos = _basicRepository.MaterielInfoRepository.QueryData(x => receiveOrder.Details.Select(x => x.MaterielCode).ToList().Contains(x.MaterielCode)); - foreach (var item in receiveOrder.Details) + foreach (var item in receiveOrder.Details.Where(x=> x.IsCheckOk!=WhetherEnum.True.ObjToInt())) { float quantity = item.ReceivedQuantity; #region 娉ㄩ噴 if (item.IfInspection == WhetherEnum.True.ObjToInt()) { - Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo); - if (checkOrder == null) + if (warehouse.WarehouseCode != WarehouseEnum.HA152.ToString() && warehouse.WarehouseCode != WarehouseEnum.HA58.ToString()) { - return WebResponseContent.Instance.Error($"璐ㄦ鍗曟暟鎹敊璇�"); + Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo); + if (checkOrder == null) + { + return WebResponseContent.Instance.Error($"璐ㄦ鍗曟暟鎹敊璇�"); + } + quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault(); } - quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault(); + } #endregion Dt_InboundOrderDetail detail = new Dt_InboundOrderDetail() diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReturnOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReturnOrderService.cs" index 1943086..28713d7 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReturnOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReturnOrderService.cs" @@ -226,6 +226,10 @@ Remark=returnOrder.Remark, Details= inboundOrderDetails }; + if (returnOrder.ReturnOrderType==ReturnOrderTypeEnum.BomReturn.ObjToInt()) + { + inboundOrder.OrderType = InOrderTypeEnum.BomReturn.ObjToInt(); + } returnOrder.ReturnOrderStatus=ReturnOrderStatusEnum.Returning.ObjToInt(); _unitOfWorkManage.BeginTran(); BaseDal.UpdateData(returnOrder); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs" index fa07b9a..216466a 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs" @@ -76,6 +76,18 @@ public string MaterielSpec { get; set; } /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "鐗╂枡鍚嶇О")] + public string MaterielName { get; set; } + + /// <summary> + /// 閲囪喘鍗曞彿 + /// </summary> + [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "閲囪喘鍗曞彿")] + public string PurchaseOrderNo { get; set; } + + /// <summary> /// 鍚堟牸鏁伴噺 /// </summary> [SugarColumn(IsNullable = true, ColumnDescription = "鍚堟牸鏁伴噺")] diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_ReceiveOrderDetail.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_ReceiveOrderDetail.cs" index 428bb28..386919b 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_ReceiveOrderDetail.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_ReceiveOrderDetail.cs" @@ -109,5 +109,11 @@ /// </summary> [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "鐗╂枡瑙勬牸")] public string MaterielSpec { get; set; } + + /// <summary> + /// 妫�楠屼笉鍚堟牸鏍囪瘑 + /// </summary> + [SugarColumn(IsNullable = true, ColumnDescription = "妫�楠屼笉鍚堟牸鏍囪瘑")] + public int IsCheckOk { get; set; } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProCollectOutOrder.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProCollectOutOrder.cs" new file mode 100644 index 0000000..2c112eb --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProCollectOutOrder.cs" @@ -0,0 +1,53 @@ +锘縰sing SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core.DB.Models; + +namespace WIDESEA_Model.Models +{ + /// <summary> + /// 鎴愬搧棰嗘枡鍑哄簱鍗� + /// </summary> + [SugarTable(nameof(Dt_ProCollectOutOrder), "鎴愬搧棰嗘枡鍑哄簱鍗�")] + public class Dt_ProCollectOutOrder : BaseEntity + { + /// <summary> + /// 涓婚敭 + /// </summary> + [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")] + public int Id { get; set; } + + /// <summary> + /// 浠撳簱涓婚敭 + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "浠撳簱涓婚敭")] + public int WarehouseId { get; set; } + + /// <summary> + /// 鎴愬搧棰嗘枡鍑哄簱鍗曞彿 + /// </summary> + [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "鎴愬搧棰嗘枡鍑哄簱鍗曞彿")] + public string ProCollectOutOrderNo { get; set; } + + /// <summary> + /// 璁㈠崟绫诲瀷 + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "璁㈠崟绫诲瀷")] + public int ProOrderType { get; set; } + + /// <summary> + /// 璁㈠崟鐘舵�� + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "璁㈠崟鐘舵��")] + public int ProOrderStatus { get; set; } + + /// <summary> + /// 鎴愬搧棰嗘枡鍑哄簱鍗曡鎯� + /// </summary> + [Navigate(NavigateType.OneToMany, nameof(Dt_ProCollectOutOrderDetail.ProCollectOrderId), nameof(Id))] + public List<Dt_ProCollectOutOrderDetail> Details { get; set; } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProCollectOutOrderDetail.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProCollectOutOrderDetail.cs" new file mode 100644 index 0000000..e42e184 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProCollectOutOrderDetail.cs" @@ -0,0 +1,117 @@ +锘縰sing SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core.DB.Models; + +namespace WIDESEA_Model.Models +{ + /// <summary> + /// 鎴愬搧棰嗘枡鍑哄簱鏄庣粏鍗� + /// </summary> + [SugarTable(nameof(Dt_ProCollectOutOrderDetail), "鎴愬搧棰嗘枡鍑哄簱鏄庣粏鍗�")] + public class Dt_ProCollectOutOrderDetail : BaseEntity + { + /// <summary> + /// 涓婚敭 + /// </summary> + [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")] + public int Id { get; set; } + + /// <summary> + /// 鎴愬搧鍑哄簱鍗曚富閿� + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "棰嗘枡鍑哄簱涓婚敭")] + public int ProCollectOrderId { get; set; } + + /// <summary> + /// 鍑哄簱鍗曡鍙� + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱鍗曡鍙�")] + public int RowId { get; set; } + + /// <summary> + /// 鍑哄簱鍗曟槑缁嗙姸鎬� + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱鍗曟槑缁嗙姸鎬�")] + public int ProOrderDetailStatus { get; set; } + + /// <summary> + /// 浜у搧缂栫爜 + /// </summary> + [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "浜у搧缂栫爜")] + public string PCode { get; set; } + /// <summary> + /// 浜у搧鐗堟湰 + /// </summary> + [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "浜у搧鐗堟湰")] + public string PVer { get; set; } + + /// <summary> + /// 浜у搧鎵规 + /// </summary> + [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "浜у搧鎵规")] + public string PLot { get; set; } + + /// <summary> + /// 浜у搧鍛ㄦ湡 + /// </summary> + [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "浜у搧鍛ㄦ湡")] + public string DateCode { get; set; } + + + /// <summary> + /// 鍑哄簱鍚堟牸PCS鏁� + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱鍚堟牸PCS鏁�")] + public float QtyPcs { get; set; } + + /// <summary> + /// 宸插嚭鏁伴噺 + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "宸插嚭鏁伴噺")] + public float OverQtyPcs { get; set; } + + /// <summary> + /// 閿佸畾鏁伴噺 + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "閿佸畾鏁伴噺")] + public float LockQtyPcs { get; set; } + + /// <summary> + /// Set鏁� + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "Set鏁�")] + public float SetQty { get; set; } + + /// <summary> + /// X鏉挎暟 + /// </summary> + [SugarColumn(IsNullable = true, ColumnDescription = "X鏉挎暟")] + public float XQty { get; set; } + /// <summary> + /// X鏉夸綅 + /// </summary> + [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "X鏉夸綅")] + public string XSite { get; set; } + /// <summary> + /// 鍗曚綅 + /// </summary> + [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍗曚綅")] + public string Unit { get; set; } + + /// <summary> + /// 瀹℃牳鏃ユ湡 + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "瀹℃牳鏃ユ湡")] + public DateTime OrderDate { get; set; } + + /// <summary> + /// 澶囨敞 + /// </summary> + [SugarColumn(IsNullable = true, Length = 500, ColumnDescription = "澶囨敞")] + public string Note { get; set; } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProCollectOutOrderDetailRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProCollectOutOrderDetailRepository.cs" new file mode 100644 index 0000000..dcb92d3 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProCollectOutOrderDetailRepository.cs" @@ -0,0 +1,18 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core.BaseRepository; +using WIDESEA_IOutboundRepository; +using WIDESEA_Model.Models; + +namespace WIDESEA_OutboundRepository +{ + public class ProCollectOutOrderDetailRepository : RepositoryBase<Dt_ProCollectOutOrderDetail>, IProCollectOutOrderDetailRepository + { + public ProCollectOutOrderDetailRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage) + { + } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProCollectOutOrderRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProCollectOutOrderRepository.cs" new file mode 100644 index 0000000..3eb40ac --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProCollectOutOrderRepository.cs" @@ -0,0 +1,18 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core.BaseRepository; +using WIDESEA_IOutboundRepository; +using WIDESEA_Model.Models; + +namespace WIDESEA_OutboundRepository +{ + public class ProCollectOutOrderRepository : RepositoryBase<Dt_ProCollectOutOrder>, IProCollectOutOrderRepository + { + public ProCollectOutOrderRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage) + { + } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs" index 8e775e6..c3817df 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs" @@ -32,8 +32,9 @@ public IErpProScrapSheetService ErpProScrapSheetService { get; } public IErpProScrapSheetDetailService ErpProScrapSheetDetailService { get; } + public IProCollectOutOrderService ProCollectOutOrderService { get; } public OutboundService(IOutboundOrderDetailService outboundOrderDetailService, IMesRworkOutboundOrderService rworkOutboundOrderService,IMesPPOutboundOrderDetailService mesPPOutboundOrderDetailService, IMesPPCutOutboundOrderDetailService mesPPCutOutboundOrderDetailService, IMesPPCutOutboundOrderService mesPPCutOutboundOrderService, IMesPPOutboundOrderService mesPPOutboundOrderService, IOutboundOrderService outboundOrderService, IOutStockLockInfoService outboundStockLockInfoService, IMesOutboundOrderService mesOutboundOrderService,IProOutOrderService proOutOrderService, IProOutOrderDetailService proOutOrderDetailService,IErpProTransferOrderService erpProTransferOrderService, - IErpProScrapSheetService erpProScrapSheetService, IErpProScrapSheetDetailService erpProScrapSheetDetailService) + IErpProScrapSheetService erpProScrapSheetService, IErpProScrapSheetDetailService erpProScrapSheetDetailService,IProCollectOutOrderService proCollectOutOrderService) { OutboundOrderDetailService = outboundOrderDetailService; OutboundOrderService = outboundOrderService; @@ -49,6 +50,7 @@ ErpProTransferOrderService = erpProTransferOrderService; ErpProScrapSheetService = erpProScrapSheetService; ErpProScrapSheetDetailService = erpProScrapSheetDetailService; + ProCollectOutOrderService= proCollectOutOrderService; } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProCollectOutOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProCollectOutOrderDetailService.cs" new file mode 100644 index 0000000..623f36d --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProCollectOutOrderDetailService.cs" @@ -0,0 +1,52 @@ +锘縰sing AutoMapper; +using Castle.Core.Resource; +using Org.BouncyCastle.Asn1.Cmp; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using WIDESEA_Common.OrderEnum; +using WIDESEA_Common.StockEnum; +using WIDESEA_Common.WareHouseEnum; +using WIDESEA_Core; +using WIDESEA_Core.BaseRepository; +using WIDESEA_Core.BaseServices; +using WIDESEA_Core.CodeConfigEnum; +using WIDESEA_Core.Enums; +using WIDESEA_Core.Helper; +using WIDESEA_DTO.ERP; +using WIDESEA_DTO.Outbound; +using WIDESEA_External.ERPService; +using WIDESEA_External.Model; +using WIDESEA_IBasicRepository; +using WIDESEA_IBasicService; +using WIDESEA_IOutboundRepository; +using WIDESEA_IOutboundService; +using WIDESEA_IRecordService; +using WIDESEA_IStockRepository; +using WIDESEA_IStockService; +using WIDESEA_Model.Models; + +namespace WIDESEA_OutboundService +{ + public partial class ProCollectOutOrderDetailService : ServiceBase<Dt_ProCollectOutOrderDetail, IProCollectOutOrderDetailRepository>, IProCollectOutOrderDetailService + { + private readonly IUnitOfWorkManage _unitOfWorkManage; + private readonly IBasicRepository _basicRepository; + private readonly IMapper _mapper; + private readonly IInvokeERPService _invokeERPService; + + public IProCollectOutOrderDetailRepository Repository => BaseDal; + + public ProCollectOutOrderDetailService(IProCollectOutOrderDetailRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository, IMapper mapper, IInvokeERPService invokeERPService) : base(BaseDal) + { + _unitOfWorkManage = unitOfWorkManage; + _basicRepository = basicRepository; + _mapper = mapper; + _invokeERPService = invokeERPService; + } + + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProCollectOutOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProCollectOutOrderService.cs" new file mode 100644 index 0000000..6fd1c16 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProCollectOutOrderService.cs" @@ -0,0 +1,105 @@ +锘縰sing AutoMapper; +using Castle.Core.Resource; +using Org.BouncyCastle.Asn1.Cmp; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using WIDESEA_Common.OrderEnum; +using WIDESEA_Common.StockEnum; +using WIDESEA_Common.WareHouseEnum; +using WIDESEA_Core; +using WIDESEA_Core.BaseRepository; +using WIDESEA_Core.BaseServices; +using WIDESEA_Core.CodeConfigEnum; +using WIDESEA_Core.Enums; +using WIDESEA_Core.Helper; +using WIDESEA_DTO.ERP; +using WIDESEA_DTO.Outbound; +using WIDESEA_External.ERPService; +using WIDESEA_External.Model; +using WIDESEA_IBasicRepository; +using WIDESEA_IBasicService; +using WIDESEA_IOutboundRepository; +using WIDESEA_IOutboundService; +using WIDESEA_IRecordService; +using WIDESEA_IStockRepository; +using WIDESEA_IStockService; +using WIDESEA_Model.Models; + +namespace WIDESEA_OutboundService +{ + public partial class ProCollectOutOrderService : ServiceBase<Dt_ProCollectOutOrder, IProCollectOutOrderRepository>, IProCollectOutOrderService + { + private readonly IUnitOfWorkManage _unitOfWorkManage; + private readonly IBasicRepository _basicRepository; + private readonly IMapper _mapper; + private readonly IInvokeERPService _invokeERPService; + private readonly IProCollectOutOrderDetailRepository _proCollectOutOrderDetailRepository; + + public IProCollectOutOrderRepository Repository => BaseDal; + + public ProCollectOutOrderService(IProCollectOutOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository, IMapper mapper, IInvokeERPService invokeERPService,IProCollectOutOrderDetailRepository proCollectOutOrderDetailRepository) : base(BaseDal) + { + _unitOfWorkManage = unitOfWorkManage; + _basicRepository = basicRepository; + _mapper = mapper; + _invokeERPService = invokeERPService; + _proCollectOutOrderDetailRepository = proCollectOutOrderDetailRepository; + } + + public WebResponseContent ProductOutOrder(ErpProOutLingOrder erpProOutLingOrder) + { + WebResponseContent content = new WebResponseContent(); + try + { + Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == erpProOutLingOrder.WaType); + if (warehouse == null) + { + return content.Error($"鏈壘鍒拌浠撳簱淇℃伅"); + } + Dt_ProCollectOutOrder proCollectOutOrder = BaseDal.Db.Queryable<Dt_ProCollectOutOrder>().Where(x=>x.ProCollectOutOrderNo==erpProOutLingOrder.OrderNo).Includes(x=>x.Details).First(); + if (_proCollectOutOrderDetailRepository.QueryFirst(x=>x.RowId==erpProOutLingOrder.RowId)!=null) + { + return content.Error($"鎴愬搧棰嗘枡鍗�,琛屽彿{erpProOutLingOrder.RowId}宸插瓨鍦�"); + } + if (proCollectOutOrder!=null) + { + if (proCollectOutOrder.ProOrderStatus!= OutOrderStatusEnum.鏈紑濮�.ObjToInt()) + { + return content.Error($"褰撳墠鍗曟嵁宸插紑濮嬫墽琛�"); + } + else + { + Dt_ProCollectOutOrderDetail proCollectOutOrderDetail = _mapper.Map<Dt_ProCollectOutOrderDetail>(erpProOutLingOrder); + proCollectOutOrderDetail.ProCollectOrderId = proCollectOutOrder.Id; + _proCollectOutOrderDetailRepository.AddData(proCollectOutOrderDetail); + return content.OK("鎺ユ敹鎴愬姛"); + } + } + else + { + Dt_ProCollectOutOrderDetail proCollectOutOrderDetail = _mapper.Map<Dt_ProCollectOutOrderDetail>(erpProOutLingOrder); + + Dt_ProCollectOutOrder collectOutOrder = new Dt_ProCollectOutOrder() + { + WarehouseId = warehouse.WarehouseId, + ProCollectOutOrderNo = erpProOutLingOrder.OrderNo, + ProOrderType = ErpProOutTypeEnum.ProCollect.ObjToInt(), + ProOrderStatus = OutOrderStatusEnum.鏈紑濮�.ObjToInt(), + Details=new List<Dt_ProCollectOutOrderDetail> { proCollectOutOrderDetail } + }; + BaseDal.Db.InsertNav(collectOutOrder).Include(x=>x.Details).ExecuteCommand(); + return content.OK("鎺ユ敹鎴愬姛"); + } + } + catch (Exception ex) + { + content.Error(ex.Message); + } + return content; + } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" index 833e973..696e8d3 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" @@ -107,18 +107,31 @@ { return content.Error($"瀹㈡埛{item.Customer}涓嶅瓨鍦�!"); } + //瀵勫敭鍗曟嵁 + if (outOrderDTO.OType == 2) + { + Dt_ProOutOrderDetail? ExistProDetail = proOutOrderDetails.FirstOrDefault(x => x.PCode == item.PCode && x.SaleOrder == item.SaleOrder && x.PVer == item.PVer && x.DateCode == item.DateCode); + if (ExistProDetail!=null) + { + Dt_ProOutOrderDetail OutOrderDetail = _mapper.Map<Dt_ProOutOrderDetail>(item); + ExistProDetail.QtyPcs += (OutOrderDetail.QtyPcs + OutOrderDetail.SpareQty); + ExistProDetail.SpareQty += OutOrderDetail.SpareQty; + continue; + } + } + Dt_ProOutOrderDetail proOutOrderDetail = _mapper.Map<Dt_ProOutOrderDetail>(item); if (!string.IsNullOrEmpty(item.SaleOrder)) { - if (keyValuePairs!=null && keyValuePairs.ContainsKey(item.SaleOrder)) + if (keyValuePairs != null && keyValuePairs.ContainsKey(item.SaleOrder)) { proOutOrderDetail.EndCustomer = keyValuePairs[item.SaleOrder]; } else { string request = _invokeERPService.InvokeProSaleCustomer(item.SaleOrder); - ErpSaleCustomResponseContent responseContent=request.DeserializeObject<ErpSaleCustomResponseContent>(); - if (responseContent.Code!=200) + ErpSaleCustomResponseContent responseContent = request.DeserializeObject<ErpSaleCustomResponseContent>(); + if (responseContent.Code != 200) { return content.Error($"璁㈠崟{item.SaleOrder}缁堢瀹㈡埛鑾峰彇澶辫触!"); } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/AssignInboundTaskLocation_BC.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/AssignInboundTaskLocation_BC.cs" index a04ed7f..3d2bf8f 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/AssignInboundTaskLocation_BC.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/AssignInboundTaskLocation_BC.cs" @@ -164,15 +164,15 @@ string roadwayNo = ""; if (heightType == 1) { - List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => (x.LocationType == palletType || x.LocationType == LocationTypeEnum.Undefined.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && roadwayNos.Contains(x.RoadwayNo) && x.Layer <= 3).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList(); + List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => (x.LocationType == palletType || x.LocationType == LocationTypeEnum.Undefined.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && roadwayNos.Contains(x.RoadwayNo) && x.Layer <= 4).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList(); roadwayNo = locationCounts.OrderBy(x => x.Count).FirstOrDefault()?.RoadwayNo ?? ""; } + //else if (heightType == 2) + //{ + // List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => (x.LocationType == palletType || x.LocationType == LocationTypeEnum.Undefined.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && roadwayNos.Contains(x.RoadwayNo) && x.Layer == 4).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList(); + // roadwayNo = locationCounts.OrderBy(x => x.Count).FirstOrDefault()?.RoadwayNo ?? ""; + //} else if (heightType == 2) - { - List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => (x.LocationType == palletType || x.LocationType == LocationTypeEnum.Undefined.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && roadwayNos.Contains(x.RoadwayNo) && x.Layer == 4).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList(); - roadwayNo = locationCounts.OrderBy(x => x.Count).FirstOrDefault()?.RoadwayNo ?? ""; - } - else if (heightType == 3) { List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => (x.LocationType == palletType || x.LocationType == LocationTypeEnum.Undefined.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && roadwayNos.Contains(x.RoadwayNo) && x.Layer == 5).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList(); roadwayNo = locationCounts.OrderBy(x => x.Count).FirstOrDefault()?.RoadwayNo ?? ""; @@ -212,13 +212,13 @@ List<LocationCount> locationCounts = new List<LocationCount>(); if (heightType == 1) { - locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => (x.LocationType == task.PalletType || (IsBCS ? false : x.LocationType == LocationTypeEnum.Undefined.ObjToInt())) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && (IsBCS ? !IsBCS : ("SC01_BC".Contains(x.RoadwayNo) ? x.Column % 2 == 0 : x.Column % 2 == 1)) && x.Layer <= 3 && roadwayNos.Contains(x.RoadwayNo)).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList(); + locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => (x.LocationType == task.PalletType || (IsBCS ? false : x.LocationType == LocationTypeEnum.Undefined.ObjToInt())) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && (IsBCS ? !IsBCS : ("SC01_BC".Contains(x.RoadwayNo) ? x.Column % 2 == 0 : x.Column % 2 == 1)) && x.Layer <= 4 && roadwayNos.Contains(x.RoadwayNo)).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList(); } + //else if(heightType == 2) + //{ + // locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => (x.LocationType == task.PalletType || (IsBCS ? false : x.LocationType == LocationTypeEnum.Undefined.ObjToInt())) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && (IsBCS ? !IsBCS : ("SC01_BC".Contains(x.RoadwayNo) ? x.Column % 2 == 0 : x.Column % 2 == 1)) && x.Layer == 4 && roadwayNos.Contains(x.RoadwayNo)).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList(); + //} else if(heightType == 2) - { - locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => (x.LocationType == task.PalletType || (IsBCS ? false : x.LocationType == LocationTypeEnum.Undefined.ObjToInt())) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && (IsBCS ? !IsBCS : ("SC01_BC".Contains(x.RoadwayNo) ? x.Column % 2 == 0 : x.Column % 2 == 1)) && x.Layer == 4 && roadwayNos.Contains(x.RoadwayNo)).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList(); - } - else if(heightType == 3) { locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => (x.LocationType == task.PalletType || (IsBCS ? false : x.LocationType == LocationTypeEnum.Undefined.ObjToInt())) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && (IsBCS ? !IsBCS : ("SC01_BC".Contains(x.RoadwayNo) ? x.Column % 2 == 0 : x.Column % 2 == 1)) && x.Layer == 5 && roadwayNos.Contains(x.RoadwayNo)).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList(); } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" index 7ba7bb8..96a7506 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" @@ -139,29 +139,6 @@ return WebResponseContent.Instance.Error(ex.Message); } } - /// <summary> - /// 鏀捐揣瀹屾垚 - /// </summary> - /// <param name="code"></param> - /// <returns></returns> - public WebResponseContent PutFinish(string code, string barCode = "", string taskNum = "") - { - try - { - string url = AppSettings.Get("WCS"); - if (string.IsNullOrEmpty(url)) - { - return WebResponseContent.Instance.Error($"鏈壘鍒癢CSAApi鍦板潃,璇锋鏌ラ厤缃枃浠�"); - } - string response = HttpHelper.Post($"{url}/api/CTU_AGV/PutFinish?code={code}&barCode={barCode}&taskNum={taskNum}" ); - - return JsonConvert.DeserializeObject<WebResponseContent>(response) ?? WebResponseContent.Instance.Error("杩斿洖閿欒"); - } - catch (Exception ex) - { - return WebResponseContent.Instance.Error(ex.Message); - } - } public WebResponseContent AGVTasks(SaveModel saveModel) { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs" index fb08180..4cbe66d 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs" @@ -64,13 +64,13 @@ int heightType = 0; if(needRelocationItem.Layer == 5) { - heightType = 3; - } - else if(needRelocationItem.Layer == 4) - { heightType = 2; } - else if(needRelocationItem.Layer <= 3 && needRelocationItem.Layer >= 1) + //else if(needRelocationItem.Layer == 4) + //{ + // heightType = 2; + //} + else if(needRelocationItem.Layer <= 4 && needRelocationItem.Layer >= 1) { heightType = 1; } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs" index 4431333..b80e8b7 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs" @@ -177,7 +177,9 @@ [HttpPost, Route("ProductOutOrder"), AllowAnonymous, MethodParamsValidate] public ErpResponseContent ProductOutOrder([FromBody] Root<ErpProOutLingOrder> root) { - return Instance.OK(); + WebResponseContent content = _outboundService.ProCollectOutOrderService.ProductOutOrder(root.Content); + if (content.Status) return Instance.OK(); + else return Instance.Error(content.Message); } /// <summary> /// 閿�鍞寚娲惧崟鎺ユ敹 diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProCollectOutOrderController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProCollectOutOrderController.cs" new file mode 100644 index 0000000..c4cefee --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProCollectOutOrderController.cs" @@ -0,0 +1,23 @@ +锘縰sing Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using WIDESEA_Core; +using WIDESEA_Core.BaseController; +using WIDESEA_IOutboundService; +using WIDESEA_Model.Models; +using WIDESEA_OutboundService; + +namespace WIDESEA_WMSServer.Controllers.Outbound +{ + /// <summary> + /// 鎴愬搧棰嗘枡鍑哄簱鍗� + /// </summary> + [Route("api/ProCollectOutOrder")] + [ApiController] + public class ProCollectOutOrderController : ApiBaseController<IProCollectOutOrderService, Dt_ProCollectOutOrder> + { + public ProCollectOutOrderController(IProCollectOutOrderService service) : base(service) + { + + } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs" index bc8e246..fa699e3 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs" @@ -41,6 +41,7 @@ CreateMap<Dt_MesProInOrderDetail, Dt_ProStockInfoDetail>().ForMember(x => x.ProOutDetailStatus, b => b.MapFrom(b => StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt())).ForMember(x => x.OutboundQuantity, b => b.MapFrom(b => 0)).ForMember(x => x.StockPcsQty, b => b.MapFrom(b => b.OKPCSQTY)); CreateMap<ErpProductWarehousingOrderDTO, Dt_ErpProInOrder>().ForMember(x => x.ProSaleOrderNo, b => b.MapFrom(b => b.SaleOrder)).ForMember(x => x.Remark, b => b.MapFrom(b => b.Note)).ForMember(x => x.UpperOrderNo, b => b.MapFrom(b => b.TransferNo)).ForMember(x => x.ProStockAttribute, b => b.MapFrom(b => ProStockAttributeEnum.鎴愬搧.ObjToInt())).ForMember(x => x.ProInStatus, b => b.MapFrom(b => InOrderStatusEnum.鏈紑濮�.ObjToInt())); CreateMap<ErpProductTransferOrderDTO, Dt_ErpProTransferOrder>().ForMember(x => x.ProSaleOrderNo, b => b.MapFrom(b => b.SaleOrder)).ForMember(x => x.Remark, b => b.MapFrom(b => b.Note)).ForMember(x => x.UpperOrderNo, b => b.MapFrom(b => b.TransferNo)).ForMember(x => x.OrderType, b => b.MapFrom(b => ErpProOutTypeEnum.ProOutAllocat.ObjToInt())).ForMember(x => x.ProStockAttribute, b => b.MapFrom(b => ProStockAttributeEnum.鐮斿彂.ObjToInt())); + CreateMap<ErpProOutLingOrder, Dt_ProCollectOutOrderDetail>().ForMember(x => x.ProOrderDetailStatus, b => b.MapFrom(b => 0)).ForMember(x => x.OverQtyPcs, b => b.MapFrom(b => 0)).ForMember(x => x.LockQtyPcs, b => b.MapFrom(b => 0)); } } } -- Gitblit v1.9.3