From 3880c725fab89113427a4fdfcd309a26af89b89f Mon Sep 17 00:00:00 2001 From: wanghao Date: Mon, 10 Mar 2025 09:05:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/controller/WmsPdaApiController.java | 29 +++++++-- .../org/dromara/wms/domain/WmsInventory.java | 8 +-- .../org/dromara/wms/domain/WmsPsmStorage.java | 2 + .../dromara/wms/domain/vo/StoreInfoVo.java | 10 +++ .../wms/mapper/WmsInventoryMapper.java | 3 + .../wms/mapper/WmsOutstockDetailMapper.java | 7 +- .../wms/service/IWmsPdaApiService.java | 8 +++ .../service/impl/WmsPdaApiServiceImpl.java | 65 ++++++++++++++++++- 8 files changed, 120 insertions(+), 12 deletions(-) create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/StoreInfoVo.java diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java index ec900951..3cbab69d 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java @@ -5,6 +5,7 @@ import org.dromara.common.core.domain.R; import org.dromara.common.web.core.BaseController; import org.dromara.wms.domain.ShiftChange; import org.dromara.wms.domain.WmsInventory; +import org.dromara.wms.domain.WmsOutstockRecord; import org.dromara.wms.domain.bo.WmsReturnOrderBo; import org.dromara.wms.domain.vo.*; import org.dromara.wms.service.*; @@ -90,9 +91,26 @@ public class WmsPdaApiController extends BaseController { return R.ok(wmsOutstockDetailVo); } + /** + * 原材料出库提交 + + * @return + */ @PostMapping("/raw/selectInVentoryByBatchCode") - public void rawSelectInVentoryByBatchCode(String bacthCode, String locationCode) { - WmsInventoryVo wmsInventoryVo=apiService.selectInVentoryByBatchCode(bacthCode,locationCode); + public R rawSelectInVentoryByBatchCode(WmsOutstockRecord outstockRecord) { + // 验证库存 + WmsInventory wmsInventory=apiService.outSelectInVentoryByBatch(outstockRecord); + + + // WmsInventoryVo wmsInventoryVo=apiService.selectInVentoryByBatchCode(outstockRecord.getBatchCode(),outstockRecord.getLocationCode()); + if (wmsInventory == null) { + R.fail("物料不在待出库列表内"); + } + if (wmsInventory.getInventoryQty().compareTo(outstockRecord.getOutstockQty())<0){ + R.fail("当前库位库存为:"+wmsInventory.getInventoryQty()); + } + Boolean result = apiService.rawOutSubmit(outstockRecord,wmsInventory); + return result ? R.ok() : R.fail(); } /** @@ -207,12 +225,15 @@ public class WmsPdaApiController extends BaseController { List teamList =apiService.selectTeams(); return R.ok(teamList); } + @PostMapping("/shiftChangeSubmit") public R shiftChangeSubmit(ShiftChange shiftChange) { Boolean result = apiService.shiftChangeSubmit(shiftChange); return result ? R.ok() : R.fail(); } - - + @PostMapping("/selectStoreInfo") + public void selectStoreInfo(String type){ + List list=apiService.selectStoreInfo(type); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java index 266d3cf4..d6a8597d 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java @@ -93,12 +93,12 @@ public class WmsInventory{ private Date updateTime; @TableField(exist = false) private String warehouseCode;//字段映射 -// @TableField(exist = false) - private String materialCode;//字段映射 + + private String materialCode; @TableField(exist = false) private String materialName;//字段映射 private String warehouseId; - - + @TableField(exist = false) + private Long outstockDetailId;//字段映射 } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStorage.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStorage.java index a5111973..7f6c5ed1 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStorage.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStorage.java @@ -84,7 +84,9 @@ public class WmsPsmStorage{ */ @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; + @TableField(exist = false) private String materialCode; } + diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/StoreInfoVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/StoreInfoVo.java new file mode 100644 index 00000000..0fbfdfa4 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/StoreInfoVo.java @@ -0,0 +1,10 @@ +package org.dromara.wms.domain.vo; + +import lombok.Data; + +@Data +public class StoreInfoVo { + private Long id; + private String code; + private String Name; +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryMapper.java index 7414d7ad..1fdcebba 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryMapper.java @@ -3,6 +3,7 @@ package org.dromara.wms.mapper; import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsInventory; +import org.dromara.wms.domain.WmsOutstockRecord; import org.dromara.wms.domain.bo.WmsInventoryBo; import org.dromara.wms.domain.vo.WmsInventoryVo; import org.springframework.stereotype.Repository; @@ -24,4 +25,6 @@ public interface WmsInventoryMapper extends BaseMapperPlus listInventoryAlarm(@Param("entity")WmsInventoryBo bo); List selectInventoryMaterialInfoList(@Param("entity")WmsInventoryBo bo); + + // WmsInventoryVo outSelectInVentoryByBatch(WmsOutstockRecord outstockRecord); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsOutstockDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsOutstockDetailMapper.java index d29bdcd0..003793c6 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsOutstockDetailMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsOutstockDetailMapper.java @@ -1,10 +1,14 @@ package org.dromara.wms.mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsOutstockDetail; import org.dromara.wms.domain.vo.WmsOutstockDetailVo; import org.springframework.stereotype.Repository; +import java.math.BigDecimal; + /** * 出库单-物料Mapper接口 * @@ -14,5 +18,6 @@ import org.springframework.stereotype.Repository; @Repository public interface WmsOutstockDetailMapper extends BaseMapperPlus { - +@Update("UPDATE wms_outstock_detail SET out_sum = out_sum + #{outstockQty} WHERE outstock_detail_id = #{outstockDetailId} ") + int updateOutNumberByObjId(@Param("outstockDetailId") Long outstockDetailId,@Param("outstockQty") BigDecimal outstockQty); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java index e8557523..f0c7a9f9 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java @@ -1,6 +1,8 @@ package org.dromara.wms.service; import org.dromara.wms.domain.ShiftChange; +import org.dromara.wms.domain.WmsInventory; +import org.dromara.wms.domain.WmsOutstockRecord; import org.dromara.wms.domain.vo.*; import java.util.List; @@ -35,4 +37,10 @@ public interface IWmsPdaApiService { List selectTeams(); Boolean shiftChangeSubmit(ShiftChange shiftChange); + + Boolean rawOutSubmit(WmsOutstockRecord outstockRecord, WmsInventory wmsInventoryVo); + + WmsInventory outSelectInVentoryByBatch(WmsOutstockRecord outstockRecord); + + List selectStoreInfo(String type); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java index bf32c05c..896e494c 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java @@ -14,6 +14,7 @@ import org.dromara.common.translation.annotation.Translation; import org.dromara.wms.domain.*; import org.dromara.wms.domain.vo.*; import org.dromara.wms.mapper.*; +import org.dromara.wms.service.IWmsOutstockRecordService; import org.dromara.wms.service.IWmsPdaApiService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -28,7 +29,6 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService { private final WmsOutstockRecordMapper wmsOutstockRecordMapper; private final WmsPdaApiMapper apiMapper; private final WmsHppInStockDetailMapper baseMapper; - private final WmsPsmInStockMapper wmsPsmInStockMapper; private final WmsPsmInLoadDetailMapper wmsPsmInLoadDetailMapper; @@ -194,10 +194,10 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService { BeanUtils.copyProperties(vo, inventory); inventory.setInventoryQty(BigDecimal.valueOf(vo.getInstockQty())); wmsInventoryMapper.insert(inventory); - }else { + } else { WmsInventory inventory = new WmsInventory(); inventory.setInventoryId(wmsInventoryVo.getInventoryId()); - inventory.setInventoryQty(wmsInventoryVo.getInventoryQty().add(BigDecimal.valueOf(wmsInstockRecord.getInstockQty())) ); + inventory.setInventoryQty(wmsInventoryVo.getInventoryQty().add(BigDecimal.valueOf(wmsInstockRecord.getInstockQty()))); wmsInventoryMapper.updateById(inventory); } @@ -224,4 +224,63 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService { return wmsInventoryMapper.selectVoOne(lqw); } + @Override + public List selectTeams() { + return apiMapper.selectTeams(); + } + + @Override + public Boolean shiftChangeSubmit(ShiftChange shiftChange) { + shiftChange.setUserId(LoginHelper.getUserId()); + int i = apiMapper.shiftChangeSubmit(shiftChange); + return i > 0; + } + + @Override + public Boolean rawOutSubmit(WmsOutstockRecord outstockRecord, WmsInventory wmsInventory) { + // 出库数量 + BigDecimal outstockQty = outstockRecord.getOutstockQty(); + // 库存 + BigDecimal inventoryQty = wmsInventory.getInventoryQty(); + inventoryQty = inventoryQty.subtract(outstockQty); + if (inventoryQty.compareTo(BigDecimal.ZERO) == 0) { + wmsInventoryMapper.deleteById(wmsInventory.getInventoryId()); + }else { + WmsInventory inventory = new WmsInventory(); + inventory.setInventoryId(wmsInventory.getInventoryId()); + inventory.setInventoryQty(inventoryQty); + wmsInventoryMapper.updateById(inventory); + } + // 插入记录 + outstockRecord.setMaterialId(wmsInventory.getMaterialId()); + outstockRecord.setCreateBy(LoginHelper.getUserId()); + outstockRecord.setCreateTime(DateUtils.getNowDate()); + wmsOutstockRecordMapper.insert(outstockRecord); + // 修改子表出库数量 + wmsOutstockDetailMapper.updateOutNumberByObjId(wmsInventory.getOutstockDetailId(),outstockRecord.getOutstockQty()); + + + return null; + } + + /** + * 出库连子表查物料库存 + * @param outstockRecord + * @return + */ + @Override + public WmsInventory outSelectInVentoryByBatch(WmsOutstockRecord outstockRecord) { + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsInventory.class) + .rightJoin(WmsOutstockDetail.class,WmsOutstockDetail::getMaterialId,WmsInventory::getMaterialId) + .select(WmsOutstockDetail::getOutstockDetailId) + .eq(WmsOutstockDetail::getOutstockCode, outstockRecord.getOutstockCode()) + .eq(WmsInventory::getBatchCode, outstockRecord.getBatchCode()) + .eq(WmsInventory::getLocationCode, outstockRecord.getLocationCode()); + return wmsInventoryMapper.selectOne(lqw); + } + + @Override + public List selectStoreInfo(String type) { + return List.of(); + } }