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