From 266e4bf654c55ce2f7e9271048e4625f1b8b49f6 Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期一, 29 十二月 2025 14:36:08 +0800
Subject: [PATCH] Merge branch 'htq20251215' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu into htq20251215
---
项目代码/WIDESEA_WMSClient/src/views/outbound/outPicking.vue | 12 +-
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs | 13 ++
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_InboundService/InboundService.cs | 12 +
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoDetailController.cs | 5
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoDetailService.cs | 2
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs | 2
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 2
项目代码/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue | 7 +
项目代码/WIDESEA_WMSClient/config/buttons.js | 19 ++
项目代码/WIDESEA_WMSClient/src/extension/stock/stockInfoDetail.js | 57 +++++++++
项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/newAllocateOrderDetail.vue | 155 ++-----------------------
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs | 3
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoDetailService.cs | 21 +++
13 files changed, 156 insertions(+), 154 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/config/buttons.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/config/buttons.js"
index 26a9f2e..9d55312 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/config/buttons.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/config/buttons.js"
@@ -283,8 +283,7 @@
type: 'warning',
onClick: function () {
}
-},
-,{
+},{
name: "鍗� 鎹� 鐩� 鐐� 鎿� 浣�",
icon: '',
class: '',
@@ -292,6 +291,22 @@
type: 'warning',
onClick: function () {
}
+},{
+ name: "鍐荤粨",
+ icon: '',
+ class: '',
+ value: 'Lock',
+ type: 'warning',
+ onClick: function () {
+ }
+},{
+ name: "瑙i攣",
+ icon: '',
+ class: '',
+ value: 'Unlock',
+ type: 'warning',
+ onClick: function () {
+ }
},
]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/newAllocateOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/newAllocateOrderDetail.vue"
index a4f1a20..98fe105 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/newAllocateOrderDetail.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/newAllocateOrderDetail.vue"
@@ -315,149 +315,20 @@
});
},
outbound() {
- // if (this.selection.length === 0) {
- // return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
- // }
- // const platformOptions = [
- // { label: "绔欏彴2", value: "2-1" },
- // { label: "绔欏彴3", value: "3-1" },
- // ];
- // const mountNode = document.createElement("div");
- // document.body.appendChild(mountNode);
+ if (this.selection.length === 0) {
+ return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
+ }
- // const formData = reactive({
- // selectedPlatform: platformOptions[0].value,
- // });
-
- // const vnode = createVNode(
- // ElDialog,
- // {
- // title: "鍑哄簱鎿嶄綔 - 閫夋嫨鍑哄簱绔欏彴",
- // width: "500px",
- // modelValue: true,
- // appendToBody: true,
- // "onUpdate:modelValue": (isVisible) => {
- // if (!isVisible) {
- // render(null, mountNode);
- // document.body.removeChild(mountNode);
- // }
- // },
- // style: {
- // padding: "20px 0",
- // borderRadius: "8px",
- // },
- // },
- // {
- // default: () =>
- // h(
- // ElForm,
- // {
- // model: formData,
- // rules: {
- // selectedPlatform: [
- // { required: true, message: "璇烽�夋嫨鍑哄簱绔欏彴", trigger: "change" },
- // ],
- // },
- // ref: "outboundForm",
- // labelWidth: "100px",
- // style: {
- // padding: "0 30px",
- // },
- // },
- // [
- // h(ElFormItem, {
- // label: "鍑哄簱绔欏彴",
- // prop: "selectedPlatform",
- // style: {
- // marginBottom: "24px",
- // },
- // }, [
- // h(ElSelect, {
- // placeholder: "璇烽�夋嫨鍑哄簱绔欏彴锛�3-12锛�",
- // modelValue: formData.selectedPlatform,
- // "onUpdate:modelValue": (val) => {
- // formData.selectedPlatform = val;
- // },
- // style: {
- // width: "100%",
- // height: "40px",
- // borderRadius: "4px",
- // borderColor: "#dcdfe6",
- // },
- // }, platformOptions.map((platform) =>
- // h(ElOption, { label: platform.label, value: platform.value })
- // )),
- // ]),
- // h("div", {
- // style: {
- // textAlign: "right",
- // marginTop: "8px",
- // paddingRight: "4px",
- // },
- // }, [
- // h(ElButton, {
- // type: "text",
- // onClick: () => {
- // render(null, mountNode);
- // document.body.removeChild(mountNode);
- // ElMessage.info("鍙栨秷鍑哄簱鎿嶄綔");
- // },
- // style: {
- // marginRight: "8px",
- // color: "#606266",
- // },
- // }, "鍙栨秷"),
- // h(ElButton, {
- // type: "primary",
- // onClick: async () => {
- // const formRef = vnode.component.refs.outboundForm;
- // try {
- // await formRef.validate();
- // } catch (err) {
- // return;
- // }
-
- // const keys = this.selection.map((item) => item.id);
- // const requestParams = {
- // detailIds: keys,
- // outboundTargetLocation: formData.selectedPlatform,
- // outboundQuantity: 1,
- // operator: "",
- // orderNo: this.row.orderNo,
- // };
-
- // this.http
- // .post(
- // "api/Outbound/ProcessPickingOutbound",
- // requestParams,
- // "鏁版嵁澶勭悊涓�"
- // )
- // .then((x) => {
- // if (!x.status) return ElMessage.error(x.message);
- // ElMessage.success("鎿嶄綔鎴愬姛");
- // this.showDetialBox = false;
- // this.$emit("parentCall", ($vue) => {
- // $vue.getData();
- // });
- // render(null, mountNode);
- // document.body.removeChild(mountNode);
- // })
- // // .catch(() => {
- // // ElMessage.error("璇锋眰澶辫触锛岃绋嶅悗閲嶈瘯");
- // // });
- // },
- // style: {
- // borderRadius: "4px",
- // padding: "8px 20px",
- // },
- // }, "纭畾鍑哄簱"),
- // ]),
- // ]),
- // }
- // );
-
- // vnode.appContext = this.$.appContext;
- // render(vnode, mountNode);
+ const keys = this.selection.map((item) => item.id);
+ const requestParams = {
+ detailIds: keys,
+ outboundQuantity: 1,
+ operator: "",
+ orderNo: this.row.orderNo,
+ isBatch: this.isBatch
+ };
+ console.log(requestParams);
+ this.$refs.DirectOutbound.open(requestParams);
},
outboundbatch() {
if (this.selection.length === 0) {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/stock/stockInfoDetail.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/stock/stockInfoDetail.js"
index 24e1d94..82066ef 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/stock/stockInfoDetail.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/stock/stockInfoDetail.js"
@@ -16,7 +16,62 @@
buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
methods: {
//涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
- onInit() {
+ onInit() {
+ var LockBtn = this.buttons.find(x => x.value == "Lock");
+ if (LockBtn != null) {
+ LockBtn.onClick = () => {
+ var rows = this.$refs.table.getSelected();
+ if (!rows || rows.length === 0) {
+ return this.$Message.error("璇峰厛閫夋嫨闇�瑕佸鐞嗙殑鍗曟嵁");
+ }
+ var keys = rows.map(x => {return x.id;})
+ var param = {
+ DelKeys: keys,
+ Extra: true
+ }
+
+ this.http.post(`api/StockInfoDetail/LockOrUpLockStockDetail`,param,"鏁版嵁澶勭悊涓�...")
+ .then((x) => {
+ if (x.status) {
+ this.$Message.success(x.message);
+ this.refresh();
+ } else {
+ return this.$Message.error(x.message);
+ }
+ })
+ .catch((error) => {
+ this.$Message.error('璇锋眰澶辫触锛�' + (error.message || '鏈煡閿欒'));
+ });
+ }
+ }
+
+ var UnlockBtn = this.buttons.find(x => x.value == "Unlock");
+ if (UnlockBtn != null) {
+ UnlockBtn.onClick = () => {
+ var rows = this.$refs.table.getSelected();
+ if (!rows || rows.length === 0) {
+ return this.$Message.error("璇峰厛閫夋嫨闇�瑕佸鐞嗙殑鍗曟嵁");
+ }
+ var keys = rows.map(x => {return x.id;})
+ var param = {
+ DelKeys: keys,
+ Extra: false
+ }
+
+ this.http.post(`api/StockInfoDetail/LockOrUpLockStockDetail`,param,"鏁版嵁澶勭悊涓�...")
+ .then((x) => {
+ if (x.status) {
+ this.$Message.success(x.message);
+ this.refresh();
+ } else {
+ return this.$Message.error(x.message);
+ }
+ })
+ .catch((error) => {
+ this.$Message.error('璇锋眰澶辫触锛�' + (error.message || '鏈煡閿欒'));
+ });
+ }
+ }
},
onInited() {
//妗嗘灦鍒濆鍖栭厤缃悗
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/outbound/outPicking.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/outbound/outPicking.vue"
index 75de823..3ad4a98 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/outbound/outPicking.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/outbound/outPicking.vue"
@@ -40,8 +40,8 @@
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="鎵樼洏鐮�" prop="palletCode">
- <el-input ref="palletInput" v-model="scanForm.palletCode" placeholder="璇锋壂鎻忔墭鐩樼爜"
- size="large" clearable @keyup.enter="handlePalletScan">
+ <el-input ref="palletInput" v-model="scanForm.palletCode" placeholder="璇锋壂鎻忔墭鐩樼爜" size="large"
+ clearable @keyup.enter="handlePalletScan">
<template #prefix>
<i class="el-icon-box"></i>
</template>
@@ -311,8 +311,8 @@
</el-dialog>
<!-- 鏁村嚭纭瀵硅瘽妗� -->
- <el-dialog v-model="wholeOutDialogVisible" title="鏁村嚭鎿嶄綔纭" width="500px"
- :before-close="handleWholeOutDialogClose" custom-class="whole-out-dialog" style="margin-right: 0px;">
+ <el-dialog v-model="wholeOutDialogVisible" title="鏁村嚭鎿嶄綔纭" width="500px" :before-close="handleWholeOutDialogClose"
+ custom-class="whole-out-dialog" style="margin-right: 0px;">
<div class="whole-out-content" v-if="wholeOutInfo">
<!-- 璀﹀憡鎻愮ず -->
<el-alert title="璇ユ墭鐩樺寘鍚渶瑕佹暣鍑虹殑鐗╂枡" type="warning" :closable="false" show-icon class="whole-out-alert">
@@ -361,7 +361,7 @@
<div class="info-item">
<label>鏁村嚭鏁伴噺锛�</label>
<span class="info-value highlight">{{ wholeOutInfo.assignQuantity }} {{ wholeOutInfo.unit
- }}</span>
+ }}</span>
</div>
<div class="info-item">
<label>褰撳墠搴撳瓨锛�</label>
@@ -882,7 +882,7 @@
// 妫�鏌ユ槸鍚﹀寘鍚暣鍑�
hasWholeOut() {
- return this.unpickedData.some(item => item.assignQuantity === item.originalQuantity) && !this.matMixed;
+ return this.unpickedData.some(item => item.assignQuantity === item.originalQuantity) && !this.matMixed
},
// 璁$畻鍓╀綑搴撳瓨
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue"
index f41f4e4..1d73a86 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue"
@@ -67,7 +67,14 @@
{ title: "鐗╂枡缂栧彿", field: "materielCode", type: 'like' },
{ title: "鐗╂枡鍚嶇О", field: "materielName", type: 'like' },
{ title: "鍗曟嵁缂栧彿", field: "orderNo", type: 'like' },
+
+ ], [
{ title: "鎵樼洏鍙�", field: "palletCode", type: 'like' },
+ { title: "鎵规", field: "batchNo", type: 'like' },
+ { title: "鏉$爜", field: "barcode", type: 'like' },
+ ],
+ [
+ { title: "搴撳瓨鐘舵��", field: "status", type: 'select', dataKey: "stockStatusEmun", data: [] },
],
]);
const columns = ref([
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
index 0a34266..c40c087 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
@@ -184,6 +184,19 @@
return first;
}
}
+
+ public bool QueryLocationCount(int locationType)
+ {
+ try
+ {
+ return BaseDal.QueryData(x => x.LocationType == locationType && x.LocationStatus == (int)LocationStatusEnum.Free && x.EnableStatus == (int)EnableEnum.Enable).Any();
+ }
+ catch (Exception)
+ {
+ return false;
+ }
+
+ }
public Dt_LocationInfo? AssignLocation()
{
lock (_locker)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs"
index 8b9f256..6c59d4f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs"
@@ -107,6 +107,9 @@
[Description("宸叉竻鐞�")]
宸叉竻鐞� = 33,
+ [Description("鎵嬪姩鍐荤粨")]
+ 鎵嬪姩鍐荤粨 = 55,
+
[Description("鎵嬪姩瑙i攣")]
鎵嬪姩瑙i攣 = 66,
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs"
index 167a158..d228028 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs"
@@ -61,6 +61,8 @@
Dt_LocationInfo? AssignLocation();
+ bool QueryLocationCount(int locationType);
+
List<LocationTypeDto> GetLocationTypes();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoDetailService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoDetailService.cs"
index 93c7e76..de3985b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoDetailService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_IStockService/IStockInfoDetailService.cs"
@@ -15,5 +15,7 @@
PageGridData<StockInfoDetailWithPalletDto> GetPageData2(PageDataOptions options);
+ Task<WebResponseContent> LockOrUpLockStockDetail(SaveModel saveModel);
+
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs"
index ddabda4..4458ba2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs"
@@ -471,7 +471,7 @@
if (!result2.Item1) return content = WebResponseContent.Instance.Error(result2.Item2);
bool code = _locationTypeRepository.Db.Queryable<Dt_LocationType>().Where(x => x.LocationType == materielGroupDTO.WarehouseCode).Any();
- bool statu = _locationInfoRepository.Db.Queryable<Dt_LocationInfo>().Where(x => x.LocationType == materielGroupDTO.WarehouseCode && x.LocationStatus == (int)LocationStatusEnum.Free).Any();
+ bool statu = _locationInfoRepository.Db.Queryable<Dt_LocationInfo>().Where(x => x.LocationType == materielGroupDTO.WarehouseCode && x.LocationStatus == (int)LocationStatusEnum.Free && x.EnableStatus == (int)EnableEnum.Enable).Any();
if (!statu)
{
return content = WebResponseContent.Instance.Error($"璇ュ尯鍩熸棤璐т綅鍙垎閰�");
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/InboundService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/InboundService.cs"
index 62387ff..18d4a5f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/InboundService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/InboundService.cs"
@@ -24,6 +24,7 @@
using WIDESEA_DTO.Allocate;
using WIDESEA_DTO.Inbound;
using WIDESEA_DTO.ReturnMES;
+using WIDESEA_IBasicService;
using WIDESEA_IInboundService;
using WIDESEA_IStockService;
using WIDESEA_Model.Models;
@@ -48,7 +49,8 @@
private readonly IRepository<Dt_AllocateMaterialInfo> _allocateMaterialInfo;
private readonly HttpClientHelper _httpClientHelper;
private readonly IRepository<Dt_MesReturnRecord> _mesReturnRecord;
- public InboundService(IUnitOfWorkManage unitOfWorkManage, IInboundOrderDetailService inboundOrderDetailService, IInboundOrderService inbounOrderService, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_LocationType> locationTypeRepository, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IStockService stockService, IRepository<Dt_Task> taskRepository,IRepository<Dt_AllocateMaterialInfo> allocateMaterialInfo, HttpClientHelper httpClientHelper, IRepository<Dt_MesReturnRecord> mesReturnRecord)
+ private readonly ILocationInfoService _locationInfoService;
+ public InboundService(IUnitOfWorkManage unitOfWorkManage, IInboundOrderDetailService inboundOrderDetailService, IInboundOrderService inbounOrderService, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_LocationType> locationTypeRepository, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IStockService stockService, IRepository<Dt_Task> taskRepository,IRepository<Dt_AllocateMaterialInfo> allocateMaterialInfo, HttpClientHelper httpClientHelper, IRepository<Dt_MesReturnRecord> mesReturnRecord,ILocationInfoService locationInfoService)
{
_unitOfWorkManage = unitOfWorkManage;
InboundOrderDetailService = inboundOrderDetailService;
@@ -63,6 +65,7 @@
_allocateMaterialInfo = allocateMaterialInfo;
_httpClientHelper = httpClientHelper;
_mesReturnRecord = mesReturnRecord;
+ _locationInfoService = locationInfoService;
}
public async Task<WebResponseContent> GroupPallet(GroupPalletDto palletDto)
@@ -115,6 +118,11 @@
if (stockInfo != null && stockInfo.Details.Count > 0 && stockInfo.Details.FirstOrDefault()?.WarehouseCode != palletDto.WarehouseType)
{
return content.Error($"璇ユ墭鐩樼粍鐩樹粨搴撲负{stockInfo.Details.FirstOrDefault()?.WarehouseCode}涓庡綋鍓嶄粨搴搟palletDto.WarehouseType}涓嶄竴鑷达紝涓嶅厑璁哥粍鐩�");
+ }
+
+ if (!_locationInfoService.QueryLocationCount(Convert.ToInt32(palletDto.locationType)))
+ {
+ return content.Error($"璇ュ簱鍖簕palletDto.locationType}涓嶅瓨鍦ㄧ┖闂插簱浣�");
}
foreach (var item in details)
@@ -376,7 +384,7 @@
.Where(x => x.OrderId == inboundOrder.Id && x.OrderDetailStatus==(int)OrderDetailStatusEnum.Over && x.ReturnToMESStatus == 0)
.ToList();
- var stocks = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.StockStatus == 6)
+ var stocks = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.StockStatus == (int)StockStatusEmun.鍏ュ簱瀹屾垚)
.Where(it => SqlFunc.Subqueryable<Dt_StockInfoDetail>().Where(s => s.StockId == it.Id && s.OrderNo == inboundOrder.InboundOrderNo).Any())
.ToList();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoDetailService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoDetailService.cs"
index 5165f0e..14763de 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoDetailService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoDetailService.cs"
@@ -129,6 +129,27 @@
}
+
+ public async Task<WebResponseContent> LockOrUpLockStockDetail(SaveModel saveModel)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ var details = await BaseDal.QueryDataAsync(x => saveModel.DelKeys.Contains(x.Id));
+
+ bool flag = Convert.ToBoolean(saveModel.Extra);
+
+ details.ForEach(x => x.Status = flag ? StockStatusEmun.鎵嬪姩鍐荤粨.ObjToInt(): StockStatusEmun.鎵嬪姩瑙i攣.ObjToInt());
+
+ await BaseDal.UpdateDataAsync(details);
+
+ return content.OK(flag ? "鍐荤粨鎴愬姛!" : "瑙i攣鎴愬姛!");
+ }
+ catch (Exception ex)
+ {
+ return content.Error(ex.Message);
+ }
+ }
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoDetailController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoDetailController.cs"
index e192624..5ba62cd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoDetailController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoDetailController.cs"
@@ -31,5 +31,10 @@
return Json(result);
}
+ [HttpPost, Route("LockOrUpLockStockDetail")]
+ public Task<WebResponseContent> LockOrUpLockStockDetail([FromBody]SaveModel saveModel)
+ {
+ return Service.LockOrUpLockStockDetail(saveModel);
+ }
}
}
--
Gitblit v1.9.3