diff --git a/src/api/Inventory/autoInventory.js b/src/api/Inventory/autoInventory.js
index add3b65..8ff474d 100644
--- a/src/api/Inventory/autoInventory.js
+++ b/src/api/Inventory/autoInventory.js
@@ -17,7 +17,14 @@ export function getScan(query) {
params: query
})
}
-
+// 统计
+export function getTotalStatistics(data) {
+ return request({
+ url: '/MatchScan/statistics',
+ method: 'post',
+ data: data
+ })
+}
// 开始匹配
export function getMatch(data) {
return request({
@@ -44,6 +51,15 @@ export function getScanResult(query) {
params: query
})
}
+// 获取盘点结果 - 最新再用
+export function inventoryList(data) {
+ return request({
+ url: '/MatchScan/inventoryList',
+ method: 'post',
+ data: data
+ })
+}
+
// 获取图表
export function getChart(data) {
diff --git a/src/components/printBill/bill.vue b/src/components/printBill/bill.vue
index 65ae0f4..32c0e84 100644
--- a/src/components/printBill/bill.vue
+++ b/src/components/printBill/bill.vue
@@ -73,6 +73,7 @@
+ | 序号 |
物料号 |
物料描述 |
计量单位 |
@@ -87,7 +88,8 @@
-
+
+ | {{ index + 1 }} |
{{ item.wlNo }} |
{{ item.wlMs }} |
{{ item.dw }} |
@@ -151,7 +153,7 @@ const summaryList = computed(() => {
props.billAllObj.forEach(item => {
if (map.has(item.wlNo)) {
const existing = map.get(item.wlNo);
- const total = (parseFloat(existing.totalQty) + parseFloat(item.realQty)) * 100*10000
+ const total = (parseFloat(existing.totalQty)*100 *10000 + parseFloat(item.realQty)*100 *10000)
existing.totalQty = total / ( 100 * 10000);
} else {
map.set(item.wlNo, {
diff --git a/src/components/storageBill/bill.vue b/src/components/storageBill/bill.vue
index 059c2e7..9f55c92 100644
--- a/src/components/storageBill/bill.vue
+++ b/src/components/storageBill/bill.vue
@@ -145,7 +145,7 @@ const summaryList = computed(() => {
props.billAllObj.forEach(item => {
if (map.has(item.wlNo)) {
const existing = map.get(item.wlNo);
- const total = (parseFloat(existing.totalQty) + parseFloat(item.realQty)) * 100*10000
+ const total = (parseFloat(existing.totalQty) * 100*10000+ parseFloat(item.realQty)* 100*10000)
existing.totalQty = total / ( 100 * 10000);
} else {
map.set(item.wlNo, {
diff --git a/src/views/Inventory/task/autoInventory.vue b/src/views/Inventory/task/autoInventory.vue
index dae3012..4285120 100644
--- a/src/views/Inventory/task/autoInventory.vue
+++ b/src/views/Inventory/task/autoInventory.vue
@@ -69,14 +69,47 @@
当前为未扫描到,但数据库里有的数据
当前为已扫描到,但数据库里没有的数据
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.returnTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
+
+
+
+
+
+
+
+
+
+
@@ -106,7 +139,7 @@
@@ -115,7 +148,7 @@
-
+
diff --git a/src/views/wisdom/bill/index.vue b/src/views/wisdom/bill/index.vue
index 7315709..ce4b112 100644
--- a/src/views/wisdom/bill/index.vue
+++ b/src/views/wisdom/bill/index.vue
@@ -307,10 +307,24 @@
添加
-
+
+
+
+ 添加至入库
+
+
[已添加{{ outTempData.length }}条库存]
+
+
+
+
+ 删除
+
+
+
-
+
{
+ // 1. 校验realQty是否大于0(处理空值/非数字情况)
+ const realQty = Number(item.realQty);
+ if (isNaN(realQty) || realQty <= 0) {
+ // 避免同一个sapNo重复添加到提示中
+ if (!invalidQtySapNos.includes(item.sapNo)) {
+ invalidQtySapNos += item.sapNo + ',';
+ }
+ return; // 数量不合法,直接跳过后续唯一性判断
+ }
+
+ // 2. 生成唯一标识组合键
+ const uniqueKey = `${item.id}_${item.pcode}_${realQty}`;
+
+ // 3. 检查组合键是否已存在
+ if (uniqueKeys.has(uniqueKey)) {
+ // 存在重复,拼接sapNo(去重避免重复拼接)
+ if (!duplicateSapNos.includes(item.sapNo)) {
+ duplicateSapNos += item.sapNo + ',';
+ }
+ } else {
+ // 不存在重复,加入结果数组并记录组合键
+ arr.push(item);
+ uniqueKeys.add(uniqueKey);
+ }
+ console.log(uniqueKeys)
+ });
+
+ // 处理入库数量有误的提示
+ if (invalidQtySapNos) {
+ invalidQtySapNos = invalidQtySapNos.slice(0, -1); // 去掉最后一个逗号
+ proxy.$modal.msgError(`入库数量有误:${invalidQtySapNos}(入库数量需大于0)`);
+ return
+ }
+
+ // 处理重复数据的提示
+ if (duplicateSapNos) {
+ duplicateSapNos = duplicateSapNos.slice(0, -1); // 去掉最后一个逗号
+ proxy.$modal.msgError(`存在重复数据:${duplicateSapNos}`);
+ }
+
+ outTempData.value = arr
+}
+
+// 查看所有的出库数据
+const viewData = () => {
+ planList.value = JSON.parse(JSON.stringify(outTempData.value));
+}
+
+// 删除选中的出库数据
+const deleteData = () => {
+ if (checkPlanList.value.length == 0) {
+ proxy.$modal.msgError("请勾选数据");
+ return;
+ }
+ proxy.$modal.confirm("确认删除选中的出库数据吗?").then(() => {
+ const ids = checkPlanList.value.map(item => item.id);
+ console.log(ids)
+ planList.value = planList.value.filter(item => {
+ // 无id的元素默认保留(如果想删除无id的,可改为 item?.id && !arr2Ids.has(item.id))
+ return !ids.includes(item?.id);
+ });
+ outTempData.value = planList.value
+ });
+}
+
+
//新增入库 多选框选中数据
function handleSelectionChange(selection) {
checkPlanList.value = selection;
@@ -898,6 +995,7 @@ function searchPlan() {
for (let i = 0; i < planData.length; i++) {
planData[i].realQty = planData[i].waitQty;
planData[i].gysJhId = planData[i].id;
+ planData[i].pcode = "";
if (autoFill.value && kzms.value != "") {
planData[i].remark = kzms.value;
}
@@ -972,6 +1070,10 @@ function addNum(row) {
/** 确定入库按钮 */
function submitForm() {
+ if (outTempData.value.length !== planList.value.length) {
+ proxy.$modal.msgError("请查看勾选数据");
+ return;
+ }
proxy.$refs["stockRef"].validate((valid) => {
if (valid) {
if (checkPlanList.value.length == 0) {
@@ -1801,4 +1903,20 @@ isAudit();
display: flex;
justify-content: flex-end;
}
+
+
+.addBox{
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 10px;
+ cursor: pointer;
+ .addData {
+ display: flex;
+ align-items: center;
+ color: var(--el-text-color-regular);
+ font-weight: bold;
+ }
+
+}
diff --git a/src/views/wisdom/outbound/index.vue b/src/views/wisdom/outbound/index.vue
index a6932e1..0e091f8 100644
--- a/src/views/wisdom/outbound/index.vue
+++ b/src/views/wisdom/outbound/index.vue
@@ -113,8 +113,9 @@
>否
是
- 配送中
- 配送完成
+ 待配送
+ 配送中
+ 配送完成
-
-
+
+
@@ -71,7 +71,7 @@
+ @change="changeOperationType($event, 'operationTypeCK')" clearable >
@@ -183,7 +183,7 @@ const data = reactive({
pageNum: 1,
pageSize: 10,
billNo: null,
- isChuku: null,
+ bizType: null,
startTime: null,
endTime: null,
xmNo: null,
@@ -276,13 +276,15 @@ function handleExport() {
//搜索按钮操作
function handleQuery() {
//所属仓库
- console.log(warehouseCode.value, optionTime, '====');
+ console.log(operationTypeCK.value,operationTypeRK.value, '====');
if (warehouseCode.value) {
queryParams.value.cangku = warehouseCode.value[1]
}
//详细类型
if (operationTypeCK.value?.length > 0 || operationTypeRK.value?.length > 0) {
queryParams.value.operationType = operationTypeRK.value || operationTypeCK.value
+ }else{
+ queryParams.value.operationType =''
}
//操作时间
if (optionTime.value && optionTime.value.length > 0) {
diff --git a/src/views/wisdom/stock/index.vue b/src/views/wisdom/stock/index.vue
index 49514ab..b6fb0cb 100644
--- a/src/views/wisdom/stock/index.vue
+++ b/src/views/wisdom/stock/index.vue
@@ -60,24 +60,34 @@
:props="{ children: 'children', label: 'warehouseName', value: 'warehouseCode' }" clearable />
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
+
+
+
搜索
@@ -85,6 +95,7 @@
+
@@ -109,6 +120,7 @@
ref="infoTableRef"
highlight-current-row
@row-click="(row) => tableInfoRowClick(row, infoTableRef)"
+ @selection-change="printSelectionChange"
border>
@@ -128,6 +140,7 @@
+
@@ -328,6 +341,7 @@ import { listStock, getTotal, editStock, printTag } from "@/api/wisdom/
import { warehousingDict } from "@/api/information/warehousingtype"; //入库类型
import { materialtypeDict } from "@/api/information/materialtype"; //物资类型
import { warehouseAll } from "@/api/information/warehouseinfo"; //所属仓库
+import { listScene } from "@/api/information/scene"; //所属仓库
import { personListDict } from "@/api/system/user"; //理货员
import { getKwAllList } from "@/api/information/pcdedetail"; //库位下拉数据
import { parseTime } from '@/utils/manage'
@@ -342,7 +356,7 @@ const showSearch = ref(true);
const warehouseCode = ref(''); //所属仓库下拉数据
-const printList = ref([]) //要打印的数据列表
+
const optionTime = ref([]) //入库时间
@@ -377,6 +391,7 @@ const data = reactive({
cangku: "",
wlMs: "",
ids: [],
+ remark: "",
},
rules: {
wlType: [{ required: true, message: "物资类型不能为空", trigger: "change" }],
@@ -410,6 +425,11 @@ function getList() {
}
getList();
+const printList = ref([]) //要打印的数据列表
+const printSelectionChange = (selection) => {
+ printList.value = selection
+}
+
// 获取总计
const totalMoney = ref(null)
const pcodeCount = ref(null)
@@ -444,6 +464,14 @@ function materialFun() {
})
}
materialFun()
+//场景下拉
+const sceneTypeList = ref([]);
+function listSceneFun() {
+ listScene().then(response => {
+ sceneTypeList.value = response.rows
+ })
+}
+listSceneFun()
//理货员
const personList = ref([]);
@@ -554,12 +582,12 @@ function submitMoveForm() {
proxy.$modal.msgError("仓库不能为空");
return;
}
- if (checkStockList.value[0].pcode == checkStockList.value[0].toPcode) {
- proxy.$modal.msgError(
- "不允许选择原来的库位【" + checkStockList.value[0].pcode + "】"
- );
- return;
- }
+ // if (checkStockList.value[0].pcode == checkStockList.value[0].toPcode) {
+ // proxy.$modal.msgError(
+ // "不允许选择原来的库位【" + checkStockList.value[0].pcode + "】"
+ // );
+ // return;
+ // }
if (checkStockList.value[0].realQty > checkStockList.value[0].num) {
proxy.$modal.msgError("移库数量不正确");
return;