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