From 5abb46a150f8e938ba2aef8a021922314cb3db62 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Thu, 5 Jun 2025 17:05:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=88=90=E5=93=81=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8A=A5=E8=A1=A8=E3=80=81=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E3=80=81=E8=B6=85=E6=9C=9F=E5=AF=BC=E5=85=A5=E3=80=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storage_manage/st/dao/StIvtStructivt.java | 102 ++++ .../dao/mapper/StIvtBsrealstorattrMapper.java | 8 + .../dao/mapper/StIvtBsrealstorattrMapper.xml | 3 + .../st/dao/mapper/StIvtSectattrMapper.java | 1 + .../st/dao/mapper/StIvtStructivtMapper.java | 21 + .../st/dao/mapper/StIvtStructivtMapper.xml | 479 ++++++++++++++++++ .../service/StIvtBsrealstorattrService.java | 10 +- .../st/service/StIvtSectattrService.java | 3 +- .../st/service/StIvtStructattrService.java | 8 + .../st/service/StIvtStructivtService.java | 40 ++ .../impl/StIvtBsrealstorattrServiceImpl.java | 22 +- .../impl/StIvtSectattrServiceImpl.java | 4 +- .../impl/StIvtStructattrServiceImpl.java | 13 +- .../impl/StIvtStructivtServiceImpl.java | 53 ++ .../basedata/st/rest/StructivtController.java | 65 ++- .../basedata/st/service/StructivtService.java | 19 + .../st/service/dto/ProductStoreDownDto.java | 71 +++ .../st/service/dto/ProductStoreParam.java | 32 ++ .../st/service/enums/OverdueReasonEnum.java | 64 +++ .../st/service/enums/SubTypeEnum.java | 63 +++ .../st/service/impl/StructivtServiceImpl.java | 87 +++- .../st/service/vo/ProductStoreVo.java | 54 ++ .../wms/stat/rest/InBillQueryController.java | 2 +- .../wms/stat/rest/OutBillQueryController.java | 1 + 24 files changed, 1172 insertions(+), 53 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructivt.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructivtMapper.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructivtMapper.xml create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructivtService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructivtServiceImpl.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/dto/ProductStoreDownDto.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/dto/ProductStoreParam.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/enums/OverdueReasonEnum.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/enums/SubTypeEnum.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/vo/ProductStoreVo.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructivt.java new file mode 100644 index 0000000..4b7ddda --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructivt.java @@ -0,0 +1,102 @@ +package org.nl.b_lms.storage_manage.st.dao; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; + +/** + * 仓位库存表 + * + * @Author: lyd + * @Date: 2025/6/5 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_structivt") +public class StIvtStructivt { + /** + * 库存记录标识 + */ + @TableId(value = "stockrecord_id", type = IdType.NONE) + private String stockrecord_id; + + /** + * 仓位标识 + */ + private String struct_id; + + /** + * 仓位编码 + */ + private String struct_code; + + /** + * 仓位名称 + */ + private String struct_name; + + /** + * 下料区域标识 + */ + private String region_id; + + /** + * 物料标识 + */ + private String material_id; + + /** + * 品质类型 + */ + private String quality_scode; + + /** + * 批次 + */ + private String pcsn; + + /** + * 可用数 + */ + private BigDecimal canuse_qty; + + /** + * 冻结数 + */ + private BigDecimal frozen_qty; + + /** + * 库存数 + */ + private BigDecimal ivt_qty; + + /** + * 待入数 + */ + private BigDecimal warehousing_qty; + + /** + * 计量单位标识 + */ + private String qtyUnit_id; + + /** + * 入库时间 + */ + private String instorage_time; + + /** + * 销售单标识 + */ + private String sale_id; + + /** + * 备注 + */ + private String remark; + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtBsrealstorattrMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtBsrealstorattrMapper.java index 5e98aa5..7b92386 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtBsrealstorattrMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtBsrealstorattrMapper.java @@ -4,5 +4,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.nl.b_lms.storage_manage.st.dao.StIvtBsrealstorattr; import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; +import java.util.List; + public interface StIvtBsrealstorattrMapper extends BaseMapper { + /** + * 获取用户的仓库id + * @param userId + * @return + */ + List getStoreIdsForUser(String userId); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtBsrealstorattrMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtBsrealstorattrMapper.xml index 607ef68..9a3897f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtBsrealstorattrMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtBsrealstorattrMapper.xml @@ -2,4 +2,7 @@ + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtSectattrMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtSectattrMapper.java index 2b5deb8..fab6672 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtSectattrMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtSectattrMapper.java @@ -1,6 +1,7 @@ package org.nl.b_lms.storage_manage.st.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.b_lms.storage_manage.st.dao.StIvtBsrealstorattr; import org.nl.b_lms.storage_manage.st.dao.StIvtSectattr; public interface StIvtSectattrMapper extends BaseMapper { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructivtMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructivtMapper.java new file mode 100644 index 0000000..5814041 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructivtMapper.java @@ -0,0 +1,21 @@ +package org.nl.b_lms.storage_manage.st.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructivt; +import org.nl.wms.basedata.st.service.dto.ProductStoreDownDto; +import org.nl.wms.basedata.st.service.dto.ProductStoreParam; +import org.nl.wms.basedata.st.service.vo.ProductStoreVo; + +import java.util.List; + +/** + * @Author: lyd + * @Date: 2025/6/5 + */ +public interface StIvtStructivtMapper extends BaseMapper { + IPage selectProductStorePageLeftJoin(IPage pages, ProductStoreParam paramMap); + + List productStructData(@Param("paramMap") ProductStoreParam paramMap); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructivtMapper.xml new file mode 100644 index 0000000..d62509d --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructivtMapper.xml @@ -0,0 +1,479 @@ + + + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtBsrealstorattrService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtBsrealstorattrService.java index 3c97e18..44a4c2e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtBsrealstorattrService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtBsrealstorattrService.java @@ -3,5 +3,13 @@ package org.nl.b_lms.storage_manage.st.service; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.b_lms.storage_manage.st.dao.StIvtBsrealstorattr; -public interface StIvtBsrealstorattrService extends IService { +import java.util.List; + +public interface StIvtBsrealstorattrService extends IService { + /** + * 获取用户对应的仓库数据 + * @param userId + * @return + */ + List getStoreForUser(String userId); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtSectattrService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtSectattrService.java index 9de9ba8..978795b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtSectattrService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtSectattrService.java @@ -2,9 +2,10 @@ package org.nl.b_lms.storage_manage.st.service; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.b_lms.storage_manage.st.dao.StIvtBsrealstorattr; +import org.nl.b_lms.storage_manage.st.dao.StIvtSectattr; -public interface StIvtSectattrService extends IService { +public interface StIvtSectattrService extends IService { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructattrService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructattrService.java index 7c7216f..82ca386 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructattrService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructattrService.java @@ -3,5 +3,13 @@ package org.nl.b_lms.storage_manage.st.service; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; +import java.util.List; + public interface StIvtStructattrService extends IService { + + /** + * 仓位下拉 + * @return + */ + List getStructAttrSelectList(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructivtService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructivtService.java new file mode 100644 index 0000000..1b51be2 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructivtService.java @@ -0,0 +1,40 @@ +package org.nl.b_lms.storage_manage.st.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.apache.ibatis.annotations.Param; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructivt; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.basedata.st.service.dto.ProductStoreDownDto; +import org.nl.wms.basedata.st.service.dto.ProductStoreParam; +import org.nl.wms.basedata.st.service.vo.ProductStoreVo; + +import java.util.List; + +/** + * @Author: lyd + * @Date: 2025/6/5 + */ +public interface StIvtStructivtService extends IService { + /** + * 成品库存分页查询 + * @param queryParam + * @param page + * @return + */ + IPage getProductStorePage(ProductStoreParam queryParam, PageQuery page); + + /** + * 成品库存导出数据 + * @param queryParam + * @return + */ + List productStructData(ProductStoreParam queryParam); + + /** + * 通过子卷号获取 + * @param containerName + * @return + */ + StIvtStructivt getStructByContainerName(String containerName); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtBsrealstorattrServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtBsrealstorattrServiceImpl.java index 86802d1..8658beb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtBsrealstorattrServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtBsrealstorattrServiceImpl.java @@ -1,9 +1,25 @@ package org.nl.b_lms.storage_manage.st.service.impl; -import com.baomidou.mybatisplus.extension.service.IService; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.nl.b_lms.storage_manage.st.dao.StIvtSectattr; +import org.nl.b_lms.storage_manage.st.dao.StIvtBsrealstorattr; +import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtBsrealstorattrMapper; import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtSectattrMapper; +import org.nl.b_lms.storage_manage.st.service.StIvtBsrealstorattrService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; -public class StIvtBsrealstorattrServiceImpl extends ServiceImpl implements IService { +import java.util.List; + +@Service +public class StIvtBsrealstorattrServiceImpl extends ServiceImpl implements StIvtBsrealstorattrService { + @Autowired + private StIvtBsrealstorattrMapper bsrealstorattrMapper; + @Override + public List getStoreForUser(String userId) { + if (ObjectUtil.isEmpty(userId)) { + return null; + } + return bsrealstorattrMapper.getStoreIdsForUser(userId); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtSectattrServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtSectattrServiceImpl.java index 534a7e0..1091677 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtSectattrServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtSectattrServiceImpl.java @@ -1,14 +1,14 @@ package org.nl.b_lms.storage_manage.st.service.impl; -import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.b_lms.storage_manage.st.dao.StIvtSectattr; import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtSectattrMapper; +import org.nl.b_lms.storage_manage.st.service.StIvtSectattrService; import org.springframework.stereotype.Service; @Service -public class StIvtSectattrServiceImpl extends ServiceImpl implements IService { +public class StIvtSectattrServiceImpl extends ServiceImpl implements StIvtSectattrService { } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructattrServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructattrServiceImpl.java index ba01a15..8b6db8f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructattrServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructattrServiceImpl.java @@ -1,14 +1,23 @@ package org.nl.b_lms.storage_manage.st.service.impl; -import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructattrMapper; +import org.nl.b_lms.storage_manage.st.service.StIvtStructattrService; import org.springframework.stereotype.Service; +import java.util.List; @Service -public class StIvtStructattrServiceImpl extends ServiceImpl implements IService { +public class StIvtStructattrServiceImpl extends ServiceImpl implements StIvtStructattrService { + @Override + public List getStructAttrSelectList() { + LambdaQueryWrapper lam = new QueryWrapper().lambda(); + lam.eq(StIvtStructattr::getIs_delete, "0"); + return list(lam); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructivtServiceImpl.java new file mode 100644 index 0000000..c2db47d --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructivtServiceImpl.java @@ -0,0 +1,53 @@ +package org.nl.b_lms.storage_manage.st.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructivt; +import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructivtMapper; +import org.nl.b_lms.storage_manage.st.service.StIvtBsrealstorattrService; +import org.nl.b_lms.storage_manage.st.service.StIvtStructivtService; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.basedata.st.service.dto.ProductStoreDownDto; +import org.nl.wms.basedata.st.service.dto.ProductStoreParam; +import org.nl.wms.basedata.st.service.vo.ProductStoreVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author: lyd + * @Date: 2025/6/5 + */ +@Service +public class StIvtStructivtServiceImpl extends ServiceImpl implements StIvtStructivtService { + @Autowired + private StIvtStructivtMapper stIvtStructivtMapper; + @Autowired + private StIvtBsrealstorattrService bsrealstorattrService; + @Override + public IPage getProductStorePage(ProductStoreParam queryParam, PageQuery page) { + //获取人员对应的仓库 + List storIds = bsrealstorattrService.getStoreForUser(SecurityUtils.getCurrentUserId()); + queryParam.setIn_stor_id(storIds); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + pages = stIvtStructivtMapper.selectProductStorePageLeftJoin(pages, queryParam); + return pages; + } + + @Override + public List productStructData(ProductStoreParam queryParam) { + //获取人员对应的仓库 + List storIds = bsrealstorattrService.getStoreForUser(SecurityUtils.getCurrentUserId()); + queryParam.setIn_stor_id(storIds); + return stIvtStructivtMapper.productStructData(queryParam); + } + + @Override + public StIvtStructivt getStructByContainerName(String containerName) { + return getOne(new LambdaQueryWrapper().eq(StIvtStructivt::getPcsn, containerName)); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructivtController.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructivtController.java index c5b40bc..ed08a50 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructivtController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructivtController.java @@ -5,8 +5,11 @@ import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; import org.nl.modules.logging.annotation.Log; import org.nl.wms.basedata.st.service.StructivtService; +import org.nl.wms.basedata.st.service.dto.ProductStoreParam; import org.nl.wms.basedata.st.service.dto.StructivtDto; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; @@ -21,6 +24,7 @@ import java.io.IOException; import java.util.Map; /** + * 成品库存查询 * @author geng by * @date 2022-06-02 **/ @@ -33,36 +37,33 @@ public class StructivtController { private final StructivtService structivtService; +// @GetMapping +// @Log("查询库存管理") +// public ResponseEntity query(@RequestParam Map whereJson, Pageable page, String[] product_area, String[] ivt_flag) { +// return new ResponseEntity<>(structivtService.queryAll(whereJson, page, product_area, ivt_flag), HttpStatus.OK); +// +// } @GetMapping @Log("查询库存管理") - - //@PreAuthorize("@el.check('structivt:list')") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page, String[] product_area, String[] ivt_flag) { - return new ResponseEntity<>(structivtService.queryAll(whereJson, page, product_area, ivt_flag), HttpStatus.OK); - - } - - @PostMapping - @Log("新增库存管理") - - //@PreAuthorize("@el.check('structivt:add')") - public ResponseEntity create(@Validated @RequestBody StructivtDto dto) { - structivtService.create(dto); - return new ResponseEntity<>(HttpStatus.CREATED); + public ResponseEntity query(ProductStoreParam queryParam, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(structivtService.getProductStorePage(queryParam, page)), HttpStatus.OK); } - @PutMapping - @Log("修改库存管理") - - //@PreAuthorize("@el.check('structivt:edit')") - public ResponseEntity update(@Validated @RequestBody StructivtDto dto) { - structivtService.update(dto); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } +// @PostMapping +// @Log("新增库存管理") +// public ResponseEntity create(@Validated @RequestBody StructivtDto dto) { +// structivtService.create(dto); +// return new ResponseEntity<>(HttpStatus.CREATED); +// } +// +// @PutMapping +// @Log("修改库存管理") +// public ResponseEntity update(@Validated @RequestBody StructivtDto dto) { +// structivtService.update(dto); +// return new ResponseEntity<>(HttpStatus.NO_CONTENT); +// } @Log("删除库存管理") - - //@PreAuthorize("@el.check('structivt:del')") @DeleteMapping public ResponseEntity delete(@RequestBody Long[] ids) { structivtService.deleteAll(ids); @@ -71,33 +72,31 @@ public class StructivtController { @GetMapping("/getStruct") @Log("查询仓位下拉") - - //@PreAuthorize("@el.check('structivt:list')") public ResponseEntity getStruct() { return new ResponseEntity<>(structivtService.getStruct(), HttpStatus.OK); } @PostMapping("/getStructById") @Log("根据仓位id查询仓位信息") - - //@PreAuthorize("@el.check('structivt:list')") public ResponseEntity getStructById(@RequestBody JSONObject param) { return new ResponseEntity<>(structivtService.getStructById(param), HttpStatus.OK); } @GetMapping("/getUnits") @Log("查询计量单位下拉") - - //@PreAuthorize("@el.check('structivt:list')") public ResponseEntity getUnits() { return new ResponseEntity<>(structivtService.getUnits(), HttpStatus.OK); } +// @Log("导出数据") +// @GetMapping(value = "/download") +// public void download(@RequestParam Map map, HttpServletResponse response, String[] product_area, String[] ivt_flag) throws IOException { +// structivtService.download(map, response, product_area, ivt_flag); +// } @Log("导出数据") - @GetMapping(value = "/download") - public void download(@RequestParam Map map, HttpServletResponse response, String[] product_area, String[] ivt_flag) throws IOException { - structivtService.download(map, response, product_area, ivt_flag); + public void download(ProductStoreParam queryParam, HttpServletResponse response) throws IOException { + structivtService.downloadProductStructData(queryParam, response); } @PostMapping("/save") diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructivtService.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructivtService.java index 15db8d5..c5b6794 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructivtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructivtService.java @@ -2,7 +2,11 @@ package org.nl.wms.basedata.st.service; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.basedata.st.service.dto.ProductStoreParam; import org.nl.wms.basedata.st.service.dto.StructivtDto; +import org.nl.wms.basedata.st.service.vo.ProductStoreVo; import org.springframework.data.domain.Pageable; import org.springframework.web.multipart.MultipartFile; @@ -85,4 +89,19 @@ public interface StructivtService { void save(JSONObject whereJson); void importExcel(MultipartFile file, HttpServletRequest request); + + /** + * 分页查询 + * @param queryParam + * @param page + * @return + */ + IPage getProductStorePage(ProductStoreParam queryParam, PageQuery page); + + /** + * 导出数据 + * @param queryParam + * @param response + */ + void downloadProductStructData(ProductStoreParam queryParam, HttpServletResponse response) throws IOException; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/dto/ProductStoreDownDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/dto/ProductStoreDownDto.java new file mode 100644 index 0000000..28e4358 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/dto/ProductStoreDownDto.java @@ -0,0 +1,71 @@ +package org.nl.wms.basedata.st.service.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 成品库存导出实体 + * + * @Author: lyd + * @Date: 2025/6/5 + */ +@Data +public class ProductStoreDownDto { + private String sale_id; + private String paper_name; + private String thickness; + private BigDecimal ivt_qty; + private String customer_description; + private String mass_per_unit_area; + private String net_weight; + private String joint_type; + private String sect_code; + private String stockrecord_id; + private String date_of_production; + private String quality_scode; + private BigDecimal warehousing_qty; + private String paper_code; + private String isreprintpackageboxlabel; + private String qty_unit_id; + private String region_id; + private String thickness_request; + private String unit_name; + private String un_plan_product_property1; + private String un_plan_product_property2; + private String un_plan_product_property3; + private String pcsn; + private String sap_pcsn; + private BigDecimal frozen_qty; + private String sale_order_name; + private String package_box_sn; + private String width_standard; + private String is_un_plan_production; + private String quanlity_in_box; + private String remark; + private String stock_age; + private String sub_type; + private String storagevehicle_code; + private String isunpackbox; + private String struct_id; + private String region_name; + private String lock_type; + private String struct_code; + private String material_name; + private String sales_owner; + private BigDecimal canuse_qty; + private BigDecimal length; + private String produce_age; + private String confirm_time; + private String paper_type; + private String instorage_time; + private String stor_name; + private String sect_id; + private String width; + private String struct_name; + private String material_id; + private String sect_name; + private String customer_name; + private BigDecimal box_weight; + private String material_code; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/dto/ProductStoreParam.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/dto/ProductStoreParam.java new file mode 100644 index 0000000..6cfebfa --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/dto/ProductStoreParam.java @@ -0,0 +1,32 @@ +package org.nl.wms.basedata.st.service.dto; + +import lombok.Data; + +import java.util.List; + +/** + * 成品库存请求参数 + * + * @Author: lyd + * @Date: 2025/6/5 + */ +@Data +public class ProductStoreParam { + private String sect_id; + private String stor_id; + private String struct; + private String material; + private String package_box_sn; + private String pcsn; + private String sap_pcsn; + private String sale_order_name; + private String ivt_status; + private List product_area; + private String is_virtual; + private String sub_type; + private List ivt_flag; + private String quality_scode; + private String control; + /** 当前用户所能看到的仓库权限 */ + private List in_stor_id; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/enums/OverdueReasonEnum.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/enums/OverdueReasonEnum.java new file mode 100644 index 0000000..225709f --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/enums/OverdueReasonEnum.java @@ -0,0 +1,64 @@ +package org.nl.wms.basedata.st.service.enums; + +import java.util.HashMap; +import java.util.Map; + +/** + * 超期原因 + * @Author: lyd + * @Date: 2025/6/5 + */ +public enum OverdueReasonEnum { + CUSTOMER_REASONS("1", "客户原因"), + REASONS_FOR_PRODUCTION_QUALITY("2", "生产质量原因"), + MARKET_REASONS("3", "市场原因") + ; + private final String code; + private final String name; + + /** + * 静态映射表用于快速查找 + */ + private static final Map CODE_MAP = new HashMap<>(); + + static { + // 初始化时将所有枚举值放入映射表 + for (OverdueReasonEnum type : values()) { + CODE_MAP.put(type.code, type); + } + } + + OverdueReasonEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public String getCode() { + return code; + } + + public String getName() { + return name; + } + + /** + * 根据code获取对应的业务类型名称 + * + * @param code 类型编码 + * @return 对应的业务类型名称,如果未找到返回null + */ + public static String getNameByCode(String code) { + OverdueReasonEnum type = CODE_MAP.get(code); + return type != null ? type.getName() : ""; + } + + /** + * 根据code获取完整的枚举实例 + * + * @param code 类型编码 + * @return 对应的枚举实例,如果未找到返回null + */ + public static OverdueReasonEnum getByCode(String code) { + return CODE_MAP.get(code); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/enums/SubTypeEnum.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/enums/SubTypeEnum.java new file mode 100644 index 0000000..093a4bc --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/enums/SubTypeEnum.java @@ -0,0 +1,63 @@ +package org.nl.wms.basedata.st.service.enums; + +import java.util.HashMap; +import java.util.Map; + +/** + * @Author: lyd + * @Date: 2025/6/5 + */ +public enum SubTypeEnum { + NORMAL("1", "正常"), + NEAR_EXPIRATION_DATE("2", "临期"), + OVERDUE("3", "超期") + ; + private final String code; + private final String name; + + /** + * 静态映射表用于快速查找 + */ + private static final Map CODE_MAP = new HashMap<>(); + + static { + // 初始化时将所有枚举值放入映射表 + for (SubTypeEnum type : values()) { + CODE_MAP.put(type.code, type); + } + } + + SubTypeEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public String getCode() { + return code; + } + + public String getName() { + return name; + } + + /** + * 根据code获取对应的业务类型名称 + * + * @param code 类型编码 + * @return 对应的业务类型名称,如果未找到返回null + */ + public static String getNameByCode(String code) { + SubTypeEnum type = CODE_MAP.get(code); + return type != null ? type.getName() : ""; + } + + /** + * 根据code获取完整的枚举实例 + * + * @param code 类型编码 + * @return 对应的枚举实例,如果未找到返回null + */ + public static SubTypeEnum getByCode(String code) { + return CODE_MAP.get(code); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java index 69a8d96..45e17cd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java @@ -8,12 +8,16 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; -import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructivt; +import org.nl.b_lms.storage_manage.st.service.StIvtStructivtService; +import org.nl.common.domain.query.PageQuery; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.FileUtil; @@ -22,7 +26,12 @@ import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; import org.nl.wms.basedata.master.service.ClassstandardService; import org.nl.wms.basedata.st.service.StructivtService; +import org.nl.wms.basedata.st.service.dto.ProductStoreDownDto; +import org.nl.wms.basedata.st.service.dto.ProductStoreParam; import org.nl.wms.basedata.st.service.dto.StructivtDto; +import org.nl.wms.basedata.st.service.enums.OverdueReasonEnum; +import org.nl.wms.basedata.st.service.enums.SubTypeEnum; +import org.nl.wms.basedata.st.service.vo.ProductStoreVo; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -44,6 +53,7 @@ import java.util.*; @Slf4j public class StructivtServiceImpl implements StructivtService { private final ClassstandardService classstandardService; + private final StIvtStructivtService ivtStructivtService; @Override public Map queryAll(Map whereJson, Pageable page, String[] product_area, String[] ivt_flag) { @@ -352,10 +362,10 @@ public class StructivtServiceImpl implements StructivtService { @Override @Transactional(rollbackFor = Exception.class) public void save(JSONObject whereJson) { - JSONObject jsonObject = new JSONObject(); - jsonObject.put("remark", whereJson.getString("remark")); - - WQLObject.getWQLObject("st_ivt_structivt").update(jsonObject, "stockrecord_id = '" + whereJson.getString("stockrecord_id") + "'"); + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.set(StIvtStructivt::getRemark, whereJson.getString("remark")) + .eq(StIvtStructivt::getStockrecord_id, whereJson.getString("stockrecord_id")); + ivtStructivtService.update(lambdaUpdateWrapper); } @Override @@ -379,13 +389,70 @@ public class StructivtServiceImpl implements StructivtService { if (StrUtil.isEmpty(container_name) || StrUtil.isEmpty(remark)) { continue; } - - JSONObject ivt_jo = WQLObject.getWQLObject("st_ivt_structivt").query("pcsn = '" + container_name + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(ivt_jo)) { + StIvtStructivt ivtStructivt = ivtStructivtService.getStructByContainerName(container_name); + if (ObjectUtil.isEmpty(ivtStructivt)) { continue; } - ivt_jo.put("remark", remark); - WQLObject.getWQLObject("st_ivt_structivt").update(ivt_jo); + ivtStructivt.setRemark(remark); + ivtStructivtService.updateById(ivtStructivt); + } + } + + @Override + public IPage getProductStorePage(ProductStoreParam queryParam, PageQuery page) { + return ivtStructivtService.getProductStorePage(queryParam, page); + } + + @Override + public void downloadProductStructData(ProductStoreParam queryParam, HttpServletResponse response) throws IOException { + List productStoreDownDtoList = ivtStructivtService.productStructData(queryParam); + List> list = new ArrayList<>(); + for (int i = 0; i < productStoreDownDtoList.size(); i++) { + ProductStoreDownDto productStoreDownDto = productStoreDownDtoList.get(i); + Map mp = new LinkedHashMap<>(); + + mp.put("仓库", productStoreDownDto.getStor_name()); + mp.put("库区", productStoreDownDto.getSect_name()); + mp.put("仓位编码", productStoreDownDto.getStruct_code()); + mp.put("仓位名称", productStoreDownDto.getStruct_name()); + mp.put("木箱码", productStoreDownDto.getPackage_box_sn()); + mp.put("物料编码", productStoreDownDto.getMaterial_code()); + mp.put("物料名称", productStoreDownDto.getMaterial_name()); + mp.put("子卷号", productStoreDownDto.getPcsn()); + mp.put("sap批次", productStoreDownDto.getSap_pcsn()); + mp.put("重量", productStoreDownDto.getCanuse_qty()); + mp.put("单位", productStoreDownDto.getUnit_name()); + mp.put("客户编码", productStoreDownDto.getCustomer_name()); + mp.put("客户名称", productStoreDownDto.getCustomer_description()); + mp.put("销售订单", productStoreDownDto.getSale_order_name()); + mp.put("业务员", productStoreDownDto.getSales_owner()); + mp.put("入库日期", productStoreDownDto.getConfirm_time()); + mp.put("生产日期", productStoreDownDto.getDate_of_production()); + mp.put("子卷状态", SubTypeEnum.getNameByCode(productStoreDownDto.getSub_type())); + mp.put("库龄", productStoreDownDto.getStock_age()); + mp.put("生产时长", productStoreDownDto.getProduce_age()); + mp.put("产品规格(幅宽)", String.format("%.0f", Double.parseDouble(ObjectUtil.isNotEmpty(productStoreDownDto.getWidth()) ? productStoreDownDto.getWidth() : "0.0"))); + mp.put("产品厚度", productStoreDownDto.getThickness()); + mp.put("单位面积重量", productStoreDownDto.getMass_per_unit_area()); + mp.put("净重", productStoreDownDto.getNet_weight()); + mp.put("毛重", productStoreDownDto.getBox_weight()); + mp.put("长度", productStoreDownDto.getLength()); + mp.put("接头数", productStoreDownDto.getJoint_type()); + mp.put("计划外分切的子卷", productStoreDownDto.getIs_un_plan_production()); + mp.put("子卷的物性值1", productStoreDownDto.getUn_plan_product_property1()); + mp.put("子卷的物性值2", productStoreDownDto.getUn_plan_product_property2()); + mp.put("子卷的物性值3", productStoreDownDto.getUn_plan_product_property3()); + mp.put("超期原因", OverdueReasonEnum.getNameByCode(productStoreDownDto.getRemark())); + mp.put("是否管控", productStoreDownDto.getLock_type().equals("88") ? "是" : "否"); + mp.put("是否需要重打外包装标签", productStoreDownDto.getIsreprintpackageboxlabel()); + mp.put("是否需要拆包重打子卷标签", productStoreDownDto.getIsunpackbox()); + mp.put("客户要求规格幅宽", productStoreDownDto.getWidth_standard()); + mp.put("物料标准厚度", productStoreDownDto.getThickness_request()); + mp.put("管件类型", productStoreDownDto.getPaper_type()); + mp.put("管件编码", productStoreDownDto.getPaper_code()); + mp.put("管件描述", productStoreDownDto.getPaper_name()); + list.add(mp); } + FileUtil.downloadExcel(list, response); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/vo/ProductStoreVo.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/vo/ProductStoreVo.java new file mode 100644 index 0000000..196c1ef --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/vo/ProductStoreVo.java @@ -0,0 +1,54 @@ +package org.nl.wms.basedata.st.service.vo; + +import lombok.Data; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructivt; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 成品库存vo + * @Author: lyd + * @Date: 2025/6/5 + */ +@Data +public class ProductStoreVo extends StIvtStructivt implements Serializable { + private String sale_id; + private String package_box_sn; + private String paper_name; + private String paper_type; + private BigDecimal ivt_qty; + private Integer quanlity_in_box; + private String remark; + private String stock_age; + private String joint_type; + private String sect_code; + private String stockrecord_id; + private String quality_scode; + private String sub_type; + private BigDecimal warehousing_qty; + private String storagevehicle_code; + private String struct_id; + private String region_name; + private String paper_code; + private String struct_code; + private String material_name; + private String qty_unit_id; + private BigDecimal canuse_qty; + private String region_id; + private String produce_age; + private String confirm_time; + private String unit_name; + private String instorage_time; + private String stor_name; + private String sect_id; + private String struct_name; + private String material_id; + private String pcsn; + private String sect_name; + private String sap_pcsn; + private BigDecimal box_weight; + private BigDecimal frozen_qty; + private String sale_order_name; + private String material_code; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/InBillQueryController.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/InBillQueryController.java index f029667..d8250bc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/InBillQueryController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/InBillQueryController.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.util.Map; /** + * 入库查询 * @author Liuxy * @date 2023-04-07 **/ @@ -34,7 +35,6 @@ public class InBillQueryController { @GetMapping @Log("查询") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page, String[] product_area) { return new ResponseEntity<>(inBillQueryService.queryAll(whereJson, page, product_area), HttpStatus.OK); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/OutBillQueryController.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/OutBillQueryController.java index d9a1987..7f0cb3f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/OutBillQueryController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/OutBillQueryController.java @@ -17,6 +17,7 @@ import java.io.IOException; import java.util.Map; /** + * 出库查询 * @author Liuxy * @date 2023-04-07 **/