From 1c7d84d153f22148c7c8dbf80aa646edb0c53648 Mon Sep 17 00:00:00 2001
From: 刘磊 <1161824510@qq.com>
Date: 星期四, 18 十二月 2025 09:24:57 +0800
Subject: [PATCH] 同步
---
项目代码/WMS/WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt | 0
项目代码/WMS/WMSClient/src/router/tables.js | 25
项目代码/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs | 1
项目代码/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_AssemblyOrderInfoRepository.cs | 15
项目代码/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_AssemblyOrderInfoService.cs | 39 +
项目代码/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs | 2
项目代码/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_PaintingOrderInfoRepository.cs | 10
项目代码/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_AssemblyOrderInfo.cs | 6
项目代码/WMS/WMSServer/WIDESEA_IStorageTaskService/BDCManager/IBDCManager.cs | 11
项目代码/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs | 49
项目代码/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_PaintingOrderInfoService.cs | 473 ++++++++++++++
项目代码/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs | 73 +-
项目代码/WMS/WMSServer/WIDESEA_BusinessServices/Dt_AreaInfoService.cs | 1
项目代码/WMS/WMSServer/WIDESEA_WMSServer/Controllers/BasicInfo/Dt_BDCConfigurationController.cs | 21
项目代码/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.js | 75 ++
项目代码/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_PaintingOrderInfoRepository.cs | 15
项目代码/WMS/WMSServer/WIDESEA_Common/BDC/BDCEnum.cs | 28
项目代码/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs | 40
项目代码/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs | 47
项目代码/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_AssemblyOrderInfoController.cs | 16
项目代码/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs | 4
项目代码/WMS/WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue | 4
项目代码/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.vue | 93 ++
项目代码/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_AssemblyOrderInfoService.cs | 473 ++++++++++++++
项目代码/WMS/WMSServer/WIDESEA_IStorageBasicService/BasicInfo/IDt_BDCConfigurationService.cs | 2
项目代码/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/Partial/BDCManager.cs | 61 +
项目代码/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs | 24
项目代码/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_PaintingOrderInfoService.cs | 6
项目代码/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_PaintingOrderInfoController.cs | 16
项目代码/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.js | 75 ++
项目代码/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_PaintingOrderInfo.cs | 148 ++--
项目代码/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_AssemblyOrderInfoRepository.cs | 10
项目代码/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue | 87 ++
33 files changed, 1,742 insertions(+), 208 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.js"
new file mode 100644
index 0000000..79fcdc6
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.js"
@@ -0,0 +1,75 @@
+/*****************************************************************************************
+** Author:jxx 2022
+** QQ:283591387
+**瀹屾暣鏂囨。瑙侊細http://v2.volcore.xyz/document/api 銆愪唬鐮佺敓鎴愰〉闈iewGrid銆�
+**甯哥敤绀轰緥瑙侊細http://v2.volcore.xyz/document/vueDev
+**鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev
+*****************************************************************************************/
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+
+let extension = {
+ components: {
+ //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+ gridHeader: '',
+ gridBody: '',
+ gridFooter: '',
+ //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+ buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+ methods: {
+ //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+ onInit() { //妗嗘灦鍒濆鍖栭厤缃墠锛�
+ //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽�
+ // this.buttons.unshift({ //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍
+ // name: '鎸夐挳', //鎸夐挳鍚嶇О
+ // icon: 'el-icon-document', //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。)
+ // type: 'primary', //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button
+ // onClick: function () {
+ // this.$Message.success('鐐瑰嚮浜嗘寜閽�');
+ // }
+ // });
+
+ //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
+ this.boxOptions.labelWidth = 150;
+ },
+ 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); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+ },
+ modelOpenAfter(row) {
+ //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+ //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+ //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+ //(3)this.editFormFields.瀛楁='xxx';
+ //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+ //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+ }
+ }
+};
+export default extension;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.js"
new file mode 100644
index 0000000..79fcdc6
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.js"
@@ -0,0 +1,75 @@
+/*****************************************************************************************
+** Author:jxx 2022
+** QQ:283591387
+**瀹屾暣鏂囨。瑙侊細http://v2.volcore.xyz/document/api 銆愪唬鐮佺敓鎴愰〉闈iewGrid銆�
+**甯哥敤绀轰緥瑙侊細http://v2.volcore.xyz/document/vueDev
+**鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev
+*****************************************************************************************/
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+
+let extension = {
+ components: {
+ //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+ gridHeader: '',
+ gridBody: '',
+ gridFooter: '',
+ //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+ buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+ methods: {
+ //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+ onInit() { //妗嗘灦鍒濆鍖栭厤缃墠锛�
+ //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽�
+ // this.buttons.unshift({ //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍
+ // name: '鎸夐挳', //鎸夐挳鍚嶇О
+ // icon: 'el-icon-document', //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。)
+ // type: 'primary', //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button
+ // onClick: function () {
+ // this.$Message.success('鐐瑰嚮浜嗘寜閽�');
+ // }
+ // });
+
+ //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
+ this.boxOptions.labelWidth = 150;
+ },
+ 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); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+ },
+ modelOpenAfter(row) {
+ //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+ //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+ //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+ //(3)this.editFormFields.瀛楁='xxx';
+ //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+ //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+ }
+ }
+};
+export default extension;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/tables.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/tables.js"
index 1bd7628..65c029c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/tables.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/tables.js"
@@ -284,21 +284,28 @@
// }
},
{
- path: '/VV_PalletStockInfo',
- name: 'VV_PalletStockInfo',
- component: () => import('@/views/widesea_wms/stock/VV_PalletStockInfo.vue'),
- // meta: {
- // keepAlive: true
- // }
- },
-
- {
path: '/locationInfoRow',
name: 'locationInfoRow',
component: () => import('@/views/widesea_wms/stock/locationInfoRow.vue'),
meta: {
keepAlive: false
}
+ },
+ {
+ path: '/Dt_PaintingOrderInfo',
+ name: 'Dt_PaintingOrderInfo',
+ component: () => import('@/views/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.vue'),
+ // meta: {
+ // keepAlive: true
+ // }
+ },
+ {
+ path: '/Dt_AssemblyOrderInfo',
+ name: 'Dt_AssemblyOrderInfo',
+ component: () => import('@/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue'),
+ // meta: {
+ // keepAlive: true
+ // }
}
]
export default tables
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue"
new file mode 100644
index 0000000..1584219
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue"
@@ -0,0 +1,87 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wms/invoices/Dt_OutOrder.js姝ゅ缂栧啓
+ -->
+<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/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+ setup() {
+ const table = ref({
+ key: 'id',
+ footer: "Foots",
+ cnName: '娑傝宸ュ崟',
+ name: 'Orderinfo/Dt_AssemblyOrderInfo',
+ url: "/Dt_AssemblyOrderInfo/",
+ sortName: "Id"
+ });
+ const editFormFields = ref({
+ "orderNumber": "",
+ "status": "",
+ "orderDate": "",
+ "warehouseId": "",
+ "upperOutOrderId": "",
+ "remarks": "",
+
+ });
+ const editFormOptions = ref([
+ ]);
+ const searchFormFields = ref({});
+ const searchFormOptions = ref([
+ [
+ { "title": "宸ュ崟鍙�", "field": "workOrderNo", "type": "text" },
+ { "title": "璁㈠崟鍙�", "field": "vehicleOrderNo", "type": "text" },
+ { "title": "pvi", "field": "pvi", "type": "text" },
+ ],
+ ]);
+ const columns = ref([{ field: 'Id', title: '涓婚敭', type: 'int', width: 110, hidden: true, readonly: true, require: true, align: 'left' },
+ { field: 'plantCode', title: '宸ュ巶', type: 'string', width: 220, require: true, align: 'left', sort: true },
+ { field: 'splitStrategy', title: '鐢熶骇妯″紡', type: 'string', width: 110, require: true, align: 'left' },
+ { field: 'vehicleOrderNo', title: '璁㈠崟鍙�', type: 'string', width: 220, require: true, align: 'left' },
+ { field: 'orderType', title: '璁㈠崟绫诲瀷', type: 'string', width: 110, require: true, align: 'left', bind: { key: "OutOrderType", data: [] } },
+ { field: 'workOrderNo', title: '宸ュ崟鍙�', type: 'string', width: 220, require: true, align: 'left' },
+ { field: 'pvi', title: 'pvi', type: 'string', width: 220, require: true, align: 'left' },
+ { field: 'sequenceNo', title: '宸ュ崟椤哄簭鍙�', type: 'string', width: 220, require: true, align: 'left' },
+ { field: 'vehicleCharacteristic', title: '杞﹀瀷鐗瑰緛鍊�', type: 'string', width: 150, require: true, align: 'left', sort: true },
+ { field: 'vehicleCode', title: '鏁磋溅鐗╂枡鍙�', type: 'string', width: 110, require: true, align: 'left' },
+ { field: 'biwMaterial', title: '鐧借溅韬墿鏂欏彿', type: 'string', width: 220, require: true, align: 'left', sort: true },
+ { field: 'pbMaterial', title: '褰╄溅韬墿鏂欏彿', type: 'string', width: 220, require: true, align: 'left' },
+ { field: 'workOrderSendStatus', title: '宸ュ崟涓嬪彂鐘舵��', type: 'string', width: 220, require: true, align: 'left' },
+ { field: 'spare1', title: '澶囩敤1', type: 'string', width: 110, require: true, align: 'left' },
+ { field: 'spare2', title: '澶囩敤2', type: 'string', width: 110, require: true, align: 'left' },
+ { field: 'spare3', title: '澶囩敤3', type: 'string', width: 110, require: true, align: 'left' },
+
+ { field: 'creater', title: '鍒涘缓浜�', type: 'string', sort: true, width: 110, align: 'left' },
+ { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
+ { field: 'modifier', title: '淇敼浜�', type: 'string', sort: true, width: 100, align: 'left' },
+ { field: 'modifyDate', title: '淇敼鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
+ ]);
+ const detail = ref({
+ cnName: "鍑哄簱鏄庣粏璁㈠崟",
+ table: "#detailTable",
+ columns: [
+ ],
+ sortName: "id",
+ key: "iD"
+ });
+ return {
+ table,
+ extend,
+ editFormFields,
+ editFormOptions,
+ searchFormFields,
+ searchFormOptions,
+ columns,
+ detail,
+ };
+ },
+});
+</script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.vue"
new file mode 100644
index 0000000..1e70bfa
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.vue"
@@ -0,0 +1,93 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wms/invoices/Dt_OutOrder.js姝ゅ缂栧啓
+ -->
+<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/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.js";
+ import { ref, defineComponent } from "vue";
+ export default defineComponent({
+ setup() {
+ const table = ref({
+ key: 'id',
+ footer: "Foots",
+ cnName: '娑傝宸ュ崟',
+ name: 'Orderinfo/Dt_PaintingOrderInfo',
+ url: "/Dt_PaintingOrderInfo/",
+ sortName: "Id"
+ });
+ const editFormFields = ref({
+ "orderNumber":"",
+ "status":"",
+ "orderDate":"",
+ "warehouseId":"",
+ "upperOutOrderId":"",
+ "remarks":"",
+
+ });
+ const editFormOptions = ref([
+ ]);
+ const searchFormFields = ref({});
+ const searchFormOptions = ref([
+ [
+ { "title": "宸ュ崟鍙�", "field": "workOrderNo", "type": "text" },
+ { "title": "pvi", "field": "pvi", "type": "text" },
+ { "title": "鍑哄簱鏃ユ湡", "field": "orderDate", "type": "datetime" },
+ ],
+ ]);
+ const columns = ref([{field:'Id',title:'涓婚敭',type:'int',width:110,hidden:true,readonly:true,require:true,align:'left'},
+ {field:'plantCode',title:'宸ュ巶',type:'string',width:220,require:true,align:'left',sort:true},
+ {field:'workshopCode',title:'杞﹂棿',type:'string',width:150,require:true,align:'left',sort:true},
+ {field:'splitStrategy',title:'鐢熶骇妯″紡',type:'string',width:110,require:true,align:'left'},
+ {field:'workOrderNo',title:'宸ュ崟鍙�',type:'string',width:220,require:true,align:'left'},
+ {field:'workOrderType',title:'宸ュ崟绫诲瀷',type:'string',width:110,require:true,align:'left',bind: { key: "OutOrderType", data: []}},
+ {field:'pvi',title:'pvi',type:'string',width:220,require:true,align:'left'},
+ {field:'biwMaterial',title:'鐧借溅韬墿鏂欏彿',type:'string',width:220,require:true,align:'left',sort:true},
+ {field:'vehicleCharacteristic',title:'杞﹀瀷鐗瑰緛鍊�',type:'string',width:150,require:true,align:'left',sort:true},
+ {field:'skylightCharacteristic',title:'澶╃獥鐗瑰緛鍊�',type:'string',width:110,require:true,align:'left'},
+ {field:'carBodyCharacteristic',title:'杞﹁韩棰滆壊',type:'string',width:220,require:true,align:'left'},
+ {field:'twoToneCharacteristic',title:'鍙岃壊杞﹁韩',type:'string',width:110,require:true,align:'left'},
+ {field:'sequenceNo',title:'宸ュ崟椤哄簭鍙�',type:'string',width:220,require:true,align:'left'},
+ {field:'config1',title:'CTC閰嶇疆',type:'string',width:110,require:true,align:'left'},
+ {field:'pbMaterial',title:'褰╄溅韬墿鏂欏彿',type:'string',width:220,require:true,align:'left'},
+ {field:'config3',title:'澶囩敤3',type:'string',width:110,require:true,align:'left'},
+ {field:'workOrderSendStatus',title:'宸ュ崟涓嬪彂鐘舵��',type:'string',width:220,require:true,align:'left'},
+ {field:'creater',title:'鍒涘缓浜�',type:'string',sort:true,width:110,align:'left'},
+ {field:'createDate',title:'鍒涘缓鏃堕棿',type:'datetime',sort:true,width:150,align:'left',sort:true},
+ {field:'modifier',title:'淇敼浜�',type:'string',sort:true,width:100,align:'left'},
+ {field:'modifyDate',title:'淇敼鏃堕棿',type:'datetime',sort:true,width:150,align:'left',sort:true},
+ ]);
+ const detail = ref({
+ cnName: "鍑哄簱鏄庣粏璁㈠崟",
+ table: "#detailTable",
+ columns: [
+ ],
+ sortName: "id",
+ key: "iD"
+ });
+ return {
+ table,
+ extend,
+ editFormFields,
+ editFormOptions,
+ searchFormFields,
+ searchFormOptions,
+ columns,
+ detail,
+ };
+ },
+ });
+</script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue"
index 4cd8bb3..41c8778 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue"
@@ -31,7 +31,7 @@
const searchFormOptions = ref([
[
{ "title": "浠诲姟鍙�", "field": "taskNum", "type": "text" },
- { "title": "鎵樼洏/鏂欑鍙�", "field": "palletCode", "type": "text" },
+ { "title": "婊戞﹪鍙�", "field": "palletCode", "type": "text" },
{ "title": "浠诲姟绫诲瀷", "field": "taskType", "type": "select", dataKey: "TaskType", data: [] },
{ "title": "浠诲姟鐘舵��", "field": "taskState", "type": "select", dataKey: "TaskStatus", data: [] },
@@ -51,7 +51,7 @@
const columns = ref([{ field: 'TaskId', title: '涓婚敭', type: 'string', width: 110, hidden: true, readonly: true, require: true, align: 'left' },
{ field: 'taskNum', title: '浠诲姟鍙�', type: 'int', width: 110, align: 'left', sort: true },
{ field: 'pvi', title: 'pvi', type: 'int', width: 110, align: 'left',},
- { field: 'palletCode', title: '鎵樼洏/鏂欑鍙�', type: 'string', width: 180, align: 'left' },
+ { field: 'palletCode', title: '婊戞﹪鍙�', type: 'string', width: 180, align: 'left' },
{ field: 'pnboundNo', title: '鍗曟嵁鍙�', type: 'string', width: 110, align: 'left',hidden:true },
{ field: 'groupID', title: '搴撳瓨ID', type: 'int', width: 110, hidden: true, align: 'left' },
{ field: 'groupDetailId', title: '缁勭洏鏄庣粏ID', type: 'int', width: 110, hidden: true, align: 'left' },
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt"
index c6cc93b..7b4292e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_BusinessServices/Dt_AreaInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_BusinessServices/Dt_AreaInfoService.cs"
index d0baa26..24bb20d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_BusinessServices/Dt_AreaInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_BusinessServices/Dt_AreaInfoService.cs"
@@ -20,7 +20,6 @@
/// 鑾峰彇鍖哄煙鍒楄〃
/// </summary>
/// <returns></returns>
- [HttpGet, Route("GetArea"), AllowAnonymous]
public object GetArea()
{
var data = BaseDal.QueryData();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/BDC/BDCEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/BDC/BDCEnum.cs"
index 382b929..ab12ffa 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/BDC/BDCEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/BDC/BDCEnum.cs"
@@ -8,17 +8,43 @@
{
public enum BodyType
{
- WhiteBody = 1,
+ /// <summary>
+ /// 鐧借溅韬�
+ /// </summary>
+ WhiteBody = 1,
+
+ /// <summary>
+ /// 褰╄溅韬�
+ /// </summary>
PaintedBody,
}
public enum BodyStatus
{
+ /// <summary>
+ /// 鐒婅
+ /// </summary>
InWeldingShop = 1,
+
+ /// <summary>
+ /// BDC
+ /// </summary>
InBDC,
+
+ /// <summary>
+ /// 娑傝
+ /// </summary>
InPaintingShop,
+
+ /// <summary>
+ /// 鎬昏
+ /// </summary>
InAssemblyShop,
+
+ /// <summary>
+ /// 瀹屾垚
+ /// </summary>
Completed
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageBasicService/BasicInfo/IDt_BDCConfigurationService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageBasicService/BasicInfo/IDt_BDCConfigurationService.cs"
index 461e05c..fbed759 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageBasicService/BasicInfo/IDt_BDCConfigurationService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageBasicService/BasicInfo/IDt_BDCConfigurationService.cs"
@@ -32,7 +32,7 @@
/// 鏇存柊缂撳瓨閰嶇疆
/// </summary>
Task<Dt_BDCConfiguration> UpdateConfiguration(int maxWhiteBody, int maxPaintedBody,
- int maxBatteryCase, int maxEmptySled, string updatedBy);
+ int maxBatteryCase, int maxEmptySled);
/// <summary>
/// 妫�鏌ョ櫧杞﹁韩鏄惁鍙互鍏ュ簱锛堟湭瓒呰繃鏈�澶х紦瀛樻暟锛�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_AssemblyOrderInfoRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_AssemblyOrderInfoRepository.cs"
new file mode 100644
index 0000000..8353da0
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_AssemblyOrderInfoRepository.cs"
@@ -0,0 +1,15 @@
+锘縰sing WIDESEA_Core;
+
+namespace WIDESEA_IStorageOutOrderRepository;
+
+public interface IDt_AssemblyOrderInfoRepository : IRepository<Dt_AssemblyOrderInfo>
+{
+ /// <summary>
+ /// 淇敼鍑哄簱璁㈠崟锛堝鑸慨鏀癸級
+ /// </summary>
+ /// <param name="outOrder"></param>
+ /// <returns>鏄惁鎴愬姛</returns>
+ //Task<bool> OutOrderUpdatedAsync(Dt_OutOrder outOrder);
+
+ //Task<Dt_OutOrder> GetOutOrderByNumberAsync(string orderNumber);
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_PaintingOrderInfoRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_PaintingOrderInfoRepository.cs"
new file mode 100644
index 0000000..e92d657
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_PaintingOrderInfoRepository.cs"
@@ -0,0 +1,15 @@
+锘縰sing WIDESEA_Core;
+
+namespace WIDESEA_IStorageOutOrderRepository;
+
+public interface IDt_PaintingOrderInfoRepository : IRepository<Dt_PaintingOrderInfo>
+{
+ /// <summary>
+ /// 淇敼鍑哄簱璁㈠崟锛堝鑸慨鏀癸級
+ /// </summary>
+ /// <param name="outOrder"></param>
+ /// <returns>鏄惁鎴愬姛</returns>
+ //Task<bool> OutOrderUpdatedAsync(Dt_OutOrder outOrder);
+
+ //Task<Dt_OutOrder> GetOutOrderByNumberAsync(string orderNumber);
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_AssemblyOrderInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_AssemblyOrderInfoService.cs"
new file mode 100644
index 0000000..a4773d4
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_AssemblyOrderInfoService.cs"
@@ -0,0 +1,39 @@
+锘縩amespace WIDESEA_IStorageOutOrderServices;
+
+public interface IDt_AssemblyOrderInfoService : IService<Dt_AssemblyOrderInfo>
+{
+ ///// <summary>
+ ///// 娣诲姞鐢熶骇鍑哄簱鍗�
+ ///// </summary>
+ ///// <param name="model">鍑哄簱鏁版嵁</param>
+ ///// <returns>鎴愬姛鎴栧け璐�</returns>
+ //WebResponseContent AddOutOrderProduction(SaveModel model);
+
+ ///// <summary>
+ ///// 娣诲姞璋冩嫧鍑哄簱鍗�
+ ///// </summary>
+ ///// <param name="model">鍑哄簱鏁版嵁</param>
+ ///// <returns>鎴愬姛鎴栧け璐�</returns>
+ //WebResponseContent AddOutOrderTransfer(SaveModel model);
+
+ ///// <summary>
+ ///// 鏍规嵁鍑哄簱鍗曞彿鏌ヨ鍑哄簱璁㈠崟
+ ///// </summary>
+ ///// <param name="orderNumber">鍑哄簱鍗曞彿</param>
+ ///// <returns>鍑哄簱璁㈠崟</returns>
+ //WebResponseContent GetOutOrderByNumber(string orderNumber);
+
+ ///// <summary>
+ ///// 淇敼鍑哄簱璁㈠崟锛堝鑸慨鏀癸級
+ ///// </summary>
+ ///// <param name="outOrder"></param>
+ ///// <returns>鏄惁鎴愬姛</returns>
+ //Task<bool> OutOrderUpdatedAsync(Dt_OutOrder outOrder);
+
+ ///// <summary>
+ ///// 鏍规嵁璁㈠崟鍒嗛厤鍑哄簱搴撳瓨
+ ///// </summary>
+ ///// <param name="orderNo">璁㈠崟缂栧彿</param>
+ ///// <returns></returns>
+ //Task<WebResponseContent> GetOutboundStockAsync(string orderNo);
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_PaintingOrderInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_PaintingOrderInfoService.cs"
new file mode 100644
index 0000000..1f33ed7
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_PaintingOrderInfoService.cs"
@@ -0,0 +1,6 @@
+锘縩amespace WIDESEA_IStorageOutOrderServices;
+
+public interface IDt_PaintingOrderInfoService : IService<Dt_PaintingOrderInfo>
+{
+
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageTaskService/BDCManager/IBDCManager.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageTaskService/BDCManager/IBDCManager.cs"
index 7dea932..9215aeb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageTaskService/BDCManager/IBDCManager.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageTaskService/BDCManager/IBDCManager.cs"
@@ -8,13 +8,20 @@
{
public interface IBDCManager
{
- int TotalCapacity { get; }
+ List<DtLocationInfo> TotalCapacity { get; }
+
int CurrentOccupancy { get; }
+
List<Dt_CarBody> GetInventory();
- bool AddToBDC(Dt_CarBody body);
+
+ Task<bool> AddToBDC(Dt_CarBody body);
+
Dt_CarBody RetrieveFromBDC(string bodyId);
+
List<Dt_CarBody> RetrieveByModel(string model);
+
List<Dt_CarBody> RetrieveByColor(int color);
+
void GenerateReport();
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs"
index 5c5188d..0d1e8e1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs"
@@ -62,6 +62,6 @@
/// <summary>
/// 鏄惁鍚敤
/// </summary>
- public int IsActive { get; set; }
+ public int IsActive { get; set; } = 1;
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/dt_OrderInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_AssemblyOrderInfo.cs"
similarity index 96%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/dt_OrderInfo.cs"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_AssemblyOrderInfo.cs"
index 966ef7a..d35cf39 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/dt_OrderInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_AssemblyOrderInfo.cs"
@@ -9,8 +9,8 @@
namespace WIDESEA_Model.Models
{
- [SugarTable(nameof(dt_OrderInfo), "鎬昏宸ュ崟淇℃伅")]
- public class dt_OrderInfo: BaseEntity
+ [SugarTable(nameof(Dt_AssemblyOrderInfo), "鎬昏宸ュ崟淇℃伅")]
+ public class Dt_AssemblyOrderInfo : BaseEntity
{
/// <summary>
/// 涓婚敭
@@ -36,7 +36,7 @@
[SugarColumn(IsNullable = true, ColumnDescription = "鐢熶骇妯″紡")]
public string splitStrategy { get; set; }
- public string data { get; set; }
+ //public string data { get; set; }
/// <summary>
/// 璁㈠崟鍙�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/dt_OrderInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_PaintingOrderInfo.cs"
similarity index 68%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/dt_OrderInfo.cs"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_PaintingOrderInfo.cs"
index 966ef7a..d7c3527 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/dt_OrderInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_PaintingOrderInfo.cs"
@@ -9,8 +9,8 @@
namespace WIDESEA_Model.Models
{
- [SugarTable(nameof(dt_OrderInfo), "鎬昏宸ュ崟淇℃伅")]
- public class dt_OrderInfo: BaseEntity
+ [SugarTable(nameof(Dt_PaintingOrderInfo), "娑傝宸ュ崟淇℃伅")]
+ public class Dt_PaintingOrderInfo : BaseEntity
{
/// <summary>
/// 涓婚敭
@@ -29,6 +29,14 @@
public string plantCode { get; set; }
/// <summary>
+ /// 杞﹂棿
+ /// </summary>
+ [ImporterHeader(Name = "杞﹂棿")]
+ [ExporterHeader(DisplayName = "杞﹂棿")]
+ [SugarColumn(IsNullable = true, ColumnDescription = "杞﹂棿")]
+ public string workshopCode { get; set; }
+
+ /// <summary>
/// 鐢熶骇妯″紡
/// </summary>
[ImporterHeader(Name = "鐢熶骇妯″紡")]
@@ -36,26 +44,8 @@
[SugarColumn(IsNullable = true, ColumnDescription = "鐢熶骇妯″紡")]
public string splitStrategy { get; set; }
- public string data { get; set; }
-
/// <summary>
- /// 璁㈠崟鍙�
- /// </summary>
- [ImporterHeader(Name = "璁㈠崟鍙�")]
- [ExporterHeader(DisplayName = "璁㈠崟鍙�")]
- [SugarColumn(IsNullable = true, ColumnDescription = "璁㈠崟鍙�")]
- public string vehicleOrderNo { get; set; }
-
- /// <summary>
- /// 璁㈠崟绫诲瀷
- /// </summary>
- [ImporterHeader(Name = "璁㈠崟绫诲瀷")]
- [ExporterHeader(DisplayName = "璁㈠崟绫诲瀷")]
- [SugarColumn(IsNullable = true, ColumnDescription = "璁㈠崟绫诲瀷")]
- public string orderType { get; set; }
-
- /// <summary>
- /// 宸ュ崟鍙� 鎬昏锛堜竴鍗曞埌搴曟槸鐢熶骇宸ュ崟鍙蜂笁杞﹂棿鍏辩敤锛�
+ /// 宸ュ崟鍙� 娑傝
/// </summary>
[ImporterHeader(Name = "宸ュ崟鍙�")]
[ExporterHeader(DisplayName = "宸ュ崟鍙�")]
@@ -63,36 +53,20 @@
public string workOrderNo { get; set; }
/// <summary>
- /// pvi鍙� 锛堟帓浜ч『搴忓彿2锛�
+ /// 宸ュ崟绫诲瀷
+ /// </summary>
+ [ImporterHeader(Name = "宸ュ崟绫诲瀷")]
+ [ExporterHeader(DisplayName = "宸ュ崟绫诲瀷")]
+ [SugarColumn(IsNullable = true, ColumnDescription = "宸ュ崟绫诲瀷")]
+ public string workOrderType { get; set; }
+
+ /// <summary>
+ /// pvi鍙�
/// </summary>
[ImporterHeader(Name = "pvi鍙�")]
[ExporterHeader(DisplayName = "pvi鍙�")]
[SugarColumn(IsNullable = true, ColumnDescription = "pvi鍙�")]
public string pvi { get; set; }
-
- /// <summary>
- /// 宸ュ崟椤哄簭鍙� 鎺掍骇椤哄簭鍙�1锛堝簭鍒楀彿锛�
- /// </summary>
- [ImporterHeader(Name = "宸ュ崟椤哄簭鍙�")]
- [ExporterHeader(DisplayName = "宸ュ崟椤哄簭鍙�")]
- [SugarColumn(IsNullable = true, ColumnDescription = "宸ュ崟椤哄簭鍙�")]
- public string sequenceNo { get; set; }
-
- /// <summary>
- /// 杞﹀瀷鐗瑰緛鍊�
- /// </summary>
- [ImporterHeader(Name = "杞﹀瀷鐗瑰緛鍊�")]
- [ExporterHeader(DisplayName = "杞﹀瀷鐗瑰緛鍊�")]
- [SugarColumn(IsNullable = true, ColumnDescription = "杞﹀瀷鐗瑰緛鍊�")]
- public string vehicleCharacteristic { get; set; }
-
- /// <summary>
- /// 鏁磋溅鐗╂枡鍙�
- /// </summary>
- [ImporterHeader(Name = "鏁磋溅鐗╂枡鍙�")]
- [ExporterHeader(DisplayName = "鏁磋溅鐗╂枡鍙�")]
- [SugarColumn(IsNullable = true, ColumnDescription = "鏁磋溅鐗╂枡鍙�")]
- public string vehicleCode { get; set; }
/// <summary>
/// 鐧借溅韬墿鏂欏彿
@@ -103,12 +77,68 @@
public string biwMaterial { get; set; }
/// <summary>
+ /// 杞﹀瀷鐗瑰緛鍊�
+ /// </summary>
+ [ImporterHeader(Name = "杞﹀瀷鐗瑰緛鍊�")]
+ [ExporterHeader(DisplayName = "杞﹀瀷鐗瑰緛鍊�")]
+ [SugarColumn(IsNullable = true, ColumnDescription = "杞﹀瀷鐗瑰緛鍊�")]
+ public string vehicleCharacteristic { get; set; }
+
+ /// <summary>
+ /// 澶╃獥鐗瑰緛鍊�
+ /// </summary>
+ [ImporterHeader(Name = "澶╃獥鐗瑰緛鍊�")]
+ [ExporterHeader(DisplayName = "澶╃獥鐗瑰緛鍊�")]
+ [SugarColumn(IsNullable = true, ColumnDescription = "澶╃獥鐗瑰緛鍊�")]
+ public string skylightCharacteristic { get; set; }
+
+ /// <summary>
+ /// 杞﹁韩棰滆壊
+ /// </summary>
+ [ImporterHeader(Name = "杞﹁韩棰滆壊")]
+ [ExporterHeader(DisplayName = "杞﹁韩棰滆壊")]
+ [SugarColumn(IsNullable = true, ColumnDescription = "杞﹁韩棰滆壊")]
+ public string carBodyCharacteristic { get; set; }
+
+ /// <summary>
+ /// 鍙岃壊杞﹁韩
+ /// </summary>
+ [ImporterHeader(Name = "鍙岃壊杞﹁韩")]
+ [ExporterHeader(DisplayName = "鍙岃壊杞﹁韩")]
+ [SugarColumn(IsNullable = true, ColumnDescription = "鍙岃壊杞﹁韩")]
+ public string twoToneCharacteristic { get; set; }
+
+ /// <summary>
+ /// 宸ュ崟椤哄簭鍙� 鎺掍骇椤哄簭鍙�1锛堝簭鍒楀彿锛�
+ /// </summary>
+ [ImporterHeader(Name = "宸ュ崟椤哄簭鍙�")]
+ [ExporterHeader(DisplayName = "宸ュ崟椤哄簭鍙�")]
+ [SugarColumn(IsNullable = true, ColumnDescription = "宸ュ崟椤哄簭鍙�")]
+ public string sequenceNo { get; set; }
+
+ /// <summary>
+ /// CTC閰嶇疆
+ /// </summary>
+ [ImporterHeader(Name = "CTC閰嶇疆")]
+ [ExporterHeader(DisplayName = "CTC閰嶇疆")]
+ [SugarColumn(IsNullable = true, ColumnDescription = "CTC閰嶇疆")]
+ public string config1 { get; set; }
+
+ /// <summary>
/// 褰╄溅韬墿鏂欏彿
/// </summary>
[ImporterHeader(Name = "褰╄溅韬墿鏂欏彿")]
[ExporterHeader(DisplayName = "褰╄溅韬墿鏂欏彿")]
[SugarColumn(IsNullable = true, ColumnDescription = "褰╄溅韬墿鏂欏彿")]
public string pbMaterial { get; set; }
+
+ /// <summary>
+ /// 澶囩敤3
+ /// </summary>
+ [ImporterHeader(Name = "澶囩敤3")]
+ [ExporterHeader(DisplayName = "澶囩敤3")]
+ [SugarColumn(IsNullable = true, ColumnDescription = "澶囩敤3")]
+ public string config3 { get; set; }
/// <summary>
/// 宸ュ崟涓嬪彂鐘舵�� 1-鎺掍骇涓嬪彂锛�2-鎾ゅ洖
@@ -119,34 +149,8 @@
public string workOrderSendStatus { get; set; }
/// <summary>
- /// 澶囩敤1
- /// </summary>
- [ImporterHeader(Name = "澶囩敤1")]
- [ExporterHeader(DisplayName = "澶囩敤1")]
- [SugarColumn(IsNullable = true, ColumnDescription = "澶囩敤1")]
- public string spare1 { get; set; }
-
- /// <summary>
- /// 澶囩敤2
- /// </summary>
- [ImporterHeader(Name = "澶囩敤2")]
- [ExporterHeader(DisplayName = "澶囩敤2")]
- [SugarColumn(IsNullable = true, ColumnDescription = "澶囩敤2")]
- public string spare2 { get; set; }
-
- /// <summary>
- /// 澶囩敤3
- /// </summary>
- [ImporterHeader(Name = "澶囩敤3")]
- [ExporterHeader(DisplayName = "澶囩敤3")]
- [SugarColumn(IsNullable = true, ColumnDescription = "澶囩敤3")]
- public string spare3 { get; set; }
-
- /// <summary>
/// 鍙戦�佹椂闂�
/// </summary>
//public string sendTime { get; set; }
-
-
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs"
index d85ae1c..66a5dbb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs"
@@ -30,8 +30,9 @@
private readonly LogFactory LogFactory = new LogFactory();
private readonly IUnitOfWorkManage _unitOfWorkManage;
private readonly IDt_CarBodyRepository _carBodyRepository;
+ private readonly IDt_AssemblyOrderInfoRepository _assemblyOrderInfoRepository;
- public MESService(ILocationInfoRepository locationRepository, IDt_TaskRepository taskRepository, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository, IDt_AreaInfoRepository dt_AreaInfoRepository, IDt_PalletInfoRepository palletInfoRepository, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_OutOrderRepository OutOrderRepository, IUnitOfWorkManage unitOfWorkManage, IDt_CarBodyRepository carBodyRepository)
+ public MESService(ILocationInfoRepository locationRepository, IDt_TaskRepository taskRepository, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository, IDt_AreaInfoRepository dt_AreaInfoRepository, IDt_PalletInfoRepository palletInfoRepository, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_OutOrderRepository OutOrderRepository, IUnitOfWorkManage unitOfWorkManage, IDt_CarBodyRepository carBodyRepository, IDt_AssemblyOrderInfoRepository assemblyOrderInfoRepository)
{
_locationRepository = locationRepository;
_taskRepository = taskRepository;
@@ -43,6 +44,7 @@
_OutOrderRepository = OutOrderRepository;
_unitOfWorkManage = unitOfWorkManage;
_carBodyRepository = carBodyRepository;
+ _assemblyOrderInfoRepository = assemblyOrderInfoRepository;
}
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs"
index e7e9b59..0c06a9d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs"
@@ -35,6 +35,7 @@
var ListTaskDto = new List<WMSTaskDTO>();
var ListTask = new List<Dt_Task>();
+ var ListAssemblyOrderInfo = new List<Dt_AssemblyOrderInfo>();
foreach (var item in result.data)
{
var palletStockInfos = _palletStockInfoRepository.QueryData(x => x.OrderID == item.workOrderNo);
@@ -87,45 +88,47 @@
}
-
+ Dt_AssemblyOrderInfo assemblyOrderInfo = new Dt_AssemblyOrderInfo
+ {
+ biwMaterial = item.biwMaterial,
+ CreateDate = DateTime.Now,
+ Creater = "System",
+ orderType = item.orderType,
+ pbMaterial = item.pbMaterial,
+ plantCode = result.plantCode,
+ pvi = item.pvi,
+ sequenceNo = item.sequenceNo,
+ spare1 = item.spare1,
+ spare2 = item.spare2,
+ spare3 = item.spare3,
+ splitStrategy = result.splitStrategy,
+ vehicleCharacteristic = item.vehicleCharacteristic,
+ vehicleCode = item.vehicleCode,
+ vehicleOrderNo = item.vehicleOrderNo,
+ workOrderNo = item.workOrderNo,
+ workOrderSendStatus = item.workOrderSendStatus, //1-鎺掍骇 2-鎾ゅ洖
+ };
+ ListAssemblyOrderInfo.Add(assemblyOrderInfo);
}
-
- pushOrderInfo orderInfo = new pushOrderInfo
- {
-
- };
-
- Dt_OutOrder outOrder = new()
- {
- CreateDate = DateTime.Now,
- Creater = "System",
- Status = 1,
- //UpperOutOrderId = result.workOrderNo,
- OrderNumber = result.data[0].workOrderNo,
- WarehouseId = 1,
- OrderDate = DateTime.Now,
- UpperOutOrderId = 1,
- Remarks = "娴嬭瘯璁㈠崟"
-
- };
-
-
- var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
- var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue;
- var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveTask)?.ConfigValue;
- if (wmsBase == null || ipAddress == null)
- {
- throw new InvalidOperationException("WMS IP 鏈厤缃�");
- }
- var wmsIpAddress = wmsBase + ipAddress;
-
- var WCSresult = HttpHelper.PostAsync(wmsIpAddress, ListTaskDto.ToJsonString()).Result;
- var content = JsonConvert.DeserializeObject<WebResponseContent>(WCSresult);
_unitOfWorkManage.BeginTran();
- _OutOrderRepository.AddData(outOrder);
- _taskRepository.AddData(ListTask);
+ if (ListTaskDto.Count > 0)
+ {
+ var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+ var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue;
+ var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveTask)?.ConfigValue;
+ if (wmsBase == null || ipAddress == null)
+ {
+ throw new InvalidOperationException("WMS IP 鏈厤缃�");
+ }
+ var wmsIpAddress = wmsBase + ipAddress;
+ var WCSresult = HttpHelper.PostAsync(wmsIpAddress, ListTaskDto.ToJsonString()).Result;
+ var content = JsonConvert.DeserializeObject<WebResponseContent>(WCSresult);
+
+ _taskRepository.AddData(ListTask);
+ }
+ _assemblyOrderInfoRepository.AddData(ListAssemblyOrderInfo);
_unitOfWorkManage.CommitTran();
responseContent.OK();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs"
index 210c6e1..dd3f952 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs"
@@ -30,12 +30,17 @@
return currentConfig;
}
+ public override WebResponseContent UpdateData(SaveModel saveModel)
+ {
+
+ return base.UpdateData(saveModel);
+ }
+
public async Task<Dt_BDCConfiguration> UpdateConfiguration(int maxWhiteBody, int maxPaintedBody,
- int maxBatteryCase, int maxEmptySled, string updatedBy)
+ int maxBatteryCase, int maxEmptySled)
{
// 绂佺敤褰撳墠閰嶇疆
var currentConfigs = await BaseDal.QueryDataAsync(c => c.IsActive == 1);
-
currentConfigs.ForEach(c => c.IsActive = 2);
// 鍒涘缓鏂伴厤缃�
@@ -46,7 +51,7 @@
MaxBatteryCaseCache = maxBatteryCase,
MaxEmptySledCache = maxEmptySled,
LastUpdatedTime = DateTime.Now,
- UpdatedBy = updatedBy,
+ UpdatedBy = App.User.UserName,
IsActive = 1
};
@@ -55,10 +60,14 @@
return newConfig;
}
+ /// <summary>
+ /// 鐧借溅韬槸鍚﹀彲鍏ュ簱
+ /// </summary>
+ /// <returns></returns>
public async Task<bool> CanAddWhiteBody()
{
var config = await GetCurrentConfiguration();
- var currentCount = GetWhiteBodyCount();
+ var currentCount = GetWhiteBodyCount();
// 棰勭暀5%鐨勭紦鍐茬┖闂�
var threshold = (int)(config.MaxWhiteBodyCache * 0.95);
@@ -68,39 +77,54 @@
public async Task<bool> CanAddPaintedBody()
{
var config = await GetCurrentConfiguration();
- var currentCount = GetPaintedBodyCount();
+ var currentCount = GetPaintedBodyCount();
// 棰勭暀5%鐨勭紦鍐茬┖闂�
var threshold = (int)(config.MaxPaintedBodyCache * 0.95);
return currentCount < threshold;
}
-
public async Task<bool> CanAddEmptySled()
{
var config = await GetCurrentConfiguration();
- var currentCount = GetEmptySledCount();
+ var currentCount = GetEmptySledCount();
// 棰勭暀5%鐨勭紦鍐茬┖闂�
var threshold = (int)(config.MaxEmptySledCache * 0.95);
return currentCount < threshold;
}
+ /// <summary>
+ /// 鐧借溅韬簱瀛樻暟閲�
+ /// </summary>
+ /// <returns></returns>
public int GetWhiteBodyCount()
{
return _palletStockInfoRepository.QueryData(b => b.CarType == (int)BodyType.WhiteBody && b.StockStatus == (int)BodyStatus.InBDC).Count;
}
+ /// <summary>
+ /// 褰╄溅韬簱瀛樻暟閲�
+ /// </summary>
+ /// <returns></returns>
public int GetPaintedBodyCount()
{
- return _palletStockInfoRepository.QueryData(b => b.CarType == (int)BodyType.PaintedBody && b.StockStatus == (int)BodyStatus.InBDC).Count;
+ return _palletStockInfoRepository.QueryData(b => b.CarType == (int)BodyType.PaintedBody && b.StockStatus == (int)BodyStatus.InBDC).Count;
}
+ /// <summary>
+ /// 鐢垫睜澹冲簱瀛樻暟閲�
+ /// </summary>
+ /// <returns></returns>
public int GetBatteryCaseCount()
{
return _palletStockInfoRepository.QueryData(b => b.StockStatus == (int)BodyStatus.InBDC).Count;
}
+ /// <summary>
+ /// 绌烘粦姗囧簱瀛樻暟閲�
+ /// </summary>
+ /// <returns></returns>
public int GetEmptySledCount()
{
return _palletStockInfoRepository.QueryData(s => s.StockStatus == (int)BodyStatus.InBDC).Count;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_AssemblyOrderInfoRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_AssemblyOrderInfoRepository.cs"
new file mode 100644
index 0000000..ba1ecfb
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_AssemblyOrderInfoRepository.cs"
@@ -0,0 +1,10 @@
+锘縰sing WIDESEA_Core;
+
+namespace WIDESEA_StorageOutOrderRepository;
+
+public class Dt_AssemblyOrderInfoRepository : RepositoryBase<Dt_AssemblyOrderInfo>, IDt_AssemblyOrderInfoRepository
+{
+ public Dt_AssemblyOrderInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+ {
+ }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_PaintingOrderInfoRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_PaintingOrderInfoRepository.cs"
new file mode 100644
index 0000000..734439a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_PaintingOrderInfoRepository.cs"
@@ -0,0 +1,10 @@
+锘縰sing WIDESEA_Core;
+
+namespace WIDESEA_StorageOutOrderRepository;
+
+public class Dt_PaintingOrderInfoRepository : RepositoryBase<Dt_PaintingOrderInfo>, IDt_PaintingOrderInfoRepository
+{
+ public Dt_PaintingOrderInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+ {
+ }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_AssemblyOrderInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_AssemblyOrderInfoService.cs"
new file mode 100644
index 0000000..3e5ef1d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_AssemblyOrderInfoService.cs"
@@ -0,0 +1,473 @@
+锘縩amespace WIDESEA_StorageOutOrderServices;
+
+public class Dt_AssemblyOrderInfoService : ServiceBase<Dt_AssemblyOrderInfo, IDt_AssemblyOrderInfoRepository>, IDt_AssemblyOrderInfoService
+{
+ private readonly LogFactory LogFactory = new LogFactory();
+ private readonly IUnitOfWorkManage _unitOfWorkManage;
+ private readonly IDt_OutOrderProductionService _outOrderProductionService;
+ private readonly IDt_OutOrderProductionDetailService _outOrderProductionDetailService;
+ private readonly IDt_OutOrderDtailService _outOrderDtailService;
+ private readonly IDt_OutOrderTransferRepository _OutOrderTransferRepository;
+ private readonly IDt_OutOrderTransferDetailRepository _OutOrderTransferDetailRepository;
+ private readonly IDt_MaterielInfoRepository _materielInfoRepository;
+ private readonly IStockInfoRepository _stockInfoRepository;
+ private readonly IDt_OutOrderAndStockRepository _outOrderAndStockRepository;
+ private readonly IDt_TaskRepository _taskRepository;
+
+ public Dt_AssemblyOrderInfoService(IDt_AssemblyOrderInfoRepository BaseDal,
+ IUnitOfWorkManage unitOfWorkManage,
+ IDt_OutOrderProductionService outOrderProductionService,
+ IDt_OutOrderProductionDetailService outOrderProductionDetailService,
+ IDt_OutOrderDtailService outOrderDtailService,
+ IDt_OutOrderTransferDetailRepository outOrderTransferDetailRepository,
+ IDt_OutOrderTransferRepository outOrderTransferRepository,
+ IDt_MaterielInfoRepository materielInfoRepository,
+ IStockInfoRepository stockInfoRepository,
+ IDt_OutOrderAndStockRepository outOrderAndStockRepository,
+ IDt_TaskRepository taskRepository) : base(BaseDal)
+ {
+ _unitOfWorkManage = unitOfWorkManage;
+ _outOrderProductionService = outOrderProductionService;
+ _outOrderProductionDetailService = outOrderProductionDetailService;
+ _outOrderDtailService = outOrderDtailService;
+ _OutOrderTransferDetailRepository = outOrderTransferDetailRepository;
+ _OutOrderTransferRepository = outOrderTransferRepository;
+ _materielInfoRepository = materielInfoRepository;
+ _stockInfoRepository = stockInfoRepository;
+ _outOrderAndStockRepository = outOrderAndStockRepository;
+ _taskRepository = taskRepository;
+ }
+
+
+
+ /// <summary>
+ /// 鏍规嵁璁㈠崟鍒嗛厤鍑哄簱搴撳瓨
+ /// </summary>
+ /// <param name="orderNo">璁㈠崟缂栧彿</param>
+ /// <returns></returns>
+ public async Task<WebResponseContent> GetOutboundStockAsync(string orderNo)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ // 鑾峰彇璁㈠崟
+ //var order = await BaseDal.GetOutOrderByNumberAsync(orderNo);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鏍规嵁璁㈠崟缂栧彿鑾峰彇璁㈠崟鏁版嵁", JsonConvert.SerializeObject(order));
+
+ //// 妫�鏌ヨ鍗曟槸鍚﹁幏鍙栨垚鍔�
+ //if (order == null)
+ //{
+ // return content.Error("鑾峰彇璁㈠崟澶辫触");
+ //}
+
+ //// 鑾峰彇璁㈠崟涓殑绗竴涓墿鏂欑紪鍙�
+ //var materielInfo = await _materielInfoRepository.QueryFirstAsync(x => x.MaterielID == order.OrderDetailList.MaterialId);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鑾峰彇璁㈠崟鐗╂枡缂栧彿", JsonConvert.SerializeObject(materielInfo));
+
+ //#region 鍏堝叆鍏堝嚭
+
+ //// 鑾峰彇璇ョ墿鏂欐墍鏈夊彲鍑哄簱搴撳瓨
+ //var filteredStocks = await _stockInfoRepository.QueryDataAsync(x => true);
+ //filteredStocks.OrderBy(x => x.CreateDate).ToList();
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鑾峰彇璇ョ墿鏂欐墍鏈夊彲鍑哄簱搴撳瓨", JsonConvert.SerializeObject(filteredStocks));
+
+ //#endregion 鍏堝叆鍏堝嚭
+
+ //#region 鏌ユ壘闈犺繎鍑哄簱鍙e簱瀛�
+
+ //// 榛樿鍒楄秺澶ц秺闈犺繎鍑哄簱鍙�
+ //filteredStocks = filteredStocks.OrderByDescending(x => x.LocationInfo.Column).OrderBy(x => x.CreateDate).ToList();
+
+ //#endregion 鏌ユ壘闈犺繎鍑哄簱鍙e簱瀛�
+
+ //#region 涓�娣变綅浼樺厛鏌ユ壘锛屽啀鏌ユ壘鍚屽垪浜屾繁浣�
+
+ //filteredStocks = PickStocks(filteredStocks);
+
+ //#endregion 涓�娣变綅浼樺厛鏌ユ壘锛屽啀鏌ユ壘鍚屽垪浜屾繁浣�
+
+ //// 鍒涘缓浠诲姟鍒楄〃
+ //var (tasks, updateOrder, stock) = CreateTasks(order, filteredStocks);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鍒涘缓浠诲姟鍒楄〃锛屼慨鏀硅鍗曞垎閰嶆暟閲忥紝鑾峰彇鍑哄簱鍒嗛厤搴撳瓨",
+ // $"浠诲姟鍒楄〃:{JsonConvert.SerializeObject(tasks)},璁㈠崟鍒楄〃锛歿JsonConvert.SerializeObject(updateOrder)},宸插垎閰嶅簱瀛橈細{JsonConvert.SerializeObject(stock)}");
+
+ //// 鏇存柊搴撳瓨鐘舵��
+ //var stockList = UpdateStocks(stock);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鏇存柊搴撳瓨鐘舵��", JsonConvert.SerializeObject(stockList));
+
+ //// 鍒涘缓璁㈠崟搴撳瓨鍒楄〃
+ //List<Dt_OutOrderAndStock>? orderStocks = CreateOrderStock(stock, updateOrder);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鍒涘缓璁㈠崟搴撳瓨鍒楄〃", JsonConvert.SerializeObject(orderStocks));
+
+ //// 寮�濮嬩簨鍔�
+ //_unitOfWorkManage.BeginTran();
+
+ //// 鏇存柊搴撳瓨
+ //var isStockUpdated = _stockInfoRepository.UpdateData(stockList);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟鏇存柊搴撳瓨", isStockUpdated);
+
+ //// 鏇存柊璁㈠崟
+ //var isOrderUpdated = await BaseDal.OutOrderUpdatedAsync(updateOrder);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟鏇存柊璁㈠崟", isOrderUpdated);
+
+ ////娣诲姞璁㈠崟搴撳瓨
+ //var isOrderStockCread = await _outOrderAndStockRepository.AddDataAsync(orderStocks) > 0;
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟娣诲姞璁㈠崟搴撳瓨", isOrderStockCread);
+
+ //// 鍒涘缓浠诲姟
+ //var isTaskCreated = await _taskRepository.Create(tasks);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟鍒涘缓浠诲姟", isTaskCreated);
+
+ //// 鎻愪氦鎴栧洖婊氫簨鍔�
+ //if (isStockUpdated && isTaskCreated && isOrderUpdated && isOrderStockCread)
+ //{
+ // LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鏁版嵁澶勭悊瀹屾垚锛屾彁浜や簨鍔�", "鏃犲弬鏁�");
+ // _unitOfWorkManage.CommitTran();
+ //}
+ //else
+ //{
+ // LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "娣诲姞鏁版嵁搴撳け璐�,璇锋鏌ユ暟鎹槸鍚︽纭�,鏁版嵁鍥炴粴", $"鏇存柊搴撳瓨:{isStockUpdated},鏇存柊璁㈠崟:{isOrderUpdated},娣诲姞璁㈠崟搴撳瓨:{isOrderStockCread},鍒涘缓浠诲姟:{isTaskCreated}");
+ // _unitOfWorkManage.RollbackTran();
+ // throw new Exception("娣诲姞鏁版嵁搴撳け璐�,璇锋鏌ユ暟鎹槸鍚︽纭�,鏁版嵁鍥炴粴");
+ //}
+
+ return content.OK(); //data: orderStocks
+ }
+ catch (Exception ex)
+ {
+ _unitOfWorkManage.RollbackTran();
+ LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, $"绯荤粺寮傚父锛屽紓甯镐俊鎭細{ex.Message}", "鏃犲弬鏁�");
+ return content.Error(ex.Message);
+ }
+ }
+
+ #region 鍐呴儴璋冪敤
+
+ /// <summary>
+ /// 涓�娣变綅浼樺厛鏌ユ壘
+ /// </summary>
+ /// <param name="filteredStocks">鍙嚭搴撳簱瀛�</param>
+ /// <returns>鎺掑簭濂界殑鍑哄簱搴撳瓨</returns>
+ public List<DtStockInfo> PickStocks(List<DtStockInfo> filteredStocks)
+ {
+ var oneDepthList = filteredStocks.Where(x => x.LocationInfo.Depth == 1).ToList();
+ var twoDepthList = filteredStocks.Where(x => x.LocationInfo.Depth == 2).ToList();
+
+ var results = new List<DtStockInfo>();
+ foreach (var oneDepth in oneDepthList)
+ {
+ // 灏� Line 瀛楃涓茶浆鎹负鏁存暟
+ int oneDepthLine = oneDepth.LocationInfo.Row;
+
+ // 璁$畻鐩稿琛�
+ int relativeLine = oneDepthLine % 2 == 1 ? oneDepthLine + 1 : oneDepthLine - 1;
+
+ // 鏌ユ壘鏈�鎺ヨ繎鐨勪簩娣变綅璁板綍
+ var closestTwoDepth = twoDepthList
+ .Where(t => t.LocationInfo.Row == relativeLine)
+ .Where(x => x.LocationInfo.Column == oneDepth.LocationInfo.Column)
+ .Where(x => x.LocationInfo.Layer == oneDepth.LocationInfo.Layer)
+ .FirstOrDefault();
+
+ // 濡傛灉鎵惧埌浜嗘渶鎺ヨ繎鐨勪簩娣变綅璁板綍锛屽皢鍏朵笌涓�娣变綅涓�璧锋坊鍔犲埌缁撴灉鍒楄〃
+ if (closestTwoDepth != null)
+ {
+ results.Add(oneDepth);
+ results.Add(closestTwoDepth);
+ }
+ else
+ {
+ // 濡傛灉娌℃湁鎵惧埌鏈�鎺ヨ繎鐨勪簩娣变綅璁板綍锛屽皢涓�娣变綅娣诲姞鍒扮粨鏋滃垪琛�
+ results.Add(oneDepth);
+ }
+ }
+ return results;
+ }
+
+ #endregion 鍐呴儴璋冪敤
+
+ #region 绉佹湁鏂规硶
+
+ #region 鐢熶骇鍑哄簱鍗�
+
+ /// <summary>
+ /// 鏍规嵁涓绘暟鎹瀯寤虹敓浜у嚭搴撳崟瀵硅薄銆�
+ /// </summary>
+ private Dt_OutOrderProduction CreateProductionOrder(Dictionary<string, object> mainData)
+ {
+ return new Dt_OutOrderProduction
+ {
+ OrderNumber = mainData.GetValueOrDefault("OrderNumber")?.ToString(),
+ WarehouseId = mainData.GetValueOrDefault("WarehouseId")?.ObjToInt() ?? 0,
+ Status = (int)OutOrderTypeEnum.Issue,
+ Remarks = mainData.GetValueOrDefault("Remarks")?.ToString(),
+ Creater = mainData.GetValueOrDefault("Creater")?.ToString(),
+ CreateDate = mainData.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+ OrderDate = mainData.GetValueOrDefault("OrderDate")?.ObjToDate() ?? DateTime.Now,
+ };
+ }
+
+ /// <summary>
+ /// 鏍规嵁鏄庣粏鏁版嵁鍜岀敓浜у嚭搴撳崟ID鏋勫缓鐢熶骇鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+ /// </summary>
+ private List<Dt_OutOrderProductionDetail> CreateProductionDetails(List<Dictionary<string, object>> detailData)
+ {
+ var details = new List<Dt_OutOrderProductionDetail>();
+ foreach (var item in detailData)
+ {
+ var detail = new Dt_OutOrderProductionDetail
+ {
+ MaterialId = item.GetValueOrDefault("MaterialId")?.ObjToInt() ?? 0,
+ Quantity = item.GetValueOrDefault("Quantity")?.ObjToInt() ?? 0,
+ Remarks = item.GetValueOrDefault("Remarks")?.ToString(),
+ CreateDate = item.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+ Creater = item.GetValueOrDefault("Creater")?.ToString(),
+ BatchNumber = item.GetValueOrDefault("BatchNumber")?.ToString(),
+ };
+ details.Add(detail);
+ }
+ return details;
+ }
+
+ /// <summary>
+ /// 鏍规嵁鐢熶骇鍑哄簱鍗曞璞″拰鐢熶骇鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曞璞°��
+ /// </summary>
+ private Dt_OutOrder CreateSystemOrder(Dt_OutOrderProduction production)
+ {
+ return new Dt_OutOrder
+ {
+ Status = production.Status,
+ CreateDate = DateTime.Now,
+ Creater = production.Creater,
+ OrderDate = DateTime.Now,
+ OrderNumber = production.OrderNumber,
+ Remarks = production.Remarks,
+ WarehouseId = production.WarehouseId,
+ };
+ }
+
+ /// <summary>
+ /// 鏍规嵁鐢熶骇鍑哄簱鍗曟槑缁嗗垪琛ㄥ拰绯荤粺鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+ /// </summary>
+ private List<Dt_OutOrderDetail> CreateSystemOrderDetails(List<Dt_OutOrderProductionDetail> productionDetails)
+ {
+ var orderDetails = new List<Dt_OutOrderDetail>();
+ foreach (var item in productionDetails)
+ {
+ var detail = new Dt_OutOrderDetail
+ {
+ AllocatedQuantity = 0,
+ BatchNumber = item.BatchNumber,
+ CompletedQuantity = 0,
+ CreateDate = item.CreateDate,
+ Creater = item.Creater,
+ MaterialId = item.MaterialId,
+ OutboundQuantity = item.Quantity,
+ Remarks = item.Remarks,
+ MaterialName = item.Remarks // 鐗╂枡鍚嶇О
+ };
+ orderDetails.Add(detail);
+ }
+ return orderDetails;
+ }
+
+ #endregion 鐢熶骇鍑哄簱鍗�
+
+ #region 璋冩嫧鍑哄簱鍗�
+
+ /// <summary>
+ /// 鏍规嵁涓绘暟鎹瀯寤鸿皟鎷ㄥ嚭搴撳崟瀵硅薄銆�
+ /// </summary>
+ private Dt_OutOrderTransfer CreateTransferOrder(Dictionary<string, object> mainData)
+ {
+ return new Dt_OutOrderTransfer
+ {
+ OrderNumber = mainData.GetValueOrDefault("OrderNumber")?.ToString(),
+ SourceWarehouseId = mainData.GetValueOrDefault("SourceWarehouseId")?.ObjToInt() ?? 0,
+ DestinationWarehouseId = mainData.GetValueOrDefault("WarehouseId")?.ObjToInt() ?? 0,
+ Status = (int)OutOrderTypeEnum.Allocate,
+ Remarks = mainData.GetValueOrDefault("Remarks")?.ToString(),
+ Creater = mainData.GetValueOrDefault("Creater")?.ToString(),
+ CreateDate = mainData.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+ OrderDate = mainData.GetValueOrDefault("OrderDate")?.ObjToDate() ?? DateTime.Now,
+ };
+ }
+
+ /// <summary>
+ /// 鏍规嵁鏄庣粏鏁版嵁鍜岃皟鎷ㄥ嚭搴撳崟ID鏋勫缓璋冩嫧鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+ /// </summary>
+ private List<Dt_OutOrderTransferDetail> CreateTransferDetails(List<Dictionary<string, object>> detailData)
+ {
+ var details = new List<Dt_OutOrderTransferDetail>();
+ foreach (var item in detailData)
+ {
+ var detail = new Dt_OutOrderTransferDetail
+ {
+ MaterialId = item.GetValueOrDefault("MaterialId")?.ObjToInt() ?? 0,
+ Quantity = item.GetValueOrDefault("Quantity")?.ObjToInt() ?? 0,
+ Remarks = item.GetValueOrDefault("Remarks")?.ToString(),
+ CreateDate = item.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+ Creater = item.GetValueOrDefault("Creater")?.ToString(),
+ BatchNumber = item.GetValueOrDefault("BatchNumber")?.ToString(),
+ };
+ details.Add(detail);
+ }
+ return details;
+ }
+
+ /// <summary>
+ /// 鏍规嵁鐢熶骇鍑哄簱鍗曞璞″拰鐢熶骇鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曞璞°��
+ /// </summary>
+ private Dt_OutOrder CreateSystemOrder(Dt_OutOrderTransfer transfer)
+ {
+ return new Dt_OutOrder
+ {
+ Status = transfer.Status,
+ CreateDate = DateTime.Now,
+ Creater = transfer.Creater,
+ OrderDate = DateTime.Now,
+ OrderNumber = transfer.OrderNumber,
+ Remarks = transfer.Remarks,
+ WarehouseId = transfer.SourceWarehouseId,
+ };
+ }
+
+ /// <summary>
+ /// 鏍规嵁鐢熶骇鍑哄簱鍗曟槑缁嗗垪琛ㄥ拰绯荤粺鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+ /// </summary>
+ private List<Dt_OutOrderDetail> CreateSystemOrderDetails(List<Dt_OutOrderTransferDetail> transferDetails)
+ {
+ var orderDetails = new List<Dt_OutOrderDetail>();
+ foreach (var item in transferDetails)
+ {
+ var detail = new Dt_OutOrderDetail
+ {
+ AllocatedQuantity = 0,
+ BatchNumber = item.BatchNumber,
+ CompletedQuantity = 0,
+ CreateDate = item.CreateDate,
+ Creater = item.Creater,
+ MaterialId = item.MaterialId,
+ OutboundQuantity = item.Quantity,
+ Remarks = item.Remarks,
+ MaterialName = item.Remarks // 鐗╂枡鍚嶇О
+ };
+ orderDetails.Add(detail);
+ }
+ return orderDetails;
+ }
+
+ #endregion 璋冩嫧鍑哄簱鍗�
+
+ #region 鍑哄簱鍒嗛厤
+
+ /// <summary>
+ /// 鍒涘缓浠诲姟鍒楄〃
+ /// </summary>
+ /// <param name="order">璁㈠崟瀵硅薄</param>
+ /// <param name="filteredStocks">绛涢�夊悗鐨勫簱瀛樺垪琛�</param>
+ /// <returns>銆愪换鍔″垪琛�,鏇存柊鍒嗛厤鏁伴噺璁㈠崟,鍒涘缓浠诲姟鐨勫簱瀛樸��</returns>
+ private (List<Dt_Task>, Dt_OutOrder, List<DtStockInfo>) CreateTasks(Dt_OutOrder order, List<DtStockInfo> filteredStocks)
+ {
+ var tasks = new List<Dt_Task>();
+ var stocks = new List<DtStockInfo>();
+
+ foreach (var stock in filteredStocks)
+ {
+ // 濡傛灉宸插垎閰嶆暟閲忚揪鍒板嚭搴撴暟閲忥紝鍋滄鍒嗛厤
+ if (order.OrderDetailList.AllocatedQuantity >= order.OrderDetailList.OutboundQuantity)
+ break;
+
+ // 濡傛灉鎵樼洏浠诲姟宸插瓨鍦紝璺宠繃
+ if (_taskRepository.QueryFirst(x => x.PalletCode == stock.PalletCode) != null)
+ continue;
+
+ // 鍒涘缓浠诲姟
+ tasks.Add(new Dt_Task
+ {
+ CreateDate = DateTime.Now, // 鍒涘缓鏃堕棿
+ Creater = App.User.UserName, // 鍒涘缓浜�
+ CurrentAddress = stock.LocationCode, //褰撳墠浣嶇疆
+ Dispatchertime = DateTime.Now, //璋冨害鏃堕棿锛堜换鍔′笅鍙戞椂闂达級
+ Grade = 1, // 绛夌骇
+ //PVI = stock.StockInfoDetails[0].MaterielCode, // 鐗╂枡鍙�
+ NextAddress = stock.LocationCode, // 涓嬩竴浣嶇疆
+ PalletCode = stock.PalletCode, //鎵樼洏鍙�
+ Remark = stock.Remark, //澶囨敞
+ Roadway = stock.LocationInfo.RoadwayNo, //宸烽亾
+ SourceAddress = stock.LocationCode, //鏉ユ簮浣嶇疆
+ TargetAddress = order.OrderDetailList.Remarks, //鐩爣鍦板潃
+ TaskNum = _taskRepository.GetTaskNo().Result, //浠诲姟鍙�
+ TaskState = (int)TaskOutStatusEnum.OutNew, //浠诲姟鐘舵��
+ TaskType = (int)TaskTypeEnum.Outbound, //浠诲姟绫诲瀷
+ });
+
+ // 鏇存柊宸插垎閰嶆暟閲�
+ order.OrderDetailList.AllocatedQuantity += stock.StockInfoDetails.Sum(x => x.StockQuantity);
+ stocks.Add(stock);
+ }
+
+ return (tasks, order, stocks);
+ }
+
+ /// <summary>
+ /// 鏇存柊搴撳瓨鐘舵��
+ /// </summary>
+ /// <param name="filteredStocks">绛涢�夊悗鐨勫簱瀛樺垪琛�</param>
+ /// <returns>鏇存柊鍚庣殑搴撳瓨鍒楄〃</returns>
+ private List<DtStockInfo> UpdateStocks(List<DtStockInfo> filteredStocks)
+ {
+ var updatedStocks = new List<DtStockInfo>();
+
+ foreach (var stock in filteredStocks)
+ {
+ // 鏇存柊搴撳瓨鐘舵��
+ stock.LocationInfo.LocationStatus = (int)LocationEnum.Lock;
+ stock.StockInfoDetails.ForEach(x =>
+ {
+ x.Status = (int)StockStateEmun.鍑哄簱閿佸畾;
+ });
+ updatedStocks.Add(stock);
+ }
+
+ return updatedStocks;
+ }
+
+ /// <summary>
+ /// 鍒涘缓璁㈠崟搴撳瓨鍒楄〃
+ /// </summary>
+ /// <param name="stock">绛涢�夊悗鐨勫簱瀛樺垪琛�</param>
+ /// <param name="order">璁㈠崟瀵硅薄</param>
+ /// <returns>璁㈠崟搴撳瓨鍒楄〃</returns>
+ private List<Dt_OutOrderAndStock> CreateOrderStock(List<DtStockInfo> stock, Dt_OutOrder order)
+ {
+ var orderStocks = new List<Dt_OutOrderAndStock>();
+ foreach (var item in stock)
+ {
+ orderStocks.Add(new Dt_OutOrderAndStock()
+ {
+ AllocatedQuantity = order.OrderDetailList.AllocatedQuantity,
+ MaterialNo = item.StockInfoDetails[0].MaterielCode,
+ MaterialName = order.OrderDetailList.MaterialName,
+ OrderNumber = order.OrderNumber,
+ OutboundQuantity = order.OrderDetailList.OutboundQuantity,
+ PalletCode = item.PalletCode,
+ PalletQuantity = item.StockInfoDetails.Sum(x => x.StockQuantity),
+ State = item.StockInfoDetails[0].Status,
+ BatchNumber = order.OrderDetailList.BatchNumber,
+ CompletedQuantity = order.OrderDetailList.CompletedQuantity,
+ Creater = App.User.UserName,
+ CreateDate = DateTime.Now,
+ GroupId = item.Id,
+ LocationCode = item.LocationInfo.LocationCode,
+ OutOrderId = order.Id,
+ });
+ }
+
+ return orderStocks;
+ }
+
+ #endregion 鍑哄簱鍒嗛厤
+
+ #endregion 绉佹湁鏂规硶
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_PaintingOrderInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_PaintingOrderInfoService.cs"
new file mode 100644
index 0000000..218b22e
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_PaintingOrderInfoService.cs"
@@ -0,0 +1,473 @@
+锘縩amespace WIDESEA_StorageOutOrderServices;
+
+public class Dt_PaintingOrderInfoService : ServiceBase<Dt_PaintingOrderInfo, IDt_PaintingOrderInfoRepository>, IDt_PaintingOrderInfoService
+{
+ private readonly LogFactory LogFactory = new LogFactory();
+ private readonly IUnitOfWorkManage _unitOfWorkManage;
+ private readonly IDt_OutOrderProductionService _outOrderProductionService;
+ private readonly IDt_OutOrderProductionDetailService _outOrderProductionDetailService;
+ private readonly IDt_OutOrderDtailService _outOrderDtailService;
+ private readonly IDt_OutOrderTransferRepository _OutOrderTransferRepository;
+ private readonly IDt_OutOrderTransferDetailRepository _OutOrderTransferDetailRepository;
+ private readonly IDt_MaterielInfoRepository _materielInfoRepository;
+ private readonly IStockInfoRepository _stockInfoRepository;
+ private readonly IDt_OutOrderAndStockRepository _outOrderAndStockRepository;
+ private readonly IDt_TaskRepository _taskRepository;
+
+ public Dt_PaintingOrderInfoService(IDt_PaintingOrderInfoRepository BaseDal,
+ IUnitOfWorkManage unitOfWorkManage,
+ IDt_OutOrderProductionService outOrderProductionService,
+ IDt_OutOrderProductionDetailService outOrderProductionDetailService,
+ IDt_OutOrderDtailService outOrderDtailService,
+ IDt_OutOrderTransferDetailRepository outOrderTransferDetailRepository,
+ IDt_OutOrderTransferRepository outOrderTransferRepository,
+ IDt_MaterielInfoRepository materielInfoRepository,
+ IStockInfoRepository stockInfoRepository,
+ IDt_OutOrderAndStockRepository outOrderAndStockRepository,
+ IDt_TaskRepository taskRepository) : base(BaseDal)
+ {
+ _unitOfWorkManage = unitOfWorkManage;
+ _outOrderProductionService = outOrderProductionService;
+ _outOrderProductionDetailService = outOrderProductionDetailService;
+ _outOrderDtailService = outOrderDtailService;
+ _OutOrderTransferDetailRepository = outOrderTransferDetailRepository;
+ _OutOrderTransferRepository = outOrderTransferRepository;
+ _materielInfoRepository = materielInfoRepository;
+ _stockInfoRepository = stockInfoRepository;
+ _outOrderAndStockRepository = outOrderAndStockRepository;
+ _taskRepository = taskRepository;
+ }
+
+
+
+ /// <summary>
+ /// 鏍规嵁璁㈠崟鍒嗛厤鍑哄簱搴撳瓨
+ /// </summary>
+ /// <param name="orderNo">璁㈠崟缂栧彿</param>
+ /// <returns></returns>
+ public async Task<WebResponseContent> GetOutboundStockAsync(string orderNo)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ // 鑾峰彇璁㈠崟
+ //var order = await BaseDal.GetOutOrderByNumberAsync(orderNo);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鏍规嵁璁㈠崟缂栧彿鑾峰彇璁㈠崟鏁版嵁", JsonConvert.SerializeObject(order));
+
+ //// 妫�鏌ヨ鍗曟槸鍚﹁幏鍙栨垚鍔�
+ //if (order == null)
+ //{
+ // return content.Error("鑾峰彇璁㈠崟澶辫触");
+ //}
+
+ //// 鑾峰彇璁㈠崟涓殑绗竴涓墿鏂欑紪鍙�
+ //var materielInfo = await _materielInfoRepository.QueryFirstAsync(x => x.MaterielID == order.OrderDetailList.MaterialId);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鑾峰彇璁㈠崟鐗╂枡缂栧彿", JsonConvert.SerializeObject(materielInfo));
+
+ //#region 鍏堝叆鍏堝嚭
+
+ //// 鑾峰彇璇ョ墿鏂欐墍鏈夊彲鍑哄簱搴撳瓨
+ //var filteredStocks = await _stockInfoRepository.QueryDataAsync(x => true);
+ //filteredStocks.OrderBy(x => x.CreateDate).ToList();
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鑾峰彇璇ョ墿鏂欐墍鏈夊彲鍑哄簱搴撳瓨", JsonConvert.SerializeObject(filteredStocks));
+
+ //#endregion 鍏堝叆鍏堝嚭
+
+ //#region 鏌ユ壘闈犺繎鍑哄簱鍙e簱瀛�
+
+ //// 榛樿鍒楄秺澶ц秺闈犺繎鍑哄簱鍙�
+ //filteredStocks = filteredStocks.OrderByDescending(x => x.LocationInfo.Column).OrderBy(x => x.CreateDate).ToList();
+
+ //#endregion 鏌ユ壘闈犺繎鍑哄簱鍙e簱瀛�
+
+ //#region 涓�娣变綅浼樺厛鏌ユ壘锛屽啀鏌ユ壘鍚屽垪浜屾繁浣�
+
+ //filteredStocks = PickStocks(filteredStocks);
+
+ //#endregion 涓�娣变綅浼樺厛鏌ユ壘锛屽啀鏌ユ壘鍚屽垪浜屾繁浣�
+
+ //// 鍒涘缓浠诲姟鍒楄〃
+ //var (tasks, updateOrder, stock) = CreateTasks(order, filteredStocks);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鍒涘缓浠诲姟鍒楄〃锛屼慨鏀硅鍗曞垎閰嶆暟閲忥紝鑾峰彇鍑哄簱鍒嗛厤搴撳瓨",
+ // $"浠诲姟鍒楄〃:{JsonConvert.SerializeObject(tasks)},璁㈠崟鍒楄〃锛歿JsonConvert.SerializeObject(updateOrder)},宸插垎閰嶅簱瀛橈細{JsonConvert.SerializeObject(stock)}");
+
+ //// 鏇存柊搴撳瓨鐘舵��
+ //var stockList = UpdateStocks(stock);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鏇存柊搴撳瓨鐘舵��", JsonConvert.SerializeObject(stockList));
+
+ //// 鍒涘缓璁㈠崟搴撳瓨鍒楄〃
+ //List<Dt_OutOrderAndStock>? orderStocks = CreateOrderStock(stock, updateOrder);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鍒涘缓璁㈠崟搴撳瓨鍒楄〃", JsonConvert.SerializeObject(orderStocks));
+
+ //// 寮�濮嬩簨鍔�
+ //_unitOfWorkManage.BeginTran();
+
+ //// 鏇存柊搴撳瓨
+ //var isStockUpdated = _stockInfoRepository.UpdateData(stockList);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟鏇存柊搴撳瓨", isStockUpdated);
+
+ //// 鏇存柊璁㈠崟
+ //var isOrderUpdated = await BaseDal.OutOrderUpdatedAsync(updateOrder);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟鏇存柊璁㈠崟", isOrderUpdated);
+
+ ////娣诲姞璁㈠崟搴撳瓨
+ //var isOrderStockCread = await _outOrderAndStockRepository.AddDataAsync(orderStocks) > 0;
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟娣诲姞璁㈠崟搴撳瓨", isOrderStockCread);
+
+ //// 鍒涘缓浠诲姟
+ //var isTaskCreated = await _taskRepository.Create(tasks);
+ //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟鍒涘缓浠诲姟", isTaskCreated);
+
+ //// 鎻愪氦鎴栧洖婊氫簨鍔�
+ //if (isStockUpdated && isTaskCreated && isOrderUpdated && isOrderStockCread)
+ //{
+ // LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鏁版嵁澶勭悊瀹屾垚锛屾彁浜や簨鍔�", "鏃犲弬鏁�");
+ // _unitOfWorkManage.CommitTran();
+ //}
+ //else
+ //{
+ // LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "娣诲姞鏁版嵁搴撳け璐�,璇锋鏌ユ暟鎹槸鍚︽纭�,鏁版嵁鍥炴粴", $"鏇存柊搴撳瓨:{isStockUpdated},鏇存柊璁㈠崟:{isOrderUpdated},娣诲姞璁㈠崟搴撳瓨:{isOrderStockCread},鍒涘缓浠诲姟:{isTaskCreated}");
+ // _unitOfWorkManage.RollbackTran();
+ // throw new Exception("娣诲姞鏁版嵁搴撳け璐�,璇锋鏌ユ暟鎹槸鍚︽纭�,鏁版嵁鍥炴粴");
+ //}
+
+ return content.OK(); //data: orderStocks
+ }
+ catch (Exception ex)
+ {
+ _unitOfWorkManage.RollbackTran();
+ LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, $"绯荤粺寮傚父锛屽紓甯镐俊鎭細{ex.Message}", "鏃犲弬鏁�");
+ return content.Error(ex.Message);
+ }
+ }
+
+ #region 鍐呴儴璋冪敤
+
+ /// <summary>
+ /// 涓�娣变綅浼樺厛鏌ユ壘
+ /// </summary>
+ /// <param name="filteredStocks">鍙嚭搴撳簱瀛�</param>
+ /// <returns>鎺掑簭濂界殑鍑哄簱搴撳瓨</returns>
+ public List<DtStockInfo> PickStocks(List<DtStockInfo> filteredStocks)
+ {
+ var oneDepthList = filteredStocks.Where(x => x.LocationInfo.Depth == 1).ToList();
+ var twoDepthList = filteredStocks.Where(x => x.LocationInfo.Depth == 2).ToList();
+
+ var results = new List<DtStockInfo>();
+ foreach (var oneDepth in oneDepthList)
+ {
+ // 灏� Line 瀛楃涓茶浆鎹负鏁存暟
+ int oneDepthLine = oneDepth.LocationInfo.Row;
+
+ // 璁$畻鐩稿琛�
+ int relativeLine = oneDepthLine % 2 == 1 ? oneDepthLine + 1 : oneDepthLine - 1;
+
+ // 鏌ユ壘鏈�鎺ヨ繎鐨勪簩娣变綅璁板綍
+ var closestTwoDepth = twoDepthList
+ .Where(t => t.LocationInfo.Row == relativeLine)
+ .Where(x => x.LocationInfo.Column == oneDepth.LocationInfo.Column)
+ .Where(x => x.LocationInfo.Layer == oneDepth.LocationInfo.Layer)
+ .FirstOrDefault();
+
+ // 濡傛灉鎵惧埌浜嗘渶鎺ヨ繎鐨勪簩娣变綅璁板綍锛屽皢鍏朵笌涓�娣变綅涓�璧锋坊鍔犲埌缁撴灉鍒楄〃
+ if (closestTwoDepth != null)
+ {
+ results.Add(oneDepth);
+ results.Add(closestTwoDepth);
+ }
+ else
+ {
+ // 濡傛灉娌℃湁鎵惧埌鏈�鎺ヨ繎鐨勪簩娣变綅璁板綍锛屽皢涓�娣变綅娣诲姞鍒扮粨鏋滃垪琛�
+ results.Add(oneDepth);
+ }
+ }
+ return results;
+ }
+
+ #endregion 鍐呴儴璋冪敤
+
+ #region 绉佹湁鏂规硶
+
+ #region 鐢熶骇鍑哄簱鍗�
+
+ /// <summary>
+ /// 鏍规嵁涓绘暟鎹瀯寤虹敓浜у嚭搴撳崟瀵硅薄銆�
+ /// </summary>
+ private Dt_OutOrderProduction CreateProductionOrder(Dictionary<string, object> mainData)
+ {
+ return new Dt_OutOrderProduction
+ {
+ OrderNumber = mainData.GetValueOrDefault("OrderNumber")?.ToString(),
+ WarehouseId = mainData.GetValueOrDefault("WarehouseId")?.ObjToInt() ?? 0,
+ Status = (int)OutOrderTypeEnum.Issue,
+ Remarks = mainData.GetValueOrDefault("Remarks")?.ToString(),
+ Creater = mainData.GetValueOrDefault("Creater")?.ToString(),
+ CreateDate = mainData.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+ OrderDate = mainData.GetValueOrDefault("OrderDate")?.ObjToDate() ?? DateTime.Now,
+ };
+ }
+
+ /// <summary>
+ /// 鏍规嵁鏄庣粏鏁版嵁鍜岀敓浜у嚭搴撳崟ID鏋勫缓鐢熶骇鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+ /// </summary>
+ private List<Dt_OutOrderProductionDetail> CreateProductionDetails(List<Dictionary<string, object>> detailData)
+ {
+ var details = new List<Dt_OutOrderProductionDetail>();
+ foreach (var item in detailData)
+ {
+ var detail = new Dt_OutOrderProductionDetail
+ {
+ MaterialId = item.GetValueOrDefault("MaterialId")?.ObjToInt() ?? 0,
+ Quantity = item.GetValueOrDefault("Quantity")?.ObjToInt() ?? 0,
+ Remarks = item.GetValueOrDefault("Remarks")?.ToString(),
+ CreateDate = item.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+ Creater = item.GetValueOrDefault("Creater")?.ToString(),
+ BatchNumber = item.GetValueOrDefault("BatchNumber")?.ToString(),
+ };
+ details.Add(detail);
+ }
+ return details;
+ }
+
+ /// <summary>
+ /// 鏍规嵁鐢熶骇鍑哄簱鍗曞璞″拰鐢熶骇鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曞璞°��
+ /// </summary>
+ private Dt_OutOrder CreateSystemOrder(Dt_OutOrderProduction production)
+ {
+ return new Dt_OutOrder
+ {
+ Status = production.Status,
+ CreateDate = DateTime.Now,
+ Creater = production.Creater,
+ OrderDate = DateTime.Now,
+ OrderNumber = production.OrderNumber,
+ Remarks = production.Remarks,
+ WarehouseId = production.WarehouseId,
+ };
+ }
+
+ /// <summary>
+ /// 鏍规嵁鐢熶骇鍑哄簱鍗曟槑缁嗗垪琛ㄥ拰绯荤粺鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+ /// </summary>
+ private List<Dt_OutOrderDetail> CreateSystemOrderDetails(List<Dt_OutOrderProductionDetail> productionDetails)
+ {
+ var orderDetails = new List<Dt_OutOrderDetail>();
+ foreach (var item in productionDetails)
+ {
+ var detail = new Dt_OutOrderDetail
+ {
+ AllocatedQuantity = 0,
+ BatchNumber = item.BatchNumber,
+ CompletedQuantity = 0,
+ CreateDate = item.CreateDate,
+ Creater = item.Creater,
+ MaterialId = item.MaterialId,
+ OutboundQuantity = item.Quantity,
+ Remarks = item.Remarks,
+ MaterialName = item.Remarks // 鐗╂枡鍚嶇О
+ };
+ orderDetails.Add(detail);
+ }
+ return orderDetails;
+ }
+
+ #endregion 鐢熶骇鍑哄簱鍗�
+
+ #region 璋冩嫧鍑哄簱鍗�
+
+ /// <summary>
+ /// 鏍规嵁涓绘暟鎹瀯寤鸿皟鎷ㄥ嚭搴撳崟瀵硅薄銆�
+ /// </summary>
+ private Dt_OutOrderTransfer CreateTransferOrder(Dictionary<string, object> mainData)
+ {
+ return new Dt_OutOrderTransfer
+ {
+ OrderNumber = mainData.GetValueOrDefault("OrderNumber")?.ToString(),
+ SourceWarehouseId = mainData.GetValueOrDefault("SourceWarehouseId")?.ObjToInt() ?? 0,
+ DestinationWarehouseId = mainData.GetValueOrDefault("WarehouseId")?.ObjToInt() ?? 0,
+ Status = (int)OutOrderTypeEnum.Allocate,
+ Remarks = mainData.GetValueOrDefault("Remarks")?.ToString(),
+ Creater = mainData.GetValueOrDefault("Creater")?.ToString(),
+ CreateDate = mainData.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+ OrderDate = mainData.GetValueOrDefault("OrderDate")?.ObjToDate() ?? DateTime.Now,
+ };
+ }
+
+ /// <summary>
+ /// 鏍规嵁鏄庣粏鏁版嵁鍜岃皟鎷ㄥ嚭搴撳崟ID鏋勫缓璋冩嫧鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+ /// </summary>
+ private List<Dt_OutOrderTransferDetail> CreateTransferDetails(List<Dictionary<string, object>> detailData)
+ {
+ var details = new List<Dt_OutOrderTransferDetail>();
+ foreach (var item in detailData)
+ {
+ var detail = new Dt_OutOrderTransferDetail
+ {
+ MaterialId = item.GetValueOrDefault("MaterialId")?.ObjToInt() ?? 0,
+ Quantity = item.GetValueOrDefault("Quantity")?.ObjToInt() ?? 0,
+ Remarks = item.GetValueOrDefault("Remarks")?.ToString(),
+ CreateDate = item.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+ Creater = item.GetValueOrDefault("Creater")?.ToString(),
+ BatchNumber = item.GetValueOrDefault("BatchNumber")?.ToString(),
+ };
+ details.Add(detail);
+ }
+ return details;
+ }
+
+ /// <summary>
+ /// 鏍规嵁鐢熶骇鍑哄簱鍗曞璞″拰鐢熶骇鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曞璞°��
+ /// </summary>
+ private Dt_OutOrder CreateSystemOrder(Dt_OutOrderTransfer transfer)
+ {
+ return new Dt_OutOrder
+ {
+ Status = transfer.Status,
+ CreateDate = DateTime.Now,
+ Creater = transfer.Creater,
+ OrderDate = DateTime.Now,
+ OrderNumber = transfer.OrderNumber,
+ Remarks = transfer.Remarks,
+ WarehouseId = transfer.SourceWarehouseId,
+ };
+ }
+
+ /// <summary>
+ /// 鏍规嵁鐢熶骇鍑哄簱鍗曟槑缁嗗垪琛ㄥ拰绯荤粺鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+ /// </summary>
+ private List<Dt_OutOrderDetail> CreateSystemOrderDetails(List<Dt_OutOrderTransferDetail> transferDetails)
+ {
+ var orderDetails = new List<Dt_OutOrderDetail>();
+ foreach (var item in transferDetails)
+ {
+ var detail = new Dt_OutOrderDetail
+ {
+ AllocatedQuantity = 0,
+ BatchNumber = item.BatchNumber,
+ CompletedQuantity = 0,
+ CreateDate = item.CreateDate,
+ Creater = item.Creater,
+ MaterialId = item.MaterialId,
+ OutboundQuantity = item.Quantity,
+ Remarks = item.Remarks,
+ MaterialName = item.Remarks // 鐗╂枡鍚嶇О
+ };
+ orderDetails.Add(detail);
+ }
+ return orderDetails;
+ }
+
+ #endregion 璋冩嫧鍑哄簱鍗�
+
+ #region 鍑哄簱鍒嗛厤
+
+ /// <summary>
+ /// 鍒涘缓浠诲姟鍒楄〃
+ /// </summary>
+ /// <param name="order">璁㈠崟瀵硅薄</param>
+ /// <param name="filteredStocks">绛涢�夊悗鐨勫簱瀛樺垪琛�</param>
+ /// <returns>銆愪换鍔″垪琛�,鏇存柊鍒嗛厤鏁伴噺璁㈠崟,鍒涘缓浠诲姟鐨勫簱瀛樸��</returns>
+ private (List<Dt_Task>, Dt_OutOrder, List<DtStockInfo>) CreateTasks(Dt_OutOrder order, List<DtStockInfo> filteredStocks)
+ {
+ var tasks = new List<Dt_Task>();
+ var stocks = new List<DtStockInfo>();
+
+ foreach (var stock in filteredStocks)
+ {
+ // 濡傛灉宸插垎閰嶆暟閲忚揪鍒板嚭搴撴暟閲忥紝鍋滄鍒嗛厤
+ if (order.OrderDetailList.AllocatedQuantity >= order.OrderDetailList.OutboundQuantity)
+ break;
+
+ // 濡傛灉鎵樼洏浠诲姟宸插瓨鍦紝璺宠繃
+ if (_taskRepository.QueryFirst(x => x.PalletCode == stock.PalletCode) != null)
+ continue;
+
+ // 鍒涘缓浠诲姟
+ tasks.Add(new Dt_Task
+ {
+ CreateDate = DateTime.Now, // 鍒涘缓鏃堕棿
+ Creater = App.User.UserName, // 鍒涘缓浜�
+ CurrentAddress = stock.LocationCode, //褰撳墠浣嶇疆
+ Dispatchertime = DateTime.Now, //璋冨害鏃堕棿锛堜换鍔′笅鍙戞椂闂达級
+ Grade = 1, // 绛夌骇
+ //PVI = stock.StockInfoDetails[0].MaterielCode, // 鐗╂枡鍙�
+ NextAddress = stock.LocationCode, // 涓嬩竴浣嶇疆
+ PalletCode = stock.PalletCode, //鎵樼洏鍙�
+ Remark = stock.Remark, //澶囨敞
+ Roadway = stock.LocationInfo.RoadwayNo, //宸烽亾
+ SourceAddress = stock.LocationCode, //鏉ユ簮浣嶇疆
+ TargetAddress = order.OrderDetailList.Remarks, //鐩爣鍦板潃
+ TaskNum = _taskRepository.GetTaskNo().Result, //浠诲姟鍙�
+ TaskState = (int)TaskOutStatusEnum.OutNew, //浠诲姟鐘舵��
+ TaskType = (int)TaskTypeEnum.Outbound, //浠诲姟绫诲瀷
+ });
+
+ // 鏇存柊宸插垎閰嶆暟閲�
+ order.OrderDetailList.AllocatedQuantity += stock.StockInfoDetails.Sum(x => x.StockQuantity);
+ stocks.Add(stock);
+ }
+
+ return (tasks, order, stocks);
+ }
+
+ /// <summary>
+ /// 鏇存柊搴撳瓨鐘舵��
+ /// </summary>
+ /// <param name="filteredStocks">绛涢�夊悗鐨勫簱瀛樺垪琛�</param>
+ /// <returns>鏇存柊鍚庣殑搴撳瓨鍒楄〃</returns>
+ private List<DtStockInfo> UpdateStocks(List<DtStockInfo> filteredStocks)
+ {
+ var updatedStocks = new List<DtStockInfo>();
+
+ foreach (var stock in filteredStocks)
+ {
+ // 鏇存柊搴撳瓨鐘舵��
+ stock.LocationInfo.LocationStatus = (int)LocationEnum.Lock;
+ stock.StockInfoDetails.ForEach(x =>
+ {
+ x.Status = (int)StockStateEmun.鍑哄簱閿佸畾;
+ });
+ updatedStocks.Add(stock);
+ }
+
+ return updatedStocks;
+ }
+
+ /// <summary>
+ /// 鍒涘缓璁㈠崟搴撳瓨鍒楄〃
+ /// </summary>
+ /// <param name="stock">绛涢�夊悗鐨勫簱瀛樺垪琛�</param>
+ /// <param name="order">璁㈠崟瀵硅薄</param>
+ /// <returns>璁㈠崟搴撳瓨鍒楄〃</returns>
+ private List<Dt_OutOrderAndStock> CreateOrderStock(List<DtStockInfo> stock, Dt_OutOrder order)
+ {
+ var orderStocks = new List<Dt_OutOrderAndStock>();
+ foreach (var item in stock)
+ {
+ orderStocks.Add(new Dt_OutOrderAndStock()
+ {
+ AllocatedQuantity = order.OrderDetailList.AllocatedQuantity,
+ MaterialNo = item.StockInfoDetails[0].MaterielCode,
+ MaterialName = order.OrderDetailList.MaterialName,
+ OrderNumber = order.OrderNumber,
+ OutboundQuantity = order.OrderDetailList.OutboundQuantity,
+ PalletCode = item.PalletCode,
+ PalletQuantity = item.StockInfoDetails.Sum(x => x.StockQuantity),
+ State = item.StockInfoDetails[0].Status,
+ BatchNumber = order.OrderDetailList.BatchNumber,
+ CompletedQuantity = order.OrderDetailList.CompletedQuantity,
+ Creater = App.User.UserName,
+ CreateDate = DateTime.Now,
+ GroupId = item.Id,
+ LocationCode = item.LocationInfo.LocationCode,
+ OutOrderId = order.Id,
+ });
+ }
+
+ return orderStocks;
+ }
+
+ #endregion 鍑哄簱鍒嗛厤
+
+ #endregion 绉佹湁鏂规硶
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs"
index 8b0a749..21003a2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs"
@@ -4,48 +4,33 @@
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
+using WIDESEAWCS_BasicInfoRepository;
+using WIDESEAWCS_BasicInfoService;
namespace WIDESEA_StorageTaskServices
{
- public class BDCManager : IBDCManager
+ public partial class BDCManager : IBDCManager
{
private readonly List<Dt_PalletStockInfo> _storageLocations;
- private readonly List<DtLocationInfo> _locationInfos;
private readonly object _lock = new object();
+ private readonly IDt_BDCConfigurationService _BDCConfigurationService;
+ private readonly ILocationInfoRepository _locationRepository;
+ private readonly IDt_RoadWayInfoRepository _roadWayInfoRepository;
+ private readonly IDt_RoadWayRepository _roadWayRepository;
- public int TotalCapacity => _locationInfos.Count;
+ // 鏇存柊鏋勯�犲嚱鏁�
+ public BDCManager(IDt_BDCConfigurationService BDCConfigurationService, ILocationInfoRepository locationInfoRepository, IDt_RoadWayInfoRepository roadWayInfoRepository )
+ {
+ _BDCConfigurationService = BDCConfigurationService;
+ _locationRepository = locationInfoRepository;
+ _roadWayInfoRepository = roadWayInfoRepository;
+ }
+
+
+ public List<DtLocationInfo> TotalCapacity => _locationRepository.QueryData();
public int CurrentOccupancy => _storageLocations.Count;
- public bool AddToBDC(Dt_CarBody body)
- {
- throw new NotImplementedException();
- }
-
- public void GenerateReport()
- {
- throw new NotImplementedException();
- }
-
- public List<Dt_CarBody> GetInventory()
- {
- throw new NotImplementedException();
- }
-
- public List<Dt_CarBody> RetrieveByColor(int color)
- {
- throw new NotImplementedException();
- }
-
- public List<Dt_CarBody> RetrieveByModel(string model)
- {
- throw new NotImplementedException();
- }
-
- public Dt_CarBody RetrieveFromBDC(string bodyId)
- {
- throw new NotImplementedException();
- }
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/Partial/BDCManager.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/Partial/BDCManager.cs"
new file mode 100644
index 0000000..452444c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/Partial/BDCManager.cs"
@@ -0,0 +1,61 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_StorageTaskServices
+{
+ public partial class BDCManager
+ {
+
+ public async Task<bool> AddToBDC(Dt_CarBody body)
+ {
+ // 鏍规嵁杞﹁韩绫诲瀷妫�鏌ユ槸鍚﹀彲浠ュ叆搴�
+ if (body.CarType == (int)BodyType.WhiteBody)
+ {
+ if (!await _BDCConfigurationService.CanAddWhiteBody())
+ {
+ Console.WriteLine($"鏃犳硶鍏ュ簱锛氱櫧杞﹁韩宸茶揪鍒版渶澶х紦瀛橀檺鍒�");
+ return false;
+ }
+ }
+ else // 褰╄溅韬�
+ {
+ if (!await _BDCConfigurationService.CanAddPaintedBody())
+ {
+ Console.WriteLine($"鏃犳硶鍏ュ簱锛氬僵杞﹁韩宸茶揪鍒版渶澶х紦瀛橀檺鍒�");
+ return false;
+ }
+ }
+ //TotalCapacity.Where(x=>x.EnalbeStatus == (int)EnableEnum.Enable && x.LocationStatus == (int)LocationEnum.Free).OrderByDescending.FirstOrDefault();
+
+ return true;
+ }
+
+ public void GenerateReport()
+ {
+ throw new NotImplementedException();
+ }
+
+ public List<Dt_CarBody> GetInventory()
+ {
+ throw new NotImplementedException();
+ }
+
+ public List<Dt_CarBody> RetrieveByColor(int color)
+ {
+ throw new NotImplementedException();
+ }
+
+ public List<Dt_CarBody> RetrieveByModel(string model)
+ {
+ throw new NotImplementedException();
+ }
+
+ public Dt_CarBody RetrieveFromBDC(string bodyId)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
index 7aad3d7..28e5306 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
@@ -12,6 +12,7 @@
using WIDESEA_IStoragIntegrationServices;
using WIDESEA_StoragIntegrationServices;
using WIDESEAWCS_BasicInfoRepository;
+using WIDESEAWCS_BasicInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.Models;
@@ -21,6 +22,7 @@
public partial class Dt_TaskService : ServiceBase<Dt_Task, IDt_TaskRepository>, IDt_TaskService
{
private readonly LogFactory LogFactory = new LogFactory();
+ //private readonly BDCManager bDCManager = new BDCManager();
private readonly IUnitOfWorkManage _unitOfWorkManage;
private readonly IDt_Task_HtyRepository _task_HtyRepository;
private readonly IMapper _mapper;
@@ -30,9 +32,12 @@
private readonly IDt_StationManagerRepository _stationManagerRepository;
private readonly ISys_ConfigService _configService;
private readonly IDt_PalletStockInfoRepository _palletStockInfoRepository;
- private readonly IDt_PalletStockInfoDetailRepository _palletStockInfoDetailRepository;
private readonly IDt_PalletStockInfo_htyRepository _palletStockInfo_HtyRepository;
- private readonly IBoxingInfoRepository _boxingInfoRepository;
+ private readonly IDt_CarBodyRepository _carBodyRepository;
+ private readonly IDt_BDCConfigurationRepository _bdcConfigurationRepository;
+ private readonly IDt_BDCConfigurationService _bdcConfigurationService;
+ private readonly IDt_RoadWayRepository _roadWayRepository;
+ private readonly IDt_RoadWayInfoRepository _roadWayInfoRepository;
public Dt_TaskService(IDt_TaskRepository BaseDal,
IUnitOfWorkManage unitOfWorkManage,
@@ -42,7 +47,7 @@
ITaskExecuteDetailRepository taskExecuteDetailRepository,
ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository,
IDt_StationManagerRepository stationManagerRepository,
- ISys_ConfigService configService, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_PalletStockInfo_htyRepository palletStockInfo_HtyRepository, IBoxingInfoRepository boxingInfoRepository, IDt_PalletStockInfoDetailRepository palletStockInfoDetailRepository) : base(BaseDal)
+ ISys_ConfigService configService, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_PalletStockInfo_htyRepository palletStockInfo_HtyRepository, IDt_CarBodyRepository carBodyRepository, IDt_BDCConfigurationRepository bdcConfigurationRepository, IDt_BDCConfigurationService bDCConfigurationService, IDt_RoadWayRepository roadWayRepository, IDt_RoadWayInfoRepository roadWayInfoRepository) : base(BaseDal)
{
_unitOfWorkManage = unitOfWorkManage;
@@ -55,8 +60,11 @@
_configService = configService;
_palletStockInfoRepository = palletStockInfoRepository;
_palletStockInfo_HtyRepository = palletStockInfo_HtyRepository;
- _boxingInfoRepository = boxingInfoRepository;
- _palletStockInfoDetailRepository = palletStockInfoDetailRepository;
+ _carBodyRepository = carBodyRepository;
+ _bdcConfigurationRepository = bdcConfigurationRepository;
+ _bdcConfigurationService = bDCConfigurationService;
+ _roadWayRepository = roadWayRepository;
+ _roadWayInfoRepository = roadWayInfoRepository;
}
#region 澶栭儴鎺ュ彛鏂规硶
@@ -85,14 +93,14 @@
var taskHty = CreateHistoricalTask(task);
//鑾峰彇缁勭洏淇℃伅
- var boxinginfo = await _boxingInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode);
+ var carBody = await _carBodyRepository.QueryFirstAsync(x => x.PalletCode == task.PalletCode);
// 鏍规嵁鍒涘缓搴撳瓨瀹炰緥妯″瀷
//var boxDetail = boxinginfo.BoxingInfoDetails.Adapt<List<Dt_PalletStockInfoDetail>>();
Dt_PalletStockInfo palletStockInfo = new Dt_PalletStockInfo
{
CreateDate = DateTime.Now,
-
+
Creater = task.Creater,
LocationCode = task.TargetAddress,
StockStatus = 2,
@@ -100,7 +108,7 @@
};
// 鎵ц鏁版嵁搴撲簨鍔�
- bool isResult = await ExecuteTransaction(palletStockInfo, taskHty, locationInf, task.TaskId, boxinginfo);
+ bool isResult = await ExecuteTransaction(palletStockInfo, taskHty, locationInf, task.TaskId, carBody);
if (isResult)
{
_locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInf, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum);
@@ -141,7 +149,7 @@
stockInfo_Hty.FinishTime = DateTime.Now;
stockInfo_Hty.OperateType = (int)OperateTypeEnum.鑷姩瀹屾垚;
- var boxinfo = _boxingInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
+ var boxinfo = _carBodyRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
// 浜嬪姟澶勭悊
await _unitOfWorkManage.UseTranAsync(async () =>
@@ -404,7 +412,7 @@
_unitOfWorkManage.CommitTran();
}
-
+
content.OK();
}
catch (Exception ex)
@@ -617,21 +625,6 @@
#endregion 鍐呴儴璋冪敤鏂规硶
#region private 鍐呴儴鏂规硶
-
-
- private async Task DeleteStockInfoDetailsAsync(IEnumerable<Dt_PalletStockInfoDetail> details)
- {
- if (details != null)
- {
- var ids = details.Select(x => (object)x.Id).ToArray();
- var isStockDetailUpdated = await _palletStockInfoDetailRepository.DeleteDataByIdsAsync(ids);
- if (!isStockDetailUpdated)
- {
- throw new Exception("搴撳瓨璇︽儏淇℃伅鏇存柊澶辫触");
- }
- }
- }
-
/// <summary>
/// 鍒涘缓鍘嗗彶浠诲姟璁板綍
/// </summary>
@@ -665,7 +658,7 @@
/// <param name="taskHty">鍘嗗彶浠诲姟瀵硅薄</param>
/// <param name="taskId">浠诲姟ID</param>
/// <returns></returns>
- private async Task<bool> ExecuteTransaction(Dt_PalletStockInfo stock, Dt_Task_Hty taskHty, DtLocationInfo locationInfo, int taskId, DtBoxingInfo boxingInfo)
+ private async Task<bool> ExecuteTransaction(Dt_PalletStockInfo stock, Dt_Task_Hty taskHty, DtLocationInfo locationInfo, int taskId, Dt_CarBody boxingInfo)
{
_unitOfWorkManage.BeginTran();
try
@@ -678,7 +671,7 @@
//鍒犻櫎缁勭洏鏁版嵁
if (boxingInfo != null)
{
- var box = _boxingInfoRepository.DeleteData(boxingInfo);
+ var box = _carBodyRepository.DeleteData(boxingInfo);
//boxingInfo.CurrentStatue = 5;
//isDeleteBoxing = await _boxingInfoRepository.Db.DeleteNav<DtBoxingInfo>(x => x.Id == boxingInfo.Id)
// .Include(x => x.BoxingInfoDetails)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs"
index 15a0dbd..9cc2883 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs"
@@ -31,10 +31,6 @@
WebResponseContent content = new WebResponseContent();
try
{
- //string palletCode = saveModel.MainData["palletCode"].ToString();
- //string station = saveModel.MainData["station"].ToString();
-
- // 璋冪敤BaseDal.QueryFirstAsync鏂规硶锛屾煡璇换鍔�
var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == input.PalletCode);
if (task != null)
{
@@ -46,14 +42,20 @@
{
throw new Exception($"绔欏彴{input.Position}涓嶅瓨鍦�");
}
-
+
+ var carBody = _carBodyRepository.QueryFirst(x => x.PalletCode == input.PalletCode);
+
+ BDCManager bDCManager = new BDCManager(_bdcConfigurationService, _locationRepository, _roadWayInfoRepository);
+
+ await bDCManager.AddToBDC(carBody);
+
// 鑾峰彇搴撲綅
var location = RequestLocation(stationInfo.Roadway);
if (location == null)
{
return content.Error("鏃犳硶鑾峰彇璐т綅淇℃伅鎴栧簱浣嶅凡婊�");
}
-
+
var newtask = new Dt_Task
{
CurrentAddress = input.Position,
@@ -61,7 +63,6 @@
Roadway = stationInfo.Roadway,
TargetAddress = location.LocationCode,
Dispatchertime = DateTime.Now,
-
NextAddress = stationInfo.Roadway,
OrderNo = null,
PalletCode = input.PalletCode,
@@ -70,10 +71,9 @@
TaskType = (int)TaskInboundTypeEnum.Inbound,
TaskNum = await BaseDal.GetTaskNo(),
Creater = "Systeam",
-
};
-
+
_unitOfWorkManage.BeginTran();
BaseDal.AddData(newtask);
@@ -81,7 +81,7 @@
_locationRepository.UpdateData(location);
_unitOfWorkManage.CommitTran();
- content.OK("鐢宠鍏ュ簱鎴愬姛",data: newtask);
+ content.OK("鐢宠鍏ュ簱鎴愬姛", data: newtask);
}
catch (Exception er)
{
@@ -121,7 +121,7 @@
return location;
}
catch (Exception err)
- {
+ {
Console.WriteLine(err.Message.ToString());
return null;
}
@@ -132,10 +132,10 @@
private DtLocationInfo GetEmptyLocation(List<DtLocationInfo> dtLocationInfos)
{
var locationinfo = dtLocationInfos.Where(x => x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == 1).OrderBy(x => x.Column).ThenBy(x => x.Row).ThenBy(x => x.Layer).FirstOrDefault(); //.ThenByDescending(x => x.Depth)
-
return locationinfo;
}
+
#endregion 鑾峰彇璐т綅
#endregion 搴撲綅鍒嗛厤
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/BasicInfo/Dt_BDCConfigurationController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/BasicInfo/Dt_BDCConfigurationController.cs"
new file mode 100644
index 0000000..caeba6d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/BasicInfo/Dt_BDCConfigurationController.cs"
@@ -0,0 +1,21 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_BusinessServices;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IBusinessServices;
+using WIDESEA_Model.Models;
+using WIDESEAWCS_BasicInfoService;
+
+namespace WIDESEA_WMSServer.Controllers
+{
+ [Route("api/Dt_BDCConfiguration")]
+ [ApiController]
+ public class Dt_BDCConfigurationController : ApiBaseController<IDt_BDCConfigurationService, Dt_BDCConfiguration>
+ {
+ private readonly IHttpContextAccessor _httpContextAccessor;
+ public Dt_BDCConfigurationController(IDt_BDCConfigurationService service, IHttpContextAccessor httpContextAccessor) : base(service)
+ {
+ _httpContextAccessor = httpContextAccessor;
+ }
+
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs"
index adc1050..079f645 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs"
@@ -42,7 +42,6 @@
return _MESService.prebind(json);
}
-
/// <summary>
/// 鎬昏宸ュ崟
/// </summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_AssemblyOrderInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_AssemblyOrderInfoController.cs"
new file mode 100644
index 0000000..f72341f
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_AssemblyOrderInfoController.cs"
@@ -0,0 +1,16 @@
+锘縩amespace WIDESEA_WMSServer.Controllers;
+
+/// <summary>
+/// 绯荤粺璁㈠崟鎺ュ彛
+/// </summary>
+[Route("api/[controller]")]
+[ApiController]
+public class Dt_AssemblyOrderInfoController : ApiBaseController<IDt_AssemblyOrderInfoService, Dt_AssemblyOrderInfo>
+{
+ private readonly IHttpContextAccessor _httpContextAccessor;
+
+ public Dt_AssemblyOrderInfoController(IDt_AssemblyOrderInfoService service, IHttpContextAccessor httpContextAccessor) : base(service)
+ {
+ _httpContextAccessor = httpContextAccessor;
+ }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_PaintingOrderInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_PaintingOrderInfoController.cs"
new file mode 100644
index 0000000..6a39f6c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_PaintingOrderInfoController.cs"
@@ -0,0 +1,16 @@
+锘縩amespace WIDESEA_WMSServer.Controllers;
+
+/// <summary>
+/// 绯荤粺璁㈠崟鎺ュ彛
+/// </summary>
+[Route("api/[controller]")]
+[ApiController]
+public class Dt_PaintingOrderInfoController : ApiBaseController<IDt_PaintingOrderInfoService, Dt_PaintingOrderInfo>
+{
+ private readonly IHttpContextAccessor _httpContextAccessor;
+
+ public Dt_PaintingOrderInfoController(IDt_PaintingOrderInfoService service, IHttpContextAccessor httpContextAccessor) : base(service)
+ {
+ _httpContextAccessor = httpContextAccessor;
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3