diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TBookGoWhereMapper.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TBookGoWhereMapper.java index eec3074..1e666fa 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TBookGoWhereMapper.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TBookGoWhereMapper.java @@ -3,7 +3,10 @@ package jnpf.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import jnpf.entity.TBookGoWhere; import com.baomidou.mybatisplus.core.metadata.IPage; +import jnpf.model.dto.ReceiveGoodsMainDto; import org.apache.ibatis.annotations.Param; + +import java.util.List; import java.util.Map; /** * 图书去向表(TBookGoWhere)表数据库访问层 @@ -14,5 +17,8 @@ import java.util.Map; public interface TBookGoWhereMapper extends BaseMapper { IPage selectPage(IPage iPage, @Param("params") Map params); + List getStackingInformation(@Param("bookNumber") String bookNumber,@Param("corpId") String corpId); + + List getStackingInformationByRelationId(@Param("id") Long id); } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TReceiveGoodsBooksMapper.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TReceiveGoodsBooksMapper.java index c7dbd4c..8ec6c2a 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TReceiveGoodsBooksMapper.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TReceiveGoodsBooksMapper.java @@ -1,9 +1,13 @@ package jnpf.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jnpf.entity.TReceiveGoodsBooks; import com.baomidou.mybatisplus.core.metadata.IPage; +import jnpf.model.dto.ReceiveGoodsMainDto; import org.apache.ibatis.annotations.Param; + +import java.util.List; import java.util.Map; /** * 收货单选书信息表(TReceiveGoodsBooks)表数据库访问层 @@ -14,5 +18,6 @@ import java.util.Map; public interface TReceiveGoodsBooksMapper extends BaseMapper { IPage selectPage(IPage iPage, @Param("params") Map params); + IPage getBookListByRelationId(@Param("page") Page tReceiveGoodsBooksEntityPage, @Param("params") ReceiveGoodsMainDto.GetBookListByIdParam param); } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TReceiveGoodsMainMapper.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TReceiveGoodsMainMapper.java index 9d66c65..a8731ca 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TReceiveGoodsMainMapper.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TReceiveGoodsMainMapper.java @@ -1,8 +1,10 @@ package jnpf.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jnpf.entity.TReceiveGoodsMain; import com.baomidou.mybatisplus.core.metadata.IPage; +import jnpf.model.dto.ReceiveGoodsMainDto; import org.apache.ibatis.annotations.Param; import java.util.Map; /** @@ -14,5 +16,8 @@ import java.util.Map; public interface TReceiveGoodsMainMapper extends BaseMapper { IPage selectPage(IPage iPage, @Param("params") Map params); + IPage getReceiveGoodsList(@Param("page") Page objectPage, @Param("params") ReceiveGoodsMainDto.GetReceiveGoodsListParam param); + + ReceiveGoodsMainDto.TReceiveGoodsMainEntity getInfoById(@Param("id") String id); } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TBookGoWhereService.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TBookGoWhereService.java index c60a448..3618929 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TBookGoWhereService.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TBookGoWhereService.java @@ -3,6 +3,9 @@ package jnpf.service; import jnpf.entity.TBookGoWhere; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import jnpf.model.dto.ReceiveGoodsMainDto; + +import java.util.List; import java.util.Map; /** * 图书去向表(TBookGoWhere)表服务接口 @@ -12,5 +15,9 @@ import java.util.Map; */ public interface TBookGoWhereService extends IService { IPage selectPage(IPage iPage, Map params); + + List getStackingInformation(String bookNumber,String corpId); + + List getStackingInformationByRelationId(Long id); } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TReceiveGoodsBooksService.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TReceiveGoodsBooksService.java index e2d2e85..b282836 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TReceiveGoodsBooksService.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TReceiveGoodsBooksService.java @@ -3,6 +3,9 @@ package jnpf.service; import jnpf.entity.TReceiveGoodsBooks; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import jnpf.model.dto.ReceiveGoodsMainDto; + +import java.util.List; import java.util.Map; /** * 收货单选书信息表(TReceiveGoodsBooks)表服务接口 @@ -12,5 +15,7 @@ import java.util.Map; */ public interface TReceiveGoodsBooksService extends IService { IPage selectPage(IPage iPage, Map params); + + IPage getBookListByRelationId(ReceiveGoodsMainDto.GetBookListByIdParam param); } 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 b208a9e..f098a01 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 @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import jnpf.model.dto.ReceiveGoodsMainDto; +import java.util.List; import java.util.Map; /** * 收货信息主表(TReceiveGoodsMain)表服务接口 @@ -34,5 +35,48 @@ public interface TReceiveGoodsMainService extends IService { * @param checkUser 是否校验用户 用于后端操作 而非用户操作时使用 */ void delete(String id, boolean checkUser); + + /** + * 查询收货单列表 + * @param param + * @return + */ + IPage getReceiveGoodsList(ReceiveGoodsMainDto.GetReceiveGoodsListParam param); + + /** + * 根据id查询收货详情 + * @param id + * @return + */ + ReceiveGoodsMainDto.TReceiveGoodsMainEntity getInfoById(String id); + + /** + * 根据选书id查询分堆信息(根据验收类型:1-业务部 2-版本馆 3-样书室) + * @param id + * @param orderType + * @return + */ + List getStackingInformation(Long id,String orderType); + + /** + * 根据选图书id保存分堆设置 + * @param param + */ + void saveStackingInformation(ReceiveGoodsMainDto.SaveStackingInformationParam param); + + /** + * 根据收货id查询所签收图书列表 + * @param param + * @return + */ + IPage getBookListById(ReceiveGoodsMainDto.GetBookListByIdParam param); + + /** + * 收货单保存分堆信息 + * 说是保存/确认接口 保存什么也不做就好了 因为分堆信息都是根据图书id依次进行更改的 不会在这个接口做改动, + * 该接口只适用于确定按钮 且用于分发图书相关/生成版本馆及业务部的收货单 + * @param param + */ + void saveStackingInformationByReceiveId(ReceiveGoodsMainDto.SaveStackingInformationByReceiveIdParam param); } diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TBookGoWhereServiceImpl.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TBookGoWhereServiceImpl.java index c44eda6..afca657 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TBookGoWhereServiceImpl.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TBookGoWhereServiceImpl.java @@ -3,9 +3,13 @@ package jnpf.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jnpf.mapper.TBookGoWhereMapper; import jnpf.entity.TBookGoWhere; +import jnpf.model.dto.ReceiveGoodsMainDto; import jnpf.service.TBookGoWhereService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.Collections; +import java.util.List; import java.util.Map; /** * 图书去向表(TBookGoWhere)表服务实现类 @@ -20,4 +24,13 @@ public class TBookGoWhereServiceImpl extends ServiceImpl getStackingInformation(String bookNumber,String corpId) { + return this.baseMapper.getStackingInformation(bookNumber,corpId); + } + + @Override + public List getStackingInformationByRelationId(Long id) { + return this.baseMapper.getStackingInformationByRelationId(id); + } } 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 338fe31..ef176ed 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 @@ -1,11 +1,16 @@ package jnpf.service.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jnpf.mapper.TReceiveGoodsBooksMapper; import jnpf.entity.TReceiveGoodsBooks; +import jnpf.model.dto.ReceiveGoodsMainDto; import jnpf.service.TReceiveGoodsBooksService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.Collections; +import java.util.List; import java.util.Map; /** * 收货单选书信息表(TReceiveGoodsBooks)表服务实现类 @@ -20,4 +25,8 @@ public class TReceiveGoodsBooksServiceImpl extends ServiceImpl getBookListByRelationId(ReceiveGoodsMainDto.GetBookListByIdParam 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 6ed3a14..5dc8df4 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 @@ -4,14 +4,21 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import cn.hutool.extra.qrcode.QrCodeUtil; +import cn.xuyanwu.spring.file.storage.FileInfo; +import cn.xuyanwu.spring.file.storage.MockMultipartFile; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jnpf.base.DictionaryDataApi; import jnpf.base.UserInfo; +import jnpf.base.entity.DictionaryDataEntity; +import jnpf.constant.FileTypeConstant; import jnpf.constant.PermissionConst; import jnpf.entity.*; import jnpf.enump.ReceiveGoodsMainEnum; -import jnpf.enump.SelectionOrderingMainEnum; import jnpf.exception.DataException; +import jnpf.file.FileApi; +import jnpf.file.FileUploadApi; import jnpf.mapper.TReceiveGoodsMainMapper; import jnpf.model.dto.ReceiveGoodsMainDto; import jnpf.permission.entity.OrganizeEntity; @@ -23,16 +30,17 @@ import jnpf.service.TReceiveGoodsMainService; import jnpf.util.UserProvider; import jnpf.utils.SnowFlake; import lombok.AllArgsConstructor; -import org.apache.tomcat.jni.Library; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.transaction.annotation.Transactional; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.nio.file.Files; +import java.nio.file.Paths; import java.time.LocalDateTime; -import java.util.IntSummaryStatistics; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; @@ -50,6 +58,9 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl selectPage(IPage iPage, Map params) { @@ -91,7 +102,12 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl getReceiveGoodsList(ReceiveGoodsMainDto.GetReceiveGoodsListParam param) { + ReceiveGoodsMainEnum.OrderTypeEnum orderTypeEnum = ReceiveGoodsMainEnum.OrderTypeEnum.getEnumByCode(param.getOrderType()); + if (null == orderTypeEnum) { + throw new DataException("请选择签收类型"); + } + //样书室根据userId查询 + if (orderTypeEnum == ReceiveGoodsMainEnum.OrderTypeEnum.SAMPLE_BOOKSTORE) { + param.setUserId(UserProvider.getUser().getUserId()); + } else { + param.setCorpId(UserProvider.getUser().getOrganizeId()); + } + try { + LocalDateTimeUtil.parse(param.getStartTime(), "yyyy-MM-dd HH:mm:ss"); + LocalDateTimeUtil.parse(param.getEndTime(), "yyyy-MM-dd HH:mm:ss"); + } catch (Exception e) { + throw new DataException("时间格式错误,应为yyyy-MM-dd HH:mm:ss"); + } + return this.getBaseMapper().getReceiveGoodsList(new Page<>(param.getCurrent(), param.getSize()), param); + } + + @Override + public ReceiveGoodsMainDto.TReceiveGoodsMainEntity getInfoById(String id) { + return this.baseMapper.getInfoById(id); + } + + @Override + public List getStackingInformation(Long id, String orderType) { + TReceiveGoodsBooks receiveGoodsBooks = receiveGoodsBooksService.getById(id); + if (null == receiveGoodsBooks) { + throw new DataException("该选书不存在"); + } + //校验该选书是否进行过保存分堆信息 + boolean exists = bookGoWhereService.lambdaQuery() + .eq(TBookGoWhere::getDelFlag, "0") + .eq(TBookGoWhere::getType, "1") + .eq(TBookGoWhere::getRelationId, receiveGoodsBooks.getId()) + .exists(); + if (exists) { + //查询已有数据 + return bookGoWhereService.getStackingInformationByRelationId(receiveGoodsBooks.getId()); + } else { + //查询初始化去向数据 + return bookGoWhereService.getStackingInformation(receiveGoodsBooks.getBookNumber(), UserProvider.getUser().getOrganizeId()); + } + //todo 添加已发数 + } + + @Override + public IPage getBookListById(ReceiveGoodsMainDto.GetBookListByIdParam param) { + return receiveGoodsBooksService.getBookListByRelationId(param); + } + + @Override + @Transactional + public void saveStackingInformation(ReceiveGoodsMainDto.SaveStackingInformationParam param) { + ReceiveGoodsMainEnum.OrderTypeEnum orderTypeEnum = ReceiveGoodsMainEnum.OrderTypeEnum.getEnumByCode(param.getOrderType()); + if (null == orderTypeEnum) { + throw new DataException("请选择签收类型"); + } + if (CollUtil.isEmpty(param.getBookGoWhereList())) { + throw new DataException("请设置图书分堆信息"); + } + TReceiveGoodsBooks receiveGoodsBooks = receiveGoodsBooksService.getById(param.getId()); + if (null == receiveGoodsBooks) { + throw new DataException("该图书信息不存在"); + } + for (TBookGoWhere bookGoWhere : param.getBookGoWhereList()) { + bookGoWhere.setId(SnowFlake.nextId()); + bookGoWhere.setCreateTime(LocalDateTime.now()); + bookGoWhere.setCreateBy(UserProvider.getUser().getUserId()); + bookGoWhere.setCreateName(UserProvider.getUser().getUserName()); + bookGoWhere.setUpdateTime(LocalDateTime.now()); + bookGoWhere.setUpdateBy(UserProvider.getUser().getUserId()); + bookGoWhere.setUpdateName(UserProvider.getUser().getUserName()); + bookGoWhere.setOrderType(orderTypeEnum.getCode()); + bookGoWhere.setWarehouseEntryFlag("1"); + bookGoWhere.setType("1"); + bookGoWhere.setRelationId(receiveGoodsBooks.getId() + ""); + 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); + bookGoWhere.setCreateDeptName(dept.getFullName()); + bookGoWhere.setCreateCorpName(corp.getFullName()); + bookGoWhere.setCreateDeptId(dept.getId()); + bookGoWhere.setCreateCorpId(corp.getId()); + } + bookGoWhereService.save(bookGoWhere); + } + } + + + @Override + @Transactional + public void saveStackingInformationByReceiveId(ReceiveGoodsMainDto.SaveStackingInformationByReceiveIdParam param) { + if (StrUtil.isBlank(param.getSaveType())) { + throw new DataException("请选择保存类型"); + } + ReceiveGoodsMainEnum.OrderTypeEnum orderTypeEnum = ReceiveGoodsMainEnum.OrderTypeEnum.getEnumByCode(param.getOrderType()); + if (null == orderTypeEnum) { + throw new DataException("请选择签收类型"); + } + if (StrUtil.isBlank(param.getId())) { + throw new DataException("请选择收货单"); + } + TReceiveGoodsMain tReceiveGoodsMain = this.getById(param.getId()); + if (null == tReceiveGoodsMain) { + throw new DataException("该收货单不存在"); + } + //保存只是走个过场 + if (StrUtil.equals(param.getSaveType(), "1")) { + this.lambdaUpdate() + .set(TReceiveGoodsMain::getUpdateId, UserProvider.getLoginUserId()) + .set(TReceiveGoodsMain::getUpdateTime, LocalDateTime.now()) + .set(TReceiveGoodsMain::getUpdateName, UserProvider.getUser().getUserName()) + .eq(TReceiveGoodsMain::getId, param.getId()) + .update(); + return; + } + //以下逻辑全是确定 + ReceiveGoodsMainEnum.MainStatusEnum mainStatusEnum = ReceiveGoodsMainEnum.MainStatusEnum.LISTING; + //查询图书编号列表 + Set bookNumberList = receiveGoodsBooksService.lambdaQuery() + .eq(TReceiveGoodsBooks::getRelationId, tReceiveGoodsMain.getId()) + .eq(TReceiveGoodsBooks::getDelFlag, "0") + .list() + .stream().map(TReceiveGoodsBooks::getBookNumber).collect(Collectors.toSet()); + //生成版本馆/业务部收货单 + ReceiveGoodsMainDto.NewReceiptParam newReceiptParam=new ReceiveGoodsMainDto.NewReceiptParam(); + newReceiptParam.setReceiptNumber(tReceiveGoodsMain.getReceiptNumber()); + newReceiptParam.setOrderType(param.getOrderType()); + newReceiptParam.setPackageQuantity(tReceiveGoodsMain.getPackageQuantity()); + newReceiptParam.setDeliveryParty(tReceiveGoodsMain.getDeliveryParty()); + newReceiptParam.setReceiveTime(tReceiveGoodsMain.getReceiveTime()); + List bunchingInfoList=new ArrayList<>(); + //查询图书编号 + Set queryBookInfoNumberList = bookGoWhereService.lambdaQuery() + .eq(TBookGoWhere::getType, "0") + .eq(TBookGoWhere::getDelFlag, "0") + .eq(TBookGoWhere::getWarehouseEntryFlag, "0") + .in(TBookGoWhere::getBookNumber, bookNumberList) + .eq(TBookGoWhere::getCreateCorpId, UserProvider.getUser().getOrganizeId()) + .eq(TBookGoWhere::getOrderType, orderTypeEnum.getCode()) + .list().stream().map(TBookGoWhere::getBookNumber).collect(Collectors.toSet()); + List libraryList = libraryService.lambdaQuery() + .in(TLibrary::getBookNumber, queryBookInfoNumberList) + .list(); + //创建收货单 + if (CollUtil.isNotEmpty(libraryList)){ + for (TLibrary tLibrary : libraryList) { + bunchingInfoList.add(BeanUtil.copyProperties(tLibrary,ReceiveGoodsMainDto.BunchingInfo.class)); + } + newReceiptParam.setBunchingInfoList(bunchingInfoList); + this.newReceipt(newReceiptParam); + } + + if (CollUtil.isNotEmpty(bookNumberList)) { + //修改图书去向 即之后样书室新建后进行分堆不会再查到老数据 + bookGoWhereService.lambdaUpdate() + .set(TBookGoWhere::getType, "1") + .set(TBookGoWhere::getWarehouseEntryFlag, "1") + .eq(TBookGoWhere::getType, "0") + .eq(TBookGoWhere::getDelFlag, "0") + .eq(TBookGoWhere::getWarehouseEntryFlag,"0") + .eq(TBookGoWhere::getCreateCorpId, UserProvider.getUser().getOrganizeId()) + .in(TBookGoWhere::getBookNumber, bookNumberList) + .eq(TBookGoWhere::getOrderType,orderTypeEnum.getCode()) + .update(); + } + //生成二维码 + 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::getMainStatus, mainStatusEnum.getCode()) + .set(TReceiveGoodsMain::getMainStatusName, mainStatusEnum.getDescribe()) + .set(TReceiveGoodsMain::getUpdateId, UserProvider.getLoginUserId()) + .set(TReceiveGoodsMain::getUpdateTime, LocalDateTime.now()) + .set(TReceiveGoodsMain::getUpdateName, UserProvider.getUser().getUserName()) + .eq(TReceiveGoodsMain::getId, param.getId()) + .update(); + } + } + diff --git a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/Test.java b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/Test.java index a65172f..bfde473 100644 --- a/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/Test.java +++ b/jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/Test.java @@ -4,48 +4,23 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.annotation.Excel; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; +import cn.hutool.extra.qrcode.QrCodeUtil; import com.alibaba.fastjson.JSON; import jnpf.entity.TSelectionOrderingMain; import org.apache.poi.ss.usermodel.Workbook; +import java.io.File; +import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.lang.reflect.Array; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.Arrays; public class Test { - public static void main(String[] args) { - String s = "{\n" + - " \"id\": 2024102200001,\n" + - " \"type\": \"1\",\n" + - " \"mainStatus\": \"3\",\n" + - " \"mainStatusName\": \"样书室待下单\",\n" + - " \"remark\": \"测试新增2\",\n" + - " \"delFlag\": \"0\",\n" + - " \"orderPersonId\": null,\n" + - " \"orderPersonTime\": null,\n" + - " \"orderPersonName\": null,\n" + - " \"createId\": \"568797187002084037\",\n" + - " \"createTime\": \"2024-10-22 17:52:04\",\n" + - " \"createName\": \"一级\",\n" + - " \"updateId\": \"568797187002084037\",\n" + - " \"updateTime\": \"2024-10-22 17:52:04\",\n" + - " \"updateName\": \"一级\",\n" + - " \"createCorpName\": \"浙江出版联合集团有限公司\",\n" + - " \"createDeptName\": \"党委领导\",\n" + - " \"recommendedTime\": \"2024-10-22\",\n" + - " \"selectionOrderingBooksList\": null,\n" + - " \"businessDepartmentBooksList\": null,\n" + - " \"versionLibraryBooksList\": null\n" + - " }"; - TSelectionOrderingMain tSelectionOrderingMain = JSON.parseObject(s, TSelectionOrderingMain.class); - ExportParams exportParams = new ExportParams("测试导出", "sheetName1", ExcelType.XSSF); - Workbook sheets = ExcelExportUtil.exportExcel(exportParams, TSelectionOrderingMain.class, Arrays.asList(tSelectionOrderingMain)); - try { - FileOutputStream outputStream = new FileOutputStream("/Users/yangzhenli/Documents/杂七杂八/easypoi/测试导出"); - sheets.write(outputStream); - } catch (IOException e) { - throw new RuntimeException(e); - } + public static void main(String[] args) throws IOException { + // 生成二维码 + QrCodeUtil.generate("http://61.169.37.106:9172/login", 1000, 1000,"", Files.newOutputStream(Paths.get("/Users/yangzhenli/Documents/项目/jnpf/file/qrcode.png"))); } } 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 a01eb87..daa6648 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 @@ -92,4 +92,46 @@ 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/TReceiveGoodsBooksMapper.xml b/jnpf-library/jnpf-library-biz/src/main/resources/mapper/TReceiveGoodsBooksMapper.xml index cbb9ad7..462672f 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 @@ -86,4 +86,31 @@ 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 3f5ea0e..b812a21 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 @@ -4,6 +4,7 @@ + @@ -31,7 +32,7 @@ -id,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 +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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 794e534..64f7ee3 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 @@ -7,16 +7,14 @@ 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.entity.TLibrary; +import jnpf.base.Page; import jnpf.model.dto.ReceiveGoodsMainDto; -import jnpf.model.dto.SelectionOrderingMainDto; -import jnpf.service.ILibraryService; import jnpf.service.TReceiveGoodsMainService; -import jnpf.service.TSelectionOrderingMainService; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @Api("收货管理") @Tag(name = "收货管理", description = "receiveManagement") @@ -35,12 +33,25 @@ public class ReceiveGoodsMainController { @Operation(summary = "查询收货单列表") @PostMapping("getReceiveGoodsList") - public ActionResult getReceiveGoodsList(@RequestBody ReceiveGoodsMainDto.GetReceiveGoodsListParam param) { -// return ActionResult.success(tReceiveGoodsMainService.getReceiveGoodsList(param)); - return null; + public ActionResult> getReceiveGoodsList(@RequestBody ReceiveGoodsMainDto.GetReceiveGoodsListParam param) { + return ActionResult.success(tReceiveGoodsMainService.getReceiveGoodsList(param)); + } + + @Operation(summary = "根据id查询收货详情") + @GetMapping("getInfoById") + public ActionResult getInfoById(@ApiParam("收货单id")@RequestParam String id) { + return ActionResult.success(tReceiveGoodsMainService.getInfoById(id)); } + @Operation(summary = "根据收货id查询所签收图书列表") + @PostMapping("getBookListById") + public ActionResult> getBookListById(@RequestBody ReceiveGoodsMainDto.GetBookListByIdParam param) { + return ActionResult.success(tReceiveGoodsMainService.getBookListById(param)); + } + + + @Operation(summary = "通过图书编号查询图书基本信息-(拆包扫图书条码)") @GetMapping("getBunchingInfoByBookNumber") public ActionResult getBunchingInfoByBookNumber(@ApiParam("图书编号")@RequestParam String bookNumber) { @@ -55,4 +66,35 @@ public class ReceiveGoodsMainController { return ActionResult.success(); } + + + + +// 分堆 + + + + + @Operation(summary = "根据选书id查询分堆信息(根据验收类型:1-业务部 2-版本馆 3-样书室)") + @GetMapping("getStackingInformation") + public ActionResult> getStackingInformation(@ApiParam("选书id")@RequestParam Long id,@ApiParam("验收类型:1-业务部 2-版本馆 3-样书室")@RequestParam String orderType) { + return ActionResult.success(tReceiveGoodsMainService.getStackingInformation(id,orderType)); + } + + + @Operation(summary = "根据选图书id保存分堆设置") + @PostMapping("saveStackingInformationByBookId") + public ActionResult saveStackingInformation(@RequestBody ReceiveGoodsMainDto.SaveStackingInformationParam param) { + tReceiveGoodsMainService.saveStackingInformation(param); + return ActionResult.success(); + } + + + @Operation(summary = "收货单保存分堆信息") + @PostMapping("saveStackingInformationByReceiveId") + public ActionResult saveStackingInformationByReceiveId(@RequestBody ReceiveGoodsMainDto.SaveStackingInformationByReceiveIdParam param) { + tReceiveGoodsMainService.saveStackingInformationByReceiveId(param); + return ActionResult.success(); + } + } 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 de65a5f..7a5f824 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 @@ -23,10 +23,15 @@ public class TReceiveGoodsMain implements Serializable { private static final long serialVersionUID = -91550320791470574L; - @ApiModelProperty(value = "主键id(收货单编号)") + @ApiModelProperty(value = "主键id(雪花id)") @TableId(type = IdType.ASSIGN_ID) private String id; + + @ApiModelProperty(value = "收货单编号") + @TableField(value = "receipt_number") + private String receiptNumber; + @ApiModelProperty(value = "收货单信息类型:1-业务部 2-版本馆 3-样书室") @TableField(value = "type") private String type; @@ -63,6 +68,11 @@ public class TReceiveGoodsMain implements Serializable { @TableField(value = "remark") private String remark; + + @ApiModelProperty(value = "上架二维码链接") + @TableField(value = "listing_qr_code") + private String listingQrCode; + @ApiModelProperty(value = "删除标记 0-正常 1-删除") @TableField(value = "del_flag") @TableLogic @@ -78,7 +88,7 @@ public class TReceiveGoodsMain implements Serializable { @TableField(value = "sign_person_id") private String signPersonId; - @ApiModelProperty(value = "签收人时间") + @ApiModelProperty(value = "签收人日期") @TableField(value = "sign_person_time") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") 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 26bdfbd..962e8eb 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 @@ -24,6 +24,15 @@ public class ReceiveGoodsMainEnum { 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; + } } //签收类型:1-业务部 2-版本馆 3-样书室 4-重点书 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 6b73334..70ab6cb 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,8 +1,5 @@ package jnpf.model.dto; -import cn.afterturn.easypoi.excel.annotation.Excel; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModelProperty; @@ -45,6 +42,11 @@ public class ReceiveGoodsMainDto { @ApiModelProperty("签收图书信息") private List bunchingInfoList; + + @ApiModelProperty("后端使用(新增版本馆/业务部收货单)") + @JsonIgnore + private String receiptNumber; + } @@ -63,10 +65,10 @@ public class ReceiveGoodsMainDto { private String startTime; @ApiModelProperty("结束时间") private String endTime; - @ApiModelProperty("下单类型") + @ApiModelProperty("查询类型:1-业务部 2-版本馆 3-样书室") private String orderType; @ApiModelProperty("收货单编号") - private Long id; + private String receiptNumber; @ApiModelProperty("TO_BE_SIGNED_FOR(\"1\", \"待签收\"),\n" + " UNDIVIDED_REACTOR(\"2\", \"待分堆\"),\n" + @@ -79,12 +81,71 @@ public class ReceiveGoodsMainDto { @JsonIgnore private String userId; + @ApiModelProperty("后端查询使用") + @JsonIgnore + private String corpId; + + } + + + @Data + public static class TReceiveGoodsMainEntity extends TReceiveGoodsMain{ + @ApiModelProperty("收货选书列表") + private List receiveGoodsBookList; + + } + + + + @Data + public static class TReceiveGoodsBooksEntity extends TReceiveGoodsBooks{ + + } + + @Data + public static class GetBookListByIdParam extends BasePageParam{ + @ApiModelProperty("收货单id") + private String id; + } + + + @Data + public static class TBookGoWhereEntity extends TBookGoWhere{ + + } + + + @Data + public static class SaveStackingInformationParam{ + @ApiModelProperty("图书id") + private String id; + @ApiModelProperty("验收类型:1-业务部 2-版本馆 3-样书室") + private String orderType; + + + @ApiModelProperty("验收类型:1-业务部 2-版本馆 3-样书室") + private List bookGoWhereList; + + } + @Data + public static class SaveStackingInformationByReceiveIdParam{ + @ApiModelProperty("1-保存 2-确定") + private String saveType; + @ApiModelProperty("id") + private String id; + @ApiModelProperty("验收类型:1-业务部 2-版本馆 3-样书室") + private String orderType; + } + + @Data public static class BunchingInfo extends TReceiveGoodsBooks { @ApiModelProperty("签收数量") private Integer signedQuantity=0; } + + }