rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx
@@ -220,7 +220,7 @@ }), }} resource="reviseLog" title={"menu.reviseLog"} title={false} empty={false} filters={false} sort={{ field: "create_time", order: "desc" }} rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java
@@ -7,7 +7,6 @@ import com.vincent.rsf.server.common.annotation.OperationLog; 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; @@ -118,7 +117,8 @@ if (Objects.isNull(transferParams)) { throw new CoolException("参数不能为空!!"); } return receiveMsgService.syncTransfer(transferParams); return receiveMsgService.syncTransfer(transferParams, getLoginUserId()); } @@ -135,7 +135,7 @@ if (Objects.isNull(reviseParams)) { return R.error("参数不能为空!!"); } return receiveMsgService.syncLocRevise(reviseParams); return receiveMsgService.syncLocRevise(reviseParams, getLoginUserId()); } /** rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncLocReviseParams.java
@@ -26,5 +26,5 @@ private Date reviseTime; @ApiModelProperty("单据名称列表") private List<SyncReviseItems> items; private List<SyncReviseItems> reviseItems; } 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:出库单,check: 盘点单, revise: 库存调整, }") @ApiModelProperty("单据类型{in: 收货入库单, out:出库单,check: 盘点单,}") private String type; @ApiModelProperty("单据明细信息") rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferItems.java
@@ -1,10 +1,10 @@ package com.vincent.rsf.server.api.controller.erp.params; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import io.swagger.annotations.ApiModel; import lombok.experimental.Accessors; import lombok.Data; import java.io.Serializable; @@ -12,9 +12,6 @@ @Accessors(chain = true) @ApiModel(value = "SyncTransferItems", description = "调拔单同步参数") public class SyncTransferItems implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty("物料名称") private String maktx; @@ -51,6 +48,5 @@ @ApiModelProperty("项目编码") private String projectCode; } rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferParams.java
@@ -14,8 +14,6 @@ @ApiModel(value = "SyncTransferParams", description = "调拔单同步参数") public class SyncTransferParams implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty("原库区") private String orgAreaName; rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
@@ -2,13 +2,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.server.api.controller.erp.params.*; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.entity.Loc; import com.vincent.rsf.server.manager.entity.Transfer; import java.util.List; @@ -106,7 +104,7 @@ * @description: 调拔单据同步 * @version 1.0 */ R syncTransfer(SyncTransferParams transferParams); R syncTransfer(SyncTransferParams transferParams, Long loginUserId); /** * @author Ryan @@ -114,7 +112,7 @@ * @description: 库存调整单同步 * @version 1.0 */ R syncLocRevise(SyncLocReviseParams reviseParams); R syncLocRevise(SyncLocReviseParams reviseParams, Long loginUserId); /** * @author Ryan rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -21,7 +21,6 @@ import com.vincent.rsf.server.manager.service.impl.MatnrServiceImpl; import com.vincent.rsf.server.system.constant.SerialRuleCode; import com.vincent.rsf.server.system.entity.Fields; import com.vincent.rsf.server.system.service.FieldsItemService; import com.vincent.rsf.server.system.service.FieldsService; import com.vincent.rsf.server.system.utils.SerialRuleUtils; import com.vincent.rsf.server.api.service.ReceiveMsgService; @@ -432,17 +431,17 @@ */ @Override @Transactional(timeout = 60, rollbackFor = Exception.class) public R syncTransfer(SyncTransferParams transferParams) { public R syncTransfer(SyncTransferParams transferParams, Long loginUserId) { Transfer transfer = new Transfer(); WarehouseAreas warehouseAreas = warehouseAreasService .getOne(new LambdaQueryWrapper<WarehouseAreas>() .eq(WarehouseAreas::getName, transfer.getOrgAreaName())); .eq(WarehouseAreas::getName, transferParams.getOrgAreaName())); if (Objects.isNull(warehouseAreas)) { throw new CoolException("原库区不存在!!"); } WarehouseAreas warehouseAreas1 = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>() .eq(WarehouseAreas::getName, transfer.getTarAreaName())); .eq(WarehouseAreas::getName, transferParams.getTarAreaName())); if (Objects.isNull(warehouseAreas1)) { throw new CoolException("目标库区不存在!!"); } @@ -456,6 +455,11 @@ .setTarAreaId(warehouseAreas1.getId()) .setTarWareName(warehouseAreas1.getWarehouseId$()) .setTarWareId(warehouseAreas1.getWarehouseId()) .setCreateBy(loginUserId) .setCreateTime(new Date()) .setUpdateTime(new Date()) .setUpdateBy(loginUserId) .setCode(SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TRANSFER_ORDER_CODE, null)) .setSource(OrderSourceType.ORDER_SOURCE_TYPE_ERP.val); if (!transferService.save(transfer)) { @@ -471,6 +475,10 @@ } transferItem.setMatnrId(matnr.getId()) .setTransferId(transfer.getId()) .setCreateBy(loginUserId) .setUpdateBy(loginUserId) .setCreateTime(new Date()) .setUpdateTime(new Date()) .setTransferCode(transfer.getCode()); if (!transferItemService.save(transferItem)) { @@ -489,7 +497,7 @@ */ @Override @Transactional(timeout = 60, rollbackFor = Exception.class) public R syncLocRevise(SyncLocReviseParams reviseParams) { public R syncLocRevise(SyncLocReviseParams reviseParams, Long loginUserId) { LocRevise locRevise = new LocRevise(); if (Objects.isNull(reviseParams.getAreaName())) { throw new CoolException("库区不能为空!!"); @@ -500,7 +508,13 @@ if (Objects.isNull(warehouseAreas)) { throw new CoolException("库区不存在!!"); } locRevise.setAreaName(locRevise.getAreaName()) locRevise.setAreaName(warehouseAreas.getName()) .setType(LocReviseType.getLocRevise(reviseParams.getType())) .setCreateBy(loginUserId) .setUpdateBy(loginUserId) .setCreateTime(new Date()) .setUpdateTime(new Date()) .setAreaId(warehouseAreas.getId()); locRevise.setCode(SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LOC_REVISE_CODE, null)); @@ -508,22 +522,40 @@ throw new CoolException("库存调整单保存失败!!"); } reviseParams.getItems().forEach(revise -> { reviseParams.getReviseItems().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()); reviseLog.setReviseId(locRevise.getId()) .setLocCode(loc.getCode()) .setType(Integer.parseInt(loc.getType())) .setCreateBy(loginUserId) .setUpdateBy(loginUserId) .setCreateTime(new Date()) .setUpdateTime(new Date()) .setReviseCode(locRevise.getCode()); if (!reviseLogService.save(reviseLog)) { throw new CoolException("库存调整单不能为空!!"); } revise.getItems().forEach(reviseItem -> { ReviseLogItem logItem = new ReviseLogItem(); BeanUtils.copyProperties(reviseItem, logItem); Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, reviseItem.getMatnrCode())); if (Objects.isNull(matnr)) { throw new CoolException("物料不存在!!"); } logItem.setLocId(loc.getId()) .setLocCode(loc.getCode()) .setId(null) .setMaktx(matnr.getName()) .setMatnrCode(matnr.getCode()) .setMatnrId(matnr.getId()) .setReviseLogId(reviseLog.getId()) .setCreateBy(loginUserId) .setUpdateBy(loginUserId) .setCreateTime(new Date()) .setUpdateTime(new Date()) .setReviseQty(reviseItem.getAnfme()); if (!reviseLogItemService.save(logItem)) { throw new CoolException("调整库存明细保存失败!!"); } @@ -654,7 +686,8 @@ CheckDiffDto checkDto = new CheckDiffDto(); CheckDiff checkDiff = new CheckDiff(); BeanUtils.copyProperties(check, checkDiff); List<CheckDiffItem> items = checkDiffItemService.list(new LambdaQueryWrapper<CheckDiffItem>().eq(CheckDiffItem::getCheckId, check.getId())); List<CheckDiffItem> items = checkDiffItemService.list(new LambdaQueryWrapper<CheckDiffItem>() .eq(CheckDiffItem::getCheckId, check.getId())); checkDto.setItems(items) .setCheckDiff(checkDiff); dtos.add(checkDto); rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocRevise.java
@@ -4,7 +4,11 @@ import java.text.SimpleDateFormat; import java.util.Date; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fasterxml.jackson.annotation.JsonFormat; import com.vincent.rsf.server.system.constant.DictTypeCode; import com.vincent.rsf.server.system.entity.DictData; import com.vincent.rsf.server.system.service.DictDataService; import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; import java.text.SimpleDateFormat; @@ -23,6 +27,7 @@ import com.vincent.rsf.server.system.entity.User; import java.io.Serializable; import java.util.Date; import java.util.Objects; @Data @Accessors(chain = true) @@ -156,15 +161,17 @@ } public String getType$(){ if (null == this.type){ return null; } switch (this.type){ case 1: return " 库存调整"; case 2: return " 盘点调整"; default: return String.valueOf(this.type); if (Cools.isEmpty(this.type)) { return null; } DictDataService dictDataService = SpringUtils.getBean(DictDataService.class); DictData dictDatas = dictDataService.getOne(new LambdaQueryWrapper<DictData>() .eq(DictData::getDictTypeCode, DictTypeCode.SYS_STOCK_REVISE_TYPE) .eq(DictData::getValue, this.type)); if (Objects.isNull(dictDatas) || Objects.isNull(dictDatas.getLabel())) { return null; } return dictDatas.getLabel(); } public String getExceStatus$(){ rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/LocReviseType.java
New file @@ -0,0 +1,36 @@ package com.vincent.rsf.server.manager.enums; /** * @author Ryan * @date 2025/8/22 * @description: 库存调整类型 * @version 1.0 */ public enum LocReviseType { //盘点单执行状态 /调拔单执行状态 LOC_REVISE_TYPE_STOCK("0", "库存调整"), LOC_REVISE_TYPE_CHECK("1", "盘点调整"), LOC_REVISE_TYPE_OTHER("2", "其它调整") ; LocReviseType(String val, String desc) { this.val = Integer.parseInt(val); this.desc = desc; } public Integer val; public String desc; public static Integer getLocRevise(String desc) { if (desc.equals(LocReviseType.LOC_REVISE_TYPE_STOCK.desc)) { return LocReviseType.LOC_REVISE_TYPE_STOCK.val; } else if (desc.equals(LocReviseType.LOC_REVISE_TYPE_CHECK.desc)) { return LocReviseType.LOC_REVISE_TYPE_CHECK.val; } else if (desc.equals(LocReviseType.LOC_REVISE_TYPE_OTHER.desc)) { return LocReviseType.LOC_REVISE_TYPE_OTHER.val; } else { return null; } } } rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
@@ -94,6 +94,8 @@ /**单据来源*/ public final static String SYS_ORDER_SOURCE = "sys_order_source"; /**调拔单*/ public final static String SYS_TRANSFER_TYPE = "sys_transfer_type"; /**库存调整*/ public final static String SYS_STOCK_REVISE_TYPE = "sys_stock_revise_type"; }