From 0b190d8a9aad67aa521ec163b437c59f6e63c400 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 17 七月 2025 14:04:27 +0800
Subject: [PATCH] 盘点单下发功能优化
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java | 21 +++++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CheckOrderService.java | 4 +
rsf-admin/src/page/orders/check/CheckOrderPub.jsx | 34 +++++++----
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java | 19 ++++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/CheckOrderItemParams.java | 44 ++++++++++++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/CheckOrderParams.java | 56 ++++++++++++++++++
6 files changed, 166 insertions(+), 12 deletions(-)
diff --git a/rsf-admin/src/page/orders/check/CheckOrderPub.jsx b/rsf-admin/src/page/orders/check/CheckOrderPub.jsx
index 61af609..24dade3 100644
--- a/rsf-admin/src/page/orders/check/CheckOrderPub.jsx
+++ b/rsf-admin/src/page/orders/check/CheckOrderPub.jsx
@@ -25,6 +25,7 @@
import ConfirmButton from '../../components/ConfirmButton';
import { Delete, Edit, Add } from '@mui/icons-material';
import CheckOrderSiteDialog from "./CheckOrderSiteDialog";
+import { map } from "lodash";
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
'& .css-1vooibu-MuiSvgIcon-root': {
@@ -81,12 +82,12 @@
const ComfirmButton = () => {
const { selectedIds, data, onUnselectItems } = useListContext();
const handleRowClick = () => {
- const ids = data.filter(item => selectedIds.includes(item.id)).map(item => item.id);
+ const ids = data.filter(item => selectedIds.includes(item.id));
setRowSelectedIds(ids);
const mas = data.filter(item => selectedIds.includes(item.id)).map(item => item.matnrCode);
//璁剧疆搴撲綅淇℃伅绛涢�夋潯浠�
setSelectedMatnr(mas);
- onUnselectItems()
+ // onUnselectItems()
}
return (
@@ -222,7 +223,7 @@
</Box>
<Box sx={{ textAlign: 'center' }}>
<CloseButton setOpen={setOpen} />
- <SubmitButton selectedIds={selectedIds} setSelectedIds={setSelectedIds} gridRef={gridRef} record={record} />
+ <SubmitButton selectedIds={selectedIds} setSelectedIds={setSelectedIds} rowSelectedIds={rowSelectedIds} gridRef={gridRef} record={record} />
</Box>
</Card>
</Grid>
@@ -420,23 +421,32 @@
//鎻愪氦鎸夐挳
-const SubmitButton = ({ selectedIds, setSelectedIds, gridRef, record }) => {
+const SubmitButton = ({ selectedIds, setSelectedIds, rowSelectedIds, gridRef, record }) => {
const notify = useNotify();
const refresh = useRefresh();
const redirect = useRedirect();
const submit = async () => {
const items = gridRef.current?.getSortedRows();
- const { data: { code, data, msg } } = await request.post('/outStock/generate/tasks', { items, outId: record?.id });
- if (code == 200) {
- refresh();
- redirect("/task")
- } else {
- notify(msg);
- }
+ let selctRecord = items.filter(item => selectedIds.includes(item?.id));
+ const records = rowSelectedIds.map(map =>{
+ return {
+ ...map,
+ items: selctRecord.filter(item => item.matnrCode == map.matnrCode)
+ }
+ })
+ console.log(records);
+
+ // const { data: { code, data, msg } } = await request.post('/check/generate/tasks', records);
+ // if (code == 200) {
+ // refresh();
+ // redirect("/task")
+ // } else {
+ // notify(msg);
+ // }
}
return (
<ConfirmButton
- label="toolbar.allComfirm"
+ label="toolbar.confirmSelect"
variant="contained"
size="medium"
onConfirm={submit}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java
index bbd2959..941cabb 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java
@@ -1,5 +1,6 @@
package com.vincent.rsf.server.manager.controller;
+import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -11,8 +12,11 @@
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams;
+import com.vincent.rsf.server.manager.controller.params.CheckOrderItemParams;
+import com.vincent.rsf.server.manager.controller.params.CheckOrderParams;
import com.vincent.rsf.server.manager.controller.params.OrderOutTaskParam;
import com.vincent.rsf.server.manager.entity.WkOrder;
+import com.vincent.rsf.server.manager.entity.WkOrderItem;
import com.vincent.rsf.server.manager.entity.excel.CheckOrderTemplate;
import com.vincent.rsf.server.manager.enums.CheckExceStatus;
import com.vincent.rsf.server.manager.enums.OrderType;
@@ -181,6 +185,23 @@
return checkOrderService.genCheckPreview(param);
}
+
+ /**
+ * 鐩樼偣鍗曠敓鎴愬嚭搴撲换鍔�
+ * @param params
+ * @return
+ */
+ @PostMapping("/check/generate/tasks")
+ @ApiOperation("鐢熸垚鐩樼偣鍑哄簱浠诲姟")
+ @PreAuthorize("hasAuthority('manager:outStock:list')")
+ public R genCheckOutTask( @RequestBody List<CheckOrderParams> params) {
+ if (Cools.isEmpty()) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+
+ return checkOrderService.genCheckOutTask(params, getLoginUserId());
+ }
+
/**
* 鑾峰彇鍑哄簱绔欑偣
* @return
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/CheckOrderItemParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/CheckOrderItemParams.java
new file mode 100644
index 0000000..f17232f
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/CheckOrderItemParams.java
@@ -0,0 +1,44 @@
+package com.vincent.rsf.server.manager.controller.params;
+
+
+import com.vincent.rsf.server.manager.entity.WkOrderItem;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "CheckOrderParams", description = "鐩樼偣鍗曞弬鏁�")
+public class CheckOrderItemParams {
+
+ @ApiModelProperty("搴撲綅")
+ private String locCode;
+
+ @ApiModelProperty("搴撲綅鏄庣粏ID")
+ private Long id;
+
+ @ApiModelProperty("鎵樼洏鐮�")
+ private String barcode;
+
+ @ApiModelProperty("鎵规")
+ private String batch;
+
+ @ApiModelProperty("鍗曚綅")
+ private String unit;
+
+ @ApiModelProperty("瀹㈠崟鍙�")
+ private String platOrderCode;
+
+ @ApiModelProperty("瀛楁绱㈠紩")
+ private String fieldsIndex;
+
+ @ApiModelProperty("鏁伴噺")
+ private Double anfme;
+
+ @ApiModelProperty("绔欑偣")
+ private String siteNo;
+
+
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/CheckOrderParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/CheckOrderParams.java
new file mode 100644
index 0000000..6c24ddd
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/CheckOrderParams.java
@@ -0,0 +1,56 @@
+package com.vincent.rsf.server.manager.controller.params;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "CheckOrderParams", description = "鐩樼偣鍗曞弬鏁�")
+public class CheckOrderParams {
+
+ @ApiModelProperty("鐩樼偣鍗曟槑缁咺D")
+ private Long id;
+
+ @ApiModelProperty(value= "绉�鐐瑰崟ID")
+ private Long orderId;
+
+ @ApiModelProperty(value= "ASN鍗曞彿")
+ private String orderCode;
+
+ @ApiModelProperty(value= "鐗╂枡鏍囪瘑")
+ private Long matnrId;
+
+ @ApiModelProperty(value = "鐗╂枡缂栫爜")
+ private String matnrCode;
+
+ @ApiModelProperty(value= "鐗╂枡鍚嶇О")
+ private String maktx;
+
+ @ApiModelProperty("瑙勬牸")
+ private String spec;
+
+ @ApiModelProperty("鍨嬪彿")
+ private String model;
+
+ @ApiModelProperty(value= "閫佽揣鏁伴噺")
+ private Double anfme;
+
+ @ApiModelProperty(value= "搴撳瓨鍗曚綅")
+ private String stockUnit;
+
+ @ApiModelProperty("搴撳瓨鎵规")
+ private String batch;
+
+ @ApiModelProperty(value= "宸叉敹鏁伴噺")
+ private Double qty;
+
+ @ApiModelProperty(value= "鏉″舰鐮�")
+ private String barcode;
+
+ @ApiModelProperty("搴撲綅鏄庣粏")
+ private List<CheckOrderItemParams> items;
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CheckOrderService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CheckOrderService.java
index 246d4ae..bdba839 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CheckOrderService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CheckOrderService.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams;
+import com.vincent.rsf.server.manager.controller.params.CheckOrderItemParams;
+import com.vincent.rsf.server.manager.controller.params.CheckOrderParams;
import com.vincent.rsf.server.manager.controller.params.OrderOutTaskParam;
import com.vincent.rsf.server.manager.entity.WkOrder;
import org.springframework.web.multipart.MultipartFile;
@@ -25,4 +27,6 @@
R genCheckPreview(OrderOutTaskParam param);
R getAllLocByMatnr(List<String> matnrs);
+
+ R genCheckOutTask(List<CheckOrderParams> checkParams, Long loginUserId);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java
index 8e8955f..b29df72 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java
@@ -9,6 +9,8 @@
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams;
+import com.vincent.rsf.server.manager.controller.params.CheckOrderItemParams;
+import com.vincent.rsf.server.manager.controller.params.CheckOrderParams;
import com.vincent.rsf.server.manager.controller.params.OrderOutTaskParam;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.entity.excel.CheckOrderTemplate;
@@ -249,6 +251,23 @@
/**
* @author Ryan
+ * @date 2025/7/17
+ * @description: 鐢熸垚鐩樼偣浠诲姟
+ * @version 1.0
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R genCheckOutTask(List<CheckOrderParams> checkParams, Long loginUserId) {
+ if (checkParams.isEmpty()) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+
+
+ return null;
+ }
+
+ /**
+ * @author Ryan
* @date 2025/7/16
* @description: 鍙栨秷鐩樼偣鍗曟嵁
* @version 1.0
--
Gitblit v1.9.1