From 9215302f3aaa745e7b8cb67f0641cf00d7cf4b40 Mon Sep 17 00:00:00 2001 From: V26772074 Date: Mon, 11 Nov 2024 14:04:31 +0800 Subject: [PATCH] update --- .../src/main/resources/bootstrap-dev.yml | 2 +- .../main/java/jnpf/config/RedisConfig.java | 40 ++ .../jnpf/mapper/TBookInventoryMapper.java | 18 + .../jnpf/mapper/TRemovalManagementMapper.java | 18 + .../mapper/TSelectionOrderingBooksMapper.java | 3 + .../mapper/TSelectionOrderingMainMapper.java | 6 + .../jnpf/mapper/TShelfOperationMapper.java | 18 + .../java/jnpf/service/ILibraryService.java | 4 +- .../jnpf/service/TBookInventoryService.java | 16 + .../jnpf/service/TCommonRelationService.java | 9 + .../service/TReceiveGoodsMainService.java | 18 +- .../service/TRemovalManagementService.java | 16 + .../TSelectionOrderingBooksService.java | 2 + .../TSelectionOrderingMainService.java | 19 + .../jnpf/service/TShelfOperationService.java | 16 + .../jnpf/service/impl/LibraryServiceImpl.java | 32 +- .../impl/TBookInventoryServiceImpl.java | 23 + .../impl/TReceiveGoodsBooksServiceImpl.java | 2 +- .../impl/TReceiveGoodsMainServiceImpl.java | 423 +++++++++++++++--- .../impl/TRemovalManagementServiceImpl.java | 23 + .../TSelectionOrderingBooksServiceImpl.java | 6 + .../TSelectionOrderingMainServiceImpl.java | 310 +++++++++++-- .../impl/TShelfOperationServiceImpl.java | 23 + .../java/jnpf/task/SybVersionLibraryTask.java | 69 +++ .../resources/mapper/TBookGoWhereMapper.xml | 68 +-- .../resources/mapper/TBookInventoryMapper.xml | 129 ++++++ .../mapper/TCommonRelationMapper.xml | 64 --- .../mapper/TReceiveGoodsBooksMapper.xml | 58 ++- .../mapper/TReceiveGoodsMainMapper.xml | 86 ++-- .../mapper/TRemovalManagementMapper.xml | 105 +++++ .../mapper/TSelectionOrderingBooksMapper.xml | 79 ++-- .../mapper/TSelectionOrderingMainMapper.xml | 106 +++-- .../mapper/TShelfOperationMapper.xml | 97 ++++ .../ReceiveGoodsMainController.java | 22 +- .../RemovalManagementController.java | 43 ++ .../SelectionOrderingMainController.java | 63 ++- .../main/java/jnpf/entity/TBookGoWhere.java | 40 +- .../main/java/jnpf/entity/TBookInventory.java | 137 ++++++ .../java/jnpf/entity/TCommonRelation.java | 22 +- .../java/jnpf/entity/TReceiveGoodsBooks.java | 83 +++- .../java/jnpf/entity/TReceiveGoodsMain.java | 54 +-- .../java/jnpf/entity/TRemovalManagement.java | 114 +++++ .../jnpf/entity/TSelectionOrderingBooks.java | 83 +++- .../jnpf/entity/TSelectionOrderingMain.java | 38 +- .../java/jnpf/entity/TShelfOperation.java | 110 +++++ .../java/jnpf/enump/ReceiveGoodsMainEnum.java | 30 +- .../jnpf/enump/RemovalManagementEnum.java | 53 +++ .../java/jnpf/enump/ShelfOperationEnum.java | 63 +++ .../jnpf/model/dto/ReceiveGoodsMainDto.java | 70 ++- .../jnpf/model/dto/RemovalManagementEnum.java | 48 ++ .../model/dto/SelectionOrderingMainDto.java | 79 +++- .../java/jnpf/JnpfLibraryApplication.java | 2 + 52 files changed, 2595 insertions(+), 467 deletions(-) create mode 100644 jnpf-library/jnpf-library-biz/src/main/java/jnpf/config/RedisConfig.java create mode 100644 jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TBookInventoryMapper.java create mode 100644 jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TRemovalManagementMapper.java create mode 100644 jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TShelfOperationMapper.java create mode 100644 jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TBookInventoryService.java create mode 100644 jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TRemovalManagementService.java create mode 100644 jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TShelfOperationService.java create mode 100644 jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TBookInventoryServiceImpl.java create mode 100644 jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TRemovalManagementServiceImpl.java create mode 100644 jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TShelfOperationServiceImpl.java create mode 100644 jnpf-library/jnpf-library-biz/src/main/java/jnpf/task/SybVersionLibraryTask.java create mode 100644 jnpf-library/jnpf-library-biz/src/main/resources/mapper/TBookInventoryMapper.xml create mode 100644 jnpf-library/jnpf-library-biz/src/main/resources/mapper/TRemovalManagementMapper.xml create mode 100644 jnpf-library/jnpf-library-biz/src/main/resources/mapper/TShelfOperationMapper.xml create mode 100644 jnpf-library/jnpf-library-controller/src/main/java/jnpf/controller/RemovalManagementController.java create mode 100644 jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TBookInventory.java create mode 100644 jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TRemovalManagement.java create mode 100644 jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TShelfOperation.java create mode 100644 jnpf-library/jnpf-library-entity/src/main/java/jnpf/enump/RemovalManagementEnum.java create mode 100644 jnpf-library/jnpf-library-entity/src/main/java/jnpf/enump/ShelfOperationEnum.java create mode 100644 jnpf-library/jnpf-library-entity/src/main/java/jnpf/model/dto/RemovalManagementEnum.java diff --git a/jnpf-gateway/src/main/resources/bootstrap-dev.yml b/jnpf-gateway/src/main/resources/bootstrap-dev.yml index 31aad98..e68923f 100644 --- a/jnpf-gateway/src/main/resources/bootstrap-dev.yml +++ b/jnpf-gateway/src/main/resources/bootstrap-dev.yml @@ -12,7 +12,7 @@ spring: password: nacos discovery: # 服务注册地址 - server-addr: ${nacos.hostname:192.168.200.130}:${nacos.port:8848} + server-addr: ${nacos.hostname:192.168.200.132}:${nacos.port:8848} namespace: 69c4eecb-05bd-4041-81fe-1473f95f578c config: server-addr: ${spring.cloud.nacos.discovery.server-addr} diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/config/RedisConfig.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/config/RedisConfig.java new file mode 100644 index 0000000..eb21231 --- /dev/null +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/config/RedisConfig.java @@ -0,0 +1,40 @@ +//package jnpf.config; +// +//import org.redisson.Redisson; +//import org.redisson.config.Config; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.cache.annotation.CachingConfigurerSupport; +//import org.springframework.cache.annotation.EnableCaching; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.data.redis.connection.RedisConnectionFactory; +//import org.springframework.data.redis.core.RedisTemplate; +//import org.springframework.data.redis.core.script.DefaultRedisScript; +//import org.springframework.data.redis.serializer.StringRedisSerializer; +// +///** +// * redis配置 +// * +// */ +//@Configuration +//@EnableCaching +//public class RedisConfig extends CachingConfigurerSupport { +// @Value("${spring.redis.host}") +// private String redisHost; +// @Value("${spring.redis.password}") +// private String redisPassword; +// @Value("${spring.redis.port}") +// private String redisPort; +// +// //redisson +// @Bean +// public Redisson redisson() { +// Config config = new Config(); +// config.useSingleServer().setAddress("redis://"+redisHost+":"+redisPort).setPassword(redisPassword); +//// config.useSingleServer().setAddress("redis://localhost:6379").setPassword("root"); +// //默认30 秒 +// config.setLockWatchdogTimeout(60000L); +// // 创建 Redisson 客户端实例 +// return (Redisson) Redisson.create(config); +// } +//} diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TBookInventoryMapper.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TBookInventoryMapper.java new file mode 100644 index 0000000..0aa5cf5 --- /dev/null +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TBookInventoryMapper.java @@ -0,0 +1,18 @@ +package jnpf.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import jnpf.entity.TBookInventory; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.Map; +/** + * 图书库存表(TBookInventory)表数据库访问层 + * + * @author common + * @since 2024-10-29 15:59:26 + */ +public interface TBookInventoryMapper extends BaseMapper { + IPage selectPage(IPage iPage, @Param("params") Map params); + +} + diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TRemovalManagementMapper.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TRemovalManagementMapper.java new file mode 100644 index 0000000..3e643b3 --- /dev/null +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TRemovalManagementMapper.java @@ -0,0 +1,18 @@ +package jnpf.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import jnpf.entity.TRemovalManagement; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.Map; +/** + * 下架管理表(TRemovalManagement)表数据库访问层 + * + * @author common + * @since 2024-11-06 17:53:14 + */ +public interface TRemovalManagementMapper extends BaseMapper { + IPage selectPage(IPage iPage, @Param("params") Map params); + +} + diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TSelectionOrderingBooksMapper.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TSelectionOrderingBooksMapper.java index 98fe217..55c73a2 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TSelectionOrderingBooksMapper.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TSelectionOrderingBooksMapper.java @@ -1,6 +1,7 @@ package jnpf.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jnpf.entity.TSelectionOrderingBooks; import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Param; @@ -17,5 +18,7 @@ public interface TSelectionOrderingBooksMapper extends BaseMapper selectPage(IPage iPage, @Param("params") Map params); List getListByIds(@Param("relationIdList")List bdIdList); + + Page pageListByIds(@Param("page") IPage page, @Param("relationIdList")List bdIdList); } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TSelectionOrderingMainMapper.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TSelectionOrderingMainMapper.java index a60842d..f80a843 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TSelectionOrderingMainMapper.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TSelectionOrderingMainMapper.java @@ -2,10 +2,13 @@ package jnpf.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import jnpf.entity.TSelectionOrderingBooks; import jnpf.entity.TSelectionOrderingMain; import com.baomidou.mybatisplus.core.metadata.IPage; import jnpf.model.dto.SelectionOrderingMainDto; import org.apache.ibatis.annotations.Param; + +import java.util.List; import java.util.Map; /** * 选品下单主单信息表(TSelectionOrderingMain)表数据库访问层 @@ -19,5 +22,8 @@ public interface TSelectionOrderingMainMapper extends BaseMapper queryOrderingListByOrderType(@Param("page") Page objectPage, @Param("params")SelectionOrderingMainDto.QueryOrderingListByOrderTypeParam param); SelectionOrderingMainDto.CommonTSelectionOrderingMain getInfoById(@Param("id") Long id); + + List queryOrderingListForLeader(); + } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TShelfOperationMapper.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TShelfOperationMapper.java new file mode 100644 index 0000000..fbac2d5 --- /dev/null +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TShelfOperationMapper.java @@ -0,0 +1,18 @@ +package jnpf.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import jnpf.entity.TShelfOperation; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.Map; +/** + * 上下架操作表(TShelfOperation)表数据库访问层 + * + * @author common + * @since 2024-10-29 16:00:29 + */ +public interface TShelfOperationMapper extends BaseMapper { + IPage selectPage(IPage iPage, @Param("params") Map params); + +} + diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/ILibraryService.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/ILibraryService.java index dc84e2e..87966ee 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/ILibraryService.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/ILibraryService.java @@ -21,8 +21,10 @@ import java.util.Set; public interface ILibraryService extends IService{ IPage getLibraryList(SelectionOrderingMainDto.GetLibraryListParam param); - ReceiveGoodsMainDto.BunchingInfo getBunchingInfoByBookNumber(String bookNumber); + TLibrary getBunchingInfoByBookNumber(String bookNumber); List getListByBookNumberList(Set queryBookInfoNumberList); + + List synVersionLibraryData(); } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TBookInventoryService.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TBookInventoryService.java new file mode 100644 index 0000000..a2fc6e3 --- /dev/null +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TBookInventoryService.java @@ -0,0 +1,16 @@ +package jnpf.service; + +import jnpf.entity.TBookInventory; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Map; +/** + * 图书库存表(TBookInventory)表服务接口 + * + * @author common + * @since 2024-10-29 15:59:26 + */ +public interface TBookInventoryService extends IService { + IPage selectPage(IPage iPage, Map params); +} + diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TCommonRelationService.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TCommonRelationService.java index 0d69b2d..bb07d1c 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TCommonRelationService.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TCommonRelationService.java @@ -15,6 +15,15 @@ public interface TCommonRelationService extends IService { enum Type { //样书去向 SAMPLE_BOOK_DESTINATION("SAMPLE_BOOK_DESTINATION"), + //库存图书剩余数量预警字段 + WARNING_NUMBER_FIELD("WARNING_NUMBER_FIELD"), + + //社长所选书籍id + BOOKS_CHOSEN_BY_THE_PRESIDENT("BOOKS_CHOSEN_BY_THE_PRESIDENT"), + //领导选书标记 + LEADER_SELECTION_BOOK_MARK("LEADER_SELECTION_BOOK_MARK"), + //领导所选书籍id + BOOKS_CHOSEN_BY_THE_LEADER("BOOKS_CHOSEN_BY_THE_LEADER"), ; public final String type; diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TReceiveGoodsMainService.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TReceiveGoodsMainService.java index f098a01..2cbbaa3 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TReceiveGoodsMainService.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TReceiveGoodsMainService.java @@ -1,5 +1,7 @@ package jnpf.service; +import jnpf.base.vo.DownloadVO; +import jnpf.entity.TLibrary; import jnpf.entity.TReceiveGoodsMain; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; @@ -28,7 +30,7 @@ public interface TReceiveGoodsMainService extends IService { * @param bookNumber * @return */ - ReceiveGoodsMainDto.BunchingInfo getBunchingInfoByBookNumber(String bookNumber); + ReceiveGoodsMainDto.TLibraryEntity getBunchingInfoByBookNumber(String bookNumber); /** * @param id @@ -78,5 +80,19 @@ public interface TReceiveGoodsMainService extends IService { * @param param */ void saveStackingInformationByReceiveId(ReceiveGoodsMainDto.SaveStackingInformationByReceiveIdParam param); + + /** + * 根据收货单获取跳转到h5上架链接的二维码 + * @param id + * @return + */ + DownloadVO getQrByReceiptId(Long id); + + + /** + * h5页面上架接口 + * @param param + */ + void h5ShelfInterface(ReceiveGoodsMainDto.H5ShelfInterfaceParam param); } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TRemovalManagementService.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TRemovalManagementService.java new file mode 100644 index 0000000..64016ed --- /dev/null +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TRemovalManagementService.java @@ -0,0 +1,16 @@ +package jnpf.service; + +import jnpf.entity.TRemovalManagement; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Map; +/** + * 下架管理表(TRemovalManagement)表服务接口 + * + * @author common + * @since 2024-11-06 17:53:14 + */ +public interface TRemovalManagementService extends IService { + IPage selectPage(IPage iPage, Map params); +} + diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TSelectionOrderingBooksService.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TSelectionOrderingBooksService.java index 0f8d229..ec98b71 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TSelectionOrderingBooksService.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TSelectionOrderingBooksService.java @@ -1,5 +1,6 @@ package jnpf.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jnpf.entity.TSelectionOrderingBooks; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; @@ -23,5 +24,6 @@ public interface TSelectionOrderingBooksService extends IService getListByIds(List bdIdList); + Page pageListByIds(IPage page, List bdIdList); } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TSelectionOrderingMainService.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TSelectionOrderingMainService.java index f767962..f916e5e 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TSelectionOrderingMainService.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TSelectionOrderingMainService.java @@ -1,11 +1,13 @@ package jnpf.service; import jnpf.base.vo.DownloadVO; +import jnpf.entity.TSelectionOrderingBooks; import jnpf.entity.TSelectionOrderingMain; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import jnpf.model.dto.SelectionOrderingMainDto; +import java.util.List; import java.util.Map; /** * 选品下单主单信息表(TSelectionOrderingMain)表服务接口 @@ -53,5 +55,22 @@ public interface TSelectionOrderingMainService extends IService aggregateQuery(SelectionOrderingMainDto.AggregateQuery param); + + IPage pageSelectedBooks(SelectionOrderingMainDto.PageSelectedBooks param); + + IPage queryBooksFromPresident(SelectionOrderingMainDto.QueryBooksFromPresident param); + + List queryOrderingListForLeader(); + + void leaderSelection(SelectionOrderingMainDto.PresidentSelectionParam param); + + List queryBooksFromLeader(SelectionOrderingMainDto.QueryBooksFromPresident param); } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TShelfOperationService.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TShelfOperationService.java new file mode 100644 index 0000000..08d5bcd --- /dev/null +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TShelfOperationService.java @@ -0,0 +1,16 @@ +package jnpf.service; + +import jnpf.entity.TShelfOperation; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Map; +/** + * 上下架操作表(TShelfOperation)表服务接口 + * + * @author common + * @since 2024-10-29 16:00:29 + */ +public interface TShelfOperationService extends IService { + IPage selectPage(IPage iPage, Map params); +} + diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/LibraryServiceImpl.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/LibraryServiceImpl.java index de19b95..2ce2d0d 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/LibraryServiceImpl.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/LibraryServiceImpl.java @@ -21,10 +21,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.Set; +import java.util.*; /** * 图书去向表(TBookGoWhere)表服务实现类 @@ -42,7 +39,8 @@ public class LibraryServiceImpl extends ServiceImpl imp } @Override - public ReceiveGoodsMainDto.BunchingInfo getBunchingInfoByBookNumber(String bookNumber) { + @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) + public TLibrary getBunchingInfoByBookNumber(String bookNumber) { // List libraryList = this.baseMapper.getLibraryList(); // Optional bookInfo = libraryList.stream().findFirst(); //查询图书信息 @@ -52,14 +50,15 @@ public class LibraryServiceImpl extends ServiceImpl imp if (!bookInfo.isPresent()) { throw new DataException("未查询到图书信息"); } - TLibrary library = bookInfo.get(); - ReceiveGoodsMainDto.BunchingInfo bunchingInfo = new ReceiveGoodsMainDto.BunchingInfo(); - bunchingInfo.setBookNumber(bookNumber); - bunchingInfo.setBookName(library.getBookName()); - bunchingInfo.setCoverImage(library.getCoverImage()); - bunchingInfo.setPress(library.getPress()); - bunchingInfo.setPrice(library.getPrice()); - return bunchingInfo; + return bookInfo.get(); +// TLibrary library = bookInfo.get(); +// ReceiveGoodsMainDto.BunchingInfo bunchingInfo = new ReceiveGoodsMainDto.BunchingInfo(); +// bunchingInfo.setBookNumber(bookNumber); +// bunchingInfo.setBookName(library.getBookName()); +// bunchingInfo.setCoverImage(library.getCoverImage()); +// bunchingInfo.setPress(library.getPress()); +// bunchingInfo.setPrice(library.getPrice()); +// return bunchingInfo; } @Override @@ -69,4 +68,11 @@ public class LibraryServiceImpl extends ServiceImpl imp .in(TLibrary::getBookNumber, queryBookInfoNumberList) .list(); } + + @Override + public List synVersionLibraryData() { + return this.lambdaQuery() + .in(TLibrary::getBookNumber, Arrays.asList("123456781","123456792","123456763","123456765")) + .list(); + } } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TBookInventoryServiceImpl.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TBookInventoryServiceImpl.java new file mode 100644 index 0000000..96e24fa --- /dev/null +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TBookInventoryServiceImpl.java @@ -0,0 +1,23 @@ +package jnpf.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jnpf.mapper.TBookInventoryMapper; +import jnpf.entity.TBookInventory; +import jnpf.service.TBookInventoryService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.Map; +/** + * 图书库存表(TBookInventory)表服务实现类 + * + * @author common + * @since 2024-10-29 15:59:26 + */ +@Service("tBookInventoryService") +public class TBookInventoryServiceImpl extends ServiceImpl implements TBookInventoryService { + @Override + public IPage selectPage(IPage iPage, Map params){ + return this.baseMapper.selectPage(iPage, params); + } + +} diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TReceiveGoodsBooksServiceImpl.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TReceiveGoodsBooksServiceImpl.java index ef176ed..1dcd942 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TReceiveGoodsBooksServiceImpl.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TReceiveGoodsBooksServiceImpl.java @@ -27,6 +27,6 @@ public class TReceiveGoodsBooksServiceImpl extends ServiceImpl getBookListByRelationId(ReceiveGoodsMainDto.GetBookListByIdParam param) { - return this.baseMapper.getBookListByRelationId(new Page(param.getCurrent(),param.getSize()),param); + return this.baseMapper.getBookListByRelationId(new Page<>(param.getCurrent(), param.getSize()),param); } } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TReceiveGoodsMainServiceImpl.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TReceiveGoodsMainServiceImpl.java index bd17baf..a2ca9df 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TReceiveGoodsMainServiceImpl.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TReceiveGoodsMainServiceImpl.java @@ -12,10 +12,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jnpf.base.DictionaryDataApi; import jnpf.base.UserInfo; import jnpf.base.entity.DictionaryDataEntity; +import jnpf.base.vo.DownloadVO; import jnpf.constant.FileTypeConstant; import jnpf.constant.PermissionConst; import jnpf.entity.*; import jnpf.enump.ReceiveGoodsMainEnum; +import jnpf.enump.ShelfOperationEnum; import jnpf.exception.DataException; import jnpf.file.FileApi; import jnpf.file.FileUploadApi; @@ -23,13 +25,17 @@ import jnpf.mapper.TReceiveGoodsMainMapper; import jnpf.model.dto.ReceiveGoodsMainDto; import jnpf.permission.entity.OrganizeEntity; import jnpf.permission.service.OrganizeService; -import jnpf.service.ILibraryService; -import jnpf.service.TBookGoWhereService; -import jnpf.service.TReceiveGoodsBooksService; -import jnpf.service.TReceiveGoodsMainService; +import jnpf.service.*; +import jnpf.util.RedisUtil; +import jnpf.util.UploaderUtil; import jnpf.util.UserProvider; import jnpf.utils.SnowFlake; import lombok.AllArgsConstructor; +import org.apache.catalina.User; +import org.jetbrains.annotations.NotNull; +import org.redisson.Redisson; +import org.redisson.api.RLock; +import org.redisson.redisnode.RedissonSingleNode; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.transaction.annotation.Transactional; @@ -42,6 +48,7 @@ import java.nio.file.Paths; import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -61,6 +68,12 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl selectPage(IPage iPage, Map params) { @@ -210,6 +223,8 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl deptOptional = organizeService.lambdaQuery() + .eq(OrganizeEntity::getId, UserProvider.getUser().getOrganizeId()) + .eq(OrganizeEntity::getEnabledMark, "1").list().stream().findFirst(); + if (deptOptional.isPresent()) { + OrganizeEntity dept = deptOptional.get(); + OrganizeEntity corp = getCorp(dept); + Optional commonRelationOptional = commonRelationService.lambdaQuery() + .eq(TCommonRelation::getSourceId, bookNumber) + .eq(TCommonRelation::getType, TCommonRelationService.Type.WARNING_NUMBER_FIELD.type) + .eq(TCommonRelation::getTargetId, corp.getId()) + .list().stream().findFirst(); + commonRelationOptional.ifPresent(tCommonRelation -> libraryEntity.setWarningQuantity(Integer.parseInt(tCommonRelation.getExt()))); + } + } + } catch (Exception e) { + log.error("获取用户信息失败"); + } + + return libraryEntity; } @Override @@ -350,7 +388,24 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl getBookListById(ReceiveGoodsMainDto.GetBookListByIdParam param) { - return receiveGoodsBooksService.getBookListByRelationId(param); + IPage receiveGoodsBooksEntityIPage = receiveGoodsBooksService.getBookListByRelationId(param); + //赋予库存数 + Optional deptOptional = organizeService.lambdaQuery() + .eq(OrganizeEntity::getId, UserProvider.getUser().getOrganizeId()) + .eq(OrganizeEntity::getEnabledMark, "1").list().stream().findFirst(); + if (deptOptional.isPresent()) { + OrganizeEntity dept = deptOptional.get(); + OrganizeEntity corp = getCorp(dept); + for (ReceiveGoodsMainDto.TReceiveGoodsBooksEntity receiveGoodsBooksEntity : receiveGoodsBooksEntityIPage.getRecords()) { + receiveGoodsBooksEntity.setInventoryNumber(bookInventoryService.lambdaQuery() + .eq(TBookInventory::getBookName, receiveGoodsBooksEntity.getBookName()) + .eq(TBookInventory::getDelFlag, "0") + .eq(TBookInventory::getType, param.getOrderType()) + .eq(TBookInventory::getCreateCorpId, corp.getId()) + .list().stream().map(TBookInventory::getQuantity).mapToInt(Integer::intValue).sum()); + } + } + return receiveGoodsBooksEntityIPage; } @Override @@ -374,7 +429,10 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl deptOptional = organizeService.lambdaQuery() @@ -400,9 +458,41 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl otherSH = bookGoWhereService.lambdaQuery() + .eq(TBookGoWhere::getType, "0") + .eq(TBookGoWhere::getDelFlag, "0") + .eq(TBookGoWhere::getWarehouseEntryFlag, "0") + .in(TBookGoWhere::getTargetName, Arrays.asList(ReceiveGoodsMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getDescribe(), ReceiveGoodsMainEnum.OrderTypeEnum.VERSION_LIBRARY.getDescribe())) + .in(TBookGoWhere::getBookNumber, bookNumberList) + .eq(TBookGoWhere::getCreateCorpId, corpId) + .list().stream().map(TBookGoWhere::getTargetName).collect(Collectors.toSet()); if (CollUtil.isNotEmpty(bookNumberList)) { //修改图书去向 即之后样书室新建后进行分堆不会再查到老数据 bookGoWhereService.lambdaUpdate() @@ -495,31 +594,23 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl otherSH = bookGoWhereService.lambdaQuery() - .eq(TBookGoWhere::getType, "0") - .eq(TBookGoWhere::getDelFlag, "0") - .eq(TBookGoWhere::getWarehouseEntryFlag, "0") - .in(TBookGoWhere::getTargetName, Arrays.asList(ReceiveGoodsMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getDescribe(), ReceiveGoodsMainEnum.OrderTypeEnum.VERSION_LIBRARY.getDescribe())) - .in(TBookGoWhere::getBookNumber, bookNumberList) - .eq(TBookGoWhere::getCreateCorpId, corpId) - .list().stream().map(TBookGoWhere::getTargetName).collect(Collectors.toSet()); if (CollUtil.isNotEmpty(otherSH)) { for (String sh : otherSH) { - String orderType =""; - if (StrUtil.equals(ReceiveGoodsMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getDescribe(),sh)){ - orderType=ReceiveGoodsMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getCode(); + ReceiveGoodsMainEnum.OrderTypeEnum orderType = null; +// String orderType = ""; + if (StrUtil.equals(ReceiveGoodsMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getDescribe(), sh)) { + orderType = ReceiveGoodsMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT; } - if (StrUtil.equals(ReceiveGoodsMainEnum.OrderTypeEnum.VERSION_LIBRARY.getDescribe(),sh)){ - orderType=ReceiveGoodsMainEnum.OrderTypeEnum.VERSION_LIBRARY.getCode(); + if (StrUtil.equals(ReceiveGoodsMainEnum.OrderTypeEnum.VERSION_LIBRARY.getDescribe(), sh)) { + orderType = ReceiveGoodsMainEnum.OrderTypeEnum.VERSION_LIBRARY; } - if (StrUtil.isBlank(orderType)){ + if (null == orderType) { continue; } //生成版本馆/业务部收货单 ReceiveGoodsMainDto.NewReceiptParam newReceiptParam = new ReceiveGoodsMainDto.NewReceiptParam(); - newReceiptParam.setOrderType(orderType); + newReceiptParam.setOrderType(orderType.getCode()); newReceiptParam.setReceiptNumber(tReceiveGoodsMain.getReceiptNumber()); newReceiptParam.setPackageQuantity(tReceiveGoodsMain.getPackageQuantity()); newReceiptParam.setDeliveryParty(tReceiveGoodsMain.getDeliveryParty()); @@ -527,42 +618,79 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl bunchingInfoList = new ArrayList<>(); - //查询图书编号 - Set queryBookInfoNumberList = bookGoWhereService.lambdaQuery() - .eq(TBookGoWhere::getType, "0") + + Set receiveGoodsBookIdList = receiveGoodsBooksService.lambdaQuery() + .eq(TReceiveGoodsBooks::getRelationId, tReceiveGoodsMain.getId()) + .eq(TReceiveGoodsBooks::getDelFlag, "0") + .list() + .stream().map(TReceiveGoodsBooks::getId).collect(Collectors.toSet()); + + //查询该图书向业务部应送多少 + for (TBookGoWhere tBookGoWhere : bookGoWhereService.lambdaQuery() + .eq(TBookGoWhere::getType, "1") .eq(TBookGoWhere::getDelFlag, "0") - .eq(TBookGoWhere::getWarehouseEntryFlag, "0") -// .in(TBookGoWhere::getTargetName, Arrays.asList(ReceiveGoodsMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getDescribe(), ReceiveGoodsMainEnum.OrderTypeEnum.VERSION_LIBRARY.getDescribe())) - .in(TBookGoWhere::getBookNumber, bookNumberList) + .eq(TBookGoWhere::getWarehouseEntryFlag, "1") + .eq(TBookGoWhere::getTargetName, orderType.getDescribe()) + // .in(TBookGoWhere::getTargetName, Arrays.asList(ReceiveGoodsMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getDescribe(), ReceiveGoodsMainEnum.OrderTypeEnum.VERSION_LIBRARY.getDescribe())) + .in(TBookGoWhere::getRelationId, receiveGoodsBookIdList) .eq(TBookGoWhere::getCreateCorpId, corpId) - .eq(TBookGoWhere::getOrderType, orderType) - .list().stream().map(TBookGoWhere::getBookNumber).collect(Collectors.toSet()); - List libraryList = libraryService.getListByBookNumberList(queryBookInfoNumberList); - //创建收货单 - if (CollUtil.isNotEmpty(libraryList)) { - for (TLibrary tLibrary : libraryList) { - bunchingInfoList.add(BeanUtil.copyProperties(tLibrary, ReceiveGoodsMainDto.BunchingInfo.class)); + .eq(TBookGoWhere::getOrderType, param.getOrderType()) + .list()) { + TLibrary library = libraryService.getBunchingInfoByBookNumber(tBookGoWhere.getBookNumber()); + ReceiveGoodsMainDto.BunchingInfo bunchingInfo = BeanUtil.copyProperties(library, ReceiveGoodsMainDto.BunchingInfo.class); + //校验业务部/版本馆应签收数量签收数量 + if (StrUtil.equals(ReceiveGoodsMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getDescribe(), sh)) { + //查询该图书向业务部应送多少 + bunchingInfo.setSignedQuantity(tBookGoWhere.getActualSend()); + } + if (StrUtil.equals(ReceiveGoodsMainEnum.OrderTypeEnum.VERSION_LIBRARY.getDescribe(), sh)) { + //版本馆送往数量默认为1 + bunchingInfo.setSignedQuantity(1); } - newReceiptParam.setBunchingInfoList(bunchingInfoList); - this.newReceipt(newReceiptParam); + bunchingInfoList.add(bunchingInfo); } - } + newReceiptParam.setBunchingInfoList(bunchingInfoList); + this.newReceipt(newReceiptParam); + + +// +// //查询图书编号 +// Set queryBookInfoNumberList = bookGoWhereService.lambdaQuery() +// .eq(TBookGoWhere::getType, "0") +// .eq(TBookGoWhere::getDelFlag, "0") +// .eq(TBookGoWhere::getWarehouseEntryFlag, "0") +//// .in(TBookGoWhere::getTargetName, Arrays.asList(ReceiveGoodsMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getDescribe(), ReceiveGoodsMainEnum.OrderTypeEnum.VERSION_LIBRARY.getDescribe())) +// .in(TBookGoWhere::getBookNumber, bookNumberList) +// .eq(TBookGoWhere::getCreateCorpId, corpId) +// .eq(TBookGoWhere::getOrderType, orderType) +// .list().stream().map(TBookGoWhere::getBookNumber).collect(Collectors.toSet()); +// List libraryList = libraryService.getListByBookNumberList(queryBookInfoNumberList); +// //创建收货单 +// if (CollUtil.isNotEmpty(libraryList)) { +// for (TLibrary tLibrary : libraryList) { +// ReceiveGoodsMainDto.BunchingInfo bunchingInfo = BeanUtil.copyProperties(tLibrary, ReceiveGoodsMainDto.BunchingInfo.class); +// //校验业务部/版本馆应签收数量签收数量 +// if (StrUtil.equals(ReceiveGoodsMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getDescribe(), sh)) { +// //查询该图书向业务部应送多少 +// receiveGoodsBooksService.lambdaQuery() +// .eq(TReceiveGoodsBooks::getRelationId,tReceiveGoodsMain.getId()) +// .eq(TReceiveGoodsBooks::getBookNumber,tLibrary.getBookNumber()) +// .li +// } +// if (StrUtil.equals(ReceiveGoodsMainEnum.OrderTypeEnum.VERSION_LIBRARY.getDescribe(), sh)) { +// bunchingInfo.setSignedQuantity(1); +// } +// bunchingInfoList.add(bunchingInfo); +// +// } + } } - //生成二维码 - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - DictionaryDataEntity data = dictionaryDataApi.getByTypeDataCode("SampleLibrary", "xtaddr").getData(); - String systemUrl = "http://61.169.37.106:9172/api/file/Image/preview/"; - if (null != data) { - systemUrl = data.getDescription(); - } - QrCodeUtil.generate(systemUrl, 1000, 1000, "", byteArrayOutputStream); - MockMultipartFile mockMultipartFile = new MockMultipartFile("上架.png", "上架.png", "text/plain", byteArrayOutputStream.toByteArray()); - FileInfo preview = fileUploadApi.uploadFile(mockMultipartFile, fileApi.getPath(FileTypeConstant.BIVISUALPATH), "preview", "上架.png"); + //修改状态为上架中 this.lambdaUpdate() - .set(TReceiveGoodsMain::getListingQrCode, preview.getFilename()) +// .set(TReceiveGoodsMain::getListingQrCode, preview.getFilename()) .set(TReceiveGoodsMain::getMainStatus, mainStatusEnum.getCode()) .set(TReceiveGoodsMain::getMainStatusName, mainStatusEnum.getDescribe()) .set(TReceiveGoodsMain::getUpdateId, UserProvider.getLoginUserId()) @@ -572,5 +700,198 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl deptOptional = organizeService.lambdaQuery() + .eq(OrganizeEntity::getId, UserProvider.getUser().getOrganizeId()) + .eq(OrganizeEntity::getEnabledMark, "1").list().stream().findFirst(); + if (deptOptional.isPresent()) { + dept = deptOptional.get(); + corp = getCorp(dept); + } + } + if (null == corp) { + throw new DataException("请先加入组织"); + } + //校验图书状态 + checkBookStatus(param); + //校验该图书预警信息 + checkWaring(param, corp.getId()); + //校验库存保存 + Long bookInventoryId = checkBookInventory(param, dept, corp); + //校验保存上架记录 + checkShelf(param, bookInventoryId, dept, corp); + //最后校验是否所有图书已上架 + if (receiveGoodsBooksService.lambdaQuery() + .eq(TReceiveGoodsBooks::getRelationId, receiveGoodsMain.getId()) + .eq(TReceiveGoodsBooks::getDelFlag, "0") + .in(TReceiveGoodsBooks::getListingStatus, Arrays.asList(ReceiveGoodsMainEnum.BookStatusEnum.PENDING_LISTING.getCode(), ReceiveGoodsMainEnum.BookStatusEnum.LISTING.getCode())) + .exists()) { + return; + } + this.lambdaUpdate() + .set(TReceiveGoodsMain::getMainStatus, ReceiveGoodsMainEnum.MainStatusEnum.ALREADY_LISTED.getCode()) + .set(TReceiveGoodsMain::getMainStatusName, ReceiveGoodsMainEnum.MainStatusEnum.ALREADY_LISTED.getDescribe()) + .set(TReceiveGoodsMain::getUpdateId, UserProvider.getLoginUserId()) + .set(TReceiveGoodsMain::getUpdateTime, LocalDateTime.now()) + .set(TReceiveGoodsMain::getUpdateName, UserProvider.getUser().getUserName()) + .eq(TReceiveGoodsMain::getId, receiveGoodsMain.getId()) + .update(); + } catch (InterruptedException e) { + log.error("上架失败:" + e); + throw new DataException("上架失败"); + } finally { + //释放锁 默认30秒后自动释放 + if (lock.isHeldByCurrentThread()) { + lock.unlock(); + } + } + } + + private void checkShelf(ReceiveGoodsMainDto.H5ShelfInterfaceParam param, Long bookInventoryId, OrganizeEntity dept, OrganizeEntity corp) { + UserInfo user = UserProvider.getUser(); + TShelfOperation shelfOperation = new TShelfOperation(); + shelfOperation.setSaveType(param.getType()); + shelfOperation.setType(ShelfOperationEnum.TypeEnum.LISTING.getCode()); + shelfOperation.setOperationType(ShelfOperationEnum.OperationTypeEnum.WAREHOUSE_ENTRY.getCode()); + shelfOperation.setOperationTypeName(ShelfOperationEnum.OperationTypeEnum.WAREHOUSE_ENTRY.getDescribe()); + shelfOperation.setId(SnowFlake.nextId()); + shelfOperation.setBookInventoryId(bookInventoryId.toString()); + shelfOperation.setListingNumber(param.getListingNumber()); + shelfOperation.setCreateId(user.getUserId()); + shelfOperation.setCreateDeptName(dept.getFullName()); + shelfOperation.setCreateCorpName(corp.getFullName()); + shelfOperation.setCreateDeptId(dept.getId()); + shelfOperation.setCreateCorpId(corp.getId()); + shelfOperation.setUpdateId(user.getUserId()); + shelfOperation.setUpdateTime(LocalDateTime.now()); + shelfOperation.setUpdateName(user.getUserName()); + shelfOperationService.save(shelfOperation); + } + + private Long checkBookInventory(ReceiveGoodsMainDto.H5ShelfInterfaceParam param, OrganizeEntity dept, OrganizeEntity corp) { + UserInfo user = UserProvider.getUser(); + TBookInventory bookInventory; + //校验该书架是否已有该图书库存信息 + Optional bookInventoryOptional = bookInventoryService.lambdaQuery() + .eq(TBookInventory::getBookNumber, param.getBookNumber()) + .eq(TBookInventory::getType, param.getType()) + .eq(TBookInventory::getCreateCorpId, corp.getId()) + .list().stream().findFirst(); + if (bookInventoryOptional.isPresent()) { + bookInventory = bookInventoryOptional.get(); + bookInventory.setQuantity(bookInventory.getQuantity() + param.getListingNumber()); + } else { + TLibrary library = libraryService.getBunchingInfoByBookNumber(param.getBookNumber()); + bookInventory = BeanUtil.copyProperties(param, TBookInventory.class); + bookInventory.setId(SnowFlake.nextId()); + bookInventory.setAuthor(library.getAuthor()); + bookInventory.setCoverImage(library.getCoverImage()); + bookInventory.setPublicationTime(library.getPublicationTime()); + bookInventory.setContentSummary(library.getContentSummary()); + bookInventory.setRemark(library.getRemark()); + bookInventory.setVarietyNumber(library.getVarietyNumber()); + bookInventory.setQuantity(param.getListingNumber()); + bookInventory.setBookNumber(param.getBookNumber()); + bookInventory.setRackNumber(param.getRackNumber()); + bookInventory.setType(param.getType()); + bookInventory.setCreateId(user.getUserId()); + bookInventory.setCreateDeptName(dept.getFullName()); + bookInventory.setCreateCorpName(corp.getFullName()); + bookInventory.setCreateDeptId(dept.getId()); + bookInventory.setCreateCorpId(corp.getId()); + } + bookInventory.setUpdateId(user.getUserId()); + bookInventory.setUpdateTime(LocalDateTime.now()); + bookInventory.setUpdateName(user.getUserName()); + bookInventoryService.saveOrUpdate(bookInventory); + return bookInventory.getId(); + + } + + private void checkWaring(ReceiveGoodsMainDto.H5ShelfInterfaceParam param, String corpId) { + boolean exists = commonRelationService.lambdaQuery() + .eq(TCommonRelation::getSourceId, param.getBookNumber()) + .eq(TCommonRelation::getType, TCommonRelationService.Type.WARNING_NUMBER_FIELD.type) + .eq(TCommonRelation::getTargetId, corpId) + .exists(); + if (exists) { + return; + } + TCommonRelation commonRelation = new TCommonRelation(); + commonRelation.setSourceId(param.getBookNumber()); + commonRelation.setType(TCommonRelationService.Type.WARNING_NUMBER_FIELD.type); + commonRelation.setTargetId(corpId); + commonRelation.setExt(param.getWarningInventory().toString()); + commonRelation.setCreateBy(UserProvider.getUser().getUserName()); + commonRelation.setCreateTime(LocalDateTime.now()); + commonRelation.setCreateName(UserProvider.getUser().getUserName()); + commonRelationService.save(commonRelation); + + } + + private void checkBookStatus(ReceiveGoodsMainDto.H5ShelfInterfaceParam param) { + //查询该书号对应待上架的图书 + Optional receiveGoodsBooksOptional = receiveGoodsBooksService.lambdaQuery() + .eq(TReceiveGoodsBooks::getRelationId, param.getId()) + .eq(TReceiveGoodsBooks::getBookNumber, param.getBookNumber()) + .eq(TReceiveGoodsBooks::getDelFlag, "0") + .list().stream().findFirst(); + if (!receiveGoodsBooksOptional.isPresent()) { + throw new DataException("该图书不在本次收货记录中,请核对"); + } + //校验已入库多少本 + TReceiveGoodsBooks receiveGoodsBooks = receiveGoodsBooksOptional.get(); + Integer alreadyUpNumber = receiveGoodsBooks.getAlreadyUpNumber(); + //本次上架册书数>(应上架册数-已上架册数) 即已超过系统所记录本图书的数量 报错 + if (param.getListingNumber() > (receiveGoodsBooks.getShouldUpNumber() - alreadyUpNumber)) { + throw new DataException("上架数量多于未上架数量,上架失败"); + } + //应上架册数=(本次上架册书数+已上架册数) 即本图书已完成上架 修改状态 + if (receiveGoodsBooks.getShouldUpNumber() == (param.getListingNumber() + alreadyUpNumber)) { + receiveGoodsBooks.setListingStatus(ReceiveGoodsMainEnum.BookStatusEnum.ALREADY_LISTED.getCode()); + receiveGoodsBooks.setListingStatusName(ReceiveGoodsMainEnum.BookStatusEnum.ALREADY_LISTED.getDescribe()); + } + //如果第一次上架修改状态为上架中 + if (StrUtil.equals(receiveGoodsBooks.getListingStatus(), ReceiveGoodsMainEnum.BookStatusEnum.PENDING_LISTING.getCode())) { + receiveGoodsBooks.setListingStatus(ReceiveGoodsMainEnum.BookStatusEnum.LISTING.getCode()); + receiveGoodsBooks.setListingStatusName(ReceiveGoodsMainEnum.BookStatusEnum.LISTING.getDescribe()); + } + //修改已上架多少本 + receiveGoodsBooks.setAlreadyUpNumber(receiveGoodsBooks.getAlreadyUpNumber() + param.getListingNumber()); + receiveGoodsBooks.setListingTime(LocalDateTime.now()); + receiveGoodsBooks.setListingId(UserProvider.getUser().getUserId()); + receiveGoodsBooks.setListingName(UserProvider.getUser().getUserName()); + //配置书架 多个用逗号拼接 + if (StrUtil.isNotBlank(param.getRackNumber())) { + if (!StrUtil.contains(receiveGoodsBooks.getRackNumber(), param.getRackNumber())) { + receiveGoodsBooks.setRackNumber(StrUtil.join(",", receiveGoodsBooks.getRackNumber(), param.getRackNumber())); + } + } else { + receiveGoodsBooks.setRackNumber(param.getRackNumber()); + } + receiveGoodsBooksService.saveOrUpdate(receiveGoodsBooks); + } } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TRemovalManagementServiceImpl.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TRemovalManagementServiceImpl.java new file mode 100644 index 0000000..266fdff --- /dev/null +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TRemovalManagementServiceImpl.java @@ -0,0 +1,23 @@ +package jnpf.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jnpf.mapper.TRemovalManagementMapper; +import jnpf.entity.TRemovalManagement; +import jnpf.service.TRemovalManagementService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.Map; +/** + * 下架管理表(TRemovalManagement)表服务实现类 + * + * @author common + * @since 2024-11-06 17:53:14 + */ +@Service("tRemovalManagementService") +public class TRemovalManagementServiceImpl extends ServiceImpl implements TRemovalManagementService { + @Override + public IPage selectPage(IPage iPage, Map params){ + return this.baseMapper.selectPage(iPage, params); + } + +} diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TSelectionOrderingBooksServiceImpl.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TSelectionOrderingBooksServiceImpl.java index f2d53fc..17c3b54 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TSelectionOrderingBooksServiceImpl.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TSelectionOrderingBooksServiceImpl.java @@ -1,5 +1,6 @@ package jnpf.service.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jnpf.mapper.TSelectionOrderingBooksMapper; import jnpf.entity.TSelectionOrderingBooks; @@ -28,4 +29,9 @@ public class TSelectionOrderingBooksServiceImpl extends ServiceImpl getListByIds(List bdIdList) { return this.baseMapper.getListByIds(bdIdList); } + + @Override + public Page pageListByIds(IPage page, List bdIdList) { + return this.baseMapper.pageListByIds(page,bdIdList); + } } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TSelectionOrderingMainServiceImpl.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TSelectionOrderingMainServiceImpl.java index 83e57ce..62f78a7 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TSelectionOrderingMainServiceImpl.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TSelectionOrderingMainServiceImpl.java @@ -15,6 +15,7 @@ import jnpf.config.ConfigValueUtil; import jnpf.constant.FileTypeConstant; import jnpf.constant.PermissionConst; import jnpf.entity.*; +import jnpf.enump.RemovalManagementEnum; import jnpf.enump.SelectionOrderingMainEnum; import jnpf.exception.DataException; import jnpf.file.FileApi; @@ -23,14 +24,12 @@ import jnpf.mapper.TSelectionOrderingMainMapper; import jnpf.model.dto.SelectionOrderingMainDto; import jnpf.permission.entity.OrganizeEntity; import jnpf.permission.service.OrganizeService; -import jnpf.service.TBookGoWhereService; -import jnpf.service.TCommonRelationService; -import jnpf.service.TSelectionOrderingBooksService; -import jnpf.service.TSelectionOrderingMainService; +import jnpf.service.*; import jnpf.util.*; import jnpf.utils.EasyPoiUtils; import jnpf.utils.SnowFlake; import lombok.AllArgsConstructor; +import org.apache.catalina.User; import org.apache.poi.ss.formula.functions.T; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; @@ -62,6 +61,7 @@ public class TSelectionOrderingMainServiceImpl extends ServiceImpl optionalOrganizeEntity = organizeService.lambdaQuery() .eq(OrganizeEntity::getFullName, press) @@ -202,8 +202,16 @@ public class TSelectionOrderingMainServiceImpl extends ServiceImpl librarylist = param.getSelectionOrderingBooksList(); + List librarylist = param.getSelectionOrderingBooksList(); if (CollUtil.isEmpty(librarylist)) return; - for (TLibrary library : librarylist) { + for (SelectionOrderingMainDto.TLibraryParam library : librarylist) { TSelectionOrderingBooks tSelectionOrderingBooks; List bookTurnoverInfoList = library.getBookTurnoverInfoList(); //先校验是否为更改还是新增 @@ -271,7 +279,7 @@ public class TSelectionOrderingMainServiceImpl extends ServiceImpl tSelectionOrderingMainList = this.lambdaQuery() - .eq(TSelectionOrderingMain::getDelFlag, "0") - .eq(TSelectionOrderingMain::getMainStatus, SelectionOrderingMainEnum.MainStatusEnum.PENDING_ORDER.getCode()) - .ne(TSelectionOrderingMain::getType, SelectionOrderingMainEnum.OrderTypeEnum.KEY_BOOKS.getCode()) - .eq(TSelectionOrderingMain::getCreateCorpId, corp.getId()) - .list(); - if (CollUtil.isEmpty(tSelectionOrderingMainList)) return tSelectionOrderingMain; - //根据下单类型进行分类 - Map> orderTypeResult = tSelectionOrderingMainList.stream().collect(Collectors.groupingBy(TSelectionOrderingMain::getType)); - for (String orderTypeCode : orderTypeResult.keySet()) { - //业务部汇总 - if (StrUtil.equals(orderTypeCode, SelectionOrderingMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getCode())) { - List bdIdList = orderTypeResult.get(SelectionOrderingMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getCode()).stream().map(TSelectionOrderingMain::getId).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(bdIdList)) { - tSelectionOrderingMain.setBusinessDepartmentBooksList(selectionOrderingBooksService.getListByIds(bdIdList)); - } - } - //版本馆汇总 - if (StrUtil.equals(orderTypeCode, SelectionOrderingMainEnum.OrderTypeEnum.VERSION_LIBRARY.getCode())) { - List bbIdList = orderTypeResult.get(SelectionOrderingMainEnum.OrderTypeEnum.VERSION_LIBRARY.getCode()).stream().map(TSelectionOrderingMain::getId).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(bbIdList)) { - tSelectionOrderingMain.setVersionLibraryBooksList(selectionOrderingBooksService.getListByIds(bbIdList)); - } - } - } +// OrganizeEntity corp = getCorp(organizeService.getInfo(UserProvider.getUser().getOrganizeId())); +// //查询本单位所有已提交未下单的选品 +// List tSelectionOrderingMainList = this.lambdaQuery() +// .eq(TSelectionOrderingMain::getDelFlag, "0") +// .eq(TSelectionOrderingMain::getMainStatus, SelectionOrderingMainEnum.MainStatusEnum.PENDING_ORDER.getCode()) +// .ne(TSelectionOrderingMain::getType, SelectionOrderingMainEnum.OrderTypeEnum.KEY_BOOKS.getCode()) +// .eq(TSelectionOrderingMain::getCreateCorpId, corp.getId()) +// .list(); +// if (CollUtil.isEmpty(tSelectionOrderingMainList)) return tSelectionOrderingMain; +// //根据下单类型进行分类 +// Map> orderTypeResult = tSelectionOrderingMainList.stream().collect(Collectors.groupingBy(TSelectionOrderingMain::getType)); +// for (String orderTypeCode : orderTypeResult.keySet()) { +// //业务部汇总 +// if (StrUtil.equals(orderTypeCode, SelectionOrderingMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getCode())) { +// List bdIdList = orderTypeResult.get(SelectionOrderingMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getCode()).stream().map(TSelectionOrderingMain::getId).collect(Collectors.toList()); +// if (CollUtil.isNotEmpty(bdIdList)) { +// tSelectionOrderingMain.setBusinessDepartmentBooksList(selectionOrderingBooksService.getListByIds(bdIdList)); +// } +// } +// //版本馆汇总 +// if (StrUtil.equals(orderTypeCode, SelectionOrderingMainEnum.OrderTypeEnum.VERSION_LIBRARY.getCode())) { +// List bbIdList = orderTypeResult.get(SelectionOrderingMainEnum.OrderTypeEnum.VERSION_LIBRARY.getCode()).stream().map(TSelectionOrderingMain::getId).collect(Collectors.toList()); +// if (CollUtil.isNotEmpty(bbIdList)) { +// tSelectionOrderingMain.setVersionLibraryBooksList(selectionOrderingBooksService.getListByIds(bbIdList)); +// } +// } +// } return tSelectionOrderingMain; } @@ -516,4 +528,230 @@ public class TSelectionOrderingMainServiceImpl extends ServiceImpl aggregateQuery(SelectionOrderingMainDto.AggregateQuery param) { + + if (StrUtil.isBlank(param.getOrderType())){ + throw new DataException("请选择查询类型"); + } + + OrganizeEntity corp = getCorp(organizeService.getInfo(UserProvider.getUser().getOrganizeId())); + //查询本单位所有已提交未下单的选品 + List tSelectionOrderingMainList = this.lambdaQuery() + .eq(TSelectionOrderingMain::getDelFlag, "0") + .eq(TSelectionOrderingMain::getMainStatus, SelectionOrderingMainEnum.MainStatusEnum.PENDING_ORDER.getCode()) + .eq(TSelectionOrderingMain::getType, param.getOrderType()) + .ne(TSelectionOrderingMain::getType, SelectionOrderingMainEnum.OrderTypeEnum.KEY_BOOKS.getCode()) + .eq(TSelectionOrderingMain::getCreateCorpId, corp.getId()) + .list(); + + if (CollUtil.isEmpty(tSelectionOrderingMainList)){ + return new Page<>(); + } + return selectionOrderingBooksService.pageListByIds(new Page<>(param.getCurrent(),param.getSize()),tSelectionOrderingMainList.stream().map(TSelectionOrderingMain::getId).collect(Collectors.toList())); + } + + @Override + public IPage pageSelectedBooks(SelectionOrderingMainDto.PageSelectedBooks param) { + if (null==param.getId()){ + throw new DataException("请选择选品单"); + } + TSelectionOrderingMain selectionOrderingMain = this.getById(param.getId()); + if (null==selectionOrderingMain){ + throw new DataException("该选品单已删除"); + } + return selectionOrderingBooksService.pageListByIds(new Page<>(param.getCurrent(),param.getSize()), Collections.singletonList(param.getId())); + + } + + @Override + public IPage queryBooksFromPresident(SelectionOrderingMainDto.QueryBooksFromPresident param) { + if (null==param.getId()){ + throw new DataException("请选择选品单"); + } + TSelectionOrderingMain selectionOrderingMain = this.getById(param.getId()); + if (null==selectionOrderingMain){ + throw new DataException("该选品单已删除"); + } + List bookIdList = tCommonRelationService.lambdaQuery() + .eq(TCommonRelation::getSourceId, param.getId()) + .eq(TCommonRelation::getType, TCommonRelationService.Type.BOOKS_CHOSEN_BY_THE_PRESIDENT.type) + .list().stream().map(TCommonRelation::getTargetId).map(Long::parseLong).collect(Collectors.toList()); + if (CollUtil.isEmpty(bookIdList)){ + return new Page<>(); + } + return selectionOrderingBooksService.lambdaQuery() + .in(TSelectionOrderingBooks::getId,bookIdList) + .eq(TSelectionOrderingBooks::getDelFlag,"0") + .page(new Page<>(param.getCurrent(),param.getSize())); + } + + @Override + public List queryOrderingListForLeader() { + //查询所有 +// List orderingList = tCommonRelationService.lambdaQuery() +// .eq(TCommonRelation::getType, TCommonRelationService.Type.BOOKS_CHOSEN_BY_THE_PRESIDENT.type) +// .eq(TCommonRelation::getExt,"false") +// .list().stream().map(TCommonRelation::getSourceId).map(Long::parseLong).collect(Collectors.toList()); + //查询所有重点数选品列表 + return this.baseMapper.queryOrderingListForLeader(); + +// return Collections.emptyList(); + } + + @Override + public void leaderSelection(SelectionOrderingMainDto.PresidentSelectionParam param) { + if (null==param.getSaveType()){ + throw new DataException("请选择保存类型"); + } + //校验该重点选品单是否存在 + if (null==param.getId()){ + throw new DataException("请选择选品单"); + } + TSelectionOrderingMain selectionOrderingMain = this.getById(param.getId()); + if (null==selectionOrderingMain){ + throw new DataException("该选品单已删除"); + } + //删除所有领导所选书籍 + tCommonRelationService.lambdaUpdate() + .eq(TCommonRelation::getSourceId,param.getId()) + .eq(TCommonRelation::getType,TCommonRelationService.Type.BOOKS_CHOSEN_BY_THE_LEADER.type) + .remove(); + if (CollUtil.isEmpty(param.getBookId())){ + return; + } + for (Long bookId : param.getBookId()) { + TCommonRelation commonRelation=new TCommonRelation(); + commonRelation.setId(SnowFlake.nextId()); + commonRelation.setSourceId(param.getId().toString()); + commonRelation.setType(TCommonRelationService.Type.BOOKS_CHOSEN_BY_THE_LEADER.type); + commonRelation.setTargetId(bookId.toString()); + commonRelation.setCreateTime(LocalDateTime.now()); + commonRelation.setCreateBy(UserProvider.getUser().getUserId()); + commonRelation.setCreateName(UserProvider.getUser().getUserName()); + tCommonRelationService.save(commonRelation); + } + if (StrUtil.equals(param.getSaveType(),"1")){ + return; + } + //添加该单号对应的领导是否选书标记 + tCommonRelationService.lambdaUpdate() + .set(TCommonRelation::getExt,"true") + .eq(TCommonRelation::getSourceId,param.getId().toString()) + .eq(TCommonRelation::getType,TCommonRelationService.Type.LEADER_SELECTION_BOOK_MARK.type) + .update(); + + //生成重点书下架单 + generateOrder(param); + } + + private void generateOrder(SelectionOrderingMainDto.PresidentSelectionParam param) { + TRemovalManagement removalManagement=new TRemovalManagement(); + //新增单号 + String idPrefix = "ZD" + LocalDateTimeUtil.format(LocalDateTime.now(), "yyyyMMdd"); + removalManagement.setId(String.format("%s%03d", idPrefix, redisSerialNumberUtils.generateSerialNumber(idPrefix))); + removalManagement.setCreateTime(LocalDateTime.now()); + removalManagement.setCreateName("领导"); + removalManagement.setUpdateTime(LocalDateTime.now()); + removalManagement.setUpdateName("领导"); + removalManagement.setSaveType(SelectionOrderingMainEnum.OrderTypeEnum.SAMPLE_BOOKSTORE.getCode()); + removalManagement.setType(RemovalManagementEnum.TypeEnum.ZD.getCode()); + removalManagement.setMainStatus(RemovalManagementEnum.MainStatusEnum.TO_BE_TAKEN_DOWN.getCode()); + removalManagement.setMainStatusName(RemovalManagementEnum.MainStatusEnum.TO_BE_TAKEN_DOWN.getDescribe()); + //查询册数 + int quantity = selectionOrderingBooksService.lambdaQuery() + .in(TSelectionOrderingBooks::getId, param.getBookId()) + .eq(TSelectionOrderingBooks::getDelFlag, "0") + .list() + .stream().mapToInt(TSelectionOrderingBooks::getQuantity).sum(); + removalManagement.setRemoveNumber(quantity); + //查询部门 因为是领导免登陆选书 所以只能根据选品单获取单位信息 + TSelectionOrderingMain selectionOrderingMain = this.getById(param.getId()); + if (null!=selectionOrderingMain){ + removalManagement.setCreateCorpId(selectionOrderingMain.getCreateCorpId()); + removalManagement.setCreateCorpName(selectionOrderingMain.getCreateCorpName()); + } + removalManagementService.save(removalManagement); + } + + @Override + public List queryBooksFromLeader(SelectionOrderingMainDto.QueryBooksFromPresident param) { + if (null==param.getId()){ + throw new DataException("请选择选品单"); + } + TSelectionOrderingMain selectionOrderingMain = this.getById(param.getId()); + if (null==selectionOrderingMain){ + throw new DataException("该选品单已删除"); + } + List bookIdList = tCommonRelationService.lambdaQuery() + .eq(TCommonRelation::getSourceId, param.getId()) + .eq(TCommonRelation::getType, TCommonRelationService.Type.BOOKS_CHOSEN_BY_THE_LEADER.type) + .list().stream().map(TCommonRelation::getTargetId).map(Long::parseLong).collect(Collectors.toList()); + if (CollUtil.isEmpty(bookIdList)){ + return new ArrayList<>(); + } + return selectionOrderingBooksService.lambdaQuery() + .in(TSelectionOrderingBooks::getId,bookIdList) + .eq(TSelectionOrderingBooks::getDelFlag,"0") + .list(); + } } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TShelfOperationServiceImpl.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TShelfOperationServiceImpl.java new file mode 100644 index 0000000..2f29257 --- /dev/null +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TShelfOperationServiceImpl.java @@ -0,0 +1,23 @@ +package jnpf.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jnpf.mapper.TShelfOperationMapper; +import jnpf.entity.TShelfOperation; +import jnpf.service.TShelfOperationService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.Map; +/** + * 上下架操作表(TShelfOperation)表服务实现类 + * + * @author common + * @since 2024-10-29 16:00:29 + */ +@Service("tShelfOperationService") +public class TShelfOperationServiceImpl extends ServiceImpl implements TShelfOperationService { + @Override + public IPage selectPage(IPage iPage, Map params){ + return this.baseMapper.selectPage(iPage, params); + } + +} diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/task/SybVersionLibraryTask.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/task/SybVersionLibraryTask.java new file mode 100644 index 0000000..ed2112b --- /dev/null +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/task/SybVersionLibraryTask.java @@ -0,0 +1,69 @@ +package jnpf.task; + + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import jnpf.entity.TLibrary; +import jnpf.entity.TReceiveGoodsMain; +import jnpf.entity.TSelectionOrderingMain; +import jnpf.enump.SelectionOrderingMainEnum; +import jnpf.exception.DataException; +import jnpf.model.dto.SelectionOrderingMainDto; +import jnpf.service.ILibraryService; +import jnpf.service.TReceiveGoodsBooksService; +import jnpf.service.TReceiveGoodsMainService; +import jnpf.service.TSelectionOrderingMainService; +import jnpf.service.impl.TSelectionOrderingMainServiceImpl; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.redisson.Redisson; +import org.redisson.api.RLock; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.concurrent.TimeUnit; + +@Component +@AllArgsConstructor +@Slf4j +public class SybVersionLibraryTask { + + + private final TSelectionOrderingMainService selectionOrderingMainService; + private final ILibraryService libraryService; + private final Redisson redisson; + private final TReceiveGoodsMainService receiveGoodsMainService; + private final TReceiveGoodsBooksService receiveGoodsBooksService; + + /** + * 每月1号去同步最新图书数据 + */ +// @Scheduled(initialDelay = 10000L,fixedDelay = 60*1000) + @Scheduled(cron = "0 0 1 1 * ?") + public void synVersionLibraryData() { + RLock lock = redisson.getLock("SYN_VERSION_LIBRARY_DATA_LOCK"); + + try { + //3秒内获取不到锁返回false + boolean getLock = lock.tryLock(5L, TimeUnit.SECONDS); + if (!getLock) return; + List libraryList = BeanUtil.copyToList(libraryService.synVersionLibraryData(), SelectionOrderingMainDto.TLibraryParam.class); + if (CollUtil.isEmpty(libraryList)) return; + for (TLibrary library : libraryList) { + library.setSelfReserved(1); + } + SelectionOrderingMainDto.SelectionOrderingParam param = new SelectionOrderingMainDto.SelectionOrderingParam(); + param.setOrderType(SelectionOrderingMainEnum.OrderTypeEnum.VERSION_LIBRARY.getCode()); + param.setSaveType("2"); + param.setSelectionOrderingBooksList(libraryList); + selectionOrderingMainService.selectionOrdering(param); + } catch (Exception e) { + log.error("同步图书执行失败:{}", e); + } finally { + if (lock.isHeldByCurrentThread()) { + lock.unlock(); + } + } + } +} diff --git a/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TBookGoWhereMapper.xml b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TBookGoWhereMapper.xml index 8a580d1..458e246 100644 --- a/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TBookGoWhereMapper.xml +++ b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TBookGoWhereMapper.xml @@ -25,70 +25,70 @@ -ID,book_number,target_name,should_send,actual_send,warehouse_entry_flag,del_flag,create_by,create_name,create_time,update_by,update_name,update_time,create_corp_name,create_corp_id,create_dept_name,create_dept_id,type,relation_id + f_ID as ID, f_book_number as book_number, f_target_name as target_name, f_order_type as order_type, f_type as type, f_relation_id as relation_id, f_should_send as should_send, f_actual_send as actual_send, f_warehouse_entry_flag as warehouse_entry_flag, f_del_flag as del_flag, f_create_by as create_by, f_create_name as create_name, f_create_time as create_time, f_update_by as update_by, f_update_name as update_name, f_update_time as update_time, f_create_corp_name as create_corp_name, f_create_corp_id as create_corp_id, f_create_dept_name as create_dept_name, f_create_dept_id as create_dept_id @@ -115,24 +115,24 @@ ID,book_number,target_name,should_send,actual_send,warehouse_entry_flag,del_flag diff --git a/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TBookInventoryMapper.xml b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TBookInventoryMapper.xml new file mode 100644 index 0000000..3728844 --- /dev/null +++ b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TBookInventoryMapper.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + f_id as id, f_type as type, f_book_number as book_number, f_book_name as book_name, f_author as author, f_rack_number as rack_number, f_cover_image as cover_image, f_price as price, f_edition as edition, f_impression as impression, f_publication_time as publication_time, f_content_summary as content_summary, f_remark as remark, f_quantity as quantity, f_variety_number as variety_number, f_del_flag as del_flag, f_create_id as create_id, f_create_time as create_time, f_create_name as create_name, f_update_id as update_id, f_update_time as update_time, f_update_name as update_name, f_create_corp_name as create_corp_name, f_create_corp_id as create_corp_id, f_create_dept_name as create_dept_name, f_create_dept_id as create_dept_id + + + diff --git a/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TCommonRelationMapper.xml b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TCommonRelationMapper.xml index d366755..3a1d20c 100644 --- a/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TCommonRelationMapper.xml +++ b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TCommonRelationMapper.xml @@ -2,68 +2,4 @@ - - - - - - - - - - - - - - - -ID,source_id,target_id,type,ext,create_by,create_name,create_time,update_by,update_name,update_time - - diff --git a/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TReceiveGoodsBooksMapper.xml b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TReceiveGoodsBooksMapper.xml index 462672f..ae2e75f 100644 --- a/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TReceiveGoodsBooksMapper.xml +++ b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TReceiveGoodsBooksMapper.xml @@ -22,67 +22,67 @@ -id,book_number,relation_id,cover_image,book_name,price,press,printing_books,signed_quantity,should_send,actual_send,remark,del_flag,create_id,create_time,create_name + f_id as id, f_book_number as book_number, f_relation_id as relation_id, f_cover_image as cover_image, f_book_name as book_name, f_rack_number as rack_number, f_author as author, f_price as price, f_press as press, f_edition as edition, f_impression as impression, f_printing_books as printing_books, f_signed_quantity as signed_quantity, f_should_send as should_send, f_actual_send as actual_send, f_remark as remark, f_del_flag as del_flag, f_create_id as create_id, f_create_time as create_time, f_create_name as create_name, f_should_up_number as should_up_number, f_already_up_number as already_up_number, f_listing_time as listing_time, f_listing_id as listing_id, f_listing_name as listing_name, f_listing_status as listing_status, f_listing_status_name as listing_status_name @@ -91,7 +91,7 @@ id,book_number,relation_id,cover_image,book_name,price,press,printing_books,sign select from t_receive_goods_books - where relation_id=#{params.id} and del_flag='0' + where f_relation_id=#{params.id} and f_del_flag='0' @@ -101,7 +101,11 @@ id,book_number,relation_id,cover_image,book_name,price,press,printing_books,sign + + + + @@ -112,5 +116,13 @@ id,book_number,relation_id,cover_image,book_name,price,press,printing_books,sign + + + + + + + + diff --git a/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TReceiveGoodsMainMapper.xml b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TReceiveGoodsMainMapper.xml index b812a21..ceb3d89 100644 --- a/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TReceiveGoodsMainMapper.xml +++ b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TReceiveGoodsMainMapper.xml @@ -32,94 +32,94 @@ -id,receipt_number,type,main_status,main_status_name,package_situation,package_situation_name,quantity_received,package_quantity,delivery_party,remark,del_flag,receive_time,sign_person_id,sign_person_time,sign_person_name,create_id,create_time,create_name,update_id,update_time,update_name,create_corp_name,create_corp_id,create_dept_name,create_dept_id + f_id as id, f_receipt_number as receipt_number, f_type as type, f_main_status as main_status, f_main_status_name as main_status_name, f_package_situation as package_situation, f_package_situation_name as package_situation_name, f_quantity_received as quantity_received, f_package_quantity as package_quantity, f_delivery_party as delivery_party, f_remark as remark, f_listing_qr_code as listing_qr_code, f_del_flag as del_flag, f_receive_time as receive_time, f_sign_person_id as sign_person_id, f_sign_person_time as sign_person_time, f_sign_person_name as sign_person_name, f_create_id as create_id, f_create_time as create_time, f_create_name as create_name, f_update_id as update_id, f_update_time as update_time, f_update_name as update_name, f_create_corp_name as create_corp_name, f_create_corp_id as create_corp_id, f_create_dept_name as create_dept_name, f_create_dept_id as create_dept_id @@ -147,28 +147,28 @@ id,type,main_status,main_status_name,package_situation,package_situation_name,qu select from t_receive_goods_main - del_flag='0' + f_del_flag='0' - and receipt_number = #{params.receiptNumber} + and f_receipt_number = #{params.receiptNumber} - and type = #{params.orderType} + and f_type = #{params.orderType} - and main_status = #{params.mainStatus} + and f_main_status = #{params.mainStatus} - and create_id = #{params.userId} + and f_create_id = #{params.userId} - and create_corp_id = #{params.corpId} + and f_create_corp_id = #{params.corpId} - and receive_time >= #{params.startTime} - and receive_time <= #{params.endTime} + and f_receive_time >= #{params.startTime} + and f_receive_time <= #{params.endTime} - order by receive_time desc + order by f_receive_time desc @@ -205,12 +205,12 @@ id,type,main_status,main_status_name,package_situation,package_situation_name,qu - id,book_number,relation_id,cover_image,book_name,price,press,printing_books,signed_quantity,should_send,actual_send,remark,del_flag,create_id,create_time,create_name + f_id as id, f_book_number as book_number, f_relation_id as relation_id, f_cover_image as cover_image, f_book_name as book_name, f_rack_number as rack_number, f_author as author, f_price as price, f_press as press, f_edition as edition, f_impression as impression, f_printing_books as printing_books, f_signed_quantity as signed_quantity, f_should_send as should_send, f_actual_send as actual_send, f_remark as remark, f_del_flag as del_flag, f_create_id as create_id, f_create_time as create_time, f_create_name as create_name, f_should_up_number as should_up_number, f_already_up_number as already_up_number, f_listing_time as listing_time, f_listing_id as listing_id, f_listing_name as listing_name, f_listing_status as listing_status, f_listing_status_name as listing_status_name @@ -240,6 +240,6 @@ id,type,main_status,main_status_name,package_situation,package_situation_name,qu diff --git a/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TRemovalManagementMapper.xml b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TRemovalManagementMapper.xml new file mode 100644 index 0000000..799e137 --- /dev/null +++ b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TRemovalManagementMapper.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + f_id as id, f_save_type as save_type, f_type as type, f_main_status as main_status, f_main_status_name as main_status_name, f_remove_number as remove_number, f_del_flag as del_flag, f_create_id as create_id, f_create_time as create_time, f_create_name as create_name, f_update_id as update_id, f_update_time as update_time, f_update_name as update_name, f_book_removal_time as book_removal_time, f_book_removal_id as book_removal_id, f_book_removal_name as book_removal_name, f_create_corp_name as create_corp_name, f_create_corp_id as create_corp_id, f_create_dept_name as create_dept_name, f_create_dept_id as create_dept_id + + + diff --git a/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TSelectionOrderingBooksMapper.xml b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TSelectionOrderingBooksMapper.xml index 1b3da33..53d5bf5 100644 --- a/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TSelectionOrderingBooksMapper.xml +++ b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TSelectionOrderingBooksMapper.xml @@ -25,78 +25,78 @@ - id,book_number,relation_id,cover_image,book_name,author,price,edition,impression,publication_time,content_summary,remark,quantity,variety_number,problem_flag,del_flag,create_id,create_time,create_name,self_reserved + f_id as id, f_book_number as book_number, f_relation_id as relation_id, f_cover_image as cover_image, f_book_name as book_name, f_author as author, f_price as price, f_edition as edition, f_impression as impression, f_publication_time as publication_time, f_self_reserved as self_reserved, f_content_summary as content_summary, f_remark as remark, f_quantity as quantity, f_variety_number as variety_number, f_problem_flag as problem_flag, f_del_flag as del_flag, f_create_id as create_id, f_create_time as create_time, f_create_name as create_name, f_book_removal_time as book_removal_time, f_book_removal_id as book_removal_id, f_book_removal_name as book_removal_name, f_book_removal_status as book_removal_status, f_book_removal_status_name as book_removal_status_name, f_rack_number as rack_number, f_book_inventory_id as book_inventory_id, f_inventory_number as inventory_number @@ -123,12 +123,19 @@ + + + + + + + - ID,source_id,target_id,type,ext + f_ID as id,f_source_id as source_id,f_target_id as target_id,f_type as type,f_ext as ext @@ -139,7 +146,7 @@ @@ -148,9 +155,23 @@ from t_selection_ordering_books - del_flag='0' + f_del_flag='0' - and relation_id in + and f_relation_id in + + #{item} + + + + + select - id,type,main_status,main_status_name,remark,del_flag,order_person_id,order_person_time,order_person_name,create_id,create_time,create_name,update_id,update_time,update_name,create_corp_name,create_dept_name + f_id as id, f_type as type, f_main_status as main_status, f_main_status_name as main_status_name, f_remark as remark, f_del_flag as del_flag, f_order_person_id as order_person_id, f_order_person_tim as order_person_tim, f_order_person_nam as order_person_nam, f_create_id as create_id, f_create_time as create_time, f_create_name as create_name, f_update_id as update_id, f_update_time as update_time, f_update_name as update_name, f_create_corp_name as create_corp_name, f_create_corp_id as create_corp_id, f_create_dept_name as create_dept_name, f_create_dept_id as create_dept_id from t_selection_ordering_main - and id = #{params.id} + and f_id = #{params.id} - and type = #{params.type} + and f_type = #{params.type} - and main_status = #{params.mainStatus} + and f_main_status = #{params.mainStatus} - and main_status_name = #{params.mainStatusName} + and f_main_status_name = #{params.mainStatusName} - and remark = #{params.remark} + and f_remark = #{params.remark} - and del_flag = #{params.delFlag} + and f_del_flag = #{params.delFlag} - and order_person_id = #{params.orderPersonId} + and f_order_person_id = #{params.orderPersonId} - and order_person_time = #{params.orderPersonTime} + and f_order_person_time = #{params.orderPersonTime} - and order_person_name = #{params.orderPersonName} + and f_order_person_name = #{params.orderPersonName} - and create_id = #{params.createId} + and f_create_id = #{params.createId} - and create_time = #{params.createTime} + and f_create_time = #{params.createTime} - and create_name = #{params.createName} + and f_create_name = #{params.createName} - and update_id = #{params.updateId} + and f_update_id = #{params.updateId} - and update_time = #{params.updateTime} + and f_update_time = #{params.updateTime} - and update_name = #{params.updateName} + and f_update_name = #{params.updateName} - and create_corp_name = #{params.createCorpName} + and f_create_corp_name = #{params.createCorpName} - and create_dept_name = #{params.createDeptName} + and f_create_dept_name = #{params.createDeptName} - and create_time >= #{params.createTimes[0]} - and create_time <= #{params.createTimes[1]} + and f_create_time >= #{params.createTimes[0]} + and f_create_time <= #{params.createTimes[1]} - and update_time >= #{params.updateTimes[0]} - and update_time <= #{params.updateTimes[1]} + and f_update_time >= #{params.updateTimes[0]} + and f_update_time <= #{params.updateTimes[1]} @@ -113,6 +114,7 @@ + @@ -135,8 +137,8 @@ - + + @@ -169,7 +171,7 @@ - ID,source_id,target_id,type,ext + f_ID as id,f_source_id as source_id,f_target_id as target_id,f_type as type,f_ext as ext @@ -182,21 +184,21 @@ - id,book_number,relation_id,cover_image,book_name,author,price,edition,impression,publication_time,content_summary,remark,quantity,variety_number,problem_flag,del_flag,create_id,create_time,create_name,self_reserved + f_id as id, f_book_number as book_number, f_relation_id as relation_id, f_cover_image as cover_image, f_book_name as book_name, f_author as author, f_price as price, f_edition as edition, f_impression as impression, f_publication_time as publication_time, f_self_reserved as self_reserved, f_content_summary as content_summary, f_remark as remark, f_quantity as quantity, f_variety_number as variety_number, f_problem_flag as problem_flag, f_del_flag as del_flag, f_create_id as create_id, f_create_time as create_time, f_create_name as create_name, f_book_removal_time as book_removal_time, f_book_removal_id as book_removal_id, f_book_removal_name as book_removal_name, f_book_removal_status as book_removal_status, f_book_removal_status_name as book_removal_status_name, f_rack_number as rack_number, f_book_inventory_id as book_inventory_id, f_inventory_number as inventory_number @@ -205,29 +207,35 @@ @@ -235,6 +243,26 @@ resultMap="OrderingInfoMap"> select - from t_selection_ordering_main where id = #{id} and del_flag='0' + from t_selection_ordering_main where f_id = #{id} and f_del_flag='0' + + + + + + + + + + + + + diff --git a/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TShelfOperationMapper.xml b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TShelfOperationMapper.xml new file mode 100644 index 0000000..a540461 --- /dev/null +++ b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TShelfOperationMapper.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + f_id as id, f_save_type as save_type, f_type as type, f_book_inventory_id as book_inventory_id, f_operation_type as operation_type, f_operation_type_name as operation_type_name, f_listing_number as listing_number, f_remove_number as remove_number, f_del_flag as del_flag, f_create_id as create_id, f_create_time as create_time, f_create_name as create_name, f_update_id as update_id, f_update_time as update_time, f_update_name as update_name, f_create_corp_name as create_corp_name, f_create_corp_id as create_corp_id, f_create_dept_name as create_dept_name, f_create_dept_id as create_dept_id + + + diff --git a/jnpf-library/jnpf-library-controller/src/main/java/jnpf/controller/ReceiveGoodsMainController.java b/jnpf-library/jnpf-library-controller/src/main/java/jnpf/controller/ReceiveGoodsMainController.java index 7db7e8f..f0a9337 100644 --- a/jnpf-library/jnpf-library-controller/src/main/java/jnpf/controller/ReceiveGoodsMainController.java +++ b/jnpf-library/jnpf-library-controller/src/main/java/jnpf/controller/ReceiveGoodsMainController.java @@ -2,6 +2,9 @@ package jnpf.controller; import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.qrcode.QrCodeUtil; +import cn.xuyanwu.spring.file.storage.FileInfo; +import cn.xuyanwu.spring.file.storage.MockMultipartFile; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; @@ -9,6 +12,9 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jnpf.base.ActionResult; import jnpf.base.Page; +import jnpf.base.entity.DictionaryDataEntity; +import jnpf.base.vo.DownloadVO; +import jnpf.constant.FileTypeConstant; import jnpf.constant.MsgCode; import jnpf.entity.TLibrary; import jnpf.exception.DataException; @@ -18,6 +24,7 @@ import jnpf.service.TReceiveGoodsMainService; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.io.ByteArrayOutputStream; import java.util.List; import java.util.Optional; @@ -60,7 +67,7 @@ public class ReceiveGoodsMainController { @Operation(summary = "通过图书编号查询图书基本信息-(拆包扫图书条码)") @GetMapping("getBunchingInfoByBookNumber") - public ActionResult getBunchingInfoByBookNumber(@ApiParam("图书编号") @RequestParam String bookNumber) { + public ActionResult getBunchingInfoByBookNumber(@ApiParam("图书编号") @RequestParam String bookNumber) { if (StrUtil.isBlank(bookNumber)) { throw new DataException("请输入图书编号"); } @@ -75,10 +82,14 @@ public class ReceiveGoodsMainController { return ActionResult.success(); } + @Operation(summary = "根据收货单id获取跳转二维码") + @GetMapping("getQrByReceiptId") + public ActionResult getQrByReceiptId(@ApiParam("收货单id") @RequestParam Long id) { + return ActionResult.success(tReceiveGoodsMainService.getQrByReceiptId(id)); + } // 分堆 - @Operation(summary = "根据选书id查询分堆信息(根据验收类型:1-业务部 2-版本馆 3-样书室)") @GetMapping("getStackingInformation") public ActionResult> getStackingInformation(@ApiParam("选书id") @RequestParam Long id, @ApiParam("验收类型:1-业务部 2-版本馆 3-样书室") @RequestParam String orderType) { @@ -105,6 +116,13 @@ public class ReceiveGoodsMainController { //h5上架使用 + @Operation(summary = "h5页面上架接口") + @PostMapping("h5ShelfInterface") + public ActionResult h5ShelfInterface(@RequestBody ReceiveGoodsMainDto.H5ShelfInterfaceParam param) { + tReceiveGoodsMainService.h5ShelfInterface(param); + + return ActionResult.success(); + } diff --git a/jnpf-library/jnpf-library-controller/src/main/java/jnpf/controller/RemovalManagementController.java b/jnpf-library/jnpf-library-controller/src/main/java/jnpf/controller/RemovalManagementController.java new file mode 100644 index 0000000..1ee8a4e --- /dev/null +++ b/jnpf-library/jnpf-library-controller/src/main/java/jnpf/controller/RemovalManagementController.java @@ -0,0 +1,43 @@ +package jnpf.controller; + + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jnpf.base.ActionResult; +import jnpf.base.vo.DownloadVO; +import jnpf.constant.MsgCode; +import jnpf.exception.DataException; +import jnpf.model.dto.ReceiveGoodsMainDto; +import jnpf.service.ILibraryService; +import jnpf.service.TReceiveGoodsMainService; +import jnpf.service.TRemovalManagementService; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@Api("下架管理") +@Tag(name = "下架管理", description = "removalManagement") +@RequestMapping("/removalManagement") +@AllArgsConstructor +public class RemovalManagementController { + private final TRemovalManagementService tRemovalManagementService; + + +// @Operation(summary = "下架单新建") +// @PostMapping("addRemoval") +// public ActionResult addRemoval(@RequestBody ReceiveGoodsMainDto.NewReceiptParam param) { +// return ActionResult.success(MsgCode.SU000.get(),tReceiveGoodsMainService.newReceipt(param)); +// } + + + + + + +} diff --git a/jnpf-library/jnpf-library-controller/src/main/java/jnpf/controller/SelectionOrderingMainController.java b/jnpf-library/jnpf-library-controller/src/main/java/jnpf/controller/SelectionOrderingMainController.java index 1e47dd7..17c1cf3 100644 --- a/jnpf-library/jnpf-library-controller/src/main/java/jnpf/controller/SelectionOrderingMainController.java +++ b/jnpf-library/jnpf-library-controller/src/main/java/jnpf/controller/SelectionOrderingMainController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.ApiParam; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jnpf.base.ActionResult; +import jnpf.base.Page; import jnpf.base.vo.DownloadVO; import jnpf.entity.TLibrary; import jnpf.entity.TSelectionOrderingBooks; @@ -50,19 +51,77 @@ public class SelectionOrderingMainController { @Operation(summary = "根据id查询选品详情") @GetMapping("getInfoById") public ActionResult getInfoById(@RequestParam("选品单号") Long id, @ApiParam("是否查询其他部门选品下单即汇总") @RequestParam(required = false) Boolean queryOther) { - return ActionResult.success(tSelectionOrderingMainService.getInfoById(id,queryOther)); + return ActionResult.success(tSelectionOrderingMainService.getInfoById(id, queryOther)); } + + @Operation(summary = "根据选品id分页查询选书列表") + @PostMapping("pageSelectedBooks") + public ActionResult> pageSelectedBooks(@RequestBody SelectionOrderingMainDto.PageSelectedBooks param) { + return ActionResult.success(tSelectionOrderingMainService.pageSelectedBooks(param)); + } + + //样书库统一查询接口 + + @Operation(summary = "汇总查询业务部/版本馆选书列表") + @PostMapping("aggregateQuery") + public ActionResult> aggregateQuery(@RequestBody SelectionOrderingMainDto.AggregateQuery param) { + return ActionResult.success(tSelectionOrderingMainService.aggregateQuery(param)); + } + + @Operation(summary = "删除") @PostMapping("/delete") public ActionResult delete(@RequestParam String id) { - tSelectionOrderingMainService.delete(id,true); + tSelectionOrderingMainService.delete(id, true); return ActionResult.success(); } + @Operation(summary = "查询图书列表") @PostMapping("getLibraryList") public ActionResult> getLibraryList(@RequestBody SelectionOrderingMainDto.GetLibraryListParam param) { return ActionResult.success(libraryService.getLibraryList(param)); } + + //重点书接口 + @Operation(summary = "社长选书") + @PostMapping("/presidentSelection") + public ActionResult presidentSelection(@RequestBody SelectionOrderingMainDto.PresidentSelectionParam param) { + tSelectionOrderingMainService.presidentSelection(param); + return ActionResult.success(); + } + + + @Operation(summary = "分页查询社长所选图书") + @PostMapping("/queryBooksFromPresident") + public ActionResult> queryBooksFromPresident(@RequestBody SelectionOrderingMainDto.QueryBooksFromPresident param) { + return ActionResult.success(tSelectionOrderingMainService.queryBooksFromPresident(param)); + } + + + //领导选书接口 + + @Operation(summary = "领导查询所有待选书列表") + @GetMapping("/queryOrderingListForLeader") + public ActionResult> queryOrderingListForLeader() { + return ActionResult.success(tSelectionOrderingMainService.queryOrderingListForLeader()); + } + + + @Operation(summary = "领导选书") + @PostMapping("/leaderSelection") + public ActionResult leaderSelection(@RequestBody SelectionOrderingMainDto.PresidentSelectionParam param) { + tSelectionOrderingMainService.leaderSelection(param); + return ActionResult.success(); + } + + + @Operation(summary = "查询领导所选图书") + @PostMapping("/queryBooksFromLeader") + public ActionResult> queryBooksFromLeader(@RequestBody SelectionOrderingMainDto.QueryBooksFromPresident param) { + return ActionResult.success(tSelectionOrderingMainService.queryBooksFromLeader(param)); + } + + } diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TBookGoWhere.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TBookGoWhere.java index 036ae2e..c92fcad 100644 --- a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TBookGoWhere.java +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TBookGoWhere.java @@ -23,90 +23,90 @@ public class TBookGoWhere implements Serializable { private static final long serialVersionUID = -65167281438767901L; - @TableId(type = IdType.ASSIGN_ID) + @TableId(value = "f_id",type = IdType.ASSIGN_ID) private Long id; @ApiModelProperty(value = "图书编号") - @TableField(value = "book_number") + @TableField(value = "f_book_number") private String bookNumber; @ApiModelProperty(value = "去向名称") - @TableField(value = "target_name") + @TableField(value = "f_target_name") private String targetName; @ApiModelProperty(value = "收货单信息类型:1-业务部 2-版本馆 3-样书室") - @TableField(value = "order_type") + @TableField(value = "f_order_type") private String orderType; @ApiModelProperty(value = "0-初始化去向 1-签收保存去向(用于区分数据来源)") - @TableField(value = "type") + @TableField(value = "f_type") private String type; @ApiModelProperty(value = "业务关联id") - @TableField(value = "relation_id") + @TableField(value = "f_relation_id") private String relationId; @ApiModelProperty(value = "应送数量") - @TableField(value = "should_send") + @TableField(value = "f_should_send") private Integer shouldSend; @ApiModelProperty(value = "实送数量") - @TableField(value = "actual_send") + @TableField(value = "f_actual_send") private Integer actualSend; @ApiModelProperty(value = "入库标记 0-未入库 1-已入库") - @TableField(value = "warehouse_entry_flag") + @TableField(value = "f_warehouse_entry_flag") private String warehouseEntryFlag; @ApiModelProperty(value = "删除标记0-正常 1-删除") - @TableField(value = "del_flag") + @TableField(value = "f_del_flag") @TableLogic private String delFlag; @ApiModelProperty(value = "创建者id") - @TableField(value = "create_by") + @TableField(value = "f_create_by") private String createBy; @ApiModelProperty(value = "创建者名称") - @TableField(value = "create_name") + @TableField(value = "f_create_name") private String createName; @ApiModelProperty(value = "创建时间") - @TableField(value = "create_time",fill = FieldFill.INSERT) + @TableField(value = "f_create_time",fill = FieldFill.INSERT) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; @ApiModelProperty(value = "更新者id") - @TableField(value = "update_by") + @TableField(value = "f_update_by") private String updateBy; @ApiModelProperty(value = "更新者名称") - @TableField(value = "update_name") + @TableField(value = "f_update_name") private String updateName; @ApiModelProperty(value = "修改时间") - @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE) + @TableField(value = "f_update_time",fill = FieldFill.INSERT_UPDATE) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; @ApiModelProperty(value = "创建人单位名称") - @TableField(value = "create_corp_name") + @TableField(value = "f_create_corp_name") private String createCorpName; @ApiModelProperty(value = "创建人单位id") - @TableField(value = "create_corp_id") + @TableField(value = "f_create_corp_id") private String createCorpId; @ApiModelProperty(value = "创建人部门名称") - @TableField(value = "create_dept_name") + @TableField(value = "f_create_dept_name") private String createDeptName; @ApiModelProperty(value = "创建人部门id") - @TableField(value = "create_dept_id") + @TableField(value = "f_create_dept_id") private String createDeptId; } diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TBookInventory.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TBookInventory.java new file mode 100644 index 0000000..b2accd8 --- /dev/null +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TBookInventory.java @@ -0,0 +1,137 @@ +package jnpf.entity; + + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import org.springframework.format.annotation.DateTimeFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.time.LocalDateTime; + +/** + * 图书库存表(TBookInventory) + * + * @author common + * @since 2024-10-29 15:58:48 + */ +@Data +@TableName("t_book_inventory") +public class TBookInventory implements Serializable { + + private static final long serialVersionUID = 284208972835688225L; + + @ApiModelProperty(value = "雪花id") + @TableId(value = "f_id", type = IdType.ASSIGN_ID) + private Long id; + + @ApiModelProperty(value = "类型:1-业务部 2-版本馆 3-样书室") + @TableField(value = "f_type") + private String type; + + @ApiModelProperty(value = "图书编号") + @TableField(value = "f_book_number") + private String bookNumber; + + @ApiModelProperty(value = "图书名称") + @TableField(value = "f_book_name") + private String bookName; + + @ApiModelProperty(value = "作者") + @TableField(value = "f_author") + private String author; + + @ApiModelProperty(value = "架位号") + @TableField(value = "f_rack_number") + private String rackNumber; + + @ApiModelProperty(value = "封面图链接") + @TableField(value = "f_cover_image") + private String coverImage; + + @ApiModelProperty(value = "定价") + @TableField(value = "f_price") + private String price; + + @ApiModelProperty(value = "版次") + @TableField(value = "f_edition") + private String edition; + + @ApiModelProperty(value = "印次") + @TableField(value = "f_impression") + private String impression; + + @ApiModelProperty(value = "出版时间") + @TableField(value = "f_publication_time") + private String publicationTime; + + @ApiModelProperty(value = "内容概要") + @TableField(value = "f_content_summary") + private String contentSummary; + + @ApiModelProperty(value = "备注") + @TableField(value = "f_remark") + private String remark; + + @ApiModelProperty(value = "图书数量(该架位库存)") + @TableField(value = "f_quantity") + private Integer quantity; + + @ApiModelProperty(value = "品种号") + @TableField(value = "f_variety_number") + private String varietyNumber; + + @ApiModelProperty(value = "删除标记 0-正常 1-删除") + @TableField(value = "f_del_flag") + @TableLogic + private String delFlag; + + @ApiModelProperty(value = "创建人id") + @TableField(value = "f_create_id") + private String createId; + + @ApiModelProperty(value = "创建时间") + @TableField(value = "f_create_time",fill = FieldFill.INSERT) + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ApiModelProperty(value = "创建人姓名") + @TableField(value = "f_create_name") + private String createName; + + @ApiModelProperty(value = "更新人id") + @TableField(value = "f_update_id") + private String updateId; + + @ApiModelProperty(value = "更新时间") + @TableField(value = "f_update_time",fill = FieldFill.INSERT_UPDATE) + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "更新人名称") + @TableField(value = "f_update_name") + private String updateName; + + @ApiModelProperty(value = "创建人单位名称") + @TableField(value = "f_create_corp_name") + private String createCorpName; + + @ApiModelProperty(value = "创建人单位id") + @TableField(value = "f_create_corp_id") + private String createCorpId; + + @ApiModelProperty(value = "创建人部门名称") + @TableField(value = "f_create_dept_name") + private String createDeptName; + + @ApiModelProperty(value = "创建人部门id") + @TableField(value = "f_create_dept_id") + private String createDeptId; +} + + + diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TCommonRelation.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TCommonRelation.java index 8637853..273fbfd 100644 --- a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TCommonRelation.java +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TCommonRelation.java @@ -23,49 +23,49 @@ public class TCommonRelation implements Serializable { private static final long serialVersionUID = -30379046900422387L; - @TableId(type = IdType.ASSIGN_ID) + @TableId(value = "f_id", type = IdType.ASSIGN_ID) private Long id; @ApiModelProperty(value = "当前ID") - @TableField(value = "source_id") + @TableField(value = "f_source_id") private String sourceId; @ApiModelProperty(value = "关联ID") - @TableField(value = "target_id") + @TableField(value = "f_target_id") private String targetId; @ApiModelProperty(value = "关系名称") - @TableField(value = "type") + @TableField(value = "f_type") private String type; @ApiModelProperty(value = "扩展") - @TableField(value = "ext") + @TableField(value = "f_ext") private String ext; @ApiModelProperty(value = "创建者id") - @TableField(value = "create_by") + @TableField(value = "f_create_by") private String createBy; @ApiModelProperty(value = "创建者名称") - @TableField(value = "create_name") + @TableField(value = "f_create_name") private String createName; @ApiModelProperty(value = "创建时间") - @TableField(value = "create_time",fill = FieldFill.INSERT) + @TableField(value = "f_create_time",fill = FieldFill.INSERT) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; @ApiModelProperty(value = "更新者id") - @TableField(value = "update_by") + @TableField(value = "f_update_by") private String updateBy; @ApiModelProperty(value = "更新者名称") - @TableField(value = "update_name") + @TableField(value = "f_update_name") private String updateName; @ApiModelProperty(value = "修改时间") - @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE) + @TableField(value = "f_update_time",fill = FieldFill.INSERT_UPDATE) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TReceiveGoodsBooks.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TReceiveGoodsBooks.java index e7edd74..e981671 100644 --- a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TReceiveGoodsBooks.java +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TReceiveGoodsBooks.java @@ -24,71 +24,122 @@ public class TReceiveGoodsBooks implements Serializable { private static final long serialVersionUID = 303124868700431426L; @ApiModelProperty(value = "雪花id") - @TableId(type = IdType.ASSIGN_ID) + @TableId(value = "f_id", type = IdType.ASSIGN_ID) private Long id; + @ApiModelProperty(value = "上架状态 0-待上架 1-上架中 2-已上架") + @TableField(value = "f_listing_status") + private String listingStatus; + + + @ApiModelProperty(value = "上架状态名称") + @TableField(value = "f_listing_status_name") + private String listingStatusName; + @ApiModelProperty(value = "图书编号") - @TableField(value = "book_number") + @TableField(value = "f_book_number") private String bookNumber; @ApiModelProperty(value = "关联收货单id") - @TableField(value = "relation_id") + @TableField(value = "f_relation_id") private String relationId; @ApiModelProperty(value = "封面图链接") - @TableField(value = "cover_image") + @TableField(value = "f_cover_image") private String coverImage; @ApiModelProperty(value = "图书名称") - @TableField(value = "book_name") + @TableField(value = "f_book_name") private String bookName; + @ApiModelProperty(value = "架位号") + @TableField(value = "f_rack_number") + private String rackNumber; + + @ApiModelProperty(value = "作者") + @TableField(value = "f_author") + private String author; + @ApiModelProperty(value = "定价") - @TableField(value = "price") + @TableField(value = "f_price") private String price; + @ApiModelProperty(value = "版次") + @TableField(value = "f_edition") + private String edition; + + @ApiModelProperty(value = "印次") + @TableField(value = "f_impression") + private String impression; + @ApiModelProperty(value = "出版社") - @TableField(value = "press") + @TableField(value = "f_press") private String press; @ApiModelProperty(value = "下印册书") - @TableField(value = "printing_books") + @TableField(value = "f_printing_books") private Integer printingBooks; @ApiModelProperty(value = "签收数量") - @TableField(value = "signed_quantity") + @TableField(value = "f_signed_quantity") private Integer signedQuantity; @ApiModelProperty(value = "应送数量") - @TableField(value = "should_send") + @TableField(value = "f_should_send") private Integer shouldSend; + + @ApiModelProperty(value = "应上架数") + @TableField(value = "f_should_up_number") + private Integer shouldUpNumber; + + + @ApiModelProperty(value = "已上架数-(h5上架使用)") + @TableField(value = "f_already_up_number") + private Integer alreadyUpNumber; + @ApiModelProperty(value = "实发数量") - @TableField(value = "actual_send") + @TableField(value = "f_actual_send") private Integer actualSend; @ApiModelProperty(value = "备注") - @TableField(value = "remark") + @TableField(value = "f_remark") private String remark; @ApiModelProperty(value = "删除标记 0-正常 1-删除") - @TableField(value = "del_flag") + @TableField(value = "f_del_flag") @TableLogic private String delFlag; @ApiModelProperty(value = "创建人id") - @TableField(value = "create_id") + @TableField(value = "f_create_id") private String createId; @ApiModelProperty(value = "创建时间") - @TableField(value = "create_time",fill = FieldFill.INSERT) + @TableField(value = "f_create_time",fill = FieldFill.INSERT) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; @ApiModelProperty(value = "创建人姓名") - @TableField(value = "create_name") + @TableField(value = "f_create_name") private String createName; + + + + @ApiModelProperty(value = "上架人id") + @TableField(value = "f_listing_id") + private String listingId; + + @ApiModelProperty(value = "上架时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "f_listing_time") + private LocalDateTime listingTime; + + @ApiModelProperty(value = "上架人名称") + @TableField(value = "f_listing_name") + private String listingName; } diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TReceiveGoodsMain.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TReceiveGoodsMain.java index 7a5f824..c31ab27 100644 --- a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TReceiveGoodsMain.java +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TReceiveGoodsMain.java @@ -24,122 +24,122 @@ public class TReceiveGoodsMain implements Serializable { private static final long serialVersionUID = -91550320791470574L; @ApiModelProperty(value = "主键id(雪花id)") - @TableId(type = IdType.ASSIGN_ID) + @TableId(value = "f_id", type = IdType.ASSIGN_ID) private String id; @ApiModelProperty(value = "收货单编号") - @TableField(value = "receipt_number") + @TableField(value = "f_receipt_number") private String receiptNumber; @ApiModelProperty(value = "收货单信息类型:1-业务部 2-版本馆 3-样书室") - @TableField(value = "type") + @TableField(value = "f_type") private String type; @ApiModelProperty(value = "主状态 1-待签收 2-待分堆 3-上架中 4-已上架") - @TableField(value = "main_status") + @TableField(value = "f_main_status") private String mainStatus; @ApiModelProperty(value = "主状态名称") - @TableField(value = "main_status_name") + @TableField(value = "f_main_status_name") private String mainStatusName; @ApiModelProperty(value = "包件情况-code") - @TableField(value = "package_situation") + @TableField(value = "f_package_situation") private String packageSituation; @ApiModelProperty(value = "包件情况-名称") - @TableField(value = "package_situation_name") + @TableField(value = "f_package_situation_name") private String packageSituationName; @ApiModelProperty(value = "收货数量") - @TableField(value = "quantity_received") + @TableField(value = "f_quantity_received") private Integer quantityReceived; @ApiModelProperty(value = "包件数量") - @TableField(value = "package_quantity") + @TableField(value = "f_package_quantity") private Integer packageQuantity; @ApiModelProperty(value = "送货方") - @TableField(value = "delivery_party") + @TableField(value = "f_delivery_party") private String deliveryParty; @ApiModelProperty(value = "备注") - @TableField(value = "remark") + @TableField(value = "f_remark") private String remark; @ApiModelProperty(value = "上架二维码链接") - @TableField(value = "listing_qr_code") + @TableField(value = "f_listing_qr_code") private String listingQrCode; @ApiModelProperty(value = "删除标记 0-正常 1-删除") - @TableField(value = "del_flag") + @TableField(value = "f_del_flag") @TableLogic private String delFlag; @ApiModelProperty(value = "收货时间") - @TableField(value = "receive_time") + @TableField(value = "f_receive_time") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime receiveTime; @ApiModelProperty(value = "签收人id") - @TableField(value = "sign_person_id") + @TableField(value = "f_sign_person_id") private String signPersonId; @ApiModelProperty(value = "签收人日期") - @TableField(value = "sign_person_time") + @TableField(value = "f_sign_person_time") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDateTime signPersonTime; @ApiModelProperty(value = "签收人姓名") - @TableField(value = "sign_person_name") + @TableField(value = "f_sign_person_name") private String signPersonName; @ApiModelProperty(value = "创建人id") - @TableField(value = "create_id") + @TableField(value = "f_create_id") private String createId; @ApiModelProperty(value = "创建时间") - @TableField(value = "create_time",fill = FieldFill.INSERT) + @TableField(value = "f_create_time",fill = FieldFill.INSERT) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; @ApiModelProperty(value = "创建人姓名") - @TableField(value = "create_name") + @TableField(value = "f_create_name") private String createName; @ApiModelProperty(value = "更新人id") - @TableField(value = "update_id") + @TableField(value = "f_update_id") private String updateId; @ApiModelProperty(value = "更新时间") - @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE) + @TableField(value = "f_update_time",fill = FieldFill.INSERT_UPDATE) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; @ApiModelProperty(value = "更新人名称") - @TableField(value = "update_name") + @TableField(value = "f_update_name") private String updateName; @ApiModelProperty(value = "创建人单位名称") - @TableField(value = "create_corp_name") + @TableField(value = "f_create_corp_name") private String createCorpName; @ApiModelProperty(value = "创建人单位id") - @TableField(value = "create_corp_id") + @TableField(value = "f_create_corp_id") private String createCorpId; @ApiModelProperty(value = "创建人部门名称") - @TableField(value = "create_dept_name") + @TableField(value = "f_create_dept_name") private String createDeptName; @ApiModelProperty(value = "创建人部门id") - @TableField(value = "create_dept_id") + @TableField(value = "f_create_dept_id") private String createDeptId; } diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TRemovalManagement.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TRemovalManagement.java new file mode 100644 index 0000000..513980a --- /dev/null +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TRemovalManagement.java @@ -0,0 +1,114 @@ +package jnpf.entity; + + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import org.springframework.format.annotation.DateTimeFormat; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 下架管理表(TRemovalManagement) + * + * @author common + * @since 2024-11-06 17:52:46 + */ +@Data +@TableName("t_removal_management") +public class TRemovalManagement implements Serializable { + + private static final long serialVersionUID = -74824064073816987L; + + @ApiModelProperty(value = "下架单号") + @TableId(value = "f_id", type = IdType.ASSIGN_ID) + private String id; + + @ApiModelProperty(value = "类型:1-业务部 2-版本馆 3-样书室") + @TableField(value = "f_save_type") + private String saveType; + + @ApiModelProperty(value = "下架类型 0-领用下架 1-报损下架 2-重点书下架") + @TableField(value = "f_type") + private String type; + + @ApiModelProperty(value = "状态 0-待提交 1-待下架 2-下架中 3-已完成") + @TableField(value = "f_main_status") + private String mainStatus; + + @ApiModelProperty(value = "状态名称 0-待提交 1-待下架 2-下架中 3-已完成") + @TableField(value = "f_main_status_name") + private String mainStatusName; + + @ApiModelProperty(value = "下架册数") + @TableField(value = "f_remove_number") + private Integer removeNumber; + + @ApiModelProperty(value = "删除标记 0-正常 1-删除") + @TableField(value = "f_del_flag") + @TableLogic + private String delFlag; + + @ApiModelProperty(value = "创建人id") + @TableField(value = "f_create_id") + private String createId; + + @ApiModelProperty(value = "创建时间") + @TableField(value = "f_create_time",fill = FieldFill.INSERT) + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ApiModelProperty(value = "创建人姓名") + @TableField(value = "f_create_name") + private String createName; + + @ApiModelProperty(value = "更新人id") + @TableField(value = "f_update_id") + private String updateId; + + @ApiModelProperty(value = "更新时间") + @TableField(value = "f_update_time",fill = FieldFill.INSERT_UPDATE) + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "更新人名称") + @TableField(value = "f_update_name") + private String updateName; + + @ApiModelProperty(value = "下架时间") + @TableField(value = "f_book_removal_time") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime bookRemovalTime; + + @ApiModelProperty(value = "下架人id") + @TableField(value = "f_book_removal_id") + private String bookRemovalId; + + @ApiModelProperty(value = "下架人名称") + @TableField(value = "f_book_removal_name") + private String bookRemovalName; + + @ApiModelProperty(value = "创建人单位名称") + @TableField(value = "f_create_corp_name") + private String createCorpName; + + @ApiModelProperty(value = "创建人单位id") + @TableField(value = "f_create_corp_id") + private String createCorpId; + + @ApiModelProperty(value = "创建人部门名称") + @TableField(value = "f_create_dept_name") + private String createDeptName; + + @ApiModelProperty(value = "创建人部门id") + @TableField(value = "f_create_dept_id") + private String createDeptId; +} + + + diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TSelectionOrderingBooks.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TSelectionOrderingBooks.java index debf3e7..b4a22a2 100644 --- a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TSelectionOrderingBooks.java +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TSelectionOrderingBooks.java @@ -23,87 +23,126 @@ public class TSelectionOrderingBooks implements Serializable { private static final long serialVersionUID = -94497687642986775L; @ApiModelProperty(value = "雪花id") - @TableId(type = IdType.ASSIGN_ID) + @TableId(value = "f_id", type = IdType.ASSIGN_ID) private Long id; @ApiModelProperty(value = "图书编号") - @TableField(value = "book_number") + @TableField(value = "f_book_number") private String bookNumber; @ApiModelProperty(value = "关联选品下单id") - @TableField(value = "relation_id") + @TableField(value = "f_relation_id") private String relationId; @ApiModelProperty(value = "封面图链接") - @TableField(value = "cover_image") + @TableField(value = "f_cover_image") private String coverImage; @ApiModelProperty(value = "图书名称") - @TableField(value = "book_name") + @TableField(value = "f_book_name") private String bookName; @ApiModelProperty(value = "作者") - @TableField(value = "author") + @TableField(value = "f_author") private String author; @ApiModelProperty(value = "定价") - @TableField(value = "price") + @TableField(value = "f_price") private String price; @ApiModelProperty(value = "版次") - @TableField(value = "edition") + @TableField(value = "f_edition") private String edition; @ApiModelProperty(value = "印次") - @TableField(value = "impression") + @TableField(value = "f_impression") private String impression; @ApiModelProperty(value = "出版时间") - @TableField(value = "publication_time") + @TableField(value = "f_publication_time") private String publicationTime; @ApiModelProperty(value = "自预留数量") - @TableField(value = "self_reserved") - private Integer selfReserved=0; + @TableField(value = "f_self_reserved") + private Integer selfReserved = 0; @ApiModelProperty(value = "内容概要") - @TableField(value = "content_summary") + @TableField(value = "f_content_summary") private String contentSummary; @ApiModelProperty(value = "备注") - @TableField(value = "remark") + @TableField(value = "f_remark") private String remark; - @ApiModelProperty(value = "图书数量") - @TableField(value = "quantity") + @ApiModelProperty(value = "下单图书总数量") + @TableField(value = "f_quantity") private Integer quantity; @ApiModelProperty(value = "品种号") - @TableField(value = "variety_number") + @TableField(value = "f_variety_number") private String varietyNumber; @ApiModelProperty(value = "问题标记:0-正常 1-有问题") - @TableField(value = "problem_flag") + @TableField(value = "f_problem_flag") private String problemFlag; @ApiModelProperty(value = "删除标记 0-正常 1-删除") - @TableField(value = "del_flag") + @TableField(value = "f_del_flag") @TableLogic private String delFlag; @ApiModelProperty(value = "创建人id") - @TableField(value = "create_id") + @TableField(value = "f_create_id") private String createId; @ApiModelProperty(value = "创建时间") - @TableField(value = "create_time",fill = FieldFill.INSERT) + @TableField(value = "f_create_time", fill = FieldFill.INSERT) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; @ApiModelProperty(value = "创建人姓名") - @TableField(value = "create_name") + @TableField(value = "f_create_name") private String createName; + + + @ApiModelProperty(value = "重点书字段 图书下架人id") + @TableField(value = "f_book_removal_id") + private String bookRemovalId; + + @ApiModelProperty(value = "重点书字段 图书下架时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(value = "f_book_removal_time") + private LocalDateTime bookRemovalTime; + + @ApiModelProperty(value = "重点书字段 图书下架人名称") + @TableField(value = "f_book_removal_name") + private String bookRemovalName; + + + @ApiModelProperty(value = "重点书字段 图书下架状态 0-待下架 1-下架中 2-已下架") + @TableField(value = "f_book_removal_status") + private String bookRemovalStatus; + + + @ApiModelProperty(value = "重点书字段 图书下架状态名称") + @TableField(value = "f_book_removal_status_name") + private String bookRemovalStatusName; + + + @ApiModelProperty(value = "重点书字段 架位号") + @TableField(value = "f_rack_number") + private String rackNumber; + + @ApiModelProperty(value = "重点书字段 库存id") + @TableField(value = "f_book_inventory_id") + private String bookInventoryId; + + + @ApiModelProperty("图书库存数量") + @TableField(value = "f_inventory_number") + private Integer inventoryNumber; } diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TSelectionOrderingMain.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TSelectionOrderingMain.java index 60c4a1c..070fa65 100644 --- a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TSelectionOrderingMain.java +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TSelectionOrderingMain.java @@ -25,92 +25,92 @@ public class TSelectionOrderingMain implements Serializable { private static final long serialVersionUID = 656693836214828063L; @ApiModelProperty(value = "主键id(选品单号)") - @TableId(type = IdType.ASSIGN_ID) + @TableId(value = "f_id", type = IdType.ASSIGN_ID) @Excel(name = "选品单号",orderNum = "0",width = 15) private Long id; @ApiModelProperty(value = "下单类型:1-业务部 2-版本馆 3-样书室 4-重点书") - @TableField(value = "type") + @TableField(value = "f_type") private String type; @ApiModelProperty(value = "主状态 1-待提交 2-已下单 3-样书室待下单 4-待社长确认 5-已推荐") - @TableField(value = "main_status") + @TableField(value = "f_main_status") private String mainStatus; @ApiModelProperty(value = "主状态名称") - @TableField(value = "main_status_name") + @TableField(value = "f_main_status_name") @Excel(name = "状态",orderNum = "6",width = 15) private String mainStatusName; @ApiModelProperty(value = "备注") - @TableField(value = "remark") + @TableField(value = "f_remark") private String remark; @ApiModelProperty(value = "删除标记 0-正常 1-删除") - @TableField(value = "del_flag") + @TableField(value = "f_del_flag") @TableLogic private String delFlag; @ApiModelProperty(value = "下单人id") - @TableField(value = "order_person_id") + @TableField(value = "f_order_person_id") private String orderPersonId; @ApiModelProperty(value = "下单时间") - @TableField(value = "order_person_time") + @TableField(value = "f_order_person_time") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "下单时间",exportFormat = "yyyy-MM-dd HH:mm:ss",width = 20,orderNum = "4") private LocalDateTime orderPersonTime; @ApiModelProperty(value = "下单人姓名") - @TableField(value = "order_person_name") + @TableField(value = "f_order_person_name") @Excel(name = "创建人",orderNum = "5") private String orderPersonName; @ApiModelProperty(value = "创建人id") - @TableField(value = "create_id") + @TableField(value = "f_create_id") private String createId; @ApiModelProperty(value = "创建时间") - @TableField(value = "create_time",fill = FieldFill.INSERT) + @TableField(value = "f_create_time",fill = FieldFill.INSERT) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "创建时间",exportFormat = "yyyy-MM-dd HH:mm:ss",width = 20,orderNum = "2") private LocalDateTime createTime; @ApiModelProperty(value = "创建人姓名") - @TableField(value = "create_name") + @TableField(value = "f_create_name") @Excel(name = "创建人",orderNum = "3") private String createName; @ApiModelProperty(value = "更新人id") - @TableField(value = "update_id") + @TableField(value = "f_update_id") private String updateId; @ApiModelProperty(value = "更新时间") - @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE) + @TableField(value = "f_update_time",fill = FieldFill.INSERT_UPDATE) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; @ApiModelProperty(value = "更新人名称") - @TableField(value = "update_name") + @TableField(value = "f_update_name") private String updateName; @ApiModelProperty(value = "创建人单位名称") - @TableField(value = "create_corp_name") + @TableField(value = "f_create_corp_name") private String createCorpName; @ApiModelProperty(value = "创建人部门名称") - @TableField(value = "create_dept_name") + @TableField(value = "f_create_dept_name") private String createDeptName; @ApiModelProperty(value = "创建人单位id") - @TableField(value = "create_corp_id") + @TableField(value = "f_create_corp_id") private String createCorpId; @ApiModelProperty(value = "创建人部门id") - @TableField(value = "create_dept_id") + @TableField(value = "f_create_dept_id") private String createDeptId; } diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TShelfOperation.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TShelfOperation.java new file mode 100644 index 0000000..8d3f958 --- /dev/null +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/entity/TShelfOperation.java @@ -0,0 +1,110 @@ +package jnpf.entity; + + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import org.springframework.format.annotation.DateTimeFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.time.LocalDateTime; + +/** + * 上下架操作表(TShelfOperation) + * + * @author common + * @since 2024-10-29 15:58:48 + */ +@Data +@TableName("t_shelf_operation") +public class TShelfOperation implements Serializable { + + private static final long serialVersionUID = 664988134602037702L; + + @ApiModelProperty(value = "雪花id") + @TableId(value = "f_id", type = IdType.ASSIGN_ID) + private Long id; + + @ApiModelProperty(value = "类型:1-业务部 2-版本馆 3-样书室") + @TableField(value = "f_save_type") + private String saveType; + + + @ApiModelProperty(value = "类型 0-上架 1-下架") + @TableField(value = "f_type") + private String type; + + @ApiModelProperty(value = "库存id") + @TableField(value = "f_book_inventory_id") + private String bookInventoryId; + + @ApiModelProperty(value = "操作类型") + @TableField(value = "f_operation_type") + private String operationType; + + @ApiModelProperty(value = "操作类型名称") + @TableField(value = "f_operation_type_name") + private String operationTypeName; + + @ApiModelProperty(value = "上架册数") + @TableField(value = "f_listing_number") + private Integer listingNumber; + + @ApiModelProperty(value = "下架册数") + @TableField(value = "f_remove_number") + private Integer removeNumber; + + @ApiModelProperty(value = "删除标记 0-正常 1-删除") + @TableField(value = "f_del_flag") + @TableLogic + private String delFlag; + + @ApiModelProperty(value = "创建人id") + @TableField(value = "f_create_id") + private String createId; + + @ApiModelProperty(value = "创建时间") + @TableField(value = "f_create_time",fill = FieldFill.INSERT) + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ApiModelProperty(value = "创建人姓名") + @TableField(value = "f_create_name") + private String createName; + + @ApiModelProperty(value = "更新人id") + @TableField(value = "f_update_id") + private String updateId; + + @ApiModelProperty(value = "更新时间") + @TableField(value = "f_update_time",fill = FieldFill.INSERT_UPDATE) + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "更新人名称") + @TableField(value = "f_update_name") + private String updateName; + + @ApiModelProperty(value = "创建人单位名称") + @TableField(value = "f_create_corp_name") + private String createCorpName; + + @ApiModelProperty(value = "创建人单位id") + @TableField(value = "f_create_corp_id") + private String createCorpId; + + @ApiModelProperty(value = "创建人部门名称") + @TableField(value = "f_create_dept_name") + private String createDeptName; + + @ApiModelProperty(value = "创建人部门id") + @TableField(value = "f_create_dept_id") + private String createDeptId; +} + + + diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/enump/ReceiveGoodsMainEnum.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/enump/ReceiveGoodsMainEnum.java index 2031c7a..458f298 100644 --- a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/enump/ReceiveGoodsMainEnum.java +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/enump/ReceiveGoodsMainEnum.java @@ -38,7 +38,7 @@ public class ReceiveGoodsMainEnum { //签收类型:1-业务部 2-版本馆 3-样书室 4-重点书 @Getter public enum OrderTypeEnum { - BUSINESS_DEPARTMENT("1", "锐雯家"), + BUSINESS_DEPARTMENT("1", "业务部"), VERSION_LIBRARY("2", "版本馆"), SAMPLE_BOOKSTORE("3", "样书室"); @@ -86,4 +86,32 @@ public class ReceiveGoodsMainEnum { return null; } } + + + @Getter + public enum BookStatusEnum { + //公共 + PENDING_LISTING("0", "待上架"), + LISTING("1", "上架中"), + ALREADY_LISTED("2", "已上架"), + + ; + + private final String code; + private final String describe; + + BookStatusEnum(String code, String describe) { + this.code = code; + this.describe = describe; + } + + public static MainStatusEnum getEnumByCode(String code) { + for (MainStatusEnum enm : MainStatusEnum.values()) { + if (enm.getCode().equals(code)) { + return enm; + } + } + return null; + } + } } diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/enump/RemovalManagementEnum.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/enump/RemovalManagementEnum.java new file mode 100644 index 0000000..8b81ca9 --- /dev/null +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/enump/RemovalManagementEnum.java @@ -0,0 +1,53 @@ +package jnpf.enump; + +import lombok.Getter; + +public class RemovalManagementEnum { + + + // 1-待提交 2-已下单 3-样书室待下单 + @Getter + public enum MainStatusEnum { + //公共 + TO_BE_SUBMITTED("0", "待提交"), + TO_BE_TAKEN_DOWN("1", "待下架"), + TAKING_DOWN("2", "下架中"), + COMPLETED("3", "已完成"), + + ; + + private final String code; + private final String describe; + + MainStatusEnum(String code, String describe) { + this.code = code; + this.describe = describe; + } + } + + //下单类型:1-业务部 2-版本馆 3-样书室 4-重点书 + @Getter + public enum TypeEnum { + LY("0", "领用下架"), + BS("1", "报损下架"), + ZD("2", "重点书下架"), + ; + + private final String code; + private final String describe; + + TypeEnum(String code, String describe) { + this.code = code; + this.describe = describe; + } + + public static TypeEnum getEnumByCode(String code) { + for (TypeEnum enm : TypeEnum.values()) { + if (enm.getCode().equals(code)) { + return enm; + } + } + return null; + } + } +} diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/enump/ShelfOperationEnum.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/enump/ShelfOperationEnum.java new file mode 100644 index 0000000..c555c26 --- /dev/null +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/enump/ShelfOperationEnum.java @@ -0,0 +1,63 @@ +package jnpf.enump; + +import lombok.Getter; + +public class ShelfOperationEnum { + + + @Getter + public enum OperationTypeEnum { + //公共 + WAREHOUSE_ENTRY("1", "入库上架"), + COLLECTING("2", "领用下架"), + KEY_BOOKS("3", "重点书下架"), + REPORT_LOSS("4", "报损下架"), + FILL_THE_INVENTORY("5", "盘盈入库"), + INVENTORY_LOSS_OUT("6", "盘亏出库"), + + ; + + private final String code; + private final String describe; + + OperationTypeEnum(String code, String describe) { + this.code = code; + this.describe = describe; + } + + public static OperationTypeEnum getEnumByCode(String code) { + for (OperationTypeEnum enm : OperationTypeEnum.values()) { + if (enm.getCode().equals(code)) { + return enm; + } + } + return null; + } + } + + @Getter + public enum TypeEnum { + //公共 + LISTING("0", "上架"), + REMOVE_SHELVES("1", "下架"), + + ; + + private final String code; + private final String describe; + + TypeEnum(String code, String describe) { + this.code = code; + this.describe = describe; + } + + public static TypeEnum getEnumByCode(String code) { + for (TypeEnum enm : TypeEnum.values()) { + if (enm.getCode().equals(code)) { + return enm; + } + } + return null; + } + } +} diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/model/dto/ReceiveGoodsMainDto.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/model/dto/ReceiveGoodsMainDto.java index 491ead7..9d94092 100644 --- a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/model/dto/ReceiveGoodsMainDto.java +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/model/dto/ReceiveGoodsMainDto.java @@ -1,5 +1,6 @@ package jnpf.model.dto; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModelProperty; @@ -50,7 +51,6 @@ public class ReceiveGoodsMainDto { } - @Data public static class BasePageParam { @ApiModelProperty("当前页") @@ -60,7 +60,7 @@ public class ReceiveGoodsMainDto { } @Data - public static class GetReceiveGoodsListParam extends BasePageParam{ + public static class GetReceiveGoodsListParam extends BasePageParam { @ApiModelProperty("开始时间") private String startTime; @ApiModelProperty("结束时间") @@ -89,34 +89,45 @@ public class ReceiveGoodsMainDto { @Data - public static class TReceiveGoodsMainEntity extends TReceiveGoodsMain{ + public static class TReceiveGoodsMainEntity extends TReceiveGoodsMain { @ApiModelProperty("收货选书列表") private List receiveGoodsBookList; } + @Data + public static class TReceiveGoodsBooksEntity extends TReceiveGoodsBooks { + + @ApiModelProperty("图书库存数量") + private Integer inventoryNumber; + } @Data - public static class TReceiveGoodsBooksEntity extends TReceiveGoodsBooks{ + public static class TLibraryEntity extends TLibrary { + @ApiModelProperty("图书预警数量") + private Integer warningQuantity; } @Data - public static class GetBookListByIdParam extends BasePageParam{ + public static class GetBookListByIdParam extends BasePageParam { @ApiModelProperty("收货单id") private String id; + + @ApiModelProperty("类型:1-业务部 2-版本馆 3-样书室") + private String orderType; } @Data - public static class TBookGoWhereEntity extends TBookGoWhere{ + public static class TBookGoWhereEntity extends TBookGoWhere { } @Data - public static class SaveStackingInformationParam{ + public static class SaveStackingInformationParam { @ApiModelProperty("图书id") private String id; @ApiModelProperty("验收类型:1-业务部 2-版本馆 3-样书室") @@ -127,8 +138,9 @@ public class ReceiveGoodsMainDto { private List bookGoWhereList; } + @Data - public static class SaveStackingInformationByReceiveIdParam{ + public static class SaveStackingInformationByReceiveIdParam { @ApiModelProperty("1-保存 2-确定") private String saveType; @ApiModelProperty("id") @@ -139,11 +151,49 @@ public class ReceiveGoodsMainDto { } - @Data public static class BunchingInfo extends TReceiveGoodsBooks { @ApiModelProperty("签收数量") - private Integer signedQuantity=0; + private Integer signedQuantity = 0; + } + + + @Data + public static class H5ShelfInterfaceParam { + @ApiModelProperty("类型:1-业务部 2-版本馆 3-样书室") + private String type; + + + @ApiModelProperty("收货单id") + private String id; + + @ApiModelProperty("书号") + private String bookNumber; + + @ApiModelProperty("架位号") + private String rackNumber; + + + @ApiModelProperty("书名") + private String bookName; + + @ApiModelProperty(value = "定价") + private String price; + + @ApiModelProperty(value = "版次") + private String edition; + + @ApiModelProperty(value = "印次") + private String impression; + + + @ApiModelProperty(value = "上架册数") + private Integer listingNumber; + + @ApiModelProperty(value = "预警库存") + private Integer warningInventory; + + } diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/model/dto/RemovalManagementEnum.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/model/dto/RemovalManagementEnum.java new file mode 100644 index 0000000..739b7d7 --- /dev/null +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/model/dto/RemovalManagementEnum.java @@ -0,0 +1,48 @@ +package jnpf.model.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +public class RemovalManagementEnum { + @Data + public static class AddRemovalParam { + @ApiModelProperty("1-保存 2-验收") + private String saveType; + @ApiModelProperty("保存后提交时传入id") + private String id; + @ApiModelProperty("验收类型:1-业务部 2-版本馆 3-样书室") + private String orderType; + + @ApiModelProperty(value = "包件情况-code") + private String packageSituation; + + @ApiModelProperty(value = "包件数量") + private Integer packageQuantity; + + @ApiModelProperty(value = "送货方") + private String deliveryParty; + + + @ApiModelProperty(value = "收货时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime receiveTime; + + @ApiModelProperty("描述") + private String remark; + + + + @ApiModelProperty("后端使用(新增版本馆/业务部收货单)") + @JsonIgnore + private String receiptNumber; + + } + + +} diff --git a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/model/dto/SelectionOrderingMainDto.java b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/model/dto/SelectionOrderingMainDto.java index 9a99192..54a2d12 100644 --- a/jnpf-library/jnpf-library-entity/src/main/java/jnpf/model/dto/SelectionOrderingMainDto.java +++ b/jnpf-library/jnpf-library-entity/src/main/java/jnpf/model/dto/SelectionOrderingMainDto.java @@ -30,7 +30,7 @@ public class SelectionOrderingMainDto { @ApiModelProperty("描述") private String remark; @ApiModelProperty("选择图书列表") - private List selectionOrderingBooksList; + private List selectionOrderingBooksList; @ApiModelProperty(value = "批量去向信息(除了预自留)") @@ -41,6 +41,20 @@ public class SelectionOrderingMainDto { } + @Data + public static class TLibraryParam extends TLibrary { + + + @ApiModelProperty(value = "重点书字段 架位号") + @TableField(value = "rack_number") + private String rackNumber; + + @ApiModelProperty(value = "重点书字段 库存id") + @TableField(value = "book_inventory_id") + private String bookInventoryId; + + } + @Data public static class SelfReservedInfo { @ApiModelProperty("编号/id") @@ -87,6 +101,23 @@ public class SelectionOrderingMainDto { @ApiModelProperty("后端查询使用") @JsonIgnore private String userId; + + @ApiModelProperty("后端查询使用") + @JsonIgnore + private String corpId; + } + + @Data + public static class AggregateQuery extends BasePageParam { + @ApiModelProperty("类型:1-业务部 2-版本馆") + private String orderType; + } + + + @Data + public static class PageSelectedBooks extends BasePageParam { + @ApiModelProperty("选品id") + private Long id; } @@ -181,4 +212,50 @@ public class SelectionOrderingMainDto { @Data public static class GetLibraryListParam extends BasePageParam { } + + @Data + public static class QueryBooksFromPresident extends BasePageParam { + @ApiModelProperty("选品id") + private Long id; + } + + + + + @Data + public static class QueryOrderingListForLeaderResponse { + @ApiModelProperty("推荐书籍") + private String recommendBook; + + + @ApiModelProperty("推荐时间") + private String recommendTime; + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty(value = "推荐单位名称") + private String createCorpName; + + + @ApiModelProperty(value = "推荐单位名称") + private Boolean isSelected; + + @ApiModelProperty(value = "推荐时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + } + + @Data + public static class PresidentSelectionParam{ + + @ApiModelProperty("1-暂存 2-提交") + private String saveType; + @ApiModelProperty("社长/领导所选图书id") + private List bookId; + + @ApiModelProperty("重点书选品id") + private Long id; + } } diff --git a/jnpf-library/jnpf-library-server/src/main/java/jnpf/JnpfLibraryApplication.java b/jnpf-library/jnpf-library-server/src/main/java/jnpf/JnpfLibraryApplication.java index a86fc1f..db10d34 100644 --- a/jnpf-library/jnpf-library-server/src/main/java/jnpf/JnpfLibraryApplication.java +++ b/jnpf-library/jnpf-library-server/src/main/java/jnpf/JnpfLibraryApplication.java @@ -3,9 +3,11 @@ package jnpf; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @EnableFeignClients +@EnableScheduling public class JnpfLibraryApplication { public static void main(String[] args) {