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 3cbab69d..f6433bf6 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 @@ -1,11 +1,11 @@ package org.dromara.wms.controller; import lombok.RequiredArgsConstructor; +import org.apache.ibatis.annotations.Param; import org.dromara.common.core.domain.R; +import org.dromara.common.core.utils.DateUtils; 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.*; import org.dromara.wms.domain.bo.WmsReturnOrderBo; import org.dromara.wms.domain.vo.*; import org.dromara.wms.service.*; @@ -93,23 +93,23 @@ public class WmsPdaApiController extends BaseController { /** * 原材料出库提交 - + * * @return */ @PostMapping("/raw/selectInVentoryByBatchCode") public R rawSelectInVentoryByBatchCode(WmsOutstockRecord outstockRecord) { // 验证库存 - WmsInventory wmsInventory=apiService.outSelectInVentoryByBatch(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()); + if (wmsInventory.getInventoryQty().compareTo(outstockRecord.getOutstockQty()) < 0) { + R.fail("当前库位库存为:" + wmsInventory.getInventoryQty()); } - Boolean result = apiService.rawOutSubmit(outstockRecord,wmsInventory); + Boolean result = apiService.rawOutSubmit(outstockRecord, wmsInventory); return result ? R.ok() : R.fail(); } @@ -218,11 +218,12 @@ public class WmsPdaApiController extends BaseController { /** * 查询班组和班次列表 + * * @return 自定义类 */ @PostMapping("/selectTeams") public R> selectTeams() { - List teamList =apiService.selectTeams(); + List teamList = apiService.selectTeams(); return R.ok(teamList); } @@ -231,9 +232,51 @@ public class WmsPdaApiController extends BaseController { Boolean result = apiService.shiftChangeSubmit(shiftChange); return result ? R.ok() : R.fail(); } + @PostMapping("/selectStoreInfo") - public void selectStoreInfo(String type){ - List list=apiService.selectStoreInfo(type); + public R> selectStoreInfo(String type) { + List list = apiService.selectStoreInfo(type); + if (list == null || list.isEmpty()) { + return R.fail(type + "仓库查询失败"); + } + return R.ok(list); } + /** + * 查询库存存储库位 + * + * @param type + * @param storeId + * @return + */ + @PostMapping("/storeCheck/selectInventorLocationList") + public R> storeCheckSelectLocation(String type, Long storeId) { + List list = apiService.storeCheckSelectLocation(type, storeId); + if (list == null || list.isEmpty()) { + return R.fail(type + "库位查询失败"); + } + return R.ok(list); + } + + @PostMapping("/storeCheck/submitOrder") + public R storeCheckSubmitOrder(@RequestParam("storeId") Long storeId,@RequestParam("location") List list) { + WmsInventoryCheck wmsInventoryCheck= apiService.storeCheckSubmitOrder(storeId,list); + + return R.ok(wmsInventoryCheck); + } + // 根据库位查询库存 + + @PostMapping("/storeCheck/selectInventory") + public R< List> storeCheckSelectInventory(String locationCode) { + List list=apiService.storeCheckSelectInventory(locationCode); + if (list == null || list.isEmpty()) { + return R.fail(); + } + return R.ok(list); + } + @PostMapping("/storeCheck/submitCheckRecord") + public R< Void> storeCheckSubmitCheckRecord(@RequestBody WmsInventoryCheckRecord wmsInventoryCheckRecord) { + Boolean result=apiService.storeCheckSubmitCheckRecord(wmsInventoryCheckRecord); + return result ? R.ok() : R.fail(); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheck.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheck.java index 5e357bfb..4b3054bf 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheck.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheck.java @@ -17,7 +17,7 @@ import java.io.Serial; */ @Data @TableName("wms_inventory_check") -public class WmsInventoryCheck { +public class WmsInventoryCheck extends TenantEntity { @Serial private static final long serialVersionUID = 1L; @@ -81,30 +81,8 @@ public class WmsInventoryCheck { * 结束时间 */ private Date endTime; - /** - * 租户id - */ - private String tenantId; - @TableField(fill = FieldFill.INSERT) - private String createBy; - /** - * 创建时间 - */ - @TableField(fill = FieldFill.INSERT) - private Date createTime; - /** - * 更新者 - */ - @TableField(fill = FieldFill.INSERT_UPDATE) - private String updateBy; - - /** - * 更新时间 - */ - @TableField(fill = FieldFill.INSERT_UPDATE) - private Date updateTime; @TableField(exist = false) private String warehouseCode;//字段映射 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheckRecord.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheckRecord.java index 29a3db9d..0d0b0ac7 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheckRecord.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheckRecord.java @@ -4,6 +4,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -65,12 +67,12 @@ public class WmsInventoryCheckRecord { /** * 库存数量 */ - private String inventoryQty; + private BigDecimal inventoryQty; /** * 盘点数量 */ - private Long checkQty; + private BigDecimal checkQty; /** * 盘点状态(0异常,1正常) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckRecordBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckRecordBo.java index 1146dc2d..85d7d367 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckRecordBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckRecordBo.java @@ -7,6 +7,8 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; + +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.wms.domain.WmsInventoryCheckRecord; @@ -65,12 +67,12 @@ public class WmsInventoryCheckRecordBo extends BaseEntity { /** * 库存数量 */ - private String inventoryQty; + private BigDecimal inventoryQty; /** * 盘点数量 */ - private Long checkQty; + private BigDecimal checkQty; /** * 盘点状态(0异常,1正常) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsBaseLocationVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsBaseLocationVo.java index e8e22a58..891ea716 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsBaseLocationVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsBaseLocationVo.java @@ -80,5 +80,5 @@ public class WmsBaseLocationVo implements Serializable { */ private String warehouseName; - + private boolean state=false; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckRecordVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckRecordVo.java index e5b7c1e9..c495388e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckRecordVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckRecordVo.java @@ -1,5 +1,6 @@ package org.dromara.wms.domain.vo; +import java.math.BigDecimal; import java.util.Date; import com.baomidou.mybatisplus.annotation.FieldFill; @@ -85,13 +86,13 @@ public class WmsInventoryCheckRecordVo implements Serializable { * 库存数量 */ @ExcelProperty(value = "库存数量") - private String inventoryQty; + private BigDecimal inventoryQty; /** * 盘点数量 */ @ExcelProperty(value = "盘点数量") - private Long checkQty; + private BigDecimal checkQty; /** * 盘点状态(0异常,1正常) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckMapper.java index 3bc4ad65..9e8bb5c9 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckMapper.java @@ -1,8 +1,10 @@ package org.dromara.wms.mapper; +import org.apache.ibatis.annotations.Select; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsInventoryCheck; import org.dromara.wms.domain.vo.WmsInventoryCheckVo; +import org.springframework.stereotype.Repository; /** * 库存盘点Mapper接口 @@ -10,6 +12,8 @@ import org.dromara.wms.domain.vo.WmsInventoryCheckVo; * @author LionLi * @date 2025-01-10 */ +@Repository public interface WmsInventoryCheckMapper extends BaseMapperPlus { - + @Select("select top 1 check_code from wms_inventory_check where DateDiff(dd,create_time,getdate())=0 order by create_time desc") + WmsInventoryCheck selectInventoryCheckOrder(); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckRecordMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckRecordMapper.java index 7ae6f709..dcc15e46 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckRecordMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckRecordMapper.java @@ -3,6 +3,7 @@ package org.dromara.wms.mapper; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsInventoryCheckRecord; import org.dromara.wms.domain.vo.WmsInventoryCheckRecordVo; +import org.springframework.stereotype.Repository; /** * 盘点记录和调整工单Mapper接口 @@ -10,6 +11,7 @@ import org.dromara.wms.domain.vo.WmsInventoryCheckRecordVo; * @author LionLi * @date 2025-01-10 */ +@Repository public interface WmsInventoryCheckRecordMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java index d52a64bb..f9814ecf 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java @@ -6,7 +6,9 @@ import org.dromara.wms.domain.ShiftChange; import org.dromara.wms.domain.WmsPsmInLoad; import org.dromara.wms.domain.WmsPsmInLoadDetail; import org.dromara.wms.domain.WmsPsmInStock; +import org.dromara.wms.domain.vo.StoreInfoVo; import org.dromara.wms.domain.vo.TeamInfoVo; +import org.dromara.wms.domain.vo.WmsBaseLocationVo; import org.dromara.wms.domain.vo.WmsPsmInLoadVo; import org.springframework.stereotype.Repository; @@ -33,4 +35,12 @@ public interface WmsPdaApiMapper { List selectTeams(); int shiftChangeSubmit(ShiftChange shiftChange); + + List selectRawStore(); + + /** + * @param storeId 仓库 + * @return + */ + List selectRawCheckLocationList(@Param("storeId") Long storeId); } 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 f0c7a9f9..5c9a08ff 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,8 +1,6 @@ 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.*; import org.dromara.wms.domain.vo.*; import java.util.List; @@ -43,4 +41,13 @@ public interface IWmsPdaApiService { WmsInventory outSelectInVentoryByBatch(WmsOutstockRecord outstockRecord); List selectStoreInfo(String type); + + List storeCheckSelectLocation(String type, Long storeId); + + + WmsInventoryCheck storeCheckSubmitOrder(Long storeId, List list); + + List storeCheckSelectInventory(String locationCode); + + Boolean storeCheckSubmitCheckRecord(WmsInventoryCheckRecord wmsInventoryCheckRecord); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java index 80c6c9bd..94c4a007 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java @@ -82,7 +82,7 @@ public class WmsInventoryCheckRecordServiceImpl implements IWmsInventoryCheckRec .like(StringUtils.isNotBlank(bo.getLocationCode()), WmsInventoryCheckRecord::getLocationCode, bo.getLocationCode()) .like(StringUtils.isNotBlank(bo.getMaterialCode()), WmsInventoryCheckRecord::getMaterialCode, bo.getMaterialCode()) .like(StringUtils.isNotBlank(bo.getMaterialName()), WmsInventoryCheckRecord::getMaterialName, bo.getMaterialName()) - .eq(StringUtils.isNotBlank(bo.getInventoryQty()), WmsInventoryCheckRecord::getInventoryQty, bo.getInventoryQty()) + .eq(bo.getInventoryQty()!= null, WmsInventoryCheckRecord::getInventoryQty, bo.getInventoryQty()) .eq(bo.getCheckQty() != null, WmsInventoryCheckRecord::getCheckQty, bo.getCheckQty()) .eq(StringUtils.isNotBlank(bo.getCheckStatus()), WmsInventoryCheckRecord::getCheckStatus, bo.getCheckStatus()) .eq(StringUtils.isNotBlank(bo.getErpSynchronousStatus()), WmsInventoryCheckRecord::getErpSynchronousStatus, bo.getErpSynchronousStatus()) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java index a08c6af4..e2e29d98 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java @@ -146,7 +146,7 @@ public class WmsInventoryCheckServiceImpl implements IWmsInventoryCheckService { String stockingOrder = order + orderDate + orderLast; WmsInventoryCheck add = MapstructUtils.convert(bo, WmsInventoryCheck.class); add.setCheckCode(stockingOrder); - add.setCreateBy(username); + add.setCreateBy(LoginHelper.getUserId()); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -174,7 +174,7 @@ public class WmsInventoryCheckServiceImpl implements IWmsInventoryCheckService { public Boolean updateByBo(WmsInventoryCheckBo bo) { WmsInventoryCheck update = MapstructUtils.convert(bo, WmsInventoryCheck.class); validEntityBeforeSave(update); - update.setUpdateBy(LoginHelper.getUsername()); + update.setUpdateBy(LoginHelper.getUserId()); return baseMapper.updateById(update) > 0; } 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 896e494c..efbe6aec 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 @@ -8,13 +8,11 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; import org.dromara.common.core.utils.DateUtils; -import org.dromara.common.core.utils.StringUtils; import org.dromara.common.satoken.utils.LoginHelper; 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; @@ -281,6 +279,55 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService { @Override public List selectStoreInfo(String type) { - return List.of(); + + List list=apiMapper.selectRawStore(); + + return list; + } + + + @Override + public List storeCheckSelectLocation(String type, Long storeId) { + List list= apiMapper.selectRawCheckLocationList(storeId); + return list; + } + private final WmsInventoryCheckMapper wmsInventoryCheckMapper; + // 查询盘点工单 + + + @Override + public WmsInventoryCheck storeCheckSubmitOrder(Long storeId, List list) { + String tag = DateUtils.dateTime(); + WmsInventoryCheck wmsInventoryCheck = wmsInventoryCheckMapper.selectInventoryCheckOrder(); + WmsInventoryCheck insert = new WmsInventoryCheck(); + if (wmsInventoryCheck == null) { + insert.setCheckCode("PD"+tag+"001"); + }else { + String checkCode = wmsInventoryCheck.getCheckCode(); + String lastThreeDigits = checkCode.substring(checkCode.length() - 3); + int nextNumber = Integer.parseInt(lastThreeDigits) + 1; + String formattedNumber = String.format("%03d", nextNumber); + insert.setCheckCode("PD"+tag+formattedNumber); + } + insert.setPlanWarehouseId(storeId); + insert.setCreateBy(LoginHelper.getUserId()); + wmsInventoryCheckMapper.insert(insert); + return wmsInventoryCheck; + } + + @Override + public List storeCheckSelectInventory(String locationCode) { + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsInventory.class); + lqw.eq(WmsInventory::getLocationCode, locationCode); + return wmsInventoryMapper.selectVoList(lqw); + } + private final WmsInventoryCheckRecordMapper wmsInventoryCheckRecordMapper; + @Override + public Boolean storeCheckSubmitCheckRecord(WmsInventoryCheckRecord wmsInventoryCheckRecord) { + wmsInventoryCheckRecord.setCheckStatus(wmsInventoryCheckRecord.getInventoryQty().compareTo(wmsInventoryCheckRecord.getCheckQty())==0 ?"0":"1"); + wmsInventoryCheckRecord.setCreateBy(LoginHelper.getUsername()); + wmsInventoryCheckRecordMapper.insert(wmsInventoryCheckRecord); + + return true; } } diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml index 2e21bdb8..1cf3e5aa 100644 --- a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml @@ -73,4 +73,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" INSERT INTO prod_shift_change (shift_id, class_team_id, user_id, user_name,shift_change_time,create_by,create_time) VALUES (#{shiftId}, #{classTeamId}, #{userId}, #{userName},getdate(), #{userId},getdate()); + + + + + + + + + + +