From 5264cf0915ee9901cb9520fdcc6b8cdd5ecd4837 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 20 八月 2025 10:50:03 +0800 Subject: [PATCH] 库存调整功能界面优化 库存调整接口功能开发 --- rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx | 13 +- rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncLocReviseParams.java | 30 +++++++ rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx | 2 rsf-admin/src/page/stockManage/locRevise/ReviseLogItemList.jsx | 2 rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java | 8 ++ rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java | 58 ++++++++++++++ rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java | 2 rsf-admin/src/page/system/dept/DeptList.jsx | 2 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java | 2 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncReviseItems.java | 24 ++++++ rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java | 61 +++++++++++++++ 11 files changed, 192 insertions(+), 12 deletions(-) diff --git a/rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx b/rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx index efc0ff6..d6af8c7 100644 --- a/rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx +++ b/rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx @@ -176,7 +176,7 @@ defaultValue="1" source="type" parse={v => v} - label={translate("table.field.transfer.type")} + label={translate("table.field.locRevise.type")} /> </Grid> <Grid item md={2}> diff --git a/rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx b/rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx index 138f189..80520c1 100644 --- a/rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx +++ b/rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx @@ -66,7 +66,8 @@ <SelectInput source="type" label="table.field.locRevise.type" choices={[ { id: 0, name: ' 搴撳瓨璋冩暣' }, - { id: 2, name: ' 鐩樼偣璋冩暣' }, + { id: 1, name: ' 鐩樼偣璋冩暣' }, + { id: 2, name: ' 鍏跺畠璋冩暣' }, ]} />, <NumberInput source="anfme" label="table.field.locRevise.anfme" />, @@ -133,11 +134,11 @@ <NumberField source="id" /> <TextField source="code" label="table.field.locRevise.code" /> <TextField source="type$" label="table.field.locRevise.type" sortable={false} /> - <NumberField source="anfme" label="table.field.locRevise.anfme" /> - <NumberField source="reviseQty" label="table.field.locRevise.reviseQty" /> - <TextField source="exceStatus$" label="table.field.locRevise.exceStatus" sortable={false} /> + {/* <NumberField source="anfme" label="table.field.locRevise.anfme" /> + <NumberField source="reviseQty" label="table.field.locRevise.reviseQty" /> */} <NumberField source="areaId" label="table.field.locRevise.areaId" /> <TextField source="areaName" label="table.field.locRevise.areaName" /> + <TextField source="exceStatus$" label="table.field.locRevise.exceStatus" sortable={false} /> <TextField source="updateBy$" label="common.field.updateBy" /> <DateField source="updateTime" label="common.field.updateTime" showTime /> <TextField source="createBy$" label="common.field.createBy" /> @@ -165,7 +166,6 @@ ) } - //瀹屾垚鍗曟嵁 const CompleteButton = () => { const record = useRecordContext(); @@ -182,9 +182,8 @@ } return ( - record.exceStatus == 1 ? <ConfirmButton label={"toolbar.complete"} color="secondary" startIcon={<TaskIcon />} onConfirm={requestComplete} /> : <></> + record.exceStatus == 1 ? <ConfirmButton label={"toolbar.confirmTransfer"} color="secondary" startIcon={<TaskIcon />} onConfirm={requestComplete} size="small" /> : <></> ) - } diff --git a/rsf-admin/src/page/stockManage/locRevise/ReviseLogItemList.jsx b/rsf-admin/src/page/stockManage/locRevise/ReviseLogItemList.jsx index b6f8a49..fe23fb9 100644 --- a/rsf-admin/src/page/stockManage/locRevise/ReviseLogItemList.jsx +++ b/rsf-admin/src/page/stockManage/locRevise/ReviseLogItemList.jsx @@ -102,7 +102,7 @@ <TextField source="fieldsIndex" label="table.field.locItem.fieldsIndex" /> <TextField source="updateBy$" label="common.field.updateBy" /> <DateField source="updateTime" label="common.field.updateTime" showTime /> - <TextField source="createBy" label="common.field.createBy" /> + <TextField source="createBy$" label="common.field.createBy" /> <DateField source="createTime" label="common.field.createTime" showTime /> <BooleanField source="statusBool" label="common.field.status" sortable={false} /> <TextField source="memo" label="common.field.memo" sortable={false} /> diff --git a/rsf-admin/src/page/system/dept/DeptList.jsx b/rsf-admin/src/page/system/dept/DeptList.jsx index 253d92f..ebd19c7 100644 --- a/rsf-admin/src/page/system/dept/DeptList.jsx +++ b/rsf-admin/src/page/system/dept/DeptList.jsx @@ -107,7 +107,7 @@ {row.children && ( <IconButton aria-label="expand row" - size="small" + size='small' onClick={() => toggleNode(row.id)} > {isOpen ? <KeyboardArrowDownIcon /> : <KeyboardArrowRightIcon />} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java index 8c3ba2c..3f6da6a 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java @@ -3,11 +3,13 @@ import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.api.controller.erp.params.OrderParams; +import com.vincent.rsf.server.api.controller.erp.params.SyncLocReviseParams; import com.vincent.rsf.server.api.controller.erp.params.SyncOrderParams; import com.vincent.rsf.server.api.controller.erp.params.SyncTransferParams; import com.vincent.rsf.server.api.service.ReceiveMsgService; import com.vincent.rsf.server.common.utils.ExcelUtil; import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate; +import com.vincent.rsf.server.manager.enums.OrderType; import com.vincent.rsf.server.system.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -115,4 +117,63 @@ return receiveMsgService.syncTransfer(transferParams); } + + /** + * @author Ryan + * @date 2025/8/19 + * @description: 搴撳瓨璋冩暣鍗曞悓姝� + * @version 1.0 + */ + @ApiOperation("搴撳瓨璋冩暣鍗曞悓姝�") + @PostMapping("/sync/revises") + public R syncRevise(@RequestBody SyncLocReviseParams reviseParams) { + if (Objects.isNull(reviseParams)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + return receiveMsgService.syncLocRevise(reviseParams); + } + + /** + * @author Ryan + * @date 2025/8/19 + * @description: 搴撳瓨璋冩暣鍗曞悓姝� + * @version 1.0 + */ + @ApiOperation("璐ㄦ鍗曚笂鎶�") + @PostMapping("/sync/qlyInspect") + public R syncQlyReport(@RequestBody List<OrderParams> orders) { + + return R.ok(); + } + + /** + * @author Ryan + * @date 2025/8/19 + * @description: 鍗曟嵁淇敼 + * @version 1.0 + */ + @ApiOperation("鍗曟嵁淇敼") + @PostMapping("/sync/orders/update") + public R syncOrderUpdate(@RequestBody List<OrderParams> orders) { + + return R.ok(); + } + + + /** + * @author Ryan + * @date 2025/8/19 + * @description: 鍗曟嵁鍒犻櫎 + * @version 1.0 + */ + @ApiOperation("鍗曟嵁鍒犻櫎") + @PostMapping("/sync/orders/delete") + public R syncOrderDel(@RequestBody List<OrderParams> orders) { + + return R.ok(); + } + + + + } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncLocReviseParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncLocReviseParams.java new file mode 100644 index 0000000..ae932cf --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncLocReviseParams.java @@ -0,0 +1,30 @@ +package com.vincent.rsf.server.api.controller.erp.params; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +@Data +@Accessors(chain = true) +@ApiModel(value = "SyncLocReviseParams", description = "搴撳瓨璋冩暣鍗曞悓姝ュ弬鏁�") +public class SyncLocReviseParams implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("璋冩暣绫诲瀷 {1锛氱洏鐐硅皟鏁达紝 0}") + private String type; + + @ApiModelProperty("搴撳尯鍚嶇О") + private String areaName; + + @ApiModelProperty("璋冩暣鏃堕棿") + private Date reviseTime; + + @ApiModelProperty("鍗曟嵁鍚嶇О鍒楄〃") + private List<SyncReviseItems> items; +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java index 1ded2e0..875a5dc 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java @@ -15,7 +15,7 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("鍗曟嵁绫诲瀷{in: 鏀惰揣鍏ュ簱鍗曪紝 out锛氬嚭搴撳崟锛宑heck: 鐩樼偣鍗�, }") + @ApiModelProperty("鍗曟嵁绫诲瀷{in: 鏀惰揣鍏ュ簱鍗曪紝 out锛氬嚭搴撳崟锛宑heck: 鐩樼偣鍗�, revise: 搴撳瓨璋冩暣 }") private String type; @ApiModelProperty("鍗曟嵁鏄庣粏淇℃伅") diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java index 58f9aa1..e902599 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java @@ -60,7 +60,7 @@ @ApiModelProperty("鍨嬪彿") private String model; - @ApiModelProperty("閫佽揣鏁伴噺") + @ApiModelProperty("鏁伴噺") private Double anfme; @ApiModelProperty("搴撳瓨鍗曚綅") diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncReviseItems.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncReviseItems.java new file mode 100644 index 0000000..6dddeb3 --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncReviseItems.java @@ -0,0 +1,24 @@ +package com.vincent.rsf.server.api.controller.erp.params; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.experimental.Accessors; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +@Accessors(chain = true) +@ApiModel(value = "SyncReviseItems", description = "璋冩暣鍗曟槑缁�") +public class SyncReviseItems implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("搴撲綅") + private String locCode; + + @ApiModelProperty("璋冩暣鍗曟槑缁�") + private List<SyncOrdersItem> items; + +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java index 8880399..e01d4e0 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java @@ -105,4 +105,12 @@ * @version 1.0 */ R syncTransfer(SyncTransferParams transferParams); + + /** + * @author Ryan + * @date 2025/8/20 + * @description: 搴撳瓨璋冩暣鍗曞悓姝� + * @version 1.0 + */ + R syncLocRevise(SyncLocReviseParams reviseParams); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java index cc26147..de0ec9c 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java @@ -79,6 +79,12 @@ private TransferService transferService; @Autowired private TransferItemService transferItemService; + @Autowired + private LocReviseService locReviseService; + @Autowired + private ReviseLogService reviseLogService; + @Autowired + private ReviseLogItemService reviseLogItemService; /** @@ -474,4 +480,56 @@ return R.ok(); } + /** + * @author Ryan + * @date 2025/8/20 + * @description: 搴撳瓨璋冩暣鍗曞悓姝� + * @version 1.0 + */ + @Override + @Transactional(timeout = 60, rollbackFor = Exception.class) + public R syncLocRevise(SyncLocReviseParams reviseParams) { + LocRevise locRevise = new LocRevise(); + if (Objects.isNull(reviseParams.getAreaName())) { + throw new CoolException("搴撳尯涓嶈兘涓虹┖锛侊紒"); + } + WarehouseAreas warehouseAreas = warehouseAreasService + .getOne(new LambdaQueryWrapper<WarehouseAreas>() + .eq(WarehouseAreas::getName, reviseParams.getAreaName())); + if (Objects.isNull(warehouseAreas)) { + throw new CoolException("搴撳尯涓嶅瓨鍦紒锛�"); + } + locRevise.setAreaName(locRevise.getAreaName()) + .setAreaId(warehouseAreas.getId()); + locRevise.setCode(SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LOC_REVISE_CODE, null)); + + if (!locReviseService.save(locRevise)) { + throw new CoolException("搴撳瓨璋冩暣鍗曚繚瀛樺け璐ワ紒锛�"); + } + + reviseParams.getItems().forEach(revise -> { + Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, revise.getLocCode())); + ReviseLog reviseLog = new ReviseLog(); + BeanUtils.copyProperties(loc, reviseLog); + reviseLog.setReviseId(locRevise.getId()).setReviseCode(locRevise.getCode()); + if (!reviseLogService.save(reviseLog)) { + throw new CoolException("搴撳瓨璋冩暣鍗曚笉鑳戒负绌猴紒锛�"); + } + revise.getItems().forEach(reviseItem -> { + ReviseLogItem logItem = new ReviseLogItem(); + BeanUtils.copyProperties(reviseItem, logItem); + logItem.setLocId(loc.getId()) + .setLocCode(loc.getCode()) + .setId(null) + .setReviseQty(reviseItem.getAnfme()); + + if (!reviseLogItemService.save(logItem)) { + throw new CoolException("璋冩暣搴撳瓨鏄庣粏淇濆瓨澶辫触锛侊紒"); + } + }); + }); + + return R.ok(); + } + } -- Gitblit v1.9.1