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} 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 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/CheckOrderItemParams.java
New file @@ -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; } rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/CheckOrderParams.java
New file @@ -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("盘点单明细ID") 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; } 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); } 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